{"version":3,"sources":["webpack:///./node_modules/@ionic/core/dist/esm-es5/theme-18cbe2cc.js","webpack:///./node_modules/@ionic/core/dist/esm-es5/ion-searchbar-ios.entry.js","webpack:///./node_modules/@ionic/core/dist/esm-es5/index-3476b023.js"],"names":["hostContext","selector","el","closest","createColorClasses","color","_a","length","undefined","getClassMap","classes","map","Array","isArray","split","filter","c","trim","forEach","SCHEME","openURL","url","ev","direction","router","this","test","document","querySelector","preventDefault","push","Searchbar","class_1","prototype","debounceChanged","ionChange","debounce","valueChanged","inputEl","nativeInput","value","getValue","emit","showCancelButtonChanged","_this","requestAnimationFrame","positionElements","forceUpdate","connectedCallback","emitStyle","componentDidLoad","showCancelButton","console","warn","setTimeout","noAnimate","ionStyle","setFocus","focus","getInputElement","Promise","resolve","prevAlignLeft","shouldAlignLeft","mode","animated","focused","positionPlaceholder","positionCancelButton","isRTL","iconEl","inputLeft","iconLeft","dir","shadowRoot","removeAttribute","tempSpan","doc","createElement","innerHTML","placeholder","body","appendChild","textWidth","offsetWidth","remove","style","paddingRight","marginRight","paddingLeft","marginLeft","cancelStyle","cancelButton","shouldShowCancel","shouldShowCancelButton","isCancelVisible","offset","hasValue","isCancelButtonSetToNever","isCancelButtonSetToFocus","render","getBoolean","clearIcon","searchIcon","type","tabIndex","onMouseDown","onCancelSearchbar","onTouchStart","class","icon","cancelButtonIcon","lazy","cancelButtonText","role","disabled","Object","assign","ref","inputMode","inputmode","onInput","onBlur","onFocus","autoComplete","autocomplete","autoCorrect","autocorrect","spellCheck","spellcheck","onClearInput","defineProperty","get","enumerable","configurable","hostRef","ionClear","stopPropagation","ionInput","ionCancel","blur","input","target","ionBlur","ionFocus","sanitizeDOMString","untrustedString","documentFragment_1","createDocumentFragment","workingDiv","dfChildren","blockedTags","blockedTag","getElementsToRemove","querySelectorAll","elementIndex","element","childElements","parentNode","removeChild","getElementChildren","childIndex","sanitizeElement","fragmentDiv","getInnerDiv","err","error","nodeType","i","attributes","attribute","item","attributeName","name","allowedAttributes","includes","toLowerCase","attributeValue","children","childNodes"],"mappings":"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","file":"js/chunk-4bd21d71.5f905dae.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, d as createEvent, c as getIonMode, h, H as Host, e as getElement } from './core-feeeff0d.js';\nimport { b as config } from './config-3c7f3790.js';\nimport { d as debounceEvent } from './helpers-46f4a262.js';\nimport { c as createColorClasses } from './theme-18cbe2cc.js';\nimport { s as sanitizeDOMString } from './index-3476b023.js';\nvar Searchbar = /** @class */ (function () {\n function class_1(hostRef) {\n var _this = this;\n registerInstance(this, hostRef);\n this.isCancelVisible = false;\n this.shouldAlignLeft = true;\n this.focused = false;\n this.noAnimate = true;\n /**\n * If `true`, enable searchbar animation.\n */\n this.animated = false;\n /**\n * Set the input's autocomplete property.\n */\n this.autocomplete = 'off';\n /**\n * Set the input's autocorrect property.\n */\n this.autocorrect = 'off';\n /**\n * Set the cancel button icon. Only applies to `md` mode.\n */\n this.cancelButtonIcon = 'md-arrow-back';\n /**\n * Set the the cancel button text. Only applies to `ios` mode.\n */\n this.cancelButtonText = 'Cancel';\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `ionChange` event after each keystroke.\n */\n this.debounce = 250;\n /**\n * If `true`, the user cannot interact with the input.\n */\n this.disabled = false;\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n this.inputmode = 'search';\n /**\n * Set the input's placeholder.\n * `placeholder` can accept either plaintext or HTML as a string.\n * To display characters normally reserved for HTML, they\n * must be escaped. For example `` would become\n * `<Ionic>`\n *\n * For more information: [Security Documentation](https://ionicframework.com/docs/faq/security)\n */\n this.placeholder = 'Search';\n /**\n * The icon to use as the search icon.\n */\n this.searchIcon = 'search';\n /**\n * Sets the behavior for the cancel button. Defaults to `\"never\"`.\n * Setting to `\"focus\"` shows the cancel button on focus.\n * Setting to `\"never\"` hides the cancel button.\n * Setting to `\"always\"` shows the cancel button regardless\n * of focus state.\n */\n this.showCancelButton = 'never';\n /**\n * If `true`, enable spellcheck on the input.\n */\n this.spellcheck = false;\n /**\n * Set the type of the input.\n */\n this.type = 'search';\n /**\n * the value of the searchbar.\n */\n this.value = '';\n /**\n * Clears the input field and triggers the control change.\n */\n this.onClearInput = function (ev) {\n _this.ionClear.emit();\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n // setTimeout() fixes https://github.com/ionic-team/ionic/issues/7527\n // wait for 4 frames\n setTimeout(function () {\n var value = _this.getValue();\n if (value !== '') {\n _this.value = '';\n _this.ionInput.emit();\n }\n }, 16 * 4);\n };\n /**\n * Clears the input field and tells the input to blur since\n * the clearInput function doesn't want the input to blur\n * then calls the custom cancel function if the user passed one in.\n */\n this.onCancelSearchbar = function (ev) {\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n _this.ionCancel.emit();\n _this.onClearInput();\n if (_this.nativeInput) {\n _this.nativeInput.blur();\n }\n };\n /**\n * Update the Searchbar input value when the input changes\n */\n this.onInput = function (ev) {\n var input = ev.target;\n if (input) {\n _this.value = input.value;\n }\n _this.ionInput.emit(ev);\n };\n /**\n * Sets the Searchbar to not focused and checks if it should align left\n * based on whether there is a value in the searchbar or not.\n */\n this.onBlur = function () {\n _this.focused = false;\n _this.ionBlur.emit();\n _this.positionElements();\n };\n /**\n * Sets the Searchbar to focused and active on input focus.\n */\n this.onFocus = function () {\n _this.focused = true;\n _this.ionFocus.emit();\n _this.positionElements();\n };\n this.ionInput = createEvent(this, \"ionInput\", 7);\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionCancel = createEvent(this, \"ionCancel\", 7);\n this.ionClear = createEvent(this, \"ionClear\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n }\n class_1.prototype.debounceChanged = function () {\n this.ionChange = debounceEvent(this.ionChange, this.debounce);\n };\n class_1.prototype.valueChanged = function () {\n var inputEl = this.nativeInput;\n var value = this.getValue();\n if (inputEl && inputEl.value !== value) {\n inputEl.value = value;\n }\n this.ionChange.emit({ value: value });\n };\n class_1.prototype.showCancelButtonChanged = function () {\n var _this = this;\n requestAnimationFrame(function () {\n _this.positionElements();\n _this.el.forceUpdate();\n });\n };\n class_1.prototype.connectedCallback = function () {\n this.emitStyle();\n };\n class_1.prototype.componentDidLoad = function () {\n var _this = this;\n if (this.showCancelButton === 'false' || this.showCancelButton === false) {\n console.warn('The boolean values of showCancelButton are deprecated. Please use \"never\" instead of \"false\".');\n }\n if (this.showCancelButton === '' || this.showCancelButton === 'true' || this.showCancelButton === true) {\n console.warn('The boolean values of showCancelButton are deprecated. Please use \"focus\" instead of \"true\".');\n }\n this.positionElements();\n this.debounceChanged();\n setTimeout(function () {\n _this.noAnimate = false;\n }, 300);\n };\n class_1.prototype.emitStyle = function () {\n this.ionStyle.emit({\n 'searchbar': true\n });\n };\n /**\n * Sets focus on the specified `ion-searchbar`. Use this method instead of the global\n * `input.focus()`.\n */\n class_1.prototype.setFocus = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.nativeInput) {\n this.nativeInput.focus();\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * Returns the native `` element used under the hood.\n */\n class_1.prototype.getInputElement = function () {\n return Promise.resolve(this.nativeInput);\n };\n /**\n * Positions the input search icon, placeholder, and the cancel button\n * based on the input value and if it is focused. (ios only)\n */\n class_1.prototype.positionElements = function () {\n var value = this.getValue();\n var prevAlignLeft = this.shouldAlignLeft;\n var mode = getIonMode(this);\n var shouldAlignLeft = (!this.animated || value.trim() !== '' || !!this.focused);\n this.shouldAlignLeft = shouldAlignLeft;\n if (mode !== 'ios') {\n return;\n }\n if (prevAlignLeft !== shouldAlignLeft) {\n this.positionPlaceholder();\n }\n if (this.animated) {\n this.positionCancelButton();\n }\n };\n /**\n * Positions the input placeholder\n */\n class_1.prototype.positionPlaceholder = function () {\n var inputEl = this.nativeInput;\n if (!inputEl) {\n return;\n }\n var isRTL = document.dir === 'rtl';\n var iconEl = (this.el.shadowRoot || this.el).querySelector('.searchbar-search-icon');\n if (this.shouldAlignLeft) {\n inputEl.removeAttribute('style');\n iconEl.removeAttribute('style');\n }\n else {\n // Create a dummy span to get the placeholder width\n var doc = document;\n var tempSpan = doc.createElement('span');\n tempSpan.innerHTML = sanitizeDOMString(this.placeholder) || '';\n doc.body.appendChild(tempSpan);\n // Get the width of the span then remove it\n var textWidth = tempSpan.offsetWidth;\n tempSpan.remove();\n // Calculate the input padding\n var inputLeft = 'calc(50% - ' + (textWidth / 2) + 'px)';\n // Calculate the icon margin\n var iconLeft = 'calc(50% - ' + ((textWidth / 2) + 30) + 'px)';\n // Set the input padding start and icon margin start\n if (isRTL) {\n inputEl.style.paddingRight = inputLeft;\n iconEl.style.marginRight = iconLeft;\n }\n else {\n inputEl.style.paddingLeft = inputLeft;\n iconEl.style.marginLeft = iconLeft;\n }\n }\n };\n /**\n * Show the iOS Cancel button on focus, hide it offscreen otherwise\n */\n class_1.prototype.positionCancelButton = function () {\n var isRTL = document.dir === 'rtl';\n var cancelButton = (this.el.shadowRoot || this.el).querySelector('.searchbar-cancel-button');\n var shouldShowCancel = this.shouldShowCancelButton();\n if (cancelButton && shouldShowCancel !== this.isCancelVisible) {\n var cancelStyle = cancelButton.style;\n this.isCancelVisible = shouldShowCancel;\n if (shouldShowCancel) {\n if (isRTL) {\n cancelStyle.marginLeft = '0';\n }\n else {\n cancelStyle.marginRight = '0';\n }\n }\n else {\n var offset = cancelButton.offsetWidth;\n if (offset > 0) {\n if (isRTL) {\n cancelStyle.marginLeft = -offset + 'px';\n }\n else {\n cancelStyle.marginRight = -offset + 'px';\n }\n }\n }\n }\n };\n class_1.prototype.getValue = function () {\n return this.value || '';\n };\n class_1.prototype.hasValue = function () {\n return this.getValue() !== '';\n };\n /**\n * Determines whether or not the cancel button should be visible onscreen.\n * Cancel button should be shown if one of two conditions applies:\n * 1. `showCancelButton` is set to `always`.\n * 2. `showCancelButton` is set to `focus`, and the searchbar has been focused.\n */\n class_1.prototype.shouldShowCancelButton = function () {\n if (isCancelButtonSetToNever(this.showCancelButton) ||\n (isCancelButtonSetToFocus(this.showCancelButton) && !this.focused)) {\n return false;\n }\n return true;\n };\n class_1.prototype.render = function () {\n var _a;\n var _this = this;\n var animated = this.animated && config.getBoolean('animated', true);\n var mode = getIonMode(this);\n var clearIcon = this.clearIcon || (mode === 'ios' ? 'ios-close-circle' : 'md-close');\n var searchIcon = this.searchIcon;\n var cancelButton = !isCancelButtonSetToNever(this.showCancelButton) && (h(\"button\", { \"aria-label\": \"cancel\", type: \"button\", tabIndex: mode === 'ios' && !this.shouldShowCancelButton() ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: \"searchbar-cancel-button\" }, h(\"div\", null, mode === 'md'\n ? h(\"ion-icon\", { \"aria-hidden\": \"true\", mode: mode, icon: this.cancelButtonIcon, lazy: false })\n : this.cancelButtonText)));\n return (h(Host, { role: \"search\", \"aria-disabled\": this.disabled ? 'true' : null, class: Object.assign(Object.assign({}, createColorClasses(this.color)), (_a = {}, _a[mode] = true, _a['searchbar-animated'] = animated, _a['searchbar-disabled'] = this.disabled, _a['searchbar-no-animate'] = animated && this.noAnimate, _a['searchbar-has-value'] = this.hasValue(), _a['searchbar-left-aligned'] = this.shouldAlignLeft, _a['searchbar-has-focus'] = this.focused, _a['searchbar-should-show-cancel'] = this.shouldShowCancelButton(), _a)) }, h(\"div\", { class: \"searchbar-input-container\" }, h(\"input\", { \"aria-label\": \"search text\", disabled: this.disabled, ref: function (el) { return _this.nativeInput = el; }, class: \"searchbar-input\", inputMode: this.inputmode, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellCheck: this.spellcheck }), mode === 'md' && cancelButton, h(\"ion-icon\", { mode: mode, icon: searchIcon, lazy: false, class: \"searchbar-search-icon\" }), h(\"button\", { \"aria-label\": \"reset\", type: \"button\", \"no-blur\": true, class: \"searchbar-clear-button\", onMouseDown: this.onClearInput, onTouchStart: this.onClearInput }, h(\"ion-icon\", { \"aria-hidden\": \"true\", mode: mode, icon: clearIcon, lazy: false, class: \"searchbar-clear-icon\" }))), mode === 'ios' && cancelButton));\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, \"watchers\", {\n get: function () {\n return {\n \"debounce\": [\"debounceChanged\"],\n \"value\": [\"valueChanged\"],\n \"showCancelButton\": [\"showCancelButtonChanged\"]\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(class_1, \"style\", {\n get: function () { return \".sc-ion-searchbar-ios-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:.5;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;color:var(--color);font-family:var(--ion-font-family,inherit);-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-searchbar-ios-h{color:var(--ion-color-contrast)}.ion-color.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{background:var(--ion-color-base)}.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios, .ion-color.sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios, .ion-color.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{color:inherit}.searchbar-search-icon.sc-ion-searchbar-ios{color:var(--icon-color);pointer-events:none}.searchbar-input-container.sc-ion-searchbar-ios{display:block;position:relative;-ms-flex-negative:1;flex-shrink:1;width:100%}.searchbar-input.sc-ion-searchbar-ios{font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:100%;border:0;outline:none;background:var(--background);font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-input.sc-ion-searchbar-ios::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-ms-clear, .searchbar-input.sc-ion-searchbar-ios::-webkit-search-cancel-button{display:none}.searchbar-cancel-button.sc-ion-searchbar-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:none;height:100%;border:0;outline:none;color:var(--cancel-button-color);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-cancel-button.sc-ion-searchbar-ios > div.sc-ion-searchbar-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.searchbar-clear-button.sc-ion-searchbar-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:none;min-height:0;outline:none;color:var(--clear-button-color);-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-has-value.searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios{display:block}.searchbar-disabled.sc-ion-searchbar-ios-h{cursor:default;opacity:.4;pointer-events:none}.sc-ion-searchbar-ios-h{--clear-button-color:var(--ion-color-step-600,#666);--cancel-button-color:var(--ion-color-primary,#3880ff);--color:var(--ion-text-color,#000);--icon-color:var(--ion-color-step-600,#666);--background:rgba(var(--ion-text-color-rgb,0,0,0),0.07);padding-left:12px;padding-right:12px;padding-top:12px;padding-bottom:12px;height:60px;contain:strict}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.sc-ion-searchbar-ios-h{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}.searchbar-input-container.sc-ion-searchbar-ios{height:36px;contain:strict}.searchbar-search-icon.sc-ion-searchbar-ios{margin-left:calc(50% - 60px);left:5px;top:0;position:absolute;width:22px;height:100%;contain:strict}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.searchbar-search-icon.sc-ion-searchbar-ios{margin-left:unset;-webkit-margin-start:calc(50% - 60px);margin-inline-start:calc(50% - 60px)}}[dir=rtl].sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios, [dir=rtl] .sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios, [dir=rtl].sc-ion-searchbar-ios .searchbar-search-icon.sc-ion-searchbar-ios{left:unset;right:unset;right:5px}.searchbar-input.sc-ion-searchbar-ios{padding-left:28px;padding-right:28px;padding-top:0;padding-bottom:0;border-radius:10px;height:100%;font-size:17px;font-weight:400;contain:strict}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.searchbar-input.sc-ion-searchbar-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:28px;padding-inline-start:28px;-webkit-padding-end:28px;padding-inline-end:28px}}.searchbar-clear-button.sc-ion-searchbar-ios{right:0;top:0;background-position:50%;position:absolute;width:30px;height:100%;border:0;background-color:transparent}[dir=rtl].sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios, [dir=rtl] .sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios, [dir=rtl].sc-ion-searchbar-ios .searchbar-clear-button.sc-ion-searchbar-ios{left:unset;right:unset;left:0}.searchbar-clear-icon.sc-ion-searchbar-ios{width:18px;height:100%}.searchbar-cancel-button.sc-ion-searchbar-ios{padding-left:8px;padding-right:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0;background-color:transparent;font-size:16px}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.searchbar-cancel-button.sc-ion-searchbar-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:0;padding-inline-end:0}}.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{margin-left:0}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{margin-left:unset;-webkit-margin-start:0;margin-inline-start:0}}.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{padding-left:30px}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{padding-left:unset;-webkit-padding-start:30px;padding-inline-start:30px}}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios, .searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios, .searchbar-should-show-cancel.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{display:block}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios, .searchbar-animated.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{-webkit-transition:all .3s ease;transition:all .3s ease}.searchbar-animated.searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios, .searchbar-animated.searchbar-should-show-cancel.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{opacity:1;pointer-events:auto}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{margin-right:-100%;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition:all .3s ease;transition:all .3s ease;opacity:0;pointer-events:none}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{margin-right:unset;-webkit-margin-end:-100%;margin-inline-end:-100%}}.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios, .searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios, .searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{-webkit-transition-duration:0ms;transition-duration:0ms}.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{color:var(--ion-color-base)}\\@media (any-hover:hover){.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios:hover{color:var(--ion-color-tint)}}ion-toolbar.sc-ion-searchbar-ios-h, ion-toolbar .sc-ion-searchbar-ios-h{padding-top:1px;padding-bottom:15px;height:52px}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color), ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color){color:inherit}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-cancel-button.sc-ion-searchbar-ios, ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-cancel-button.sc-ion-searchbar-ios{color:currentColor}ion-toolbar.ion-color.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios, ion-toolbar.ion-color .sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{color:currentColor;opacity:.5}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-input.sc-ion-searchbar-ios, ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-input.sc-ion-searchbar-ios{background:rgba(var(--ion-color-contrast-rgb),.07);color:currentColor}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-clear-button.sc-ion-searchbar-ios, ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-clear-button.sc-ion-searchbar-ios{color:currentColor;opacity:.5}\"; },\n enumerable: true,\n configurable: true\n });\n return class_1;\n}());\n/**\n * Check if the cancel button should never be shown.\n *\n * TODO: Remove this when the `true` and `false`\n * options are removed.\n */\nvar isCancelButtonSetToNever = function (showCancelButton) {\n return (showCancelButton === 'never' ||\n showCancelButton === 'false' ||\n showCancelButton === false);\n};\n/**\n * Check if the cancel button should be shown on focus.\n *\n * TODO: Remove this when the `true` and `false`\n * options are removed.\n */\nvar isCancelButtonSetToFocus = function (showCancelButton) {\n return (showCancelButton === 'focus' ||\n showCancelButton === 'true' ||\n showCancelButton === true ||\n showCancelButton === '');\n};\nexport { Searchbar as ion_searchbar };\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":""}