var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { Component, Element, Host, h, Prop, State, Watch, Event } from '@stencil/core';
import { ComponentLoadRequired } from '../../decorators/method-decorators/component-load-required';
import { TimeRequiredRule } from '../../helpers/validator/rules/time-required-rule';
import { sanitizeVegaComponent } from '../../utils/component';
import { InjectVegaGlobalSlimmer, InjectVegaSlimmer, methodPlaceholder, } from 'vega-slimmer/core';
import { FormFieldControllerSlimmer } from '../../helpers/slimmers/form-field-controller-slimmer';
import { VegaTimePickerLabelRenderer } from './slimmers/renderers/vega-time-picker-label-renderer';
import { VegaTimePickerSingleInputRenderer } from './slimmers/renderers/vega-time-picker-single-input-renderer';
import { VegaTimePickerSingleDropdownRenderer } from './slimmers/renderers/vega-time-picker-single-dropdown-renderer';
import { VegaTimePickerValueController } from './slimmers/controllers/vega-time-picker-value-controller';
import { VegaTimePickerSingleDropdownController } from './slimmers/controllers/vega-time-picker-single-dropdown-controller';
import { VegaTimePickerDropdownSelectedItemsController } from './slimmers/controllers/vega-time-picker-dropdown-selected-items-controller';
import { VegaTimePickerKeyboardController } from './slimmers/controllers/vega-time-picker-keyboard-controller';
import { VegaTimePickerRangeInputRenderer } from './slimmers/renderers/vega-time-picker-range-input-renderer';
import { VegaTimePickerRangeDropdownRenderer } from './slimmers/renderers/vega-time-picker-range-dropdown-renderer';
import { VegaTimePickerRangeClearButtonRenderer } from './slimmers/renderers/vega-time-picker-range-clear-button-renderer';
import { TimeRangeRule } from '../../helpers/validator/rules/time-range-rule';
import { VegaTimePickerInputMaskController } from './slimmers/controllers/vega-time-picker-input-mask-controller';
import { VegaTimePickerRangeDropdownController } from './slimmers/controllers/vega-time-picker-range-dropdown-controller';
import { TimeRangeRequiredRule } from '../../helpers/validator/rules/time-range-required-rule';
import { ChildNodesEventPreventSlimmer } from '../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer';
import { VegaChange } from '../../helpers/event-manager/event-id/vega-event-id';
import { getDeviceType } from '../../utils/ui';
import { DeviceType } from '../../types/ui.type';
import { createEventEmitSlimmer, } from '../../helpers/event-manager/slimmers/event-emit-slimmer';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
import { VegaTimePickerRuntimeMetricsPayloadDefinition } from '../../constants/runtime-metrics-payload-definition/vega-time-picker/runtime-metrics-payload-definition';
import { TranslationSlimmer } from '../../helpers/slimmers/translation';
/**
 * @vegaVersion 1.12.0
 */
