{"version":3,"sources":["webpack:///./node_modules/@aurelia-mdc-web/ripple/dist/native-modules/index.js","webpack:///./node_modules/@aurelia-mdc-web/ripple/dist/native-modules/mdc-ripple.js","webpack:///./node_modules/@aurelia-mdc-web/segmented-button/dist/native-modules/index.js","webpack:///./node_modules/@aurelia-mdc-web/segmented-button/dist/native-modules/mdc-segmented-button.js","webpack:///./node_modules/@aurelia-mdc-web/segmented-button/dist/native-modules/mdc-segmented-button-segment/enhance-mdc-segmented-button-segment.js","webpack:///./node_modules/@aurelia-mdc-web/segmented-button/dist/native-modules/mdc-segmented-button-segment/mdc-segmented-button-segment.js","webpack:///./node_modules/@aurelia-mdc-web/segmented-button/dist/native-modules/mdc-segmented-button-segment/mdc-segmented-button-segment.html","webpack:///./node_modules/@aurelia-mdc-web/segmented-button/dist/native-modules/mdc-segmented-button.html","webpack:///./node_modules/@aurelia-mdc-web/select/dist/native-modules/mdc-select-value-observer.js","webpack:///./node_modules/@aurelia-mdc-web/select/dist/native-modules/index.js","webpack:///./node_modules/@aurelia-mdc-web/select/dist/native-modules/mdc-select-foundation-aurelia.js","webpack:///./node_modules/@aurelia-mdc-web/select/dist/native-modules/mdc-select.js","webpack:///./node_modules/@aurelia-mdc-web/select/dist/native-modules/mdc-select-helper-text/mdc-select-helper-text.js","webpack:///./node_modules/@aurelia-mdc-web/select/dist/native-modules/mdc-select-helper-text/mdc-select-helper-text.html","webpack:///./node_modules/@aurelia-mdc-web/select/dist/native-modules/mdc-select-icon.js","webpack:///./node_modules/@aurelia-mdc-web/select/dist/native-modules/mdc-select.html","webpack:///./node_modules/@aurelia-mdc-web/slider/dist/native-modules/index.js","webpack:///./node_modules/@aurelia-mdc-web/slider/dist/native-modules/mdc-slider-foundation-aurelia.js","webpack:///./node_modules/@aurelia-mdc-web/slider/dist/native-modules/mdc-slider.js","webpack:///./node_modules/@aurelia-mdc-web/slider/dist/native-modules/mdc-slider.html","webpack:///./node_modules/@aurelia-mdc-web/snackbar/dist/native-modules/mdc-snackbar-service.js","webpack:///./node_modules/@aurelia-mdc-web/snackbar/dist/native-modules/index.js","webpack:///./node_modules/@aurelia-mdc-web/snackbar/dist/native-modules/mdc-snackbar.js","webpack:///./node_modules/@aurelia-mdc-web/snackbar/dist/native-modules/mdc-snackbar.html","webpack:///./node_modules/@aurelia-mdc-web/switch/dist/native-modules/index.js","webpack:///./node_modules/@aurelia-mdc-web/switch/dist/native-modules/enhance-mdc-switch.js","webpack:///./node_modules/@aurelia-mdc-web/switch/dist/native-modules/mdc-switch.js","webpack:///./node_modules/@aurelia-mdc-web/switch/dist/native-modules/mdc-switch.html","webpack:///./node_modules/@aurelia-mdc-web/select/dist/native-modules/mdc-default-select-configuration.js"],"names":["configure","config","globalResources","MdcRipple","_super","_this","apply","this","arguments","inputBindingPromise","Promise","r","inputBindingPromiseResolver","MdcRipple_1","prototype","inputChanged","unboundedChanged","_a","_b","label","initialised","sent","foundation","setUnbounded","Boolean","unbounded","initialise","_c","_d","root","classList","add","ATTRIBUTE_CLASS","noClass","surface","primary","accent","au","boundProperties","find","x","binding","targetProperty","activate","deactivate","layout","getDefaultFoundation","createAdapter","addClass","className","browserSupportsCssVars","supportsCssVariables","window","computeBoundingRect","getBoundingClientRect","containsEventTarget","target","contains","deregisterDocumentInteractionHandler","evtType","handler","document","documentElement","removeEventListener","deregisterInteractionHandler","input","deregisterResizeHandler","getWindowPageOffset","pageXOffset","y","pageYOffset","isSurfaceActive","activeSurface","isSurfaceDisabled","disabled","isUnbounded","registerDocumentInteractionHandler","addEventListener","registerInteractionHandler","registerResizeHandler","removeClass","remove","updateCssVariable","varName","value","style","setProperty","HTMLInputElement","HTMLElement","Function","booleanAttr","Element","container","get","registerMdcElementConfig","segmentedButtonSegmentConfig","aurelia","use","plugin","tagName","properties","checked","defaultBindingMode","twoWay","getObserver","element","_","observerLocator","MdcSegmentedButton","singleChanged","setAttribute","single","initialSyncWithDOM","isSingleSelect","i","segmentsList","length","segment","setIndex","setIsSingleSelect","handleSelected","event","detail","adapter","hasClass","getSegments","mappedSegments","selectSegment","indexOrSegmentId","segmentDetail","index","segmentId","unselectSegment","notifySelectedChange","emit","CHANGE","map","selected","getSegmentId","Array","EnhanceMdcSegmentedButtonSegment","beforeCompile","template","e_1","actions","querySelectorAll","from","next","done","e_1_1","error","return","call","MdcSegmentedButtonSegment","Object","defineProperties","type","controller","viewModel","set","configurable","defineProperty","isSelected","_checked","setSelected","setUnselected","enumerable","handleClick","attributeValue","hasAttribute","getAttribute","undefined","getAttr","attrName","setAttr","SELECTED","getRootBoundingClientRect","String","module","exports","MdcSelectValueObserver","setElementValue","skipNotify","optionsWereSet","setValue","getValue","newValue","oldValue","notify","synchronizeValue","callSubscribers","handleEvent","subscribe","context","callable","hasSubscribers","addSubscriber","unsubscribe","removeSubscriber","dispose","bind","menu","querySelector","domObserver","createMutationObserver","records","addedNodes","removedNodes","observe","childList","subtree","characterData","unbind","disconnect","frameworkConfig","callback","selectConfig","CHANGE_EVENT","MDCSelectFoundationAurelia","foundationMap","defaultAdapter","isMenuOpen","useDefaultValidation","customValidity","lastSelectedIndex","UNSET_INDEX","leadingIcon","helperText","activateBottomLine","deactivateBottomLine","getSelectedIndex","setSelectedIndex","hasLabel","floatLabel","getLabelWidth","setLabelRequired","hasOutline","notchOutline","closeOutline","setRippleCenter","notifyChange","setSelectedText","isSelectAnchorFocused","getSelectAnchorAttr","setSelectAnchorAttr","removeSelectAnchorAttr","addMenuClass","removeMenuClass","openMenu","closeMenu","getAnchorElement","setMenuAnchorElement","setMenuAnchorCorner","setMenuWrapFocus","focusMenuItemAtIndex","getMenuItemCount","getMenuItemValues","getMenuItemTextAtIndex","isTypeaheadInProgress","typeaheadMatchItem","menuItemValues","trim","handleChange","indexOf","getDisabled","setDisabled","isDisabled","DISABLED","toString","ACTIVATED","setHelperTextContent","content","setContent","optionHasValue","isFocused","FOCUSED","shouldFloatAndNotch","isRequired","REQUIRED","layoutOptions","selectedIndex","handleMenuOpened","focusItemIndex","handleMenuClosed","blur","setValid","isValid","handleMenuItemAction","handleFocus","handleBlur","normalizedX","handleKeydown","isEnter","ENTER","isSpace","SPACEBAR","arrowUp","ARROW_UP","arrowDown","ARROW_DOWN","key","typeaheadNextIndex","preventDefault","openNotch","labelScale","LABEL_SCALE","labelWidth","setLeadingIconAriaLabel","setAriaLabel","setLeadingIconContent","setUseDefaultValidation","INVALID","MENU_INVALID","syncHelperTextValidity","setRequired","getRequired","init","anchorEl","BOTTOM_START","setValidity","helperTextVisible","isVisible","helperTextId","getId","ARIA_DESCRIBEDBY","toLowerCase","selectId","MdcSelect","taskQueue","defaultConfiguration","id","errors","Map","outlined","options","valid","addError","removeError","renderErrors","focus","MdcSelect_1","processContent","_viewCompiler","_resources","ATTRIBUTE","labelChanged","queueTask","outlinedChanged","requiredChanged","required","selectAnchor","removeAttribute","disabledChanged","initialValue","delete","size","nextElementSibling","keys","filter","message","leadingIconEl","nextSibling","ROOT","toUpperCase","all","list_","singleSelection","getSelectAdapterMethods","getCommonAdapterMethods","getOutlineAdapterMethods","getLabelAdapterMethods","getFoundationMap","text","selectedText","textContent","activeElement","attr","menuElement","open","hoistToBody","fixed","naturalWidth","minWidth","maxWidth","clientWidth","SELECT_ANCHOR_SELECTOR","anchor","anchorCorner","setAnchorCorner","wrapFocus","removeAttributeAtIndex","attributeName","items","getPrimaryTextAtIndex","typeaheadInProgress","nextChar","startingIndex","lineRipple","outline","notch","closeNotch","mdcLabel","shouldFloat","float","getWidth","evt","getNormalizedXCoordinate","handleItemsChanged","targetClientRect","isTouchEvent","touches","clientX","left","oneTime","mdcHelperTextCssClasses","MdcSelectHelperText","helperTextCssClasses","removeAttr","mdcIconStrings","MdcSelectIcon","listen","unlisten","notifyIconAction","strings","ICON_EVENT","checkboxConfig","INPUT","valuestart","MdcSliderFoundationAurelia","MdcSlider","TickMark","eventHandlers","min","max","step","valueToAriaValueTextFn","_value","_valueStart","valueStart","minChanged","_e","startInput","endInput","INPUT_MIN","destroy","cleanupEventHandlers","maxChanged","INPUT_MAX","stepChanged","INPUT_STEP","getValueStart","setValueStart","INPUT_VALUE","range","addThumbClass","thumb","getThumbEl","removeThumbClass","attribute","getInputValue","getInput","setInputValue","getInputAttribute","setInputAttribute","removeInputAttribute","focusInput","isInputFocused","getThumbKnobWidth","THUMB_KNOB","width","getThumbBoundingClientRect","isRTL","getComputedStyle","direction","setThumbStyleProperty","propertyName","removeThumbStyleProperty","removeProperty","setTrackActiveStyleProperty","trackActive","removeTrackActiveStyleProperty","setValueIndicatorText","VALUE_INDICATOR_TEXT","getValueToAriaValueTextFn","updateTickMarks","tickMarks","tickMarkStatuses","setPointerCapture","pointerId","emitChangeEvent","emitInputEvent","emitDragStartEvent","getRipple","emitDragEndEvent","registerEventHandler","addEventHandler","deregisterEventHandler","removeEventHandler","registerThumbEventHandler","thumbEl","deregisterThumbEventHandler","registerInputEventHandler","thumbInput","deregisterInputEventHandler","registerBodyEventHandler","body","deregisterBodyEventHandler","registerWindowEventHandler","deregisterWindowEventHandler","push","findIndex","splice","forEach","END","endThumb","startThumb","endRipple","startRipple","MdcSnackbarService","templatingEngine","snackbar","closedResolver","closedPromise","bindingContext","childView","vm","createElement","CLOSED_EVENT","appendChild","handleClosed","reason","detached","enhance","assign","OPENING_EVENT","OPENED_EVENT","CLOSING_EVENT","MdcSnackbar","closeOnEscape","timeoutChanged","setTimeoutMs","timeout","closeOnEscapeChanged","setCloseOnEscape","announce","labelEl_","notifyClosed","notifyClosing","notifyOpened","notifyOpening","close","handleAction","action","handleDismiss","REASON_DISMISS","handleKeyDown","number","Number","switchConfig","EnhanceMdcSwitch","switchId","MdcSwitch","initFromDOM","setAriaChecked","ariaChecked","state","MdcDefaultSelectConfiguration"],"mappings":"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","file":"vendors~1b7c5f3b.1abe9a93c2e5e151769e.chunk.js","sourcesContent":["import { PLATFORM } from 'aurelia-framework';\nexport { MdcRipple } from './mdc-ripple';\nexport function configure(config) {\n    config.globalResources([\n        PLATFORM.moduleName('./mdc-ripple')\n    ]);\n}\n//# sourceMappingURL=index.js.map","import { __awaiter, __decorate, __extends, __generator, __metadata } from \"tslib\";\nimport { MdcComponent } from '@aurelia-mdc-web/base';\nimport { MDCRippleFoundation, util } from '@material/ripple';\nimport { matches } from '@material/dom/ponyfill';\nimport { applyPassive } from '@material/dom/events';\nimport { inject, customAttribute } from 'aurelia-framework';\nimport { bindable } from 'aurelia-typed-observable-plugin';\nvar MdcRipple = /** @class */ (function (_super) {\n    __extends(MdcRipple, _super);\n    function MdcRipple() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.inputBindingPromise = new Promise(function (r) { return _this.inputBindingPromiseResolver = r; });\n        return _this;\n    }\n    MdcRipple_1 = MdcRipple;\n    MdcRipple.prototype.inputChanged = function () {\n        this.inputBindingPromiseResolver();\n    };\n    MdcRipple.prototype.unboundedChanged = function () {\n        var _a;\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0: return [4 /*yield*/, this.initialised];\n                    case 1:\n                        _b.sent();\n                        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.setUnbounded(Boolean(this.unbounded));\n                        return [2 /*return*/];\n                }\n            });\n        });\n    };\n    MdcRipple.prototype.initialise = function () {\n        var _a, _b, _c;\n        return __awaiter(this, void 0, void 0, function () {\n            var inputBinding;\n            return __generator(this, function (_d) {\n                switch (_d.label) {\n                    case 0:\n                        this.root.classList.add(MdcRipple_1.ATTRIBUTE_CLASS);\n                        if (!this.noClass) {\n                            ((_a = this.surface) !== null && _a !== void 0 ? _a : this.root).classList.add('mdc-ripple-surface');\n                            if (this.primary) {\n                                ((_b = this.surface) !== null && _b !== void 0 ? _b : this.root).classList.add('mdc-ripple-surface--primary');\n                            }\n                            if (this.accent) {\n                                ((_c = this.surface) !== null && _c !== void 0 ? _c : this.root).classList.add('mdc-ripple-surface--accent');\n                            }\n                        }\n                        inputBinding = this.root.au['mdc-ripple'].boundProperties.find(function (x) { return x.binding.targetProperty === 'input'; });\n                        if (!inputBinding) return [3 /*break*/, 2];\n                        return [4 /*yield*/, this.inputBindingPromise];\n                    case 1:\n                        _d.sent();\n                        _d.label = 2;\n                    case 2: return [2 /*return*/];\n                }\n            });\n        });\n    };\n    MdcRipple.prototype.activate = function () {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.activate();\n    };\n    MdcRipple.prototype.deactivate = function () {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.deactivate();\n    };\n    MdcRipple.prototype.layout = function () {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.layout();\n    };\n    MdcRipple.prototype.getDefaultFoundation = function () {\n        return new MDCRippleFoundation(this.createAdapter());\n    };\n    MdcRipple.prototype.createAdapter = function () {\n        var _this = this;\n        var _a;\n        return {\n            addClass: function (className) { var _a; return ((_a = _this.surface) !== null && _a !== void 0 ? _a : _this.root).classList.add(className); },\n            browserSupportsCssVars: function () { return util.supportsCssVariables(window); },\n            computeBoundingRect: (_a = this.computeBoundingRect) !== null && _a !== void 0 ? _a : (function () { var _a; return ((_a = _this.surface) !== null && _a !== void 0 ? _a : _this.root).getBoundingClientRect(); }),\n            containsEventTarget: function (target) { return _this.root.contains(target); },\n            deregisterDocumentInteractionHandler: function (evtType, handler) { return document.documentElement.removeEventListener(evtType, handler, applyPassive()); },\n            deregisterInteractionHandler: function (evtType, handler) { var _a; return ((_a = _this.input) !== null && _a !== void 0 ? _a : _this.root).removeEventListener(evtType, handler, applyPassive()); },\n            deregisterResizeHandler: function (handler) { return window.removeEventListener('resize', handler); },\n            getWindowPageOffset: function () { return ({ x: window.pageXOffset, y: window.pageYOffset }); },\n            isSurfaceActive: function () { var _a; return _this.activeSurface && matches((_a = _this.input) !== null && _a !== void 0 ? _a : _this.root, ':active'); },\n            isSurfaceDisabled: function () { return _this.disabled; },\n            isUnbounded: function () { return _this.unbounded; },\n            registerDocumentInteractionHandler: function (evtType, handler) { return document.documentElement.addEventListener(evtType, handler, applyPassive()); },\n            registerInteractionHandler: function (evtType, handler) { var _a; return ((_a = _this.input) !== null && _a !== void 0 ? _a : _this.root).addEventListener(evtType, handler, applyPassive()); },\n            registerResizeHandler: function (handler) { return window.addEventListener('resize', handler); },\n            removeClass: function (className) { var _a; return ((_a = _this.surface) !== null && _a !== void 0 ? _a : _this.root).classList.remove(className); },\n            updateCssVariable: function (varName, value) { var _a; return ((_a = _this.surface) !== null && _a !== void 0 ? _a : _this.root).style.setProperty(varName, value); },\n        };\n    };\n    var MdcRipple_1;\n    MdcRipple.ATTRIBUTE_CLASS = 'mdc-ripple-enhanced';\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", HTMLInputElement)\n    ], MdcRipple.prototype, \"input\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", HTMLElement)\n    ], MdcRipple.prototype, \"surface\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", Function)\n    ], MdcRipple.prototype, \"computeBoundingRect\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcRipple.prototype, \"disabled\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcRipple.prototype, \"unbounded\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcRipple.prototype, \"activeSurface\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcRipple.prototype, \"noClass\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcRipple.prototype, \"primary\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcRipple.prototype, \"accent\", void 0);\n    MdcRipple = MdcRipple_1 = __decorate([\n        inject(Element),\n        customAttribute('mdc-ripple')\n    ], MdcRipple);\n    return MdcRipple;\n}(MdcComponent));\nexport { MdcRipple };\n//# sourceMappingURL=mdc-ripple.js.map","import { PLATFORM, bindingMode, EventSubscriber, CheckedObserver } from 'aurelia-framework';\nimport { MdcComponentAdapters } from '@aurelia-mdc-web/base';\nexport { MdcSegmentedButton } from './mdc-segmented-button';\nexport { MdcSegmentedButtonSegment } from './mdc-segmented-button-segment/mdc-segmented-button-segment';\nexport function configure(config) {\n    config.container.get(MdcComponentAdapters).registerMdcElementConfig(segmentedButtonSegmentConfig);\n    config.globalResources([\n        PLATFORM.moduleName('./mdc-segmented-button'),\n        PLATFORM.moduleName('./mdc-segmented-button-segment/mdc-segmented-button-segment'),\n        PLATFORM.moduleName('./mdc-segmented-button-segment/enhance-mdc-segmented-button-segment')\n    ]);\n    config.aurelia.use.plugin(PLATFORM.moduleName('@aurelia-mdc-web/ripple'));\n}\nvar segmentedButtonSegmentConfig = {\n    tagName: 'mdc-segmented-button-segment',\n    properties: {\n        checked: {\n            defaultBindingMode: bindingMode.twoWay,\n            getObserver: function (element, _, observerLocator) {\n                return new CheckedObserver(element, new EventSubscriber(['selected', 'unselected']), observerLocator);\n            }\n        }\n    }\n};\n//# sourceMappingURL=index.js.map","import { __decorate, __extends, __metadata } from \"tslib\";\nimport { MdcComponent } from '@aurelia-mdc-web/base';\nimport { MDCSegmentedButtonFoundation } from '@material/segmented-button';\nimport { events } from '@material/segmented-button/segmented-button/constants';\nimport { inject } from 'aurelia-dependency-injection';\nimport { PLATFORM } from 'aurelia-pal';\nimport { children, customElement, useView } from 'aurelia-templating';\nimport { bindable } from 'aurelia-typed-observable-plugin';\n/**\n * @selector mdc-segmented-button\n */\nvar MdcSegmentedButton = /** @class */ (function (_super) {\n    __extends(MdcSegmentedButton, _super);\n    function MdcSegmentedButton() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    MdcSegmentedButton.prototype.singleChanged = function () {\n        this.root.setAttribute('role', this.single ? 'radiogroup' : 'group');\n    };\n    MdcSegmentedButton.prototype.initialSyncWithDOM = function () {\n        var isSingleSelect = this.foundation.isSingleSelect();\n        for (var i = 0; i < this.segmentsList.length; i++) {\n            var segment = this.segmentsList[i];\n            segment.setIndex(i);\n            segment.setIsSingleSelect(isSingleSelect);\n        }\n    };\n    MdcSegmentedButton.prototype.handleSelected = function (event) {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.handleSelected(event.detail);\n    };\n    MdcSegmentedButton.prototype.getDefaultFoundation = function () {\n        var _this = this;\n        var adapter = {\n            hasClass: function (className) {\n                return _this.root.classList.contains(className);\n            },\n            getSegments: function () {\n                return _this.mappedSegments();\n            },\n            selectSegment: function (indexOrSegmentId) {\n                var segmentDetail = _this.mappedSegments().find(function (detail) { return detail.index === indexOrSegmentId ||\n                    detail.segmentId === indexOrSegmentId; });\n                if (segmentDetail) {\n                    _this.segmentsList[segmentDetail.index].checked = true;\n                }\n            },\n            unselectSegment: function (indexOrSegmentId) {\n                var segmentDetail = _this.mappedSegments().find(function (detail) { return detail.index === indexOrSegmentId ||\n                    detail.segmentId === indexOrSegmentId; });\n                if (segmentDetail) {\n                    _this.segmentsList[segmentDetail.index].checked = false;\n                    _this.segmentsList[segmentDetail.index].notifySelectedChange('unselected', false);\n                }\n            },\n            notifySelectedChange: function (detail) {\n                _this.emit(events.CHANGE, detail, true /* shouldBubble */);\n            }\n        };\n        return new MDCSegmentedButtonFoundation(adapter);\n    };\n    /**\n     * @return Returns child segments mapped to readonly SegmentDetail list\n     */\n    MdcSegmentedButton.prototype.mappedSegments = function () {\n        return this.segmentsList.map(function (segment, index) {\n            return {\n                index: index,\n                selected: segment.checked,\n                segmentId: segment.getSegmentId()\n            };\n        });\n    };\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSegmentedButton.prototype, \"single\", void 0);\n    __decorate([\n        children('.mdc-segmented-button__segment'),\n        __metadata(\"design:type\", Array)\n    ], MdcSegmentedButton.prototype, \"segmentsList\", void 0);\n    MdcSegmentedButton = __decorate([\n        inject(Element),\n        useView(PLATFORM.moduleName('./mdc-segmented-button.html')),\n        customElement('mdc-segmented-button')\n    ], MdcSegmentedButton);\n    return MdcSegmentedButton;\n}(MdcComponent));\nexport { MdcSegmentedButton };\n//# sourceMappingURL=mdc-segmented-button.js.map","import { __decorate, __values } from \"tslib\";\nimport { viewEngineHooks } from 'aurelia-framework';\nvar EnhanceMdcSegmentedButtonSegment = /** @class */ (function () {\n    function EnhanceMdcSegmentedButtonSegment() {\n    }\n    EnhanceMdcSegmentedButtonSegment.prototype.beforeCompile = function (template) {\n        var e_1, _a;\n        var actions = template.querySelectorAll('[mdc-segmented-button-segment]');\n        try {\n            for (var _b = __values(Array.from(actions)), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var i = _c.value;\n                i.setAttribute('as-element', 'mdc-segmented-button-segment');\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n    };\n    EnhanceMdcSegmentedButtonSegment = __decorate([\n        viewEngineHooks\n    ], EnhanceMdcSegmentedButtonSegment);\n    return EnhanceMdcSegmentedButtonSegment;\n}());\nexport { EnhanceMdcSegmentedButtonSegment };\n//# sourceMappingURL=enhance-mdc-segmented-button-segment.js.map","import { __awaiter, __decorate, __extends, __generator, __metadata } from \"tslib\";\nimport { MDCSegmentedButtonSegmentFoundation } from '@material/segmented-button';\nimport { events } from '@material/segmented-button/segment/constants';\nimport { inject, useView, PLATFORM, customElement } from 'aurelia-framework';\nimport { bindable } from 'aurelia-typed-observable-plugin';\nimport { MdcComponent } from '@aurelia-mdc-web/base';\n/**\n * @selector button[mdc-segmented-button-segment]\n */\nvar MdcSegmentedButtonSegment = /** @class */ (function (_super) {\n    __extends(MdcSegmentedButtonSegment, _super);\n    function MdcSegmentedButtonSegment(root) {\n        var _this = _super.call(this, root) || this;\n        defineMdcSegmentedButtonSegmentElementApis(root);\n        return _this;\n    }\n    Object.defineProperty(MdcSegmentedButtonSegment.prototype, \"checked\", {\n        /** Use to verify the checked value */\n        get: function () {\n            var _a, _b;\n            if (this.foundation) {\n                return (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.isSelected();\n            }\n            else {\n                return (_b = this._checked) !== null && _b !== void 0 ? _b : false;\n            }\n        },\n        /**\n         * Whether the segment is checked.\n         */\n        set: function (value) {\n            var _a, _b;\n            this._checked = value;\n            if (value) {\n                (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.setSelected();\n            }\n            else {\n                (_b = this.foundation) === null || _b === void 0 ? void 0 : _b.setUnselected();\n            }\n        },\n        enumerable: false,\n        configurable: true\n    });\n    MdcSegmentedButtonSegment.prototype.handleClick = function () {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.handleClick();\n    };\n    // eslint-disable-next-line @typescript-eslint/require-await\n    MdcSegmentedButtonSegment.prototype.initialise = function () {\n        return __awaiter(this, void 0, void 0, function () {\n            var attributeValue;\n            return __generator(this, function (_a) {\n                if (this.root.hasAttribute('checked')) {\n                    attributeValue = this.root.getAttribute('checked');\n                    if (attributeValue || attributeValue === '') {\n                        this.root.checked = true;\n                    }\n                }\n                return [2 /*return*/];\n            });\n        });\n    };\n    MdcSegmentedButtonSegment.prototype.initialSyncWithDOM = function () {\n        if (this._checked !== undefined) {\n            this.checked = this._checked;\n        }\n    };\n    MdcSegmentedButtonSegment.prototype.getDefaultFoundation = function () {\n        var _this = this;\n        // DO NOT INLINE this variable. For backward compatibility, foundations take\n        // a Partial<MDCFooAdapter>. To ensure we don't accidentally omit any\n        // methods, we need a separate, strongly typed adapter variable.\n        // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n        var adapter = {\n            isSingleSelect: function () {\n                return _this.isSingleSelect;\n            },\n            getAttr: function (attrName) {\n                return _this.root.getAttribute(attrName);\n            },\n            setAttr: function (attrName, value) {\n                _this.root.setAttribute(attrName, value);\n            },\n            addClass: function (className) {\n                _this.root.classList.add(className);\n            },\n            removeClass: function (className) {\n                _this.root.classList.remove(className);\n            },\n            hasClass: function (className) {\n                return _this.root.classList.contains(className);\n            },\n            notifySelectedChange: function (selected) { return _this.notifySelectedChange(events.SELECTED, selected); },\n            getRootBoundingClientRect: function () {\n                return _this.root.getBoundingClientRect();\n            }\n        };\n        return new MDCSegmentedButtonSegmentFoundation(adapter);\n    };\n    MdcSegmentedButtonSegment.prototype.notifySelectedChange = function (event, selected) {\n        this.emit(event, {\n            index: this.index,\n            selected: selected,\n            segmentId: this.getSegmentId()\n        }, true /* shouldBubble */);\n    };\n    MdcSegmentedButtonSegment.prototype.setIsSingleSelect = function (isSingleSelect) {\n        this.isSingleSelect = isSingleSelect;\n        this.root.setAttribute('role', isSingleSelect ? 'radio' : '');\n    };\n    /**\n     * Sets segment's index value\n     *\n     * @hidden\n     * @param index Segment's index within wrapping segmented button\n     */\n    MdcSegmentedButtonSegment.prototype.setIndex = function (index) {\n        this.index = index;\n    };\n    /**\n     * @hidden\n     * @return Returns segment's segmentId if it was set by client\n     */\n    MdcSegmentedButtonSegment.prototype.getSegmentId = function () {\n        var _a;\n        return (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.getSegmentId();\n    };\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSegmentedButtonSegment.prototype, \"touch\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", String)\n    ], MdcSegmentedButtonSegment.prototype, \"icon\", void 0);\n    MdcSegmentedButtonSegment = __decorate([\n        inject(Element),\n        useView(PLATFORM.moduleName('./mdc-segmented-button-segment.html')),\n        customElement('mdc-segmented-button-segment'),\n        __metadata(\"design:paramtypes\", [Object])\n    ], MdcSegmentedButtonSegment);\n    return MdcSegmentedButtonSegment;\n}(MdcComponent));\nexport { MdcSegmentedButtonSegment };\nfunction defineMdcSegmentedButtonSegmentElementApis(element) {\n    Object.defineProperties(element, {\n        type: {\n            value: 'checkbox'\n        },\n        checked: {\n            get: function () {\n                return this.au.controller.viewModel.checked;\n            },\n            set: function (value) {\n                this.au.controller.viewModel.checked = value;\n            },\n            configurable: true\n        }\n    });\n}\n//# sourceMappingURL=mdc-segmented-button-segment.js.map","// Module\nvar code = \"<template class=\\\"mdc-segmented-button__segment ${touch ? 'mdc-segmented-button--touch' : ''}\\\" mdc-ripple=\\\"no-class.bind: true\\\" click.trigger=\\\"handleClick()\\\"> <div class=\\\"mdc-segmented-button__touch\\\" if.bind=\\\"touch\\\"></div> <div class=\\\"mdc-segmented-button__ripple\\\"></div> <i class=\\\"material-icons mdc-segmented-button__icon\\\" if.bind=\\\"icon\\\">${icon}</i> <div class=\\\"mdc-segmented-button__label\\\"> <slot></slot> </div> </template> \";\n// Exports\nmodule.exports = code;","// Module\nvar code = \"<template class=\\\"mdc-segmented-button ${single ? 'mdc-segmented-button--single-select' : ''}\\\" selected.trigger=\\\"handleSelected($event)\\\"> <slot></slot> </template> \";\n// Exports\nmodule.exports = code;","import { __decorate, __metadata } from \"tslib\";\nimport { DOM } from 'aurelia-pal';\nimport { subscriberCollection, EventSubscriber } from 'aurelia-binding';\n/**\n * @hidden\n * The observer only passes values to the element if options has been set at least once.\n * When the options are set for the first time the observer passes the value to the element.\n * Subsequent options changes pull the value from the element.\n * Subsequent value changes are passed to the element.\n */\nvar MdcSelectValueObserver = /** @class */ (function () {\n    function MdcSelectValueObserver(element, handler) {\n        this.handler = handler;\n        this.element = element;\n    }\n    MdcSelectValueObserver.prototype.setElementValue = function (skipNotify) {\n        if (skipNotify === void 0) { skipNotify = false; }\n        // do not pass the value to the element if options has never been set\n        // the value will be passed on when options do arrive\n        if (this.optionsWereSet) {\n            this.element.au.controller.viewModel.setValue(this.value, skipNotify);\n        }\n    };\n    MdcSelectValueObserver.prototype.getValue = function () {\n        return this.value;\n    };\n    MdcSelectValueObserver.prototype.setValue = function (newValue) {\n        if (this.value === newValue) {\n            return;\n        }\n        // assign and sync element.\n        this.oldValue = this.value;\n        this.value = newValue;\n        this.setElementValue();\n        this.notify();\n    };\n    MdcSelectValueObserver.prototype.synchronizeValue = function () {\n        var value = this.element.value;\n        if (value !== this.value) {\n            this.oldValue = this.value;\n            this.value = value;\n            this.notify();\n        }\n    };\n    MdcSelectValueObserver.prototype.notify = function () {\n        var oldValue = this.oldValue;\n        var newValue = this.value;\n        this.callSubscribers(newValue, oldValue);\n    };\n    MdcSelectValueObserver.prototype.handleEvent = function () {\n        this.synchronizeValue();\n    };\n    MdcSelectValueObserver.prototype.subscribe = function (context, callable) {\n        if (!this.hasSubscribers()) {\n            this.handler.subscribe(this.element, this);\n        }\n        this.addSubscriber(context, callable);\n    };\n    MdcSelectValueObserver.prototype.unsubscribe = function (context, callable) {\n        if (this.removeSubscriber(context, callable) && !this.hasSubscribers()) {\n            this.handler.dispose();\n        }\n    };\n    MdcSelectValueObserver.prototype.bind = function () {\n        var _this = this;\n        var menu = this.element.querySelector('.mdc-menu');\n        this.optionsWereSet = !!menu.querySelector('mdc-list-item');\n        this.domObserver = DOM.createMutationObserver(function (records) {\n            if (records.find(function (x) { return x.type === 'childList'\n                && (Array.from(x.addedNodes).find(function (y) { return y.tagName === 'MDC-LIST-ITEM'; })\n                    || Array.from(x.removedNodes).find(function (y) { return y.tagName === 'MDC-LIST-ITEM'; })); })) {\n                if (!_this.optionsWereSet) {\n                    _this.optionsWereSet = true;\n                    // if options are set for the first time pass the current value to the element\n                    _this.setElementValue(true);\n                }\n                _this.synchronizeValue();\n            }\n        });\n        this.domObserver.observe(menu, { childList: true, subtree: true, characterData: true });\n    };\n    MdcSelectValueObserver.prototype.unbind = function () {\n        var _a;\n        this.optionsWereSet = false;\n        (_a = this.domObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n        this.domObserver = null;\n    };\n    MdcSelectValueObserver = __decorate([\n        subscriberCollection(),\n        __metadata(\"design:paramtypes\", [Element, EventSubscriber])\n    ], MdcSelectValueObserver);\n    return MdcSelectValueObserver;\n}());\nexport { MdcSelectValueObserver };\n//# sourceMappingURL=mdc-select-value-observer.js.map","import { PLATFORM, bindingMode, EventSubscriber } from 'aurelia-framework';\nimport { MdcComponentAdapters } from '@aurelia-mdc-web/base';\nimport { strings } from '@material/select';\nimport { MdcSelectValueObserver } from './mdc-select-value-observer';\nimport { MdcDefaultSelectConfiguration } from './mdc-default-select-configuration';\nexport { MdcSelect } from './mdc-select';\nexport { MdcDefaultSelectConfiguration };\nexport function configure(frameworkConfig, callback) {\n    frameworkConfig.container.get(MdcComponentAdapters).registerMdcElementConfig(selectConfig);\n    frameworkConfig.globalResources([\n        PLATFORM.moduleName('./mdc-select'),\n        PLATFORM.moduleName('./mdc-select-icon'),\n        PLATFORM.moduleName('./mdc-select-helper-text/mdc-select-helper-text')\n    ]);\n    frameworkConfig.aurelia\n        .use\n        .plugin(PLATFORM.moduleName('@aurelia-mdc-web/floating-label'))\n        .plugin(PLATFORM.moduleName('@aurelia-mdc-web/line-ripple'))\n        .plugin(PLATFORM.moduleName('@aurelia-mdc-web/list'))\n        .plugin(PLATFORM.moduleName('@aurelia-mdc-web/menu'))\n        .plugin(PLATFORM.moduleName('@aurelia-mdc-web/notched-outline'))\n        .plugin(PLATFORM.moduleName('@aurelia-mdc-web/ripple'));\n    if (typeof callback === 'function') {\n        var config = frameworkConfig.container.get(MdcDefaultSelectConfiguration);\n        callback(config);\n    }\n}\nvar selectConfig = {\n    tagName: 'mdc-select',\n    properties: {\n        value: {\n            defaultBindingMode: bindingMode.twoWay,\n            getObserver: function (element) {\n                return new MdcSelectValueObserver(element, new EventSubscriber([strings.CHANGE_EVENT]));\n            }\n        }\n    }\n};\n//# sourceMappingURL=index.js.map","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __assign, __extends } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { KEY, normalizeKey } from '@material/dom/keyboard';\nimport { Corner } from '@material/menu-surface/constants';\nimport { cssClasses, numbers, strings } from '@material/select';\n// !!! MODIFIED FOR AURELIA !!!\nvar MDCSelectFoundationAurelia = /** @class */ (function (_super) {\n    __extends(MDCSelectFoundationAurelia, _super);\n    /* istanbul ignore next: optional argument is not a branch statement */\n    /**\n     * @param adapter\n     * @param foundationMap Map from subcomponent names to their subfoundations.\n     */\n    function MDCSelectFoundationAurelia(adapter, foundationMap) {\n        if (foundationMap === void 0) { foundationMap = {}; }\n        var _this = _super.call(this, __assign(__assign({}, MDCSelectFoundationAurelia.defaultAdapter), adapter)) || this;\n        // Disabled state\n        _this.disabled = false;\n        // isMenuOpen is used to track the state of the menu by listening to the\n        // MDCMenuSurface:closed event For reference, menu.open will return false if\n        // the menu is still closing, but isMenuOpen returns false only after the menu\n        // has closed\n        _this.isMenuOpen = false;\n        // By default, select is invalid if it is required but no value is selected.\n        _this.useDefaultValidation = true;\n        _this.customValidity = true;\n        _this.lastSelectedIndex = numbers.UNSET_INDEX;\n        _this.leadingIcon = foundationMap.leadingIcon;\n        _this.helperText = foundationMap.helperText;\n        return _this;\n    }\n    Object.defineProperty(MDCSelectFoundationAurelia, \"cssClasses\", {\n        get: function () {\n            return cssClasses;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MDCSelectFoundationAurelia, \"numbers\", {\n        get: function () {\n            return numbers;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MDCSelectFoundationAurelia, \"strings\", {\n        get: function () {\n            return strings;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MDCSelectFoundationAurelia, \"defaultAdapter\", {\n        /**\n         * See {@link MDCSelectAdapter} for typing information on parameters and return types.\n         */\n        get: function () {\n            // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n            return {\n                addClass: function () { return undefined; },\n                removeClass: function () { return undefined; },\n                hasClass: function () { return false; },\n                activateBottomLine: function () { return undefined; },\n                deactivateBottomLine: function () { return undefined; },\n                getSelectedIndex: function () { return -1; },\n                setSelectedIndex: function () { return undefined; },\n                hasLabel: function () { return false; },\n                floatLabel: function () { return undefined; },\n                getLabelWidth: function () { return 0; },\n                setLabelRequired: function () { return undefined; },\n                hasOutline: function () { return false; },\n                notchOutline: function () { return undefined; },\n                closeOutline: function () { return undefined; },\n                setRippleCenter: function () { return undefined; },\n                notifyChange: function () { return undefined; },\n                setSelectedText: function () { return undefined; },\n                isSelectAnchorFocused: function () { return false; },\n                getSelectAnchorAttr: function () { return ''; },\n                setSelectAnchorAttr: function () { return undefined; },\n                removeSelectAnchorAttr: function () { return undefined; },\n                addMenuClass: function () { return undefined; },\n                removeMenuClass: function () { return undefined; },\n                openMenu: function () { return undefined; },\n                closeMenu: function () { return undefined; },\n                getAnchorElement: function () { return null; },\n                setMenuAnchorElement: function () { return undefined; },\n                setMenuAnchorCorner: function () { return undefined; },\n                setMenuWrapFocus: function () { return undefined; },\n                focusMenuItemAtIndex: function () { return undefined; },\n                getMenuItemCount: function () { return 0; },\n                getMenuItemValues: function () { return []; },\n                getMenuItemTextAtIndex: function () { return ''; },\n                isTypeaheadInProgress: function () { return false; },\n                typeaheadMatchItem: function () { return -1; },\n            };\n            // tslint:enable:object-literal-sort-keys\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /** Returns the index of the currently selected menu item, or -1 if none. */\n    MDCSelectFoundationAurelia.prototype.getSelectedIndex = function () {\n        return this.adapter.getSelectedIndex();\n    };\n    MDCSelectFoundationAurelia.prototype.setSelectedIndex = function (index, closeMenu, skipNotify) {\n        if (closeMenu === void 0) { closeMenu = false; }\n        if (skipNotify === void 0) { skipNotify = false; }\n        if (index >= this.adapter.getMenuItemCount()) {\n            return;\n        }\n        // !!! MODIFIED FOR AURELIA TO SUPPORT TEXT IN \"EMPTY\" ITEMS !!!\n        var menuItemValues = this.adapter.getMenuItemValues();\n        if (index === numbers.UNSET_INDEX || menuItemValues[index] === undefined || menuItemValues[index] === null) {\n            this.adapter.setSelectedText('');\n        }\n        else {\n            this.adapter.setSelectedText(this.adapter.getMenuItemTextAtIndex(index).trim());\n        }\n        this.adapter.setSelectedIndex(index);\n        if (closeMenu) {\n            this.adapter.closeMenu();\n        }\n        if (!skipNotify && this.lastSelectedIndex !== index) {\n            this.handleChange();\n        }\n        this.lastSelectedIndex = index;\n    };\n    // !!! MODIFIED FOR AURELIA !!!\n    MDCSelectFoundationAurelia.prototype.setValue = function (value, skipNotify) {\n        if (skipNotify === void 0) { skipNotify = false; }\n        var index = this.adapter.getMenuItemValues().indexOf(value);\n        this.setSelectedIndex(index, /** closeMenu */ false, skipNotify);\n    };\n    // !!! MODIFIED FOR AURELIA !!!\n    MDCSelectFoundationAurelia.prototype.getValue = function () {\n        var index = this.adapter.getSelectedIndex();\n        var menuItemValues = this.adapter.getMenuItemValues();\n        return index !== numbers.UNSET_INDEX ? menuItemValues[index] : undefined;\n    };\n    MDCSelectFoundationAurelia.prototype.getDisabled = function () {\n        return this.disabled;\n    };\n    MDCSelectFoundationAurelia.prototype.setDisabled = function (isDisabled) {\n        this.disabled = isDisabled;\n        if (this.disabled) {\n            this.adapter.addClass(cssClasses.DISABLED);\n            this.adapter.closeMenu();\n        }\n        else {\n            this.adapter.removeClass(cssClasses.DISABLED);\n        }\n        if (this.leadingIcon) {\n            this.leadingIcon.setDisabled(this.disabled);\n        }\n        if (this.disabled) {\n            // Prevent click events from focusing select. Simply pointer-events: none\n            // is not enough since screenreader clicks may bypass this.\n            this.adapter.removeSelectAnchorAttr('tabindex');\n        }\n        else {\n            this.adapter.setSelectAnchorAttr('tabindex', '0');\n        }\n        this.adapter.setSelectAnchorAttr('aria-disabled', this.disabled.toString());\n    };\n    /** Opens the menu. */\n    MDCSelectFoundationAurelia.prototype.openMenu = function () {\n        this.adapter.addClass(cssClasses.ACTIVATED);\n        this.adapter.openMenu();\n        this.isMenuOpen = true;\n        this.adapter.setSelectAnchorAttr('aria-expanded', 'true');\n    };\n    /**\n     * @param content Sets the content of the helper text.\n     */\n    MDCSelectFoundationAurelia.prototype.setHelperTextContent = function (content) {\n        if (this.helperText) {\n            this.helperText.setContent(content);\n        }\n    };\n    /**\n     * Re-calculates if the notched outline should be notched and if the label\n     * should float.\n     */\n    MDCSelectFoundationAurelia.prototype.layout = function () {\n        if (this.adapter.hasLabel()) {\n            var optionHasValue = this.getValue() !== undefined; // !!! MODIFIED FOR AURELIA !!!\n            var isFocused = this.adapter.hasClass(cssClasses.FOCUSED);\n            var shouldFloatAndNotch = optionHasValue || isFocused;\n            var isRequired = this.adapter.hasClass(cssClasses.REQUIRED);\n            this.notchOutline(shouldFloatAndNotch);\n            this.adapter.floatLabel(shouldFloatAndNotch);\n            this.adapter.setLabelRequired(isRequired);\n        }\n    };\n    /**\n     * Synchronizes the list of options with the state of the foundation. Call\n     * this whenever menu options are dynamically updated.\n     */\n    MDCSelectFoundationAurelia.prototype.layoutOptions = function () {\n        var menuItemValues = this.adapter.getMenuItemValues();\n        var selectedIndex = menuItemValues.indexOf(this.getValue());\n        this.setSelectedIndex(selectedIndex, /** closeMenu */ false, /** skipNotify */ true);\n    };\n    MDCSelectFoundationAurelia.prototype.handleMenuOpened = function () {\n        if (this.adapter.getMenuItemValues().length === 0) {\n            return;\n        }\n        // Menu should open to the last selected element, should open to first menu item otherwise.\n        var selectedIndex = this.getSelectedIndex();\n        var focusItemIndex = selectedIndex >= 0 ? selectedIndex : 0;\n        this.adapter.focusMenuItemAtIndex(focusItemIndex);\n    };\n    MDCSelectFoundationAurelia.prototype.handleMenuClosed = function () {\n        this.adapter.removeClass(cssClasses.ACTIVATED);\n        this.isMenuOpen = false;\n        this.adapter.setSelectAnchorAttr('aria-expanded', 'false');\n        // Unfocus the select if menu is closed without a selection\n        if (!this.adapter.isSelectAnchorFocused()) {\n            this.blur();\n        }\n    };\n    /**\n     * Handles value changes, via change event or programmatic updates.\n     */\n    MDCSelectFoundationAurelia.prototype.handleChange = function () {\n        this.layout();\n        this.adapter.notifyChange(this.getValue());\n        var isRequired = this.adapter.hasClass(cssClasses.REQUIRED);\n        if (isRequired && this.useDefaultValidation) {\n            this.setValid(this.isValid());\n        }\n    };\n    MDCSelectFoundationAurelia.prototype.handleMenuItemAction = function (index) {\n        this.setSelectedIndex(index, /** closeMenu */ true);\n    };\n    /**\n     * Handles focus events from select element.\n     */\n    MDCSelectFoundationAurelia.prototype.handleFocus = function () {\n        this.adapter.addClass(cssClasses.FOCUSED);\n        this.layout();\n        this.adapter.activateBottomLine();\n    };\n    /**\n     * Handles blur events from select element.\n     */\n    MDCSelectFoundationAurelia.prototype.handleBlur = function () {\n        if (this.isMenuOpen) {\n            return;\n        }\n        this.blur();\n    };\n    MDCSelectFoundationAurelia.prototype.handleClick = function (normalizedX) {\n        if (this.disabled) {\n            return;\n        }\n        if (this.isMenuOpen) {\n            this.adapter.closeMenu();\n            return;\n        }\n        this.adapter.setRippleCenter(normalizedX);\n        this.openMenu();\n    };\n    /**\n     * Handles keydown events on select element. Depending on the type of\n     * character typed, does typeahead matching or opens menu.\n     */\n    MDCSelectFoundationAurelia.prototype.handleKeydown = function (event) {\n        if (this.isMenuOpen || !this.adapter.hasClass(cssClasses.FOCUSED)) {\n            return;\n        }\n        var isEnter = normalizeKey(event) === KEY.ENTER;\n        var isSpace = normalizeKey(event) === KEY.SPACEBAR;\n        var arrowUp = normalizeKey(event) === KEY.ARROW_UP;\n        var arrowDown = normalizeKey(event) === KEY.ARROW_DOWN;\n        // Typeahead\n        if (!isSpace && event.key && event.key.length === 1 ||\n            isSpace && this.adapter.isTypeaheadInProgress()) {\n            var key = isSpace ? ' ' : event.key;\n            var typeaheadNextIndex = this.adapter.typeaheadMatchItem(key, this.getSelectedIndex());\n            if (typeaheadNextIndex >= 0) {\n                this.setSelectedIndex(typeaheadNextIndex);\n            }\n            event.preventDefault();\n            return;\n        }\n        if (!isEnter && !isSpace && !arrowUp && !arrowDown) {\n            return;\n        }\n        // Increment/decrement index as necessary and open menu.\n        if (arrowUp && this.getSelectedIndex() > 0) {\n            this.setSelectedIndex(this.getSelectedIndex() - 1);\n        }\n        else if (arrowDown &&\n            this.getSelectedIndex() < this.adapter.getMenuItemCount() - 1) {\n            this.setSelectedIndex(this.getSelectedIndex() + 1);\n        }\n        this.openMenu();\n        event.preventDefault();\n    };\n    /**\n     * Opens/closes the notched outline.\n     */\n    MDCSelectFoundationAurelia.prototype.notchOutline = function (openNotch) {\n        if (!this.adapter.hasOutline()) {\n            return;\n        }\n        var isFocused = this.adapter.hasClass(cssClasses.FOCUSED);\n        if (openNotch) {\n            var labelScale = numbers.LABEL_SCALE;\n            var labelWidth = this.adapter.getLabelWidth() * labelScale;\n            this.adapter.notchOutline(labelWidth);\n        }\n        else if (!isFocused) {\n            this.adapter.closeOutline();\n        }\n    };\n    /**\n     * Sets the aria label of the leading icon.\n     */\n    MDCSelectFoundationAurelia.prototype.setLeadingIconAriaLabel = function (label) {\n        if (this.leadingIcon) {\n            this.leadingIcon.setAriaLabel(label);\n        }\n    };\n    /**\n     * Sets the text content of the leading icon.\n     */\n    MDCSelectFoundationAurelia.prototype.setLeadingIconContent = function (content) {\n        if (this.leadingIcon) {\n            this.leadingIcon.setContent(content);\n        }\n    };\n    MDCSelectFoundationAurelia.prototype.setUseDefaultValidation = function (useDefaultValidation) {\n        this.useDefaultValidation = useDefaultValidation;\n    };\n    MDCSelectFoundationAurelia.prototype.setValid = function (isValid) {\n        if (!this.useDefaultValidation) {\n            this.customValidity = isValid;\n        }\n        this.adapter.setSelectAnchorAttr('aria-invalid', (!isValid).toString());\n        if (isValid) {\n            this.adapter.removeClass(cssClasses.INVALID);\n            this.adapter.removeMenuClass(cssClasses.MENU_INVALID);\n        }\n        else {\n            this.adapter.addClass(cssClasses.INVALID);\n            this.adapter.addMenuClass(cssClasses.MENU_INVALID);\n        }\n        this.syncHelperTextValidity(isValid);\n    };\n    MDCSelectFoundationAurelia.prototype.isValid = function () {\n        if (this.useDefaultValidation &&\n            this.adapter.hasClass(cssClasses.REQUIRED) &&\n            !this.adapter.hasClass(cssClasses.DISABLED)) {\n            // See notes for required attribute under https://www.w3.org/TR/html52/sec-forms.html#the-select-element\n            // TL;DR: Invalid if no index is selected, or if the first index is selected and has an empty value.\n            return this.getSelectedIndex() !== numbers.UNSET_INDEX &&\n                (this.getSelectedIndex() !== 0 || Boolean(this.getValue()));\n        }\n        return this.customValidity;\n    };\n    MDCSelectFoundationAurelia.prototype.setRequired = function (isRequired) {\n        if (isRequired) {\n            this.adapter.addClass(cssClasses.REQUIRED);\n        }\n        else {\n            this.adapter.removeClass(cssClasses.REQUIRED);\n        }\n        this.adapter.setSelectAnchorAttr('aria-required', isRequired.toString());\n        this.adapter.setLabelRequired(isRequired);\n    };\n    MDCSelectFoundationAurelia.prototype.getRequired = function () {\n        return this.adapter.getSelectAnchorAttr('aria-required') === 'true';\n    };\n    MDCSelectFoundationAurelia.prototype.init = function () {\n        var anchorEl = this.adapter.getAnchorElement();\n        if (anchorEl) {\n            this.adapter.setMenuAnchorElement(anchorEl);\n            this.adapter.setMenuAnchorCorner(Corner.BOTTOM_START);\n        }\n        this.adapter.setMenuWrapFocus(false);\n        this.setDisabled(this.adapter.hasClass(cssClasses.DISABLED));\n        this.syncHelperTextValidity(!this.adapter.hasClass(cssClasses.INVALID));\n        this.layout();\n        this.layoutOptions();\n    };\n    /**\n     * Unfocuses the select component.\n     */\n    MDCSelectFoundationAurelia.prototype.blur = function () {\n        this.adapter.removeClass(cssClasses.FOCUSED);\n        this.layout();\n        this.adapter.deactivateBottomLine();\n        var isRequired = this.adapter.hasClass(cssClasses.REQUIRED);\n        if (isRequired && this.useDefaultValidation) {\n            this.setValid(this.isValid());\n        }\n    };\n    MDCSelectFoundationAurelia.prototype.syncHelperTextValidity = function (isValid) {\n        if (!this.helperText) {\n            return;\n        }\n        this.helperText.setValidity(isValid);\n        var helperTextVisible = this.helperText.isVisible();\n        var helperTextId = this.helperText.getId();\n        if (helperTextVisible && helperTextId) {\n            this.adapter.setSelectAnchorAttr(strings.ARIA_DESCRIBEDBY, helperTextId);\n        }\n        else {\n            // Needed because screenreaders will read labels pointed to by\n            // `aria-describedby` even if they are `aria-hidden`.\n            this.adapter.removeSelectAnchorAttr(strings.ARIA_DESCRIBEDBY);\n        }\n    };\n    return MDCSelectFoundationAurelia;\n}(MDCFoundation));\nexport { MDCSelectFoundationAurelia };\n// tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\nexport default MDCSelectFoundationAurelia;\n//# sourceMappingURL=mdc-select-foundation-aurelia.js.map","import { __assign, __awaiter, __decorate, __extends, __generator, __metadata } from \"tslib\";\nimport { MdcComponent } from '@aurelia-mdc-web/base';\nimport { cssClasses, strings } from '@material/select';\nimport { inject, useView, customElement, processContent, children, bindingMode, TaskQueue } from 'aurelia-framework';\nimport { PLATFORM } from 'aurelia-pal';\nimport { mdcIconStrings } from './mdc-select-icon';\nimport { mdcHelperTextCssClasses } from './mdc-select-helper-text/mdc-select-helper-text';\nimport { bindable } from 'aurelia-typed-observable-plugin';\nimport { MDCSelectFoundationAurelia } from './mdc-select-foundation-aurelia';\nimport { MdcDefaultSelectConfiguration } from './mdc-default-select-configuration';\nstrings.CHANGE_EVENT = strings.CHANGE_EVENT.toLowerCase();\nvar selectId = 0;\n/**\n * @selector mdc-select\n * @emits mdcselect:change | Emitted if user changed the value\n */\nvar MdcSelect = /** @class */ (function (_super) {\n    __extends(MdcSelect, _super);\n    function MdcSelect(root, taskQueue, defaultConfiguration) {\n        var _this = _super.call(this, root) || this;\n        _this.taskQueue = taskQueue;\n        _this.defaultConfiguration = defaultConfiguration;\n        _this.id = \"mdc-select-\" + ++selectId;\n        // private mutationObserver: MutationObserver;\n        _this.errors = new Map();\n        /** Styles the select as an outlined select */\n        _this.outlined = _this.defaultConfiguration.outlined;\n        defineMdcSelectElementApis(_this.root);\n        return _this;\n    }\n    MdcSelect_1 = MdcSelect;\n    MdcSelect.processContent = function (_viewCompiler, _resources, element) {\n        // move icon to the slot - this allows omitting slot specification\n        var leadingIcon = element.querySelector(\"[\" + mdcIconStrings.ATTRIBUTE + \"]\");\n        leadingIcon === null || leadingIcon === void 0 ? void 0 : leadingIcon.setAttribute('slot', 'leading-icon');\n        return true;\n    };\n    MdcSelect.prototype.labelChanged = function () {\n        var _this = this;\n        this.taskQueue.queueTask(function () { var _a; return (_a = _this.foundation) === null || _a === void 0 ? void 0 : _a.layout(); });\n    };\n    MdcSelect.prototype.outlinedChanged = function () {\n        var _this = this;\n        this.taskQueue.queueTask(function () { var _a; return (_a = _this.foundation) === null || _a === void 0 ? void 0 : _a.layout(); });\n    };\n    MdcSelect.prototype.requiredChanged = function () {\n        var _a;\n        return __awaiter(this, void 0, void 0, function () {\n            var _this = this;\n            return __generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0: return [4 /*yield*/, this.initialised];\n                    case 1:\n                        _b.sent();\n                        if (this.required) {\n                            this.selectAnchor.setAttribute('aria-required', 'true');\n                        }\n                        else {\n                            this.selectAnchor.removeAttribute('aria-required');\n                        }\n                        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.setRequired(this.required);\n                        this.taskQueue.queueTask(function () { var _a; return (_a = _this.foundation) === null || _a === void 0 ? void 0 : _a.layout(); });\n                        return [2 /*return*/];\n                }\n            });\n        });\n    };\n    MdcSelect.prototype.disabledChanged = function () {\n        var _a;\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0: return [4 /*yield*/, this.initialised];\n                    case 1:\n                        _b.sent();\n                        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.setDisabled(this.disabled);\n                        return [2 /*return*/];\n                }\n            });\n        });\n    };\n    Object.defineProperty(MdcSelect.prototype, \"value\", {\n        get: function () {\n            if (this.foundation) {\n                return this.foundation.getValue();\n            }\n            else {\n                return this.initialValue;\n            }\n        },\n        set: function (value) {\n            this.setValue(value);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    MdcSelect.prototype.setValue = function (value, skipNotify) {\n        if (skipNotify === void 0) { skipNotify = false; }\n        if (this.foundation) {\n            this.foundation.setValue(value, skipNotify);\n            this.foundation.layout();\n        }\n        else {\n            this.initialValue = value;\n        }\n    };\n    Object.defineProperty(MdcSelect.prototype, \"valid\", {\n        get: function () {\n            var _a, _b;\n            return (_b = (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.isValid()) !== null && _b !== void 0 ? _b : true;\n        },\n        set: function (value) {\n            var _a;\n            (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.setValid(value);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MdcSelect.prototype, \"selectedIndex\", {\n        get: function () {\n            return this.foundation.getSelectedIndex();\n        },\n        set: function (selectedIndex) {\n            var _a;\n            (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.setSelectedIndex(selectedIndex, /** closeMenu */ true);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    MdcSelect.prototype.addError = function (error) {\n        this.errors.set(error, true);\n        this.valid = false;\n    };\n    MdcSelect.prototype.removeError = function (error) {\n        this.errors.delete(error);\n        this.valid = this.errors.size === 0;\n    };\n    MdcSelect.prototype.renderErrors = function () {\n        var helperText = this.root.nextElementSibling;\n        if ((helperText === null || helperText === void 0 ? void 0 : helperText.tagName) === 'MDC-SELECT-HELPER-TEXT') {\n            helperText.au.controller.viewModel.errors = Array.from(this.errors.keys())\n                .filter(function (x) { return x.message !== null; }).map(function (x) { return x.message; });\n        }\n    };\n    MdcSelect.prototype.initialise = function () {\n        var _a;\n        return __awaiter(this, void 0, void 0, function () {\n            var leadingIconEl, nextSibling;\n            return __generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0:\n                        leadingIconEl = this.root.querySelector(\"[\" + mdcIconStrings.ATTRIBUTE + \"]\");\n                        this.leadingIcon = leadingIconEl === null || leadingIconEl === void 0 ? void 0 : leadingIconEl.au['mdc-select-icon'].viewModel;\n                        nextSibling = this.root.nextElementSibling;\n                        if ((nextSibling === null || nextSibling === void 0 ? void 0 : nextSibling.tagName) === mdcHelperTextCssClasses.ROOT.toUpperCase()) {\n                            this.helperText = nextSibling.au.controller.viewModel;\n                        }\n                        return [4 /*yield*/, Promise.all([(_a = this.helperText) === null || _a === void 0 ? void 0 : _a.initialised, this.menu.initialised].filter(function (x) { return x; }))];\n                    case 1:\n                        _b.sent();\n                        this.menu.list_.singleSelection = true;\n                        return [2 /*return*/];\n                }\n            });\n        });\n    };\n    MdcSelect.prototype.initialSyncWithDOM = function () {\n        var _a, _b;\n        // set initial value without emitting change events\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.setValue(this.initialValue, true);\n        (_b = this.foundation) === null || _b === void 0 ? void 0 : _b.layout();\n        this.errors = new Map();\n        this.valid = true;\n    };\n    MdcSelect.prototype.getDefaultFoundation = function () {\n        // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n        // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n        var adapter = __assign(__assign(__assign(__assign({}, this.getSelectAdapterMethods()), this.getCommonAdapterMethods()), this.getOutlineAdapterMethods()), this.getLabelAdapterMethods());\n        return new MDCSelectFoundationAurelia(adapter, this.getFoundationMap());\n    };\n    MdcSelect.prototype.getSelectAdapterMethods = function () {\n        var _this = this;\n        return {\n            setSelectedText: function (text) {\n                _this.selectedText.textContent = text;\n            },\n            isSelectAnchorFocused: function () { return document.activeElement === _this.selectAnchor; },\n            getSelectAnchorAttr: function (attr) { return _this.selectAnchor.getAttribute(attr); },\n            setSelectAnchorAttr: function (attr, value) {\n                _this.selectAnchor.setAttribute(attr, value);\n            },\n            removeSelectAnchorAttr: function (attr) {\n                _this.selectAnchor.removeAttribute(attr);\n            },\n            addMenuClass: function (className) {\n                var _a;\n                (_a = _this.menuElement) === null || _a === void 0 ? void 0 : _a.classList.add(className);\n            },\n            removeMenuClass: function (className) {\n                var _a;\n                (_a = _this.menuElement) === null || _a === void 0 ? void 0 : _a.classList.remove(className);\n            },\n            openMenu: function () {\n                _this.menu.open = true;\n                if ((_this.hoistToBody || _this.fixed) && !_this.naturalWidth) {\n                    _this.menu.root.style.minWidth = _this.menu.root.style.maxWidth = _this.root.clientWidth + \"px\";\n                }\n            },\n            closeMenu: function () { _this.menu.open = false; },\n            getAnchorElement: function () { return _this.root.querySelector(strings.SELECT_ANCHOR_SELECTOR); },\n            setMenuAnchorElement: function (anchorEl) {\n                _this.menu.anchor = anchorEl;\n            },\n            setMenuAnchorCorner: function (anchorCorner) {\n                _this.menu.setAnchorCorner(anchorCorner);\n            },\n            setMenuWrapFocus: function (wrapFocus) {\n                _this.menu.wrapFocus = wrapFocus;\n            },\n            getSelectedIndex: function () {\n                var index = _this.menu.selectedIndex;\n                return index instanceof Array ? index[0] : index;\n            },\n            setSelectedIndex: function (index) {\n                _this.menu.selectedIndex = index;\n            },\n            removeAttributeAtIndex: function (index, attributeName) {\n                _this.menu.items[index].removeAttribute(attributeName);\n            },\n            focusMenuItemAtIndex: function (index) {\n                _this.menu.items[index].focus();\n            },\n            getMenuItemCount: function () { return _this.menu.items.length; },\n            getMenuItemValues: function () { return _this.menu.items.map(function (x) { return x.au.controller.viewModel.value; }); },\n            getMenuItemTextAtIndex: function (index) { return _this.menu.getPrimaryTextAtIndex(index); },\n            isTypeaheadInProgress: function () { return _this.menu.typeaheadInProgress; },\n            typeaheadMatchItem: function (nextChar, startingIndex) { return _this.menu.typeaheadMatchItem(nextChar, startingIndex); },\n        };\n    };\n    MdcSelect.prototype.getCommonAdapterMethods = function () {\n        var _this = this;\n        return {\n            addClass: function (className) {\n                _this.root.classList.add(className);\n            },\n            removeClass: function (className) {\n                _this.root.classList.remove(className);\n            },\n            hasClass: function (className) { return _this.root.classList.contains(className); },\n            setRippleCenter: function (normalizedX) { var _a; return (_a = _this.lineRipple) === null || _a === void 0 ? void 0 : _a.setRippleCenter(normalizedX); },\n            activateBottomLine: function () { var _a; return (_a = _this.lineRipple) === null || _a === void 0 ? void 0 : _a.activate(); },\n            deactivateBottomLine: function () { var _a; return (_a = _this.lineRipple) === null || _a === void 0 ? void 0 : _a.deactivate(); },\n            notifyChange: function (value) {\n                var index = _this.selectedIndex;\n                _this.emit(strings.CHANGE_EVENT, { value: value, index: index }, true /* shouldBubble  */);\n                _this.emit('change', { value: value, index: index }, true /* shouldBubble  */);\n            },\n        };\n    };\n    MdcSelect.prototype.getOutlineAdapterMethods = function () {\n        var _this = this;\n        return {\n            hasOutline: function () { return Boolean(_this.outline); },\n            notchOutline: function (labelWidth) { var _a; return (_a = _this.outline) === null || _a === void 0 ? void 0 : _a.notch(labelWidth); },\n            closeOutline: function () { var _a; return (_a = _this.outline) === null || _a === void 0 ? void 0 : _a.closeNotch(); },\n        };\n    };\n    MdcSelect.prototype.getLabelAdapterMethods = function () {\n        var _this = this;\n        return {\n            hasLabel: function () { return !!_this.mdcLabel; },\n            floatLabel: function (shouldFloat) { var _a; return (_a = _this.mdcLabel) === null || _a === void 0 ? void 0 : _a.float(shouldFloat); },\n            getLabelWidth: function () { return _this.mdcLabel ? _this.mdcLabel.getWidth() : 0; },\n            setLabelRequired: function (isRequired) { var _a; return (_a = _this.mdcLabel) === null || _a === void 0 ? void 0 : _a.setRequired(isRequired); },\n        };\n    };\n    MdcSelect.prototype.handleChange = function () {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.handleChange();\n        this.emit('change', {}, true);\n    };\n    MdcSelect.prototype.handleFocus = function () {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.handleFocus();\n    };\n    MdcSelect.prototype.handleBlur = function () {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.handleBlur();\n        // if class is set it means the menu is open,\n        // do not emit blur since \"conceptually\" the element is still active\n        if (!this.root.classList.contains(cssClasses.FOCUSED)) {\n            this.emit('blur', {}, true);\n        }\n    };\n    MdcSelect.prototype.handleClick = function (evt) {\n        var _a;\n        this.selectAnchor.focus();\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.handleClick(this.getNormalizedXCoordinate(evt));\n    };\n    MdcSelect.prototype.handleKeydown = function (evt) {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.handleKeydown(evt);\n        return true;\n    };\n    MdcSelect.prototype.handleMenuItemAction = function (evt) {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.handleMenuItemAction(evt.detail.index);\n    };\n    MdcSelect.prototype.handleMenuOpened = function () {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.handleMenuOpened();\n    };\n    MdcSelect.prototype.handleMenuClosed = function () {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.handleMenuClosed();\n        if (!this.root.classList.contains(cssClasses.FOCUSED)) {\n            this.emit('blur', {}, true);\n        }\n    };\n    MdcSelect.prototype.handleItemsChanged = function () {\n        var _a, _b;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.layoutOptions();\n        (_b = this.foundation) === null || _b === void 0 ? void 0 : _b.layout();\n    };\n    MdcSelect.prototype.focus = function () {\n        this.selectAnchor.focus();\n    };\n    MdcSelect.prototype.blur = function () {\n        this.selectAnchor.blur();\n    };\n    /**\n     * @hidden\n     * Calculates where the line ripple should start based on the x coordinate within the component.\n     */\n    MdcSelect.prototype.getNormalizedXCoordinate = function (evt) {\n        var targetClientRect = evt.target.getBoundingClientRect();\n        var xCoordinate = this.isTouchEvent(evt) ? evt.touches[0].clientX : evt.clientX;\n        return xCoordinate - targetClientRect.left;\n    };\n    MdcSelect.prototype.isTouchEvent = function (evt) {\n        return Boolean(evt.touches);\n    };\n    /**\n     * @hidden\n     * Returns a map of all subcomponents to subfoundations.\n     */\n    MdcSelect.prototype.getFoundationMap = function () {\n        var _a, _b;\n        return {\n            helperText: (_a = this.helperText) === null || _a === void 0 ? void 0 : _a.foundation,\n            leadingIcon: (_b = this.leadingIcon) === null || _b === void 0 ? void 0 : _b.foundation\n        };\n    };\n    var MdcSelect_1;\n    __decorate([\n        children('mdc-list-items'),\n        __metadata(\"design:type\", Array)\n    ], MdcSelect.prototype, \"items\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", String)\n    ], MdcSelect.prototype, \"label\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSelect.prototype, \"outlined\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSelect.prototype, \"required\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSelect.prototype, \"disabled\", void 0);\n    __decorate([\n        bindable.booleanAttr({ defaultBindingMode: bindingMode.oneTime }),\n        __metadata(\"design:type\", Boolean)\n    ], MdcSelect.prototype, \"hoistToBody\", void 0);\n    __decorate([\n        bindable.booleanAttr({ defaultBindingMode: bindingMode.oneTime }),\n        __metadata(\"design:type\", Boolean)\n    ], MdcSelect.prototype, \"fixed\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", Object)\n    ], MdcSelect.prototype, \"anchorMargin\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSelect.prototype, \"naturalWidth\", void 0);\n    MdcSelect = MdcSelect_1 = __decorate([\n        inject(Element, TaskQueue, MdcDefaultSelectConfiguration),\n        useView(PLATFORM.moduleName('./mdc-select.html')),\n        customElement(cssClasses.ROOT),\n        processContent(MdcSelect_1.processContent),\n        __metadata(\"design:paramtypes\", [HTMLElement, TaskQueue, MdcDefaultSelectConfiguration])\n    ], MdcSelect);\n    return MdcSelect;\n}(MdcComponent));\nexport { MdcSelect };\nfunction defineMdcSelectElementApis(element) {\n    Object.defineProperties(element, {\n        value: {\n            get: function () {\n                return this.au.controller.viewModel.value;\n            },\n            set: function (value) {\n                // aurelia binding converts \"undefined\" and \"null\" into empty string\n                // this does not translate well into \"empty\" menu items when several selects are bound to the same field\n                this.au.controller.viewModel.value = value === '' ? undefined : value;\n            },\n            configurable: true\n        },\n        options: {\n            get: function () {\n                return this.au.controller.viewModel.root.querySelectorAll('.mdc-list-item');\n            },\n            configurable: true\n        },\n        selectedIndex: {\n            get: function () {\n                return this.au.controller.viewModel.selectedIndex;\n            },\n            set: function (value) {\n                this.au.controller.viewModel.selectedIndex = value;\n            },\n            configurable: true\n        },\n        valid: {\n            get: function () {\n                return this.au.controller.viewModel.valid;\n            },\n            set: function (value) {\n                this.au.controller.viewModel.valid = value;\n            },\n            configurable: true\n        },\n        addError: {\n            value: function (error) {\n                this.au.controller.viewModel.addError(error);\n            },\n            configurable: true\n        },\n        removeError: {\n            value: function (error) {\n                this.au.controller.viewModel.removeError(error);\n            },\n            configurable: true\n        },\n        renderErrors: {\n            value: function () {\n                this.au.controller.viewModel.renderErrors();\n            },\n            configurable: true\n        },\n        focus: {\n            value: function () {\n                this.au.controller.viewModel.focus();\n            },\n            configurable: true\n        },\n        blur: {\n            value: function () {\n                this.au.controller.viewModel.blur();\n            },\n            configurable: true\n        }\n    });\n}\n//# sourceMappingURL=mdc-select.js.map","import { __decorate, __extends, __metadata } from \"tslib\";\nimport { MdcComponent } from '@aurelia-mdc-web/base';\nimport { helperTextCssClasses, MDCSelectHelperTextFoundation } from '@material/select';\nimport { inject, customElement, useView, PLATFORM } from 'aurelia-framework';\nimport { bindable } from 'aurelia-typed-observable-plugin';\nexport var mdcHelperTextCssClasses = {\n    ROOT: 'mdc-select-helper-text'\n};\nvar MdcSelectHelperText = /** @class */ (function (_super) {\n    __extends(MdcSelectHelperText, _super);\n    function MdcSelectHelperText() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.helperTextCssClasses = helperTextCssClasses;\n        _this.ROOT = mdcHelperTextCssClasses.ROOT;\n        return _this;\n    }\n    Object.defineProperty(MdcSelectHelperText.prototype, \"foundationForTextField\", {\n        // Provided for access by MDCTextField component\n        get: function () {\n            return this.foundation;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    MdcSelectHelperText.prototype.getDefaultFoundation = function () {\n        var _this = this;\n        // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n        // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n        var adapter = {\n            addClass: function (className) { return _this.root.classList.add(className); },\n            removeClass: function (className) { return _this.root.classList.remove(className); },\n            hasClass: function (className) { return _this.root.classList.contains(className); },\n            getAttr: function (attr) { return _this.root.getAttribute(attr); },\n            setAttr: function (attr, value) { return _this.root.setAttribute(attr, value); },\n            removeAttr: function (attr) { return _this.root.removeAttribute(attr); },\n            setContent: function (content) {\n                _this.root.textContent = content;\n            },\n        };\n        return new MDCSelectHelperTextFoundation(adapter);\n    };\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSelectHelperText.prototype, \"persistent\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSelectHelperText.prototype, \"validation\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", Array)\n    ], MdcSelectHelperText.prototype, \"errors\", void 0);\n    MdcSelectHelperText = __decorate([\n        inject(Element),\n        useView(PLATFORM.moduleName('./mdc-select-helper-text.html')),\n        customElement(mdcHelperTextCssClasses.ROOT)\n    ], MdcSelectHelperText);\n    return MdcSelectHelperText;\n}(MdcComponent));\nexport { MdcSelectHelperText };\n//# sourceMappingURL=mdc-select-helper-text.js.map","// Module\nvar code = \" <template class=\\\"${ROOT} ${persistent ? helperTextCssClasses.HELPER_TEXT_VALIDATION_MSG_PERSISTENT : ''} ${validation ? helperTextCssClasses.HELPER_TEXT_VALIDATION_MSG : ''}\\\"><slot></slot><span class=\\\"mdc-select-helper-text__error\\\" repeat.for=\\\"e of errors\\\">${e}<br/></span> </template> \";\n// Exports\nmodule.exports = code;","import { __awaiter, __decorate, __extends, __generator } from \"tslib\";\nimport { customAttribute, inject } from 'aurelia-framework';\nimport { MdcComponent } from '@aurelia-mdc-web/base';\nimport { MDCSelectIconFoundation } from '@material/select';\nexport var mdcIconStrings = {\n    ATTRIBUTE: 'mdc-select-icon'\n};\nvar MdcSelectIcon = /** @class */ (function (_super) {\n    __extends(MdcSelectIcon, _super);\n    function MdcSelectIcon() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    // eslint-disable-next-line @typescript-eslint/require-await\n    MdcSelectIcon.prototype.initialise = function () {\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_a) {\n                this.root.classList.add('mdc-select__icon');\n                return [2 /*return*/];\n            });\n        });\n    };\n    MdcSelectIcon.prototype.getDefaultFoundation = function () {\n        var _this = this;\n        // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n        // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n        var adapter = {\n            getAttr: function (attr) { return _this.root.getAttribute(attr); },\n            setAttr: function (attr, value) { return _this.root.setAttribute(attr, value); },\n            removeAttr: function (attr) { return _this.root.removeAttribute(attr); },\n            setContent: function (content) {\n                _this.root.textContent = content;\n            },\n            registerInteractionHandler: function (evtType, handler) { return _this.listen(evtType, handler); },\n            deregisterInteractionHandler: function (evtType, handler) { return _this.unlisten(evtType, handler); },\n            notifyIconAction: function () { return _this.emit(MDCSelectIconFoundation.strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */); },\n        };\n        return new MDCSelectIconFoundation(adapter);\n    };\n    MdcSelectIcon = __decorate([\n        inject(Element),\n        customAttribute(mdcIconStrings.ATTRIBUTE)\n    ], MdcSelectIcon);\n    return MdcSelectIcon;\n}(MdcComponent));\nexport { MdcSelectIcon };\n//# sourceMappingURL=mdc-select-icon.js.map","// Module\nvar code = \"<template class=\\\"mdc-select mdc-select--${outlined ? 'outlined' : 'filled'} ${leadingIcon ? 'mdc-select--with-leading-icon' : ''} ${required ? 'mdc-select--required' : ''}\\\" role=\\\"button\\\" aria-haspopup=\\\"listbox\\\" id=\\\"${id}\\\"> <div class=\\\"mdc-select__anchor\\\" ref=\\\"selectAnchor\\\" mdc-ripple=\\\"no-class.bind: true;\\\" change.trigger=\\\"handleChange()\\\" focus.trigger=\\\"handleFocus()\\\" blur.trigger=\\\"handleBlur()\\\" keydown.trigger=\\\"handleKeydown($event)\\\" click.trigger=\\\"handleClick($event)\\\"> <span class=\\\"mdc-select__ripple\\\" if.bind=\\\"!outlined\\\"></span> <slot name=\\\"leading-icon\\\"></slot> <span class=\\\"mdc-select__selected-text-container\\\"> <span class=\\\"mdc-select__selected-text\\\" ref=\\\"selectedText\\\"></span> </span> <span class=\\\"mdc-select__dropdown-icon\\\"> <svg class=\\\"mdc-select__dropdown-icon-graphic\\\" viewBox=\\\"7 10 10 5\\\"> <polygon class=\\\"mdc-select__dropdown-icon-inactive\\\" stroke=\\\"none\\\" fill-rule=\\\"evenodd\\\" points=\\\"7 10 12 15 17 10\\\"> </polygon> <polygon class=\\\"mdc-select__dropdown-icon-active\\\" stroke=\\\"none\\\" fill-rule=\\\"evenodd\\\" points=\\\"7 15 12 10 17 15\\\"> </polygon> </svg> </span> <mdc-floating-label if.bind=\\\"label && !outlined\\\" for=\\\"${id}\\\" view-model.ref=\\\"mdcLabel\\\">${label} </mdc-floating-label> <mdc-line-ripple if.bind=\\\"!outlined\\\" view-model.ref=\\\"lineRipple\\\"></mdc-line-ripple> <mdc-notched-outline if.bind=\\\"outlined\\\" view-model.ref=\\\"outline\\\"> <mdc-floating-label if.bind=\\\"label\\\" for=\\\"${id}\\\" view-model.ref=\\\"mdcLabel\\\">${label}</mdc-floating-label> </mdc-notched-outline> </div> <mdc-menu class=\\\"mdc-select__menu ${naturalWidth || hoistToBody || fixed ? '' : 'mdc-menu-surface--fullwidth'}\\\" view-model.ref=\\\"menu\\\" ref=\\\"menuElement\\\" typeahead mdcmenusurface:closed.trigger=\\\"handleMenuClosed()\\\" anchor-margin.bind=\\\"anchorMargin\\\" mdcmenusurface:opened.trigger=\\\"handleMenuOpened()\\\" mdcmenu:selected.trigger=\\\"handleMenuItemAction($event)\\\" mdclist:itemschanged.trigger=\\\"handleItemsChanged($event)\\\" hoist-to-body.bind=\\\"hoistToBody\\\" fixed.bind=\\\"fixed\\\"> <slot></slot> </mdc-menu> </template> \";\n// Exports\nmodule.exports = code;","import { PLATFORM, bindingMode, ValueAttributeObserver, EventSubscriber } from 'aurelia-framework';\nimport { MdcComponentAdapters } from '@aurelia-mdc-web/base';\nimport { events } from '@material/slider';\nexport { MdcSlider } from './mdc-slider';\nexport function configure(config) {\n    config.container.get(MdcComponentAdapters).registerMdcElementConfig(checkboxConfig);\n    config.globalResources([\n        PLATFORM.moduleName('./mdc-slider')\n    ]);\n    config.aurelia\n        .use\n        .plugin(PLATFORM.moduleName('@aurelia-mdc-web/ripple'));\n}\nvar checkboxConfig = {\n    tagName: 'mdc-slider',\n    properties: {\n        value: {\n            defaultBindingMode: bindingMode.twoWay,\n            getObserver: function (element) {\n                return new ValueAttributeObserver(element, 'value', new EventSubscriber([events.CHANGE, events.INPUT]));\n            }\n        },\n        valuestart: {\n            defaultBindingMode: bindingMode.twoWay,\n            getObserver: function (element) {\n                return new ValueAttributeObserver(element, 'valuestart', new EventSubscriber([events.CHANGE, events.INPUT]));\n            }\n        }\n    }\n};\n//# sourceMappingURL=index.js.map","import { __extends } from \"tslib\";\nimport { MDCSliderFoundation } from '@material/slider';\n// overriding lets the rest of the foundation to always get a fresh bounding rect\n// otherwise resizing a container, or moving an element ruins interaction\nvar MdcSliderFoundationAurelia = /** @class */ (function (_super) {\n    __extends(MdcSliderFoundationAurelia, _super);\n    function MdcSliderFoundationAurelia() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    Object.defineProperty(MdcSliderFoundationAurelia.prototype, \"rect\", {\n        get: function () {\n            return this.adapter.getBoundingClientRect();\n        },\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        set: function (_) { },\n        enumerable: false,\n        configurable: true\n    });\n    return MdcSliderFoundationAurelia;\n}(MDCSliderFoundation));\nexport { MdcSliderFoundationAurelia };\n//# sourceMappingURL=mdc-slider-foundation-aurelia.js.map","import { __awaiter, __decorate, __extends, __generator, __metadata } from \"tslib\";\nimport { MdcComponent } from '@aurelia-mdc-web/base';\nimport { Thumb, cssClasses, TickMark, events, attributes } from '@material/slider';\nimport { bindable } from 'aurelia-typed-observable-plugin';\nimport { inject, useView, PLATFORM, customElement } from 'aurelia-framework';\nimport { MdcSliderFoundationAurelia } from './mdc-slider-foundation-aurelia';\nevents.INPUT = events.INPUT.toLowerCase();\nevents.CHANGE = events.CHANGE.toLowerCase();\nvar MdcSlider = /** @class */ (function (_super) {\n    __extends(MdcSlider, _super);\n    function MdcSlider(root) {\n        var _this = _super.call(this, root) || this;\n        _this.TickMark = TickMark;\n        _this.eventHandlers = [];\n        _this.min = '0';\n        _this.max = '100';\n        _this.step = '1';\n        _this.valueToAriaValueTextFn = null;\n        _this._value = 0;\n        _this._valueStart = 0;\n        defineMdcSliderElementApis(_this.root);\n        return _this;\n    }\n    MdcSlider.prototype.disabledChanged = function () {\n        var _a;\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0: return [4 /*yield*/, this.initialised];\n                    case 1:\n                        _b.sent();\n                        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.setDisabled(this.disabled);\n                        return [2 /*return*/];\n                }\n            });\n        });\n    };\n    MdcSlider.prototype.minChanged = function () {\n        var _a, _b, _c, _d;\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_e) {\n                switch (_e.label) {\n                    case 0: return [4 /*yield*/, this.initialised];\n                    case 1:\n                        _e.sent();\n                        ((_a = this.startInput) !== null && _a !== void 0 ? _a : this.endInput).setAttribute(attributes.INPUT_MIN, this.min);\n                        (_b = this.foundation) === null || _b === void 0 ? void 0 : _b.destroy();\n                        this.cleanupEventHandlers();\n                        (_c = this.foundation) === null || _c === void 0 ? void 0 : _c.init();\n                        (_d = this.foundation) === null || _d === void 0 ? void 0 : _d.layout();\n                        return [2 /*return*/];\n                }\n            });\n        });\n    };\n    MdcSlider.prototype.maxChanged = function () {\n        var _a, _b, _c;\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_d) {\n                switch (_d.label) {\n                    case 0: return [4 /*yield*/, this.initialised];\n                    case 1:\n                        _d.sent();\n                        this.endInput.setAttribute(attributes.INPUT_MAX, this.max);\n                        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.destroy();\n                        this.cleanupEventHandlers();\n                        (_b = this.foundation) === null || _b === void 0 ? void 0 : _b.init();\n                        (_c = this.foundation) === null || _c === void 0 ? void 0 : _c.layout();\n                        return [2 /*return*/];\n                }\n            });\n        });\n    };\n    MdcSlider.prototype.stepChanged = function () {\n        var _a, _b, _c;\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_d) {\n                switch (_d.label) {\n                    case 0: return [4 /*yield*/, this.initialised];\n                    case 1:\n                        _d.sent();\n                        (_a = this.startInput) === null || _a === void 0 ? void 0 : _a.setAttribute(attributes.INPUT_STEP, this.step);\n                        this.endInput.setAttribute(attributes.INPUT_STEP, this.step);\n                        (_b = this.foundation) === null || _b === void 0 ? void 0 : _b.destroy();\n                        this.cleanupEventHandlers();\n                        (_c = this.foundation) === null || _c === void 0 ? void 0 : _c.init();\n                        return [2 /*return*/];\n                }\n            });\n        });\n    };\n    Object.defineProperty(MdcSlider.prototype, \"value\", {\n        get: function () {\n            if (this.foundation) {\n                return this.foundation.getValue();\n            }\n            else {\n                return this._value;\n            }\n        },\n        set: function (value) {\n            var _a;\n            this._value = value;\n            (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.setValue(value);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(MdcSlider.prototype, \"valueStart\", {\n        get: function () {\n            if (this.foundation) {\n                return this.foundation.getValueStart();\n            }\n            else {\n                return this._valueStart;\n            }\n        },\n        set: function (value) {\n            var _a;\n            this._valueStart = value;\n            (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.setValueStart(value);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    // eslint-disable-next-line @typescript-eslint/require-await\n    MdcSlider.prototype.initialise = function () {\n        var _a, _b;\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_c) {\n                // assign initial values explicitly\n                this.endInput.setAttribute(attributes.INPUT_MIN, this.min);\n                this.endInput.setAttribute(attributes.INPUT_MAX, this.max);\n                this.endInput.setAttribute(attributes.INPUT_VALUE, this.value.toString());\n                this.endInput.setAttribute(attributes.INPUT_STEP, this.step);\n                (_a = this.startInput) === null || _a === void 0 ? void 0 : _a.setAttribute(attributes.INPUT_VALUE, this.valueStart.toString());\n                (_b = this.startInput) === null || _b === void 0 ? void 0 : _b.setAttribute(attributes.INPUT_STEP, this.step);\n                return [2 /*return*/];\n            });\n        });\n    };\n    MdcSlider.prototype.initialSyncWithDOM = function () {\n        var _a;\n        this.value = this._value;\n        if (this.range) {\n            this.valueStart = this._valueStart;\n        }\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.layout();\n    };\n    MdcSlider.prototype.getDefaultFoundation = function () {\n        var _this = this;\n        // DO NOT INLINE this variable. For backward compatibility, foundations take\n        // a Partial<MDCFooAdapter>. To ensure we don't accidentally omit any\n        // methods, we need a separate, strongly typed adapter variable.\n        var adapter = {\n            hasClass: function (className) { return _this.root.classList.contains(className); },\n            addClass: function (className) {\n                _this.root.classList.add(className);\n            },\n            removeClass: function (className) {\n                _this.root.classList.remove(className);\n            },\n            addThumbClass: function (className, thumb) {\n                var _a;\n                (_a = _this.getThumbEl(thumb)) === null || _a === void 0 ? void 0 : _a.classList.add(className);\n            },\n            removeThumbClass: function (className, thumb) {\n                var _a;\n                (_a = _this.getThumbEl(thumb)) === null || _a === void 0 ? void 0 : _a.classList.remove(className);\n            },\n            getAttribute: function (attribute) { return _this.root.getAttribute(attribute); },\n            getInputValue: function (thumb) { return _this.getInput(thumb).value; },\n            setInputValue: function (value, thumb) {\n                _this.getInput(thumb).value = value;\n            },\n            getInputAttribute: function (attribute, thumb) {\n                return _this.getInput(thumb).getAttribute(attribute);\n            },\n            setInputAttribute: function (attribute, value, thumb) {\n                _this.getInput(thumb).setAttribute(attribute, value);\n            },\n            removeInputAttribute: function (attribute, thumb) {\n                var _a;\n                (_a = _this.getInput(thumb)) === null || _a === void 0 ? void 0 : _a.removeAttribute(attribute);\n            },\n            focusInput: function (thumb) { var _a; (_a = _this.getInput(thumb)) === null || _a === void 0 ? void 0 : _a.focus(); },\n            isInputFocused: function (thumb) { return _this.getInput(thumb) === document.activeElement; },\n            getThumbKnobWidth: function (thumb) {\n                var _a, _b;\n                return (_b = (_a = _this.getThumbEl(thumb)) === null || _a === void 0 ? void 0 : _a.querySelector(\".\" + cssClasses.THUMB_KNOB).getBoundingClientRect().width) !== null && _b !== void 0 ? _b : 0;\n            },\n            getThumbBoundingClientRect: function (thumb) { return _this.getThumbEl(thumb).getBoundingClientRect(); },\n            getBoundingClientRect: function () { return _this.root.getBoundingClientRect(); },\n            isRTL: function () { return getComputedStyle(_this.root).direction === 'rtl'; },\n            setThumbStyleProperty: function (propertyName, value, thumb) {\n                var _a;\n                (_a = _this.getThumbEl(thumb)) === null || _a === void 0 ? void 0 : _a.style.setProperty(propertyName, value);\n            },\n            removeThumbStyleProperty: function (propertyName, thumb) {\n                var _a;\n                (_a = _this.getThumbEl(thumb)) === null || _a === void 0 ? void 0 : _a.style.removeProperty(propertyName);\n            },\n            setTrackActiveStyleProperty: function (propertyName, value) {\n                _this.trackActive.style.setProperty(propertyName, value);\n            },\n            removeTrackActiveStyleProperty: function (propertyName) {\n                _this.trackActive.style.removeProperty(propertyName);\n            },\n            setValueIndicatorText: function (value, thumb) {\n                var _a;\n                var valueIndicatorEl = (_a = _this.getThumbEl(thumb)) === null || _a === void 0 ? void 0 : _a.querySelector(\".\" + cssClasses.VALUE_INDICATOR_TEXT);\n                valueIndicatorEl.textContent = String(value);\n            },\n            getValueToAriaValueTextFn: function () { return _this.valueToAriaValueTextFn; },\n            updateTickMarks: function (tickMarks) {\n                _this.tickMarkStatuses = tickMarks;\n            },\n            setPointerCapture: function (pointerId) {\n                _this.root.setPointerCapture(pointerId);\n            },\n            emitChangeEvent: function (value, thumb) {\n                _this.emit(events.CHANGE, { value: value, thumb: thumb });\n            },\n            emitInputEvent: function (value, thumb) {\n                _this.emit(events.INPUT, { value: value, thumb: thumb });\n            },\n            emitDragStartEvent: function (_, thumb) {\n                // Emitting event is not yet implemented. See issue:\n                // https://github.com/material-components/material-components-web/issues/6448\n                var _a;\n                (_a = _this.getRipple(thumb)) === null || _a === void 0 ? void 0 : _a.activate();\n            },\n            emitDragEndEvent: function (_, thumb) {\n                // Emitting event is not yet implemented. See issue:\n                // https://github.com/material-components/material-components-web/issues/6448\n                var _a;\n                (_a = _this.getRipple(thumb)) === null || _a === void 0 ? void 0 : _a.deactivate();\n            },\n            registerEventHandler: function (evtType, handler) {\n                _this.listen(evtType, handler);\n                _this.addEventHandler(_this.root, evtType, handler);\n            },\n            deregisterEventHandler: function (evtType, handler) {\n                _this.unlisten(evtType, handler);\n                _this.removeEventHandler(_this.root, evtType, handler);\n            },\n            registerThumbEventHandler: function (thumb, evtType, handler) {\n                var thumbEl = _this.getThumbEl(thumb);\n                if (thumbEl) {\n                    thumbEl.addEventListener(evtType, handler);\n                    _this.addEventHandler(thumbEl, evtType, handler);\n                }\n            },\n            deregisterThumbEventHandler: function (thumb, evtType, handler) {\n                var thumbEl = _this.getThumbEl(thumb);\n                if (thumbEl) {\n                    thumbEl.removeEventListener(evtType, handler);\n                    _this.removeEventHandler(thumbEl, evtType, handler);\n                }\n            },\n            registerInputEventHandler: function (thumb, evtType, handler) {\n                var thumbInput = _this.getInput(thumb);\n                if (thumbInput) {\n                    thumbInput.addEventListener(evtType, handler);\n                    _this.addEventHandler(thumbInput, evtType, handler);\n                }\n            },\n            deregisterInputEventHandler: function (thumb, evtType, handler) {\n                var thumbInput = _this.getInput(thumb);\n                if (thumbInput) {\n                    thumbInput.removeEventListener(evtType, handler);\n                    _this.removeEventHandler(thumbInput, evtType, handler);\n                }\n            },\n            registerBodyEventHandler: function (evtType, handler) {\n                document.body.addEventListener(evtType, handler);\n                _this.addEventHandler(document.body, evtType, handler);\n            },\n            deregisterBodyEventHandler: function (evtType, handler) {\n                document.body.removeEventListener(evtType, handler);\n                _this.removeEventHandler(document.body, evtType, handler);\n            },\n            registerWindowEventHandler: function (evtType, handler) {\n                window.addEventListener(evtType, handler);\n                _this.addEventHandler(window, evtType, handler);\n            },\n            deregisterWindowEventHandler: function (evtType, handler) {\n                window.removeEventListener(evtType, handler);\n                _this.removeEventHandler(window, evtType, handler);\n            },\n            // tslint:enable:object-literal-sort-keys\n        };\n        return new MdcSliderFoundationAurelia(adapter);\n    };\n    MdcSlider.prototype.addEventHandler = function (element, evtType, handler) {\n        this.eventHandlers.push({ element: element, evtType: evtType, handler: handler });\n    };\n    MdcSlider.prototype.removeEventHandler = function (element, evtType, handler) {\n        var i = this.eventHandlers.findIndex(function (x) { return x.element === element && x.evtType === evtType && x.handler === handler; });\n        if (i !== -1) {\n            this.eventHandlers.splice(i, 1);\n        }\n    };\n    MdcSlider.prototype.cleanupEventHandlers = function () {\n        this.eventHandlers.forEach(function (x) {\n            x.element.removeEventListener(x.evtType, x.handler);\n        });\n        this.eventHandlers = [];\n    };\n    MdcSlider.prototype.getThumbEl = function (thumb) {\n        return thumb === Thumb.END ? this.endThumb : this.startThumb;\n    };\n    MdcSlider.prototype.getInput = function (thumb) {\n        return thumb === Thumb.END ? this.endInput : this.startInput;\n    };\n    MdcSlider.prototype.getRipple = function (thumb) {\n        return thumb === Thumb.END ? this.endRipple : this.startRipple;\n    };\n    MdcSlider.prototype.focus = function () {\n        this.root.focus();\n    };\n    MdcSlider.prototype.blur = function () {\n        this.root.blur();\n    };\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSlider.prototype, \"discrete\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSlider.prototype, \"tickMarks\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSlider.prototype, \"range\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSlider.prototype, \"disabled\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", String)\n    ], MdcSlider.prototype, \"min\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", String)\n    ], MdcSlider.prototype, \"max\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", String)\n    ], MdcSlider.prototype, \"step\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", Object)\n    ], MdcSlider.prototype, \"valueToAriaValueTextFn\", void 0);\n    MdcSlider = __decorate([\n        inject(Element),\n        useView(PLATFORM.moduleName('./mdc-slider.html')),\n        customElement('mdc-slider'),\n        __metadata(\"design:paramtypes\", [HTMLElement])\n    ], MdcSlider);\n    return MdcSlider;\n}(MdcComponent));\nexport { MdcSlider };\nfunction defineMdcSliderElementApis(element) {\n    Object.defineProperties(element, {\n        value: {\n            get: function () {\n                return this.au.controller.viewModel.value;\n            },\n            set: function (value) {\n                this.au.controller.viewModel.value = value;\n            },\n            configurable: true\n        },\n        valuestart: {\n            get: function () {\n                return this.au.controller.viewModel.valueStart;\n            },\n            set: function (value) {\n                this.au.controller.viewModel.valueStart = value;\n            },\n            configurable: true\n        },\n        focus: {\n            value: function () {\n                this.au.controller.viewModel.focus();\n            },\n            configurable: true\n        },\n        blur: {\n            value: function () {\n                this.au.controller.viewModel.blur();\n            },\n            configurable: true\n        }\n    });\n}\n//# sourceMappingURL=mdc-slider.js.map","// Module\nvar code = \"<template class=\\\"mdc-slider ${range ? 'mdc-slider--range' : ''} ${discrete ? 'mdc-slider--discrete' : ''} ${discrete && tickMarks ? 'mdc-slider--tick-marks' : ''}\\\"> <input class=\\\"mdc-slider__input\\\" type=\\\"range\\\" min=\\\"0\\\" max=\\\"100\\\" value=\\\"0\\\" if.bind=\\\"range\\\" ref=\\\"startInput\\\"> <input class=\\\"mdc-slider__input\\\" type=\\\"range\\\" min=\\\"0\\\" max=\\\"100\\\" value=\\\"0\\\" ref=\\\"endInput\\\"> <div class=\\\"mdc-slider__track\\\"> <div class=\\\"mdc-slider__track--inactive\\\"></div> <div class=\\\"mdc-slider__track--active\\\"> <div class=\\\"mdc-slider__track--active_fill\\\" ref=\\\"trackActive\\\"></div> </div> <div class=\\\"mdc-slider__tick-marks\\\" if.bind=\\\"discrete && tickMarks\\\"> <div repeat.for=\\\"s of tickMarkStatuses\\\" class=\\\"mdc-slider__tick-mark--${s === TickMark.ACTIVE ? 'active' : 'inactive' }\\\"></div> </div> </div> <div class=\\\"mdc-slider__thumb\\\" mdc-ripple=\\\"unbounded.bind: true\\\" mdc-ripple.ref=\\\"startRipple\\\" if.bind=\\\"range\\\" ref=\\\"startThumb\\\"> <div class=\\\"mdc-slider__value-indicator-container\\\" if.bind=\\\"discrete\\\"> <div class=\\\"mdc-slider__value-indicator\\\"> <span class=\\\"mdc-slider__value-indicator-text\\\"></span> </div> </div> <div class=\\\"mdc-slider__thumb-knob\\\"></div> </div> <div class=\\\"mdc-slider__thumb\\\" mdc-ripple=\\\"unbounded.bind: true\\\" mdc-ripple.ref=\\\"endRipple\\\" ref=\\\"endThumb\\\" style=\\\"overflow:visible\\\"> <div class=\\\"mdc-slider__value-indicator-container\\\" if.bind=\\\"discrete\\\"> <div class=\\\"mdc-slider__value-indicator\\\"> <span class=\\\"mdc-slider__value-indicator-text\\\"></span> </div> </div> <div class=\\\"mdc-slider__thumb-knob\\\"></div> </div> </template> \";\n// Exports\nmodule.exports = code;","import { __awaiter, __decorate, __generator, __metadata } from \"tslib\";\nimport { TemplatingEngine, inject } from 'aurelia-framework';\nimport { strings } from '@material/snackbar';\nvar MdcSnackbarService = /** @class */ (function () {\n    function MdcSnackbarService(templatingEngine) {\n        this.templatingEngine = templatingEngine;\n    }\n    MdcSnackbarService.prototype.open = function (label, actions, options) {\n        return __awaiter(this, void 0, void 0, function () {\n            var snackbar, closedResolver, closedPromise, bindingContext, childView, vm;\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0:\n                        snackbar = document.createElement('aside');\n                        snackbar.setAttribute('as-element', 'mdc-snackbar');\n                        snackbar.setAttribute(strings.CLOSED_EVENT + \".trigger\", 'handleClosed($event)');\n                        document.body.appendChild(snackbar);\n                        closedPromise = new Promise(function (r) { return closedResolver = r; });\n                        bindingContext = {\n                            handleClosed: function (evt) {\n                                closedResolver(evt.detail.reason);\n                                childView.detached();\n                                snackbar.remove();\n                            }\n                        };\n                        childView = this.templatingEngine.enhance({ element: snackbar, bindingContext: bindingContext });\n                        vm = snackbar.au.controller.viewModel;\n                        vm.label = label;\n                        if (actions !== undefined) {\n                            if (typeof actions === 'string') {\n                                vm.actions = [actions];\n                            }\n                            else {\n                                vm.actions = actions;\n                            }\n                        }\n                        if (options) {\n                            Object.assign(vm, options);\n                        }\n                        return [4 /*yield*/, vm.initialised];\n                    case 1:\n                        _a.sent();\n                        snackbar.au.controller.viewModel.open();\n                        return [2 /*return*/, closedPromise];\n                }\n            });\n        });\n    };\n    MdcSnackbarService = __decorate([\n        inject(TemplatingEngine),\n        __metadata(\"design:paramtypes\", [TemplatingEngine])\n    ], MdcSnackbarService);\n    return MdcSnackbarService;\n}());\nexport { MdcSnackbarService };\n//# sourceMappingURL=mdc-snackbar-service.js.map","import { PLATFORM } from 'aurelia-framework';\nexport { MdcSnackbar } from './mdc-snackbar';\nexport { MdcSnackbarService } from './mdc-snackbar-service';\nexport function configure(config) {\n    config.globalResources([\n        PLATFORM.moduleName('./mdc-snackbar')\n    ]);\n    config.aurelia.use\n        .plugin(PLATFORM.moduleName('@aurelia-mdc-web/button'))\n        .plugin(PLATFORM.moduleName('@aurelia-mdc-web/icon-button'));\n}\n//# sourceMappingURL=index.js.map","import { __awaiter, __decorate, __extends, __generator, __metadata } from \"tslib\";\nimport { customElement, inject, useView, PLATFORM } from 'aurelia-framework';\nimport { MdcComponent } from '@aurelia-mdc-web/base';\nimport { MDCSnackbarFoundation, util, strings } from '@material/snackbar';\nimport { bindable } from 'aurelia-typed-observable-plugin';\nstrings.OPENING_EVENT = strings.OPENING_EVENT.toLowerCase();\nstrings.OPENED_EVENT = strings.OPENED_EVENT.toLowerCase();\nstrings.CLOSING_EVENT = strings.CLOSING_EVENT.toLowerCase();\nstrings.CLOSED_EVENT = strings.CLOSED_EVENT.toLowerCase();\nvar MdcSnackbar = /** @class */ (function (_super) {\n    __extends(MdcSnackbar, _super);\n    function MdcSnackbar() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.closeOnEscape = true;\n        return _this;\n    }\n    MdcSnackbar.prototype.timeoutChanged = function () {\n        var _a;\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0: return [4 /*yield*/, this.initialised];\n                    case 1:\n                        _b.sent();\n                        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.setTimeoutMs(this.timeout);\n                        return [2 /*return*/];\n                }\n            });\n        });\n    };\n    MdcSnackbar.prototype.closeOnEscapeChanged = function () {\n        var _a;\n        return __awaiter(this, void 0, void 0, function () {\n            return __generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0: return [4 /*yield*/, this.initialised];\n                    case 1:\n                        _b.sent();\n                        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.setCloseOnEscape(this.closeOnEscape);\n                        return [2 /*return*/];\n                }\n            });\n        });\n    };\n    MdcSnackbar.prototype.getDefaultFoundation = function () {\n        var _this = this;\n        // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n        // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n        var adapter = {\n            addClass: function (className) { return _this.root.classList.add(className); },\n            announce: function () { return util.announce(_this.labelEl_); },\n            notifyClosed: function (reason) { return _this.emit(strings.CLOSED_EVENT, reason ? { reason: reason } : {}); },\n            notifyClosing: function (reason) { return _this.emit(strings.CLOSING_EVENT, reason ? { reason: reason } : {}); },\n            notifyOpened: function () { return _this.emit(strings.OPENED_EVENT, {}); },\n            notifyOpening: function () { return _this.emit(strings.OPENING_EVENT, {}); },\n            removeClass: function (className) { return _this.root.classList.remove(className); },\n        };\n        return new MDCSnackbarFoundation(adapter);\n    };\n    MdcSnackbar.prototype.open = function () {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.open();\n    };\n    /**\n     * @param reason Why the snackbar was closed. Value will be passed to CLOSING_EVENT and CLOSED_EVENT via the\n     *     `event.detail.reason` property. Standard values are REASON_ACTION and REASON_DISMISS, but custom\n     *     client-specific values may also be used if desired.\n     */\n    MdcSnackbar.prototype.close = function (reason) {\n        var _a;\n        if (reason === void 0) { reason = ''; }\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.close(reason);\n    };\n    MdcSnackbar.prototype.handleAction = function (action) {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.close(action);\n    };\n    MdcSnackbar.prototype.handleDismiss = function () {\n        this.close(strings.REASON_DISMISS);\n    };\n    MdcSnackbar.prototype.handleKeyDown = function (evt) {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.handleKeyDown(evt);\n        return true;\n    };\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", String)\n    ], MdcSnackbar.prototype, \"label\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", Array)\n    ], MdcSnackbar.prototype, \"actions\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSnackbar.prototype, \"dismissible\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSnackbar.prototype, \"stacked\", void 0);\n    __decorate([\n        bindable.number,\n        __metadata(\"design:type\", Number)\n    ], MdcSnackbar.prototype, \"timeout\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSnackbar.prototype, \"closeOnEscape\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", String)\n    ], MdcSnackbar.prototype, \"classes\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", String)\n    ], MdcSnackbar.prototype, \"actionClasses\", void 0);\n    __decorate([\n        bindable,\n        __metadata(\"design:type\", String)\n    ], MdcSnackbar.prototype, \"dismissClasses\", void 0);\n    __decorate([\n        bindable.booleanAttr,\n        __metadata(\"design:type\", Boolean)\n    ], MdcSnackbar.prototype, \"leading\", void 0);\n    MdcSnackbar = __decorate([\n        inject(Element),\n        useView(PLATFORM.moduleName('./mdc-snackbar.html')),\n        customElement('mdc-snackbar')\n    ], MdcSnackbar);\n    return MdcSnackbar;\n}(MdcComponent));\nexport { MdcSnackbar };\n//# sourceMappingURL=mdc-snackbar.js.map","// Module\nvar code = \"<template class=\\\"mdc-snackbar ${classes} ${stacked ? 'mdc-snackbar--stacked' : ''} ${leading ? 'mdc-snackbar--leading' : ''}\\\" keydown.trigger=\\\"handleKeyDown($event)\\\"> <div class=\\\"mdc-snackbar__surface\\\" ref=\\\"surfaceEl_\\\"> <div class=\\\"mdc-snackbar__label\\\" role=\\\"status\\\" aria-live=\\\"polite\\\" ref=\\\"labelEl_\\\">${label}</div> <div class=\\\"mdc-snackbar__actions\\\"> <button repeat.for=\\\"a of actions\\\" class=\\\"mdc-button mdc-snackbar__action ${actionClasses}\\\" click.trigger=\\\"handleAction(a)\\\">${a}</button> <button if.bind=\\\"dismissible\\\" class=\\\"mdc-icon-button mdc-snackbar__dismiss material-icons ${dismissClasses}\\\" click.trigger=\\\"handleDismiss()\\\">close</button> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","import { PLATFORM, bindingMode, EventSubscriber, ValueAttributeObserver } from 'aurelia-framework';\nimport { MdcComponentAdapters } from '@aurelia-mdc-web/base';\nexport { MdcSwitch } from './mdc-switch';\nexport function configure(config) {\n    config.container.get(MdcComponentAdapters).registerMdcElementConfig(switchConfig);\n    config.globalResources([\n        PLATFORM.moduleName('./mdc-switch'),\n        PLATFORM.moduleName('./enhance-mdc-switch')\n    ]);\n    config.aurelia.use.plugin(PLATFORM.moduleName('@aurelia-mdc-web/ripple'));\n}\nvar switchConfig = {\n    tagName: 'mdc-switch',\n    properties: {\n        selected: {\n            defaultBindingMode: bindingMode.twoWay,\n            getObserver: function (element) {\n                return new ValueAttributeObserver(element, 'selected', new EventSubscriber(['change']));\n            }\n        }\n    }\n};\n//# sourceMappingURL=index.js.map","import { __decorate, __values } from \"tslib\";\nimport { viewEngineHooks } from 'aurelia-framework';\nvar EnhanceMdcSwitch = /** @class */ (function () {\n    function EnhanceMdcSwitch() {\n    }\n    EnhanceMdcSwitch.prototype.beforeCompile = function (template) {\n        var e_1, _a;\n        var actions = template.querySelectorAll('[mdc-switch]');\n        try {\n            for (var _b = __values(Array.from(actions)), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var i = _c.value;\n                i.setAttribute('as-element', 'mdc-switch');\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n    };\n    EnhanceMdcSwitch = __decorate([\n        viewEngineHooks\n    ], EnhanceMdcSwitch);\n    return EnhanceMdcSwitch;\n}());\nexport { EnhanceMdcSwitch };\n//# sourceMappingURL=enhance-mdc-switch.js.map","import { __decorate, __extends, __metadata } from \"tslib\";\nimport { MdcComponent } from '@aurelia-mdc-web/base';\nimport { MDCSwitchRenderFoundation } from '@material/switch';\nimport { inject, useView, PLATFORM, customElement } from 'aurelia-framework';\nvar switchId = 0;\nvar MdcSwitch = /** @class */ (function (_super) {\n    __extends(MdcSwitch, _super);\n    function MdcSwitch(root) {\n        var _this = _super.call(this, root) || this;\n        _this.root = root;\n        defineMdcSwitchElementApis(_this.root);\n        _this.root.id = \"mdc-switch-\" + ++switchId;\n        return _this;\n    }\n    MdcSwitch.prototype.initialSyncWithDOM = function () {\n        var _a;\n        if (this.selected) {\n            this.root.classList.add('mdc-switch--selected');\n            this.root.setAttribute('aria-checked', 'true');\n        }\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.initFromDOM();\n    };\n    MdcSwitch.prototype.getDefaultFoundation = function () {\n        return new MDCSwitchRenderFoundation(this.createAdapter());\n    };\n    MdcSwitch.prototype.createAdapter = function () {\n        var _this = this;\n        return {\n            addClass: function (className) {\n                _this.root.classList.add(className);\n            },\n            hasClass: function (className) { return _this.root.classList.contains(className); },\n            isDisabled: function () { return _this.root.disabled; },\n            removeClass: function (className) {\n                _this.root.classList.remove(className);\n            },\n            setAriaChecked: function (ariaChecked) {\n                return _this.root.setAttribute('aria-checked', ariaChecked);\n            },\n            setDisabled: function (disabled) {\n                _this.root.disabled = disabled;\n            },\n            state: this,\n        };\n    };\n    MdcSwitch.prototype.handleClick = function () {\n        var _a;\n        (_a = this.foundation) === null || _a === void 0 ? void 0 : _a.handleClick();\n        this.emit('change', {}, true);\n    };\n    MdcSwitch = __decorate([\n        inject(Element),\n        useView(PLATFORM.moduleName('./mdc-switch.html')),\n        customElement('mdc-switch')\n        // @ts-expect-error MDCSwitchRenderFoundation seems to be using MDCFoundation from a different typings file\n        ,\n        __metadata(\"design:paramtypes\", [Object])\n    ], MdcSwitch);\n    return MdcSwitch;\n}(MdcComponent));\nexport { MdcSwitch };\nfunction defineMdcSwitchElementApis(element) {\n    Object.defineProperties(element, {\n        selected: {\n            get: function () {\n                return this.au.controller.viewModel.selected;\n            },\n            set: function (value) {\n                this.au.controller.viewModel.selected = value;\n            },\n            configurable: true\n        }\n    });\n}\n//# sourceMappingURL=mdc-switch.js.map","// Module\nvar code = \"<template class=\\\"mdc-switch ${selected ? 'mdc-switch--selected' : ''} ${disabled ? 'mdc-switch--disabled' : ''}\\\" type=\\\"button\\\" role=\\\"switch\\\" aria-checked=\\\"${selected ? 'true' : 'false'}\\\" mdc-ripple=\\\"no-class.bind: true; unbounded.bind: true; surface.bind: rippleElement\\\" click.delegate=\\\"handleClick()\\\"> <div class=\\\"mdc-switch__track\\\"></div> <div class=\\\"mdc-switch__handle-track\\\"> <div class=\\\"mdc-switch__handle\\\"> <div class=\\\"mdc-switch__shadow\\\"> <div class=\\\"mdc-elevation-overlay\\\"></div> </div> <div class=\\\"mdc-switch__ripple\\\" ref=\\\"rippleElement\\\"></div> <div class=\\\"mdc-switch__icons\\\"> <svg class=\\\"mdc-switch__icon mdc-switch__icon--on\\\" viewBox=\\\"0 0 24 24\\\"> <path d=\\\"M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z\\\"/> </svg> <svg class=\\\"mdc-switch__icon mdc-switch__icon--off\\\" viewBox=\\\"0 0 24 24\\\"> <path d=\\\"M20 13H4v-2h16v2z\\\"/> </svg> </div> </div> </div> </template> \";\n// Exports\nmodule.exports = code;","var MdcDefaultSelectConfiguration = /** @class */ (function () {\n    function MdcDefaultSelectConfiguration() {\n    }\n    return MdcDefaultSelectConfiguration;\n}());\nexport { MdcDefaultSelectConfiguration };\n//# sourceMappingURL=mdc-default-select-configuration.js.map"],"sourceRoot":""}