tocco-admin 1.0.8 → 1.0.9

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./packages/admin/src/routes/docs/components/DocsBrowserApp/DocsBrowserApp.js","webpack:///./packages/admin/src/routes/docs/components/DocsBrowserApp/DocsBrowserAppContainer.js","webpack:///./packages/admin/src/routes/docs/route.js","webpack:///./packages/app-extensions/src/selection/selectionTypes.js","webpack:///./packages/app-extensions/src/selection/proptype.js","webpack:///./packages/app-extensions/src/selection/selection.js","webpack:///./packages/app-extensions/src/selection/index.js","webpack:///./packages/delete/src/modules/delete/actions.js","webpack:///./packages/delete/src/components/InfoPart/LinkPopOver.js","webpack:///./packages/delete/src/components/InfoPart/InfoPart.js","webpack:///./packages/delete/src/components/DeleteProgress/StyledComponents.js","webpack:///./packages/delete/src/components/DeleteProgress/DeleteProgress.js","webpack:///./packages/delete/src/components/DeleteProgress/DeleteProgressContainer.js","webpack:///./packages/delete/src/components/DeleteProgress/index.js","webpack:///./packages/tocco-ui/src/SignalBox/StyledSignalBox.js","webpack:///./packages/tocco-ui/src/SignalBox/SignalBox.js","webpack:///./packages/delete/src/components/Dialog/StyledComponents.js","webpack:///./packages/delete/src/components/Dialog/Dialog.js","webpack:///./packages/delete/src/components/Dialog/DialogContainer.js","webpack:///./packages/delete/src/components/Delete/Delete.js","webpack:///./packages/delete/src/components/Delete/DeleteContainer.js","webpack:///./packages/delete/src/components/Delete/index.js","webpack:///./packages/delete/src/modules/delete/reducer.js","webpack:///./packages/delete/src/utils/deleteRequestParser.js","webpack:///./packages/delete/src/modules/delete/sagas.js","webpack:///./packages/delete/src/modules/reducers.js","webpack:///./packages/delete/src/main.js","webpack:///./packages/docs-browser/src/components/Action/actions/CreateDomain.js","webpack:///./packages/docs-browser/src/components/Action/actions/CreateFolder.js","webpack:///./packages/docs-browser/src/components/Action/actions/Delete.js","webpack:///./packages/docs-browser/src/components/Action/actions/Edit.js","webpack:///./packages/docs-browser/src/components/Action/actions/Move.js","webpack:///./packages/docs-browser/src/components/Action/actions/MoveContainer.js","webpack:///./packages/docs-browser/src/utils/getDetailFormName.js","webpack:///./packages/tocco-ui/src/DatePicker/StyledDatePicker.js","webpack:///./packages/tocco-ui/src/DatePicker/DatePicker.js","webpack:///./packages/tocco-ui/src/DatePicker/useDatePickr.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StyledDatePicker.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/DatePicker.js","webpack:///./packages/tocco-ui/src/LoadingSpinner/LoadingSpinner.js"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_defineProperty","value","_objectSpread","arguments","source","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","err","_iterableToArrayLimit","TypeError","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","_nonIterableSpread","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","window","document","MutationObserver","performance","e","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","createElement","IS_IE","indexOf","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","PREFIX_TO_STYLE","STYLE_TO_PREFIX","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","RESERVED_CLASSES","map","n","initial","FontAwesomeConfig","querySelector","_ref","_ref2","attr","val","coerce","element","getAttribute","getAttrConfig","_config","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","config","w","styles","hooks","shims","namespace","functions","loaded","domready","fn","setTimeout","doScroll","test","readyState","listener","removeEventListener","asyncTimer","NOOP","isNode","g","process","emit","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","asyncCall","callback","arg","invokeCallback","subscriber","owner","settled","_state","_data","promise","then","reject","handleThenable","resolve","resolved","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","P","resolver","this","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","catch","all","promises","results","remaining","index","race","picked","Promise","d","meaninglessTransform","size","x","y","rotate","flipX","flipY","insertCss","css","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","nextUniqueId","id","Math","random","toArray","array","classArray","node","classList","split","getIconName","cls","name","parts","prefix","iconName","slice","join","htmlEscape","str","replace","joinStyles","reduce","acc","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","width","height","fillBlack","abstract","force","attributes","fill","makeInlineSvgAbstract","params","_params$icons","icons","main","mask","symbol","title","maskId","titleId","extra","_params$watchable","watchable","found","isUploadedIcon","widthClass","ceil","attrClass","c","classes","content","children","role","uploadedIconWidthStyle","tag","args","explicitMaskId","mainWidth","mainPath","icon","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","offset","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","class","makeLayersCounterAbstract","noop$1","p","preamble","end","perf","subject","initialValue","thisContext","result","func","a","b","bindInternal4","toHex","unicode","charCodeAt","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","_byUnicode","_byLigature","_byOldName","build","lookup","reducer","o","ligatures","ligature","hasRegular","shim","oldName","byUnicode","styles$1","getCanonicalIcon","values","autoFetchSvg","rest","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","attributeName","trim","joinAttributes","noop$2","isWatched","mutators","mutation","newOuterHTML","parentNode","outerHTML","toLowerCase","newNode","replaceChild","nest","forSvg","RegExp","splitClasses","match","toSvg","toNode","newInnerHTML","performOperationSync","op","perform","mutations","callbackFunction","frame","requestAnimationFrame","mutator","disabled","enableObservation","mo","observe","options","treeCallback","nodeCallback","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","mutationRecord","type","addedNodes","_getCanonicalIcon","childList","characterData","subtree","classParser","existingPrefix","existingIconName","innerText","parseTransformString","transformString","first","parseFloat","isNaN","parseMeta","_classParser","extraClasses","extraStyles","prop","styleParser","transformParser","symbolParser","extraAttributes","attributesParser","maskParser","MissingIcon","error","message","stack","Error","create","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","missing","cx","cy","r","opacity","styles$2","asFoundIcon","vectorData","findIcon","styles$3","generateMutation","nodeMeta","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","generateLayersText","generateSvgReplacementMutation","onTree","root","htmlClassList","hclAdd","suffix","add","hclRemove","remove","prefixes","prefixesDomQuery","candidates","querySelectorAll","console","resolvedMutations","onNode","replaceForPosition","position","pendingAttribute","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","hexValue","substr","iconIdentifier","meta","firstChild","appendChild","removeAttribute","processable","operations","drc","fp","rc","s","dPatt","customPropPatt","rPatt","ensureCss","_cssInserted","apiObject","abstractCreator","get","container","html","findIconDefinition","iconLookup","_iconLookup$prefix","library","definitions","Library","instance","Constructor","_classCallCheck","protoProps","staticProps","_this","_len","_key","additions","_pullDefinitions","definition","0","_normalized$key","noAuto","disconnect","dom","i2svg","_params$node","_params$callback","watch","autoReplaceSvgRoot","autoReplace","parse","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","maybeIconDefinition","text","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","counter","_params$title3","_params$classes3","_params$attributes3","_params$styles3","layer","assembler","_params$classes4","api","_params$autoReplaceSv","ListLink","entityName","entityKeys","rootNodes","StyledLink","to","JSON","stringify","queryParams","queryString","history","location","search","navigationStrategy","DetailLink","searchFormCollapsed","onSearchFormCollapsedChange","collapsed","saveUserPreferences","scrollBehaviour","mapActionCreators","connect","state","_get","preferences","userPreferences","injectIntl","DocsBrowserApp","ID","QUERY","PropTypes","ids","propName","componentName","selection","selectionTypes","query","isRequired","count","getEntities","fetchEntities","limit","entities","consoleLogger","propType","setDeleteDialogInfo","dialogInfo","payload","doDelete","setEntitiesToDelete","entitiesToDelete","Typography","relatedEntity","maxCountLink","keysOtherBu","Popover","placement","NonBreakingText","styled","rootEntities","relatedEntities","entries","rootEntityName","rootEntity","entityLabel","prev","curr","linkText","Count","Content","StyledIconWrapper","scale","rootEntitiesDeletable","relatedDeletable","del","input","DeleteProgress","ALLOWED_CONDITIONS","design","COLORS","theme","shadeColor","StyledSignalBox","condition","getColor","StyledSignalListItem","propTypes","SignalBox","React","defaultProps","StyledSectionWrapper","StyledButtonsWrapper","StyledButton","rootEntitiesNotDeletable","relatedNotDeletable","hasUnreadableEntities","onCancel","Button","onClick","every","entity","ink","Dialog","loadDialogInfo","deletingInProgress","intl","useEffect","LoadMask","required","loadingText","formatMessage","Delete","ACTION_HANDLERS","reducerUtil","initialState","deleteStatus","transformRootEntity","applyKeys","includes","entityNameReal","keyReal","isEntityDeletable","entityToDelete","affectedEntities","find","affectedEntity","getDialogInfo","response","currentBuId","deletable","relatedAttr","businessUnitId","Set","transformRelatedEntities","unreadableEntities","getEntitiesToDelete","deleteEntityPropType","getDeleteBodyFromSelection","getDeleteEndpoint","mainSagas","inputSelector","textResourceSelector","messages","entitiesToDeleteSelector","select","selectionUtil","entityModel","customDeleteEndpoint","body","deleteEndpoint","method","deleteResponse","principal","currentBusinessUnit","put","actions","acceptedStatusCodes","textResources","ok","deletedEntities","remoteEvents","externalEvents","status","information","takeLatest","action","handler","sagas","deleteSagas","EXTERNAL_EVENTS","initApp","events","publicPath","store","appFactory","reducers","actionEmitter","emitAction","handleNotifications","notification","textResourceModules","DeleteApp","packageName","component","context","onSuccess","parent","getNode","pathname","defaultValues","model","formName","getDetailFormName","mode","onEntityCreated","toaster","isActionBlocked","entityKey","entityId","onEntityUpdated","onEntityDeleted","StyledLoadMask","initialize","moveElements","MoveContainer","isWaiting","docs","move","domainTypes","businessUnit","onError","initialNode","initialParent","useState","setParent","getCustomLocation","memoryHistory","initialLocation","getInitialLocation","listLimit","selectionStyle","searchFormType","disableViewPersistor","getListFormName","onListParentChange","embedded","noLeftPadding","sortable","look","_isEqual","detailFormNames","StyledWrapper","DatePicker","onChange","wrapperElement","useRef","locale","initializeFlatPickr","useDatePickr","flatpickrOptions","shouldAppend","current","data-wrap","ref","data-toggle","display","data-input","aria-label","withTheme","localeMap","German","de","fr","French","it","Italian","handleOnChange","selectedDates","toISOString","flatpickr","prevFlatpickrOptions","react","destroy","setDate","redraw","calendarLocale","l10ns","en","localize","set","optionsDiff","js","wrap","altInput","enableTime","defaultDate","appendTo","flatpickrInstance","calendarContainer","StyledDatePickerInput","StyledInputCss","StyledDatePickerValue","StyledDatePickerOuterWrapper","immutable","StyledDatePickerWrapper","StyledEditableWrapperCss","focusFlatpickrInput","wrapper","inputElement","focus","parseDate","formatDate","initialized","setInitialized","altInputClass","clickOpens","handleOnBlur","parsed","focusInput","handleConfirmKey","contains","shiftKey","close","preventDefault","stopPropagation","hasValue","v","tabIndex","onFocus","open","onKeyDown","onBlur","placeholder","placeholderText","Ball","msg","onMouseDown","spin","faCircleNotch"],"mappings":"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","file":"chunk-docs-actions.fe615fd8e3c8ff68c449.js","sourcesContent":["/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\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 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 _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_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 _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\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;\n\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 NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_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 PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'far': 'regular',\n 'fal': 'light',\n 'fad': 'duotone',\n 'fab': 'brands',\n 'fak': 'kit',\n 'fa': 'solid'\n};\nvar STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n};\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font Awesome ([5 ]*)(Solid|Regular|Light|Duotone|Brands|Free|Pro|Kit).*/i; // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal'\n};\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: 'group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', 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 // For example <script data-search-pseudo-elements src=\"...\"></script>\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-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 familyPrefix: DEFAULT_FAMILY_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};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\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\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\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};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\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 getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\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], \";\");\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 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(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking (_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: _objectSpread({}, 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: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, 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: _objectSpread({}, 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: _objectSpread({\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\nfunction makeIconStandard (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\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(_objectSpread({}, 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.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, 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 widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].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: _objectSpread({}, 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) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\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 = _objectSpread({}, 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 = _objectSpread({}, 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 = _objectSpread({}, 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 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 \\\"5.15.4\\\"\";\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\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\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\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 = 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 if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, 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 easy 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 styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\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 return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = 'far' in styles;\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\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\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\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 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\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"<!-- \".concat(node.outerHTML, \" Font Awesome fontawesome.com -->\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = 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.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[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 abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\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 treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\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 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') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\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 (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\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\n if (!transformString) {\n return transform;\n } else {\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 }\n};\nfunction transformParser (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\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 maskParser (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\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: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\n\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, 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\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, 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: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, 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: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\n\nvar styles$2 = 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.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").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}\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(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 picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).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 mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(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 picked.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\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\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 ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\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;\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;\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 instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.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 () {\n mark();\n reject();\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 replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(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 prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // 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 if (iconName && (!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(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\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 picked.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 picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n 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 {\\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-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: 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: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\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-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\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\\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 -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\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}\\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: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\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 color: #fff;\\n}\";\n\nfunction css () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), '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 Library =\n/*#__PURE__*/\nfunction () {\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] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, 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 if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n}\n\nfunction apiObject(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 findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\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, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\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\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\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 observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (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 apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\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: _objectSpread({}, 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 text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\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.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\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\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };\n","import PropTypes from 'prop-types'\nimport queryString from 'query-string'\nimport React from 'react'\nimport DocsBrowser from 'tocco-docs-browser/src/main'\nimport {AdminLink as StyledLink} from 'tocco-ui'\n\nimport {DetailLink} from '../../../entities/utils/navigationStrategy'\n\nexport const ListLink = ({entityName, entityKeys, children}) => {\n const rootNodes = entityKeys.map(key => ({entityName, key}))\n return (\n <StyledLink to={`/docs?rootNodes=${JSON.stringify(rootNodes)}`} target=\"_blank\">\n {children}\n </StyledLink>\n )\n}\n\nListLink.propTypes = {\n entityName: PropTypes.string.isRequired,\n children: PropTypes.any.isRequired,\n entityKeys: PropTypes.arrayOf(PropTypes.string)\n}\n\nconst DocsBrowserApp = props => {\n const queryParams = queryString.parse(props.history.location.search)\n\n return (\n <DocsBrowser\n {...props}\n navigationStrategy={{\n ListLink,\n DetailLink\n }}\n {...(queryParams.rootNodes && {rootNodes: JSON.parse(queryParams.rootNodes)})}\n searchFormCollapsed={props.searchFormCollapsed}\n onSearchFormCollapsedChange={({collapsed}) => {\n props.saveUserPreferences({'admin.list.searchFormCollapsed': collapsed})\n }}\n scrollBehaviour=\"inline\"\n />\n )\n}\n\nDocsBrowserApp.propTypes = {\n history: PropTypes.object.isRequired,\n searchFormCollapsed: PropTypes.bool,\n saveUserPreferences: PropTypes.func\n}\n\nexport default DocsBrowserApp\n","import _get from 'lodash/get'\nimport {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {saveUserPreferences} from '../../../../modules/preferences/actions'\nimport DocsBrowserApp from './DocsBrowserApp'\n\nconst mapActionCreators = {\n saveUserPreferences\n}\n\nconst mapStateToProps = (state, props) => ({\n searchFormCollapsed: _get(state.preferences.userPreferences, 'admin.list.searchFormCollapsed', null)\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(DocsBrowserApp))\n","import DocsBrowserApp from './components/DocsBrowserApp'\n\nexport default {\n container: DocsBrowserApp\n}\n","export default {\n ID: 'ID',\n QUERY: 'QUERY'\n}\n","import PropTypes from 'prop-types'\n\nimport selectionTypes from './selectionTypes'\n\nexport default PropTypes.shape({\n entityName: PropTypes.string.isRequired,\n ids: (props, propName, componentName) => {\n if (props.selection && props.selection.type === selectionTypes.ID && !props.selection[propName]) {\n return new Error(`Selection.ids prop not defined. Component: ${componentName}'.`)\n }\n },\n query: (props, propName, componentName) => {\n if (props.selection && props.selection.type === selectionTypes.QUERY && !props.selection[propName]) {\n return new Error(`Selection.query prop not defined. Component: ${componentName}'.`)\n }\n },\n type: PropTypes.oneOf(Object.keys(selectionTypes)).isRequired,\n count: PropTypes.number\n})\n","import {call} from 'redux-saga/effects'\nimport {consoleLogger} from 'tocco-util'\n\nimport selectionTypes from './selectionTypes'\n\nconst limit = 100000\n/**\n * Helper to get all entitiy keys of a selection.\n * @param {object} selection - selection object\n * @param {function} fetchEntities - rest helper function\n * @returns {object} Object containing entityName and an array of keys (limited if selection is query)\n */\nexport function* getEntities(selection, fetchEntities) {\n const {entityName} = selection\n if (selection.type === selectionTypes.QUERY) {\n const entities = yield call(fetchEntities, selection.entityName, {...selection.query, limit})\n\n if (entities.length > limit) {\n yield call(consoleLogger.logError, `Selected records exceed limit of ${limit}`)\n }\n\n return {\n entityName,\n keys: entities.map(e => e.key)\n }\n }\n\n return {\n entityName,\n keys: selection.ids\n }\n}\n","import propType from './proptype'\nimport {getEntities} from './selection'\nimport selectionTypes from './selectionTypes'\nexport default {\n getEntities,\n propType,\n selectionTypes\n}\n","export const LOAD_DIALOG_INFO = 'root/LOAD_DIALOG_INFO'\nexport const SET_DIALOG_INFO = 'delete/SET_DELETE_DIALOG_INFO'\nexport const DO_DELETE = 'delete/DO_DELETE'\nexport const SET_DELETING_IN_PROGRESS = 'delete/SET_DELETING_IN_PROGRESS'\nexport const ON_CANCEL = 'delete/ON_CANCEL'\nexport const SET_ENTITIES_TO_DELETE = 'delete/SET_ENTITIES_TO_DELETE'\n\nexport const loadDialogInfo = () => ({\n type: LOAD_DIALOG_INFO\n})\n\nexport const setDeleteDialogInfo = dialogInfo => ({\n type: SET_DIALOG_INFO,\n payload: {\n dialogInfo\n }\n})\n\nexport const doDelete = () => ({\n type: DO_DELETE\n})\n\nexport const setDeletingInProgress = deletingInProgress => ({\n type: SET_DELETING_IN_PROGRESS,\n payload: {\n deletingInProgress\n }\n})\n\nexport const onCancel = () => ({\n type: ON_CANCEL\n})\n\nexport const setEntitiesToDelete = entitiesToDelete => ({\n type: SET_ENTITIES_TO_DELETE,\n payload: {\n entitiesToDelete\n }\n})\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport {Popover, Typography} from 'tocco-ui'\n\nimport {deleteEntityPropType} from '../../utils/deleteRequestParser'\n\nconst LinkPopOver = ({relatedEntity, children, maxCountLink}) => {\n if (relatedEntity.keys.length < maxCountLink && relatedEntity.keysOtherBu.length === 0) {\n return children\n }\n\n const content = (\n <>\n {relatedEntity.keys.length > maxCountLink && (\n <Typography.P>\n <FormattedMessage id=\"client.delete.tooManyRecords\" />\n </Typography.P>\n )}\n {relatedEntity.keysOtherBu.length > 0 && (\n <Typography.P>\n <FormattedMessage id=\"client.delete.recordInOtherBU\" values={{count: relatedEntity.keysOtherBu.length}} />\n </Typography.P>\n )}\n </>\n )\n\n return (\n <Popover content={content} placement=\"top\">\n {children}\n </Popover>\n )\n}\n\nLinkPopOver.propTypes = {\n relatedEntity: deleteEntityPropType.isRequired,\n maxCountLink: PropTypes.number.isRequired,\n children: PropTypes.element\n}\n\nexport default LinkPopOver\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport styled from 'styled-components'\nimport {Typography} from 'tocco-ui'\nimport {navigationStrategy} from 'tocco-util'\n\nimport {deleteEntityPropType} from '../../utils/deleteRequestParser'\nimport LinkPopOver from './LinkPopOver'\n\nconst NonBreakingText = styled.span`\n white-space: nowrap;\n`\n\nconst InfoPart = ({rootEntities, relatedEntities, maxCountLink, navigationStrategy}) => (\n <Typography.Span>\n <Typography.B>\n {Object.entries(rootEntities)\n .map(([rootEntityName, rootEntity]) => (\n <span key={`root-entity-${rootEntityName}`}>\n {rootEntity.entityLabel} (\n {rootEntity.keys.length > 0 && navigationStrategy.ListLink ? (\n <navigationStrategy.ListLink entityName={rootEntityName} entityKeys={rootEntity.keys}>\n {rootEntity.keys.length}\n </navigationStrategy.ListLink>\n ) : (\n <Typography.Span>{rootEntity.keys.length}</Typography.Span>\n )}\n )\n </span>\n ))\n .reduce((prev, curr) => [prev, ', ', curr])}\n </Typography.B>\n {Object.keys(relatedEntities).length > 0 && (\n <>\n <span> / </span>\n {Object.keys(relatedEntities)\n .map(entityName => {\n const relatedEntity = relatedEntities[entityName]\n const linkText = [...relatedEntity.keys, ...relatedEntity.keysOtherBu].length\n\n const Count =\n relatedEntity.keys.length > 0 && navigationStrategy.ListLink ? (\n <navigationStrategy.ListLink\n entityName={entityName}\n entityKeys={relatedEntity.keys.slice(0, maxCountLink)}\n >\n {linkText}\n </navigationStrategy.ListLink>\n ) : (\n <Typography.Span>{linkText}</Typography.Span>\n )\n\n const Content = (\n <LinkPopOver relatedEntity={relatedEntity} maxCountLink={maxCountLink}>\n {Count}\n </LinkPopOver>\n )\n\n return (\n <React.Fragment key={'entity-info-' + entityName}>\n <NonBreakingText>\n {relatedEntity.entityLabel} ({Content})\n </NonBreakingText>\n </React.Fragment>\n )\n })\n .reduce((prev, curr) => [prev, ', ', curr])}\n </>\n )}\n </Typography.Span>\n)\n\nInfoPart.propTypes = {\n rootEntities: PropTypes.objectOf(\n PropTypes.shape({\n entityLabel: PropTypes.string.isRequired,\n keys: PropTypes.arrayOf(PropTypes.string).isRequired\n })\n ).isRequired,\n relatedEntities: PropTypes.objectOf(deleteEntityPropType).isRequired,\n maxCountLink: PropTypes.number,\n navigationStrategy: navigationStrategy.propTypes\n}\n\nexport default InfoPart\n","import styled from 'styled-components'\nimport {scale} from 'tocco-ui'\n\nexport const StyledIconWrapper = styled.div`\n margin-bottom: ${scale.space(0.2)};\n`\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport {LoadingSpinner, Typography} from 'tocco-ui'\nimport {navigationStrategy} from 'tocco-util'\n\nimport {deleteInfoPropType} from '../../utils/deleteRequestParser'\nimport InfoPart from '../InfoPart'\nimport {StyledIconWrapper} from './StyledComponents'\n\nconst DeleteProgress = ({dialogInfo, navigationStrategy}) => {\n return (\n <>\n <StyledIconWrapper>\n <LoadingSpinner size=\"30px\" />\n </StyledIconWrapper>\n <Typography.P>\n <FormattedMessage id=\"client.delete.deleteInProgress\" />\n </Typography.P>\n <InfoPart\n key=\"infopart-deletable\"\n rootEntities={dialogInfo.rootEntitiesDeletable}\n relatedEntities={dialogInfo.relatedDeletable}\n maxCountLink={100}\n navigationStrategy={navigationStrategy}\n />\n </>\n )\n}\n\nDeleteProgress.propTypes = {\n dialogInfo: deleteInfoPropType.isRequired,\n intl: PropTypes.object.isRequired,\n navigationStrategy: navigationStrategy.propTypes\n}\n\nexport default DeleteProgress\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {doDelete} from '../../modules/delete/actions'\nimport DeleteProgress from './DeleteProgress'\n\nconst mapActionCreators = {\n doDelete\n}\n\nconst mapStateToProps = (state, props) => ({\n dialogInfo: state.del.dialogInfo,\n navigationStrategy: state.input.navigationStrategy\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(DeleteProgress))\n","import DeleteProgress from './DeleteProgressContainer'\n\nexport default DeleteProgress\n","import _get from 'lodash/get'\nimport styled from 'styled-components'\n\nimport {StyledSignalListItem} from '../SignalList'\nimport {design, scale, shadeColor, theme} from '../utilStyles'\n\nconst ALLOWED_CONDITIONS = [\n design.condition.BASE,\n design.condition.DANGER,\n design.condition.SUCCESS,\n design.condition.WARNING\n]\n\nconst COLORS = {\n [design.condition.DANGER]: theme.color('signal.danger.paper'),\n [design.condition.SUCCESS]: theme.color('signal.success.paper'),\n [design.condition.WARNING]: theme.color('signal.warning.paper'),\n [design.condition.BASE]: props => shadeColor(_get(props.theme, 'colors.paper'), 1)\n}\n\nconst getColor = props => {\n const color = COLORS[props.condition]\n return color || shadeColor(_get(props.theme, 'colors.paper'), 1)\n}\n\nconst StyledSignalBox = styled.div`\n && {\n background-color: ${props => getColor(props)};\n padding: ${scale.space(-1)};\n margin-bottom: ${scale.space(-1)};\n border-radius: ${theme.radii('radii.regular')};\n\n &:last-child {\n margin-bottom: 0;\n }\n\n ${StyledSignalListItem} {\n color: inherit;\n }\n }\n`\n\nStyledSignalBox.propTypes = {\n condition: design.oneOfPropTypeAndCompletelyMapped(ALLOWED_CONDITIONS, COLORS)\n}\n\nexport {ALLOWED_CONDITIONS, StyledSignalBox as default}\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport Typography from '../Typography'\nimport {design} from '../utilStyles'\nimport StyledSignalBox, {ALLOWED_CONDITIONS} from './StyledSignalBox'\n\n/**\n * Emphasize important information by context. Group them by utilizing several instances of <SignalBox/>.\n */\nconst SignalBox = props => (\n <StyledSignalBox condition={props.condition}>\n {props.title && <Typography.H5>{props.title}</Typography.H5>}\n {React.Children.map(props.children, child => React.cloneElement(child))}\n {props.meta && <Typography.Small>{props.meta}</Typography.Small>}\n </StyledSignalBox>\n)\n\nSignalBox.defaultProps = {\n condition: design.condition.BASE\n}\n\nSignalBox.propTypes = {\n /**\n * Prefer <SignalList.List/> and <SignalList.Item/> to list items over any other typographic component.\n */\n children: PropTypes.node,\n /**\n * Background is colorized according condition. Default value is 'base'.\n * Possible values: base|danger|success|warning\n */\n condition: PropTypes.oneOf(ALLOWED_CONDITIONS),\n /**\n * Add loosely related but still important information as meta text (e.g. date, id, type).\n */\n meta: PropTypes.string,\n /**\n * Summarize information from whole signal box concise.\n */\n title: PropTypes.string\n}\n\nexport default SignalBox\n","import styled from 'styled-components'\nimport {StyledButton, scale} from 'tocco-ui'\n\nexport const StyledSectionWrapper = styled.div`\n padding-top: ${scale.space(0.6)};\n`\n\nexport const StyledButtonsWrapper = styled.div`\n display: flex;\n justify-content: flex-end;\n\n ${StyledButton} {\n margin-right: 0;\n }\n`\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport {Button, Typography, SignalBox} from 'tocco-ui'\nimport {navigationStrategy} from 'tocco-util'\n\nimport {deleteInfoPropType} from '../../utils/deleteRequestParser'\nimport InfoPart from '../InfoPart'\nimport {StyledSectionWrapper, StyledButtonsWrapper} from './StyledComponents'\n\nconst Dialog = ({\n dialogInfo: {\n rootEntitiesDeletable,\n rootEntitiesNotDeletable,\n relatedDeletable,\n relatedNotDeletable,\n hasUnreadableEntities\n },\n doDelete,\n onCancel,\n navigationStrategy\n}) => (\n <>\n <Typography.P>\n <FormattedMessage id=\"client.delete.confirmText\" />\n </Typography.P>\n <InfoPart\n key=\"infopart-deletable\"\n rootEntities={rootEntitiesDeletable}\n relatedEntities={relatedDeletable}\n maxCountLink={100}\n navigationStrategy={navigationStrategy}\n />\n {Object.keys(rootEntitiesNotDeletable).length > 0 && (\n <StyledSectionWrapper>\n <Typography.P>\n <FormattedMessage id=\"client.delete.textNotDeletable\" />\n </Typography.P>\n <InfoPart\n key=\"infopart-notdeletable\"\n rootEntities={rootEntitiesNotDeletable}\n relatedEntities={relatedNotDeletable}\n maxCountLink={100}\n navigationStrategy={navigationStrategy}\n />\n </StyledSectionWrapper>\n )}\n {hasUnreadableEntities && (\n <StyledSectionWrapper>\n <SignalBox condition=\"warning\">\n <Typography.Span>\n <FormattedMessage id=\"client.delete.unreadableEntities\" />\n </Typography.Span>\n </SignalBox>\n </StyledSectionWrapper>\n )}\n <StyledSectionWrapper>\n <StyledButtonsWrapper>\n <Button\n onClick={doDelete}\n disabled={Object.keys(rootEntitiesDeletable).every(entity => rootEntitiesDeletable[entity].keys.length === 0)}\n >\n <FormattedMessage id=\"client.delete.deleteButton\" />\n </Button>\n <Button ink=\"primary\" onClick={onCancel}>\n <FormattedMessage id=\"client.delete.cancelButton\" />\n </Button>\n </StyledButtonsWrapper>\n </StyledSectionWrapper>\n </>\n)\n\nDialog.propTypes = {\n onCancel: PropTypes.func.isRequired,\n doDelete: PropTypes.func.isRequired,\n dialogInfo: deleteInfoPropType.isRequired,\n navigationStrategy: navigationStrategy.propTypes\n}\n\nexport default Dialog\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {doDelete, onCancel} from '../../modules/delete/actions'\nimport Dialog from './Dialog'\n\nconst mapActionCreators = {\n doDelete,\n onCancel\n}\n\nconst mapStateToProps = (state, props) => ({\n dialogInfo: state.del.dialogInfo,\n navigationStrategy: state.input.navigationStrategy\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Dialog))\n","import PropTypes from 'prop-types'\nimport React, {useEffect} from 'react'\nimport {LoadMask} from 'tocco-ui'\n\nimport {deleteInfoPropType} from '../../utils/deleteRequestParser'\nimport DeleteProgress from '../DeleteProgress'\nimport Dialog from '../Dialog'\n\nconst Delete = ({loadDialogInfo, dialogInfo, deletingInProgress, intl}) => {\n useEffect(() => {\n loadDialogInfo()\n }, [])\n\n const msg = id => intl.formatMessage({id})\n\n if (deletingInProgress) {\n return <DeleteProgress />\n }\n\n return (\n <LoadMask required={[dialogInfo]} loadingText={msg('client.delete.loadingText')}>\n {dialogInfo && <Dialog />}\n </LoadMask>\n )\n}\n\nDelete.propTypes = {\n loadDialogInfo: PropTypes.func.isRequired,\n dialogInfo: deleteInfoPropType,\n deletingInProgress: PropTypes.bool,\n intl: PropTypes.object.isRequired\n}\n\nexport default Delete\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {loadDialogInfo} from '../../modules/delete/actions'\nimport Delete from './Delete'\n\nconst mapActionCreators = {\n loadDialogInfo\n}\n\nconst mapStateToProps = (state, props) => ({\n dialogInfo: state.del.dialogInfo,\n deletingInProgress: state.del.deletingInProgress\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Delete))\n","import Delete from './DeleteContainer'\n\nexport default Delete\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst ACTION_HANDLERS = {\n [actions.SET_DIALOG_INFO]: reducerUtil.singleTransferReducer('dialogInfo'),\n [actions.SET_ENTITIES_TO_DELETE]: reducerUtil.singleTransferReducer('entitiesToDelete'),\n [actions.SET_DELETING_IN_PROGRESS]: reducerUtil.singleTransferReducer('deletingInProgress')\n}\n\nconst initialState = {\n dialogInfo: null,\n entitiesToDelete: null,\n deletingInProgress: false\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import _get from 'lodash/get'\nimport PropTypes from 'prop-types'\n\nconst deleteStatus = {\n DELETABLE: 'DELETABLE',\n DENIED_BY_CASCADE: 'DENIED_BY_CASCADE',\n NO_DELETE_PERMISSION: 'NO_DELETE_PERMISSION'\n}\n\nconst transformRelatedEntities = (relatedEntities, entityToDelete, deletable, currentBuId) => ({\n ...entityToDelete.affectedEntities.reduce(\n (acc, affectedEntity) => ({\n ...acc,\n ...(deletable || affectedEntity.deleteStatus !== deleteStatus.DELETABLE\n ? {\n [affectedEntity.entityName]: {\n ..._get(acc, affectedEntity.entityName, {\n keys: [],\n keysOtherBu: [],\n entityLabel: affectedEntity.entityLabel\n }),\n ...(affectedEntity.businessUnitId === null || affectedEntity.businessUnitId === currentBuId\n ? {\n keys: Array.from(\n new Set([..._get(acc, [affectedEntity.entityName, 'keys'], []), affectedEntity.key])\n )\n }\n : {\n keysOtherBu: Array.from(\n new Set([..._get(acc, [affectedEntity.entityName, 'keysOtherBu'], []), affectedEntity.key])\n )\n })\n }\n }\n : {})\n }),\n {...relatedEntities}\n )\n})\n\nconst transformRootEntity = (rootEntities, entity, applyKeys = true) => {\n const {entityName, entityLabel, key} = entity.rootEntity\n if (key.includes('/')) {\n const [entityNameReal, keyReal] = key.split('/')\n return {\n ...rootEntities,\n [entityNameReal]: {\n entityLabel,\n keys: [..._get(rootEntities, [entityNameReal, 'keys'], []), ...(applyKeys ? [keyReal] : [])]\n }\n }\n } else {\n return {\n ...rootEntities,\n [entityName]: {\n entityLabel,\n keys: [..._get(rootEntities, [entityName, 'keys'], []), ...(applyKeys ? [key] : [])]\n }\n }\n }\n}\n\nconst isEntityDeletable = entityToDelete =>\n entityToDelete.rootEntity.deleteStatus === deleteStatus.DELETABLE &&\n !entityToDelete.affectedEntities.find(affectedEntity => affectedEntity.deleteStatus !== deleteStatus.DELETABLE)\n\nexport const getDialogInfo = (response, currentBuId) => {\n const {entitiesToDelete} = response\n\n return entitiesToDelete.reduce(\n (acc, entityToDelete) => {\n const deletable = isEntityDeletable(entityToDelete)\n const relatedAttr = deletable ? 'relatedDeletable' : 'relatedNotDeletable'\n return {\n ...acc,\n rootEntitiesDeletable: transformRootEntity(acc.rootEntitiesDeletable, entityToDelete, deletable),\n ...(!deletable && {\n rootEntitiesNotDeletable: transformRootEntity(acc.rootEntitiesNotDeletable, entityToDelete)\n }),\n [relatedAttr]: transformRelatedEntities(acc[relatedAttr], entityToDelete, deletable, currentBuId)\n }\n },\n {\n rootEntitiesDeletable: {},\n rootEntitiesNotDeletable: {},\n relatedDeletable: {},\n relatedNotDeletable: {},\n hasUnreadableEntities: !!entitiesToDelete.find(e => e.unreadableEntities)\n }\n )\n}\n\nexport const getEntitiesToDelete = ({entitiesToDelete}) => ({\n entityName: _get(entitiesToDelete, '[0].rootEntity.entityName'),\n keys: entitiesToDelete.reduce(\n (acc, entityToDelete) => [...acc, ...(isEntityDeletable(entityToDelete) ? [entityToDelete.rootEntity.key] : [])],\n []\n )\n})\n\nexport const deleteEntityPropType = PropTypes.shape({\n entityLabel: PropTypes.string,\n keys: PropTypes.arrayOf(PropTypes.string),\n keysOtherBu: PropTypes.arrayOf(PropTypes.string)\n})\n\nexport const deleteInfoPropType = PropTypes.shape({\n rootEntitiesDeletable: PropTypes.objectOf(deleteEntityPropType).isRequired,\n rootEntitiesNotDeletable: PropTypes.objectOf(deleteEntityPropType).isRequired,\n relatedDeletable: PropTypes.objectOf(deleteEntityPropType).isRequired,\n relatedNotDeletable: PropTypes.objectOf(deleteEntityPropType).isRequired,\n hasUnreadableEntities: PropTypes.bool\n})\n","import {takeLatest, all, call, put, select} from 'redux-saga/effects'\nimport {rest, externalEvents, selection as selectionUtil} from 'tocco-app-extensions'\n\nimport {getDialogInfo, getEntitiesToDelete} from '../../utils/deleteRequestParser'\nimport * as actions from './actions'\n\nexport const inputSelector = state => state.input\nexport const textResourceSelector = state => state.intl.messages\nexport const entitiesToDeleteSelector = state => state.del.entitiesToDelete\n\nexport function* getDeleteBodyFromSelection() {\n const {selection} = yield select(inputSelector)\n\n const entities = yield call(selectionUtil.getEntities, selection, rest.fetchEntities)\n\n return {\n entityModel: entities.entityName,\n keys: entities.keys\n }\n}\n\nexport function* getDeleteEndpoint() {\n const {customDeleteEndpoint} = yield select(inputSelector)\n return customDeleteEndpoint || 'client/delete'\n}\n\nexport function* loadDialogInfo() {\n const body = yield call(getDeleteBodyFromSelection)\n const deleteEndpoint = yield call(getDeleteEndpoint)\n\n const [deleteResponse, principal] = yield all([\n call(rest.requestSaga, `${deleteEndpoint}/dialog`, {method: 'POST', body}),\n call(rest.fetchPrincipal)\n ])\n\n const dialogInfo = yield call(getDialogInfo, deleteResponse.body, principal.currentBusinessUnit.id)\n yield put(actions.setDeleteDialogInfo(dialogInfo))\n\n const entitiesToDelete = yield call(getEntitiesToDelete, deleteResponse.body)\n yield put(actions.setEntitiesToDelete(entitiesToDelete))\n}\n\nexport function* doDelete() {\n const entitiesToDelete = yield select(entitiesToDeleteSelector)\n\n yield put(actions.setDeletingInProgress(true))\n const body = {\n entityModel: entitiesToDelete.entityName,\n keys: entitiesToDelete.keys\n }\n\n const deleteEndpoint = yield call(getDeleteEndpoint)\n\n const response = yield call(rest.requestSaga, deleteEndpoint, {\n method: 'POST',\n body,\n acceptedStatusCodes: [409]\n })\n\n const textResources = yield select(textResourceSelector)\n if (response.ok) {\n const {body} = response\n\n const entities = Object.keys(body.deletedEntities).reduce((acc, entityName) => {\n return [...acc, ...body.deletedEntities[entityName].map(key => ({entityName, key}))]\n }, [])\n\n const remoteEvents = [\n {\n type: 'entity-delete-event',\n payload: {\n entities\n }\n }\n ]\n\n yield put(\n externalEvents.fireExternalEvent('onSuccess', {\n message: textResources['client.delete.successfullyMessage'],\n remoteEvents\n })\n )\n } else {\n if (response.status === 409 && response.body.information) {\n yield put(externalEvents.fireExternalEvent('onError', {message: response.body.information}))\n } else {\n yield put(externalEvents.fireExternalEvent('onError', {message: textResources['client.delete.errorMessage']}))\n }\n }\n}\n\nexport function* onCancel() {\n yield put(externalEvents.fireExternalEvent('onCancel'))\n}\n\nexport default function* mainSagas() {\n yield all([\n takeLatest(actions.LOAD_DIALOG_INFO, loadDialogInfo),\n takeLatest(actions.DO_DELETE, doDelete),\n takeLatest(actions.ON_CANCEL, onCancel)\n ])\n}\n","import del, {sagas as deleteSagas} from './delete'\n\nexport default {\n del\n}\n\nexport const sagas = [deleteSagas]\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {actionEmitter, appFactory, externalEvents, notification, selection} from 'tocco-app-extensions'\nimport {reducer as reducerUtil} from 'tocco-util'\n\nimport Delete from './components/Delete'\nimport reducers, {sagas} from './modules/reducers'\n\nconst packageName = 'delete'\n\nconst EXTERNAL_EVENTS = ['onSuccess', 'onCancel', 'onError', 'emitAction']\n\nconst initApp = (id, input, events, publicPath) => {\n const content = <Delete />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n actionEmitter.addToStore(store, events.emitAction)\n const handleNotifications = !events.emitAction\n notification.addToStore(store, handleNotifications)\n externalEvents.addToStore(store, events)\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: [],\n publicPath,\n textResourceModules: ['component', 'common', packageName]\n })\n}\n\n;(() => {\n if (__DEV__ && __PACKAGE_NAME__ === packageName) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const reducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, reducers)\n })\n }\n\n appFactory.renderApp(app.component)\n } else {\n appFactory.registerAppInRegistry(packageName, initApp)\n }\n})()\n\nconst DeleteApp = props => {\n const {component} = appFactory.useApp({initApp, props, packageName, externalEvents: EXTERNAL_EVENTS})\n return component\n}\n\nDeleteApp.propTypes = {\n selection: selection.propType.isRequired,\n customDeleteEndpoint: PropTypes.string\n}\n\nexport default DeleteApp\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {injectIntl} from 'react-intl'\nimport EntityDetailApp from 'tocco-entity-detail/src/main'\n\nimport getDetailFormName from '../../../utils/getDetailFormName'\nimport getNode from '../../../utils/getNode'\n\nconst CreateDomain = ({context, onSuccess, intl, emitAction}) => {\n const isActionBlocked = action => action.payload?.toaster?.title === 'client.entity-detail.createSuccessfulTitle'\n\n const emitActionBarrier = action => {\n if (!isActionBlocked(action)) {\n emitAction(action)\n }\n }\n\n const handleEntityCreated = ({id}) => {\n const remoteEvents = [\n {\n type: 'entity-create-event',\n payload: {\n entities: [\n {\n entityName: 'Docs_list_item',\n key: `Domain/${id}`\n }\n ]\n }\n }\n ]\n\n onSuccess({\n title: intl.formatMessage({id: 'client.docs-browser.createDomainSuccessful'}),\n remoteEvents\n })\n }\n\n const parent = getNode(context.history.location.pathname)\n const defaultValues = parent ? [{id: `rel${parent.model}`, value: parent.key}] : []\n\n const formName = getDetailFormName(context, 'Domain')\n\n return (\n <EntityDetailApp\n entityName=\"Domain\"\n formName={formName}\n mode=\"create\"\n defaultValues={defaultValues}\n onEntityCreated={handleEntityCreated}\n emitAction={emitActionBarrier}\n />\n )\n}\n\nCreateDomain.propTypes = {\n context: PropTypes.shape({\n history: PropTypes.shape({\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired\n }).isRequired\n }).isRequired\n }).isRequired,\n onSuccess: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n emitAction: PropTypes.func.isRequired\n}\n\nexport default injectIntl(CreateDomain)\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {injectIntl} from 'react-intl'\nimport EntityDetailApp from 'tocco-entity-detail/src/main'\n\nimport getDetailFormName from '../../../utils/getDetailFormName'\nimport getNode from '../../../utils/getNode'\n\nconst CreateFolder = ({context, onSuccess, intl, emitAction}) => {\n const isActionBlocked = action => action.payload?.toaster?.title === 'client.entity-detail.createSuccessfulTitle'\n\n const emitActionBarrier = action => {\n if (!isActionBlocked(action)) {\n emitAction(action)\n }\n }\n\n const handleEntityCreated = ({id}) => {\n const remoteEvents = [\n {\n type: 'entity-create-event',\n payload: {\n entities: [\n {\n entityName: 'Docs_list_item',\n key: `Folder/${id}`\n }\n ]\n }\n }\n ]\n\n onSuccess({\n title: intl.formatMessage({id: 'client.docs-browser.createFolderSuccessful'}),\n remoteEvents\n })\n }\n\n const parent = getNode(context.history.location.pathname)\n const defaultValues = parent ? [{id: `rel${parent.model}`, value: parent.key}] : []\n\n const formName = getDetailFormName(context, 'Folder')\n\n return (\n <EntityDetailApp\n entityName=\"Folder\"\n formName={formName}\n mode=\"create\"\n defaultValues={defaultValues}\n onEntityCreated={handleEntityCreated}\n emitAction={emitActionBarrier}\n />\n )\n}\n\nCreateFolder.propTypes = {\n context: PropTypes.shape({\n history: PropTypes.shape({\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired\n }).isRequired\n }).isRequired\n }).isRequired,\n onSuccess: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n emitAction: PropTypes.func.isRequired\n}\n\nexport default injectIntl(CreateFolder)\n","import React from 'react'\nimport DeleteApp from 'tocco-delete/src/main'\n\nexport default props => <DeleteApp {...props} customDeleteEndpoint={'documents/delete'} />\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {injectIntl} from 'react-intl'\nimport {selection} from 'tocco-app-extensions'\nimport EntityDetailApp from 'tocco-entity-detail/src/main'\n\nimport getDetailFormName from '../../../utils/getDetailFormName'\n\nconst EditAction = ({selection, onSuccess, onCancel, intl, context, emitAction}) => {\n const isActionBlocked = action => action.payload?.toaster?.title === 'client.entity-detail.createSuccessfulTitle'\n\n const emitActionBarrier = action => {\n if (!isActionBlocked(action)) {\n emitAction(action)\n }\n }\n\n const [entityName, entityKey] = selection.ids[0].split('/')\n\n if (entityName === 'Resource') {\n context.history.push(`/docs/doc/${entityKey}/detail`)\n onCancel()\n }\n\n const handleEntityUpdated = () => {\n const remoteEvents = [\n {\n type: 'entity-update-event',\n payload: {\n entities: [\n {\n entityName: 'Docs_list_item',\n key: selection.ids[0]\n }\n ]\n }\n }\n ]\n\n onSuccess({\n title: null,\n remoteEvents\n })\n }\n\n const handleEntityDeleted = () => {\n const remoteEvents = [\n {\n type: 'entity-delete-event',\n payload: {\n entities: [\n {\n entityName: 'Docs_list_item',\n key: selection.ids[0]\n }\n ]\n }\n }\n ]\n\n onSuccess({\n title: null,\n remoteEvents\n })\n }\n\n const formName = getDetailFormName(context, entityName)\n\n return (\n <EntityDetailApp\n entityName={entityName}\n formName={formName}\n entityId={entityKey}\n mode=\"update\"\n onEntityUpdated={handleEntityUpdated}\n onEntityDeleted={handleEntityDeleted}\n emitAction={emitActionBarrier}\n />\n )\n}\n\nEditAction.propTypes = {\n selection: selection.propType,\n context: PropTypes.shape({\n history: PropTypes.shape({\n push: PropTypes.func.isRequired\n }).isRequired\n }).isRequired,\n onSuccess: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n emitAction: PropTypes.func.isRequired\n}\n\nexport default injectIntl(EditAction)\n","import _isEqual from 'lodash/isEqual'\nimport PropTypes from 'prop-types'\nimport React, {useEffect, useState} from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport styled from 'styled-components'\nimport {selection} from 'tocco-app-extensions'\nimport {Button, LoadMask, StyledButton} from 'tocco-ui'\n\nimport DocsBrowser from '../../../main'\nimport getNode from '../../../utils/getNode'\n\nconst StyledButtonsWrapper = styled.div`\n display: flex;\n justify-content: flex-end;\n\n ${StyledButton} {\n margin-right: 0;\n }\n`\n\n/* for being able to scroll whole modal content on smaller screens */\nconst StyledLoadMask = styled(LoadMask)`\n height: auto;\n`\n\nexport const MoveAction = ({\n selection,\n onSuccess,\n onError,\n context,\n initialize,\n moveElements,\n isWaiting,\n domainTypes,\n rootNodes,\n businessUnit,\n emitAction\n}) => {\n const initialNode = getNode(context.history.location.pathname)\n const initialParent = {model: 'Docs_list_item', key: `${initialNode.model}/${initialNode.key}`}\n const [parent, setParent] = useState(initialParent)\n\n useEffect(() => {\n initialize(selection, onSuccess, onError)\n }, [])\n\n const getCustomLocation = (model, key) => {\n switch (model) {\n case 'Domain':\n return `/docs/domain/${key}/list`\n case 'Folder':\n return `/docs/folder/${key}/list`\n case 'Resource':\n return\n default:\n throw new Error(`Unexpected model: ${model}`)\n }\n }\n\n const getInitialLocation = () => {\n if (parent === null) {\n return null\n }\n const [model, key] = parent.key.split('/')\n return getCustomLocation(model, key)\n }\n\n return (\n <StyledLoadMask required={[!isWaiting]}>\n <DocsBrowser\n memoryHistory={true}\n initialLocation={getInitialLocation()}\n listLimit={10}\n selectionStyle=\"none\"\n searchFormType=\"none\"\n disableViewPersistor={true}\n getListFormName={parent => (parent === null ? 'Move_root_docs_list_item' : 'Move_docs_list_item')}\n onListParentChange={parent => setParent(parent)}\n getCustomLocation={getCustomLocation}\n navigationStrategy={{}}\n embedded={true}\n emitAction={emitAction}\n noLeftPadding={true}\n domainTypes={domainTypes}\n rootNodes={rootNodes}\n businessUnit={businessUnit}\n sortable={false}\n scrollBehaviour=\"none\"\n />\n <StyledButtonsWrapper>\n <Button\n onClick={() => moveElements(parent.key, selection.ids)}\n look=\"raised\"\n ink=\"primary\"\n disabled={parent === null || _isEqual(parent, initialParent)}\n >\n <FormattedMessage id=\"client.actions.dms-move.button\" />\n </Button>\n </StyledButtonsWrapper>\n </StyledLoadMask>\n )\n}\n\nMoveAction.propTypes = {\n selection: selection.propType,\n onSuccess: PropTypes.func.isRequired,\n onError: PropTypes.func.isRequired,\n context: PropTypes.shape({\n history: PropTypes.shape({\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired\n }).isRequired\n }).isRequired\n }).isRequired,\n initialize: PropTypes.func.isRequired,\n moveElements: PropTypes.func.isRequired,\n isWaiting: PropTypes.bool.isRequired,\n domainTypes: PropTypes.arrayOf(PropTypes.string),\n rootNodes: PropTypes.arrayOf(\n PropTypes.shape({\n entityName: PropTypes.string,\n key: PropTypes.string\n })\n ),\n businessUnit: PropTypes.string,\n emitAction: PropTypes.func.isRequired\n}\n","import React from 'react'\nimport {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {initialize, moveElements} from '../../../modules/move/actions'\nimport {MoveAction} from './Move'\n\nconst mapActionCreators = {\n initialize,\n moveElements\n}\n\nconst mapStateToProps = state => ({\n isWaiting: state.docs.move.isWaiting,\n domainTypes: state.input.domainTypes,\n rootNodes: state.input.rootNodes,\n businessUnit: state.input.businessUnit\n})\n\nconst MoveContainer = connect(mapStateToProps, mapActionCreators)(MoveAction)\n\nexport default injectIntl(props => <MoveContainer {...props} />)\n","const getDetailFormName = (context, entityName) =>\n context.detailFormNames && context.detailFormNames[entityName]\n ? context.detailFormNames[entityName]\n : `Dms${entityName}`\n\nexport default getDetailFormName\n","import styled from 'styled-components'\n\nimport {scale} from '../utilStyles'\n\nexport const StyledWrapper = styled.div`\n cursor: pointer;\n\n .flatpickr-calendar.open {\n margin-top: ${scale.space(1.2)};\n }\n\n .flatpickr-calendar.arrowTop:before,\n .flatpickr-calendar.arrowTop:after {\n left: 83%;\n }\n`\n","import PropTypes from 'prop-types'\nimport React, {useEffect, useRef} from 'react'\nimport {injectIntl} from 'react-intl'\nimport {withTheme} from 'styled-components'\n\nimport {theme} from '../utilStyles'\nimport {StyledWrapper} from './StyledDatePicker'\nimport {useDatePickr} from './useDatePickr'\n\nexport const DatePicker = props => {\n const {value, children, intl, onChange} = props\n const wrapperElement = useRef(null)\n const locale = intl.locale\n const msg = id => intl.formatMessage({id})\n\n const fontFamily = theme.fontFamily('regular')(props)\n\n const flatpickrOptions = {}\n const initializeFlatPickr = useDatePickr(wrapperElement, {\n value,\n onChange,\n fontFamily,\n locale,\n flatpickrOptions,\n shouldAppend: true\n })\n\n useEffect(() => {\n if (wrapperElement.current) {\n initializeFlatPickr()\n }\n }, []) // only on mount\n\n return (\n <>\n <StyledWrapper data-wrap ref={wrapperElement}>\n <div data-toggle>\n <input\n style={{display: 'none'}}\n type=\"text\"\n data-input\n aria-label={msg('client.component.datePicker.label')}\n />\n {children}\n </div>\n </StyledWrapper>\n </>\n )\n}\n\nDatePicker.propTypes = {\n /**\n * Any content to wrap a onclick around to open a calendar\n */\n children: PropTypes.node.isRequired,\n /**\n * Function triggered on every date selection. First parameter is the picked date as iso string.\n */\n onChange: PropTypes.func.isRequired,\n /**\n * To set the selected date from outside the component.\n */\n value: PropTypes.any,\n intl: PropTypes.object.isRequired\n}\n\nexport default withTheme(injectIntl(DatePicker))\n","import '!style-loader!css-loader!flatpickr/dist/themes/light.css'\nimport flatpickr from 'flatpickr'\nimport {German} from 'flatpickr/dist/l10n/de.js'\nimport {French} from 'flatpickr/dist/l10n/fr.js'\nimport {Italian} from 'flatpickr/dist/l10n/it.js'\nimport {useEffect, useRef} from 'react'\nimport {react, js} from 'tocco-util'\n\nconst localeMap = {\n 'de-CH': German,\n de: German,\n fr: French,\n it: Italian\n}\n\nconst handleOnChange = onChange => selectedDates => {\n if (selectedDates && selectedDates.length > 0) {\n onChange(selectedDates[0].toISOString())\n } else {\n onChange(null)\n }\n}\n\nconst initializeFlatPickr = (element, {shouldAppend, onChange, value, fontFamily, locale, flatpickrOptions}) => {\n const calendarLocale = localeMap[locale]\n\n const options = {\n wrap: true,\n onChange: handleOnChange(onChange),\n altInput: false,\n enableTime: false,\n defaultDate: value,\n\n ...(shouldAppend ? {appendTo: element.current} : {}),\n ...(calendarLocale ? {locale: calendarLocale} : {}),\n ...flatpickrOptions\n }\n\n const flatpickrInstance = flatpickr(element.current, options)\n\n if (fontFamily) {\n flatpickrInstance.calendarContainer.style.fontFamily = fontFamily\n }\n\n return flatpickrInstance\n}\n\nexport const useDatePickr = (element, config) => {\n const {value, locale, flatpickrOptions} = config\n const flatpickr = useRef(null)\n\n const prevFlatpickrOptions = react.usePrevious(flatpickrOptions)\n\n const init = () => {\n flatpickr.current = initializeFlatPickr(element, config)\n return flatpickr.current\n }\n\n useEffect(() => {\n return () => {\n if (flatpickr.current) {\n flatpickr.current.destroy()\n }\n }\n }, []) // only on unmount\n\n useEffect(() => {\n if (flatpickr.current) {\n flatpickr.current.setDate(value, false)\n flatpickr.current.redraw()\n }\n }, [JSON.stringify(value)]) // only trigger useEffect when value array changed (deep comparison workaround)\n\n useEffect(() => {\n const calendarLocale = localeMap[locale] || flatpickr.current?.l10ns?.en // fallback to english\n if (flatpickr.current && calendarLocale) {\n flatpickr.current.localize(calendarLocale)\n flatpickr.current.set('locale', calendarLocale)\n flatpickr.current.redraw()\n }\n }, [locale])\n\n useEffect(() => {\n if (flatpickr.current) {\n const optionsDiff = js.difference(flatpickrOptions, prevFlatpickrOptions)\n if (Object.keys(optionsDiff).length > 0) {\n Object.entries(optionsDiff).forEach(([key, value]) => {\n flatpickr.current.set(key, value)\n })\n flatpickr.current.redraw()\n }\n }\n }, [flatpickrOptions])\n\n return init\n}\n","import styled from 'styled-components'\n\nimport {StyledEditableWrapperCss, StyledInputCss} from '../StyledEditableValue'\n\nexport const StyledDatePickerInput = styled.input`\n &&& {\n ${StyledInputCss}\n margin: 0;\n }\n`\n\nexport const StyledDatePickerValue = styled.div`\n && {\n ${StyledInputCss}\n display: flex;\n align-items: center;\n }\n`\n\nexport const StyledDatePickerOuterWrapper = styled.div`\n outline: ${({immutable}) => (immutable ? 0 : 'initial')};\n`\n\nexport const StyledDatePickerWrapper = styled.div`\n && {\n ${StyledEditableWrapperCss}\n\n input {\n display: ${({immutable}) => (immutable ? 'none' : 'block')};\n\n &:last-of-type {\n display: ${({immutable}) => (immutable ? 'block' : 'none')};\n }\n }\n }\n`\n","import PropTypes from 'prop-types'\nimport React, {useRef, useState} from 'react'\nimport {injectIntl} from 'react-intl'\nimport {withTheme} from 'styled-components'\n\nimport Ball from '../../Ball'\nimport {useDatePickr} from '../../DatePicker/useDatePickr'\nimport {theme} from '../../utilStyles'\nimport {\n StyledDatePickerInput,\n StyledDatePickerWrapper,\n StyledDatePickerOuterWrapper,\n StyledDatePickerValue\n} from './StyledDatePicker'\n\nconst focusFlatpickrInput = wrapper => {\n // flatpickr add two input in the DOM. One for the actual value (hidden) and one for the altInput\n const inputElement = wrapper.querySelector('input.flatpickr-input:not([type=\"hidden\"])')\n if (inputElement) {\n inputElement.focus()\n }\n}\n\nconst DatePicker = props => {\n const {immutable, id, options, value, onChange, parseDate, formatDate, intl} = props\n const [initialized, setInitialized] = useState(false)\n const flatpickr = useRef(null)\n const wrapper = useRef(null)\n const locale = intl.locale\n const msg = id => intl.formatMessage({id})\n\n const fontFamily = theme.fontFamily('regular')(props)\n\n const handleOnChange = val => {\n if (val) {\n onChange([val])\n }\n }\n\n const flatpickrOptions = {\n altInput: true,\n altInputClass: '',\n clickOpens: !immutable,\n ...(options ? options.flatpickrOptions : {})\n }\n const initializeFlatPickr = useDatePickr(wrapper, {\n value,\n onChange: handleOnChange,\n fontFamily,\n locale,\n flatpickrOptions\n })\n\n const init = () => {\n flatpickr.current = initializeFlatPickr()\n\n flatpickr.current.calendarContainer.classList.add('tocco-ui-theme')\n flatpickr.current.calendarContainer.addEventListener('keydown', handleConfirmKey)\n setInitialized(true)\n }\n\n const altInput = flatpickr.current?.altInput?.value || ''\n\n const handleOnBlur = () => {\n const parsed = parseDate(flatpickr.current.altInput.value)\n flatpickr.current.setDate(parsed, true)\n }\n\n const focusInput = () => {\n if (!initialized) {\n init()\n\n /**\n * Workaround:\n * To be sure that the initialized state has been updated\n * before we change the focus we delay this to the next tick.\n */\n setTimeout(() => {\n focusFlatpickrInput(wrapper.current)\n })\n } else {\n focusFlatpickrInput(wrapper.current)\n }\n }\n\n const handleConfirmKey = e => {\n if ((!e.target.classList.contains('flatpickr-hour') && e.key === 'Tab' && !e.shiftKey) || e.key === 'Enter') {\n handleOnBlur()\n setTimeout(() => {\n flatpickr.current.close()\n })\n }\n if (e.key === 'Enter') {\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n const hasValue = value && value.length > 0 && value.every(v => v)\n\n return (\n <>\n <StyledDatePickerOuterWrapper\n immutable={immutable}\n id={id}\n tabIndex=\"-1\"\n onFocus={() => {\n focusInput()\n\n if (flatpickr.current) {\n flatpickr.current.open()\n }\n }}\n onKeyDown={handleConfirmKey}\n >\n <StyledDatePickerWrapper data-wrap onBlur={handleOnBlur} immutable={immutable} ref={wrapper}>\n <StyledDatePickerInput\n {...(immutable ? {disabled: 'disabled'} : {})}\n type=\"hidden\"\n data-input\n immutable={immutable}\n {...(options ? {placeholder: options.placeholderText} : {})}\n />\n {!initialized && (\n <StyledDatePickerValue tabIndex={0}>{hasValue ? formatDate(value[0]) : ''}</StyledDatePickerValue>\n )}\n <StyledDatePickerInput disabled immutable={immutable} value={altInput} />\n {!immutable && hasValue && (\n <Ball\n icon=\"times\"\n tabIndex={-1}\n aria-label={msg('client.component.dateAbstract.clearDateLabel')}\n onMouseDown={e => {\n e.preventDefault()\n onChange(null)\n }}\n />\n )}\n </StyledDatePickerWrapper>\n </StyledDatePickerOuterWrapper>\n </>\n )\n}\n\nDatePicker.propTypes = {\n id: PropTypes.string,\n intl: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.arrayOf(PropTypes.string),\n options: PropTypes.shape({\n placeholderText: PropTypes.string,\n flatpickrOptions: PropTypes.object\n }),\n parseDate: PropTypes.func,\n formatDate: PropTypes.func,\n immutable: PropTypes.bool,\n initialized: PropTypes.func,\n events: PropTypes.shape({\n onFocus: PropTypes.func\n })\n}\n\nexport default withTheme(injectIntl(DatePicker))\n","import {faCircleNotch} from '@fortawesome/pro-solid-svg-icons'\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome'\nimport PropTypes from 'prop-types'\nimport React from 'react'\n\n/**\n * Spinner that indicates a loading process\n */\nconst LoadingSpinner = ({size, style}) => (\n <FontAwesomeIcon {...style} style={{fontSize: size}} spin icon={faCircleNotch} />\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\nexport default LoadingSpinner\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./packages/admin/src/routes/docs/components/DocsBrowserApp/DocsBrowserApp.js","webpack:///./packages/admin/src/routes/docs/components/DocsBrowserApp/DocsBrowserAppContainer.js","webpack:///./packages/admin/src/routes/docs/route.js","webpack:///./packages/app-extensions/src/selection/selectionTypes.js","webpack:///./packages/app-extensions/src/selection/proptype.js","webpack:///./packages/app-extensions/src/selection/selection.js","webpack:///./packages/app-extensions/src/selection/index.js","webpack:///./packages/delete/src/modules/delete/actions.js","webpack:///./packages/delete/src/components/InfoPart/LinkPopOver.js","webpack:///./packages/delete/src/components/InfoPart/InfoPart.js","webpack:///./packages/delete/src/components/DeleteProgress/StyledComponents.js","webpack:///./packages/delete/src/components/DeleteProgress/DeleteProgress.js","webpack:///./packages/delete/src/components/DeleteProgress/DeleteProgressContainer.js","webpack:///./packages/delete/src/components/DeleteProgress/index.js","webpack:///./packages/tocco-ui/src/SignalBox/StyledSignalBox.js","webpack:///./packages/tocco-ui/src/SignalBox/SignalBox.js","webpack:///./packages/delete/src/components/Dialog/StyledComponents.js","webpack:///./packages/delete/src/components/Dialog/Dialog.js","webpack:///./packages/delete/src/components/Dialog/DialogContainer.js","webpack:///./packages/delete/src/components/Delete/Delete.js","webpack:///./packages/delete/src/components/Delete/DeleteContainer.js","webpack:///./packages/delete/src/components/Delete/index.js","webpack:///./packages/delete/src/modules/delete/reducer.js","webpack:///./packages/delete/src/utils/deleteRequestParser.js","webpack:///./packages/delete/src/modules/delete/sagas.js","webpack:///./packages/delete/src/modules/reducers.js","webpack:///./packages/delete/src/main.js","webpack:///./packages/docs-browser/src/components/Action/actions/CreateDomain.js","webpack:///./packages/docs-browser/src/components/Action/actions/CreateFolder.js","webpack:///./packages/docs-browser/src/components/Action/actions/Delete.js","webpack:///./packages/docs-browser/src/components/Action/actions/Edit.js","webpack:///./packages/docs-browser/src/components/Action/actions/Move.js","webpack:///./packages/docs-browser/src/components/Action/actions/MoveContainer.js","webpack:///./packages/docs-browser/src/utils/getDetailFormName.js","webpack:///./packages/tocco-ui/src/DatePicker/StyledDatePicker.js","webpack:///./packages/tocco-ui/src/DatePicker/DatePicker.js","webpack:///./packages/tocco-ui/src/DatePicker/useDatePickr.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StyledDatePicker.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/DatePicker.js","webpack:///./packages/tocco-ui/src/LoadingSpinner/LoadingSpinner.js"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_defineProperty","value","_objectSpread","arguments","source","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","err","_iterableToArrayLimit","TypeError","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","iter","toString","call","from","_iterableToArray","_nonIterableSpread","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","window","document","MutationObserver","performance","e","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","createElement","IS_IE","indexOf","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","PREFIX_TO_STYLE","STYLE_TO_PREFIX","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","RESERVED_CLASSES","map","n","initial","FontAwesomeConfig","querySelector","_ref","_ref2","attr","val","coerce","element","getAttribute","getAttrConfig","_config","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","config","w","styles","hooks","shims","namespace","functions","loaded","domready","fn","setTimeout","doScroll","test","readyState","listener","removeEventListener","asyncTimer","NOOP","isNode","g","process","emit","asyncSetTimer","setImmediate","asyncQueue","asyncFlush","asyncCall","callback","arg","invokeCallback","subscriber","owner","settled","_state","_data","promise","then","reject","handleThenable","resolve","resolved","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","P","resolver","this","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","catch","all","promises","results","remaining","index","race","picked","Promise","d","meaninglessTransform","size","x","y","rotate","flipX","flipY","insertCss","css","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","nextUniqueId","id","Math","random","toArray","array","classArray","node","classList","split","getIconName","cls","name","parts","prefix","iconName","slice","join","htmlEscape","str","replace","joinStyles","reduce","acc","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","width","height","fillBlack","abstract","force","attributes","fill","makeInlineSvgAbstract","params","_params$icons","icons","main","mask","symbol","title","maskId","titleId","extra","_params$watchable","watchable","found","isUploadedIcon","widthClass","ceil","attrClass","c","classes","content","children","role","uploadedIconWidthStyle","tag","args","explicitMaskId","mainWidth","mainPath","icon","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","offset","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","class","makeLayersCounterAbstract","noop$1","p","preamble","end","perf","subject","initialValue","thisContext","result","func","a","b","bindInternal4","toHex","unicode","charCodeAt","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","_byUnicode","_byLigature","_byOldName","build","lookup","reducer","o","ligatures","ligature","hasRegular","shim","oldName","byUnicode","styles$1","getCanonicalIcon","values","autoFetchSvg","rest","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","attributeName","trim","joinAttributes","noop$2","isWatched","mutators","mutation","newOuterHTML","parentNode","outerHTML","toLowerCase","newNode","replaceChild","nest","forSvg","RegExp","splitClasses","match","toSvg","toNode","newInnerHTML","performOperationSync","op","perform","mutations","callbackFunction","frame","requestAnimationFrame","mutator","disabled","enableObservation","mo","observe","options","treeCallback","nodeCallback","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","mutationRecord","type","addedNodes","_getCanonicalIcon","childList","characterData","subtree","classParser","existingPrefix","existingIconName","innerText","parseTransformString","transformString","first","parseFloat","isNaN","parseMeta","_classParser","extraClasses","extraStyles","prop","styleParser","transformParser","symbolParser","extraAttributes","attributesParser","maskParser","MissingIcon","error","message","stack","Error","create","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","missing","cx","cy","r","opacity","styles$2","asFoundIcon","vectorData","findIcon","styles$3","generateMutation","nodeMeta","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","generateLayersText","generateSvgReplacementMutation","onTree","root","htmlClassList","hclAdd","suffix","add","hclRemove","remove","prefixes","prefixesDomQuery","candidates","querySelectorAll","console","resolvedMutations","onNode","replaceForPosition","position","pendingAttribute","alreadyProcessedPseudoElement","fontFamily","getPropertyValue","fontWeight","removeChild","_content","hexValue","substr","iconIdentifier","meta","firstChild","appendChild","removeAttribute","processable","operations","drc","fp","rc","s","dPatt","customPropPatt","rPatt","ensureCss","_cssInserted","apiObject","abstractCreator","get","container","html","findIconDefinition","iconLookup","_iconLookup$prefix","library","definitions","Library","instance","Constructor","_classCallCheck","protoProps","staticProps","_this","_len","_key","additions","_pullDefinitions","definition","0","_normalized$key","noAuto","disconnect","dom","i2svg","_params$node","_params$callback","watch","autoReplaceSvgRoot","autoReplace","parse","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","maybeIconDefinition","text","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","counter","_params$title3","_params$classes3","_params$attributes3","_params$styles3","layer","assembler","_params$classes4","api","_params$autoReplaceSv","ListLink","entityName","entityKeys","rootNodes","StyledLink","to","JSON","stringify","queryParams","queryString","history","location","search","navigationStrategy","DetailLink","searchFormCollapsed","onSearchFormCollapsedChange","collapsed","saveUserPreferences","scrollBehaviour","mapActionCreators","connect","state","_get","preferences","userPreferences","injectIntl","DocsBrowserApp","ID","QUERY","PropTypes","ids","propName","componentName","selection","selectionTypes","query","isRequired","count","getEntities","fetchEntities","limit","entities","consoleLogger","propType","setDeleteDialogInfo","dialogInfo","payload","doDelete","setEntitiesToDelete","entitiesToDelete","Typography","relatedEntity","maxCountLink","keysOtherBu","Popover","placement","NonBreakingText","styled","rootEntities","relatedEntities","entries","rootEntityName","rootEntity","entityLabel","prev","curr","linkText","Count","Content","StyledIconWrapper","scale","rootEntitiesDeletable","relatedDeletable","del","input","DeleteProgress","ALLOWED_CONDITIONS","design","COLORS","theme","shadeColor","StyledSignalBox","condition","getColor","StyledSignalListItem","propTypes","SignalBox","React","defaultProps","StyledSectionWrapper","StyledButtonsWrapper","StyledButton","rootEntitiesNotDeletable","relatedNotDeletable","hasUnreadableEntities","onCancel","Button","onClick","every","entity","ink","Dialog","loadDialogInfo","deletingInProgress","intl","useEffect","LoadMask","required","loadingText","formatMessage","Delete","ACTION_HANDLERS","reducerUtil","initialState","deleteStatus","transformRootEntity","applyKeys","includes","entityNameReal","keyReal","isEntityDeletable","entityToDelete","affectedEntities","find","affectedEntity","getDialogInfo","response","currentBuId","deletable","relatedAttr","businessUnitId","Set","transformRelatedEntities","unreadableEntities","getEntitiesToDelete","deleteEntityPropType","getDeleteBodyFromSelection","getDeleteEndpoint","mainSagas","inputSelector","textResourceSelector","messages","entitiesToDeleteSelector","select","selectionUtil","entityModel","customDeleteEndpoint","body","deleteEndpoint","method","deleteResponse","principal","currentBusinessUnit","put","actions","acceptedStatusCodes","textResources","ok","deletedEntities","remoteEvents","externalEvents","status","information","takeLatest","action","handler","sagas","deleteSagas","EXTERNAL_EVENTS","initApp","events","publicPath","store","appFactory","reducers","actionEmitter","emitAction","handleNotifications","notification","textResourceModules","DeleteApp","packageName","component","context","onSuccess","parent","getNode","pathname","defaultValues","model","formName","getDetailFormName","mode","onEntityCreated","toaster","isActionBlocked","entityKey","entityId","onEntityUpdated","onEntityDeleted","StyledLoadMask","initialize","moveElements","MoveContainer","isWaiting","docs","move","domainTypes","businessUnit","onError","initialNode","initialParent","useState","setParent","getCustomLocation","memoryHistory","initialLocation","getInitialLocation","listLimit","selectionStyle","searchFormType","disableViewPersistor","getListFormName","onListParentChange","embedded","noLeftPadding","sortable","look","_isEqual","detailFormNames","StyledWrapper","DatePicker","onChange","wrapperElement","useRef","locale","initializeFlatPickr","useDatePickr","flatpickrOptions","shouldAppend","current","data-wrap","ref","data-toggle","display","data-input","aria-label","withTheme","localeMap","German","de","fr","French","it","Italian","handleOnChange","selectedDates","toISOString","flatpickr","prevFlatpickrOptions","react","destroy","setDate","redraw","calendarLocale","l10ns","en","localize","set","optionsDiff","js","wrap","altInput","enableTime","defaultDate","appendTo","flatpickrInstance","calendarContainer","StyledDatePickerInput","StyledInputCss","StyledDatePickerValue","StyledDatePickerOuterWrapper","immutable","StyledDatePickerWrapper","StyledEditableWrapperCss","focusFlatpickrInput","wrapper","inputElement","focus","parseDate","formatDate","initialized","setInitialized","altInputClass","clickOpens","handleOnBlur","parsed","focusInput","handleConfirmKey","contains","shiftKey","close","preventDefault","stopPropagation","hasValue","v","tabIndex","onFocus","open","onKeyDown","onBlur","placeholder","placeholderText","Ball","msg","onMouseDown","spin","faCircleNotch"],"mappings":"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","file":"chunk-docs-actions.cb048459addfc8261dc1.js","sourcesContent":["/*!\n * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\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 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 _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_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 _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\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;\n\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 NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_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 PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'far': 'regular',\n 'fal': 'light',\n 'fad': 'duotone',\n 'fab': 'brands',\n 'fak': 'kit',\n 'fa': 'solid'\n};\nvar STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n};\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font Awesome ([5 ]*)(Solid|Regular|Light|Duotone|Brands|Free|Pro|Kit).*/i; // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal'\n};\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: 'group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', 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 // For example <script data-search-pseudo-elements src=\"...\"></script>\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-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 familyPrefix: DEFAULT_FAMILY_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};\n\nvar _config = _objectSpread({}, _default, initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\n\nvar config = _objectSpread({}, _config);\n\nWINDOW.FontAwesomeConfig = config;\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\nvar PENDING = 'pending';\nvar SETTLED = 'settled';\nvar FULFILLED = 'fulfilled';\nvar REJECTED = 'rejected';\n\nvar NOOP = function NOOP() {};\n\nvar isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\nvar asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\nvar asyncQueue = [];\nvar asyncTimer;\n\nfunction asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n}\n\nfunction asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n}\n\nfunction invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n}\n\nfunction invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n}\n\nfunction handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n}\n\nfunction resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n}\n\nfunction fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n}\n\nfunction publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n}\n\nfunction publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n}\n\nfunction publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n}\n\nfunction notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n}\n/**\n * @class\n */\n\n\nfunction P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n}\n\nP.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};\n\nP.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n};\n\nP.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n};\n\nP.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n};\n\nP.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n};\n\nvar picked = typeof Promise === 'function' ? Promise : P;\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};\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\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 getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\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], \";\");\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 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(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nfunction makeIconMasking (_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: _objectSpread({}, 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: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, 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: _objectSpread({}, 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: _objectSpread({\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\nfunction makeIconStandard (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\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(_objectSpread({}, 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.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, 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 widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].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: _objectSpread({}, 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) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\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 = _objectSpread({}, 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 = _objectSpread({}, 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 = _objectSpread({}, 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 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 \\\"5.15.4\\\"\";\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\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\nfunction toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\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 = 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 if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, 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 easy 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 styles = namespace.styles,\n shims = namespace.shims;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\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 return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = 'far' in styles;\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n};\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\n\nvar styles$1 = namespace.styles;\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\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\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\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 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\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"<!-- \".concat(node.outerHTML, \" Font Awesome fontawesome.com -->\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = 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.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[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 abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\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 treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\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 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') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\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 (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\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\n if (!transformString) {\n return transform;\n } else {\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 }\n};\nfunction transformParser (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n}\n\nfunction symbolParser (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\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 maskParser (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\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: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n}\n\nfunction MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n}\nMissingIcon.prototype = Object.create(Error.prototype);\nMissingIcon.prototype.constructor = MissingIcon;\n\nvar FILL = {\n fill: 'currentColor'\n};\nvar ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n};\nvar RING = {\n tag: 'path',\n attributes: _objectSpread({}, 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\nvar OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n});\n\nvar DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n};\nvar QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, 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: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n};\nvar EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, 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: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n};\nvar missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n};\n\nvar styles$2 = 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.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").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}\nfunction findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n}\n\nvar styles$3 = namespace.styles;\n\nfunction generateSvgReplacementMutation(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 picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).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 mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n}\n\nfunction generateLayersText(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 picked.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\nfunction generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\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 ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\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;\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;\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 instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.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 () {\n mark();\n reject();\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 replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(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 prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // 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 if (iconName && (!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(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\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 picked.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 picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar baseStyles = \"svg:not(:root).svg-inline--fa {\\n overflow: visible;\\n}\\n\\n.svg-inline--fa {\\n display: inline-block;\\n font-size: inherit;\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.225em;\\n}\\n.svg-inline--fa.fa-w-1 {\\n width: 0.0625em;\\n}\\n.svg-inline--fa.fa-w-2 {\\n width: 0.125em;\\n}\\n.svg-inline--fa.fa-w-3 {\\n width: 0.1875em;\\n}\\n.svg-inline--fa.fa-w-4 {\\n width: 0.25em;\\n}\\n.svg-inline--fa.fa-w-5 {\\n width: 0.3125em;\\n}\\n.svg-inline--fa.fa-w-6 {\\n width: 0.375em;\\n}\\n.svg-inline--fa.fa-w-7 {\\n width: 0.4375em;\\n}\\n.svg-inline--fa.fa-w-8 {\\n width: 0.5em;\\n}\\n.svg-inline--fa.fa-w-9 {\\n width: 0.5625em;\\n}\\n.svg-inline--fa.fa-w-10 {\\n width: 0.625em;\\n}\\n.svg-inline--fa.fa-w-11 {\\n width: 0.6875em;\\n}\\n.svg-inline--fa.fa-w-12 {\\n width: 0.75em;\\n}\\n.svg-inline--fa.fa-w-13 {\\n width: 0.8125em;\\n}\\n.svg-inline--fa.fa-w-14 {\\n width: 0.875em;\\n}\\n.svg-inline--fa.fa-w-15 {\\n width: 0.9375em;\\n}\\n.svg-inline--fa.fa-w-16 {\\n width: 1em;\\n}\\n.svg-inline--fa.fa-w-17 {\\n width: 1.0625em;\\n}\\n.svg-inline--fa.fa-w-18 {\\n width: 1.125em;\\n}\\n.svg-inline--fa.fa-w-19 {\\n width: 1.1875em;\\n}\\n.svg-inline--fa.fa-w-20 {\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: 0.3em;\\n width: auto;\\n}\\n.svg-inline--fa.fa-border {\\n height: 1.5em;\\n}\\n.svg-inline--fa.fa-li {\\n width: 2em;\\n}\\n.svg-inline--fa.fa-fw {\\n 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 {\\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-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: 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: #ff253a;\\n border-radius: 1em;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #fff;\\n height: 1.5em;\\n line-height: 1;\\n max-width: 5em;\\n min-width: 1.5em;\\n overflow: hidden;\\n padding: 0.25em;\\n right: 0;\\n text-overflow: ellipsis;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: 0;\\n right: 0;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: 0;\\n left: 0;\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n right: 0;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: 0;\\n right: auto;\\n top: 0;\\n -webkit-transform: scale(0.25);\\n transform: scale(0.25);\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-lg {\\n font-size: 1.3333333333em;\\n line-height: 0.75em;\\n vertical-align: -0.0667em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\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-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: 2.5em;\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: -2em;\\n position: absolute;\\n text-align: center;\\n width: 2em;\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border: solid 0.08em #eee;\\n border-radius: 0.1em;\\n padding: 0.2em 0.25em 0.15em;\\n}\\n\\n.fa-pull-left {\\n float: left;\\n}\\n\\n.fa-pull-right {\\n float: right;\\n}\\n\\n.fa.fa-pull-left,\\n.fas.fa-pull-left,\\n.far.fa-pull-left,\\n.fal.fa-pull-left,\\n.fab.fa-pull-left {\\n margin-right: 0.3em;\\n}\\n.fa.fa-pull-right,\\n.fas.fa-pull-right,\\n.far.fa-pull-right,\\n.fal.fa-pull-right,\\n.fab.fa-pull-right {\\n margin-left: 0.3em;\\n}\\n\\n.fa-spin {\\n -webkit-animation: fa-spin 2s infinite linear;\\n animation: fa-spin 2s infinite linear;\\n}\\n\\n.fa-pulse {\\n -webkit-animation: fa-spin 1s infinite steps(8);\\n animation: fa-spin 1s infinite steps(8);\\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\\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 -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\\\";\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\\\";\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\\\";\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\\\";\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\\n -ms-filter: \\\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\\\";\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n:root .fa-rotate-90,\\n:root .fa-rotate-180,\\n:root .fa-rotate-270,\\n:root .fa-flip-horizontal,\\n:root .fa-flip-vertical,\\n:root .fa-flip-both {\\n -webkit-filter: none;\\n filter: none;\\n}\\n\\n.fa-stack {\\n display: inline-block;\\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}\\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: #fff;\\n}\\n\\n.sr-only {\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n height: 1px;\\n margin: -1px;\\n overflow: hidden;\\n padding: 0;\\n position: absolute;\\n width: 1px;\\n}\\n\\n.sr-only-focusable:active, .sr-only-focusable:focus {\\n clip: auto;\\n height: auto;\\n margin: 0;\\n overflow: visible;\\n position: static;\\n width: auto;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: 1;\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: 0.4;\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: 1;\\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 color: #fff;\\n}\";\n\nfunction css () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), '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 Library =\n/*#__PURE__*/\nfunction () {\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] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, 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 if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n}\n\nfunction apiObject(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 findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\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, _objectSpread({}, params, {\n mask: mask\n }));\n };\n}\n\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n};\nvar _cssInserted = false;\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\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\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\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 observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n};\nvar parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n};\nvar icon = resolveIcons(function (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 apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\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: _objectSpread({}, 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 text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n};\nvar layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\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.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\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\nexport { icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition };\n","import PropTypes from 'prop-types'\nimport queryString from 'query-string'\nimport React from 'react'\nimport DocsBrowser from 'tocco-docs-browser/src/main'\nimport {AdminLink as StyledLink} from 'tocco-ui'\n\nimport {DetailLink} from '../../../entities/utils/navigationStrategy'\n\nexport const ListLink = ({entityName, entityKeys, children}) => {\n const rootNodes = entityKeys.map(key => ({entityName, key}))\n return (\n <StyledLink to={`/docs?rootNodes=${JSON.stringify(rootNodes)}`} target=\"_blank\">\n {children}\n </StyledLink>\n )\n}\n\nListLink.propTypes = {\n entityName: PropTypes.string.isRequired,\n children: PropTypes.any.isRequired,\n entityKeys: PropTypes.arrayOf(PropTypes.string)\n}\n\nconst DocsBrowserApp = props => {\n const queryParams = queryString.parse(props.history.location.search)\n\n return (\n <DocsBrowser\n {...props}\n navigationStrategy={{\n ListLink,\n DetailLink\n }}\n {...(queryParams.rootNodes && {rootNodes: JSON.parse(queryParams.rootNodes)})}\n searchFormCollapsed={props.searchFormCollapsed}\n onSearchFormCollapsedChange={({collapsed}) => {\n props.saveUserPreferences({'admin.list.searchFormCollapsed': collapsed})\n }}\n scrollBehaviour=\"inline\"\n />\n )\n}\n\nDocsBrowserApp.propTypes = {\n history: PropTypes.object.isRequired,\n searchFormCollapsed: PropTypes.bool,\n saveUserPreferences: PropTypes.func\n}\n\nexport default DocsBrowserApp\n","import _get from 'lodash/get'\nimport {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {saveUserPreferences} from '../../../../modules/preferences/actions'\nimport DocsBrowserApp from './DocsBrowserApp'\n\nconst mapActionCreators = {\n saveUserPreferences\n}\n\nconst mapStateToProps = (state, props) => ({\n searchFormCollapsed: _get(state.preferences.userPreferences, 'admin.list.searchFormCollapsed', null)\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(DocsBrowserApp))\n","import DocsBrowserApp from './components/DocsBrowserApp'\n\nexport default {\n container: DocsBrowserApp\n}\n","export default {\n ID: 'ID',\n QUERY: 'QUERY'\n}\n","import PropTypes from 'prop-types'\n\nimport selectionTypes from './selectionTypes'\n\nexport default PropTypes.shape({\n entityName: PropTypes.string.isRequired,\n ids: (props, propName, componentName) => {\n if (props.selection && props.selection.type === selectionTypes.ID && !props.selection[propName]) {\n return new Error(`Selection.ids prop not defined. Component: ${componentName}'.`)\n }\n },\n query: (props, propName, componentName) => {\n if (props.selection && props.selection.type === selectionTypes.QUERY && !props.selection[propName]) {\n return new Error(`Selection.query prop not defined. Component: ${componentName}'.`)\n }\n },\n type: PropTypes.oneOf(Object.keys(selectionTypes)).isRequired,\n count: PropTypes.number\n})\n","import {call} from 'redux-saga/effects'\nimport {consoleLogger} from 'tocco-util'\n\nimport selectionTypes from './selectionTypes'\n\nconst limit = 100000\n/**\n * Helper to get all entitiy keys of a selection.\n * @param {object} selection - selection object\n * @param {function} fetchEntities - rest helper function\n * @returns {object} Object containing entityName and an array of keys (limited if selection is query)\n */\nexport function* getEntities(selection, fetchEntities) {\n const {entityName} = selection\n if (selection.type === selectionTypes.QUERY) {\n const entities = yield call(fetchEntities, selection.entityName, {...selection.query, limit})\n\n if (entities.length > limit) {\n yield call(consoleLogger.logError, `Selected records exceed limit of ${limit}`)\n }\n\n return {\n entityName,\n keys: entities.map(e => e.key)\n }\n }\n\n return {\n entityName,\n keys: selection.ids\n }\n}\n","import propType from './proptype'\nimport {getEntities} from './selection'\nimport selectionTypes from './selectionTypes'\nexport default {\n getEntities,\n propType,\n selectionTypes\n}\n","export const LOAD_DIALOG_INFO = 'root/LOAD_DIALOG_INFO'\nexport const SET_DIALOG_INFO = 'delete/SET_DELETE_DIALOG_INFO'\nexport const DO_DELETE = 'delete/DO_DELETE'\nexport const SET_DELETING_IN_PROGRESS = 'delete/SET_DELETING_IN_PROGRESS'\nexport const ON_CANCEL = 'delete/ON_CANCEL'\nexport const SET_ENTITIES_TO_DELETE = 'delete/SET_ENTITIES_TO_DELETE'\n\nexport const loadDialogInfo = () => ({\n type: LOAD_DIALOG_INFO\n})\n\nexport const setDeleteDialogInfo = dialogInfo => ({\n type: SET_DIALOG_INFO,\n payload: {\n dialogInfo\n }\n})\n\nexport const doDelete = () => ({\n type: DO_DELETE\n})\n\nexport const setDeletingInProgress = deletingInProgress => ({\n type: SET_DELETING_IN_PROGRESS,\n payload: {\n deletingInProgress\n }\n})\n\nexport const onCancel = () => ({\n type: ON_CANCEL\n})\n\nexport const setEntitiesToDelete = entitiesToDelete => ({\n type: SET_ENTITIES_TO_DELETE,\n payload: {\n entitiesToDelete\n }\n})\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport {Popover, Typography} from 'tocco-ui'\n\nimport {deleteEntityPropType} from '../../utils/deleteRequestParser'\n\nconst LinkPopOver = ({relatedEntity, children, maxCountLink}) => {\n if (relatedEntity.keys.length < maxCountLink && relatedEntity.keysOtherBu.length === 0) {\n return children\n }\n\n const content = (\n <>\n {relatedEntity.keys.length > maxCountLink && (\n <Typography.P>\n <FormattedMessage id=\"client.delete.tooManyRecords\" />\n </Typography.P>\n )}\n {relatedEntity.keysOtherBu.length > 0 && (\n <Typography.P>\n <FormattedMessage id=\"client.delete.recordInOtherBU\" values={{count: relatedEntity.keysOtherBu.length}} />\n </Typography.P>\n )}\n </>\n )\n\n return (\n <Popover content={content} placement=\"top\">\n {children}\n </Popover>\n )\n}\n\nLinkPopOver.propTypes = {\n relatedEntity: deleteEntityPropType.isRequired,\n maxCountLink: PropTypes.number.isRequired,\n children: PropTypes.element\n}\n\nexport default LinkPopOver\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport styled from 'styled-components'\nimport {Typography} from 'tocco-ui'\nimport {navigationStrategy} from 'tocco-util'\n\nimport {deleteEntityPropType} from '../../utils/deleteRequestParser'\nimport LinkPopOver from './LinkPopOver'\n\nconst NonBreakingText = styled.span`\n white-space: nowrap;\n`\n\nconst InfoPart = ({rootEntities, relatedEntities, maxCountLink, navigationStrategy}) => (\n <Typography.Span>\n <Typography.B>\n {Object.entries(rootEntities)\n .map(([rootEntityName, rootEntity]) => (\n <span key={`root-entity-${rootEntityName}`}>\n {rootEntity.entityLabel} (\n {rootEntity.keys.length > 0 && navigationStrategy.ListLink ? (\n <navigationStrategy.ListLink entityName={rootEntityName} entityKeys={rootEntity.keys}>\n {rootEntity.keys.length}\n </navigationStrategy.ListLink>\n ) : (\n <Typography.Span>{rootEntity.keys.length}</Typography.Span>\n )}\n )\n </span>\n ))\n .reduce((prev, curr) => [prev, ', ', curr])}\n </Typography.B>\n {Object.keys(relatedEntities).length > 0 && (\n <>\n <span> / </span>\n {Object.keys(relatedEntities)\n .map(entityName => {\n const relatedEntity = relatedEntities[entityName]\n const linkText = [...relatedEntity.keys, ...relatedEntity.keysOtherBu].length\n\n const Count =\n relatedEntity.keys.length > 0 && navigationStrategy.ListLink ? (\n <navigationStrategy.ListLink\n entityName={entityName}\n entityKeys={relatedEntity.keys.slice(0, maxCountLink)}\n >\n {linkText}\n </navigationStrategy.ListLink>\n ) : (\n <Typography.Span>{linkText}</Typography.Span>\n )\n\n const Content = (\n <LinkPopOver relatedEntity={relatedEntity} maxCountLink={maxCountLink}>\n {Count}\n </LinkPopOver>\n )\n\n return (\n <React.Fragment key={'entity-info-' + entityName}>\n <NonBreakingText>\n {relatedEntity.entityLabel} ({Content})\n </NonBreakingText>\n </React.Fragment>\n )\n })\n .reduce((prev, curr) => [prev, ', ', curr])}\n </>\n )}\n </Typography.Span>\n)\n\nInfoPart.propTypes = {\n rootEntities: PropTypes.objectOf(\n PropTypes.shape({\n entityLabel: PropTypes.string.isRequired,\n keys: PropTypes.arrayOf(PropTypes.string).isRequired\n })\n ).isRequired,\n relatedEntities: PropTypes.objectOf(deleteEntityPropType).isRequired,\n maxCountLink: PropTypes.number,\n navigationStrategy: navigationStrategy.propTypes\n}\n\nexport default InfoPart\n","import styled from 'styled-components'\nimport {scale} from 'tocco-ui'\n\nexport const StyledIconWrapper = styled.div`\n margin-bottom: ${scale.space(0.2)};\n`\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport {LoadingSpinner, Typography} from 'tocco-ui'\nimport {navigationStrategy} from 'tocco-util'\n\nimport {deleteInfoPropType} from '../../utils/deleteRequestParser'\nimport InfoPart from '../InfoPart'\nimport {StyledIconWrapper} from './StyledComponents'\n\nconst DeleteProgress = ({dialogInfo, navigationStrategy}) => {\n return (\n <>\n <StyledIconWrapper>\n <LoadingSpinner size=\"30px\" />\n </StyledIconWrapper>\n <Typography.P>\n <FormattedMessage id=\"client.delete.deleteInProgress\" />\n </Typography.P>\n <InfoPart\n key=\"infopart-deletable\"\n rootEntities={dialogInfo.rootEntitiesDeletable}\n relatedEntities={dialogInfo.relatedDeletable}\n maxCountLink={100}\n navigationStrategy={navigationStrategy}\n />\n </>\n )\n}\n\nDeleteProgress.propTypes = {\n dialogInfo: deleteInfoPropType.isRequired,\n intl: PropTypes.object.isRequired,\n navigationStrategy: navigationStrategy.propTypes\n}\n\nexport default DeleteProgress\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {doDelete} from '../../modules/delete/actions'\nimport DeleteProgress from './DeleteProgress'\n\nconst mapActionCreators = {\n doDelete\n}\n\nconst mapStateToProps = (state, props) => ({\n dialogInfo: state.del.dialogInfo,\n navigationStrategy: state.input.navigationStrategy\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(DeleteProgress))\n","import DeleteProgress from './DeleteProgressContainer'\n\nexport default DeleteProgress\n","import _get from 'lodash/get'\nimport styled from 'styled-components'\n\nimport {StyledSignalListItem} from '../SignalList'\nimport {design, scale, shadeColor, theme} from '../utilStyles'\n\nconst ALLOWED_CONDITIONS = [\n design.condition.BASE,\n design.condition.DANGER,\n design.condition.SUCCESS,\n design.condition.WARNING\n]\n\nconst COLORS = {\n [design.condition.DANGER]: theme.color('signal.danger.paper'),\n [design.condition.SUCCESS]: theme.color('signal.success.paper'),\n [design.condition.WARNING]: theme.color('signal.warning.paper'),\n [design.condition.BASE]: props => shadeColor(_get(props.theme, 'colors.paper'), 1)\n}\n\nconst getColor = props => {\n const color = COLORS[props.condition]\n return color || shadeColor(_get(props.theme, 'colors.paper'), 1)\n}\n\nconst StyledSignalBox = styled.div`\n && {\n background-color: ${props => getColor(props)};\n padding: ${scale.space(-1)};\n margin-bottom: ${scale.space(-1)};\n border-radius: ${theme.radii('radii.regular')};\n\n &:last-child {\n margin-bottom: 0;\n }\n\n ${StyledSignalListItem} {\n color: inherit;\n }\n }\n`\n\nStyledSignalBox.propTypes = {\n condition: design.oneOfPropTypeAndCompletelyMapped(ALLOWED_CONDITIONS, COLORS)\n}\n\nexport {ALLOWED_CONDITIONS, StyledSignalBox as default}\n","import PropTypes from 'prop-types'\nimport React from 'react'\n\nimport Typography from '../Typography'\nimport {design} from '../utilStyles'\nimport StyledSignalBox, {ALLOWED_CONDITIONS} from './StyledSignalBox'\n\n/**\n * Emphasize important information by context. Group them by utilizing several instances of <SignalBox/>.\n */\nconst SignalBox = props => (\n <StyledSignalBox condition={props.condition}>\n {props.title && <Typography.H5>{props.title}</Typography.H5>}\n {React.Children.map(props.children, child => React.cloneElement(child))}\n {props.meta && <Typography.Small>{props.meta}</Typography.Small>}\n </StyledSignalBox>\n)\n\nSignalBox.defaultProps = {\n condition: design.condition.BASE\n}\n\nSignalBox.propTypes = {\n /**\n * Prefer <SignalList.List/> and <SignalList.Item/> to list items over any other typographic component.\n */\n children: PropTypes.node,\n /**\n * Background is colorized according condition. Default value is 'base'.\n * Possible values: base|danger|success|warning\n */\n condition: PropTypes.oneOf(ALLOWED_CONDITIONS),\n /**\n * Add loosely related but still important information as meta text (e.g. date, id, type).\n */\n meta: PropTypes.string,\n /**\n * Summarize information from whole signal box concise.\n */\n title: PropTypes.string\n}\n\nexport default SignalBox\n","import styled from 'styled-components'\nimport {StyledButton, scale} from 'tocco-ui'\n\nexport const StyledSectionWrapper = styled.div`\n padding-top: ${scale.space(0.6)};\n`\n\nexport const StyledButtonsWrapper = styled.div`\n display: flex;\n justify-content: flex-end;\n\n ${StyledButton} {\n margin-right: 0;\n }\n`\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport {Button, Typography, SignalBox} from 'tocco-ui'\nimport {navigationStrategy} from 'tocco-util'\n\nimport {deleteInfoPropType} from '../../utils/deleteRequestParser'\nimport InfoPart from '../InfoPart'\nimport {StyledSectionWrapper, StyledButtonsWrapper} from './StyledComponents'\n\nconst Dialog = ({\n dialogInfo: {\n rootEntitiesDeletable,\n rootEntitiesNotDeletable,\n relatedDeletable,\n relatedNotDeletable,\n hasUnreadableEntities\n },\n doDelete,\n onCancel,\n navigationStrategy\n}) => (\n <>\n <Typography.P>\n <FormattedMessage id=\"client.delete.confirmText\" />\n </Typography.P>\n <InfoPart\n key=\"infopart-deletable\"\n rootEntities={rootEntitiesDeletable}\n relatedEntities={relatedDeletable}\n maxCountLink={100}\n navigationStrategy={navigationStrategy}\n />\n {Object.keys(rootEntitiesNotDeletable).length > 0 && (\n <StyledSectionWrapper>\n <Typography.P>\n <FormattedMessage id=\"client.delete.textNotDeletable\" />\n </Typography.P>\n <InfoPart\n key=\"infopart-notdeletable\"\n rootEntities={rootEntitiesNotDeletable}\n relatedEntities={relatedNotDeletable}\n maxCountLink={100}\n navigationStrategy={navigationStrategy}\n />\n </StyledSectionWrapper>\n )}\n {hasUnreadableEntities && (\n <StyledSectionWrapper>\n <SignalBox condition=\"warning\">\n <Typography.Span>\n <FormattedMessage id=\"client.delete.unreadableEntities\" />\n </Typography.Span>\n </SignalBox>\n </StyledSectionWrapper>\n )}\n <StyledSectionWrapper>\n <StyledButtonsWrapper>\n <Button\n onClick={doDelete}\n disabled={Object.keys(rootEntitiesDeletable).every(entity => rootEntitiesDeletable[entity].keys.length === 0)}\n >\n <FormattedMessage id=\"client.delete.deleteButton\" />\n </Button>\n <Button ink=\"primary\" onClick={onCancel}>\n <FormattedMessage id=\"client.delete.cancelButton\" />\n </Button>\n </StyledButtonsWrapper>\n </StyledSectionWrapper>\n </>\n)\n\nDialog.propTypes = {\n onCancel: PropTypes.func.isRequired,\n doDelete: PropTypes.func.isRequired,\n dialogInfo: deleteInfoPropType.isRequired,\n navigationStrategy: navigationStrategy.propTypes\n}\n\nexport default Dialog\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {doDelete, onCancel} from '../../modules/delete/actions'\nimport Dialog from './Dialog'\n\nconst mapActionCreators = {\n doDelete,\n onCancel\n}\n\nconst mapStateToProps = (state, props) => ({\n dialogInfo: state.del.dialogInfo,\n navigationStrategy: state.input.navigationStrategy\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Dialog))\n","import PropTypes from 'prop-types'\nimport React, {useEffect} from 'react'\nimport {LoadMask} from 'tocco-ui'\n\nimport {deleteInfoPropType} from '../../utils/deleteRequestParser'\nimport DeleteProgress from '../DeleteProgress'\nimport Dialog from '../Dialog'\n\nconst Delete = ({loadDialogInfo, dialogInfo, deletingInProgress, intl}) => {\n useEffect(() => {\n loadDialogInfo()\n }, [])\n\n const msg = id => intl.formatMessage({id})\n\n if (deletingInProgress) {\n return <DeleteProgress />\n }\n\n return (\n <LoadMask required={[dialogInfo]} loadingText={msg('client.delete.loadingText')}>\n {dialogInfo && <Dialog />}\n </LoadMask>\n )\n}\n\nDelete.propTypes = {\n loadDialogInfo: PropTypes.func.isRequired,\n dialogInfo: deleteInfoPropType,\n deletingInProgress: PropTypes.bool,\n intl: PropTypes.object.isRequired\n}\n\nexport default Delete\n","import {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {loadDialogInfo} from '../../modules/delete/actions'\nimport Delete from './Delete'\n\nconst mapActionCreators = {\n loadDialogInfo\n}\n\nconst mapStateToProps = (state, props) => ({\n dialogInfo: state.del.dialogInfo,\n deletingInProgress: state.del.deletingInProgress\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Delete))\n","import Delete from './DeleteContainer'\n\nexport default Delete\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst ACTION_HANDLERS = {\n [actions.SET_DIALOG_INFO]: reducerUtil.singleTransferReducer('dialogInfo'),\n [actions.SET_ENTITIES_TO_DELETE]: reducerUtil.singleTransferReducer('entitiesToDelete'),\n [actions.SET_DELETING_IN_PROGRESS]: reducerUtil.singleTransferReducer('deletingInProgress')\n}\n\nconst initialState = {\n dialogInfo: null,\n entitiesToDelete: null,\n deletingInProgress: false\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import _get from 'lodash/get'\nimport PropTypes from 'prop-types'\n\nconst deleteStatus = {\n DELETABLE: 'DELETABLE',\n DENIED_BY_CASCADE: 'DENIED_BY_CASCADE',\n NO_DELETE_PERMISSION: 'NO_DELETE_PERMISSION'\n}\n\nconst transformRelatedEntities = (relatedEntities, entityToDelete, deletable, currentBuId) => ({\n ...entityToDelete.affectedEntities.reduce(\n (acc, affectedEntity) => ({\n ...acc,\n ...(deletable || affectedEntity.deleteStatus !== deleteStatus.DELETABLE\n ? {\n [affectedEntity.entityName]: {\n ..._get(acc, affectedEntity.entityName, {\n keys: [],\n keysOtherBu: [],\n entityLabel: affectedEntity.entityLabel\n }),\n ...(affectedEntity.businessUnitId === null || affectedEntity.businessUnitId === currentBuId\n ? {\n keys: Array.from(\n new Set([..._get(acc, [affectedEntity.entityName, 'keys'], []), affectedEntity.key])\n )\n }\n : {\n keysOtherBu: Array.from(\n new Set([..._get(acc, [affectedEntity.entityName, 'keysOtherBu'], []), affectedEntity.key])\n )\n })\n }\n }\n : {})\n }),\n {...relatedEntities}\n )\n})\n\nconst transformRootEntity = (rootEntities, entity, applyKeys = true) => {\n const {entityName, entityLabel, key} = entity.rootEntity\n if (key.includes('/')) {\n const [entityNameReal, keyReal] = key.split('/')\n return {\n ...rootEntities,\n [entityNameReal]: {\n entityLabel,\n keys: [..._get(rootEntities, [entityNameReal, 'keys'], []), ...(applyKeys ? [keyReal] : [])]\n }\n }\n } else {\n return {\n ...rootEntities,\n [entityName]: {\n entityLabel,\n keys: [..._get(rootEntities, [entityName, 'keys'], []), ...(applyKeys ? [key] : [])]\n }\n }\n }\n}\n\nconst isEntityDeletable = entityToDelete =>\n entityToDelete.rootEntity.deleteStatus === deleteStatus.DELETABLE &&\n !entityToDelete.affectedEntities.find(affectedEntity => affectedEntity.deleteStatus !== deleteStatus.DELETABLE)\n\nexport const getDialogInfo = (response, currentBuId) => {\n const {entitiesToDelete} = response\n\n return entitiesToDelete.reduce(\n (acc, entityToDelete) => {\n const deletable = isEntityDeletable(entityToDelete)\n const relatedAttr = deletable ? 'relatedDeletable' : 'relatedNotDeletable'\n return {\n ...acc,\n rootEntitiesDeletable: transformRootEntity(acc.rootEntitiesDeletable, entityToDelete, deletable),\n ...(!deletable && {\n rootEntitiesNotDeletable: transformRootEntity(acc.rootEntitiesNotDeletable, entityToDelete)\n }),\n [relatedAttr]: transformRelatedEntities(acc[relatedAttr], entityToDelete, deletable, currentBuId)\n }\n },\n {\n rootEntitiesDeletable: {},\n rootEntitiesNotDeletable: {},\n relatedDeletable: {},\n relatedNotDeletable: {},\n hasUnreadableEntities: !!entitiesToDelete.find(e => e.unreadableEntities)\n }\n )\n}\n\nexport const getEntitiesToDelete = ({entitiesToDelete}) => ({\n entityName: _get(entitiesToDelete, '[0].rootEntity.entityName'),\n keys: entitiesToDelete.reduce(\n (acc, entityToDelete) => [...acc, ...(isEntityDeletable(entityToDelete) ? [entityToDelete.rootEntity.key] : [])],\n []\n )\n})\n\nexport const deleteEntityPropType = PropTypes.shape({\n entityLabel: PropTypes.string,\n keys: PropTypes.arrayOf(PropTypes.string),\n keysOtherBu: PropTypes.arrayOf(PropTypes.string)\n})\n\nexport const deleteInfoPropType = PropTypes.shape({\n rootEntitiesDeletable: PropTypes.objectOf(deleteEntityPropType).isRequired,\n rootEntitiesNotDeletable: PropTypes.objectOf(deleteEntityPropType).isRequired,\n relatedDeletable: PropTypes.objectOf(deleteEntityPropType).isRequired,\n relatedNotDeletable: PropTypes.objectOf(deleteEntityPropType).isRequired,\n hasUnreadableEntities: PropTypes.bool\n})\n","import {takeLatest, all, call, put, select} from 'redux-saga/effects'\nimport {rest, externalEvents, selection as selectionUtil} from 'tocco-app-extensions'\n\nimport {getDialogInfo, getEntitiesToDelete} from '../../utils/deleteRequestParser'\nimport * as actions from './actions'\n\nexport const inputSelector = state => state.input\nexport const textResourceSelector = state => state.intl.messages\nexport const entitiesToDeleteSelector = state => state.del.entitiesToDelete\n\nexport function* getDeleteBodyFromSelection() {\n const {selection} = yield select(inputSelector)\n\n const entities = yield call(selectionUtil.getEntities, selection, rest.fetchEntities)\n\n return {\n entityModel: entities.entityName,\n keys: entities.keys\n }\n}\n\nexport function* getDeleteEndpoint() {\n const {customDeleteEndpoint} = yield select(inputSelector)\n return customDeleteEndpoint || 'client/delete'\n}\n\nexport function* loadDialogInfo() {\n const body = yield call(getDeleteBodyFromSelection)\n const deleteEndpoint = yield call(getDeleteEndpoint)\n\n const [deleteResponse, principal] = yield all([\n call(rest.requestSaga, `${deleteEndpoint}/dialog`, {method: 'POST', body}),\n call(rest.fetchPrincipal)\n ])\n\n const dialogInfo = yield call(getDialogInfo, deleteResponse.body, principal.currentBusinessUnit.id)\n yield put(actions.setDeleteDialogInfo(dialogInfo))\n\n const entitiesToDelete = yield call(getEntitiesToDelete, deleteResponse.body)\n yield put(actions.setEntitiesToDelete(entitiesToDelete))\n}\n\nexport function* doDelete() {\n const entitiesToDelete = yield select(entitiesToDeleteSelector)\n\n yield put(actions.setDeletingInProgress(true))\n const body = {\n entityModel: entitiesToDelete.entityName,\n keys: entitiesToDelete.keys\n }\n\n const deleteEndpoint = yield call(getDeleteEndpoint)\n\n const response = yield call(rest.requestSaga, deleteEndpoint, {\n method: 'POST',\n body,\n acceptedStatusCodes: [409]\n })\n\n const textResources = yield select(textResourceSelector)\n if (response.ok) {\n const {body} = response\n\n const entities = Object.keys(body.deletedEntities).reduce((acc, entityName) => {\n return [...acc, ...body.deletedEntities[entityName].map(key => ({entityName, key}))]\n }, [])\n\n const remoteEvents = [\n {\n type: 'entity-delete-event',\n payload: {\n entities\n }\n }\n ]\n\n yield put(\n externalEvents.fireExternalEvent('onSuccess', {\n message: textResources['client.delete.successfullyMessage'],\n remoteEvents\n })\n )\n } else {\n if (response.status === 409 && response.body.information) {\n yield put(externalEvents.fireExternalEvent('onError', {message: response.body.information}))\n } else {\n yield put(externalEvents.fireExternalEvent('onError', {message: textResources['client.delete.errorMessage']}))\n }\n }\n}\n\nexport function* onCancel() {\n yield put(externalEvents.fireExternalEvent('onCancel'))\n}\n\nexport default function* mainSagas() {\n yield all([\n takeLatest(actions.LOAD_DIALOG_INFO, loadDialogInfo),\n takeLatest(actions.DO_DELETE, doDelete),\n takeLatest(actions.ON_CANCEL, onCancel)\n ])\n}\n","import del, {sagas as deleteSagas} from './delete'\n\nexport default {\n del\n}\n\nexport const sagas = [deleteSagas]\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {actionEmitter, appFactory, externalEvents, notification, selection} from 'tocco-app-extensions'\nimport {reducer as reducerUtil} from 'tocco-util'\n\nimport Delete from './components/Delete'\nimport reducers, {sagas} from './modules/reducers'\n\nconst packageName = 'delete'\n\nconst EXTERNAL_EVENTS = ['onSuccess', 'onCancel', 'onError', 'emitAction']\n\nconst initApp = (id, input, events, publicPath) => {\n const content = <Delete />\n\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n actionEmitter.addToStore(store, events.emitAction)\n const handleNotifications = !events.emitAction\n notification.addToStore(store, handleNotifications)\n externalEvents.addToStore(store, events)\n\n return appFactory.createApp(packageName, content, store, {\n input,\n events,\n actions: [],\n publicPath,\n textResourceModules: ['component', 'common', packageName]\n })\n}\n\n;(() => {\n if (__DEV__ && __PACKAGE_NAME__ === packageName) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const reducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, reducers)\n })\n }\n\n appFactory.renderApp(app.component)\n } else {\n appFactory.registerAppInRegistry(packageName, initApp)\n }\n})()\n\nconst DeleteApp = props => {\n const {component} = appFactory.useApp({initApp, props, packageName, externalEvents: EXTERNAL_EVENTS})\n return component\n}\n\nDeleteApp.propTypes = {\n selection: selection.propType.isRequired,\n customDeleteEndpoint: PropTypes.string\n}\n\nexport default DeleteApp\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {injectIntl} from 'react-intl'\nimport EntityDetailApp from 'tocco-entity-detail/src/main'\n\nimport getDetailFormName from '../../../utils/getDetailFormName'\nimport getNode from '../../../utils/getNode'\n\nconst CreateDomain = ({context, onSuccess, intl, emitAction}) => {\n const isActionBlocked = action => action.payload?.toaster?.title === 'client.entity-detail.createSuccessfulTitle'\n\n const emitActionBarrier = action => {\n if (!isActionBlocked(action)) {\n emitAction(action)\n }\n }\n\n const handleEntityCreated = ({id}) => {\n const remoteEvents = [\n {\n type: 'entity-create-event',\n payload: {\n entities: [\n {\n entityName: 'Docs_list_item',\n key: `Domain/${id}`\n }\n ]\n }\n }\n ]\n\n onSuccess({\n title: intl.formatMessage({id: 'client.docs-browser.createDomainSuccessful'}),\n remoteEvents\n })\n }\n\n const parent = getNode(context.history.location.pathname)\n const defaultValues = parent ? [{id: `rel${parent.model}`, value: parent.key}] : []\n\n const formName = getDetailFormName(context, 'Domain')\n\n return (\n <EntityDetailApp\n entityName=\"Domain\"\n formName={formName}\n mode=\"create\"\n defaultValues={defaultValues}\n onEntityCreated={handleEntityCreated}\n emitAction={emitActionBarrier}\n />\n )\n}\n\nCreateDomain.propTypes = {\n context: PropTypes.shape({\n history: PropTypes.shape({\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired\n }).isRequired\n }).isRequired\n }).isRequired,\n onSuccess: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n emitAction: PropTypes.func.isRequired\n}\n\nexport default injectIntl(CreateDomain)\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {injectIntl} from 'react-intl'\nimport EntityDetailApp from 'tocco-entity-detail/src/main'\n\nimport getDetailFormName from '../../../utils/getDetailFormName'\nimport getNode from '../../../utils/getNode'\n\nconst CreateFolder = ({context, onSuccess, intl, emitAction}) => {\n const isActionBlocked = action => action.payload?.toaster?.title === 'client.entity-detail.createSuccessfulTitle'\n\n const emitActionBarrier = action => {\n if (!isActionBlocked(action)) {\n emitAction(action)\n }\n }\n\n const handleEntityCreated = ({id}) => {\n const remoteEvents = [\n {\n type: 'entity-create-event',\n payload: {\n entities: [\n {\n entityName: 'Docs_list_item',\n key: `Folder/${id}`\n }\n ]\n }\n }\n ]\n\n onSuccess({\n title: intl.formatMessage({id: 'client.docs-browser.createFolderSuccessful'}),\n remoteEvents\n })\n }\n\n const parent = getNode(context.history.location.pathname)\n const defaultValues = parent ? [{id: `rel${parent.model}`, value: parent.key}] : []\n\n const formName = getDetailFormName(context, 'Folder')\n\n return (\n <EntityDetailApp\n entityName=\"Folder\"\n formName={formName}\n mode=\"create\"\n defaultValues={defaultValues}\n onEntityCreated={handleEntityCreated}\n emitAction={emitActionBarrier}\n />\n )\n}\n\nCreateFolder.propTypes = {\n context: PropTypes.shape({\n history: PropTypes.shape({\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired\n }).isRequired\n }).isRequired\n }).isRequired,\n onSuccess: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n emitAction: PropTypes.func.isRequired\n}\n\nexport default injectIntl(CreateFolder)\n","import React from 'react'\nimport DeleteApp from 'tocco-delete/src/main'\n\nexport default props => <DeleteApp {...props} customDeleteEndpoint={'documents/delete'} />\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {injectIntl} from 'react-intl'\nimport {selection} from 'tocco-app-extensions'\nimport EntityDetailApp from 'tocco-entity-detail/src/main'\n\nimport getDetailFormName from '../../../utils/getDetailFormName'\n\nconst EditAction = ({selection, onSuccess, onCancel, intl, context, emitAction}) => {\n const isActionBlocked = action => action.payload?.toaster?.title === 'client.entity-detail.createSuccessfulTitle'\n\n const emitActionBarrier = action => {\n if (!isActionBlocked(action)) {\n emitAction(action)\n }\n }\n\n const [entityName, entityKey] = selection.ids[0].split('/')\n\n if (entityName === 'Resource') {\n context.history.push(`/docs/doc/${entityKey}/detail`)\n onCancel()\n }\n\n const handleEntityUpdated = () => {\n const remoteEvents = [\n {\n type: 'entity-update-event',\n payload: {\n entities: [\n {\n entityName: 'Docs_list_item',\n key: selection.ids[0]\n }\n ]\n }\n }\n ]\n\n onSuccess({\n title: null,\n remoteEvents\n })\n }\n\n const handleEntityDeleted = () => {\n const remoteEvents = [\n {\n type: 'entity-delete-event',\n payload: {\n entities: [\n {\n entityName: 'Docs_list_item',\n key: selection.ids[0]\n }\n ]\n }\n }\n ]\n\n onSuccess({\n title: null,\n remoteEvents\n })\n }\n\n const formName = getDetailFormName(context, entityName)\n\n return (\n <EntityDetailApp\n entityName={entityName}\n formName={formName}\n entityId={entityKey}\n mode=\"update\"\n onEntityUpdated={handleEntityUpdated}\n onEntityDeleted={handleEntityDeleted}\n emitAction={emitActionBarrier}\n />\n )\n}\n\nEditAction.propTypes = {\n selection: selection.propType,\n context: PropTypes.shape({\n history: PropTypes.shape({\n push: PropTypes.func.isRequired\n }).isRequired\n }).isRequired,\n onSuccess: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n emitAction: PropTypes.func.isRequired\n}\n\nexport default injectIntl(EditAction)\n","import _isEqual from 'lodash/isEqual'\nimport PropTypes from 'prop-types'\nimport React, {useEffect, useState} from 'react'\nimport {FormattedMessage} from 'react-intl'\nimport styled from 'styled-components'\nimport {selection} from 'tocco-app-extensions'\nimport {Button, LoadMask, StyledButton} from 'tocco-ui'\n\nimport DocsBrowser from '../../../main'\nimport getNode from '../../../utils/getNode'\n\nconst StyledButtonsWrapper = styled.div`\n display: flex;\n justify-content: flex-end;\n\n ${StyledButton} {\n margin-right: 0;\n }\n`\n\n/* for being able to scroll whole modal content on smaller screens */\nconst StyledLoadMask = styled(LoadMask)`\n height: auto;\n`\n\nexport const MoveAction = ({\n selection,\n onSuccess,\n onError,\n context,\n initialize,\n moveElements,\n isWaiting,\n domainTypes,\n rootNodes,\n businessUnit,\n emitAction\n}) => {\n const initialNode = getNode(context.history.location.pathname)\n const initialParent = {model: 'Docs_list_item', key: `${initialNode.model}/${initialNode.key}`}\n const [parent, setParent] = useState(initialParent)\n\n useEffect(() => {\n initialize(selection, onSuccess, onError)\n }, [])\n\n const getCustomLocation = (model, key) => {\n switch (model) {\n case 'Domain':\n return `/docs/domain/${key}/list`\n case 'Folder':\n return `/docs/folder/${key}/list`\n case 'Resource':\n return\n default:\n throw new Error(`Unexpected model: ${model}`)\n }\n }\n\n const getInitialLocation = () => {\n if (parent === null) {\n return null\n }\n const [model, key] = parent.key.split('/')\n return getCustomLocation(model, key)\n }\n\n return (\n <StyledLoadMask required={[!isWaiting]}>\n <DocsBrowser\n memoryHistory={true}\n initialLocation={getInitialLocation()}\n listLimit={10}\n selectionStyle=\"none\"\n searchFormType=\"none\"\n disableViewPersistor={true}\n getListFormName={parent => (parent === null ? 'Move_root_docs_list_item' : 'Move_docs_list_item')}\n onListParentChange={parent => setParent(parent)}\n getCustomLocation={getCustomLocation}\n navigationStrategy={{}}\n embedded={true}\n emitAction={emitAction}\n noLeftPadding={true}\n domainTypes={domainTypes}\n rootNodes={rootNodes}\n businessUnit={businessUnit}\n sortable={false}\n scrollBehaviour=\"none\"\n />\n <StyledButtonsWrapper>\n <Button\n onClick={() => moveElements(parent.key, selection.ids)}\n look=\"raised\"\n ink=\"primary\"\n disabled={parent === null || _isEqual(parent, initialParent)}\n >\n <FormattedMessage id=\"client.actions.dms-move.button\" />\n </Button>\n </StyledButtonsWrapper>\n </StyledLoadMask>\n )\n}\n\nMoveAction.propTypes = {\n selection: selection.propType,\n onSuccess: PropTypes.func.isRequired,\n onError: PropTypes.func.isRequired,\n context: PropTypes.shape({\n history: PropTypes.shape({\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired\n }).isRequired\n }).isRequired\n }).isRequired,\n initialize: PropTypes.func.isRequired,\n moveElements: PropTypes.func.isRequired,\n isWaiting: PropTypes.bool.isRequired,\n domainTypes: PropTypes.arrayOf(PropTypes.string),\n rootNodes: PropTypes.arrayOf(\n PropTypes.shape({\n entityName: PropTypes.string,\n key: PropTypes.string\n })\n ),\n businessUnit: PropTypes.string,\n emitAction: PropTypes.func.isRequired\n}\n","import React from 'react'\nimport {injectIntl} from 'react-intl'\nimport {connect} from 'react-redux'\n\nimport {initialize, moveElements} from '../../../modules/move/actions'\nimport {MoveAction} from './Move'\n\nconst mapActionCreators = {\n initialize,\n moveElements\n}\n\nconst mapStateToProps = state => ({\n isWaiting: state.docs.move.isWaiting,\n domainTypes: state.input.domainTypes,\n rootNodes: state.input.rootNodes,\n businessUnit: state.input.businessUnit\n})\n\nconst MoveContainer = connect(mapStateToProps, mapActionCreators)(MoveAction)\n\nexport default injectIntl(props => <MoveContainer {...props} />)\n","const getDetailFormName = (context, entityName) =>\n context.detailFormNames && context.detailFormNames[entityName]\n ? context.detailFormNames[entityName]\n : `Dms${entityName}`\n\nexport default getDetailFormName\n","import styled from 'styled-components'\n\nimport {scale} from '../utilStyles'\n\nexport const StyledWrapper = styled.div`\n cursor: pointer;\n\n .flatpickr-calendar.open {\n margin-top: ${scale.space(1.2)};\n }\n\n .flatpickr-calendar.arrowTop:before,\n .flatpickr-calendar.arrowTop:after {\n left: 83%;\n }\n`\n","import PropTypes from 'prop-types'\nimport React, {useEffect, useRef} from 'react'\nimport {injectIntl} from 'react-intl'\nimport {withTheme} from 'styled-components'\n\nimport {theme} from '../utilStyles'\nimport {StyledWrapper} from './StyledDatePicker'\nimport {useDatePickr} from './useDatePickr'\n\nexport const DatePicker = props => {\n const {value, children, intl, onChange} = props\n const wrapperElement = useRef(null)\n const locale = intl.locale\n const msg = id => intl.formatMessage({id})\n\n const fontFamily = theme.fontFamily('regular')(props)\n\n const flatpickrOptions = {}\n const initializeFlatPickr = useDatePickr(wrapperElement, {\n value,\n onChange,\n fontFamily,\n locale,\n flatpickrOptions,\n shouldAppend: true\n })\n\n useEffect(() => {\n if (wrapperElement.current) {\n initializeFlatPickr()\n }\n }, []) // only on mount\n\n return (\n <>\n <StyledWrapper data-wrap ref={wrapperElement}>\n <div data-toggle>\n <input\n style={{display: 'none'}}\n type=\"text\"\n data-input\n aria-label={msg('client.component.datePicker.label')}\n />\n {children}\n </div>\n </StyledWrapper>\n </>\n )\n}\n\nDatePicker.propTypes = {\n /**\n * Any content to wrap a onclick around to open a calendar\n */\n children: PropTypes.node.isRequired,\n /**\n * Function triggered on every date selection. First parameter is the picked date as iso string.\n */\n onChange: PropTypes.func.isRequired,\n /**\n * To set the selected date from outside the component.\n */\n value: PropTypes.any,\n intl: PropTypes.object.isRequired\n}\n\nexport default withTheme(injectIntl(DatePicker))\n","import '!style-loader!css-loader!flatpickr/dist/themes/light.css'\nimport flatpickr from 'flatpickr'\nimport {German} from 'flatpickr/dist/l10n/de.js'\nimport {French} from 'flatpickr/dist/l10n/fr.js'\nimport {Italian} from 'flatpickr/dist/l10n/it.js'\nimport {useEffect, useRef} from 'react'\nimport {react, js} from 'tocco-util'\n\nconst localeMap = {\n 'de-CH': German,\n de: German,\n fr: French,\n it: Italian\n}\n\nconst handleOnChange = onChange => selectedDates => {\n if (selectedDates && selectedDates.length > 0) {\n onChange(selectedDates[0].toISOString())\n } else {\n onChange(null)\n }\n}\n\nconst initializeFlatPickr = (element, {shouldAppend, onChange, value, fontFamily, locale, flatpickrOptions}) => {\n const calendarLocale = localeMap[locale]\n\n const options = {\n wrap: true,\n onChange: handleOnChange(onChange),\n altInput: false,\n enableTime: false,\n defaultDate: value,\n\n ...(shouldAppend ? {appendTo: element.current} : {}),\n ...(calendarLocale ? {locale: calendarLocale} : {}),\n ...flatpickrOptions\n }\n\n const flatpickrInstance = flatpickr(element.current, options)\n\n if (fontFamily) {\n flatpickrInstance.calendarContainer.style.fontFamily = fontFamily\n }\n\n return flatpickrInstance\n}\n\nexport const useDatePickr = (element, config) => {\n const {value, locale, flatpickrOptions} = config\n const flatpickr = useRef(null)\n\n const prevFlatpickrOptions = react.usePrevious(flatpickrOptions)\n\n const init = () => {\n flatpickr.current = initializeFlatPickr(element, config)\n return flatpickr.current\n }\n\n useEffect(() => {\n return () => {\n if (flatpickr.current) {\n flatpickr.current.destroy()\n }\n }\n }, []) // only on unmount\n\n useEffect(() => {\n if (flatpickr.current) {\n flatpickr.current.setDate(value, false)\n flatpickr.current.redraw()\n }\n }, [JSON.stringify(value)]) // only trigger useEffect when value array changed (deep comparison workaround)\n\n useEffect(() => {\n const calendarLocale = localeMap[locale] || flatpickr.current?.l10ns?.en // fallback to english\n if (flatpickr.current && calendarLocale) {\n flatpickr.current.localize(calendarLocale)\n flatpickr.current.set('locale', calendarLocale)\n flatpickr.current.redraw()\n }\n }, [locale])\n\n useEffect(() => {\n if (flatpickr.current) {\n const optionsDiff = js.difference(flatpickrOptions, prevFlatpickrOptions)\n if (Object.keys(optionsDiff).length > 0) {\n Object.entries(optionsDiff).forEach(([key, value]) => {\n flatpickr.current.set(key, value)\n })\n flatpickr.current.redraw()\n }\n }\n }, [flatpickrOptions])\n\n return init\n}\n","import styled from 'styled-components'\n\nimport {StyledEditableWrapperCss, StyledInputCss} from '../StyledEditableValue'\n\nexport const StyledDatePickerInput = styled.input`\n &&& {\n ${StyledInputCss}\n margin: 0;\n }\n`\n\nexport const StyledDatePickerValue = styled.div`\n && {\n ${StyledInputCss}\n display: flex;\n align-items: center;\n }\n`\n\nexport const StyledDatePickerOuterWrapper = styled.div`\n outline: ${({immutable}) => (immutable ? 0 : 'initial')};\n`\n\nexport const StyledDatePickerWrapper = styled.div`\n && {\n ${StyledEditableWrapperCss}\n\n input {\n display: ${({immutable}) => (immutable ? 'none' : 'block')};\n\n &:last-of-type {\n display: ${({immutable}) => (immutable ? 'block' : 'none')};\n }\n }\n }\n`\n","import PropTypes from 'prop-types'\nimport React, {useRef, useState} from 'react'\nimport {injectIntl} from 'react-intl'\nimport {withTheme} from 'styled-components'\n\nimport Ball from '../../Ball'\nimport {useDatePickr} from '../../DatePicker/useDatePickr'\nimport {theme} from '../../utilStyles'\nimport {\n StyledDatePickerInput,\n StyledDatePickerWrapper,\n StyledDatePickerOuterWrapper,\n StyledDatePickerValue\n} from './StyledDatePicker'\n\nconst focusFlatpickrInput = wrapper => {\n // flatpickr add two input in the DOM. One for the actual value (hidden) and one for the altInput\n const inputElement = wrapper.querySelector('input.flatpickr-input:not([type=\"hidden\"])')\n if (inputElement) {\n inputElement.focus()\n }\n}\n\nconst DatePicker = props => {\n const {immutable, id, options, value, onChange, parseDate, formatDate, intl} = props\n const [initialized, setInitialized] = useState(false)\n const flatpickr = useRef(null)\n const wrapper = useRef(null)\n const locale = intl.locale\n const msg = id => intl.formatMessage({id})\n\n const fontFamily = theme.fontFamily('regular')(props)\n\n const handleOnChange = val => {\n if (val) {\n onChange([val])\n }\n }\n\n const flatpickrOptions = {\n altInput: true,\n altInputClass: '',\n clickOpens: !immutable,\n ...(options ? options.flatpickrOptions : {})\n }\n const initializeFlatPickr = useDatePickr(wrapper, {\n value,\n onChange: handleOnChange,\n fontFamily,\n locale,\n flatpickrOptions\n })\n\n const init = () => {\n flatpickr.current = initializeFlatPickr()\n\n flatpickr.current.calendarContainer.classList.add('tocco-ui-theme')\n flatpickr.current.calendarContainer.addEventListener('keydown', handleConfirmKey)\n setInitialized(true)\n }\n\n const altInput = flatpickr.current?.altInput?.value || ''\n\n const handleOnBlur = () => {\n const parsed = parseDate(flatpickr.current.altInput.value)\n flatpickr.current.setDate(parsed, true)\n }\n\n const focusInput = () => {\n if (!initialized) {\n init()\n\n /**\n * Workaround:\n * To be sure that the initialized state has been updated\n * before we change the focus we delay this to the next tick.\n */\n setTimeout(() => {\n focusFlatpickrInput(wrapper.current)\n })\n } else {\n focusFlatpickrInput(wrapper.current)\n }\n }\n\n const handleConfirmKey = e => {\n if ((!e.target.classList.contains('flatpickr-hour') && e.key === 'Tab' && !e.shiftKey) || e.key === 'Enter') {\n handleOnBlur()\n setTimeout(() => {\n flatpickr.current.close()\n })\n }\n if (e.key === 'Enter') {\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n const hasValue = value && value.length > 0 && value.every(v => v)\n\n return (\n <>\n <StyledDatePickerOuterWrapper\n immutable={immutable}\n id={id}\n tabIndex=\"-1\"\n onFocus={() => {\n focusInput()\n\n if (flatpickr.current) {\n flatpickr.current.open()\n }\n }}\n onKeyDown={handleConfirmKey}\n >\n <StyledDatePickerWrapper data-wrap onBlur={handleOnBlur} immutable={immutable} ref={wrapper}>\n <StyledDatePickerInput\n {...(immutable ? {disabled: 'disabled'} : {})}\n type=\"hidden\"\n data-input\n immutable={immutable}\n {...(options ? {placeholder: options.placeholderText} : {})}\n />\n {!initialized && (\n <StyledDatePickerValue tabIndex={0}>{hasValue ? formatDate(value[0]) : ''}</StyledDatePickerValue>\n )}\n <StyledDatePickerInput disabled immutable={immutable} value={altInput} />\n {!immutable && hasValue && (\n <Ball\n icon=\"times\"\n tabIndex={-1}\n aria-label={msg('client.component.dateAbstract.clearDateLabel')}\n onMouseDown={e => {\n e.preventDefault()\n onChange(null)\n }}\n />\n )}\n </StyledDatePickerWrapper>\n </StyledDatePickerOuterWrapper>\n </>\n )\n}\n\nDatePicker.propTypes = {\n id: PropTypes.string,\n intl: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.arrayOf(PropTypes.string),\n options: PropTypes.shape({\n placeholderText: PropTypes.string,\n flatpickrOptions: PropTypes.object\n }),\n parseDate: PropTypes.func,\n formatDate: PropTypes.func,\n immutable: PropTypes.bool,\n initialized: PropTypes.func,\n events: PropTypes.shape({\n onFocus: PropTypes.func\n })\n}\n\nexport default withTheme(injectIntl(DatePicker))\n","import {faCircleNotch} from '@fortawesome/pro-solid-svg-icons'\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome'\nimport PropTypes from 'prop-types'\nimport React from 'react'\n\n/**\n * Spinner that indicates a loading process\n */\nconst LoadingSpinner = ({size, style}) => (\n <FontAwesomeIcon {...style} style={{fontSize: size}} spin icon={faCircleNotch} />\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\nexport default LoadingSpinner\n"],"sourceRoot":""}