{"version":3,"sources":["webpack:///./node_modules/@ionic/core/dist/esm-es5/theme-18cbe2cc.js","webpack:///./node_modules/@ionic/core/dist/esm-es5/ion-toast-md.entry.js","webpack:///./node_modules/@ionic/core/dist/esm-es5/index-3476b023.js"],"names":["hostContext","selector","el","closest","createColorClasses","color","_a","length","undefined","getClassList","classes","array","Array","isArray","split","filter","c","map","trim","getClassMap","forEach","SCHEME","openURL","url","ev","direction","router","this","test","document","querySelector","preventDefault","push","iosEnterAnimation","baseEl","position","baseAnimation","wrapperAnimation","hostEl","host","wrapperEl","bottom","top","addElement","fromTo","topPosition","Math","floor","clientHeight","style","easing","duration","addAnimation","iosLeaveAnimation","mdEnterAnimation","mdLeaveAnimation","Toast","class_1","hostRef","presented","mode","keyboardClose","showCloseButton","translucent","animated","didPresent","willPresent","willDismiss","didDismiss","prototype","present","_this","label","sent","durationTimeout","setTimeout","dismiss","data","role","clearTimeout","onDidDismiss","onWillDismiss","getButtons","buttons","b","text","closeButtonText","handler","buttonClick","button","shouldDismiss","callButtonHandler","Promise","resolve","rtn","e_1","trys","console","error","renderButtons","side","buttonGroupsClasses","class","type","buttonClass","tabIndex","onClick","icon","slot","render","_b","allButtons","startButtons","endButtons","wrapperClass","zIndex","overlayIndex","Object","assign","cssClass","header","message","innerHTML","defineProperty","get","enumerable","configurable","sanitizeDOMString","untrustedString","documentFragment_1","createDocumentFragment","workingDiv","createElement","appendChild","blockedTags","blockedTag","getElementsToRemove","querySelectorAll","elementIndex","element","parentNode","removeChild","childElements","getElementChildren","childIndex","sanitizeElement","dfChildren","fragmentDiv","getInnerDiv","err","nodeType","i","attributes","attribute","item","attributeName","name","allowedAttributes","includes","toLowerCase","attributeValue","value","removeAttribute","children","childNodes"],"mappings":"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","file":"js/chunk-7466af47.d8701788.js","sourcesContent":["import { __awaiter, __generator } from \"tslib\";\nvar hostContext = function (selector, el) {\n return el.closest(selector) !== null;\n};\n/**\n * Create the mode and color classes for the component based on the classes passed in\n */\nvar createColorClasses = function (color) {\n var _a;\n return (typeof color === 'string' && color.length > 0) ? (_a = {\n 'ion-color': true\n },\n _a[\"ion-color-\" + color] = true,\n _a) : undefined;\n};\nvar getClassList = function (classes) {\n if (classes !== undefined) {\n var array = Array.isArray(classes) ? classes : classes.split(' ');\n return array\n .filter(function (c) { return c != null; })\n .map(function (c) { return c.trim(); })\n .filter(function (c) { return c !== ''; });\n }\n return [];\n};\nvar getClassMap = function (classes) {\n var map = {};\n getClassList(classes).forEach(function (c) { return map[c] = true; });\n return map;\n};\nvar SCHEME = /^[a-z][a-z0-9+\\-.]*:/;\nvar openURL = function (url, ev, direction) { return __awaiter(void 0, void 0, void 0, function () {\n var router;\n return __generator(this, function (_a) {\n if (url != null && url[0] !== '#' && !SCHEME.test(url)) {\n router = document.querySelector('ion-router');\n if (router) {\n if (ev != null) {\n ev.preventDefault();\n }\n return [2 /*return*/, router.push(url, direction)];\n }\n }\n return [2 /*return*/, false];\n });\n}); };\nexport { createColorClasses as c, getClassMap as g, hostContext as h, openURL as o };\n","import { __awaiter, __generator } from \"tslib\";\nimport { r as registerInstance, c as getIonMode, d as createEvent, h, H as Host, e as getElement } from './core-feeeff0d.js';\nimport './config-3c7f3790.js';\nimport './helpers-46f4a262.js';\nimport { c as createAnimation } from './animation-af478fe9.js';\nimport { d as prepareOverlay, e as present, f as dismiss, g as eventMethod, i as isCancel, s as safeCall } from './overlays-10640d86.js';\nimport { g as getClassMap, c as createColorClasses } from './theme-18cbe2cc.js';\nimport { s as sanitizeDOMString } from './index-3476b023.js';\n/**\n * iOS Toast Enter Animation\n */\nvar iosEnterAnimation = function (baseEl, position) {\n var baseAnimation = createAnimation();\n var wrapperAnimation = createAnimation();\n var hostEl = baseEl.host || baseEl;\n var wrapperEl = baseEl.querySelector('.toast-wrapper');\n var bottom = \"calc(-10px - var(--ion-safe-area-bottom, 0px))\";\n var top = \"calc(10px + var(--ion-safe-area-top, 0px))\";\n wrapperAnimation.addElement(wrapperEl);\n switch (position) {\n case 'top':\n wrapperAnimation.fromTo('transform', 'translateY(-100%)', \"translateY(\" + top + \")\");\n break;\n case 'middle':\n var topPosition = Math.floor(hostEl.clientHeight / 2 - wrapperEl.clientHeight / 2);\n wrapperEl.style.top = topPosition + \"px\";\n wrapperAnimation.fromTo('opacity', 0.01, 1);\n break;\n default:\n wrapperAnimation.fromTo('transform', 'translateY(100%)', \"translateY(\" + bottom + \")\");\n break;\n }\n return baseAnimation\n .addElement(hostEl)\n .easing('cubic-bezier(.155,1.105,.295,1.12)')\n .duration(400)\n .addAnimation(wrapperAnimation);\n};\n/**\n * iOS Toast Leave Animation\n */\nvar iosLeaveAnimation = function (baseEl, position) {\n var baseAnimation = createAnimation();\n var wrapperAnimation = createAnimation();\n var hostEl = baseEl.host || baseEl;\n var wrapperEl = baseEl.querySelector('.toast-wrapper');\n var bottom = \"calc(-10px - var(--ion-safe-area-bottom, 0px))\";\n var top = \"calc(10px + var(--ion-safe-area-top, 0px))\";\n wrapperAnimation.addElement(wrapperEl);\n switch (position) {\n case 'top':\n wrapperAnimation.fromTo('transform', \"translateY(\" + top + \")\", 'translateY(-100%)');\n break;\n case 'middle':\n wrapperAnimation.fromTo('opacity', 0.99, 0);\n break;\n default:\n wrapperAnimation.fromTo('transform', \"translateY(\" + bottom + \")\", 'translateY(100%)');\n break;\n }\n return baseAnimation\n .addElement(hostEl)\n .easing('cubic-bezier(.36,.66,.04,1)')\n .duration(300)\n .addAnimation(wrapperAnimation);\n};\n/**\n * MD Toast Enter Animation\n */\nvar mdEnterAnimation = function (baseEl, position) {\n var baseAnimation = createAnimation();\n var wrapperAnimation = createAnimation();\n var hostEl = baseEl.host || baseEl;\n var wrapperEl = baseEl.querySelector('.toast-wrapper');\n var bottom = \"calc(8px + var(--ion-safe-area-bottom, 0px))\";\n var top = \"calc(8px + var(--ion-safe-area-top, 0px))\";\n wrapperAnimation.addElement(wrapperEl);\n switch (position) {\n case 'top':\n wrapperEl.style.top = top;\n wrapperAnimation.fromTo('opacity', 0.01, 1);\n break;\n case 'middle':\n var topPosition = Math.floor(hostEl.clientHeight / 2 - wrapperEl.clientHeight / 2);\n wrapperEl.style.top = topPosition + \"px\";\n wrapperAnimation.fromTo('opacity', 0.01, 1);\n break;\n default:\n wrapperEl.style.bottom = bottom;\n wrapperAnimation.fromTo('opacity', 0.01, 1);\n break;\n }\n return baseAnimation\n .addElement(hostEl)\n .easing('cubic-bezier(.36,.66,.04,1)')\n .duration(400)\n .addAnimation(wrapperAnimation);\n};\n/**\n * md Toast Leave Animation\n */\nvar mdLeaveAnimation = function (baseEl) {\n var baseAnimation = createAnimation();\n var wrapperAnimation = createAnimation();\n var hostEl = baseEl.host || baseEl;\n var wrapperEl = baseEl.querySelector('.toast-wrapper');\n wrapperAnimation\n .addElement(wrapperEl)\n .fromTo('opacity', 0.99, 0);\n return baseAnimation\n .addElement(hostEl)\n .easing('cubic-bezier(.36,.66,.04,1)')\n .duration(300)\n .addAnimation(wrapperAnimation);\n};\nvar Toast = /** @class */ (function () {\n function class_1(hostRef) {\n registerInstance(this, hostRef);\n this.presented = false;\n this.mode = getIonMode(this);\n /**\n * How many milliseconds to wait before hiding the toast. By default, it will show\n * until `dismiss()` is called.\n */\n this.duration = 0;\n /**\n * If `true`, the keyboard will be automatically dismissed when the overlay is presented.\n */\n this.keyboardClose = false;\n /**\n * The position of the toast on the screen.\n */\n this.position = 'bottom';\n /**\n * @deprecated Use `buttons` instead. If `true`, the close button will be displayed.\n */\n this.showCloseButton = false;\n /**\n * If `true`, the toast will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n */\n this.translucent = false;\n /**\n * If `true`, the toast will animate.\n */\n this.animated = true;\n prepareOverlay(this.el);\n this.didPresent = createEvent(this, \"ionToastDidPresent\", 7);\n this.willPresent = createEvent(this, \"ionToastWillPresent\", 7);\n this.willDismiss = createEvent(this, \"ionToastWillDismiss\", 7);\n this.didDismiss = createEvent(this, \"ionToastDidDismiss\", 7);\n }\n /**\n * Present the toast overlay after it has been created.\n */\n class_1.prototype.present = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, this.position)];\n case 1:\n _a.sent();\n if (this.duration > 0) {\n this.durationTimeout = setTimeout(function () { return _this.dismiss(undefined, 'timeout'); }, this.duration);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Dismiss the toast overlay after it has been presented.\n *\n * @param data Any data to emit in the dismiss events.\n * @param role The role of the element that is dismissing the toast.\n * This can be useful in a button handler for determining which button was\n * clicked to dismiss the toast.\n * Some examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n */\n class_1.prototype.dismiss = function (data, role) {\n if (this.durationTimeout) {\n clearTimeout(this.durationTimeout);\n }\n return dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation, this.position);\n };\n /**\n * Returns a promise that resolves when the toast did dismiss.\n */\n class_1.prototype.onDidDismiss = function () {\n return eventMethod(this.el, 'ionToastDidDismiss');\n };\n /**\n * Returns a promise that resolves when the toast will dismiss.\n */\n class_1.prototype.onWillDismiss = function () {\n return eventMethod(this.el, 'ionToastWillDismiss');\n };\n class_1.prototype.getButtons = function () {\n var _this = this;\n var buttons = this.buttons\n ? this.buttons.map(function (b) {\n return (typeof b === 'string')\n ? { text: b }\n : b;\n })\n : [];\n // tslint:disable-next-line: deprecation\n if (this.showCloseButton) {\n buttons.push({\n // tslint:disable-next-line: deprecation\n text: this.closeButtonText || 'Close',\n handler: function () { return _this.dismiss(undefined, 'cancel'); }\n });\n }\n return buttons;\n };\n class_1.prototype.buttonClick = function (button) {\n return __awaiter(this, void 0, void 0, function () {\n var role, shouldDismiss;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n role = button.role;\n if (isCancel(role)) {\n return [2 /*return*/, this.dismiss(undefined, role)];\n }\n return [4 /*yield*/, this.callButtonHandler(button)];\n case 1:\n shouldDismiss = _a.sent();\n if (shouldDismiss) {\n return [2 /*return*/, this.dismiss(undefined, button.role)];\n }\n return [2 /*return*/, Promise.resolve()];\n }\n });\n });\n };\n class_1.prototype.callButtonHandler = function (button) {\n return __awaiter(this, void 0, void 0, function () {\n var rtn, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(button && button.handler)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, safeCall(button.handler)];\n case 2:\n rtn = _a.sent();\n if (rtn === false) {\n // if the return value of the handler is false then do not dismiss\n return [2 /*return*/, false];\n }\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n console.error(e_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/, true];\n }\n });\n });\n };\n class_1.prototype.renderButtons = function (buttons, side) {\n var _a;\n var _this = this;\n if (buttons.length === 0) {\n return;\n }\n var mode = getIonMode(this);\n var buttonGroupsClasses = (_a = {\n 'toast-button-group': true\n },\n _a[\"toast-button-group-\" + side] = true,\n _a);\n return (h(\"div\", { class: buttonGroupsClasses }, buttons.map(function (b) { return h(\"button\", { type: \"button\", class: buttonClass(b), tabIndex: 0, onClick: function () { return _this.buttonClick(b); } }, h(\"div\", { class: \"toast-button-inner\" }, b.icon &&\n h(\"ion-icon\", { icon: b.icon, slot: b.text === undefined ? 'icon-only' : undefined, class: \"toast-icon\" }), b.text), mode === 'md' && h(\"ion-ripple-effect\", { type: b.icon !== undefined && b.text === undefined ? 'unbounded' : 'bounded' })); })));\n };\n class_1.prototype.render = function () {\n var _a, _b;\n var allButtons = this.getButtons();\n var startButtons = allButtons.filter(function (b) { return b.side === 'start'; });\n var endButtons = allButtons.filter(function (b) { return b.side !== 'start'; });\n var mode = getIonMode(this);\n var wrapperClass = (_a = {\n 'toast-wrapper': true\n },\n _a[\"toast-\" + this.position] = true,\n _a);\n return (h(Host, { style: {\n zIndex: \"\" + (60000 + this.overlayIndex),\n }, class: Object.assign(Object.assign(Object.assign((_b = {}, _b[mode] = true, _b), createColorClasses(this.color)), getClassMap(this.cssClass)), { 'toast-translucent': this.translucent }) }, h(\"div\", { class: wrapperClass }, h(\"div\", { class: \"toast-container\" }, this.renderButtons(startButtons, 'start'), h(\"div\", { class: \"toast-content\" }, this.header !== undefined &&\n h(\"div\", { class: \"toast-header\" }, this.header), this.message !== undefined &&\n h(\"div\", { class: \"toast-message\", innerHTML: sanitizeDOMString(this.message) })), this.renderButtons(endButtons, 'end')))));\n };\n Object.defineProperty(class_1.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(class_1, \"style\", {\n get: function () { return \":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;left:0;top:0;display:block;position:absolute;width:100%;height:100%;color:var(--color);font-family:var(--ion-font-family,inherit);contain:strict;z-index:1001;pointer-events:none}:host-context([dir=rtl]){left:unset;right:unset;right:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);left:var(--start);right:var(--end);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}:host-context([dir=rtl]) .toast-wrapper,[dir=rtl] .toast-wrapper{left:unset;right:unset;left:var(--end);right:var(--start)}.toast-container{-ms-flex-align:center;align-items:center;pointer-events:auto;contain:content}.toast-container,.toast-content{display:-ms-flexbox;display:flex}.toast-content{-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-message{-ms-flex:1;flex:1;white-space:pre-wrap}.toast-button-group{display:-ms-flexbox;display:flex}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}\\@media (any-hover:hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-800,#333);--border-radius:4px;--box-shadow:0 3px 5px -1px rgba(0,0,0,0.2),0 6px 10px 0 rgba(0,0,0,0.14),0 1px 18px 0 rgba(0,0,0,0.12);--button-color:var(--ion-color-primary,#3880ff);--color:var(--ion-color-step-50,#f2f2f2);--max-width:700px;--start:8px;--end:8px;font-size:14px}.toast-wrapper{margin-left:auto;margin-right:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;opacity:.01;z-index:10}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.toast-wrapper{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.toast-content{padding-left:16px;padding-right:16px;padding-top:14px;padding-bottom:14px}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.toast-content{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}.toast-header{margin-bottom:2px;font-weight:500}.toast-header,.toast-message{line-height:20px}.toast-button-group-start{margin-left:8px}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.toast-button-group-start{margin-left:unset;-webkit-margin-start:8px;margin-inline-start:8px}}.toast-button-group-end{margin-right:8px}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.toast-button-group-end{margin-right:unset;-webkit-margin-end:8px;margin-inline-end:8px}}.toast-button{padding-left:15px;padding-right:15px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;font-family:var(--ion-font-family);font-size:14px;font-weight:500;letter-spacing:.84px;text-transform:uppercase;overflow:hidden}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.toast-button{padding-left:unset;padding-right:unset;-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px}}.toast-button-cancel{color:var(--ion-color-step-100,#e6e6e6)}.toast-button-icon-only{border-radius:50%;padding-left:9px;padding-right:9px;padding-top:9px;padding-bottom:9px;width:36px;height:36px}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.toast-button-icon-only{padding-left:unset;padding-right:unset;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px}}\\@media (any-hover:hover){.toast-button:hover{background-color:rgba(var(--ion-color-primary-rgb,56,128,255),.08)}.toast-button-cancel:hover{background-color:rgba(var(--ion-background-color-rgb,255,255,255),.08)}}\"; },\n enumerable: true,\n configurable: true\n });\n return class_1;\n}());\nvar buttonClass = function (button) {\n var _a;\n return Object.assign((_a = { 'toast-button': true, 'toast-button-icon-only': button.icon !== undefined && button.text === undefined }, _a[\"toast-button-\" + button.role] = button.role !== undefined, _a['ion-focusable'] = true, _a['ion-activatable'] = true, _a), getClassMap(button.cssClass));\n};\nexport { Toast as ion_toast };\n","/**\n * Does a simple sanitization of all elements\n * in an untrusted string\n */\nvar sanitizeDOMString = function (untrustedString) {\n try {\n if (typeof untrustedString !== 'string' || untrustedString === '') {\n return untrustedString;\n }\n /**\n * Create a document fragment\n * separate from the main DOM,\n * create a div to do our work in\n */\n var documentFragment_1 = document.createDocumentFragment();\n var workingDiv = document.createElement('div');\n documentFragment_1.appendChild(workingDiv);\n workingDiv.innerHTML = untrustedString;\n /**\n * Remove any elements\n * that are blocked\n */\n blockedTags.forEach(function (blockedTag) {\n var getElementsToRemove = documentFragment_1.querySelectorAll(blockedTag);\n for (var elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {\n var element = getElementsToRemove[elementIndex];\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n else {\n documentFragment_1.removeChild(element);\n }\n /**\n * We still need to sanitize\n * the children of this element\n * as they are left behind\n */\n var childElements = getElementChildren(element);\n /* tslint:disable-next-line */\n for (var childIndex = 0; childIndex < childElements.length; childIndex++) {\n sanitizeElement(childElements[childIndex]);\n }\n }\n });\n /**\n * Go through remaining elements and remove\n * non-allowed attribs\n */\n // IE does not support .children on document fragments, only .childNodes\n var dfChildren = getElementChildren(documentFragment_1);\n /* tslint:disable-next-line */\n for (var childIndex = 0; childIndex < dfChildren.length; childIndex++) {\n sanitizeElement(dfChildren[childIndex]);\n }\n // Append document fragment to div\n var fragmentDiv = document.createElement('div');\n fragmentDiv.appendChild(documentFragment_1);\n // First child is always the div we did our work in\n var getInnerDiv = fragmentDiv.querySelector('div');\n return (getInnerDiv !== null) ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;\n }\n catch (err) {\n console.error(err);\n return '';\n }\n};\n/**\n * Clean up current element based on allowed attributes\n * and then recursively dig down into any child elements to\n * clean those up as well\n */\nvar sanitizeElement = function (element) {\n // IE uses childNodes, so ignore nodes that are not elements\n if (element.nodeType && element.nodeType !== 1) {\n return;\n }\n for (var i = element.attributes.length - 1; i >= 0; i--) {\n var attribute = element.attributes.item(i);\n var attributeName = attribute.name;\n // remove non-allowed attribs\n if (!allowedAttributes.includes(attributeName.toLowerCase())) {\n element.removeAttribute(attributeName);\n continue;\n }\n // clean up any allowed attribs\n // that attempt to do any JS funny-business\n var attributeValue = attribute.value;\n /* tslint:disable-next-line */\n if (attributeValue != null && attributeValue.toLowerCase().includes('javascript:')) {\n element.removeAttribute(attributeName);\n }\n }\n /**\n * Sanitize any nested children\n */\n var childElements = getElementChildren(element);\n /* tslint:disable-next-line */\n for (var i = 0; i < childElements.length; i++) {\n sanitizeElement(childElements[i]);\n }\n};\n/**\n * IE doesn't always support .children\n * so we revert to .childNodes instead\n */\nvar getElementChildren = function (el) {\n return (el.children != null) ? el.children : el.childNodes;\n};\nvar allowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];\nvar blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed'];\nexport { sanitizeDOMString as s };\n"],"sourceRoot":""}