@limetech/lime-elements 37.81.1 → 37.81.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/cjs/limel-breadcrumbs_7.cjs.entry.js +15 -8
- package/dist/cjs/limel-breadcrumbs_7.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/limel-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-chip_2.cjs.entry.js +1 -1
- package/dist/cjs/limel-chip_2.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-dynamic-label_2.cjs.entry.js +1 -1
- package/dist/cjs/limel-dynamic-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-select.cjs.entry.js +1 -1
- package/dist/cjs/limel-select.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-slider.cjs.entry.js +1 -1
- package/dist/cjs/limel-slider.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-switch.cjs.entry.js +1 -1
- package/dist/cjs/limel-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
- package/dist/cjs/limel-text-editor.cjs.entry.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.css +1 -3
- package/dist/collection/components/chip-set/chip-set.css +1 -3
- package/dist/collection/components/helper-line/helper-line.css +4 -0
- package/dist/collection/components/input-field/input-field.css +1 -3
- package/dist/collection/components/input-field/input-field.js +12 -5
- package/dist/collection/components/input-field/input-field.js.map +1 -1
- package/dist/collection/components/list/list.css +2 -6
- package/dist/collection/components/menu-list/menu-list.css +2 -6
- package/dist/collection/components/select/select.css +1 -3
- package/dist/collection/components/slider/slider.css +1 -3
- package/dist/collection/components/switch/switch.css +1 -3
- package/dist/collection/components/text-editor/text-editor.css +1 -3
- package/dist/collection/style/mixins.scss +1 -3
- package/dist/esm/limel-breadcrumbs_7.entry.js +15 -8
- package/dist/esm/limel-breadcrumbs_7.entry.js.map +1 -1
- package/dist/esm/limel-checkbox.entry.js +1 -1
- package/dist/esm/limel-checkbox.entry.js.map +1 -1
- package/dist/esm/limel-chip_2.entry.js +1 -1
- package/dist/esm/limel-chip_2.entry.js.map +1 -1
- package/dist/esm/limel-dynamic-label_2.entry.js +1 -1
- package/dist/esm/limel-dynamic-label_2.entry.js.map +1 -1
- package/dist/esm/limel-prosemirror-adapter.entry.js.map +1 -1
- package/dist/esm/limel-select.entry.js +1 -1
- package/dist/esm/limel-select.entry.js.map +1 -1
- package/dist/esm/limel-slider.entry.js +1 -1
- package/dist/esm/limel-slider.entry.js.map +1 -1
- package/dist/esm/limel-switch.entry.js +1 -1
- package/dist/esm/limel-switch.entry.js.map +1 -1
- package/dist/esm/limel-text-editor.entry.js +1 -1
- package/dist/esm/limel-text-editor.entry.js.map +1 -1
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/p-2d997454.entry.js +2 -0
- package/dist/lime-elements/p-2d997454.entry.js.map +1 -0
- package/dist/lime-elements/{p-ef42256f.entry.js → p-36cf3031.entry.js} +2 -2
- package/dist/lime-elements/{p-ef42256f.entry.js.map → p-36cf3031.entry.js.map} +1 -1
- package/dist/lime-elements/p-429a4b20.entry.js +2 -0
- package/dist/lime-elements/{p-c4503728.entry.js.map → p-429a4b20.entry.js.map} +1 -1
- package/dist/lime-elements/{p-c7b21bd8.entry.js → p-4536b562.entry.js} +2 -2
- package/dist/lime-elements/{p-c7b21bd8.entry.js.map → p-4536b562.entry.js.map} +1 -1
- package/dist/lime-elements/{p-3cbe2ed9.entry.js → p-7fdab6b0.entry.js} +2 -2
- package/dist/lime-elements/{p-3cbe2ed9.entry.js.map → p-7fdab6b0.entry.js.map} +1 -1
- package/dist/lime-elements/{p-29dd2fee.entry.js → p-8baf79cf.entry.js} +2 -2
- package/dist/lime-elements/{p-29dd2fee.entry.js.map → p-8baf79cf.entry.js.map} +1 -1
- package/dist/lime-elements/p-911bde1e.entry.js.map +1 -1
- package/dist/lime-elements/{p-603ce062.entry.js → p-d0a80991.entry.js} +4 -4
- package/dist/lime-elements/{p-603ce062.entry.js.map → p-d0a80991.entry.js.map} +1 -1
- package/dist/lime-elements/p-d6d13f31.entry.js +266 -0
- package/dist/lime-elements/p-d6d13f31.entry.js.map +1 -0
- package/dist/lime-elements/style/mixins.scss +1 -3
- package/dist/scss/mixins.scss +1 -3
- package/dist/types/components/input-field/input-field.d.ts +1 -0
- package/package.json +2 -2
- package/dist/lime-elements/p-9f8aa8e7.entry.js +0 -2
- package/dist/lime-elements/p-9f8aa8e7.entry.js.map +0 -1
- package/dist/lime-elements/p-c4503728.entry.js +0 -2
- package/dist/lime-elements/p-d754969f.entry.js +0 -266
- package/dist/lime-elements/p-d754969f.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"limel-slider.entry.cjs.js","mappings":"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","names":["__extends","__assign","AnimationFrame","getCorrectPropertyName","MDCFoundation","MDCRipple","matches","applyPassive","MDCRippleFoundation","MDCComponent","h","createRandomString","Host"],"sources":["./node_modules/@material/slider/constants.js","./node_modules/@material/slider/types.js","./node_modules/@material/slider/foundation.js","./node_modules/@material/slider/component.js","./src/components/slider/getPercentageClass.ts","./src/components/slider/slider.scss?tag=limel-slider&encapsulation=shadow","./src/components/slider/slider.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2020 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 */\n/** Slider element classes. */\nexport var cssClasses = {\n DISABLED: 'mdc-slider--disabled',\n DISCRETE: 'mdc-slider--discrete',\n INPUT: 'mdc-slider__input',\n RANGE: 'mdc-slider--range',\n THUMB: 'mdc-slider__thumb',\n // Applied when thumb is in the focused state.\n THUMB_FOCUSED: 'mdc-slider__thumb--focused',\n THUMB_KNOB: 'mdc-slider__thumb-knob',\n // Class added to the top thumb (for overlapping thumbs in range slider).\n THUMB_TOP: 'mdc-slider__thumb--top',\n THUMB_WITH_INDICATOR: 'mdc-slider__thumb--with-indicator',\n TICK_MARKS: 'mdc-slider--tick-marks',\n TICK_MARKS_CONTAINER: 'mdc-slider__tick-marks',\n TICK_MARK_ACTIVE: 'mdc-slider__tick-mark--active',\n TICK_MARK_INACTIVE: 'mdc-slider__tick-mark--inactive',\n TRACK: 'mdc-slider__track',\n // The active track fill element that will be scaled as the value changes.\n TRACK_ACTIVE: 'mdc-slider__track--active_fill',\n VALUE_INDICATOR_TEXT: 'mdc-slider__value-indicator-text',\n};\n/** Slider numbers. */\nexport var numbers = {\n // Default step size.\n STEP_SIZE: 1,\n // Minimum absolute difference between clientX of move event / down event\n // for which to update thumb, in the case of overlapping thumbs.\n // This is needed to reduce chances of choosing the thumb based on\n // pointer jitter.\n THUMB_UPDATE_MIN_PX: 5,\n};\n/** Slider attributes. */\nexport var attributes = {\n ARIA_VALUETEXT: 'aria-valuetext',\n INPUT_DISABLED: 'disabled',\n INPUT_MIN: 'min',\n INPUT_MAX: 'max',\n INPUT_VALUE: 'value',\n INPUT_STEP: 'step',\n};\n/** Slider events. */\nexport var events = {\n CHANGE: 'MDCSlider:change',\n INPUT: 'MDCSlider:input',\n};\n//# sourceMappingURL=constants.js.map","/**\n * @license\n * Copyright 2020 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 */\n/** Tick mark enum, for discrete sliders. */\nexport var TickMark;\n(function (TickMark) {\n TickMark[TickMark[\"ACTIVE\"] = 0] = \"ACTIVE\";\n TickMark[TickMark[\"INACTIVE\"] = 1] = \"INACTIVE\";\n})(TickMark || (TickMark = {}));\n/**\n * Thumb types: range slider has two thumbs (START, END) whereas single point\n * slider only has one thumb (END).\n */\nexport var Thumb;\n(function (Thumb) {\n // Thumb at start of slider (e.g. in LTR mode, left thumb on range slider).\n Thumb[Thumb[\"START\"] = 1] = \"START\";\n // Thumb at end of slider (e.g. in LTR mode, right thumb on range slider,\n // or only thumb on single point slider).\n Thumb[Thumb[\"END\"] = 2] = \"END\";\n})(Thumb || (Thumb = {}));\n//# sourceMappingURL=types.js.map","/**\n * @license\n * Copyright 2020 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 { AnimationFrame } from '@material/animation/animationframe';\nimport { getCorrectPropertyName } from '@material/animation/util';\nimport { MDCFoundation } from '@material/base/foundation';\nimport { attributes, cssClasses, numbers } from './constants';\nimport { Thumb, TickMark } from './types';\nvar AnimationKeys;\n(function (AnimationKeys) {\n AnimationKeys[\"SLIDER_UPDATE\"] = \"slider_update\";\n})(AnimationKeys || (AnimationKeys = {}));\n// Accessing `window` without a `typeof` check will throw on Node environments.\nvar HAS_WINDOW = typeof window !== 'undefined';\n/**\n * Foundation class for slider. Responsibilities include:\n * - Updating slider values (internal state and DOM updates) based on client\n * 'x' position.\n * - Updating DOM after slider property updates (e.g. min, max).\n */\nvar MDCSliderFoundation = /** @class */ (function (_super) {\n __extends(MDCSliderFoundation, _super);\n function MDCSliderFoundation(adapter) {\n var _this = _super.call(this, __assign(__assign({}, MDCSliderFoundation.defaultAdapter), adapter)) || this;\n // Whether the initial styles (to position the thumb, before component\n // initialization) have been removed.\n _this.initialStylesRemoved = false;\n _this.isDisabled = false;\n _this.isDiscrete = false;\n _this.step = numbers.STEP_SIZE;\n _this.hasTickMarks = false;\n // The following properties are only set for range sliders.\n _this.isRange = false;\n // Tracks the thumb being moved across a slider pointer interaction (down,\n // move event).\n _this.thumb = null;\n // `clientX` from the most recent down event. Used in subsequent move\n // events to determine which thumb to move (in the case of\n // overlapping thumbs).\n _this.downEventClientX = null;\n // Width of the start thumb knob.\n _this.startThumbKnobWidth = 0;\n // Width of the end thumb knob.\n _this.endThumbKnobWidth = 0;\n _this.animFrame = new AnimationFrame();\n return _this;\n }\n Object.defineProperty(MDCSliderFoundation, \"defaultAdapter\", {\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same\n // order as the adapter interface.\n return {\n hasClass: function () { return false; },\n addClass: function () { return undefined; },\n removeClass: function () { return undefined; },\n addThumbClass: function () { return undefined; },\n removeThumbClass: function () { return undefined; },\n getAttribute: function () { return null; },\n getInputValue: function () { return ''; },\n setInputValue: function () { return undefined; },\n getInputAttribute: function () { return null; },\n setInputAttribute: function () { return null; },\n removeInputAttribute: function () { return null; },\n focusInput: function () { return undefined; },\n isInputFocused: function () { return false; },\n getThumbKnobWidth: function () { return 0; },\n getThumbBoundingClientRect: function () {\n return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });\n },\n getBoundingClientRect: function () {\n return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });\n },\n isRTL: function () { return false; },\n setThumbStyleProperty: function () { return undefined; },\n removeThumbStyleProperty: function () { return undefined; },\n setTrackActiveStyleProperty: function () { return undefined; },\n removeTrackActiveStyleProperty: function () { return undefined; },\n setValueIndicatorText: function () { return undefined; },\n getValueToAriaValueTextFn: function () { return null; },\n updateTickMarks: function () { return undefined; },\n setPointerCapture: function () { return undefined; },\n emitChangeEvent: function () { return undefined; },\n emitInputEvent: function () { return undefined; },\n emitDragStartEvent: function () { return undefined; },\n emitDragEndEvent: function () { return undefined; },\n registerEventHandler: function () { return undefined; },\n deregisterEventHandler: function () { return undefined; },\n registerThumbEventHandler: function () { return undefined; },\n deregisterThumbEventHandler: function () { return undefined; },\n registerInputEventHandler: function () { return undefined; },\n deregisterInputEventHandler: function () { return undefined; },\n registerBodyEventHandler: function () { return undefined; },\n deregisterBodyEventHandler: function () { return undefined; },\n registerWindowEventHandler: function () { return undefined; },\n deregisterWindowEventHandler: function () { return undefined; },\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: false,\n configurable: true\n });\n MDCSliderFoundation.prototype.init = function () {\n var _this = this;\n this.isDisabled = this.adapter.hasClass(cssClasses.DISABLED);\n this.isDiscrete = this.adapter.hasClass(cssClasses.DISCRETE);\n this.hasTickMarks = this.adapter.hasClass(cssClasses.TICK_MARKS);\n this.isRange = this.adapter.hasClass(cssClasses.RANGE);\n var min = this.convertAttributeValueToNumber(this.adapter.getInputAttribute(attributes.INPUT_MIN, this.isRange ? Thumb.START : Thumb.END), attributes.INPUT_MIN);\n var max = this.convertAttributeValueToNumber(this.adapter.getInputAttribute(attributes.INPUT_MAX, Thumb.END), attributes.INPUT_MAX);\n var value = this.convertAttributeValueToNumber(this.adapter.getInputAttribute(attributes.INPUT_VALUE, Thumb.END), attributes.INPUT_VALUE);\n var valueStart = this.isRange ?\n this.convertAttributeValueToNumber(this.adapter.getInputAttribute(attributes.INPUT_VALUE, Thumb.START), attributes.INPUT_VALUE) :\n min;\n var stepAttr = this.adapter.getInputAttribute(attributes.INPUT_STEP, Thumb.END);\n var step = stepAttr ?\n this.convertAttributeValueToNumber(stepAttr, attributes.INPUT_STEP) :\n this.step;\n this.validateProperties({ min: min, max: max, value: value, valueStart: valueStart, step: step });\n this.min = min;\n this.max = max;\n this.value = value;\n this.valueStart = valueStart;\n this.step = step;\n this.numDecimalPlaces = getNumDecimalPlaces(this.step);\n this.valueBeforeDownEvent = value;\n this.valueStartBeforeDownEvent = valueStart;\n this.mousedownOrTouchstartListener =\n this.handleMousedownOrTouchstart.bind(this);\n this.moveListener = this.handleMove.bind(this);\n this.pointerdownListener = this.handlePointerdown.bind(this);\n this.pointerupListener = this.handlePointerup.bind(this);\n this.thumbMouseenterListener = this.handleThumbMouseenter.bind(this);\n this.thumbMouseleaveListener = this.handleThumbMouseleave.bind(this);\n this.inputStartChangeListener = function () {\n _this.handleInputChange(Thumb.START);\n };\n this.inputEndChangeListener = function () {\n _this.handleInputChange(Thumb.END);\n };\n this.inputStartFocusListener = function () {\n _this.handleInputFocus(Thumb.START);\n };\n this.inputEndFocusListener = function () {\n _this.handleInputFocus(Thumb.END);\n };\n this.inputStartBlurListener = function () {\n _this.handleInputBlur(Thumb.START);\n };\n this.inputEndBlurListener = function () {\n _this.handleInputBlur(Thumb.END);\n };\n this.resizeListener = this.handleResize.bind(this);\n this.registerEventHandlers();\n };\n MDCSliderFoundation.prototype.destroy = function () {\n this.deregisterEventHandlers();\n };\n MDCSliderFoundation.prototype.setMin = function (value) {\n this.min = value;\n if (!this.isRange) {\n this.valueStart = value;\n }\n this.updateUI();\n };\n MDCSliderFoundation.prototype.setMax = function (value) {\n this.max = value;\n this.updateUI();\n };\n MDCSliderFoundation.prototype.getMin = function () {\n return this.min;\n };\n MDCSliderFoundation.prototype.getMax = function () {\n return this.max;\n };\n /**\n * - For single point sliders, returns the thumb value.\n * - For range (two-thumb) sliders, returns the end thumb's value.\n */\n MDCSliderFoundation.prototype.getValue = function () {\n return this.value;\n };\n /**\n * - For single point sliders, sets the thumb value.\n * - For range (two-thumb) sliders, sets the end thumb's value.\n */\n MDCSliderFoundation.prototype.setValue = function (value) {\n if (this.isRange && value < this.valueStart) {\n throw new Error(\"end thumb value (\" + value + \") must be >= start thumb \" +\n (\"value (\" + this.valueStart + \")\"));\n }\n this.updateValue(value, Thumb.END);\n };\n /**\n * Only applicable for range sliders.\n * @return The start thumb's value.\n */\n MDCSliderFoundation.prototype.getValueStart = function () {\n if (!this.isRange) {\n throw new Error('`valueStart` is only applicable for range sliders.');\n }\n return this.valueStart;\n };\n /**\n * Only applicable for range sliders. Sets the start thumb's value.\n */\n MDCSliderFoundation.prototype.setValueStart = function (valueStart) {\n if (!this.isRange) {\n throw new Error('`valueStart` is only applicable for range sliders.');\n }\n if (this.isRange && valueStart > this.value) {\n throw new Error(\"start thumb value (\" + valueStart + \") must be <= end thumb \" +\n (\"value (\" + this.value + \")\"));\n }\n this.updateValue(valueStart, Thumb.START);\n };\n MDCSliderFoundation.prototype.setStep = function (value) {\n this.step = value;\n this.numDecimalPlaces = getNumDecimalPlaces(value);\n this.updateUI();\n };\n MDCSliderFoundation.prototype.setIsDiscrete = function (value) {\n this.isDiscrete = value;\n this.updateValueIndicatorUI();\n this.updateTickMarksUI();\n };\n MDCSliderFoundation.prototype.getStep = function () {\n return this.step;\n };\n MDCSliderFoundation.prototype.setHasTickMarks = function (value) {\n this.hasTickMarks = value;\n this.updateTickMarksUI();\n };\n MDCSliderFoundation.prototype.getDisabled = function () {\n return this.isDisabled;\n };\n /**\n * Sets disabled state, including updating styles and thumb tabindex.\n */\n MDCSliderFoundation.prototype.setDisabled = function (disabled) {\n this.isDisabled = disabled;\n if (disabled) {\n this.adapter.addClass(cssClasses.DISABLED);\n if (this.isRange) {\n this.adapter.setInputAttribute(attributes.INPUT_DISABLED, '', Thumb.START);\n }\n this.adapter.setInputAttribute(attributes.INPUT_DISABLED, '', Thumb.END);\n }\n else {\n this.adapter.removeClass(cssClasses.DISABLED);\n if (this.isRange) {\n this.adapter.removeInputAttribute(attributes.INPUT_DISABLED, Thumb.START);\n }\n this.adapter.removeInputAttribute(attributes.INPUT_DISABLED, Thumb.END);\n }\n };\n /** @return Whether the slider is a range slider. */\n MDCSliderFoundation.prototype.getIsRange = function () {\n return this.isRange;\n };\n /**\n * - Syncs slider boundingClientRect with the current DOM.\n * - Updates UI based on internal state.\n */\n MDCSliderFoundation.prototype.layout = function (_a) {\n var _b = _a === void 0 ? {} : _a, skipUpdateUI = _b.skipUpdateUI;\n this.rect = this.adapter.getBoundingClientRect();\n if (this.isRange) {\n this.startThumbKnobWidth = this.adapter.getThumbKnobWidth(Thumb.START);\n this.endThumbKnobWidth = this.adapter.getThumbKnobWidth(Thumb.END);\n }\n if (!skipUpdateUI) {\n this.updateUI();\n }\n };\n /** Handles resize events on the window. */\n MDCSliderFoundation.prototype.handleResize = function () {\n this.layout();\n };\n /**\n * Handles pointer down events on the slider root element.\n */\n MDCSliderFoundation.prototype.handleDown = function (event) {\n if (this.isDisabled)\n return;\n this.valueStartBeforeDownEvent = this.valueStart;\n this.valueBeforeDownEvent = this.value;\n var clientX = event.clientX != null ?\n event.clientX :\n event.targetTouches[0].clientX;\n this.downEventClientX = clientX;\n var value = this.mapClientXOnSliderScale(clientX);\n this.thumb = this.getThumbFromDownEvent(clientX, value);\n if (this.thumb === null)\n return;\n this.handleDragStart(event, value, this.thumb);\n this.updateValue(value, this.thumb, { emitInputEvent: true });\n };\n /**\n * Handles pointer move events on the slider root element.\n */\n MDCSliderFoundation.prototype.handleMove = function (event) {\n if (this.isDisabled)\n return;\n // Prevent scrolling.\n event.preventDefault();\n var clientX = event.clientX != null ?\n event.clientX :\n event.targetTouches[0].clientX;\n var dragAlreadyStarted = this.thumb != null;\n this.thumb = this.getThumbFromMoveEvent(clientX);\n if (this.thumb === null)\n return;\n var value = this.mapClientXOnSliderScale(clientX);\n if (!dragAlreadyStarted) {\n this.handleDragStart(event, value, this.thumb);\n this.adapter.emitDragStartEvent(value, this.thumb);\n }\n this.updateValue(value, this.thumb, { emitInputEvent: true });\n };\n /**\n * Handles pointer up events on the slider root element.\n */\n MDCSliderFoundation.prototype.handleUp = function () {\n if (this.isDisabled || this.thumb === null)\n return;\n var oldValue = this.thumb === Thumb.START ?\n this.valueStartBeforeDownEvent :\n this.valueBeforeDownEvent;\n var newValue = this.thumb === Thumb.START ? this.valueStart : this.value;\n if (oldValue !== newValue) {\n this.adapter.emitChangeEvent(newValue, this.thumb);\n }\n this.adapter.emitDragEndEvent(newValue, this.thumb);\n this.thumb = null;\n };\n /**\n * For range, discrete slider, shows the value indicator on both thumbs.\n */\n MDCSliderFoundation.prototype.handleThumbMouseenter = function () {\n if (!this.isDiscrete || !this.isRange)\n return;\n this.adapter.addThumbClass(cssClasses.THUMB_WITH_INDICATOR, Thumb.START);\n this.adapter.addThumbClass(cssClasses.THUMB_WITH_INDICATOR, Thumb.END);\n };\n /**\n * For range, discrete slider, hides the value indicator on both thumbs.\n */\n MDCSliderFoundation.prototype.handleThumbMouseleave = function () {\n if (!this.isDiscrete || !this.isRange)\n return;\n if (this.adapter.isInputFocused(Thumb.START) ||\n this.adapter.isInputFocused(Thumb.END)) {\n // Leave value indicator shown if either input is focused.\n return;\n }\n this.adapter.removeThumbClass(cssClasses.THUMB_WITH_INDICATOR, Thumb.START);\n this.adapter.removeThumbClass(cssClasses.THUMB_WITH_INDICATOR, Thumb.END);\n };\n MDCSliderFoundation.prototype.handleMousedownOrTouchstart = function (event) {\n var _this = this;\n var moveEventType = event.type === 'mousedown' ? 'mousemove' : 'touchmove';\n // After a down event on the slider root, listen for move events on\n // body (so the slider value is updated for events outside of the\n // slider root).\n this.adapter.registerBodyEventHandler(moveEventType, this.moveListener);\n var upHandler = function () {\n _this.handleUp();\n // Once the drag is finished (up event on body), remove the move\n // handler.\n _this.adapter.deregisterBodyEventHandler(moveEventType, _this.moveListener);\n // Also stop listening for subsequent up events.\n _this.adapter.deregisterEventHandler('mouseup', upHandler);\n _this.adapter.deregisterEventHandler('touchend', upHandler);\n };\n this.adapter.registerBodyEventHandler('mouseup', upHandler);\n this.adapter.registerBodyEventHandler('touchend', upHandler);\n this.handleDown(event);\n };\n MDCSliderFoundation.prototype.handlePointerdown = function (event) {\n this.adapter.setPointerCapture(event.pointerId);\n this.adapter.registerEventHandler('pointermove', this.moveListener);\n this.handleDown(event);\n };\n /**\n * Handles input `change` event by setting internal slider value to match\n * input's new value.\n */\n MDCSliderFoundation.prototype.handleInputChange = function (thumb) {\n var value = Number(this.adapter.getInputValue(thumb));\n if (thumb === Thumb.START) {\n this.setValueStart(value);\n }\n else {\n this.setValue(value);\n }\n this.adapter.emitChangeEvent(thumb === Thumb.START ? this.valueStart : this.value, thumb);\n this.adapter.emitInputEvent(thumb === Thumb.START ? this.valueStart : this.value, thumb);\n };\n /** Shows activated state and value indicator on thumb(s). */\n MDCSliderFoundation.prototype.handleInputFocus = function (thumb) {\n this.adapter.addThumbClass(cssClasses.THUMB_FOCUSED, thumb);\n if (!this.isDiscrete)\n return;\n this.adapter.addThumbClass(cssClasses.THUMB_WITH_INDICATOR, thumb);\n if (this.isRange) {\n var otherThumb = thumb === Thumb.START ? Thumb.END : Thumb.START;\n this.adapter.addThumbClass(cssClasses.THUMB_WITH_INDICATOR, otherThumb);\n }\n };\n /** Removes activated state and value indicator from thumb(s). */\n MDCSliderFoundation.prototype.handleInputBlur = function (thumb) {\n this.adapter.removeThumbClass(cssClasses.THUMB_FOCUSED, thumb);\n if (!this.isDiscrete)\n return;\n this.adapter.removeThumbClass(cssClasses.THUMB_WITH_INDICATOR, thumb);\n if (this.isRange) {\n var otherThumb = thumb === Thumb.START ? Thumb.END : Thumb.START;\n this.adapter.removeThumbClass(cssClasses.THUMB_WITH_INDICATOR, otherThumb);\n }\n };\n /**\n * Emits custom dragStart event, along with focusing the underlying input.\n */\n MDCSliderFoundation.prototype.handleDragStart = function (event, value, thumb) {\n this.adapter.emitDragStartEvent(value, thumb);\n this.adapter.focusInput(thumb);\n // Prevent the input (that we just focused) from losing focus.\n event.preventDefault();\n };\n /**\n * @return The thumb to be moved based on initial down event.\n */\n MDCSliderFoundation.prototype.getThumbFromDownEvent = function (clientX, value) {\n // For single point slider, thumb to be moved is always the END (only)\n // thumb.\n if (!this.isRange)\n return Thumb.END;\n // Check if event press point is in the bounds of any thumb.\n var thumbStartRect = this.adapter.getThumbBoundingClientRect(Thumb.START);\n var thumbEndRect = this.adapter.getThumbBoundingClientRect(Thumb.END);\n var inThumbStartBounds = clientX >= thumbStartRect.left && clientX <= thumbStartRect.right;\n var inThumbEndBounds = clientX >= thumbEndRect.left && clientX <= thumbEndRect.right;\n if (inThumbStartBounds && inThumbEndBounds) {\n // Thumbs overlapping. Thumb to be moved cannot be determined yet.\n return null;\n }\n // If press is in bounds for either thumb on down event, that's the thumb\n // to be moved.\n if (inThumbStartBounds) {\n return Thumb.START;\n }\n if (inThumbEndBounds) {\n return Thumb.END;\n }\n // For presses outside the range, return whichever thumb is closer.\n if (value < this.valueStart) {\n return Thumb.START;\n }\n if (value > this.value) {\n return Thumb.END;\n }\n // For presses inside the range, return whichever thumb is closer.\n return (value - this.valueStart <= this.value - value) ? Thumb.START :\n Thumb.END;\n };\n /**\n * @return The thumb to be moved based on move event (based on drag\n * direction from original down event). Only applicable if thumbs\n * were overlapping in the down event.\n */\n MDCSliderFoundation.prototype.getThumbFromMoveEvent = function (clientX) {\n // Thumb has already been chosen.\n if (this.thumb !== null)\n return this.thumb;\n if (this.downEventClientX === null) {\n throw new Error('`downEventClientX` is null after move event.');\n }\n var moveDistanceUnderThreshold = Math.abs(this.downEventClientX - clientX) < numbers.THUMB_UPDATE_MIN_PX;\n if (moveDistanceUnderThreshold)\n return this.thumb;\n var draggedThumbToLeft = clientX < this.downEventClientX;\n if (draggedThumbToLeft) {\n return this.adapter.isRTL() ? Thumb.END : Thumb.START;\n }\n else {\n return this.adapter.isRTL() ? Thumb.START : Thumb.END;\n }\n };\n /**\n * Updates UI based on internal state.\n * @param thumb Thumb whose value is being updated. If undefined, UI is\n * updated for both thumbs based on current internal state.\n */\n MDCSliderFoundation.prototype.updateUI = function (thumb) {\n this.updateThumbAndInputAttributes(thumb);\n this.updateThumbAndTrackUI(thumb);\n this.updateValueIndicatorUI(thumb);\n this.updateTickMarksUI();\n };\n /**\n * Updates thumb and input attributes based on current value.\n * @param thumb Thumb whose aria attributes to update.\n */\n MDCSliderFoundation.prototype.updateThumbAndInputAttributes = function (thumb) {\n if (!thumb)\n return;\n var value = this.isRange && thumb === Thumb.START ? this.valueStart : this.value;\n var valueStr = String(value);\n this.adapter.setInputAttribute(attributes.INPUT_VALUE, valueStr, thumb);\n if (this.isRange && thumb === Thumb.START) {\n this.adapter.setInputAttribute(attributes.INPUT_MIN, valueStr, Thumb.END);\n }\n else if (this.isRange && thumb === Thumb.END) {\n this.adapter.setInputAttribute(attributes.INPUT_MAX, valueStr, Thumb.START);\n }\n // Sync attribute with property.\n if (this.adapter.getInputValue(thumb) !== valueStr) {\n this.adapter.setInputValue(valueStr, thumb);\n }\n var valueToAriaValueTextFn = this.adapter.getValueToAriaValueTextFn();\n if (valueToAriaValueTextFn) {\n this.adapter.setInputAttribute(attributes.ARIA_VALUETEXT, valueToAriaValueTextFn(value), thumb);\n }\n };\n /**\n * Updates value indicator UI based on current value.\n * @param thumb Thumb whose value indicator to update. If undefined, all\n * thumbs' value indicators are updated.\n */\n MDCSliderFoundation.prototype.updateValueIndicatorUI = function (thumb) {\n if (!this.isDiscrete)\n return;\n var value = this.isRange && thumb === Thumb.START ? this.valueStart : this.value;\n this.adapter.setValueIndicatorText(value, thumb === Thumb.START ? Thumb.START : Thumb.END);\n if (!thumb && this.isRange) {\n this.adapter.setValueIndicatorText(this.valueStart, Thumb.START);\n }\n };\n /**\n * Updates tick marks UI within slider, based on current min, max, and step.\n */\n MDCSliderFoundation.prototype.updateTickMarksUI = function () {\n if (!this.isDiscrete || !this.hasTickMarks)\n return;\n var numTickMarksInactiveStart = (this.valueStart - this.min) / this.step;\n var numTickMarksActive = (this.value - this.valueStart) / this.step + 1;\n var numTickMarksInactiveEnd = (this.max - this.value) / this.step;\n var tickMarksInactiveStart = Array.from({ length: numTickMarksInactiveStart })\n .fill(TickMark.INACTIVE);\n var tickMarksActive = Array.from({ length: numTickMarksActive })\n .fill(TickMark.ACTIVE);\n var tickMarksInactiveEnd = Array.from({ length: numTickMarksInactiveEnd })\n .fill(TickMark.INACTIVE);\n this.adapter.updateTickMarks(tickMarksInactiveStart.concat(tickMarksActive)\n .concat(tickMarksInactiveEnd));\n };\n /** Maps clientX to a value on the slider scale. */\n MDCSliderFoundation.prototype.mapClientXOnSliderScale = function (clientX) {\n var xPos = clientX - this.rect.left;\n var pctComplete = xPos / this.rect.width;\n if (this.adapter.isRTL()) {\n pctComplete = 1 - pctComplete;\n }\n // Fit the percentage complete between the range [min,max]\n // by remapping from [0, 1] to [min, min+(max-min)].\n var value = this.min + pctComplete * (this.max - this.min);\n if (value === this.max || value === this.min) {\n return value;\n }\n return Number(this.quantize(value).toFixed(this.numDecimalPlaces));\n };\n /** Calculates the quantized value based on step value. */\n MDCSliderFoundation.prototype.quantize = function (value) {\n var numSteps = Math.round((value - this.min) / this.step);\n return this.min + numSteps * this.step;\n };\n /**\n * Updates slider value (internal state and UI) based on the given value.\n */\n MDCSliderFoundation.prototype.updateValue = function (value, thumb, _a) {\n var _b = _a === void 0 ? {} : _a, emitInputEvent = _b.emitInputEvent;\n value = this.clampValue(value, thumb);\n if (this.isRange && thumb === Thumb.START) {\n // Exit early if current value is the same as the new value.\n if (this.valueStart === value)\n return;\n this.valueStart = value;\n }\n else {\n // Exit early if current value is the same as the new value.\n if (this.value === value)\n return;\n this.value = value;\n }\n this.updateUI(thumb);\n if (emitInputEvent) {\n this.adapter.emitInputEvent(thumb === Thumb.START ? this.valueStart : this.value, thumb);\n }\n };\n /**\n * Clamps the given value for the given thumb based on slider properties:\n * - Restricts value within [min, max].\n * - If range slider, clamp start value <= end value, and\n * end value >= start value.\n */\n MDCSliderFoundation.prototype.clampValue = function (value, thumb) {\n // Clamp value to [min, max] range.\n value = Math.min(Math.max(value, this.min), this.max);\n var thumbStartMovedPastThumbEnd = this.isRange && thumb === Thumb.START && value > this.value;\n if (thumbStartMovedPastThumbEnd) {\n return this.value;\n }\n var thumbEndMovedPastThumbStart = this.isRange && thumb === Thumb.END && value < this.valueStart;\n if (thumbEndMovedPastThumbStart) {\n return this.valueStart;\n }\n return value;\n };\n /**\n * Updates the active track and thumb style properties to reflect current\n * value.\n */\n MDCSliderFoundation.prototype.updateThumbAndTrackUI = function (thumb) {\n var _this = this;\n var _a = this, max = _a.max, min = _a.min;\n var pctComplete = (this.value - this.valueStart) / (max - min);\n var rangePx = pctComplete * this.rect.width;\n var isRtl = this.adapter.isRTL();\n var transformProp = HAS_WINDOW ? getCorrectPropertyName(window, 'transform') : 'transform';\n if (this.isRange) {\n var thumbLeftPos_1 = this.adapter.isRTL() ?\n (max - this.value) / (max - min) * this.rect.width :\n (this.valueStart - min) / (max - min) * this.rect.width;\n var thumbRightPos_1 = thumbLeftPos_1 + rangePx;\n this.animFrame.request(AnimationKeys.SLIDER_UPDATE, function () {\n // Set active track styles, accounting for animation direction by\n // setting `transform-origin`.\n var trackAnimatesFromRight = (!isRtl && thumb === Thumb.START) ||\n (isRtl && thumb !== Thumb.START);\n if (trackAnimatesFromRight) {\n _this.adapter.setTrackActiveStyleProperty('transform-origin', 'right');\n _this.adapter.setTrackActiveStyleProperty('left', 'unset');\n _this.adapter.setTrackActiveStyleProperty('right', _this.rect.width - thumbRightPos_1 + \"px\");\n }\n else {\n _this.adapter.setTrackActiveStyleProperty('transform-origin', 'left');\n _this.adapter.setTrackActiveStyleProperty('right', 'unset');\n _this.adapter.setTrackActiveStyleProperty('left', thumbLeftPos_1 + \"px\");\n }\n _this.adapter.setTrackActiveStyleProperty(transformProp, \"scaleX(\" + pctComplete + \")\");\n // Set thumb styles.\n var thumbStartPos = isRtl ? thumbRightPos_1 : thumbLeftPos_1;\n var thumbEndPos = _this.adapter.isRTL() ? thumbLeftPos_1 : thumbRightPos_1;\n if (thumb === Thumb.START || !thumb || !_this.initialStylesRemoved) {\n _this.adapter.setThumbStyleProperty(transformProp, \"translateX(\" + thumbStartPos + \"px)\", Thumb.START);\n }\n if (thumb === Thumb.END || !thumb || !_this.initialStylesRemoved) {\n _this.adapter.setThumbStyleProperty(transformProp, \"translateX(\" + thumbEndPos + \"px)\", Thumb.END);\n }\n _this.removeInitialStyles(isRtl);\n _this.updateOverlappingThumbsUI(thumbStartPos, thumbEndPos, thumb);\n });\n }\n else {\n this.animFrame.request(AnimationKeys.SLIDER_UPDATE, function () {\n var thumbStartPos = isRtl ? _this.rect.width - rangePx : rangePx;\n _this.adapter.setThumbStyleProperty(transformProp, \"translateX(\" + thumbStartPos + \"px)\", Thumb.END);\n _this.adapter.setTrackActiveStyleProperty(transformProp, \"scaleX(\" + pctComplete + \")\");\n _this.removeInitialStyles(isRtl);\n });\n }\n };\n /**\n * Removes initial inline styles if not already removed. `left:<...>%`\n * inline styles can be added to position the thumb correctly before JS\n * initialization. However, they need to be removed before the JS starts\n * positioning the thumb. This is because the JS uses\n * `transform:translateX(<...>)px` (for performance reasons) to position\n * the thumb (which is not possible for initial styles since we need the\n * bounding rect measurements).\n */\n MDCSliderFoundation.prototype.removeInitialStyles = function (isRtl) {\n if (this.initialStylesRemoved)\n return;\n // Remove thumb position properties that were added for initial render.\n var position = isRtl ? 'right' : 'left';\n this.adapter.removeThumbStyleProperty(position, Thumb.END);\n if (this.isRange) {\n this.adapter.removeThumbStyleProperty(position, Thumb.START);\n }\n this.initialStylesRemoved = true;\n this.resetTrackAndThumbAnimation();\n };\n /**\n * Resets track/thumb animation to prevent animation when adding\n * `transform` styles to thumb initially.\n */\n MDCSliderFoundation.prototype.resetTrackAndThumbAnimation = function () {\n var _this = this;\n if (!this.isDiscrete)\n return;\n // Set transition properties to default (no animation), so that the\n // newly added `transform` styles do not animate thumb/track from\n // their default positions.\n var transitionProp = HAS_WINDOW ?\n getCorrectPropertyName(window, 'transition') :\n 'transition';\n var transitionDefault = 'all 0s ease 0s';\n this.adapter.setThumbStyleProperty(transitionProp, transitionDefault, Thumb.END);\n if (this.isRange) {\n this.adapter.setThumbStyleProperty(transitionProp, transitionDefault, Thumb.START);\n }\n this.adapter.setTrackActiveStyleProperty(transitionProp, transitionDefault);\n // In the next frame, remove the transition inline styles we just\n // added, such that any animations added in the CSS can now take effect.\n requestAnimationFrame(function () {\n _this.adapter.removeThumbStyleProperty(transitionProp, Thumb.END);\n _this.adapter.removeTrackActiveStyleProperty(transitionProp);\n if (_this.isRange) {\n _this.adapter.removeThumbStyleProperty(transitionProp, Thumb.START);\n }\n });\n };\n /**\n * Adds THUMB_TOP class to active thumb if thumb knobs overlap; otherwise\n * removes THUMB_TOP class from both thumbs.\n * @param thumb Thumb that is active (being moved).\n */\n MDCSliderFoundation.prototype.updateOverlappingThumbsUI = function (thumbStartPos, thumbEndPos, thumb) {\n var thumbsOverlap = false;\n if (this.adapter.isRTL()) {\n var startThumbLeftEdge = thumbStartPos - this.startThumbKnobWidth / 2;\n var endThumbRightEdge = thumbEndPos + this.endThumbKnobWidth / 2;\n thumbsOverlap = endThumbRightEdge >= startThumbLeftEdge;\n }\n else {\n var startThumbRightEdge = thumbStartPos + this.startThumbKnobWidth / 2;\n var endThumbLeftEdge = thumbEndPos - this.endThumbKnobWidth / 2;\n thumbsOverlap = startThumbRightEdge >= endThumbLeftEdge;\n }\n if (thumbsOverlap) {\n this.adapter.addThumbClass(cssClasses.THUMB_TOP, \n // If no thumb was dragged (in the case of initial layout), end\n // thumb is on top by default.\n thumb || Thumb.END);\n this.adapter.removeThumbClass(cssClasses.THUMB_TOP, thumb === Thumb.START ? Thumb.END : Thumb.START);\n }\n else {\n this.adapter.removeThumbClass(cssClasses.THUMB_TOP, Thumb.START);\n this.adapter.removeThumbClass(cssClasses.THUMB_TOP, Thumb.END);\n }\n };\n /**\n * Converts attribute value to a number, e.g. '100' => 100. Throws errors\n * for invalid values.\n * @param attributeValue Attribute value, e.g. 100.\n * @param attributeName Attribute name, e.g. `aria-valuemax`.\n */\n MDCSliderFoundation.prototype.convertAttributeValueToNumber = function (attributeValue, attributeName) {\n if (attributeValue === null) {\n throw new Error(\"MDCSliderFoundation: `\" + attributeName + \"` must be non-null.\");\n }\n var value = Number(attributeValue);\n if (isNaN(value)) {\n throw new Error(\"MDCSliderFoundation: `\" + attributeName + \"` value is \" +\n (\"`\" + attributeValue + \"`, but must be a number.\"));\n }\n return value;\n };\n /** Checks that the given properties are valid slider values. */\n MDCSliderFoundation.prototype.validateProperties = function (_a) {\n var min = _a.min, max = _a.max, value = _a.value, valueStart = _a.valueStart, step = _a.step;\n if (min >= max) {\n throw new Error(\"MDCSliderFoundation: min must be strictly less than max. \" +\n (\"Current: [min: \" + min + \", max: \" + max + \"]\"));\n }\n if (step <= 0) {\n throw new Error(\"MDCSliderFoundation: step must be a positive number. \" +\n (\"Current step: \" + this.step));\n }\n if (this.isRange) {\n if (value < min || value > max || valueStart < min || valueStart > max) {\n throw new Error(\"MDCSliderFoundation: values must be in [min, max] range. \" +\n (\"Current values: [start value: \" + valueStart + \", end value: \" + value + \"]\"));\n }\n if (valueStart > value) {\n throw new Error(\"MDCSliderFoundation: start value must be <= end value. \" +\n (\"Current values: [start value: \" + valueStart + \", end value: \" + value + \"]\"));\n }\n var numStepsValueStartFromMin = (valueStart - min) / step;\n var numStepsValueFromMin = (value - min) / step;\n if ((numStepsValueStartFromMin % 1) !== 0 ||\n (numStepsValueFromMin % 1) !== 0) {\n throw new Error(\"MDCSliderFoundation: Slider values must be valid based on the \" +\n (\"step value. Current values: [start value: \" + valueStart + \", \") +\n (\"end value: \" + value + \"]\"));\n }\n }\n else { // Single point slider.\n if (value < min || value > max) {\n throw new Error(\"MDCSliderFoundation: value must be in [min, max] range. \" +\n (\"Current value: \" + value));\n }\n var numStepsValueFromMin = (value - min) / step;\n if ((numStepsValueFromMin % 1) !== 0) {\n throw new Error(\"MDCSliderFoundation: Slider value must be valid based on the \" +\n (\"step value. Current value: \" + value));\n }\n }\n };\n MDCSliderFoundation.prototype.registerEventHandlers = function () {\n this.adapter.registerWindowEventHandler('resize', this.resizeListener);\n if (MDCSliderFoundation.SUPPORTS_POINTER_EVENTS) {\n // If supported, use pointer events API with #setPointerCapture.\n this.adapter.registerEventHandler('pointerdown', this.pointerdownListener);\n this.adapter.registerEventHandler('pointerup', this.pointerupListener);\n }\n else {\n // Otherwise, fall back to mousedown/touchstart events.\n this.adapter.registerEventHandler('mousedown', this.mousedownOrTouchstartListener);\n this.adapter.registerEventHandler('touchstart', this.mousedownOrTouchstartListener);\n }\n if (this.isRange) {\n this.adapter.registerThumbEventHandler(Thumb.START, 'mouseenter', this.thumbMouseenterListener);\n this.adapter.registerThumbEventHandler(Thumb.START, 'mouseleave', this.thumbMouseleaveListener);\n this.adapter.registerInputEventHandler(Thumb.START, 'change', this.inputStartChangeListener);\n this.adapter.registerInputEventHandler(Thumb.START, 'focus', this.inputStartFocusListener);\n this.adapter.registerInputEventHandler(Thumb.START, 'blur', this.inputStartBlurListener);\n }\n this.adapter.registerThumbEventHandler(Thumb.END, 'mouseenter', this.thumbMouseenterListener);\n this.adapter.registerThumbEventHandler(Thumb.END, 'mouseleave', this.thumbMouseleaveListener);\n this.adapter.registerInputEventHandler(Thumb.END, 'change', this.inputEndChangeListener);\n this.adapter.registerInputEventHandler(Thumb.END, 'focus', this.inputEndFocusListener);\n this.adapter.registerInputEventHandler(Thumb.END, 'blur', this.inputEndBlurListener);\n };\n MDCSliderFoundation.prototype.deregisterEventHandlers = function () {\n this.adapter.deregisterWindowEventHandler('resize', this.resizeListener);\n if (MDCSliderFoundation.SUPPORTS_POINTER_EVENTS) {\n this.adapter.deregisterEventHandler('pointerdown', this.pointerdownListener);\n this.adapter.deregisterEventHandler('pointerup', this.pointerupListener);\n }\n else {\n this.adapter.deregisterEventHandler('mousedown', this.mousedownOrTouchstartListener);\n this.adapter.deregisterEventHandler('touchstart', this.mousedownOrTouchstartListener);\n }\n if (this.isRange) {\n this.adapter.deregisterThumbEventHandler(Thumb.START, 'mouseenter', this.thumbMouseenterListener);\n this.adapter.deregisterThumbEventHandler(Thumb.START, 'mouseleave', this.thumbMouseleaveListener);\n this.adapter.deregisterInputEventHandler(Thumb.START, 'change', this.inputStartChangeListener);\n this.adapter.deregisterInputEventHandler(Thumb.START, 'focus', this.inputStartFocusListener);\n this.adapter.deregisterInputEventHandler(Thumb.START, 'blur', this.inputStartBlurListener);\n }\n this.adapter.deregisterThumbEventHandler(Thumb.END, 'mouseenter', this.thumbMouseenterListener);\n this.adapter.deregisterThumbEventHandler(Thumb.END, 'mouseleave', this.thumbMouseleaveListener);\n this.adapter.deregisterInputEventHandler(Thumb.END, 'change', this.inputEndChangeListener);\n this.adapter.deregisterInputEventHandler(Thumb.END, 'focus', this.inputEndFocusListener);\n this.adapter.deregisterInputEventHandler(Thumb.END, 'blur', this.inputEndBlurListener);\n };\n MDCSliderFoundation.prototype.handlePointerup = function () {\n this.handleUp();\n this.adapter.deregisterEventHandler('pointermove', this.moveListener);\n };\n MDCSliderFoundation.SUPPORTS_POINTER_EVENTS = HAS_WINDOW && Boolean(window.PointerEvent) &&\n // #setPointerCapture is buggy on iOS, so we can't use pointer events\n // until the following bug is fixed:\n // https://bugs.webkit.org/show_bug.cgi?id=220196\n !isIOS();\n return MDCSliderFoundation;\n}(MDCFoundation));\nexport { MDCSliderFoundation };\nfunction isIOS() {\n // Source:\n // https://stackoverflow.com/questions/9038625/detect-if-device-is-ios\n return [\n 'iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone',\n 'iPod'\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes('Mac') && 'ontouchend' in document);\n}\n/**\n * Given a number, returns the number of digits that appear after the\n * decimal point.\n * See\n * https://stackoverflow.com/questions/9539513/is-there-a-reliable-way-in-javascript-to-obtain-the-number-of-decimal-places-of\n */\nfunction getNumDecimalPlaces(n) {\n // Pull out the fraction and the exponent.\n var match = /(?:\\.(\\d+))?(?:[eE]([+\\-]?\\d+))?$/.exec(String(n));\n // NaN or Infinity or integer.\n // We arbitrarily decide that Infinity is integral.\n if (!match)\n return 0;\n var fraction = match[1] || ''; // E.g. 1.234e-2 => 234\n var exponent = match[2] || 0; // E.g. 1.234e-2 => -2\n // Count the number of digits in the fraction and subtract the\n // exponent to simulate moving the decimal point left by exponent places.\n // 1.234e+2 has 1 fraction digit and '234'.length - 2 == 1\n // 1.234e-2 has 5 fraction digit and '234'.length - -2 == 5\n return Math.max(0, // lower limit\n (fraction === '0' ? 0 : fraction.length) - Number(exponent));\n}\n//# sourceMappingURL=foundation.js.map","/**\n * @license\n * Copyright 2020 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 { MDCComponent } from '@material/base/component';\nimport { applyPassive } from '@material/dom/events';\nimport { matches } from '@material/dom/ponyfill';\nimport { MDCRipple } from '@material/ripple/component';\nimport { MDCRippleFoundation } from '@material/ripple/foundation';\nimport { cssClasses, events } from './constants';\nimport { MDCSliderFoundation } from './foundation';\nimport { Thumb, TickMark } from './types';\n/** Vanilla JS implementation of slider component. */\nvar MDCSlider = /** @class */ (function (_super) {\n __extends(MDCSlider, _super);\n function MDCSlider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.skipInitialUIUpdate = false;\n // Function that maps a slider value to the value of the `aria-valuetext`\n // attribute on the thumb element.\n _this.valueToAriaValueTextFn = null;\n return _this;\n }\n MDCSlider.attachTo = function (root, options) {\n if (options === void 0) { options = {}; }\n return new MDCSlider(root, undefined, options);\n };\n MDCSlider.prototype.getDefaultFoundation = function () {\n var _this = this;\n // tslint:disable:object-literal-sort-keys Methods should be in the same\n // order as the adapter interface.\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 _this.getThumbEl(thumb).classList.add(className);\n },\n removeThumbClass: function (className, thumb) {\n _this.getThumbEl(thumb).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 _this.getInput(thumb).removeAttribute(attribute);\n },\n focusInput: function (thumb) {\n _this.getInput(thumb).focus();\n },\n isInputFocused: function (thumb) {\n return _this.getInput(thumb) === document.activeElement;\n },\n getThumbKnobWidth: function (thumb) {\n return _this.getThumbEl(thumb)\n .querySelector(\".\" + cssClasses.THUMB_KNOB)\n .getBoundingClientRect()\n .width;\n },\n getThumbBoundingClientRect: function (thumb) {\n return _this.getThumbEl(thumb).getBoundingClientRect();\n },\n getBoundingClientRect: function () { return _this.root.getBoundingClientRect(); },\n isRTL: function () { return getComputedStyle(_this.root).direction === 'rtl'; },\n setThumbStyleProperty: function (propertyName, value, thumb) {\n _this.getThumbEl(thumb).style.setProperty(propertyName, value);\n },\n removeThumbStyleProperty: function (propertyName, thumb) {\n _this.getThumbEl(thumb).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 valueIndicatorEl = _this.getThumbEl(thumb).querySelector(\".\" + cssClasses.VALUE_INDICATOR_TEXT);\n valueIndicatorEl.textContent = String(value);\n },\n getValueToAriaValueTextFn: function () { return _this.valueToAriaValueTextFn; },\n updateTickMarks: function (tickMarks) {\n var tickMarksContainer = _this.root.querySelector(\".\" + cssClasses.TICK_MARKS_CONTAINER);\n if (!tickMarksContainer) {\n tickMarksContainer = document.createElement('div');\n tickMarksContainer.classList.add(cssClasses.TICK_MARKS_CONTAINER);\n var track = _this.root.querySelector(\".\" + cssClasses.TRACK);\n track.appendChild(tickMarksContainer);\n }\n if (tickMarks.length !== tickMarksContainer.children.length) {\n while (tickMarksContainer.firstChild) {\n tickMarksContainer.removeChild(tickMarksContainer.firstChild);\n }\n _this.addTickMarks(tickMarksContainer, tickMarks);\n }\n else {\n _this.updateTickMarks(tickMarksContainer, tickMarks);\n }\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 _this.getRipple(thumb).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 _this.getRipple(thumb).deactivate();\n },\n registerEventHandler: function (evtType, handler) {\n _this.listen(evtType, handler);\n },\n deregisterEventHandler: function (evtType, handler) {\n _this.unlisten(evtType, handler);\n },\n registerThumbEventHandler: function (thumb, evtType, handler) {\n _this.getThumbEl(thumb).addEventListener(evtType, handler);\n },\n deregisterThumbEventHandler: function (thumb, evtType, handler) {\n _this.getThumbEl(thumb).removeEventListener(evtType, handler);\n },\n registerInputEventHandler: function (thumb, evtType, handler) {\n _this.getInput(thumb).addEventListener(evtType, handler);\n },\n deregisterInputEventHandler: function (thumb, evtType, handler) {\n _this.getInput(thumb).removeEventListener(evtType, handler);\n },\n registerBodyEventHandler: function (evtType, handler) {\n document.body.addEventListener(evtType, handler);\n },\n deregisterBodyEventHandler: function (evtType, handler) {\n document.body.removeEventListener(evtType, handler);\n },\n registerWindowEventHandler: function (evtType, handler) {\n window.addEventListener(evtType, handler);\n },\n deregisterWindowEventHandler: function (evtType, handler) {\n window.removeEventListener(evtType, handler);\n },\n // tslint:enable:object-literal-sort-keys\n };\n return new MDCSliderFoundation(adapter);\n };\n /**\n * Initializes component, with the following options:\n * - `skipInitialUIUpdate`: Whether to skip updating the UI when initially\n * syncing with the DOM. This should be enabled when the slider position\n * is set before component initialization.\n */\n MDCSlider.prototype.initialize = function (_a) {\n var _b = _a === void 0 ? {} : _a, skipInitialUIUpdate = _b.skipInitialUIUpdate;\n this.inputs =\n [].slice.call(this.root.querySelectorAll(\".\" + cssClasses.INPUT));\n this.thumbs =\n [].slice.call(this.root.querySelectorAll(\".\" + cssClasses.THUMB));\n this.trackActive =\n this.root.querySelector(\".\" + cssClasses.TRACK_ACTIVE);\n this.ripples = this.createRipples();\n if (skipInitialUIUpdate) {\n this.skipInitialUIUpdate = true;\n }\n };\n MDCSlider.prototype.initialSyncWithDOM = function () {\n this.foundation.layout({ skipUpdateUI: this.skipInitialUIUpdate });\n };\n /** Redraws UI based on DOM (e.g. element dimensions, RTL). */\n MDCSlider.prototype.layout = function () {\n this.foundation.layout();\n };\n MDCSlider.prototype.getValueStart = function () {\n return this.foundation.getValueStart();\n };\n MDCSlider.prototype.setValueStart = function (valueStart) {\n this.foundation.setValueStart(valueStart);\n };\n MDCSlider.prototype.getValue = function () {\n return this.foundation.getValue();\n };\n MDCSlider.prototype.setValue = function (value) {\n this.foundation.setValue(value);\n };\n /** @return Slider disabled state. */\n MDCSlider.prototype.getDisabled = function () {\n return this.foundation.getDisabled();\n };\n /** Sets slider disabled state. */\n MDCSlider.prototype.setDisabled = function (disabled) {\n this.foundation.setDisabled(disabled);\n };\n /**\n * Sets a function that maps the slider value to the value of the\n * `aria-valuetext` attribute on the thumb element.\n */\n MDCSlider.prototype.setValueToAriaValueTextFn = function (mapFn) {\n this.valueToAriaValueTextFn = mapFn;\n };\n MDCSlider.prototype.getThumbEl = function (thumb) {\n return thumb === Thumb.END ? this.thumbs[this.thumbs.length - 1] :\n this.thumbs[0];\n };\n MDCSlider.prototype.getInput = function (thumb) {\n return thumb === Thumb.END ? this.inputs[this.inputs.length - 1] :\n this.inputs[0];\n };\n MDCSlider.prototype.getRipple = function (thumb) {\n return thumb === Thumb.END ? this.ripples[this.ripples.length - 1] :\n this.ripples[0];\n };\n /** Adds tick mark elements to the given container. */\n MDCSlider.prototype.addTickMarks = function (tickMarkContainer, tickMarks) {\n var fragment = document.createDocumentFragment();\n for (var i = 0; i < tickMarks.length; i++) {\n var div = document.createElement('div');\n var tickMarkClass = tickMarks[i] === TickMark.ACTIVE ?\n cssClasses.TICK_MARK_ACTIVE :\n cssClasses.TICK_MARK_INACTIVE;\n div.classList.add(tickMarkClass);\n fragment.appendChild(div);\n }\n tickMarkContainer.appendChild(fragment);\n };\n /** Updates tick mark elements' classes in the given container. */\n MDCSlider.prototype.updateTickMarks = function (tickMarkContainer, tickMarks) {\n var tickMarkEls = Array.from(tickMarkContainer.children);\n for (var i = 0; i < tickMarkEls.length; i++) {\n if (tickMarks[i] === TickMark.ACTIVE) {\n tickMarkEls[i].classList.add(cssClasses.TICK_MARK_ACTIVE);\n tickMarkEls[i].classList.remove(cssClasses.TICK_MARK_INACTIVE);\n }\n else {\n tickMarkEls[i].classList.add(cssClasses.TICK_MARK_INACTIVE);\n tickMarkEls[i].classList.remove(cssClasses.TICK_MARK_ACTIVE);\n }\n }\n };\n /** Initializes thumb ripples. */\n MDCSlider.prototype.createRipples = function () {\n var ripples = [];\n var rippleSurfaces = [].slice.call(this.root.querySelectorAll(\".\" + cssClasses.THUMB));\n var _loop_1 = function (i) {\n var rippleSurface = rippleSurfaces[i];\n // Use the corresponding input as the focus source for the ripple (i.e.\n // when the input is focused, the ripple is in the focused state).\n var input = this_1.inputs[i];\n var adapter = __assign(__assign({}, MDCRipple.createAdapter(this_1)), { addClass: function (className) {\n rippleSurface.classList.add(className);\n }, computeBoundingRect: function () { return rippleSurface.getBoundingClientRect(); }, deregisterInteractionHandler: function (evtType, handler) {\n input.removeEventListener(evtType, handler);\n }, isSurfaceActive: function () { return matches(input, ':active'); }, isUnbounded: function () { return true; }, registerInteractionHandler: function (evtType, handler) {\n input.addEventListener(evtType, handler, applyPassive());\n }, removeClass: function (className) {\n rippleSurface.classList.remove(className);\n }, updateCssVariable: function (varName, value) {\n rippleSurface.style.setProperty(varName, value);\n } });\n var ripple = new MDCRipple(rippleSurface, new MDCRippleFoundation(adapter));\n ripple.unbounded = true;\n ripples.push(ripple);\n };\n var this_1 = this;\n for (var i = 0; i < rippleSurfaces.length; i++) {\n _loop_1(i);\n }\n return ripples;\n };\n return MDCSlider;\n}(MDCComponent));\nexport { MDCSlider };\n//# sourceMappingURL=component.js.map","export function getPercentageClass(value: number) {\n const tenPercent = 0.1;\n const twentyPercent = 0.2;\n const thirtyPercent = 0.3;\n const fortyPercent = 0.4;\n const fiftyPercent = 0.5;\n const sixtyPercent = 0.6;\n const seventyPercent = 0.7;\n const eightyPercent = 0.8;\n const ninetyPercent = 0.9;\n\n if (value === 0) {\n return 'percent-0';\n }\n\n if (value < tenPercent) {\n return 'percent-0-10';\n }\n\n if (value < twentyPercent) {\n return 'percent-10-20';\n }\n\n if (value < thirtyPercent) {\n return 'percent-20-30';\n }\n\n if (value < fortyPercent) {\n return 'percent-30-40';\n }\n\n if (value < fiftyPercent) {\n return 'percent-40-50';\n }\n\n if (value < sixtyPercent) {\n return 'percent-50-60';\n }\n\n if (value < seventyPercent) {\n return 'percent-60-70';\n }\n\n if (value < eightyPercent) {\n return 'percent-70-80';\n }\n\n if (value < ninetyPercent) {\n return 'percent-80-90';\n }\n\n return 'percent-90-100';\n}\n","@use '../../style/internal/z-index';\n@use '../../style/functions';\n@use '../../style/internal/shared_input-select-picker';\n\n@use '../../style/internal/lime-theme';\n\n@use '@material/slider/styles';\n@use '@material/floating-label/mdc-floating-label';\n\n:host(limel-slider) {\n isolation: isolate;\n position: relative;\n\n display: flex;\n flex-direction: column;\n}\n\n.mdc-slider {\n height: shared_input-select-picker.$height-of-mdc-text-field;\n margin: 0 0.75rem;\n}\n\n.mdc-floating-label,\n.mdc-slider .mdc-slider__value-indicator-text {\n // As long as this component is depended on MDC,\n // we need to force it to be font-agnostic.\n // When MDC-dependency is removed, this block can also be removed.\n // However, on removal of MDC-dependency, we should also make sure to check\n // other font-related styles that might be set by MDC,\n // such as `letter-spacing` or `font-size`.\n font-family: inherit;\n}\n\n.slider__label {\n padding-left: functions.pxToRem(20);\n top: 0.75rem; // To place its label on the same height as other `floating-label`s in a form\n\n color: shared_input-select-picker.$label-color;\n :host(limel-slider.disabled:not(.readonly)) & {\n color: shared_input-select-picker.$label-color-disabled;\n }\n}\n\n.slider__content-range-container {\n display: flex;\n order: 2;\n justify-content: space-between;\n margin: 0 auto;\n margin-top: -0.75rem;\n width: 100%;\n}\n\n.slider__content-min-label,\n.slider__content-max-label {\n line-height: 1;\n transition: opacity 0.2s ease;\n opacity: 0.7;\n font-size: functions.pxToRem(12);\n color: shared_input-select-picker.$helper-text-color;\n}\n\n.mdc-slider__track {\n &:before,\n &:after {\n // start & end indicators\n content: '';\n display: inline-block;\n position: absolute;\n top: 0;\n bottom: 0;\n margin: auto;\n\n width: functions.pxToRem(6);\n height: functions.pxToRem(6);\n border-radius: 50%;\n background-color: rgba(var(--contrast-700), 0.6);\n }\n\n &:before {\n left: functions.pxToRem(-12);\n }\n\n &:after {\n right: functions.pxToRem(-12);\n }\n}\n\n@import './partial-styles/percentage-color';\n@import './partial-styles/_readonly';\n@import './partial-styles/_thumb';\n@import './partial-styles/_helper-text';\n","import { MDCSlider, MDCSliderChangeEventDetail } from '@material/slider';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { getPercentageClass } from './getPercentageClass';\nimport { createRandomString } from '../../util/random-string';\n\nconst DEFAULT_FACTOR = 1;\nconst DEFAULT_MAX_VALUE = 100;\nconst DEFAULT_MIN_VALUE = 0;\n\n/**\n * @exampleComponent limel-example-slider-basic\n * @exampleComponent limel-example-slider-multiplier\n * @exampleComponent limel-example-slider-multiplier-percentage-colors\n * @exampleComponent limel-example-slider-composite\n */\n@Component({\n tag: 'limel-slider',\n shadow: true,\n styleUrl: 'slider.scss',\n})\nexport class Slider {\n /**\n * Disables the slider when `true`,\n * and visually shows that the field is editable but disabled.\n * This tells the users that if certain requirements are met,\n * the slider may become interactable.\n */\n @Prop({ reflect: true })\n public disabled = false;\n\n /**\n * Disables the slider when `true`. This visualizes the slider slightly differently.\n * But shows no visual sign indicating that the slider field\n * is disabled or can ever become interactable.\n */\n @Prop({ reflect: true })\n public readonly = false;\n\n /**\n * Default value: 1.\n * The factor that the properties `value`, `valuemax`, `valuemin`, and\n * `step` are multiplied by. On `change` divides the value by the factor,\n * so the original format stays the same.\n */\n @Prop({ reflect: true })\n public factor: number = DEFAULT_FACTOR;\n\n /**\n * Label to display next to the input\n */\n @Prop({ reflect: true })\n public label: string;\n\n /**\n * Optional helper text to display below the slider\n */\n @Prop({ reflect: true })\n public helperText: string;\n\n /**\n * Unit to display next to the value\n */\n @Prop({ reflect: true })\n public unit: string = '';\n\n /**\n * The value of the input\n */\n @Prop({ reflect: true })\n public value: number;\n\n /**\n * The maximum value allowed\n */\n @Prop({ reflect: true })\n public valuemax: number = DEFAULT_MAX_VALUE;\n\n /**\n * The minimum value allowed\n */\n @Prop({ reflect: true })\n public valuemin: number = DEFAULT_MIN_VALUE;\n\n /**\n * The stepping interval to use when adjusting the value\n */\n @Prop({ reflect: true })\n public step: number;\n\n /**\n * Emitted when the value has been changed\n */\n @Event()\n private change: EventEmitter<number>;\n\n @Element()\n private rootElement: HTMLLimelSliderElement;\n\n @State()\n private percentageClass: string;\n\n private mdcSlider: MDCSlider;\n private labelId: string;\n private helperTextId: string;\n private observer: ResizeObserver;\n\n public constructor() {\n this.labelId = createRandomString();\n this.helperTextId = createRandomString();\n }\n\n public connectedCallback() {\n this.initialize();\n this.observer = new ResizeObserver(this.resizeObserverCallback);\n this.observer.observe(this.rootElement);\n }\n\n public componentWillLoad() {\n this.setPercentageClass(this.value);\n }\n\n public componentDidLoad() {\n this.initialize();\n }\n\n public disconnectedCallback() {\n this.destroyMDCSlider();\n this.observer.disconnect();\n }\n\n public render() {\n const inputProps: any = {};\n if (this.step) {\n inputProps.step = this.multiplyByFactor(this.step);\n }\n\n if (this.disabled || this.readonly) {\n inputProps.disabled = true;\n }\n\n return (\n <Host class={this.getContainerClassList()}>\n <label\n class=\"slider__label mdc-floating-label mdc-floating-label--float-above\"\n id={this.labelId}\n >\n {this.label}\n </label>\n <div class=\"slider__content-range-container\">\n <span class=\"slider__content-min-label\">\n {this.multiplyByFactor(this.valuemin)}\n {this.unit}\n </span>\n <span class=\"slider__content-max-label\">\n {this.multiplyByFactor(this.valuemax)}\n {this.unit}\n </span>\n </div>\n <div\n class={{\n 'mdc-slider': true,\n 'mdc-slider--discrete': true,\n 'mdc-slider--disabled': this.disabled || this.readonly,\n }}\n >\n <input\n class=\"mdc-slider__input\"\n type=\"range\"\n min={this.multiplyByFactor(this.valuemin)}\n max={this.multiplyByFactor(this.valuemax)}\n value={this.multiplyByFactor(this.value)}\n name=\"volume\"\n aria-labelledby={this.labelId}\n aria-controls={this.helperTextId}\n {...inputProps}\n />\n <div class=\"mdc-slider__track\">\n <div class=\"mdc-slider__track--inactive\"></div>\n <div class=\"mdc-slider__track--active\">\n <div class=\"mdc-slider__track--active_fill\"></div>\n </div>\n </div>\n <div class=\"mdc-slider__thumb\">\n <div\n class=\"mdc-slider__value-indicator-container\"\n aria-hidden=\"true\"\n >\n <div class=\"mdc-slider__value-indicator\">\n <span class=\"mdc-slider__value-indicator-text\">\n {this.multiplyByFactor(this.value)}\n </span>\n </div>\n </div>\n <div class=\"mdc-slider__thumb-knob\"></div>\n </div>\n </div>\n {this.renderHelperLine()}\n </Host>\n );\n }\n\n @Watch('disabled')\n protected watchDisabled() {\n this.updateDisabledState();\n }\n\n @Watch('readonly')\n protected watchReadonly() {\n this.updateDisabledState();\n }\n\n @Watch('value')\n protected watchValue() {\n if (!this.mdcSlider) {\n return;\n }\n\n const value = this.multiplyByFactor(this.getValue());\n this.mdcSlider.setValue(value);\n\n if (this.isStepConfigured()) {\n return;\n }\n\n const step = this.multiplyByFactor(this.step);\n if (!this.isMultipleOfStep(value, step)) {\n return;\n }\n\n this.reCreateSliderWithStep();\n }\n\n private renderHelperLine = () => {\n if (!this.helperText) {\n return;\n }\n\n return (\n <limel-helper-line\n helperText={this.helperText}\n helperTextId={this.helperTextId}\n />\n );\n };\n\n private initialize = () => {\n const inputElement = this.getInputElement();\n if (!inputElement) {\n return;\n }\n\n const value = this.getValue();\n\n /*\n For some reason the input element's `value` attribute is removed\n (probably by Stencil) when the element is first rendered. But if the\n attribute is missing when MDCSlider is initialized (MDC v11.0.0),\n MDCSlider crashes.\n So we add the attribute right before initializing MDCSlider. /Ads\n */\n inputElement.setAttribute('value', `${this.multiplyByFactor(value)}`);\n\n /*\n When creating the `mdcSlider` component, its important that the value set in\n the input field obeys the range and the step size.\n\n The MDCSlider will throw an exception unless the value in the input element\n is dividible by the step value and is in the provided range.\n If an exception occurs, this component will crash and it will be impossible to change\n its value.\n The logic below ensures that the component will render even though the\n provided value is wrong.\n This could be considered wrong, but it at least fixes so that it's possible\n to change the value from the UI.\n */\n const greaterThanOrEqualMin = value >= this.valuemin;\n const lessThanOrEqualMax = value <= this.valuemax;\n\n if (!greaterThanOrEqualMin) {\n const newMin = this.multiplyByFactor(value);\n inputElement.setAttribute('min', `${newMin}`);\n }\n\n if (!lessThanOrEqualMax) {\n const newMax = this.multiplyByFactor(value);\n inputElement.setAttribute('max', `${newMax}`);\n }\n\n if (!this.isMultipleOfStep(value, this.step)) {\n inputElement.removeAttribute('step');\n }\n\n this.createMDCSlider();\n };\n\n private reCreateSliderWithStep = () => {\n const inputElement = this.getInputElement();\n const step = `${this.multiplyByFactor(this.step)}`;\n\n inputElement.setAttribute('step', step);\n\n this.destroyMDCSlider();\n this.createMDCSlider();\n };\n\n private createMDCSlider = () => {\n const element = this.getRootElement();\n\n this.mdcSlider = new MDCSlider(element);\n this.mdcSlider.listen('MDCSlider:change', this.changeHandler);\n this.mdcSlider.listen('MDCSlider:input', this.inputHandler);\n };\n\n private destroyMDCSlider() {\n this.mdcSlider.unlisten('MDCSlider:change', this.changeHandler);\n this.mdcSlider.unlisten('MDCSlider:input', this.inputHandler);\n this.mdcSlider.destroy();\n this.mdcSlider = undefined;\n }\n\n private changeHandler = (\n event: CustomEvent<MDCSliderChangeEventDetail>,\n ) => {\n let value = event.detail.value;\n const step = this.multiplyByFactor(this.step);\n\n if (!this.isMultipleOfStep(value, step)) {\n value = this.roundToStep(value, step);\n }\n\n this.change.emit(value / this.factor);\n };\n\n private inputHandler = (event: CustomEvent<MDCSliderChangeEventDetail>) => {\n this.setPercentageClass(event.detail.value / this.factor);\n };\n\n private getContainerClassList = () => {\n return {\n [this.percentageClass]: true,\n disabled: this.disabled || this.readonly,\n readonly: this.readonly,\n };\n };\n\n private resizeObserverCallback = () => {\n this.mdcSlider?.layout();\n };\n\n private updateDisabledState = () => {\n if (!this.mdcSlider) {\n return;\n }\n\n this.mdcSlider?.setDisabled(this.disabled || this.readonly);\n };\n\n private multiplyByFactor = (value: number) => {\n return Math.round(value * this.factor);\n };\n\n private getValue = () => {\n let value = this.value;\n if (!isFinite(value)) {\n value = this.valuemin;\n }\n\n return value;\n };\n\n private setPercentageClass = (value: number) => {\n this.percentageClass = getPercentageClass(\n (value - this.valuemin) / (this.valuemax - this.valuemin),\n );\n };\n\n private isMultipleOfStep = (value: number, step: number): boolean => {\n if (!step) {\n return true;\n }\n\n return value % step === 0;\n };\n\n private roundToStep = (value: number, step: number): number => {\n return Math.round(value / step) * step;\n };\n\n private getRootElement = (): HTMLElement | undefined => {\n return this.rootElement.shadowRoot.querySelector('.mdc-slider');\n };\n\n private getInputElement = (): HTMLInputElement | undefined => {\n const element = this.getRootElement();\n if (!element) {\n return;\n }\n\n return element.querySelector('input');\n };\n\n private isStepConfigured = (): boolean => {\n if (!this.step) {\n return true;\n }\n\n const input = this.getInputElement();\n if (!input) {\n return true;\n }\n\n return input.hasAttribute('step');\n };\n}\n"],"version":3}
|
|
1
|
+
{"file":"limel-slider.entry.cjs.js","mappings":"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","names":["__extends","__assign","AnimationFrame","getCorrectPropertyName","MDCFoundation","MDCRipple","matches","applyPassive","MDCRippleFoundation","MDCComponent","h","createRandomString","Host"],"sources":["./node_modules/@material/slider/constants.js","./node_modules/@material/slider/types.js","./node_modules/@material/slider/foundation.js","./node_modules/@material/slider/component.js","./src/components/slider/getPercentageClass.ts","./src/components/slider/slider.scss?tag=limel-slider&encapsulation=shadow","./src/components/slider/slider.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2020 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 */\n/** Slider element classes. */\nexport var cssClasses = {\n DISABLED: 'mdc-slider--disabled',\n DISCRETE: 'mdc-slider--discrete',\n INPUT: 'mdc-slider__input',\n RANGE: 'mdc-slider--range',\n THUMB: 'mdc-slider__thumb',\n // Applied when thumb is in the focused state.\n THUMB_FOCUSED: 'mdc-slider__thumb--focused',\n THUMB_KNOB: 'mdc-slider__thumb-knob',\n // Class added to the top thumb (for overlapping thumbs in range slider).\n THUMB_TOP: 'mdc-slider__thumb--top',\n THUMB_WITH_INDICATOR: 'mdc-slider__thumb--with-indicator',\n TICK_MARKS: 'mdc-slider--tick-marks',\n TICK_MARKS_CONTAINER: 'mdc-slider__tick-marks',\n TICK_MARK_ACTIVE: 'mdc-slider__tick-mark--active',\n TICK_MARK_INACTIVE: 'mdc-slider__tick-mark--inactive',\n TRACK: 'mdc-slider__track',\n // The active track fill element that will be scaled as the value changes.\n TRACK_ACTIVE: 'mdc-slider__track--active_fill',\n VALUE_INDICATOR_TEXT: 'mdc-slider__value-indicator-text',\n};\n/** Slider numbers. */\nexport var numbers = {\n // Default step size.\n STEP_SIZE: 1,\n // Minimum absolute difference between clientX of move event / down event\n // for which to update thumb, in the case of overlapping thumbs.\n // This is needed to reduce chances of choosing the thumb based on\n // pointer jitter.\n THUMB_UPDATE_MIN_PX: 5,\n};\n/** Slider attributes. */\nexport var attributes = {\n ARIA_VALUETEXT: 'aria-valuetext',\n INPUT_DISABLED: 'disabled',\n INPUT_MIN: 'min',\n INPUT_MAX: 'max',\n INPUT_VALUE: 'value',\n INPUT_STEP: 'step',\n};\n/** Slider events. */\nexport var events = {\n CHANGE: 'MDCSlider:change',\n INPUT: 'MDCSlider:input',\n};\n//# sourceMappingURL=constants.js.map","/**\n * @license\n * Copyright 2020 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 */\n/** Tick mark enum, for discrete sliders. */\nexport var TickMark;\n(function (TickMark) {\n TickMark[TickMark[\"ACTIVE\"] = 0] = \"ACTIVE\";\n TickMark[TickMark[\"INACTIVE\"] = 1] = \"INACTIVE\";\n})(TickMark || (TickMark = {}));\n/**\n * Thumb types: range slider has two thumbs (START, END) whereas single point\n * slider only has one thumb (END).\n */\nexport var Thumb;\n(function (Thumb) {\n // Thumb at start of slider (e.g. in LTR mode, left thumb on range slider).\n Thumb[Thumb[\"START\"] = 1] = \"START\";\n // Thumb at end of slider (e.g. in LTR mode, right thumb on range slider,\n // or only thumb on single point slider).\n Thumb[Thumb[\"END\"] = 2] = \"END\";\n})(Thumb || (Thumb = {}));\n//# sourceMappingURL=types.js.map","/**\n * @license\n * Copyright 2020 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 { AnimationFrame } from '@material/animation/animationframe';\nimport { getCorrectPropertyName } from '@material/animation/util';\nimport { MDCFoundation } from '@material/base/foundation';\nimport { attributes, cssClasses, numbers } from './constants';\nimport { Thumb, TickMark } from './types';\nvar AnimationKeys;\n(function (AnimationKeys) {\n AnimationKeys[\"SLIDER_UPDATE\"] = \"slider_update\";\n})(AnimationKeys || (AnimationKeys = {}));\n// Accessing `window` without a `typeof` check will throw on Node environments.\nvar HAS_WINDOW = typeof window !== 'undefined';\n/**\n * Foundation class for slider. Responsibilities include:\n * - Updating slider values (internal state and DOM updates) based on client\n * 'x' position.\n * - Updating DOM after slider property updates (e.g. min, max).\n */\nvar MDCSliderFoundation = /** @class */ (function (_super) {\n __extends(MDCSliderFoundation, _super);\n function MDCSliderFoundation(adapter) {\n var _this = _super.call(this, __assign(__assign({}, MDCSliderFoundation.defaultAdapter), adapter)) || this;\n // Whether the initial styles (to position the thumb, before component\n // initialization) have been removed.\n _this.initialStylesRemoved = false;\n _this.isDisabled = false;\n _this.isDiscrete = false;\n _this.step = numbers.STEP_SIZE;\n _this.hasTickMarks = false;\n // The following properties are only set for range sliders.\n _this.isRange = false;\n // Tracks the thumb being moved across a slider pointer interaction (down,\n // move event).\n _this.thumb = null;\n // `clientX` from the most recent down event. Used in subsequent move\n // events to determine which thumb to move (in the case of\n // overlapping thumbs).\n _this.downEventClientX = null;\n // Width of the start thumb knob.\n _this.startThumbKnobWidth = 0;\n // Width of the end thumb knob.\n _this.endThumbKnobWidth = 0;\n _this.animFrame = new AnimationFrame();\n return _this;\n }\n Object.defineProperty(MDCSliderFoundation, \"defaultAdapter\", {\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same\n // order as the adapter interface.\n return {\n hasClass: function () { return false; },\n addClass: function () { return undefined; },\n removeClass: function () { return undefined; },\n addThumbClass: function () { return undefined; },\n removeThumbClass: function () { return undefined; },\n getAttribute: function () { return null; },\n getInputValue: function () { return ''; },\n setInputValue: function () { return undefined; },\n getInputAttribute: function () { return null; },\n setInputAttribute: function () { return null; },\n removeInputAttribute: function () { return null; },\n focusInput: function () { return undefined; },\n isInputFocused: function () { return false; },\n getThumbKnobWidth: function () { return 0; },\n getThumbBoundingClientRect: function () {\n return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });\n },\n getBoundingClientRect: function () {\n return ({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });\n },\n isRTL: function () { return false; },\n setThumbStyleProperty: function () { return undefined; },\n removeThumbStyleProperty: function () { return undefined; },\n setTrackActiveStyleProperty: function () { return undefined; },\n removeTrackActiveStyleProperty: function () { return undefined; },\n setValueIndicatorText: function () { return undefined; },\n getValueToAriaValueTextFn: function () { return null; },\n updateTickMarks: function () { return undefined; },\n setPointerCapture: function () { return undefined; },\n emitChangeEvent: function () { return undefined; },\n emitInputEvent: function () { return undefined; },\n emitDragStartEvent: function () { return undefined; },\n emitDragEndEvent: function () { return undefined; },\n registerEventHandler: function () { return undefined; },\n deregisterEventHandler: function () { return undefined; },\n registerThumbEventHandler: function () { return undefined; },\n deregisterThumbEventHandler: function () { return undefined; },\n registerInputEventHandler: function () { return undefined; },\n deregisterInputEventHandler: function () { return undefined; },\n registerBodyEventHandler: function () { return undefined; },\n deregisterBodyEventHandler: function () { return undefined; },\n registerWindowEventHandler: function () { return undefined; },\n deregisterWindowEventHandler: function () { return undefined; },\n };\n // tslint:enable:object-literal-sort-keys\n },\n enumerable: false,\n configurable: true\n });\n MDCSliderFoundation.prototype.init = function () {\n var _this = this;\n this.isDisabled = this.adapter.hasClass(cssClasses.DISABLED);\n this.isDiscrete = this.adapter.hasClass(cssClasses.DISCRETE);\n this.hasTickMarks = this.adapter.hasClass(cssClasses.TICK_MARKS);\n this.isRange = this.adapter.hasClass(cssClasses.RANGE);\n var min = this.convertAttributeValueToNumber(this.adapter.getInputAttribute(attributes.INPUT_MIN, this.isRange ? Thumb.START : Thumb.END), attributes.INPUT_MIN);\n var max = this.convertAttributeValueToNumber(this.adapter.getInputAttribute(attributes.INPUT_MAX, Thumb.END), attributes.INPUT_MAX);\n var value = this.convertAttributeValueToNumber(this.adapter.getInputAttribute(attributes.INPUT_VALUE, Thumb.END), attributes.INPUT_VALUE);\n var valueStart = this.isRange ?\n this.convertAttributeValueToNumber(this.adapter.getInputAttribute(attributes.INPUT_VALUE, Thumb.START), attributes.INPUT_VALUE) :\n min;\n var stepAttr = this.adapter.getInputAttribute(attributes.INPUT_STEP, Thumb.END);\n var step = stepAttr ?\n this.convertAttributeValueToNumber(stepAttr, attributes.INPUT_STEP) :\n this.step;\n this.validateProperties({ min: min, max: max, value: value, valueStart: valueStart, step: step });\n this.min = min;\n this.max = max;\n this.value = value;\n this.valueStart = valueStart;\n this.step = step;\n this.numDecimalPlaces = getNumDecimalPlaces(this.step);\n this.valueBeforeDownEvent = value;\n this.valueStartBeforeDownEvent = valueStart;\n this.mousedownOrTouchstartListener =\n this.handleMousedownOrTouchstart.bind(this);\n this.moveListener = this.handleMove.bind(this);\n this.pointerdownListener = this.handlePointerdown.bind(this);\n this.pointerupListener = this.handlePointerup.bind(this);\n this.thumbMouseenterListener = this.handleThumbMouseenter.bind(this);\n this.thumbMouseleaveListener = this.handleThumbMouseleave.bind(this);\n this.inputStartChangeListener = function () {\n _this.handleInputChange(Thumb.START);\n };\n this.inputEndChangeListener = function () {\n _this.handleInputChange(Thumb.END);\n };\n this.inputStartFocusListener = function () {\n _this.handleInputFocus(Thumb.START);\n };\n this.inputEndFocusListener = function () {\n _this.handleInputFocus(Thumb.END);\n };\n this.inputStartBlurListener = function () {\n _this.handleInputBlur(Thumb.START);\n };\n this.inputEndBlurListener = function () {\n _this.handleInputBlur(Thumb.END);\n };\n this.resizeListener = this.handleResize.bind(this);\n this.registerEventHandlers();\n };\n MDCSliderFoundation.prototype.destroy = function () {\n this.deregisterEventHandlers();\n };\n MDCSliderFoundation.prototype.setMin = function (value) {\n this.min = value;\n if (!this.isRange) {\n this.valueStart = value;\n }\n this.updateUI();\n };\n MDCSliderFoundation.prototype.setMax = function (value) {\n this.max = value;\n this.updateUI();\n };\n MDCSliderFoundation.prototype.getMin = function () {\n return this.min;\n };\n MDCSliderFoundation.prototype.getMax = function () {\n return this.max;\n };\n /**\n * - For single point sliders, returns the thumb value.\n * - For range (two-thumb) sliders, returns the end thumb's value.\n */\n MDCSliderFoundation.prototype.getValue = function () {\n return this.value;\n };\n /**\n * - For single point sliders, sets the thumb value.\n * - For range (two-thumb) sliders, sets the end thumb's value.\n */\n MDCSliderFoundation.prototype.setValue = function (value) {\n if (this.isRange && value < this.valueStart) {\n throw new Error(\"end thumb value (\" + value + \") must be >= start thumb \" +\n (\"value (\" + this.valueStart + \")\"));\n }\n this.updateValue(value, Thumb.END);\n };\n /**\n * Only applicable for range sliders.\n * @return The start thumb's value.\n */\n MDCSliderFoundation.prototype.getValueStart = function () {\n if (!this.isRange) {\n throw new Error('`valueStart` is only applicable for range sliders.');\n }\n return this.valueStart;\n };\n /**\n * Only applicable for range sliders. Sets the start thumb's value.\n */\n MDCSliderFoundation.prototype.setValueStart = function (valueStart) {\n if (!this.isRange) {\n throw new Error('`valueStart` is only applicable for range sliders.');\n }\n if (this.isRange && valueStart > this.value) {\n throw new Error(\"start thumb value (\" + valueStart + \") must be <= end thumb \" +\n (\"value (\" + this.value + \")\"));\n }\n this.updateValue(valueStart, Thumb.START);\n };\n MDCSliderFoundation.prototype.setStep = function (value) {\n this.step = value;\n this.numDecimalPlaces = getNumDecimalPlaces(value);\n this.updateUI();\n };\n MDCSliderFoundation.prototype.setIsDiscrete = function (value) {\n this.isDiscrete = value;\n this.updateValueIndicatorUI();\n this.updateTickMarksUI();\n };\n MDCSliderFoundation.prototype.getStep = function () {\n return this.step;\n };\n MDCSliderFoundation.prototype.setHasTickMarks = function (value) {\n this.hasTickMarks = value;\n this.updateTickMarksUI();\n };\n MDCSliderFoundation.prototype.getDisabled = function () {\n return this.isDisabled;\n };\n /**\n * Sets disabled state, including updating styles and thumb tabindex.\n */\n MDCSliderFoundation.prototype.setDisabled = function (disabled) {\n this.isDisabled = disabled;\n if (disabled) {\n this.adapter.addClass(cssClasses.DISABLED);\n if (this.isRange) {\n this.adapter.setInputAttribute(attributes.INPUT_DISABLED, '', Thumb.START);\n }\n this.adapter.setInputAttribute(attributes.INPUT_DISABLED, '', Thumb.END);\n }\n else {\n this.adapter.removeClass(cssClasses.DISABLED);\n if (this.isRange) {\n this.adapter.removeInputAttribute(attributes.INPUT_DISABLED, Thumb.START);\n }\n this.adapter.removeInputAttribute(attributes.INPUT_DISABLED, Thumb.END);\n }\n };\n /** @return Whether the slider is a range slider. */\n MDCSliderFoundation.prototype.getIsRange = function () {\n return this.isRange;\n };\n /**\n * - Syncs slider boundingClientRect with the current DOM.\n * - Updates UI based on internal state.\n */\n MDCSliderFoundation.prototype.layout = function (_a) {\n var _b = _a === void 0 ? {} : _a, skipUpdateUI = _b.skipUpdateUI;\n this.rect = this.adapter.getBoundingClientRect();\n if (this.isRange) {\n this.startThumbKnobWidth = this.adapter.getThumbKnobWidth(Thumb.START);\n this.endThumbKnobWidth = this.adapter.getThumbKnobWidth(Thumb.END);\n }\n if (!skipUpdateUI) {\n this.updateUI();\n }\n };\n /** Handles resize events on the window. */\n MDCSliderFoundation.prototype.handleResize = function () {\n this.layout();\n };\n /**\n * Handles pointer down events on the slider root element.\n */\n MDCSliderFoundation.prototype.handleDown = function (event) {\n if (this.isDisabled)\n return;\n this.valueStartBeforeDownEvent = this.valueStart;\n this.valueBeforeDownEvent = this.value;\n var clientX = event.clientX != null ?\n event.clientX :\n event.targetTouches[0].clientX;\n this.downEventClientX = clientX;\n var value = this.mapClientXOnSliderScale(clientX);\n this.thumb = this.getThumbFromDownEvent(clientX, value);\n if (this.thumb === null)\n return;\n this.handleDragStart(event, value, this.thumb);\n this.updateValue(value, this.thumb, { emitInputEvent: true });\n };\n /**\n * Handles pointer move events on the slider root element.\n */\n MDCSliderFoundation.prototype.handleMove = function (event) {\n if (this.isDisabled)\n return;\n // Prevent scrolling.\n event.preventDefault();\n var clientX = event.clientX != null ?\n event.clientX :\n event.targetTouches[0].clientX;\n var dragAlreadyStarted = this.thumb != null;\n this.thumb = this.getThumbFromMoveEvent(clientX);\n if (this.thumb === null)\n return;\n var value = this.mapClientXOnSliderScale(clientX);\n if (!dragAlreadyStarted) {\n this.handleDragStart(event, value, this.thumb);\n this.adapter.emitDragStartEvent(value, this.thumb);\n }\n this.updateValue(value, this.thumb, { emitInputEvent: true });\n };\n /**\n * Handles pointer up events on the slider root element.\n */\n MDCSliderFoundation.prototype.handleUp = function () {\n if (this.isDisabled || this.thumb === null)\n return;\n var oldValue = this.thumb === Thumb.START ?\n this.valueStartBeforeDownEvent :\n this.valueBeforeDownEvent;\n var newValue = this.thumb === Thumb.START ? this.valueStart : this.value;\n if (oldValue !== newValue) {\n this.adapter.emitChangeEvent(newValue, this.thumb);\n }\n this.adapter.emitDragEndEvent(newValue, this.thumb);\n this.thumb = null;\n };\n /**\n * For range, discrete slider, shows the value indicator on both thumbs.\n */\n MDCSliderFoundation.prototype.handleThumbMouseenter = function () {\n if (!this.isDiscrete || !this.isRange)\n return;\n this.adapter.addThumbClass(cssClasses.THUMB_WITH_INDICATOR, Thumb.START);\n this.adapter.addThumbClass(cssClasses.THUMB_WITH_INDICATOR, Thumb.END);\n };\n /**\n * For range, discrete slider, hides the value indicator on both thumbs.\n */\n MDCSliderFoundation.prototype.handleThumbMouseleave = function () {\n if (!this.isDiscrete || !this.isRange)\n return;\n if (this.adapter.isInputFocused(Thumb.START) ||\n this.adapter.isInputFocused(Thumb.END)) {\n // Leave value indicator shown if either input is focused.\n return;\n }\n this.adapter.removeThumbClass(cssClasses.THUMB_WITH_INDICATOR, Thumb.START);\n this.adapter.removeThumbClass(cssClasses.THUMB_WITH_INDICATOR, Thumb.END);\n };\n MDCSliderFoundation.prototype.handleMousedownOrTouchstart = function (event) {\n var _this = this;\n var moveEventType = event.type === 'mousedown' ? 'mousemove' : 'touchmove';\n // After a down event on the slider root, listen for move events on\n // body (so the slider value is updated for events outside of the\n // slider root).\n this.adapter.registerBodyEventHandler(moveEventType, this.moveListener);\n var upHandler = function () {\n _this.handleUp();\n // Once the drag is finished (up event on body), remove the move\n // handler.\n _this.adapter.deregisterBodyEventHandler(moveEventType, _this.moveListener);\n // Also stop listening for subsequent up events.\n _this.adapter.deregisterEventHandler('mouseup', upHandler);\n _this.adapter.deregisterEventHandler('touchend', upHandler);\n };\n this.adapter.registerBodyEventHandler('mouseup', upHandler);\n this.adapter.registerBodyEventHandler('touchend', upHandler);\n this.handleDown(event);\n };\n MDCSliderFoundation.prototype.handlePointerdown = function (event) {\n this.adapter.setPointerCapture(event.pointerId);\n this.adapter.registerEventHandler('pointermove', this.moveListener);\n this.handleDown(event);\n };\n /**\n * Handles input `change` event by setting internal slider value to match\n * input's new value.\n */\n MDCSliderFoundation.prototype.handleInputChange = function (thumb) {\n var value = Number(this.adapter.getInputValue(thumb));\n if (thumb === Thumb.START) {\n this.setValueStart(value);\n }\n else {\n this.setValue(value);\n }\n this.adapter.emitChangeEvent(thumb === Thumb.START ? this.valueStart : this.value, thumb);\n this.adapter.emitInputEvent(thumb === Thumb.START ? this.valueStart : this.value, thumb);\n };\n /** Shows activated state and value indicator on thumb(s). */\n MDCSliderFoundation.prototype.handleInputFocus = function (thumb) {\n this.adapter.addThumbClass(cssClasses.THUMB_FOCUSED, thumb);\n if (!this.isDiscrete)\n return;\n this.adapter.addThumbClass(cssClasses.THUMB_WITH_INDICATOR, thumb);\n if (this.isRange) {\n var otherThumb = thumb === Thumb.START ? Thumb.END : Thumb.START;\n this.adapter.addThumbClass(cssClasses.THUMB_WITH_INDICATOR, otherThumb);\n }\n };\n /** Removes activated state and value indicator from thumb(s). */\n MDCSliderFoundation.prototype.handleInputBlur = function (thumb) {\n this.adapter.removeThumbClass(cssClasses.THUMB_FOCUSED, thumb);\n if (!this.isDiscrete)\n return;\n this.adapter.removeThumbClass(cssClasses.THUMB_WITH_INDICATOR, thumb);\n if (this.isRange) {\n var otherThumb = thumb === Thumb.START ? Thumb.END : Thumb.START;\n this.adapter.removeThumbClass(cssClasses.THUMB_WITH_INDICATOR, otherThumb);\n }\n };\n /**\n * Emits custom dragStart event, along with focusing the underlying input.\n */\n MDCSliderFoundation.prototype.handleDragStart = function (event, value, thumb) {\n this.adapter.emitDragStartEvent(value, thumb);\n this.adapter.focusInput(thumb);\n // Prevent the input (that we just focused) from losing focus.\n event.preventDefault();\n };\n /**\n * @return The thumb to be moved based on initial down event.\n */\n MDCSliderFoundation.prototype.getThumbFromDownEvent = function (clientX, value) {\n // For single point slider, thumb to be moved is always the END (only)\n // thumb.\n if (!this.isRange)\n return Thumb.END;\n // Check if event press point is in the bounds of any thumb.\n var thumbStartRect = this.adapter.getThumbBoundingClientRect(Thumb.START);\n var thumbEndRect = this.adapter.getThumbBoundingClientRect(Thumb.END);\n var inThumbStartBounds = clientX >= thumbStartRect.left && clientX <= thumbStartRect.right;\n var inThumbEndBounds = clientX >= thumbEndRect.left && clientX <= thumbEndRect.right;\n if (inThumbStartBounds && inThumbEndBounds) {\n // Thumbs overlapping. Thumb to be moved cannot be determined yet.\n return null;\n }\n // If press is in bounds for either thumb on down event, that's the thumb\n // to be moved.\n if (inThumbStartBounds) {\n return Thumb.START;\n }\n if (inThumbEndBounds) {\n return Thumb.END;\n }\n // For presses outside the range, return whichever thumb is closer.\n if (value < this.valueStart) {\n return Thumb.START;\n }\n if (value > this.value) {\n return Thumb.END;\n }\n // For presses inside the range, return whichever thumb is closer.\n return (value - this.valueStart <= this.value - value) ? Thumb.START :\n Thumb.END;\n };\n /**\n * @return The thumb to be moved based on move event (based on drag\n * direction from original down event). Only applicable if thumbs\n * were overlapping in the down event.\n */\n MDCSliderFoundation.prototype.getThumbFromMoveEvent = function (clientX) {\n // Thumb has already been chosen.\n if (this.thumb !== null)\n return this.thumb;\n if (this.downEventClientX === null) {\n throw new Error('`downEventClientX` is null after move event.');\n }\n var moveDistanceUnderThreshold = Math.abs(this.downEventClientX - clientX) < numbers.THUMB_UPDATE_MIN_PX;\n if (moveDistanceUnderThreshold)\n return this.thumb;\n var draggedThumbToLeft = clientX < this.downEventClientX;\n if (draggedThumbToLeft) {\n return this.adapter.isRTL() ? Thumb.END : Thumb.START;\n }\n else {\n return this.adapter.isRTL() ? Thumb.START : Thumb.END;\n }\n };\n /**\n * Updates UI based on internal state.\n * @param thumb Thumb whose value is being updated. If undefined, UI is\n * updated for both thumbs based on current internal state.\n */\n MDCSliderFoundation.prototype.updateUI = function (thumb) {\n this.updateThumbAndInputAttributes(thumb);\n this.updateThumbAndTrackUI(thumb);\n this.updateValueIndicatorUI(thumb);\n this.updateTickMarksUI();\n };\n /**\n * Updates thumb and input attributes based on current value.\n * @param thumb Thumb whose aria attributes to update.\n */\n MDCSliderFoundation.prototype.updateThumbAndInputAttributes = function (thumb) {\n if (!thumb)\n return;\n var value = this.isRange && thumb === Thumb.START ? this.valueStart : this.value;\n var valueStr = String(value);\n this.adapter.setInputAttribute(attributes.INPUT_VALUE, valueStr, thumb);\n if (this.isRange && thumb === Thumb.START) {\n this.adapter.setInputAttribute(attributes.INPUT_MIN, valueStr, Thumb.END);\n }\n else if (this.isRange && thumb === Thumb.END) {\n this.adapter.setInputAttribute(attributes.INPUT_MAX, valueStr, Thumb.START);\n }\n // Sync attribute with property.\n if (this.adapter.getInputValue(thumb) !== valueStr) {\n this.adapter.setInputValue(valueStr, thumb);\n }\n var valueToAriaValueTextFn = this.adapter.getValueToAriaValueTextFn();\n if (valueToAriaValueTextFn) {\n this.adapter.setInputAttribute(attributes.ARIA_VALUETEXT, valueToAriaValueTextFn(value), thumb);\n }\n };\n /**\n * Updates value indicator UI based on current value.\n * @param thumb Thumb whose value indicator to update. If undefined, all\n * thumbs' value indicators are updated.\n */\n MDCSliderFoundation.prototype.updateValueIndicatorUI = function (thumb) {\n if (!this.isDiscrete)\n return;\n var value = this.isRange && thumb === Thumb.START ? this.valueStart : this.value;\n this.adapter.setValueIndicatorText(value, thumb === Thumb.START ? Thumb.START : Thumb.END);\n if (!thumb && this.isRange) {\n this.adapter.setValueIndicatorText(this.valueStart, Thumb.START);\n }\n };\n /**\n * Updates tick marks UI within slider, based on current min, max, and step.\n */\n MDCSliderFoundation.prototype.updateTickMarksUI = function () {\n if (!this.isDiscrete || !this.hasTickMarks)\n return;\n var numTickMarksInactiveStart = (this.valueStart - this.min) / this.step;\n var numTickMarksActive = (this.value - this.valueStart) / this.step + 1;\n var numTickMarksInactiveEnd = (this.max - this.value) / this.step;\n var tickMarksInactiveStart = Array.from({ length: numTickMarksInactiveStart })\n .fill(TickMark.INACTIVE);\n var tickMarksActive = Array.from({ length: numTickMarksActive })\n .fill(TickMark.ACTIVE);\n var tickMarksInactiveEnd = Array.from({ length: numTickMarksInactiveEnd })\n .fill(TickMark.INACTIVE);\n this.adapter.updateTickMarks(tickMarksInactiveStart.concat(tickMarksActive)\n .concat(tickMarksInactiveEnd));\n };\n /** Maps clientX to a value on the slider scale. */\n MDCSliderFoundation.prototype.mapClientXOnSliderScale = function (clientX) {\n var xPos = clientX - this.rect.left;\n var pctComplete = xPos / this.rect.width;\n if (this.adapter.isRTL()) {\n pctComplete = 1 - pctComplete;\n }\n // Fit the percentage complete between the range [min,max]\n // by remapping from [0, 1] to [min, min+(max-min)].\n var value = this.min + pctComplete * (this.max - this.min);\n if (value === this.max || value === this.min) {\n return value;\n }\n return Number(this.quantize(value).toFixed(this.numDecimalPlaces));\n };\n /** Calculates the quantized value based on step value. */\n MDCSliderFoundation.prototype.quantize = function (value) {\n var numSteps = Math.round((value - this.min) / this.step);\n return this.min + numSteps * this.step;\n };\n /**\n * Updates slider value (internal state and UI) based on the given value.\n */\n MDCSliderFoundation.prototype.updateValue = function (value, thumb, _a) {\n var _b = _a === void 0 ? {} : _a, emitInputEvent = _b.emitInputEvent;\n value = this.clampValue(value, thumb);\n if (this.isRange && thumb === Thumb.START) {\n // Exit early if current value is the same as the new value.\n if (this.valueStart === value)\n return;\n this.valueStart = value;\n }\n else {\n // Exit early if current value is the same as the new value.\n if (this.value === value)\n return;\n this.value = value;\n }\n this.updateUI(thumb);\n if (emitInputEvent) {\n this.adapter.emitInputEvent(thumb === Thumb.START ? this.valueStart : this.value, thumb);\n }\n };\n /**\n * Clamps the given value for the given thumb based on slider properties:\n * - Restricts value within [min, max].\n * - If range slider, clamp start value <= end value, and\n * end value >= start value.\n */\n MDCSliderFoundation.prototype.clampValue = function (value, thumb) {\n // Clamp value to [min, max] range.\n value = Math.min(Math.max(value, this.min), this.max);\n var thumbStartMovedPastThumbEnd = this.isRange && thumb === Thumb.START && value > this.value;\n if (thumbStartMovedPastThumbEnd) {\n return this.value;\n }\n var thumbEndMovedPastThumbStart = this.isRange && thumb === Thumb.END && value < this.valueStart;\n if (thumbEndMovedPastThumbStart) {\n return this.valueStart;\n }\n return value;\n };\n /**\n * Updates the active track and thumb style properties to reflect current\n * value.\n */\n MDCSliderFoundation.prototype.updateThumbAndTrackUI = function (thumb) {\n var _this = this;\n var _a = this, max = _a.max, min = _a.min;\n var pctComplete = (this.value - this.valueStart) / (max - min);\n var rangePx = pctComplete * this.rect.width;\n var isRtl = this.adapter.isRTL();\n var transformProp = HAS_WINDOW ? getCorrectPropertyName(window, 'transform') : 'transform';\n if (this.isRange) {\n var thumbLeftPos_1 = this.adapter.isRTL() ?\n (max - this.value) / (max - min) * this.rect.width :\n (this.valueStart - min) / (max - min) * this.rect.width;\n var thumbRightPos_1 = thumbLeftPos_1 + rangePx;\n this.animFrame.request(AnimationKeys.SLIDER_UPDATE, function () {\n // Set active track styles, accounting for animation direction by\n // setting `transform-origin`.\n var trackAnimatesFromRight = (!isRtl && thumb === Thumb.START) ||\n (isRtl && thumb !== Thumb.START);\n if (trackAnimatesFromRight) {\n _this.adapter.setTrackActiveStyleProperty('transform-origin', 'right');\n _this.adapter.setTrackActiveStyleProperty('left', 'unset');\n _this.adapter.setTrackActiveStyleProperty('right', _this.rect.width - thumbRightPos_1 + \"px\");\n }\n else {\n _this.adapter.setTrackActiveStyleProperty('transform-origin', 'left');\n _this.adapter.setTrackActiveStyleProperty('right', 'unset');\n _this.adapter.setTrackActiveStyleProperty('left', thumbLeftPos_1 + \"px\");\n }\n _this.adapter.setTrackActiveStyleProperty(transformProp, \"scaleX(\" + pctComplete + \")\");\n // Set thumb styles.\n var thumbStartPos = isRtl ? thumbRightPos_1 : thumbLeftPos_1;\n var thumbEndPos = _this.adapter.isRTL() ? thumbLeftPos_1 : thumbRightPos_1;\n if (thumb === Thumb.START || !thumb || !_this.initialStylesRemoved) {\n _this.adapter.setThumbStyleProperty(transformProp, \"translateX(\" + thumbStartPos + \"px)\", Thumb.START);\n }\n if (thumb === Thumb.END || !thumb || !_this.initialStylesRemoved) {\n _this.adapter.setThumbStyleProperty(transformProp, \"translateX(\" + thumbEndPos + \"px)\", Thumb.END);\n }\n _this.removeInitialStyles(isRtl);\n _this.updateOverlappingThumbsUI(thumbStartPos, thumbEndPos, thumb);\n });\n }\n else {\n this.animFrame.request(AnimationKeys.SLIDER_UPDATE, function () {\n var thumbStartPos = isRtl ? _this.rect.width - rangePx : rangePx;\n _this.adapter.setThumbStyleProperty(transformProp, \"translateX(\" + thumbStartPos + \"px)\", Thumb.END);\n _this.adapter.setTrackActiveStyleProperty(transformProp, \"scaleX(\" + pctComplete + \")\");\n _this.removeInitialStyles(isRtl);\n });\n }\n };\n /**\n * Removes initial inline styles if not already removed. `left:<...>%`\n * inline styles can be added to position the thumb correctly before JS\n * initialization. However, they need to be removed before the JS starts\n * positioning the thumb. This is because the JS uses\n * `transform:translateX(<...>)px` (for performance reasons) to position\n * the thumb (which is not possible for initial styles since we need the\n * bounding rect measurements).\n */\n MDCSliderFoundation.prototype.removeInitialStyles = function (isRtl) {\n if (this.initialStylesRemoved)\n return;\n // Remove thumb position properties that were added for initial render.\n var position = isRtl ? 'right' : 'left';\n this.adapter.removeThumbStyleProperty(position, Thumb.END);\n if (this.isRange) {\n this.adapter.removeThumbStyleProperty(position, Thumb.START);\n }\n this.initialStylesRemoved = true;\n this.resetTrackAndThumbAnimation();\n };\n /**\n * Resets track/thumb animation to prevent animation when adding\n * `transform` styles to thumb initially.\n */\n MDCSliderFoundation.prototype.resetTrackAndThumbAnimation = function () {\n var _this = this;\n if (!this.isDiscrete)\n return;\n // Set transition properties to default (no animation), so that the\n // newly added `transform` styles do not animate thumb/track from\n // their default positions.\n var transitionProp = HAS_WINDOW ?\n getCorrectPropertyName(window, 'transition') :\n 'transition';\n var transitionDefault = 'all 0s ease 0s';\n this.adapter.setThumbStyleProperty(transitionProp, transitionDefault, Thumb.END);\n if (this.isRange) {\n this.adapter.setThumbStyleProperty(transitionProp, transitionDefault, Thumb.START);\n }\n this.adapter.setTrackActiveStyleProperty(transitionProp, transitionDefault);\n // In the next frame, remove the transition inline styles we just\n // added, such that any animations added in the CSS can now take effect.\n requestAnimationFrame(function () {\n _this.adapter.removeThumbStyleProperty(transitionProp, Thumb.END);\n _this.adapter.removeTrackActiveStyleProperty(transitionProp);\n if (_this.isRange) {\n _this.adapter.removeThumbStyleProperty(transitionProp, Thumb.START);\n }\n });\n };\n /**\n * Adds THUMB_TOP class to active thumb if thumb knobs overlap; otherwise\n * removes THUMB_TOP class from both thumbs.\n * @param thumb Thumb that is active (being moved).\n */\n MDCSliderFoundation.prototype.updateOverlappingThumbsUI = function (thumbStartPos, thumbEndPos, thumb) {\n var thumbsOverlap = false;\n if (this.adapter.isRTL()) {\n var startThumbLeftEdge = thumbStartPos - this.startThumbKnobWidth / 2;\n var endThumbRightEdge = thumbEndPos + this.endThumbKnobWidth / 2;\n thumbsOverlap = endThumbRightEdge >= startThumbLeftEdge;\n }\n else {\n var startThumbRightEdge = thumbStartPos + this.startThumbKnobWidth / 2;\n var endThumbLeftEdge = thumbEndPos - this.endThumbKnobWidth / 2;\n thumbsOverlap = startThumbRightEdge >= endThumbLeftEdge;\n }\n if (thumbsOverlap) {\n this.adapter.addThumbClass(cssClasses.THUMB_TOP, \n // If no thumb was dragged (in the case of initial layout), end\n // thumb is on top by default.\n thumb || Thumb.END);\n this.adapter.removeThumbClass(cssClasses.THUMB_TOP, thumb === Thumb.START ? Thumb.END : Thumb.START);\n }\n else {\n this.adapter.removeThumbClass(cssClasses.THUMB_TOP, Thumb.START);\n this.adapter.removeThumbClass(cssClasses.THUMB_TOP, Thumb.END);\n }\n };\n /**\n * Converts attribute value to a number, e.g. '100' => 100. Throws errors\n * for invalid values.\n * @param attributeValue Attribute value, e.g. 100.\n * @param attributeName Attribute name, e.g. `aria-valuemax`.\n */\n MDCSliderFoundation.prototype.convertAttributeValueToNumber = function (attributeValue, attributeName) {\n if (attributeValue === null) {\n throw new Error(\"MDCSliderFoundation: `\" + attributeName + \"` must be non-null.\");\n }\n var value = Number(attributeValue);\n if (isNaN(value)) {\n throw new Error(\"MDCSliderFoundation: `\" + attributeName + \"` value is \" +\n (\"`\" + attributeValue + \"`, but must be a number.\"));\n }\n return value;\n };\n /** Checks that the given properties are valid slider values. */\n MDCSliderFoundation.prototype.validateProperties = function (_a) {\n var min = _a.min, max = _a.max, value = _a.value, valueStart = _a.valueStart, step = _a.step;\n if (min >= max) {\n throw new Error(\"MDCSliderFoundation: min must be strictly less than max. \" +\n (\"Current: [min: \" + min + \", max: \" + max + \"]\"));\n }\n if (step <= 0) {\n throw new Error(\"MDCSliderFoundation: step must be a positive number. \" +\n (\"Current step: \" + this.step));\n }\n if (this.isRange) {\n if (value < min || value > max || valueStart < min || valueStart > max) {\n throw new Error(\"MDCSliderFoundation: values must be in [min, max] range. \" +\n (\"Current values: [start value: \" + valueStart + \", end value: \" + value + \"]\"));\n }\n if (valueStart > value) {\n throw new Error(\"MDCSliderFoundation: start value must be <= end value. \" +\n (\"Current values: [start value: \" + valueStart + \", end value: \" + value + \"]\"));\n }\n var numStepsValueStartFromMin = (valueStart - min) / step;\n var numStepsValueFromMin = (value - min) / step;\n if ((numStepsValueStartFromMin % 1) !== 0 ||\n (numStepsValueFromMin % 1) !== 0) {\n throw new Error(\"MDCSliderFoundation: Slider values must be valid based on the \" +\n (\"step value. Current values: [start value: \" + valueStart + \", \") +\n (\"end value: \" + value + \"]\"));\n }\n }\n else { // Single point slider.\n if (value < min || value > max) {\n throw new Error(\"MDCSliderFoundation: value must be in [min, max] range. \" +\n (\"Current value: \" + value));\n }\n var numStepsValueFromMin = (value - min) / step;\n if ((numStepsValueFromMin % 1) !== 0) {\n throw new Error(\"MDCSliderFoundation: Slider value must be valid based on the \" +\n (\"step value. Current value: \" + value));\n }\n }\n };\n MDCSliderFoundation.prototype.registerEventHandlers = function () {\n this.adapter.registerWindowEventHandler('resize', this.resizeListener);\n if (MDCSliderFoundation.SUPPORTS_POINTER_EVENTS) {\n // If supported, use pointer events API with #setPointerCapture.\n this.adapter.registerEventHandler('pointerdown', this.pointerdownListener);\n this.adapter.registerEventHandler('pointerup', this.pointerupListener);\n }\n else {\n // Otherwise, fall back to mousedown/touchstart events.\n this.adapter.registerEventHandler('mousedown', this.mousedownOrTouchstartListener);\n this.adapter.registerEventHandler('touchstart', this.mousedownOrTouchstartListener);\n }\n if (this.isRange) {\n this.adapter.registerThumbEventHandler(Thumb.START, 'mouseenter', this.thumbMouseenterListener);\n this.adapter.registerThumbEventHandler(Thumb.START, 'mouseleave', this.thumbMouseleaveListener);\n this.adapter.registerInputEventHandler(Thumb.START, 'change', this.inputStartChangeListener);\n this.adapter.registerInputEventHandler(Thumb.START, 'focus', this.inputStartFocusListener);\n this.adapter.registerInputEventHandler(Thumb.START, 'blur', this.inputStartBlurListener);\n }\n this.adapter.registerThumbEventHandler(Thumb.END, 'mouseenter', this.thumbMouseenterListener);\n this.adapter.registerThumbEventHandler(Thumb.END, 'mouseleave', this.thumbMouseleaveListener);\n this.adapter.registerInputEventHandler(Thumb.END, 'change', this.inputEndChangeListener);\n this.adapter.registerInputEventHandler(Thumb.END, 'focus', this.inputEndFocusListener);\n this.adapter.registerInputEventHandler(Thumb.END, 'blur', this.inputEndBlurListener);\n };\n MDCSliderFoundation.prototype.deregisterEventHandlers = function () {\n this.adapter.deregisterWindowEventHandler('resize', this.resizeListener);\n if (MDCSliderFoundation.SUPPORTS_POINTER_EVENTS) {\n this.adapter.deregisterEventHandler('pointerdown', this.pointerdownListener);\n this.adapter.deregisterEventHandler('pointerup', this.pointerupListener);\n }\n else {\n this.adapter.deregisterEventHandler('mousedown', this.mousedownOrTouchstartListener);\n this.adapter.deregisterEventHandler('touchstart', this.mousedownOrTouchstartListener);\n }\n if (this.isRange) {\n this.adapter.deregisterThumbEventHandler(Thumb.START, 'mouseenter', this.thumbMouseenterListener);\n this.adapter.deregisterThumbEventHandler(Thumb.START, 'mouseleave', this.thumbMouseleaveListener);\n this.adapter.deregisterInputEventHandler(Thumb.START, 'change', this.inputStartChangeListener);\n this.adapter.deregisterInputEventHandler(Thumb.START, 'focus', this.inputStartFocusListener);\n this.adapter.deregisterInputEventHandler(Thumb.START, 'blur', this.inputStartBlurListener);\n }\n this.adapter.deregisterThumbEventHandler(Thumb.END, 'mouseenter', this.thumbMouseenterListener);\n this.adapter.deregisterThumbEventHandler(Thumb.END, 'mouseleave', this.thumbMouseleaveListener);\n this.adapter.deregisterInputEventHandler(Thumb.END, 'change', this.inputEndChangeListener);\n this.adapter.deregisterInputEventHandler(Thumb.END, 'focus', this.inputEndFocusListener);\n this.adapter.deregisterInputEventHandler(Thumb.END, 'blur', this.inputEndBlurListener);\n };\n MDCSliderFoundation.prototype.handlePointerup = function () {\n this.handleUp();\n this.adapter.deregisterEventHandler('pointermove', this.moveListener);\n };\n MDCSliderFoundation.SUPPORTS_POINTER_EVENTS = HAS_WINDOW && Boolean(window.PointerEvent) &&\n // #setPointerCapture is buggy on iOS, so we can't use pointer events\n // until the following bug is fixed:\n // https://bugs.webkit.org/show_bug.cgi?id=220196\n !isIOS();\n return MDCSliderFoundation;\n}(MDCFoundation));\nexport { MDCSliderFoundation };\nfunction isIOS() {\n // Source:\n // https://stackoverflow.com/questions/9038625/detect-if-device-is-ios\n return [\n 'iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone',\n 'iPod'\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes('Mac') && 'ontouchend' in document);\n}\n/**\n * Given a number, returns the number of digits that appear after the\n * decimal point.\n * See\n * https://stackoverflow.com/questions/9539513/is-there-a-reliable-way-in-javascript-to-obtain-the-number-of-decimal-places-of\n */\nfunction getNumDecimalPlaces(n) {\n // Pull out the fraction and the exponent.\n var match = /(?:\\.(\\d+))?(?:[eE]([+\\-]?\\d+))?$/.exec(String(n));\n // NaN or Infinity or integer.\n // We arbitrarily decide that Infinity is integral.\n if (!match)\n return 0;\n var fraction = match[1] || ''; // E.g. 1.234e-2 => 234\n var exponent = match[2] || 0; // E.g. 1.234e-2 => -2\n // Count the number of digits in the fraction and subtract the\n // exponent to simulate moving the decimal point left by exponent places.\n // 1.234e+2 has 1 fraction digit and '234'.length - 2 == 1\n // 1.234e-2 has 5 fraction digit and '234'.length - -2 == 5\n return Math.max(0, // lower limit\n (fraction === '0' ? 0 : fraction.length) - Number(exponent));\n}\n//# sourceMappingURL=foundation.js.map","/**\n * @license\n * Copyright 2020 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 { MDCComponent } from '@material/base/component';\nimport { applyPassive } from '@material/dom/events';\nimport { matches } from '@material/dom/ponyfill';\nimport { MDCRipple } from '@material/ripple/component';\nimport { MDCRippleFoundation } from '@material/ripple/foundation';\nimport { cssClasses, events } from './constants';\nimport { MDCSliderFoundation } from './foundation';\nimport { Thumb, TickMark } from './types';\n/** Vanilla JS implementation of slider component. */\nvar MDCSlider = /** @class */ (function (_super) {\n __extends(MDCSlider, _super);\n function MDCSlider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.skipInitialUIUpdate = false;\n // Function that maps a slider value to the value of the `aria-valuetext`\n // attribute on the thumb element.\n _this.valueToAriaValueTextFn = null;\n return _this;\n }\n MDCSlider.attachTo = function (root, options) {\n if (options === void 0) { options = {}; }\n return new MDCSlider(root, undefined, options);\n };\n MDCSlider.prototype.getDefaultFoundation = function () {\n var _this = this;\n // tslint:disable:object-literal-sort-keys Methods should be in the same\n // order as the adapter interface.\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 _this.getThumbEl(thumb).classList.add(className);\n },\n removeThumbClass: function (className, thumb) {\n _this.getThumbEl(thumb).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 _this.getInput(thumb).removeAttribute(attribute);\n },\n focusInput: function (thumb) {\n _this.getInput(thumb).focus();\n },\n isInputFocused: function (thumb) {\n return _this.getInput(thumb) === document.activeElement;\n },\n getThumbKnobWidth: function (thumb) {\n return _this.getThumbEl(thumb)\n .querySelector(\".\" + cssClasses.THUMB_KNOB)\n .getBoundingClientRect()\n .width;\n },\n getThumbBoundingClientRect: function (thumb) {\n return _this.getThumbEl(thumb).getBoundingClientRect();\n },\n getBoundingClientRect: function () { return _this.root.getBoundingClientRect(); },\n isRTL: function () { return getComputedStyle(_this.root).direction === 'rtl'; },\n setThumbStyleProperty: function (propertyName, value, thumb) {\n _this.getThumbEl(thumb).style.setProperty(propertyName, value);\n },\n removeThumbStyleProperty: function (propertyName, thumb) {\n _this.getThumbEl(thumb).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 valueIndicatorEl = _this.getThumbEl(thumb).querySelector(\".\" + cssClasses.VALUE_INDICATOR_TEXT);\n valueIndicatorEl.textContent = String(value);\n },\n getValueToAriaValueTextFn: function () { return _this.valueToAriaValueTextFn; },\n updateTickMarks: function (tickMarks) {\n var tickMarksContainer = _this.root.querySelector(\".\" + cssClasses.TICK_MARKS_CONTAINER);\n if (!tickMarksContainer) {\n tickMarksContainer = document.createElement('div');\n tickMarksContainer.classList.add(cssClasses.TICK_MARKS_CONTAINER);\n var track = _this.root.querySelector(\".\" + cssClasses.TRACK);\n track.appendChild(tickMarksContainer);\n }\n if (tickMarks.length !== tickMarksContainer.children.length) {\n while (tickMarksContainer.firstChild) {\n tickMarksContainer.removeChild(tickMarksContainer.firstChild);\n }\n _this.addTickMarks(tickMarksContainer, tickMarks);\n }\n else {\n _this.updateTickMarks(tickMarksContainer, tickMarks);\n }\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 _this.getRipple(thumb).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 _this.getRipple(thumb).deactivate();\n },\n registerEventHandler: function (evtType, handler) {\n _this.listen(evtType, handler);\n },\n deregisterEventHandler: function (evtType, handler) {\n _this.unlisten(evtType, handler);\n },\n registerThumbEventHandler: function (thumb, evtType, handler) {\n _this.getThumbEl(thumb).addEventListener(evtType, handler);\n },\n deregisterThumbEventHandler: function (thumb, evtType, handler) {\n _this.getThumbEl(thumb).removeEventListener(evtType, handler);\n },\n registerInputEventHandler: function (thumb, evtType, handler) {\n _this.getInput(thumb).addEventListener(evtType, handler);\n },\n deregisterInputEventHandler: function (thumb, evtType, handler) {\n _this.getInput(thumb).removeEventListener(evtType, handler);\n },\n registerBodyEventHandler: function (evtType, handler) {\n document.body.addEventListener(evtType, handler);\n },\n deregisterBodyEventHandler: function (evtType, handler) {\n document.body.removeEventListener(evtType, handler);\n },\n registerWindowEventHandler: function (evtType, handler) {\n window.addEventListener(evtType, handler);\n },\n deregisterWindowEventHandler: function (evtType, handler) {\n window.removeEventListener(evtType, handler);\n },\n // tslint:enable:object-literal-sort-keys\n };\n return new MDCSliderFoundation(adapter);\n };\n /**\n * Initializes component, with the following options:\n * - `skipInitialUIUpdate`: Whether to skip updating the UI when initially\n * syncing with the DOM. This should be enabled when the slider position\n * is set before component initialization.\n */\n MDCSlider.prototype.initialize = function (_a) {\n var _b = _a === void 0 ? {} : _a, skipInitialUIUpdate = _b.skipInitialUIUpdate;\n this.inputs =\n [].slice.call(this.root.querySelectorAll(\".\" + cssClasses.INPUT));\n this.thumbs =\n [].slice.call(this.root.querySelectorAll(\".\" + cssClasses.THUMB));\n this.trackActive =\n this.root.querySelector(\".\" + cssClasses.TRACK_ACTIVE);\n this.ripples = this.createRipples();\n if (skipInitialUIUpdate) {\n this.skipInitialUIUpdate = true;\n }\n };\n MDCSlider.prototype.initialSyncWithDOM = function () {\n this.foundation.layout({ skipUpdateUI: this.skipInitialUIUpdate });\n };\n /** Redraws UI based on DOM (e.g. element dimensions, RTL). */\n MDCSlider.prototype.layout = function () {\n this.foundation.layout();\n };\n MDCSlider.prototype.getValueStart = function () {\n return this.foundation.getValueStart();\n };\n MDCSlider.prototype.setValueStart = function (valueStart) {\n this.foundation.setValueStart(valueStart);\n };\n MDCSlider.prototype.getValue = function () {\n return this.foundation.getValue();\n };\n MDCSlider.prototype.setValue = function (value) {\n this.foundation.setValue(value);\n };\n /** @return Slider disabled state. */\n MDCSlider.prototype.getDisabled = function () {\n return this.foundation.getDisabled();\n };\n /** Sets slider disabled state. */\n MDCSlider.prototype.setDisabled = function (disabled) {\n this.foundation.setDisabled(disabled);\n };\n /**\n * Sets a function that maps the slider value to the value of the\n * `aria-valuetext` attribute on the thumb element.\n */\n MDCSlider.prototype.setValueToAriaValueTextFn = function (mapFn) {\n this.valueToAriaValueTextFn = mapFn;\n };\n MDCSlider.prototype.getThumbEl = function (thumb) {\n return thumb === Thumb.END ? this.thumbs[this.thumbs.length - 1] :\n this.thumbs[0];\n };\n MDCSlider.prototype.getInput = function (thumb) {\n return thumb === Thumb.END ? this.inputs[this.inputs.length - 1] :\n this.inputs[0];\n };\n MDCSlider.prototype.getRipple = function (thumb) {\n return thumb === Thumb.END ? this.ripples[this.ripples.length - 1] :\n this.ripples[0];\n };\n /** Adds tick mark elements to the given container. */\n MDCSlider.prototype.addTickMarks = function (tickMarkContainer, tickMarks) {\n var fragment = document.createDocumentFragment();\n for (var i = 0; i < tickMarks.length; i++) {\n var div = document.createElement('div');\n var tickMarkClass = tickMarks[i] === TickMark.ACTIVE ?\n cssClasses.TICK_MARK_ACTIVE :\n cssClasses.TICK_MARK_INACTIVE;\n div.classList.add(tickMarkClass);\n fragment.appendChild(div);\n }\n tickMarkContainer.appendChild(fragment);\n };\n /** Updates tick mark elements' classes in the given container. */\n MDCSlider.prototype.updateTickMarks = function (tickMarkContainer, tickMarks) {\n var tickMarkEls = Array.from(tickMarkContainer.children);\n for (var i = 0; i < tickMarkEls.length; i++) {\n if (tickMarks[i] === TickMark.ACTIVE) {\n tickMarkEls[i].classList.add(cssClasses.TICK_MARK_ACTIVE);\n tickMarkEls[i].classList.remove(cssClasses.TICK_MARK_INACTIVE);\n }\n else {\n tickMarkEls[i].classList.add(cssClasses.TICK_MARK_INACTIVE);\n tickMarkEls[i].classList.remove(cssClasses.TICK_MARK_ACTIVE);\n }\n }\n };\n /** Initializes thumb ripples. */\n MDCSlider.prototype.createRipples = function () {\n var ripples = [];\n var rippleSurfaces = [].slice.call(this.root.querySelectorAll(\".\" + cssClasses.THUMB));\n var _loop_1 = function (i) {\n var rippleSurface = rippleSurfaces[i];\n // Use the corresponding input as the focus source for the ripple (i.e.\n // when the input is focused, the ripple is in the focused state).\n var input = this_1.inputs[i];\n var adapter = __assign(__assign({}, MDCRipple.createAdapter(this_1)), { addClass: function (className) {\n rippleSurface.classList.add(className);\n }, computeBoundingRect: function () { return rippleSurface.getBoundingClientRect(); }, deregisterInteractionHandler: function (evtType, handler) {\n input.removeEventListener(evtType, handler);\n }, isSurfaceActive: function () { return matches(input, ':active'); }, isUnbounded: function () { return true; }, registerInteractionHandler: function (evtType, handler) {\n input.addEventListener(evtType, handler, applyPassive());\n }, removeClass: function (className) {\n rippleSurface.classList.remove(className);\n }, updateCssVariable: function (varName, value) {\n rippleSurface.style.setProperty(varName, value);\n } });\n var ripple = new MDCRipple(rippleSurface, new MDCRippleFoundation(adapter));\n ripple.unbounded = true;\n ripples.push(ripple);\n };\n var this_1 = this;\n for (var i = 0; i < rippleSurfaces.length; i++) {\n _loop_1(i);\n }\n return ripples;\n };\n return MDCSlider;\n}(MDCComponent));\nexport { MDCSlider };\n//# sourceMappingURL=component.js.map","export function getPercentageClass(value: number) {\n const tenPercent = 0.1;\n const twentyPercent = 0.2;\n const thirtyPercent = 0.3;\n const fortyPercent = 0.4;\n const fiftyPercent = 0.5;\n const sixtyPercent = 0.6;\n const seventyPercent = 0.7;\n const eightyPercent = 0.8;\n const ninetyPercent = 0.9;\n\n if (value === 0) {\n return 'percent-0';\n }\n\n if (value < tenPercent) {\n return 'percent-0-10';\n }\n\n if (value < twentyPercent) {\n return 'percent-10-20';\n }\n\n if (value < thirtyPercent) {\n return 'percent-20-30';\n }\n\n if (value < fortyPercent) {\n return 'percent-30-40';\n }\n\n if (value < fiftyPercent) {\n return 'percent-40-50';\n }\n\n if (value < sixtyPercent) {\n return 'percent-50-60';\n }\n\n if (value < seventyPercent) {\n return 'percent-60-70';\n }\n\n if (value < eightyPercent) {\n return 'percent-70-80';\n }\n\n if (value < ninetyPercent) {\n return 'percent-80-90';\n }\n\n return 'percent-90-100';\n}\n","@use '../../style/internal/z-index';\n@use '../../style/functions';\n@use '../../style/internal/shared_input-select-picker';\n\n@use '../../style/internal/lime-theme';\n\n@use '@material/slider/styles';\n@use '@material/floating-label/mdc-floating-label';\n\n:host(limel-slider) {\n isolation: isolate;\n position: relative;\n\n display: flex;\n flex-direction: column;\n}\n\n.mdc-slider {\n height: shared_input-select-picker.$height-of-mdc-text-field;\n margin: 0 0.75rem;\n}\n\n.mdc-floating-label,\n.mdc-slider .mdc-slider__value-indicator-text {\n // As long as this component is depended on MDC,\n // we need to force it to be font-agnostic.\n // When MDC-dependency is removed, this block can also be removed.\n // However, on removal of MDC-dependency, we should also make sure to check\n // other font-related styles that might be set by MDC,\n // such as `letter-spacing` or `font-size`.\n font-family: inherit;\n}\n\n.slider__label {\n padding-left: functions.pxToRem(20);\n top: 0.75rem; // To place its label on the same height as other `floating-label`s in a form\n\n color: shared_input-select-picker.$label-color;\n :host(limel-slider.disabled:not(.readonly)) & {\n color: shared_input-select-picker.$label-color-disabled;\n }\n}\n\n.slider__content-range-container {\n display: flex;\n order: 2;\n justify-content: space-between;\n margin: 0 auto;\n margin-top: -0.75rem;\n width: 100%;\n}\n\n.slider__content-min-label,\n.slider__content-max-label {\n line-height: 1;\n transition: opacity 0.2s ease;\n opacity: 0.7;\n font-size: functions.pxToRem(12);\n color: shared_input-select-picker.$helper-text-color;\n}\n\n.mdc-slider__track {\n &:before,\n &:after {\n // start & end indicators\n content: '';\n display: inline-block;\n position: absolute;\n top: 0;\n bottom: 0;\n margin: auto;\n\n width: functions.pxToRem(6);\n height: functions.pxToRem(6);\n border-radius: 50%;\n background-color: rgba(var(--contrast-700), 0.6);\n }\n\n &:before {\n left: functions.pxToRem(-12);\n }\n\n &:after {\n right: functions.pxToRem(-12);\n }\n}\n\n@import './partial-styles/percentage-color';\n@import './partial-styles/_readonly';\n@import './partial-styles/_thumb';\n@import './partial-styles/_helper-text';\n","import { MDCSlider, MDCSliderChangeEventDetail } from '@material/slider';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { getPercentageClass } from './getPercentageClass';\nimport { createRandomString } from '../../util/random-string';\n\nconst DEFAULT_FACTOR = 1;\nconst DEFAULT_MAX_VALUE = 100;\nconst DEFAULT_MIN_VALUE = 0;\n\n/**\n * @exampleComponent limel-example-slider-basic\n * @exampleComponent limel-example-slider-multiplier\n * @exampleComponent limel-example-slider-multiplier-percentage-colors\n * @exampleComponent limel-example-slider-composite\n */\n@Component({\n tag: 'limel-slider',\n shadow: true,\n styleUrl: 'slider.scss',\n})\nexport class Slider {\n /**\n * Disables the slider when `true`,\n * and visually shows that the field is editable but disabled.\n * This tells the users that if certain requirements are met,\n * the slider may become interactable.\n */\n @Prop({ reflect: true })\n public disabled = false;\n\n /**\n * Disables the slider when `true`. This visualizes the slider slightly differently.\n * But shows no visual sign indicating that the slider field\n * is disabled or can ever become interactable.\n */\n @Prop({ reflect: true })\n public readonly = false;\n\n /**\n * Default value: 1.\n * The factor that the properties `value`, `valuemax`, `valuemin`, and\n * `step` are multiplied by. On `change` divides the value by the factor,\n * so the original format stays the same.\n */\n @Prop({ reflect: true })\n public factor: number = DEFAULT_FACTOR;\n\n /**\n * Label to display next to the input\n */\n @Prop({ reflect: true })\n public label: string;\n\n /**\n * Optional helper text to display below the slider\n */\n @Prop({ reflect: true })\n public helperText: string;\n\n /**\n * Unit to display next to the value\n */\n @Prop({ reflect: true })\n public unit: string = '';\n\n /**\n * The value of the input\n */\n @Prop({ reflect: true })\n public value: number;\n\n /**\n * The maximum value allowed\n */\n @Prop({ reflect: true })\n public valuemax: number = DEFAULT_MAX_VALUE;\n\n /**\n * The minimum value allowed\n */\n @Prop({ reflect: true })\n public valuemin: number = DEFAULT_MIN_VALUE;\n\n /**\n * The stepping interval to use when adjusting the value\n */\n @Prop({ reflect: true })\n public step: number;\n\n /**\n * Emitted when the value has been changed\n */\n @Event()\n private change: EventEmitter<number>;\n\n @Element()\n private rootElement: HTMLLimelSliderElement;\n\n @State()\n private percentageClass: string;\n\n private mdcSlider: MDCSlider;\n private labelId: string;\n private helperTextId: string;\n private observer: ResizeObserver;\n\n public constructor() {\n this.labelId = createRandomString();\n this.helperTextId = createRandomString();\n }\n\n public connectedCallback() {\n this.initialize();\n this.observer = new ResizeObserver(this.resizeObserverCallback);\n this.observer.observe(this.rootElement);\n }\n\n public componentWillLoad() {\n this.setPercentageClass(this.value);\n }\n\n public componentDidLoad() {\n this.initialize();\n }\n\n public disconnectedCallback() {\n this.destroyMDCSlider();\n this.observer.disconnect();\n }\n\n public render() {\n const inputProps: any = {};\n if (this.step) {\n inputProps.step = this.multiplyByFactor(this.step);\n }\n\n if (this.disabled || this.readonly) {\n inputProps.disabled = true;\n }\n\n return (\n <Host class={this.getContainerClassList()}>\n <label\n class=\"slider__label mdc-floating-label mdc-floating-label--float-above\"\n id={this.labelId}\n >\n {this.label}\n </label>\n <div class=\"slider__content-range-container\">\n <span class=\"slider__content-min-label\">\n {this.multiplyByFactor(this.valuemin)}\n {this.unit}\n </span>\n <span class=\"slider__content-max-label\">\n {this.multiplyByFactor(this.valuemax)}\n {this.unit}\n </span>\n </div>\n <div\n class={{\n 'mdc-slider': true,\n 'mdc-slider--discrete': true,\n 'mdc-slider--disabled': this.disabled || this.readonly,\n }}\n >\n <input\n class=\"mdc-slider__input\"\n type=\"range\"\n min={this.multiplyByFactor(this.valuemin)}\n max={this.multiplyByFactor(this.valuemax)}\n value={this.multiplyByFactor(this.value)}\n name=\"volume\"\n aria-labelledby={this.labelId}\n aria-controls={this.helperTextId}\n {...inputProps}\n />\n <div class=\"mdc-slider__track\">\n <div class=\"mdc-slider__track--inactive\"></div>\n <div class=\"mdc-slider__track--active\">\n <div class=\"mdc-slider__track--active_fill\"></div>\n </div>\n </div>\n <div class=\"mdc-slider__thumb\">\n <div\n class=\"mdc-slider__value-indicator-container\"\n aria-hidden=\"true\"\n >\n <div class=\"mdc-slider__value-indicator\">\n <span class=\"mdc-slider__value-indicator-text\">\n {this.multiplyByFactor(this.value)}\n </span>\n </div>\n </div>\n <div class=\"mdc-slider__thumb-knob\"></div>\n </div>\n </div>\n {this.renderHelperLine()}\n </Host>\n );\n }\n\n @Watch('disabled')\n protected watchDisabled() {\n this.updateDisabledState();\n }\n\n @Watch('readonly')\n protected watchReadonly() {\n this.updateDisabledState();\n }\n\n @Watch('value')\n protected watchValue() {\n if (!this.mdcSlider) {\n return;\n }\n\n const value = this.multiplyByFactor(this.getValue());\n this.mdcSlider.setValue(value);\n\n if (this.isStepConfigured()) {\n return;\n }\n\n const step = this.multiplyByFactor(this.step);\n if (!this.isMultipleOfStep(value, step)) {\n return;\n }\n\n this.reCreateSliderWithStep();\n }\n\n private renderHelperLine = () => {\n if (!this.helperText) {\n return;\n }\n\n return (\n <limel-helper-line\n helperText={this.helperText}\n helperTextId={this.helperTextId}\n />\n );\n };\n\n private initialize = () => {\n const inputElement = this.getInputElement();\n if (!inputElement) {\n return;\n }\n\n const value = this.getValue();\n\n /*\n For some reason the input element's `value` attribute is removed\n (probably by Stencil) when the element is first rendered. But if the\n attribute is missing when MDCSlider is initialized (MDC v11.0.0),\n MDCSlider crashes.\n So we add the attribute right before initializing MDCSlider. /Ads\n */\n inputElement.setAttribute('value', `${this.multiplyByFactor(value)}`);\n\n /*\n When creating the `mdcSlider` component, its important that the value set in\n the input field obeys the range and the step size.\n\n The MDCSlider will throw an exception unless the value in the input element\n is dividible by the step value and is in the provided range.\n If an exception occurs, this component will crash and it will be impossible to change\n its value.\n The logic below ensures that the component will render even though the\n provided value is wrong.\n This could be considered wrong, but it at least fixes so that it's possible\n to change the value from the UI.\n */\n const greaterThanOrEqualMin = value >= this.valuemin;\n const lessThanOrEqualMax = value <= this.valuemax;\n\n if (!greaterThanOrEqualMin) {\n const newMin = this.multiplyByFactor(value);\n inputElement.setAttribute('min', `${newMin}`);\n }\n\n if (!lessThanOrEqualMax) {\n const newMax = this.multiplyByFactor(value);\n inputElement.setAttribute('max', `${newMax}`);\n }\n\n if (!this.isMultipleOfStep(value, this.step)) {\n inputElement.removeAttribute('step');\n }\n\n this.createMDCSlider();\n };\n\n private reCreateSliderWithStep = () => {\n const inputElement = this.getInputElement();\n const step = `${this.multiplyByFactor(this.step)}`;\n\n inputElement.setAttribute('step', step);\n\n this.destroyMDCSlider();\n this.createMDCSlider();\n };\n\n private createMDCSlider = () => {\n const element = this.getRootElement();\n\n this.mdcSlider = new MDCSlider(element);\n this.mdcSlider.listen('MDCSlider:change', this.changeHandler);\n this.mdcSlider.listen('MDCSlider:input', this.inputHandler);\n };\n\n private destroyMDCSlider() {\n this.mdcSlider.unlisten('MDCSlider:change', this.changeHandler);\n this.mdcSlider.unlisten('MDCSlider:input', this.inputHandler);\n this.mdcSlider.destroy();\n this.mdcSlider = undefined;\n }\n\n private changeHandler = (\n event: CustomEvent<MDCSliderChangeEventDetail>,\n ) => {\n let value = event.detail.value;\n const step = this.multiplyByFactor(this.step);\n\n if (!this.isMultipleOfStep(value, step)) {\n value = this.roundToStep(value, step);\n }\n\n this.change.emit(value / this.factor);\n };\n\n private inputHandler = (event: CustomEvent<MDCSliderChangeEventDetail>) => {\n this.setPercentageClass(event.detail.value / this.factor);\n };\n\n private getContainerClassList = () => {\n return {\n [this.percentageClass]: true,\n disabled: this.disabled || this.readonly,\n readonly: this.readonly,\n };\n };\n\n private resizeObserverCallback = () => {\n this.mdcSlider?.layout();\n };\n\n private updateDisabledState = () => {\n if (!this.mdcSlider) {\n return;\n }\n\n this.mdcSlider?.setDisabled(this.disabled || this.readonly);\n };\n\n private multiplyByFactor = (value: number) => {\n return Math.round(value * this.factor);\n };\n\n private getValue = () => {\n let value = this.value;\n if (!isFinite(value)) {\n value = this.valuemin;\n }\n\n return value;\n };\n\n private setPercentageClass = (value: number) => {\n this.percentageClass = getPercentageClass(\n (value - this.valuemin) / (this.valuemax - this.valuemin),\n );\n };\n\n private isMultipleOfStep = (value: number, step: number): boolean => {\n if (!step) {\n return true;\n }\n\n return value % step === 0;\n };\n\n private roundToStep = (value: number, step: number): number => {\n return Math.round(value / step) * step;\n };\n\n private getRootElement = (): HTMLElement | undefined => {\n return this.rootElement.shadowRoot.querySelector('.mdc-slider');\n };\n\n private getInputElement = (): HTMLInputElement | undefined => {\n const element = this.getRootElement();\n if (!element) {\n return;\n }\n\n return element.querySelector('input');\n };\n\n private isStepConfigured = (): boolean => {\n if (!this.step) {\n return true;\n }\n\n const input = this.getInputElement();\n if (!input) {\n return true;\n }\n\n return input.hasAttribute('step');\n };\n}\n"],"version":3}
|