export class VegaTimePicker {
  constructor() {
    this.globalSlimmers = {};
    this.translationSlimmer = new TranslationSlimmer();
    this.labelRenderer = new VegaTimePickerLabelRenderer();
    this.singleInputRenderer = new VegaTimePickerSingleInputRenderer();
    this.singleDropdownRenderer = new VegaTimePickerSingleDropdownRenderer();
    this.valueController = new VegaTimePickerValueController();
    this.singleDropdownController = new VegaTimePickerSingleDropdownController();
    this.dropdownSelectedItemsController = new VegaTimePickerDropdownSelectedItemsController();
    this.keyboardController = new VegaTimePickerKeyboardController();
    this.formFieldController = new FormFieldControllerSlimmer({
      propertyRules: [
        {
          propertyName: 'required',
          ruleFactory: (isRequired, timeFormat, mode) => isRequired
            ? mode === 'range'
              ? new TimeRangeRequiredRule({ timeFormat })
              : new TimeRequiredRule({ timeFormat })
            : null,
          dependence: ['timeFormat', 'mode'],
        },
        {
          propertyName: 'timeFormat',
          ruleFactory: (timeFormat, required, mode) => timeFormat && required
            ? mode === 'range'
              ? new TimeRangeRequiredRule({ timeFormat })
              : new TimeRequiredRule({ timeFormat })
            : null,
          dependence: ['required', 'mode'],
        },
        {
          propertyName: 'mode',
          ruleFactory: (mode, timeFormat) => mode === 'range' ? new TimeRangeRule({ timeFormat }) : null,
          dependence: 'timeFormat',
        },
      ],
      validationRulesName: 'validationRules',
      defaultValue: (target) => (target.mode === 'range' ? ['', ''] : ''),
      attributeGetter: (propertyName) => this[propertyName],
      inputContainerGetter: () => this.inputContainerRef,
      touchableAreaGetter: () => this.mode === 'single'
        ? [this.singleInputRenderer.getInputRef()]
        : [this.rangeInputRenderer.getStartInputRef(), this.rangeInputRenderer.getEndInputRef()],
    });
    this.rangeInputRenderer = new VegaTimePickerRangeInputRenderer();
    this.rangeClearButtonRenderer = new VegaTimePickerRangeClearButtonRenderer();
    this.rangeDropdownRenderer = new VegaTimePickerRangeDropdownRenderer();
    this.startDropdownController = new VegaTimePickerRangeDropdownController('start');
    this.endDropdownController = new VegaTimePickerRangeDropdownController('end');
    this.inputMaskController = new VegaTimePickerInputMaskController();
    this.inputEventPrevent = new ChildNodesEventPreventSlimmer([VegaChange], () => this.inputContainerRef);
    this.changeEventEmitter = createEventEmitSlimmer(VegaTimePicker, VegaChange);
    this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer(VegaTimePickerRuntimeMetricsPayloadDefinition);
    this.isMobileDevice = getDeviceType() === DeviceType.MOBILE;
    this.isTabletDevice = getDeviceType() === DeviceType.TABLET;
    /** dropdown source */
    this.dropdownSource = {
      hours: [],
      minutes: [],
    };
    /* Selected hour, minute and amPm */
    this.isDropdownShow = false;
    this.selectedTimeValue = {};
    /**
     * Specifies the mode for selecting time in the time picker.
     *
     *  - `single` indicates the ability to select a single time.
     *  - `range` indicates the ability to select a time range.
     *
     * @vegaVersion 1.48.0
     */
    this.mode = 'single';
    /**
     * Specifies whether selecting a time in the time picker
     *    is required for passing form validation.
     *
     * @vegaVersion 1.12.0
     */
    this.required = false;
    /**
     * Determines the interval between each selectable minute value
     *    in the time picker.
     *
     * @vegaVersion 1.12.0
     */
    this.increments = 1;
    /**
     * Specifies the format in which the time is displayed
     *    in the time picker.
     *  - `24-hour` displays time as "HH:mm".
     *  - `12-hour` displays time as "hh:mm a".
     *
     * @vegaVersion 1.12.0
     */
    this.timeFormat = '24-hour';
    /**
     * Specifies the initial value or selected time
     *    for the time picker.
     * - In `single` mode, the value is a string:
     *  - `24-hour` format: "HH:mm".
     *  - `12-hour` format: "hh:mm a".
     * - In `range` mode, the value is an array of two strings:
     *  - `24-hour` format: ["HH:mm", "HH:mm"].
     *  - `12-hour` format: ["hh:mm a", "hh:mm a"]
     *
     * @vegaVersion 1.12.0
     */
    /* eslint-disable-next-line @stencil/strict-mutable */
    this.value = this.mode === 'range' ? ['', ''] : '';
    /**
     * Determines the size or dimensions of the time picker component.
     *
     * @vegaVersion 1.12.0
     */
    this.size = 'default';
    /**
     * Determines whether the time picker component is disabled.
     *
     * @vegaVersion 1.12.0
     */
    this.disabled = false;
    /**
     * Specifies whether the time picker field is set to read-only.
     *
     * When set to `true`, prevents manual keyboard text entry in the input field on
     *    all platforms. On touch devices, this typically suppresses the virtual keyboard.
     *    This does not lock the component value; users can still select/update time via
     *    the dropdown UI (and programmatic updates still work).
     *
     * @default false
     * @vegaVersion 2.79.0
     */
    this.readOnly = false;
    /**
     * Controls whether a clear (✕) icon button is displayed inside the time
     * picker input when the field has a non-empty value.
     *
     * When `true`, clicking the clear icon resets the time picker value to an
     * empty value (or `['', '']` in `range` mode) and emits a `vegaChange`
     * event. Set to `false` to hide the clear icon (e.g., for time pickers
     * where clearing is not desired).
     *
     * The clear icon is also hidden when the component is `disabled`.
     *
     * When the component is `readOnly`, the clear icon remains visible by
     * design: read-only only suppresses manual keyboard text entry, while
     * users can still update the value via the dropdown UI, so clearing the
     * selected value is still a valid interaction.
     *
     * @default true
     * @vegaVersion __VEGA_VERSION__
     */
    this.showClearIcon = true;
    /**
     * Specifies the validation status of the time picker component.
     *
     * @vegaVersion 1.12.0
     */
    /* eslint-disable-next-line @stencil/strict-mutable */
    this.isValid = null;
    /**
     * Determines whether automatic validation should be implemented
     *    for the time picker during user input.
     *
     * @vegaVersion 1.12.0
     */
    this.autoValidation = true;
    /**
     * Specifies custom validation rules for the
     *    time picker input field.
     *
     * @vegaVersion 1.12.0
     */
    this.validationRules = [];
  }
  /**
   * The below method is e2e-test covered in
   * @see{module:vega-time-picker-keyboard-control-e2e}
   */
  /* istanbul ignore next */
  async watchIsDropdownShow(newValue) {
    methodPlaceholder(newValue);
  }
  watchSelectedTimeValue() {
    methodPlaceholder();
  }
  /*
   * The below method is e2e-test covered in
   * @see{module:vega-time-picker-mode-change}
   */
  /* istanbul ignore next */
  /** Update timePicker settings property of mode is changed */
  watchMode() {
    methodPlaceholder();
  }
  watchIncrements() {
    methodPlaceholder();
  }
  watchTimeFormat() {
    methodPlaceholder();
  }
  watchValue(newValue, oldValue) {
    methodPlaceholder(newValue, oldValue);
  }
  watchDisabled() {
    methodPlaceholder();
  }
  watchValidationRules() {
    methodPlaceholder();
  }
  componentWillLoad() {
    methodPlaceholder();
  }
  componentDidLoad() {
    methodPlaceholder();
  }
  componentDidRender() {
    methodPlaceholder();
  }
  render() {
    const isRangeMode = this.mode === 'range';
    return sanitizeVegaComponent(h(Host, { class: {
        disabled: this.disabled,
      } },
      this.labelRenderer.render(),
      h("div", { class: this.getTimePickerClass(isRangeMode), ref: (node) => (this.inputContainerRef = node) }, isRangeMode ? this.rangeInputRenderer.render() : this.singleInputRenderer.render()),
      isRangeMode ? this.rangeDropdownRenderer.render() : this.singleDropdownRenderer.render()), this.host);
  }
  getTimePickerClass(isRangeMode) {
    return {
      'vega-time-picker-input-container': true,
      'range-mode': isRangeMode,
      'mobile': isRangeMode && this.isMobileDevice,
      'tablet': isRangeMode && this.isTabletDevice,
    };
  }
  static get is() { return "vega-time-picker"; }
  static get encapsulation() { return "shadow"; }
  static get originalStyleUrls() { return {
    "$": ["vega-time-picker.scss"]
  }; }
  static get styleUrls() { return {
    "$": ["vega-time-picker.css"]
  }; }
  static get properties() { return {
    "label": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "Specifies the label or title for the time picker.\n\nIt provides descriptive text that helps identify the\n   purpose or content expected in the time picker."
      },
      "attribute": "label",
      "reflect": false
    },
    "mode": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "TimePickerModeType",
        "resolved": "\"range\" | \"single\"",
        "references": {
          "TimePickerModeType": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.48.0"
          }],
        "text": "Specifies the mode for selecting time in the time picker.\n\n - `single` indicates the ability to select a single time.\n - `range` indicates the ability to select a time range."
      },
      "attribute": "mode",
      "reflect": false,
      "defaultValue": "'single'"
    },
    "required": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "Specifies whether selecting a time in the time picker\n   is required for passing form validation."
      },
      "attribute": "required",
      "reflect": true,
      "defaultValue": "false"
    },
    "placeholder": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string | string[]",
        "resolved": "string | string[]",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "Specifies placeholder strings that provide a temporary hint\n   or example inside the time input field."
      },
      "attribute": "placeholder",
      "reflect": false
    },
    "increments": {
      "type": "number",
      "mutable": false,
      "complexType": {
        "original": "number",
        "resolved": "number",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "Determines the interval between each selectable minute value\n   in the time picker."
      },
      "attribute": "increments",
      "reflect": false,
      "defaultValue": "1"
    },
    "timeFormat": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "TimeFormat",
        "resolved": "\"12-hour\" | \"24-hour\"",
        "references": {
          "TimeFormat": {
            "location": "import",
            "path": "../../types/general"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "Specifies the format in which the time is displayed\n   in the time picker.\n - `24-hour` displays time as \"HH:mm\".\n - `12-hour` displays time as \"hh:mm a\"."
      },
      "attribute": "time-format",
      "reflect": true,
      "defaultValue": "'24-hour'"
    },
    "value": {
      "type": "string",
      "mutable": true,
      "complexType": {
        "original": "TimePickerValueType<TimePickerModeType>",
        "resolved": "[string, string] | string",
        "references": {
          "TimePickerValueType": {
            "location": "import",
            "path": "./types"
          },
          "TimePickerModeType": {
            "location": "import",
            "path": "./types"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "Specifies the initial value or selected time\n   for the time picker.\n- In `single` mode, the value is a string:\n - `24-hour` format: \"HH:mm\".\n - `12-hour` format: \"hh:mm a\".\n- In `range` mode, the value is an array of two strings:\n - `24-hour` format: [\"HH:mm\", \"HH:mm\"].\n - `12-hour` format: [\"hh:mm a\", \"hh:mm a\"]"
      },
      "attribute": "value",
      "reflect": true,
      "defaultValue": "this.mode === 'range' ? ['', ''] : ''"
    },
    "size": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "'default' | 'small'",
        "resolved": "\"default\" | \"small\"",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "Determines the size or dimensions of the time picker component."
      },
      "attribute": "size",
      "reflect": false,
      "defaultValue": "'default'"
    },
    "disabled": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "Determines whether the time picker component is disabled."
      },
      "attribute": "disabled",
      "reflect": true,
      "defaultValue": "false"
    },
    "readOnly": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "default",
            "text": "false"
          }, {
            "name": "vegaVersion",
            "text": "2.79.0"
          }],
        "text": "Specifies whether the time picker field is set to read-only.\n\nWhen set to `true`, prevents manual keyboard text entry in the input field on\n   all platforms. On touch devices, this typically suppresses the virtual keyboard.\n   This does not lock the component value; users can still select/update time via\n   the dropdown UI (and programmatic updates still work)."
      },
      "attribute": "read-only",
      "reflect": false,
      "defaultValue": "false"
    },
    "showClearIcon": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "default",
            "text": "true"
          }, {
            "name": "vegaVersion",
            "text": "__VEGA_VERSION__"
          }],
        "text": "Controls whether a clear (\u2715) icon button is displayed inside the time\npicker input when the field has a non-empty value.\n\nWhen `true`, clicking the clear icon resets the time picker value to an\nempty value (or `['', '']` in `range` mode) and emits a `vegaChange`\nevent. Set to `false` to hide the clear icon (e.g., for time pickers\nwhere clearing is not desired).\n\nThe clear icon is also hidden when the component is `disabled`.\n\nWhen the component is `readOnly`, the clear icon remains visible by\ndesign: read-only only suppresses manual keyboard text entry, while\nusers can still update the value via the dropdown UI, so clearing the\nselected value is still a valid interaction."
      },
      "attribute": "show-clear-icon",
      "reflect": false,
      "defaultValue": "true"
    },
    "isValid": {
      "type": "boolean",
      "mutable": true,
      "complexType": {
        "original": "boolean | null",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "Specifies the validation status of the time picker component."
      },
      "attribute": "is-valid",
      "reflect": true,
      "defaultValue": "null"
    },
    "autoValidation": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "Determines whether automatic validation should be implemented\n   for the time picker during user input."
      },
      "attribute": "auto-validation",
      "reflect": true,
      "defaultValue": "true"
    },
    "validationRules": {
      "type": "unknown",
      "mutable": false,
      "complexType": {
        "original": "FormFieldValidationRule<unknown>[]",
        "resolved": "FormFieldValidationRule<unknown>[]",
        "references": {
          "FormFieldValidationRule": {
            "location": "import",
            "path": "../../helpers/validator/rules/form-field-validation-rule"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "Specifies custom validation rules for the\n   time picker input field."
      },
      "defaultValue": "[]"
    },
    "positionRelativeTo": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "VegaWarning",
            "text": "The value of this property should be an element that is\nthe parent of this component or an ancestor of the parent element.\nUsing any other element may lead to unexpected behavior."
          }, {
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "Specifies the selector of the container element relative to which\n   the popup of the time picker will be positioned.\n\nIf not provided, the popup will be appended to\n   the body by default. Adjust this property\n   when facing scrolling positioning problems."
      },
      "attribute": "position-relative-to",
      "reflect": false
    }
  }; }
  static get states() { return {
    "dropdownSource": {},
    "isDropdownShow": {},
    "selectedTimeValue": {}
  }; }
  static get events() { return [{
      "method": "vegaChange",
      "name": "vegaChange",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.12.0"
          }],
        "text": "An event emitter notifying changes in the value of the time picker."
      },
      "complexType": {
        "original": "string | string[]",
        "resolved": "string | string[]",
        "references": {}
      }
    }, {
      "method": "change",
      "name": "change",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "eventSemantics",
            "text": "namespace:native"
          }, {
            "name": "vegaVersion",
            "text": "2.0.0"
          }],
        "text": "An event emitter notifying changes in the value of the time picker."
      },
      "complexType": {
        "original": "string | string[]",
        "resolved": "string | string[]",
        "references": {}
      }
    }]; }
  static get elementRef() { return "host"; }
  static get watchers() { return [{
      "propName": "isDropdownShow",
      "methodName": "watchIsDropdownShow"
    }, {
      "propName": "selectedTimeValue",
      "methodName": "watchSelectedTimeValue"
    }, {
      "propName": "mode",
      "methodName": "watchMode"
    }, {
      "propName": "increments",
      "methodName": "watchIncrements"
    }, {
      "propName": "timeFormat",
      "methodName": "watchTimeFormat"
    }, {
      "propName": "value",
      "methodName": "watchValue"
    }, {
      "propName": "disabled",
      "methodName": "watchDisabled"
    }, {
      "propName": "validationRules",
      "methodName": "watchValidationRules"
    }]; }
}
__decorate([
  InjectVegaGlobalSlimmer()
], VegaTimePicker.prototype, "globalSlimmers", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "translationSlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "labelRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "singleInputRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "singleDropdownRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "valueController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "singleDropdownController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "dropdownSelectedItemsController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "keyboardController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "formFieldController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "rangeInputRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "rangeClearButtonRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "rangeDropdownRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "startDropdownController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "endDropdownController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "inputMaskController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "inputEventPrevent", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "changeEventEmitter", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTimePicker.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
__decorate([
  ComponentLoadRequired()
], VegaTimePicker.prototype, "watchValue", null);
