{"version":3,"sources":["webpack:///./node_modules/@syncfusion/ej2-calendars/src/timepicker/timepicker.js"],"names":["TimePickerBase","__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","WRAPPERCLASS","POPUP","ERROR","POPUPDIMENSION","DAY","Date","getDate","MONTH","getMonth","YEAR","getFullYear","ROOT","LIBRARY","CONTROL","CONTENT","SELECTED","HOVER","NAVIGATION","DISABLED","ICONANIMATION","FOCUS","LISTCLASS","HALFPOSITION","ANIMATIONDURATION","OVERFLOW","OFFSETVAL","EDITABLE","wrapperAttributes","createListItems","createdEl","min","max","globalize","timeFormat","step","start","calendarMode","interval","listItems","timeCollections","setMilliseconds","end","push","formatDate","format","type","listTag","createList","collection","list","_super","TimeMaskPlaceholder","apply","TimePicker","options","element","_this","call","liCollections","disableItemCollection","invalidValueString","isAngular","preventChange","maskedDateValue","moduleName","getModuleName","timeOptions","preRender","keyConfigure","enter","escape","tab","home","down","up","left","right","open","close","cloneElement","cloneNode","inputElement","angularTag","formElement","tagName","createElement","appendChild","tabIndex","hasAttribute","getAttribute","removeAttribute","openPopupEventArgs","appendTo","document","body","render","initialize","createInputElement","updateHtmlAttributeToWrapper","setTimeAllowEdit","setEnable","validateInterval","bindEvents","validateDisable","setValue","getFormattedValue","value","enableMask","floatLabelType","placeholder","updateInputValue","checkErrorState","anchor","setAttribute","inputEleValue","getDateObject","inputWrapper","buttons","container","getElementsByClassName","classList","add","disabled","enabled","renderComplete","allowEdit","readonly","clearIconState","setMinMax","initMin","initMax","popupCreation","popupObj","destroy","popupWrapper","isNaN","valueIsDisable","strictMode","resetState","initValue","validationAttribute","input","name","attributes","attr","locale","defaultCulture","checkTimeFormat","checkInvalidValue","setProperties","checkDateValue","checkInValue","scrollTo","updateHtmlAttributeToElement","checkAttributes","localeText","l10n","getConstant","isNavigate","isPreventBlur","isTextSelected","activeIndex","valueWithMinutes","prevDate","id","notify","module","formatString","skeleton","getDatePattern","skeletonString","updatedCssClassesValue","cssClass","isBindClearAction","replace","trim","createInput","bindClearAction","properties","enableRtl","showClearButton","style","width","setWidth","isNullOrEmpty","inputStyle","addAttributes","getCldrDateTimeFormat","cldrTime","culture","dateFormat","cldrFormat","isInvalid","valueString","valueExpression","valueExp","toString","test","setCurrentDate","parseDate","extISOString","basicISOString","requiredModules","modules","args","member","cldrDateTimeString","getCultureTimeObject","hide","unBindEvents","ariaAttribute","removeAttributes","parentElement","ensureInputAttribute","enableElement","remove","setEnabled","undefined","rippleFn","formResetHandler","selectedElement","propertyList","toLowerCase","className","attrs","generateList","listWrapper","addSelection","renderPopup","getPopupHeight","height","parseInt","popupHeight","getBoundingClientRect","wireListEvents","rippleModel","duration","selector","querySelectorAll","containerStyle","setPopupWidth","zIndex","targetType","position","isDevice","X","Y","collision","relateTo","offsetY","visibility","unWireListEvents","innerHTML","targetExitViewport","maxHeight","text","dateValue","createDateObj","date","month","year","getHours","getMinutes","getSeconds","htmlAttributes","_i","_a","keys","indexOf","updatedClassesValue","split","timeStyle","updateCssClass","cssClassNew","cssClassOld","setCssClass","removeErrorClass","val","validateState","disableTimeIcon","disableElement","selectInputText","setSelectionRange","setCursorToEnd","getMeridianText","meridian","gregorianFormat","mainVal","getCursorSelection","selectionStart","selectionEnd","Math","abs","getActiveElement","match","inputWidth","parseFloat","setScrollPosition","setScrollTo","findScrollTop","listHeight","nextEle","nextElementSibling","offsetTop","liHeight","scrollTop","items","initialTime","scrollTime","getTime","round","getText","getValue","cldrTimeFormat","cldrDateFormat","cldrDate","getCultureDateObject","dateToNumeric","getExactDateTime","time","checkValue","validateMinMax","compareFormatChange","updateInput","updatePlaceHolder","setPlaceholder","preventEventBubbling","e","preventDefault","interopAdaptor","invokeMethodAsync","popupHandler","isPopupOpen","closePopup","focus","show","mouseDownHandler","mouseUpHandler","event","curPos","cursorDetails","focusSelection","regex","RegExp","isSeparator","inputHandler","action","keyHandler","updateValue","stopPropagation","objToString","createMask","previousState","onMouseClick","li","setSelection","contains","delay","popup","cancel","trigger","animModel","documentClickHandler","modal","display","outerHTML","mobileTimePopupWrap","disposeServerPopup","top","checkValueChange","isNavigation","valueProcess","prevValue","changeEvent","onMouseOver","currentLi","setHover","isValidLI","removeHover","navigated","slice","onMouseLeave","scrollHandler","minVal","maxVal","dateVal","strictOperation","index","maxValue","minValue","minimum","maximum","inputBlurHandler","inputFocusHandler","inputChangeHandler","inputEventHandler","keydownHandler","clearButton","clearHandler","keyConfigs","inputEvent","keyAction","bind","eventName","code","timeValue","bindClearEvent","raiseClearedEvent","clearedArgs","clear","keyupEvent","createEvent","initEvent","dispatchEvent","setZIndex","dataBind","isDynamic","attributes_1","prop","getTextFormat","strArray","inputVal","removeSelection","validateValue","newval","value_1","findNextElement","textVal","timeVal","count","collections","selectNextItem","validLiElement","elementValue","backward","elementIndex","isCheck","nextItem","keyCode","setActiveDescendant","ld","result","eventArgs","isInteracted","isUpdate","hoveredItem","getHoverItem","setActiveClass","formatStr","today","toUpperCase","timeParse","listBaseOptions","itemCreated","item","isDisabled","isIE","info","activeElement","focusOut","setEnableRtl","getProperty","blurArguments","model","blur","focusArguments","openOnFocus","focusIn","popupAlignment","openAnimation","refreshPosition","setOverlayIndex","timePopupElement","formatValues","offsetX","getPersistData","keyEntity","addOnPersist","onPropertyChanged","newProp","oldProp","setReadonly","setClearButton","setLocale","calculateWidth","removeFloating","addFloating","inValue","toUTCString","day","hour","minute","second","dayOfTheWeek"],"mappings":"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","file":"js/chunk-vendors~aff0ae26.f8131a7a.4.2.0.js","sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { EventHandler, Property, Internationalization, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, Animation, Browser } from '@syncfusion/ej2-base';\nimport { cldrData, L10n, Component, getDefaultDateObject, rippleEffect, Event } from '@syncfusion/ej2-base';\nimport { remove, addClass, detach, removeClass, closest, append, attributes, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, getValue, extend, getUniqueID, ChildProperty } from '@syncfusion/ej2-base';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { ListBase } from '@syncfusion/ej2-lists';\nvar WRAPPERCLASS = 'e-time-wrapper';\nvar POPUP = 'e-popup';\nvar ERROR = 'e-error';\nvar POPUPDIMENSION = '240px';\nvar DAY = new Date().getDate();\nvar MONTH = new Date().getMonth();\nvar YEAR = new Date().getFullYear();\nvar ROOT = 'e-timepicker';\nvar LIBRARY = 'e-lib';\nvar CONTROL = 'e-control';\nvar CONTENT = 'e-content';\nvar SELECTED = 'e-active';\nvar HOVER = 'e-hover';\nvar NAVIGATION = 'e-navigation';\nvar DISABLED = 'e-disabled';\nvar ICONANIMATION = 'e-icon-anim';\nvar TIMEICON = 'e-time-icon';\nvar CLEARICON = 'e-clear-icon';\nvar FOCUS = 'e-input-focus';\nvar LISTCLASS = 'e-list-item';\nvar HALFPOSITION = 2;\nvar ANIMATIONDURATION = 50;\nvar OVERFLOW = 'e-time-overflow';\nvar OFFSETVAL = 4;\nvar EDITABLE = 'e-non-edit';\nvar wrapperAttributes = ['title', 'class', 'style'];\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var TimePickerBase;\n(function (TimePickerBase) {\n // eslint-disable-next-line max-len, jsdoc/require-jsdoc\n function createListItems(createdEl, min, max, globalize, timeFormat, step) {\n var formatOptions;\n if (this.calendarMode === 'Gregorian') {\n formatOptions = { format: timeFormat, type: 'time' };\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n formatOptions = { format: timeFormat, type: 'time', calendar: 'islamic' };\n }\n var start;\n var interval = step * 60000;\n var listItems = [];\n var timeCollections = [];\n start = +(min.setMilliseconds(0));\n var end = +(max.setMilliseconds(0));\n while (end >= start) {\n timeCollections.push(start);\n listItems.push(globalize.formatDate(new Date(start), { format: timeFormat, type: 'time' }));\n start += interval;\n }\n var listTag = ListBase.createList(createdEl, listItems, null, true);\n return { collection: timeCollections, list: listTag };\n }\n TimePickerBase.createListItems = createListItems;\n})(TimePickerBase || (TimePickerBase = {}));\nvar TimeMaskPlaceholder = /** @class */ (function (_super) {\n __extends(TimeMaskPlaceholder, _super);\n function TimeMaskPlaceholder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('day')\n ], TimeMaskPlaceholder.prototype, \"day\", void 0);\n __decorate([\n Property('month')\n ], TimeMaskPlaceholder.prototype, \"month\", void 0);\n __decorate([\n Property('year')\n ], TimeMaskPlaceholder.prototype, \"year\", void 0);\n __decorate([\n Property('day of the week')\n ], TimeMaskPlaceholder.prototype, \"dayOfTheWeek\", void 0);\n __decorate([\n Property('hour')\n ], TimeMaskPlaceholder.prototype, \"hour\", void 0);\n __decorate([\n Property('minute')\n ], TimeMaskPlaceholder.prototype, \"minute\", void 0);\n __decorate([\n Property('second')\n ], TimeMaskPlaceholder.prototype, \"second\", void 0);\n return TimeMaskPlaceholder;\n}(ChildProperty));\nexport { TimeMaskPlaceholder };\n/**\n * TimePicker is an intuitive interface component which provides an options to select a time value\n * from popup list or to set a desired time value.\n * ```\n * \n * \n * ```\n */\nvar TimePicker = /** @class */ (function (_super) {\n __extends(TimePicker, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {TimePickerModel} options - Specifies the TimePicker model.\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function TimePicker(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.liCollections = [];\n _this.timeCollections = [];\n _this.disableItemCollection = [];\n _this.invalidValueString = null;\n _this.isAngular = false;\n _this.preventChange = false;\n _this.maskedDateValue = '';\n _this.moduleName = _this.getModuleName();\n _this.timeOptions = options;\n return _this;\n }\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n TimePicker.prototype.preRender = function () {\n this.keyConfigure = {\n enter: 'enter',\n escape: 'escape',\n end: 'end',\n tab: 'tab',\n home: 'home',\n down: 'downarrow',\n up: 'uparrow',\n left: 'leftarrow',\n right: 'rightarrow',\n open: 'alt+downarrow',\n close: 'alt+uparrow'\n };\n this.cloneElement = this.element.cloneNode(true);\n removeClass([this.cloneElement], [ROOT, CONTROL, LIBRARY]);\n this.inputElement = this.element;\n this.angularTag = null;\n this.formElement = closest(this.element, 'form');\n if (this.element.tagName === 'EJS-TIMEPICKER') {\n this.angularTag = this.element.tagName;\n this.inputElement = this.createElement('input');\n this.element.appendChild(this.inputElement);\n }\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.removeAttribute('tabindex');\n this.openPopupEventArgs = {\n appendTo: document.body\n };\n };\n // element creation\n TimePicker.prototype.render = function () {\n this.initialize();\n this.createInputElement();\n this.updateHtmlAttributeToWrapper();\n this.setTimeAllowEdit();\n this.setEnable();\n this.validateInterval();\n this.bindEvents();\n this.validateDisable();\n this.setValue(this.getFormattedValue(this.value));\n if (this.enableMask && !this.value && this.maskedDateValue && (this.floatLabelType === 'Always' || !this.floatLabelType || !this.placeholder)) {\n this.updateInputValue(this.maskedDateValue);\n this.checkErrorState(this.maskedDateValue);\n }\n this.anchor = this.inputElement;\n this.inputElement.setAttribute('value', this.inputElement.value);\n this.inputEleValue = this.getDateObject(this.inputElement.value);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n if (!isNullOrUndefined(closest(this.element, 'fieldset')) && closest(this.element, 'fieldset').disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n };\n TimePicker.prototype.setTimeAllowEdit = function () {\n if (this.allowEdit) {\n if (!this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n }\n else {\n attributes(this.inputElement, { 'readonly': '' });\n }\n this.clearIconState();\n };\n TimePicker.prototype.clearIconState = function () {\n if (!this.allowEdit && this.inputWrapper && !this.readonly) {\n if (this.inputElement.value === '') {\n removeClass([this.inputWrapper.container], [EDITABLE]);\n }\n else {\n addClass([this.inputWrapper.container], [EDITABLE]);\n }\n }\n else if (this.inputWrapper) {\n removeClass([this.inputWrapper.container], [EDITABLE]);\n }\n };\n TimePicker.prototype.validateDisable = function () {\n this.setMinMax(this.initMin, this.initMax);\n if (!isNullOrUndefined(this.value)) {\n this.popupCreation();\n this.popupObj.destroy();\n this.popupWrapper = this.popupObj = null;\n }\n if ((!isNaN(+this.value) && this.value !== null)) {\n if (!this.valueIsDisable(this.value)) {\n //disable value given in value property so reset the date based on current date\n if (this.strictMode) {\n this.resetState();\n }\n this.initValue = null;\n this.initMax = this.getDateObject(this.initMax);\n this.initMin = this.getDateObject(this.initMin);\n this.timeCollections = this.liCollections = [];\n this.setMinMax(this.initMin, this.initMax);\n }\n }\n };\n TimePicker.prototype.validationAttribute = function (target, input) {\n var name = target.getAttribute('name') ? target.getAttribute('name') : target.getAttribute('id');\n input.setAttribute('name', name);\n target.removeAttribute('name');\n var attributes = ['required', 'aria-required', 'form'];\n for (var i = 0; i < attributes.length; i++) {\n if (isNullOrUndefined(target.getAttribute(attributes[i]))) {\n continue;\n }\n var attr = target.getAttribute(attributes[i]);\n input.setAttribute(attributes[i], attr);\n target.removeAttribute(attributes[i]);\n }\n };\n TimePicker.prototype.initialize = function () {\n this.globalize = new Internationalization(this.locale);\n this.defaultCulture = new Internationalization('en');\n this.checkTimeFormat();\n this.checkInvalidValue(this.value);\n // persist the value property.\n this.setProperties({ value: this.checkDateValue(new Date(this.checkInValue(this.value))) }, true);\n this.setProperties({ min: this.checkDateValue(new Date(this.checkInValue(this.min))) }, true);\n this.setProperties({ max: this.checkDateValue(new Date(this.checkInValue(this.max))) }, true);\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkInValue(this.scrollTo))) }, true);\n if (this.angularTag !== null) {\n this.validationAttribute(this.element, this.inputElement);\n }\n this.updateHtmlAttributeToElement();\n this.checkAttributes(false); //check the input element attributes\n var localeText = { placeholder: this.placeholder };\n this.l10n = new L10n('timepicker', localeText, this.locale);\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n this.initValue = this.checkDateValue(this.value);\n this.initMin = this.checkDateValue(this.min);\n this.initMax = this.checkDateValue(this.max);\n this.isNavigate = this.isPreventBlur = this.isTextSelected = false;\n this.activeIndex = this.valueWithMinutes = this.prevDate = null;\n if (!isNullOrUndefined(this.element.getAttribute('id'))) {\n if (this.angularTag !== null) {\n this.inputElement.id = this.element.getAttribute('id') + '_input';\n }\n }\n else {\n //for angular case\n this.element.id = getUniqueID('ej2_timepicker');\n if (this.angularTag !== null) {\n attributes(this.inputElement, { 'id': this.element.id + '_input' });\n }\n }\n if (isNullOrUndefined(this.inputElement.getAttribute('name'))) {\n attributes(this.inputElement, { 'name': this.element.id });\n }\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n };\n TimePicker.prototype.checkTimeFormat = function () {\n if (this.format) {\n if (typeof this.format === 'string') {\n this.formatString = this.format;\n }\n else if (!isNullOrUndefined(this.format.skeleton) && this.format.skeleton !== '') {\n var skeletonString = this.format.skeleton;\n this.formatString = this.globalize.getDatePattern({ type: 'time', skeleton: skeletonString });\n }\n else {\n this.formatString = this.globalize.getDatePattern({ type: 'time', skeleton: 'short' });\n }\n }\n else {\n this.formatString = null;\n }\n };\n TimePicker.prototype.checkDateValue = function (value) {\n return (!isNullOrUndefined(value) && value instanceof Date && !isNaN(+value)) ? value : null;\n };\n TimePicker.prototype.createInputElement = function () {\n var updatedCssClassesValue = this.cssClass;\n var isBindClearAction = this.enableMask ? false : true;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassesValue = (this.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n this.inputWrapper = Input.createInput({\n element: this.inputElement,\n bindClearAction: isBindClearAction,\n floatLabelType: this.floatLabelType,\n properties: {\n readonly: this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassesValue,\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton\n },\n buttons: [' e-input-group-icon e-time-icon e-icons']\n }, this.createElement);\n this.inputWrapper.container.style.width = this.setWidth(this.width);\n attributes(this.inputElement, {\n 'aria-autocomplete': 'list', 'tabindex': '0',\n 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',\n 'aria-disabled': 'false', 'aria-invalid': 'false'\n });\n if (!this.isNullOrEmpty(this.inputStyle)) {\n Input.addAttributes({ 'style': this.inputStyle }, this.inputElement);\n }\n addClass([this.inputWrapper.container], WRAPPERCLASS);\n };\n TimePicker.prototype.getCldrDateTimeFormat = function () {\n var culture = new Internationalization(this.locale);\n var cldrTime;\n var dateFormat = culture.getDatePattern({ skeleton: 'yMd' });\n if (this.isNullOrEmpty(this.formatString)) {\n cldrTime = dateFormat + ' ' + this.cldrFormat('time');\n }\n else {\n cldrTime = this.formatString;\n }\n return cldrTime;\n };\n TimePicker.prototype.checkInvalidValue = function (value) {\n var isInvalid = false;\n if (typeof value !== 'object' && !isNullOrUndefined(value)) {\n var valueString = value;\n if (typeof valueString === 'string') {\n valueString = valueString.trim();\n }\n var valueExpression = null;\n var valueExp = null;\n if (typeof value === 'number') {\n valueString = value.toString();\n }\n else if (typeof value === 'string') {\n if (!(/^[a-zA-Z0-9- ]*$/).test(value)) {\n valueExpression = this.setCurrentDate(this.getDateObject(value));\n if (isNullOrUndefined(valueExpression)) {\n valueExpression = this.checkDateValue(this.globalize.parseDate(valueString, {\n format: this.getCldrDateTimeFormat(), type: 'datetime'\n }));\n if (isNullOrUndefined(valueExpression)) {\n valueExpression = this.checkDateValue(this.globalize.parseDate(valueString, {\n format: this.formatString, type: 'dateTime', skeleton: 'yMd'\n }));\n }\n }\n }\n }\n valueExp = this.globalize.parseDate(valueString, {\n format: this.getCldrDateTimeFormat(), type: 'datetime'\n });\n valueExpression = (!isNullOrUndefined(valueExp) && valueExp instanceof Date && !isNaN(+valueExp)) ? valueExp : null;\n if (isNullOrUndefined(valueExpression) && valueString.replace(/\\s/g, '').length) {\n var extISOString = null;\n var basicISOString = null;\n // eslint-disable-next-line\n extISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n // eslint-disable-next-line\n basicISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\n if ((!extISOString.test(valueString) && !basicISOString.test(valueString))\n || ((/^[a-zA-Z0-9- ]*$/).test(value)) || isNaN(+new Date('' + valueString))) {\n isInvalid = true;\n }\n else {\n valueExpression = new Date('' + valueString);\n }\n }\n if (isInvalid) {\n if (!this.strictMode) {\n this.invalidValueString = valueString;\n }\n this.setProperties({ value: null }, true);\n this.initValue = null;\n }\n else {\n this.setProperties({ value: valueExpression }, true);\n this.initValue = this.value;\n }\n }\n };\n TimePicker.prototype.requiredModules = function () {\n var modules = [];\n if (this.enableMask) {\n modules.push({ args: [this], member: 'MaskedDateTime' });\n }\n return modules;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n TimePicker.prototype.cldrFormat = function (type) {\n var cldrDateTimeString;\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrDateTimeString = (getValue('timeFormats.short', getDefaultDateObject()));\n }\n else {\n cldrDateTimeString = (this.getCultureTimeObject(cldrData, '' + this.locale));\n }\n return cldrDateTimeString;\n };\n // destroy function\n TimePicker.prototype.destroy = function () {\n this.hide();\n this.unBindEvents();\n var ariaAttribute = {\n 'aria-autocomplete': 'list', 'tabindex': '0',\n 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',\n 'aria-disabled': 'true', 'aria-invalid': 'false'\n };\n if (this.inputElement) {\n Input.removeAttributes(ariaAttribute, this.inputElement);\n if (this.angularTag === null) {\n this.inputWrapper.container.parentElement.appendChild(this.inputElement);\n }\n if (!isNullOrUndefined(this.cloneElement.getAttribute('tabindex'))) {\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.inputElement.removeAttribute('tabindex');\n }\n this.ensureInputAttribute();\n this.enableElement([this.inputElement]);\n this.inputElement.classList.remove('e-input');\n if (isNullOrUndefined(this.cloneElement.getAttribute('disabled'))) {\n Input.setEnabled(true, this.inputElement, this.floatLabelType);\n }\n }\n if (this.inputWrapper.container) {\n detach(this.inputWrapper.container);\n }\n this.inputWrapper = this.popupWrapper = this.cloneElement = undefined;\n this.liCollections = this.timeCollections = this.disableItemCollection = [];\n if (!isNullOrUndefined(this.rippleFn)) {\n this.rippleFn();\n }\n _super.prototype.destroy.call(this);\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n this.rippleFn = null;\n this.openPopupEventArgs = null;\n this.selectedElement = null;\n this.listTag = null;\n this.liCollections = null;\n };\n TimePicker.prototype.ensureInputAttribute = function () {\n var propertyList = [];\n for (var i = 0; i < this.inputElement.attributes.length; i++) {\n propertyList[i] = this.inputElement.attributes[i].name;\n }\n for (var i = 0; i < propertyList.length; i++) {\n if (!isNullOrUndefined(this.cloneElement.getAttribute(propertyList[i]))) {\n this.inputElement.setAttribute(propertyList[i], this.cloneElement.getAttribute(propertyList[i]));\n if (propertyList[i].toLowerCase() === 'value') {\n this.inputElement.value = this.cloneElement.getAttribute(propertyList[i]);\n }\n }\n else {\n this.inputElement.removeAttribute(propertyList[i]);\n if (propertyList[i].toLowerCase() === 'value') {\n this.inputElement.value = '';\n }\n }\n }\n };\n //popup creation\n TimePicker.prototype.popupCreation = function () {\n this.popupWrapper = this.createElement('div', {\n className: ROOT + ' ' + POPUP,\n attrs: { 'id': this.element.id + '_popup', 'style': 'visibility:hidden' }\n });\n if (!isNullOrUndefined(this.cssClass)) {\n this.popupWrapper.className += ' ' + this.cssClass;\n }\n if (!isNullOrUndefined(this.step) && this.step > 0) {\n this.generateList();\n append([this.listWrapper], this.popupWrapper);\n }\n this.addSelection();\n this.renderPopup();\n detach(this.popupWrapper);\n };\n TimePicker.prototype.getPopupHeight = function () {\n var height = parseInt(POPUPDIMENSION, 10);\n var popupHeight = this.popupWrapper.getBoundingClientRect().height;\n return popupHeight > height ? height : popupHeight;\n };\n TimePicker.prototype.generateList = function () {\n this.createListItems();\n this.wireListEvents();\n var rippleModel = { duration: 300, selector: '.' + LISTCLASS };\n this.rippleFn = rippleEffect(this.listWrapper, rippleModel);\n this.liCollections = this.listWrapper.querySelectorAll('.' + LISTCLASS);\n };\n TimePicker.prototype.renderPopup = function () {\n var _this = this;\n this.containerStyle = this.inputWrapper.container.getBoundingClientRect();\n this.popupObj = new Popup(this.popupWrapper, {\n width: this.setPopupWidth(this.width),\n zIndex: this.zIndex,\n targetType: 'relative',\n position: Browser.isDevice ? { X: 'center', Y: 'center' } : { X: 'left', Y: 'bottom' },\n collision: Browser.isDevice ? { X: 'fit', Y: 'fit' } : { X: 'flip', Y: 'flip' },\n enableRtl: this.enableRtl,\n relateTo: Browser.isDevice ? document.body : this.inputWrapper.container,\n offsetY: OFFSETVAL,\n open: function () {\n _this.popupWrapper.style.visibility = 'visible';\n addClass([_this.inputWrapper.buttons[0]], SELECTED);\n }, close: function () {\n removeClass([_this.inputWrapper.buttons[0]], SELECTED);\n _this.unWireListEvents();\n _this.inputElement.removeAttribute('aria-activedescendant');\n remove(_this.popupObj.element);\n _this.popupObj.destroy();\n _this.popupWrapper.innerHTML = '';\n _this.listWrapper = _this.popupWrapper = _this.listTag = undefined;\n }, targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hide();\n }\n }\n });\n if (!Browser.isDevice) {\n this.popupObj.collision = { X: 'none', Y: 'flip' };\n }\n this.popupObj.element.style.maxHeight = POPUPDIMENSION;\n };\n //util function\n TimePicker.prototype.getFormattedValue = function (value) {\n if (isNullOrUndefined(this.checkDateValue(value))) {\n return null;\n }\n else {\n return this.globalize.formatDate(value, { skeleton: 'medium', type: 'time' });\n }\n };\n TimePicker.prototype.getDateObject = function (text) {\n if (!this.isNullOrEmpty(text)) {\n var dateValue = this.createDateObj(text);\n var value = !this.isNullOrEmpty(this.initValue);\n if (this.checkDateValue(dateValue)) {\n var date = value ? this.initValue.getDate() : DAY;\n var month = value ? this.initValue.getMonth() : MONTH;\n var year = value ? this.initValue.getFullYear() : YEAR;\n return new Date(year, month, date, dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds());\n }\n }\n return null;\n };\n TimePicker.prototype.updateHtmlAttributeToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (wrapperAttributes.indexOf(key) > -1) {\n if (key === 'class') {\n var updatedClassesValue = (this.htmlAttributes[\"\" + key].replace(/\\s+/g, ' ')).trim();\n if (updatedClassesValue !== '') {\n addClass([this.inputWrapper.container], updatedClassesValue.split(' '));\n }\n }\n else if (key === 'style') {\n var timeStyle = this.inputWrapper.container.getAttribute(key);\n timeStyle = !isNullOrUndefined(timeStyle) ? (timeStyle + this.htmlAttributes[\"\" + key]) :\n this.htmlAttributes[\"\" + key];\n this.inputWrapper.container.setAttribute(key, timeStyle);\n }\n else {\n this.inputWrapper.container.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n TimePicker.prototype.updateHtmlAttributeToElement = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (wrapperAttributes.indexOf(key) < 0) {\n this.inputElement.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n };\n TimePicker.prototype.updateCssClass = function (cssClassNew, cssClassOld) {\n if (!isNullOrUndefined(cssClassOld)) {\n cssClassOld = (cssClassOld.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(cssClassNew)) {\n cssClassNew = (cssClassNew.replace(/\\s+/g, ' ')).trim();\n }\n Input.setCssClass(cssClassNew, [this.inputWrapper.container], cssClassOld);\n if (this.popupWrapper) {\n Input.setCssClass(cssClassNew, [this.popupWrapper], cssClassOld);\n }\n };\n TimePicker.prototype.removeErrorClass = function () {\n removeClass([this.inputWrapper.container], ERROR);\n attributes(this.inputElement, { 'aria-invalid': 'false' });\n };\n TimePicker.prototype.checkErrorState = function (val) {\n var value = this.getDateObject(val);\n if ((this.validateState(value) && !this.invalidValueString) ||\n (this.enableMask && this.inputElement.value === this.maskedDateValue)) {\n this.removeErrorClass();\n }\n else {\n addClass([this.inputWrapper.container], ERROR);\n attributes(this.inputElement, { 'aria-invalid': 'true' });\n }\n };\n TimePicker.prototype.validateInterval = function () {\n if (!isNullOrUndefined(this.step) && this.step > 0) {\n this.enableElement([this.inputWrapper.buttons[0]]);\n }\n else {\n this.disableTimeIcon();\n }\n };\n TimePicker.prototype.disableTimeIcon = function () {\n this.disableElement([this.inputWrapper.buttons[0]]);\n this.hide();\n };\n TimePicker.prototype.disableElement = function (element) {\n addClass(element, DISABLED);\n };\n TimePicker.prototype.enableElement = function (element) {\n removeClass(element, DISABLED);\n };\n TimePicker.prototype.selectInputText = function () {\n this.inputElement.setSelectionRange(0, (this.inputElement).value.length);\n };\n TimePicker.prototype.setCursorToEnd = function () {\n this.inputElement.setSelectionRange((this.inputElement).value.length, (this.inputElement).value.length);\n };\n TimePicker.prototype.getMeridianText = function () {\n var meridian;\n if (this.locale === 'en' || this.locale === 'en-US') {\n meridian = getValue('dayPeriods.format.wide', getDefaultDateObject());\n }\n else {\n var gregorianFormat = '.dates.calendars.gregorian.dayPeriods.format.abbreviated';\n var mainVal = 'main.';\n meridian = getValue(mainVal + '' + this.locale + gregorianFormat, cldrData);\n }\n return meridian;\n };\n TimePicker.prototype.getCursorSelection = function () {\n var input = (this.inputElement);\n var start = 0;\n var end = 0;\n if (!isNaN(input.selectionStart)) {\n start = input.selectionStart;\n end = input.selectionEnd;\n }\n return { start: Math.abs(start), end: Math.abs(end) };\n };\n TimePicker.prototype.getActiveElement = function () {\n if (!isNullOrUndefined(this.popupWrapper)) {\n return this.popupWrapper.querySelectorAll('.' + SELECTED);\n }\n else {\n return null;\n }\n };\n TimePicker.prototype.isNullOrEmpty = function (value) {\n if (isNullOrUndefined(value) || (typeof value === 'string' && value.trim() === '')) {\n return true;\n }\n else {\n return false;\n }\n };\n TimePicker.prototype.setWidth = function (width) {\n if (typeof width === 'number') {\n width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n width = (width.match(/px|%|em/)) ? width : formatUnit(width);\n }\n else {\n width = '100%';\n }\n return width;\n };\n TimePicker.prototype.setPopupWidth = function (width) {\n width = this.setWidth(width);\n if (width.indexOf('%') > -1) {\n var inputWidth = this.containerStyle.width * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n return width;\n };\n TimePicker.prototype.setScrollPosition = function () {\n var element = this.selectedElement;\n if (!isNullOrUndefined(element)) {\n this.findScrollTop(element);\n }\n else if (this.popupWrapper && this.checkDateValue(this.scrollTo)) {\n this.setScrollTo();\n }\n };\n TimePicker.prototype.findScrollTop = function (element) {\n var listHeight = this.getPopupHeight();\n var nextEle = element.nextElementSibling;\n var height = nextEle ? nextEle.offsetTop : element.offsetTop;\n var liHeight = element.getBoundingClientRect().height;\n if ((height + element.offsetTop) > listHeight) {\n this.popupWrapper.scrollTop = nextEle ? (height - (listHeight / HALFPOSITION + liHeight / HALFPOSITION)) : height;\n }\n else {\n this.popupWrapper.scrollTop = 0;\n }\n };\n TimePicker.prototype.setScrollTo = function () {\n var element;\n if (!isNullOrUndefined(this.popupWrapper)) {\n var items = this.popupWrapper.querySelectorAll('.' + LISTCLASS);\n if (items.length) {\n var initialTime = this.timeCollections[0];\n var scrollTime = this.getDateObject(this.checkDateValue(this.scrollTo)).getTime();\n element = items[Math.round((scrollTime - initialTime) / (this.step * 60000))];\n }\n }\n else {\n this.popupWrapper.scrollTop = 0;\n }\n if (!isNullOrUndefined(element)) {\n this.findScrollTop(element);\n }\n else {\n this.popupWrapper.scrollTop = 0;\n }\n };\n TimePicker.prototype.getText = function () {\n return (isNullOrUndefined(this.checkDateValue(this.value))) ? '' : this.getValue(this.value);\n };\n TimePicker.prototype.getValue = function (value) {\n return (isNullOrUndefined(this.checkDateValue(value))) ? null : this.globalize.formatDate(value, {\n format: this.cldrTimeFormat(), type: 'time'\n });\n };\n TimePicker.prototype.cldrDateFormat = function () {\n var cldrDate;\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrDate = (getValue('dateFormats.short', getDefaultDateObject()));\n }\n else {\n cldrDate = (this.getCultureDateObject(cldrData, '' + this.locale));\n }\n return cldrDate;\n };\n TimePicker.prototype.cldrTimeFormat = function () {\n var cldrTime;\n if (this.isNullOrEmpty(this.formatString)) {\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrTime = (getValue('timeFormats.short', getDefaultDateObject()));\n }\n else {\n cldrTime = (this.getCultureTimeObject(cldrData, '' + this.locale));\n }\n }\n else {\n cldrTime = this.formatString;\n }\n return cldrTime;\n };\n TimePicker.prototype.dateToNumeric = function () {\n var cldrTime;\n if (this.locale === 'en' || this.locale === 'en-US') {\n cldrTime = (getValue('timeFormats.medium', getDefaultDateObject()));\n }\n else {\n cldrTime = (getValue('main.' + '' + this.locale + '.dates.calendars.gregorian.timeFormats.medium', cldrData));\n }\n return cldrTime;\n };\n TimePicker.prototype.getExactDateTime = function (value) {\n if (isNullOrUndefined(this.checkDateValue(value))) {\n return null;\n }\n else {\n return this.globalize.formatDate(value, { format: this.dateToNumeric(), type: 'time' });\n }\n };\n TimePicker.prototype.setValue = function (value) {\n var time = this.checkValue(value);\n if (!this.strictMode && !this.validateState(time)) {\n if (this.checkDateValue(this.valueWithMinutes) === null) {\n this.initValue = this.valueWithMinutes = null;\n }\n this.validateMinMax(this.value, this.min, this.max);\n }\n else {\n if (this.isNullOrEmpty(time)) {\n this.initValue = null;\n this.validateMinMax(this.value, this.min, this.max);\n }\n else {\n this.initValue = this.compareFormatChange(time);\n }\n }\n this.updateInput(true, this.initValue);\n };\n TimePicker.prototype.compareFormatChange = function (value) {\n if (isNullOrUndefined(value)) {\n return null;\n }\n return (value !== this.getText()) ? this.getDateObject(value) : this.getDateObject(this.value);\n };\n TimePicker.prototype.updatePlaceHolder = function () {\n Input.setPlaceholder(this.l10n.getConstant('placeholder'), this.inputElement);\n };\n //event related functions\n TimePicker.prototype.updateInputValue = function (value) {\n Input.setValue(value, this.inputElement, this.floatLabelType, this.showClearButton);\n };\n TimePicker.prototype.preventEventBubbling = function (e) {\n e.preventDefault();\n this.interopAdaptor.invokeMethodAsync('OnTimeIconClick');\n };\n TimePicker.prototype.popupHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n if (Browser.isDevice) {\n this.inputElement.setAttribute('readonly', '');\n }\n e.preventDefault();\n if (this.isPopupOpen()) {\n this.closePopup(0, e);\n }\n else {\n this.inputElement.focus();\n this.show(e);\n }\n };\n TimePicker.prototype.mouseDownHandler = function () {\n if (!this.enabled) {\n return;\n }\n if (!this.readonly) {\n this.inputElement.setSelectionRange(0, 0);\n EventHandler.add(this.inputElement, 'mouseup', this.mouseUpHandler, this);\n }\n };\n TimePicker.prototype.mouseUpHandler = function (event) {\n if (!this.readonly) {\n event.preventDefault();\n if (this.enableMask) {\n event.preventDefault();\n this.notify('setMaskSelection', {\n module: 'MaskedDateTime'\n });\n return;\n }\n else {\n EventHandler.remove(this.inputElement, 'mouseup', this.mouseUpHandler);\n var curPos = this.getCursorSelection();\n if (!(curPos.start === 0 && curPos.end === this.inputElement.value.length)) {\n if (this.inputElement.value.length > 0) {\n this.cursorDetails = this.focusSelection();\n }\n this.inputElement.setSelectionRange(this.cursorDetails.start, this.cursorDetails.end);\n }\n }\n }\n };\n TimePicker.prototype.focusSelection = function () {\n var regex = new RegExp('^[a-zA-Z0-9]+$');\n var split = this.inputElement.value.split('');\n split.push(' ');\n var curPos = this.getCursorSelection();\n var start = 0;\n var end = 0;\n var isSeparator = false;\n if (!this.isTextSelected) {\n for (var i = 0; i < split.length; i++) {\n if (!regex.test(split[i])) {\n end = i;\n isSeparator = true;\n }\n if (isSeparator) {\n if (curPos.start >= start && curPos.end <= end) {\n // eslint-disable-next-line no-self-assign\n end = end;\n this.isTextSelected = true;\n break;\n }\n else {\n start = i + 1;\n isSeparator = false;\n }\n }\n }\n }\n else {\n start = curPos.start;\n end = curPos.end;\n this.isTextSelected = false;\n }\n return { start: start, end: end };\n };\n TimePicker.prototype.inputHandler = function (event) {\n if (!this.readonly && this.enabled) {\n if (event.action !== 'right' && event.action !== 'left' && event.action !== 'tab') {\n event.preventDefault();\n }\n switch (event.action) {\n case 'home':\n case 'end':\n case 'up':\n case 'down':\n if (!this.isPopupOpen()) {\n this.popupCreation();\n this.popupObj.destroy();\n this.popupObj = this.popupWrapper = null;\n }\n if (this.enableMask && !this.readonly && !this.isPopupOpen()) {\n event.preventDefault();\n this.notify('keyDownHandler', {\n module: 'MaskedDateTime',\n e: event\n });\n }\n if (!this.enableMask || this.isPopupOpen()) {\n this.keyHandler(event);\n }\n break;\n case 'enter':\n if (this.isNavigate) {\n this.selectedElement = this.liCollections[this.activeIndex];\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\n this.updateValue(this.valueWithMinutes, event);\n }\n else {\n this.updateValue(this.inputElement.value, event);\n }\n this.hide();\n this.isNavigate = false;\n if (this.isPopupOpen()) {\n event.stopPropagation();\n }\n break;\n case 'open':\n this.show(event);\n break;\n case 'escape':\n this.updateInputValue(this.objToString(this.value));\n if (this.enableMask) {\n if (!this.value) {\n this.updateInputValue(this.maskedDateValue);\n }\n this.createMask();\n }\n this.previousState(this.value);\n this.hide();\n break;\n case 'close':\n this.hide();\n break;\n case 'right':\n case 'left':\n case 'tab':\n case 'shiftTab':\n if (!this.isPopupOpen() && this.enableMask && !this.readonly) {\n if ((this.inputElement.selectionStart === 0 && this.inputElement.selectionEnd === this.inputElement.value.length) ||\n (this.inputElement.selectionEnd !== this.inputElement.value.length && event.action === 'tab') ||\n (this.inputElement.selectionStart !== 0 && event.action === 'shiftTab') || (event.action === 'left' || event.action === 'right')) {\n event.preventDefault();\n }\n this.notify('keyDownHandler', { module: 'MaskedDateTime',\n e: event\n });\n }\n break;\n default:\n this.isNavigate = false;\n break;\n }\n }\n };\n TimePicker.prototype.onMouseClick = function (event) {\n var target = event.target;\n var li = this.selectedElement = closest(target, '.' + LISTCLASS);\n this.setSelection(li, event);\n if (li && li.classList.contains(LISTCLASS)) {\n this.hide();\n }\n };\n TimePicker.prototype.closePopup = function (delay, e) {\n var _this = this;\n if (this.isPopupOpen() && this.popupWrapper) {\n var args = {\n popup: this.popupObj,\n event: e || null,\n cancel: false,\n name: 'open'\n };\n removeClass([document.body], OVERFLOW);\n this.trigger('close', args, function (args) {\n if (!args.cancel) {\n var animModel = {\n name: 'FadeOut',\n duration: ANIMATIONDURATION,\n delay: delay ? delay : 0\n };\n _this.popupObj.hide(new Animation(animModel));\n removeClass([_this.inputWrapper.container], [ICONANIMATION]);\n attributes(_this.inputElement, { 'aria-expanded': 'false' });\n _this.inputElement.removeAttribute('aria-owns');\n _this.inputElement.removeAttribute('aria-activedescendant');\n EventHandler.remove(document, 'mousedown touchstart', _this.documentClickHandler);\n }\n if (Browser.isDevice && _this.modal) {\n _this.modal.style.display = 'none';\n _this.modal.outerHTML = '';\n _this.modal = null;\n }\n if (Browser.isDevice) {\n if (!isNullOrUndefined(_this.mobileTimePopupWrap)) {\n _this.mobileTimePopupWrap.remove();\n _this.mobileTimePopupWrap = null;\n }\n }\n if (Browser.isDevice && _this.allowEdit && !_this.readonly) {\n _this.inputElement.removeAttribute('readonly');\n }\n });\n }\n else {\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\n this.inputElement.removeAttribute('readonly');\n }\n }\n };\n TimePicker.prototype.disposeServerPopup = function () {\n if (this.popupWrapper) {\n this.popupWrapper.style.visibility = 'hidden';\n this.popupWrapper.style.top = '-9999px';\n this.popupWrapper.style.left = '-9999px';\n this.popupWrapper.style.width = '0px';\n this.popupWrapper.style.height = '0px';\n }\n };\n TimePicker.prototype.checkValueChange = function (event, isNavigation) {\n if (!this.strictMode && !this.validateState(this.valueWithMinutes)) {\n if (this.checkDateValue(this.valueWithMinutes) === null) {\n this.initValue = this.valueWithMinutes = null;\n }\n this.setProperties({ value: this.compareFormatChange(this.inputElement.value) }, true);\n this.initValue = this.valueWithMinutes = this.compareFormatChange(this.inputElement.value);\n this.prevValue = this.inputElement.value;\n if (+this.prevDate !== +this.value) {\n this.changeEvent(event);\n }\n }\n else {\n if (!isNavigation) {\n if ((this.prevValue !== this.inputElement.value) || isNullOrUndefined(this.checkDateValue(this.value))) {\n this.valueProcess(event, this.compareFormatChange(this.inputElement.value));\n }\n }\n else {\n var value = this.getDateObject(new Date(this.timeCollections[this.activeIndex]));\n if (+this.prevDate !== +value) {\n this.valueProcess(event, value);\n }\n }\n }\n };\n TimePicker.prototype.onMouseOver = function (event) {\n var currentLi = closest(event.target, '.' + LISTCLASS);\n this.setHover(currentLi, HOVER);\n };\n TimePicker.prototype.setHover = function (li, className) {\n if (this.enabled && this.isValidLI(li) && !li.classList.contains(className)) {\n this.removeHover(className);\n addClass([li], className);\n if (className === NAVIGATION) {\n li.setAttribute('aria-selected', 'true');\n }\n }\n };\n TimePicker.prototype.setSelection = function (li, event) {\n if (this.isValidLI(li)) {\n this.checkValue(li.getAttribute('data-value'));\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime', navigated: true\n });\n }\n this.selectedElement = li;\n this.activeIndex = Array.prototype.slice.call(this.liCollections).indexOf(li);\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\n addClass([this.selectedElement], SELECTED);\n this.selectedElement.setAttribute('aria-selected', 'true');\n this.checkValueChange(event, true);\n }\n };\n TimePicker.prototype.onMouseLeave = function () {\n this.removeHover(HOVER);\n };\n TimePicker.prototype.scrollHandler = function () {\n if (this.getModuleName() === 'timepicker' && Browser.isDevice) {\n return;\n }\n else {\n this.hide();\n }\n };\n TimePicker.prototype.setMinMax = function (minVal, maxVal) {\n if (isNullOrUndefined(this.checkDateValue(minVal))) {\n this.initMin = this.getDateObject('12:00:00 AM');\n }\n if (isNullOrUndefined(this.checkDateValue(maxVal))) {\n this.initMax = this.getDateObject('11:59:59 PM');\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n TimePicker.prototype.validateMinMax = function (dateVal, minVal, maxVal) {\n var value = dateVal instanceof Date ? dateVal : this.getDateObject(dateVal);\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n dateVal = this.strictOperation(this.initMin, this.initMax, dateVal, value);\n }\n else if (+(this.createDateObj(this.getFormattedValue(this.initMin))) >\n +(this.createDateObj(this.getFormattedValue(this.initMax)))) {\n this.disableTimeIcon();\n }\n if (this.strictMode) {\n dateVal = this.valueIsDisable(dateVal) ? dateVal : null;\n }\n this.checkErrorState(dateVal);\n return dateVal;\n };\n TimePicker.prototype.valueIsDisable = function (value) {\n if (this.disableItemCollection.length > 0) {\n if (this.disableItemCollection.length === this.timeCollections.length) {\n return false;\n }\n var time = value instanceof Date ? this.objToString(value) : value;\n for (var index = 0; index < this.disableItemCollection.length; index++) {\n if (time === this.disableItemCollection[index]) {\n return false;\n }\n }\n }\n return true;\n };\n TimePicker.prototype.validateState = function (val) {\n if (!this.strictMode) {\n if (this.valueIsDisable(val)) {\n var value = typeof val === 'string' ? this.setCurrentDate(this.getDateObject(val)) :\n this.setCurrentDate(this.getDateObject(val));\n var maxValue = this.setCurrentDate(this.getDateObject(this.initMax));\n var minValue = this.setCurrentDate(this.getDateObject(this.initMin));\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n if ((+(value) > +(maxValue)) || (+(value) < +(minValue))) {\n return false;\n }\n }\n else {\n if ((+(maxValue) < +(minValue)) || this.inputElement.value !== '') {\n return false;\n }\n }\n }\n else {\n return false;\n }\n }\n return true;\n };\n TimePicker.prototype.strictOperation = function (minimum, maximum, dateVal, val) {\n var maxValue = this.createDateObj(this.getFormattedValue(maximum));\n var minValue = this.createDateObj(this.getFormattedValue(minimum));\n var value = this.createDateObj(this.getFormattedValue(val));\n if (this.strictMode) {\n if (+minValue > +maxValue) {\n this.disableTimeIcon();\n this.initValue = this.getDateObject(maxValue);\n this.updateInputValue(this.getValue(this.initValue));\n if (this.enableMask) {\n this.createMask();\n }\n return this.inputElement.value;\n }\n else if (+minValue >= +value) {\n return this.getDateObject(minValue);\n }\n else if (+value >= +maxValue || +minValue === +maxValue) {\n return this.getDateObject(maxValue);\n }\n }\n else {\n if (+minValue > +maxValue) {\n this.disableTimeIcon();\n if (!isNaN(+this.createDateObj(dateVal))) {\n return dateVal;\n }\n }\n }\n return dateVal;\n };\n TimePicker.prototype.bindEvents = function () {\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.popupHandler, this);\n EventHandler.add(this.inputElement, 'blur', this.inputBlurHandler, this);\n EventHandler.add(this.inputElement, 'focus', this.inputFocusHandler, this);\n EventHandler.add(this.inputElement, 'change', this.inputChangeHandler, this);\n EventHandler.add(this.inputElement, 'input', this.inputEventHandler, this);\n if (this.enableMask) {\n EventHandler.add(this.inputElement, 'keydown', this.keydownHandler, this);\n }\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.clearHandler, this);\n }\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n if (!Browser.isDevice) {\n this.keyConfigure = extend(this.keyConfigure, this.keyConfigs);\n this.inputEvent = new KeyboardEvents(this.inputWrapper.container, {\n keyAction: this.inputHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n if (this.showClearButton && this.inputElement) {\n EventHandler.add(this.inputElement, 'mousedown', this.mouseDownHandler, this);\n }\n }\n };\n TimePicker.prototype.keydownHandler = function (e) {\n switch (e.code) {\n case 'Delete':\n if (this.enableMask && !this.popupObj && !this.readonly) {\n this.notify('keyDownHandler', {\n module: 'MaskedDateTime',\n e: e\n });\n }\n break;\n default:\n break;\n }\n };\n TimePicker.prototype.formResetHandler = function () {\n if (!this.enabled) {\n return;\n }\n if (!this.inputElement.disabled) {\n var timeValue = this.inputElement.getAttribute('value');\n var val = this.checkDateValue(this.inputEleValue);\n if (this.element.tagName === 'EJS-TIMEPICKER') {\n val = null;\n timeValue = '';\n this.inputElement.setAttribute('value', '');\n }\n this.setProperties({ value: val }, true);\n this.prevDate = this.value;\n this.valueWithMinutes = this.value;\n this.initValue = this.value;\n if (this.inputElement) {\n this.updateInputValue(timeValue);\n if (this.enableMask) {\n if (!timeValue) {\n this.updateInputValue(this.maskedDateValue);\n }\n this.createMask();\n }\n this.checkErrorState(timeValue);\n this.prevValue = this.inputElement.value;\n }\n }\n };\n TimePicker.prototype.inputChangeHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n e.stopPropagation();\n };\n TimePicker.prototype.inputEventHandler = function () {\n if (this.enableMask) {\n this.notify('inputHandler', {\n module: 'MaskedDateTime'\n });\n }\n };\n TimePicker.prototype.unBindEvents = function () {\n if (this.inputWrapper) {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown touchstart', this.popupHandler);\n }\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\n EventHandler.remove(this.inputElement, 'focus', this.inputFocusHandler);\n EventHandler.remove(this.inputElement, 'change', this.inputChangeHandler);\n EventHandler.remove(this.inputElement, 'input', this.inputEventHandler);\n if (this.inputEvent) {\n this.inputEvent.destroy();\n }\n EventHandler.remove(this.inputElement, 'mousedown touchstart', this.mouseDownHandler);\n if (this.showClearButton && !isNullOrUndefined(this.inputWrapper) && !isNullOrUndefined(this.inputWrapper.clearButton)) {\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown touchstart', this.clearHandler);\n }\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n };\n TimePicker.prototype.bindClearEvent = function () {\n if (this.showClearButton && this.inputWrapper.clearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.clearHandler, this);\n }\n };\n TimePicker.prototype.raiseClearedEvent = function (e) {\n var clearedArgs = {\n event: e\n };\n this.trigger('cleared', clearedArgs);\n };\n TimePicker.prototype.clearHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n e.preventDefault();\n if (!isNullOrUndefined(this.value)) {\n this.clear(e);\n }\n else {\n this.resetState();\n this.raiseClearedEvent(e);\n }\n if (this.popupWrapper) {\n this.popupWrapper.scrollTop = 0;\n }\n if (this.enableMask) {\n this.notify('clearHandler', {\n module: 'MaskedDateTime'\n });\n }\n if (closest(this.element, 'form')) {\n var element = this.element;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n TimePicker.prototype.clear = function (event) {\n this.setProperties({ value: null }, true);\n this.initValue = null;\n this.resetState();\n this.raiseClearedEvent(event);\n this.changeEvent(event);\n };\n TimePicker.prototype.setZIndex = function () {\n if (this.popupObj) {\n this.popupObj.zIndex = this.zIndex;\n this.popupObj.dataBind();\n }\n };\n TimePicker.prototype.checkAttributes = function (isDynamic) {\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['step', 'disabled', 'readonly', 'style', 'name', 'value', 'min', 'max', 'placeholder'];\n var value;\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var prop = attributes_1[_i];\n if (!isNullOrUndefined(this.inputElement.getAttribute(prop))) {\n switch (prop) {\n case 'disabled':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['enabled'] === undefined)) || isDynamic) {\n var enabled = this.inputElement.getAttribute(prop) === 'disabled' ||\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? false : true;\n this.setProperties({ enabled: enabled }, !isDynamic);\n }\n break;\n case 'style':\n this.inputStyle = this.inputElement.getAttribute(prop);\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['readonly'] === undefined)) || isDynamic) {\n var readonly = this.inputElement.getAttribute(prop) === 'readonly' ||\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !isDynamic);\n }\n break;\n case 'name':\n this.inputElement.setAttribute('name', this.inputElement.getAttribute(prop));\n break;\n case 'step':\n this.step = parseInt(this.inputElement.getAttribute(prop), 10);\n break;\n case 'placeholder':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.inputElement.getAttribute(prop) }, !isDynamic);\n }\n break;\n case 'min':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['min'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n this.setProperties({ min: value }, !isDynamic);\n }\n }\n break;\n case 'max':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['max'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n this.setProperties({ max: value }, !isDynamic);\n }\n }\n break;\n case 'value':\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['value'] === undefined)) || isDynamic) {\n value = new Date(this.inputElement.getAttribute(prop));\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n this.initValue = value;\n this.updateInput(false, this.initValue);\n this.setProperties({ value: value }, !isDynamic);\n }\n }\n break;\n }\n }\n }\n };\n TimePicker.prototype.setCurrentDate = function (value) {\n if (isNullOrUndefined(this.checkDateValue(value))) {\n return null;\n }\n return new Date(YEAR, MONTH, DAY, value.getHours(), value.getMinutes(), value.getSeconds());\n };\n TimePicker.prototype.getTextFormat = function () {\n var time = 0;\n if (this.cldrTimeFormat().split(' ')[0] === 'a' || this.cldrTimeFormat().indexOf('a') === 0) {\n time = 1;\n }\n else if (this.cldrTimeFormat().indexOf('a') < 0) {\n var strArray = this.cldrTimeFormat().split(' ');\n for (var i = 0; i < strArray.length; i++) {\n if (strArray[i].toLowerCase().indexOf('h') >= 0) {\n time = i;\n break;\n }\n }\n }\n return time;\n };\n TimePicker.prototype.updateValue = function (value, event) {\n var val;\n if (this.isNullOrEmpty(value)) {\n this.resetState();\n }\n else {\n val = this.checkValue(value);\n if (this.strictMode) {\n // this case set previous value to the text box when set invalid date\n var inputVal = (val === null && value.trim().length > 0) ?\n this.previousState(this.prevDate) : this.inputElement.value;\n this.updateInputValue(inputVal);\n if (this.enableMask) {\n if (!inputVal) {\n this.updateInputValue(this.maskedDateValue);\n }\n if (isNullOrUndefined(val) && value !== this.maskedDateValue) {\n this.createMask();\n }\n if (isNullOrUndefined(val) && value === this.maskedDateValue) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n }\n }\n this.checkValueChange(event, typeof value === 'string' ? false : true);\n };\n TimePicker.prototype.previousState = function (date) {\n var value = this.getDateObject(date);\n for (var i = 0; i < this.timeCollections.length; i++) {\n if (+value === this.timeCollections[i]) {\n this.activeIndex = i;\n this.selectedElement = this.liCollections[i];\n this.valueWithMinutes = new Date(this.timeCollections[i]);\n break;\n }\n }\n return this.prevValue;\n };\n TimePicker.prototype.resetState = function () {\n this.removeSelection();\n Input.setValue('', this.inputElement, this.floatLabelType, false);\n this.valueWithMinutes = this.activeIndex = null;\n if (!this.strictMode) {\n this.checkErrorState(null);\n }\n };\n TimePicker.prototype.objToString = function (val) {\n if (isNullOrUndefined(this.checkDateValue(val))) {\n return null;\n }\n else {\n return this.globalize.formatDate(val, { format: this.cldrTimeFormat(), type: 'time' });\n }\n };\n TimePicker.prototype.checkValue = function (value) {\n if (!this.isNullOrEmpty(value)) {\n var date = value instanceof Date ? value : this.getDateObject(value);\n return this.validateValue(date, value);\n }\n this.resetState();\n return this.valueWithMinutes = null;\n };\n TimePicker.prototype.validateValue = function (date, value) {\n var time;\n var val = this.validateMinMax(value, this.min, this.max);\n var newval = this.createDateObj(val);\n if (this.getFormattedValue(newval) !== this.getFormattedValue(this.value)) {\n this.valueWithMinutes = isNullOrUndefined(newval) ? null : newval;\n time = this.objToString(this.valueWithMinutes);\n }\n else {\n if (this.strictMode) {\n //for strict mode case, when value not present within a range. Reset the nearest range value.\n date = newval;\n }\n this.valueWithMinutes = this.checkDateValue(date);\n time = this.objToString(this.valueWithMinutes);\n }\n if (!this.strictMode && isNullOrUndefined(time)) {\n var value_1 = val.trim().length > 0 ? val : '';\n this.updateInputValue(value_1);\n if (this.enableMask) {\n if (!value_1) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n }\n else {\n this.updateInputValue(time);\n if (this.enableMask) {\n if (time === '') {\n this.updateInputValue(this.maskedDateValue);\n }\n if (isNullOrUndefined(time) && value !== this.maskedDateValue) {\n this.createMask();\n }\n if (isNullOrUndefined(time) && value === this.maskedDateValue) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n }\n return time;\n };\n TimePicker.prototype.createMask = function () {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n };\n TimePicker.prototype.findNextElement = function (event) {\n var textVal = (this.inputElement).value;\n var value = isNullOrUndefined(this.valueWithMinutes) ? this.createDateObj(textVal) :\n this.getDateObject(this.valueWithMinutes);\n var timeVal = null;\n var count = this.liCollections.length;\n var collections = this.timeCollections;\n if (!isNullOrUndefined(this.checkDateValue(value)) || !isNullOrUndefined(this.activeIndex)) {\n if (event.action === 'home') {\n var index = this.validLiElement(0);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n }\n else if (event.action === 'end') {\n var index = this.validLiElement(collections.length - 1, true);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n }\n else {\n if (event.action === 'down') {\n for (var i = 0; i < count; i++) {\n if (+value < this.timeCollections[i]) {\n var index = this.validLiElement(i);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n break;\n }\n else if (i === count - 1) {\n var index = this.validLiElement(0);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n break;\n }\n }\n }\n else {\n for (var i = count - 1; i >= 0; i--) {\n if (+value > this.timeCollections[i]) {\n var index = this.validLiElement(i, true);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n break;\n }\n else if (i === 0) {\n var index = this.validLiElement(count - 1);\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\n this.activeIndex = index;\n break;\n }\n }\n }\n }\n this.selectedElement = this.liCollections[this.activeIndex];\n this.elementValue(isNullOrUndefined(timeVal) ? null : new Date(timeVal));\n }\n else {\n this.selectNextItem(event);\n }\n };\n TimePicker.prototype.selectNextItem = function (event) {\n var index = this.validLiElement(0, event.action === 'down' ? false : true);\n this.activeIndex = index;\n this.selectedElement = this.liCollections[index];\n this.elementValue(new Date(this.timeCollections[index]));\n };\n TimePicker.prototype.elementValue = function (value) {\n if (!isNullOrUndefined(this.checkDateValue(value))) {\n this.checkValue(value);\n }\n };\n TimePicker.prototype.validLiElement = function (index, backward) {\n var elementIndex = null;\n var items = isNullOrUndefined(this.popupWrapper) ? this.liCollections :\n this.popupWrapper.querySelectorAll('.' + LISTCLASS);\n var isCheck = true;\n if (items.length) {\n if (backward) {\n for (var i = index; i >= 0; i--) {\n if (!items[i].classList.contains(DISABLED)) {\n elementIndex = i;\n break;\n }\n else if (i === 0) {\n if (isCheck) {\n index = i = items.length;\n isCheck = false;\n }\n }\n }\n }\n else {\n for (var i = index; i <= items.length - 1; i++) {\n if (!items[i].classList.contains(DISABLED)) {\n elementIndex = i;\n break;\n }\n else if (i === items.length - 1) {\n if (isCheck) {\n index = i = -1;\n isCheck = false;\n }\n }\n }\n }\n }\n return elementIndex;\n };\n TimePicker.prototype.keyHandler = function (event) {\n if (isNullOrUndefined(this.step) || this.step <= 0 || !isNullOrUndefined(this.inputWrapper)\n && this.inputWrapper.buttons[0].classList.contains(DISABLED)) {\n return;\n }\n var count = this.timeCollections.length;\n if (isNullOrUndefined(this.getActiveElement()) || this.getActiveElement().length === 0) {\n if (this.liCollections.length > 0) {\n if (isNullOrUndefined(this.value) && isNullOrUndefined(this.activeIndex)) {\n var index = this.validLiElement(0, event.action === 'down' ? false : true);\n this.activeIndex = index;\n this.selectedElement = this.liCollections[index];\n this.elementValue(new Date(this.timeCollections[index]));\n }\n else {\n this.findNextElement(event);\n }\n }\n else {\n this.findNextElement(event);\n }\n }\n else {\n var nextItem = void 0;\n if ((event.keyCode >= 37) && (event.keyCode <= 40)) {\n var index = (event.keyCode === 40 || event.keyCode === 39) ? ++this.activeIndex : --this.activeIndex;\n this.activeIndex = index = this.activeIndex === (count) ? 0 : this.activeIndex;\n this.activeIndex = index = this.activeIndex < 0 ? (count - 1) : this.activeIndex;\n this.activeIndex = index = this.validLiElement(this.activeIndex, (event.keyCode === 40 || event.keyCode === 39) ?\n false : true);\n nextItem = isNullOrUndefined(this.timeCollections[index]) ?\n this.timeCollections[0] : this.timeCollections[index];\n }\n else if (event.action === 'home') {\n var index = this.validLiElement(0);\n this.activeIndex = index;\n nextItem = this.timeCollections[index];\n }\n else if (event.action === 'end') {\n var index = this.validLiElement(count - 1, true);\n this.activeIndex = index;\n nextItem = this.timeCollections[index];\n }\n this.selectedElement = this.liCollections[this.activeIndex];\n this.elementValue(new Date(nextItem));\n }\n this.isNavigate = true;\n this.setHover(this.selectedElement, NAVIGATION);\n this.setActiveDescendant();\n this.selectInputText();\n if (this.isPopupOpen() && this.selectedElement !== null && (!event || event.type !== 'click')) {\n this.setScrollPosition();\n }\n };\n TimePicker.prototype.getCultureTimeObject = function (ld, c) {\n return getValue('main.' + c + '.dates.calendars.gregorian.timeFormats.short', ld);\n };\n TimePicker.prototype.getCultureDateObject = function (ld, c) {\n return getValue('main.' + c + '.dates.calendars.gregorian.dateFormats.short', ld);\n };\n TimePicker.prototype.wireListEvents = function () {\n EventHandler.add(this.listWrapper, 'click', this.onMouseClick, this);\n if (!Browser.isDevice) {\n EventHandler.add(this.listWrapper, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.listWrapper, 'mouseout', this.onMouseLeave, this);\n }\n };\n TimePicker.prototype.unWireListEvents = function () {\n if (this.listWrapper) {\n EventHandler.remove(this.listWrapper, 'click', this.onMouseClick);\n if (!Browser.isDevice) {\n EventHandler.remove(this.listWrapper, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.listWrapper, 'mouseout', this.onMouseLeave);\n }\n }\n };\n TimePicker.prototype.valueProcess = function (event, value) {\n var result = (isNullOrUndefined(this.checkDateValue(value))) ? null : value;\n if (+this.prevDate !== +result) {\n this.initValue = result;\n this.changeEvent(event);\n }\n };\n TimePicker.prototype.changeEvent = function (e) {\n this.addSelection();\n this.updateInput(true, this.initValue);\n var eventArgs = {\n event: (e || null),\n value: this.value,\n text: (this.inputElement).value,\n isInteracted: !isNullOrUndefined(e),\n element: this.element\n };\n eventArgs.value = this.valueWithMinutes || this.getDateObject(this.inputElement.value);\n this.prevDate = this.valueWithMinutes || this.getDateObject(this.inputElement.value);\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', eventArgs);\n }\n this.invalidValueString = null;\n this.checkErrorState(this.value);\n };\n TimePicker.prototype.updateInput = function (isUpdate, date) {\n if (isUpdate) {\n this.prevValue = this.getValue(date);\n }\n this.prevDate = this.valueWithMinutes = date;\n if ((typeof date !== 'number') || (this.value && +new Date(+this.value).setMilliseconds(0)) !== +date) {\n this.setProperties({ value: date }, true);\n if (this.enableMask) {\n this.createMask();\n }\n }\n if (!this.strictMode && isNullOrUndefined(this.value) && this.invalidValueString) {\n this.checkErrorState(this.invalidValueString);\n this.updateInputValue(this.invalidValueString);\n }\n this.clearIconState();\n };\n TimePicker.prototype.setActiveDescendant = function () {\n if (!isNullOrUndefined(this.selectedElement) && this.value) {\n attributes(this.inputElement, { 'aria-activedescendant': this.selectedElement.getAttribute('id') });\n }\n else {\n this.inputElement.removeAttribute('aria-activedescendant');\n }\n };\n TimePicker.prototype.removeSelection = function () {\n this.removeHover(HOVER);\n if (!isNullOrUndefined(this.popupWrapper)) {\n var items = this.popupWrapper.querySelectorAll('.' + SELECTED);\n if (items.length) {\n removeClass(items, SELECTED);\n items[0].removeAttribute('aria-selected');\n }\n }\n };\n TimePicker.prototype.removeHover = function (className) {\n var hoveredItem = this.getHoverItem(className);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, className);\n if (className === NAVIGATION) {\n hoveredItem[0].removeAttribute('aria-selected');\n }\n }\n };\n TimePicker.prototype.getHoverItem = function (className) {\n var hoveredItem;\n if (!isNullOrUndefined(this.popupWrapper)) {\n hoveredItem = this.popupWrapper.querySelectorAll('.' + className);\n }\n return hoveredItem;\n };\n TimePicker.prototype.setActiveClass = function () {\n if (!isNullOrUndefined(this.popupWrapper)) {\n var items = this.popupWrapper.querySelectorAll('.' + LISTCLASS);\n if (items.length) {\n for (var i = 0; i < items.length; i++) {\n if ((this.timeCollections[i] === +this.getDateObject(this.valueWithMinutes))) {\n items[i].setAttribute('aria-selected', 'true');\n this.selectedElement = items[i];\n this.activeIndex = i;\n break;\n }\n }\n }\n }\n };\n TimePicker.prototype.addSelection = function () {\n this.selectedElement = null;\n this.removeSelection();\n this.setActiveClass();\n if (!isNullOrUndefined(this.selectedElement)) {\n addClass([this.selectedElement], SELECTED);\n this.selectedElement.setAttribute('aria-selected', 'true');\n }\n };\n TimePicker.prototype.isValidLI = function (li) {\n return (li && li.classList.contains(LISTCLASS) && !li.classList.contains(DISABLED));\n };\n TimePicker.prototype.createDateObj = function (val) {\n var formatStr = null;\n var today = this.globalize.formatDate(new Date(), { format: formatStr, skeleton: 'short', type: 'date' });\n var value = null;\n if (typeof val === 'string') {\n if (val.toUpperCase().indexOf('AM') > -1 || val.toUpperCase().indexOf('PM') > -1) {\n today = this.defaultCulture.formatDate(new Date(), { format: formatStr, skeleton: 'short', type: 'date' });\n value = isNaN(+new Date(today + ' ' + val)) ? null : new Date(new Date(today + ' ' + val).setMilliseconds(0));\n if (isNullOrUndefined(value)) {\n value = this.timeParse(today, val);\n }\n }\n else {\n value = this.timeParse(today, val);\n }\n }\n else if (val instanceof Date) {\n value = val;\n }\n return value;\n };\n TimePicker.prototype.timeParse = function (today, val) {\n var value;\n value = this.globalize.parseDate(today + ' ' + val, {\n format: this.cldrDateFormat() + ' ' + this.cldrTimeFormat(), type: 'datetime'\n });\n value = isNullOrUndefined(value) ? this.globalize.parseDate(today + ' ' + val, {\n format: this.cldrDateFormat() + ' ' + this.dateToNumeric(), type: 'datetime'\n }) : value;\n value = isNullOrUndefined(value) ? value : new Date(value.setMilliseconds(0));\n return value;\n };\n TimePicker.prototype.createListItems = function () {\n var _this = this;\n this.listWrapper = this.createElement('div', { className: CONTENT, attrs: { 'tabindex': '-1' } });\n var start;\n var interval = this.step * 60000;\n var listItems = [];\n this.timeCollections = [];\n this.disableItemCollection = [];\n start = +(this.getDateObject(this.initMin).setMilliseconds(0));\n var end = +(this.getDateObject(this.initMax).setMilliseconds(0));\n while (end >= start) {\n this.timeCollections.push(start);\n listItems.push(this.globalize.formatDate(new Date(start), { format: this.cldrTimeFormat(), type: 'time' }));\n start += interval;\n }\n var listBaseOptions = {\n itemCreated: function (args) {\n var eventArgs = {\n element: args.item,\n text: args.text, value: _this.getDateObject(args.text), isDisabled: false\n };\n _this.trigger('itemRender', eventArgs, function (eventArgs) {\n if (eventArgs.isDisabled) {\n eventArgs.element.classList.add(DISABLED);\n }\n if (eventArgs.element.classList.contains(DISABLED)) {\n _this.disableItemCollection.push(eventArgs.element.getAttribute('data-value'));\n }\n });\n }\n };\n this.listTag = ListBase.createList(this.createElement, listItems, listBaseOptions, true);\n attributes(this.listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options', 'tabindex': '0' });\n append([this.listTag], this.listWrapper);\n };\n TimePicker.prototype.documentClickHandler = function (event) {\n var target = event.target;\n if ((!isNullOrUndefined(this.popupObj) && !isNullOrUndefined(this.inputWrapper) && (this.inputWrapper.container.contains(target) && event.type !== 'mousedown' ||\n (this.popupObj.element && this.popupObj.element.contains(target)))) && event.type !== 'touchstart') {\n event.preventDefault();\n }\n if (!(closest(target, '[id=\"' + this.popupObj.element.id + '\"]')) && target !== this.inputElement\n && target !== (this.inputWrapper && this.inputWrapper.buttons[0]) &&\n target !== (this.inputWrapper && this.inputWrapper.clearButton) &&\n target !== (this.inputWrapper && this.inputWrapper.container)) {\n if (this.isPopupOpen()) {\n this.hide();\n this.focusOut();\n }\n }\n else if (target !== this.inputElement) {\n if (!Browser.isDevice) {\n this.isPreventBlur = (Browser.isIE || Browser.info.name === 'edge') && (document.activeElement === this.inputElement)\n && (target === this.popupWrapper);\n }\n }\n };\n TimePicker.prototype.setEnableRtl = function () {\n Input.setEnableRtl(this.enableRtl, [this.inputWrapper.container]);\n if (this.popupObj) {\n this.popupObj.enableRtl = this.enableRtl;\n this.popupObj.dataBind();\n }\n };\n TimePicker.prototype.setEnable = function () {\n Input.setEnabled(this.enabled, this.inputElement, this.floatLabelType);\n if (this.enabled) {\n removeClass([this.inputWrapper.container], DISABLED);\n attributes(this.inputElement, { 'aria-disabled': 'false' });\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.hide();\n addClass([this.inputWrapper.container], DISABLED);\n attributes(this.inputElement, { 'aria-disabled': 'true' });\n this.inputElement.tabIndex = -1;\n }\n };\n TimePicker.prototype.getProperty = function (date, val) {\n if (val === 'min') {\n this.initMin = this.checkDateValue(new Date(this.checkInValue(date.min)));\n this.setProperties({ min: this.initMin }, true);\n }\n else {\n this.initMax = this.checkDateValue(new Date(this.checkInValue(date.max)));\n this.setProperties({ max: this.initMax }, true);\n }\n if (this.inputElement.value === '') {\n this.validateMinMax(this.value, this.min, this.max);\n }\n else {\n this.checkValue(this.inputElement.value);\n }\n this.checkValueChange(null, false);\n };\n TimePicker.prototype.inputBlurHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n // IE popup closing issue when click over the scrollbar\n if (this.isPreventBlur && this.isPopupOpen()) {\n this.inputElement.focus();\n return;\n }\n this.closePopup(0, e);\n if (this.enableMask && this.maskedDateValue && this.placeholder && this.floatLabelType !== 'Always') {\n if (this.inputElement.value === this.maskedDateValue && !this.value && (this.floatLabelType === 'Auto' || this.floatLabelType === 'Never' || this.placeholder)) {\n this.updateInputValue('');\n }\n }\n removeClass([this.inputWrapper.container], [FOCUS]);\n var blurArguments = {\n model: this\n };\n this.trigger('blur', blurArguments);\n if (this.getText() !== this.inputElement.value) {\n this.updateValue((this.inputElement).value, e);\n }\n else if (this.inputElement.value.trim().length === 0) {\n this.resetState();\n }\n this.cursorDetails = null;\n this.isNavigate = false;\n if (this.inputElement.value === '') {\n this.invalidValueString = null;\n }\n };\n /**\n * Focuses out the TimePicker textbox element.\n *\n * @returns {void}\n */\n TimePicker.prototype.focusOut = function () {\n if (document.activeElement === this.inputElement) {\n this.inputElement.blur();\n removeClass([this.inputWrapper.container], [FOCUS]);\n var blurArguments = {\n model: this\n };\n this.trigger('blur', blurArguments);\n }\n };\n TimePicker.prototype.isPopupOpen = function () {\n if (this.popupWrapper && this.popupWrapper.classList.contains('' + ROOT)) {\n return true;\n }\n return false;\n };\n TimePicker.prototype.inputFocusHandler = function () {\n if (!this.enabled) {\n return;\n }\n var focusArguments = {\n model: this\n };\n if (!this.readonly && !Browser.isDevice && !this.enableMask) {\n this.selectInputText();\n }\n if (this.enableMask && !this.inputElement.value && this.placeholder) {\n if (this.maskedDateValue && !this.value && (this.floatLabelType === 'Auto' || this.floatLabelType === 'Never' || this.placeholder)) {\n this.updateInputValue(this.maskedDateValue);\n this.inputElement.selectionStart = 0;\n this.inputElement.selectionEnd = this.inputElement.value.length;\n }\n }\n this.trigger('focus', focusArguments);\n this.clearIconState();\n if (this.openOnFocus) {\n this.show();\n }\n };\n /**\n * Focused the TimePicker textbox element.\n *\n * @returns {void}\n */\n TimePicker.prototype.focusIn = function () {\n if (document.activeElement !== this.inputElement && this.enabled) {\n this.inputElement.focus();\n }\n };\n /**\n * Hides the TimePicker popup.\n *\n * @returns {void}\n\n */\n TimePicker.prototype.hide = function () {\n this.closePopup(100, null);\n this.clearIconState();\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Opens the popup to show the list items.\n *\n * @returns {void}\n\n */\n TimePicker.prototype.show = function (event) {\n var _this = this;\n if ((this.enabled && this.readonly) || !this.enabled || this.popupWrapper) {\n return;\n }\n else {\n this.popupCreation();\n if (Browser.isDevice && this.listWrapper) {\n this.modal = this.createElement('div');\n this.modal.className = '' + ROOT + ' e-time-modal';\n document.body.className += ' ' + OVERFLOW;\n document.body.appendChild(this.modal);\n }\n if (Browser.isDevice) {\n this.mobileTimePopupWrap = this.createElement('div', { className: 'e-timepicker-mob-popup-wrap' });\n document.body.appendChild(this.mobileTimePopupWrap);\n }\n this.openPopupEventArgs = {\n popup: this.popupObj || null,\n cancel: false,\n event: event || null,\n name: 'open',\n appendTo: Browser.isDevice ? this.mobileTimePopupWrap : document.body\n };\n var eventArgs = this.openPopupEventArgs;\n this.trigger('open', eventArgs, function (eventArgs) {\n _this.openPopupEventArgs = eventArgs;\n if (!_this.openPopupEventArgs.cancel && !_this.inputWrapper.buttons[0].classList.contains(DISABLED)) {\n _this.openPopupEventArgs.appendTo.appendChild(_this.popupWrapper);\n _this.popupAlignment(_this.openPopupEventArgs);\n _this.setScrollPosition();\n if (!Browser.isDevice) {\n _this.inputElement.focus();\n }\n var openAnimation = {\n name: 'FadeIn',\n duration: ANIMATIONDURATION\n };\n _this.popupObj.refreshPosition(_this.anchor);\n if (_this.zIndex === 1000) {\n _this.popupObj.show(new Animation(openAnimation), _this.element);\n }\n else {\n _this.popupObj.show(new Animation(openAnimation), null);\n }\n _this.setActiveDescendant();\n attributes(_this.inputElement, { 'aria-expanded': 'true' });\n attributes(_this.inputElement, { 'aria-owns': _this.inputElement.id + '_options' });\n addClass([_this.inputWrapper.container], FOCUS);\n EventHandler.add(document, 'mousedown touchstart', _this.documentClickHandler, _this);\n _this.setOverlayIndex(_this.mobileTimePopupWrap, _this.popupObj.element, _this.modal, Browser.isDevice);\n }\n else {\n _this.popupObj.destroy();\n _this.popupWrapper = _this.listTag = undefined;\n _this.liCollections = _this.timeCollections = _this.disableItemCollection = [];\n _this.popupObj = null;\n }\n });\n }\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n TimePicker.prototype.setOverlayIndex = function (popupWrapper, timePopupElement, modal, isDevice) {\n if (isDevice && !isNullOrUndefined(timePopupElement) && !isNullOrUndefined(modal) && !isNullOrUndefined(popupWrapper)) {\n var index = parseInt(timePopupElement.style.zIndex, 10) ? parseInt(timePopupElement.style.zIndex, 10) : 1000;\n modal.style.zIndex = (index - 1).toString();\n popupWrapper.style.zIndex = index.toString();\n }\n };\n TimePicker.prototype.formatValues = function (type) {\n var value;\n if (typeof type === 'number') {\n value = formatUnit(type);\n }\n else if (typeof type === 'string') {\n value = (type.match(/px|%|em/)) ? type : isNaN(parseInt(type, 10)) ? type : formatUnit(type);\n }\n return value;\n };\n TimePicker.prototype.popupAlignment = function (args) {\n args.popup.position.X = this.formatValues(args.popup.position.X);\n args.popup.position.Y = this.formatValues(args.popup.position.Y);\n if (!isNaN(parseFloat(args.popup.position.X)) || !isNaN(parseFloat(args.popup.position.Y))) {\n this.popupObj.relateTo = this.anchor = document.body;\n this.popupObj.targetType = 'container';\n }\n if (!isNaN(parseFloat(args.popup.position.X))) {\n this.popupObj.offsetX = parseFloat(args.popup.position.X);\n }\n if (!isNaN(parseFloat(args.popup.position.Y))) {\n this.popupObj.offsetY = parseFloat(args.popup.position.Y);\n }\n if (!Browser.isDevice) {\n switch (args.popup.position.X) {\n case 'left':\n break;\n case 'right':\n args.popup.offsetX = this.containerStyle.width;\n break;\n case 'center':\n args.popup.offsetX = -(this.containerStyle.width / 2);\n break;\n }\n switch (args.popup.position.Y) {\n case 'top':\n break;\n case 'bottom':\n break;\n case 'center':\n args.popup.offsetY = -(this.containerStyle.height / 2);\n break;\n }\n if (args.popup.position.X === 'center' && args.popup.position.Y === 'center') {\n this.popupObj.relateTo = this.inputWrapper.container;\n this.anchor = this.inputElement;\n this.popupObj.targetType = 'relative';\n }\n }\n else {\n if (args.popup.position.X === 'center' && args.popup.position.Y === 'center') {\n this.popupObj.relateTo = this.anchor = document.body;\n this.popupObj.offsetY = 0;\n this.popupObj.targetType = 'container';\n this.popupObj.collision = { X: 'fit', Y: 'fit' };\n }\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the properties to be maintained upon browser refresh.\n *\n * @returns {string}\n */\n TimePicker.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * To get component name\n *\n * @returns {string} Returns the component name.\n * @private\n */\n TimePicker.prototype.getModuleName = function () {\n return 'timepicker';\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {TimePickerModel} newProp - Returns the dynamic property value of the component.\n * @param {TimePickerModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n TimePicker.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.inputElement);\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputElement, this.floatLabelType);\n if (this.readonly) {\n this.hide();\n }\n this.setTimeAllowEdit();\n break;\n case 'enabled':\n this.setProperties({ enabled: newProp.enabled }, true);\n this.setEnable();\n break;\n case 'allowEdit':\n this.setTimeAllowEdit();\n break;\n case 'enableRtl':\n this.setProperties({ enableRtl: newProp.enableRtl }, true);\n this.setEnableRtl();\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'zIndex':\n this.setProperties({ zIndex: newProp.zIndex }, true);\n this.setZIndex();\n break;\n case 'htmlAttributes':\n this.updateHtmlAttributeToElement();\n this.updateHtmlAttributeToWrapper();\n this.checkAttributes(true);\n break;\n case 'min':\n case 'max':\n this.getProperty(newProp, prop);\n break;\n case 'showClearButton':\n Input.setClearButton(this.showClearButton, this.inputElement, this.inputWrapper);\n this.bindClearEvent();\n break;\n case 'locale':\n this.setProperties({ locale: newProp.locale }, true);\n this.globalize = new Internationalization(this.locale);\n this.l10n.setLocale(this.locale);\n this.updatePlaceHolder();\n this.setValue(this.value);\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n break;\n case 'width':\n setStyleAttribute(this.inputWrapper.container, { 'width': this.setWidth(newProp.width) });\n this.containerStyle = this.inputWrapper.container.getBoundingClientRect();\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'format':\n this.setProperties({ format: newProp.format }, true);\n this.checkTimeFormat();\n this.setValue(this.value);\n if (this.enableMask) {\n this.createMask();\n if (!this.value) {\n this.updateInputValue(this.maskedDateValue);\n }\n }\n break;\n case 'value':\n this.invalidValueString = null;\n this.checkInvalidValue(newProp.value);\n newProp.value = this.value;\n if (!this.invalidValueString) {\n if (typeof newProp.value === 'string') {\n this.setProperties({ value: this.checkDateValue(new Date(newProp.value)) }, true);\n newProp.value = this.value;\n }\n else {\n if ((newProp.value && +new Date(+newProp.value).setMilliseconds(0)) !== +this.value) {\n newProp.value = this.checkDateValue(new Date('' + newProp.value));\n }\n }\n this.initValue = newProp.value;\n newProp.value = this.compareFormatChange(this.checkValue(newProp.value));\n }\n else {\n this.updateInputValue(this.invalidValueString);\n this.checkErrorState(this.invalidValueString);\n }\n if (this.enableMask && isNullOrUndefined(newProp.value)) {\n this.updateInputValue(this.maskedDateValue);\n this.checkErrorState(this.maskedDateValue);\n }\n this.checkValueChange(null, false);\n if (this.isPopupOpen()) {\n this.setScrollPosition();\n }\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n }\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n Input.removeFloating(this.inputWrapper);\n Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && !isNullOrUndefined(this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0]) && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'strictMode':\n this.invalidValueString = null;\n if (newProp.strictMode) {\n this.checkErrorState(null);\n }\n this.setProperties({ strictMode: newProp.strictMode }, true);\n this.checkValue((this.inputElement).value);\n this.checkValueChange(null, false);\n break;\n case 'scrollTo':\n if (this.checkDateValue(new Date(this.checkInValue(newProp.scrollTo)))) {\n if (this.popupWrapper) {\n this.setScrollTo();\n }\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkInValue(newProp.scrollTo))) }, true);\n }\n else {\n this.setProperties({ scrollTo: null }, true);\n }\n break;\n case 'enableMask':\n if (this.enableMask) {\n this.notify('createMask', {\n module: 'MaskedDateTime'\n });\n this.updateInputValue(this.maskedDateValue);\n }\n else {\n if (this.inputElement.value === this.maskedDateValue) {\n this.updateInputValue('');\n }\n }\n break;\n }\n }\n };\n TimePicker.prototype.checkInValue = function (inValue) {\n if (inValue instanceof Date) {\n return (inValue.toUTCString());\n }\n else {\n return ('' + inValue);\n }\n };\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"strictMode\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"format\", void 0);\n __decorate([\n Property(true)\n ], TimePicker.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"readonly\", void 0);\n __decorate([\n Property({})\n ], TimePicker.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property('Never')\n ], TimePicker.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"placeholder\", void 0);\n __decorate([\n Property(1000)\n ], TimePicker.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(true)\n ], TimePicker.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(30)\n ], TimePicker.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"scrollTo\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"min\", void 0);\n __decorate([\n Property(null)\n ], TimePicker.prototype, \"max\", void 0);\n __decorate([\n Property(true)\n ], TimePicker.prototype, \"allowEdit\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"openOnFocus\", void 0);\n __decorate([\n Property(false)\n ], TimePicker.prototype, \"enableMask\", void 0);\n __decorate([\n Property({ day: 'day', month: 'month', year: 'year', hour: 'hour', minute: 'minute', second: 'second', dayOfTheWeek: 'day of the week' })\n ], TimePicker.prototype, \"maskPlaceholder\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"itemRender\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"cleared\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], TimePicker.prototype, \"focus\", void 0);\n TimePicker = __decorate([\n NotifyPropertyChanges\n ], TimePicker);\n return TimePicker;\n}(Component));\nexport { TimePicker };\n/* eslint-enable @typescript-eslint/no-explicit-any */\n"],"sourceRoot":""}