{"version":3,"sources":["webpack:///./node_modules/@ionic/vue/node_modules/@ionic/core/dist/esm-es5/ion-button_2-md.entry.js","webpack:///./node_modules/@ionic/vue/node_modules/@ionic/core/dist/esm-es5/theme-18cbe2cc.js"],"names":["CACHED_MAP","Button","hostRef","_this","this","inToolbar","inItem","buttonType","disabled","routerDirection","strong","type","handleClick","ev","href","el","form","closest","preventDefault","fakeButton","document","createElement","style","display","appendChild","click","remove","onFocus","ionFocus","emit","onBlur","ionBlur","prototype","componentWillLoad","Object","defineProperty","get","querySelector","enumerable","configurable","hasClearFill","undefined","fill","hasIconOnly","render","_a","mode","_b","rel","target","size","color","expand","shape","finalSize","TagType","attrs","download","onClick","class","assign","name","rippleType","getIconMap","win","window","Ionicons","map","Map","getUrl","i","url","getSrc","src","getName","icon","ios","md","getNamedUrl","toLowerCase","isSrc","isStr","test","trim","invalidChars","replace","str","length","val","validateContent","svgContent","div","innerHTML","childNodes","nodeName","removeChild","svgElm","firstElementChild","setAttribute","isValid","elm","nodeType","attributes","value","indexOf","requests","getSvgContent","req","fetch","then","rsp","status","text","Promise","resolve","set","Icon","getIonMode","isVisible","lazy","connectedCallback","waitUntilVisible","loadIcon","disconnectedCallback","io","disconnect","rootMargin","cb","IntersectionObserver","io_1","data","isIntersecting","observe","ariaLabel","label","flipRtl","role","createColorClasses","ownerDocument","dir","ref","documentElement","getAttribute","hostContext","selector","getClassList","classes","array","Array","isArray","split","filter","c","getClassMap","forEach","SCHEME","openURL","direction","router","push"],"mappings":"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","file":"js/chunk-57a83ac0.5dec61dc.js","sourcesContent":["import { r as registerInstance, d as createEvent, c as getIonMode$1, h, H as Host, e as getElement, i as getAssetPath, j as getMode } from './core-feeeff0d.js';\nimport './config-3c7f3790.js';\nimport { h as hasShadowDom } from './helpers-46f4a262.js';\nimport { o as openURL, c as createColorClasses$1 } from './theme-18cbe2cc.js';\nvar Button = /** @class */ (function () {\n function Button(hostRef) {\n var _this = this;\n registerInstance(this, hostRef);\n this.inToolbar = false;\n this.inItem = false;\n /**\n * The type of button.\n */\n this.buttonType = 'button';\n /**\n * If `true`, the user cannot interact with the button.\n */\n this.disabled = false;\n /**\n * When using a router, it specifies the transition direction when navigating to\n * another page using `href`.\n */\n this.routerDirection = 'forward';\n /**\n * If `true`, activates a button with a heavier font weight.\n */\n this.strong = false;\n /**\n * The type of the button.\n */\n this.type = 'button';\n this.handleClick = function (ev) {\n if (_this.type === 'button') {\n openURL(_this.href, ev, _this.routerDirection);\n }\n else if (hasShadowDom(_this.el)) {\n // this button wants to specifically submit a form\n // climb up the dom to see if we're in a
\n // and if so, then use JS to submit it\n var form = _this.el.closest('form');\n if (form) {\n ev.preventDefault();\n var fakeButton = document.createElement('button');\n fakeButton.type = _this.type;\n fakeButton.style.display = 'none';\n form.appendChild(fakeButton);\n fakeButton.click();\n fakeButton.remove();\n }\n }\n };\n this.onFocus = function () {\n _this.ionFocus.emit();\n };\n this.onBlur = function () {\n _this.ionBlur.emit();\n };\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n }\n Button.prototype.componentWillLoad = function () {\n this.inToolbar = !!this.el.closest('ion-buttons');\n this.inItem = !!this.el.closest('ion-item') || !!this.el.closest('ion-item-divider');\n };\n Object.defineProperty(Button.prototype, \"hasIconOnly\", {\n get: function () {\n return !!this.el.querySelector('ion-icon[slot=\"icon-only\"]');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Button.prototype, \"rippleType\", {\n get: function () {\n var hasClearFill = this.fill === undefined || this.fill === 'clear';\n // If the button is in a toolbar, has a clear fill (which is the default)\n // and only has an icon we use the unbounded \"circular\" ripple effect\n if (hasClearFill && this.hasIconOnly && this.inToolbar) {\n return 'unbounded';\n }\n return 'bounded';\n },\n enumerable: true,\n configurable: true\n });\n Button.prototype.render = function () {\n var _a;\n var mode = getIonMode$1(this);\n var _b = this, buttonType = _b.buttonType, type = _b.type, disabled = _b.disabled, rel = _b.rel, target = _b.target, size = _b.size, href = _b.href, color = _b.color, expand = _b.expand, hasIconOnly = _b.hasIconOnly, shape = _b.shape, strong = _b.strong;\n var finalSize = size === undefined && this.inItem ? 'small' : size;\n var TagType = href === undefined ? 'button' : 'a';\n var attrs = (TagType === 'button')\n ? { type: type }\n : {\n download: this.download,\n href: href,\n rel: rel,\n target: target\n };\n var fill = this.fill;\n if (fill === undefined) {\n fill = this.inToolbar ? 'clear' : 'solid';\n }\n return (h(Host, { onClick: this.handleClick, \"aria-disabled\": disabled ? 'true' : null, class: Object.assign(Object.assign({}, createColorClasses$1(color)), (_a = {}, _a[mode] = true, _a[buttonType] = true, _a[buttonType + \"-\" + expand] = expand !== undefined, _a[buttonType + \"-\" + finalSize] = finalSize !== undefined, _a[buttonType + \"-\" + shape] = shape !== undefined, _a[buttonType + \"-\" + fill] = true, _a[buttonType + \"-strong\"] = strong, _a['button-has-icon-only'] = hasIconOnly, _a['button-disabled'] = disabled, _a['ion-activatable'] = true, _a['ion-focusable'] = true, _a)) }, h(TagType, Object.assign({}, attrs, { class: \"button-native\", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }), h(\"span\", { class: \"button-inner\" }, h(\"slot\", { name: \"icon-only\" }), h(\"slot\", { name: \"start\" }), h(\"slot\", null), h(\"slot\", { name: \"end\" })), mode === 'md' && h(\"ion-ripple-effect\", { type: this.rippleType }))));\n };\n Object.defineProperty(Button.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Button, \"style\", {\n get: function () { return \":host{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-hover:initial;--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family,inherit);text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;pointer-events:auto;-webkit-font-kerning:none;font-kerning:none}:host(.button-disabled){--opacity:.5;pointer-events:none}:host(.button-disabled) .button-native{cursor:default;pointer-events:none}:host(.button-solid){--background:var(--ion-color-primary,#3880ff);--background-focused:var(--ion-color-primary-shade,#3171e0);--background-hover:var(--ion-color-primary-tint,#4c8dff);--color:var(--ion-color-primary-contrast,#fff);--color-activated:var(--ion-color-primary-contrast,#fff);--color-focused:var(--ion-color-primary-contrast,#fff)}:host(.button-solid.ion-color) .button-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.button-solid.ion-color.ion-focused) .button-native{background:var(--ion-color-shade)}:host(.button-outline){--border-color:var(--ion-color-primary,#3880ff);--background:transparent;--color:var(--ion-color-primary,#3880ff);--color-focused:var(--ion-color-primary,#3880ff)}:host(.button-outline.ion-color) .button-native{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}:host(.button-outline.ion-focused.ion-color) .button-native{background:rgba(var(--ion-color-base-rgb),.1);color:var(--ion-color-base)}:host(.button-clear){--border-width:0;--background:transparent;--color:var(--ion-color-primary,#3880ff)}:host(.button-clear.ion-color) .button-native{background:transparent;color:var(--ion-color-base)}:host(.button-clear.ion-focused.ion-color) .button-native{background:rgba(var(--ion-color-base-rgb),.1);color:var(--ion-color-base)}:host(.button-clear.activated.ion-color) .button-native{background:transparent}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;display:block;width:100%;clear:both;contain:content}:host(.button-block) .button-native:after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;display:block;width:100%;contain:content}:host(.button-full:not(.button-round)) .button-native{border-radius:0;border-right-width:0;border-left-width:0}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;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;display:block;position:relative;width:100%;height:100%;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-native::-moz-focus-inner{border:0}.button-inner{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}::slotted(ion-icon){font-size:1.4em;pointer-events:none}::slotted(ion-icon[slot=start]){margin-left:-.3em;margin-right:.3em;margin-top:0;margin-bottom:0}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){::slotted(ion-icon[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:-.3em;margin-inline-start:-.3em;-webkit-margin-end:.3em;margin-inline-end:.3em}}::slotted(ion-icon[slot=end]){margin-left:.3em;margin-right:-.2em;margin-top:0;margin-bottom:0}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){::slotted(ion-icon[slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:.3em;margin-inline-start:.3em;-webkit-margin-end:-.2em;margin-inline-end:-.2em}}::slotted(ion-icon[slot=icon-only]){font-size:1.8em}ion-ripple-effect{color:var(--ripple-color)}:host(.ion-focused) .button-native{background:var(--background-focused);color:var(--color-focused)}:host(.activated) .button-native{background:var(--background-activated);color:var(--color-activated)}\\@media (any-hover:hover){:host(:hover) .button-native{background:var(--background-hover);color:var(--color-hover)}}:host{--border-radius:4px;--padding-top:0;--padding-bottom:0;--padding-start:1.1em;--padding-end:1.1em;--transition:box-shadow 280ms cubic-bezier(.4,0,.2,1),background-color 15ms linear,color 15ms linear;margin-left:2px;margin-right:2px;margin-top:4px;margin-bottom:4px;height:36px;font-size:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}\\@supports ((-webkit-margin-start:0) or (margin-inline-start:0)) or (-webkit-margin-start:0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}:host(.button-solid){--background-activated:var(--background);--box-shadow:0 3px 1px -2px rgba(0,0,0,0.2),0 2px 2px 0 rgba(0,0,0,0.14),0 1px 5px 0 rgba(0,0,0,0.12)}:host(.button-solid.activated){--box-shadow:0 5px 5px -3px rgba(0,0,0,0.2),0 8px 10px 1px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12)}:host(.button-outline){--border-width:2px;--border-style:solid;--box-shadow:none;--background-activated:transparent;--background-focused:rgba(var(--ion-color-primary-rgb,56,128,255),0.1);--background-hover:rgba(var(--ion-color-primary-rgb,56,128,255),0.04);--color-activated:var(--ion-color-primary,#3880ff)}:host(.button-outline.activated.ion-color) .button-native{background:transparent}:host(.button-clear){--background-activated:transparent;--background-focused:rgba(var(--ion-color-primary-rgb,56,128,255),0.1);--background-hover:rgba(var(--ion-color-primary-rgb,56,128,255),0.04);--color-activated:var(--ion-color-primary,#3880ff);--color-focused:var(--ion-color-primary,#3880ff)}:host(.button-round){--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}:host(.button-large){--padding-top:0;--padding-start:1em;--padding-end:1em;--padding-bottom:0;height:2.8em;font-size:20px}:host(.button-small){--padding-top:0;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:0;height:2.1em;font-size:13px}:host(.button-strong){font-weight:700}::slotted(ion-icon[slot=icon-only]){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}\\@media (any-hover:hover){:host(.button-solid.ion-color:hover) .button-native{background:var(--ion-color-tint)}:host(.button-clear.ion-color:hover) .button-native,:host(.button-outline.ion-color:hover) .button-native{background:rgba(var(--ion-color-base-rgb),.04)}}\"; },\n enumerable: true,\n configurable: true\n });\n return Button;\n}());\nvar CACHED_MAP;\nvar getIconMap = function () {\n if (!CACHED_MAP) {\n var win = window;\n win.Ionicons = win.Ionicons || {};\n CACHED_MAP = win.Ionicons.map = win.Ionicons.map || new Map();\n }\n return CACHED_MAP;\n};\nvar getUrl = function (i) {\n var url = getSrc(i.src);\n if (url) {\n return url;\n }\n url = getName(i.name, i.icon, i.mode, i.ios, i.md);\n if (url) {\n return getNamedUrl(url);\n }\n if (i.icon) {\n url = getSrc(i.icon);\n if (url) {\n return url;\n }\n url = getSrc(i.icon[i.mode]);\n if (url) {\n return url;\n }\n }\n return null;\n};\nvar getNamedUrl = function (name) {\n var url = getIconMap().get(name);\n if (url) {\n return url;\n }\n return getAssetPath(\"svg/\" + name + \".svg\");\n};\nvar getName = function (name, icon, mode, ios, md) {\n // default to \"md\" if somehow the mode wasn't set\n mode = (mode && mode.toLowerCase()) === 'ios' ? 'ios' : 'md';\n // if an icon was passed in using the ios or md attributes\n // set the iconName to whatever was passed in\n if (ios && mode === 'ios') {\n name = ios.toLowerCase();\n }\n else if (md && mode === 'md') {\n name = md.toLowerCase();\n }\n else {\n if (!name && icon && !isSrc(icon)) {\n name = icon;\n }\n if (isStr(name)) {\n name = name.toLowerCase();\n if (!/^md-|^ios-|^logo-/.test(name)) {\n // this does not have one of the defaults\n // so lets auto add in the mode prefix for them\n name = mode + '-' + name;\n }\n }\n }\n if (!isStr(name) || name.trim() === '') {\n return null;\n }\n // only allow alpha characters and dash\n var invalidChars = name.replace(/[a-z]|-|\\d/gi, '');\n if (invalidChars !== '') {\n return null;\n }\n return name;\n};\nvar getSrc = function (src) {\n if (isStr(src)) {\n src = src.trim();\n if (isSrc(src)) {\n return src;\n }\n }\n return null;\n};\nvar isSrc = function (str) {\n return str.length > 0 && /(\\/|\\.)/.test(str);\n};\nvar isStr = function (val) { return typeof val === 'string'; };\nvar validateContent = function (svgContent) {\n if (svgContent) {\n var div = document.createElement('div');\n div.innerHTML = svgContent;\n // setup this way to ensure it works on our buddy IE\n for (var i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n // must only have 1 root element\n var svgElm = div.firstElementChild;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {\n svgElm.setAttribute('class', 's-ion-icon');\n // root element must be an svg\n // lets double check we've got valid elements\n // do not allow scripts\n if (isValid(svgElm)) {\n return div.innerHTML;\n }\n }\n }\n return '';\n};\nvar isValid = function (elm) {\n if (elm.nodeType === 1) {\n if (elm.nodeName.toLowerCase() === 'script') {\n return false;\n }\n for (var i = 0; i < elm.attributes.length; i++) {\n var val = elm.attributes[i].value;\n if (isStr(val) && val.toLowerCase().indexOf('on') === 0) {\n return false;\n }\n }\n for (var i = 0; i < elm.childNodes.length; i++) {\n if (!isValid(elm.childNodes[i])) {\n return false;\n }\n }\n }\n return true;\n};\nvar requests = new Map();\nvar getSvgContent = function (url) {\n // see if we already have a request for this url\n var req = requests.get(url);\n if (!req) {\n // we don't already have a request\n req = fetch(url).then(function (rsp) {\n if (rsp.status <= 299) {\n return rsp.text();\n }\n return Promise.resolve(null);\n }).then(function (svgContent) { return validateContent(svgContent); });\n // cache for the same requests\n requests.set(url, req);\n }\n return req;\n};\nvar Icon = /** @class */ (function () {\n function Icon(hostRef) {\n registerInstance(this, hostRef);\n this.mode = getIonMode(this);\n this.isVisible = false;\n /**\n * If enabled, ion-icon will be loaded lazily when it's visible in the viewport.\n * Default, `false`.\n */\n this.lazy = false;\n }\n Icon.prototype.connectedCallback = function () {\n var _this = this;\n // purposely do not return the promise here because loading\n // the svg file should not hold up loading the app\n // only load the svg if it's visible\n this.waitUntilVisible(this.el, '50px', function () {\n _this.isVisible = true;\n _this.loadIcon();\n });\n };\n Icon.prototype.disconnectedCallback = function () {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n };\n Icon.prototype.waitUntilVisible = function (el, rootMargin, cb) {\n var _this = this;\n if (this.lazy && typeof window !== 'undefined' && window.IntersectionObserver) {\n var io_1 = this.io = new window.IntersectionObserver(function (data) {\n if (data[0].isIntersecting) {\n io_1.disconnect();\n _this.io = undefined;\n cb();\n }\n }, { rootMargin: rootMargin });\n io_1.observe(el);\n }\n else {\n // browser doesn't support IntersectionObserver\n // so just fallback to always show it\n cb();\n }\n };\n Icon.prototype.loadIcon = function () {\n var _this = this;\n if (this.isVisible) {\n var url = getUrl(this);\n if (url) {\n getSvgContent(url)\n .then(function (svgContent) { return _this.svgContent = svgContent; });\n }\n }\n if (!this.ariaLabel) {\n var label = getName(this.name, this.icon, this.mode, this.ios, this.md);\n // user did not provide a label\n // come up with the label based on the icon name\n if (label) {\n this.ariaLabel = label\n .replace('ios-', '')\n .replace('md-', '')\n .replace(/\\-/g, ' ');\n }\n }\n };\n Icon.prototype.render = function () {\n var _a, _b;\n var mode = this.mode || 'md';\n var flipRtl = this.flipRtl || (this.ariaLabel && this.ariaLabel.indexOf('arrow') > -1 && this.flipRtl !== false);\n return (h(Host, { role: \"img\", class: Object.assign((_a = {}, _a[mode] = true, _a), createColorClasses(this.color), (_b = {}, _b[\"icon-\" + this.size] = !!this.size, _b['flip-rtl'] = !!flipRtl && this.el.ownerDocument.dir === 'rtl', _b)) }, ((this.svgContent)\n ? h(\"div\", { class: \"icon-inner\", innerHTML: this.svgContent })\n : h(\"div\", { class: \"icon-inner\" }))));\n };\n Object.defineProperty(Icon, \"assetsDirs\", {\n get: function () { return [\"svg\"]; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Icon.prototype, \"el\", {\n get: function () { return getElement(this); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Icon, \"watchers\", {\n get: function () {\n return {\n \"name\": [\"loadIcon\"],\n \"src\": [\"loadIcon\"],\n \"icon\": [\"loadIcon\"]\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Icon, \"style\", {\n get: function () { return \":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}.icon-inner,svg{display:block;height:100%;width:100%}:host(.flip-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.icon-small){font-size:18px!important}:host(.icon-large){font-size:32px!important}:host(.ion-color){color:var(--ion-color-base)!important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary,#3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary,#0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary,#f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success,#10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning,#ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger,#f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light,#f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium,#989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark,#222428)}\"; },\n enumerable: true,\n configurable: true\n });\n return Icon;\n}());\nvar getIonMode = function (ref) {\n return getMode(ref) || document.documentElement.getAttribute('mode') || 'md';\n};\nvar createColorClasses = function (color) {\n var _a;\n return (color) ? (_a = {\n 'ion-color': true\n },\n _a[\"ion-color-\" + color] = true,\n _a) : null;\n};\nexport { Button as ion_button, Icon as ion_icon };\n","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"],"sourceRoot":""}