2
0
mirror of https://github.com/iconify/iconify.git synced 2024-12-13 14:13:06 +00:00

Move files to clean up directory structure in SVG framework

This commit is contained in:
Vjacheslav Trushkin 2020-06-11 00:13:50 +03:00
parent 49b9d09f6f
commit 135bf723fb
8 changed files with 143 additions and 104 deletions

View File

@ -0,0 +1,57 @@
import { IconifyJSON } from '@iconify/types';
import { IconifyIconName } from '@iconify/core/lib/icon/name';
import { IconifyIcon } from '@iconify/core/lib/icon';
import {
IconifyIconLoaderCallback,
IconifyIconLoaderAbort,
} from '@iconify/core/lib/interfaces/loader';
import { IconifyAPIConfig } from '@iconify/core/lib/api/config';
/**
* Iconify interface
*/
export interface IconifyAPI {
/* Getting icons */
/**
* Check if icon exists
*/
iconExists: (name: string) => boolean;
/**
* Get icon data with all properties
*/
getIcon: (name: string) => IconifyIcon | null;
/**
* List all available icons
*/
listIcons: (provider?: string, prefix?: string) => string[];
/**
* Load icons
*/
loadIcons: (
icons: (IconifyIconName | string)[],
callback?: IconifyIconLoaderCallback
) => IconifyIconLoaderAbort;
/* Add icons */
/**
* Add icon to storage
*/
addIcon: (name: string, data: IconifyIcon) => boolean;
/**
* Add icon set to storage
*/
addCollection: (data: IconifyJSON, provider?: string) => boolean;
/* API stuff */
/**
* Add API provider
*/
addAPIProvider: (
provider: string,
customConfig: Partial<IconifyAPIConfig>
) => void;
}

View File

