@lifesg/react-design-system 1.0.0-alpha.2 → 1.0.0-alpha.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/accordion/accordion-item.style.d.ts +5 -2
- package/accordion/accordion.style.d.ts +1 -1
- package/accordion/index.js +165 -172
- package/accordion/index.js.map +1 -1
- package/alert/alert.style.d.ts +4 -1
- package/alert/index.js +107 -119
- package/alert/index.js.map +1 -1
- package/animations/index.js +1 -1
- package/animations/index.js.map +1 -1
- package/box-container/box-container.styles.d.ts +8 -1
- package/box-container/index.js +69 -74
- package/box-container/index.js.map +1 -1
- package/breadcrumb/breadcrumb.style.d.ts +4 -4
- package/breadcrumb/index.js +102 -106
- package/breadcrumb/index.js.map +1 -1
- package/breadcrumb/types.d.ts +5 -1
- package/button/button.d.ts +2 -2
- package/button/index.js +140 -143
- package/button/index.js.map +1 -1
- package/card/card.d.ts +3 -0
- package/card/card.style.d.ts +1 -0
- package/card/index.d.ts +1 -0
- package/card/index.js +132 -0
- package/card/index.js.map +1 -0
- package/{icon → card}/package.json +1 -1
- package/card/types.d.ts +4 -0
- package/checkbox/checkbox.d.ts +1 -1
- package/checkbox/checkbox.style.d.ts +4 -1
- package/checkbox/index.js +11 -21
- package/checkbox/index.js.map +1 -1
- package/cjs/index.js +1999 -1021
- package/cjs/index.js.map +1 -1
- package/color/color.d.ts +4 -59
- package/color/index.js +1 -1
- package/color/index.js.map +1 -1
- package/color/types.d.ts +5 -1
- package/date-input/date-input.d.ts +1 -1
- package/date-input/date-input.style.d.ts +2 -6
- package/date-input/index.js +121 -136
- package/date-input/index.js.map +1 -1
- package/date-input/types.d.ts +14 -16
- package/design-token/design-token.d.ts +4 -0
- package/design-token/index.d.ts +2 -0
- package/design-token/index.js +6 -0
- package/design-token/index.js.map +1 -0
- package/design-token/package.json +7 -0
- package/design-token/types.d.ts +7 -0
- package/error-display/error-display-data.d.ts +11 -0
- package/error-display/error-display.d.ts +3 -0
- package/error-display/error-display.style.d.ts +7 -0
- package/error-display/index.d.ts +2 -0
- package/error-display/index.js +322 -0
- package/error-display/index.js.map +1 -0
- package/error-display/package.json +7 -0
- package/error-display/types.d.ts +20 -0
- package/feedback-rating/feedback-rating-data.d.ts +5 -0
- package/feedback-rating/feedback-rating-stars-container-data.d.ts +3 -0
- package/feedback-rating/feedback-rating-stars-container.d.ts +3 -0
- package/feedback-rating/feedback-rating-stars-container.styles.d.ts +12 -0
- package/feedback-rating/feedback-rating.d.ts +3 -0
- package/feedback-rating/feedback-rating.styles.d.ts +5 -0
- package/feedback-rating/index.d.ts +2 -0
- package/feedback-rating/index.js +329 -0
- package/feedback-rating/index.js.map +1 -0
- package/feedback-rating/package.json +7 -0
- package/feedback-rating/types.d.ts +14 -0
- package/footer/footer-download-app.d.ts +2 -0
- package/footer/footer-download-app.style.d.ts +6 -0
- package/footer/footer-helper.d.ts +12 -0
- package/footer/footer.d.ts +3 -0
- package/footer/footer.style.d.ts +12 -0
- package/footer/index.d.ts +2 -0
- package/footer/index.js +373 -0
- package/footer/index.js.map +1 -0
- package/footer/package.json +7 -0
- package/footer/types.d.ts +31 -0
- package/form/form-custom-field.d.ts +3 -0
- package/form/form-input-group.d.ts +1 -1
- package/form/form-input.d.ts +1 -1
- package/form/form-label-addon.d.ts +1 -2
- package/form/form-label.d.ts +1 -1
- package/form/form-label.style.d.ts +1 -0
- package/form/form-phone-number-input.d.ts +3 -0
- package/form/form-textarea.d.ts +1 -1
- package/form/form-unit-number-input.d.ts +3 -0
- package/form/index.d.ts +9 -6
- package/form/index.js +774 -629
- package/form/index.js.map +1 -1
- package/form/types.d.ts +14 -5
- package/icon-button/icon-button.d.ts +1 -1
- package/icon-button/icon-button.style.d.ts +6 -1
- package/icon-button/index.js +9 -15
- package/icon-button/index.js.map +1 -1
- package/icon-button/types.d.ts +2 -3
- package/index.d.ts +11 -1
- package/index.js +1997 -1019
- package/index.js.map +1 -1
- package/input/index.js +84 -41
- package/input/index.js.map +1 -1
- package/input/input.d.ts +1 -1
- package/input/input.style.d.ts +9 -0
- package/input/types.d.ts +2 -0
- package/input-group/index.js +392 -312
- package/input-group/index.js.map +1 -1
- package/input-group/input-group-list-addon.d.ts +1 -1
- package/input-group/input-group-list-addon.style.d.ts +4 -1
- package/input-group/input-group.d.ts +1 -1
- package/input-group/input-group.style.d.ts +1 -2
- package/input-group/types.d.ts +8 -8
- package/input-select/index.js +278 -242
- package/input-select/index.js.map +1 -1
- package/input-select/input-select-wrapper.d.ts +1 -1
- package/input-select/input-select.d.ts +1 -1
- package/input-select/input-select.styles.d.ts +5 -1
- package/input-select/types.d.ts +15 -11
- package/input-textarea/index.js +132 -121
- package/input-textarea/index.js.map +1 -1
- package/input-textarea/textarea-counter.d.ts +2 -1
- package/input-textarea/textarea.d.ts +2 -2
- package/input-textarea/types.d.ts +1 -0
- package/layout/container.d.ts +3 -0
- package/layout/content.d.ts +3 -0
- package/layout/index.d.ts +7 -0
- package/layout/index.js +55 -0
- package/layout/index.js.map +1 -0
- package/layout/package.json +7 -0
- package/layout/section.d.ts +3 -0
- package/layout/types.d.ts +15 -0
- package/link-list/index.js +130 -130
- package/link-list/index.js.map +1 -1
- package/link-list/link-list.styles.d.ts +12 -2
- package/link-list/types.d.ts +1 -1
- package/masonry/index.js.map +1 -1
- package/masonry/masonry.d.ts +2 -2
- package/masthead/index.d.ts +1 -0
- package/masthead/index.js +9 -0
- package/masthead/index.js.map +1 -0
- package/masthead/masthead.d.ts +2 -0
- package/masthead/masthead.style.d.ts +1 -0
- package/masthead/package.json +7 -0
- package/media/index.js +1 -1
- package/media/index.js.map +1 -1
- package/media/media.d.ts +2 -1
- package/modal/index.d.ts +1 -1
- package/modal/index.js +30 -43
- package/modal/index.js.map +1 -1
- package/modal/modal-box.styles.d.ts +5 -2
- package/modal/modal.d.ts +1 -1
- package/modal/modal.styles.d.ts +1 -0
- package/modal/types.d.ts +4 -2
- package/navbar/brand.d.ts +10 -0
- package/navbar/brand.styles.d.ts +5 -0
- package/navbar/drawer.d.ts +3 -0
- package/navbar/drawer.styles.d.ts +15 -0
- package/navbar/index.d.ts +7 -0
- package/navbar/index.js +651 -0
- package/navbar/index.js.map +1 -0
- package/navbar/navbar-action-buttons.d.ts +10 -0
- package/navbar/navbar-action-buttons.styles.d.ts +9 -0
- package/navbar/navbar-items.d.ts +11 -0
- package/navbar/navbar-items.styles.d.ts +10 -0
- package/navbar/navbar.d.ts +3 -0
- package/navbar/navbar.styles.d.ts +19 -0
- package/navbar/package.json +7 -0
- package/navbar/types.d.ts +56 -0
- package/notification-banner/index.d.ts +3 -0
- package/notification-banner/index.js +266 -0
- package/notification-banner/index.js.map +1 -0
- package/notification-banner/notification-banner-hoc.d.ts +3 -0
- package/notification-banner/notification-banner.d.ts +6 -0
- package/notification-banner/notification-banner.styles.d.ts +15 -0
- package/notification-banner/package.json +7 -0
- package/notification-banner/types.d.ts +22 -0
- package/overlay/index.js +1 -1
- package/overlay/index.js.map +1 -1
- package/overlay/types.d.ts +1 -1
- package/package.json +4 -1
- package/phone-number-input/data/country-code.d.ts +1 -0
- package/phone-number-input/index.d.ts +1 -0
- package/phone-number-input/index.js +850 -0
- package/phone-number-input/index.js.map +1 -0
- package/phone-number-input/package.json +7 -0
- package/phone-number-input/phone-number-input-helper.d.ts +5 -0
- package/phone-number-input/phone-number-input.d.ts +3 -0
- package/phone-number-input/phone-number-input.styles.d.ts +1 -0
- package/phone-number-input/types.d.ts +42 -0
- package/popover/index.js +148 -153
- package/popover/index.js.map +1 -1
- package/popover/popover.styles.d.ts +1 -1
- package/popover/types.d.ts +3 -3
- package/progress-indicator/index.d.ts +2 -0
- package/progress-indicator/index.js +240 -0
- package/progress-indicator/index.js.map +1 -0
- package/progress-indicator/package.json +7 -0
- package/progress-indicator/progress-indicator.d.ts +3 -0
- package/progress-indicator/progress-indicator.style.d.ts +19 -0
- package/progress-indicator/types.d.ts +9 -0
- package/radio-button/index.js +7 -7
- package/radio-button/index.js.map +1 -1
- package/shared/dropdown-list/dropdown-list.d.ts +1 -1
- package/shared/dropdown-list/dropdown-list.styles.d.ts +6 -2
- package/shared/dropdown-list/dropdown-search.d.ts +2 -1
- package/shared/dropdown-list/dropdown-search.styles.d.ts +9 -1
- package/shared/dropdown-list/types.d.ts +21 -12
- package/smart-app-banner/index.d.ts +2 -0
- package/smart-app-banner/index.js +373 -0
- package/smart-app-banner/index.js.map +1 -0
- package/smart-app-banner/package.json +7 -0
- package/smart-app-banner/smart-app-banner.d.ts +3 -0
- package/smart-app-banner/smart-app-banner.styles.d.ts +31 -0
- package/smart-app-banner/types.d.ts +18 -0
- package/spec/design-token-spec/base-design-token-set.d.ts +2 -0
- package/text/index.js +62 -65
- package/text/index.js.map +1 -1
- package/text/text-style.d.ts +4 -100
- package/text-list/index.js +7 -7
- package/text-list/index.js.map +1 -1
- package/theme/design-token-helper.d.ts +2 -0
- package/theme/index.js +1 -1
- package/theme/index.js.map +1 -1
- package/theme/types.d.ts +12 -3
- package/timeline/index.js +95 -98
- package/timeline/index.js.map +1 -1
- package/timepicker/index.js +213 -207
- package/timepicker/index.js.map +1 -1
- package/timepicker/timepicker-dropdown.styles.d.ts +2 -2
- package/timepicker/types.d.ts +3 -3
- package/toggle-button/index.js +118 -121
- package/toggle-button/index.js.map +1 -1
- package/tooltip/index.js +127 -125
- package/tooltip/index.js.map +1 -1
- package/tooltip/tooltip.styles.d.ts +3 -1
- package/unit-number/index.d.ts +2 -0
- package/unit-number/index.js +403 -0
- package/unit-number/index.js.map +1 -0
- package/unit-number/package.json +7 -0
- package/unit-number/types.d.ts +27 -0
- package/unit-number/unit-number-input.d.ts +3 -0
- package/unit-number/unit-number-input.style.d.ts +16 -0
- package/util/date-helper.d.ts +19 -0
- package/util/index.d.ts +2 -0
- package/util/utility-types.d.ts +3 -0
- package/icon/arrow-right-icon.d.ts +0 -3
- package/icon/icon.d.ts +0 -3
- package/icon/index.d.ts +0 -2
- package/icon/index.js +0 -12
- package/icon/index.js.map +0 -1
- package/icon/info-icon.d.ts +0 -3
- package/icon/play-alt-icon.d.ts +0 -3
- package/icon/search-icon.d.ts +0 -3
- package/icon/shared.style.d.ts +0 -1
- package/icon/types.d.ts +0 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../node_modules/@lifesg/react-icons/cross.js","../../node_modules/lodash/isArray.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/_isKey.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/isFunction.js","../../node_modules/lodash/_isMasked.js","../../node_modules/lodash/_coreJsData.js","../../node_modules/lodash/_toSource.js","../../node_modules/lodash/_baseIsNative.js","../../node_modules/lodash/_getValue.js","../../node_modules/lodash/_getNative.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_Map.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_arrayMap.js","../../node_modules/lodash/_baseToString.js","../../node_modules/lodash/toString.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/get.js","../../src/theme/helper.ts","../../src/theme/types.ts","../../src/theme/color-theme-helper.ts","../../src/spec/color-spec/base-color-set.ts","../../src/spec/color-spec/bookingsg-color-set.ts","../../src/color/color.ts","../../src/icon-button/icon-button.style.tsx","../../src/icon-button/icon-button.tsx","../../src/spec/media-spec.ts","../../src/media/media.ts","../../src/layout/container.tsx","../../src/layout/section.tsx","../../src/layout/content.tsx","../../src/layout/index.ts","../../src/spec/text-spec/font-spec.ts","../../src/theme/text-theme-helper.ts","../../src/spec/text-spec/base-text-style-set.ts","../../src/text/text-style.ts","../../src/text/helper.ts","../../node_modules/@lifesg/react-icons/external.js","../../src/text/text.tsx","../../src/text/types.ts","../../src/transition/index.ts","../../src/notification-banner/notification-banner.styles.tsx","../../src/notification-banner/notification-banner.tsx","../../node_modules/dompurify/dist/purify.es.js","../../src/notification-banner/notification-banner-hoc.tsx"],"sourcesContent":["\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e=require(\"react/jsx-runtime\");const C=C=>e.jsx(\"svg\",{width:\"1em\",height:\"1em\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",...C,children:e.jsx(\"path\",{d:\"M9.99991 11.229L5.97891 15.25C5.81224 15.4167 5.61091 15.4967 5.37491 15.49C5.13891 15.4827 4.93757 15.3957 4.77091 15.229C4.60424 15.0623 4.52091 14.8577 4.52091 14.615C4.52091 14.3717 4.60424 14.1667 4.77091 14L8.77091 10L4.74991 5.979C4.58324 5.81233 4.50324 5.60767 4.50991 5.365C4.51724 5.12167 4.60424 4.91667 4.77091 4.75C4.93757 4.58333 5.14224 4.5 5.38491 4.5C5.62824 4.5 5.83324 4.58333 5.99991 4.75L9.99991 8.771L14.0209 4.75C14.1876 4.58333 14.3922 4.5 14.6349 4.5C14.8782 4.5 15.0832 4.58333 15.2499 4.75C15.4166 4.91667 15.4999 5.12167 15.4999 5.365C15.4999 5.60767 15.4166 5.81233 15.2499 5.979L11.2289 10L15.2499 14.021C15.4166 14.1877 15.4999 14.389 15.4999 14.625C15.4999 14.861 15.4166 15.0623 15.2499 15.229C15.0832 15.3957 14.8782 15.479 14.6349 15.479C14.3922 15.479 14.1876 15.3957 14.0209 15.229L9.99991 11.229Z\",fill:\"currentColor\"})});C.displayName=\"CrossIcon\",exports.CrossIcon=C;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import get from \"lodash/get\";\nimport { ThemeCollectionSpec } from \"./types\";\n\n/**\n *\n * @param collection the collection of theme-specific style attributes\n * @param attributePath (optional) the path to the value within the selected collection\n * @param attributePath (optional) the path to the value within the selected collection\n * @returns style value\n */\nexport const getValue = <C, T>(\n collection: C,\n attributePath?: string,\n customCollection?: T\n): string | number => {\n return attributePath\n ? get(customCollection, attributePath) || get(collection, attributePath)\n : customCollection || collection;\n};\n\n/**\n * Gets the theme set based on the theme context value\n * @param collectionSpec the collections of theme-specific style attributes\n * @param contextValue (optional) the theme context value\n * @returns the selected collection\n */\nexport const getCollection = <T, V, C>(\n collectionSpec: ThemeCollectionSpec<T, V>,\n contextValue?: string\n): C => {\n const themeContextValue = contextValue || collectionSpec.defaultValue;\n return get(collectionSpec.collections, themeContextValue as string);\n};\n","import { ColorSet, ColorSetOptions } from \"../color/types\";\nimport { DesignTokenSet, DesignTokenSetOptions } from \"../design-token/types\";\nimport { TextStyleSetOptionsType, TextStyleSetType } from \"../text/types\";\n\nexport type ThemeLayout = \"normal\";\n\n// =============================================================================\n// COLOR THEMES\n// =============================================================================\nexport type ColorScheme = \"base\" | \"bookingsg\";\nexport type ColorCollectionsMap = {\n [key in ColorScheme]: ColorSet;\n};\n\n// =============================================================================\n// FONT STYLE THEMES\n// =============================================================================\nexport type TextStyleScheme = \"base\";\nexport type FontStyleCollectionsMap = {\n [key in TextStyleScheme]: TextStyleSetType;\n};\n\n// =============================================================================\n// DESIGN TOKEN THEMES\n// =============================================================================\nexport type DesignTokenScheme = \"base\";\nexport type DesignTokenCollectionsMap = {\n [key in DesignTokenScheme]: DesignTokenSet;\n};\n\n// =============================================================================\n// GENERAL\n// =============================================================================\nexport enum ThemeContextKeys {\n colorScheme = \"colorScheme\",\n layout = \"layout\",\n textStyleScheme = \"textStyleScheme\",\n designTokenScheme = \"designTokenScheme\",\n}\n\nexport interface ThemeSpecOptions {\n /** for color customisation, can specify subset of set */\n color?: ColorSetOptions | undefined;\n textStyle?: TextStyleSetOptionsType | undefined;\n designToken?: DesignTokenSetOptions | undefined;\n}\n\nexport interface ThemeSpec {\n /** Sets the color scheme of the theme */\n [ThemeContextKeys.colorScheme]: ColorScheme;\n /** Sets the text style scheme of the theme */\n [ThemeContextKeys.textStyleScheme]: TextStyleScheme;\n /** Sets the design token scheme of the theme */\n [ThemeContextKeys.designTokenScheme]: DesignTokenScheme;\n /** Sets the layout scheme of the theme */\n [ThemeContextKeys.layout]?: ThemeLayout | undefined;\n /** For specific customisations to any schemes */\n options?: ThemeSpecOptions | undefined;\n}\n\nexport interface ThemeCollectionSpec<T, V> {\n collections: T;\n defaultValue: V;\n}\n","import { ColorSet } from \"../color/types\";\nimport { BaseColorSet } from \"../spec/color-spec/base-color-set\";\nimport { BookingSGColorSet } from \"../spec/color-spec/bookingsg-color-set\";\nimport { getCollection, getValue } from \"./helper\";\nimport {\n ColorCollectionsMap,\n ColorScheme,\n ThemeCollectionSpec,\n ThemeContextKeys,\n ThemeSpec,\n} from \"./types\";\n\n// =============================================================================\n// THEME SPECIFICATION\n// =============================================================================\nconst ColorSpec: ThemeCollectionSpec<ColorCollectionsMap, ColorScheme> = {\n collections: {\n base: BaseColorSet,\n bookingsg: BookingSGColorSet,\n },\n defaultValue: \"base\",\n};\n\n// =============================================================================\n// HELPER FUNCTIONS\n// =============================================================================\nexport const getThemeColors = (attributePath: string) => {\n return (props: any): string => {\n const theme = props.theme as ThemeSpec;\n const colorSet: ColorSet = getCollection(\n ColorSpec,\n theme[ThemeContextKeys.colorScheme]\n );\n\n return theme.options && theme.options.color\n ? (getValue(colorSet, attributePath, theme.options.color) as string)\n : (getValue(colorSet, attributePath) as string);\n };\n};\n","import { ColorSet, ValidationTypes } from \"../../color/types\";\n\nexport const BaseColorSet: ColorSet = {\n Brand: {\n 1: \"#EF413D\",\n 2: \"#F26664\",\n 3: \"#F58E8B\",\n 4: \"#F9B5B2\",\n 5: \"#FDDDD7\",\n 6: \"#FFEEEA\",\n },\n Primary: \"#1C76D5\",\n PrimaryDark: \"#1869BF\",\n Secondary: \"#0056b3\",\n Accent: {\n Dark: {\n 1: \"#465A88\",\n 2: \"#556D99\",\n 3: \"#8D8DBF\",\n },\n Light: {\n 1: \"#57A9FF\",\n 2: \"#81BFFF\",\n 3: \"#BED7FF\",\n 4: \"#E2ECFD\",\n 5: \"#F6F8FF\",\n 6: \"#FBFCFE\",\n },\n },\n Neutral: {\n 1: \"#282828\", // Text Black\n 2: \"#424242\",\n 3: \"#686868\", // Text Grey\n 4: \"#A4A4A4\",\n 5: \"#E0E4E5\",\n 6: \"#ECEFEF\",\n 7: \"#F8F8F8\",\n 8: \"#FFFFFF\",\n },\n Validation: {\n Green: {\n Text: \"#097123\", // Validation Text\n Icon: \"#4FC029\",\n Border: \"#95D97F\",\n Background: \"#F9FDF8\", // Validation Background\n },\n Orange: {\n Text: \"#B34E00\", // Validation Text\n Icon: \"#FEAB10\",\n Border: \"#F9CB77\",\n Background: \"#FFFCF7\", // Validation Background\n Badge: \"#F57F17\", // Orange Badge Notification\n },\n Red: {\n Text: \"#C60000\", // Validation Text\n Icon: \"#C60000\",\n Border: \"#DD6666\",\n Background: \"#FDF7F7\", // Validation Background\n },\n } as ValidationTypes,\n Shadow: {\n Accent: \"rgba(87, 169, 255, 0.5)\",\n Red: \"rgba(221, 102, 102, 0.8)\",\n },\n};\n","import { ColorSet, ValidationTypes } from \"../../color/types\";\n\nexport const BookingSGColorSet: ColorSet = {\n Brand: {\n 1: \"#EF413D\",\n 2: \"#F26664\",\n 3: \"#F58E8B\",\n 4: \"#F9B5B2\",\n 5: \"#FDDDD7\",\n 6: \"#FFEEEA\",\n },\n Primary: \"#6F4AB8\",\n PrimaryDark: \"#6443A6\",\n Secondary: \"#6443A6\",\n Accent: {\n Dark: {\n 1: \"#355985\",\n 2: \"#68819D\",\n 3: \"#9AABBE\",\n },\n Light: {\n 1: \"#9F82D9\",\n 2: \"#B5A5D7\",\n 3: \"#CEC3E4 \",\n 4: \"#E2DBEF\",\n 5: \"#F2EFF8\",\n 6: \"#F7F6FB\",\n },\n },\n Neutral: {\n 1: \"#282828\", // Text Black\n 2: \"#424242\",\n 3: \"#686868\", // Text Grey\n 4: \"#A4A4A4\",\n 5: \"#E0E4E5\",\n 6: \"#ECEFEF\",\n 7: \"#F8F8F8\",\n 8: \"#FFFFFF\",\n },\n Validation: {\n Green: {\n Text: \"#097123\", // Validation Text\n Icon: \"#4FC029\",\n Border: \"#95D97F\",\n Background: \"#F9FDF8\", // Validation Background\n },\n Orange: {\n Text: \"#B34E00\", // Validation Text\n Icon: \"#FEAB10\",\n Border: \"#F9CB77\",\n Background: \"#FFFCF7\", // Validation Background\n Badge: \"#F57F17\", // Orange Badge Notification\n },\n Red: {\n Text: \"#C60000\", // Validation Text\n Icon: \"#C60000\",\n Border: \"#DD6666\",\n Background: \"#FDF7F7\", // Validation Background\n },\n } as ValidationTypes,\n Shadow: {\n Accent: \"rgba(161, 87, 255, 0.5)\",\n Red: \"rgba(221, 102, 102, 0.8)\",\n },\n};\n","import { getThemeColors } from \"../theme/color-theme-helper\";\nimport { PropertiesToType } from \"../util/utility-types\";\nimport { ColorSet } from \"./types\";\n\nexport const Color: PropertiesToType<\n ColorSet,\n ReturnType<typeof getThemeColors>\n> = {\n Brand: {\n 1: getThemeColors(\"Brand.1\"),\n 2: getThemeColors(\"Brand.2\"),\n 3: getThemeColors(\"Brand.3\"),\n 4: getThemeColors(\"Brand.4\"),\n 5: getThemeColors(\"Brand.5\"),\n 6: getThemeColors(\"Brand.6\"),\n },\n Primary: getThemeColors(\"Primary\"),\n PrimaryDark: getThemeColors(\"PrimaryDark\"),\n Secondary: getThemeColors(\"Secondary\"),\n Accent: {\n Light: {\n 1: getThemeColors(\"Accent.Light.1\"),\n 2: getThemeColors(\"Accent.Light.2\"),\n 3: getThemeColors(\"Accent.Light.3\"),\n 4: getThemeColors(\"Accent.Light.4\"),\n 5: getThemeColors(\"Accent.Light.5\"),\n 6: getThemeColors(\"Accent.Light.6\"),\n },\n Dark: {\n 1: getThemeColors(\"Accent.Dark.1\"),\n 2: getThemeColors(\"Accent.Dark.2\"),\n 3: getThemeColors(\"Accent.Dark.3\"),\n },\n },\n Neutral: {\n 1: getThemeColors(\"Neutral.1\"),\n 2: getThemeColors(\"Neutral.2\"),\n 3: getThemeColors(\"Neutral.3\"),\n 4: getThemeColors(\"Neutral.4\"),\n 5: getThemeColors(\"Neutral.5\"),\n 6: getThemeColors(\"Neutral.6\"),\n 7: getThemeColors(\"Neutral.7\"),\n 8: getThemeColors(\"Neutral.8\"),\n },\n Validation: {\n Green: {\n Text: getThemeColors(\"Validation.Green.Text\"),\n Icon: getThemeColors(\"Validation.Green.Icon\"),\n Border: getThemeColors(\"Validation.Green.Border\"),\n Background: getThemeColors(\"Validation.Green.Background\"),\n },\n Orange: {\n Text: getThemeColors(\"Validation.Orange.Text\"),\n Icon: getThemeColors(\"Validation.Orange.Icon\"),\n Border: getThemeColors(\"Validation.Orange.Border\"),\n Background: getThemeColors(\"Validation.Orange.Background\"),\n Badge: getThemeColors(\"Validation.Orange.Badge\"),\n },\n Red: {\n Text: getThemeColors(\"Validation.Red.Text\"),\n Icon: getThemeColors(\"Validation.Red.Icon\"),\n Border: getThemeColors(\"Validation.Red.Border\"),\n Background: getThemeColors(\"Validation.Red.Background\"),\n },\n },\n Shadow: {\n Accent: getThemeColors(\"Shadow.Accent\"),\n Red: getThemeColors(\"Shadow.Red\"),\n },\n};\n","import styled, { css } from \"styled-components\";\nimport { Color } from \"../color/color\";\n\ninterface StyleProps {\n $outline: \"none\" | \"browser\";\n $highlight: boolean;\n}\n\nexport const Main = styled.button<StyleProps>`\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 1.5rem;\n background-color: transparent;\n border: none;\n cursor: pointer;\n\n img {\n height: 1rem;\n width: 1rem;\n }\n\n &:active,\n &:focus {\n ${({ $outline }) => $outline === \"none\" && \"outline: none;\"}\n\n ${({ $highlight }) =>\n $highlight &&\n css`\n background-color: ${Color.Neutral[7]};\n `}\n }\n`;\n","import React from \"react\";\nimport { ButtonRef } from \"../button/types\";\nimport { Main } from \"./icon-button.style\";\nimport { IconButtonProps } from \"./types\";\n\nconst Component = (\n {\n children,\n focusHighlight = true,\n focusOutline = \"none\",\n ...otherProps\n }: IconButtonProps,\n ref: ButtonRef\n) => {\n return (\n <Main\n ref={ref}\n $outline={focusOutline}\n $highlight={focusHighlight}\n {...otherProps}\n >\n {children}\n </Main>\n );\n};\n\nexport const IconButton = React.forwardRef(Component);\n","import { MediaWidth } from \"../media/types\";\n\nexport const MediaWidths: MediaWidth = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 480,\n tablet: 1199,\n desktopM: 1399,\n desktopL: 1999,\n desktop4k: 3840,\n};\n","import { MediaWidths as MediaWidthsSpec } from \"../spec/media-spec\";\nimport { MediaType, MediaWidth } from \"./types\";\n\n// =============================================================================\n// HELPER FUNCTION\n// =============================================================================\nconst getMediaQuerySpec = (type: \"max-width\" | \"min-width\") => {\n return Object.keys(MediaWidthsSpec).reduce((accumulator, key) => {\n const mediaWidth = MediaWidthsSpec[key as keyof MediaWidth];\n accumulator[\n key as keyof MediaType\n ] = `@media screen and (${type}: ${mediaWidth}px)`;\n\n return accumulator;\n }, {} as MediaType);\n};\n\n// =============================================================================\n// EXPORTS\n// =============================================================================\nexport const MediaQuery = {\n MaxWidth: getMediaQuerySpec(\"max-width\"),\n MinWidth: getMediaQuerySpec(\"min-width\"),\n};\n\nexport const MediaWidths = MediaWidthsSpec;\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { MediaQuery } from \"../media/media\";\nimport { ContainerProps, ContainerType, DivRef } from \"./types\";\n\nconst Component = (props: ContainerProps, ref: DivRef): JSX.Element => {\n const {\n children,\n \"data-testid\": testId = \"container\",\n type = \"flex\",\n ...otherProps\n } = props;\n\n return (\n <StyledContainer\n ref={ref}\n data-testid={testId}\n type={type}\n {...otherProps}\n >\n {children}\n </StyledContainer>\n );\n};\n\n// =============================================================================\n// EXPORT\n// =============================================================================\nexport const Container = React.forwardRef(Component);\n\n// =============================================================================\n// STYLING\n// =============================================================================\ninterface StyleProps {\n type: ContainerType;\n}\n\nconst StyledContainer = styled.div<StyleProps>`\n flex-grow: 1;\n margin: 0 auto;\n position: relative;\n width: auto;\n height: auto;\n padding: 0 0.75rem;\n\n /* Max width restrictions */\n max-width: 1320px;\n\n ${MediaQuery.MaxWidth.desktopM} {\n max-width: 1140px;\n }\n\n ${MediaQuery.MaxWidth.tablet} {\n max-width: 720px;\n }\n\n ${MediaQuery.MaxWidth.mobileL} {\n width: 100%;\n padding: 0;\n max-width: unset;\n }\n\n ${(props) => {\n switch (props.type) {\n case \"grid\":\n return css`\n column-gap: 2rem;\n display: grid;\n grid-template-columns: repeat(12, minmax(0, 1fr));\n\n ${MediaQuery.MaxWidth.tablet} {\n column-gap: 1.5rem;\n grid-template-columns: repeat(8, minmax(0, 1fr));\n }\n\n ${MediaQuery.MaxWidth.mobileL} {\n column-gap: 1rem;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n `;\n case \"flex-column\":\n return css`\n display: flex;\n flex-direction: column;\n `;\n case \"flex\":\n default:\n return css`\n display: flex;\n `;\n }\n }}\n`;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { DivRef, SectionProps } from \"./types\";\n\nconst Component = (props: SectionProps, ref: DivRef): JSX.Element => {\n const {\n children,\n \"data-testid\": testId = \"section\",\n ...otherProps\n } = props;\n\n return (\n <StyledSection ref={ref} data-testid={testId} {...otherProps}>\n {children}\n </StyledSection>\n );\n};\n\n// =============================================================================\n// EXPORT\n// =============================================================================\nexport const Section = React.forwardRef(Component);\n\n// =============================================================================\n// STYLING\n// =============================================================================\nconst StyledSection = styled.section`\n display: block;\n position: relative;\n padding: 0 1.5rem;\n\n // Extra enforcement\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n`;\n","import React from \"react\";\nimport { Container } from \"./container\";\nimport { Section } from \"./section\";\nimport { ContentProps, DivRef } from \"./types\";\n\nconst Component = (props: ContentProps, ref: DivRef): JSX.Element => {\n const {\n children,\n \"data-testid\": testId = \"content\",\n className,\n type = \"flex\",\n ...otherProps\n } = props;\n\n return (\n <Section\n ref={ref}\n data-testid={testId}\n className={className}\n {...otherProps}\n >\n <Container\n data-testid={`${testId}-container`}\n type={type}\n data-id=\"container\"\n >\n {children}\n </Container>\n </Section>\n );\n};\n\n// =============================================================================\n// EXPORT\n// =============================================================================\nexport const Content = React.forwardRef(Component);\n","import { Container } from \"./container\";\nimport { Content } from \"./content\";\nimport { Section } from \"./section\";\n\nexport const Layout = {\n Section,\n Container,\n Content,\n};\n\nexport * from \"./types\";\n","export const FontFamily = {\n OpenSans: {\n Regular: \"Open Sans\",\n Semibold: \"Open Sans Semibold\",\n Bold: \"Open Sans Bold\",\n Light: \"Open Sans Light\",\n },\n MerriWeather: \"Merriweather\",\n};\n","import { BaseTextStyleSet } from \"../spec/text-spec/base-text-style-set\";\nimport { TextStyleSetType } from \"../text/types\";\nimport { getCollection, getValue } from \"./helper\";\nimport {\n FontStyleCollectionsMap,\n TextStyleScheme,\n ThemeCollectionSpec,\n ThemeContextKeys,\n ThemeSpec,\n} from \"./types\";\n\n// =============================================================================\n// THEME SPECIFICATION\n// =============================================================================\nconst TextStyleSpec: ThemeCollectionSpec<\n FontStyleCollectionsMap,\n TextStyleScheme\n> = {\n collections: {\n base: BaseTextStyleSet,\n },\n defaultValue: \"base\",\n};\n\n// =============================================================================\n// HELPER FUNCTIONS\n// =============================================================================\nexport const getThemeTextStyles = (attributePath: string) => {\n return (props: any): string | number => {\n const theme = props.theme as ThemeSpec;\n const textStyleSet: TextStyleSetType = getCollection(\n TextStyleSpec,\n theme[ThemeContextKeys.textStyleScheme]\n );\n\n return theme.options && theme.options.textStyle\n ? getValue(textStyleSet, attributePath, theme.options.textStyle)\n : getValue(textStyleSet, attributePath);\n };\n};\n","import { FontFamily } from \"./font-spec\";\nimport { TextStyleSetType } from \"../../text/types\";\n\n// In rem unit\nexport const BaseTextStyleSet: TextStyleSetType = {\n D1: {\n fontFamily: FontFamily.OpenSans.Bold,\n fontSize: 3,\n fontWeight: 700,\n lineHeight: 4,\n letterSpacing: -0.056,\n },\n D2: {\n fontFamily: FontFamily.OpenSans.Bold,\n fontSize: 2.5,\n fontWeight: 700,\n lineHeight: 3.5,\n letterSpacing: -0.032,\n },\n D3: {\n fontFamily: FontFamily.OpenSans.Bold,\n fontSize: 1.625,\n fontWeight: 700,\n lineHeight: 2.25,\n },\n D4: {\n fontFamily: FontFamily.OpenSans.Bold,\n fontSize: 1.375,\n fontWeight: 700,\n lineHeight: 1.75,\n },\n DBody: {\n fontFamily: FontFamily.OpenSans.Regular,\n fontSize: 1.375,\n lineHeight: 1.75,\n },\n H1: {\n fontFamily: FontFamily.OpenSans.Bold,\n fontSize: 2,\n fontWeight: 700,\n lineHeight: 2.5,\n },\n H2: {\n fontFamily: FontFamily.OpenSans.Bold,\n fontSize: 1.625,\n fontWeight: 700,\n lineHeight: 2.25,\n },\n H3: {\n fontFamily: FontFamily.OpenSans.Bold,\n fontSize: 1.375,\n fontWeight: 700,\n lineHeight: 1.75,\n },\n H4: {\n fontFamily: FontFamily.OpenSans.Bold,\n fontSize: 1.125,\n fontWeight: 700,\n lineHeight: 1.625,\n },\n H5: {\n fontFamily: FontFamily.OpenSans.Bold,\n fontSize: 1,\n fontWeight: 700,\n lineHeight: 1.5,\n letterSpacing: 0.014,\n },\n H6: {\n fontFamily: FontFamily.OpenSans.Bold,\n fontSize: 0.875,\n fontWeight: 700,\n lineHeight: 1.6,\n letterSpacing: 0.012,\n },\n Body: {\n fontFamily: FontFamily.OpenSans.Regular,\n fontSize: 1.125,\n lineHeight: 1.625,\n },\n BodySmall: {\n fontFamily: FontFamily.OpenSans.Regular,\n fontSize: 1,\n lineHeight: 1.5,\n letterSpacing: 0.014,\n },\n XSmall: {\n fontFamily: FontFamily.OpenSans.Regular,\n fontSize: 0.75,\n lineHeight: 1.2,\n letterSpacing: 0.012,\n },\n};\n","import { getThemeTextStyles } from \"../theme/text-theme-helper\";\nimport { PropertiesToType } from \"../util/utility-types\";\nimport { TextStyleSetType } from \"./types\";\n\nexport const TextStyle: PropertiesToType<\n TextStyleSetType,\n ReturnType<typeof getThemeTextStyles>\n> = {\n D1: {\n fontFamily: getThemeTextStyles(\"D1.fontFamily\"),\n fontSize: getThemeTextStyles(\"D1.fontSize\"),\n fontWeight: getThemeTextStyles(\"D1.fontWeight\"),\n lineHeight: getThemeTextStyles(\"D1.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"D1.letterSpacing\"),\n },\n D2: {\n fontFamily: getThemeTextStyles(\"D2.fontFamily\"),\n fontSize: getThemeTextStyles(\"D2.fontSize\"),\n fontWeight: getThemeTextStyles(\"D2.fontWeight\"),\n lineHeight: getThemeTextStyles(\"D2.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"D2.letterSpacing\"),\n },\n D3: {\n fontFamily: getThemeTextStyles(\"D3.fontFamily\"),\n fontSize: getThemeTextStyles(\"D3.fontSize\"),\n fontWeight: getThemeTextStyles(\"D3.fontWeight\"),\n lineHeight: getThemeTextStyles(\"D3.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"D3.letterSpacing\"),\n },\n D4: {\n fontFamily: getThemeTextStyles(\"D4.fontFamily\"),\n fontSize: getThemeTextStyles(\"D4.fontSize\"),\n fontWeight: getThemeTextStyles(\"D4.fontWeight\"),\n lineHeight: getThemeTextStyles(\"D4.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"D4.letterSpacing\"),\n },\n DBody: {\n fontFamily: getThemeTextStyles(\"DBody.fontFamily\"),\n fontSize: getThemeTextStyles(\"DBody.fontSize\"),\n fontWeight: getThemeTextStyles(\"DBody.fontWeight\"),\n lineHeight: getThemeTextStyles(\"DBody.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"DBody.letterSpacing\"),\n },\n H1: {\n fontFamily: getThemeTextStyles(\"H1.fontFamily\"),\n fontSize: getThemeTextStyles(\"H1.fontSize\"),\n fontWeight: getThemeTextStyles(\"H1.fontWeight\"),\n lineHeight: getThemeTextStyles(\"H1.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"H1.letterSpacing\"),\n },\n H2: {\n fontFamily: getThemeTextStyles(\"H2.fontFamily\"),\n fontSize: getThemeTextStyles(\"H2.fontSize\"),\n fontWeight: getThemeTextStyles(\"H2.fontWeight\"),\n lineHeight: getThemeTextStyles(\"H2.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"H2.letterSpacing\"),\n },\n H3: {\n fontFamily: getThemeTextStyles(\"H3.fontFamily\"),\n fontSize: getThemeTextStyles(\"H3.fontSize\"),\n fontWeight: getThemeTextStyles(\"H3.fontWeight\"),\n lineHeight: getThemeTextStyles(\"H3.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"H3.letterSpacing\"),\n },\n H4: {\n fontFamily: getThemeTextStyles(\"H4.fontFamily\"),\n fontSize: getThemeTextStyles(\"H4.fontSize\"),\n fontWeight: getThemeTextStyles(\"H4.fontWeight\"),\n lineHeight: getThemeTextStyles(\"H4.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"H4.letterSpacing\"),\n },\n H5: {\n fontFamily: getThemeTextStyles(\"H5.fontFamily\"),\n fontSize: getThemeTextStyles(\"H5.fontSize\"),\n fontWeight: getThemeTextStyles(\"H5.fontWeight\"),\n lineHeight: getThemeTextStyles(\"H5.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"H5.letterSpacing\"),\n },\n H6: {\n fontFamily: getThemeTextStyles(\"H6.fontFamily\"),\n fontSize: getThemeTextStyles(\"H6.fontSize\"),\n fontWeight: getThemeTextStyles(\"H6.fontWeight\"),\n lineHeight: getThemeTextStyles(\"H6.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"H6.letterSpacing\"),\n },\n Body: {\n fontFamily: getThemeTextStyles(\"Body.fontFamily\"),\n fontSize: getThemeTextStyles(\"Body.fontSize\"),\n fontWeight: getThemeTextStyles(\"Body.fontWeight\"),\n lineHeight: getThemeTextStyles(\"Body.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"Body.letterSpacing\"),\n },\n BodySmall: {\n fontFamily: getThemeTextStyles(\"BodySmall.fontFamily\"),\n fontSize: getThemeTextStyles(\"BodySmall.fontSize\"),\n fontWeight: getThemeTextStyles(\"BodySmall.fontWeight\"),\n lineHeight: getThemeTextStyles(\"BodySmall.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"BodySmall.letterSpacing\"),\n },\n XSmall: {\n fontFamily: getThemeTextStyles(\"XSmall.fontFamily\"),\n fontSize: getThemeTextStyles(\"XSmall.fontSize\"),\n fontWeight: getThemeTextStyles(\"XSmall.fontWeight\"),\n lineHeight: getThemeTextStyles(\"XSmall.lineHeight\"),\n letterSpacing: getThemeTextStyles(\"XSmall.letterSpacing\"),\n },\n};\n","import { css } from \"styled-components\";\nimport { FontFamily } from \"../spec/text-spec/font-spec\";\nimport { TextLinkSizeType, TextSizeType, TextWeight } from \"./types\";\nimport { TextStyle } from \"./text-style\";\n\n// =============================================================================\n// FONT STYLE\n// =============================================================================\nconst getFont = (weight: TextWeight) => {\n switch (weight) {\n case 700:\n case \"bold\":\n return FontFamily.OpenSans.Bold;\n case 600:\n case \"semibold\":\n return FontFamily.OpenSans.Semibold;\n case 300:\n case \"light\":\n return FontFamily.OpenSans.Light;\n case 400:\n case \"regular\":\n return FontFamily.OpenSans.Regular;\n default:\n return \"\";\n }\n};\n\nconst getFontFamily = (\n type: TextSizeType | TextLinkSizeType,\n weight?: TextWeight\n) => {\n return (props: any) => {\n const fontFamilyFromTheme = TextStyle[type].fontFamily(props) as string;\n const fontWeightFromTheme = TextStyle[type].fontWeight(\n props\n ) as TextWeight;\n\n if (Object.values(FontFamily.OpenSans).includes(fontFamilyFromTheme)) {\n return css`\n font-family: ${getFont(weight) ||\n getFont(fontWeightFromTheme) ||\n fontFamilyFromTheme};\n font-weight: normal !important;\n `;\n }\n\n return css`\n font-family: ${fontFamilyFromTheme};\n font-weight: ${(getFontWeight(weight) || fontWeightFromTheme) ??\n \"normal\"};\n `;\n };\n};\n\nconst getFontWeight = (weight: TextWeight) => {\n switch (weight) {\n case 300:\n case \"light\":\n return 300;\n case 400:\n case \"regular\":\n return 400;\n case 600:\n case \"semibold\":\n return 600;\n case 700:\n case \"bold\":\n return 700;\n case 900:\n case \"black\":\n return 900;\n default:\n return \"\";\n }\n};\n\n// =============================================================================\n// TEXT STYLE\n// =============================================================================\nconst getTextStyle = (\n type: TextSizeType | TextLinkSizeType,\n weight: TextWeight,\n paragraph = false\n) => {\n return (props: any) => {\n const attrs = TextStyle[type];\n const fontSize = attrs.fontSize(props) as number;\n\n // Add extra margin for paragraphs\n const getMarginBottomStyle = () => {\n const marginBottomScale = paragraph ? 1.05 : 0;\n return css`\n margin-bottom: ${fontSize * marginBottomScale}rem;\n `;\n };\n\n return css`\n ${getFontFamily(type, weight)}\n font-size: ${fontSize}rem !important;\n line-height: ${attrs.lineHeight}rem !important;\n letter-spacing: ${attrs.letterSpacing(props) || 0}rem !important;\n ${getMarginBottomStyle()}\n `;\n };\n};\n\nconst getDisplayStyle = (inline = false, paragraph = false) => {\n if (paragraph) {\n return css`\n display: block;\n `;\n } else if (inline) {\n return css`\n display: inline;\n `;\n } else {\n return css`\n display: block;\n `;\n }\n};\n\n// =============================================================================\n// EXPORTS\n// =============================================================================\nexport const TextStyleHelper = {\n getFontFamily,\n getTextStyle,\n getDisplayStyle,\n};\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var C=require(\"react/jsx-runtime\");const e=e=>C.jsx(\"svg\",{width:\"1em\",height:\"1em\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",...e,children:C.jsx(\"path\",{d:\"M4.25 17.5C3.764 17.5 3.35067 17.33 3.01 16.99C2.67 16.6493 2.5 16.236 2.5 15.75V4.25C2.5 3.764 2.67 3.35067 3.01 3.01C3.35067 2.67 3.764 2.5 4.25 2.5H9.208C9.444 2.5 9.649 2.58667 9.823 2.76C9.99633 2.934 10.083 3.139 10.083 3.375C10.083 3.611 9.99633 3.816 9.823 3.99C9.649 4.16333 9.444 4.25 9.208 4.25H4.25V15.75H15.75V10.792C15.75 10.556 15.8367 10.351 16.01 10.177C16.184 10.0037 16.389 9.917 16.625 9.917C16.861 9.917 17.066 10.0037 17.24 10.177C17.4133 10.351 17.5 10.556 17.5 10.792V15.75C17.5 16.236 17.33 16.6493 16.99 16.99C16.6493 17.33 16.236 17.5 15.75 17.5H4.25ZM7.5 12.5C7.33333 12.3333 7.25 12.1283 7.25 11.885C7.25 11.6423 7.33333 11.4377 7.5 11.271L14.521 4.25H12.708C12.472 4.25 12.2673 4.16333 12.094 3.99C11.92 3.816 11.833 3.611 11.833 3.375C11.833 3.139 11.92 2.934 12.094 2.76C12.2673 2.58667 12.472 2.5 12.708 2.5H16.625C16.861 2.5 17.066 2.58667 17.24 2.76C17.4133 2.934 17.5 3.139 17.5 3.375V7.292C17.5 7.528 17.4133 7.73267 17.24 7.906C17.066 8.08 16.861 8.167 16.625 8.167C16.389 8.167 16.184 8.08 16.01 7.906C15.8367 7.73267 15.75 7.528 15.75 7.292V5.479L8.708 12.521C8.54133 12.6877 8.34367 12.771 8.115 12.771C7.88567 12.771 7.68067 12.6807 7.5 12.5Z\",fill:\"currentColor\"})});e.displayName=\"ExternalIcon\",exports.ExternalIcon=e;\n","import { ExternalIcon } from \"@lifesg/react-icons/external\";\nimport styled, { css } from \"styled-components\";\nimport { Color } from \"../color/color\";\nimport { TextStyleHelper } from \"./helper\";\nimport { TextLinkProps, TextLinkStyleProps, TextProps } from \"./types\";\n\nexport namespace Text {\n export const D1 = styled.h1<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"D1\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const D2 = styled.h1<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"D2\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const D3 = styled.h1<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"D3\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const D4 = styled.h1<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"D4\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const DBody = styled.h1<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"DBody\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const H1 = styled.h1<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"H1\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const H2 = styled.h2<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"H2\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const H3 = styled.h3<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"H3\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const H4 = styled.h4<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"H4\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const H5 = styled.h5<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"H5\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const H6 = styled.h6<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"H6\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const Body = styled.p<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"Body\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const BodySmall = styled.p<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"BodySmall\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const XSmall = styled.span<TextProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(\n \"XSmall\",\n props.weight,\n props.paragraph\n )}\n color: ${Color.Neutral[1]};\n ${TextStyleHelper.getDisplayStyle(\n props.inline,\n props.paragraph\n )}\n `;\n }}\n `;\n\n export const Hyperlink = {\n Default: (props: TextLinkProps) =>\n HyperlinkComponent({ ...props, textStyle: \"Body\" }),\n Small: (props: TextLinkProps) =>\n HyperlinkComponent({ ...props, textStyle: \"BodySmall\" }),\n };\n}\n\n// =============================================================================\n// NON-EXPORTABLES\n// =============================================================================\n\nconst HyperlinkBase = styled.a<TextLinkStyleProps>`\n ${(props) => {\n return css`\n ${TextStyleHelper.getTextStyle(props.textStyle, props.weight)}\n color: ${Color.Primary};\n text-decoration: none;\n\n :hover,\n :active,\n :focus {\n color: ${Color.Secondary};\n\n svg {\n color: ${Color.Secondary};\n }\n }\n `;\n }}\n`;\n\nconst StyledExternalIcon = styled(ExternalIcon)`\n height: 1rem;\n width: 1rem;\n margin-left: 0.4rem;\n vertical-align: middle;\n`;\n\nconst HyperlinkComponent = ({\n external = false,\n children,\n ...rest\n}: TextLinkStyleProps) => {\n return (\n <HyperlinkBase {...rest}>\n {children}\n {external && <StyledExternalIcon />}\n </HyperlinkBase>\n );\n};\n","export type TextSizeType =\n | \"D1\"\n | \"D2\"\n | \"D3\"\n | \"D4\"\n | \"DBody\"\n | \"H1\"\n | \"H2\"\n | \"H3\"\n | \"H4\"\n | \"H5\"\n | \"H6\"\n | \"Body\"\n | \"BodySmall\"\n | \"XSmall\";\n\nexport type TextLinkSizeType =\n | \"Body\" // Default\n | \"BodySmall\"; // Small\n\nexport interface TextStyleSpec {\n fontFamily?: string | undefined;\n fontSize?: number | undefined;\n fontWeight?: number | undefined;\n lineHeight?: number | undefined;\n letterSpacing?: number | undefined;\n}\n\nexport type TextStyleSetType = { [key in TextSizeType]: TextStyleSpec };\n\nexport type TextStyleSetOptionsType = Partial<TextStyleSetType>;\n\nexport type TextWeight =\n | \"regular\"\n | \"semibold\"\n | \"bold\"\n | \"light\"\n | \"black\"\n | 400\n | 600\n | 700\n | 300\n | 900;\n\nexport enum RedirectScope {\n Subpage, // Pages we specified the routes (within this proj folder)\n Domain, // Pages not in the project but under the same domain name\n}\n\nexport interface TextProps extends React.HTMLAttributes<HTMLElement> {\n weight?: TextWeight | undefined;\n inline?: boolean | undefined;\n /** This is applicable only to non-headers */\n paragraph?: boolean | undefined;\n}\n\nexport interface TextLinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n weight?: TextWeight | undefined;\n /** Specifying this will add the external indicator */\n external?: boolean | undefined;\n}\n\nexport interface TextLinkStyleProps extends TextLinkProps {\n textStyle: TextLinkSizeType;\n}\n","const Base = \"all 300ms cubic-bezier(0.21, 0.79, 0.53, 1)\";\nconst Custom = (duration: number) =>\n `all ${duration}ms cubic-bezier(0.21, 0.79, 0.53, 1)`;\n\nexport const Transition = {\n Base,\n Custom,\n};\n","import { CrossIcon } from \"@lifesg/react-icons/cross\";\nimport styled, { css } from \"styled-components\";\nimport { Color } from \"../color\";\nimport { IconButton } from \"../icon-button\";\nimport { Layout } from \"../layout\";\nimport { Text, TextStyleHelper } from \"../text\";\nimport { Transition } from \"../transition\";\n\n// =============================================================================\n// STYLE INTERFACES, transient props are denoted with $\n// See more https://styled-components.com/docs/api#transient-props\n// =============================================================================\ninterface WrapperStyleProps {\n $sticky: boolean;\n}\n\n// =============================================================================\n// STYLING\n// =============================================================================\nconst commonLinkStyle = css`\n color: ${Color.Validation.Orange.Icon};\n\n svg {\n color: ${Color.Validation.Orange.Icon};\n }\n\n :hover,\n :active,\n :visited,\n :focus {\n color: ${Color.Validation.Orange.Icon};\n svg {\n color: ${Color.Validation.Orange.Icon};\n }\n }\n`;\n\nexport const Wrapper = styled.div<WrapperStyleProps>`\n position: ${(props) => (props.$sticky ? \"sticky\" : \"relative\")};\n left: 0;\n top: 0;\n width: 100%;\n transition: ${Transition.Base};\n background: ${Color.Neutral[2]};\n z-index: 25;\n`;\n\nexport const Container = styled(Layout.Content)`\n display: flex;\n`;\n\nexport const TextContainer = styled.div`\n display: flex;\n flex: 1;\n padding: 1.5rem 0;\n`;\n\nexport const Content = styled.div`\n display: inline-block;\n width: 100%;\n\n ${TextStyleHelper.getTextStyle(\"Body\", \"regular\")}\n color: ${Color.Neutral[8]};\n\n p {\n display: inline-block;\n }\n\n strong {\n ${TextStyleHelper.getFontFamily(\"Body\", \"semibold\")}\n color: ${Color.Neutral[8]};\n }\n\n a {\n ${TextStyleHelper.getTextStyle(\"Body\", \"regular\")}\n ${commonLinkStyle}\n }\n`;\n\nexport const ContentLink = styled(Text.Hyperlink.Default)`\n position: relative;\n\n ${commonLinkStyle}\n`;\n\nexport const StyledIconButton = styled(IconButton)`\n margin-right: -1.5rem;\n padding-left: 1rem;\n height: max-content;\n`;\n\nexport const StyledIcon = styled(CrossIcon)`\n height: 1.875rem;\n width: 1.875rem;\n color: ${Color.Neutral[8]};\n`;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Container,\n Content,\n ContentLink as NBLink,\n StyledIcon,\n StyledIconButton,\n TextContainer,\n Wrapper,\n} from \"./notification-banner.styles\";\nimport {\n NotificationBannerProps,\n NotificationBannerWithForwardedRefProps,\n} from \"./types\";\n\nexport const NBComponent = ({\n children,\n visible = true,\n dismissible = true,\n sticky = true,\n onDismiss,\n id,\n forwardedRef,\n ...otherProps\n}: NotificationBannerWithForwardedRefProps): JSX.Element => {\n // =============================================================================\n // CONST, STATE, REF\n // =============================================================================\n const testId = otherProps[\"data-testid\"];\n\n const [isVisible, setVisible] = useState<boolean>(visible);\n\n // =============================================================================\n // EFFECTS\n // =============================================================================\n useEffect(() => {\n setVisible(visible);\n }, [visible]);\n\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleDismiss = () => {\n setVisible(false);\n\n if (dismissible && onDismiss) onDismiss();\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n if (!isVisible) return null;\n\n return (\n <Wrapper ref={forwardedRef} $sticky={sticky} {...otherProps}>\n <Container id={formatId(\"container\", id)}>\n <TextContainer>\n <Content data-testid={formatId(\"text-content\", testId)}>\n {children}\n </Content>\n </TextContainer>\n {dismissible && (\n <StyledIconButton\n onClick={handleDismiss}\n id={formatId(\"dismiss-button\", id)}\n data-testid={formatId(\"dismiss-button\", testId)}\n focusHighlight={false}\n >\n <StyledIcon />\n </StyledIconButton>\n )}\n </Container>\n </Wrapper>\n );\n};\n\n/**\n * Intermediate component to handle passing the ref as a prop\n */\nconst NBWithRef = (\n props: NotificationBannerProps,\n ref: React.Ref<HTMLDivElement>\n) => {\n return <NBComponent {...props} forwardedRef={ref} />;\n};\n\n// =============================================================================\n// HELPER FUNCTIONS\n// =============================================================================\nconst formatId = (componentName: string, id = \"wrapper\"): string => {\n return `${id}-${componentName}`;\n};\n\n// =============================================================================\n// EXPORTABLE\n// =============================================================================\nconst Base = React.forwardRef(NBWithRef);\nexport const NotificationBanner = Object.assign(Base, {\n Link: NBLink,\n});\n","/*! @license DOMPurify 2.4.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.1/LICENSE */\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\nvar _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\n\nif (!construct) {\n construct = function construct(Func, args) {\n return _construct(Func, _toConsumableArray(args));\n };\n}\n\nvar arrayForEach = unapply(Array.prototype.forEach);\nvar arrayPop = unapply(Array.prototype.pop);\nvar arrayPush = unapply(Array.prototype.push);\nvar stringToLowerCase = unapply(String.prototype.toLowerCase);\nvar stringToString = unapply(String.prototype.toString);\nvar stringMatch = unapply(String.prototype.match);\nvar stringReplace = unapply(String.prototype.replace);\nvar stringIndexOf = unapply(String.prototype.indexOf);\nvar stringTrim = unapply(String.prototype.trim);\nvar regExpTest = unapply(RegExp.prototype.test);\nvar typeErrorCreate = unconstruct(TypeError);\nfunction unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n}\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n}\n/* Add properties to a lookup table */\n\nfunction addToSet(set, array, transformCaseFunc) {\n transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;\n\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n\n while (l--) {\n var element = array[l];\n\n if (typeof element === 'string') {\n var lcElement = transformCaseFunc(element);\n\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n/* Shallow clone an object */\n\nfunction clone(object) {\n var newObject = create(null);\n var property;\n\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n}\n/* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n}\n\nvar html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']); // SVG\n\nvar svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nvar svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']); // List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\n\nvar svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nvar mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']); // Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\n\nvar mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nvar text = freeze(['#text']);\n\nvar html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\nvar svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nvar mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nvar xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\nvar MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n\nvar ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nvar TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nvar DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n\nvar ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n\nvar IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nvar IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nvar ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nvar DOCTYPE_NAME = seal(/^html$/i);\n\nvar getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n\n\nvar _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n } // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n\n\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html) {\n return html;\n },\n createScriptURL: function createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\n\nfunction createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n\n\n DOMPurify.version = '2.4.1';\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n HTMLFormElement = window.HTMLFormElement,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n var ElementPrototype = Element.prototype;\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode'); // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n var documentMode = {};\n\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n var MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n ERB_EXPR$1 = ERB_EXPR,\n TMPLIT_EXPR$1 = TMPLIT_EXPR,\n DATA_ATTR$1 = DATA_ATTR,\n ARIA_ATTR$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));\n /* Allowed attribute names */\n\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n\n var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n\n var FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n\n var FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n\n var ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n\n var ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n\n var SAFE_FOR_TEMPLATES = false;\n /* Decide if document with <html>... should be returned */\n\n var WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n\n var SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n\n var FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n\n var RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n\n var RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n\n var RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n\n var SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n\n var SANITIZE_NAMED_PROPS = false;\n var SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n\n var KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n\n var IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n\n var USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n\n var ALLOWED_NAMESPACES = null;\n var DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n /* Parsing of strict XHTML documents */\n\n var PARSER_MEDIA_TYPE;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc;\n /* Keep a reference to config to pass to hooks */\n\n var CONFIG = null;\n /* Ideally, do not touch anything below this line */\n\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n var isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n\n\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n\n\n if (!cfg || _typeof(cfg) !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n\n\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE; // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = 'ALLOWED_NAMESPACES' in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n\n\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));\n ALLOWED_ATTR = [];\n\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n\n\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n\n\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n\n\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n\n\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n } // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n\n\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']); // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n\n var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n\n var ALL_SVG_TAGS = addToSet({}, svg$1);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n var ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element); // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n } // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n\n\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n } // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n\n\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n } // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n\n\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n } // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n\n\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n } // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n\n\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n } // For XHTML and XML documents that support custom namespaces\n\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n } // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n\n\n return false;\n };\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n\n\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n\n\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name); // We void attribute values for unremovable \"is\"\" attributes\n\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n\n\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc;\n var leadingWhitespace;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n\n\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {// Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n\n\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n\n\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n\n\n var _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n };\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n\n\n var _isNode = function _isNode(object) {\n return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n\n\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n\n\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content;\n /* Execute a hook if present */\n\n _executeHook('beforeSanitizeElements', currentNode, null);\n /* Check if element is clobbered or can clobber */\n\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Check if tagname contains Unicode */\n\n\n if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Now let's check the element's type and name */\n\n\n var tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n\n\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Mitigate a problem with templates inside select */\n\n\n if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Remove element if anything forbids its presence */\n\n\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;\n }\n /* Keep content except for bad-listed elements */\n\n\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n var parentNode = getParentNode(currentNode) || currentNode.parentNode;\n var childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n var childCount = childNodes.length;\n\n for (var i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n\n return true;\n }\n /* Check whether element has a valid namespace */\n\n\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n\n return true;\n }\n\n if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Sanitize element content to be template-safe */\n\n\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$1, ' ');\n content = stringReplace(content, ERB_EXPR$1, ' ');\n content = stringReplace(content, TMPLIT_EXPR$1, ' ');\n\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n\n\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n\n\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n\n\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if ( // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if (!value) ; else {\n return false;\n }\n\n return true;\n };\n /**\n * _basicCustomElementCheck\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n * @param {string} tagName name of the tag of the node to sanitize\n */\n\n\n var _basicCustomElementTest = function _basicCustomElementTest(tagName) {\n return tagName.indexOf('-') > 0;\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n\n\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr;\n var value;\n var lcName;\n var l;\n /* Execute a hook if present */\n\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n value = name === 'value' ? attr.value : stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n /* Execute a hook if present */\n\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n\n\n _removeAttribute(name, currentNode);\n /* Did the hooks approve of the attribute? */\n\n\n if (!hookEvent.keepAttr) {\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n\n\n if (regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n\n\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$1, ' ');\n value = stringReplace(value, ERB_EXPR$1, ' ');\n value = stringReplace(value, TMPLIT_EXPR$1, ' ');\n }\n /* Is `value` valid for this attribute? */\n\n\n var lcTag = transformCaseFunc(currentNode.nodeName);\n\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n\n\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode); // Prefix the value and later re-create the attribute with the sanitized value\n\n\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Handle attributes that require Trusted Types */\n\n\n if (trustedTypesPolicy && _typeof(trustedTypes) === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n value = trustedTypesPolicy.createHTML(value);\n break;\n\n case 'TrustedScriptURL':\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n\n\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n /* Execute a hook if present */\n\n\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n\n\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode;\n\n var shadowIterator = _createIterator(fragment);\n /* Execute a hook if present */\n\n\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n /* Sanitize tags and elements */\n\n\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n /* Deep shadow DOM detected */\n\n\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n /* Check attributes, sanitize if necessary */\n\n\n _sanitizeAttributes(shadowNode);\n }\n /* Execute a hook if present */\n\n\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n\n\n DOMPurify.sanitize = function (dirty) {\n var cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var body;\n var importedNode;\n var currentNode;\n var oldNode;\n var returnNode;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n\n IS_EMPTY_INPUT = !dirty;\n\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n\n\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n /* Check we can run. Otherwise fall back or ignore */\n\n\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n /* Assign config vars */\n\n\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n\n\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n var tagName = transformCaseFunc(dirty.nodeName);\n\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n\n\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n\n\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n\n\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n\n\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n /* Sanitize tags and elements */\n\n\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n /* Shadow DOM detected, sanitize it */\n\n\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n /* Check attributes, sanitize if necessary */\n\n\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n /* If we sanitized `dirty` in-place, return it. */\n\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n\n\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n\n\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, ' ');\n serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n\n\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n\n SET_CONFIG = true;\n };\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n\n\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n\n\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = transformCaseFunc(tag);\n var lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n\n\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n\n\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n\n\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n\n\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.js.map\n","import DOMPurify from \"dompurify\";\nimport React from \"react\";\nimport { NBComponent, NotificationBanner } from \"./notification-banner\";\nimport {\n ContentLinkAttributes,\n ContentTextAttributes,\n NotificationBannerWithForwardedRefProps,\n NotificationContentAttributes,\n} from \"./types\";\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const withNotificationBanner = (\n data: NotificationContentAttributes[]\n) => {\n const ComponentToReturn = (\n props: NotificationBannerWithForwardedRefProps,\n ref: React.Ref<HTMLDivElement>\n ) => {\n const renderContent = () => {\n if (data.length > 0) {\n return data.map((attribute, index) => {\n if (attribute.type === \"text\") {\n const otherAttributes =\n attribute.otherAttributes as ContentTextAttributes;\n\n const sanitizedContent = DOMPurify.sanitize(\n attribute.content\n );\n return (\n <p\n key={index}\n {...otherAttributes}\n dangerouslySetInnerHTML={{\n __html: sanitizedContent,\n }}\n />\n );\n } else {\n const otherAttributes =\n attribute.otherAttributes as ContentLinkAttributes;\n return (\n <NotificationBanner.Link\n key={index}\n {...otherAttributes}\n >\n {attribute.content}\n </NotificationBanner.Link>\n );\n }\n });\n }\n\n console.error(\"[NotificationBannerHOC] Empty data passed\");\n return null;\n };\n\n return (\n <NBComponent forwardedRef={ref} {...props}>\n {renderContent()}\n </NBComponent>\n );\n };\n\n return React.forwardRef(ComponentToReturn);\n};\n"],"names":["Object","defineProperty","cross","value","e","require$$0","C","jsx","width","height","viewBox","fill","xmlns","children","d","displayName","CrossIcon","isArray_1","Array","isArray","freeGlobal","global","freeSelf","self","_root","Function","_Symbol","Symbol","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","undefined","_getRawTag","isOwn","call","tag","unmasked","result","getRawTag","require$$1","objectToString","_baseGetTag","baseGetTag","isObjectLike","isSymbol_1","isSymbol","reIsDeepProp","reIsPlainProp","_isKey","object","type","test","isObject_1","isObject","uid","isFunction_1","coreJsData","maskSrcKey","exec","keys","IE_PROTO","_isMasked","func","funcToString","_toSource","isFunction","isMasked","require$$2","toSource","require$$3","reIsHostCtor","funcProto","reIsNative","RegExp","replace","baseIsNative","getValue","key","_getNative","_nativeCreate","nativeCreate","_hashClear","this","__data__","size","_hashDelete","has","_hashGet","data","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entries","index","length","clear","entry","set","get","_Hash","_listCacheClear","eq","other","_assocIndexOf","array","assocIndexOf","splice","listCacheClear","listCacheDelete","pop","listCacheGet","listCacheHas","listCacheSet","push","ListCache","_ListCache","Map","isKeyable","_getMapData","map","getMapData","mapCacheClear","hash","string","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","memoize","resolver","TypeError","memoized","args","arguments","apply","cache","Cache","_memoizeCapped","rePropName","reEscapeChar","_stringToPath","charCodeAt","match","number","quote","subString","arrayMap","iteratee","symbolProto","symbolToString","_baseToString","baseToString","isKey","stringToPath","castPath","toKey","baseGet","path","get_1","defaultValue","collection","attributePath","customCollection","getCollection","collectionSpec","contextValue","themeContextValue","collections","ThemeContextKeys","ColorSpec","base","Brand","Primary","PrimaryDark","Secondary","Accent","Dark","Light","Neutral","Validation","Green","Text","Icon","Border","Background","Orange","Badge","Red","Shadow","bookingsg","getThemeColors","props","theme","colorSet","colorScheme","options","color","Color","Main","styled","button","$outline","$highlight","css","IconButton","React","forwardRef","focusHighlight","focusOutline","otherProps","ref","_jsx","MediaWidths","mobileS","mobileM","mobileL","tablet","desktopM","desktopL","desktop4k","getMediaQuerySpec","MediaWidthsSpec","reduce","accumulator","mediaWidth","MediaQuery","Container","testId","StyledContainer","div","Section","StyledSection","section","Content","className","Layout","FontFamily","Regular","Semibold","Bold","TextStyleSpec","D1","fontFamily","fontSize","fontWeight","lineHeight","letterSpacing","D2","D3","D4","DBody","H1","H2","H3","H4","H5","H6","Body","BodySmall","XSmall","getThemeTextStyles","textStyleSet","textStyleScheme","textStyle","TextStyle","getFont","weight","getFontFamily","fontFamilyFromTheme","fontWeightFromTheme","values","includes","getFontWeight","TextStyleHelper","paragraph","attrs","inline","external","ExternalIcon","h1","h2","h3","h4","h5","h6","p","span","Hyperlink","Default","HyperlinkComponent","Small","HyperlinkBase","a","StyledExternalIcon","rest","_jsxs","RedirectScope","Transition","commonLinkStyle","Wrapper","$sticky","TextContainer","ContentLink","StyledIconButton","StyledIcon","NBComponent","visible","dismissible","sticky","onDismiss","id","forwardedRef","isVisible","setVisible","useState","useEffect","formatId","onClick","componentName","Base","NotificationBanner","assign","Link","NBLink","_typeof","obj","iterator","constructor","_setPrototypeOf","o","setPrototypeOf","__proto__","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_construct","Parent","Class","instance","bind","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","n","slice","name","_unsupportedIterableToArray","_nonIterableSpread","len","i","arr2","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","fun","thisValue","x","Func","arrayForEach","unapply","forEach","arrayPop","arrayPush","stringToLowerCase","String","toLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","indexOf","stringTrim","trim","regExpTest","typeErrorCreate","_len2","_key2","thisArg","_len","_key","addToSet","transformCaseFunc","l","element","lcElement","clone","property","newObject","lookupGetter","prop","desc","console","warn","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","text","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","getGlobal","window","_createTrustedTypesPolicy","trustedTypes","document","createPolicy","suffix","ATTR_NAME","currentScript","hasAttribute","getAttribute","policyName","createHTML","createScriptURL","scriptUrl","_","purify","createDOMPurify","DOMPurify","root","version","removed","nodeType","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","template","createElement","content","ownerDocument","trustedTypesPolicy","emptyHTML","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","documentMode","hooks","createHTMLDocument","PARSER_MEDIA_TYPE","MUSTACHE_EXPR$1","ERB_EXPR$1","TMPLIT_EXPR$1","DATA_ATTR$1","ARIA_ATTR$1","IS_SCRIPT_OR_DATA$1","ATTR_WHITESPACE$1","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","concat","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","namespaceURI","parentTagName","_forceRemove","node","parentNode","removeChild","outerHTML","remove","_removeAttribute","attribute","getAttributeNode","removeAttribute","setAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","childNodes","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","_isClobbered","elm","nodeName","textContent","attributes","hasChildNodes","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","allowedTags","firstElementChild","_basicCustomElementTest","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","oldNode","returnNode","toStaticHTML","appendChild","firstChild","nodeIterator","shadowroot","serializedHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","withNotificationBanner","otherAttributes","sanitizedContent","dangerouslySetInnerHTML","__html","error"],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { NotificationBannerWithForwardedRefProps, NotificationContentAttributes } from "./types";
|
|
3
|
+
export declare const withNotificationBanner: (data: NotificationContentAttributes[]) => (props: NotificationBannerWithForwardedRefProps & React.RefAttributes<HTMLDivElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { NotificationBannerProps, NotificationBannerWithForwardedRefProps } from "./types";
|
|
3
|
+
export declare const NBComponent: ({ children, visible, dismissible, sticky, onDismiss, id, forwardedRef, ...otherProps }: NotificationBannerWithForwardedRefProps) => JSX.Element;
|
|
4
|
+
export declare const NotificationBanner: ((props: NotificationBannerProps & React.RefAttributes<HTMLDivElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>>) & {
|
|
5
|
+
Link: import("styled-components").StyledComponent<(props: import("..").TextLinkProps) => JSX.Element, any, {}, never>;
|
|
6
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface WrapperStyleProps {
|
|
3
|
+
$sticky: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare const Wrapper: import("styled-components").StyledComponent<"div", any, WrapperStyleProps, never>;
|
|
6
|
+
export declare const Container: import("styled-components").StyledComponent<(props: import("../layout").ContentProps & import("react").RefAttributes<HTMLDivElement>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>, any, {}, never>;
|
|
7
|
+
export declare const TextContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
8
|
+
export declare const Content: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
9
|
+
export declare const ContentLink: import("styled-components").StyledComponent<(props: import("../text").TextLinkProps) => JSX.Element, any, {}, never>;
|
|
10
|
+
export declare const StyledIconButton: import("styled-components").StyledComponent<(props: import("../icon-button").IconButtonProps & import("react").RefAttributes<HTMLButtonElement>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>, any, {}, never>;
|
|
11
|
+
export declare const StyledIcon: import("styled-components").StyledComponent<{
|
|
12
|
+
(props: import("react").SVGProps<SVGSVGElement>): JSX.Element;
|
|
13
|
+
displayName: string;
|
|
14
|
+
}, any, {}, never>;
|
|
15
|
+
export {};
|