tocco-widget-showcase 0.1.0 → 0.1.2
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/changelog.md +9 -0
- package/dist/{chunk-560.0adcde88225dd46c20c4.js → chunk-560.7d0ebbf6ed491c408122.js} +1 -2
- package/dist/{chunk-608.7cbd73f93783f4f58a2d.js → chunk-608.2db22f0d40ca3e3a4da4.js} +1 -2
- package/dist/chunk-619.f5329a75344092b73e0a.js +6 -0
- package/dist/{chunk-631.6d5f3144dc7ed179c133.js → chunk-631.4a9d478d9180fce8b415.js} +1 -2
- package/dist/{chunk-code-editor.f31fabe4a60a474536c0.js → chunk-code-editor.e26ae1dd481eb19bbe13.js} +1 -2
- package/dist/{chunk-vendor-icons.c8bf832f3a7b70ef4ba0.js → chunk-vendor-icons.a834d9610be91cf85e3a.js} +1 -1
- package/dist/index.js +2 -3
- package/package.json +1 -1
- package/dist/chunk-560.0adcde88225dd46c20c4.js.map +0 -1
- package/dist/chunk-608.7cbd73f93783f4f58a2d.js.map +0 -1
- package/dist/chunk-619.2de84f6db2bdd9590468.js +0 -7
- package/dist/chunk-619.2de84f6db2bdd9590468.js.map +0 -1
- package/dist/chunk-631.6d5f3144dc7ed179c133.js.map +0 -1
- package/dist/chunk-code-editor.f31fabe4a60a474536c0.js.map +0 -1
- package/dist/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-code-editor.f31fabe4a60a474536c0.js","mappings":"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","sources":["webpack:///./packages/core/tocco-ui/src/CodeEditor/requestHelper.js","webpack:///./packages/core/tocco-ui/src/CodeEditor/TqlConstants.js","webpack:///./packages/core/tocco-ui/src/CodeEditor/TqlHighlighter.js","webpack:///./packages/core/tocco-ui/src/CodeEditor/FtlHighlighter.js","webpack:///./packages/core/tocco-ui/src/CodeEditor/TqlAutoCompleter.js","webpack:///./packages/core/tocco-ui/src/CodeEditor/ToccoFtlMode.js","webpack:///./packages/core/tocco-ui/src/CodeEditor/TqlMode.js","webpack:///./packages/core/tocco-ui/src/CodeEditor/AceEditor.js","webpack:///./packages/core/tocco-ui/src/FormattedValue/formatters/LibPhoneFormatter.js","webpack:///./node_modules/ckeditor4-integrations-common/dist/index.esm.js","webpack:///./node_modules/ckeditor4-react/dist/index.esm.js","webpack:///./packages/core/tocco-ui/src/HtmlEditor/StyledHtmlEditor.js","webpack:///./packages/core/tocco-ui/src/HtmlEditor/HtmlEditor.js","webpack:///./packages/core/tocco-ui/src/HtmlEditor/index.js","webpack:///./packages/core/tocco-ui/src/LoadingSpinner/LoadingSpinner.js","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.mjs"],"sourcesContent":["import {request} from 'tocco-util'\n\nexport const sendRequest = endpoint => request.executeRequest(`rest/${endpoint}`)\n\nexport const extractBody = response => (response.status === 200 ? response.json() : null)\n","export const operators = ['==', '!=', '<=', '>=', '<', '>', '~=']\nexport const atoms = ['true', 'false', 'null']\nexport const types = [\n 'string',\n 'long',\n 'serial',\n 'bool',\n 'boolean',\n 'double',\n 'float',\n 'time',\n 'timestamp',\n 'char',\n 'varchar',\n 'date',\n 'datetime'\n]\nexport const placeholders = [\n 'now_date',\n 'yesterday_date',\n 'tomorrow_date',\n 'today_date',\n 'now_start',\n 'yesterday_start',\n 'tomorrow_start',\n 'today_start',\n 'now',\n 'yesterday',\n 'tomorrow',\n 'today',\n 'currentUsername',\n 'currentUser',\n 'currentBu'\n]\nexport const functions = [\n 'in',\n 'dateadd',\n 'datetimeadd',\n 'duedate',\n 'birthdayin',\n 'fulltext',\n 'likeall',\n 'distance',\n 'inboundingbox'\n]\n","import ace from 'ace-builds/src-min-noconflict/ace'\nimport 'ace-builds/src-min-noconflict/mode-text'\nimport _isArray from 'lodash/isArray'\nimport _mergeWith from 'lodash/mergeWith'\n\nimport {atoms, functions, operators, placeholders, types} from './TqlConstants'\n\nexport default implicitModel =>\n class TqlHighlightRules extends ace.require('ace/mode/text_highlight_rules').TextHighlightRules {\n constructor() {\n super()\n\n const commonWhere = [\n {\n token: 'keyword.operator.conjunction',\n regex: /(\\s*)(and|or|not)($|\\s+)/,\n caseInsensitive: true\n },\n {\n token: 'support.class.relation',\n regex: /rel/,\n push: 'model'\n },\n {\n token: 'keyword.exists',\n regex: /exists\\s*/,\n push: 'exists',\n caseInsensitive: true\n },\n {\n token: 'keyword.count',\n regex: /count\\s*/,\n push: 'count',\n caseInsensitive: true\n },\n {\n token: [\n 'keyword.function.nice_function',\n 'paren.lparen.function_arguments',\n 'text.function_arguments',\n 'paren.rparen',\n 'text.whitespace'\n ],\n regex: `((?:${functions.join('|')})\\\\s*)(\\\\()(.*?)(\\\\))($|\\\\s+)`,\n caseInsensitive: true\n },\n {\n token: 'keyword.other.chaining',\n regex: /\\./\n },\n {\n token: 'support.function.field',\n regex: /([a-z_]+)($|\\s+)/,\n push: 'comparison'\n }\n ]\n\n const customRules = {\n start: implicitModel\n ? [\n {\n token: 'keyword.where',\n regex: /\\s*/,\n next: 'rootwhere',\n caseInsensitive: true\n }\n ]\n : [\n {\n token: 'keyword.find',\n regex: /find($|\\s+)/,\n push: 'model',\n caseInsensitive: true\n },\n {\n token: 'keyword.where',\n regex: /where($|\\s+)/,\n next: 'rootwhere',\n caseInsensitive: true\n }\n ],\n model: [\n {\n token: 'support.class.model',\n regex: /[A-Z][a-z_0-9]*\\s*/,\n next: 'pop'\n }\n ],\n rootwhere: [\n {\n token: 'keyword.order_by',\n regex: /order by($|\\s+)/,\n next: 'order',\n caseInsensitive: true\n },\n ...commonWhere\n ],\n comparison: [\n {\n token: 'keyword.operator.comparison',\n regex: `(${operators.join('|')})\\\\s*`,\n next: 'value'\n }\n ],\n value: [\n {\n token: 'string',\n regex: /\".*?\"\\s*/,\n next: 'pop'\n },\n {\n token: 'constant.numeric',\n regex: /\\d+(.\\d+)?\\s*/,\n next: 'pop'\n },\n {\n token: 'constant.language.tocco_placeholder',\n regex: `\\\\:(${placeholders.join('|')})\\\\s*`,\n next: 'pop',\n caseInsensitive: true\n },\n {\n token: 'constant.language',\n regex: `(${atoms.join('|')})\\\\s*`,\n next: 'pop',\n caseInsensitive: true\n },\n {\n token: 'support.type',\n regex: `(${types.join('|')}):\\\\s*`,\n caseInsensitive: true\n }\n ],\n exists: [\n {\n token: 'paren.lparen',\n regex: /\\(\\s*/\n },\n {\n token: 'support.class.relation',\n regex: /rel/,\n push: 'model'\n },\n {\n token: 'keyword.other.chaining',\n regex: /\\./\n },\n {\n token: 'keyword.where',\n regex: /where($|\\s+)/,\n next: 'existswhere',\n caseInsensitive: true\n },\n {\n token: 'paren.rparen',\n regex: /\\)\\s*/,\n next: 'pop'\n }\n ],\n existswhere: [\n ...commonWhere,\n {\n token: 'paren.rparen',\n regex: /\\)\\s*/,\n next: 'pop'\n }\n ],\n count: [\n {\n token: 'paren.lparen',\n regex: /\\(\\s*/\n },\n {\n token: 'support.class.relation',\n regex: /rel/,\n push: 'model'\n },\n {\n token: 'keyword.other.chaining',\n regex: /\\./\n },\n {\n token: 'keyword.where',\n regex: /where($|\\s+)/,\n next: 'countwhere',\n caseInsensitive: true\n },\n {\n token: 'paren.rparen',\n regex: /\\)\\s*/,\n next: 'comparison'\n }\n ],\n countwhere: [\n ...commonWhere,\n {\n token: 'paren.rparen',\n regex: /\\)\\s*/,\n next: 'comparison'\n }\n ],\n order: [\n {\n token: 'support.class.relation',\n regex: /rel/,\n push: 'model'\n },\n {\n token: 'keyword.other.chaining',\n regex: /\\./\n },\n {\n token: ['support.function.field', 'keyword.direction', 'separator'],\n regex: /([a-z_]+\\s*)(asc|desc)?($|,|\\s+)/\n }\n ]\n }\n this.$rules = _mergeWith(this.$rules, customRules, (objValue, srcValue) =>\n _isArray(objValue) ? objValue.concat(srcValue) : undefined\n )\n\n this.normalizeRules()\n }\n }\n","import ace from 'ace-builds/src-min-noconflict/ace'\nimport 'ace-builds/src-min-noconflict/mode-text'\nimport 'ace-builds/src-min-noconflict/mode-html'\nimport _isArray from 'lodash/isArray'\nimport _mergeWith from 'lodash/mergeWith'\n\nimport TqlHighlighter from './TqlHighlighter'\n\n/** this is a copy from https://github.com/ajaxorg/ace/blob/master/lib/ace/mode/ftl_highlight_rules.js but with angled\n * brackets replaced with square brackets as described in\n * https://freemarker.apache.org/docs/dgui_misc_alternativesyntax.html\n *\n * TODO add auto-complete? only for tocco functions? TOCDEV-4496\n * TODO implement possibility to switch between the two and open PR with ACE repository? TOCDEV-4495\n **/\nexport class ToccoFtlLangHighlightRules extends ace.require('ace/mode/text_highlight_rules').TextHighlightRules {\n constructor() {\n super()\n\n const stringBuiltIns =\n '\\\\?|substring|cap_first|uncap_first|capitalize|chop_linebreak|date|time|datetime|' +\n 'ends_with|html|groups|index_of|j_string|js_string|json_string|last_index_of|length|lower_case|' +\n 'left_pad|right_pad|contains|matches|number|replace|rtf|url|split|starts_with|string|trim|' +\n 'upper_case|word_list|xhtml|xml'\n const numberBuiltIns = 'c|round|floor|ceiling'\n const dateBuiltIns = 'iso_[a-z_]+'\n const seqBuiltIns = 'first|last|seq_contains|seq_index_of|seq_last_index_of|reverse|size|sort|sort_by|chunk'\n const hashBuiltIns = 'keys|values'\n const xmlBuiltIns = 'children|parent|root|ancestors|node_name|node_type|node_namespace'\n const expertBuiltIns =\n 'byte|double|float|int|long|short|number_to_date|number_to_time|number_to_datetime|' +\n 'eval|has_content|interpret|is_[a-z_]+|namespacenew'\n const allBuiltIns =\n stringBuiltIns + numberBuiltIns + dateBuiltIns + seqBuiltIns + hashBuiltIns + xmlBuiltIns + expertBuiltIns\n\n const deprecatedBuiltIns = 'default|exists|if_exists|web_safe'\n\n const variables =\n 'data_model|error|globals|lang|locale|locals|main|namespace|node|current_node|' +\n 'now|output_encoding|template_name|url_escaping_charset|vars|version'\n\n const operators = 'gt|gte|lt|lte|as|in|using'\n\n const reserved = 'true|false'\n\n const attributes =\n 'encoding|parse|locale|number_format|date_format|time_format|datetime_format|time_zone|' +\n 'url_escaping_charset|classic_compatible|strip_whitespace|strip_text|strict_syntax|ns_prefixes|' +\n 'attributes'\n\n this.$rules = {\n start: [\n {\n token: 'constant.character.entity',\n regex: /&[^;]+;/\n },\n {\n token: 'support.function',\n regex: '\\\\?(' + allBuiltIns + ')'\n },\n {\n token: 'support.function.deprecated',\n regex: '\\\\?(' + deprecatedBuiltIns + ')'\n },\n {\n token: 'language.variable',\n regex: '\\\\.(?:' + variables + ')'\n },\n {\n token: 'constant.language',\n regex: '\\\\b(' + reserved + ')\\\\b'\n },\n {\n token: 'keyword.operator',\n regex: '\\\\b(?:' + operators + ')\\\\b'\n },\n {\n token: 'entity.other.attribute-name',\n regex: attributes\n },\n {\n token: 'string', //\n regex: /['\"]/,\n next: 'qstring'\n },\n {\n // Deal with variable names that contains number\n // e.g. <#if var42 == 42 >\n token: function (value) {\n if (value.match('^[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?$')) {\n return 'constant.numeric'\n } else {\n return 'variable'\n }\n },\n regex: /[\\w.+-]+/\n },\n {\n token: 'keyword.operator',\n regex:\n '!|\\\\.|\\\\$|%|&|\\\\*|\\\\-\\\\-|\\\\-|\\\\+\\\\+|\\\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|&&|\\\\|\\\\||\\\\?\\\\:' +\n '|\\\\*=|%=|\\\\+=|\\\\-=|&=|\\\\^='\n },\n {\n token: 'paren.lparen',\n regex: '[[({]'\n },\n {\n token: 'paren.rparen',\n regex: '[\\\\])}]'\n },\n {\n token: 'text',\n regex: '\\\\s+'\n }\n ],\n\n qstring: [\n {\n token: 'constant.character.escape',\n regex: '\\\\\\\\[nrtvef\\\\\\\\\"$]'\n },\n {\n token: 'string',\n regex: /['\"]/,\n next: 'start'\n },\n {\n defaultToken: 'string'\n }\n ]\n }\n }\n}\n\nexport default class ToccoFtlHighlightRules extends ace.require('ace/mode/html_highlight_rules').HtmlHighlightRules {\n constructor() {\n super()\n\n const directives =\n 'assign|attempt|break|case|compress|default|elseif|else|escape|fallback|function|flush|' +\n 'ftl|global|if|import|include|list|local|lt|macro|nested|noescape|noparse|nt|recover|recurse|return|rt|' +\n 'setting|stop|switch|t|visit'\n\n const tqlDirectives = ['query', 'queryCount']\n\n const startRules = [\n {\n token: 'keyword.function',\n regex: `\\\\[@(${tqlDirectives.join('|')}).*?]`,\n push: 'tql-start'\n },\n {\n token: 'comment',\n regex: '\\\\[#--',\n next: 'ftl-dcomment'\n },\n {\n token: 'string.interpolated',\n regex: '\\\\${',\n push: 'ftl-start'\n },\n {\n token: 'keyword.function',\n regex: '\\\\[/?#(' + directives + ')',\n push: 'ftl-start'\n },\n {\n token: 'keyword.other',\n regex: '\\\\[/?@[a-zA-Z\\\\.]+',\n push: 'ftl-start'\n }\n ]\n\n const endRules = [\n {\n token: 'keyword',\n regex: '/?\\\\]',\n next: 'pop'\n },\n {\n token: 'string.interpolated',\n regex: '}',\n next: 'pop'\n }\n ]\n\n for (const key in this.$rules) {\n this.$rules[key].unshift.apply(this.$rules[key], startRules)\n }\n\n this.embedRules(ToccoFtlLangHighlightRules, 'ftl-', endRules, ['start'])\n\n this.addRules({\n 'ftl-dcomment': [\n {\n token: 'comment',\n regex: '--\\\\]',\n next: 'pop'\n },\n {\n defaultToken: 'comment'\n }\n ]\n })\n\n const tqlEndRules = [\n {\n token: 'keyword.function',\n regex: `\\\\[/@(${tqlDirectives.join('|')})]`,\n next: 'pop'\n }\n ]\n\n this.embedRules(TqlHighlighter(), 'tql-', tqlEndRules, ['start'])\n\n const mergingRules = {\n 'tql-rootwhere': [\n {\n token: 'keyword.function',\n regex: `\\\\[/@(${tqlDirectives.join('|')})]`,\n next: 'pop'\n }\n ],\n 'tql-order': [\n {\n token: 'keyword.function',\n regex: `\\\\[/@(${tqlDirectives.join('|')})]`,\n next: 'pop'\n }\n ]\n }\n this.$rules = _mergeWith(this.$rules, mergingRules, (objValue, srcValue) =>\n _isArray(objValue) ? objValue.concat(srcValue) : undefined\n )\n\n this.normalizeRules()\n }\n}\n","import ace from 'ace-builds/src-min-noconflict/ace'\n\nimport {extractBody, sendRequest} from './requestHelper'\nimport {functions, placeholders, types} from './TqlConstants'\n\nconst TokenIterator = ace.require('ace/token_iterator').TokenIterator\nconst getTokenType = token => (token ? token.type.substring(token.type.lastIndexOf('.') + 1) : null)\n\nconst isCurrentTokenOfType = (iterator, type) => getTokenType(iterator.getCurrentToken()) === type\n\nconst findLastPathStep = iterator => {\n if (isCurrentTokenOfType(iterator, 'model')) {\n iterator.stepBackward()\n }\n if (isCurrentTokenOfType(iterator, 'field') || isCurrentTokenOfType(iterator, 'relation')) {\n iterator.stepBackward()\n }\n if (isCurrentTokenOfType(iterator, 'chaining')) {\n iterator.stepBackward()\n } else {\n return null\n }\n\n if (isCurrentTokenOfType(iterator, 'model')) {\n const modelToken = iterator.getCurrentToken()\n iterator.stepBackward()\n iterator.stepBackward()\n return modelToken ? modelToken.value.trim() : null\n } else {\n return null\n }\n}\n\nconst stepBackUntilToken = (iterator, type) => {\n while (!isCurrentTokenOfType(iterator, type)) {\n if (!iterator.stepBackward()) {\n return false\n }\n }\n return true\n}\n\nconst handleParentheses = (iterator, parenCount) => {\n if (isCurrentTokenOfType(iterator, 'rparen')) {\n return 1\n } else if (parenCount > 0 && isCurrentTokenOfType(iterator, 'lparen')) {\n iterator.stepBackward()\n return -1\n } else {\n return 0\n }\n}\n\nconst findLastModelScope = iterator => {\n let parenCount = 0\n while (iterator.getCurrentToken()) {\n if (parenCount === 0 && isCurrentTokenOfType(iterator, 'where')) {\n const modelToken = iterator.stepBackward()\n return modelToken ? [modelToken.value.trim(), ...findCurrentPath(iterator)] : []\n }\n if (isCurrentTokenOfType(iterator, 'order_by')) {\n if (stepBackUntilToken(iterator, 'find')) {\n const modelToken = iterator.stepForward()\n return modelToken ? modelToken.value.trim() : []\n } else {\n return []\n }\n }\n parenCount += handleParentheses(iterator, parenCount)\n if (!iterator.stepBackward()) {\n return null\n }\n }\n return null\n}\n\nconst backtrack = (iterator, stepBack) => {\n const steps = []\n let lastStep = stepBack(iterator)\n while (lastStep) {\n if (Array.isArray(lastStep)) {\n lastStep.forEach(step => steps.unshift(step))\n } else {\n steps.unshift(lastStep)\n }\n lastStep = stepBack(iterator)\n }\n return steps\n}\n\nexport const findCurrentPath = iterator => backtrack(iterator, findLastPathStep)\nexport const findCurrentModelScope = iterator => backtrack(iterator, findLastModelScope)\n\n/**\n * built-in language completions use 1000000, which also seems to just be some magic number\n * keyword and local completions seem to be somewhere around 100 based on some experiments with ordering\n **/\nconst defaultScore = 1000\n\nconst loadModels = () =>\n sendRequest('entities')\n .then(extractBody)\n .then(body => (body ? body.entities : {}))\n .then(entities => (entities ? Object.values(entities) : []))\n .then(models => models.map(({metaData}) => metaData))\n\nconst buildFieldLabel = field => (field.label ? `${field.fieldName} (${field.label})` : field.fieldName)\n\nconst buildRelationLabel = relation =>\n relation.label ? `${relation.relationName} (${relation.label})` : relation.relationName\n\nconst buildResolveUrl = (sourceModel, relationSteps) => {\n const resolvePart = relationSteps.length > 0 ? '/resolve?path=' + relationSteps.join('.') : ''\n return `entities/${sourceModel}/model${resolvePart}`\n}\n\nconst resolvePath = ([sourceModel, ...relationSteps]) =>\n sendRequest(buildResolveUrl(sourceModel, relationSteps))\n .then(extractBody)\n .then(body => {\n if (!body) {\n return []\n }\n const fields = body.fields || []\n const relations = body.relations || []\n return [\n ...fields.map(f => ({\n label: buildFieldLabel(f),\n value: f.fieldName,\n meta: f.type\n })),\n ...relations.map(r => ({\n label: buildRelationLabel(r),\n value: r.relationName,\n meta: r.targetEntity\n }))\n ]\n })\n\nconst determineModelScope = (createIterator, implicitModel) => {\n if (implicitModel) {\n const [...modelScope] = findCurrentModelScope(createIterator())\n return {baseModel: implicitModel, modelScope}\n } else {\n const [baseModel, ...modelScope] = findCurrentModelScope(createIterator())\n return {baseModel, modelScope}\n }\n}\n\nconst determineAvailablePaths = (createIterator, callback, implicitModel) => {\n const {baseModel, modelScope} = determineModelScope(createIterator, implicitModel)\n if (!baseModel) {\n return\n }\n const currentPath = findCurrentPath(createIterator())\n const relationSteps = [...modelScope, ...currentPath].map(model => `rel${model}`)\n const fullPath = [baseModel, ...relationSteps]\n resolvePath(fullPath)\n .then(paths => {\n const pathCompletions = paths.map(path => ({\n caption: path.label,\n value: path.value,\n meta: path.meta,\n score: defaultScore\n }))\n callback(null, pathCompletions)\n })\n .catch(errors => callback(errors))\n}\n\nconst buildModelLabel = (modelName, label) => (label ? `${modelName} (${label})` : modelName)\n\nconst loadAllAvailableModels = callback =>\n loadModels()\n .then(models => {\n const modelCompletions = models.map(({modelName, label}) => ({\n caption: buildModelLabel(modelName, label),\n value: modelName,\n score: defaultScore\n }))\n callback(null, modelCompletions)\n })\n .catch(errors => callback(errors))\n\nconst getAvailableFunctions = () =>\n functions\n .map(f => f.toUpperCase())\n .map(f => ({\n caption: f,\n value: `${f}()`,\n meta: 'function',\n score: defaultScore - 30\n }))\n\nconst getAvailableTypes = () =>\n types.map(type => ({\n caption: type,\n value: `${type}:`,\n meta: 'type',\n score: defaultScore - 20\n }))\n\nconst getAvailablePlaceholders = () =>\n placeholders.map(placeholder => ({\n caption: placeholder,\n value: `:${placeholder}`,\n meta: 'placeholder',\n score: defaultScore - 10\n }))\n\nexport default implicitModel => ({\n getCompletions: (editor, session, pos, prefix, callback) => {\n const createIteratorAtCurrentPosition = () => new TokenIterator(session, pos.row, pos.column)\n\n const iterator = createIteratorAtCurrentPosition()\n const currentToken = iterator.getCurrentToken()\n const previousToken = iterator.stepBackward() ? iterator.getCurrentToken() : null\n switch (getTokenType(currentToken)) {\n case 'chaining':\n case 'relation':\n case 'separator':\n case 'order_by':\n case 'count':\n case 'exists':\n case 'field':\n case 'function_arguments':\n determineAvailablePaths(createIteratorAtCurrentPosition, callback, implicitModel)\n break\n case 'where':\n case 'conjunction':\n determineAvailablePaths(createIteratorAtCurrentPosition, callback, implicitModel)\n callback(null, getAvailableFunctions())\n break\n case 'nice_function':\n callback(null, getAvailableFunctions())\n break\n case 'find':\n loadAllAvailableModels(callback)\n break\n case 'type':\n case 'tocco_placeholder':\n case 'comparison':\n callback(null, getAvailableTypes())\n callback(null, getAvailablePlaceholders())\n break\n case 'model':\n determineAvailablePaths(createIteratorAtCurrentPosition, callback, implicitModel)\n if (previousToken && getTokenType(previousToken) !== 'relation') {\n loadAllAvailableModels(callback)\n }\n break\n case null:\n // this happens when nothing has been entered, which is a valid start with an implicit model, treat like where\n if (implicitModel) {\n determineAvailablePaths(createIteratorAtCurrentPosition, callback, implicitModel)\n }\n callback(null, getAvailableFunctions())\n break\n }\n }\n})\n","import ace from 'ace-builds/src-min-noconflict/ace'\nimport 'ace-builds/src-min-noconflict/mode-ftl'\n\nimport ToccoFtlHighlightRules from './FtlHighlighter'\nimport TqlAutoCompleter from './TqlAutoCompleter'\n\nexport default class ToccoFtlMode extends ace.require('ace/mode/ftl').Mode {\n constructor() {\n super()\n this.HighlightRules = ToccoFtlHighlightRules\n this.completer = TqlAutoCompleter()\n }\n}\n","import ace from 'ace-builds/src-min-noconflict/ace'\nimport 'ace-builds/src-min-noconflict/mode-text'\n\nimport TqlAutoCompleter from './TqlAutoCompleter'\nimport TqlHighlighter from './TqlHighlighter'\n\nexport default class TqlMode extends ace.require('ace/mode/text').Mode {\n constructor({implicitModelName}) {\n super()\n this.HighlightRules = TqlHighlighter(implicitModelName)\n this.completer = TqlAutoCompleter(implicitModelName)\n this.snippedIdField = null // TODO implement? TOCDEV-4499\n }\n}\n","import ace from 'ace-builds/src-min-noconflict/ace'\nimport 'ace-builds/webpack-resolver'\nimport {Mode as DroolsMode} from 'ace-builds/src-min-noconflict/mode-drools'\nimport {Mode as GroovyMode} from 'ace-builds/src-min-noconflict/mode-groovy'\nimport {Mode as HtmlMode} from 'ace-builds/src-min-noconflict/mode-html'\nimport {Mode as JsonMode} from 'ace-builds/src-min-noconflict/mode-json'\nimport {Mode as LessMode} from 'ace-builds/src-min-noconflict/mode-less'\nimport {Mode as PropertiesMode} from 'ace-builds/src-min-noconflict/mode-properties'\nimport {Mode as TextMode} from 'ace-builds/src-min-noconflict/mode-text'\nimport {Mode as XmlMode} from 'ace-builds/src-min-noconflict/mode-xml'\nimport _get from 'lodash/get'\nimport _isNil from 'lodash/isNil'\nimport _isObject from 'lodash/isObject'\nimport _isString from 'lodash/isString'\nimport {useEffect, useMemo, useRef} from 'react'\nimport styled from 'styled-components'\n\nimport AceEditorPropTypes from './AceEditorPropTypes'\nimport 'ace-builds/src-min-noconflict/snippets/ftl'\nimport 'ace-builds/src-min-noconflict/snippets/groovy'\nimport 'ace-builds/src-min-noconflict/snippets/html'\nimport 'ace-builds/src-min-noconflict/snippets/less'\nimport 'ace-builds/src-min-noconflict/snippets/xml'\nimport 'ace-builds/src-min-noconflict/snippets/properties'\nimport 'ace-builds/src-min-noconflict/snippets/json'\nimport 'ace-builds/src-min-noconflict/snippets/drools'\nimport 'ace-builds/src-min-noconflict/theme-textmate'\nimport 'ace-builds/src-min-noconflict/ext-language_tools'\nimport {extractBody, sendRequest} from './requestHelper'\nimport ToccoFtlMode from './ToccoFtlMode'\nimport TqlMode from './TqlMode'\n\nconst StyledEditor = styled.div`\n width: 100%;\n z-index: 0; /* gutter lays over menu otherwise */\n`\n\nconst modeMappings = {\n groovy: () => new GroovyMode(),\n html: () => new HtmlMode(),\n xml: () => new XmlMode(),\n properties: () => new PropertiesMode(),\n json: () => new JsonMode(),\n htmlmixed: () => new ToccoFtlMode(),\n freemarkermixed: () => new ToccoFtlMode(),\n ftl: () => new ToccoFtlMode(),\n tql: props => new TqlMode(props),\n less: () => new LessMode(),\n drools: () => new DroolsMode(),\n text: () => new TextMode()\n}\n\nconst getMode = (mode, props) => _get(modeMappings, mode, mode)(props)\n\nconst loadImplicitModel = implicitModel => {\n if (_isString(implicitModel)) {\n return Promise.resolve(implicitModel)\n } else if (_isObject(implicitModel)) {\n return sendRequest(`entities/2.0/${implicitModel.entityModel}/${implicitModel.key}?_paths=${implicitModel.field}`)\n .then(extractBody)\n .then(moduleEntity => _get(moduleEntity, ['paths', 'entity_name', 'value'], null))\n } else {\n return Promise.resolve(null)\n }\n}\n\nconst setEditorConfiguration = (editor, {mode, theme, showGutter, editorOptions = {}, implicitModel}) => {\n loadImplicitModel(implicitModel)\n .then(implicitModelName => getMode(mode, {implicitModelName}))\n .then(editorMode => editor.getSession().setMode(editorMode))\n editor.setTheme(`ace/theme/${theme}`)\n Object.entries(editorOptions).forEach(([k, v]) => {\n editor.setOption(k, v)\n })\n editor.renderer.setShowGutter(showGutter)\n editor.resize()\n}\n\nconst AceEditor = props => {\n const {\n mode,\n theme = 'textmate',\n value,\n onChange,\n showGutter = true,\n editorOptions = {},\n implicitModel,\n autoFocusOnMount = false\n } = props\n const containerReference = useRef(null)\n const editorReference = useRef(null)\n\n const editorConfig = useMemo(\n () => ({mode, theme, showGutter, editorOptions, implicitModel, autoFocusOnMount}),\n [mode, theme, showGutter, editorOptions, implicitModel, autoFocusOnMount]\n )\n\n // only on mount\n useEffect(() => {\n const aceEditor = ace.edit(containerReference.current)\n aceEditor.getSession().setValue(value || '')\n aceEditor.on('change', () => onChange(aceEditor.getValue()))\n setEditorConfiguration(aceEditor, editorConfig)\n editorReference.current = aceEditor\n\n if (editorConfig.autoFocusOnMount) {\n editorReference.current.focus()\n }\n\n return () => aceEditor.destroy()\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n if (editorReference.current) {\n setEditorConfiguration(editorReference.current, editorConfig)\n }\n }, [editorConfig])\n useEffect(() => {\n /* ace handles its state internally, always resetting the value confuses it.\n * this way we only set the value when it is different from the current state, i.e. when it is overwritten through\n * code. feel free to rewrite this with better ideas.\n */\n if (editorReference.current && !_isNil(value) && value !== editorReference.current.getValue()) {\n editorReference.current.getSession().setValue(value)\n }\n }, [value])\n\n return <StyledEditor ref={containerReference} />\n}\n\nAceEditor.propTypes = AceEditorPropTypes\n\nexport default AceEditor\n","import parsePhoneNumber from 'libphonenumber-js'\nimport _isEmpty from 'lodash/isEmpty'\nimport PropTypes from 'prop-types'\n\nimport Link from '../../Link'\n\nconst LibPhoneFormatter = ({value, breakWords}) => {\n const parsed = parsePhoneNumber(value)\n const formattedInput = _isEmpty(parsed) ? value : parsed.formatInternational()\n\n return (\n <Link\n href={`tel:${value}`}\n target=\"_blank\"\n onClick={e => e.stopPropagation()}\n label={formattedInput}\n breakWords={breakWords}\n />\n )\n}\n\nLibPhoneFormatter.propTypes = {\n value: PropTypes.string,\n breakWords: PropTypes.bool\n}\n\nexport default LibPhoneFormatter\n","/**\n * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\nfunction loadScript (src, opts, cb) {\n var head = document.head || document.getElementsByTagName('head')[0];\n var script = document.createElement('script');\n if (typeof opts === 'function') {\n cb = opts;\n opts = {};\n }\n opts = opts || {};\n cb = cb || function () {};\n script.type = opts.type || 'text/javascript';\n script.charset = opts.charset || 'utf8';\n script.async = 'async' in opts ? !!opts.async : true;\n script.src = src;\n if (opts.attrs) {\n setAttributes(script, opts.attrs);\n }\n if (opts.text) {\n script.text = String(opts.text);\n }\n var onend = 'onload' in script ? stdOnEnd : ieOnEnd;\n onend(script, cb);\n if (!script.onload) {\n stdOnEnd(script, cb);\n }\n head.appendChild(script);\n}\nfunction setAttributes(script, attrs) {\n for (var attr in attrs) {\n script.setAttribute(attr, attrs[attr]);\n }\n}\nfunction stdOnEnd(script, cb) {\n script.onload = function () {\n this.onerror = this.onload = null;\n cb(null, script);\n };\n script.onerror = function () {\n this.onerror = this.onload = null;\n cb(new Error('Failed to load ' + this.src), script);\n };\n}\nfunction ieOnEnd(script, cb) {\n script.onreadystatechange = function () {\n if (this.readyState != 'complete' && this.readyState != 'loaded') {\n return;\n }\n this.onreadystatechange = null;\n cb(null, script);\n };\n}\n\nvar promise;\nfunction getEditorNamespace(editorURL, onNamespaceLoaded) {\n if ('CKEDITOR' in window) {\n return Promise.resolve(CKEDITOR);\n }\n if (typeof editorURL !== 'string' || editorURL.length < 1) {\n return Promise.reject(new TypeError('CKEditor URL must be a non-empty string.'));\n }\n if (!promise) {\n promise = getEditorNamespace.scriptLoader(editorURL).then(function (res) {\n if (onNamespaceLoaded) {\n onNamespaceLoaded(res);\n }\n return res;\n });\n }\n return promise;\n}\ngetEditorNamespace.scriptLoader = function (editorURL) {\n return new Promise(function (scriptResolve, scriptReject) {\n loadScript(editorURL, function (err) {\n promise = undefined;\n if (err) {\n return scriptReject(err);\n } else if (!window.CKEDITOR) {\n return scriptReject(new Error('Script loaded from editorUrl doesn\\'t provide CKEDITOR namespace.'));\n }\n scriptResolve(CKEDITOR);\n });\n });\n};\n\nfunction debounce(fn, delay) {\n var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var cancel;\n return function () {\n clearTimeout(cancel);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n cancel = setTimeout(fn.bind.apply(fn, [context].concat(args)), delay);\n };\n}\n\nexport { debounce, getEditorNamespace };\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\nimport * as React from 'react';\nimport { getEditorNamespace } from 'ckeditor4-integrations-common';\nimport * as PropTypes from 'prop-types';\n\nvar __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nvar events = [\n 'activeEnterModeChange',\n 'activeFilterChange',\n 'afterCommandExec',\n 'afterInsertHtml',\n 'afterPaste',\n 'afterPasteFromWord',\n 'afterSetData',\n 'afterUndoImage',\n 'ariaEditorHelpLabel',\n 'ariaWidget',\n 'autogrow',\n 'beforeCommandExec',\n 'beforeDestroy',\n 'beforeGetData',\n 'beforeModeUnload',\n 'beforeSetMode',\n 'beforeUndoImage',\n 'blur',\n 'change',\n 'configLoaded',\n 'contentDirChanged',\n 'contentDom',\n 'contentDomInvalidated',\n 'contentDomUnload',\n 'contentPreview',\n 'customConfigLoaded',\n 'dataFiltered',\n 'dataReady',\n 'destroy',\n 'dialogHide',\n 'dialogShow',\n 'dirChanged',\n 'doubleclick',\n 'dragend',\n 'dragstart',\n 'drop',\n 'elementsPathUpdate',\n 'exportPdf',\n 'fileUploadRequest',\n 'fileUploadResponse',\n 'floatingSpaceLayout',\n 'focus',\n 'getData',\n 'getSnapshot',\n 'insertElement',\n 'insertHtml',\n 'insertText',\n 'instanceReady',\n 'key',\n 'langLoaded',\n 'loadSnapshot',\n 'loaded',\n 'lockSnapshot',\n 'maximize',\n 'menuShow',\n 'mode',\n 'notificationHide',\n 'notificationShow',\n 'notificationUpdate',\n 'paste',\n 'pasteFromWord',\n 'pluginsLoaded',\n 'readOnly',\n 'removeFormatCleanup',\n 'required',\n 'resize',\n 'save',\n 'saveSnapshot',\n 'selectionChange',\n 'setData',\n 'stylesRemove',\n 'stylesSet',\n 'template',\n 'toDataFormat',\n 'toHtml',\n 'uiSpace',\n 'unlockSnapshot',\n 'updateSnapshot',\n 'widgetDefinition'\n];\nvar namespaceEvents = ['beforeLoad', 'namespaceLoaded'];\nvar defaultEvents = __spreadArray(__spreadArray([], events, true), namespaceEvents, true);\nvar EVENT_PREFIX = '__CKE__';\nfunction prefixEventName(evtName) {\n return \"\".concat(EVENT_PREFIX).concat(evtName);\n}\nfunction stripPrefix(prefixedEventName) {\n return prefixedEventName.substr(EVENT_PREFIX.length);\n}\nfunction eventNameToHandlerName(evtName) {\n var cap = evtName.substr(0, 1).toUpperCase() + evtName.substr(1);\n return \"on\".concat(cap);\n}\nfunction handlerNameToEventName(handlerName) {\n return handlerName.substr(2, 1).toLowerCase() + handlerName.substr(3);\n}\nvar CKEditorEventAction = __spreadArray(__spreadArray([], events, true), namespaceEvents, true).reduce(function (acc, evtName) {\n var _a;\n return __assign(__assign({}, acc), (_a = {}, _a[evtName] = prefixEventName(evtName), _a));\n}, {});\n\nfunction camelToKebab(str) {\n return str\n .split(/(?=[A-Z])/)\n .join('-')\n .toLowerCase();\n}\nfunction uniqueName() {\n return Math.random()\n .toString(36)\n .replace(/[^a-z]+/g, '')\n .substr(0, 5);\n}\nfunction getStyle(type, status, style) {\n var hidden = { display: 'none', visibility: 'hidden' };\n if (type === 'classic') {\n return hidden;\n }\n return status === 'ready' ? style !== null && style !== void 0 ? style : undefined : hidden;\n}\n\nfunction registerEditorEventHandler(_a) {\n var debug = _a.debug, editor = _a.editor, evtName = _a.evtName, handler = _a.handler, listenerData = _a.listenerData, priority = _a.priority;\n var handlerId = debug && uniqueName();\n var _handler = handler;\n if (debug) {\n _handler = function (args) {\n console.log({\n operation: 'invoke',\n editor: editor.name,\n evtName: evtName,\n handlerId: handlerId,\n data: args.data,\n listenerData: args.listenerData\n });\n handler(args);\n };\n }\n if (debug) {\n console.log({\n operation: 'register',\n editor: editor.name,\n evtName: evtName,\n handlerId: handlerId\n });\n }\n editor.on(evtName, _handler, null, listenerData, priority);\n return function () {\n if (debug) {\n console.log({\n operation: 'unregister',\n editor: editor.name,\n evtName: evtName,\n handlerId: handlerId\n });\n }\n editor.removeListener(evtName, _handler);\n };\n}\n\nvar useEffect$1 = React.useEffect, useReducer = React.useReducer, useRef$1 = React.useRef;\nvar defEditorUrl = 'https://cdn.ckeditor.com/4.21.0/standard-all/ckeditor.js';\nvar defConfig = {};\nfunction useCKEditor(_a) {\n var config = _a.config, debug = _a.debug, dispatchEvent = _a.dispatchEvent, _b = _a.subscribeTo, subscribeTo = _b === void 0 ? defaultEvents : _b, editorUrl = _a.editorUrl, element = _a.element, initContent = _a.initContent, _c = _a.type, type = _c === void 0 ? 'classic' : _c;\n var editorUrlRef = useRef$1(editorUrl || defEditorUrl);\n var subscribeToRef = useRef$1(subscribeTo !== null && subscribeTo !== void 0 ? subscribeTo : defaultEvents);\n var debugRef = useRef$1(debug);\n var dispatchEventRef = useRef$1(dispatchEvent);\n var initContentRef = useRef$1(initContent);\n var configRef = useRef$1(config || defConfig);\n var typeRef = useRef$1(type);\n var _d = useReducer(reducer, {\n editor: undefined,\n hookStatus: 'init'\n }), _e = _d[0], editor = _e.editor, hookStatus = _e.hookStatus, dispatch = _d[1];\n useEffect$1(function () {\n if (element && !editor) {\n dispatch({ type: 'loading' });\n var onNamespaceLoaded = function (CKEDITOR) {\n var _a;\n if (subscribeToRef.current.indexOf('namespaceLoaded') !== -1) {\n (_a = dispatchEventRef.current) === null || _a === void 0 ? void 0 : _a.call(dispatchEventRef, {\n type: CKEditorEventAction.namespaceLoaded,\n payload: CKEDITOR\n });\n }\n };\n var initEditor = function (CKEDITOR) {\n var _a;\n var isInline = typeRef.current === 'inline';\n var isReadOnly = configRef.current.readOnly;\n if (subscribeToRef.current.indexOf('beforeLoad') !== -1) {\n (_a = dispatchEventRef.current) === null || _a === void 0 ? void 0 : _a.call(dispatchEventRef, {\n type: CKEditorEventAction.beforeLoad,\n payload: CKEDITOR\n });\n }\n var editor = CKEDITOR[isInline ? 'inline' : 'replace'](element, configRef.current);\n var subscribedEditorEvents = subscribeToRef.current.filter(function (evtName) { return namespaceEvents.indexOf(evtName) === -1; });\n subscribedEditorEvents.forEach(function (evtName) {\n registerEditorEventHandler({\n debug: debugRef.current,\n editor: editor,\n evtName: evtName,\n handler: function (payload) {\n var _a;\n (_a = dispatchEventRef.current) === null || _a === void 0 ? void 0 : _a.call(dispatchEventRef, {\n type: \"\".concat(EVENT_PREFIX).concat(evtName),\n payload: payload\n });\n }\n });\n });\n registerEditorEventHandler({\n debug: debugRef.current,\n editor: editor,\n evtName: 'loaded',\n handler: function () {\n dispatch({ type: 'loaded' });\n },\n priority: -1\n });\n registerEditorEventHandler({\n debug: debugRef.current,\n editor: editor,\n evtName: 'instanceReady',\n handler: function (_a) {\n var editor = _a.editor;\n dispatch({ type: 'ready' });\n if (isInline && !isReadOnly) {\n editor.setReadOnly(false);\n }\n if (initContentRef.current) {\n editor.setData(initContentRef.current, {\n noSnapshot: true,\n callback: function () {\n editor.resetUndo();\n }\n });\n }\n },\n priority: -1\n });\n registerEditorEventHandler({\n debug: debugRef.current,\n editor: editor,\n evtName: 'destroy',\n handler: function () {\n dispatch({ type: 'destroyed' });\n },\n priority: -1\n });\n dispatch({\n type: 'unloaded',\n payload: editor\n });\n };\n getEditorNamespace(editorUrlRef.current, onNamespaceLoaded)\n .then(initEditor)\n .catch(function (error) {\n if (process.env.NODE_ENV !== 'test') {\n console.error(error);\n }\n dispatch({ type: 'error' });\n });\n }\n return function () {\n if (editor) {\n editor.destroy();\n }\n };\n }, [editor, element]);\n return {\n editor: editor,\n status: editor === null || editor === void 0 ? void 0 : editor.status,\n error: hookStatus === 'error',\n loading: hookStatus === 'loading'\n };\n}\nfunction reducer(state, action) {\n switch (action.type) {\n case 'init':\n return __assign(__assign({}, state), { hookStatus: 'init' });\n case 'loading':\n return __assign(__assign({}, state), { hookStatus: 'loading' });\n case 'unloaded':\n return {\n editor: action.payload,\n hookStatus: 'unloaded'\n };\n case 'loaded':\n return __assign(__assign({}, state), { hookStatus: 'loaded' });\n case 'ready':\n return __assign(__assign({}, state), { hookStatus: 'ready' });\n case 'destroyed':\n return {\n editor: undefined,\n hookStatus: 'destroyed'\n };\n case 'error':\n return {\n editor: undefined,\n hookStatus: 'error'\n };\n default:\n return state;\n }\n}\n\nvar useEffect = React.useEffect, useRef = React.useRef, useState = React.useState;\nfunction CKEditor(_a) {\n var _b = _a.config, config = _b === void 0 ? {} : _b, debug = _a.debug, editorUrl = _a.editorUrl, initData = _a.initData, name = _a.name, readOnly = _a.readOnly, style = _a.style, type = _a.type,\n handlers = __rest(_a, [\"config\", \"debug\", \"editorUrl\", \"initData\", \"name\", \"readOnly\", \"style\", \"type\"]);\n var _c = useState(null), element = _c[0], setElement = _c[1];\n var refs = useRef(handlers);\n var dispatchEvent = function (_a) {\n var type = _a.type, payload = _a.payload;\n var handlerName = eventNameToHandlerName(stripPrefix(type));\n var handler = refs.current[handlerName];\n if (handler) {\n handler(payload);\n }\n };\n if (config && typeof readOnly === 'boolean') {\n config.readOnly = readOnly;\n }\n var _d = useCKEditor({\n config: config,\n dispatchEvent: dispatchEvent,\n debug: debug,\n editorUrl: editorUrl,\n element: element,\n initContent: typeof initData === 'string' ? initData : undefined,\n subscribeTo: Object.keys(handlers)\n .filter(function (key) { return key.indexOf('on') === 0; })\n .map(handlerNameToEventName),\n type: type\n }), editor = _d.editor, status = _d.status;\n useEffect(function () {\n var canSetStyles = type !== 'inline' &&\n editor &&\n (status === 'loaded' || status === 'ready');\n if (style && canSetStyles) {\n editor.container.setStyles(style);\n }\n return function () {\n if (style && canSetStyles) {\n Object.keys(style)\n .map(camelToKebab)\n .forEach(function (styleName) {\n editor.container.removeStyle(styleName);\n });\n }\n };\n }, [editor, status, style, type]);\n useEffect(function () {\n if (editor && status === 'ready' && typeof readOnly === 'boolean') {\n editor.setReadOnly(readOnly);\n }\n }, [editor, status, readOnly]);\n return (React.createElement(\"div\", { id: name !== null && name !== void 0 ? name : undefined, ref: setElement, style: getStyle(type !== null && type !== void 0 ? type : 'classic', status, style) }, typeof initData === 'string' ? null : initData));\n}\nvar propTypes = __assign({\n config: PropTypes.object,\n debug: PropTypes.bool,\n editorUrl: PropTypes.string,\n initData: PropTypes.node,\n name: PropTypes.string,\n readOnly: PropTypes.bool,\n style: PropTypes.object,\n type: PropTypes.oneOf(['classic', 'inline']) }, defaultEvents.reduce(function (acc, key) {\n var _a;\n return __assign(__assign({}, acc), (_a = {}, _a[eventNameToHandlerName(key)] = PropTypes.func, _a));\n}, {}));\nCKEditor.propTypes = propTypes;\n\nexport { CKEditor, CKEditorEventAction, prefixEventName, registerEditorEventHandler, stripPrefix, useCKEditor };\n","import styled from 'styled-components'\n\nimport {declareTypograhpy} from '../Typography'\n\nexport const StyledHtmlEditor = styled.div`\n && {\n .ck-editor {\n --ck-border-radius: 0.27rem;\n ${props => declareTypograhpy(props, 'ckeditor')}\n\n .ck.ck-list__item .ck-button.ck-fontsize-option .ck-button__label {\n line-height: 1;\n }\n\n .ck-editor__editable {\n min-height: 100px;\n }\n }\n }\n`\n","import {CKEditor} from 'ckeditor4-react'\nimport PropTypes from 'prop-types'\nimport {useIntl} from 'react-intl'\n\nimport {StyledHtmlEditor} from './StyledHtmlEditor'\n\nconst getCKEditorLanguageFromLocale = locale => {\n // new langs have to be bundled into the build => build/lib/webpack.js#getCKEditorPlugin\n switch (locale) {\n case 'fr-CH':\n return 'fr'\n case 'it-CH':\n return 'it'\n case 'en-US':\n return 'en'\n case 'fr':\n case 'en':\n case 'it':\n case 'de':\n return locale\n case 'de-CH':\n return 'de-ch'\n case 'de-DE':\n default:\n return 'de'\n }\n}\n\n/*\nCKEditor4 Implementation:\nThe CKEditor4 is loaded asynchronously via `editorUrl`. Per default the editor is loaded from their CDN.\nIn order to host the editor by ourself we copy the sources to our output bundle\n(see: build/lib/webpack.js#getCKEditorPlugin) from the node_modules/ckeditor4. The\nckeditor4 package is added as devDependency in the package.json.\nIt is not imported from the code, only copied during build process.\nAdditional community plugins (e.g. codemirror) has to be bundled as well. Mainly the community plugins cannot be\nadded by npm. Therefore the have to be downloaded and added to the source code manually.\n\nHow to add a new community plugin:\n 1. Download plugin and add to ./extraPlugins/<plugin>\n 2. Extend the webpack build to copy the new plugin to the output build\n => build/lib/webpack.js#getCKEditorPlugin\n 3. Add the plugin in the config to the `extraPlugins` list\n 4. Optional: extend toolbar config to show plugin buttons\n\nHow to remove specific toolbar buttons from the default config:\n```js\nckEditorConfig = {\n removeButtons: ['TextColor']\n}\n```\n*/\nconst HtmlEditor = ({value, onChange, contentLang, ckEditorConfig}) => {\n const intl = useIntl()\n const {locale} = intl\n\n const handleChange = event => {\n const data = event.editor.getData()\n onChange(data)\n }\n\n /**\n * Workaround: Saving in source code editing\n * - onChange event is not fired while being in source code editing mode\n * - use onKey instead and get value from editable element\n */\n const handleKey = event => {\n if (event.editor.mode === 'source') {\n // wait for key event has been executed\n setTimeout(() => {\n const editable = event.editor.editable()\n const data = editable.getValue()\n onChange(data)\n }, 0)\n }\n }\n\n const config = {\n language: getCKEditorLanguageFromLocale(locale),\n contentsLanguage: contentLang,\n // freemarker should not be escaped => [@loadValue path="relEvent.abbreviation" /]\n entities: false,\n // deactivate acf and allow all content (e.g. inline styles, svgs, divs, ...)\n // https://ckeditor.com/docs/ckeditor4/latest/guide/dev_advanced_content_filter.html\n // https://ckeditor.com/docs/ckeditor4/latest/guide/dev_acf.html\n allowedContent: true,\n toolbar: [\n ['Bold', 'Italic', 'Underline', 'Strike', 'RemoveFormat'],\n ['Format', 'Font', 'FontSize', 'TextColor'],\n ['NumberedList', 'BulletedList'],\n ['Link', 'Unlink'],\n ['Table', 'SpecialChar', 'Image'],\n ['PasteText'],\n ['Source']\n ],\n // extra plugins have to be bundled into the build => build/lib/webpack.js#getCKEditorPlugin\n extraPlugins: ['colorbutton', 'colordialog', 'dialogadvtab', 'font', 'codemirror'],\n removeButtons: [],\n removeDialogTabs: '',\n removePlugins: ['elementspath'],\n // https://github.com/w8tcha/CKEditor-CodeMirror-Plugin\n codemirror: {\n mode: 'htmlmixed',\n enableCodeFormatting: true,\n autoFormatOnStart: true\n },\n ...ckEditorConfig\n }\n\n return (\n <StyledHtmlEditor>\n <CKEditor\n config={config}\n initData={value}\n type=\"classic\"\n onChange={handleChange}\n onKey={handleKey}\n editorUrl={`${__webpack_public_path__}ckeditor4/ckeditor.js`}\n />\n </StyledHtmlEditor>\n )\n}\n\nHtmlEditor.defaultProps = {\n value: '',\n contentLang: 'de'\n}\n\nHtmlEditor.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.string,\n contentLang: PropTypes.oneOf(['de', 'fr', 'it', 'en']),\n ckEditorConfig: PropTypes.object\n}\n\nexport default HtmlEditor\n","import HtmlEditor from './HtmlEditor'\n\nexport default HtmlEditor\n","import PropTypes from 'prop-types'\n\nimport Icon from '../Icon'\n\n/**\n * Spinner that indicates a loading process\n */\nconst LoadingSpinner = ({size, style, icon}) => (\n <Icon {...style} style={{fontSize: size}} spin icon={icon || 'circle-notch'} />\n)\n\nLoadingSpinner.propTypes = {\n /**\n * Specify width and height.\n */\n size: PropTypes.string,\n /**\n * css properties object. color can be used to set the color of the spinner\n */\n style: PropTypes.object,\n /**\n * font awesome icon object to user, solid circle notch by default\n */\n icon: PropTypes.string\n}\n\nexport default LoadingSpinner\n","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar FAMILY_CLASSIC = 'classic';\nvar FAMILY_SHARP = 'sharp';\nvar FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n }\n });\n}\nvar PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n 'fa': 'solid',\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fa-kit': 'kit'\n}), _defineProperty(_familyProxy, FAMILY_SHARP, {\n 'fa': 'solid',\n 'fass': 'solid',\n 'fa-solid': 'solid',\n 'fasr': 'regular',\n 'fa-regular': 'regular',\n 'fasl': 'light',\n 'fa-light': 'light'\n}), _familyProxy));\nvar STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'thin': 'fat',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n}), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n 'solid': 'fass',\n 'regular': 'fasr',\n 'light': 'fasl'\n}), _familyProxy2));\nvar PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n 'fab': 'fa-brands',\n 'fad': 'fa-duotone',\n 'fak': 'fa-kit',\n 'fal': 'fa-light',\n 'far': 'fa-regular',\n 'fas': 'fa-solid',\n 'fat': 'fa-thin'\n}), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n 'fass': 'fa-solid',\n 'fasr': 'fa-regular',\n 'fasl': 'fa-light'\n}), _familyProxy3));\nvar LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n 'fa-brands': 'fab',\n 'fa-duotone': 'fad',\n 'fa-kit': 'fak',\n 'fa-light': 'fal',\n 'fa-regular': 'far',\n 'fa-solid': 'fas',\n 'fa-thin': 'fat'\n}), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n 'fa-solid': 'fass',\n 'fa-regular': 'fasr',\n 'fa-light': 'fasl'\n}), _familyProxy4));\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss|sr|sl)?[\\-\\ ]/; // eslint-disable-line no-useless-escape\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i;\nvar FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal',\n '100': 'fat'\n}), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n '900': 'fass',\n '400': 'fasr',\n '300': 'fasl'\n}), _familyProxy5));\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'duotone-group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar prefixes = new Set();\nObject.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\nObject.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\nvar RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n}; // familyPrefix is deprecated but we must still support it if present\n\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n}); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Light\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\\n transform: scale(var(--fa-counter-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(var(--fa-li-width, 2em) * -1);\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n -webkit-animation-name: fa-beat;\\n animation-name: fa-beat;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n -webkit-animation-name: fa-bounce;\\n animation-name: fa-bounce;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n -webkit-animation-name: fa-fade;\\n animation-name: fa-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n -webkit-animation-name: fa-beat-fade;\\n animation-name: fa-beat-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n -webkit-animation-name: fa-flip;\\n animation-name: fa-flip;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n -webkit-animation-name: fa-shake;\\n animation-name: fa-shake;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-delay: var(--fa-animation-delay, 0s);\\n animation-delay: var(--fa-animation-delay, 0s);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\\n animation-duration: var(--fa-animation-duration, 2s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n -webkit-animation-delay: -1ms;\\n animation-delay: -1ms;\\n -webkit-animation-duration: 1ms;\\n animation-duration: 1ms;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n -webkit-transition-delay: 0s;\\n transition-delay: 0s;\\n -webkit-transition-duration: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@-webkit-keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@-webkit-keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@-webkit-keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@-webkit-keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@-webkit-keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@-webkit-keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\\n transform: rotate(var(--fa-rotate-angle, none));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"</\").concat(tag, \">\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens <https://mathiasbynens.be/>\n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nvar _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\nvar PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);\nfunction getCanonicalIcon(values) {\n var _famProps;\n\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_SHARP)), _famProps);\n var givenPrefix = null;\n var family = FAMILY_CLASSIC;\n\n if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);\n })) {\n family = FAMILY_CLASSIC;\n }\n\n if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);\n })) {\n family = FAMILY_SHARP;\n }\n\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family: family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"6.4.0\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (_abstract) {\n node.parentNode.insertBefore(convertSVG(_abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var _abstract2 = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete _abstract2[0].attributes.id;\n\n if (_abstract2[0].attributes.class) {\n var splitClasses = _abstract2[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n\n _abstract2[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = _abstract2.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\n\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nvar knownPrefixes = new Set();\nFAMILIES.map(function (family) {\n knownPrefixes.add(\"fa-\".concat(family));\n});\nObject.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));\nObject.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));\nknownPrefixes = _toConsumableArray(knownPrefixes);\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(function (f) {\n return \"fa-\".concat(f);\n }).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\n\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var _abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n\n var element = DOCUMENT.createElement('svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = _abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(_abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (_abstract.attributes && (_abstract.attributes.fill || force)) {\n _abstract.attributes.fill = 'black';\n }\n\n return _abstract;\n}\n\nfunction deGroup(_abstract2) {\n if (_abstract2.tag === 'g') {\n return _abstract2.children;\n } else {\n return [_abstract2];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n"],"names":["sendRequest","endpoint","request","concat","extractBody","response","status","json","operators","atoms","types","placeholders","functions","implicitModel","_ace$require$TextHigh","_inherits","TqlHighlightRules","_super","_createSuper","_this","_classCallCheck","call","commonWhere","token","regex","caseInsensitive","push","join","customRules","start","next","model","rootwhere","comparison","value","exists","existswhere","count","countwhere","order","$rules","_mergeWith","objValue","srcValue","_isArray","undefined","normalizeRules","_createClass","ace","TextHighlightRules","ToccoFtlLangHighlightRules","match","qstring","defaultToken","ToccoFtlHighlightRules","_ace$require$HtmlHigh","_super2","_this2","tqlDirectives","startRules","key","unshift","apply","embedRules","addRules","tqlEndRules","TqlHighlighter","mergingRules","HtmlHighlightRules","TokenIterator","getTokenType","type","substring","lastIndexOf","isCurrentTokenOfType","iterator","getCurrentToken","findLastPathStep","stepBackward","modelToken","trim","stepBackUntilToken","handleParentheses","parenCount","findLastModelScope","_toConsumableArray","findCurrentPath","stepForward","backtrack","stepBack","steps","lastStep","Array","isArray","forEach","step","findCurrentModelScope","defaultScore","determineAvailablePaths","createIterator","callback","_determineModelScope","_findCurrentModelScop","baseModel","modelScope","_toArray","slice","_findCurrentModelScop3","_findCurrentModelScop4","determineModelScope","currentPath","relationSteps","map","_ref2","_ref3","sourceModel","resolvePart","length","buildResolveUrl","then","body","fields","relations","f","label","field","fieldName","meta","r","relation","relationName","targetEntity","resolvePath","paths","pathCompletions","path","caption","score","errors","buildModelLabel","modelName","loadAllAvailableModels","entities","Object","values","models","_ref","metaData","modelCompletions","_ref4","getAvailableFunctions","toUpperCase","getCompletions","editor","session","pos","prefix","createIteratorAtCurrentPosition","row","column","currentToken","previousToken","placeholder","ToccoFtlMode","_ace$require$Mode","HighlightRules","completer","TqlAutoCompleter","Mode","TqlMode","implicitModelName","snippedIdField","StyledEditor","styled","displayName","_templateObject","_taggedTemplateLiteral","modeMappings","groovy","GroovyMode","html","HtmlMode","xml","XmlMode","properties","PropertiesMode","JsonMode","htmlmixed","freemarkermixed","ftl","tql","props","less","LessMode","drools","DroolsMode","text","TextMode","setEditorConfiguration","mode","theme","showGutter","_ref$editorOptions","editorOptions","_isString","Promise","resolve","_isObject","entityModel","moduleEntity","_get","loadImplicitModel","getMode","editorMode","getSession","setMode","setTheme","entries","_slicedToArray","k","v","setOption","renderer","setShowGutter","resize","_props$theme","onChange","_props$showGutter","_props$editorOptions","_props$autoFocusOnMou","autoFocusOnMount","containerReference","useRef","editorReference","editorConfig","useMemo","useEffect","aceEditor","current","setValue","on","getValue","focus","destroy","_isNil","_jsx","ref","breakWords","parsed","parsePhoneNumber","formattedInput","_isEmpty","formatInternational","Link","href","target","onClick","e","stopPropagation","promise","stdOnEnd","script","cb","onload","this","onerror","Error","src","ieOnEnd","onreadystatechange","readyState","getEditorNamespace","editorURL","onNamespaceLoaded","window","CKEDITOR","reject","TypeError","scriptLoader","res","scriptResolve","scriptReject","opts","head","err","document","getElementsByTagName","createElement","charset","async","attrs","attr","setAttribute","setAttributes","String","appendChild","__assign","assign","t","s","i","n","arguments","p","prototype","hasOwnProperty","__spreadArray","to","from","pack","ar","l","events","namespaceEvents","defaultEvents","EVENT_PREFIX","eventNameToHandlerName","evtName","cap","substr","handlerNameToEventName","handlerName","toLowerCase","CKEditorEventAction","reduce","acc","_a","prefixEventName","camelToKebab","str","split","getStyle","style","hidden","display","visibility","registerEditorEventHandler","debug","handler","listenerData","priority","handlerId","Math","random","toString","replace","_handler","args","console","log","operation","name","data","removeListener","useEffect$1","useReducer","useRef$1","defConfig","reducer","state","action","hookStatus","payload","useState","CKEditor","_b","config","editorUrl","initData","readOnly","handlers","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__rest","_c","element","setElement","refs","_d","dispatchEvent","subscribeTo","initContent","editorUrlRef","subscribeToRef","debugRef","dispatchEventRef","initContentRef","configRef","typeRef","_e","dispatch","namespaceLoaded","isInline","isReadOnly","beforeLoad","filter","setReadOnly","setData","noSnapshot","resetUndo","catch","error","loading","useCKEditor","keys","canSetStyles","container","setStyles","styleName","removeStyle","id","propTypes","StyledHtmlEditor","declareTypograhpy","getCKEditorLanguageFromLocale","locale","HtmlEditor","contentLang","ckEditorConfig","useIntl","_objectSpread","language","contentsLanguage","allowedContent","toolbar","extraPlugins","removeButtons","removeDialogTabs","removePlugins","codemirror","enableCodeFormatting","autoFormatOnStart","children","event","getData","onKey","setTimeout","editable","__webpack_public_path__","defaultProps","size","icon","Icon","fontSize","spin","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread2","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","constructor","_defineProperties","descriptor","configurable","writable","arr","_arrayWithHoles","_i","_s","_arr","_n","done","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","o","minLen","test","len","arr2","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","MutationObserver","performance","_familyProxy","_familyProxy2","_familyProxy3","_familyProxy4","_familyProxy5","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","addEventListener","IS_IE","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","FAMILY_CLASSIC","FAMILY_SHARP","FAMILIES","familyProxy","Proxy","get","prop","PREFIX_TO_STYLE","STYLE_TO_PREFIX","PREFIX_TO_LONG_STYLE","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","prefixes","Set","add","bind","RESERVED_CLASSES","initial","FontAwesomeConfig","querySelector","val","coerce","getAttribute","getAttrConfig","_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_config","set","_onChangeCb","d","meaninglessTransform","x","y","rotate","flipX","flipY","nextUniqueId","toArray","array","classArray","node","classList","htmlEscape","joinStyles","styles","transformIsMeaningful","transform","css","dcp","drc","fp","rc","dPatt","RegExp","customPropPatt","rPatt","_cssInserted","ensureCss","innerHTML","headChildren","childNodes","beforeChild","child","tagName","insertBefore","insertCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","w","shims","namespace","loaded","domready","fn","toHtml","abstractNodes","tag","_abstractNodes$attrib","attributes","_abstractNodes$childr","attributeName","joinAttributes","iconFromMapping","mapping","iconName","doScroll","listener","removeEventListener","subject","initialValue","thisContext","result","func","a","b","c","bindInternal4","toHex","unicode","decoded","string","output","counter","charCodeAt","extra","ucs2decode","normalizeIcons","icons","defineIcons","params","_params$skipHooks","skipHooks","normalized","addPack","_LONG_STYLE","_PREFIXES","_PREFIXES_FOR_FAMILY","LONG_STYLE","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","getIconName","cls","parts","build","lookup","alias","aliases","hasRegular","autoFetchSvg","shimLookups","shim","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","family","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","styleOrPrefix","_params$family","defined","PREFIXES_FOR_FAMILY","getCanonicalIcon","_famProps","_params$skipLookups","skipLookups","famProps","givenPrefix","includes","some","canonical","rest","aliasIconName","Library","instance","Constructor","definitions","protoProps","staticProps","_len","_key","additions","_pullDefinitions","longPrefix","definition","_normalized$key","_plugins","_hooks","providers","defaultProviderKeys","chainHooks","hook","accumulator","hookFns","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","i2svg","watch","autoReplaceSvgRoot","autoReplace","api","noAuto","parse","_icon","canonicalIcon","_prefix","_params$autoReplaceSv","domVariants","abstractCreator","abstract","makeInlineSvgAbstract","_params$icons","main","mask","symbol","title","maskId","titleId","_params$watchable","watchable","found","width","height","isUploadedIcon","attrClass","classes","content","role","uploadedIconWidthStyle","asSymbol","offset","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","styleString","class","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","findIcon","maybeNotifyMissing","noop$1","preamble","end","perf","noop$2","isWatched","createElementNS","convertSVG","abstractObj","_params$ceFn","ceFn","createTextNode","mutators","mutation","parentNode","_abstract","comment","createComment","outerHTML","nodeAsComment","replaceChild","remove","nest","_abstract2","forSvg","splitClasses","toSvg","toNode","removeAttribute","newInnerHTML","performOperationSync","op","perform","mutations","callbackFunction","frame","requestAnimationFrame","mutator","disabled","disableObservation","enableObservation","mo","observe","options","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","defaultPrefix","mutationRecord","addedNodes","hasPrefixAndIcon","_getCanonicalIcon","contains","childList","characterData","subtree","styleParser","classParser","ligature","existingPrefix","existingIconName","innerText","firstChild","nodeType","Node","TEXT_NODE","attributesParser","extraAttributes","parseMeta","parser","_classParser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","knownPrefixes","onTree","root","htmlClassList","hclAdd","suffix","hclRemove","prefixesDomQuery","candidates","querySelectorAll","all","resolvedMutations","onNode","render","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","_params$node","_params$callback","generateSvgReplacementMutation","generateAbstractIcon","nextChild","containerWidth","iconWidth","Layers","layer","assembler","LayersCounter","LayersText","generateLayersText","computedFontSize","parseInt","getComputedStyle","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","replaceForPosition","position","pendingAttribute","oldUnicode","newUnicode","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","_hexValueFromContent","index","second","first","cleaned","codePoint","isPrependTen","isDoubled","isSecondary","hexValueFromContent","hexValue","isV4","startsWith","iconIdentifier","iconName4","processable","operations","_unwatched","parseTransformString","transformString","parseFloat","isNaN","ALL_SPACE","fillBlack","force","nextPlugins","mixoutsTo","plugin","tk","sk","registerPlugins","pseudoElements2svg","unwatch","bootstrap","disconnect","parseNodeAttributes","generateAbstractTransformGrouping","outer","innerTranslate","innerScale","innerRotate","inner","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","reduceMotion","matchMedia","matches","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cx","cy","opacity","symbolData","noAuto$1","config$1","library$1","dom$1","parse$1","findIconDefinition$1","toHtml$1"],"sourceRoot":""}
|