text: "use strict";
  (self["webpackChunkapp"] = self["webpackChunkapp"] || []).push([["node_modules_ionic_core_dist_esm_ion-range_entry_js"],{
  
  /***/ 2140:
  /*!**************************************************************!*\
    !*** ./node_modules/@ionic/core/dist/esm/ion-range.entry.js ***!
    \**************************************************************/
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  
  __webpack_require__.r(__webpack_exports__);
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  /* harmony export */   "ion_range": () => (/* binding */ Range)
  /* harmony export */ });
  /* harmony import */ var _home_vitor_Documentos_app_mobilie_clientes_produtos_app_clientes_produtos_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator */ 2783);
  /* harmony import */ var _index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index-06cd27b1.js */ 7781);
  /* harmony import */ var _ionic_global_a049bcbf_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ionic-global-a049bcbf.js */ 8420);
  /* harmony import */ var _helpers_6e1e5b65_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers-6e1e5b65.js */ 7074);
  /* harmony import */ var _dir_e8b767a8_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dir-e8b767a8.js */ 5862);
  /* harmony import */ var _theme_a24ff1ad_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./theme-a24ff1ad.js */ 7051);
  
  
  /*!
   * (C) Ionic http://ionicframework.com - MIT License
   */
  
  
  
  
  
  const 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}";
  const 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)}";
  let Range = class {
    constructor(hostRef) {
      var _this = this;
  
      (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.r)(this, hostRef);
      this.ionChange = (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.e)(this, "ionChange", 7);
      this.ionStyle = (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.e)(this, "ionStyle", 7);
      this.ionFocus = (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.e)(this, "ionFocus", 7);
      this.ionBlur = (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.e)(this, "ionBlur", 7);
      this.didLoad = false;
      this.noUpdate = false;
      this.hasFocus = false;
      this.inheritedAttributes = {};
      this.ratioA = 0;
      this.ratioB = 0;
      /**
       * How long, in milliseconds, to wait to trigger the
       * `ionChange` event after each change in the range value.
       * This also impacts form bindings such as `ngModel` or `v-model`.
       */
  
      this.debounce = 0; // TODO: In Ionic Framework v6 this should initialize to this.rangeId like the other form components do.
  
      /**
       * The name of the control, which is submitted with the form data.
       */
  
      this.name = '';
      /**
       * Show two knobs.
       */
  
      this.dualKnobs = false;
      /**
       * Minimum integer value of the range.
       */
  
      this.min = 0;
      /**
       * Maximum integer value of the range.
       */
  
      this.max = 100;
      /**
       * If `true`, a pin with integer value is shown when the knob
       * is pressed.
       */
  
      this.pin = false;
      /**
       * A callback used to format the pin text.
       * By default the pin text is set to `Math.round(value)`.
       */
  
      this.pinFormatter = value => Math.round(value);
      /**
       * If `true`, the knob snaps to tick marks evenly spaced based
       * on the step property value.
       */
  
  
      this.snaps = false;
      /**
       * Specifies the value granularity.
       */
  
      this.step = 1;
      /**
       * If `true`, tick marks are displayed based on the step value.
       * Only applies when `snaps` is `true`.
       */
  
      this.ticks = true;
      /**
       * If `true`, the user cannot interact with the range.
       */
  
      this.disabled = false;
      /**
       * the value of the range.
       */
  
      this.value = 0;
  
      this.clampBounds = value => {
        return (0,_helpers_6e1e5b65_js__WEBPACK_IMPORTED_MODULE_3__.k)(this.min, value, this.max);
      };
  
      this.ensureValueInBounds = value => {
        if (this.dualKnobs) {
          return {
            lower: this.clampBounds(value.lower),
            upper: this.clampBounds(value.upper)
          };
        } else {
          return this.clampBounds(value);
        }
      };
  
      this.setupGesture = /*#__PURE__*/(0,_home_vitor_Documentos_app_mobilie_clientes_produtos_app_clientes_produtos_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])(function* () {
        const rangeSlider = _this.rangeSlider;
  
        if (rangeSlider) {
          _this.gesture = (yield Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./index-41bf41f2.js */ 4506))).createGesture({
            el: rangeSlider,
            gestureName: 'range',
            gesturePriority: 100,
            threshold: 0,
            onStart: ev => _this.onStart(ev),
            onMove: ev => _this.onMove(ev),
            onEnd: ev => _this.onEnd(ev)
          });
  
          _this.gesture.enable(!_this.disabled);
        }
      });
  
      this.handleKeyboard = (knob, isIncrease) => {
        let step = this.step;
        step = step > 0 ? step : 1;
        step = step / (this.max - this.min);
  
        if (!isIncrease) {
          step *= -1;
        }
  
        if (knob === 'A') {
          this.ratioA = (0,_helpers_6e1e5b65_js__WEBPACK_IMPORTED_MODULE_3__.k)(0, this.ratioA + step, 1);
        } else {
          this.ratioB = (0,_helpers_6e1e5b65_js__WEBPACK_IMPORTED_MODULE_3__.k)(0, this.ratioB + step, 1);
        }
  
        this.updateValue();
      };
  
      this.onBlur = () => {
        if (this.hasFocus) {
          this.hasFocus = false;
          this.ionBlur.emit();
          this.emitStyle();
        }
      };
  
      this.onFocus = () => {
        if (!this.hasFocus) {
          this.hasFocus = true;
          this.ionFocus.emit();
          this.emitStyle();
        }
      };
    }
  
    debounceChanged() {
      this.ionChange = (0,_helpers_6e1e5b65_js__WEBPACK_IMPORTED_MODULE_3__.h)(this.ionChange, this.debounce);
    }
  
    minChanged() {
      if (!this.noUpdate) {
        this.updateRatio();
      }
    }
  
    maxChanged() {
      if (!this.noUpdate) {
        this.updateRatio();
      }
    }
  
    disabledChanged() {
      if (this.gesture) {
        this.gesture.enable(!this.disabled);
      }
  
      this.emitStyle();
    }
  
    valueChanged(value) {
      if (!this.noUpdate) {
        this.updateRatio();
      }
  
      value = this.ensureValueInBounds(value);
      this.ionChange.emit({
        value
      });
    }
  
    componentWillLoad() {
      /**
       * If user has custom ID set then we should
       * not assign the default incrementing ID.
       */
      this.rangeId = this.el.hasAttribute('id') ? this.el.getAttribute('id') : `ion-r-${rangeIds++}`;
      this.inheritedAttributes = (0,_helpers_6e1e5b65_js__WEBPACK_IMPORTED_MODULE_3__.i)(this.el, ['aria-label']);
    }
  
    componentDidLoad() {
      this.setupGesture();
      this.didLoad = true;
    }
  
    connectedCallback() {
      this.updateRatio();
      this.debounceChanged();
      this.disabledChanged();
      /**
       * If we have not yet rendered
       * ion-range, then rangeSlider is not defined.
       * But if we are moving ion-range via appendChild,
       * then rangeSlider will be defined.
       */
  
      if (this.didLoad) {
        this.setupGesture();
      }
    }
  
    disconnectedCallback() {
      if (this.gesture) {
        this.gesture.destroy();
        this.gesture = undefined;
      }
    }
  
    getValue() {
      const value = this.value || 0;
  
      if (this.dualKnobs) {
        if (typeof value === 'object') {
          return value;
        }
  
        return {
          lower: 0,
          upper: value
        };
      } else {
        if (typeof value === 'object') {
          return value.upper;
        }
  
        return value;
      }
    }
  
    emitStyle() {
      this.ionStyle.emit({
        'interactive': true,
        'interactive-disabled': this.disabled
      });
    }
  
    onStart(detail) {
      const rect = this.rect = this.rangeSlider.getBoundingClientRect();
      const currentX = detail.currentX; // figure out which knob they started closer to
  
      let ratio = (0,_helpers_6e1e5b65_js__WEBPACK_IMPORTED_MODULE_3__.k)(0, (currentX - rect.left) / rect.width, 1);
  
      if ((0,_dir_e8b767a8_js__WEBPACK_IMPORTED_MODULE_4__.i)(this.el)) {
        ratio = 1 - ratio;
      }
  
      this.pressedKnob = !this.dualKnobs || Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio) ? 'A' : 'B';
      this.setFocus(this.pressedKnob); // update the active knob's position
  
      this.update(currentX);
    }
  
    onMove(detail) {
      this.update(detail.currentX);
    }
  
    onEnd(detail) {
      this.update(detail.currentX);
      this.pressedKnob = undefined;
    }
  
    update(currentX) {
      // figure out where the pointer is currently at
      // update the knob being interacted with
      const rect = this.rect;
      let ratio = (0,_helpers_6e1e5b65_js__WEBPACK_IMPORTED_MODULE_3__.k)(0, (currentX - rect.left) / rect.width, 1);
  
      if ((0,_dir_e8b767a8_js__WEBPACK_IMPORTED_MODULE_4__.i)(this.el)) {
        ratio = 1 - ratio;
      }
  
      if (this.snaps) {
        // snaps the ratio to the current value
        ratio = valueToRatio(ratioToValue(ratio, this.min, this.max, this.step), this.min, this.max);
      } // update which knob is pressed
  
  
      if (this.pressedKnob === 'A') {
        this.ratioA = ratio;
      } else {
        this.ratioB = ratio;
      } // Update input value
  
  
      this.updateValue();
    }
  
    get valA() {
      return ratioToValue(this.ratioA, this.min, this.max, this.step);
    }
  
    get valB() {
      return ratioToValue(this.ratioB, this.min, this.max, this.step);
    }
  
    get ratioLower() {
      if (this.dualKnobs) {
        return Math.min(this.ratioA, this.ratioB);
      }
  
      return 0;
    }
  
    get ratioUpper() {
      if (this.dualKnobs) {
        return Math.max(this.ratioA, this.ratioB);
      }
  
      return this.ratioA;
    }
  
    updateRatio() {
      const value = this.getValue();
      const {
        min,
        max
      } = this;
  
      if (this.dualKnobs) {
        this.ratioA = valueToRatio(value.lower, min, max);
        this.ratioB = valueToRatio(value.upper, min, max);
      } else {
        this.ratioA = valueToRatio(value, min, max);
      }
    }
  
    updateValue() {
      this.noUpdate = true;
      const {
        valA,
        valB
      } = this;
      this.value = !this.dualKnobs ? valA : {
        lower: Math.min(valA, valB),
        upper: Math.max(valA, valB)
      };
      this.noUpdate = false;
    }
  
    setFocus(knob) {
      if (this.el.shadowRoot) {
        const knobEl = this.el.shadowRoot.querySelector(knob === 'A' ? '.range-knob-a' : '.range-knob-b');
  
        if (knobEl) {
          knobEl.focus();
        }
      }
    }
  
    render() {
      const {
        min,
        max,
        step,
        el,
        handleKeyboard,
        pressedKnob,
        disabled,
        pin,
        ratioLower,
        ratioUpper,
        inheritedAttributes,
        rangeId,
        pinFormatter
      } = this;
      /**
       * Look for external label, ion-label, or aria-labelledby.
       * If none, see if user placed an aria-label on the host
       * and use that instead.
       */
  
      let {
        labelText
      } = (0,_helpers_6e1e5b65_js__WEBPACK_IMPORTED_MODULE_3__.d)(el, rangeId);
  
      if (labelText === undefined || labelText === null) {
        labelText = inheritedAttributes['aria-label'];
      }
  
      const mode = (0,_ionic_global_a049bcbf_js__WEBPACK_IMPORTED_MODULE_2__.b)(this);
      const barStart = `${ratioLower * 100}%`;
      const barEnd = `${100 - ratioUpper * 100}%`;
      const rtl = (0,_dir_e8b767a8_js__WEBPACK_IMPORTED_MODULE_4__.i)(this.el);
      const start = rtl ? 'right' : 'left';
      const end = rtl ? 'left' : 'right';
  
      const tickStyle = tick => {
        return {
          [start]: tick[start]
        };
      };
  
      const barStyle = {
        [start]: barStart,
        [end]: barEnd
      };
      const ticks = [];
  
      if (this.snaps && this.ticks) {
        for (let value = min; value <= max; value += step) {
          const ratio = valueToRatio(value, min, max);
          const tick = {
            ratio,
            active: ratio >= ratioLower && ratio <= ratioUpper
          };
          tick[start] = `${ratio * 100}%`;
          ticks.push(tick);
        }
      }
  
      (0,_helpers_6e1e5b65_js__WEBPACK_IMPORTED_MODULE_3__.e)(true, el, this.name, JSON.stringify(this.getValue()), disabled);
      return (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.h)(_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.H, {
        onFocusin: this.onFocus,
        onFocusout: this.onBlur,
        id: rangeId,
        class: (0,_theme_a24ff1ad_js__WEBPACK_IMPORTED_MODULE_5__.c)(this.color, {
          [mode]: true,
          'in-item': (0,_theme_a24ff1ad_js__WEBPACK_IMPORTED_MODULE_5__.h)('ion-item', el),
          'range-disabled': disabled,
          'range-pressed': pressedKnob !== undefined,
          'range-has-pin': pin
        })
      }, (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.h)("slot", {
        name: "start"
      }), (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.h)("div", {
        class: "range-slider",
        ref: rangeEl => this.rangeSlider = rangeEl
      }, ticks.map(tick => (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.h)("div", {
        style: tickStyle(tick),
        role: "presentation",
        class: {
          'range-tick': true,
          'range-tick-active': tick.active
        },
        part: tick.active ? 'tick-active' : 'tick'
      })), (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.h)("div", {
        class: "range-bar",
        role: "presentation",
        part: "bar"
      }), (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.h)("div", {
        class: "range-bar range-bar-active",
        role: "presentation",
        style: barStyle,
        part: "bar-active"
      }), renderKnob(rtl, {
        knob: 'A',
        pressed: pressedKnob === 'A',
        value: this.valA,
        ratio: this.ratioA,
        pin,
        pinFormatter,
        disabled,
        handleKeyboard,
        min,
        max,
        labelText
      }), this.dualKnobs && renderKnob(rtl, {
        knob: 'B',
        pressed: pressedKnob === 'B',
        value: this.valB,
        ratio: this.ratioB,
        pin,
        pinFormatter,
        disabled,
        handleKeyboard,
        min,
        max,
        labelText
      })), (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.h)("slot", {
        name: "end"
      }));
    }
  
    get el() {
      return (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.i)(this);
    }
  
    static get watchers() {
      return {
        "debounce": ["debounceChanged"],
        "min": ["minChanged"],
        "max": ["maxChanged"],
        "disabled": ["disabledChanged"],
        "value": ["valueChanged"]
      };
    }
  
  };
  
  const renderKnob = (rtl, {
    knob,
    value,
    ratio,
    min,
    max,
    disabled,
    pressed,
    pin,
    handleKeyboard,
    labelText,
    pinFormatter
  }) => {
    const start = rtl ? 'right' : 'left';
  
    const knobStyle = () => {
      const style = {};
      style[start] = `${ratio * 100}%`;
      return style;
    };
  
    return (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.h)("div", {
      onKeyDown: ev => {
        const key = ev.key;
  
        if (key === 'ArrowLeft' || key === 'ArrowDown') {
          handleKeyboard(knob, false);
          ev.preventDefault();
          ev.stopPropagation();
        } else if (key === 'ArrowRight' || key === 'ArrowUp') {
          handleKeyboard(knob, true);
          ev.preventDefault();
          ev.stopPropagation();
        }
      },
      class: {
        'range-knob-handle': true,
        'range-knob-a': knob === 'A',
        'range-knob-b': knob === 'B',
        'range-knob-pressed': pressed,
        'range-knob-min': value === min,
        'range-knob-max': value === max
      },
      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 && (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.h)("div", {
      class: "range-pin",
      role: "presentation",
      part: "pin"
    }, pinFormatter(value)), (0,_index_06cd27b1_js__WEBPACK_IMPORTED_MODULE_1__.h)("div", {
      class: "range-knob",
      role: "presentation",
      part: "knob"
    }));
  };
  
  const ratioToValue = (ratio, min, max, step) => {
    let value = (max - min) * ratio;
  
    if (step > 0) {
      value = Math.round(value / step) * step + min;
    }
  
    return (0,_helpers_6e1e5b65_js__WEBPACK_IMPORTED_MODULE_3__.k)(min, value, max);
  };
  
  const valueToRatio = (value, min, max) => {
    return (0,_helpers_6e1e5b65_js__WEBPACK_IMPORTED_MODULE_3__.k)(0, (value - min) / (max - min), 1);
  };
  
  let rangeIds = 0;
  Range.style = {
    ios: rangeIosCss,
    md: rangeMdCss
  };
  
  
  /***/ })
  
  }]);
  //# sourceMappingURL=node_modules_ionic_core_dist_esm_ion-range_entry_js.js.map