{"version":3,"sources":["webpack:///./node_modules/@ionic/core/dist/esm-es5/theme-18cbe2cc.js","webpack:///./node_modules/@ionic/core/dist/esm-es5/ion-button_2-md.entry.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","CACHED_MAP","Button","prototype","componentWillLoad","inToolbar","inItem","Object","defineProperty","get","enumerable","configurable","fill","hasIconOnly","render","mode","_b","buttonType","disabled","size","href","expand","shape","strong","finalSize","TagType","attrs","type","download","rel","target","onClick","handleClick","class","assign","onFocus","onBlur","name","rippleType","hostRef","_this","routerDirection","form","fakeButton","createElement","style","display","appendChild","click","remove","ionFocus","emit","ionBlur","getUrl","i","getSrc","src","getName","icon","ios","md","getIconMap","toLowerCase","isSrc","isStr","replace","getSvgContent","req","requests","fetch","then","rsp","status","text","Promise","resolve","svgContent","div","innerHTML","childNodes","nodeName","removeChild","svgElm","firstElementChild","setAttribute","isValid","set","win","window","Ionicons","Map","str","val","elm","nodeType","attributes","value","indexOf","Icon","connectedCallback","waitUntilVisible","isVisible","loadIcon","disconnectedCallback","io","disconnect","rootMargin","cb","io_1","lazy","IntersectionObserver","data","isIntersecting","observe","label","ariaLabel","flipRtl","role","ownerDocument","dir","getIonMode","ref","documentElement","getAttribute"],"mappings":"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","file":"js/chunk-d6d98622.7f9dde7b.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 { 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 <form>\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"],"sourceRoot":""}