Files
WrenchBoardIonic2023/.angular/cache/14.2.0/babel-webpack/5ab3cca2cf717877d53787244949a99b.json
T
CHIEFSOFT\ameye cea49e295a first commit
2023-05-12 22:30:08 -04:00

1 line
76 KiB
JSON

{"ast":null,"code":"import _asyncToGenerator from \"D:/MobileDev/WRB/WrenchBoard2023a/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\n\n/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { r as registerInstance, e as createEvent, h, H as Host, i as getElement } from './index-1a99aeb7.js';\nimport { b as getIonMode } from './ionic-global-04e268e7.js';\nimport { f as findClosestIonContent, d as disableContentScrollY, r as resetContentScrollY } from './index-3413f7be.js';\nimport { l as clamp, h as debounceEvent, i as inheritAriaAttributes, d as getAriaLabel, e as renderHiddenInput } from './helpers-4d272360.js';\nimport { p as printIonWarning } from './index-c4b11676.js';\nimport { i as isRTL } from './dir-e8b767a8.js';\nimport { c as createColorClasses, h as hostContext } from './theme-7670341c.js';\nconst rangeIosCss = \":host{--knob-handle-size:calc(var(--knob-size) * 2);display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;font-family:var(--ion-font-family, inherit);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}::slotted(ion-icon[slot]){font-size:24px}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:var(--ion-color-base);color:var(--ion-color-contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{left:0;top:calc((var(--height) - var(--knob-handle-size)) / 2);margin-left:calc(0px - var(--knob-handle-size) / 2);position:absolute;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset;right:unset;right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-knob-handle{margin-left:unset;-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2)}}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar{border-radius:var(--bar-border-radius);left:0;top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset;right:unset;right:0}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset}.range-knob{border-radius:var(--knob-border-radius);left:calc(50% - var(--knob-size) / 2);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}:host{--knob-border-radius:50%;--knob-background:#ffffff;--knob-box-shadow:0 3px 1px rgba(0, 0, 0, 0.1), 0 4px 8px rgba(0, 0, 0, 0.13), 0 0 0 1px rgba(0, 0, 0, 0.02);--knob-size:28px;--bar-height:2px;--bar-background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1);--bar-background-active:var(--ion-color-primary, #3880ff);--bar-border-radius:0;--height:42px;padding-left:16px;padding-right:16px;padding-top:8px;padding-bottom:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-tick-active{background:var(--ion-color-base)}::slotted([slot=start]){margin-left:0;margin-right:16px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}}::slotted([slot=end]){margin-left:16px;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}}:host(.range-has-pin){padding-top:20px}.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-tick{margin-left:-1px;border-radius:0;position:absolute;top:18px;width:2px;height:8px;background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1);pointer-events:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-tick{margin-left:unset;-webkit-margin-start:-1px;margin-inline-start:-1px}}.range-tick-active{background:var(--bar-background-active)}.range-pin{-webkit-transform:translate3d(0, 28px, 0) scale(0.01);transform:translate3d(0, 28px, 0) scale(0.01);padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;display:inline-block;position:relative;top:-20px;min-width:28px;-webkit-transition:-webkit-transform 120ms ease;transition:-webkit-transform 120ms ease;transition:transform 120ms ease;transition:transform 120ms ease, -webkit-transform 120ms ease;background:transparent;color:var(--ion-text-color, #000);font-size:12px;text-align:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-pin{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}.range-knob-pressed .range-pin{-webkit-transform:translate3d(0, 0, 0) scale(1);transform:translate3d(0, 0, 0) scale(1)}:host(.range-disabled){opacity:0.5}\";\nconst rangeMdCss = \":host{--knob-handle-size:calc(var(--knob-size) * 2);display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;font-family:var(--ion-font-family, inherit);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}::slotted(ion-icon[slot]){font-size:24px}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:var(--ion-color-base);color:var(--ion-color-contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{left:0;top:calc((var(--height) - var(--knob-handle-size)) / 2);margin-left:calc(0px - var(--knob-handle-size) / 2);position:absolute;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset;right:unset;right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-knob-handle{margin-left:unset;-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2)}}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar{border-radius:var(--bar-border-radius);left:0;top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset;right:unset;right:0}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset}.range-knob{border-radius:var(--knob-border-radius);left:calc(50% - var(--knob-size) / 2);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}:host{--knob-border-radius:50%;--knob-background:var(--bar-background-active);--knob-box-shadow:none;--knob-size:18px;--bar-height:2px;--bar-background:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.26);--bar-background-active:var(--ion-color-primary, #3880ff);--bar-border-radius:0;--height:42px;--pin-background:var(--ion-color-primary, #3880ff);--pin-color:var(--ion-color-primary-contrast, #fff);padding-left:14px;padding-right:14px;padding-top:8px;padding-bottom:8px;font-size:12px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px}}:host(.ion-color) .range-bar{background:rgba(var(--ion-color-base-rgb), 0.26)}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-knob,:host(.ion-color) .range-pin,:host(.ion-color) .range-pin::before,:host(.ion-color) .range-tick{background:var(--ion-color-base);color:var(--ion-color-contrast)}::slotted([slot=start]){margin-left:0;margin-right:14px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:14px;margin-inline-end:14px}}::slotted([slot=end]){margin-left:14px;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:14px;margin-inline-start:14px;-webkit-margin-end:0;margin-inline-end:0}}:host(.range-has-pin){padding-top:28px}.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-knob{-webkit-transform:scale(0.67);transform:scale(0.67);-webkit-transition-duration:120ms;transition-duration:120ms;-webkit-transition-property:background-color, border, -webkit-transform;transition-property:background-color, border, -webkit-transform;transition-property:transform, background-color, border;transition-property:transform, background-color, border, -webkit-transform;-webkit-transition-timing-function:ease;transition-timing-function:ease;z-index:2}.range-tick{position:absolute;top:calc((var(--height) - var(--bar-height)) / 2);width:var(--bar-height);height:var(--bar-height);background:var(--bar-background-active);z-index:1;pointer-events:none}.range-tick-active{background:transparent}.range-pin{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:8px;border-radius:50%;-webkit-transform:translate3d(0, 0, 0) scale(0.01);transform:translate3d(0, 0, 0) scale(0.01);display:inline-block;position:relative;min-width:28px;height:28px;-webkit-transition:background 120ms ease, -webkit-transform 120ms ease;transition:background 120ms ease, -webkit-transform 120ms ease;transition:transform 120ms ease, background 120ms ease;transition:transform 120ms ease, background 120ms ease, -webkit-transform 120ms ease;background:var(--pin-background);color:var(--pin-color);text-align:center}.range-pin::before{left:50%;top:3px;margin-left:-13px;border-radius:50% 50% 50% 0;position:absolute;width:26px;height:26px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transition:background 120ms ease;transition:background 120ms ease;background:var(--pin-background);content:\\\"\\\";z-index:-1}[dir=rtl] .range-pin::before,:host-context([dir=rtl]) .range-pin::before{left:unset;right:unset;right:50%}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-pin::before{margin-left:unset;-webkit-margin-start:-13px;margin-inline-start:-13px}}[dir=rtl] .range-pin::before,:host-context([dir=rtl]) .range-pin::before{left:unset}.range-knob-pressed .range-pin{-webkit-transform:translate3d(0, -24px, 0) scale(1);transform:translate3d(0, -24px, 0) scale(1)}:host(:not(.range-has-pin)) .range-knob-pressed .range-knob{-webkit-transform:scale(1);transform:scale(1)}:host(.range-disabled) .range-bar-active,:host(.range-disabled) .range-bar,:host(.range-disabled) .range-tick{background-color:var(--ion-color-step-250, #bfbfbf)}:host(.range-disabled) .range-knob{-webkit-transform:scale(0.55);transform:scale(0.55);outline:5px solid #fff;background-color:var(--ion-color-step-250, #bfbfbf)}\";\nconst Range = class {\n constructor(hostRef) {\n var _this = this;\n\n registerInstance(this, hostRef);\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.ionKnobMoveStart = createEvent(this, \"ionKnobMoveStart\", 7);\n this.ionKnobMoveEnd = createEvent(this, \"ionKnobMoveEnd\", 7);\n this.didLoad = false;\n this.noUpdate = false;\n this.hasFocus = false;\n this.inheritedAttributes = {};\n this.contentEl = null;\n this.initialContentScrollY = true;\n this.ratioA = 0;\n this.ratioB = 0;\n /**\n * How long, in milliseconds, to wait to trigger the\n * `ionChange` event after each change in the range value.\n * This also impacts form bindings such as `ngModel` or `v-model`.\n */\n\n this.debounce = 0; // TODO: In Ionic Framework v6 this should initialize to this.rangeId like the other form components do.\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n\n this.name = '';\n /**\n * Show two knobs.\n */\n\n this.dualKnobs = false;\n /**\n * Minimum integer value of the range.\n */\n\n this.min = 0;\n /**\n * Maximum integer value of the range.\n */\n\n this.max = 100;\n /**\n * If `true`, a pin with integer value is shown when the knob\n * is pressed.\n */\n\n this.pin = false;\n /**\n * A callback used to format the pin text.\n * By default the pin text is set to `Math.round(value)`.\n */\n\n this.pinFormatter = value => Math.round(value);\n /**\n * If `true`, the knob snaps to tick marks evenly spaced based\n * on the step property value.\n */\n\n\n this.snaps = false;\n /**\n * Specifies the value granularity.\n */\n\n this.step = 1;\n /**\n * If `true`, tick marks are displayed based on the step value.\n * Only applies when `snaps` is `true`.\n */\n\n this.ticks = true;\n /**\n * If `true`, the user cannot interact with the range.\n */\n\n this.disabled = false;\n /**\n * the value of the range.\n */\n\n this.value = 0;\n\n this.clampBounds = value => {\n return clamp(this.min, value, this.max);\n };\n\n this.ensureValueInBounds = value => {\n if (this.dualKnobs) {\n return {\n lower: this.clampBounds(value.lower),\n upper: this.clampBounds(value.upper)\n };\n } else {\n return this.clampBounds(value);\n }\n };\n\n this.setupGesture = /*#__PURE__*/_asyncToGenerator(function* () {\n const rangeSlider = _this.rangeSlider;\n\n if (rangeSlider) {\n _this.gesture = (yield import('./index-3f1a7d95.js')).createGesture({\n el: rangeSlider,\n gestureName: 'range',\n gesturePriority: 100,\n threshold: 0,\n onStart: ev => _this.onStart(ev),\n onMove: ev => _this.onMove(ev),\n onEnd: ev => _this.onEnd(ev)\n });\n\n _this.gesture.enable(!_this.disabled);\n }\n });\n\n this.handleKeyboard = (knob, isIncrease) => {\n const {\n ensureValueInBounds\n } = this;\n let step = this.step;\n step = step > 0 ? step : 1;\n step = step / (this.max - this.min);\n\n if (!isIncrease) {\n step *= -1;\n }\n\n if (knob === 'A') {\n this.ratioA = clamp(0, this.ratioA + step, 1);\n } else {\n this.ratioB = clamp(0, this.ratioB + step, 1);\n }\n\n this.ionKnobMoveStart.emit({\n value: ensureValueInBounds(this.value)\n });\n this.updateValue();\n this.ionKnobMoveEnd.emit({\n value: ensureValueInBounds(this.value)\n });\n };\n\n this.onBlur = () => {\n if (this.hasFocus) {\n this.hasFocus = false;\n this.ionBlur.emit();\n this.emitStyle();\n }\n };\n\n this.onFocus = () => {\n if (!this.hasFocus) {\n this.hasFocus = true;\n this.ionFocus.emit();\n this.emitStyle();\n }\n };\n }\n\n debounceChanged() {\n this.ionChange = debounceEvent(this.ionChange, this.debounce);\n }\n\n minChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n\n maxChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n\n activeBarStartChanged() {\n const {\n activeBarStart\n } = this;\n\n if (activeBarStart !== undefined) {\n if (activeBarStart > this.max) {\n printIonWarning(`Range: The value of activeBarStart (${activeBarStart}) is greater than the max (${this.max}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);\n this.activeBarStart = this.max;\n } else if (activeBarStart < this.min) {\n printIonWarning(`Range: The value of activeBarStart (${activeBarStart}) is less than the min (${this.min}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);\n this.activeBarStart = this.min;\n }\n }\n }\n\n disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n\n this.emitStyle();\n }\n\n valueChanged(value) {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n\n value = this.ensureValueInBounds(value);\n this.ionChange.emit({\n value\n });\n }\n\n componentWillLoad() {\n /**\n * If user has custom ID set then we should\n * not assign the default incrementing ID.\n */\n this.rangeId = this.el.hasAttribute('id') ? this.el.getAttribute('id') : `ion-r-${rangeIds++}`;\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n }\n\n componentDidLoad() {\n this.setupGesture();\n this.didLoad = true;\n }\n\n connectedCallback() {\n this.updateRatio();\n this.debounceChanged();\n this.disabledChanged();\n this.activeBarStartChanged();\n /**\n * If we have not yet rendered\n * ion-range, then rangeSlider is not defined.\n * But if we are moving ion-range via appendChild,\n * then rangeSlider will be defined.\n */\n\n if (this.didLoad) {\n this.setupGesture();\n }\n\n this.contentEl = findClosestIonContent(this.el);\n }\n\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n\n getValue() {\n const value = this.value || 0;\n\n if (this.dualKnobs) {\n if (typeof value === 'object') {\n return value;\n }\n\n return {\n lower: 0,\n upper: value\n };\n } else {\n if (typeof value === 'object') {\n return value.upper;\n }\n\n return value;\n }\n }\n\n emitStyle() {\n this.ionStyle.emit({\n interactive: true,\n 'interactive-disabled': this.disabled\n });\n }\n\n onStart(detail) {\n const {\n contentEl\n } = this;\n\n if (contentEl) {\n this.initialContentScrollY = disableContentScrollY(contentEl);\n }\n\n const rect = this.rect = this.rangeSlider.getBoundingClientRect();\n const currentX = detail.currentX; // figure out which knob they started closer to\n\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n\n if (isRTL(this.el)) {\n ratio = 1 - ratio;\n }\n\n this.pressedKnob = !this.dualKnobs || Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio) ? 'A' : 'B';\n this.setFocus(this.pressedKnob); // update the active knob's position\n\n this.update(currentX);\n this.ionKnobMoveStart.emit({\n value: this.ensureValueInBounds(this.value)\n });\n }\n\n onMove(detail) {\n this.update(detail.currentX);\n }\n\n onEnd(detail) {\n const {\n contentEl,\n initialContentScrollY\n } = this;\n\n if (contentEl) {\n resetContentScrollY(contentEl, initialContentScrollY);\n }\n\n this.update(detail.currentX);\n this.pressedKnob = undefined;\n this.ionKnobMoveEnd.emit({\n value: this.ensureValueInBounds(this.value)\n });\n }\n\n update(currentX) {\n // figure out where the pointer is currently at\n // update the knob being interacted with\n const rect = this.rect;\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n\n if (isRTL(this.el)) {\n ratio = 1 - ratio;\n }\n\n if (this.snaps) {\n // snaps the ratio to the current value\n ratio = valueToRatio(ratioToValue(ratio, this.min, this.max, this.step), this.min, this.max);\n } // update which knob is pressed\n\n\n if (this.pressedKnob === 'A') {\n this.ratioA = ratio;\n } else {\n this.ratioB = ratio;\n } // Update input value\n\n\n this.updateValue();\n }\n\n get valA() {\n return ratioToValue(this.ratioA, this.min, this.max, this.step);\n }\n\n get valB() {\n return ratioToValue(this.ratioB, this.min, this.max, this.step);\n }\n\n get ratioLower() {\n if (this.dualKnobs) {\n return Math.min(this.ratioA, this.ratioB);\n }\n\n const {\n activeBarStart\n } = this;\n\n if (activeBarStart == null) {\n return 0;\n }\n\n return valueToRatio(activeBarStart, this.min, this.max);\n }\n\n get ratioUpper() {\n if (this.dualKnobs) {\n return Math.max(this.ratioA, this.ratioB);\n }\n\n return this.ratioA;\n }\n\n updateRatio() {\n const value = this.getValue();\n const {\n min,\n max\n } = this;\n\n if (this.dualKnobs) {\n this.ratioA = valueToRatio(value.lower, min, max);\n this.ratioB = valueToRatio(value.upper, min, max);\n } else {\n this.ratioA = valueToRatio(value, min, max);\n }\n }\n\n updateValue() {\n this.noUpdate = true;\n const {\n valA,\n valB\n } = this;\n this.value = !this.dualKnobs ? valA : {\n lower: Math.min(valA, valB),\n upper: Math.max(valA, valB)\n };\n this.noUpdate = false;\n }\n\n setFocus(knob) {\n if (this.el.shadowRoot) {\n const knobEl = this.el.shadowRoot.querySelector(knob === 'A' ? '.range-knob-a' : '.range-knob-b');\n\n if (knobEl) {\n knobEl.focus();\n }\n }\n }\n\n render() {\n var _a;\n\n const {\n min,\n max,\n step,\n el,\n handleKeyboard,\n pressedKnob,\n disabled,\n pin,\n ratioLower,\n ratioUpper,\n inheritedAttributes,\n rangeId,\n pinFormatter\n } = this;\n /**\n * Look for external label, ion-label, or aria-labelledby.\n * If none, see if user placed an aria-label on the host\n * and use that instead.\n */\n\n let {\n labelText\n } = getAriaLabel(el, rangeId);\n\n if (labelText === undefined || labelText === null) {\n labelText = inheritedAttributes['aria-label'];\n }\n\n const mode = getIonMode(this);\n let barStart = `${ratioLower * 100}%`;\n let barEnd = `${100 - ratioUpper * 100}%`;\n const rtl = isRTL(this.el);\n const start = rtl ? 'right' : 'left';\n const end = rtl ? 'left' : 'right';\n\n const tickStyle = tick => {\n return {\n [start]: tick[start]\n };\n };\n\n if (this.dualKnobs === false) {\n /**\n * When the value is less than the activeBarStart or the min value,\n * the knob will display at the start of the active bar.\n */\n if (this.valA < ((_a = this.activeBarStart) !== null && _a !== void 0 ? _a : this.min)) {\n /**\n * Sets the bar positions relative to the upper and lower limits.\n * Converts the ratio values into percentages, used as offsets for left/right styles.\n *\n * The ratioUpper refers to the knob position on the bar.\n * The ratioLower refers to the end position of the active bar (the value).\n */\n barStart = `${ratioUpper * 100}%`;\n barEnd = `${100 - ratioLower * 100}%`;\n } else {\n /**\n * Otherwise, the knob will display at the end of the active bar.\n *\n * The ratioLower refers to the start position of the active bar (the value).\n * The ratioUpper refers to the knob position on the bar.\n */\n barStart = `${ratioLower * 100}%`;\n barEnd = `${100 - ratioUpper * 100}%`;\n }\n }\n\n const barStyle = {\n [start]: barStart,\n [end]: barEnd\n };\n const ticks = [];\n\n if (this.snaps && this.ticks) {\n for (let value = min; value <= max; value += step) {\n const ratio = valueToRatio(value, min, max);\n const ratioMin = Math.min(ratioLower, ratioUpper);\n const ratioMax = Math.max(ratioLower, ratioUpper);\n const tick = {\n ratio,\n\n /**\n * Sets the tick mark as active when the tick is between the min bounds and the knob.\n * When using activeBarStart, the tick mark will be active between the knob and activeBarStart.\n */\n active: ratio >= ratioMin && ratio <= ratioMax\n };\n tick[start] = `${ratio * 100}%`;\n ticks.push(tick);\n }\n }\n\n renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);\n return h(Host, {\n onFocusin: this.onFocus,\n onFocusout: this.onBlur,\n id: rangeId,\n class: createColorClasses(this.color, {\n [mode]: true,\n 'in-item': hostContext('ion-item', el),\n 'range-disabled': disabled,\n 'range-pressed': pressedKnob !== undefined,\n 'range-has-pin': pin\n })\n }, h(\"slot\", {\n name: \"start\"\n }), h(\"div\", {\n class: \"range-slider\",\n ref: rangeEl => this.rangeSlider = rangeEl\n }, ticks.map(tick => h(\"div\", {\n style: tickStyle(tick),\n role: \"presentation\",\n class: {\n 'range-tick': true,\n 'range-tick-active': tick.active\n },\n part: tick.active ? 'tick-active' : 'tick'\n })), h(\"div\", {\n class: \"range-bar\",\n role: \"presentation\",\n part: \"bar\"\n }), h(\"div\", {\n class: \"range-bar range-bar-active\",\n role: \"presentation\",\n style: barStyle,\n part: \"bar-active\"\n }), renderKnob(rtl, {\n knob: 'A',\n pressed: pressedKnob === 'A',\n value: this.valA,\n ratio: this.ratioA,\n pin,\n pinFormatter,\n disabled,\n handleKeyboard,\n min,\n max,\n labelText\n }), this.dualKnobs && renderKnob(rtl, {\n knob: 'B',\n pressed: pressedKnob === 'B',\n value: this.valB,\n ratio: this.ratioB,\n pin,\n pinFormatter,\n disabled,\n handleKeyboard,\n min,\n max,\n labelText\n })), h(\"slot\", {\n name: \"end\"\n }));\n }\n\n get el() {\n return getElement(this);\n }\n\n static get watchers() {\n return {\n \"debounce\": [\"debounceChanged\"],\n \"min\": [\"minChanged\"],\n \"max\": [\"maxChanged\"],\n \"activeBarStart\": [\"activeBarStartChanged\"],\n \"disabled\": [\"disabledChanged\"],\n \"value\": [\"valueChanged\"]\n };\n }\n\n};\n\nconst renderKnob = (rtl, {\n knob,\n value,\n ratio,\n min,\n max,\n disabled,\n pressed,\n pin,\n handleKeyboard,\n labelText,\n pinFormatter\n}) => {\n const start = rtl ? 'right' : 'left';\n\n const knobStyle = () => {\n const style = {};\n style[start] = `${ratio * 100}%`;\n return style;\n };\n\n return h(\"div\", {\n onKeyDown: ev => {\n const key = ev.key;\n\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n handleKeyboard(knob, false);\n ev.preventDefault();\n ev.stopPropagation();\n } else if (key === 'ArrowRight' || key === 'ArrowUp') {\n handleKeyboard(knob, true);\n ev.preventDefault();\n ev.stopPropagation();\n }\n },\n class: {\n 'range-knob-handle': true,\n 'range-knob-a': knob === 'A',\n 'range-knob-b': knob === 'B',\n 'range-knob-pressed': pressed,\n 'range-knob-min': value === min,\n 'range-knob-max': value === max\n },\n style: knobStyle(),\n role: \"slider\",\n tabindex: disabled ? -1 : 0,\n \"aria-label\": labelText,\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-disabled\": disabled ? 'true' : null,\n \"aria-valuenow\": value\n }, pin && h(\"div\", {\n class: \"range-pin\",\n role: \"presentation\",\n part: \"pin\"\n }, pinFormatter(value)), h(\"div\", {\n class: \"range-knob\",\n role: \"presentation\",\n part: \"knob\"\n }));\n};\n\nconst ratioToValue = (ratio, min, max, step) => {\n let value = (max - min) * ratio;\n\n if (step > 0) {\n value = Math.round(value / step) * step + min;\n }\n\n return clamp(min, value, max);\n};\n\nconst valueToRatio = (value, min, max) => {\n return clamp(0, (value - min) / (max - min), 1);\n};\n\nlet rangeIds = 0;\nRange.style = {\n ios: rangeIosCss,\n md: rangeMdCss\n};\nexport { Range as ion_range };","map":{"version":3,"names":["r","registerInstance","e","createEvent","h","H","Host","i","getElement","b","getIonMode","f","findClosestIonContent","d","disableContentScrollY","resetContentScrollY","l","clamp","debounceEvent","inheritAriaAttributes","getAriaLabel","renderHiddenInput","p","printIonWarning","isRTL","c","createColorClasses","hostContext","rangeIosCss","rangeMdCss","Range","constructor","hostRef","ionChange","ionStyle","ionFocus","ionBlur","ionKnobMoveStart","ionKnobMoveEnd","didLoad","noUpdate","hasFocus","inheritedAttributes","contentEl","initialContentScrollY","ratioA","ratioB","debounce","name","dualKnobs","min","max","pin","pinFormatter","value","Math","round","snaps","step","ticks","disabled","clampBounds","ensureValueInBounds","lower","upper","setupGesture","rangeSlider","gesture","createGesture","el","gestureName","gesturePriority","threshold","onStart","ev","onMove","onEnd","enable","handleKeyboard","knob","isIncrease","emit","updateValue","onBlur","emitStyle","onFocus","debounceChanged","minChanged","updateRatio","maxChanged","activeBarStartChanged","activeBarStart","undefined","disabledChanged","valueChanged","componentWillLoad","rangeId","hasAttribute","getAttribute","rangeIds","componentDidLoad","connectedCallback","disconnectedCallback","destroy","getValue","interactive","detail","rect","getBoundingClientRect","currentX","ratio","left","width","pressedKnob","abs","setFocus","update","valueToRatio","ratioToValue","valA","valB","ratioLower","ratioUpper","shadowRoot","knobEl","querySelector","focus","render","_a","labelText","mode","barStart","barEnd","rtl","start","end","tickStyle","tick","barStyle","ratioMin","ratioMax","active","push","JSON","stringify","onFocusin","onFocusout","id","class","color","ref","rangeEl","map","style","role","part","renderKnob","pressed","watchers","knobStyle","onKeyDown","key","preventDefault","stopPropagation","tabindex","ios","md","ion_range"],"sources":["D:/MobileDev/WRB/WrenchBoard2023a/node_modules/@ionic/core/dist/esm/ion-range.entry.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { r as registerInstance, e as createEvent, h, H as Host, i as getElement } from './index-1a99aeb7.js';\nimport { b as getIonMode } from './ionic-global-04e268e7.js';\nimport { f as findClosestIonContent, d as disableContentScrollY, r as resetContentScrollY } from './index-3413f7be.js';\nimport { l as clamp, h as debounceEvent, i as inheritAriaAttributes, d as getAriaLabel, e as renderHiddenInput } from './helpers-4d272360.js';\nimport { p as printIonWarning } from './index-c4b11676.js';\nimport { i as isRTL } from './dir-e8b767a8.js';\nimport { c as createColorClasses, h as hostContext } from './theme-7670341c.js';\n\nconst rangeIosCss = \":host{--knob-handle-size:calc(var(--knob-size) * 2);display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;font-family:var(--ion-font-family, inherit);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}::slotted(ion-icon[slot]){font-size:24px}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:var(--ion-color-base);color:var(--ion-color-contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{left:0;top:calc((var(--height) - var(--knob-handle-size)) / 2);margin-left:calc(0px - var(--knob-handle-size) / 2);position:absolute;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset;right:unset;right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-knob-handle{margin-left:unset;-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2)}}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar{border-radius:var(--bar-border-radius);left:0;top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset;right:unset;right:0}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset}.range-knob{border-radius:var(--knob-border-radius);left:calc(50% - var(--knob-size) / 2);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}:host{--knob-border-radius:50%;--knob-background:#ffffff;--knob-box-shadow:0 3px 1px rgba(0, 0, 0, 0.1), 0 4px 8px rgba(0, 0, 0, 0.13), 0 0 0 1px rgba(0, 0, 0, 0.02);--knob-size:28px;--bar-height:2px;--bar-background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1);--bar-background-active:var(--ion-color-primary, #3880ff);--bar-border-radius:0;--height:42px;padding-left:16px;padding-right:16px;padding-top:8px;padding-bottom:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-tick-active{background:var(--ion-color-base)}::slotted([slot=start]){margin-left:0;margin-right:16px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}}::slotted([slot=end]){margin-left:16px;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}}:host(.range-has-pin){padding-top:20px}.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-tick{margin-left:-1px;border-radius:0;position:absolute;top:18px;width:2px;height:8px;background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1);pointer-events:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-tick{margin-left:unset;-webkit-margin-start:-1px;margin-inline-start:-1px}}.range-tick-active{background:var(--bar-background-active)}.range-pin{-webkit-transform:translate3d(0, 28px, 0) scale(0.01);transform:translate3d(0, 28px, 0) scale(0.01);padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;display:inline-block;position:relative;top:-20px;min-width:28px;-webkit-transition:-webkit-transform 120ms ease;transition:-webkit-transform 120ms ease;transition:transform 120ms ease;transition:transform 120ms ease, -webkit-transform 120ms ease;background:transparent;color:var(--ion-text-color, #000);font-size:12px;text-align:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-pin{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}.range-knob-pressed .range-pin{-webkit-transform:translate3d(0, 0, 0) scale(1);transform:translate3d(0, 0, 0) scale(1)}:host(.range-disabled){opacity:0.5}\";\n\nconst rangeMdCss = \":host{--knob-handle-size:calc(var(--knob-size) * 2);display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;font-family:var(--ion-font-family, inherit);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}::slotted(ion-icon[slot]){font-size:24px}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:var(--ion-color-base);color:var(--ion-color-contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{left:0;top:calc((var(--height) - var(--knob-handle-size)) / 2);margin-left:calc(0px - var(--knob-handle-size) / 2);position:absolute;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset;right:unset;right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-knob-handle{margin-left:unset;-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2)}}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar{border-radius:var(--bar-border-radius);left:0;top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset;right:unset;right:0}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset}.range-knob{border-radius:var(--knob-border-radius);left:calc(50% - var(--knob-size) / 2);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}:host{--knob-border-radius:50%;--knob-background:var(--bar-background-active);--knob-box-shadow:none;--knob-size:18px;--bar-height:2px;--bar-background:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.26);--bar-background-active:var(--ion-color-primary, #3880ff);--bar-border-radius:0;--height:42px;--pin-background:var(--ion-color-primary, #3880ff);--pin-color:var(--ion-color-primary-contrast, #fff);padding-left:14px;padding-right:14px;padding-top:8px;padding-bottom:8px;font-size:12px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px}}:host(.ion-color) .range-bar{background:rgba(var(--ion-color-base-rgb), 0.26)}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-knob,:host(.ion-color) .range-pin,:host(.ion-color) .range-pin::before,:host(.ion-color) .range-tick{background:var(--ion-color-base);color:var(--ion-color-contrast)}::slotted([slot=start]){margin-left:0;margin-right:14px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:14px;margin-inline-end:14px}}::slotted([slot=end]){margin-left:14px;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:14px;margin-inline-start:14px;-webkit-margin-end:0;margin-inline-end:0}}:host(.range-has-pin){padding-top:28px}.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-knob{-webkit-transform:scale(0.67);transform:scale(0.67);-webkit-transition-duration:120ms;transition-duration:120ms;-webkit-transition-property:background-color, border, -webkit-transform;transition-property:background-color, border, -webkit-transform;transition-property:transform, background-color, border;transition-property:transform, background-color, border, -webkit-transform;-webkit-transition-timing-function:ease;transition-timing-function:ease;z-index:2}.range-tick{position:absolute;top:calc((var(--height) - var(--bar-height)) / 2);width:var(--bar-height);height:var(--bar-height);background:var(--bar-background-active);z-index:1;pointer-events:none}.range-tick-active{background:transparent}.range-pin{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:8px;border-radius:50%;-webkit-transform:translate3d(0, 0, 0) scale(0.01);transform:translate3d(0, 0, 0) scale(0.01);display:inline-block;position:relative;min-width:28px;height:28px;-webkit-transition:background 120ms ease, -webkit-transform 120ms ease;transition:background 120ms ease, -webkit-transform 120ms ease;transition:transform 120ms ease, background 120ms ease;transition:transform 120ms ease, background 120ms ease, -webkit-transform 120ms ease;background:var(--pin-background);color:var(--pin-color);text-align:center}.range-pin::before{left:50%;top:3px;margin-left:-13px;border-radius:50% 50% 50% 0;position:absolute;width:26px;height:26px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transition:background 120ms ease;transition:background 120ms ease;background:var(--pin-background);content:\\\"\\\";z-index:-1}[dir=rtl] .range-pin::before,:host-context([dir=rtl]) .range-pin::before{left:unset;right:unset;right:50%}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-pin::before{margin-left:unset;-webkit-margin-start:-13px;margin-inline-start:-13px}}[dir=rtl] .range-pin::before,:host-context([dir=rtl]) .range-pin::before{left:unset}.range-knob-pressed .range-pin{-webkit-transform:translate3d(0, -24px, 0) scale(1);transform:translate3d(0, -24px, 0) scale(1)}:host(:not(.range-has-pin)) .range-knob-pressed .range-knob{-webkit-transform:scale(1);transform:scale(1)}:host(.range-disabled) .range-bar-active,:host(.range-disabled) .range-bar,:host(.range-disabled) .range-tick{background-color:var(--ion-color-step-250, #bfbfbf)}:host(.range-disabled) .range-knob{-webkit-transform:scale(0.55);transform:scale(0.55);outline:5px solid #fff;background-color:var(--ion-color-step-250, #bfbfbf)}\";\n\nconst Range = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.ionKnobMoveStart = createEvent(this, \"ionKnobMoveStart\", 7);\n this.ionKnobMoveEnd = createEvent(this, \"ionKnobMoveEnd\", 7);\n this.didLoad = false;\n this.noUpdate = false;\n this.hasFocus = false;\n this.inheritedAttributes = {};\n this.contentEl = null;\n this.initialContentScrollY = true;\n this.ratioA = 0;\n this.ratioB = 0;\n /**\n * How long, in milliseconds, to wait to trigger the\n * `ionChange` event after each change in the range value.\n * This also impacts form bindings such as `ngModel` or `v-model`.\n */\n this.debounce = 0;\n // TODO: In Ionic Framework v6 this should initialize to this.rangeId like the other form components do.\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = '';\n /**\n * Show two knobs.\n */\n this.dualKnobs = false;\n /**\n * Minimum integer value of the range.\n */\n this.min = 0;\n /**\n * Maximum integer value of the range.\n */\n this.max = 100;\n /**\n * If `true`, a pin with integer value is shown when the knob\n * is pressed.\n */\n this.pin = false;\n /**\n * A callback used to format the pin text.\n * By default the pin text is set to `Math.round(value)`.\n */\n this.pinFormatter = (value) => Math.round(value);\n /**\n * If `true`, the knob snaps to tick marks evenly spaced based\n * on the step property value.\n */\n this.snaps = false;\n /**\n * Specifies the value granularity.\n */\n this.step = 1;\n /**\n * If `true`, tick marks are displayed based on the step value.\n * Only applies when `snaps` is `true`.\n */\n this.ticks = true;\n /**\n * If `true`, the user cannot interact with the range.\n */\n this.disabled = false;\n /**\n * the value of the range.\n */\n this.value = 0;\n this.clampBounds = (value) => {\n return clamp(this.min, value, this.max);\n };\n this.ensureValueInBounds = (value) => {\n if (this.dualKnobs) {\n return {\n lower: this.clampBounds(value.lower),\n upper: this.clampBounds(value.upper),\n };\n }\n else {\n return this.clampBounds(value);\n }\n };\n this.setupGesture = async () => {\n const rangeSlider = this.rangeSlider;\n if (rangeSlider) {\n this.gesture = (await import('./index-3f1a7d95.js')).createGesture({\n el: rangeSlider,\n gestureName: 'range',\n gesturePriority: 100,\n threshold: 0,\n onStart: (ev) => this.onStart(ev),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.gesture.enable(!this.disabled);\n }\n };\n this.handleKeyboard = (knob, isIncrease) => {\n const { ensureValueInBounds } = this;\n let step = this.step;\n step = step > 0 ? step : 1;\n step = step / (this.max - this.min);\n if (!isIncrease) {\n step *= -1;\n }\n if (knob === 'A') {\n this.ratioA = clamp(0, this.ratioA + step, 1);\n }\n else {\n this.ratioB = clamp(0, this.ratioB + step, 1);\n }\n this.ionKnobMoveStart.emit({ value: ensureValueInBounds(this.value) });\n this.updateValue();\n this.ionKnobMoveEnd.emit({ value: ensureValueInBounds(this.value) });\n };\n this.onBlur = () => {\n if (this.hasFocus) {\n this.hasFocus = false;\n this.ionBlur.emit();\n this.emitStyle();\n }\n };\n this.onFocus = () => {\n if (!this.hasFocus) {\n this.hasFocus = true;\n this.ionFocus.emit();\n this.emitStyle();\n }\n };\n }\n debounceChanged() {\n this.ionChange = debounceEvent(this.ionChange, this.debounce);\n }\n minChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n maxChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n activeBarStartChanged() {\n const { activeBarStart } = this;\n if (activeBarStart !== undefined) {\n if (activeBarStart > this.max) {\n printIonWarning(`Range: The value of activeBarStart (${activeBarStart}) is greater than the max (${this.max}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);\n this.activeBarStart = this.max;\n }\n else if (activeBarStart < this.min) {\n printIonWarning(`Range: The value of activeBarStart (${activeBarStart}) is less than the min (${this.min}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);\n this.activeBarStart = this.min;\n }\n }\n }\n disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n this.emitStyle();\n }\n valueChanged(value) {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n value = this.ensureValueInBounds(value);\n this.ionChange.emit({ value });\n }\n componentWillLoad() {\n /**\n * If user has custom ID set then we should\n * not assign the default incrementing ID.\n */\n this.rangeId = this.el.hasAttribute('id') ? this.el.getAttribute('id') : `ion-r-${rangeIds++}`;\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n }\n componentDidLoad() {\n this.setupGesture();\n this.didLoad = true;\n }\n connectedCallback() {\n this.updateRatio();\n this.debounceChanged();\n this.disabledChanged();\n this.activeBarStartChanged();\n /**\n * If we have not yet rendered\n * ion-range, then rangeSlider is not defined.\n * But if we are moving ion-range via appendChild,\n * then rangeSlider will be defined.\n */\n if (this.didLoad) {\n this.setupGesture();\n }\n this.contentEl = findClosestIonContent(this.el);\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n getValue() {\n const value = this.value || 0;\n if (this.dualKnobs) {\n if (typeof value === 'object') {\n return value;\n }\n return {\n lower: 0,\n upper: value,\n };\n }\n else {\n if (typeof value === 'object') {\n return value.upper;\n }\n return value;\n }\n }\n emitStyle() {\n this.ionStyle.emit({\n interactive: true,\n 'interactive-disabled': this.disabled,\n });\n }\n onStart(detail) {\n const { contentEl } = this;\n if (contentEl) {\n this.initialContentScrollY = disableContentScrollY(contentEl);\n }\n const rect = (this.rect = this.rangeSlider.getBoundingClientRect());\n const currentX = detail.currentX;\n // figure out which knob they started closer to\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (isRTL(this.el)) {\n ratio = 1 - ratio;\n }\n this.pressedKnob = !this.dualKnobs || Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio) ? 'A' : 'B';\n this.setFocus(this.pressedKnob);\n // update the active knob's position\n this.update(currentX);\n this.ionKnobMoveStart.emit({ value: this.ensureValueInBounds(this.value) });\n }\n onMove(detail) {\n this.update(detail.currentX);\n }\n onEnd(detail) {\n const { contentEl, initialContentScrollY } = this;\n if (contentEl) {\n resetContentScrollY(contentEl, initialContentScrollY);\n }\n this.update(detail.currentX);\n this.pressedKnob = undefined;\n this.ionKnobMoveEnd.emit({ value: this.ensureValueInBounds(this.value) });\n }\n update(currentX) {\n // figure out where the pointer is currently at\n // update the knob being interacted with\n const rect = this.rect;\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (isRTL(this.el)) {\n ratio = 1 - ratio;\n }\n if (this.snaps) {\n // snaps the ratio to the current value\n ratio = valueToRatio(ratioToValue(ratio, this.min, this.max, this.step), this.min, this.max);\n }\n // update which knob is pressed\n if (this.pressedKnob === 'A') {\n this.ratioA = ratio;\n }\n else {\n this.ratioB = ratio;\n }\n // Update input value\n this.updateValue();\n }\n get valA() {\n return ratioToValue(this.ratioA, this.min, this.max, this.step);\n }\n get valB() {\n return ratioToValue(this.ratioB, this.min, this.max, this.step);\n }\n get ratioLower() {\n if (this.dualKnobs) {\n return Math.min(this.ratioA, this.ratioB);\n }\n const { activeBarStart } = this;\n if (activeBarStart == null) {\n return 0;\n }\n return valueToRatio(activeBarStart, this.min, this.max);\n }\n get ratioUpper() {\n if (this.dualKnobs) {\n return Math.max(this.ratioA, this.ratioB);\n }\n return this.ratioA;\n }\n updateRatio() {\n const value = this.getValue();\n const { min, max } = this;\n if (this.dualKnobs) {\n this.ratioA = valueToRatio(value.lower, min, max);\n this.ratioB = valueToRatio(value.upper, min, max);\n }\n else {\n this.ratioA = valueToRatio(value, min, max);\n }\n }\n updateValue() {\n this.noUpdate = true;\n const { valA, valB } = this;\n this.value = !this.dualKnobs\n ? valA\n : {\n lower: Math.min(valA, valB),\n upper: Math.max(valA, valB),\n };\n this.noUpdate = false;\n }\n setFocus(knob) {\n if (this.el.shadowRoot) {\n const knobEl = this.el.shadowRoot.querySelector(knob === 'A' ? '.range-knob-a' : '.range-knob-b');\n if (knobEl) {\n knobEl.focus();\n }\n }\n }\n render() {\n var _a;\n const { min, max, step, el, handleKeyboard, pressedKnob, disabled, pin, ratioLower, ratioUpper, inheritedAttributes, rangeId, pinFormatter, } = this;\n /**\n * Look for external label, ion-label, or aria-labelledby.\n * If none, see if user placed an aria-label on the host\n * and use that instead.\n */\n let { labelText } = getAriaLabel(el, rangeId);\n if (labelText === undefined || labelText === null) {\n labelText = inheritedAttributes['aria-label'];\n }\n const mode = getIonMode(this);\n let barStart = `${ratioLower * 100}%`;\n let barEnd = `${100 - ratioUpper * 100}%`;\n const rtl = isRTL(this.el);\n const start = rtl ? 'right' : 'left';\n const end = rtl ? 'left' : 'right';\n const tickStyle = (tick) => {\n return {\n [start]: tick[start],\n };\n };\n if (this.dualKnobs === false) {\n /**\n * When the value is less than the activeBarStart or the min value,\n * the knob will display at the start of the active bar.\n */\n if (this.valA < ((_a = this.activeBarStart) !== null && _a !== void 0 ? _a : this.min)) {\n /**\n * Sets the bar positions relative to the upper and lower limits.\n * Converts the ratio values into percentages, used as offsets for left/right styles.\n *\n * The ratioUpper refers to the knob position on the bar.\n * The ratioLower refers to the end position of the active bar (the value).\n */\n barStart = `${ratioUpper * 100}%`;\n barEnd = `${100 - ratioLower * 100}%`;\n }\n else {\n /**\n * Otherwise, the knob will display at the end of the active bar.\n *\n * The ratioLower refers to the start position of the active bar (the value).\n * The ratioUpper refers to the knob position on the bar.\n */\n barStart = `${ratioLower * 100}%`;\n barEnd = `${100 - ratioUpper * 100}%`;\n }\n }\n const barStyle = {\n [start]: barStart,\n [end]: barEnd,\n };\n const ticks = [];\n if (this.snaps && this.ticks) {\n for (let value = min; value <= max; value += step) {\n const ratio = valueToRatio(value, min, max);\n const ratioMin = Math.min(ratioLower, ratioUpper);\n const ratioMax = Math.max(ratioLower, ratioUpper);\n const tick = {\n ratio,\n /**\n * Sets the tick mark as active when the tick is between the min bounds and the knob.\n * When using activeBarStart, the tick mark will be active between the knob and activeBarStart.\n */\n active: ratio >= ratioMin && ratio <= ratioMax,\n };\n tick[start] = `${ratio * 100}%`;\n ticks.push(tick);\n }\n }\n renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);\n return (h(Host, { onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {\n [mode]: true,\n 'in-item': hostContext('ion-item', el),\n 'range-disabled': disabled,\n 'range-pressed': pressedKnob !== undefined,\n 'range-has-pin': pin,\n }) }, h(\"slot\", { name: \"start\" }), h(\"div\", { class: \"range-slider\", ref: (rangeEl) => (this.rangeSlider = rangeEl) }, ticks.map((tick) => (h(\"div\", { style: tickStyle(tick), role: \"presentation\", class: {\n 'range-tick': true,\n 'range-tick-active': tick.active,\n }, part: tick.active ? 'tick-active' : 'tick' }))), h(\"div\", { class: \"range-bar\", role: \"presentation\", part: \"bar\" }), h(\"div\", { class: \"range-bar range-bar-active\", role: \"presentation\", style: barStyle, part: \"bar-active\" }), renderKnob(rtl, {\n knob: 'A',\n pressed: pressedKnob === 'A',\n value: this.valA,\n ratio: this.ratioA,\n pin,\n pinFormatter,\n disabled,\n handleKeyboard,\n min,\n max,\n labelText,\n }), this.dualKnobs &&\n renderKnob(rtl, {\n knob: 'B',\n pressed: pressedKnob === 'B',\n value: this.valB,\n ratio: this.ratioB,\n pin,\n pinFormatter,\n disabled,\n handleKeyboard,\n min,\n max,\n labelText,\n })), h(\"slot\", { name: \"end\" })));\n }\n get el() { return getElement(this); }\n static get watchers() { return {\n \"debounce\": [\"debounceChanged\"],\n \"min\": [\"minChanged\"],\n \"max\": [\"maxChanged\"],\n \"activeBarStart\": [\"activeBarStartChanged\"],\n \"disabled\": [\"disabledChanged\"],\n \"value\": [\"valueChanged\"]\n }; }\n};\nconst renderKnob = (rtl, { knob, value, ratio, min, max, disabled, pressed, pin, handleKeyboard, labelText, pinFormatter }) => {\n const start = rtl ? 'right' : 'left';\n const knobStyle = () => {\n const style = {};\n style[start] = `${ratio * 100}%`;\n return style;\n };\n return (h(\"div\", { onKeyDown: (ev) => {\n const key = ev.key;\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n handleKeyboard(knob, false);\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (key === 'ArrowRight' || key === 'ArrowUp') {\n handleKeyboard(knob, true);\n ev.preventDefault();\n ev.stopPropagation();\n }\n }, class: {\n 'range-knob-handle': true,\n 'range-knob-a': knob === 'A',\n 'range-knob-b': knob === 'B',\n 'range-knob-pressed': pressed,\n 'range-knob-min': value === min,\n 'range-knob-max': value === max,\n }, style: knobStyle(), role: \"slider\", tabindex: disabled ? -1 : 0, \"aria-label\": labelText, \"aria-valuemin\": min, \"aria-valuemax\": max, \"aria-disabled\": disabled ? 'true' : null, \"aria-valuenow\": value }, pin && (h(\"div\", { class: \"range-pin\", role: \"presentation\", part: \"pin\" }, pinFormatter(value))), h(\"div\", { class: \"range-knob\", role: \"presentation\", part: \"knob\" })));\n};\nconst ratioToValue = (ratio, min, max, step) => {\n let value = (max - min) * ratio;\n if (step > 0) {\n value = Math.round(value / step) * step + min;\n }\n return clamp(min, value, max);\n};\nconst valueToRatio = (value, min, max) => {\n return clamp(0, (value - min) / (max - min), 1);\n};\nlet rangeIds = 0;\nRange.style = {\n ios: rangeIosCss,\n md: rangeMdCss\n};\n\nexport { Range as ion_range };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"}