line-md 0.0.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +13 -0
- package/.github/FUNDING.yml +1 -0
- package/.prettierrc +3 -3
- package/README.md +8 -26
- package/license.txt +0 -0
- package/line-md.json +699 -681
- package/package.json +30 -9
- package/svg/account-add.svg +1 -1
- package/svg/account-alert.svg +1 -1
- package/svg/account-delete.svg +1 -1
- package/svg/account-remove.svg +1 -1
- package/svg/account-small.svg +1 -1
- package/svg/account.svg +1 -1
- package/svg/alert-circle-twotone.svg +1 -1
- package/svg/alert-circle.svg +1 -1
- package/svg/alert-twotone.svg +1 -1
- package/svg/alert.svg +1 -1
- package/svg/align-center.svg +1 -1
- package/svg/align-justify.svg +1 -1
- package/svg/align-left.svg +1 -1
- package/svg/align-right.svg +1 -0
- package/svg/arrow-align-bottom.svg +1 -0
- package/svg/arrow-align-center.svg +1 -1
- package/svg/arrow-align-left.svg +1 -1
- package/svg/arrow-align-middle.svg +1 -0
- package/svg/arrow-align-right.svg +1 -0
- package/svg/arrow-align-top.svg +1 -0
- package/svg/arrow-close-down.svg +1 -0
- package/svg/arrow-close-left.svg +1 -1
- package/svg/arrow-close-right.svg +1 -0
- package/svg/arrow-close-up.svg +1 -0
- package/svg/arrow-down-circle-twotone.svg +1 -0
- package/svg/arrow-down-circle.svg +1 -0
- package/svg/arrow-down.svg +1 -0
- package/svg/arrow-left-circle-twotone.svg +1 -1
- package/svg/arrow-left-circle.svg +1 -1
- package/svg/arrow-left.svg +1 -1
- package/svg/arrow-long-diagonal-rotated.svg +1 -0
- package/svg/arrow-long-diagonal.svg +1 -1
- package/svg/arrow-open-down.svg +1 -0
- package/svg/arrow-open-left.svg +1 -1
- package/svg/arrow-open-right.svg +1 -0
- package/svg/arrow-open-up.svg +1 -0
- package/svg/arrow-right-circle-twotone.svg +1 -0
- package/svg/arrow-right-circle.svg +1 -0
- package/svg/arrow-right.svg +1 -0
- package/svg/arrow-small-down.svg +1 -0
- package/svg/arrow-small-left.svg +1 -1
- package/svg/arrow-small-right.svg +1 -0
- package/svg/arrow-small-up.svg +1 -0
- package/svg/arrow-up-circle-twotone.svg +1 -0
- package/svg/arrow-up-circle.svg +1 -0
- package/svg/arrow-up.svg +1 -0
- package/svg/arrows-diagonal-rotated.svg +1 -0
- package/svg/arrows-diagonal.svg +1 -1
- package/svg/arrows-horizontal-alt.svg +1 -1
- package/svg/arrows-horizontal.svg +1 -1
- package/svg/arrows-vertical-alt.svg +1 -0
- package/svg/arrows-vertical.svg +1 -0
- package/svg/bell-twotone.svg +1 -1
- package/svg/bell.svg +1 -1
- package/svg/calendar-out.svg +1 -0
- package/svg/calendar.svg +1 -0
- package/svg/cancel-twotone.svg +1 -1
- package/svg/cancel.svg +1 -1
- package/svg/check-list-3-solid.svg +1 -0
- package/svg/check-list-3-twotone.svg +1 -0
- package/svg/check-list-3.svg +1 -0
- package/svg/chevron-double-down.svg +1 -0
- package/svg/chevron-double-left.svg +1 -1
- package/svg/chevron-double-right.svg +1 -0
- package/svg/chevron-double-up.svg +1 -0
- package/svg/chevron-down-circle-twotone.svg +1 -0
- package/svg/chevron-down-circle.svg +1 -0
- package/svg/chevron-down.svg +1 -0
- package/svg/chevron-left-circle-twotone.svg +1 -1
- package/svg/chevron-left-circle.svg +1 -1
- package/svg/chevron-left.svg +1 -1
- package/svg/chevron-right-circle-twotone.svg +1 -0
- package/svg/chevron-right-circle.svg +1 -0
- package/svg/chevron-right.svg +1 -0
- package/svg/chevron-small-double-down.svg +1 -0
- package/svg/chevron-small-double-left.svg +1 -1
- package/svg/chevron-small-double-right.svg +1 -0
- package/svg/chevron-small-double-up.svg +1 -0
- package/svg/chevron-small-down.svg +1 -0
- package/svg/chevron-small-left.svg +1 -1
- package/svg/chevron-small-right.svg +1 -0
- package/svg/chevron-small-triple-down.svg +1 -0
- package/svg/chevron-small-triple-left.svg +1 -1
- package/svg/chevron-small-triple-right.svg +1 -0
- package/svg/chevron-small-triple-up.svg +1 -0
- package/svg/chevron-small-up.svg +1 -0
- package/svg/chevron-triple-down.svg +1 -0
- package/svg/chevron-triple-left.svg +1 -1
- package/svg/chevron-triple-right.svg +1 -0
- package/svg/chevron-triple-up.svg +1 -0
- package/svg/chevron-up-circle-twotone.svg +1 -0
- package/svg/chevron-up-circle.svg +1 -0
- package/svg/chevron-up.svg +1 -0
- package/svg/circle-twotone.svg +1 -1
- package/svg/circle.svg +1 -1
- package/svg/clipboard-arrow-twotone.svg +1 -1
- package/svg/clipboard-arrow.svg +1 -1
- package/svg/clipboard-check-twotone.svg +1 -1
- package/svg/clipboard-check.svg +1 -1
- package/svg/clipboard-list-twotone.svg +1 -1
- package/svg/clipboard-list.svg +1 -1
- package/svg/clipboard-minus-twotone.svg +1 -1
- package/svg/clipboard-minus.svg +1 -1
- package/svg/clipboard-plus-twotone.svg +1 -1
- package/svg/clipboard-plus.svg +1 -1
- package/svg/clipboard-twotone.svg +1 -1
- package/svg/clipboard.svg +1 -1
- package/svg/close-circle-twotone.svg +1 -1
- package/svg/close-circle.svg +1 -1
- package/svg/close.svg +1 -1
- package/svg/cloud-down-twotone.svg +1 -1
- package/svg/cloud-down.svg +1 -1
- package/svg/cloud-filled.svg +1 -1
- package/svg/cloud-twotone.svg +1 -1
- package/svg/cloud-up-twotone.svg +1 -1
- package/svg/cloud-up.svg +1 -1
- package/svg/cloud.svg +1 -1
- package/svg/computer-twotone.svg +1 -1
- package/svg/computer.svg +1 -1
- package/svg/confirm-circle-twotone.svg +1 -1
- package/svg/confirm-circle.svg +1 -1
- package/svg/confirm.svg +1 -1
- package/svg/construction-twotone.svg +1 -1
- package/svg/construction.svg +1 -1
- package/svg/discord-twotone.svg +1 -0
- package/svg/discord.svg +1 -0
- package/svg/document-add-twotone.svg +1 -1
- package/svg/document-add.svg +1 -1
- package/svg/document-code-twotone.svg +1 -1
- package/svg/document-code.svg +1 -1
- package/svg/document-list-twotone.svg +1 -1
- package/svg/document-list.svg +1 -1
- package/svg/document-remove-twotone.svg +1 -1
- package/svg/document-remove.svg +1 -1
- package/svg/document-report-twotone.svg +1 -1
- package/svg/document-report.svg +1 -1
- package/svg/document-twotone.svg +1 -1
- package/svg/document.svg +1 -1
- package/svg/double-arrow-horizontal.svg +1 -1
- package/svg/double-arrow-vertical.svg +1 -0
- package/svg/edit-twotone-full.svg +1 -1
- package/svg/edit-twotone.svg +1 -1
- package/svg/edit.svg +1 -1
- package/svg/email-opened-twotone-alt.svg +1 -1
- package/svg/email-opened-twotone.svg +1 -1
- package/svg/email-opened.svg +1 -1
- package/svg/email-twotone-alt.svg +1 -1
- package/svg/email-twotone.svg +1 -1
- package/svg/email.svg +1 -1
- package/svg/emoji-angry-twotone.svg +1 -1
- package/svg/emoji-angry.svg +1 -1
- package/svg/emoji-frown-open-twotone.svg +1 -1
- package/svg/emoji-frown-open.svg +1 -1
- package/svg/emoji-frown-twotone.svg +1 -1
- package/svg/emoji-frown.svg +1 -1
- package/svg/emoji-grin-twotone.svg +1 -1
- package/svg/emoji-grin.svg +1 -1
- package/svg/emoji-neutral-twotone.svg +1 -1
- package/svg/emoji-neutral.svg +1 -1
- package/svg/emoji-smile-twotone.svg +1 -1
- package/svg/emoji-smile-wink-twotone.svg +1 -1
- package/svg/emoji-smile-wink.svg +1 -1
- package/svg/emoji-smile.svg +1 -1
- package/svg/external-link-rounded.svg +1 -1
- package/svg/external-link.svg +1 -1
- package/svg/facebook.svg +1 -1
- package/svg/github-loop.svg +1 -0
- package/svg/github-twotone.svg +1 -1
- package/svg/github.svg +1 -1
- package/svg/grid-3-solid.svg +1 -1
- package/svg/grid-3-twotone.svg +1 -1
- package/svg/grid-3.svg +1 -1
- package/svg/hash-small.svg +1 -1
- package/svg/hash.svg +1 -1
- package/svg/heart-filled-half.svg +1 -1
- package/svg/heart-filled.svg +1 -1
- package/svg/heart-half-filled.svg +1 -1
- package/svg/heart-half-twotone.svg +1 -1
- package/svg/heart-half.svg +1 -1
- package/svg/heart-twotone-half-filled.svg +1 -1
- package/svg/heart-twotone-half.svg +1 -1
- package/svg/heart-twotone.svg +1 -1
- package/svg/heart.svg +1 -1
- package/svg/home-md-twotone-alt.svg +1 -1
- package/svg/home-md-twotone.svg +1 -1
- package/svg/home-md.svg +1 -1
- package/svg/home-simple-filled.svg +1 -1
- package/svg/home-simple-twotone.svg +1 -1
- package/svg/home-simple.svg +1 -1
- package/svg/home-twotone-alt.svg +1 -1
- package/svg/home-twotone.svg +1 -1
- package/svg/home.svg +1 -1
- package/svg/iconify1.svg +1 -1
- package/svg/image-twotone.svg +1 -1
- package/svg/image.svg +1 -1
- package/svg/laptop-twotone.svg +1 -1
- package/svg/laptop.svg +1 -1
- package/svg/linkedin.svg +1 -1
- package/svg/list-3-solid.svg +1 -1
- package/svg/list-3-twotone.svg +1 -1
- package/svg/list-3.svg +1 -1
- package/svg/list-indented.svg +1 -1
- package/svg/list.svg +1 -1
- package/svg/marker-filled.svg +1 -1
- package/svg/marker-twotone.svg +1 -1
- package/svg/marker.svg +1 -1
- package/svg/menu-fold-left.svg +1 -1
- package/svg/menu-fold-right.svg +1 -0
- package/svg/menu-unfold-left.svg +1 -1
- package/svg/menu-unfold-right.svg +1 -0
- package/svg/menu.svg +1 -1
- package/svg/minus-circle-twotone.svg +1 -1
- package/svg/minus-circle.svg +1 -1
- package/svg/minus.svg +1 -1
- package/svg/navigation-left-down.svg +1 -0
- package/svg/navigation-left-up.svg +1 -1
- package/svg/navigation-right-down.svg +1 -0
- package/svg/navigation-right-up.svg +1 -0
- package/svg/paint-drop-filled.svg +1 -1
- package/svg/paint-drop-half-filled-twotone.svg +1 -1
- package/svg/paint-drop-half-filled.svg +1 -1
- package/svg/paint-drop-half-twotone.svg +1 -1
- package/svg/paint-drop-twotone.svg +1 -1
- package/svg/paint-drop.svg +1 -1
- package/svg/pencil-twotone-alt.svg +1 -1
- package/svg/pencil-twotone.svg +1 -1
- package/svg/pencil.svg +1 -1
- package/svg/plus-circle-twotone.svg +1 -1
- package/svg/plus-circle.svg +1 -1
- package/svg/plus.svg +1 -1
- package/svg/question-circle-twotone.svg +1 -1
- package/svg/question-circle.svg +1 -1
- package/svg/question.svg +1 -1
- package/svg/remove.svg +1 -1
- package/svg/rotate-180.svg +1 -1
- package/svg/rotate-270.svg +1 -1
- package/svg/rotate-90.svg +1 -1
- package/svg/search-filled.svg +1 -1
- package/svg/search-twotone.svg +1 -1
- package/svg/search.svg +1 -1
- package/svg/thumbs-down-twotone.svg +1 -1
- package/svg/thumbs-down.svg +1 -1
- package/svg/thumbs-up-twotone.svg +1 -1
- package/svg/thumbs-up.svg +1 -1
- package/svg/twitter-twotone.svg +1 -1
- package/svg/twitter.svg +1 -1
- package/svg/valign-baseline-twotone.svg +1 -0
- package/svg/valign-baseline.svg +1 -0
- package/svg/valign-bottom-twotone.svg +1 -0
- package/svg/valign-bottom.svg +1 -0
- package/svg/valign-middle-twotone.svg +1 -0
- package/svg/valign-middle.svg +1 -0
- package/svg/valign-top-twotone.svg +1 -0
- package/svg/valign-top.svg +1 -0
- package/export.js +0 -17
- package/icon-finder/iconify.min.js +0 -13
- package/icon-finder/iconify2.css +0 -2409
- package/icon-finder/iconify2.js +0 -19167
- package/icon-finder/iconify2.js.map +0 -1
- package/icon-finder/iconify2.min.js +0 -1
- package/index.html +0 -67
- package/line-md.css +0 -46
- package/svg/iconify2.svg +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"iconify2.js","sources":["../../../../packages/core/lib/objects.js","../../../../packages/core/lib/data/config.js","../../../../packages/core/lib/events.js","../../../../packages/core/lib/icon.js","../../../../packages/core/lib/data/providers.js","../../../../packages/core/lib/api/base.js","../../../../packages/core/lib/api/fetch.js","../../../../packages/core/lib/registry/storage.js","../../../../packages/core/lib/route/params.js","../../../../packages/core/lib/route/types.js","../../../../packages/core/lib/views/base.js","../../../../packages/core/lib/blocks/collections-filter.js","../../../../packages/core/lib/converters/collection.js","../../../../packages/core/lib/converters/collections.js","../../../../packages/core/lib/blocks/filters.js","../../../../packages/core/lib/blocks/collections-list.js","../../../../packages/core/lib/data/collections.js","../../../../packages/core/lib/views/collections.js","../../../../packages/core/lib/blocks/collection-info.js","../../../../packages/core/lib/blocks/icons-list.js","../../../../packages/core/lib/blocks/pagination.js","../../../../packages/core/lib/blocks/search.js","../../../../packages/core/lib/views/collection.js","../../../../packages/core/lib/converters/search.js","../../../../packages/core/lib/views/search.js","../../../../packages/core/lib/views/custom.js","../../../../packages/core/lib/views/empty.js","../../../../packages/core/lib/route/router.js","../../../../packages/core/lib/data/custom-sets.js","../../../../packages/core/lib/registry/index.js","../../../../packages/core/lib/blocks/types.js","../../../../packages/core/lib/index.js","../../../../packages/components/lib/phrases/en.js","../../../../packages/components/lib/modules/phrases.js","../../../../packages/components/lib/misc/init.js","../../../../packages/components/lib/misc/config.js","../../../../packages/components/lib/wrapper.js","../../node_modules/svelte/internal/index.mjs","../../../../packages/components/lib/ui/Block.svelte","../../../../packages/components/lib/misc/shorten-icon-name.js","../../../../packages/components/lib/ui/misc/Icon.svelte","../../../../packages/components/lib/ui/footer/parts/name/Simple.svelte","../../../../packages/components/lib/ui/footer/parts/Buttons.svelte","../../../../packages/components/node_modules/cyberalien-color/src/keywords.js","../../../../packages/components/node_modules/cyberalien-color/src/color.js","../../../../packages/components/lib/ui/forms/Input.svelte","../../../../packages/components/lib/ui/footer/parts/props/Block.svelte","../../../../packages/components/lib/ui/footer/parts/props/color/Color.svelte","../../../../packages/components/lib/misc/icon-size.js","../../../../packages/components/lib/ui/footer/parts/props/SizeInput.svelte","../../../../packages/components/lib/ui/footer/parts/props/size/Size.svelte","../../../../packages/components/lib/ui/forms/OptionButton.svelte","../../../../packages/components/lib/ui/footer/parts/props/rotate/Rotate.svelte","../../../../packages/components/lib/ui/footer/parts/props/flip/Flip.svelte","../../../../packages/components/lib/ui/footer/parts/Properties.svelte","../../../../packages/components/lib/ui/footer/parts/FullSample.svelte","../../../../packages/components/lib/ui/footer/Full.svelte","../../../../packages/components/lib/misc/customisations.js","../../../../packages/components/lib/ui/Footer.svelte","../../../../packages/components/lib/ui/blocks/GlobalSearch.svelte","../../../../packages/components/lib/ui/blocks/parent/Link.svelte","../../../../packages/components/lib/ui/blocks/Parent.svelte","../../../../packages/components/lib/ui/views/Error.svelte","../../../../packages/components/lib/ui/blocks/filters/Filter.svelte","../../../../packages/components/lib/ui/blocks/Filters.svelte","../../../../packages/components/lib/ui/blocks/CollectionsFilter.svelte","../../../../packages/components/lib/ui/blocks/collections-list/Height.svelte","../../../../packages/components/lib/ui/blocks/collections-list/Item.svelte","../../../../packages/components/lib/ui/blocks/collections-list/Category.svelte","../../../../packages/components/lib/ui/blocks/errors/ContentError.svelte","../../../../packages/components/lib/ui/blocks/CollectionsList.svelte","../../../../packages/components/lib/ui/views/Collections.svelte","../../../../packages/components/lib/ui/blocks/icons/IconGrid.svelte","../../../../packages/components/lib/ui/blocks/icons/IconList.svelte","../../../../packages/components/lib/ui/blocks/icons/Container.svelte","../../../../packages/components/lib/ui/forms/IconButton.svelte","../../../../packages/components/lib/ui/blocks/icons/Header.svelte","../../../../packages/components/lib/ui/blocks/Pagination.svelte","../../../../packages/components/lib/ui/blocks/IconsWithPages.svelte","../../../../packages/components/lib/ui/blocks/Search.svelte","../../../../packages/components/lib/ui/views/Collection.svelte","../../../../packages/components/lib/ui/views/Search.svelte","../../../../packages/components/lib/ui/views/Custom.svelte","../../../../packages/components/lib/ui/Content.svelte","../../../../packages/components/lib/ui/Container.svelte"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.match = exports.compareObjects = exports.cloneObject = void 0;\n/**\n * Deep clone simple object.\n *\n * This function does not handle anything other than primitive types + Arrays.\n * This function is on average 10 times faster than JSON.parse(JSON.stringify(obj)) on small objects, several times faster on big objects\n */\nfunction cloneObject(obj) {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n if (obj instanceof Array) {\n return obj.map((item) => {\n if (typeof item === 'object') {\n return cloneObject(item);\n }\n else {\n return item;\n }\n });\n }\n const result = {};\n let key;\n for (key in obj) {\n if (typeof obj[key] !== 'object') {\n result[key] = obj[key];\n }\n else {\n result[key] = cloneObject(obj[key]);\n }\n }\n return result;\n}\nexports.cloneObject = cloneObject;\n/**\n * Compare two objects.\n *\n * This function does not handle anything other than primitive types + Arrays.\n */\nfunction compareObjects(obj1, obj2) {\n if (typeof obj1 !== 'object' || typeof obj2 !== 'object') {\n return obj1 === obj2;\n }\n if (obj1 === obj2) {\n // Same object or both are null\n return true;\n }\n if (obj1 === null || obj2 === null) {\n // One of objects is null\n return false;\n }\n // Check for arrays\n if (obj1 instanceof Array) {\n if (!(obj2 instanceof Array)) {\n return false;\n }\n if (obj1.length !== obj2.length) {\n return false;\n }\n for (let i = 0; i < obj1.length; i++) {\n const value1 = obj1[i];\n const value2 = obj2[i];\n if (value1 !== value2) {\n // Different values. If both are objects, do deep comparison, otherwise return false\n if (typeof value1 !== 'object' ||\n typeof value2 !== 'object' ||\n !compareObjects(value1, value2)) {\n return false;\n }\n }\n }\n return true;\n }\n else if (obj2 instanceof Array) {\n return false;\n }\n // Not array\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (let i = 0; i < keys1.length; i++) {\n const key = keys1[i];\n if (typeof obj1[key] !==\n typeof obj2[key]) {\n return false;\n }\n if (typeof obj1[key] === 'object') {\n if (!compareObjects(obj1[key], obj2[key])) {\n return false;\n }\n }\n else if (obj1[key] !==\n obj2[key]) {\n return false;\n }\n }\n return true;\n}\nexports.compareObjects = compareObjects;\n/**\n * Find match of keyword in data.\n *\n * Comparison is case insensitive.\n */\nfunction match(data, keyword) {\n if (typeof data === 'number') {\n data = '' + data;\n }\n if (typeof data === 'string') {\n return data.toLowerCase().indexOf(keyword) !== -1;\n }\n if (typeof data !== 'object' || data === null) {\n return false;\n }\n if (data instanceof Array) {\n for (let i = 0; i < data.length; i++) {\n if (match(data[i], keyword)) {\n return true;\n }\n }\n return false;\n }\n for (const key in data) {\n if (match(data[key], keyword)) {\n return true;\n }\n }\n return false;\n}\nexports.match = match;\n//# sourceMappingURL=objects.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.customisedConfig = exports.createConfig = exports.mergeConfig = exports.setComponentsConfig = void 0;\nconst objects_1 = require(\"../objects\");\n/**\n * Default UI config\n */\nconst defaultUIConfig = {\n // Number of icons per page.\n itemsPerPage: 52,\n // Maximum delay between changing current view and updating visible view.\n // This delay is used to avoid \"loading\" page when changing views.\n viewUpdateDelay: 300,\n // Number of sibling collections to show when collection view is child view of collections list.\n showSiblingCollections: 2,\n};\n/**\n * Router config\n */\nconst defaultRouterConfig = {\n // Home route as string, empty to automatically detect route\n home: '',\n};\n/**\n * Default configuration.\n *\n * 2 levels deep object:\n * object[key][key2] = value\n */\nconst defaultConfig = {\n // UI\n ui: defaultUIConfig,\n // Router\n router: defaultRouterConfig,\n // Components\n components: {},\n};\n/**\n * Set default components config\n */\nfunction setComponentsConfig(config) {\n defaultConfig.components = Object.assign(config);\n}\nexports.setComponentsConfig = setComponentsConfig;\n/**\n * Merge data\n */\nfunction mergeConfig(config, custom) {\n for (const key in custom) {\n const attr = key;\n const configSource = config[attr];\n if (configSource === void 0) {\n continue;\n }\n // Merge objects\n const customSource = custom[attr];\n for (const key2 in customSource) {\n const attr2 = key2;\n if (configSource[attr2] !== void 0) {\n // Overwrite entry\n configSource[attr2] = customSource[attr2];\n }\n }\n }\n}\nexports.mergeConfig = mergeConfig;\n/**\n * Create configuration object\n */\nfunction createConfig(customValues = {}) {\n const config = objects_1.cloneObject(defaultConfig);\n if (customValues) {\n mergeConfig(config, customValues);\n }\n return config;\n}\nexports.createConfig = createConfig;\n/**\n * Get customised configuration values\n */\nfunction customisedConfig(config) {\n const customised = {};\n for (const key in config) {\n const attr = key;\n const defaultSource = defaultConfig[attr];\n const configSource = config[attr];\n const child = {};\n let found = false;\n for (const key2 in configSource) {\n const attr2 = key2;\n if (configSource[attr2] !== defaultSource[attr2]) {\n child[attr2] = configSource[attr2];\n found = true;\n }\n }\n if (found) {\n customised[attr] = child;\n }\n }\n return customised;\n}\nexports.customisedConfig = customisedConfig;\n//# sourceMappingURL=config.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Events = void 0;\n/**\n * Events class\n */\nclass Events {\n constructor() {\n this._subscribers = Object.create(null);\n }\n /**\n * Subscribe to event\n *\n * @param event Event name\n * @param callback Callback function\n * @param key Optional unique key for unsubscribe. If key is set, any other event listener with same key will be removed\n */\n subscribe(event, callback, key) {\n if (this._subscribers[event] === void 0) {\n // Create new array\n this._subscribers[event] = [];\n }\n else if (typeof key === 'string') {\n // Remove previous subscribers with same key\n this._subscribers[event] = this._subscribers[event].filter((item) => item.key !== key);\n }\n // Add new subscriber\n this._subscribers[event].push({\n callback,\n key,\n });\n }\n /**\n * Unsubscribe from event\n *\n * @param event Event name\n * @param value Callback or key\n */\n unsubscribe(event, value) {\n if (this._subscribers[event] === void 0) {\n return;\n }\n let key;\n switch (typeof value) {\n case 'function':\n key = 'callback';\n break;\n case 'string':\n key = 'key';\n break;\n default:\n return;\n }\n this._subscribers[event] = this._subscribers[event].filter((item) => item[key] !== value);\n }\n /**\n * Check if event has listeners\n *\n * @param event Event name\n */\n hasListeners(event) {\n return (this._subscribers[event] !== void 0 &&\n this._subscribers[event].length > 0);\n }\n /**\n * Fire event\n *\n * @param event Event name\n * @param data Payload\n * @param delay True if event should fire on next tick\n */\n fire(event, data, delay = false) {\n if (!this.hasListeners(event)) {\n return;\n }\n if (delay) {\n setTimeout(() => {\n this._fire(event, data);\n });\n }\n else {\n this._fire(event, data);\n }\n }\n /**\n * Fire event\n *\n * @param event\n * @param data\n */\n _fire(event, data) {\n this._subscribers[event].forEach((item) => {\n item.callback(data, event);\n });\n }\n}\nexports.Events = Events;\n//# sourceMappingURL=events.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.iconToString = exports.compareIcons = exports.validateIcon = exports.stringToIcon = exports.match = void 0;\n/**\n * Expression to test part of icon name.\n */\nexports.match = /^[a-z0-9]+(-[a-z0-9]+)*$/;\n/**\n * Convert string to Icon object.\n */\nexports.stringToIcon = (value, provider = '') => {\n const colonSeparated = value.split(':');\n // Check for provider with correct '@' at start\n if (value.slice(0, 1) === '@') {\n // First part is provider\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n // \"@provider:prefix:name\" or \"@provider:prefix-name\"\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n // Check split by colon: \"prefix:name\", \"provider:prefix:name\"\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n // \"prefix:name\"\n const name = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n return {\n // Allow provider without '@': \"provider:prefix:name\"\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name,\n };\n }\n // Attempt to split by dash: \"prefix-name\"\n const dashSeparated = colonSeparated[0].split('-');\n if (dashSeparated.length > 1) {\n return {\n provider: provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join('-'),\n };\n }\n return null;\n};\n/**\n * Check if icon is valid.\n *\n * This function is not part of stringToIcon because validation is not needed for most code.\n */\nexports.validateIcon = (icon) => {\n if (!icon) {\n return false;\n }\n return !!((icon.provider === '' || icon.provider.match(exports.match)) &&\n icon.prefix.match(exports.match) &&\n icon.name.match(exports.match));\n};\n/**\n * Compare Icon objects.\n *\n * Note: null means icon is invalid, so null to null comparison = false.\n */\nexports.compareIcons = (icon1, icon2) => {\n return (icon1 !== null &&\n icon2 !== null &&\n icon1.provider === icon2.provider &&\n icon1.name === icon2.name &&\n icon1.prefix === icon2.prefix);\n};\n/**\n * Convert icon to string.\n */\nexports.iconToString = (icon) => {\n return ((icon.provider === '' ? '' : '@' + icon.provider + ':') +\n icon.prefix +\n ':' +\n icon.name);\n};\n//# sourceMappingURL=icon.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.listProviders = exports.addProvider = exports.getProvider = exports.convertProviderData = void 0;\nconst iconify_1 = __importDefault(require(\"@iconify/iconify\"));\nconst icon_1 = require(\"../icon\");\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unused-vars-experimental, @typescript-eslint/no-empty-function\nfunction assertNever(s) { }\n/**\n * Default values\n */\nconst defaultAPIDataLinks = {\n home: '',\n collection: '',\n icon: '',\n};\nconst defaultAPIDataNPM = {\n package: '',\n icon: '',\n};\nconst defaultAPIData = {\n // These variables will be automatically set if empty\n provider: '',\n title: '',\n api: '',\n // Optional\n links: defaultAPIDataLinks,\n npm: defaultAPIDataNPM,\n};\n/**\n * Local cache\n */\nconst sourceCache = Object.create(null);\nconst configuredCache = Object.create(null);\n// Add default provider\nconst iconifyRoot = 'https://iconify.design/icon-sets/';\nconst iconifyPackage = '@iconify/icons-{prefix}';\nsourceCache[''] = {\n config: {},\n title: 'Iconify',\n links: {\n home: iconifyRoot,\n collection: iconifyRoot + '{prefix}/',\n icon: iconifyRoot + '{prefix}/{name}.html',\n },\n npm: {\n package: iconifyPackage,\n icon: iconifyPackage + '/{name}',\n },\n};\n/**\n * Defaults\n */\nconst defaults = {\n title: '',\n links: defaultAPIDataLinks,\n npm: defaultAPIDataNPM,\n};\n/**\n * Convert data returned from API\n */\nfunction convertProviderData(host, raw) {\n const provider = raw.provider;\n if (typeof provider !== 'string' ||\n // Allow empty string\n (provider !== '' && !provider.match(icon_1.match))) {\n return null;\n }\n // Clean up raw data\n const data = {};\n for (const key in defaultAPIData) {\n const attr = key;\n // Vars for npm/links\n let defaultValue;\n let resultValue;\n switch (attr) {\n case 'title':\n data.title =\n typeof raw.title === 'string' ? raw.title : provider;\n break;\n case 'provider':\n data.provider = provider;\n break;\n case 'api':\n if (typeof raw.api === 'string' && raw.api !== '') {\n data.api = [raw.api];\n }\n else if (raw.api instanceof Array) {\n data.api = raw.api;\n }\n else if (host === '') {\n // Missing host\n return null;\n }\n else {\n data.api = [host];\n }\n break;\n case 'npm':\n case 'links':\n defaultValue = defaultAPIData[attr];\n if (typeof raw[attr] !== 'object' || !raw[attr]) {\n // Copy default value\n resultValue = defaultValue;\n }\n else {\n const rawValue = raw[attr];\n // Merge values\n resultValue = {};\n for (const nestedKey in defaultValue) {\n const nestedAttr = nestedKey;\n if (typeof rawValue[nestedAttr] === 'string') {\n resultValue[nestedAttr] = rawValue[nestedAttr];\n }\n else {\n resultValue[nestedAttr] = defaultValue[nestedAttr];\n }\n }\n }\n data[attr] = resultValue;\n break;\n default:\n assertNever(attr);\n }\n }\n const fullData = data;\n // Create API config\n const config = {\n resources: fullData.api,\n };\n // Create data\n const result = {\n config,\n title: fullData.title,\n links: fullData.links,\n npm: fullData.npm,\n };\n return result;\n}\nexports.convertProviderData = convertProviderData;\n/**\n * Get API provider\n */\nfunction getProvider(provider) {\n if (configuredCache[provider] === void 0) {\n if (sourceCache[provider] === void 0) {\n // Missing provider\n return null;\n }\n const source = sourceCache[provider];\n // Get Redundancy instance from Iconify\n const data = iconify_1.default._internal.getAPI(provider);\n if (data === void 0) {\n // Failed again - something is wrong with config\n configuredCache[provider] = null;\n }\n else {\n configuredCache[provider] = {\n config: data.config,\n redundancy: data.redundancy,\n };\n // Add missing fields\n const cache = configuredCache[provider];\n const src = source;\n for (const key in defaults) {\n if (src[key] !== void 0) {\n cache[key] = src[key];\n }\n else {\n cache[key] = defaults[key];\n }\n }\n }\n }\n return configuredCache[provider];\n}\nexports.getProvider = getProvider;\n/**\n * Add provider\n */\nfunction addProvider(provider, config) {\n if (sourceCache[provider] !== void 0) {\n // Cannot overwrite provider\n return;\n }\n if (config.title === void 0) {\n // Use provider as name\n config.title = provider;\n }\n sourceCache[provider] = config;\n iconify_1.default.addAPIProvider(provider, config.config);\n}\nexports.addProvider = addProvider;\n/**\n * Get all providers\n */\nfunction listProviders() {\n return Object.keys(sourceCache).sort();\n}\nexports.listProviders = listProviders;\n//# sourceMappingURL=providers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseAPI = exports.mergeQuery = void 0;\nconst providers_1 = require(\"../data/providers\");\n/**\n * Add parameters to query\n */\nfunction mergeQuery(base, params) {\n let result = base, hasParams = result.indexOf('?') !== -1;\n /**\n * Convertion of parameters to string, only allows simple types used by Iconify API\n */\n function paramToString(value, nested) {\n switch (typeof value) {\n case 'boolean':\n if (nested) {\n throw new Error('Nested boolean items are not allowed');\n }\n return value ? 'true' : 'false';\n case 'number':\n return encodeURIComponent(value);\n case 'string':\n return encodeURIComponent(value);\n case 'object':\n if (nested) {\n throw new Error('Nested objects are not allowed');\n }\n if (value instanceof Array) {\n return value\n .map((item) => paramToString(item, true))\n .join(',');\n }\n throw new Error('Objects are not allowed');\n default:\n throw new Error('Invalid type');\n }\n }\n Object.keys(params).forEach((key) => {\n let value;\n try {\n value = paramToString(params[key], false);\n }\n catch (err) {\n return;\n }\n result +=\n (hasParams ? '&' : '?') + encodeURIComponent(key) + '=' + value;\n hasParams = true;\n });\n return result;\n}\nexports.mergeQuery = mergeQuery;\n/**\n * Base API class\n */\nclass BaseAPI {\n /**\n * Constructor\n *\n * @param registry\n */\n constructor(registry) {\n // Provider specific cache\n this._cache = Object.create(null);\n this._registry = registry;\n this._query = this._query.bind(this);\n }\n /**\n * Send query\n *\n * @param provider Provider\n * @param endpoint End point string\n * @param params Query parameters as object\n * @param callback Callback to call when data is available\n */\n query(provider, endpoint, params, callback, ignoreCache = false) {\n const uri = mergeQuery(endpoint, params);\n // Check for cache\n if (this._cache[provider] === void 0) {\n this._cache[provider] = Object.create(null);\n }\n const providerCache = this._cache[provider];\n if (!ignoreCache && providerCache[uri] !== void 0) {\n // Return cached data on next tick\n setTimeout(() => {\n const cached = providerCache[uri];\n callback(cached === null ? null : JSON.parse(cached), true);\n });\n return;\n }\n // Init redundancy\n const redundancy = this._getRedundancy(provider);\n if (!redundancy) {\n // Error\n setTimeout(() => {\n callback(null, false);\n });\n return;\n }\n // Send query\n const query = redundancy.find((item) => {\n const status = item();\n return status.status === 'pending' && status.payload === uri;\n });\n if (query !== null) {\n // Attach callback to existing query\n query().subscribe((data) => {\n callback(data, false);\n });\n return;\n }\n // Create new query. Query will start on next tick, so no need to set timeout\n redundancy.query(uri, this._query.bind(this, provider), (data) => {\n callback(data, false);\n });\n }\n /**\n * Check if query is cached\n */\n isCached(provider, endpoint, params) {\n const uri = mergeQuery(endpoint, params);\n return (this._cache[provider] !== void 0 &&\n this._cache[provider][uri] !== void 0);\n }\n /**\n * Check if query is pending\n */\n isPending(provider, endpoint, params) {\n // Init redundancy\n const redundancy = this._getRedundancy(provider);\n if (!redundancy) {\n // Error\n return false;\n }\n const uri = mergeQuery(endpoint, params);\n const query = redundancy.find((item) => {\n const status = item();\n return status.status === 'pending' && status.payload === uri;\n });\n return query !== null;\n }\n /**\n * Send query, callback from Redundancy\n */\n _query(provider, host, params, status) {\n // Should be implemented by child classes\n throw new Error('_query() should not be called on base API class');\n }\n /**\n * Store cached data\n */\n _storeCache(provider, params, data) {\n if (this._cache[provider] === void 0) {\n this._cache[provider] = Object.create(null);\n }\n this._cache[provider][params] =\n data === null ? null : JSON.stringify(data);\n }\n /**\n * Clear all cache\n */\n clearCache() {\n this._cache = Object.create(null);\n }\n /**\n * Get Redundancy instance\n */\n _getRedundancy(provider) {\n // Init redundancy\n const providerData = providers_1.getProvider(provider);\n if (!providerData) {\n // Error\n return null;\n }\n return providerData.redundancy;\n }\n}\nexports.BaseAPI = BaseAPI;\n//# sourceMappingURL=base.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.API = void 0;\nconst base_1 = require(\"./base\");\n/**\n * API class\n */\nclass API extends base_1.BaseAPI {\n /**\n * Send API query without provider\n *\n * @param host Host string\n * @param params End point and parameters as string\n * @param callback Callback\n */\n sendQuery(host, params, callback) {\n fetch(host + params)\n .then((response) => {\n if (response.status === 404) {\n // Not found. Should be called in error handler\n callback('not_found', null);\n return;\n }\n if (response.status !== 200) {\n callback('error', null);\n return;\n }\n return response.json();\n })\n .then((data) => {\n if (typeof data !== 'object' || data === null) {\n callback('error', null);\n return;\n }\n // Store cache and complete\n callback('success', data);\n })\n .catch(() => {\n callback('error', null);\n });\n }\n /**\n * Send query, callback from Redundancy\n *\n * @param provider Provider string\n * @param host Host string\n * @param params End point and parameters as string\n * @param status Query status\n */\n _query(provider, host, params, status) {\n // console.log('API request: ' + host + params);\n this.sendQuery(host, params, (response, data) => {\n switch (response) {\n case 'success':\n case 'not_found':\n this._storeCache(provider, params, data);\n status.done(data);\n }\n });\n }\n}\nexports.API = API;\n//# sourceMappingURL=fetch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRegistry = exports.destroyRegistry = exports.getSharedData = exports.saveRegistry = exports.addRegistry = exports.uniqueId = void 0;\nconst namespaces = Object.create(null);\nconst registry = Object.create(null);\n/**\n * Get unique id\n */\nfunction uniqueId(namespace) {\n let counter = 0, id;\n while (registry[(id = namespace + counter)] !== void 0) {\n counter++;\n }\n return id;\n}\nexports.uniqueId = uniqueId;\n/**\n * Add registry to storage\n */\nfunction addRegistry(registry) {\n const namespace = registry.namespace, id = registry.id;\n if (namespaces[namespace] === void 0) {\n namespaces[namespace] = {\n ids: [id],\n data: Object.create(null),\n };\n return true;\n }\n namespaces[namespace].ids.push(id);\n return false;\n}\nexports.addRegistry = addRegistry;\n/**\n * Save registry\n */\nfunction saveRegistry(item) {\n registry[item.id] = item;\n}\nexports.saveRegistry = saveRegistry;\n/**\n * Get shared data\n */\nfunction getSharedData(namespace) {\n return namespaces[namespace].data;\n}\nexports.getSharedData = getSharedData;\n/**\n * Delete registry entries\n */\nfunction destroyRegistry(item) {\n if (registry[item.id] === void 0) {\n return;\n }\n // Delete registry from index\n delete registry[item.id];\n // Remove id from shared namespaces\n namespaces[item.namespace].ids = namespaces[item.namespace].ids.filter((id) => id !== item.id);\n}\nexports.destroyRegistry = destroyRegistry;\n/**\n * Get Registry instance for id.\n *\n * This is used to pass registry as constant string in React/Svelte, so changes in Registry instance won't trigger refresh of entire UI.\n */\nexports.getRegistry = (id) => registry[id];\n//# sourceMappingURL=storage.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.objectToRouteParams = exports.routeParamsToObject = exports.emptyRouteDefaults = exports.customRouteDefaults = exports.searchRouteDefaults = exports.collectionRouteDefaults = exports.collectionsRouteDefaults = void 0;\n/**\n * TypeScript guard\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unused-vars-experimental, @typescript-eslint/no-empty-function\nfunction assertNever(s) { }\nexports.collectionsRouteDefaults = {\n provider: '',\n filter: '',\n category: null,\n};\nexports.collectionRouteDefaults = {\n provider: '',\n prefix: '',\n filter: '',\n page: 0,\n tag: null,\n themePrefix: null,\n themeSuffix: null,\n};\nexports.searchRouteDefaults = {\n provider: '',\n search: '',\n short: true,\n page: 0,\n};\nexports.customRouteDefaults = {\n customType: '',\n filter: '',\n page: 0,\n};\nexports.emptyRouteDefaults = {};\n/**\n * Remove default values from route\n */\nexports.routeParamsToObject = (type, params) => {\n const result = {};\n let defaults;\n switch (type) {\n case 'collections':\n defaults = exports.collectionsRouteDefaults;\n break;\n case 'collection':\n defaults = exports.collectionRouteDefaults;\n break;\n case 'search':\n defaults = exports.searchRouteDefaults;\n break;\n case 'custom':\n defaults = exports.customRouteDefaults;\n break;\n case 'empty':\n defaults = exports.emptyRouteDefaults;\n break;\n default:\n assertNever(type);\n throw new Error(`Unknown route type in routeParamsToObject(): ${type}`);\n }\n let key;\n for (key in defaults) {\n const attr = key;\n const value = params[attr];\n if ((typeof defaults[attr] !== 'object' &&\n typeof value === typeof defaults[attr] &&\n value !== defaults[attr]) || // same non-object type, different values\n (defaults[attr] === null && typeof value === 'string') // default is null, value is string\n ) {\n result[key] = value;\n }\n }\n return result;\n};\n/**\n * List of parameters to change to lower case\n */\nconst toLowerCaseStrings = ['filter', 'search', 'provider'];\n/**\n * Convert object to RouteParams\n */\nexports.objectToRouteParams = (type, params) => {\n let defaults, result;\n if (params === null || typeof params !== 'object') {\n params = {};\n }\n const requiredStrings = [];\n switch (type) {\n case 'collections':\n defaults = exports.collectionsRouteDefaults;\n result = {};\n break;\n case 'collection':\n requiredStrings.push('prefix');\n defaults = exports.collectionRouteDefaults;\n result = {};\n break;\n case 'search':\n requiredStrings.push('search');\n defaults = exports.searchRouteDefaults;\n result = {};\n break;\n case 'custom':\n requiredStrings.push('customType');\n defaults = exports.customRouteDefaults;\n result = {};\n break;\n case 'empty':\n defaults = exports.emptyRouteDefaults;\n result = {};\n break;\n default:\n assertNever(type);\n throw new Error(`Unknown route type in objectToRouteParams(): ${type}`);\n }\n // Copy default values\n result = Object.assign({}, defaults);\n let key;\n for (key in defaults) {\n const attr = key;\n if (params[attr] === void 0) {\n // Missing parameter\n continue;\n }\n if ((defaults[attr] === null && typeof params[attr] === 'string') || // default = null, param = string\n (typeof defaults[attr] !== 'object' &&\n typeof defaults[attr] === typeof params[attr]) // non-object, matching type\n ) {\n result[attr] = params[attr];\n }\n }\n // Validate required strings\n requiredStrings.forEach((key) => {\n const attr = key;\n if (typeof result[attr] !== 'string' || result[attr] === '') {\n throw new Error(`Missing required route parameter \"${key}\" in objectToRouteParams()`);\n }\n });\n // Convert strings to lower case\n toLowerCaseStrings.forEach((key) => {\n const attr = key;\n if (typeof result[attr] === 'string') {\n // \"as never\": hack to prevent typescript error in clearly simple code\n result[attr] = result[attr].toLowerCase();\n }\n });\n return result;\n};\n//# sourceMappingURL=params.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.objectToRoute = exports.routeToObject = void 0;\nconst params_1 = require(\"./params\");\n/**\n * TypeScript guard\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unused-vars-experimental, @typescript-eslint/no-empty-function\nfunction assertNever(s) { }\n/**\n * Convert route to object for export, ignoring default values\n */\nexports.routeToObject = (route) => {\n const result = {\n type: route.type,\n };\n const params = params_1.routeParamsToObject(route.type, route.params);\n if (Object.keys(params).length > 0) {\n result.params = params;\n }\n if (route.parent) {\n const parent = exports.routeToObject(route.parent);\n if (parent !== null) {\n result.parent = parent;\n }\n }\n return result;\n};\n/**\n * Check if route type is valid\n */\nconst isValidRouteType = (type) => {\n switch (type) {\n case 'collections':\n case 'collection':\n case 'search':\n case 'custom':\n case 'empty':\n break;\n default:\n assertNever(type);\n return false;\n }\n return typeof type === 'string';\n};\n/**\n * Convert object to Route, adding missing values\n */\nexports.objectToRoute = (data, defaultRoute = null) => {\n // Check for valid object\n if (data === null || typeof data !== 'object') {\n return defaultRoute;\n }\n // Convert data to Route and validate route type\n const params = data;\n if (!isValidRouteType(params.type)) {\n return defaultRoute;\n }\n // Validate parent route\n let parent = null;\n if (typeof params.parent === 'object' && params.parent !== null) {\n parent = exports.objectToRoute(params.parent, null);\n if (parent === null) {\n // Error loading parent route\n return defaultRoute;\n }\n }\n // Check route parameters\n let routeParams;\n try {\n routeParams = params_1.objectToRouteParams(params.type, typeof params.params === 'object' && params.params\n ? params.params\n : {});\n }\n catch (err) {\n return defaultRoute;\n }\n // Create route\n const route = {\n type: params.type,\n params: routeParams,\n parent: parent,\n };\n // Convert route to correct type\n const type = params.type;\n switch (type) {\n case 'collections':\n return route;\n case 'collection':\n return route;\n case 'search':\n return route;\n case 'custom':\n return route;\n case 'empty':\n return route;\n default:\n // This code should be unreachable because of isValidRouteType() check\n assertNever(type);\n return null;\n }\n};\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseView = void 0;\nconst storage_1 = require(\"../registry/storage\");\nconst providers_1 = require(\"../data/providers\");\n/**\n * Base view class\n */\nclass BaseView {\n constructor() {\n this.type = '';\n this.parent = null;\n this.updating = false;\n this.error = '';\n this.blocksRequireUpdate = true;\n // Loading status\n this.loading = true;\n this._loadingTimer = null;\n this._alreadyLoaded = false;\n this._startedLoading = false;\n // Loading control: waiting for parent view\n this.onLoad = null;\n this._mustWaitForParent = false;\n }\n /**\n * Change parent view\n */\n _parentAction(value) {\n if (this.parent === null) {\n return;\n }\n const levels = typeof value === 'number' && value > 0 ? value : 1;\n const registry = storage_1.getRegistry(this._instance);\n const router = registry.router;\n router.setParentView(levels);\n }\n /**\n * Change provider\n */\n _providerAction(value) {\n if (typeof value !== 'string') {\n return;\n }\n const providerData = providers_1.getProvider(value);\n if (!providerData) {\n return;\n }\n const registry = storage_1.getRegistry(this._instance);\n const router = registry.router;\n router.home(value);\n }\n /**\n * Start loading\n */\n startLoading() {\n if (this._startedLoading) {\n return;\n }\n // Already loaded somehow (by setting data directly)\n if (!this.loading) {\n this._startedLoading = true;\n return;\n }\n // Start loading\n if (this._mustWaitForParent && this.parent !== null) {\n this.parent.startLoading();\n }\n this._startLoading();\n }\n _startLoading() {\n throw new Error('startLoading should not be called on base view');\n }\n /**\n * Search action\n */\n _searchAction(provider, value) {\n if (typeof value !== 'string' || value.trim() === '') {\n return;\n }\n const keyword = value.trim().toLowerCase();\n // Check for collections\n let view = this;\n let levels = 0;\n while (view.type !== 'collections') {\n if (view.parent === null) {\n return;\n }\n view = view.parent;\n levels++;\n }\n // Apply action to collections\n const registry = storage_1.getRegistry(this._instance);\n const router = registry.router;\n router.createChildView({\n type: 'search',\n params: {\n provider,\n search: keyword,\n },\n }, levels);\n }\n /**\n * Load data from API\n */\n _loadAPI(provider, query, params) {\n const registry = storage_1.getRegistry(this._instance);\n const providerData = providers_1.getProvider(provider);\n const configAPIData = providerData ? providerData.config : null;\n const api = registry.api;\n // Calculate and create timer\n let timeout = 0;\n if (configAPIData &&\n typeof configAPIData.rotate === 'number' &&\n typeof configAPIData.timeout === 'number' &&\n typeof configAPIData.limit === 'number' &&\n configAPIData.limit > 0) {\n // Calculate maximum possible timeout per one rotation\n timeout =\n configAPIData.timeout +\n configAPIData.rotate *\n (configAPIData.resources.length - 1);\n timeout *= configAPIData.limit;\n }\n if (timeout > 0) {\n this._loadingTimer = setTimeout(() => {\n if (this._loadingTimer !== null) {\n clearTimeout(this._loadingTimer);\n this._loadingTimer = null;\n }\n if (this.loading && this.error === '') {\n this.error = 'timeout';\n this.loading = false;\n this._triggerLoaded();\n }\n }, timeout);\n }\n // Send query\n api.query(provider, query, params, (data) => {\n // Clear timeout\n if (this._loadingTimer !== null) {\n clearTimeout(this._loadingTimer);\n this._loadingTimer = null;\n }\n if (data === null || !this._mustWaitForParent) {\n // Parse immediately\n this._parseAPIData(data);\n return;\n }\n // Parse data after parent view has finished loading\n this._waitForParent(() => {\n this._parseAPIData(data);\n });\n });\n }\n /**\n * Wait for parent view to load\n */\n _waitForParent(callback) {\n if (!this._mustWaitForParent ||\n this.parent === null ||\n !this.parent.loading) {\n callback();\n return;\n }\n // Wait for parent\n this.parent.onLoad = callback;\n }\n /**\n * Parse data from API\n *\n * Should be overwritten by child classes\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars-experimental, @typescript-eslint/no-unused-vars\n _parseAPIData(data) {\n throw new Error('_parseAPIData should not be called on base view');\n }\n /**\n * Send event when view has been loaded\n *\n * Can be sent synchronously\n */\n _triggerLoaded() {\n if (this._alreadyLoaded) {\n // Do not trigger event twice\n this._triggerUpdated();\n return;\n }\n this._alreadyLoaded = true;\n const registry = storage_1.getRegistry(this._instance);\n const events = registry.events;\n events.fire('view-loaded', this);\n // Trigger onLoad event for child view\n if (this.onLoad !== null) {\n const onLoad = this.onLoad;\n this.onLoad = null;\n onLoad();\n }\n }\n /**\n * Send event when view has been updated\n *\n * Must be sent asynchronously to consume multiple updates\n */\n _triggerUpdated() {\n if (!this.updating) {\n this.updating = true;\n setTimeout(() => {\n this.updating = false;\n const registry = storage_1.getRegistry(this._instance);\n const events = registry.events;\n events.fire('view-updated', this);\n });\n }\n }\n}\nexports.BaseView = BaseView;\n//# sourceMappingURL=base.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCollectionsFilterBlockEmpty = exports.defaultCollectionsFilterBlock = void 0;\n/**\n * Default block values\n */\nexports.defaultCollectionsFilterBlock = () => {\n return {\n type: 'collections-filter',\n keyword: '',\n };\n};\n/**\n * Check if block is empty\n */\nfunction isCollectionsFilterBlockEmpty(block) {\n return block === void 0 || block === null || block.keyword.trim() === '';\n}\nexports.isCollectionsFilterBlockEmpty = isCollectionsFilterBlockEmpty;\n//# sourceMappingURL=collections-filter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rawDataToCollection = exports.dataToCollection = exports.dataToCollectionInfo = void 0;\nconst minDisplayHeight = 16;\nconst maxDisplayHeight = 24;\n/**\n * Convert data from API to CollectionInfo\n */\nfunction dataToCollectionInfo(data, expectedPrefix = '') {\n if (typeof data !== 'object' || data === null) {\n return null;\n }\n const source = data;\n const getSourceNestedString = (field, key, defaultValue = '') => {\n if (typeof source[field] !== 'object') {\n return defaultValue;\n }\n const obj = source[field];\n return typeof obj[key] === 'string' ? obj[key] : defaultValue;\n };\n // Get name\n let name;\n if (typeof source.name === 'string') {\n name = source.name;\n }\n else if (typeof source.title === 'string') {\n name = source.title;\n }\n else {\n return null;\n }\n // Get prefix\n let prefix;\n if (expectedPrefix === '') {\n if (typeof source.prefix !== 'string') {\n return null;\n }\n prefix = source.prefix;\n }\n else {\n if (typeof source.prefix === 'string' &&\n source.prefix !== expectedPrefix) {\n // Prefixes do not match\n return null;\n }\n prefix = expectedPrefix;\n }\n // Generate data\n const result = {\n prefix: prefix,\n name: name,\n total: typeof source.total === 'number' ? source.total : 0,\n version: typeof source.version === 'string' ? source.version : '',\n author: {\n name: getSourceNestedString('author', 'name', typeof source.author === 'string' ? source.author : 'Unknown'),\n url: getSourceNestedString('author', 'url', ''),\n },\n license: {\n title: getSourceNestedString('license', 'title', typeof source.license === 'string' ? source.license : 'Unknown'),\n spdx: getSourceNestedString('license', 'spdx', ''),\n url: getSourceNestedString('license', 'url', ''),\n },\n samples: [],\n category: typeof source.category === 'string' ? source.category : '',\n palette: typeof source.palette === 'boolean' ? source.palette : false,\n };\n // Total as string\n if (typeof source.total === 'string') {\n const num = parseInt(source.total);\n if (num > 0) {\n result.total = num;\n }\n }\n // Add samples\n if (source.samples instanceof Array) {\n source.samples.forEach((item) => {\n if (result.samples.length < 3 && typeof item === 'string') {\n result.samples.push(item);\n }\n });\n }\n // Add height\n if (typeof source.height === 'number' ||\n typeof source.height === 'string') {\n const num = parseInt(source.height);\n if (num > 0) {\n result.height = num;\n }\n }\n if (source.height instanceof Array) {\n source.height.forEach((item) => {\n const num = parseInt(item);\n if (num > 0) {\n if (!(result.height instanceof Array)) {\n result.height = [];\n }\n result.height.push(num);\n }\n });\n switch (result.height.length) {\n case 0:\n delete result.height;\n break;\n case 1:\n result.height = result.height[0];\n }\n }\n // Add display height\n if (typeof result.height === 'number') {\n // Convert from height\n result.displayHeight = result.height;\n while (result.displayHeight < minDisplayHeight) {\n result.displayHeight *= 2;\n }\n while (result.displayHeight > maxDisplayHeight) {\n result.displayHeight /= 2;\n }\n if (result.displayHeight !== Math.round(result.displayHeight) ||\n result.displayHeight < minDisplayHeight ||\n result.displayHeight > maxDisplayHeight) {\n delete result.displayHeight;\n }\n }\n if (typeof source.displayHeight === 'number' ||\n typeof source.displayHeight === 'string') {\n // Convert from source.displayHeight\n const num = parseInt(source.displayHeight);\n if (num >= minDisplayHeight &&\n num <= maxDisplayHeight &&\n Math.round(num) === num) {\n result.displayHeight = num;\n }\n }\n // Convert palette from string value\n if (typeof source.palette === 'string') {\n switch (source.palette.toLowerCase()) {\n case 'colorless': // Iconify v1\n case 'false': // Boolean as string\n result.palette = false;\n break;\n case 'colorful': // Iconify v1\n case 'true': // Boolean as string\n result.palette = true;\n }\n }\n // Parse all old keys\n Object.keys(source).forEach((key) => {\n const value = source[key];\n if (typeof value !== 'string') {\n return;\n }\n switch (key) {\n case 'url':\n case 'uri':\n result.author.url = value;\n break;\n case 'licenseURL':\n case 'licenseURI':\n result.license.url = value;\n break;\n case 'licenseID':\n case 'licenseSPDX':\n result.license.spdx = value;\n break;\n }\n });\n return result;\n}\nexports.dataToCollectionInfo = dataToCollectionInfo;\n/**\n * Parse themes\n */\nfunction parseThemes(themes, sortedIcons, result) {\n // Add themes\n const themePrefixes = [], themeSuffixes = [];\n Object.keys(themes).forEach((key) => {\n const theme = themes[key];\n // Find and validate all prefixes\n if (theme.prefix !== void 0) {\n let themePrefix = theme.prefix;\n if (themePrefix.slice(-1) !== '-') {\n themePrefix += '-';\n }\n const length = themePrefix.length;\n let found = false;\n sortedIcons.forEach((icon) => {\n if (icon.name.slice(0, length) === themePrefix) {\n icon.themePrefix = theme.title;\n found = true;\n }\n });\n if (found) {\n themePrefixes.push(theme.title);\n }\n }\n // Find and validate all suffixes\n if (theme.suffix !== void 0) {\n let themeSuffix = theme.suffix;\n if (themeSuffix.slice(0, 1) !== '-') {\n themeSuffix = '-' + themeSuffix;\n }\n const length = 0 - themeSuffix.length;\n let found = false;\n sortedIcons.forEach((icon) => {\n if (icon.name.slice(length) === themeSuffix) {\n icon.themeSuffix = theme.title;\n found = true;\n }\n });\n if (found) {\n themeSuffixes.push(theme.title);\n }\n }\n });\n // Check for icons without prefix and validate prefixes\n if (themePrefixes.length) {\n let missing = false;\n sortedIcons.forEach((icon) => {\n if (icon.themePrefix === void 0) {\n icon.themePrefix = '';\n missing = true;\n }\n });\n if (missing) {\n themePrefixes.push('');\n }\n // Add prefixes to result\n if (themePrefixes.length > 1) {\n result.themePrefixes = themePrefixes;\n }\n else {\n // All icons have same prefix - delete it\n sortedIcons.forEach((icon) => delete icon.themePrefix);\n }\n }\n // Same for suffixes\n if (themeSuffixes.length) {\n let missing = false;\n sortedIcons.forEach((icon) => {\n if (icon.themeSuffix === void 0) {\n icon.themeSuffix = '';\n missing = true;\n }\n });\n if (missing) {\n themeSuffixes.push('');\n }\n // Add suffixes to result\n if (themeSuffixes.length > 1) {\n result.themeSuffixes = themeSuffixes;\n }\n else {\n // All icons have same suffix - delete it\n sortedIcons.forEach((icon) => delete icon.themeSuffix);\n }\n }\n}\n/**\n * Parse characters map\n */\nfunction parseChars(chars, icons) {\n Object.keys(chars).forEach((char) => {\n const name = chars[char];\n if (icons[name] !== void 0) {\n const icon = icons[name];\n if (icon.chars === void 0) {\n icon.chars = [];\n }\n icon.chars.push(char);\n }\n });\n}\n/**\n * Convert icons to sorted array\n */\nfunction sortIcons(icons) {\n const sortedIcons = [];\n Object.keys(icons)\n .sort((a, b) => a.localeCompare(b))\n .forEach((name) => {\n sortedIcons.push(icons[name]);\n });\n return sortedIcons;\n}\n/**\n * Convert collection data\n */\nfunction dataToCollection(provider, data) {\n if (typeof data !== 'object' || data === null) {\n return null;\n }\n const source = data;\n // Check required fields\n if (typeof source.prefix !== 'string') {\n return null;\n }\n // Create result\n const result = {\n provider,\n prefix: source.prefix,\n name: '',\n total: 0,\n icons: [],\n };\n // Get info\n if (typeof source.info === 'object' && source.info !== null) {\n const info = dataToCollectionInfo(source.info, result.prefix);\n if (info === null) {\n // Invalid info block, so something is wrong\n return null;\n }\n result.info = info;\n }\n // Get collection name\n if (typeof source.name === 'string') {\n result.name = source.name;\n }\n else if (typeof source.title === 'string') {\n // Correct API response\n result.name = source.title;\n }\n else if (result.info !== void 0) {\n result.name = result.info.name;\n }\n else {\n return null;\n }\n // Check for categories\n let tags = typeof source.categories === 'object' && source.categories !== null\n ? Object.keys(source.categories)\n : [];\n let hasUncategorised = false, uncategorisedKey = 'uncategorized';\n ['uncategorized', 'uncategorised'].forEach((attr) => {\n if (typeof source[attr] === 'object' &&\n source[attr] instanceof Array &&\n source[attr].length > 0) {\n uncategorisedKey = attr;\n hasUncategorised = true;\n }\n });\n // Find all icons\n const icons = Object.create(null);\n function addCategory(iconsList, category) {\n let added = false;\n iconsList.forEach((name) => {\n if (typeof name !== 'string') {\n return;\n }\n added = true;\n if (icons[name] === void 0) {\n // Add new icon\n const icon = {\n provider,\n prefix: result.prefix,\n name,\n tags: [category],\n };\n icons[name] = icon;\n return;\n }\n // Add tag to existing icon\n if (icons[name].tags === void 0) {\n icons[name].tags = [];\n }\n if (icons[name].tags.indexOf(category) === -1) {\n icons[name].tags.push(category);\n }\n });\n return added;\n }\n tags = tags.filter((category) => {\n let added = false;\n const categoryItems = source.categories[category];\n if (categoryItems instanceof Array) {\n added = addCategory(categoryItems, category);\n }\n else {\n Object.keys(categoryItems).forEach((subcategory) => {\n const subcategoryItems = categoryItems[subcategory];\n if (subcategoryItems instanceof Array) {\n added = addCategory(subcategoryItems, category) || added;\n }\n });\n }\n return added;\n });\n const hasTags = tags.length > 0;\n // Add uncategorised icons\n if (hasUncategorised) {\n const list = source[uncategorisedKey];\n list.forEach((name) => {\n if (typeof name !== 'string') {\n return;\n }\n if (icons[name] === void 0) {\n // Add new icon\n const icon = {\n provider,\n prefix: result.prefix,\n name: name,\n };\n if (hasTags) {\n icon.tags = [''];\n }\n icons[name] = icon;\n return;\n }\n });\n if (hasTags) {\n tags.push('');\n }\n }\n // Add characters\n if (typeof source.chars === 'object') {\n parseChars(source.chars, icons);\n }\n // Add aliases\n if (typeof source.aliases === 'object') {\n const aliases = source.aliases;\n Object.keys(aliases).forEach((alias) => {\n const name = aliases[alias];\n if (icons[name] !== void 0) {\n const icon = icons[name];\n if (icon.aliases === void 0) {\n icon.aliases = [];\n }\n icon.aliases.push(alias);\n }\n });\n }\n // Convert to sorted array\n const sortedIcons = sortIcons(icons);\n // Check tags\n if (tags.length > 1) {\n result.tags = tags.sort(sortTags);\n }\n else if (hasTags) {\n // Only one tag - delete tags\n sortedIcons.forEach((icon) => {\n delete icon.tags;\n });\n }\n // Add themes\n if (typeof source.themes === 'object' && source.themes !== null) {\n const themes = source.themes;\n parseThemes(themes, sortedIcons, result);\n }\n // Add icons\n result.icons = sortedIcons;\n result.total = result.icons.length;\n if (result.info) {\n result.info.total = result.total;\n }\n return result;\n}\nexports.dataToCollection = dataToCollection;\n/**\n * Convert raw data from icon set\n */\nfunction rawDataToCollection(source) {\n /**\n * Add icon\n */\n function addIcon(name, depth = 0) {\n if (depth > 3) {\n // Alias recursion is too high. Do not make aliases of aliases.\n return null;\n }\n if (icons[name] !== void 0) {\n // Already added\n return name;\n }\n // Add icon\n if (source.icons[name] !== void 0) {\n if (!source.icons[name].hidden) {\n icons[name] = {\n provider: result.provider,\n prefix: result.prefix,\n name,\n tags: [],\n };\n return name;\n }\n return null;\n }\n // Add alias\n if (source.aliases &&\n source.aliases[name] !== void 0 &&\n !source.aliases[name].hidden) {\n // Resolve alias\n const item = source.aliases[name];\n const parent = item.parent;\n // Add parent icon\n const added = addIcon(parent, depth + 1);\n if (added !== null) {\n // Icon was added, which means parent icon is a viable icon\n // Check if new icon is an alias or full icon\n if (!(item.rotate || item.hFlip || item.vFlip)) {\n // Alias\n const parentIcon = icons[added];\n if (!parentIcon.aliases) {\n parentIcon.aliases = [name];\n }\n else if (parentIcon.aliases.indexOf(name) === -1) {\n parentIcon.aliases.push(name);\n }\n return added;\n }\n else {\n // New icon\n icons[name] = {\n provider: result.provider,\n prefix: result.prefix,\n name,\n tags: [],\n };\n return name;\n }\n }\n }\n return null;\n }\n /**\n * Add tag to icons\n */\n function addTag(iconsList, tag) {\n let added = false;\n iconsList.forEach((name) => {\n if (icons[name] !== void 0 &&\n icons[name].tags.indexOf(tag) === -1) {\n icons[name].tags.push(tag);\n added = true;\n }\n });\n return added;\n }\n // Check required fields\n if (typeof source.prefix !== 'string') {\n return null;\n }\n const result = {\n provider: typeof source.provider === 'string' ? source.provider : '',\n prefix: source.prefix,\n name: '',\n total: 0,\n icons: [],\n };\n // Get required info\n if (typeof source.info !== 'object' || source.info === null) {\n return null;\n }\n const info = dataToCollectionInfo(source.info, result.prefix);\n if (info === null) {\n // Invalid info block, so something is wrong\n return null;\n }\n result.info = info;\n // Get collection name\n result.name = result.info.name;\n // Find all icons\n const icons = Object.create(null);\n Object.keys(source.icons).forEach((name) => addIcon(name));\n if (typeof source.aliases === 'object') {\n Object.keys(source.aliases).forEach((name) => addIcon(name));\n }\n const iconNames = Object.keys(icons);\n // Check for categories\n const tags = [];\n if (typeof source.categories === 'object' && source.categories !== null) {\n let hasUncategorised = false;\n const categories = source.categories;\n Object.keys(categories).forEach((category) => {\n const categoryItems = categories[category];\n // Array\n if (categoryItems instanceof Array) {\n if (addTag(categoryItems, category)) {\n tags.push(category);\n }\n }\n else if (typeof categoryItems === 'object') {\n // Sub-categories. No longer used, but can be found in some older icon sets\n Object.keys(categoryItems).forEach((subcategory) => {\n const subcategoryItems = categoryItems[subcategory];\n if (subcategoryItems instanceof Array) {\n if (addTag(subcategoryItems, category) &&\n tags.indexOf(category) === -1) {\n tags.push(category);\n }\n }\n });\n }\n });\n // Check if icons without categories exist\n iconNames.forEach((name) => {\n if (!icons[name].tags.length) {\n icons[name].tags.push('');\n hasUncategorised = true;\n }\n });\n if (hasUncategorised) {\n tags.push('');\n }\n }\n // Remove tags if there are less than 2 categories\n if (tags.length < 2) {\n Object.keys(icons).forEach((name) => {\n delete icons[name].tags;\n });\n }\n else {\n result.tags = tags.sort(sortTags);\n }\n // Add characters\n if (typeof source.chars === 'object') {\n parseChars(source.chars, icons);\n }\n // Sort icons\n const sortedIcons = sortIcons(icons);\n // Add themes\n if (typeof source.themes === 'object' && source.themes !== null) {\n const themes = source.themes;\n parseThemes(themes, sortedIcons, result);\n }\n // Add icons\n result.icons = sortedIcons;\n result.total = result.info.total = result.icons.length;\n return result;\n}\nexports.rawDataToCollection = rawDataToCollection;\n/**\n * Sort categories\n */\nfunction sortTags(a, b) {\n if (a === '') {\n return 1;\n }\n if (b === '') {\n return -1;\n }\n return a.localeCompare(b);\n}\n//# sourceMappingURL=collection.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.autoIndexCollections = exports.filterCollections = exports.collectionsPrefixes = exports.dataToCollections = void 0;\nconst collection_1 = require(\"./collection\");\n/**\n * Convert data from API to CollectionsList\n */\nfunction dataToCollections(data) {\n const result = Object.create(null);\n const uncategorised = Object.create(null);\n if (typeof data !== 'object' || data === null) {\n return result;\n }\n // Assume Record<prefix, item> structure\n Object.keys(data).forEach((prefix) => {\n const row = data[prefix];\n if (typeof row !== 'object' ||\n row === null ||\n typeof row.category !== 'string') {\n return;\n }\n // Convert item\n const item = collection_1.dataToCollectionInfo(row, prefix);\n if (item === null) {\n return;\n }\n // Add category and item\n const category = row.category;\n if (category !== '') {\n if (result[category] === void 0) {\n result[category] = Object.create(null);\n }\n result[category][prefix] = item;\n }\n else {\n uncategorised[prefix] = item;\n }\n });\n // Add uncategorised at the end\n if (Object.keys(uncategorised).length > 0) {\n result[''] = uncategorised;\n }\n return result;\n}\nexports.dataToCollections = dataToCollections;\n/**\n * Get collection prefixes from converted collections list\n */\nfunction collectionsPrefixes(collections) {\n let prefixes = [];\n Object.keys(collections).forEach((category) => {\n prefixes = prefixes.concat(Object.keys(collections[category]));\n });\n return prefixes;\n}\nexports.collectionsPrefixes = collectionsPrefixes;\n/**\n * Filter collections\n */\nfunction filterCollections(collections, callback, keepEmptyCategories = false) {\n const result = Object.create(null);\n // Parse each category\n Object.keys(collections).forEach((category) => {\n if (keepEmptyCategories) {\n result[category] = Object.create(null);\n }\n // Parse each item in category\n Object.keys(collections[category]).forEach((prefix) => {\n const item = collections[category][prefix];\n if (!callback(item, category, prefix)) {\n return;\n }\n // Passed filter\n if (result[category] === void 0) {\n result[category] = Object.create(null);\n }\n result[category][prefix] = item;\n });\n });\n return result;\n}\nexports.filterCollections = filterCollections;\n/**\n * Add indexes to all collections\n */\nfunction autoIndexCollections(collections, start = 0) {\n let index = start;\n Object.keys(collections).forEach((category) => {\n const items = collections[category];\n Object.keys(items).forEach((prefix) => {\n items[prefix].index = index++;\n });\n });\n}\nexports.autoIndexCollections = autoIndexCollections;\n//# sourceMappingURL=collections.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.autoIndexFilters = exports.enableFilters = exports.isFiltersBlockEmpty = exports.defaultFiltersBlock = exports.defaultFilter = void 0;\n/**\n * Default values for filter\n */\nexports.defaultFilter = (title) => {\n return {\n title,\n index: 0,\n disabled: false,\n };\n};\n/**\n * Default value\n */\nexports.defaultFiltersBlock = () => {\n return {\n type: 'filters',\n filterType: '',\n active: null,\n filters: Object.create(null),\n };\n};\n/**\n * Check if block is empty\n */\nfunction isFiltersBlockEmpty(block) {\n return (block === void 0 ||\n block === null ||\n Object.keys(block.filters).length < 2);\n}\nexports.isFiltersBlockEmpty = isFiltersBlockEmpty;\n/**\n * Enable or disable all filters in block\n */\nfunction enableFilters(block, enable = true) {\n Object.keys(block.filters).forEach(filter => {\n block.filters[filter].disabled = !enable;\n });\n}\nexports.enableFilters = enableFilters;\n/**\n * Set indexes to all filters\n *\n * Returns next start index to chain index multiple sets of filters\n */\nfunction autoIndexFilters(block, start = 0) {\n let index = start;\n Object.keys(block.filters).forEach(filter => {\n block.filters[filter].index = index++;\n });\n return index;\n}\nexports.autoIndexFilters = autoIndexFilters;\n//# sourceMappingURL=filters.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.applyCollectionsFilter = exports.disableInactiveCategories = exports.filterCollectionsBlock = exports.iterateCollectionsBlock = exports.collectionsPrefixesWithInfo = exports.getCollectionsBlockPrefixes = exports.getCollectionsBlockCategories = exports.isCollectionsBlockEmpty = exports.defaultCollectionsListBlock = void 0;\nconst collections_1 = require(\"../converters/collections\");\nconst filters_1 = require(\"./filters\");\nconst objects_1 = require(\"../objects\");\n/**\n * Default values\n */\nexports.defaultCollectionsListBlock = () => {\n return {\n type: 'collections-list',\n showCategories: true,\n collections: Object.create(null),\n };\n};\n/**\n * Check if block is empty\n */\nfunction isCollectionsBlockEmpty(block) {\n if (block === void 0 || block === null) {\n return true;\n }\n const categories = Object.keys(block.collections);\n for (let i = 0; i < categories.length; i++) {\n if (Object.keys(block.collections[categories[i]]).length > 0) {\n return false;\n }\n }\n return true;\n}\nexports.isCollectionsBlockEmpty = isCollectionsBlockEmpty;\n/**\n * Get categories\n */\nfunction getCollectionsBlockCategories(block, ignoreEmpty = false) {\n let categories = Object.keys(block.collections);\n if (ignoreEmpty) {\n categories = categories.filter(category => Object.keys(block.collections[category]).length > 0);\n }\n return categories;\n}\nexports.getCollectionsBlockCategories = getCollectionsBlockCategories;\n/**\n * Get all prefixes\n */\nfunction getCollectionsBlockPrefixes(block) {\n return collections_1.collectionsPrefixes(block.collections);\n}\nexports.getCollectionsBlockPrefixes = getCollectionsBlockPrefixes;\n/**\n * Get all collections info as array\n */\nfunction collectionsPrefixesWithInfo(block) {\n const info = [];\n Object.keys(block.collections).forEach(category => {\n const items = block.collections[category];\n Object.keys(items).forEach(prefix => {\n if (items[prefix] !== null) {\n info.push(items[prefix]);\n }\n });\n });\n return info;\n}\nexports.collectionsPrefixesWithInfo = collectionsPrefixesWithInfo;\n/**\n * Iterate collections block\n */\nfunction iterateCollectionsBlock(block, callback) {\n Object.keys(block.collections).forEach(category => {\n const items = block.collections[category];\n Object.keys(items).forEach(prefix => {\n callback(items[prefix], prefix, category);\n });\n });\n}\nexports.iterateCollectionsBlock = iterateCollectionsBlock;\n/**\n * Filter collections list (creates new block)\n */\nfunction filterCollectionsBlock(block, callback, keepEmptyCategories = false) {\n const result = {\n type: 'collections-list',\n showCategories: block.showCategories,\n collections: collections_1.filterCollections(block.collections, callback, keepEmptyCategories),\n };\n return result;\n}\nexports.filterCollectionsBlock = filterCollectionsBlock;\n/**\n * Remove all inactive categories\n */\nfunction disableInactiveCategories(block, category) {\n if (category === null) {\n return block;\n }\n const result = {\n type: 'collections-list',\n showCategories: block.showCategories,\n collections: Object.create(null),\n };\n if (block.collections[category] !== void 0) {\n result.collections[category] = block.collections[category];\n }\n return result;\n}\nexports.disableInactiveCategories = disableInactiveCategories;\n/**\n * List of keys to apply filter to\n */\nconst filterKeys = [\n 'prefix',\n 'name',\n 'author',\n 'license',\n 'category',\n 'palette',\n 'height',\n];\n/**\n * Apply filter to collections list and to collections filters\n */\nfunction applyCollectionsFilter(block, filter, filters) {\n const keyword = filter.keyword.trim();\n const hasFilters = filters !== null && filters.filterType === 'categories';\n const filtersList = filters;\n if (keyword === '') {\n // Empty\n if (hasFilters) {\n // Enable all filters\n filters_1.enableFilters(filtersList, true);\n }\n return block;\n }\n // Disable all filters, will re-enable them again during filter process\n const activeCategories = {};\n if (hasFilters) {\n filters_1.enableFilters(filtersList, false);\n }\n // Filter collections block\n return filterCollectionsBlock(block, (item, category) => {\n for (let i = filterKeys.length - 1; i >= 0; i--) {\n // Get key\n const key = filterKeys[i];\n if (item[key] === void 0) {\n continue;\n }\n // Test value\n if (objects_1.match(item[key], keyword)) {\n // Enable category in category filters\n if (hasFilters) {\n if (activeCategories[category] !== true) {\n activeCategories[category] = true;\n if (filtersList.filters[category] !== void 0) {\n filtersList.filters[category].disabled = false;\n }\n }\n }\n return true;\n }\n }\n return false;\n }, false);\n}\nexports.applyCollectionsFilter = applyCollectionsFilter;\n//# sourceMappingURL=collections-list.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCollectionTitle = exports.getCollectionInfo = exports.setCollectionInfo = void 0;\n/**\n * Set data\n */\nfunction setCollectionInfo(storage, provider, prefix, data) {\n if (storage[provider] === void 0) {\n storage[provider] = Object.create(null);\n }\n const providerData = storage[provider];\n if (providerData[prefix] === void 0 || data.index) {\n // Overwrite previous entry only if index is set\n providerData[prefix] = data;\n }\n}\nexports.setCollectionInfo = setCollectionInfo;\n/**\n * Get data\n */\nfunction getCollectionInfo(storage, provider, prefix) {\n return storage[provider] !== void 0 && storage[provider][prefix] === void 0\n ? null\n : storage[provider][prefix];\n}\nexports.getCollectionInfo = getCollectionInfo;\n/**\n * Get collection title (or prefix if not available)\n */\nfunction getCollectionTitle(storage, provider, prefix) {\n if (storage[provider] === void 0 || storage[provider][prefix] === void 0) {\n return prefix;\n }\n return storage[provider][prefix].name;\n}\nexports.getCollectionTitle = getCollectionTitle;\n//# sourceMappingURL=collections.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CollectionsView = void 0;\nconst base_1 = require(\"./base\");\nconst collections_filter_1 = require(\"../blocks/collections-filter\");\nconst collections_list_1 = require(\"../blocks/collections-list\");\nconst filters_1 = require(\"../blocks/filters\");\nconst collections_1 = require(\"../converters/collections\");\nconst storage_1 = require(\"../registry/storage\");\nconst collections_2 = require(\"../data/collections\");\n/**\n * Class\n */\nclass CollectionsView extends base_1.BaseView {\n /**\n * Create view\n */\n constructor(instance, route, parent = null) {\n super();\n this._data = null;\n this._blocks = null;\n this.type = 'collections';\n this._instance = instance;\n this.route = route;\n this.provider = route.params.provider;\n this.parent = parent;\n // Check if custom icon set is used\n const registry = storage_1.getRegistry(this._instance);\n const customSets = registry.customIconSets;\n if (customSets.providers[this.provider] !== void 0) {\n this._sources = {\n custom: true,\n api: customSets.merge !== 'only-custom',\n merge: customSets.merge,\n };\n }\n else {\n this._sources = {\n custom: false,\n api: true,\n };\n }\n }\n /**\n * Start loading\n */\n _startLoading() {\n this._startedLoading = true;\n if (!this._sources.api) {\n setTimeout(() => {\n this._parseAPIData(null);\n });\n return;\n }\n this._loadAPI(this.provider, '/collections', {});\n }\n /**\n * Run action on view\n */\n action(action, value) {\n switch (action) {\n // Parent view\n case 'parent':\n this._parentAction(value);\n return;\n // Change provider\n case 'provider':\n if (value !== this.provider) {\n this._providerAction(value);\n }\n return;\n // Global search\n case 'search':\n if (this._sources.api) {\n this._searchAction(this.provider, value);\n }\n return;\n // Filter collections\n case 'filter':\n if (typeof value !== 'string') {\n return;\n }\n value = value.trim().toLowerCase();\n if (this.route.params.filter !== value) {\n this.route.params.filter = value;\n this.blocksRequireUpdate = true;\n }\n else {\n return;\n }\n break;\n // Filter categories\n case 'categories':\n if ((value === null || typeof value === 'string') &&\n value !== this.route.params.category) {\n this.route.params.category = value;\n this.blocksRequireUpdate = true;\n }\n else {\n return;\n }\n break;\n // Select collection, called from child view\n case 'collections-internal':\n if (typeof value !== 'string' || value === '') {\n return;\n }\n this._triggerCollectionAction(value, 1);\n return;\n // Select collection\n case 'collections':\n if (typeof value !== 'string' || value === '') {\n return;\n }\n this._triggerCollectionAction(value, 0);\n return;\n default:\n return;\n }\n // Action has changed something - trigger update event\n this._triggerUpdated();\n }\n /**\n * Create child view for prefix\n */\n _triggerCollectionAction(prefix, levels) {\n // Try to find prefix in collections list\n if (!this.loading && this._data !== null && this.error === '') {\n // Find matching prefix\n const categories = Object.keys(this._data);\n let found = false;\n for (let i = 0; i < categories.length; i++) {\n if (this._data[categories[i]][prefix] !== void 0) {\n found = true;\n break;\n }\n }\n if (!found) {\n return;\n }\n }\n // Create child view\n const registry = storage_1.getRegistry(this._instance);\n const router = registry.router;\n router.createChildView({\n type: 'collection',\n params: {\n provider: this.provider,\n prefix: prefix,\n },\n }, levels);\n }\n /**\n * Render blocks\n */\n render() {\n if (this.loading || this._blocks === null || this._data === null) {\n return null;\n }\n // Check if blocks have been cached or if there is a error\n if (!this.blocksRequireUpdate || this.error !== '') {\n return this._blocks;\n }\n this.blocksRequireUpdate = false;\n // Apply route to blocks\n const blocks = this._blocks;\n const keyword = typeof this.route.params.filter === 'string'\n ? this.route.params.filter\n : '';\n const category = typeof this.route.params.category === 'string'\n ? this.route.params.category\n : null;\n // Set keyword and active category\n blocks.filter.keyword = keyword;\n blocks.categories.active = category;\n // Set collections\n blocks.collections.collections = this._data;\n // Apply search filter and change disabled categories in categories filter\n blocks.collections = collections_list_1.applyCollectionsFilter(blocks.collections, blocks.filter, blocks.categories);\n // Apply category filter\n if (category !== null) {\n blocks.collections = collections_list_1.disableInactiveCategories(blocks.collections, category);\n }\n return blocks;\n }\n /**\n * Get collections block.\n *\n * Used by child view.\n */\n getCollectionsBlock() {\n if (this.loading || this.error !== '') {\n return null;\n }\n const blocks = this.render();\n return blocks !== null && blocks.collections !== null\n ? blocks.collections\n : null;\n }\n /**\n * Parse data from API\n *\n * Should be overwritten by child classes\n */\n _parseAPIData(data) {\n if (this._sources.api && !data) {\n // Error\n this._data = null;\n }\n else {\n // Get list of parsed data\n const parsedData = [];\n if (this._sources.api) {\n parsedData.push({\n isCustom: false,\n categories: collections_1.dataToCollections(data),\n });\n }\n if (this._sources.custom) {\n // Get data\n const registry = storage_1.getRegistry(this._instance);\n const customSets = registry.customIconSets;\n const customCollections = customSets.providers[this.route.params.provider]\n .collections;\n // Unshift or push it, depending on merge order\n parsedData[this._sources.merge === 'custom-first' ? 'unshift' : 'push']({\n isCustom: true,\n categories: customCollections,\n });\n }\n // Setup result as empty object\n this._data = Object.create(null);\n const dataItem = this._data;\n // Store prefixes map to avoid duplicates\n const usedPrefixes = Object.create(null);\n // Parse all data\n parsedData.forEach((item) => {\n // Parse all categories\n const collectionsList = item.categories;\n Object.keys(collectionsList).forEach((category) => {\n const categoryItems = collectionsList[category];\n Object.keys(categoryItems).forEach((prefix) => {\n if (usedPrefixes[prefix] !== void 0) {\n // Prefix has already been parsed\n if (item.isCustom) {\n // Remove previous entry\n delete dataItem[usedPrefixes[prefix]][prefix];\n }\n else {\n // Do not overwrite: always show set from API in case of duplicate entries\n return;\n }\n }\n // Add item\n usedPrefixes[prefix] = category;\n if (dataItem[category] === void 0) {\n dataItem[category] = Object.create(null);\n }\n dataItem[category][prefix] = categoryItems[prefix];\n });\n });\n });\n }\n // Mark as loaded and mark blocks for re-render\n this.loading = false;\n this.blocksRequireUpdate = true;\n this.error = '';\n // Create blocks\n this._blocks = {\n filter: collections_filter_1.defaultCollectionsFilterBlock(),\n categories: filters_1.defaultFiltersBlock(),\n collections: collections_list_1.defaultCollectionsListBlock(),\n };\n this._blocks.categories.filterType = 'categories';\n // Parse data\n if (this._data === null) {\n this.error = data === null ? 'not_found' : 'invalid_data';\n }\n else {\n // Add indexes to collections\n collections_1.autoIndexCollections(this._data);\n // Set collections\n this._blocks.collections.collections = this._data;\n // Get categories\n const categories = collections_list_1.getCollectionsBlockCategories(this._blocks.collections, true);\n if (categories.length === 0) {\n this.error = 'empty';\n }\n else {\n if (categories.length > 1) {\n // Set category filters\n this._blocks.collections.showCategories = true;\n const filters = this._blocks.categories.filters;\n categories.forEach((category) => {\n filters[category] = filters_1.defaultFilter(category);\n });\n filters_1.autoIndexFilters(this._blocks.categories);\n }\n else {\n // Disable category filters\n this._blocks.collections.showCategories = false;\n }\n // Store collections in global data\n const registry = storage_1.getRegistry(this._instance);\n const collections = registry.collections;\n collections_list_1.iterateCollectionsBlock(this._blocks.collections, (item, prefix) => {\n collections_2.setCollectionInfo(collections, this.provider, prefix, item);\n });\n }\n }\n // Send event\n this._triggerLoaded();\n }\n}\nexports.CollectionsView = CollectionsView;\n//# sourceMappingURL=collections.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCollectionInfoBlockEmpty = exports.defaultCollectionInfoBlock = void 0;\n/**\n * Default block values\n */\nexports.defaultCollectionInfoBlock = () => {\n return {\n type: 'collection-info',\n prefix: '',\n info: null,\n };\n};\n/**\n * Check if block is empty\n */\nfunction isCollectionInfoBlockEmpty(block) {\n return block === void 0 || block === null || block.info === null;\n}\nexports.isCollectionInfoBlockEmpty = isCollectionInfoBlockEmpty;\n//# sourceMappingURL=collection-info.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.applyIconFilters = exports.isIconsListBlockEmpty = exports.defaultIconsListBlock = void 0;\nconst filters_1 = require(\"./filters\");\n/**\n * Default block values\n */\nexports.defaultIconsListBlock = () => {\n return {\n type: 'icons-list',\n icons: [],\n };\n};\n/**\n * Check if block is empty\n */\nfunction isIconsListBlockEmpty(block) {\n return block === void 0 || block === null || block.icons.length < 1;\n}\nexports.isIconsListBlockEmpty = isIconsListBlockEmpty;\n/**\n * Icon attributes to search\n */\nconst searchableIconAttributes = ['name', 'chars', 'aliases'];\nconst searchableIconAttributesWithPrefixes = [\n 'prefix',\n 'name',\n 'chars',\n 'aliases',\n];\n/**\n * Apply filters to icons list\n */\nfunction applyIconFilters(block, search, filters = [], searchPrefixes = false) {\n let icons = block.icons.slice(0);\n const searchableAttributes = searchPrefixes\n ? searchableIconAttributesWithPrefixes\n : searchableIconAttributes;\n // Get Icon attribute matching filter\n function iconAttr(key) {\n switch (key) {\n case 'tags':\n return 'tags';\n case 'themePrefixes':\n return 'themePrefix';\n case 'themeSuffixes':\n return 'themeSuffix';\n default:\n return null;\n }\n }\n // Search\n const keyword = search ? search.keyword.trim() : '';\n if (keyword !== '') {\n // Find all icons that match keyword\n const keywords = keyword\n .toLowerCase()\n .split(/[\\s:]/)\n .map(keyword => keyword.trim())\n .filter(keyword => keyword.length > 0);\n if (keywords.length) {\n const searches = searchableAttributes.slice(0);\n keywords.forEach(keyword => {\n let exclude = false;\n if (keyword.slice(0, 1) === '-') {\n exclude = true;\n keyword = keyword.slice(1);\n if (!keyword.length) {\n return;\n }\n }\n icons = icons.filter(item => {\n const icon = item;\n let match = false;\n searches.forEach(attr => {\n if (match || icon[attr] === void 0) {\n return;\n }\n if (typeof icon[attr] === 'string') {\n match =\n icon[attr].indexOf(keyword) !== -1;\n return;\n }\n if (icon[attr] instanceof Array) {\n icon[attr].forEach(value => {\n match = match || value.indexOf(keyword) !== -1;\n });\n }\n });\n return exclude ? !match : match;\n });\n });\n }\n }\n // Toggle filter visibility\n const isSearched = icons.length !== block.icons.length;\n filters.forEach(filter => {\n filters_1.enableFilters(filter, true);\n if (!isSearched) {\n return;\n }\n const attr = iconAttr(filter.filterType);\n if (attr === null) {\n return;\n }\n Object.keys(filter.filters).forEach(match => {\n for (let i = icons.length - 1; i >= 0; i--) {\n const value = icons[i][attr];\n if (value === void 0 || value === null) {\n continue;\n }\n if (typeof value === 'string') {\n if (value === match) {\n return;\n }\n continue;\n }\n if (value instanceof Array && value.indexOf(match) !== -1) {\n return;\n }\n }\n // No matches\n filter.filters[match].disabled = true;\n });\n });\n // Apply filters\n filters.forEach(filter => {\n if (filter.active === null) {\n return;\n }\n const match = filter.active;\n const attr = iconAttr(filter.filterType);\n if (attr === null) {\n return;\n }\n icons = icons.filter(icon => {\n const value = icon[attr];\n if (value === void 0 || value === null) {\n return false;\n }\n if (typeof value === 'string') {\n return value === match;\n }\n if (value instanceof Array) {\n return value.indexOf(match) !== -1;\n }\n return false;\n });\n });\n block.icons = icons;\n return block;\n}\nexports.applyIconFilters = applyIconFilters;\n//# sourceMappingURL=icons-list.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.showPagination = exports.getPageForIndex = exports.maxPage = exports.isPaginationEmpty = exports.defaultPaginationBlock = void 0;\n/**\n * Default values\n */\nexports.defaultPaginationBlock = () => {\n return {\n type: 'pagination',\n page: 0,\n length: 0,\n perPage: 24,\n more: false,\n };\n};\n/**\n * Check if pagination is empty\n */\nfunction isPaginationEmpty(block) {\n return block === void 0 || block === null || block.length <= block.perPage;\n}\nexports.isPaginationEmpty = isPaginationEmpty;\n/**\n * Get maximum page number\n */\nfunction maxPage(block) {\n return block.perPage && block.length > 0\n ? Math.floor((block.length - 1) / block.perPage)\n : 0;\n}\nexports.maxPage = maxPage;\n/**\n * Calculate page where item at index \"index\" is located\n */\nfunction getPageForIndex(perPage, index) {\n return perPage && index > 0 ? Math.floor(index / perPage) : 0;\n}\nexports.getPageForIndex = getPageForIndex;\n/**\n * Get list of pages to show\n */\nfunction showPagination(block) {\n const total = block.length ? maxPage(block) + 1 : 0;\n const pagination = [];\n let i, min;\n // Less than 2 pages\n if (total < 2) {\n return pagination;\n }\n // Show all pages\n // 3 first + total+-2 + 3 last + 2 spacers = 13\n if (total < 14) {\n for (i = 0; i < total; i++) {\n pagination.push(i);\n }\n return pagination;\n }\n // First 3 pages\n for (i = 0; i < Math.min(total, 3); i++) {\n pagination.push(i);\n }\n if ((min = i) >= total) {\n return pagination;\n }\n // Current +- 2 (or - 3 if only 1 page is skipped)\n for (i = min === block.page - 3 ? min : Math.max(block.page - 2, min); i < Math.min(block.page + 3, total); i++) {\n pagination.push(i);\n }\n if ((min = i) >= total) {\n return pagination;\n }\n // Last 3 (or 4 if only 1 page is skipped)\n for (i = min === total - 4 ? total - 4 : Math.max(total - 3, min); i < total; i++) {\n pagination.push(i);\n }\n return pagination;\n}\nexports.showPagination = showPagination;\n//# sourceMappingURL=pagination.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSearchBlockEmpty = exports.defaultSearchBlock = void 0;\n/**\n * Default block values\n */\nexports.defaultSearchBlock = () => {\n return {\n type: 'search',\n keyword: '',\n };\n};\n/**\n * Check if block is empty\n */\nfunction isSearchBlockEmpty(block) {\n return block === void 0 || block === null || block.keyword.trim() === '';\n}\nexports.isSearchBlockEmpty = isSearchBlockEmpty;\n//# sourceMappingURL=search.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CollectionView = void 0;\nconst base_1 = require(\"./base\");\nconst collection_info_1 = require(\"../blocks/collection-info\");\nconst filters_1 = require(\"../blocks/filters\");\nconst collection_1 = require(\"../converters/collection\");\nconst icons_list_1 = require(\"../blocks/icons-list\");\nconst pagination_1 = require(\"../blocks/pagination\");\nconst storage_1 = require(\"../registry/storage\");\nconst search_1 = require(\"../blocks/search\");\nconst collections_list_1 = require(\"../blocks/collections-list\");\nconst collections_1 = require(\"../data/collections\");\nconst filterKeys = [\n 'tags',\n 'themePrefixes',\n 'themeSuffixes',\n];\n/**\n * Class\n */\nclass CollectionView extends base_1.BaseView {\n /**\n * Create view\n */\n constructor(instance, route, parent = null) {\n super();\n this._data = null;\n this._blocks = null;\n this.type = 'collection';\n this._instance = instance;\n this.route = route;\n this.provider = route.params.provider;\n this.parent = parent;\n this.prefix = route.params.prefix;\n // Check if custom icon set is used\n const registry = storage_1.getRegistry(this._instance);\n const customSets = registry.customIconSets;\n if (customSets.providers[this.provider] !== void 0 &&\n customSets.providers[this.provider].data[this.prefix] !== void 0) {\n this._isCustom = true;\n this._data = customSets.providers[this.provider].data[this.prefix];\n }\n else {\n this._isCustom = false;\n }\n // Wait for parent to load if parent view is search or collections list\n this._mustWaitForParent =\n parent !== null &&\n (parent.type === 'search' || parent.type === 'collections');\n }\n /**\n * Start loading\n */\n _startLoading() {\n this._startedLoading = true;\n if (!this._isCustom) {\n this._loadAPI(this.provider, '/collection', {\n info: 'true',\n chars: 'true',\n prefix: this.prefix,\n });\n }\n else {\n setTimeout(() => {\n this._parseAPIData(null);\n });\n }\n }\n /**\n * Run action on view\n */\n action(action, value) {\n switch (action) {\n // Select parent view\n case 'parent':\n this._parentAction(value);\n return;\n // Change provider\n case 'provider':\n if (value !== this.provider) {\n this._providerAction(value);\n }\n return;\n // Global search\n case 'search':\n this._searchAction(this.provider, value);\n return;\n // Search icons\n case 'filter':\n if (typeof value !== 'string') {\n return;\n }\n value = value.trim().toLowerCase();\n if (value === this.route.params.filter) {\n return;\n }\n this.route.params.filter = value;\n this.blocksRequireUpdate = true;\n break;\n // Change current page\n case 'pagination':\n if (typeof value === 'string') {\n value = parseInt(value);\n }\n // Check number\n if (typeof value !== 'number' ||\n isNaN(value) ||\n value < 0 ||\n value === this.route.params.page) {\n return;\n }\n // Change page\n this.route.params.page = value;\n this.blocksRequireUpdate = true;\n break;\n // Filters\n case 'tags':\n this._filterAction('tag', value);\n return;\n case 'themePrefixes':\n this._filterAction('themePrefix', value);\n return;\n case 'themeSuffixes':\n this._filterAction('themeSuffix', value);\n return;\n // Parent view's filter\n case 'collections':\n this._collectionsAction(value);\n return;\n default:\n return;\n }\n // Action has changed something - trigger update event\n this._triggerUpdated();\n }\n /**\n * Filter action\n */\n _filterAction(key, value) {\n if (value !== null && typeof value !== 'string') {\n return;\n }\n if (this.route.params[key] === value) {\n return;\n }\n this.route.params[key] = value;\n this.blocksRequireUpdate = true;\n this._triggerUpdated();\n }\n /**\n * Change active collection\n */\n _collectionsAction(value) {\n if (this.parent === null ||\n (this.parent.type !== 'search' &&\n this.parent.type !== 'collections')) {\n return;\n }\n // If value matches this collection, navigate to parent view\n if (value === this.prefix || value === null) {\n this._parentAction(1);\n return;\n }\n // Run action on parent view\n if (typeof value === 'string') {\n this.parent.action('collections-internal', value);\n }\n }\n /**\n * Render blocks\n */\n render() {\n if (this.loading || this._blocks === null || this._data === null) {\n return null;\n }\n // Check if blocks have been cached or if there is a error\n if (!this.blocksRequireUpdate || this.error !== '') {\n return this._blocks;\n }\n this.blocksRequireUpdate = false;\n // Apply route to blocks\n const blocks = this._blocks;\n // Copy icons\n blocks.icons.icons = this._data.icons.slice(0);\n // Set active filters\n blocks.filter.keyword = this.route.params.filter;\n if (blocks.tags !== null) {\n blocks.tags.active = this.route.params.tag;\n }\n if (blocks.themePrefixes !== null) {\n blocks.themePrefixes.active = this.route.params.themePrefix;\n }\n if (blocks.themeSuffixes !== null) {\n blocks.themeSuffixes.active = this.route.params.themeSuffix;\n }\n // Apply search\n blocks.icons = icons_list_1.applyIconFilters(blocks.icons, blocks.filter, filterKeys\n .filter((key) => blocks[key] !== null)\n .map((key) => blocks[key]));\n // Check pagination\n blocks.pagination.length = blocks.icons.icons.length;\n blocks.pagination.page = this.route.params.page;\n const maximumPage = pagination_1.maxPage(blocks.pagination);\n if (maximumPage < blocks.pagination.page) {\n this.route.params.page = blocks.pagination.page = maximumPage;\n }\n // Apply pagination\n const perPage = blocks.pagination.perPage;\n const startIndex = blocks.pagination.page * perPage;\n blocks.icons.icons = blocks.icons.icons.slice(startIndex, startIndex + perPage);\n return this._blocks;\n }\n /**\n * Parse data from API\n *\n * Should be overwritten by child classes\n */\n _parseAPIData(data) {\n if (!this._isCustom) {\n this._data = collection_1.dataToCollection(this.provider, data);\n }\n // Mark as loaded, mark blocks for re-render and reset error\n this.loading = false;\n this.blocksRequireUpdate = true;\n this.error = '';\n // Create empty blocks\n this._blocks = {\n // Info\n info: collection_info_1.defaultCollectionInfoBlock(),\n // Search\n filter: Object.assign(search_1.defaultSearchBlock(), {\n keyword: this.route.params.filter,\n searchType: 'collection',\n title: this.prefix,\n }),\n // Filters\n collections: null,\n tags: null,\n themePrefixes: null,\n themeSuffixes: null,\n // Icons and pagination\n icons: icons_list_1.defaultIconsListBlock(),\n pagination: pagination_1.defaultPaginationBlock(),\n };\n const initialisedBlocks = this._blocks;\n // Check if data was valid\n if (this._data === null) {\n this.error = data === null ? 'not_found' : 'invalid_data';\n this._triggerLoaded();\n return;\n }\n const parsedData = this._data;\n // Validate prefix\n if (this.prefix !== parsedData.prefix) {\n this.error = 'invalid_data';\n this._triggerLoaded();\n return;\n }\n // Get registry and modules\n const registry = storage_1.getRegistry(this._instance);\n const config = registry.config;\n const collections = registry.collections;\n // Set info\n initialisedBlocks.info.prefix = this.prefix;\n if (parsedData.info !== void 0) {\n // Store info in collections storage\n collections_1.setCollectionInfo(collections, this.provider, this.prefix, parsedData.info);\n }\n // Get info from collections storage because it might include index for color scheme\n initialisedBlocks.info.info = collections_1.getCollectionInfo(collections, this.provider, this.prefix);\n if (initialisedBlocks.info.info !== null) {\n initialisedBlocks.filter.title = initialisedBlocks.info.info.name;\n }\n // Check if there are any icons\n if (parsedData.total < 1) {\n this.error = 'empty';\n }\n else {\n // Create pagination\n const pagination = initialisedBlocks.pagination;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n pagination.perPage = config.ui.itemsPerPage;\n pagination.fullLength = pagination.length = parsedData.icons.length;\n pagination.page = Math.min(this.route.params.page, pagination_1.maxPage(pagination));\n // Copy collections filter from parent view\n if (this.parent && !this.parent.loading) {\n if (this.parent.type === 'search') {\n // Get copy of block from parent view\n const collectionsBlock = this\n .parent.getCollectionsBlock();\n if (collectionsBlock !== null) {\n // Copy block and set active filter\n this._blocks.collections = collectionsBlock;\n this._blocks.collections.active = this.prefix;\n }\n }\n else if (this.parent.type === 'collections') {\n // Find previous / next items\n this._blocks.collections = this._findSiblingCollections();\n }\n }\n // Icon filters\n let startIndex = 0;\n filterKeys.forEach((key) => {\n const dataKey = key;\n if (parsedData[dataKey] !== void 0) {\n const list = parsedData[dataKey];\n if (list instanceof Array && list.length > 1) {\n // Create empty filters block\n const filter = filters_1.defaultFiltersBlock();\n filter.filterType = key;\n initialisedBlocks[key] = filter;\n // Copy all filters\n list.forEach((tag) => {\n filter.filters[tag] = filters_1.defaultFilter(tag);\n });\n // Apply index\n startIndex = filters_1.autoIndexFilters(filter, startIndex);\n }\n }\n });\n }\n // Send event\n this._triggerLoaded();\n }\n /**\n * Find sibling collections from collections list, return them as block\n */\n _findSiblingCollections() {\n const collectionsBlock = this\n .parent.getCollectionsBlock();\n if (collectionsBlock === null) {\n return null;\n }\n const collections = collections_list_1.collectionsPrefixesWithInfo(collectionsBlock);\n const match = collections.find((item) => item.prefix === this.prefix);\n if (match === void 0 || collections.length < 2) {\n return null;\n }\n // Get limit\n const registry = storage_1.getRegistry(this._instance);\n const config = registry.config;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const limit = config.ui.showSiblingCollections;\n // Get items before and after current prefix\n let display = [];\n if (collections.length < limit * 2 + 2) {\n // Display all collections\n display = collections.slice(0);\n }\n else {\n const index = collections.indexOf(match);\n // few items before current\n for (let i = index - limit; i < index; i++) {\n display.push(collections[(i + collections.length) % collections.length]);\n }\n // Current item\n display.push(match);\n // few items after current\n for (let i = index + 1; i <= index + limit; i++) {\n display.push(collections[i % collections.length]);\n }\n }\n // Create block\n const block = filters_1.defaultFiltersBlock();\n block.filterType = 'collections';\n block.active = this.prefix;\n display.forEach((item) => {\n const filter = filters_1.defaultFilter(item.name);\n filter.index = item.index;\n block.filters[item.prefix] = filter;\n });\n return block;\n }\n}\nexports.CollectionView = CollectionView;\n//# sourceMappingURL=collection.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dataToSearchResults = void 0;\nconst icon_1 = require(\"../icon\");\nconst collection_1 = require(\"./collection\");\nfunction dataToSearchResults(provider, data) {\n if (typeof data !== 'object' || data === null) {\n return null;\n }\n // Get source as object\n const source = data;\n if (typeof source.request !== 'object' || source.request === null) {\n return null;\n }\n // Check required attributes\n const request = source.request;\n if (typeof request.query !== 'string') {\n return null;\n }\n if (typeof source.total !== 'number' || typeof source.limit !== 'number') {\n return null;\n }\n // Create result\n const result = {\n provider,\n query: request.query,\n total: source.total,\n limit: source.limit,\n icons: [],\n collections: Object.create(null),\n };\n // Parse all icons\n if (typeof source.collections !== 'object' ||\n !(source.icons instanceof Array)) {\n return null;\n }\n const sourceIcons = source.icons;\n const sourceCollections = source.collections;\n try {\n sourceIcons.forEach((item) => {\n const icon = icon_1.stringToIcon(item, provider);\n if (!icon_1.validateIcon(icon)) {\n throw new Error('Invalid icon');\n }\n result.icons.push(icon);\n const prefix = icon.prefix;\n if (result.collections[prefix] === void 0) {\n // Add collection\n if (sourceCollections[prefix] === void 0) {\n throw new Error(`Missing data for prefix ${prefix}`);\n }\n const info = collection_1.dataToCollectionInfo(sourceCollections[prefix], prefix);\n if (info === null) {\n throw new Error(`Invalid data for prefix ${prefix}`);\n }\n result.collections[prefix] = info;\n }\n });\n }\n catch (err) {\n return null;\n }\n // Overwrite total\n result.total = result.icons.length;\n return result;\n}\nexports.dataToSearchResults = dataToSearchResults;\n//# sourceMappingURL=search.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SearchView = void 0;\nconst base_1 = require(\"./base\");\nconst filters_1 = require(\"../blocks/filters\");\nconst search_1 = require(\"../converters/search\");\nconst icons_list_1 = require(\"../blocks/icons-list\");\nconst pagination_1 = require(\"../blocks/pagination\");\nconst storage_1 = require(\"../registry/storage\");\nconst objects_1 = require(\"../objects\");\nconst collections_1 = require(\"../data/collections\");\n/**\n * Class\n */\nclass SearchView extends base_1.BaseView {\n /**\n * Create view\n */\n constructor(instance, route, parent = null) {\n super();\n this._data = null;\n this._blocks = null;\n this.type = 'search';\n this._instance = instance;\n this.route = route;\n this.provider = route.params.provider;\n this.parent = parent;\n this.keyword = route.params.search;\n // Get number of items per page\n const registry = storage_1.getRegistry(this._instance);\n const config = registry.config;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.itemsPerPage = config.ui.itemsPerPage;\n // Check if full results need to be shown\n if (this.route.params.page > 1) {\n this.route.params.short = false;\n }\n // Set items limit for query\n this.itemsLimit = this.route.params.short ? this.itemsPerPage * 2 : 999;\n }\n /**\n * Start loading\n */\n _startLoading() {\n this._startedLoading = true;\n this._loadAPI(this.provider, '/search', {\n query: this.keyword,\n limit: this.itemsLimit,\n });\n }\n /**\n * Run action on view\n */\n action(action, value) {\n switch (action) {\n // Change to parent view\n case 'parent':\n this._parentAction(value);\n return;\n // Change provider\n case 'provider':\n if (value !== this.provider) {\n this._providerAction(value);\n }\n return;\n // Global search\n case 'search':\n if (typeof value !== 'string') {\n return;\n }\n value = value.trim().toLowerCase();\n if (value === this.keyword) {\n return;\n }\n this._searchAction(this.provider, value);\n return;\n // Change current page\n case 'pagination':\n if (value === 'more' && this._showMoreButton()) {\n // Change to current page + 1\n value = this.route.params.page + 1;\n }\n // Check number\n if (typeof value === 'string') {\n value = parseInt(value);\n }\n if (typeof value !== 'number' ||\n isNaN(value) ||\n value === this.route.params.page ||\n value < 0) {\n return;\n }\n // Check for \"more\"\n if (value > 0 && this._showMoreButton()) {\n // Create sibling route\n this._triggerFullResults(value);\n return;\n }\n this.route.params.page = value;\n this.blocksRequireUpdate = true;\n break;\n // Collections filter\n case 'collections':\n this._collectionsAction(value, 0);\n return;\n // Collections filter, called from child view\n case 'collections-internal':\n this._collectionsAction(value, 1);\n return;\n default:\n return;\n }\n // Action has changed something - trigger update event\n this._triggerUpdated();\n }\n /**\n * Change active collection\n */\n _collectionsAction(value, levels) {\n if (value !== null && typeof value !== 'string') {\n return;\n }\n if (this.loading ||\n this._blocks === null ||\n this._blocks.collections === null) {\n return;\n }\n const registry = storage_1.getRegistry(this._instance);\n const router = registry.router;\n if (value === null) {\n // Change view to search results\n router.setParentView(levels);\n return;\n }\n // Create child view\n const prefix = value;\n router.createChildView({\n type: 'collection',\n params: {\n provider: this.provider,\n prefix,\n filter: this.keyword,\n },\n }, levels);\n }\n /**\n * Show full results\n */\n _triggerFullResults(page) {\n // Create sibling view\n const registry = storage_1.getRegistry(this._instance);\n const router = registry.router;\n router.createChildView({\n type: 'search',\n params: Object.assign({}, this.route.params, {\n page: page,\n short: false,\n }),\n }, 1);\n }\n /**\n * Render blocks\n */\n render() {\n if (this.loading || this._blocks === null || this._data === null) {\n return null;\n }\n // Check if blocks have been cached or if there is a error\n if (!this.blocksRequireUpdate || this.error !== '') {\n return this._blocks;\n }\n this.blocksRequireUpdate = false;\n // Apply route to blocks\n const blocks = this._blocks;\n // Copy icons\n blocks.icons.icons = this._data.icons.slice(0);\n // Set active filters\n if (blocks.collections !== null) {\n blocks.collections.active = null;\n }\n // Check pagination\n blocks.pagination.length = blocks.icons.icons.length;\n blocks.pagination.page = this.route.params.page;\n const maximumPage = pagination_1.maxPage(blocks.pagination);\n if (maximumPage < blocks.pagination.page) {\n this.route.params.page = blocks.pagination.page = maximumPage;\n }\n // Apply pagination\n const startIndex = blocks.pagination.page * this.itemsPerPage;\n blocks.icons.icons = blocks.icons.icons.slice(startIndex, startIndex + this.itemsPerPage);\n return this._blocks;\n }\n /**\n * Get collections block.\n *\n * Used by child views. Result is copied, ready to be modified\n */\n getCollectionsBlock() {\n if (this.loading || this.error !== '') {\n return null;\n }\n const blocks = this.render();\n return blocks !== null && blocks.collections !== null\n ? objects_1.cloneObject(blocks.collections)\n : null;\n }\n /**\n * Check if more results are available\n */\n _showMoreButton() {\n return this._data === null\n ? false\n : this.route.params.short && this._data.total === this._data.limit;\n }\n /**\n * Parse data from API\n *\n * Should be overwritten by child classes\n */\n _parseAPIData(data) {\n this._data = search_1.dataToSearchResults(this.provider, data);\n // Mark as loaded, mark blocks for re-render and reset error\n this.loading = false;\n this.blocksRequireUpdate = true;\n this.error = '';\n // Create empty blocks\n this._blocks = {\n // Filters\n collections: null,\n // Icons and pagination\n icons: icons_list_1.defaultIconsListBlock(),\n pagination: pagination_1.defaultPaginationBlock(),\n };\n const initialisedBlocks = this._blocks;\n // Check if data was valid\n if (this._data === null) {\n this.error = data === null ? 'not_found' : 'invalid_data';\n this._triggerLoaded();\n return;\n }\n const parsedData = this._data;\n // Validate parameters\n if (this.keyword !== parsedData.query) {\n this.error = 'invalid_data';\n this._triggerLoaded();\n return;\n }\n // Overwrite limit\n if (parsedData.limit) {\n this.itemsLimit = parsedData.limit;\n }\n // Check if there are any icons\n if (parsedData.total < 1) {\n this.error = 'empty';\n }\n else {\n // Create pagination\n const pagination = initialisedBlocks.pagination;\n pagination.perPage = this.itemsPerPage;\n pagination.fullLength = pagination.length = parsedData.icons.length;\n pagination.page = Math.min(this.route.params.page, pagination_1.maxPage(pagination));\n // Check if more results are available\n pagination.more = this._showMoreButton();\n // Get all collections\n const prefixes = Object.keys(parsedData.collections);\n // Store collections in global data\n const registry = storage_1.getRegistry(this._instance);\n const collections = registry.collections;\n prefixes.forEach((prefix) => {\n collections_1.setCollectionInfo(collections, this.provider, prefix, parsedData.collections[prefix]);\n });\n // Collections filter\n if (prefixes.length > 1) {\n const block = filters_1.defaultFiltersBlock();\n this._blocks.collections = block;\n block.filterType = 'collections';\n prefixes.forEach((prefix) => {\n block.filters[prefix] = filters_1.defaultFilter(parsedData.collections[prefix].name);\n });\n filters_1.autoIndexFilters(block);\n }\n }\n // Send event\n this._triggerLoaded();\n }\n}\nexports.SearchView = SearchView;\n//# sourceMappingURL=search.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomView = void 0;\nconst base_1 = require(\"./base\");\nconst icons_list_1 = require(\"../blocks/icons-list\");\nconst pagination_1 = require(\"../blocks/pagination\");\nconst storage_1 = require(\"../registry/storage\");\nconst icon_1 = require(\"../icon\");\nconst search_1 = require(\"../blocks/search\");\nconst objects_1 = require(\"../objects\");\n/**\n * Class\n */\nclass CustomView extends base_1.BaseView {\n /**\n * Create view\n */\n constructor(instance, route, parent = null) {\n super();\n this._data = null;\n this._blocks = null;\n this.type = 'custom';\n this._instance = instance;\n this.route = route;\n this.parent = parent;\n this.customType = route.params.customType;\n this._mustWaitForParent = true;\n }\n /**\n * Start loading\n */\n _startLoading() {\n this._startedLoading = true;\n // Send event to load icons on next tick, unless they've been set synchronously after creating instance\n setTimeout(() => {\n if (this._data !== null) {\n return;\n }\n const registry = storage_1.getRegistry(this._instance);\n const events = registry.events;\n // Fire public event, exposed to external code\n events.fire('load-' + this.customType, this.setIcons.bind(this));\n });\n }\n /**\n * Run action on view\n */\n action(action, value) {\n switch (action) {\n // Change view\n case 'parent':\n this._parentAction(value);\n return;\n // Change provider\n case 'provider':\n this._providerAction(value);\n return;\n // Set icons\n case 'set':\n this.setIcons(value);\n // Returning because setIcons will trigger event\n return;\n // Search icons\n case 'filter':\n if (typeof value !== 'string') {\n return;\n }\n value = value.trim().toLowerCase();\n if (value === this.route.params.filter) {\n return;\n }\n this.route.params.filter = value;\n this.blocksRequireUpdate = true;\n break;\n // Change current page\n case 'pagination':\n if (typeof value === 'string') {\n value = parseInt(value);\n }\n // Check number\n if (typeof value !== 'number' ||\n isNaN(value) ||\n value < 0 ||\n value === this.route.params.page) {\n return;\n }\n // Change page\n this.route.params.page = value;\n this.blocksRequireUpdate = true;\n break;\n default:\n return;\n }\n // Action has changed something - trigger update event\n this._triggerUpdated();\n }\n /**\n * Render blocks\n */\n render() {\n if (this.loading || this._blocks === null || this._data === null) {\n return null;\n }\n // Check if blocks have been cached or if there is a error\n if (!this.blocksRequireUpdate || this.error !== '') {\n return this._blocks;\n }\n this.blocksRequireUpdate = false;\n // Apply route to blocks\n const blocks = this._blocks;\n // Copy icons\n blocks.icons.icons = this._data.slice(0);\n // Search icons\n blocks.filter.keyword = this.route.params.filter;\n blocks.icons = icons_list_1.applyIconFilters(blocks.icons, blocks.filter, [], true);\n // Get items per page\n const registry = storage_1.getRegistry(this._instance);\n const config = registry.config;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const itemsPerPage = config.ui.itemsPerPage;\n // Check pagination\n blocks.pagination.length = blocks.icons.icons.length;\n blocks.pagination.page = this.route.params.page;\n const maximumPage = pagination_1.maxPage(blocks.pagination);\n if (maximumPage < blocks.pagination.page) {\n this.route.params.page = blocks.pagination.page = maximumPage;\n }\n // Apply pagination\n const startIndex = blocks.pagination.page * itemsPerPage;\n blocks.icons.icons = blocks.icons.icons.slice(startIndex, startIndex + itemsPerPage);\n return this._blocks;\n }\n /**\n * Set icons\n */\n setIcons(data) {\n this._waitForParent(() => {\n this._setIcons(data);\n });\n }\n _setIcons(data) {\n // Check if data is valid\n let dataArray = data;\n let invalidData = false;\n if (!(dataArray instanceof Array)) {\n invalidData = true;\n dataArray = [];\n }\n // Filter data\n const parsedData = dataArray\n .map((item) => {\n // Convert strings\n if (typeof item === 'string') {\n item = icon_1.stringToIcon(item);\n }\n // Validate object\n if (typeof item === 'object' && icon_1.validateIcon(item)) {\n const icon = item;\n return {\n provider: icon.provider,\n prefix: icon.prefix,\n name: icon.name,\n };\n }\n // Invalid icon\n return null;\n })\n .filter((icon) => icon !== null);\n // Save data\n this._data = parsedData;\n // Mark as loaded, mark blocks for re-render and reset error\n this.loading = false;\n this.blocksRequireUpdate = true;\n this.error = '';\n // Create empty blocks\n this._blocks = {\n // Search\n filter: Object.assign(search_1.defaultSearchBlock(), {\n keyword: this.route.params.filter,\n searchType: 'custom',\n title: this.customType,\n }),\n // Icons and pagination\n icons: icons_list_1.defaultIconsListBlock(),\n pagination: pagination_1.defaultPaginationBlock(),\n };\n const initialisedBlocks = this._blocks;\n // Check if data was valid\n if (invalidData) {\n this.error = data === null ? 'not_found' : 'invalid_data';\n this._triggerLoaded();\n return;\n }\n // Check if there are any icons\n if (parsedData.length < 1) {\n this.error = 'empty';\n }\n else {\n // Get registry and modules\n const registry = storage_1.getRegistry(this._instance);\n const config = registry.config;\n // Create pagination\n const pagination = initialisedBlocks.pagination;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n pagination.perPage = config.ui.itemsPerPage;\n pagination.fullLength = pagination.length = parsedData.length;\n pagination.page = Math.min(this.route.params.page, pagination_1.maxPage(pagination));\n }\n // Send event\n this._triggerLoaded();\n }\n /**\n * Get icons list\n */\n getIcons() {\n if (this.loading || this._blocks === null || this._data === null) {\n return null;\n }\n return objects_1.cloneObject(this._data);\n }\n}\nexports.CustomView = CustomView;\n//# sourceMappingURL=custom.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmptyView = void 0;\nconst base_1 = require(\"./base\");\n/**\n * Class\n */\nclass EmptyView extends base_1.BaseView {\n /**\n * Create view\n */\n constructor(instance, route, parent = null) {\n super();\n this.type = 'empty';\n this._instance = instance;\n this.route = route;\n this.parent = parent;\n }\n /**\n * Start loading\n */\n _startLoading() {\n this._startedLoading = true;\n // Complete on next tick\n setTimeout(() => {\n this.loading = false;\n this._triggerLoaded();\n });\n }\n /**\n * Run action on view\n */\n action(action, value) {\n switch (action) {\n // Navigate to parent view\n case 'parent':\n this._parentAction(value);\n return;\n // Change provider\n case 'provider':\n this._providerAction(value);\n return;\n }\n }\n /**\n * Render blocks\n */\n render() {\n return {};\n }\n}\nexports.EmptyView = EmptyView;\n//# sourceMappingURL=empty.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Router = void 0;\nconst storage_1 = require(\"../registry/storage\");\nconst types_1 = require(\"./types\");\nconst collections_1 = require(\"../views/collections\");\nconst collection_1 = require(\"../views/collection\");\nconst search_1 = require(\"../views/search\");\nconst custom_1 = require(\"../views/custom\");\nconst empty_1 = require(\"../views/empty\");\nconst providers_1 = require(\"../data/providers\");\n/**\n * TypeScript guard\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unused-vars-experimental, @typescript-eslint/no-empty-function\nfunction assertNever(s) { }\n/**\n * Change provider in home route\n */\nfunction changeProvider(route, provider) {\n switch (route.type) {\n case 'collections':\n case 'collection':\n case 'search':\n if (route.params === void 0) {\n route.params = {};\n }\n route.params.provider = provider;\n }\n if (route.parent) {\n changeProvider(route.parent, provider);\n }\n}\n/**\n * Router class\n */\nclass Router {\n /**\n * Constructor\n *\n * @param instance\n * @param callback\n */\n constructor(instance) {\n // Current view\n this._view = null;\n // Currently visible view, could be different than current view\n this._visibleView = null;\n // Timer for replacing view\n this._timer = null;\n // Default API provider\n this.defaultProvider = '';\n this._instance = instance;\n const registry = storage_1.getRegistry(this._instance);\n // Subscribe to view events, handle them in same handler\n const events = registry.events;\n events.subscribe('view-loaded', (view) => {\n this._viewEvent(view);\n });\n events.subscribe('view-updated', (view) => {\n this._viewEvent(view);\n });\n }\n /**\n * Get current error message\n */\n error() {\n return this._visibleView === null || this._visibleView.loading\n ? 'loading'\n : this._visibleView.error;\n }\n /**\n * Render currently visible view\n */\n render() {\n return this._visibleView === null ? null : this._visibleView.render();\n }\n /**\n * Set or get current route\n */\n set route(route) {\n let view;\n // Clean up route\n let cleanRoute = route === null ? null : types_1.objectToRoute(route);\n // Check provider\n if (cleanRoute && cleanRoute.params) {\n const provider = cleanRoute.params\n .provider;\n if (typeof provider === 'string' &&\n provider !== '' &&\n !this._checkProvider(provider)) {\n cleanRoute = null;\n }\n }\n // Attempt to create view\n if (cleanRoute !== null &&\n (view = this._viewFromRoute(cleanRoute)) !== null) {\n this._setView(view, true);\n return;\n }\n // Error - navigate to home\n this.home();\n }\n get route() {\n return this._visibleView === null\n ? null\n : types_1.routeToObject(this._visibleView.route);\n }\n /**\n * Navigate to home\n */\n home(provider = null) {\n const registry = storage_1.getRegistry(this._instance);\n const config = registry.config;\n // Generate route\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const defaultRouteString = config.router.home;\n let route = null;\n if (defaultRouteString !== '') {\n // Use configured route\n route = types_1.objectToRoute(JSON.parse(defaultRouteString));\n }\n else {\n // Detect route. Check custom icon sets first\n const customIconSets = registry.customIconSets;\n const currentProvider = typeof provider === 'string' ? provider : this.defaultProvider;\n if (customIconSets.providers[currentProvider] === void 0) {\n // No custom icon sets, use collections\n route = types_1.objectToRoute({\n type: 'collections',\n });\n }\n else {\n const customSetsData = customIconSets.providers[currentProvider];\n // Custom icon set exists\n let showCollections = customSetsData.total > 1;\n if (!showCollections &&\n customIconSets.merge !== 'only-custom') {\n // Show collections if API provider is valid\n showCollections = this._checkProvider(currentProvider, false);\n }\n route = types_1.objectToRoute(showCollections\n ? {\n type: 'collections',\n params: {\n provider: currentProvider,\n },\n }\n : {\n type: 'collection',\n params: {\n provider: currentProvider,\n prefix: Object.keys(customSetsData.data).shift(),\n },\n });\n }\n }\n if (route === null) {\n throw new Error('Error resetting route');\n }\n // Change default provider\n changeProvider(route, provider === null || !this._checkProvider(provider)\n ? this.defaultProvider\n : provider);\n // Generate view\n const view = this._viewFromRoute(route);\n if (view === null) {\n throw new Error('Error resetting route');\n }\n // Change view\n this._setView(view, true);\n }\n /**\n * Apply action to currently visible view\n */\n action(action, value) {\n if (this._visibleView === null) {\n return;\n }\n // If visible view does not match current view, reset pending view. Action overrides previous view change\n this._changeCurrentView();\n // Apply action to current view\n this._visibleView.action(action, value);\n }\n /**\n * Set icons to view with matching customType\n *\n * View must be visible or pending\n */\n setCustomIcons(customType, icons) {\n const view = this._getCustomView(customType);\n if (view !== null) {\n view.setIcons(icons);\n return true;\n }\n return false;\n }\n /**\n * Get custom icons\n */\n getCustomIcons(customType) {\n const view = this._getCustomView(customType);\n return view === null ? null : view.getIcons();\n }\n /**\n * Find custom view\n */\n _getCustomView(customType) {\n if (this._visibleView === null || this._view === null) {\n return null;\n }\n // Check visible view\n if (this._visibleView.type === 'custom' &&\n this._visibleView.type === customType) {\n return this._visibleView;\n }\n // Check pending view\n if (this._view.type === 'custom' &&\n this._view.type === customType) {\n return this._view;\n }\n return null;\n }\n /**\n * Create child view\n */\n createChildView(route, parentLevels = 0) {\n const cleanRoute = route === null ? null : types_1.objectToRoute(route);\n if (cleanRoute === null) {\n return;\n }\n // Set parent view\n let parentView = this._visibleView;\n for (let i = 0; i < parentLevels; i++) {\n if (parentView !== null) {\n parentView = parentView.parent;\n }\n }\n // Create view\n const view = this._viewFromRoute(cleanRoute, parentView);\n if (view === null) {\n return;\n }\n // Reset pending view\n this._changeCurrentView();\n // Set it as new view, but not immediately\n this._setView(view, false);\n }\n /**\n * Go up in parent views tree by \"levels\"\n */\n setParentView(levels = 1) {\n let view = this._visibleView;\n for (let i = 0; i < levels; i++) {\n if (view === null || view.parent === null) {\n return;\n }\n view = view.parent;\n }\n if (view !== this._visibleView) {\n this._setView(view, true);\n }\n }\n /**\n * Set view\n */\n _setView(view, immediate) {\n this._view = view;\n view.startLoading();\n if ((immediate && this._visibleView !== view) ||\n !view.loading ||\n this._visibleView === null) {\n // Change visible view immediately and trigger event\n this._visibleView = view;\n this._triggerChange(true);\n }\n else {\n // Start timer that will change visible view and trigger event after delay\n this._startTimer();\n }\n }\n /**\n * Reset current view to visible view\n */\n _changeCurrentView() {\n if (this._view !== this._visibleView) {\n this._view = this._visibleView;\n this._stopTimer();\n return true;\n }\n return false;\n }\n /**\n * Change visible view to current view\n */\n _changeVisibleView() {\n if (this._view !== this._visibleView) {\n this._visibleView = this._view;\n this._stopTimer();\n this._triggerChange(true);\n return true;\n }\n return false;\n }\n /**\n * Create view from route\n */\n _viewFromRoute(route, parentView = void 0) {\n // Get parent view\n let parent = null;\n if (parentView !== void 0) {\n parent = parentView;\n route.parent = parentView === null ? null : parentView.route;\n }\n else if (route.parent !== null) {\n parent = this._viewFromRoute(route.parent);\n if (parent === null) {\n return null;\n }\n }\n // Create view\n switch (route.type) {\n case 'collections':\n return new collections_1.CollectionsView(this._instance, route, parent);\n case 'collection':\n return new collection_1.CollectionView(this._instance, route, parent);\n case 'search':\n return new search_1.SearchView(this._instance, route, parent);\n case 'custom':\n return new custom_1.CustomView(this._instance, route, parent);\n case 'empty':\n return new empty_1.EmptyView(this._instance, route, parent);\n default:\n assertNever(route);\n return null;\n }\n }\n /**\n * Handle event from view\n */\n _viewEvent(view) {\n if (view !== this._view) {\n // Action for different view - ignore it\n return;\n }\n // Change visible view if it doesn't match view.\n // Function also calls _triggerChange(true)\n if (this._changeVisibleView()) {\n return;\n }\n // Something changed in visible view\n this._triggerChange(false);\n }\n /**\n * Something has changed in visible view\n */\n _triggerChange(viewChanged) {\n const registry = storage_1.getRegistry(this._instance);\n const events = registry.events;\n // Render blocks first, it might change error or route\n const blocks = this.render();\n // Create item\n const item = {\n viewChanged,\n error: this.error(),\n route: this.route,\n blocks,\n };\n events.fire('render', item);\n }\n /**\n * Start timer to change visible view\n */\n _startTimer() {\n this._stopTimer();\n const registry = storage_1.getRegistry(this._instance);\n const config = registry.config;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const timeout = config.ui.viewUpdateDelay;\n if (!timeout) {\n this._changeVisibleView();\n }\n else {\n // Store current view, change it on timer\n const view = this._view;\n this._timer = setTimeout(() => {\n if (this._view === view) {\n this._changeVisibleView();\n }\n }, timeout);\n }\n }\n /**\n * Stop loading timer\n */\n _stopTimer() {\n if (this._timer !== null) {\n clearTimeout(this._timer);\n this._timer = null;\n }\n }\n /**\n * Check if provider exists\n */\n _checkProvider(provider, checkCustom = true) {\n // Get provider\n const result = providers_1.getProvider(provider);\n if (result !== null) {\n return true;\n }\n // Test custom icon sets. Allow invalid provider if it has custom data\n if (!checkCustom) {\n return false;\n }\n const registry = storage_1.getRegistry(this._instance);\n const customIconSets = registry.customIconSets;\n return customIconSets.providers[provider] !== void 0;\n }\n}\nexports.Router = Router;\n//# sourceMappingURL=router.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertCustomSets = exports.emptyConvertedSet = void 0;\nconst iconify_1 = __importDefault(require(\"@iconify/iconify\"));\nconst collection_1 = require(\"../converters/collection\");\nconst collections_1 = require(\"../converters/collections\");\n/**\n * TypeScript guard\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unused-vars-experimental, @typescript-eslint/no-empty-function\nfunction assertNever(s) { }\n/**\n * Empty\n */\nexports.emptyConvertedSet = {\n merge: 'custom-last',\n providers: Object.create(null),\n};\n/**\n * Convert custom icon sets, return empty set on failure\n */\nfunction convertCustomSets(data, importIcons = true) {\n if (!data.iconSets || !data.iconSets.length) {\n return exports.emptyConvertedSet;\n }\n // Merge\n let merge = 'only-custom';\n switch (data.merge) {\n case 'custom-first':\n case 'custom-last':\n case 'only-custom':\n merge = data.merge;\n break;\n case void 0:\n break;\n default:\n assertNever(data.merge);\n }\n // Set basic data\n const result = {\n merge,\n providers: Object.create(null),\n };\n // Info to parse later\n const rawInfo = Object.create(null);\n // Get all providers, add icon sets to Iconify.\n data.iconSets.forEach((item) => {\n if (typeof item.prefix !== 'string') {\n return;\n }\n // Get/set provider\n if (typeof data.provider === 'string') {\n item.provider = data.provider;\n }\n const provider = typeof item.provider === 'string' ? item.provider : '';\n // Custom info block\n if (!item.info && data.info && data.info[item.prefix]) {\n item.info = data.info[item.prefix];\n }\n // Convert data\n const convertedData = collection_1.rawDataToCollection(item);\n if (!convertedData) {\n return;\n }\n // Add data to result\n if (result.providers[provider] === void 0) {\n result.providers[provider] = {\n total: 0,\n data: Object.create(null),\n collections: {},\n };\n }\n const providerData = result.providers[provider];\n if (providerData.data[convertedData.prefix] !== void 0) {\n // Already exists\n return;\n }\n // Add data\n providerData.data[convertedData.prefix] = convertedData;\n providerData.total++;\n // Store raw info block to convert to collections list later, overwrite count\n if (rawInfo[provider] === void 0) {\n rawInfo[provider] = Object.create(null);\n }\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n const rawItemInfo = Object.assign({}, item.info);\n rawItemInfo.total = convertedData.total;\n rawInfo[provider][convertedData.prefix] = rawItemInfo;\n // Add icons to Iconify\n if (importIcons) {\n iconify_1.default.addCollection(item);\n }\n });\n // Parse collections lists\n Object.keys(rawInfo).forEach((provider) => {\n result.providers[provider].collections = collections_1.dataToCollections(rawInfo[provider]);\n });\n return result;\n}\nexports.convertCustomSets = convertCustomSets;\n//# sourceMappingURL=custom-sets.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Registry = void 0;\nconst config_1 = require(\"../data/config\");\nconst events_1 = require(\"../events\");\nconst fetch_1 = require(\"../api/fetch\");\nconst router_1 = require(\"../route/router\");\nconst storage_1 = require(\"./storage\");\nconst custom_sets_1 = require(\"../data/custom-sets\");\n/**\n * Registry class\n */\nclass Registry {\n constructor(params) {\n this._data = Object.create(null);\n const namespace = typeof params === 'string'\n ? params\n : typeof params === 'object' &&\n typeof params.namespace === 'string'\n ? params.namespace\n : 'iconify';\n this.namespace = namespace;\n // Get unique id based on namespace\n this.id = storage_1.uniqueId(namespace);\n // Add namespace\n this.initialised = storage_1.addRegistry(this);\n // Copy shared data\n this._sharedData = storage_1.getSharedData(namespace);\n // Params\n this.params = typeof params === 'object' ? params : {};\n // Add instance\n this._save();\n }\n /**\n * Save instance in registry list\n */\n _save() {\n storage_1.saveRegistry(this);\n }\n /**\n * Get/set config\n */\n get config() {\n if (this._sharedData.config === void 0) {\n this._sharedData.config = config_1.createConfig(this.params.config);\n }\n return this._sharedData.config;\n }\n set config(value) {\n this._sharedData.config = value;\n }\n /**\n * Get/set events\n */\n get events() {\n if (this._data.events === void 0) {\n this._data.events = new events_1.Events();\n }\n return this._data.events;\n }\n set events(value) {\n this._data.events = value;\n }\n /**\n * Get/set API\n */\n get api() {\n if (this._sharedData.api === void 0) {\n this._sharedData.api = new fetch_1.API(this);\n }\n return this._sharedData.api;\n }\n set api(value) {\n this._sharedData.api = value;\n }\n /**\n * Get/set custom icon sets\n */\n get customIconSets() {\n if (this._data.customIconSets === void 0) {\n this._data.customIconSets = custom_sets_1.emptyConvertedSet;\n }\n return this._data.customIconSets;\n }\n set customIconSets(value) {\n this._data.customIconSets = value;\n }\n /**\n * Get/set collections\n */\n get collections() {\n if (this._sharedData.collections === void 0) {\n this._sharedData.collections = Object.create(null);\n }\n return this._sharedData.collections;\n }\n set collections(value) {\n this._sharedData.collections = value;\n }\n /**\n * Set/set router\n */\n get router() {\n if (this._data.router === void 0) {\n this._data.router = new router_1.Router(this.id);\n }\n return this._data.router;\n }\n set router(value) {\n this._data.router = value;\n }\n /**\n * Set/set route\n */\n get route() {\n return this.router.route;\n }\n set route(value) {\n this.router.route = value;\n }\n /**\n * Get/set custom data\n */\n getCustom(key, local = true) {\n const data = local ? this._data : this._sharedData;\n if (data.custom === void 0) {\n return void 0;\n }\n return data.custom[key];\n }\n setCustom(key, value, local = true) {\n const data = local ? this._data : this._sharedData;\n if (data.custom === void 0) {\n data.custom = Object.create(null);\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const custom = data.custom;\n // Create getter and setter for local properties\n if (local && custom[key] === void 0) {\n Object.defineProperty(this, key, {\n get() {\n return custom[key];\n },\n set(value) {\n custom[key] = value;\n },\n });\n }\n custom[key] = value;\n }\n /**\n * Destroy instance\n */\n destroy() {\n storage_1.destroyRegistry(this);\n }\n}\nexports.Registry = Registry;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBlockEmpty = void 0;\nconst collection_info_1 = require(\"./collection-info\");\nconst collections_filter_1 = require(\"./collections-filter\");\nconst collections_list_1 = require(\"./collections-list\");\nconst filters_1 = require(\"./filters\");\nconst icons_list_1 = require(\"./icons-list\");\nconst pagination_1 = require(\"./pagination\");\nconst search_1 = require(\"./search\");\n/**\n * TypeScript guard\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unused-vars-experimental, @typescript-eslint/no-empty-function\nfunction assertNever(s) { }\n/**\n * Check if block is empty\n */\nfunction isBlockEmpty(block) {\n if (block === void 0 || block === null) {\n return true;\n }\n const type = block.type;\n switch (type) {\n case 'collection-info':\n return collection_info_1.isCollectionInfoBlockEmpty(block);\n case 'collections-filter':\n return collections_filter_1.isCollectionsFilterBlockEmpty(block);\n case 'collections-list':\n return collections_list_1.isCollectionsBlockEmpty(block);\n case 'filters':\n return filters_1.isFiltersBlockEmpty(block);\n case 'icons-list':\n return icons_list_1.isIconsListBlockEmpty(block);\n case 'pagination':\n return pagination_1.isPaginationEmpty(block);\n case 'search':\n return search_1.isSearchBlockEmpty(block);\n default:\n assertNever(type);\n return true;\n }\n}\nexports.isBlockEmpty = isBlockEmpty;\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCoreInstance = exports.IconFinderCore = exports.cloneObject = exports.compareObjects = exports.stringToIcon = exports.compareIcons = exports.validateIcon = exports.iconToString = exports.setComponentsConfig = exports.mergeConfig = exports.customisedConfig = exports.Router = exports.listProviders = exports.convertProviderData = exports.getProvider = exports.addProvider = exports.maxPage = exports.showPagination = exports.iterateCollectionsBlock = exports.getCollectionsBlockPrefixes = exports.getCollectionsBlockCategories = exports.isBlockEmpty = void 0;\nconst registry_1 = require(\"./registry\");\nconst storage_1 = require(\"./registry/storage\");\nconst types_1 = require(\"./route/types\");\nconst router_1 = require(\"./route/router\");\nObject.defineProperty(exports, \"Router\", { enumerable: true, get: function () { return router_1.Router; } });\nconst custom_sets_1 = require(\"./data/custom-sets\");\nconst collections_1 = require(\"./data/collections\");\n/**\n * Export data for various blocks\n */\nvar types_2 = require(\"./blocks/types\");\nObject.defineProperty(exports, \"isBlockEmpty\", { enumerable: true, get: function () { return types_2.isBlockEmpty; } });\nvar collections_list_1 = require(\"./blocks/collections-list\");\nObject.defineProperty(exports, \"getCollectionsBlockCategories\", { enumerable: true, get: function () { return collections_list_1.getCollectionsBlockCategories; } });\nObject.defineProperty(exports, \"getCollectionsBlockPrefixes\", { enumerable: true, get: function () { return collections_list_1.getCollectionsBlockPrefixes; } });\nObject.defineProperty(exports, \"iterateCollectionsBlock\", { enumerable: true, get: function () { return collections_list_1.iterateCollectionsBlock; } });\nvar pagination_1 = require(\"./blocks/pagination\");\nObject.defineProperty(exports, \"showPagination\", { enumerable: true, get: function () { return pagination_1.showPagination; } });\nObject.defineProperty(exports, \"maxPage\", { enumerable: true, get: function () { return pagination_1.maxPage; } });\n/**\n * Export functions that are not specific to instance\n */\n/**\n * Export various types and functions that do not depend on core instance\n */\n// Provider\nvar providers_1 = require(\"./data/providers\");\nObject.defineProperty(exports, \"addProvider\", { enumerable: true, get: function () { return providers_1.addProvider; } });\nObject.defineProperty(exports, \"getProvider\", { enumerable: true, get: function () { return providers_1.getProvider; } });\nObject.defineProperty(exports, \"convertProviderData\", { enumerable: true, get: function () { return providers_1.convertProviderData; } });\nObject.defineProperty(exports, \"listProviders\", { enumerable: true, get: function () { return providers_1.listProviders; } });\nvar config_1 = require(\"./data/config\");\nObject.defineProperty(exports, \"customisedConfig\", { enumerable: true, get: function () { return config_1.customisedConfig; } });\nObject.defineProperty(exports, \"mergeConfig\", { enumerable: true, get: function () { return config_1.mergeConfig; } });\nObject.defineProperty(exports, \"setComponentsConfig\", { enumerable: true, get: function () { return config_1.setComponentsConfig; } });\nvar icon_1 = require(\"./icon\");\nObject.defineProperty(exports, \"iconToString\", { enumerable: true, get: function () { return icon_1.iconToString; } });\nObject.defineProperty(exports, \"validateIcon\", { enumerable: true, get: function () { return icon_1.validateIcon; } });\nObject.defineProperty(exports, \"compareIcons\", { enumerable: true, get: function () { return icon_1.compareIcons; } });\nObject.defineProperty(exports, \"stringToIcon\", { enumerable: true, get: function () { return icon_1.stringToIcon; } });\n// Objects\nvar objects_1 = require(\"./objects\");\nObject.defineProperty(exports, \"compareObjects\", { enumerable: true, get: function () { return objects_1.compareObjects; } });\nObject.defineProperty(exports, \"cloneObject\", { enumerable: true, get: function () { return objects_1.cloneObject; } });\n/**\n * Icon Finder Core class\n */\nclass IconFinderCore {\n constructor(params) {\n this.params = params;\n // Get Registry instance\n const registry = (this.registry = new registry_1.Registry(params));\n this.id = registry.id;\n registry.setCustom('core', this, true);\n // Set custom icon sets\n if (params.iconSets) {\n registry.customIconSets = custom_sets_1.convertCustomSets(params.iconSets);\n console.log('Custom sets:', registry.customIconSets);\n }\n // Get other required classes from Registry\n const router = (this.router = registry.router);\n const events = registry.events;\n // Subscribe to events\n events.subscribe('render', this._routerEvent.bind(this));\n if (typeof params.custom === 'object' && params.custom !== null) {\n Object.keys(params.custom).forEach((customType) => {\n events.subscribe('load-' + customType, this._loadCustomIconsEvent.bind(this, customType));\n });\n }\n // Change route on next tick, so callback would be called asynchronously\n setTimeout(() => {\n if (router.route === null) {\n if (params.route !== void 0 && params.route !== null) {\n const route = types_1.objectToRoute(params.route);\n if (route !== null) {\n router.route = route;\n }\n else {\n router.home();\n }\n }\n else if (params.route !== null) {\n router.home();\n }\n }\n });\n }\n /**\n * Get collection information\n */\n getCollection(provider, prefix) {\n return collections_1.getCollectionInfo(this.registry.collections, provider, prefix);\n }\n /**\n * Event was fired by router\n */\n _routerEvent(data) {\n this.params.callback(data, this);\n }\n /**\n * Load data\n */\n _loadCustomIconsEvent(customType, callback) {\n if (this.params.custom === void 0) {\n return;\n }\n this.params.custom[customType](callback);\n }\n /**\n * Destroy instance\n */\n destroy() {\n this.registry.destroy();\n }\n}\nexports.IconFinderCore = IconFinderCore;\n/**\n * Find Icon Finder Core instance for id\n */\nfunction getCoreInstance(id) {\n const registry = storage_1.getRegistry(id);\n return registry\n ? registry.getCustom('core', true)\n : void 0;\n}\nexports.getCoreInstance = getCoreInstance;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.phrases = void 0;\nexports.phrases = {\n lang: 'English',\n search: {\n placeholder: {\n collection: 'Search {name}',\n collections: 'Filter collections',\n },\n defaultPlaceholder: 'Search all icons',\n button: 'Find Icons',\n },\n errors: {\n noCollections: 'No matching icon sets found.',\n noIconsFound: 'No icons found.',\n defaultError: 'Error loading Iconify Icon Finder.',\n custom: {\n loading: 'Loading...',\n timeout: 'Connection timed out.',\n invalid_data: 'Invalid response from Iconify API.',\n empty: 'Nothing to show.',\n not_found: 'Collection {prefix} does not exist.',\n bad_route: 'Invalid route.',\n home: 'Click here to return to main page.',\n },\n },\n icons: {\n header: {\n full: 'Displaying {count} icons:',\n more: 'Displaying {count} icons (click second page to load more results):',\n listMode: 'Display icons as list',\n gridMode: 'Display icons as grid',\n },\n headerWithCount: {\n 0: 'No icons to display.',\n 1: 'Displaying 1 icon:',\n },\n tooltip: {\n size: '\\nSize: {size}',\n colorless: '',\n colorful: '\\nHas palette',\n char: '\\nIcon font character: {char}',\n length: '',\n },\n more: '3 ...',\n moreAsNumber: true,\n },\n filters: {\n 'uncategorised': 'Uncategorised',\n 'collections': 'Filter search results by icon set:',\n 'collections-collections': '',\n 'tags': 'Filter by category:',\n 'themePrefixes': 'Icon type:',\n 'themeSuffixes': 'Icon type:',\n },\n collectionInfo: {\n total: 'Number of icons:',\n height: 'Height of icons:',\n author: 'Author:',\n license: 'License:',\n palette: 'Palette:',\n colorless: 'Colorless',\n colorful: 'Has colors',\n link: 'Show all icons',\n },\n parent: {\n default: 'Return to previous page',\n collections: 'Return to collections list',\n collection: 'Return to {name}',\n search: 'Return to search results',\n },\n collection: {\n by: 'by ',\n },\n providers: {\n section: 'Icons source:',\n add: 'Add Provider',\n addForm: {\n title: \"Enter API provider's host name:\",\n placeholder: 'https://api.iconify.design',\n submit: 'Add API Provider',\n invalid: 'Example of a valid API host name: https://api.iconify.design',\n },\n status: {\n loading: 'Checking {host}...',\n error: '{host} is not a valid Iconify API.',\n exists: 'API from {host} is already available or API has wrong configuration.',\n unsupported: 'API from {host} does not support icon search.',\n },\n },\n footer: {\n iconName: 'Selected icon:',\n iconNamePlaceholder: 'Enter icon by name...',\n },\n footerButtons: {\n submit: 'Submit',\n change: 'Change',\n select: 'Select',\n cancel: 'Cancel',\n close: 'Close',\n },\n footerBlocks: {\n title: 'Customize icon:',\n color: 'Color',\n flip: 'Flip',\n hFlip: 'Horizontal',\n vFlip: 'Vertical',\n rotate: 'Rotate',\n width: 'Width',\n height: 'Height',\n size: 'Size',\n alignment: 'Alignment',\n },\n footerOptionButtons: {\n hFlip: 'Horizontal',\n vFlip: 'Vertical',\n rotate: '{num}' + String.fromCharCode(0x00b0),\n rotateTitle: 'Rotate {num}' + String.fromCharCode(0x00b0),\n },\n code: {\n titles: {\n iconify: 'SVG Framework',\n svg: 'SVG',\n },\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mergePhrases = exports.phrases = void 0;\nvar en_1 = require(\"../phrases/en\");\nObject.defineProperty(exports, \"phrases\", { enumerable: true, get: function () { return en_1.phrases; } });\n/**\n * Merge custom phrases\n */\nfunction mergePhrases(items) {\n function merge(items) {\n const result = Object.create(null);\n // Keys and types\n const keys = Object.create(null);\n items.forEach((item) => {\n for (const key in item) {\n if (keys[key] === void 0) {\n keys[key] =\n item[key] === null\n ? 'null'\n : item[key] instanceof Array\n ? 'array'\n : typeof item[key];\n }\n }\n });\n // Merge all keys\n Object.keys(keys).forEach((key) => {\n const type = keys[key];\n // Get values to merge\n const values = [];\n items.forEach((item) => {\n if (typeof item === 'object' && typeof item[key] === type) {\n values.push(item[key]);\n }\n });\n // Merge\n switch (type) {\n case 'object':\n if (values.length > 1) {\n // Merge objects\n // console.log(`Merging objects for key ${key}`);\n result[key] = merge(values);\n return;\n }\n default:\n // Get last value\n // console.log(`Using last value for key ${key}`);\n result[key] = values.pop();\n }\n });\n return result;\n }\n // console.log('Merging', items);\n return merge(items);\n}\nexports.mergePhrases = mergePhrases;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.init = void 0;\nconst customProviders = {};\nconst defaultProvider = '';\n/**\n * Initialise UI\n */\nfunction init(registry) {\n registry.router.defaultProvider = defaultProvider;\n}\nexports.init = init;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultComponentsConfig = void 0;\n/**\n * Default values\n */\nexports.defaultComponentsConfig = {\n // Icons list mode.\n list: false,\n // True if icons list mode can be changed.\n toggleList: true,\n // Active code tab\n codeTab: '',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Wrapper = void 0;\nconst search_core_1 = require(\"@iconify/search-core\");\nconst phrases_1 = require(\"./modules/phrases\");\nconst init_1 = require(\"./misc/init\");\nconst config_1 = require(\"./misc/config\");\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unused-vars-experimental, @typescript-eslint/no-empty-function\nfunction assertNever(s) { }\nconst customPhrases = { \"search\": { \"placeholder\": { \"collection\": \"Search icons...\" } } };\n// Add components configuration to config object\nsearch_core_1.setComponentsConfig(config_1.defaultComponentsConfig);\n/**\n * Wrapper class\n */\nclass Wrapper {\n /**\n * Constructor\n */\n constructor(params) {\n // Current state, always up to date\n this._state = {\n icon: null,\n };\n // Status\n this._status = 'loading';\n // Container component, added on first render\n this._container = null;\n this._params = params;\n const customState = params.state;\n // Set core parameters\n const coreParams = {\n callback: this._coreCallback.bind(this),\n };\n if (customState && customState.config) {\n coreParams.config = customState.config;\n }\n if (params.iconSets) {\n coreParams.iconSets =\n params.iconSets instanceof Array\n ? {\n iconSets: params.iconSets,\n }\n : params.iconSets;\n // console.log('Params.iconSets:', coreParams.iconSets);\n }\n // Init core\n const core = (this._core = new search_core_1.IconFinderCore(coreParams));\n const registry = (this._registry = core.registry);\n // Set phrases\n registry.setCustom('phrases', phrases_1.mergePhrases([\n phrases_1.phrases,\n customPhrases,\n params.phrases ? params.phrases : {},\n ]));\n // Callback\n registry.setCustom('callback', this._internalCallback.bind(this));\n // Initialise UI\n init_1.init(registry);\n // Set initial state\n const state = this._state;\n state.route = registry.route;\n state.config = search_core_1.customisedConfig(registry.config);\n if (customState) {\n // Set custom stuff\n if (customState.icon) {\n state.icon = customState.icon;\n }\n if (customState.customisations) {\n state.customisations = customState.customisations;\n }\n if (customState.route) {\n setTimeout(() => {\n // Set on next tick\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n registry.route = customState.route;\n });\n }\n }\n }\n /**\n * Get container status\n */\n getStatus() {\n return this._status;\n }\n /**\n * Get current state\n */\n getState() {\n return this._state;\n }\n /**\n * Hide or destroy\n */\n _hide(newStatus) {\n switch (this._status) {\n case 'hidden':\n case 'destroyed':\n // Cannot hide\n return;\n case 'loading':\n case '':\n // Hide\n break;\n default:\n assertNever(this._status);\n }\n this._status = newStatus;\n if (this._container) {\n this._container.$set({\n hidden: true,\n });\n }\n }\n /**\n * Hide\n */\n hide() {\n this._hide('hidden');\n }\n /**\n * Destroy\n */\n destroy() {\n if (this._status !== 'destroyed') {\n this._hide('destroyed');\n this._container = null;\n this._registry.destroy();\n }\n }\n /**\n * Show\n */\n show() {\n switch (this._status) {\n // Cannot show or loading\n case 'destroyed':\n // Already visible or loading\n case 'loading':\n case '':\n return;\n case 'hidden':\n // Show\n break;\n default:\n assertNever(this._status);\n }\n this._status = '';\n if (this._container) {\n this._container.$set({\n hidden: false,\n });\n }\n }\n /**\n * Create Container component\n */\n _initContainer(data) {\n const state = this._state;\n // Check if container should be visible\n let hidden = false;\n switch (this._status) {\n case 'hidden':\n case 'destroyed':\n hidden = true;\n case '':\n case 'loading':\n break;\n default:\n assertNever(this._status);\n }\n // Properties\n const props = {\n ...data,\n selectedIcon: state.icon,\n customisations: state.customisations,\n registry: this._core.registry,\n hidden,\n };\n // Constructor parameters\n const params = {\n target: this._params.container,\n props,\n };\n // Create container\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore\n return new this._params.component(params);\n }\n /**\n * Trigger event\n */\n _triggerEvent(event) {\n if (this._status !== 'destroyed' && this._params.callback) {\n this._params.callback(event);\n }\n }\n /**\n * Callback from core\n */\n _coreCallback(data) {\n if (!this._container) {\n // Create container on first render\n this._container = this._initContainer(data);\n // Mark as loaded\n if (this._status === 'loading') {\n this._status = '';\n this._triggerEvent({\n type: 'load',\n });\n }\n // Save route\n this._setRoute(data.route, false);\n }\n else {\n const container = this._container;\n // Check for changes\n if (data.viewChanged ||\n !search_core_1.compareObjects(data.route, container.$$.props.route)) {\n // Change everything\n container.$set(data);\n // Save route\n this._setRoute(data.route, false);\n }\n else {\n // Route is the same, so if error has changed, only error and blocks need update\n if (data.error === '' ||\n data.error !== container.$$.props.error) {\n container.$set({\n error: data.error,\n blocks: data.blocks,\n });\n }\n }\n }\n }\n /**\n * Select icon\n */\n _internalCallback(event) {\n // console.log('Internal event:', event);\n let icon;\n let selectionEvent;\n const type = event.type;\n switch (type) {\n case 'selection':\n // Selected icon changed: trigger event and update container (this event does not automatically update container)\n selectionEvent = event;\n if (typeof selectionEvent.icon === 'string') {\n icon = search_core_1.stringToIcon(selectionEvent.icon);\n }\n else {\n // Copy object\n icon = selectionEvent.icon\n ? {\n provider: selectionEvent.icon.provider,\n prefix: selectionEvent.icon.prefix,\n name: selectionEvent.icon.name,\n }\n : null;\n }\n this._selectIcon(icon, true);\n return;\n case 'customisation':\n // Customisation was clicked: trigger event\n this._setCustomisations(event.customisations, false);\n return;\n case 'button':\n // Button was clicked: trigger event\n this._triggerEvent({\n type: 'button',\n button: event.button,\n state: this._state,\n });\n return;\n case 'config':\n // Configuration changed: trigger event\n this._state.config = search_core_1.customisedConfig(this._registry.config);\n this._triggerEvent({\n type: 'config',\n config: this._state.config,\n });\n return;\n default:\n // Should never reach this code\n assertNever(type);\n }\n }\n /**\n * Set route\n */\n _setRoute(route, updateContainer) {\n const state = this._state;\n // Check if route has changed\n if (state.route === void 0 || !search_core_1.compareObjects(route, state.route)) {\n state.route = route;\n this._triggerEvent({\n type: 'route',\n route,\n });\n // @TODO: update container\n if (updateContainer) {\n console.log('TODO: update route in container');\n }\n return true;\n }\n return false;\n }\n /**\n * Set route\n */\n setRoute(route) {\n if (this._status === 'destroyed') {\n return;\n }\n const router = this._core.router;\n function loadRoute() {\n if (route === null) {\n // Navigate to home page\n router.home();\n }\n else {\n router.route = route;\n }\n }\n if (!this._container) {\n // Load on next tick\n setTimeout(loadRoute);\n }\n else {\n loadRoute();\n }\n }\n /**\n * Select icon\n */\n _selectIcon(icon, updateContainer) {\n const state = this._state;\n // Check if icon has changed\n if ((!icon && !state.icon) ||\n (state.icon && icon && search_core_1.compareIcons(icon, state.icon))) {\n return false;\n }\n // Change state and container\n state.icon = icon;\n if (updateContainer) {\n if (this._container) {\n this._container.$set({\n selectedIcon: icon,\n });\n }\n else {\n if (!this._params.state) {\n this._params.state = {};\n }\n this._params.state.icon = icon;\n }\n }\n // Trigger event\n this._triggerEvent({\n type: 'icon',\n icon,\n });\n return true;\n }\n /**\n * Select icon\n */\n selectIcon(icon) {\n if (this._status === 'destroyed') {\n return;\n }\n let iconValue;\n // Convert and validate icon\n if (typeof icon === 'string') {\n // Convert from string. Allow empty string to reset selected icon\n if (icon === '') {\n iconValue = null;\n }\n else {\n iconValue = search_core_1.stringToIcon(icon);\n if (!search_core_1.validateIcon(iconValue)) {\n return;\n }\n }\n }\n else {\n iconValue = icon;\n }\n this._selectIcon(iconValue, true);\n }\n /**\n * Change customisations\n */\n _setCustomisations(customisations, updateContainer) {\n const state = this._state;\n if (state.customisations !== void 0 &&\n search_core_1.compareObjects(state.customisations, customisations)) {\n return false;\n }\n // Change state\n state.customisations = customisations;\n // Update container\n if (updateContainer) {\n if (this._container) {\n this._container.$set({\n customisations,\n });\n }\n else {\n if (!this._params.state) {\n this._params.state = {};\n }\n this._params.state.customisations = customisations;\n }\n }\n // Trigger evemt\n this._triggerEvent({\n type: 'customisations',\n customisations,\n });\n return true;\n }\n /**\n * Change customisations\n */\n setCustomisations(customisations) {\n if (this._status === 'destroyed') {\n return;\n }\n this._setCustomisations(customisations, true);\n }\n}\nexports.Wrapper = Wrapper;\n","function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value = ret) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction claim_element(nodes, name, attributes, svg) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeName === name) {\n let j = 0;\n const remove = [];\n while (j < node.attributes.length) {\n const attribute = node.attributes[j++];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n for (let k = 0; k < remove.length; k++) {\n node.removeAttribute(remove[k]);\n }\n return nodes.splice(i, 1)[0];\n }\n }\n return svg ? svg_element(name) : element(name);\n}\nfunction claim_text(nodes, data) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 3) {\n node.data = '' + data;\n return nodes.splice(i, 1)[0];\n }\n }\n return text(data);\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n const z_index = (parseInt(computed_style.zIndex) || 0) - 1;\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', `display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ` +\n `overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: ${z_index};`);\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = `data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}</script>`;\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, false, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor(anchor = null) {\n this.a = anchor;\n this.e = this.n = null;\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.h(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = node.ownerDocument;\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = doc.head.appendChild(element('style')).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error(`Function called outside component initialization`);\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n callbacks.slice().forEach(fn => fn(event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = program.b - t;\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n info.blocks[i] = null;\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error(`Cannot have duplicate keys in a keyed each`);\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += \" \" + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += \" \" + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${String(value).replace(/\"/g, '"').replace(/'/g, ''')}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, options = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, options);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : ``;\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const prop_values = options.props || {};\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : []),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false\n };\n let ready = false;\n $$.ctx = instance\n ? instance(component, prop_values, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor);\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.25.1' }, detail)));\n}\nfunction append_dev(target, node) {\n dispatch_dev(\"SvelteDOMInsert\", { target, node });\n append(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev(\"SvelteDOMInsert\", { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev(\"SvelteDOMRemove\", { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? [\"capture\"] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev(\"SvelteDOMAddEventListener\", { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev(\"SvelteDOMRemoveEventListener\", { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev(\"SvelteDOMRemoveAttribute\", { node, attribute });\n else\n dispatch_dev(\"SvelteDOMSetAttribute\", { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev(\"SvelteDOMSetProperty\", { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev(\"SvelteDOMSetDataset\", { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev(\"SvelteDOMSetData\", { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(`'target' is a required option`);\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn(`Component was already destroyed`); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error(`Infinite loop detected`);\n }\n };\n}\n\nexport { HtmlTag, SvelteComponent, SvelteComponentDev, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, assign, attr, attr_dev, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_space, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, escape, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getContext, get_binding_group_value, get_current_component, get_slot_changes, get_slot_context, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, has_prop, identity, init, insert, insert_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, update_keyed_each, update_slot, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","<script context=\"module\">\n\tconst baseClass = 'iif-block';\n</script>\n\n<script>\n\texport let type = '';\n\texport let name = '';\n\texport let extra = '';\n\n\tlet className;\n\t$: {\n\t\tclassName = baseClass;\n\t\tif (type !== '') {\n\t\t\tlet typeBase = ' ' + baseClass + '--' + type;\n\t\t\tclassName += typeBase;\n\t\t\tif (name !== '') {\n\t\t\t\tclassName += typeBase + '--' + name;\n\t\t\t}\n\t\t}\n\t\tif (extra !== '') {\n\t\t\tclassName += ' ' + baseClass + '--' + extra;\n\t\t}\n\t\t// console.log(`Rendering Block at ${Date.now()}: ${className}`);\n\t}\n</script>\n\n<div class={className}>\n\t<slot />\n</div>\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shortenIconName = void 0;\nfunction shortenIconName(route, selectedIcon, fullName) {\n if (!selectedIcon || !route) {\n return fullName;\n }\n let checkPrefix = false;\n switch (route.type) {\n case 'collections':\n case 'search':\n // Hide only provider\n break;\n case 'collection':\n // Hide prefix if identical\n checkPrefix = true;\n break;\n default:\n return fullName;\n }\n const params = route.params;\n // Get and check provider\n const provider = params && typeof params.provider === 'string' ? params.provider : '';\n if (selectedIcon.provider !== provider) {\n return fullName;\n }\n // Check if icon has same prefix (only for collection)\n if (checkPrefix &&\n selectedIcon.prefix === params.prefix) {\n return selectedIcon.name;\n }\n return selectedIcon.prefix + ':' + selectedIcon.name;\n}\nexports.shortenIconName = shortenIconName;\n","<script context=\"module\">\n\timport Iconify from '@iconify/iconify';\n\n\tIconify.enableCache('local', false);\n\tIconify.enableCache('session', false);\n\n\tconst uiIcons = {\"reset\":\"line-md:close\",\"search\":\"line-md:search\",\"down\":\"line-md:chevron-down\",\"left\":\"line-md:chevron-left\",\"right\":\"line-md:chevron-right\",\"parent\":\"line-md:chevron-left\",\"grid\":\"line-md:grid-3-solid\",\"list\":\"line-md:list-3-solid\",\"error-loading\":\"@icon-finder:iconify-new:error-loading\",\"icon-width\":\"line-md:double-arrow-horizontal\",\"icon-height\":\"line-md:double-arrow-vertical\",\"color\":\"line-md:paint-drop-half-twotone\",\"color-filled\":\"line-md:paint-drop-filled\",\"rotate0\":\"line-md:close\",\"rotate1\":\"line-md:rotate-90\",\"rotate2\":\"line-md:rotate-180\",\"rotate3\":\"line-md:rotate-270\",\"h-flip\":\"line-md:double-arrow-horizontal\",\"v-flip\":\"line-md:double-arrow-vertical\",\"plus\":\"line-md:plus\",\"link\":\"line-md:external-link\"};\n\tconst uiCustomIcons = [{\"provider\":\"icon-finder\",\"prefix\":\"iconify-new\",\"icons\":{\"error-loading\":{\"body\":\"<g clip-path=\\\"url(#clip0)\\\"><path d=\\\"M9.9.2l-.2 1C12.7 2 15 4.7 15 8c0 3.9-3.1 7-7 7s-7-3.1-7-7c0-3.3 2.3-6 5.3-6.8l-.2-1C2.6 1.1 0 4.3 0 8c0 4.4 3.6 8 8 8s8-3.6 8-8c0-3.7-2.6-6.9-6.1-7.8z\\\" fill=\\\"currentColor\\\"/></g><defs><clipPath id=\\\"clip0\\\"><path fill=\\\"#fff\\\" d=\\\"M0 0h16v16H0z\\\"/></clipPath></defs>\"}},\"width\":16,\"height\":16}];\n\tconst uiIconsClass = '';\n\n\t// Add custom icons to Iconify\n\tuiCustomIcons.forEach((data) => {\n\t\tIconify.addCollection(data);\n\t});\n</script>\n\n<script>\n\timport { onDestroy } from 'svelte';\n\n\texport let icon;\n\t/** @type {string} */\n\texport let props;\n\t/** @type {object} */\n\texport let onLoad;\n\n\t/** @type {function} */\n\n\t// Local watched variables. Update them only if needed to avoid duplicate re-renders\n\tlet name = '';\n\tlet loaded = false;\n\tlet svg = '';\n\tlet updateCounter = 0;\n\tlet abortLoader = null;\n\n\t// Preload icons\n\tIconify.loadIcons(Object.values(uiIcons));\n\n\t// Resolve icon name\n\t$: {\n\t\tlet newName =\n\t\t\ttypeof uiIcons[icon] === 'string'\n\t\t\t\t? uiIcons[icon]\n\t\t\t\t: icon.indexOf(':') === -1\n\t\t\t\t? null\n\t\t\t\t: icon;\n\t\t// console.log('Rendering icon:', icon);\n\n\t\tif (newName !== name) {\n\t\t\t// Update variable only when changed because it is a watched variable\n\t\t\tname = newName;\n\t\t}\n\t}\n\n\t// Event listener\n\tconst loadingEvent = () => {\n\t\tif (name !== null && Iconify.iconExists(name) && !loaded) {\n\t\t\t// Force update\n\t\t\tupdateCounter++;\n\t\t}\n\t};\n\n\t// Check if icon has been loaded\n\t$: {\n\t\t// Mention updateCounter to make sure this code is ran\n\t\tupdateCounter;\n\n\t\tif (name !== null) {\n\t\t\tif (loaded !== Iconify.iconExists(name)) {\n\t\t\t\t// Update variable only if it needs to be updated\n\t\t\t\tloaded = !loaded;\n\t\t\t\tif (loaded && typeof onLoad === 'function') {\n\t\t\t\t\tonLoad();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!loaded) {\n\t\t\t\t// Icon is not loaded\n\t\t\t\tif (abortLoader !== null) {\n\t\t\t\t\tabortLoader();\n\t\t\t\t}\n\t\t\t\tabortLoader = Iconify.loadIcons([name], loadingEvent);\n\t\t\t\t// console.log('Missing icon:', name);\n\t\t\t} else {\n\t\t\t\t// Icon is loaded - generate SVG\n\t\t\t\tconst iconProps = Object.assign(\n\t\t\t\t\t{\n\t\t\t\t\t\tinline: false,\n\t\t\t\t\t},\n\t\t\t\t\ttypeof props === 'object' ? props : {}\n\t\t\t\t);\n\t\t\t\t// console.log('Rendering:', name, iconProps);\n\t\t\t\tlet newSVG = Iconify.renderHTML(name, iconProps);\n\t\t\t\t// console.log('Got:', newSVG);\n\t\t\t\tif (uiIconsClass !== '') {\n\t\t\t\t\tnewSVG = newSVG.replace(\n\t\t\t\t\t\t' class=\"iconify ',\n\t\t\t\t\t\t' class=\"iconify ' + uiIconsClass + ' '\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Compare SVG with previous entry to avoid marking 'svg' variable as dirty and causing re-render\n\t\t\t\tif (newSVG !== svg) {\n\t\t\t\t\tsvg = newSVG;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (loaded) {\n\t\t\t// Icon was loaded and is no longer loaded. Icon name changed?\n\t\t\tloaded = false;\n\t\t}\n\t}\n\n\t// Remove event listener\n\tonDestroy(() => {\n\t\tif (abortLoader !== null) {\n\t\t\tabortLoader();\n\t\t\tabortLoader = null;\n\t\t}\n\t});\n</script>\n\n{#if loaded}\n\t{@html svg}\n{:else}\n\t<slot />\n{/if}\n","<script context=\"module\">\n\timport { shortenIconName } from '../../../../misc/shorten-icon-name';\n\n\tconst canShortenName = true;\n</script>\n\n<script>\n\timport Icon from '../../../misc/Icon.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let loaded; /** @type {boolean} */\n\texport let iconName; /** @type {string} */\n\texport let selectedIcon; /** @type {Icon} */\n\texport let route; /** @type {PartialRoute} */\n\n\tconst phrases = registry.phrases.footer;\n\n\tlet text;\n\t$: {\n\t\t// Do not show prefix if viewing collection\n\t\tif (canShortenName) {\n\t\t\ttext = shortenIconName(route, selectedIcon, iconName);\n\t\t}\n\t\tif (!canShortenName) {\n\t\t\ttext = iconName;\n\t\t}\n\t}\n</script>\n\n{#if loaded}\n\t<div class=\"iif-footer-icon-name iif-footer-icon-name--simple\">\n\t\t<dl>\n\t\t\t<dt>{phrases.iconName}</dt>\n\t\t\t<dd>\n\t\t\t\t<Icon icon={iconName} />\n\t\t\t\t<div class=\"iif-footer-icon-name-input\">\n\t\t\t\t\t<span>{text}</span>\n\t\t\t\t</div>\n\t\t\t</dd>\n\t\t</dl>\n\t</div>\n{/if}\n","<script>\n\timport Icon from '../../misc/Icon.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let loaded; /** @type {boolean} */\n\texport let iconName; /** @type {string} */\n\texport let footerOptions; /** @type {object} */\n\n\tconst buttons = footerOptions.buttons;\n\tconst items = Object.keys(buttons).map(key => {\n\t\tlet button = buttons[key];\n\n\t\treturn {\n\t\t\tkey,\n\t\t\tclassName:\n\t\t\t\t'iif-form-button' +\n\t\t\t\t(button.type ? ' iif-form-button--' + button.type : '') +\n\t\t\t\t(button.icon ? ' iif-form-button--with-icon' : ''),\n\t\t\t...button,\n\t\t};\n\t});\n\n\tfunction onClick(button) {\n\t\t// UIFooterButtonEvent\n\t\tregistry.callback({\n\t\t\ttype: 'button',\n\t\t\tbutton,\n\t\t});\n\t}\n</script>\n\n<div class=\"iif-footer-buttons\">\n\t{#each items as item, i (item.key)}\n\t\t{#if loaded || item.always}\n\t\t\t<button class={item.className} on:click={onClick.bind(this, item.key)}>\n\t\t\t\t{#if item.icon}\n\t\t\t\t\t<Icon icon={item.icon} />\n\t\t\t\t{/if}\n\t\t\t\t{item.text.replace('{icon}', iconName)}\n\t\t\t</button>\n\t\t{/if}\n\t{/each}\n</div>\n","/**\n * This file is part of the cyberalien-color package.\n *\n * (c) Vjacheslav Trushkin <cyberalien@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n\"use strict\";\n\n/**\n * List of color keywords\n */\n\n/**\n * List of base colors. From https://www.w3.org/TR/css3-color/\n * @type Object\n */\nconst baseKeywords = {\n silver: [192,192,192],\n gray: [128,128,128],\n white: [255,255,255],\n maroon: [128,0,0],\n red: [255,0,0],\n purple: [128,0,128],\n fuchsia: [255,0,255],\n green: [0,128,0],\n lime: [0,255,0],\n olive: [128,128,0],\n yellow: [255,255,0],\n navy: [0,0,128],\n blue: [0,0,255],\n teal: [0,128,128],\n aqua: [0,255,255]\n};\n\n/**\n * List of extended colors. From https://www.w3.org/TR/css3-color/\n * @type Object\n */\nconst extendedKeywords = {\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n grey: [128, 128, 128],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50],\n\n // Color module level 4\n rebeccapurple: [102, 51, 153]\n};\n\n/**\n * Object that lists color keywords\n */\nconst Keywords = {\n base: baseKeywords,\n extended: extendedKeywords,\n all: Object.assign({}, baseKeywords, extendedKeywords)\n};\n\nmodule.exports = Keywords;\n","/**\n * This file is part of the cyberalien-color package.\n *\n * (c) Vjacheslav Trushkin <cyberalien@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n\"use strict\";\n\nconst Keywords = require('./keywords');\n\n/**\n * Color class\n *\n * You can set and get color or components in HSL and RGB color spaces,\n * import/export color from/to different commonly used formats, mix colors.\n * Class automatically converts between color spaces when needed.\n *\n * Class automatically converts between color spaces when needed.\n */\nclass Color\n{\n /**\n * @ignore\n */\n constructor() {\n // Reset color spaces\n this._rgb = this._rgbRounded = this._hsl = this._hslRounded = this._luminance = null;\n this._alpha = 1;\n }\n\n /**\n * Get keywords object\n *\n * @returns {Object}\n */\n static keywords() {\n return Keywords;\n }\n\n /**\n * Set values\n */\n\n /**\n * Set value in RGB color space.\n * Setting RGB color resets alpha to 1\n *\n * @param {number} red Red color component in 0-255 range\n * @param {number} green Green color component in 0-255 range\n * @param {number} blue Blue color component in 0-255 range\n * @param {boolean} [rounded] True if values are rounded.\n * Used for performance to avoid rounding values when its not needed.\n *\n * @returns {Color} Current color instance for method chaining\n */\n setRGB(red, green, blue, rounded) {\n return this._setRGBArray([red, green, blue, 1], rounded === void 0 ? false : rounded);\n }\n\n /**\n * Set value in RGB color space with alpha channel.\n *\n * @param {number} red Red color component in 0-255 range\n * @param {number} green Green color component in 0-255 range\n * @param {number} blue Blue color component in 0-255 range\n * @param {number} alpha Alpha in 0-1 range\n * @param {boolean} [rounded] True if values are rounded.\n * Used for performance to avoid rounding values when its not needed.\n *\n * @returns {Color} Current color instance for method chaining\n */\n setRGBA(red, green, blue, alpha, rounded) {\n return this._setRGBArray([red, green, blue, alpha], rounded === void 0 ? false : rounded);\n }\n\n /**\n * Set value as RGB array.\n * If alpha channel is missing, alpha will be reset to 1\n *\n * @param {Array} color Array of color components\n * @param {boolean|Array} [rounded] True if values are rounded or array of rounded values.\n * Used for performance to avoid rounding values when its not needed.\n *\n * @returns {Color|null} Current color instance for method chaining, null on failure\n */\n setRGBArray(color, rounded) {\n this._setRGBArray(color.slice(0), typeof rounded === 'boolean' ? rounded : false);\n if (rounded !== void 0 && rounded instanceof Array) {\n this._rgbRounded = rounded.slice(0);\n }\n return this;\n }\n\n /**\n * Set value in HSL color space.\n * Setting HSL color resets alpha to 1\n *\n * @param {number} hue Hue color component in 0-360 range\n * @param {number} saturation Saturation color component in 0-100 range\n * @param {number} lightness Lightness color component in 0-100 range\n * @param {boolean} [rounded] True if values are rounded.\n * Used for performance to avoid rounding values when its not needed.\n *\n * @returns {Color} Current color instance for method chaining\n */\n setHSL(hue, saturation, lightness, rounded) {\n return this._setHSLArray([hue, saturation, lightness, 1], rounded === void 0 ? false : rounded);\n }\n\n /**\n * Set value in HSL color space with alpha channel.\n *\n * @param {number} hue Hue color component in 0-360 range\n * @param {number} saturation Saturation color component in 0-100 range\n * @param {number} lightness Lightness color component in 0-100 range\n * @param {number} alpha Alpha in 0-1 range\n * @param {boolean} [rounded] True if values are rounded.\n * Used for performance to avoid rounding values when its not needed.\n *\n * @returns {Color} Current color instance for method chaining\n */\n setHSLA(hue, saturation, lightness, alpha, rounded) {\n return this._setHSLArray([hue, saturation, lightness, alpha], rounded === void 0 ? false : rounded);\n }\n\n /**\n * Set value as HSL array.\n * If alpha channel is missing, alpha will be reset to 1\n *\n * @param {Array} color Array of color components\n * @param {boolean|Array} [rounded] True if values are rounded or array of rounded values.\n * Used for performance to avoid rounding values when its not needed.\n *\n * @returns {Color|null} Current color instance for method chaining, null on failure\n */\n setHSLArray(color, rounded) {\n this._setHSLArray(color.slice(0), typeof rounded === 'boolean' ? rounded : false);\n if (rounded !== void 0 && rounded instanceof Array) {\n this._hslRounded = rounded.slice(0);\n }\n return this;\n }\n\n /**\n * Set alpha channel value\n *\n * @param {number} value Alpha value in 0-1 range\n *\n * @returns {Color} Current color instance for method chaining\n */\n setAlpha(value) {\n this._alpha = value;\n return this;\n }\n\n /**\n * Set red color component\n *\n * @param {number} value Red color component in 0-255 range\n * @param {boolean} [rounded] True if value is rounded.\n *\n * @returns {Color} Current color instance for method chaining\n */\n setRed(value, rounded) {\n return this._setRGB(0, value, rounded === void 0 ? false : rounded);\n }\n\n /**\n * Set green color component\n *\n * @param {number} value Green color component in 0-255 range\n * @param {boolean} [rounded] True if value is rounded.\n *\n * @returns {Color} Current color instance for method chaining\n */\n setGreen(value, rounded) {\n return this._setRGB(1, value, rounded === void 0 ? false : rounded);\n }\n\n /**\n * Set blue color component\n *\n * @param {number} value Blue color component in 0-255 range\n * @param {boolean} [rounded] True if value is rounded.\n *\n * @returns {Color} Current color instance for method chaining\n */\n setBlue(value, rounded) {\n return this._setRGB(2, value, rounded === void 0 ? false : rounded);\n }\n\n /**\n * Set hue color component\n *\n * @param {number} value Hue color component in 0-360 range\n * @param {boolean} [rounded] True if value is rounded.\n *\n * @returns {Color} Current color instance for method chaining\n */\n setHue(value, rounded) {\n return this._setHSL(0, value, rounded === void 0 ? false : rounded);\n }\n\n /**\n * Set saturation color component\n *\n * @param {number} value Saturation color component in 0-100 range\n * @param {boolean} [rounded] True if value is rounded.\n *\n * @returns {Color} Current color instance for method chaining\n */\n setSaturation(value, rounded) {\n return this._setHSL(1, value, rounded === void 0 ? false : rounded);\n }\n\n /**\n * Set lightness color component\n *\n * @param {number} value Lightness color component in 0-100 range\n * @param {boolean} [rounded] True if value is rounded.\n *\n * @returns {Color} Current color instance for method chaining\n */\n setLightness(value, rounded) {\n return this._setHSL(2, value, rounded === void 0 ? false : rounded);\n }\n\n /**\n * Mix with another color\n *\n * @param {Color} color Color to mix this color with\n * @param {number} [weight] Percentage of mixed color to be included in mix\n *\n * @returns {Color} Current color instance for method chaining\n */\n mix(color, weight) {\n weight = weight === void 0 ? 50 : weight;\n if (weight <= 0) {\n return this;\n }\n if (weight >= 100) {\n this.reset();\n this._setRGBArray(color.getRGBA());\n return this;\n }\n\n if (this._rgb === null) {\n this._convertToRGB();\n }\n\n let rgb = color.getRGBA(),\n mix2 = weight / 100, // weight of another color\n mix1 = 1 - mix2; // weight of this color\n\n return this._setRGBArray([\n this._rgb[0] * mix1 + rgb[0] * mix2,\n this._rgb[1] * mix1 + rgb[1] * mix2,\n this._rgb[2] * mix1 + rgb[2] * mix2,\n this._alpha * mix1 + rgb[3] * mix2\n ]);\n }\n\n /*\n * Get values\n */\n\n /**\n * Get RGB value as array\n *\n * @param {boolean} [round] True if result should be rounded\n *\n * @return {Array} Array of color values\n */\n getRGB(round) {\n if (this._rgb === null) {\n this._convertToRGB();\n }\n if (round && this._rgbRounded === null) {\n this._roundRGB();\n }\n\n return round ? this._rgbRounded.slice(0) : this._rgb.slice(0);\n }\n\n /**\n * Get RGB value as array with alpha channel\n *\n * @param {boolean} [round] True if result should be rounded\n *\n * @return {Array} Array of color values\n */\n getRGBA(round) {\n let result = this.getRGB(round);\n\n result.push(this._alpha);\n return result;\n }\n\n /**\n * Get HSL value as array\n *\n * @param {boolean} [round] True if result should be rounded\n *\n * @return {Array} Array of color values\n */\n getHSL(round) {\n if (this._hsl === null) {\n this._convertToHSL();\n }\n if (round && this._hslRounded === null) {\n this._roundHSL();\n }\n\n return round ? this._hslRounded.slice(0) : this._hsl.slice(0);\n }\n\n /**\n * Get HSL value as array with alpha channel\n *\n * @param {boolean} [round] True if result should be rounded\n *\n * @return {Array} Array of color values\n */\n getHSLA(round) {\n let result = this.getHSL(round);\n\n result.push(this._alpha);\n return result;\n }\n\n /**\n * Get alpha value\n *\n * @returns {number} Alpha value in 0-1 range\n */\n getAlpha() {\n return this._alpha;\n }\n\n /**\n * Get red color component\n *\n * @param {boolean} [round] True if result should be rounded\n *\n * @returns {number} Color component in 0-255 range\n */\n getRed(round) {\n return this._getRGB(0, round);\n }\n\n /**\n * Get green color component\n *\n * @param {boolean} [round] True if result should be rounded\n *\n * @returns {number} Color component in 0-255 range\n */\n getGreen(round) {\n return this._getRGB(1, round);\n }\n\n /**\n * Get blue color component\n *\n * @param {boolean} [round] True if result should be rounded\n *\n * @returns {number} Color component in 0-255 range\n */\n getBlue(round) {\n return this._getRGB(2, round);\n }\n\n /**\n * Get hue color component\n *\n * @param {boolean} [round] True if result should be rounded\n *\n * @returns {number} Color component in 0-360 range\n */\n getHue(round) {\n return this._getHSL(0, round);\n }\n\n /**\n * Get saturation color component\n *\n * @param {boolean} [round] True if result should be rounded\n *\n * @returns {number} Color component in 0-100 range\n */\n getSaturation(round) {\n return this._getHSL(1, round);\n }\n\n /**\n * Get lightness color component\n *\n * @param {boolean} [round] True if result should be rounded\n *\n * @returns {number} Color component in 0-100 range\n */\n getLightness(round) {\n return this._getHSL(2, round);\n }\n\n /**\n * Get luminance\n *\n * @returns {number}\n */\n getLuminance() {\n if (this._luminance !== null) {\n return this._luminance;\n }\n\n let values = [];\n\n if (this._rgb === null) {\n this._convertToRGB();\n }\n\n for (let i = 0; i < 3; i++) {\n let value = this._rgb[i] / 255;\n values[i] = value < .03928 ? value / 12.92 : Math.pow((value + .055) / 1.055, 2.4);\n }\n this._luminance = values[0] * .2126 + values[1] * .7152 + values[2] * 0.0722;\n return this._luminance;\n }\n\n /**\n * Calculate contrast between this and another color\n *\n * @param {Color|number} color Color or color's luminance value\n *\n * @returns {number} Contrast in 1-21 range\n */\n getContrast(color) {\n let lum1 = this.getLuminance() + 0.05,\n lum2 = (typeof color === 'number' ? color : color.getLuminance()) + 0.05;\n\n return lum1 > lum2 ? lum1 / lum2 : lum2 / lum1;\n }\n\n /*\n * Misc functions\n */\n\n /**\n * Reset values.\n *\n * @returns {Color} Current color instance for method chaining\n */\n reset() {\n this._rgb = this._rgbRounded = this._hsl = this._hslRounded = this._luminance = null;\n this._alpha = 1;\n return this;\n }\n\n /**\n * Normalize all values.\n *\n * @returns {Color} Current color instance for method chaining\n */\n normalize() {\n // Normalize RGB color space\n if (this._rgb !== null) {\n this._rgb = [\n this._rgb[0] < 0 ? 0 : (this._rgb[0] > 255 ? 255 : this._rgb[0]),\n this._rgb[1] < 0 ? 0 : (this._rgb[1] > 255 ? 255 : this._rgb[1]),\n this._rgb[2] < 0 ? 0 : (this._rgb[2] > 255 ? 255 : this._rgb[2])\n ];\n if (this._rgbRounded !== null) {\n this._rgbRounded = [\n this._rgbRounded[0] < 0 ? 0 : (this._rgbRounded[0] > 255 ? 255 : this._rgbRounded[0]),\n this._rgbRounded[1] < 0 ? 0 : (this._rgbRounded[1] > 255 ? 255 : this._rgbRounded[1]),\n this._rgbRounded[2] < 0 ? 0 : (this._rgbRounded[2] > 255 ? 255 : this._rgbRounded[2])\n ];\n }\n }\n\n // Normalize HSL color space\n if (this._hsl !== null) {\n this._hsl = [\n this._hsl[0] < 0 ? this._hsl[0] % 360 + 360 : (this._hsl[0] >= 360 ? this._hsl[0] % 360 : this._hsl[0]),\n this._hsl[1] < 0 ? 0 : (this._hsl[1] > 100 ? 100 : this._hsl[1]),\n this._hsl[2] < 0 ? 0 : (this._hsl[2] > 100 ? 100 : this._hsl[2])\n ];\n if (this._hslRounded !== null) {\n this._hslRounded = [\n this._hslRounded[0] < 0 ? this._hslRounded[0] % 360 + 360 : (this._hslRounded[0] >= 360 ? this._hslRounded[0] % 360 : this._hslRounded[0]),\n this._hslRounded[1] < 0 ? 0 : (this._hslRounded[1] > 100 ? 100 : this._hslRounded[1]),\n this._hslRounded[2] < 0 ? 0 : (this._hslRounded[2] > 100 ? 100 : this._hslRounded[2])\n ];\n }\n }\n\n // Normalize alpha\n this._alpha = this._alpha < 0 ? 0 : (this._alpha > 1 ? 1 : this._alpha);\n\n // Reset luminance cache\n this._luminance = null;\n\n return this;\n }\n\n /**\n * Make a clone of color object\n *\n * @returns {Color} New color instance\n */\n clone() {\n let color = new Color();\n if (this._rgb !== null) {\n color.setRGBArray(this._rgb, this._rgbRounded);\n } else {\n color.setHSLArray(this._hsl, this._hslRounded);\n }\n if (this._alpha < 1) {\n color.setAlpha(this._alpha);\n }\n return color;\n }\n\n /**\n * Create keyword from color object\n *\n * @param {boolean} [findClosest] True if function should find closest keyword, false if exact match is required\n * @param {boolean} [useExtended] True if extended keywords list should be used\n *\n * @returns {string|boolean} Keyword, false on error\n */\n toKeyword(findClosest, useExtended) {\n let color,\n keywords,\n match,\n margin,\n componentMargin,\n rgb,\n keyword,\n diff,\n componentDiff,\n maxComponentDiff,\n i;\n\n findClosest = findClosest === void 0 ? true : findClosest;\n useExtended = useExtended === void 0 ? true : useExtended;\n\n // Check for transparent color\n if (this._alpha === 0) {\n return 'transparent';\n }\n\n // Get keywords and rgb color\n if (useExtended) {\n keywords = Keywords.all;\n } else {\n keywords = Keywords.base;\n }\n\n if (this._rgb === null) {\n this._convertToRGB();\n }\n color = this._rgb;\n\n match = false;\n margin = findClosest ? 1000 : 1;\n componentMargin = findClosest ? 256 : 1;\n\n // Check each component\n for (keyword in keywords) {\n //noinspection JSUnfilteredForInLoop\n rgb = keywords[keyword];\n diff = 0;\n maxComponentDiff = 0;\n for (i = 0; i < 3; i++) {\n componentDiff = Math.abs(rgb[i] - color[i]);\n diff += componentDiff;\n if (diff > margin) {\n break;\n }\n maxComponentDiff = Math.max(maxComponentDiff, componentDiff);\n }\n\n // Check for exact match\n if (diff === 0) {\n //noinspection JSUnfilteredForInLoop\n return keyword;\n }\n\n // Compare to previous results\n if (findClosest && diff < margin) {\n match = keyword;\n margin = diff;\n componentMargin = maxComponentDiff;\n } else if (findClosest && diff === margin && maxComponentDiff < componentMargin) {\n // Same overall difference, but each component difference is smaller\n match = keyword;\n componentMargin = maxComponentDiff;\n }\n }\n\n return match;\n }\n\n /**\n * Get hex string\n *\n * @param {boolean} compress True if color should be compressed (such as #123 instead of #112233)\n *\n * @returns {string}\n */\n toHex(compress) {\n return this._getHexValue(compress === void 0 ? false : compress, false);\n }\n\n /**\n * Get hex string with alpha channel\n *\n * @param {boolean} [compress] True if color should be compressed (such as #f123 instead of #ff112233)\n *\n * @returns {string}\n */\n toIEHex(compress) {\n return this._getHexValue(compress === void 0 ? false : compress, true);\n }\n\n /**\n * Get color as rgb or rgba string\n *\n * @param {boolean} [compress] True if string should be compressed\n * @param {boolean} [ignoreAlpha] True if alpha channel should be ignored. Returns rgb() string\n * @param {number} [alphaPrecision] Number of digits after dot in alpha. Default = 2\n *\n * @returns {string}\n */\n toRGBString(compress, ignoreAlpha, alphaPrecision) {\n return this.toString({\n format: 'rgb',\n compress: compress === void 0 ? false : compress,\n ignoreAlpha: ignoreAlpha === void 0 ? false : ignoreAlpha,\n alphaPrecision: alphaPrecision === void 0 ? 2 : alphaPrecision\n });\n }\n\n /**\n * Get color as hsl or hsla string\n *\n * @param {boolean} [compress] True if string should be compressed\n * @param {boolean} [ignoreAlpha] True if alpha channel should be ignored. Returns rgb() string\n * @param {number} [alphaPrecision] Number of digits after dot in alpha. Default = 2\n * @param {number} [roundPrecision] Number of digits after dot in color components. Default = 2\n *\n * @returns {string}\n */\n toHSLString(compress, ignoreAlpha, alphaPrecision, roundPrecision) {\n return this.toString({\n format: 'hsl',\n compress: compress === void 0 ? false : compress,\n ignoreAlpha: ignoreAlpha === void 0 ? false : ignoreAlpha,\n alphaPrecision: alphaPrecision === void 0 ? 2 : alphaPrecision,\n roundPrecision: roundPrecision === void 0 ? 2 : roundPrecision\n });\n }\n\n /**\n * Get value as string\n *\n * @param {object} options List of options. Possible options:\n * format: color format. possible values:\n * auto (default): set automatically.\n * If RGB color is rounded or roundPrecision is set to 0, result color\n * will be in hex (if alpha == 1 or ignored) or rgba format. Otherwise\n * result will be in hsl or hsla format.\n * rgb: rgb(r, g, b) or rgba(r, g, b, a)\n * rgba: rgba(r, g, b, a)\n * hsl: hsl(h, s, l) or hsla(h, s, l, a)\n * hsla: hsla(h, s, l, a)\n * hex: hex string\n * iehex: hex string with alpha channel\n * ignoreAlpha: true if alpha channel should be ignored. default = false\n * This option is ignored when format is set to 'hex' or 'iehex'\n * roundPrecision: number of digits after dot in floating numbers. default = 2\n * Floating numbers are allowed only in hsl() and hsla() colors\n * alphaPrecision: number of digits after dot in alpha channel. default = 2\n * If set to 0 alpha channel is ignored. This option is ignored if alpha value\n * is 1 or ignoreAlpha is set or if selected format doesn't support alpha channel.\n * compress: true if result string should be as short as possible. Examples:\n * compressed:\n * rgba(1,2,3,.4)\n * #123\n * not compressed:\n * rgba(1, 2, 3, 0.4)\n * #112233\n *\n * @returns {string}\n */\n toString(options) {\n let rgb,\n hsl,\n result,\n op = options === void 0 ? {} : options,\n format = op.format === void 0 ? 'auto' : op.format,\n ignoreAlpha = op.ignoreAlpha === void 0 ? false : op.ignoreAlpha,\n roundPrecision = op.roundPrecision === void 0 ? 2 : op.roundPrecision,\n alphaPrecision = op.alphaPrecision === void 0 ? 2 : op.alphaPrecision,\n compress = op.compress === void 0 ? false : op.compress,\n alpha = ignoreAlpha ? 1 : Color._round(this._alpha, alphaPrecision),\n comma = compress ? ',' : ', ';\n\n switch (format) {\n case 'auto':\n // Try hex or rgba format\n if (this._rgb === null) {\n this._convertToRGB();\n }\n if (this._rgbRounded === null) {\n this._roundRGB();\n }\n\n // Check if components are rounded\n if (roundPrecision > 0 && !Color._equalColors(this._rgb, this._rgbRounded)) {\n format = 'hsl';\n break;\n }\n\n // Rounded or precision == 0\n if (alpha === 1) {\n return this._getHexValue(compress, false);\n }\n result = 'rgba(' +\n this._rgbRounded[0] + comma +\n this._rgbRounded[1] + comma +\n this._rgbRounded[2] + comma +\n alpha + ')';\n return compress ? Color._compressString(result) : result;\n\n case 'rgb':\n case 'rgba':\n if (this._rgb === null) {\n this._convertToRGB();\n }\n if (this._rgbRounded === null) {\n this._roundRGB();\n }\n\n result = (alpha === 1 && format !== 'rgba' ? 'rgb(' : 'rgba(') +\n this._rgbRounded[0] + comma +\n this._rgbRounded[1] + comma +\n this._rgbRounded[2] +\n (alpha === 1 && format !== 'rgba' ? '' : comma + alpha) +\n ')';\n return compress ? Color._compressString(result) : result;\n\n case 'hex':\n return this._getHexValue(compress, false);\n\n case 'iehex':\n return this._getHexValue(compress, true);\n }\n\n // Only HSL format left\n if (this._hsl === null) {\n this._convertToHSL();\n }\n\n result = (alpha === 1 && format !== 'hsla' ? 'hsl(' : 'hsla(') +\n Color._round(this._hsl[0], roundPrecision) + comma +\n Color._round(this._hsl[1], roundPrecision) + '%' + comma +\n Color._round(this._hsl[2], roundPrecision) + '%' +\n (alpha === 1 && format !== 'hsla' ? '' : comma + alpha) +\n ')';\n return compress ? Color._compressString(result) : result;\n }\n\n /**\n * Create new color object from keyword\n *\n * @param {string} keyword Color value\n * @param {boolean} [useExtended] True if extended keywords list should be used\n *\n * @returns {Color|null} Color object on success, null on failure\n */\n static fromKeyword(keyword, useExtended) {\n useExtended = useExtended === void 0 ? true : useExtended;\n keyword = keyword.toLowerCase();\n\n if (keyword === 'transparent') {\n return (new Color()).setRGBA(0, 0, 0, 0, true);\n }\n\n let keywords = useExtended ? Keywords.all : Keywords.base;\n if (keywords[keyword] === void 0) {\n return null;\n }\n return (new Color()).setRGBArray(keywords[keyword], true);\n }\n\n /**\n * Create new color object from HEX string\n *\n * @param {string} color Color string\n *\n * @returns {Color|null} Color object on success, null on failure\n */\n static fromHex(color) {\n let red, green, blue,\n alpha = false,\n start = 0;\n\n if (color.slice(0, 1) === '#') {\n color = color.slice(1);\n }\n if (!/^[\\da-f]+$/i.test(color)) {\n return null;\n }\n\n //noinspection FallThroughInSwitchStatementJS\n switch (color.length) {\n case 4:\n alpha = color.slice(0, 1);\n alpha += alpha;\n start ++;\n // no break\n\n case 3:\n red = color.slice(start, ++start);\n green = color.slice(start, ++start);\n blue = color.slice(start, ++start);\n red += red;\n green += green;\n blue += blue;\n break;\n\n case 8:\n alpha = color.slice(0, 2);\n start += 2;\n // no break\n\n case 6:\n red = color.slice(start++, ++start);\n green = color.slice(start++, ++start);\n blue = color.slice(start++, ++start);\n break;\n\n default:\n return null;\n }\n\n return (new Color()).setRGBA(\n parseInt(red, 16),\n parseInt(green, 16),\n parseInt(blue, 16),\n alpha === false ? 1 : parseInt(alpha, 16) / 255,\n true\n );\n }\n\n /**\n * Create new color object from string\n *\n * @param {string} color Color string\n *\n * @returns {Color|null} Color object on success, null on failure\n */\n static fromString(color) {\n let parts, keyword, colors, alpha, result,\n r, g, b, h, s, l, rounded;\n\n if (color.indexOf('(') === -1) {\n // Missing required character. Test for hex string and keyword\n result = Color.fromHex(color);\n return result === null ? Color.fromKeyword(color) : result;\n }\n\n // Remove whitespace and change to lower case\n color = color.toLowerCase().replace(/\\s+/g, '');\n if (color.slice(-1) !== ')') {\n return null;\n }\n\n color = color.slice(0, color.length - 1);\n parts = color.split('(', 2);\n if (parts.length !== 2 || /[^\\d.,%-]/.test(parts[1])) {\n return null;\n }\n\n keyword = parts[0];\n colors = parts[1].split(',');\n alpha = 1;\n\n if (keyword.slice(-1) === 'a') {\n // with alpha\n if (colors.length !== 4) {\n return null;\n }\n alpha = parseFloat(colors.pop());\n if (isNaN(alpha)) {\n alpha = 0;\n }\n else {\n alpha = alpha < 0 ? 0 : (alpha > 1 ? 1 : alpha);\n }\n }\n else if (colors.length !== 3) {\n return null;\n }\n\n switch (keyword)\n {\n case 'rgb':\n case 'rgba':\n if (colors[0].slice(-1) === '%') {\n // All components must be percentages\n if (colors[1].slice(-1) !== '%' || colors[2].slice(-1) !== '%') {\n return null;\n }\n\n // Convert to numbers and normalize colors\n r = parseFloat(colors[0]);\n g = parseFloat(colors[1]);\n b = parseFloat(colors[2]);\n\n return (new Color()).setRGBA(\n isNaN(r) || r < 0 ? 0 : (r > 100 ? 255 : r * 2.55),\n isNaN(g) || g < 0 ? 0 : (g > 100 ? 255 : g * 2.55),\n isNaN(b) || b < 0 ? 0 : (b > 100 ? 255 : b * 2.55),\n alpha\n );\n }\n\n // None of components must be percentages\n if (parts[1].indexOf('%') !== -1) {\n return null;\n }\n\n // Double values are not allowed in rgb()\n r = parseInt(colors[0]);\n g = parseInt(colors[1]);\n b = parseInt(colors[2]);\n\n return (new Color()).setRGBA(\n isNaN(r) || r < 0 ? 0 : (r > 255 ? 255 : r),\n isNaN(g) || g < 0 ? 0 : (g > 255 ? 255 : g),\n isNaN(b) || b < 0 ? 0 : (b > 255 ? 255 : b),\n alpha,\n true\n );\n\n case 'hsl':\n case 'hsla':\n if (colors[0].indexOf('%') !== -1 || colors[1].slice(-1) !== '%' || colors[2].slice(-1) !== '%') {\n // Hue cannot be percentage, saturation and lightness must be percentage\n return null;\n }\n\n // All values could be double numbers\n h = parseFloat(colors[0]);\n s = parseFloat(colors[1]);\n l = parseFloat(colors[2]);\n rounded = parts[1].indexOf('.') === -1;\n\n // Create new object, assign normalized values and return color\n return (new Color()).setHSLA(\n isNaN(h) ? 0 : (h < 0 ? h % 360 + 360 : (h >= 360 ? h % 360 : h)),\n isNaN(s) || s < 0 ? 0 : (s > 100 ? 100 : s),\n isNaN(l) || l < 0 ? 0 : (l > 100 ? 100 : l),\n alpha,\n rounded\n );\n }\n\n return null;\n }\n\n /*\n * Private functions\n *\n * Do not call these functions directly\n */\n\n /**\n * Set value as RGB array\n *\n * @param {Array} color Array of color components\n * @param {boolean} [rounded] True if values are rounded.\n * Used for performance to avoid rounding values when its not needed.\n *\n * @returns {Color|null} Current color instance for method chaining, null on failure\n *\n * @private\n */\n _setRGBArray(color, rounded) {\n if (color.length === 4) {\n this._alpha = color.pop();\n } else if (color.length !== 3) {\n return null;\n } else {\n this._alpha = 1;\n }\n\n this._resetSpaces('rgb');\n this._rgb = color;\n this._rgbRounded = rounded ? color.slice(0) : null;\n\n return this;\n }\n\n /**\n * Set value as HSL array\n *\n * @param {Array} color Array of color components\n * @param {boolean} [rounded] True if values are rounded.\n * Used for performance to avoid rounding values when its not needed.\n *\n * @returns {Color|null} Current color instance for method chaining, null on failure\n *\n * @private\n */\n _setHSLArray(color, rounded) {\n if (color.length === 4) {\n this._alpha = color.pop();\n } else if (color.length !== 3) {\n return null;\n } else {\n this._alpha = 1;\n }\n\n this._resetSpaces('hsl');\n this._hsl = color;\n this._hslRounded = rounded ? color.slice(0) : null;\n\n return this;\n }\n\n /**\n * Internal function used by setRed() and similar functions\n *\n * @param {number} index\n * @param {number} value\n * @param {boolean} rounded\n *\n * @returns {Color}\n *\n * @private\n */\n _setRGB(index, value, rounded) {\n if (this._rgb === null) {\n this._convertToRGB();\n }\n\n // Set value\n this._resetSpaces('rgb');\n this._rgb[index] = value;\n\n // Set rounded value\n if (this._rgbRounded !== null) {\n if (rounded || Math.round(value) === value) {\n this._rgbRounded[index] = value;\n } else {\n this._rgbRounded = null;\n }\n }\n\n return this;\n }\n\n /**\n * Internal function used by setHue() and similar functions\n *\n * @param {number} index\n * @param {number} value\n * @param {boolean} rounded\n *\n * @returns {Color}\n *\n * @private\n */\n _setHSL(index, value, rounded) {\n if (this._hsl === null) {\n this._convertToHSL();\n }\n\n // Set value\n this._resetSpaces('hsl');\n this._hsl[index] = value;\n\n // Set rounded value\n if (this._hslRounded !== null) {\n if (rounded || Math.round(value) === value) {\n this._hslRounded[index] = value;\n } else {\n this._hslRounded = null;\n }\n }\n\n return this;\n }\n\n /**\n * Internal function used by getRed() and similar functions\n *\n * @param {number} index\n * @param {boolean} [round]\n *\n * @returns {*}\n *\n * @private\n */\n _getRGB(index, round) {\n if (this._rgb === null) {\n this._convertToRGB();\n }\n if (round && this._rgbRounded === null) {\n this._roundRGB();\n }\n return round ? this._rgbRounded[index] : this._rgb[index];\n }\n\n /**\n * Internal function used by getHue() and similar functions\n *\n * @param {number} index\n * @param {boolean} [round]\n *\n * @returns {*}\n *\n * @private\n */\n _getHSL(index, round) {\n if (this._hsl === null) {\n this._convertToHSL();\n }\n if (round && this._hslRounded === null) {\n this._roundHSL();\n }\n return round ? this._hslRounded[index] : this._hsl[index];\n }\n\n /**\n * Round RGB colors\n *\n * @private\n */\n _roundRGB() {\n let r = Math.round(this._rgb[0]),\n g = Math.round(this._rgb[1]),\n b = Math.round(this._rgb[2]);\n\n this._rgbRounded = [\n r < 0 ? 0 : (r > 255 ? 255 : r),\n g < 0 ? 0 : (g > 255 ? 255 : g),\n b < 0 ? 0 : (b > 255 ? 255 : b),\n ];\n }\n\n /**\n * Round HSL colors\n *\n * @private\n */\n _roundHSL() {\n let h = Math.round(this._hsl[0]),\n s = Math.round(this._hsl[1]),\n l = Math.round(this._hsl[2]);\n\n this._hslRounded = [\n h < 0 ? h % 360 + 360 : (h >= 360 ? h % 360 : h),\n s < 0 ? 0 : (s > 100 ? 100 : s),\n l < 0 ? 0 : (l > 100 ? 100 : l)\n ];\n }\n\n /**\n * Normalize values\n *\n * @param {number} value Value to normalize\n * @param {number} [max] Maximum value, default = 100\n *\n * @returns {number}\n *\n * @private\n */\n static _normalize(value, max) {\n max = max === void 0 ? 100 : max;\n return value < 0 ? 0 : (value > max ? max : value);\n }\n\n /**\n * Normalize hue value\n *\n * @param {number} value Value to normalize\n *\n * @returns {number}\n *\n * @private\n */\n static _normalizeHue(value) {\n return value < 0 ? value % 360 + 360 : (value >= 360 ? value % 360 : value);\n }\n\n /**\n * Convert HSL color to RGB\n *\n * @param {number} r Red color component in 0-255 range\n * @param {number} g Green color component in 0-255 range\n * @param {number} b Blue color component in 0-255 range\n * @param {boolean} round True if result should be rounded\n *\n * @returns {Array<number>} HSL color. Hue is in 0-360 range, other color components are in 0-100 range\n *\n * @private\n */\n static _rgb2hsl(r, g, b, round) {\n let c1 = r / 255,\n c2 = g / 255,\n c3 = b / 255,\n kmin = Math.min(c1, Math.min(c2, c3)),\n kmax = Math.max(c1, Math.max(c2, c3)),\n l = (kmax + kmin) / 2,\n s, h, delta;\n\n round = round === void 0 ? false : round;\n\n if (kmax === kmin) {\n s = h = 0;\n } else {\n if (l < 0.5) {\n s = (kmax - kmin) / (kmax + kmin);\n } else {\n s = (kmax - kmin) / (2 - kmax - kmin);\n }\n\n delta = kmax - kmin;\n if (kmax === c1) {\n h = (c2 - c3) / delta;\n }\n if (kmax === c2) {\n h = 2 + (c3 - c1) / delta;\n }\n if(kmax === c3) {\n h = 4 + (c1 - c2) / delta;\n }\n\n h = h * 60;\n if (h < 0) {\n h += 360;\n }\n }\n\n return round ? [Math.round(h), Math.round(s * 100), Math.round(l * 100)] : [h, s * 100, l * 100];\n }\n\n /**\n * Convert HSL color to RGB\n *\n * @param {number} h Hue color component in 0-360 range\n * @param {number} s Saturation color component in 0-100 range\n * @param {number} l Lightness color component in 0-100 range\n * @param {boolean} round True if result should be rounded\n *\n * @returns {Array<number>} RGB color. Each color component is in 0-255 range\n *\n * @private\n */\n static _hsl2rgb(h, s, l, round) {\n let lum,\n sat,\n hue,\n m1,\n m2,\n c1,\n c2,\n c3;\n\n function valore(n1, n2, hue) {\n hue = hue < 0 ? hue % 360 + 360 : (hue >= 360 ? hue % 360 : hue);\n\n if (hue >= 240) {\n return n1;\n }\n if (hue < 60) {\n return n1 + (n2 - n1) * hue / 60;\n }\n if (hue < 180) {\n return n2;\n }\n return n1 + (n2 - n1) * (240 - hue) / 60;\n }\n\n round = round === void 0 ? false : round;\n\n hue = h < 0 ? h % 360 + 360 : (h >= 360 ? h % 360 : h);\n sat = s < 0 ? 0 : (s > 100 ? 1 : s / 100);\n lum = l < 0 ? 0 : (l > 100 ? 1 : l / 100);\n\n if (lum <= 0.5) {\n m2 = lum * (1 + sat);\n } else {\n m2 = lum + sat * (1 - lum);\n }\n\n m1 = 2 * lum - m2;\n\n if (sat === 0 && hue === 0) {\n c1 = lum;\n c2 = lum;\n c3 = lum;\n } else {\n c1 = valore(m1, m2, hue + 120);\n c2 = valore(m1, m2, hue);\n c3 = valore(m1, m2, hue - 120);\n }\n\n return [\n round ? Math.round(c1 * 255) : c1 * 255,\n round ? Math.round(c2 * 255) : c2 * 255,\n round ? Math.round(c3 * 255) : c3 * 255\n ];\n }\n\n /**\n * Convert color space to RGB\n *\n * @private\n */\n _convertToRGB() {\n this._rgb = this._hsl === null ? [255, 0, 0] : Color._hsl2rgb(this._hsl[0], this._hsl[1], this._hsl[2], false);\n this._rgbRounded = null;\n }\n\n /**\n * Convert color space to HSL\n *\n * @private\n */\n _convertToHSL() {\n this._hsl = this._rgb === null ? [0, 100, 50] : Color._rgb2hsl(this._rgb[0], this._rgb[1], this._rgb[2], false);\n this._hslRounded = null;\n }\n\n /**\n * Reset color spaces\n *\n * @param {string} keep Color space to keep\n *\n * @private\n */\n _resetSpaces(keep) {\n keep = keep === void 0 ? '' : keep;\n if (keep !== 'rgb') {\n this._rgb = this._rgbRounded = null;\n }\n if (keep !== 'hsl') {\n this._hsl = this._hslRounded = null;\n }\n this._luminance = null;\n }\n\n /**\n * Round number\n *\n * @param {number} number Number to round\n * @param {number} precision Number of digits after dot\n *\n * @returns {number}\n *\n * @private\n */\n static _round(number, precision) {\n precision = Math.pow(10, precision);\n return Math.round(number * precision) / precision;\n }\n\n /**\n * Compare color spacer\n *\n * @param {Array} var1 Array of color components for color 1\n * @param {Array} var2 Array of color components for color 2\n *\n * @returns {boolean} True if colors are the same, false if not\n *\n * @private\n */\n static _equalColors(var1, var2) {\n if (!(var1 instanceof Array && var2 instanceof Array)) {\n return false;\n }\n\n for (let i = 0; i < 3; i++) {\n if (var1[i] !== var2[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Get color as hex string\n *\n * @param {boolean} compress True if color should be compressed\n * @param {boolean} includeAlpha True if result should include alpha channel (IE format)\n *\n * @returns {string}\n *\n * @private\n */\n _getHexValue(compress, includeAlpha) {\n if (this._rgb === null) {\n this._convertToRGB();\n }\n if (this._rgbRounded === null) {\n this._roundRGB();\n }\n\n // Convert to hex string\n let result = '#';\n if (includeAlpha) {\n let alpha = Math.max(Math.min(Math.round(this._alpha * 255), 255), 0);\n result += (alpha < 16 ? '0' : '') + alpha.toString(16);\n }\n for (let i = 0; i < 3; i++) {\n result += (this._rgbRounded[i] < 16 ? '0' : '') + this._rgbRounded[i].toString(16);\n }\n\n return compress ? Color._compressString(result) : result;\n }\n\n /**\n * Compress string\n *\n * @param {string} value Color to compress\n *\n * @returns {string}\n *\n * @private\n */\n static _compressString(value) {\n if (value.slice(0, 1) === '#') {\n // Compress hex string\n let length = value.length - 1;\n if (length !== 6 && length !== 8) {\n return value;\n }\n\n let str1 = '',\n str2 = '',\n total = length / 2;\n\n for (let i = 0; i < total; i++) {\n str1 += value.slice(i * 2 + 1, i * 2 + 2);\n str2 += value.slice(i * 2 + 2, i * 2 + 3);\n if (str1 !== str2) {\n return value;\n }\n }\n return '#' + str1;\n }\n\n // Remove extra spaces and zeros\n return value.replace(' ', '').replace('(0.', '(.').replace(',0.', ',.');\n }\n}\n\nmodule.exports = Color;\n","<script context=\"module\">\n\tconst baseClass = 'iif-input';\n</script>\n\n<script>\n\timport { onMount } from 'svelte';\n\timport Icon from '../misc/Icon.svelte';\n\n\texport let placeholder = '';\n\texport let title;\n\texport let value = '';\n\texport let disabled = false;\n\texport let icon = '';\n\texport let type = '';\n\texport let extra = '';\n\texport let onInput;\n\texport let onBlur;\n\texport let autofocus = false;\n\n\tlet hasIcon = false;\n\tfunction iconLoaded() {\n\t\thasIcon = true;\n\t}\n\n\t// Get container class name\n\tlet className;\n\t$: {\n\t\tclassName =\n\t\t\tbaseClass +\n\t\t\t// Placeholder\n\t\t\t' ' +\n\t\t\tbaseClass +\n\t\t\t'--with' +\n\t\t\t(placeholder === '' ? 'out' : '') +\n\t\t\t'-placeholder' +\n\t\t\t// Icon\n\t\t\t(hasIcon ? ' ' + baseClass + '--with-icon' : '') +\n\t\t\t// Type\n\t\t\t(type !== '' ? ' ' + baseClass + '--' + type : '') +\n\t\t\t// Disabled\n\t\t\t(disabled ? ' ' + baseClass + '--disabled' : '');\n\t}\n\n\t// Get icon style\n\tlet iconStyle;\n\t$: {\n\t\ticonStyle = '';\n\t\tif (type === 'color' && extra !== '') {\n\t\t\ticonStyle = 'opacity: 1; color: ' + extra;\n\t\t}\n\t}\n\n\t// Reset value\n\tfunction resetValue() {\n\t\tvalue = '';\n\t\thandleInput();\n\t}\n\n\t// on:input binding as onInput\n\tfunction handleInput() {\n\t\tif (typeof onInput === 'function') {\n\t\t\tonInput(value);\n\t\t}\n\t}\n\n\t// on:blur binding as onBlur\n\tfunction handleBlur() {\n\t\tif (typeof onBlur === 'function') {\n\t\t\tonBlur(value);\n\t\t}\n\t}\n\n\t// Focus\n\tlet inputRef;\n\tonMount(() => {\n\t\tif (autofocus) {\n\t\t\tinputRef.focus();\n\t\t}\n\t});\n</script>\n\n<div class=\"iif-input-wrapper\">\n\t<div class={className}>\n\t\t{#if icon !== ''}\n\t\t\t<div class=\"iif-input-icon\" style={iconStyle}>\n\t\t\t\t<Icon {icon} onLoad={iconLoaded} />\n\t\t\t</div>\n\t\t{/if}\n\t\t<input\n\t\t\ttype=\"text\"\n\t\t\ttitle={title ? title : placeholder}\n\t\t\tbind:value\n\t\t\ton:input={handleInput}\n\t\t\ton:blur={handleBlur}\n\t\t\tspellcheck=\"false\"\n\t\t\tautocomplete=\"off\"\n\t\t\tautocorrect=\"off\"\n\t\t\tautocapitalize=\"off\"\n\t\t\tbind:this={inputRef} />\n\t\t{#if value === '' && placeholder !== ''}\n\t\t\t<div class=\"iif-input-placeholder\">{placeholder}</div>\n\t\t{/if}\n\t\t{#if value !== ''}\n\t\t\t<a class=\"iif-input-reset\" href=\"# \" on:click|preventDefault={resetValue}>\n\t\t\t\t<Icon icon=\"reset\" />\n\t\t\t</a>\n\t\t{/if}\n\t</div>\n</div>\n","<script>\n\texport let registry; /** @type {Registry} */\n\texport let type; /** @type {string} */\n\n\tconst phrases = registry.phrases.footerBlocks;\n\n\tlet title;\n\t$: {\n\t\ttitle =\n\t\t\tphrases[type] === void 0\n\t\t\t\t? type\n\t\t\t\t\t\t.split(' ')\n\t\t\t\t\t\t.map(str => str.slice(0, 1).toUpperCase() + str.slice(1))\n\t\t\t\t\t\t.join(' ')\n\t\t\t\t: phrases[type];\n\t}\n</script>\n\n<div class=\"iif-footer-options-block\">\n\t<p>{title}</p>\n\t<div>\n\t\t<slot />\n\t</div>\n</div>\n","<script>\n\timport colors from 'cyberalien-color';\n\timport Input from '../../../../forms/Input.svelte';\n\timport Block from '../Block.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let iconData; /** @type {IconifyIcon} */\n\t// export let footerOptions; /** @type {object} */\n\texport let value; /** @type {string} */\n\texport let customise; /** @type {function} */\n\n\tconst defaultColor = \"\";\n\n\tlet hasColor;\n\t$: {\n\t\thasColor = iconData.body.indexOf('currentColor') !== -1;\n\t}\n\n\tconst title = registry.phrases.footerBlocks.color;\n\n\tlet lastValue = value;\n\tlet inputValue = value;\n\t$: {\n\t\t// Change inputValue when value changes\n\t\tif (lastValue !== value) {\n\t\t\tlastValue = value;\n\t\t\tinputValue = value;\n\t\t}\n\t}\n\n\t// Convert color to valid string\n\tfunction getColor(value, defaultValue) {\n\t\tconst color = colors.fromString(value);\n\t\tif (!color) {\n\t\t\treturn defaultValue;\n\t\t}\n\t\tconst keyword = color.toKeyword(false, true);\n\t\tif (keyword) {\n\t\t\treturn keyword;\n\t\t}\n\t\treturn color.toString({\n\t\t\tcompress: true,\n\t\t});\n\t}\n\n\t// Check input\n\tfunction onInput(newValue) {\n\t\tinputValue = newValue;\n\n\t\t// Check for valid color\n\t\tif (newValue === '') {\n\t\t\tcustomise('color', '');\n\t\t\treturn;\n\t\t}\n\n\t\tconst validatedValue = getColor(newValue, null);\n\t\tif (validatedValue !== null) {\n\t\t\t// Change lastValue to avoid triggering component refresh\n\t\t\tlastValue = value = validatedValue;\n\t\t\tcustomise('color', validatedValue);\n\t\t}\n\t}\n\n\t// Reset to last valid value\n\tfunction onBlur() {\n\t\t// Set last value as input value\n\t\tinputValue = value;\n\t}\n</script>\n\n{#if hasColor}\n\t<Block type=\"color\" {registry}>\n\t\t<Input\n\t\t\tvalue={inputValue}\n\t\t\tplaceholder={defaultColor}\n\t\t\t{title}\n\t\t\t{onInput}\n\t\t\t{onBlur}\n\t\t\ticon={value === void 0 || value === '' ? 'color' : 'color-filled'}\n\t\t\textra={value === void 0 ? '' : value}\n\t\t\ttype=\"color\" />\n\t</Block>\n{/if}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getDimensions = void 0;\nconst iconify_1 = __importDefault(require(\"@iconify/iconify\"));\n/**\n * Calculate both dimensions\n */\nfunction getDimensions(width, height, ratio, rotated) {\n if (width && height) {\n return {\n width: rotated ? height : width,\n height: rotated ? width : height,\n };\n }\n if (!height) {\n height = iconify_1.default._internal.calculateSize(width, rotated ? ratio : 1 / ratio);\n }\n else {\n width = iconify_1.default._internal.calculateSize(height, rotated ? 1 / ratio : ratio);\n }\n return {\n width,\n height,\n };\n}\nexports.getDimensions = getDimensions;\n","<script>\n\timport Input from '../../../forms/Input.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let type; /** @type {string} */\n\texport let value; /** @type {string} */\n\texport let placeholder; /** @type {string} */\n\texport let customise; /** @type {function} */\n\n\tconst title = registry.phrases.footerBlocks[type];\n\n\tlet lastValue = value;\n\tlet inputValue = value;\n\t$: {\n\t\t// Change inputValue when value changes\n\t\tif (lastValue !== value) {\n\t\t\tlastValue = value;\n\t\t\tinputValue = value;\n\t\t}\n\t}\n\n\t// Check input\n\tfunction onInput(newValue) {\n\t\tinputValue = newValue;\n\n\t\tlet num = newValue === '' ? '' : parseFloat(newValue);\n\t\tif (!isNaN(num) && '' + num === newValue) {\n\t\t\tcustomise(type, '' + num);\n\t\t}\n\t}\n\n\t// Reset to last valid value\n\tfunction onBlur() {\n\t\tinputValue = value;\n\t}\n</script>\n\n<Input\n\tvalue={inputValue}\n\t{placeholder}\n\t{title}\n\t{onInput}\n\t{onBlur}\n\ticon={'icon-' + type}\n\ttype=\"number\" />\n","<script>\n\timport Iconify from '@iconify/iconify';\n\timport { getDimensions } from '../../../../../misc/icon-size';\n\timport Block from '../Block.svelte';\n\timport SizeInput from '../SizeInput.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let iconData; /** @type {IconifyIcon} */\n\texport let iconCustomisations; /** @type {IconCustomisations} */\n\texport let customise; /** @type {function} */\n\n\tconst customiseWidth = true;\n\tconst customiseHeight = true;\n\n\tconst defaultWidth = \"\";\n\tconst defaultHeight = \"\";\n\n\tconst type =\n\t\tcustomiseWidth && customiseHeight\n\t\t\t? 'size'\n\t\t\t: customiseWidth\n\t\t\t? 'width'\n\t\t\t: 'height';\n\tconst list =\n\t\tcustomiseWidth && customiseHeight\n\t\t\t? ['width', 'height']\n\t\t\t: [customiseWidth ? 'width' : 'height'];\n\n\t// Check if icon is rotated (for width/height calculations)\n\tlet rotated;\n\t$: {\n\t\trotated =\n\t\t\ticonData.width !== iconData.height &&\n\t\t\ticonCustomisations.rotate &&\n\t\t\ticonCustomisations.rotate % 2 === 1;\n\t}\n\n\t// Width / height ratio\n\tlet ratio;\n\t$: {\n\t\tratio = iconData.width / iconData.height;\n\t}\n\n\t// Get placeholders\n\tlet placeholders;\n\t$: {\n\t\tif (type === 'size') {\n\t\t\tif (iconCustomisations.width || iconCustomisations.height) {\n\t\t\t\t// Calculate placeholders based on custom size\n\t\t\t\tplaceholders = getDimensions(\n\t\t\t\t\ticonCustomisations.width,\n\t\t\t\t\ticonCustomisations.height,\n\t\t\t\t\tratio,\n\t\t\t\t\trotated\n\t\t\t\t);\n\t\t\t} else if (defaultWidth || defaultHeight) {\n\t\t\t\t// Calculate placeholders based on default size\n\t\t\t\tplaceholders = getDimensions(\n\t\t\t\t\tdefaultWidth,\n\t\t\t\t\tdefaultHeight,\n\t\t\t\t\tratio,\n\t\t\t\t\trotated\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t// Calculate placeholders based on icon size\n\t\t\t\tplaceholders = getDimensions(\n\t\t\t\t\ticonData.width,\n\t\t\t\t\ticonData.height,\n\t\t\t\t\tratio,\n\t\t\t\t\trotated\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\t// Get placeholder\n\t\t\tconst defaultValue = customiseWidth ? defaultWidth : defaultHeight;\n\t\t\tlet value = defaultValue ? defaultValue : iconData[type];\n\t\t\tif (rotated) {\n\t\t\t\t// Flip width/height\n\t\t\t\tconst ratio = customiseWidth\n\t\t\t\t\t? iconData.height / iconData.width\n\t\t\t\t\t: iconData.width / iconData.height;\n\t\t\t\tvalue = Iconify._internal.calculateSize(value, ratio);\n\t\t\t}\n\t\t\tplaceholders = {\n\t\t\t\t[type]: value,\n\t\t\t};\n\t\t}\n\t}\n</script>\n\n<Block {type} {registry}>\n\t{#each list as type, i (type)}\n\t\t<SizeInput\n\t\t\t{registry}\n\t\t\t{type}\n\t\t\tvalue={iconCustomisations[type]}\n\t\t\ticonSize={iconData[type]}\n\t\t\tplaceholder={placeholders[type]}\n\t\t\t{customise} />\n\t{/each}\n</Block>\n","<script context=\"module\">\n\tconst baseClass = 'iif-option-button';\n</script>\n\n<script>\n\timport Icon from '../misc/Icon.svelte';\n\n\texport let icon;\n\texport let onClick;\n\texport let title;\n\texport let text;\n\texport let status = '';\n\n\tlet hasIcon = false;\n\tfunction iconLoaded() {\n\t\thasIcon = true;\n\t}\n\n\tlet className;\n\t$: {\n\t\tclassName =\n\t\t\tbaseClass +\n\t\t\t' ' +\n\t\t\tbaseClass +\n\t\t\t(hasIcon ? '--with-icon' : '--without-icon') +\n\t\t\t' ' +\n\t\t\tbaseClass +\n\t\t\t(text || !hasIcon ? '--with-text' : '--without-text') +\n\t\t\t(status === '' ? '' : ' ' + baseClass + '--' + status);\n\t}\n</script>\n\n<button class={className} {title} on:click={onClick}>\n\t{#if icon}\n\t\t<Icon {icon} onLoad={iconLoaded} />\n\t{/if}\n\t<span>{text ? text : title}</span>\n</button>\n","<script>\n\timport Block from '../Block.svelte';\n\timport Button from '../../../../forms/OptionButton.svelte';\n\n\texport let registry; /** @type {Registry} */\n\t// export let iconData; /** @type {IconifyIcon} */\n\t// export let footerOptions; /** @type {object} */\n\texport let value; /** @type {string} */\n\texport let customise; /** @type {function} */\n\n\tconst phrases = registry.phrases.footerOptionButtons;\n\n\t// Dynamically generate list of icons, using keys to force redrawing button, triggering css animation\n\tlet list;\n\t$: {\n\t\tlist = [];\n\t\tfor (let i = 0; i < 4; i++) {\n\t\t\tlist.push(addItem(i, value === i));\n\t\t}\n\t}\n\n\tfunction addItem(count, selected) {\n\t\treturn {\n\t\t\tcount: count,\n\t\t\tkey: count + (selected ? '!' : ''),\n\t\t};\n\t}\n\n\tfunction rotateClicked(count) {\n\t\tif (!count && !value) {\n\t\t\treturn;\n\t\t}\n\t\tcustomise('rotate', count === value ? 0 : count);\n\t}\n</script>\n\n<Block type=\"rotate\" {registry}>\n\t{#each list as { count, key }, i (key)}\n\t\t<Button\n\t\t\ticon={'rotate' + count}\n\t\t\ttitle={phrases.rotateTitle.replace('{num}', count * 90)}\n\t\t\ttext={phrases.rotate.replace('{num}', count * 90)}\n\t\t\tstatus={value === count ? 'checked' : 'unchecked'}\n\t\t\tonClick={() => rotateClicked(count)} />\n\t{/each}\n</Block>\n","<script>\n\timport Block from '../Block.svelte';\n\timport Button from '../../../../forms/OptionButton.svelte';\n\n\texport let registry; /** @type {Registry} */\n\t// export let iconData; /** @type {IconifyIcon} */\n\texport let iconCustomisations; /** @type {IconCustomisations} */\n\texport let customise; /** @type {function} */\n\n\tconst phrases = registry.phrases.footerOptionButtons;\n\n\t// Dynamically generate list of icons, using keys to force redrawing button, triggering css animation\n\tlet list;\n\t$: {\n\t\tlist = [\n\t\t\taddItem('h', iconCustomisations.hFlip),\n\t\t\taddItem('v', iconCustomisations.vFlip),\n\t\t];\n\t}\n\n\tfunction addItem(key, selected) {\n\t\treturn {\n\t\t\ttype: key + 'Flip',\n\t\t\ticon: key + '-flip',\n\t\t\tkey: key + 'Flip' + (selected ? '!' : ''),\n\t\t};\n\t}\n\n\t// Toggle\n\tfunction flipClicked(type) {\n\t\tcustomise(type, !iconCustomisations[type]);\n\t}\n</script>\n\n<Block type=\"flip\" {registry}>\n\t{#each list as { type, key, icon }, i (key)}\n\t\t<Button\n\t\t\t{icon}\n\t\t\ttitle={phrases[type]}\n\t\t\tstatus={iconCustomisations[type] ? 'checked' : 'unchecked'}\n\t\t\tonClick={() => flipClicked(type)} />\n\t{/each}\n</Block>\n","<script context=\"module\">\n\t// Constants toggled by compiler, allowing minifier to exclude blocks of\n\t// code `if (false) { ... removed code ... }`, reducing bundle size\n\n\tconst showPropsTitle = false;\n\n\tconst customiseColor = true;\n\tconst customiseSize = true;\n\tconst customiseRotate = true;\n\tconst customiseFlip = true;\n</script>\n\n<script>\n\timport Iconify from '@iconify/iconify';\n\n\t// Important: for dynamic component replacements to work, component names below\n\t// must match directory name with capitalized first letter!\n\n\timport ColorBlock from './props/color/Color.svelte';\n\timport SizeBlock from './props/size/Size.svelte';\n\timport RotateBlock from './props/rotate/Rotate.svelte';\n\timport FlipBlock from './props/flip/Flip.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let iconName; /** @type {string} */\n\texport let customise; /** @type {function} */\n\texport let iconCustomisations; /** @type {IconCustomisations} */\n\n\t// Title\n\tconst title = showPropsTitle ? registry.phrases.footerBlocks.title : '';\n\n\t// Get icon data\n\tlet iconData;\n\t$: {\n\t\ticonData = Iconify.getIcon(iconName);\n\t}\n</script>\n\n{#if iconData}\n\t{#if showPropsTitle && title}\n\t\t<p class=\"iif-footer-options-block-title\">{title}</p>\n\t{/if}\n\t<div class=\"iif-footer-options-blocks\">\n\t\t{#if customiseColor}\n\t\t\t<ColorBlock\n\t\t\t\t{registry}\n\t\t\t\t{iconData}\n\t\t\t\tvalue={iconCustomisations.color}\n\t\t\t\t{customise} />\n\t\t{/if}\n\t\t{#if customiseSize}\n\t\t\t<SizeBlock {registry} {iconData} {iconCustomisations} {customise} />\n\t\t{/if}\n\t\t{#if customiseFlip}\n\t\t\t<FlipBlock {registry} {iconData} {iconCustomisations} {customise} />\n\t\t{/if}\n\t\t{#if customiseRotate}\n\t\t\t<RotateBlock\n\t\t\t\t{registry}\n\t\t\t\t{iconData}\n\t\t\t\tvalue={iconCustomisations.rotate}\n\t\t\t\t{customise} />\n\t\t{/if}\n\t</div>\n{/if}\n","<script>\n\timport Iconify from '@iconify/iconify';\n\timport { getDimensions } from '../../../misc/icon-size';\n\timport Icon from '../../misc/Icon.svelte';\n\n\t// export let registry; /** @type {Registry} */\n\texport let loaded; /** @type {boolean} */\n\texport let iconName; /** @type {string} */\n\texport let iconCustomisations; /** @type {IconCustomisations} */\n\texport let footerOptions; /** @type {object} */\n\n\tconst divisions = [2.5, 3, 3.5];\n\n\tconst defaultColor = \"\";\n\n\tconst defaultWidth = \"\";\n\tconst defaultHeight = \"\";\n\n\t// Get maximum width/height from options\n\tconst maxWidth = footerOptions.fullSample.width;\n\tconst maxHeight = footerOptions.fullSample.height;\n\n\tconst minWidth = Math.floor(maxWidth / 2);\n\tconst minHeight = Math.floor(maxHeight / 2);\n\n\t// Get icon data\n\tlet iconData;\n\t$: {\n\t\ticonData = loaded ? Iconify.getIcon(iconName) : null;\n\t}\n\n\t// Check if icon is rotated (for width/height calculations)\n\tlet rotated;\n\t$: {\n\t\trotated =\n\t\t\tloaded &&\n\t\t\ticonData.width !== iconData.height &&\n\t\t\ticonCustomisations.rotate &&\n\t\t\ticonCustomisations.rotate % 2 === 1;\n\t}\n\n\t// Width / height ratio\n\tlet ratio;\n\t$: {\n\t\tratio = loaded ? iconData.width / iconData.height : 1;\n\t}\n\n\t// Scale sample\n\tfunction scaleSample(size, canScaleUp) {\n\t\t// Scale\n\t\twhile (size.width > maxWidth || size.height > maxHeight) {\n\t\t\t// Attempt to divide by 2\n\t\t\tlet newWidth = size.width / 2;\n\t\t\tlet newHeight = size.height / 2;\n\n\t\t\tif (\n\t\t\t\tMath.round(newWidth) !== newWidth ||\n\t\t\t\tMath.round(newHeight) !== newHeight\n\t\t\t) {\n\t\t\t\t// Try to divide by a different number\n\t\t\t\tfor (let i = 0; i < divisions.length; i++) {\n\t\t\t\t\tlet div = divisions[i];\n\t\t\t\t\tlet newWidth2 = size.width / div;\n\t\t\t\t\tlet newHeight2 = size.height / div;\n\t\t\t\t\tif (\n\t\t\t\t\t\tMath.round(newWidth2) === newWidth2 &&\n\t\t\t\t\t\tMath.round(newHeight2) === newHeight2\n\t\t\t\t\t) {\n\t\t\t\t\t\tnewWidth = newWidth2;\n\t\t\t\t\t\tnewHeight = newHeight2;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsize.width = newWidth;\n\t\t\tsize.height = newHeight;\n\t\t}\n\n\t\tif (canScaleUp) {\n\t\t\twhile (size.width < minWidth && size.height < minHeight) {\n\t\t\t\tsize.width *= 2;\n\t\t\t\tsize.height *= 2;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Calculate style\n\tlet style;\n\t$: {\n\t\tstyle = '';\n\t\tif (iconCustomisations.color) {\n\t\t\tstyle += 'color: ' + iconCustomisations.color + ';';\n\t\t} else if (defaultColor) {\n\t\t\tstyle += 'color: ' + defaultColor + ';';\n\t\t}\n\t\tif (loaded && !iconCustomisations.width && !iconCustomisations.height) {\n\t\t\t// Calculate size\n\t\t\tlet size;\n\n\t\t\tif (defaultWidth || defaultHeight) {\n\t\t\t\tsize = getDimensions(defaultWidth, defaultHeight, ratio, rotated);\n\t\t\t} else {\n\t\t\t\tsize = getDimensions(iconData.width, iconData.height, ratio, rotated);\n\t\t\t}\n\n\t\t\t// Scale\n\t\t\tscaleSample(size, true);\n\t\t\tstyle += 'font-size: ' + size.height + 'px;';\n\t\t}\n\t}\n\n\tlet props;\n\t$: {\n\t\tif (loaded) {\n\t\t\tprops = {};\n\t\t\t['hFlip', 'vFlip', 'rotate'].forEach(prop => {\n\t\t\t\tif (iconCustomisations[prop]) {\n\t\t\t\t\tprops[prop] = iconCustomisations[prop];\n\t\t\t\t}\n\t\t\t});\n\t\t\tlet size;\n\t\t\tif (iconCustomisations.width || iconCustomisations.height) {\n\t\t\t\tsize = getDimensions(\n\t\t\t\t\ticonCustomisations.width,\n\t\t\t\t\ticonCustomisations.height,\n\t\t\t\t\tratio,\n\t\t\t\t\trotated\n\t\t\t\t);\n\t\t\t} else if (defaultWidth || defaultHeight) {\n\t\t\t\tsize = getDimensions(defaultWidth, defaultHeight, ratio, rotated);\n\t\t\t}\n\t\t\tif (size !== void 0) {\n\t\t\t\tscaleSample(size, false);\n\t\t\t\tprops['width'] = size.width;\n\t\t\t\tprops['height'] = size.height;\n\t\t\t}\n\t\t}\n\t}\n</script>\n\n{#if loaded}\n\t<div class=\"iif-footer-sample iif-footer-sample--loaded\" {style}>\n\t\t<Icon icon={iconName} {props} />\n\t</div>\n{:else}\n\t<div class=\"iif-footer-sample iif-footer-sample--empty\" />\n{/if}\n","<script context=\"module\">\n\tconst canShowIconProperties = true;\n\n\tconst canShowIconCode = false;\n</script>\n\n<script>\n\timport Block from '../Block.svelte';\n\timport IconName from './parts/name/Simple.svelte';\n\timport ButtonsContainer from './parts/Buttons.svelte';\n\timport PropertiesContainer from './parts/Properties.svelte';\n\timport CodeContainer from '../Empty.svelte';\n\timport Sample from './parts/FullSample.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let loaded; /** @type {boolean} */\n\texport let selectedIcon; /** @type {Icon} */\n\texport let iconName; /** @type {string} */\n\texport let customise; /** @type {function} */\n\texport let iconCustomisations; /** @type {IconCustomisations} */\n\texport let route; /** @type {PartialRoute} */\n\texport let footerOptions; /** @type {object} */\n</script>\n\n{#if loaded | footerOptions.showButtons}\n\t<Block type=\"footer\">\n\t\t<div class=\"iif-footer-full\">\n\t\t\t<Sample\n\t\t\t\t{registry}\n\t\t\t\t{loaded}\n\t\t\t\t{iconName}\n\t\t\t\t{iconCustomisations}\n\t\t\t\t{footerOptions} />\n\t\t\t<div class=\"iif-footer-full-content\">\n\t\t\t\t<IconName {registry} {iconName} {loaded} {selectedIcon} {route} />\n\t\t\t\t{#if canShowIconProperties && loaded}\n\t\t\t\t\t<PropertiesContainer\n\t\t\t\t\t\t{registry}\n\t\t\t\t\t\t{iconName}\n\t\t\t\t\t\t{customise}\n\t\t\t\t\t\t{iconCustomisations} />\n\t\t\t\t{/if}\n\t\t\t\t{#if canShowIconCode && loaded}\n\t\t\t\t\t<CodeContainer {registry} {iconName} {iconCustomisations} />\n\t\t\t\t{/if}\n\t\t\t\t{#if footerOptions.showButtons}\n\t\t\t\t\t<ButtonsContainer {registry} {loaded} {iconName} {footerOptions} />\n\t\t\t\t{/if}\n\t\t\t</div>\n\t\t</div>\n\t</Block>\n{/if}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterCustomisations = exports.mergeCustomisations = exports.defaultCustomisations = exports.emptyCustomisations = void 0;\n/**\n * Default values\n */\nconst defaultColor = \"\";\nconst defaultWidth = \"\";\nconst defaultHeight = \"\";\n/**\n * Empty values\n */\nexports.emptyCustomisations = {\n hFlip: false,\n vFlip: false,\n rotate: 0,\n color: '',\n width: '',\n height: '',\n};\n/**\n * Default values\n */\nexports.defaultCustomisations = {\n hFlip: false,\n vFlip: false,\n rotate: 0,\n color: defaultColor,\n width: defaultWidth,\n height: defaultHeight,\n};\n/**\n * Add missing values to customisations, creating new object. Function does type checking\n */\nfunction mergeCustomisations(defaults, values) {\n let result = {};\n for (let key in defaults) {\n const attr = key;\n if (values && typeof values[attr] === typeof defaults[attr]) {\n result[attr] = values[attr];\n }\n else {\n result[attr] = defaults[attr];\n }\n }\n return result;\n}\nexports.mergeCustomisations = mergeCustomisations;\n/**\n * Export only customised attributes\n */\nfunction filterCustomisations(values) {\n let result = {};\n for (let key in exports.defaultCustomisations) {\n const attr = key;\n if (values[attr] !== exports.defaultCustomisations[attr] &&\n values[attr] !== exports.emptyCustomisations[attr]) {\n result[attr] = values[attr];\n }\n }\n return result;\n}\nexports.filterCustomisations = filterCustomisations;\n","<script context=\"module\">\n\t// Footer options: buttons, customisations\n\tlet footerOptions = {\"showButtons\":false,\"fullSample\":{\"width\":200,\"height\":300}};\n</script>\n\n<script>\n\timport Iconify from '@iconify/iconify';\n\timport { onDestroy } from 'svelte';\n\timport { iconToString } from '@iconify/search-core';\n\n\timport Footer from './footer/Full.svelte';\n\timport {\n\t\temptyCustomisations,\n\t\tmergeCustomisations,\n\t\tfilterCustomisations,\n\t} from '../misc/customisations';\n\n\texport let registry; /** @type {Registry} */\n\texport let selectedIcon; /** @type {Icon | null} */\n\texport let customisations; /** @type {PartialIconCustomisations} */\n\texport let route; /** @type {PartialRoute} */\n\n\t// Translate buttons\n\tif (footerOptions.buttons) {\n\t\tconst phrases = registry.phrases;\n\t\tObject.keys(footerOptions.buttons).forEach(key => {\n\t\t\tconst item = footerOptions.buttons[key];\n\t\t\tif (typeof item.text !== 'string') {\n\t\t\t\t// Set text: from phrases if phrase exists, capitalised key if not\n\t\t\t\titem.text =\n\t\t\t\t\tphrases.footerButtons[key] === void 0\n\t\t\t\t\t\t? key\n\t\t\t\t\t\t\t\t.split('-')\n\t\t\t\t\t\t\t\t.map(str => str.slice(0, 1).toUpperCase() + str.slice(1))\n\t\t\t\t\t\t\t\t.join(' ')\n\t\t\t\t\t\t: phrases.footerButtons[key];\n\t\t\t}\n\t\t});\n\t}\n\n\t// Customisations\n\tlet iconCustomisations;\n\t$: {\n\t\ticonCustomisations = mergeCustomisations(\n\t\t\temptyCustomisations,\n\t\t\tcustomisations\n\t\t);\n\t}\n\n\t// Change icon customisation value\n\tfunction customise(prop, value) {\n\t\tif (\n\t\t\ticonCustomisations[prop] !== void 0 &&\n\t\t\ticonCustomisations[prop] !== value &&\n\t\t\ttypeof iconCustomisations[prop] === typeof value\n\t\t) {\n\t\t\t// Change value then change object to force Svelte update components\n\t\t\ticonCustomisations[prop] = value;\n\t\t\ticonCustomisations = mergeCustomisations(\n\t\t\t\temptyCustomisations,\n\t\t\t\ticonCustomisations\n\t\t\t);\n\n\t\t\t// Send event: UICustomisationEvent\n\t\t\tregistry.callback({\n\t\t\t\ttype: 'customisation',\n\t\t\t\t// IconCustomisationPairs\n\t\t\t\tchanged: {\n\t\t\t\t\tprop,\n\t\t\t\t\tvalue,\n\t\t\t\t},\n\t\t\t\tcustomisations: filterCustomisations(iconCustomisations),\n\t\t\t});\n\t\t}\n\t}\n\n\t// Get icon name as string\n\tlet iconName = '';\n\t$: {\n\t\ticonName = selectedIcon === null ? '' : iconToString(selectedIcon);\n\t}\n\n\t// Event listener\n\tlet updateCounter = 0;\n\tlet abortLoader = null;\n\tconst loadingEvent = () => {\n\t\tupdateCounter++;\n\t};\n\n\t// Load icon\n\tlet loaded;\n\t$: {\n\t\t// Mention updateCounter to make sure this code is ran\n\t\tupdateCounter;\n\n\t\tloaded = selectedIcon ? Iconify.iconExists(iconName) : false;\n\t\tif (selectedIcon && !loaded) {\n\t\t\tif (abortLoader !== null) {\n\t\t\t\tabortLoader();\n\t\t\t}\n\t\t\tabortLoader = Iconify.loadIcons([iconName], loadingEvent);\n\t\t}\n\t}\n\n\t// Remove event listener\n\tonDestroy(() => {\n\t\tif (abortLoader !== null) {\n\t\t\tabortLoader();\n\t\t}\n\t});\n</script>\n\n<Footer\n\t{footerOptions}\n\t{registry}\n\t{loaded}\n\t{selectedIcon}\n\t{iconName}\n\t{customise}\n\t{iconCustomisations}\n\t{route} />\n","<script>\n\timport Input from '../forms/Input.svelte';\n\timport Block from '../Block.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let viewChanged; /** @type {boolean} */\n\texport let route; /** @type {PartialRoute} */\n\n\tconst canFocusSearch = true;\n\n\t// Phrases\n\tconst phrases = registry.phrases.search; /** @type {UITranslation.search} */\n\n\t// Current keyword\n\tlet keyword = null; /** @type {string|null} */\n\n\t// Variable to store last change to avoid changing keyword multiple times to same value\n\tlet lastChange = ''; /** @type {string} */\n\n\t// Check route for keyword\n\tfunction checkRoute(route) {\n\t\tif (\n\t\t\troute.type === 'search' &&\n\t\t\t(lastChange === '' || lastChange !== route.params.search)\n\t\t) {\n\t\t\tkeyword = route.params.search;\n\t\t\tlastChange = keyword;\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t// Submit form\n\tfunction submitForm() {\n\t\tconst value = keyword.trim().toLowerCase();\n\t\tif (value !== '') {\n\t\t\tlastChange = value;\n\t\t\tregistry.router.action('search', value);\n\t\t}\n\t}\n\n\t// Overwrite keyword on first render or when current view changes to search results\n\t$: {\n\t\tif (keyword === null) {\n\t\t\t// First render - get keyword from route\n\t\t\tkeyword = '';\n\t\t\tif (route !== null) {\n\t\t\t\t// Get keyword from current route or its parent\n\t\t\t\tif (!checkRoute(route) && route.parent !== void 9) {\n\t\t\t\t\tcheckRoute(route.parent);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!viewChanged) {\n\t\t\tlastChange = '';\n\t\t} else {\n\t\t\tcheckRoute(route);\n\t\t}\n\t}\n\n\t// Focus input, use \"each\" to re-mount input when value changes\n\tlet focusInput = false;\n\t$: {\n\t\tif (canFocusSearch) {\n\t\t\tfocusInput =\n\t\t\t\troute && (route.type === 'collections' || route.type === 'search');\n\t\t}\n\t}\n</script>\n\n<Block type=\"search\" name=\"global\">\n\t<form on:submit|preventDefault={submitForm} class=\"iif-block--search-form\">\n\t\t{#each [focusInput] as autofocus, i (autofocus)}\n\t\t\t<Input\n\t\t\t\ttype=\"text\"\n\t\t\t\tbind:value={keyword}\n\t\t\t\tplaceholder={phrases.defaultPlaceholder}\n\t\t\t\ticon=\"search\"\n\t\t\t\t{autofocus} />\n\t\t{/each}\n\t\t<button class=\"iif-form-button iif-form-button--primary\" type=\"submit\">\n\t\t\t{phrases.button}\n\t\t</button>\n\t</form>\n</Block>\n","<script>\n\timport Icon from '../../misc/Icon.svelte';\n\n\texport let text; /** @param {string} */\n\t// export let level; /** @param {number} */\n\texport let onClick; /** @type {function} */\n</script>\n\n<div class=\"iif-parent-link\">\n\t<Icon icon=\"parent\" />\n\t<a href=\"# \" on:click|preventDefault={onClick}>{text}</a>\n</div>\n","<script>\n\timport Block from '../Block.svelte';\n\timport Link from './parent/Link.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let route; /** @type {PartialRoute} */\n\n\tconst phrases = registry.phrases.parent; /** @type {Record<string, string>} */\n\tconst collections = registry.collections; /** @type {CollectionsData} */\n\n\tfunction handleClick(level) {\n\t\tregistry.router.action('parent', level);\n\t}\n\n\tlet entries;\n\t$: {\n\t\tfunction addEntry(route, level) {\n\t\t\t// Default text: \"default\"\n\t\t\tlet text = phrases.default;\n\n\t\t\tif (\n\t\t\t\troute.type === 'custom' &&\n\t\t\t\tphrases[route.params.customType] !== void 0\n\t\t\t) {\n\t\t\t\t// Text for custom view\n\t\t\t\ttext = phrases[route.params.customType];\n\t\t\t} else if (phrases[route.type] !== void 0) {\n\t\t\t\t// Text for view type\n\t\t\t\ttext = phrases[route.type];\n\t\t\t\tswitch (route.type) {\n\t\t\t\t\tcase 'collection':\n\t\t\t\t\t\ttext = text.replace(\n\t\t\t\t\t\t\t'{name}',\n\t\t\t\t\t\t\tcollections.info(route.params.prefix)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tentries.unshift({\n\t\t\t\tlevel,\n\t\t\t\troute,\n\t\t\t\ttext,\n\t\t\t});\n\t\t\tif (route.parent !== void 0) {\n\t\t\t\taddEntry(route.parent, level + 1);\n\t\t\t}\n\t\t}\n\t\tentries = [];\n\t\tif (route !== null && route.parent !== void 0) {\n\t\t\taddEntry(route.parent, 1);\n\t\t}\n\n\t\t// Add unique key to avoid re-rendering items\n\t\tentries = entries.map((item, index) => {\n\t\t\tlet key = item.route.type + '-' + index + '-';\n\t\t\tswitch (item.route.type) {\n\t\t\t\tcase 'collection':\n\t\t\t\t\tkey += item.route.params.provider + ':' + item.route.params.prefix;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'custom':\n\t\t\t\t\tkey += item.route.params.customType;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\titem.key = key;\n\t\t\treturn item;\n\t\t});\n\t}\n</script>\n\n{#if entries.length > 0}\n\t<Block type=\"parent\">\n\t\t{#each entries as item, i (item.key)}\n\t\t\t<Link\n\t\t\t\ttext={item.text}\n\t\t\t\tlevel={item.level}\n\t\t\t\tonClick={() => handleClick(item.level)} />\n\t\t{/each}\n\t</Block>\n{/if}\n","<script>\n\timport Block from '../Block.svelte';\n\timport Icon from '../misc/Icon.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let error; /** @type {string} */\n\texport let route; /** @type {PartialRoute} */\n\n\tconst phrases = registry.phrases.errors;\n\n\tlet text;\n\tlet canReturn;\n\t$: {\n\t\tcanReturn =\n\t\t\troute &&\n\t\t\t(route.type !== 'collections' ||\n\t\t\t\troute.parent ||\n\t\t\t\t(route.params && route.params.provider)) &&\n\t\t\tphrases.custom.home !== void 0;\n\t\ttext =\n\t\t\tphrases.custom[error] === void 0\n\t\t\t\t? phrases.defaultError\n\t\t\t\t: phrases.custom[error];\n\n\t\tswitch (error) {\n\t\t\tcase 'not_found':\n\t\t\t\ttext = text.replace(\n\t\t\t\t\t'{prefix}',\n\t\t\t\t\troute && route.type === 'collection'\n\t\t\t\t\t\t? '\"' + route.params.prefix + '\"'\n\t\t\t\t\t\t: ''\n\t\t\t\t);\n\t\t\t\tbreak;\n\n\t\t\tcase 'bad_route':\n\t\t\t\tcanReturn = phrases.custom.home !== void 0;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tfunction handleReturn() {\n\t\tconst router = registry.router;\n\t\tif (route.type === 'collections') {\n\t\t\t// Return to default provider\n\t\t\trouter.home('');\n\t\t} else {\n\t\t\trouter.home();\n\t\t}\n\t}\n</script>\n\n{#each [error] as type (type)}\n\t<Block type=\"error\" extra={'error--' + type}>\n\t\t<Icon icon={'error-' + type} />\n\t\t<p>\n\t\t\t{text}\n\t\t\t{#if canReturn}\n\t\t\t\t<br />\n\t\t\t\t<a href=\"# \" on:click|preventDefault={handleReturn}>\n\t\t\t\t\t{phrases.custom.home}\n\t\t\t\t</a>\n\t\t\t{/if}\n\t\t</p>\n\t</Block>\n{/each}\n","<script context=\"module\">\n\tconst maxIndex = 13;\n\tconst baseClass = 'iif-filter';\n</script>\n\n<script>\n\texport let active; /** @type {boolean} */\n\texport let hasActive; /** @type {boolean} */\n\texport let filter; /** @type {FiltersFilter} */\n\texport let title; /** @type {string} */\n\texport let onClick; /** @type {function} */\n\texport let link; /** @type {string} */\n\n\tlet className;\n\t$: {\n\t\tclassName =\n\t\t\tbaseClass +\n\t\t\t(active\n\t\t\t\t? ' ' + baseClass + '--selected'\n\t\t\t\t: hasActive\n\t\t\t\t? ' ' + baseClass + '--unselected'\n\t\t\t\t: '') +\n\t\t\t(filter.index ? ' ' + baseClass + '--' + (filter.index % maxIndex) : '');\n\t}\n</script>\n\n{#if link}\n\t<a class={className} on:click|preventDefault={onClick} href={link}>{title}</a>\n{:else}\n\t<button\n\t\tclass={className}\n\t\tdisabled={filter.disabled}\n\t\ton:click|preventDefault={onClick}>\n\t\t{title}\n\t</button>\n{/if}\n","<script>\n\timport Block from '../Block.svelte';\n\timport Filter from './filters/Filter.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let name; /** @type {string} */\n\texport let parent; /** @type {string} */\n\texport let block; /** @type {FiltersBlock | null} */\n\texport let link; /** @type {string} */\n\n\tconst phrases = registry.phrases; /** @type {UITranslation} */\n\n\tfunction handleClick(key) {\n\t\tregistry.router.action(name, key === block.active ? null : key);\n\t}\n\n\tlet title; /** @type {string} */\n\t$: {\n\t\tlet key = name;\n\t\tif (typeof parent === 'string' && parent !== '') {\n\t\t\tif (phrases.filters[name + '-' + parent] !== void 0) {\n\t\t\t\tkey = name + '-' + parent;\n\t\t\t}\n\t\t}\n\t\ttitle = phrases.filters[key] === void 0 ? '' : phrases.filters[key];\n\t}\n\n\tlet filters; /** @type {string[]} */\n\tlet isVisible; /** @type {boolean} */\n\t$: {\n\t\tfilters = block === null ? [] : Object.keys(block.filters);\n\t\tisVisible = filters.length > 1;\n\t}\n\n\tlet extra; /** @type {string} */\n\t$: {\n\t\textra = block === null || block.active === null ? '' : 'filters--active';\n\t}\n</script>\n\n{#if isVisible}\n\t<Block type=\"filters\" {name} {extra}>\n\t\t{#if title !== ''}\n\t\t\t<div class=\"iif-filters-header\">{title}</div>\n\t\t{/if}\n\t\t<div class=\"iif-filters-list\">\n\t\t\t{#each Object.entries(block.filters) as [key, filter], i (key)}\n\t\t\t\t<Filter\n\t\t\t\t\tactive={key === block.active}\n\t\t\t\t\thasActive={block.active !== null}\n\t\t\t\t\t{filter}\n\t\t\t\t\tlink={link ? link.replace('{prefix}', key) : link}\n\t\t\t\t\ttitle={filter.title === '' ? phrases.filters.uncategorised : filter.title}\n\t\t\t\t\tonClick={() => handleClick(key)} />\n\t\t\t{/each}\n\t\t</div>\n\t</Block>\n{/if}\n","<script>\n\timport Block from '../Block.svelte';\n\timport Input from '../forms/Input.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let name; /** @type {string} */\n\texport let block; /** @type {FiltersBlock | null} */\n\n\tconst phrases = registry.phrases.search; /** @type {UITranslation.search} */\n\tlet value = block.keyword;\n\n\t$: {\n\t\tif (value !== block.keyword) {\n\t\t\tregistry.router.action(name, value);\n\t\t}\n\t}\n\n\tconst placeholder =\n\t\tphrases.placeholder.collections === void 0\n\t\t\t? phrases.defaultPlaceholder\n\t\t\t: phrases.placeholder.collections;\n</script>\n\n<Block type=\"filter\">\n\t<Input type=\"text\" bind:value icon=\"search\" {placeholder} />\n</Block>\n","<script context=\"module\">\n\tconst unit = 8;\n\n\tconst shapesData = {\n\t\t'0': {\n\t\t\tpaths: {\n\t\t\t\tline: {\n\t\t\t\t\td:\n\t\t\t\t\t\t'M24 68h8c6 0 12 6 12 12v32c0 6-6 12-12 12H16c-6 0-12-6-12-12V80c0-6 5-12 12-12h8z',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 48,\n\t\t},\n\t\t'1': {\n\t\t\tpaths: {\n\t\t\t\tline: {\n\t\t\t\t\td: 'M4 68c6 0 12 6 12 12v44H4h24',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 32,\n\t\t},\n\t\t'2': {\n\t\t\tpaths: {\n\t\t\t\tline: {\n\t\t\t\t\td:\n\t\t\t\t\t\t'M4 80c0-6 6-12 12-12h16c6 0 12 6 12 12v8c0 6-6 12-12 12H16c-6 0-12 6-12 12v12h40',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 48,\n\t\t},\n\t\t'3': {\n\t\t\tpaths: {\n\t\t\t\tline: {\n\t\t\t\t\td:\n\t\t\t\t\t\t'M4 80c0-6 6-12 12-12h16c6 0 12 6 12 12v4c0 6-6 12-12 12h-4 4c6 0 12 6 12 12v4c0 6-6 12-12 12H16c-6 0-12-6-12-12',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 48,\n\t\t},\n\t\t'4': {\n\t\t\tpaths: {\n\t\t\t\tline: {\n\t\t\t\t\td: 'M4 68v20c0 6 6 12 12 12h16c6 0 12-6 12-12V68v56',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 48,\n\t\t},\n\t\t'5': {\n\t\t\tpaths: {\n\t\t\t\tline: {\n\t\t\t\t\td:\n\t\t\t\t\t\t'M44 68H4v24h28c6 0 12 6 12 12v8c0 6-6 12-12 12H16c-6 0-12-6-12-12',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 48,\n\t\t},\n\t\t'6': {\n\t\t\tpaths: {\n\t\t\t\tline: {\n\t\t\t\t\td:\n\t\t\t\t\t\t'M44 80c0-6-6-12-12-12H16c-6 0-12 6-12 12v32c0 6 6 12 12 12h16c6 0 12-6 12-12v-8c0-6-6-12-12-12H16c-6 0-12 6-12 12',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 48,\n\t\t},\n\t\t'7': {\n\t\t\tpaths: {\n\t\t\t\tline: {\n\t\t\t\t\td: 'M4 68h28c6 0 12 6 12 12 0 4-6.667 18.667-20 44',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 48,\n\t\t},\n\t\t'8': {\n\t\t\tpaths: {\n\t\t\t\tline: {\n\t\t\t\t\td:\n\t\t\t\t\t\t'M24 68h8c6 0 12 6 12 12v4c0 6-6 12-12 12 6 0 12 6 12 12v4c0 6-6 12-12 12H16c-6 0-12-6-12-12v-4c0-6 6-12 12-12-6 0-12-6-12-12v-4c0-6 6-12 12-12h8z',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 48,\n\t\t},\n\t\t'9': {\n\t\t\tpaths: {\n\t\t\t\tline: {\n\t\t\t\t\td:\n\t\t\t\t\t\t'M44 88c0 6-6 12-12 12H16c-6 0-12-6-12-12v-8c0-6 6-12 12-12h16c6 0 12 6 12 12v32c0 6-6 12-12 12H16c-6 0-12-6-12-12',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 48,\n\t\t},\n\t\t'|': {\n\t\t\tpaths: {\n\t\t\t\t'top-arrow': {\n\t\t\t\t\td: 'M4 48l24-24 24 24',\n\t\t\t\t},\n\t\t\t\t'bottom-arrow': {\n\t\t\t\t\td: 'M4 144l24 24 24-24',\n\t\t\t\t},\n\t\t\t\t'mid-line': {\n\t\t\t\t\td: 'M28 48v96',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 56,\n\t\t},\n\t\t',': {\n\t\t\tpaths: {\n\t\t\t\tline: {\n\t\t\t\t\td: 'M8 124c-2 0-4-2-4-4s2-4 4-4 4 2 4 4v8c0 2-2 6-4 8',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 16,\n\t\t},\n\t\t'.': {\n\t\t\tpaths: {\n\t\t\t\tline: {\n\t\t\t\t\td: 'M8 116c2 0 4 2 4 4s-2 4-4 4-4-2-4-4 2-4 4-4z',\n\t\t\t\t},\n\t\t\t},\n\t\t\twidth: 16,\n\t\t},\n\t};\n\n\tconst defaultOptions = {\n\t\tline: false,\n\t\tanimate: false,\n\t\theight: 24,\n\t};\n\n\tfunction iconHeight(text, options) {\n\t\tlet width = unit,\n\t\t\theight = 24 * unit,\n\t\t\tsvg = '',\n\t\t\ti,\n\t\t\tchar,\n\t\t\titem,\n\t\t\tscale;\n\n\t\t// Convert from number\n\t\tif (typeof text === 'number') {\n\t\t\ttext = '' + text;\n\t\t}\n\n\t\t// Set options\n\t\tif (typeof options !== 'object') {\n\t\t\toptions = {};\n\t\t}\n\t\tObject.keys(defaultOptions).forEach(option => {\n\t\t\tif (options[option] === void 0) {\n\t\t\t\toptions[option] = defaultOptions[option];\n\t\t\t}\n\t\t});\n\t\tscale = height / options.height;\n\n\t\t// Add 1 unit for line\n\t\tif (options.line) {\n\t\t\twidth += unit;\n\t\t}\n\n\t\t// Parse each character\n\t\tfor (i = 0; i < text.length; i++) {\n\t\t\tchar = text.slice(i, i + 1);\n\t\t\tif (shapesData[char] === void 0) {\n\t\t\t\tif (char === ' ') {\n\t\t\t\t\twidth += unit * 2;\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (char === '|') {\n\t\t\t\t// Force line\n\t\t\t\toptions.line = true;\n\t\t\t}\n\n\t\t\titem = shapesData[char];\n\t\t\tif (width > unit) {\n\t\t\t\tsvg += '<g transform=\"translate(' + width + ')\">';\n\t\t\t}\n\t\t\tObject.keys(item.paths).forEach(function(key) {\n\t\t\t\tlet path = item.paths[key];\n\t\t\t\tsvg += '<path d=\"' + path.d + '\" />';\n\t\t\t});\n\t\t\tif (width > unit) {\n\t\t\t\tsvg += '</g>';\n\t\t\t}\n\n\t\t\twidth += item.width + unit;\n\t\t}\n\n\t\t// Add line\n\t\tif (options.line) {\n\t\t\tsvg +=\n\t\t\t\t'<path d=\"M' +\n\t\t\t\tunit / 2 +\n\t\t\t\t' ' +\n\t\t\t\tunit / 2 +\n\t\t\t\t'h' +\n\t\t\t\t(width - unit) +\n\t\t\t\t'\" />';\n\t\t\tsvg +=\n\t\t\t\t'<path d=\"M' +\n\t\t\t\tunit / 2 +\n\t\t\t\t' ' +\n\t\t\t\t(height - unit / 2) +\n\t\t\t\t'h' +\n\t\t\t\t(width - unit) +\n\t\t\t\t'\" />';\n\t\t}\n\n\t\t// Wrap in group\n\t\tsvg =\n\t\t\t'<g stroke-width=\"' +\n\t\t\tunit +\n\t\t\t'\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +\n\t\t\tsvg +\n\t\t\t'</g>';\n\n\t\t// Wrap in <svg>\n\t\treturn (\n\t\t\t'<svg xmlns=\"http://www.w3.org/2000/svg\" focusable=\"false\" width=\"' +\n\t\t\twidth / scale +\n\t\t\t'\" height=\"' +\n\t\t\theight / scale +\n\t\t\t'\" viewBox=\"0 0 ' +\n\t\t\twidth +\n\t\t\t' ' +\n\t\t\theight +\n\t\t\t'\"> ' +\n\t\t\tsvg +\n\t\t\t'</svg>'\n\t\t);\n\t}\n</script>\n\n<script>\n\texport let text;\n\n\tlet html;\n\t$: {\n\t\thtml = iconHeight(text);\n\t}\n</script>\n\n{@html html}\n","<script context=\"module\">\n\tconst maxIndex = 13;\n\n\tconst authorLink = false;\n\n\tconst collectionClickable = false;\n\n\tconst baseClass = 'iif-collection';\n\n\tfunction getSamplesHeight(info) {\n\t\tif (info.displayHeight) {\n\t\t\treturn info.displayHeight;\n\t\t} else if (typeof info.height === 'number') {\n\t\t\treturn info.height;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tfunction getSamples(info) {\n\t\tif (info.samples instanceof Array) {\n\t\t\treturn info.samples.slice(0, 3);\n\t\t}\n\t\treturn [];\n\t}\n</script>\n\n<script>\n\timport { getProvider } from '@iconify/search-core';\n\timport Height from './Height.svelte';\n\n\t// export let registry; /** @type {Registry} */\n\texport let phrases; /** @type {UITranslation} */\n\texport let provider; /** @type {string} */\n\texport let prefix; /** @type {string} */\n\texport let info; /** @type {CollectionInfo} */\n\texport let onClick; /** @type {function} */\n\n\t// Get link\n\tlet link;\n\t$: {\n\t\tconst providerData = getProvider(provider);\n\t\tif (providerData) {\n\t\t\tlink = providerData.links.collection.replace('{prefix}', prefix);\n\t\t\tif (link === '') {\n\t\t\t\tlink = '#';\n\t\t\t}\n\t\t} else {\n\t\t\tlink = '#';\n\t\t}\n\t}\n\n\t// Get container class name\n\tlet className; /** @type {string} */\n\t$: {\n\t\tclassName =\n\t\t\tbaseClass +\n\t\t\t' ' +\n\t\t\tbaseClass +\n\t\t\t'--prefix--' +\n\t\t\tprefix +\n\t\t\t(provider === '' ? '' : ' ' + baseClass + '--provider--' + provider) +\n\t\t\t(collectionClickable ? ' ' + baseClass + '--clickable' : '') +\n\t\t\t(info.index ? ' ' + baseClass + '--' + (info.index % maxIndex) : '');\n\t}\n\n\t// Samples\n\tconst samples = getSamples(info);\n\tconst samplesHeight = getSamplesHeight(info);\n\n\t// Height\n\tconst height =\n\t\t'|' +\n\t\t(typeof info.height !== 'object' ? info.height : info.height.join(', '));\n\n\t// Block was clicked\n\tfunction handleBlockClick(event) {\n\t\tif (collectionClickable) {\n\t\t\tevent.preventDefault();\n\t\t\tonClick(prefix);\n\t\t}\n\t}\n</script>\n\n<li class={className} on:click={handleBlockClick}>\n\t<div class=\"iif-collection-text\">\n\t\t<a href={link} on:click|preventDefault={() => onClick(prefix)}>\n\t\t\t{info.name}\n\t\t</a>\n\t\t{#if info.author}\n\t\t\t<small>\n\t\t\t\t{phrases.collection.by}\n\t\t\t\t{#if authorLink && info.author.url}\n\t\t\t\t\t<a href={info.author.url} target=\"_blank\">{info.author.name}</a>\n\t\t\t\t{:else}{info.author.name}{/if}\n\t\t\t</small>\n\t\t{/if}\n\t</div>\n\t<div class=\"iif-collection-data\">\n\t\t{#if samples.length > 0}\n\t\t\t<div\n\t\t\t\tclass=\"iif-collection-samples{samplesHeight ? ' iif-collection-samples--' + samplesHeight : ''}\">\n\t\t\t\t{#each samples as sample}\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"iconify\"\n\t\t\t\t\t\tdata-icon={(provider === '' ? '' : '@' + provider + ':') + prefix + ':' + sample}\n\t\t\t\t\t\tdata-inline=\"false\" />\n\t\t\t\t{/each}\n\t\t\t</div>\n\t\t{/if}\n\t\t{#if info.height}\n\t\t\t<div class=\"iif-collection-height\">\n\t\t\t\t<Height text={height} />\n\t\t\t</div>\n\t\t{/if}\n\t\t<div class=\"iif-collection-total\">\n\t\t\t<Height text={info.total} />\n\t\t</div>\n\t</div>\n</li>\n","<script>\n\timport Item from './Item.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let phrases; /** @type {UITranslation} */\n\texport let showCategories; /** @type {boolean} */\n\texport let category; /** @type {string} */\n\texport let items; /** @type {Record<string, CollectionInfo>} */\n\texport let provider; /** @type {string} */\n\texport let onClick; /** @type {function} */\n</script>\n\n<div class=\"iif-collections-list-category\">\n\t{#if showCategories}\n\t\t<div class=\"iif-collections-list-title\">{category}</div>\n\t{/if}\n\t<ul class=\"iif-collections-list-items\">\n\t\t{#each Object.entries(items) as [prefix, info], i (prefix)}\n\t\t\t<Item {registry} {phrases} {provider} {prefix} {info} {onClick} />\n\t\t{/each}\n\t</ul>\n</div>\n","<script>\n\texport let error; /** @type {string} */\n</script>\n\n<div class=\"iif-content-error\">{error}</div>\n","<script>\n\timport Block from '../Block.svelte';\n\timport Category from './collections-list/Category.svelte';\n\timport Error from './errors/ContentError.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let name; /** @type {string} */\n\texport let block; /** @type {CollectionsListBlock} */\n\texport let provider; /** @type {string} */\n\n\tconst phrases = registry.phrases; /** @type {UITranslation} */\n\n\tfunction onClick(prefix) {\n\t\tregistry.router.action(name, prefix);\n\t}\n</script>\n\n<Block type=\"collections\">\n\t{#each Object.entries(block.collections) as [category, items], i (category)}\n\t\t<Category\n\t\t\t{registry}\n\t\t\t{phrases}\n\t\t\t{onClick}\n\t\t\tshowCategories={block.showCategories}\n\t\t\t{category}\n\t\t\t{provider}\n\t\t\t{items} />\n\t{:else}\n\t\t<Error error={phrases.errors.noCollections} />\n\t{/each}\n</Block>\n","<script>\n\timport FiltersBlock from '../blocks/Filters.svelte';\n\timport CollectionsFilterBlock from '../blocks/CollectionsFilter.svelte';\n\timport CollectionsListBlock from '../blocks/CollectionsList.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let blocks; /** @type {CollectionsViewBlocks | null} */\n\texport let route; /** @type {PartialRoute} */\n\n\tlet provider;\n\t$: {\n\t\tprovider =\n\t\t\troute.params && route.params.provider ? route.params.provider : '';\n\t}\n</script>\n\n<div class=\"iif-view iif-view--collections\">\n\t<div class=\"iif-collections-header\">\n\t\t{#if blocks.categories}\n\t\t\t<FiltersBlock {registry} name=\"categories\" block={blocks.categories} />\n\t\t{/if}\n\t\t<CollectionsFilterBlock {registry} name=\"filter\" block={blocks.filter} />\n\t</div>\n\t<CollectionsListBlock\n\t\t{registry}\n\t\t{provider}\n\t\tname=\"collections\"\n\t\tblock={blocks.collections} />\n</div>\n","<script context=\"module\">\n\timport Iconify from '@iconify/iconify';\n\n\tconst baseClass = 'iif-icon-grid';\n</script>\n\n<script>\n\t// ...item\n\texport let name; /** @type {string} */\n\texport let tooltip; /** @type {string} */\n\t// export let text; /** @type {string} */\n\texport let icon; /** @type {string} */\n\texport let exists; /** @type {boolean} */\n\texport let selected; /** @type {boolean} */\n\texport let link; /** @type {string} */\n\n\texport let onClick;\n\n\t// Get class name\n\tlet className = '';\n\t$: {\n\t\tconst newClassName =\n\t\t\tbaseClass +\n\t\t\t' ' +\n\t\t\tbaseClass +\n\t\t\t(exists ? '--loaded' : '--loading') +\n\t\t\t(selected ? ' ' + baseClass + '--selected' : '');\n\t\tif (newClassName !== className) {\n\t\t\t// Trigger re-render only if value was changed\n\t\t\tclassName = newClassName;\n\t\t}\n\t}\n\n\t// Get SVG\n\tlet svg = false;\n\t$: {\n\t\tconst newSVG = exists\n\t\t\t? Iconify.renderHTML(name, {\n\t\t\t\t\twidth: '1em',\n\t\t\t\t\theight: '1em',\n\t\t\t\t\tinline: false,\n\t\t\t })\n\t\t\t: false;\n\t\tif (newSVG !== svg) {\n\t\t\t// Trigger re-render only if SVG was changed\n\t\t\tsvg = newSVG;\n\t\t}\n\t}\n\n\t// Select icon\n\tfunction handleClick() {\n\t\tonClick('icons', icon);\n\t}\n</script>\n\n<li class={className}>\n\t<a\n\t\thref={link}\n\t\ttarget=\"_blank\"\n\t\ttitle={tooltip}\n\t\ton:click|preventDefault={handleClick}>\n\t\t{#if svg !== false}\n\t\t\t{@html svg}\n\t\t{/if}\n\t</a>\n</li>\n","<script context=\"module\">\n\timport Iconify from '@iconify/iconify';\n\n\t// List of key maps: key = block name, value = icon attribute\n\tconst filtersMap = {\n\t\ttags: 'tags',\n\t\tthemePrefixes: 'themePrefix',\n\t\tthemeSuffixes: 'themeSuffix',\n\t};\n\tconst filterKeys = Object.keys(filtersMap);\n\n\tconst baseClass = 'iif-icon-list';\n</script>\n\n<script>\n\timport Filter from '../filters/Filter.svelte';\n\n\t// ...item\n\texport let name; /** @type {string} */\n\texport let tooltip; /** @type {string} */\n\texport let text; /** @type {string} */\n\texport let icon; /** @type {string} */\n\texport let exists; /** @type {boolean} */\n\texport let selected; /** @type {boolean} */\n\texport let link; /** @type {string} */\n\texport let filters; /** @type {Array} */\n\n\texport let onClick; /** @type {function} */\n\texport let uncategorised; /** @type {string} */\n\n\t// Get class name\n\tlet className = '';\n\t$: {\n\t\tconst newClassName =\n\t\t\tbaseClass +\n\t\t\t' ' +\n\t\t\tbaseClass +\n\t\t\t(exists ? '--loaded' : '--loading') +\n\t\t\t(selected ? ' ' + baseClass + '--selected' : '');\n\t\tif (newClassName !== className) {\n\t\t\t// Trigger re-render only if value was changed\n\t\t\tclassName = newClassName;\n\t\t}\n\t}\n\n\t// Get SVG\n\tlet svg = false;\n\t$: {\n\t\tconst newSVG = exists\n\t\t\t? Iconify.renderHTML(name, {\n\t\t\t\t\twidth: '1em',\n\t\t\t\t\theight: '1em',\n\t\t\t\t\tinline: false,\n\t\t\t })\n\t\t\t: false;\n\t\tif (newSVG !== svg) {\n\t\t\t// Trigger re-render only if SVG was changed\n\t\t\tsvg = newSVG;\n\t\t}\n\t}\n\n\t// Get size\n\tlet size = null;\n\t$: {\n\t\tconst newSize = exists ? Iconify.getIcon(name) : null;\n\t\tif (newSize !== size) {\n\t\t\tsize = newSize;\n\t\t}\n\t}\n\n\t// Select icon\n\tfunction handleClick() {\n\t\tonClick('icons', icon);\n\t}\n</script>\n\n<li class={className}>\n\t<div class=\"iif-icon-sample\">\n\t\t<a\n\t\t\thref={link}\n\t\t\ttarget=\"_blank\"\n\t\t\ttitle={tooltip}\n\t\t\ton:click|preventDefault={handleClick}>\n\t\t\t{#if svg !== false}\n\t\t\t\t{@html svg}\n\t\t\t{/if}\n\t\t</a>\n\t</div>\n\n\t<div class={'iif-icon-data iif-icon-data--filters--' + filters.length}>\n\t\t<a\n\t\t\tclass=\"iif-icon-name\"\n\t\t\thref={link}\n\t\t\ttitle={tooltip}\n\t\t\ton:click|preventDefault={handleClick}>\n\t\t\t{text}\n\t\t</a>\n\t\t{#if exists}\n\t\t\t<div class=\"iif-icon-size\">{size.width} x {size.height}</div>\n\t\t{/if}\n\t\t{#if filters}\n\t\t\t{#each filters as filter}\n\t\t\t\t<Filter\n\t\t\t\t\tfilter={filter.item}\n\t\t\t\t\ttitle={filter.item.title === '' ? uncategorised : filter.item.title}\n\t\t\t\t\tonClick={() => onClick(filter.action, filter.value)} />\n\t\t\t{/each}\n\t\t{/if}\n\t</div>\n</li>\n","<script context=\"module\">\n\timport Iconify from '@iconify/iconify';\n\timport {\n\t\ticonToString,\n\t\tcloneObject,\n\t\tcompareObjects,\n\t} from '@iconify/search-core';\n\timport IconList from './IconList.svelte';\n\timport IconGrid from './IconGrid.svelte';\n\n\tIconify.enableCache('local', false);\n\tIconify.enableCache('session', false);\n\n\tconst baseClass = 'iif-icons';\n\n\t// List of key maps: key = block name, value = icon attribute\n\tconst filtersMap = {\n\t\ttags: 'tags',\n\t\tthemePrefixes: 'themePrefix',\n\t\tthemeSuffixes: 'themeSuffix',\n\t};\n\tconst filterKeys = Object.keys(filtersMap);\n</script>\n\n<script>\n\timport { getProvider } from '@iconify/search-core';\n\timport { onDestroy } from 'svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let route; /** @type {PartialRoute} */\n\texport let selectedIcon; /** @type {Icon | null} */\n\texport let blocks; /** @type {ViewBlocks} */\n\texport let isList; /** @type {boolean} */\n\n\tconst phrases = registry.phrases;\n\tconst uncategorised = phrases.filters.uncategorised;\n\tconst tooltipText = phrases.icons.tooltip;\n\n\t// Show prefix\n\tlet showPrefix;\n\t$: {\n\t\tshowPrefix = route.type !== 'collection';\n\t}\n\n\t// Event listener for loading icons\n\tlet abortLoader = null;\n\tlet updateCounter = 0;\n\tconst loadingEvent = () => {\n\t\tupdateCounter++;\n\t};\n\n\t// Get filters to list view\n\tfunction getFilters(item) {\n\t\tlet filters = [];\n\t\tconst icon = item.icon;\n\n\t\t// Filters\n\t\tfilterKeys.forEach(key => {\n\t\t\tif (!blocks[key]) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst attr = filtersMap[key];\n\t\t\tif (icon[attr] === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst block = blocks[key];\n\t\t\tconst active = block.active;\n\t\t\tconst iconValue = icon[attr];\n\n\t\t\t(typeof iconValue === 'string' ? [iconValue] : iconValue).forEach(\n\t\t\t\tvalue => {\n\t\t\t\t\tif (value === active) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (block.filters[value] !== void 0) {\n\t\t\t\t\t\tfilters.push({\n\t\t\t\t\t\t\taction: key,\n\t\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\t\titem: cloneObject(block.filters[value]),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\n\t\t// Icon sets\n\t\tif (route.type === 'search' && blocks.collections) {\n\t\t\tconst prefix = item.icon.prefix;\n\t\t\tif (blocks.collections.filters[prefix]) {\n\t\t\t\tfilters.push({\n\t\t\t\t\taction: 'collections',\n\t\t\t\t\tvalue: prefix,\n\t\t\t\t\titem: cloneObject(blocks.collections.filters[prefix]),\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn filters;\n\t}\n\n\t// Filter icons\n\tlet parsedIcons = [];\n\t$: {\n\t\t// Mention updateCounter to make sure this code is ran\n\t\tupdateCounter;\n\n\t\t// Reset icons list\n\t\tlet newParsedIcons = [];\n\n\t\t// Parse icons\n\t\tlet pending = [];\n\t\tlet selectedName = selectedIcon === null ? '' : iconToString(selectedIcon);\n\n\t\t// Map old icons\n\t\tconst oldKeys = Object.create(null);\n\t\tparsedIcons.forEach(icon => {\n\t\t\toldKeys[icon.name] = icon;\n\t\t});\n\n\t\tlet updated = false;\n\t\tblocks.icons.icons.forEach(icon => {\n\t\t\tconst name = iconToString(icon);\n\t\t\tconst data = Iconify.getIcon(name);\n\t\t\tconst exists = data !== null;\n\n\t\t\t// Tooltip\n\t\t\tlet tooltip = showPrefix ? name : icon.name;\n\t\t\tif (exists) {\n\t\t\t\ttooltip += tooltipText.size.replace(\n\t\t\t\t\t'{size}',\n\t\t\t\t\tdata.width + ' x ' + data.height\n\t\t\t\t);\n\t\t\t\ttooltip += tooltipText.length.replace('{length}', data.body.length);\n\t\t\t\tif (icon.chars !== void 0) {\n\t\t\t\t\ttooltip += tooltipText.char.replace(\n\t\t\t\t\t\t'{char}',\n\t\t\t\t\t\ttypeof icon.chars === 'string' ? icon.chars : icon.chars.join(', ')\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\ttooltip +=\n\t\t\t\t\ttooltipText[\n\t\t\t\t\t\tdata.body.indexOf('currentColor') === -1 ? 'colorful' : 'colorless'\n\t\t\t\t\t];\n\t\t\t}\n\n\t\t\t// Link\n\t\t\tconst providerData = getProvider(icon.provider);\n\t\t\tlet link;\n\t\t\tif (providerData) {\n\t\t\t\tlink = providerData.links.icon\n\t\t\t\t\t.replace('{prefix}', icon.prefix)\n\t\t\t\t\t.replace('{name}', icon.name);\n\t\t\t\tif (link === '') {\n\t\t\t\t\tlink = '#';\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlink = '#';\n\t\t\t}\n\n\t\t\t// Item\n\t\t\tlet item = {\n\t\t\t\tname,\n\t\t\t\ttext: showPrefix ? name : icon.name,\n\t\t\t\ttooltip,\n\t\t\t\ticon: cloneObject(icon),\n\t\t\t\texists,\n\t\t\t\tlink,\n\t\t\t\tselected: name === selectedName,\n\t\t\t};\n\n\t\t\tif (isList) {\n\t\t\t\t// Add filters\n\t\t\t\titem.filters = getFilters(item);\n\t\t\t}\n\n\t\t\t// Check if item has been updated, use old item if not to avoid re-rendering child component\n\t\t\tif (oldKeys[name] === void 0) {\n\t\t\t\tupdated = true;\n\t\t\t\tif (!exists) {\n\t\t\t\t\tpending.push(name);\n\t\t\t\t}\n\t\t\t} else if (!compareObjects(oldKeys[name], item)) {\n\t\t\t\tupdated = true;\n\t\t\t} else {\n\t\t\t\titem = oldKeys[name];\n\t\t\t}\n\n\t\t\tnewParsedIcons.push(item);\n\t\t});\n\n\t\t// Load pending images\n\t\tif (pending.length) {\n\t\t\tif (abortLoader !== null) {\n\t\t\t\tabortLoader();\n\t\t\t}\n\t\t\tabortLoader = Iconify.loadIcons(pending, loadingEvent);\n\t\t}\n\n\t\t// Overwrite parseIcons variable only if something was updated, triggering component re-render\n\t\t// Also compare length in case if new set is subset of old set\n\t\tif (updated || parsedIcons.length !== newParsedIcons.length) {\n\t\t\tparsedIcons = newParsedIcons;\n\t\t}\n\t}\n\n\t// Icon or filter was clicked\n\tfunction onClick(block, value) {\n\t\tif (block === 'icons') {\n\t\t\t// UISelectionEvent\n\t\t\tregistry.callback({\n\t\t\t\ttype: 'selection',\n\t\t\t\ticon: value,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tregistry.router.action(block, value);\n\t}\n\n\t// Remove event listener\n\tonDestroy(() => {\n\t\tif (abortLoader !== null) {\n\t\t\tabortLoader();\n\t\t\tabortLoader = null;\n\t\t}\n\t});\n</script>\n\n<div class={baseClass + ' ' + baseClass + (isList ? '--list' : '--grid')}>\n\t<ul>\n\t\t{#each parsedIcons as item, i (item.name)}\n\t\t\t{#if isList}\n\t\t\t\t<IconList {...item} {onClick} {uncategorised} />\n\t\t\t{:else}\n\t\t\t\t<IconGrid {...item} {onClick} />\n\t\t\t{/if}\n\t\t{/each}\n\t</ul>\n</div>\n","<script>\n\timport Icon from '../misc/Icon.svelte';\n\n\texport let icon;\n\texport let title;\n\texport let onClick;\n</script>\n\n<button class=\"iif-icon-button\" {title} on:click={onClick}>\n\t<Icon {icon} />\n</button>\n","<script>\n\timport IconButton from '../../forms/IconButton.svelte';\n\n\texport let headerText; /** @type {string} */\n\texport let isList; /** @type {boolean} */\n\texport let canChangeLayout; /** @type {boolean} */\n\texport let phrases; /** @type {UITranslation} */\n\texport let changeLayout; /** @type {function} */\n</script>\n\n<div class=\"iif-icons-header\">\n\t<div class=\"iif-icons-header-text\">{headerText}</div>\n\t{#if canChangeLayout}\n\t\t<div class=\"iif-icons-header-modes\">\n\t\t\t{#each [isList ? 'grid' : 'list'] as icon (icon)}\n\t\t\t\t<IconButton\n\t\t\t\t\t{icon}\n\t\t\t\t\tonClick={changeLayout}\n\t\t\t\t\ttitle={phrases.icons.header[icon + 'Mode']} />\n\t\t\t{/each}\n\t\t</div>\n\t{/if}\n</div>\n","<script context=\"module\">\n\tconst baseClass = 'iif-page';\n\tconst selectedClass = baseClass + ' ' + baseClass + '--selected';\n\tconst arrowClass =\n\t\tbaseClass + ' ' + baseClass + '--arrow ' + baseClass + '--';\n\tconst moreClass = baseClass + ' ' + baseClass + '--more';\n</script>\n\n<script>\n\timport { showPagination } from '@iconify/search-core';\n\timport Icon from '../misc/Icon.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let name; /** @type {string} */\n\texport let block; /** @type {PaginationBlock} */\n\n\tlet pages = [];\n\tlet prevPage;\n\tlet nextPage;\n\t$: {\n\t\tpages = showPagination(block);\n\t\tif (pages.length) {\n\t\t\t// Get previous / next pages\n\t\t\tnextPage = block.more\n\t\t\t\t? block.page + 1\n\t\t\t\t: pages[pages.length - 1] > block.page\n\t\t\t\t? block.page + 1\n\t\t\t\t: -1;\n\t\t\tprevPage = block.page > 0 ? block.page - 1 : -1;\n\n\t\t\t// Map pages\n\t\t\tpages = pages.map((page, index) => {\n\t\t\t\tconst dot = index > 0 && pages[index - 1] < page - 1;\n\t\t\t\tconst selected = page === block.page;\n\t\t\t\treturn {\n\t\t\t\t\tselected,\n\t\t\t\t\tdot,\n\t\t\t\t\tpage,\n\t\t\t\t\ttext: page + 1,\n\t\t\t\t\tclassName: selected ? selectedClass : baseClass,\n\t\t\t\t\tonClick: () => setPage(page),\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t}\n\n\t// Change page\n\tfunction setPage(page) {\n\t\tregistry.router.action(name, page);\n\t}\n</script>\n\n{#if pages.length > 0}\n\t<div class=\"iif-pagination\">\n\t\t{#if prevPage !== -1}\n\t\t\t<a\n\t\t\t\thref=\"# \"\n\t\t\t\tclass={arrowClass + 'prev'}\n\t\t\t\ton:click|preventDefault={() => setPage(prevPage)}>\n\t\t\t\t<Icon icon=\"left\" />\n\t\t\t</a>\n\t\t{/if}\n\t\t{#each pages as page, i (page.text)}\n\t\t\t{#if page.dot}\n\t\t\t\t<span>...</span>\n\t\t\t{/if}\n\t\t\t<a\n\t\t\t\thref={page.selected ? void 0 : '# '}\n\t\t\t\tclass={page.className}\n\t\t\t\ton:click|preventDefault={page.onClick}>\n\t\t\t\t{page.text}\n\t\t\t</a>\n\t\t{/each}\n\t\t{#if block.more}\n\t\t\t<a\n\t\t\t\thref=\"# \"\n\t\t\t\tclass={moreClass}\n\t\t\t\ton:click|preventDefault={() => setPage(registry.phrases.icons.moreAsNumber ? 2 : 'more')}>\n\t\t\t\t{registry.phrases.icons.more}\n\t\t\t</a>\n\t\t{/if}\n\t\t{#if nextPage !== -1}\n\t\t\t<a\n\t\t\t\thref=\"# \"\n\t\t\t\tclass={arrowClass + 'next'}\n\t\t\t\ton:click|preventDefault={() => setPage(nextPage)}>\n\t\t\t\t<Icon icon=\"right\" />\n\t\t\t</a>\n\t\t{/if}\n\t</div>\n{/if}\n","<script>\n\timport ContentError from './errors/ContentError.svelte';\n\timport Block from '../Block.svelte';\n\timport IconsContainer from './icons/Container.svelte';\n\timport IconsHeader from './icons/Header.svelte';\n\timport PaginationBlock from './Pagination.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let route; /** @type {PartialRoute} */\n\texport let selectedIcon; /** @type {Icon | null} */\n\texport let blocks; /** @type {ViewBlocks | null} */\n\n\tconst phrases = registry.phrases; /** @type {UITranslation} */\n\tconst componentsConfig = registry.config.components;\n\n\t// Generate header text\n\tfunction generateHeaderText() {\n\t\tconst total = blocks.pagination.length,\n\t\t\ttext = phrases.icons;\n\n\t\tif (blocks.pagination.more && total > 0) {\n\t\t\t// Search results with \"more\" button\n\t\t\treturn text.header.full;\n\t\t}\n\n\t\t// Exact phrase for count\n\t\tif (text.headerWithCount[total] !== void 0) {\n\t\t\treturn text.headerWithCount[total];\n\t\t}\n\n\t\t// Default\n\t\treturn text.header.full;\n\t}\n\n\t// Check if block is empty and get header text\n\tlet isEmpty; /** @type {boolean} */\n\tlet headerText; /** @type {string} */\n\t$: {\n\t\tisEmpty =\n\t\t\t!blocks.pagination || !blocks.icons || blocks.icons.icons.length < 1;\n\t\tif (!isEmpty) {\n\t\t\t// Generate header text\n\t\t\theaderText = generateHeaderText().replace(\n\t\t\t\t'{count}',\n\t\t\t\tblocks.pagination.length\n\t\t\t);\n\t\t}\n\t}\n\n\t// Layout mode\n\tconst canChangeLayout = componentsConfig.toggleList;\n\tlet isList = componentsConfig.list;\n\n\tfunction changeLayout() {\n\t\tif (canChangeLayout) {\n\t\t\tisList = componentsConfig.list = !componentsConfig.list;\n\t\t\t// UIConfigEvent\n\t\t\tregistry.callback({\n\t\t\t\ttype: 'config',\n\t\t\t});\n\t\t}\n\t}\n</script>\n\n{#if isEmpty}\n\t<ContentError error={phrases.errors.noIconsFound} />\n{:else}\n\t<Block type=\"icons\">\n\t\t<IconsHeader\n\t\t\t{headerText}\n\t\t\t{isList}\n\t\t\t{canChangeLayout}\n\t\t\t{phrases}\n\t\t\t{changeLayout} />\n\t\t<IconsContainer {registry} {selectedIcon} {blocks} {route} {isList} />\n\t\t<PaginationBlock {registry} name=\"pagination\" block={blocks.pagination} />\n\t</Block>\n{/if}\n","<script>\n\timport Input from '../forms/Input.svelte';\n\timport Block from '../Block.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let name; /** @type {string} */\n\texport let block; /** @type {CollectionsListBlock} */\n\texport let info = null; /** @type {CollectionInfo | null} */\n\texport let customType = ''; /** @type {string} */\n\n\tconst canFocusSearch = true;\n\n\t// Phrases\n\tconst phrases = registry.phrases.search; /** @type {UITranslation.search} */\n\n\t// Get placeholder\n\tlet placeholder;\n\t$: {\n\t\tif (customType !== '' && phrases.placeholder[customType] !== void 0) {\n\t\t\tplaceholder = phrases.placeholder[customType];\n\t\t} else if (info && info.name && phrases.placeholder.collection !== void 0) {\n\t\t\tplaceholder = phrases.placeholder.collection.replace('{name}', info.name);\n\t\t} else {\n\t\t\tplaceholder = phrases.defaultPlaceholder;\n\t\t}\n\t}\n\n\t// Submit form\n\tfunction changeValue(value) {\n\t\tregistry.router.action(name, value.trim().toLowerCase());\n\t}\n</script>\n\n<Block type=\"search\" {name} extra=\"search-form\">\n\t<Input\n\t\ttype=\"text\"\n\t\tvalue={block.keyword}\n\t\tonInput={changeValue}\n\t\t{placeholder}\n\t\ticon=\"search\"\n\t\tautofocus={canFocusSearch} />\n\t<button class=\"iif-form-button iif-form-button--primary\" focusable=\"false\">\n\t\t{phrases.button}\n\t</button>\n</Block>\n","<script context=\"module\">\n\tconst filterBlocks = ['tags', 'themePrefixes', 'themeSuffixes'];\n\tconst baseClass = 'iif-view--collection';\n\n\tconst showCollectionInfoBlock = false;\n</script>\n\n<script>\n\timport { getProvider } from '@iconify/search-core';\n\timport FiltersBlock from '../blocks/Filters.svelte';\n\timport CollectionInfoBlock from '../Empty.svelte';\n\timport IconsWithPages from '../blocks/IconsWithPages.svelte';\n\timport SearchBlock from '../blocks/Search.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let selectedIcon; /** @type {Icon | null} */\n\texport let blocks; /** @type {CollectionViewBlocks | null} */\n\texport let route; /** @type {PartialRoute} */\n\n\tlet provider; /** @type {string} */\n\tlet prefix; /** @type {string} */\n\tlet info; /** @type {CollectionInfo | null} */\n\tlet collectionsLink;\n\t$: {\n\t\tprovider = route.params.provider;\n\t\tif (typeof provider !== 'string') {\n\t\t\tprovider = '';\n\t\t}\n\t\tprefix = route.params.prefix;\n\t\tinfo = blocks.info === null ? null : blocks.info.info;\n\n\t\t// Get collection link\n\t\tconst providerData = getProvider(provider);\n\t\tif (providerData) {\n\t\t\tcollectionsLink = providerData.links.collection;\n\t\t} else {\n\t\t\tcollectionsLink = '';\n\t\t}\n\t}\n\n\tlet hasFilters; /** @type {boolean} */\n\t$: {\n\t\thasFilters = filterBlocks.filter(key => !!blocks[key]).length > 0;\n\t}\n</script>\n\n<div\n\tclass=\"iif-view {baseClass}\n\t{baseClass}--prefix--{prefix + (provider === '' ? '' : ' ' + baseClass + '--provider--' + provider)}\">\n\t{#if blocks.collections}\n\t\t<div class=\"iff-filters\">\n\t\t\t<FiltersBlock\n\t\t\t\t{registry}\n\t\t\t\tname=\"collections\"\n\t\t\t\tparent={route.parent ? route.parent.type : 'collections'}\n\t\t\t\tlink={collectionsLink}\n\t\t\t\tblock={blocks.collections} />\n\t\t</div>\n\t{/if}\n\n\t{#if showCollectionInfoBlock && info !== null}\n\t\t<CollectionInfoBlock {registry} name=\"info\" block={blocks.info} />\n\t{/if}\n\n\t<SearchBlock {registry} name=\"filter\" block={blocks.filter} {info} />\n\n\t{#if hasFilters}\n\t\t<div class=\"iff-filters\">\n\t\t\t{#each filterBlocks as key, i (key)}\n\t\t\t\t{#if blocks[key]}\n\t\t\t\t\t<FiltersBlock {registry} name={key} block={blocks[key]} />\n\t\t\t\t{/if}\n\t\t\t{/each}\n\t\t</div>\n\t{/if}\n\n\t<IconsWithPages {registry} {blocks} {selectedIcon} {route} />\n</div>\n","<script>\n\timport { getProvider } from '@iconify/search-core';\n\timport FiltersBlock from '../blocks/Filters.svelte';\n\timport IconsWithPages from '../blocks/IconsWithPages.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let route; /** @type {PartialRoute} */\n\texport let selectedIcon; /** @type {Icon | null} */\n\texport let blocks; /** @type {CollectionViewBlocks | null} */\n\n\tlet keyword; /** @type {string} */\n\t$: {\n\t\tkeyword = route.params.keyword;\n\t}\n\n\t// Get collection link\n\tlet collectionsLink;\n\t$: {\n\t\tlet provider = route.params.provider;\n\t\tif (typeof provider !== 'string') {\n\t\t\tprovider = '';\n\t\t}\n\n\t\t// Get collection link\n\t\tconst providerData = getProvider(provider);\n\t\tif (providerData) {\n\t\t\tcollectionsLink = providerData.links.collection;\n\t\t} else {\n\t\t\tcollectionsLink = '';\n\t\t}\n\t}\n</script>\n\n<div class=\"iif-view iif-view--search\">\n\t{#if blocks.collections}\n\t\t<FiltersBlock\n\t\t\t{registry}\n\t\t\tname=\"collections\"\n\t\t\tblock={blocks.collections}\n\t\t\tlink={collectionsLink} />\n\t{/if}\n\n\t<IconsWithPages {registry} {blocks} {selectedIcon} {route} />\n</div>\n","<script>\n\timport FiltersBlock from '../blocks/Filters.svelte';\n\timport IconsWithPages from '../blocks/IconsWithPages.svelte';\n\timport SearchBlock from '../blocks/Search.svelte';\n\n\texport let registry; /** @type {Registry} */\n\texport let route; /** @type {PartialRoute} */\n\texport let selectedIcon; /** @type {Icon | null} */\n\texport let blocks; /** @type {CollectionViewBlocks | null} */\n\n\tlet customType; /** @type {string} */\n\t$: {\n\t\tcustomType = route.params.customType;\n\t}\n</script>\n\n<div class=\"iif-view iif-view--custom iif-view--custom--{customType}\">\n\t<SearchBlock {registry} name=\"filter\" block={blocks.filter} {customType} />\n\n\t<IconsWithPages {registry} {blocks} {selectedIcon} {route} />\n</div>\n","<script context=\"module\">\n\tconst canShowProviders = false;\n\tconst canAddProviders = false;\n</script>\n\n<script>\n\timport { listProviders } from '@iconify/search-core';\n\timport SearchBlock from './blocks/GlobalSearch.svelte';\n\timport ParentBlock from './blocks/Parent.svelte';\n\timport ProvidersBlock from './Empty.svelte';\n\timport ViewError from './views/Error.svelte';\n\timport CollectionsView from './views/Collections.svelte';\n\timport CollectionView from './views/Collection.svelte';\n\timport SearchView from './views/Search.svelte';\n\timport CustomView from './views/Custom.svelte';\n\n\t/**\n\t * Global exports\n\t */\n\texport let registry; /** @type {Registry} */\n\texport let selectedIcon; /** @type {Icon | null} */\n\n\t// RouterEvent\n\texport let viewChanged; /** @type {boolean} */\n\texport let error; /** @type {string} */\n\texport let route; /** @type {PartialRoute} */\n\texport let blocks; /** @type {ViewBlocks | null} */\n\n\tconst supportCustomView = true;\n\n\tconst baseClass = 'iif-content';\n\tlet className, searchValue;\n\t$: {\n\t\t// Check class name and search form value\n\t\tclassName = baseClass;\n\n\t\tif (error !== '') {\n\t\t\t// View shows error\n\t\t\tclassName +=\n\t\t\t\t' ' + baseClass + '--error ' + baseClass + '--error--' + error;\n\t\t} else {\n\t\t\t// View shows something\n\t\t\tclassName +=\n\t\t\t\t' ' + baseClass + '--view ' + baseClass + '--view--' + route.type;\n\n\t\t\tif (\n\t\t\t\troute.params &&\n\t\t\t\t(route.type === 'search' ||\n\t\t\t\t\troute.type === 'collections' ||\n\t\t\t\t\troute.type === 'collection') &&\n\t\t\t\troute.params.provider\n\t\t\t) {\n\t\t\t\t// Add provider: '{base}--view--{type}--provider--{provider}'\n\t\t\t\tclassName +=\n\t\t\t\t\t' ' +\n\t\t\t\t\tbaseClass +\n\t\t\t\t\t'--view--' +\n\t\t\t\t\troute.type +\n\t\t\t\t\t'--provider--' +\n\t\t\t\t\troute.params.provider;\n\t\t\t}\n\n\t\t\tif (route.type === 'collection') {\n\t\t\t\t// Add prefix: '{base}--view--collection--prefix--{prefix}'\n\t\t\t\tclassName +=\n\t\t\t\t\t' ' +\n\t\t\t\t\tbaseClass +\n\t\t\t\t\t'--view--collection--prefix--' +\n\t\t\t\t\troute.params.prefix;\n\t\t\t} else if (supportCustomView && route.type === 'custom') {\n\t\t\t\t// Add custom type: '{base} {base}--view {base}--view--custom {base}--view--custom--{customType}'\n\t\t\t\tclassName +=\n\t\t\t\t\t' ' + baseClass + '--view--custom--' + route.params.customType;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if collections list is in route, don't show global search if its not there\n\tlet showGlobalSearch;\n\t$: {\n\t\tshowGlobalSearch = false;\n\t\tlet item = route;\n\t\twhile (!showGlobalSearch && item !== null) {\n\t\t\tif (item.type === 'collections') {\n\t\t\t\tshowGlobalSearch = true;\n\t\t\t} else {\n\t\t\t\titem = item.parent ? item.parent : null;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Get active provider from route\n\t */\n\tfunction getActiveProvider(route) {\n\t\tif (!route) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (route.params && typeof route.params.provider === 'string') {\n\t\t\treturn route.params.provider;\n\t\t}\n\t\tif (route.parent) {\n\t\t\treturn getActiveProvider(route.parent);\n\t\t}\n\t\treturn '';\n\t}\n\n\t/**\n\t * Check if route is capable of having provider\n\t */\n\tfunction isProviderEnabledRoute(route) {\n\t\tswitch (route.type) {\n\t\t\tcase 'collections':\n\t\t\tcase 'collection':\n\t\t\tcase 'search':\n\t\t\t\treturn true;\n\t\t}\n\t\treturn route.parent ? isProviderEnabledRoute(route.parent) : false;\n\t}\n\n\t// Get providers\n\tlet showProviders = canAddProviders;\n\tlet activeProvider = '';\n\tlet providers = [''];\n\t$: {\n\t\tif (canShowProviders && isProviderEnabledRoute(route)) {\n\t\t\tconst providersList = listProviders();\n\t\t\tif (providersList.length > 1) {\n\t\t\t\tshowProviders = true;\n\n\t\t\t\t// Get current provider\n\t\t\t\tactiveProvider = getActiveProvider(route);\n\n\t\t\t\t// Create new list of providers\n\t\t\t\tif (!providers || providers.length !== providersList.length) {\n\t\t\t\t\tproviders = providersList;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tshowProviders = canAddProviders;\n\t\t\t}\n\t\t} else {\n\t\t\tshowProviders = false;\n\t\t}\n\t}\n</script>\n\n<div class={className}>\n\t{#if canShowProviders && showProviders}\n\t\t<ProvidersBlock {registry} {route} {providers} {activeProvider} />\n\t{/if}\n\n\t{#if showGlobalSearch}\n\t\t<SearchBlock {registry} {viewChanged} {error} {route} />\n\t{/if}\n\n\t{#if route && route.parent}\n\t\t<ParentBlock {registry} {route} />\n\t{/if}\n\n\t{#if !route || route.type !== 'empty'}\n\t\t{#if error !== '' || !route}\n\t\t\t<ViewError\n\t\t\t\t{registry}\n\t\t\t\terror={error !== '' ? error : 'bad_route'}\n\t\t\t\t{route} />\n\t\t{:else if route.type === 'collections'}\n\t\t\t<CollectionsView {registry} {route} {blocks} />\n\t\t{:else if route.type === 'collection'}\n\t\t\t<CollectionView {registry} {route} {blocks} {selectedIcon} />\n\t\t{:else if route.type === 'search'}\n\t\t\t<SearchView {registry} {route} {blocks} {selectedIcon} />\n\t\t{:else if supportCustomView && route.type === 'custom'}\n\t\t\t<CustomView {registry} {route} {blocks} {selectedIcon} />\n\t\t{:else}\n\t\t\t<ViewError {registry} error=\"bad_route\" {route} />\n\t\t{/if}\n\t{/if}\n</div>\n","<script>\n\timport Wrapper from './wrapper/Default.svelte';\n\timport Navigation from './navigation/Empty.svelte';\n\timport Footer from './Footer.svelte';\n\timport Content from './Content.svelte';\n\n\t/**\n\t * Global exports\n\t */\n\texport let registry; /** @type {Registry} */\n\texport let selectedIcon; /** @type {Icon | null} */\n\texport let customisations; /** @type {PartialIconCustomisations} */\n\texport let hidden; /** @type {boolean} */\n\n\t// RouterEvent\n\t// export let viewChanged; /** @type {boolean} */\n\t// export let error; /** @type {string} */\n\texport let route; /** @type {PartialRoute} */\n\t// export let blocks; /** @type {ViewBlocks | null} */\n</script>\n\n{#if hidden !== true}\n\t<Wrapper>\n\t\t<Navigation {registry} {route} />\n\t\t<Content {...$$props} />\n\t\t<Footer {registry} {selectedIcon} {route} {customisations} />\n\t</Wrapper>\n{/if}\n"],"names":["objects_1","this","require$$0","icon_1","providers_1","base_1","params","params_1","storage_1","collection_1","collections_1","filters","filters_1","collections_list_1","collections_filter_1","collections_2","icons_list_1","pagination_1","collection_info_1","search_1","pagination","icon","types_1","custom_1","empty_1","config_1","events_1","custom_sets_1","router_1","types_2","registry","registry_1","en_1","search_core_1","phrases_1","empty","Iconify","shortenIconName","Keywords","keywords","baseClass","color","colors","getDimensions","addItem","customisations","mergeCustomisations","emptyCustomisations","filterCustomisations","iconToString","maxIndex","getProvider","cloneObject","compareObjects","showPagination"],"mappings":"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"}
|