@ -39,6 +39,7 @@ import { finder as iconifyFinder } from './finders/iconify';
import { storeCache, loadCache, config } from '@iconify/core/lib/cache/storage';
// API
import { IconifyAPI } from './api';
import {
API,
getRedundancyCache,
@ -64,13 +65,16 @@ import {
} from '@iconify/core/lib/interfaces/loader';
// Observer
import { observer } from './modules/observer';
import { IconifyObserver } from './observer';
import { observer } from './observer/observer';
// Render
import { renderIcon } from './render';
import { IconifyRenderer } from './renderer';
import { renderIcon } from './renderer/render';
// Scan
import { scanDOM } from './scan';
import { IconifyScanner } from './scanner';
import { scanDOM } from './scanner/scan';
/**
* Export required types
@ -142,102 +146,18 @@ export interface IconifyExposedInternals {
/**
* Iconify interface
*/
export interface IconifyGlobal {
export interface IconifyGlobal
extends IconifyScanner,
IconifyObserver,
IconifyRenderer,
IconifyAPI {
/* General section */
/**
* Get version
*/
getVersion: () => string;
/* Getting icons */
/**
* Check if icon exists
*/
iconExists: (name: string) => boolean;
/**
* Get icon data with all properties
*/
getIcon: (name: string) => IconifyIcon | null;
/**
* List all available icons
*/
listIcons: (provider?: string, prefix?: string) => string[];
/**
* Load icons
*/
loadIcons: (
icons: (IconifyIconName | string)[],
callback?: IconifyIconLoaderCallback
) => IconifyIconLoaderAbort;
/* Rendering icons */
renderSVG: (
name: string,
customisations: IconifyIconCustomisations
) => SVGElement | null;
renderHTML: (
name: string,
customisations: IconifyIconCustomisations
) => string | null;
/**
* Get icon data
*/
renderIcon: (
name: string,
customisations: IconifyIconCustomisations
) => IconifyIconBuildResult | null;
/**
* Replace IDs in icon body, should be used when parsing buildIcon() result
*/
replaceIDs: (body: string) => string;
/* Add icons */
/**
* Add icon to storage
*/
addIcon: (name: string, data: IconifyIcon) => boolean;
/**
* Add icon set to storage
*/
addCollection: (data: IconifyJSON, provider?: string) => boolean;
/* API stuff */
/**
* Pause DOM observer
*/
pauseObserver: () => void;
/**
* Resume DOM observer
*/
resumeObserver: () => void;
/**
* Add API provider
*/
addAPIProvider: (
provider: string,
customConfig: Partial<IconifyAPIConfig>
) => void;
/* Scan DOM */
/**
* Scan DOM
*/
scanDOM: (root?: HTMLElement) => void;
/**
* Set root node
*/
setRoot: (root: HTMLElement) => void;
/**
* Toggle local and session storage
*/
@ -249,6 +169,9 @@ export interface IconifyGlobal {
_internal: IconifyExposedInternals;
}
// Export dependencies
export { IconifyObserver, IconifyScanner, IconifyRenderer, IconifyAPI };
/**
* Get icon name
*/
@ -430,12 +353,6 @@ const Iconify: IconifyGlobal = {
// Add icon set
addCollection: addCollection,
// Pause observer
pauseObserver: observer.pause,
// Resume observer
resumeObserver: observer.resume,
// API providers
addAPIProvider: setAPIConfig,
@ -469,6 +386,10 @@ const Iconify: IconifyGlobal = {
}
},
// Observer
pauseObserver: observer.pause,
resumeObserver: observer.resume,
// Exposed internal functions
_internal: {
// Calculate size

View File

@ -0,0 +1,14 @@
/**
* Iconify interface
*/
export interface IconifyObserver {
/**
* Pause DOM observer
*/
pauseObserver: () => void;
/**
* Resume DOM observer
*/
resumeObserver: () => void;
}

View File

@ -0,0 +1,33 @@
import { IconifyIconCustomisations } from '@iconify/core/lib/customisations';
import { IconifyIconBuildResult } from '@iconify/core/lib/builder';
/**
* Iconify interface
*/
export interface IconifyRenderer {
/**
* Render icons
*/
renderSVG: (
name: string,
customisations: IconifyIconCustomisations
) => SVGElement | null;
renderHTML: (
name: string,
customisations: IconifyIconCustomisations
) => string | null;
/**
* Get icon data
*/
renderIcon: (
name: string,
customisations: IconifyIconCustomisations
) => IconifyIconBuildResult | null;
/**
* Replace IDs in icon body, should be used when parsing buildIcon() result
*/
replaceIDs: (body: string) => string;
}

View File

@ -1,4 +1,3 @@
import { PlaceholderElement } from './finder';
import { FullIconifyIcon } from '@iconify/core/lib/icon';
import {
IconifyIconCustomisations,
@ -6,12 +5,13 @@ import {
} from '@iconify/core/lib/customisations';
import { iconToSVG } from '@iconify/core/lib/builder';
import { replaceIDs } from '@iconify/core/lib/builder/ids';
import { PlaceholderElement } from '../finder';
import {
IconifyElement,
IconifyElementData,
elementDataProperty,
elementFinderProperty,
} from './element';
} from '../element';
/**
* Replace element with SVG

View File

@ -0,0 +1,14 @@
/**
* Iconify interface
*/
export interface IconifyScanner {
/**
* Scan DOM
*/
scanDOM: (root?: HTMLElement) => void;
/**
* Set root node
*/
setRoot: (root: HTMLElement) => void;
}

View File

@ -2,10 +2,10 @@ import { IconifyIconName } from '@iconify/core/lib/icon/name';
import { getStorage, getIcon } from '@iconify/core/lib/storage';
import { coreModules } from '@iconify/core/lib/modules';
import { FullIconifyIcon } from '@iconify/core/lib/icon';
import { findPlaceholders } from './finder';
import { browserModules, getRoot } from './modules';
import { IconifyElementData, elementDataProperty } from './element';
import { renderIcon } from './render';
import { findPlaceholders } from '../finder';
import { browserModules, getRoot } from '../modules';
import { IconifyElementData, elementDataProperty } from '../element';
import { renderIcon } from '../renderer/render';
/**
* Flag to avoid scanning DOM too often