@acorex/components 21.0.1-next.8 → 21.0.1-next.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/action-sheet/index.d.ts +41 -19
  2. package/conversation2/README.md +71 -31
  3. package/conversation2/index.d.ts +36 -35
  4. package/dialog/index.d.ts +18 -14
  5. package/dropdown/index.d.ts +3 -4
  6. package/fesm2022/acorex-components-action-sheet.mjs +141 -93
  7. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  8. package/fesm2022/acorex-components-conversation2.mjs +161 -155
  9. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  10. package/fesm2022/acorex-components-datetime-picker.mjs +10 -8
  11. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  12. package/fesm2022/acorex-components-dialog.mjs +66 -45
  13. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  14. package/fesm2022/acorex-components-dropdown.mjs +9 -8
  15. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  16. package/fesm2022/acorex-components-grid-layout-builder.mjs +2 -2
  17. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  18. package/fesm2022/acorex-components-kanban.mjs +26 -9
  19. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  20. package/fesm2022/acorex-components-loading-dialog.mjs +73 -36
  21. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  22. package/fesm2022/acorex-components-menu.mjs +26 -5
  23. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  24. package/fesm2022/{acorex-components-modal-acorex-components-modal-CXXcFToK.mjs → acorex-components-modal-acorex-components-modal-Bmoz9DL5.mjs} +27 -3
  25. package/fesm2022/acorex-components-modal-acorex-components-modal-Bmoz9DL5.mjs.map +1 -0
  26. package/fesm2022/{acorex-components-modal-modal-content.component-B4rhHeEz.mjs → acorex-components-modal-modal-content.component-CSJU1vRi.mjs} +2 -2
  27. package/fesm2022/{acorex-components-modal-modal-content.component-B4rhHeEz.mjs.map → acorex-components-modal-modal-content.component-CSJU1vRi.mjs.map} +1 -1
  28. package/fesm2022/acorex-components-modal.mjs +1 -1
  29. package/fesm2022/acorex-components-notification.mjs +374 -257
  30. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  31. package/fesm2022/acorex-components-popover.mjs +136 -175
  32. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  33. package/fesm2022/acorex-components-popup.mjs +308 -105
  34. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  35. package/fesm2022/acorex-components-routing-progress.mjs +2 -2
  36. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  37. package/fesm2022/acorex-components-toast.mjs +231 -123
  38. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  39. package/fesm2022/acorex-components-tooltip.mjs +2 -3
  40. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  41. package/kanban/index.d.ts +1 -7
  42. package/loading-dialog/index.d.ts +31 -15
  43. package/menu/index.d.ts +4 -0
  44. package/modal/index.d.ts +7 -0
  45. package/notification/index.d.ts +47 -32
  46. package/package.json +7 -7
  47. package/popover/index.d.ts +20 -27
  48. package/popup/index.d.ts +103 -27
  49. package/toast/index.d.ts +24 -18
  50. package/tooltip/index.d.ts +1 -2
  51. package/fesm2022/acorex-components-modal-acorex-components-modal-CXXcFToK.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-datetime-picker.mjs","sources":["../tmp-esm2022/datetime-picker/lib/datetime-picker.config.js","../tmp-esm2022/datetime-picker/lib/datetime-picker.component.js","../tmp-esm2022/datetime-picker/lib/datetime-picker.module.js","../tmp-esm2022/datetime-picker/acorex-components-datetime-picker.js"],"sourcesContent":["import { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\nexport const AX_DATETIME_PICKER_CONFIG = new InjectionToken('AX_DATETIME_PICKER_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'datetime-picker', AX_DATETIME_PICKER_CONFIG);\n return AXDateTimePickerDefaultConfig;\n },\n});\nexport const AXDateTimePickerDefaultConfig = {\n currentTimeButton: true,\n};\nexport function dateTimePickerConfig(config = {}) {\n const result = {\n ...AXDateTimePickerDefaultConfig,\n ...config,\n };\n return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTWhDLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUF5QiwyQkFBMkIsRUFBRTtJQUMvRyxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsR0FBRyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFELE9BQU8sNkJBQTZCLENBQUM7SUFDdkMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUEyQjtJQUNuRSxpQkFBaUIsRUFBRSxJQUFJO0NBQ3hCLENBQUM7QUFJRixNQUFNLFVBQVUsb0JBQW9CLENBQUMsU0FBc0MsRUFBRTtJQUMzRSxNQUFNLE1BQU0sR0FBRztRQUNiLEdBQUcsNkJBQTZCO1FBQ2hDLEdBQUcsTUFBTTtLQUNWLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhfR0xPQkFMX0NPTkZJRyB9IGZyb20gJ0BhY29yZXgvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWERhdGVUaW1lUGlja2VyQ29uZmlnIHtcbiAgY3VycmVudFRpbWVCdXR0b246IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEFYRGF0ZVRpbWVQaWNrZXJDb25maWc+KCdBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICBjb25zdCBnbG9iYWwgPSBpbmplY3QoQVhfR0xPQkFMX0NPTkZJRyk7XG4gICAgc2V0KGdsb2JhbCwgJ2RhdGV0aW1lLXBpY2tlcicsIEFYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcpO1xuICAgIHJldHVybiBBWERhdGVUaW1lUGlja2VyRGVmYXVsdENvbmZpZztcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQVhEYXRlVGltZVBpY2tlckRlZmF1bHRDb25maWc6IEFYRGF0ZVRpbWVQaWNrZXJDb25maWcgPSB7XG4gIGN1cnJlbnRUaW1lQnV0dG9uOiB0cnVlLFxufTtcblxuZXhwb3J0IHR5cGUgUGFydGlhbERhdGVUaW1lUGlja2VyQ29uZmlnID0gUGFydGlhbDxBWERhdGVUaW1lUGlja2VyQ29uZmlnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUaW1lUGlja2VyQ29uZmlnKGNvbmZpZzogUGFydGlhbERhdGVUaW1lUGlja2VyQ29uZmlnID0ge30pOiBBWERhdGVUaW1lUGlja2VyQ29uZmlnIHtcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIC4uLkFYRGF0ZVRpbWVQaWNrZXJEZWZhdWx0Q29uZmlnLFxuICAgIC4uLmNvbmZpZyxcbiAgfTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==","import { AXComponent, AXFocusableComponent, AXValuableComponent, MXValueComponent, } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXCalendarComponent, MXCalendarBaseComponent, } from '@acorex/components/calendar';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXPickerContainerComponent, AXPickerItemsComponent, AXPickerTitleComponent } from '@acorex/components/picker';\nimport { AXTabItemComponent, AXTabsComponent } from '@acorex/components/tabs';\nimport { AXFormatPipe, AXFormatService } from '@acorex/core/format';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation, computed, effect, forwardRef, inject, input, linkedSignal, signal, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AX_DATETIME_PICKER_CONFIG } from './datetime-picker.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\n/**\n * allows users to select a date and time from a calendar and time picker interface.\n *\n * @category Components\n */\nexport class AXDateTimePickerComponent extends classes(MXCalendarBaseComponent, (MXValueComponent)) {\n constructor() {\n super(...arguments);\n this.formatService = inject(AXFormatService);\n this.weekend = input([], ...(ngDevMode ? [{ debugName: \"weekend\" }] : []));\n this.weekdays = input([], ...(ngDevMode ? [{ debugName: \"weekdays\" }] : []));\n this.buttonText = computed(() => (this._activePart() === 'date' ? 'dateTime.today' : 'dateTime.now'), ...(ngDevMode ? [{ debugName: \"buttonText\" }] : []));\n this.defaultConfig = inject(AX_DATETIME_PICKER_CONFIG);\n this.pickerHoursMinValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerHoursMinValue\" }] : []));\n this.pickerHoursMaxValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerHoursMaxValue\" }] : []));\n this.pickerMinuteMinValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerMinuteMinValue\" }] : []));\n this.pickerMinuteMaxValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerMinuteMaxValue\" }] : []));\n this.pickerSecondMinValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerSecondMinValue\" }] : []));\n this.pickerSecondMaxValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerSecondMaxValue\" }] : []));\n /**\n * @ignore\n */\n this._currentTimeButton = this.defaultConfig.currentTimeButton;\n /**\n * @ignore\n */\n this.hours = Array(24)\n .fill(0)\n .map((m, i) => ({ id: i, text: i }));\n this.minutes = Array(60)\n .fill(0)\n .map((m, i) => ({ id: i, text: i }));\n /**\n * @ignore\n */\n this._parts = {\n year: {\n key: 'year',\n placeholder: 'yyyy',\n placeholders: ['YY', 'yy', 'YYYY', 'yyyy'],\n enabled: false,\n default: 2023,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.year.placeholder),\n },\n month: {\n key: 'month',\n placeholder: 'MM',\n placeholders: ['MMM', 'MMMM', 'MM', 'M'],\n enabled: false,\n default: 1,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.month.placeholder),\n },\n day: {\n key: 'day',\n placeholder: 'dd',\n placeholders: ['dd', 'd', 'E', 'dddd'],\n enabled: false,\n default: 1,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.day.placeholder),\n },\n hour: {\n key: 'hour',\n placeholder: 'HH',\n placeholders: ['HH', 'H', 'hh', 'h'],\n enabled: false,\n default: 0,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.hour.placeholder),\n },\n minute: {\n key: 'minute',\n placeholder: 'mm',\n placeholders: ['mm', 'm'],\n enabled: false,\n default: 0,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.minute.placeholder),\n },\n second: {\n key: 'second',\n placeholder: 'ss',\n placeholders: ['ss', 's'],\n enabled: false,\n default: 0,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.second.placeholder),\n },\n AMPM: {\n key: 'AMPM',\n placeholder: 'a',\n placeholders: ['a', 'A'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.AMPM.placeholder),\n },\n };\n /**\n * @ignore\n */\n this._activePart = signal('date', ...(ngDevMode ? [{ debugName: \"_activePart\" }] : []));\n // /**\n // * @ignore\n // */\n this.editingDateObj = linkedSignal(() => this.calendarService.now(this.calendar()), ...(ngDevMode ? [{ debugName: \"editingDateObj\" }] : []));\n /**\n * @description The calendar type to use for the datetime input.\n */\n this.calendar = input(null, ...(ngDevMode ? [{ debugName: \"calendar\" }] : []));\n this._calendarSystem = linkedSignal(() => this.calendar() ?? this.type, ...(ngDevMode ? [{ debugName: \"_calendarSystem\" }] : []));\n this.picker = input('datetime', ...(ngDevMode ? [{ debugName: \"picker\" }] : []));\n this.#effectPicker = effect(() => {\n if (this.picker() === 'time') {\n this.checkSelectedMinValue(this.calendarService.convert(this.minValue, this.calendar()));\n this.checkSelectedMaxValue(this.calendarService.convert(this.maxValue, this.calendar()));\n this._activePart.set('time');\n }\n else if (this.picker() === 'date') {\n this._activePart.set('date');\n }\n }, ...(ngDevMode ? [{ debugName: \"#effectPicker\" }] : []));\n this._format = linkedSignal(() => this.format() ?? this.localeService.activeProfile().formats[this.picker()]?.short ?? '', ...(ngDevMode ? [{ debugName: \"_format\" }] : []));\n /**\n * @deprecated use locale & mode instead\n */\n this.format = input(...(ngDevMode ? [undefined, { debugName: \"format\" }] : []));\n this.#effect = effect(() => {\n const profile = this.localeService.activeProfile();\n //\n if (!this.format()) {\n this._format.set(this.format() ?? profile.formats[this.picker()]?.short ?? '');\n }\n //\n if (!this.calendar()) {\n this._calendarSystem.set(profile.calendar.system);\n }\n //\n this.type = this._calendarSystem();\n //\n this._detectParts();\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n }\n /**\n * Determines whether a button for selecting the current time is displayed.\n */\n get currentTimeButton() {\n return this._currentTimeButton;\n }\n /**\n * Sets whether the button for selecting the current time is displayed.\n */\n set currentTimeButton(v) {\n this.setOption({\n name: 'currentTimeButton',\n value: v,\n });\n }\n /**\n * @ignore\n */\n get _hasDatePart() {\n return ['year', 'month', 'day'].some((k) => this._parts[k].enabled);\n }\n /**\n * @ignore\n */\n get _hasTimePart() {\n return ['hour', 'minute', 'second'].some((k) => this._parts[k].enabled);\n }\n #effectPicker;\n #effect;\n /**\n * @ignore\n */\n async ngOnInit() {\n super.ngOnInit();\n this._detectParts();\n this.minValueChange.subscribe((value) => {\n this.checkSelectedMinValue(this.calendarService.convert(value, this.calendar()));\n });\n this.maxValueChange.subscribe((value) => {\n this.checkSelectedMaxValue(this.calendarService.convert(value, this.calendar()));\n });\n }\n /**\n * Handles changes to the internal value of the component.\n * @param value - The new date value. If not provided, defaults to the current date.\n */\n internalValueChanged(value) {\n try {\n if (this.calendarService.isValidDate(value)) {\n this.editingDateObj.set(this.calendarService.create(value, this.calendar()));\n }\n else {\n throw new Error();\n }\n }\n catch {\n this.editingDateObj.set(this.calendarService.now(this.calendar()));\n }\n }\n /**\n * @ignore\n */\n _handleViewChanged(e) {\n this._activePart.set(e.tab.key);\n }\n /**\n * @ignore\n */\n _handlePickerOnValueChanged(e, part) {\n if (e.isUserInteraction) {\n this.editingDateObj.set(this.editingDateObj().set(part, Number(e.value['id'])));\n if (this.minValue) {\n const minv = this.calendarService.convert(this.minValue, this.calendar());\n if (this.editingDateObj().hour > minv.hour) {\n this.pickerMinuteMinValue.set(null);\n }\n else {\n this.pickerMinuteMinValue.set(minv.minute);\n }\n }\n if (this.maxValue) {\n const maxv = this.calendarService.convert(this.maxValue, this.calendar());\n if (this.editingDateObj().hour < maxv.hour) {\n this.pickerMinuteMaxValue.set(null);\n }\n else {\n this.pickerMinuteMaxValue.set(maxv.minute);\n }\n }\n }\n }\n /**\n * @ignore\n */\n _handleCalendarOnNavigate(e) {\n this.onNavigate.emit(e);\n }\n /**\n * @ignore\n */\n _handleCalendarOnValueChanged(e) {\n if (e.isUserInteraction) {\n const selectedValue = this.calendarService.create(e.value, this.calendar());\n const currentValue = this.calendarService\n .create(e.value, this.calendar())\n .set('day', selectedValue.dayOfMonth)\n .set('month', selectedValue.monthOfYear)\n .set('year', selectedValue.year);\n this.editingDateObj.set(currentValue);\n if (this._hasTimePart) {\n this._activePart.set('time');\n if (this.tabs && this._hasDatePart && this._hasTimePart) {\n this.tabs.select(1);\n }\n else {\n this.commitValue(this.editingDateObj().date, true);\n }\n }\n else {\n this.commitValue(this.editingDateObj().date, true);\n }\n this.checkSelectedMinValue(selectedValue);\n this.checkSelectedMaxValue(selectedValue);\n }\n }\n checkSelectedMinValue(selectedValue) {\n if (!this.minValue)\n return;\n if (!this.calendarService.isValidDate(this.minValue))\n return;\n if (selectedValue.isAfter(this.minValue, 'day')) {\n this.pickerHoursMinValue.set(null);\n this.pickerMinuteMinValue.set(null);\n this.pickerSecondMinValue.set(null);\n }\n else {\n const minv = this.calendarService.convert(this.minValue, this.calendar());\n this.pickerHoursMinValue.set(minv.hour);\n this.pickerMinuteMinValue.set(minv.minute);\n this.pickerSecondMinValue.set(minv.second);\n }\n }\n checkSelectedMaxValue(selectedValue) {\n if (!this.maxValue)\n return;\n if (!this.calendarService.isValidDate(this.maxValue))\n return;\n if (selectedValue.isBefore(this.maxValue, 'day')) {\n this.pickerHoursMaxValue.set(null);\n this.pickerMinuteMaxValue.set(null);\n this.pickerSecondMaxValue.set(null);\n }\n else {\n const maxv = this.calendarService.convert(this.maxValue, this.calendar());\n this.pickerHoursMaxValue.set(maxv.hour);\n this.pickerMinuteMaxValue.set(maxv.minute);\n this.pickerSecondMaxValue.set(maxv.second);\n }\n }\n /**\n * @ignore\n */\n _detectParts() {\n Object.values(this._parts).forEach((e) => {\n e.enabled = false;\n });\n const formatParts = this._format().split(/[^a-zA-Z]+/);\n formatParts.forEach((f) => {\n const found = Object.values(this._parts).find((c) => c.placeholders.some((d) => d == f));\n if (found) {\n found.enabled = true;\n found.placeholder = f;\n }\n });\n //this.cdr.markForCheck();\n }\n /**\n * @ignore\n */\n _handleSetClick() {\n this.commitValue(this.editingDateObj().date, true);\n this.checkSelectedMinValue(this.editingDateObj());\n this.checkSelectedMaxValue(this.editingDateObj());\n }\n /**\n * @ignore\n */\n _handleNowClick() {\n this.editingDateObj.set(this.calendarService.now(this.calendar()));\n this.commitValue(this.editingDateObj().date, true);\n this.checkSelectedMinValue(this.editingDateObj());\n this.checkSelectedMaxValue(this.editingDateObj());\n }\n /**\n * @ignore\n */\n isDisabled(date) {\n if (Array.isArray(this.disabledDates) && this.disabledDates.length != 0) {\n return this.disabledDates.some((d) => date.equal(d, 'day'));\n }\n else if (typeof this.disabledDates == 'function') {\n return this.disabledDates(date.date);\n }\n return false;\n }\n /**\n * @ignore\n */\n internalSetValue(value) {\n if (!value || !this.calendarService.isValidDate(value)) {\n return null;\n }\n const v = this.calendarService.convert(value, this.calendar());\n this.checkSelectedMinValue(this.calendarService.convert(v, this.calendar()));\n this.checkSelectedMaxValue(this.calendarService.convert(v, this.calendar()));\n if (this.isDisabled(v)) {\n return null;\n }\n if (this.minValue && this.calendarService.isValidDate(this.minValue) && v.isBefore(this.minValue)) {\n return this.minValue;\n }\n if (this.maxValue && this.calendarService.isValidDate(this.maxValue) && v.isAfter(this.maxValue)) {\n return this.maxValue;\n }\n return v.date;\n }\n isTodayDisabled() {\n const disabledDates = this.disabledDates;\n if (!disabledDates || !Array.isArray(disabledDates)) {\n return false;\n }\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return disabledDates.some((disabledDate) => {\n const disabled = new Date(disabledDate);\n disabled.setHours(0, 0, 0, 0);\n return today.getTime() === disabled.getTime();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDateTimePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: AXDateTimePickerComponent, isStandalone: true, selector: \"ax-datetime-picker\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: \"state\", publicName: \"state\", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: false, isRequired: false, transformFunction: null }, depth: { classPropertyName: \"depth\", publicName: \"depth\", isSignal: false, isRequired: false, transformFunction: null }, activeView: { classPropertyName: \"activeView\", publicName: \"activeView\", isSignal: false, isRequired: false, transformFunction: null }, minValue: { classPropertyName: \"minValue\", publicName: \"minValue\", isSignal: false, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: \"maxValue\", publicName: \"maxValue\", isSignal: false, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: \"disabledDates\", publicName: \"disabledDates\", isSignal: false, isRequired: false, transformFunction: null }, holidayDates: { classPropertyName: \"holidayDates\", publicName: \"holidayDates\", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: \"type\", publicName: \"type\", isSignal: false, isRequired: false, transformFunction: null }, cellTemplate: { classPropertyName: \"cellTemplate\", publicName: \"cellTemplate\", isSignal: false, isRequired: false, transformFunction: null }, cellClass: { classPropertyName: \"cellClass\", publicName: \"cellClass\", isSignal: false, isRequired: false, transformFunction: null }, showNavigation: { classPropertyName: \"showNavigation\", publicName: \"showNavigation\", isSignal: false, isRequired: false, transformFunction: null }, weekend: { classPropertyName: \"weekend\", publicName: \"weekend\", isSignal: true, isRequired: false, transformFunction: null }, weekdays: { classPropertyName: \"weekdays\", publicName: \"weekdays\", isSignal: true, isRequired: false, transformFunction: null }, currentTimeButton: { classPropertyName: \"currentTimeButton\", publicName: \"currentTimeButton\", isSignal: false, isRequired: false, transformFunction: null }, calendar: { classPropertyName: \"calendar\", publicName: \"calendar\", isSignal: true, isRequired: false, transformFunction: null }, picker: { classPropertyName: \"picker\", publicName: \"picker\", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: \"format\", publicName: \"format\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: \"valueChange\", stateChange: \"stateChange\", onValueChanged: \"onValueChanged\", onBlur: \"onBlur\", onFocus: \"onFocus\", onClick: \"onClick\", readonlyChange: \"readonlyChange\", disabledChange: \"disabledChange\", depthChange: \"depthChange\", typeChange: \"typeChange\", activeViewChange: \"activeViewChange\", disabledDatesChange: \"disabledDatesChange\", holidayDatesChange: \"holidayDatesChange\", onNavigate: \"onNavigate\", onSlotClick: \"onSlotClick\" }, providers: [\n { provide: AXComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimePickerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimePickerComponent),\n multi: true,\n },\n ], viewQueries: [{ propertyName: \"tabs\", first: true, predicate: AXTabsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: \"@if (_hasDatePart && _hasTimePart) {\\n <div class=\\\"ax-header\\\">\\n <ax-tabs [look]=\\\"'default'\\\" [fitParent]=\\\"true\\\" [location]=\\\"'top'\\\" (onActiveTabChanged)=\\\"_handleViewChanged($event)\\\">\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.date' | translate | async\\\"\\n [key]=\\\"'date'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.time' | translate | async\\\"\\n [key]=\\\"'time'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n </ax-tabs>\\n </div>\\n}\\n<div class=\\\"ax-content\\\">\\n @if (_activePart() === 'date') {\\n <div class=\\\"ax-calendar-part\\\">\\n <ax-calendar\\n #calendar\\n id=\\\"calendar\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [weekend]=\\\"weekend()\\\"\\n [weekdays]=\\\"weekdays()\\\"\\n [ngModel]=\\\"editingDateObj().date\\\"\\n [minValue]=\\\"minValue\\\"\\n [maxValue]=\\\"maxValue\\\"\\n [disabledDates]=\\\"disabledDates\\\"\\n [holidayDates]=\\\"holidayDates\\\"\\n [depth]=\\\"depth\\\"\\n (onNavigate)=\\\"_handleCalendarOnNavigate($event)\\\"\\n (onValueChanged)=\\\"_handleCalendarOnValueChanged($event)\\\"\\n [type]=\\\"_calendarSystem()\\\"\\n >\\n </ax-calendar>\\n </div>\\n }\\n\\n @if (_activePart() === 'time') {\\n <div class=\\\"ax-picker-part\\\">\\n <div class=\\\"ax-header\\\">\\n @if (picker() === 'datetime') {\\n {{ editingDateObj() | format: 'time' : 'medium' | async }}\\n {{ editingDateObj() | format: 'date' : 'medium' | async }}\\n } @else {\\n {{ editingDateObj() | format: picker() : 'medium' | async }}\\n }\\n </div>\\n <div dir=\\\"ltr\\\" class=\\\"ax-picker-time-container\\\">\\n @if (_parts.hour.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"hourRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.minute.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"minuteRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.second.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"secondRef\\\"> </ng-container>\\n }\\n </div>\\n </div>\\n }\\n</div>\\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\\n <div class=\\\"ax-footer\\\">\\n <div>\\n @if (currentTimeButton) {\\n <ax-button\\n [text]=\\\"`@acorex:${buttonText()}` | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleNowClick()\\\"\\n [disabled]=\\\"isTodayDisabled()\\\"\\n ></ax-button>\\n }\\n </div>\\n <div>\\n @if (_hasTimePart) {\\n <ax-button\\n color=\\\"primary\\\"\\n [text]=\\\"'@acorex:dateTime.set' | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleSetClick()\\\"\\n ></ax-button>\\n }\\n </div>\\n </div>\\n}\\n\\n<ng-template #hourRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.hour' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"hours\\\"\\n [ngModel]=\\\"editingDateObj().hour\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'hour')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerHoursMinValue()\\\"\\n [maxValue]=\\\"pickerHoursMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #minuteRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.minute' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"editingDateObj().minute\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'minute')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerMinuteMinValue()\\\"\\n [maxValue]=\\\"pickerMinuteMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #secondRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.second' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"editingDateObj().second\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'second')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerSecondMinValue()\\\"\\n [maxValue]=\\\"pickerSecondMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\", styles: [\"ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-top:var(--ax-comp-datetime-picker-header-padding-t, .5rem);padding-left:var(--ax-comp-datetime-picker-header-padding-x, .5rem);padding-right:var(--ax-comp-datetime-picker-header-padding-x, .5rem)}ax-datetime-picker>.ax-content{width:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:var(--ax-comp-datetime-picker-md-width, 20rem)}}ax-datetime-picker>.ax-content .ax-picker-part{width:100%;display:flex;flex-direction:column;height:var(--ax-comp-datetime-picker-picker-part-height, 376px)}ax-datetime-picker>.ax-content .ax-picker-part .ax-picker-time-container{display:flex;height:100%}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{font-weight:500;text-align:center;padding:var(--ax-comp-datetime-picker-picker-part-header-padding, .75rem);font-size:var(--ax-comp-datetime-picker-picker-part-header-font-size, 1rem);border-bottom:solid;border-bottom-width:var(--ax-comp-datetime-picker-picker-part-header-border-width, 1px);border-bottom-color:rgba(var(--ax-comp-datetime-picker-picker-part-header-border-color, var(--ax-sys-color-border-surface)))}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{width:100%;padding-top:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem);padding-bottom:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem)}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;padding:var(--ax-comp-datetime-picker-footer-padding, .5rem);border-color:rgba(var(--ax-comp-datetime-picker-footer-border-color, var(--ax-sys-color-border-surface)));border-top-width:var(--ax-comp-datetime-picker-footer-border-top-width, 1px)}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\\n\"], dependencies: [{ kind: \"component\", type: AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: AXTabItemComponent, selector: \"ax-tab-item\", inputs: [\"disabled\", \"text\", \"key\", \"headerTemplate\", \"active\"], outputs: [\"disabledChange\", \"onClick\", \"onBlur\", \"onFocus\", \"activeChange\"] }, { kind: \"component\", type: AXCalendarComponent, selector: \"ax-calendar\", inputs: [\"rtl\", \"readonly\", \"value\", \"name\", \"disabled\", \"depth\", \"activeView\", \"minValue\", \"maxValue\", \"disabledDates\", \"holidayDates\", \"type\", \"dayCellTemplate\", \"monthCellTemplate\", \"yearCellTemplate\", \"cellClass\", \"showNavigation\", \"count\", \"id\", \"weekend\", \"weekdays\"], outputs: [\"onOptionChanged\", \"valueChange\", \"onValueChanged\", \"minValueChange\", \"maxValueChange\", \"onBlur\", \"onFocus\", \"depthChange\", \"typeChange\", \"activeViewChange\", \"disabledDatesChange\", \"holidayDatesChange\", \"onNavigate\", \"onSlotClick\", \"countChange\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXPickerContainerComponent, selector: \"ax-picker-container\", inputs: [\"class\"] }, { kind: \"component\", type: AXPickerTitleComponent, selector: \"ax-picker-title\" }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXPickerItemsComponent, selector: \"ax-picker-items\", inputs: [\"disabled\", \"readonly\", \"readonlyChange\", \"disabledChange\", \"items\", \"valueField\", \"textField\", \"slidesPerGroup\", \"loop\", \"minValue\", \"maxValue\"], outputs: [\"onValueChanged\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXFormatPipe, name: \"format\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDateTimePickerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-datetime-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [\n 'disabled',\n 'readonly',\n 'tabIndex',\n 'placeholder',\n 'value',\n 'state',\n 'name',\n 'id',\n 'depth',\n 'activeView',\n 'minValue',\n 'maxValue',\n 'disabledDates',\n 'holidayDates',\n 'type',\n 'cellTemplate',\n 'cellClass',\n 'showNavigation',\n ], outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'onClick',\n 'readonlyChange',\n 'disabledChange',\n 'depthChange',\n 'typeChange',\n 'activeViewChange',\n 'disabledDatesChange',\n 'holidayDatesChange',\n 'onNavigate',\n 'onSlotClick',\n ], providers: [\n { provide: AXComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimePickerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimePickerComponent),\n multi: true,\n },\n ], imports: [\n AXTabsComponent,\n AXTabItemComponent,\n AXCalendarComponent,\n FormsModule,\n NgTemplateOutlet,\n AXButtonComponent,\n AXPickerContainerComponent,\n AXPickerTitleComponent,\n AXDecoratorGenericComponent,\n AXPickerItemsComponent,\n AsyncPipe,\n AXFormatPipe,\n AXTranslatorPipe,\n ], template: \"@if (_hasDatePart && _hasTimePart) {\\n <div class=\\\"ax-header\\\">\\n <ax-tabs [look]=\\\"'default'\\\" [fitParent]=\\\"true\\\" [location]=\\\"'top'\\\" (onActiveTabChanged)=\\\"_handleViewChanged($event)\\\">\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.date' | translate | async\\\"\\n [key]=\\\"'date'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.time' | translate | async\\\"\\n [key]=\\\"'time'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n </ax-tabs>\\n </div>\\n}\\n<div class=\\\"ax-content\\\">\\n @if (_activePart() === 'date') {\\n <div class=\\\"ax-calendar-part\\\">\\n <ax-calendar\\n #calendar\\n id=\\\"calendar\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [weekend]=\\\"weekend()\\\"\\n [weekdays]=\\\"weekdays()\\\"\\n [ngModel]=\\\"editingDateObj().date\\\"\\n [minValue]=\\\"minValue\\\"\\n [maxValue]=\\\"maxValue\\\"\\n [disabledDates]=\\\"disabledDates\\\"\\n [holidayDates]=\\\"holidayDates\\\"\\n [depth]=\\\"depth\\\"\\n (onNavigate)=\\\"_handleCalendarOnNavigate($event)\\\"\\n (onValueChanged)=\\\"_handleCalendarOnValueChanged($event)\\\"\\n [type]=\\\"_calendarSystem()\\\"\\n >\\n </ax-calendar>\\n </div>\\n }\\n\\n @if (_activePart() === 'time') {\\n <div class=\\\"ax-picker-part\\\">\\n <div class=\\\"ax-header\\\">\\n @if (picker() === 'datetime') {\\n {{ editingDateObj() | format: 'time' : 'medium' | async }}\\n {{ editingDateObj() | format: 'date' : 'medium' | async }}\\n } @else {\\n {{ editingDateObj() | format: picker() : 'medium' | async }}\\n }\\n </div>\\n <div dir=\\\"ltr\\\" class=\\\"ax-picker-time-container\\\">\\n @if (_parts.hour.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"hourRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.minute.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"minuteRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.second.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"secondRef\\\"> </ng-container>\\n }\\n </div>\\n </div>\\n }\\n</div>\\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\\n <div class=\\\"ax-footer\\\">\\n <div>\\n @if (currentTimeButton) {\\n <ax-button\\n [text]=\\\"`@acorex:${buttonText()}` | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleNowClick()\\\"\\n [disabled]=\\\"isTodayDisabled()\\\"\\n ></ax-button>\\n }\\n </div>\\n <div>\\n @if (_hasTimePart) {\\n <ax-button\\n color=\\\"primary\\\"\\n [text]=\\\"'@acorex:dateTime.set' | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleSetClick()\\\"\\n ></ax-button>\\n }\\n </div>\\n </div>\\n}\\n\\n<ng-template #hourRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.hour' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"hours\\\"\\n [ngModel]=\\\"editingDateObj().hour\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'hour')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerHoursMinValue()\\\"\\n [maxValue]=\\\"pickerHoursMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #minuteRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.minute' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"editingDateObj().minute\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'minute')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerMinuteMinValue()\\\"\\n [maxValue]=\\\"pickerMinuteMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #secondRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.second' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"editingDateObj().second\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'second')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerSecondMinValue()\\\"\\n [maxValue]=\\\"pickerSecondMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\", styles: [\"ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-top:var(--ax-comp-datetime-picker-header-padding-t, .5rem);padding-left:var(--ax-comp-datetime-picker-header-padding-x, .5rem);padding-right:var(--ax-comp-datetime-picker-header-padding-x, .5rem)}ax-datetime-picker>.ax-content{width:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:var(--ax-comp-datetime-picker-md-width, 20rem)}}ax-datetime-picker>.ax-content .ax-picker-part{width:100%;display:flex;flex-direction:column;height:var(--ax-comp-datetime-picker-picker-part-height, 376px)}ax-datetime-picker>.ax-content .ax-picker-part .ax-picker-time-container{display:flex;height:100%}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{font-weight:500;text-align:center;padding:var(--ax-comp-datetime-picker-picker-part-header-padding, .75rem);font-size:var(--ax-comp-datetime-picker-picker-part-header-font-size, 1rem);border-bottom:solid;border-bottom-width:var(--ax-comp-datetime-picker-picker-part-header-border-width, 1px);border-bottom-color:rgba(var(--ax-comp-datetime-picker-picker-part-header-border-color, var(--ax-sys-color-border-surface)))}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{width:100%;padding-top:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem);padding-bottom:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem)}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;padding:var(--ax-comp-datetime-picker-footer-padding, .5rem);border-color:rgba(var(--ax-comp-datetime-picker-footer-border-color, var(--ax-sys-color-border-surface)));border-top-width:var(--ax-comp-datetime-picker-footer-border-top-width, 1px)}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\\n\"] }]\n }], propDecorators: { weekend: [{ type: i0.Input, args: [{ isSignal: true, alias: \"weekend\", required: false }] }], weekdays: [{ type: i0.Input, args: [{ isSignal: true, alias: \"weekdays\", required: false }] }], currentTimeButton: [{\n type: Input\n }], tabs: [{\n type: ViewChild,\n args: [AXTabsComponent]\n }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: \"calendar\", required: false }] }], picker: [{ type: i0.Input, args: [{ isSignal: true, alias: \"picker\", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: \"format\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUVuQixnQkFBZ0IsR0FDakIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsbUJBQW1CLEVBR25CLHVCQUF1QixHQUN4QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxrQkFBa0IsRUFBMEIsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1Ys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QzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixXQUNRO3dCQUNQLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLDBCQUEwQjt3QkFDMUIsc0JBQXNCO3dCQUN0QiwyQkFBMkI7d0JBQzNCLHNCQUFzQjt3QkFDdEIsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLGdCQUFnQjtxQkFDakI7O3NCQThCQSxLQUFLOztzQkFrQkwsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDb21wb25lbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVlQ2hhbmdlZEV2ZW50LFxuICBNWFZhbHVlQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gIEFYQ2FsZW5kYXJDb21wb25lbnQsXG4gIEFYQ2FsZW5kYXJOYXZpZ2F0ZUV2ZW50LFxuICBBWERhdGVUaW1lUGlja2VyVHlwZSxcbiAgTVhDYWxlbmRhckJhc2VDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jYWxlbmRhcic7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFBpY2tlckNvbnRhaW5lckNvbXBvbmVudCwgQVhQaWNrZXJJdGVtc0NvbXBvbmVudCwgQVhQaWNrZXJUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9waWNrZXInO1xuaW1wb3J0IHsgQVhUYWJJdGVtQ29tcG9uZW50LCBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50LCBBWFRhYnNDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWERhdGVUaW1lLCBBWERhdGVUaW1lUGFydHMsIFRpbWVVbml0IH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGUtdGltZSc7XG5pbXBvcnQgeyBBWEZvcm1hdFBpcGUsIEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IEFYRGF0ZVRpbWVQaWNrZXJDb25maWcsIEFYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcgfSBmcm9tICcuL2RhdGV0aW1lLXBpY2tlci5jb25maWcnO1xuXG4vKipcbiAqIGFsbG93cyB1c2VycyB0byBzZWxlY3QgYSBkYXRlIGFuZCB0aW1lIGZyb20gYSBjYWxlbmRhciBhbmQgdGltZSBwaWNrZXIgaW50ZXJmYWNlLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWRhdGV0aW1lLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGlucHV0czogW1xuICAgICdkaXNhYmxlZCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndGFiSW5kZXgnLFxuICAgICdwbGFjZWhvbGRlcicsXG4gICAgJ3ZhbHVlJyxcbiAgICAnc3RhdGUnLFxuICAgICduYW1lJyxcbiAgICAnaWQnLFxuICAgICdkZXB0aCcsXG4gICAgJ2FjdGl2ZVZpZXcnLFxuICAgICdtaW5WYWx1ZScsXG4gICAgJ21heFZhbHVlJyxcbiAgICAnZGlzYWJsZWREYXRlcycsXG4gICAgJ2hvbGlkYXlEYXRlcycsXG4gICAgJ3R5cGUnLFxuICAgICdjZWxsVGVtcGxhdGUnLFxuICAgICdjZWxsQ2xhc3MnLFxuICAgICdzaG93TmF2aWdhdGlvbicsXG4gIF0sXG4gIG91dHB1dHM6IFtcbiAgICAndmFsdWVDaGFuZ2UnLFxuICAgICdzdGF0ZUNoYW5nZScsXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcbiAgICAnb25CbHVyJyxcbiAgICAnb25Gb2N1cycsXG4gICAgJ29uQ2xpY2snLFxuICAgICdyZWFkb25seUNoYW5nZScsXG4gICAgJ2Rpc2FibGVkQ2hhbmdlJyxcbiAgICAnZGVwdGhDaGFuZ2UnLFxuICAgICd0eXBlQ2hhbmdlJyxcbiAgICAnYWN0aXZlVmlld0NoYW5nZScsXG4gICAgJ2Rpc2FibGVkRGF0ZXNDaGFuZ2UnLFxuICAgICdob2xpZGF5RGF0ZXNDaGFuZ2UnLFxuICAgICdvbk5hdmlnYXRlJyxcbiAgICAnb25TbG90Q2xpY2snLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQVhUYWJzQ29tcG9uZW50LFxuICAgIEFYVGFiSXRlbUNvbXBvbmVudCxcbiAgICBBWENhbGVuZGFyQ29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgQVhCdXR0b25Db21wb25lbnQsXG4gICAgQVhQaWNrZXJDb250YWluZXJDb21wb25lbnQsXG4gICAgQVhQaWNrZXJUaXRsZUNvbXBvbmVudCxcbiAgICBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsXG4gICAgQVhQaWNrZXJJdGVtc0NvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgQVhGb3JtYXRQaXBlLFxuICAgIEFYVHJhbnNsYXRvclBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnRcbiAgZXh0ZW5kcyBjbGFzc2VzKE1YQ2FsZW5kYXJCYXNlQ29tcG9uZW50LCBNWFZhbHVlQ29tcG9uZW50PERhdGU+KVxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBwcml2YXRlIGZvcm1hdFNlcnZpY2UgPSBpbmplY3QoQVhGb3JtYXRTZXJ2aWNlKTtcblxuICB3ZWVrZW5kID0gaW5wdXQ8bnVtYmVyW10+KFtdKTtcbiAgd2Vla2RheXMgPSBpbnB1dDxudW1iZXJbXT4oW10pO1xuXG4gIHByb3RlY3RlZCBidXR0b25UZXh0ID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuX2FjdGl2ZVBhcnQoKSA9PT0gJ2RhdGUnID8gJ2RhdGVUaW1lLnRvZGF5JyA6ICdkYXRlVGltZS5ub3cnKSk7XG5cbiAgcHJpdmF0ZSBkZWZhdWx0Q29uZmlnOiBBWERhdGVUaW1lUGlja2VyQ29uZmlnID0gaW5qZWN0KEFYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcpO1xuXG4gIHByb3RlY3RlZCBwaWNrZXJIb3Vyc01pblZhbHVlID0gc2lnbmFsPG51bWJlcj4obnVsbCk7XG4gIHByb3RlY3RlZCBwaWNrZXJIb3Vyc01heFZhbHVlID0gc2lnbmFsPG51bWJlcj4obnVsbCk7XG4gIHByb3RlY3RlZCBwaWNrZXJNaW51dGVNaW5WYWx1ZSA9IHNpZ25hbDxudW1iZXI+KG51bGwpO1xuICBwcm90ZWN0ZWQgcGlja2VyTWludXRlTWF4VmFsdWUgPSBzaWduYWw8bnVtYmVyPihudWxsKTtcbiAgcHJvdGVjdGVkIHBpY2tlclNlY29uZE1pblZhbHVlID0gc2lnbmFsPG51bWJlcj4obnVsbCk7XG4gIHByb3RlY3RlZCBwaWNrZXJTZWNvbmRNYXhWYWx1ZSA9IHNpZ25hbDxudW1iZXI+KG51bGwpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfY3VycmVudFRpbWVCdXR0b246IGJvb2xlYW4gPSB0aGlzLmRlZmF1bHRDb25maWcuY3VycmVudFRpbWVCdXR0b247XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciBhIGJ1dHRvbiBmb3Igc2VsZWN0aW5nIHRoZSBjdXJyZW50IHRpbWUgaXMgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBjdXJyZW50VGltZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFRpbWVCdXR0b247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB3aGV0aGVyIHRoZSBidXR0b24gZm9yIHNlbGVjdGluZyB0aGUgY3VycmVudCB0aW1lIGlzIGRpc3BsYXllZC5cbiAgICovXG4gIHB1YmxpYyBzZXQgY3VycmVudFRpbWVCdXR0b24odjogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdjdXJyZW50VGltZUJ1dHRvbicsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgQFZpZXdDaGlsZChBWFRhYnNDb21wb25lbnQpXG4gIHByb3RlY3RlZCB0YWJzOiBBWFRhYnNDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgaG91cnM6IGFueVtdID0gQXJyYXkoMjQpXG4gICAgLmZpbGwoMClcbiAgICAubWFwKChtLCBpKSA9PiAoeyBpZDogaSwgdGV4dDogaSB9KSk7XG4gIG1pbnV0ZXM6IGFueVtdID0gQXJyYXkoNjApXG4gICAgLmZpbGwoMClcbiAgICAubWFwKChtLCBpKSA9PiAoeyBpZDogaSwgdGV4dDogaSB9KSk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX3BhcnRzOiBBWERhdGVUaW1lUGFydHMgPSB7XG4gICAgeWVhcjoge1xuICAgICAga2V5OiAneWVhcicsXG4gICAgICBwbGFjZWhvbGRlcjogJ3l5eXknLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ1lZJywgJ3l5JywgJ1lZWVknLCAneXl5eSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAyMDIzLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PlxuICAgICAgICB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuZWRpdGluZ0RhdGVPYmooKSwgJ2RhdGV0aW1lJywgdGhpcy5fcGFydHMueWVhci5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgbW9udGg6IHtcbiAgICAgIGtleTogJ21vbnRoJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnTU0nLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ01NTScsICdNTU1NJywgJ01NJywgJ00nXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMSxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLmVkaXRpbmdEYXRlT2JqKCksICdkYXRldGltZScsIHRoaXMuX3BhcnRzLm1vbnRoLnBsYWNlaG9sZGVyIGFzIGFueSksXG4gICAgfSxcbiAgICBkYXk6IHtcbiAgICAgIGtleTogJ2RheScsXG4gICAgICBwbGFjZWhvbGRlcjogJ2RkJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydkZCcsICdkJywgJ0UnLCAnZGRkZCddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAxLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuZWRpdGluZ0RhdGVPYmooKSwgJ2RhdGV0aW1lJywgdGhpcy5fcGFydHMuZGF5LnBsYWNlaG9sZGVyIGFzIGFueSksXG4gICAgfSxcbiAgICBob3VyOiB7XG4gICAgICBrZXk6ICdob3VyJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnSEgnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ0hIJywgJ0gnLCAnaGgnLCAnaCddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PlxuICAgICAgICB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuZWRpdGluZ0RhdGVPYmooKSwgJ2RhdGV0aW1lJywgdGhpcy5fcGFydHMuaG91ci5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgbWludXRlOiB7XG4gICAgICBrZXk6ICdtaW51dGUnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdtbScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnbW0nLCAnbSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PlxuICAgICAgICB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuZWRpdGluZ0RhdGVPYmooKSwgJ2RhdGV0aW1lJywgdGhpcy5fcGFydHMubWludXRlLnBsYWNlaG9sZGVyIGFzIGFueSksXG4gICAgfSxcbiAgICBzZWNvbmQ6IHtcbiAgICAgIGtleTogJ3NlY29uZCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ3NzJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydzcycsICdzJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5lZGl0aW5nRGF0ZU9iaigpLCAnZGF0ZXRpbWUnLCB0aGlzLl9wYXJ0cy5zZWNvbmQucGxhY2Vob2xkZXIgYXMgYW55KSxcbiAgICB9LFxuICAgIEFNUE06IHtcbiAgICAgIGtleTogJ0FNUE0nLFxuICAgICAgcGxhY2Vob2xkZXI6ICdhJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydhJywgJ0EnXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICAgIHR5cGVkVmFsdWU6IG51bGwsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5lZGl0aW5nRGF0ZU9iaigpLCAnZGF0ZXRpbWUnLCB0aGlzLl9wYXJ0cy5BTVBNLnBsYWNlaG9sZGVyIGFzIGFueSksXG4gICAgfSxcbiAgfTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfYWN0aXZlUGFydCA9IHNpZ25hbDwnZGF0ZScgfCAndGltZSc+KCdkYXRlJyk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IF9oYXNEYXRlUGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gWyd5ZWFyJywgJ21vbnRoJywgJ2RheSddLnNvbWUoKGspID0+IHRoaXMuX3BhcnRzW2tdLmVuYWJsZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IF9oYXNUaW1lUGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gWydob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnXS5zb21lKChrKSA9PiB0aGlzLl9wYXJ0c1trXS5lbmFibGVkKTtcbiAgfVxuXG4gIC8vIC8qKlxuICAvLyAgKiAgQGlnbm9yZVxuICAvLyAgKi9cbiAgZWRpdGluZ0RhdGVPYmogPSBsaW5rZWRTaWduYWw8QVhEYXRlVGltZT4oKCkgPT4gdGhpcy5jYWxlbmRhclNlcnZpY2Uubm93KHRoaXMuY2FsZW5kYXIoKSkpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGNhbGVuZGFyIHR5cGUgdG8gdXNlIGZvciB0aGUgZGF0ZXRpbWUgaW5wdXQuXG4gICAqL1xuICBjYWxlbmRhciA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCBfY2FsZW5kYXJTeXN0ZW0gPSBsaW5rZWRTaWduYWw8c3RyaW5nIHwgbnVsbD4oKCkgPT4gdGhpcy5jYWxlbmRhcigpID8/IHRoaXMudHlwZSk7XG5cbiAgcGlja2VyID0gaW5wdXQ8QVhEYXRlVGltZVBpY2tlclR5cGU+KCdkYXRldGltZScpO1xuXG4gICNlZmZlY3RQaWNrZXIgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGlzLnBpY2tlcigpID09PSAndGltZScpIHtcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1pblZhbHVlKHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodGhpcy5taW5WYWx1ZSwgdGhpcy5jYWxlbmRhcigpKSk7XG4gICAgICB0aGlzLmNoZWNrU2VsZWN0ZWRNYXhWYWx1ZSh0aGlzLmNhbGVuZGFyU2VydmljZS5jb252ZXJ0KHRoaXMubWF4VmFsdWUsIHRoaXMuY2FsZW5kYXIoKSkpO1xuICAgICAgdGhpcy5fYWN0aXZlUGFydC5zZXQoJ3RpbWUnKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucGlja2VyKCkgPT09ICdkYXRlJykge1xuICAgICAgdGhpcy5fYWN0aXZlUGFydC5zZXQoJ2RhdGUnKTtcbiAgICB9XG4gIH0pO1xuXG4gIHByaXZhdGUgX2Zvcm1hdCA9IGxpbmtlZFNpZ25hbDxzdHJpbmc+KFxuICAgICgpID0+IHRoaXMuZm9ybWF0KCkgPz8gdGhpcy5sb2NhbGVTZXJ2aWNlLmFjdGl2ZVByb2ZpbGUoKS5mb3JtYXRzW3RoaXMucGlja2VyKCldPy5zaG9ydCA/PyAnJyxcbiAgKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGxvY2FsZSAmIG1vZGUgaW5zdGVhZFxuICAgKi9cbiAgZm9ybWF0ID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4oKTtcblxuICAjZWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBwcm9maWxlID0gdGhpcy5sb2NhbGVTZXJ2aWNlLmFjdGl2ZVByb2ZpbGUoKTtcbiAgICAvL1xuICAgIGlmICghdGhpcy5mb3JtYXQoKSkge1xuICAgICAgdGhpcy5fZm9ybWF0LnNldCh0aGlzLmZvcm1hdCgpID8/IHByb2ZpbGUuZm9ybWF0c1t0aGlzLnBpY2tlcigpXT8uc2hvcnQgPz8gJycpO1xuICAgIH1cbiAgICAvL1xuICAgIGlmICghdGhpcy5jYWxlbmRhcigpKSB7XG4gICAgICB0aGlzLl9jYWxlbmRhclN5c3RlbS5zZXQocHJvZmlsZS5jYWxlbmRhci5zeXN0ZW0pO1xuICAgIH1cbiAgICAvL1xuICAgIHRoaXMudHlwZSA9IHRoaXMuX2NhbGVuZGFyU3lzdGVtKCk7XG4gICAgLy9cbiAgICB0aGlzLl9kZXRlY3RQYXJ0cygpO1xuICB9KTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5fZGV0ZWN0UGFydHMoKTtcblxuICAgIHRoaXMubWluVmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkTWluVmFsdWUodGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh2YWx1ZSwgdGhpcy5jYWxlbmRhcigpKSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm1heFZhbHVlQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1heFZhbHVlKHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodmFsdWUsIHRoaXMuY2FsZW5kYXIoKSkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgY2hhbmdlcyB0byB0aGUgaW50ZXJuYWwgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIG5ldyBkYXRlIHZhbHVlLiBJZiBub3QgcHJvdmlkZWQsIGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGRhdGUuXG4gICAqL1xuICBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCh2YWx1ZT86IERhdGUpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmlzVmFsaWREYXRlKHZhbHVlKSkge1xuICAgICAgICB0aGlzLmVkaXRpbmdEYXRlT2JqLnNldCh0aGlzLmNhbGVuZGFyU2VydmljZS5jcmVhdGUodmFsdWUsIHRoaXMuY2FsZW5kYXIoKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmVkaXRpbmdEYXRlT2JqLnNldCh0aGlzLmNhbGVuZGFyU2VydmljZS5ub3codGhpcy5jYWxlbmRhcigpKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZVZpZXdDaGFuZ2VkKGU6IEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQpIHtcbiAgICB0aGlzLl9hY3RpdmVQYXJ0LnNldChlLnRhYi5rZXkgYXMgJ2RhdGUnIHwgJ3RpbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PERhdGU+LCBwYXJ0OiBzdHJpbmcpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5lZGl0aW5nRGF0ZU9iai5zZXQodGhpcy5lZGl0aW5nRGF0ZU9iaigpLnNldChwYXJ0IGFzIFRpbWVVbml0LCBOdW1iZXIoZS52YWx1ZVsnaWQnXSkpKTtcblxuICAgICAgaWYgKHRoaXMubWluVmFsdWUpIHtcbiAgICAgICAgY29uc3QgbWludiA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodGhpcy5taW5WYWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICAgICAgaWYgKHRoaXMuZWRpdGluZ0RhdGVPYmooKS5ob3VyID4gbWludi5ob3VyKSB7XG4gICAgICAgICAgdGhpcy5waWNrZXJNaW51dGVNaW5WYWx1ZS5zZXQobnVsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5waWNrZXJNaW51dGVNaW5WYWx1ZS5zZXQobWludi5taW51dGUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm1heFZhbHVlKSB7XG4gICAgICAgIGNvbnN0IG1heHYgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jb252ZXJ0KHRoaXMubWF4VmFsdWUsIHRoaXMuY2FsZW5kYXIoKSk7XG4gICAgICAgIGlmICh0aGlzLmVkaXRpbmdEYXRlT2JqKCkuaG91ciA8IG1heHYuaG91cikge1xuICAgICAgICAgIHRoaXMucGlja2VyTWludXRlTWF4VmFsdWUuc2V0KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucGlja2VyTWludXRlTWF4VmFsdWUuc2V0KG1heHYubWludXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uTmF2aWdhdGUoZTogQVhDYWxlbmRhck5hdmlnYXRlRXZlbnQpIHtcbiAgICB0aGlzLm9uTmF2aWdhdGUuZW1pdChlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4pIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZShlLnZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5jYWxlbmRhclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShlLnZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpXG4gICAgICAgIC5zZXQoJ2RheScsIHNlbGVjdGVkVmFsdWUuZGF5T2ZNb250aClcbiAgICAgICAgLnNldCgnbW9udGgnLCBzZWxlY3RlZFZhbHVlLm1vbnRoT2ZZZWFyKVxuICAgICAgICAuc2V0KCd5ZWFyJywgc2VsZWN0ZWRWYWx1ZS55ZWFyKTtcblxuICAgICAgdGhpcy5lZGl0aW5nRGF0ZU9iai5zZXQoY3VycmVudFZhbHVlKTtcbiAgICAgIGlmICh0aGlzLl9oYXNUaW1lUGFydCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVQYXJ0LnNldCgndGltZScpO1xuICAgICAgICBpZiAodGhpcy50YWJzICYmIHRoaXMuX2hhc0RhdGVQYXJ0ICYmIHRoaXMuX2hhc1RpbWVQYXJ0KSB7XG4gICAgICAgICAgdGhpcy50YWJzLnNlbGVjdCgxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmooKS5kYXRlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqKCkuZGF0ZSwgdHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1pblZhbHVlKHNlbGVjdGVkVmFsdWUpO1xuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkTWF4VmFsdWUoc2VsZWN0ZWRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1NlbGVjdGVkTWluVmFsdWUoc2VsZWN0ZWRWYWx1ZTogQVhEYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5taW5WYWx1ZSkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5jYWxlbmRhclNlcnZpY2UuaXNWYWxpZERhdGUodGhpcy5taW5WYWx1ZSkpIHJldHVybjtcblxuICAgIGlmIChzZWxlY3RlZFZhbHVlLmlzQWZ0ZXIodGhpcy5taW5WYWx1ZSwgJ2RheScpKSB7XG4gICAgICB0aGlzLnBpY2tlckhvdXJzTWluVmFsdWUuc2V0KG51bGwpO1xuICAgICAgdGhpcy5waWNrZXJNaW51dGVNaW5WYWx1ZS5zZXQobnVsbCk7XG4gICAgICB0aGlzLnBpY2tlclNlY29uZE1pblZhbHVlLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWludiA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodGhpcy5taW5WYWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICAgIHRoaXMucGlja2VySG91cnNNaW5WYWx1ZS5zZXQobWludi5ob3VyKTtcbiAgICAgIHRoaXMucGlja2VyTWludXRlTWluVmFsdWUuc2V0KG1pbnYubWludXRlKTtcbiAgICAgIHRoaXMucGlja2VyU2Vjb25kTWluVmFsdWUuc2V0KG1pbnYuc2Vjb25kKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrU2VsZWN0ZWRNYXhWYWx1ZShzZWxlY3RlZFZhbHVlOiBBWERhdGVUaW1lKSB7XG4gICAgaWYgKCF0aGlzLm1heFZhbHVlKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmNhbGVuZGFyU2VydmljZS5pc1ZhbGlkRGF0ZSh0aGlzLm1heFZhbHVlKSkgcmV0dXJuO1xuXG4gICAgaWYgKHNlbGVjdGVkVmFsdWUuaXNCZWZvcmUodGhpcy5tYXhWYWx1ZSwgJ2RheScpKSB7XG4gICAgICB0aGlzLnBpY2tlckhvdXJzTWF4VmFsdWUuc2V0KG51bGwpO1xuICAgICAgdGhpcy5waWNrZXJNaW51dGVNYXhWYWx1ZS5zZXQobnVsbCk7XG4gICAgICB0aGlzLnBpY2tlclNlY29uZE1heFZhbHVlLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWF4diA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodGhpcy5tYXhWYWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICAgIHRoaXMucGlja2VySG91cnNNYXhWYWx1ZS5zZXQobWF4di5ob3VyKTtcbiAgICAgIHRoaXMucGlja2VyTWludXRlTWF4VmFsdWUuc2V0KG1heHYubWludXRlKTtcbiAgICAgIHRoaXMucGlja2VyU2Vjb25kTWF4VmFsdWUuc2V0KG1heHYuc2Vjb25kKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX2RldGVjdFBhcnRzKCkge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5fcGFydHMpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGUuZW5hYmxlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIGNvbnN0IGZvcm1hdFBhcnRzID0gdGhpcy5fZm9ybWF0KCkuc3BsaXQoL1teYS16QS1aXSsvKTtcbiAgICBmb3JtYXRQYXJ0cy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICBjb25zdCBmb3VuZCA9IE9iamVjdC52YWx1ZXModGhpcy5fcGFydHMpLmZpbmQoKGMpID0+IGMucGxhY2Vob2xkZXJzLnNvbWUoKGQpID0+IGQgPT0gZikpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIGZvdW5kLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgICBmb3VuZC5wbGFjZWhvbGRlciA9IGY7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy90aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVTZXRDbGljaygpIHtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmooKS5kYXRlLCB0cnVlKTtcbiAgICB0aGlzLmNoZWNrU2VsZWN0ZWRNaW5WYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqKCkpO1xuICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1heFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmooKSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlTm93Q2xpY2soKSB7XG4gICAgdGhpcy5lZGl0aW5nRGF0ZU9iai5zZXQodGhpcy5jYWxlbmRhclNlcnZpY2Uubm93KHRoaXMuY2FsZW5kYXIoKSkpO1xuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5lZGl0aW5nRGF0ZU9iaigpLmRhdGUsIHRydWUpO1xuICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1pblZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmooKSk7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkTWF4VmFsdWUodGhpcy5lZGl0aW5nRGF0ZU9iaigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWQoZGF0ZTogQVhEYXRlVGltZSk6IGJvb2xlYW4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGlzYWJsZWREYXRlcykgJiYgdGhpcy5kaXNhYmxlZERhdGVzLmxlbmd0aCAhPSAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzLnNvbWUoKGQpID0+IGRhdGUuZXF1YWwoZCwgJ2RheScpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmRpc2FibGVkRGF0ZXMgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcyhkYXRlLmRhdGUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpbnRlcm5hbFNldFZhbHVlKHZhbHVlOiBEYXRlKTogRGF0ZSB8IG51bGwge1xuICAgIGlmICghdmFsdWUgfHwgIXRoaXMuY2FsZW5kYXJTZXJ2aWNlLmlzVmFsaWREYXRlKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHYgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jb252ZXJ0KHZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpO1xuICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1pblZhbHVlKHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodiwgdGhpcy5jYWxlbmRhcigpKSk7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkTWF4VmFsdWUodGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh2LCB0aGlzLmNhbGVuZGFyKCkpKTtcblxuICAgIGlmICh0aGlzLmlzRGlzYWJsZWQodikpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1pblZhbHVlICYmIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmlzVmFsaWREYXRlKHRoaXMubWluVmFsdWUpICYmIHYuaXNCZWZvcmUodGhpcy5taW5WYWx1ZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLm1pblZhbHVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5tYXhWYWx1ZSAmJiB0aGlzLmNhbGVuZGFyU2VydmljZS5pc1ZhbGlkRGF0ZSh0aGlzLm1heFZhbHVlKSAmJiB2LmlzQWZ0ZXIodGhpcy5tYXhWYWx1ZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLm1heFZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB2LmRhdGU7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNUb2RheURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRpc2FibGVkRGF0ZXMgPSB0aGlzLmRpc2FibGVkRGF0ZXM7XG5cbiAgICBpZiAoIWRpc2FibGVkRGF0ZXMgfHwgIUFycmF5LmlzQXJyYXkoZGlzYWJsZWREYXRlcykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgdG9kYXkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG5cbiAgICByZXR1cm4gZGlzYWJsZWREYXRlcy5zb21lKChkaXNhYmxlZERhdGU6IERhdGUpID0+IHtcbiAgICAgIGNvbnN0IGRpc2FibGVkID0gbmV3IERhdGUoZGlzYWJsZWREYXRlKTtcbiAgICAgIGRpc2FibGVkLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgICAgcmV0dXJuIHRvZGF5LmdldFRpbWUoKSA9PT0gZGlzYWJsZWQuZ2V0VGltZSgpO1xuICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKF9oYXNEYXRlUGFydCAmJiBfaGFzVGltZVBhcnQpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWhlYWRlclwiPlxuICAgIDxheC10YWJzIFtsb29rXT1cIidkZWZhdWx0J1wiIFtmaXRQYXJlbnRdPVwidHJ1ZVwiIFtsb2NhdGlvbl09XCIndG9wJ1wiIChvbkFjdGl2ZVRhYkNoYW5nZWQpPVwiX2hhbmRsZVZpZXdDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgIDxheC10YWItaXRlbVxuICAgICAgICBbdGV4dF09XCInQGFjb3JleDpkYXRlVGltZS5kYXRlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgW2tleV09XCInZGF0ZSdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgPjwvYXgtdGFiLWl0ZW0+XG4gICAgICA8YXgtdGFiLWl0ZW1cbiAgICAgICAgW3RleHRdPVwiJ0BhY29yZXg6ZGF0ZVRpbWUudGltZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgIFtrZXldPVwiJ3RpbWUnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgID48L2F4LXRhYi1pdGVtPlxuICAgIDwvYXgtdGFicz5cbiAgPC9kaXY+XG59XG48ZGl2IGNsYXNzPVwiYXgtY29udGVudFwiPlxuICBAaWYgKF9hY3RpdmVQYXJ0KCkgPT09ICdkYXRlJykge1xuICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1wYXJ0XCI+XG4gICAgICA8YXgtY2FsZW5kYXJcbiAgICAgICAgI2NhbGVuZGFyXG4gICAgICAgIGlkPVwiY2FsZW5kYXJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbd2Vla2VuZF09XCJ3ZWVrZW5kKClcIlxuICAgICAgICBbd2Vla2RheXNdPVwid2Vla2RheXMoKVwiXG4gICAgICAgIFtuZ01vZGVsXT1cImVkaXRpbmdEYXRlT2JqKCkuZGF0ZVwiXG4gICAgICAgIFttaW5WYWx1ZV09XCJtaW5WYWx1ZVwiXG4gICAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZVwiXG4gICAgICAgIFtkaXNhYmxlZERhdGVzXT1cImRpc2FibGVkRGF0ZXNcIlxuICAgICAgICBbaG9saWRheURhdGVzXT1cImhvbGlkYXlEYXRlc1wiXG4gICAgICAgIFtkZXB0aF09XCJkZXB0aFwiXG4gICAgICAgIChvbk5hdmlnYXRlKT1cIl9oYW5kbGVDYWxlbmRhck9uTmF2aWdhdGUoJGV2ZW50KVwiXG4gICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlQ2FsZW5kYXJPblZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgW3R5cGVdPVwiX2NhbGVuZGFyU3lzdGVtKClcIlxuICAgICAgPlxuICAgICAgPC9heC1jYWxlbmRhcj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoX2FjdGl2ZVBhcnQoKSA9PT0gJ3RpbWUnKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LXBpY2tlci1wYXJ0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtaGVhZGVyXCI+XG4gICAgICAgIEBpZiAocGlja2VyKCkgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICB7eyBlZGl0aW5nRGF0ZU9iaigpIHwgZm9ybWF0OiAndGltZScgOiAnbWVkaXVtJyB8IGFzeW5jIH19XG4gICAgICAgICAge3sgZWRpdGluZ0RhdGVPYmooKSB8IGZvcm1hdDogJ2RhdGUnIDogJ21lZGl1bScgfCBhc3luYyB9fVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICB7eyBlZGl0aW5nRGF0ZU9iaigpIHwgZm9ybWF0OiBwaWNrZXIoKSA6ICdtZWRpdW0nIHwgYXN5bmMgfX1cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGRpcj1cImx0clwiIGNsYXNzPVwiYXgtcGlja2VyLXRpbWUtY29udGFpbmVyXCI+XG4gICAgICAgIEBpZiAoX3BhcnRzLmhvdXIuZW5hYmxlZCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaG91clJlZlwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoX3BhcnRzLm1pbnV0ZS5lbmFibGVkKSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtaW51dGVSZWZcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKF9wYXJ0cy5zZWNvbmQuZW5hYmxlZCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2Vjb25kUmVmXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG5AaWYgKCFkaXNhYmxlZCAmJiAhcmVhZG9ubHkgJiYgKGN1cnJlbnRUaW1lQnV0dG9uIHx8IF9oYXNUaW1lUGFydCkpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWZvb3RlclwiPlxuICAgIDxkaXY+XG4gICAgICBAaWYgKGN1cnJlbnRUaW1lQnV0dG9uKSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBbdGV4dF09XCJgQGFjb3JleDoke2J1dHRvblRleHQoKX1gIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgIChvbkNsaWNrKT1cIl9oYW5kbGVOb3dDbGljaygpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNUb2RheURpc2FibGVkKClcIlxuICAgICAgICA+PC9heC1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIEBpZiAoX2hhc1RpbWVQYXJ0KSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFt0ZXh0XT1cIidAYWNvcmV4OmRhdGVUaW1lLnNldCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiX2hhbmRsZVNldENsaWNrKClcIlxuICAgICAgICA+PC9heC1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufVxuXG48bmctdGVtcGxhdGUgI2hvdXJSZWY+XG4gIDxheC1waWNrZXItY29udGFpbmVyPlxuICAgIDxheC1waWNrZXItdGl0bGU+XG4gICAgICA8YXgtdGV4dD57eyAnQGFjb3JleDpkYXRlVGltZS51bml0cy5ob3VyJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC10ZXh0PlxuICAgIDwvYXgtcGlja2VyLXRpdGxlPlxuICAgIDxheC1waWNrZXItaXRlbXNcbiAgICAgIFtpdGVtc109XCJob3Vyc1wiXG4gICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iaigpLmhvdXJcIlxuICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZCgkZXZlbnQsICdob3VyJylcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbbWluVmFsdWVdPVwicGlja2VySG91cnNNaW5WYWx1ZSgpXCJcbiAgICAgIFttYXhWYWx1ZV09XCJwaWNrZXJIb3Vyc01heFZhbHVlKClcIlxuICAgID48L2F4LXBpY2tlci1pdGVtcz5cbiAgPC9heC1waWNrZXItY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtaW51dGVSZWY+XG4gIDxheC1waWNrZXItY29udGFpbmVyPlxuICAgIDxheC1waWNrZXItdGl0bGU+XG4gICAgICA8YXgtdGV4dD57eyAnQGFjb3JleDpkYXRlVGltZS51bml0cy5taW51dGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LXRleHQ+XG4gICAgPC9heC1waWNrZXItdGl0bGU+XG4gICAgPGF4LXBpY2tlci1pdGVtc1xuICAgICAgW2l0ZW1zXT1cIm1pbnV0ZXNcIlxuICAgICAgW25nTW9kZWxdPVwiZWRpdGluZ0RhdGVPYmooKS5taW51dGVcIlxuICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZCgkZXZlbnQsICdtaW51dGUnKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFttaW5WYWx1ZV09XCJwaWNrZXJNaW51dGVNaW5WYWx1ZSgpXCJcbiAgICAgIFttYXhWYWx1ZV09XCJwaWNrZXJNaW51dGVNYXhWYWx1ZSgpXCJcbiAgICA+PC9heC1waWNrZXItaXRlbXM+XG4gIDwvYXgtcGlja2VyLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2Vjb25kUmVmPlxuICA8YXgtcGlja2VyLWNvbnRhaW5lcj5cbiAgICA8YXgtcGlja2VyLXRpdGxlPlxuICAgICAgPGF4LXRleHQ+e3sgJ0BhY29yZXg6ZGF0ZVRpbWUudW5pdHMuc2Vjb25kJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC10ZXh0PlxuICAgIDwvYXgtcGlja2VyLXRpdGxlPlxuICAgIDxheC1waWNrZXItaXRlbXNcbiAgICAgIFtpdGVtc109XCJtaW51dGVzXCJcbiAgICAgIFtuZ01vZGVsXT1cImVkaXRpbmdEYXRlT2JqKCkuc2Vjb25kXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUGlja2VyT25WYWx1ZUNoYW5nZWQoJGV2ZW50LCAnc2Vjb25kJylcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbbWluVmFsdWVdPVwicGlja2VyU2Vjb25kTWluVmFsdWUoKVwiXG4gICAgICBbbWF4VmFsdWVdPVwicGlja2VyU2Vjb25kTWF4VmFsdWUoKVwiXG4gICAgPjwvYXgtcGlja2VyLWl0ZW1zPlxuICA8L2F4LXBpY2tlci1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19","import { NgModule } from '@angular/core';\nimport { AXDateTimePickerComponent } from './datetime-picker.component';\nimport * as i0 from \"@angular/core\";\nexport class AXDateTimePickerModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDateTimePickerModule, imports: [AXDateTimePickerComponent], exports: [AXDateTimePickerComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDateTimePickerModule, imports: [AXDateTimePickerComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDateTimePickerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXDateTimePickerComponent],\n exports: [AXDateTimePickerComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU14RSxNQUFNLE9BQU8sc0JBQXNCOytHQUF0QixzQkFBc0I7Z0hBQXRCLHNCQUFzQixZQUh2Qix5QkFBeUIsYUFDekIseUJBQXlCO2dIQUV4QixzQkFBc0IsWUFIdkIseUJBQXlCOzs0RkFHeEIsc0JBQXNCO2tCQUpsQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0FYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lUGlja2VyTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtZGF0ZXRpbWUtcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvc3JjL2Fjb3JleC1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-datetime-picker.mjs","sources":["../tmp-esm2022/datetime-picker/lib/datetime-picker.config.js","../tmp-esm2022/datetime-picker/lib/datetime-picker.component.js","../tmp-esm2022/datetime-picker/lib/datetime-picker.module.js","../tmp-esm2022/datetime-picker/acorex-components-datetime-picker.js"],"sourcesContent":["import { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\nexport const AX_DATETIME_PICKER_CONFIG = new InjectionToken('AX_DATETIME_PICKER_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'datetime-picker', AX_DATETIME_PICKER_CONFIG);\n return AXDateTimePickerDefaultConfig;\n },\n});\nexport const AXDateTimePickerDefaultConfig = {\n currentTimeButton: true,\n};\nexport function dateTimePickerConfig(config = {}) {\n const result = {\n ...AXDateTimePickerDefaultConfig,\n ...config,\n };\n return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTWhDLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUF5QiwyQkFBMkIsRUFBRTtJQUMvRyxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsR0FBRyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFELE9BQU8sNkJBQTZCLENBQUM7SUFDdkMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUEyQjtJQUNuRSxpQkFBaUIsRUFBRSxJQUFJO0NBQ3hCLENBQUM7QUFJRixNQUFNLFVBQVUsb0JBQW9CLENBQUMsU0FBc0MsRUFBRTtJQUMzRSxNQUFNLE1BQU0sR0FBRztRQUNiLEdBQUcsNkJBQTZCO1FBQ2hDLEdBQUcsTUFBTTtLQUNWLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhfR0xPQkFMX0NPTkZJRyB9IGZyb20gJ0BhY29yZXgvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWERhdGVUaW1lUGlja2VyQ29uZmlnIHtcbiAgY3VycmVudFRpbWVCdXR0b246IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEFYRGF0ZVRpbWVQaWNrZXJDb25maWc+KCdBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICBjb25zdCBnbG9iYWwgPSBpbmplY3QoQVhfR0xPQkFMX0NPTkZJRyk7XG4gICAgc2V0KGdsb2JhbCwgJ2RhdGV0aW1lLXBpY2tlcicsIEFYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcpO1xuICAgIHJldHVybiBBWERhdGVUaW1lUGlja2VyRGVmYXVsdENvbmZpZztcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQVhEYXRlVGltZVBpY2tlckRlZmF1bHRDb25maWc6IEFYRGF0ZVRpbWVQaWNrZXJDb25maWcgPSB7XG4gIGN1cnJlbnRUaW1lQnV0dG9uOiB0cnVlLFxufTtcblxuZXhwb3J0IHR5cGUgUGFydGlhbERhdGVUaW1lUGlja2VyQ29uZmlnID0gUGFydGlhbDxBWERhdGVUaW1lUGlja2VyQ29uZmlnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUaW1lUGlja2VyQ29uZmlnKGNvbmZpZzogUGFydGlhbERhdGVUaW1lUGlja2VyQ29uZmlnID0ge30pOiBBWERhdGVUaW1lUGlja2VyQ29uZmlnIHtcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIC4uLkFYRGF0ZVRpbWVQaWNrZXJEZWZhdWx0Q29uZmlnLFxuICAgIC4uLmNvbmZpZyxcbiAgfTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==","import { AXComponent, AXFocusableComponent, AXValuableComponent, MXValueComponent, } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXCalendarComponent, MXCalendarBaseComponent, } from '@acorex/components/calendar';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXPickerContainerComponent, AXPickerItemsComponent, AXPickerTitleComponent } from '@acorex/components/picker';\nimport { AXTabItemComponent, AXTabsComponent } from '@acorex/components/tabs';\nimport { AXFormatPipe, AXFormatService } from '@acorex/core/format';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation, computed, effect, forwardRef, inject, input, linkedSignal, signal, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AX_DATETIME_PICKER_CONFIG } from './datetime-picker.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\n/**\n * allows users to select a date and time from a calendar and time picker interface.\n *\n * @category Components\n */\nexport class AXDateTimePickerComponent extends classes(MXCalendarBaseComponent, (MXValueComponent)) {\n constructor() {\n super(...arguments);\n this.formatService = inject(AXFormatService);\n this.weekend = input([], ...(ngDevMode ? [{ debugName: \"weekend\" }] : []));\n this.weekdays = input([], ...(ngDevMode ? [{ debugName: \"weekdays\" }] : []));\n this.buttonText = computed(() => (this._activePart() === 'date' ? 'dateTime.today' : 'dateTime.now'), ...(ngDevMode ? [{ debugName: \"buttonText\" }] : []));\n this.defaultConfig = inject(AX_DATETIME_PICKER_CONFIG);\n this.pickerHoursMinValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerHoursMinValue\" }] : []));\n this.pickerHoursMaxValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerHoursMaxValue\" }] : []));\n this.pickerMinuteMinValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerMinuteMinValue\" }] : []));\n this.pickerMinuteMaxValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerMinuteMaxValue\" }] : []));\n this.pickerSecondMinValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerSecondMinValue\" }] : []));\n this.pickerSecondMaxValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerSecondMaxValue\" }] : []));\n /**\n * @ignore\n */\n this._currentTimeButton = this.defaultConfig.currentTimeButton;\n /**\n * @ignore\n */\n this.hours = Array(24)\n .fill(0)\n .map((m, i) => ({ id: i, text: i }));\n this.minutes = Array(60)\n .fill(0)\n .map((m, i) => ({ id: i, text: i }));\n /**\n * @ignore\n */\n this._parts = {\n year: {\n key: 'year',\n placeholder: 'yyyy',\n placeholders: ['YY', 'yy', 'YYYY', 'yyyy'],\n enabled: false,\n default: 2023,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.year.placeholder),\n },\n month: {\n key: 'month',\n placeholder: 'MM',\n placeholders: ['MMM', 'MMMM', 'MM', 'M'],\n enabled: false,\n default: 1,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.month.placeholder),\n },\n day: {\n key: 'day',\n placeholder: 'dd',\n placeholders: ['dd', 'd', 'E', 'dddd'],\n enabled: false,\n default: 1,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.day.placeholder),\n },\n hour: {\n key: 'hour',\n placeholder: 'HH',\n placeholders: ['HH', 'H', 'hh', 'h'],\n enabled: false,\n default: 0,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.hour.placeholder),\n },\n minute: {\n key: 'minute',\n placeholder: 'mm',\n placeholders: ['mm', 'm'],\n enabled: false,\n default: 0,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.minute.placeholder),\n },\n second: {\n key: 'second',\n placeholder: 'ss',\n placeholders: ['ss', 's'],\n enabled: false,\n default: 0,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.second.placeholder),\n },\n AMPM: {\n key: 'AMPM',\n placeholder: 'a',\n placeholders: ['a', 'A'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () => this.formatService.format(this.editingDateObj(), 'datetime', this._parts.AMPM.placeholder),\n },\n };\n /**\n * @ignore\n */\n this._activePart = signal('date', ...(ngDevMode ? [{ debugName: \"_activePart\" }] : []));\n // /**\n // * @ignore\n // */\n this.editingDateObj = linkedSignal(() => this.calendarService.now(this.calendar()), ...(ngDevMode ? [{ debugName: \"editingDateObj\" }] : []));\n /**\n * @description The calendar type to use for the datetime input.\n */\n this.calendar = input(null, ...(ngDevMode ? [{ debugName: \"calendar\" }] : []));\n this._calendarSystem = linkedSignal(() => this.calendar() ?? this.type, ...(ngDevMode ? [{ debugName: \"_calendarSystem\" }] : []));\n this.picker = input('datetime', ...(ngDevMode ? [{ debugName: \"picker\" }] : []));\n this.#effectPicker = effect(() => {\n if (this.picker() === 'time') {\n this.checkSelectedMinValue(this.editingDateObj());\n this.checkSelectedMaxValue(this.editingDateObj());\n this._activePart.set('time');\n }\n else if (this.picker() === 'date') {\n this._activePart.set('date');\n }\n }, ...(ngDevMode ? [{ debugName: \"#effectPicker\" }] : []));\n this._format = linkedSignal(() => this.format() ?? this.localeService.activeProfile().formats[this.picker()]?.short ?? '', ...(ngDevMode ? [{ debugName: \"_format\" }] : []));\n /**\n * @deprecated use locale & mode instead\n */\n this.format = input(...(ngDevMode ? [undefined, { debugName: \"format\" }] : []));\n this.#effect = effect(() => {\n const profile = this.localeService.activeProfile();\n //\n if (!this.format()) {\n this._format.set(this.format() ?? profile.formats[this.picker()]?.short ?? '');\n }\n //\n if (!this.calendar()) {\n this._calendarSystem.set(profile.calendar.system);\n }\n //\n this.type = this._calendarSystem();\n //\n this._detectParts();\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n }\n /**\n * Determines whether a button for selecting the current time is displayed.\n */\n get currentTimeButton() {\n return this._currentTimeButton;\n }\n /**\n * Sets whether the button for selecting the current time is displayed.\n */\n set currentTimeButton(v) {\n this.setOption({\n name: 'currentTimeButton',\n value: v,\n });\n }\n /**\n * @ignore\n */\n get _hasDatePart() {\n return ['year', 'month', 'day'].some((k) => this._parts[k].enabled);\n }\n /**\n * @ignore\n */\n get _hasTimePart() {\n return ['hour', 'minute', 'second'].some((k) => this._parts[k].enabled);\n }\n #effectPicker;\n #effect;\n /**\n * @ignore\n */\n async ngOnInit() {\n super.ngOnInit();\n this._detectParts();\n this.minValueChange.subscribe(() => {\n this.checkSelectedMinValue(this.editingDateObj());\n });\n this.maxValueChange.subscribe(() => {\n this.checkSelectedMaxValue(this.editingDateObj());\n });\n }\n /**\n * Handles changes to the internal value of the component.\n * @param value - The new date value. If not provided, defaults to the current date.\n */\n internalValueChanged(value) {\n try {\n if (this.calendarService.isValidDate(value)) {\n this.editingDateObj.set(this.calendarService.create(value, this.calendar()));\n }\n else {\n throw new Error();\n }\n }\n catch {\n this.editingDateObj.set(this.calendarService.now(this.calendar()));\n }\n }\n /**\n * @ignore\n */\n _handleViewChanged(e) {\n this._activePart.set(e.tab.key);\n }\n /**\n * @ignore\n */\n _handlePickerOnValueChanged(e, part) {\n if (e.isUserInteraction) {\n this.editingDateObj.set(this.editingDateObj().set(part, Number(e.value['id'])));\n if (this.minValue) {\n const minv = this.calendarService.convert(this.minValue, this.calendar());\n // Only apply minute restrictions if we're on the same day and same hour\n if (this.editingDateObj().isAfter(this.minValue, 'day') || this.editingDateObj().hour > minv.hour) {\n this.pickerMinuteMinValue.set(null);\n }\n else {\n this.pickerMinuteMinValue.set(minv.minute);\n }\n }\n if (this.maxValue) {\n const maxv = this.calendarService.convert(this.maxValue, this.calendar());\n // Only apply minute restrictions if we're on the same day and same hour\n if (this.editingDateObj().isBefore(this.maxValue, 'day') || this.editingDateObj().hour < maxv.hour) {\n this.pickerMinuteMaxValue.set(null);\n }\n else {\n this.pickerMinuteMaxValue.set(maxv.minute);\n }\n }\n }\n }\n /**\n * @ignore\n */\n _handleCalendarOnNavigate(e) {\n this.onNavigate.emit(e);\n }\n /**\n * @ignore\n */\n _handleCalendarOnValueChanged(e) {\n if (e.isUserInteraction) {\n const selectedValue = this.calendarService.create(e.value, this.calendar());\n const currentValue = this.calendarService\n .create(e.value, this.calendar())\n .set('day', selectedValue.dayOfMonth)\n .set('month', selectedValue.monthOfYear)\n .set('year', selectedValue.year);\n this.editingDateObj.set(currentValue);\n if (this._hasTimePart) {\n this._activePart.set('time');\n if (this.tabs && this._hasDatePart && this._hasTimePart) {\n this.tabs.select(1);\n }\n else {\n this.commitValue(this.editingDateObj().date, true);\n }\n }\n else {\n this.commitValue(this.editingDateObj().date, true);\n }\n this.checkSelectedMinValue(selectedValue);\n this.checkSelectedMaxValue(selectedValue);\n }\n }\n checkSelectedMinValue(selectedValue) {\n if (!this.minValue)\n return;\n if (!this.calendarService.isValidDate(this.minValue))\n return;\n if (selectedValue.isAfter(this.minValue, 'day')) {\n this.pickerHoursMinValue.set(null);\n this.pickerMinuteMinValue.set(null);\n this.pickerSecondMinValue.set(null);\n }\n else {\n const minv = this.calendarService.convert(this.minValue, this.calendar());\n this.pickerHoursMinValue.set(minv.hour);\n this.pickerMinuteMinValue.set(minv.minute);\n this.pickerSecondMinValue.set(minv.second);\n }\n }\n checkSelectedMaxValue(selectedValue) {\n if (!this.maxValue)\n return;\n if (!this.calendarService.isValidDate(this.maxValue))\n return;\n if (selectedValue.isBefore(this.maxValue, 'day')) {\n this.pickerHoursMaxValue.set(null);\n this.pickerMinuteMaxValue.set(null);\n this.pickerSecondMaxValue.set(null);\n }\n else {\n const maxv = this.calendarService.convert(this.maxValue, this.calendar());\n this.pickerHoursMaxValue.set(maxv.hour);\n this.pickerMinuteMaxValue.set(maxv.minute);\n this.pickerSecondMaxValue.set(maxv.second);\n }\n }\n /**\n * @ignore\n */\n _detectParts() {\n Object.values(this._parts).forEach((e) => {\n e.enabled = false;\n });\n const formatParts = this._format().split(/[^a-zA-Z]+/);\n formatParts.forEach((f) => {\n const found = Object.values(this._parts).find((c) => c.placeholders.some((d) => d == f));\n if (found) {\n found.enabled = true;\n found.placeholder = f;\n }\n });\n //this.cdr.markForCheck();\n }\n /**\n * @ignore\n */\n _handleSetClick() {\n this.commitValue(this.editingDateObj().date, true);\n this.checkSelectedMinValue(this.editingDateObj());\n this.checkSelectedMaxValue(this.editingDateObj());\n }\n /**\n * @ignore\n */\n _handleNowClick() {\n this.editingDateObj.set(this.calendarService.now(this.calendar()));\n this.commitValue(this.editingDateObj().date, true);\n this.checkSelectedMinValue(this.editingDateObj());\n this.checkSelectedMaxValue(this.editingDateObj());\n }\n /**\n * @ignore\n */\n isDisabled(date) {\n if (Array.isArray(this.disabledDates) && this.disabledDates.length != 0) {\n return this.disabledDates.some((d) => date.equal(d, 'day'));\n }\n else if (typeof this.disabledDates == 'function') {\n return this.disabledDates(date.date);\n }\n return false;\n }\n /**\n * @ignore\n */\n internalSetValue(value) {\n if (!value || !this.calendarService.isValidDate(value)) {\n return null;\n }\n const v = this.calendarService.convert(value, this.calendar());\n this.checkSelectedMinValue(this.calendarService.convert(v, this.calendar()));\n this.checkSelectedMaxValue(this.calendarService.convert(v, this.calendar()));\n if (this.isDisabled(v)) {\n return null;\n }\n if (this.minValue && this.calendarService.isValidDate(this.minValue) && v.isBefore(this.minValue)) {\n return this.minValue;\n }\n if (this.maxValue && this.calendarService.isValidDate(this.maxValue) && v.isAfter(this.maxValue)) {\n return this.maxValue;\n }\n return v.date;\n }\n isTodayDisabled() {\n const disabledDates = this.disabledDates;\n if (!disabledDates || !Array.isArray(disabledDates)) {\n return false;\n }\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return disabledDates.some((disabledDate) => {\n const disabled = new Date(disabledDate);\n disabled.setHours(0, 0, 0, 0);\n return today.getTime() === disabled.getTime();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDateTimePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: AXDateTimePickerComponent, isStandalone: true, selector: \"ax-datetime-picker\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: \"state\", publicName: \"state\", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: false, isRequired: false, transformFunction: null }, depth: { classPropertyName: \"depth\", publicName: \"depth\", isSignal: false, isRequired: false, transformFunction: null }, activeView: { classPropertyName: \"activeView\", publicName: \"activeView\", isSignal: false, isRequired: false, transformFunction: null }, minValue: { classPropertyName: \"minValue\", publicName: \"minValue\", isSignal: false, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: \"maxValue\", publicName: \"maxValue\", isSignal: false, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: \"disabledDates\", publicName: \"disabledDates\", isSignal: false, isRequired: false, transformFunction: null }, holidayDates: { classPropertyName: \"holidayDates\", publicName: \"holidayDates\", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: \"type\", publicName: \"type\", isSignal: false, isRequired: false, transformFunction: null }, cellTemplate: { classPropertyName: \"cellTemplate\", publicName: \"cellTemplate\", isSignal: false, isRequired: false, transformFunction: null }, cellClass: { classPropertyName: \"cellClass\", publicName: \"cellClass\", isSignal: false, isRequired: false, transformFunction: null }, showNavigation: { classPropertyName: \"showNavigation\", publicName: \"showNavigation\", isSignal: false, isRequired: false, transformFunction: null }, weekend: { classPropertyName: \"weekend\", publicName: \"weekend\", isSignal: true, isRequired: false, transformFunction: null }, weekdays: { classPropertyName: \"weekdays\", publicName: \"weekdays\", isSignal: true, isRequired: false, transformFunction: null }, currentTimeButton: { classPropertyName: \"currentTimeButton\", publicName: \"currentTimeButton\", isSignal: false, isRequired: false, transformFunction: null }, calendar: { classPropertyName: \"calendar\", publicName: \"calendar\", isSignal: true, isRequired: false, transformFunction: null }, picker: { classPropertyName: \"picker\", publicName: \"picker\", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: \"format\", publicName: \"format\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: \"valueChange\", stateChange: \"stateChange\", onValueChanged: \"onValueChanged\", onBlur: \"onBlur\", onFocus: \"onFocus\", onClick: \"onClick\", readonlyChange: \"readonlyChange\", disabledChange: \"disabledChange\", depthChange: \"depthChange\", typeChange: \"typeChange\", activeViewChange: \"activeViewChange\", disabledDatesChange: \"disabledDatesChange\", holidayDatesChange: \"holidayDatesChange\", onNavigate: \"onNavigate\", onSlotClick: \"onSlotClick\" }, providers: [\n { provide: AXComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimePickerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimePickerComponent),\n multi: true,\n },\n ], viewQueries: [{ propertyName: \"tabs\", first: true, predicate: AXTabsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: \"@if (_hasDatePart && _hasTimePart) {\\n <div class=\\\"ax-header\\\">\\n <ax-tabs [look]=\\\"'default'\\\" [fitParent]=\\\"true\\\" [location]=\\\"'top'\\\" (onActiveTabChanged)=\\\"_handleViewChanged($event)\\\">\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.date' | translate | async\\\"\\n [key]=\\\"'date'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.time' | translate | async\\\"\\n [key]=\\\"'time'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n </ax-tabs>\\n </div>\\n}\\n<div class=\\\"ax-content\\\">\\n @if (_activePart() === 'date') {\\n <div class=\\\"ax-calendar-part\\\">\\n <ax-calendar\\n #calendar\\n id=\\\"calendar\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [weekend]=\\\"weekend()\\\"\\n [weekdays]=\\\"weekdays()\\\"\\n [ngModel]=\\\"editingDateObj().date\\\"\\n [minValue]=\\\"minValue\\\"\\n [maxValue]=\\\"maxValue\\\"\\n [disabledDates]=\\\"disabledDates\\\"\\n [holidayDates]=\\\"holidayDates\\\"\\n [depth]=\\\"depth\\\"\\n (onNavigate)=\\\"_handleCalendarOnNavigate($event)\\\"\\n (onValueChanged)=\\\"_handleCalendarOnValueChanged($event)\\\"\\n [type]=\\\"_calendarSystem()\\\"\\n >\\n </ax-calendar>\\n </div>\\n }\\n\\n @if (_activePart() === 'time') {\\n <div class=\\\"ax-picker-part\\\">\\n <div class=\\\"ax-header\\\">\\n @if (picker() === 'datetime') {\\n {{ editingDateObj() | format: 'time' : 'medium' | async }}\\n {{ editingDateObj() | format: 'date' : 'medium' | async }}\\n } @else {\\n {{ editingDateObj() | format: picker() : 'medium' | async }}\\n }\\n </div>\\n <div dir=\\\"ltr\\\" class=\\\"ax-picker-time-container\\\">\\n @if (_parts.hour.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"hourRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.minute.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"minuteRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.second.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"secondRef\\\"> </ng-container>\\n }\\n </div>\\n </div>\\n }\\n</div>\\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\\n <div class=\\\"ax-footer\\\">\\n <div>\\n @if (currentTimeButton) {\\n <ax-button\\n [text]=\\\"`@acorex:${buttonText()}` | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleNowClick()\\\"\\n [disabled]=\\\"isTodayDisabled()\\\"\\n ></ax-button>\\n }\\n </div>\\n <div>\\n @if (_hasTimePart) {\\n <ax-button\\n color=\\\"primary\\\"\\n [text]=\\\"'@acorex:dateTime.set' | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleSetClick()\\\"\\n ></ax-button>\\n }\\n </div>\\n </div>\\n}\\n\\n<ng-template #hourRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.hour' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"hours\\\"\\n [ngModel]=\\\"editingDateObj().hour\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'hour')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerHoursMinValue()\\\"\\n [maxValue]=\\\"pickerHoursMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #minuteRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.minute' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"editingDateObj().minute\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'minute')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerMinuteMinValue()\\\"\\n [maxValue]=\\\"pickerMinuteMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #secondRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.second' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"editingDateObj().second\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'second')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerSecondMinValue()\\\"\\n [maxValue]=\\\"pickerSecondMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\", styles: [\"ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-top:var(--ax-comp-datetime-picker-header-padding-t, .5rem);padding-left:var(--ax-comp-datetime-picker-header-padding-x, .5rem);padding-right:var(--ax-comp-datetime-picker-header-padding-x, .5rem)}ax-datetime-picker>.ax-content{width:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:var(--ax-comp-datetime-picker-md-width, 20rem)}}ax-datetime-picker>.ax-content .ax-picker-part{width:100%;display:flex;flex-direction:column;height:var(--ax-comp-datetime-picker-picker-part-height, 376px)}ax-datetime-picker>.ax-content .ax-picker-part .ax-picker-time-container{display:flex;height:100%}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{font-weight:500;text-align:center;padding:var(--ax-comp-datetime-picker-picker-part-header-padding, .75rem);font-size:var(--ax-comp-datetime-picker-picker-part-header-font-size, 1rem);border-bottom:solid;border-bottom-width:var(--ax-comp-datetime-picker-picker-part-header-border-width, 1px);border-bottom-color:rgba(var(--ax-comp-datetime-picker-picker-part-header-border-color, var(--ax-sys-color-border-surface)))}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{width:100%;padding-top:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem);padding-bottom:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem)}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;padding:var(--ax-comp-datetime-picker-footer-padding, .5rem);border-color:rgba(var(--ax-comp-datetime-picker-footer-border-color, var(--ax-sys-color-border-surface)));border-top-width:var(--ax-comp-datetime-picker-footer-border-top-width, 1px)}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\\n\"], dependencies: [{ kind: \"component\", type: AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: AXTabItemComponent, selector: \"ax-tab-item\", inputs: [\"disabled\", \"text\", \"key\", \"headerTemplate\", \"active\"], outputs: [\"disabledChange\", \"onClick\", \"onBlur\", \"onFocus\", \"activeChange\"] }, { kind: \"component\", type: AXCalendarComponent, selector: \"ax-calendar\", inputs: [\"rtl\", \"readonly\", \"value\", \"name\", \"disabled\", \"depth\", \"activeView\", \"minValue\", \"maxValue\", \"disabledDates\", \"holidayDates\", \"type\", \"dayCellTemplate\", \"monthCellTemplate\", \"yearCellTemplate\", \"cellClass\", \"showNavigation\", \"count\", \"id\", \"weekend\", \"weekdays\"], outputs: [\"onOptionChanged\", \"valueChange\", \"onValueChanged\", \"minValueChange\", \"maxValueChange\", \"onBlur\", \"onFocus\", \"depthChange\", \"typeChange\", \"activeViewChange\", \"disabledDatesChange\", \"holidayDatesChange\", \"onNavigate\", \"onSlotClick\", \"countChange\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXPickerContainerComponent, selector: \"ax-picker-container\", inputs: [\"class\"] }, { kind: \"component\", type: AXPickerTitleComponent, selector: \"ax-picker-title\" }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXPickerItemsComponent, selector: \"ax-picker-items\", inputs: [\"disabled\", \"readonly\", \"readonlyChange\", \"disabledChange\", \"items\", \"valueField\", \"textField\", \"slidesPerGroup\", \"loop\", \"minValue\", \"maxValue\"], outputs: [\"onValueChanged\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXFormatPipe, name: \"format\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDateTimePickerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-datetime-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [\n 'disabled',\n 'readonly',\n 'tabIndex',\n 'placeholder',\n 'value',\n 'state',\n 'name',\n 'id',\n 'depth',\n 'activeView',\n 'minValue',\n 'maxValue',\n 'disabledDates',\n 'holidayDates',\n 'type',\n 'cellTemplate',\n 'cellClass',\n 'showNavigation',\n ], outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'onClick',\n 'readonlyChange',\n 'disabledChange',\n 'depthChange',\n 'typeChange',\n 'activeViewChange',\n 'disabledDatesChange',\n 'holidayDatesChange',\n 'onNavigate',\n 'onSlotClick',\n ], providers: [\n { provide: AXComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimePickerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimePickerComponent),\n multi: true,\n },\n ], imports: [\n AXTabsComponent,\n AXTabItemComponent,\n AXCalendarComponent,\n FormsModule,\n NgTemplateOutlet,\n AXButtonComponent,\n AXPickerContainerComponent,\n AXPickerTitleComponent,\n AXDecoratorGenericComponent,\n AXPickerItemsComponent,\n AsyncPipe,\n AXFormatPipe,\n AXTranslatorPipe,\n ], template: \"@if (_hasDatePart && _hasTimePart) {\\n <div class=\\\"ax-header\\\">\\n <ax-tabs [look]=\\\"'default'\\\" [fitParent]=\\\"true\\\" [location]=\\\"'top'\\\" (onActiveTabChanged)=\\\"_handleViewChanged($event)\\\">\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.date' | translate | async\\\"\\n [key]=\\\"'date'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.time' | translate | async\\\"\\n [key]=\\\"'time'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n </ax-tabs>\\n </div>\\n}\\n<div class=\\\"ax-content\\\">\\n @if (_activePart() === 'date') {\\n <div class=\\\"ax-calendar-part\\\">\\n <ax-calendar\\n #calendar\\n id=\\\"calendar\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [weekend]=\\\"weekend()\\\"\\n [weekdays]=\\\"weekdays()\\\"\\n [ngModel]=\\\"editingDateObj().date\\\"\\n [minValue]=\\\"minValue\\\"\\n [maxValue]=\\\"maxValue\\\"\\n [disabledDates]=\\\"disabledDates\\\"\\n [holidayDates]=\\\"holidayDates\\\"\\n [depth]=\\\"depth\\\"\\n (onNavigate)=\\\"_handleCalendarOnNavigate($event)\\\"\\n (onValueChanged)=\\\"_handleCalendarOnValueChanged($event)\\\"\\n [type]=\\\"_calendarSystem()\\\"\\n >\\n </ax-calendar>\\n </div>\\n }\\n\\n @if (_activePart() === 'time') {\\n <div class=\\\"ax-picker-part\\\">\\n <div class=\\\"ax-header\\\">\\n @if (picker() === 'datetime') {\\n {{ editingDateObj() | format: 'time' : 'medium' | async }}\\n {{ editingDateObj() | format: 'date' : 'medium' | async }}\\n } @else {\\n {{ editingDateObj() | format: picker() : 'medium' | async }}\\n }\\n </div>\\n <div dir=\\\"ltr\\\" class=\\\"ax-picker-time-container\\\">\\n @if (_parts.hour.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"hourRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.minute.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"minuteRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.second.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"secondRef\\\"> </ng-container>\\n }\\n </div>\\n </div>\\n }\\n</div>\\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\\n <div class=\\\"ax-footer\\\">\\n <div>\\n @if (currentTimeButton) {\\n <ax-button\\n [text]=\\\"`@acorex:${buttonText()}` | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleNowClick()\\\"\\n [disabled]=\\\"isTodayDisabled()\\\"\\n ></ax-button>\\n }\\n </div>\\n <div>\\n @if (_hasTimePart) {\\n <ax-button\\n color=\\\"primary\\\"\\n [text]=\\\"'@acorex:dateTime.set' | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleSetClick()\\\"\\n ></ax-button>\\n }\\n </div>\\n </div>\\n}\\n\\n<ng-template #hourRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.hour' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"hours\\\"\\n [ngModel]=\\\"editingDateObj().hour\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'hour')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerHoursMinValue()\\\"\\n [maxValue]=\\\"pickerHoursMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #minuteRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.minute' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"editingDateObj().minute\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'minute')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerMinuteMinValue()\\\"\\n [maxValue]=\\\"pickerMinuteMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #secondRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.second' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"editingDateObj().second\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'second')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerSecondMinValue()\\\"\\n [maxValue]=\\\"pickerSecondMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\", styles: [\"ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-top:var(--ax-comp-datetime-picker-header-padding-t, .5rem);padding-left:var(--ax-comp-datetime-picker-header-padding-x, .5rem);padding-right:var(--ax-comp-datetime-picker-header-padding-x, .5rem)}ax-datetime-picker>.ax-content{width:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:var(--ax-comp-datetime-picker-md-width, 20rem)}}ax-datetime-picker>.ax-content .ax-picker-part{width:100%;display:flex;flex-direction:column;height:var(--ax-comp-datetime-picker-picker-part-height, 376px)}ax-datetime-picker>.ax-content .ax-picker-part .ax-picker-time-container{display:flex;height:100%}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{font-weight:500;text-align:center;padding:var(--ax-comp-datetime-picker-picker-part-header-padding, .75rem);font-size:var(--ax-comp-datetime-picker-picker-part-header-font-size, 1rem);border-bottom:solid;border-bottom-width:var(--ax-comp-datetime-picker-picker-part-header-border-width, 1px);border-bottom-color:rgba(var(--ax-comp-datetime-picker-picker-part-header-border-color, var(--ax-sys-color-border-surface)))}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{width:100%;padding-top:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem);padding-bottom:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem)}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;padding:var(--ax-comp-datetime-picker-footer-padding, .5rem);border-color:rgba(var(--ax-comp-datetime-picker-footer-border-color, var(--ax-sys-color-border-surface)));border-top-width:var(--ax-comp-datetime-picker-footer-border-top-width, 1px)}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\\n\"] }]\n }], propDecorators: { weekend: [{ type: i0.Input, args: [{ isSignal: true, alias: \"weekend\", required: false }] }], weekdays: [{ type: i0.Input, args: [{ isSignal: true, alias: \"weekdays\", required: false }] }], currentTimeButton: [{\n type: Input\n }], tabs: [{\n type: ViewChild,\n args: [AXTabsComponent]\n }], calendar: [{ type: i0.Input, args: [{ isSignal: true, alias: \"calendar\", required: false }] }], picker: [{ type: i0.Input, args: [{ isSignal: true, alias: \"picker\", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: \"format\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUVuQixnQkFBZ0IsR0FDakIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsbUJBQW1CLEVBR25CLHVCQUF1QixHQUN4QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxrQkFBa0IsRUFBMEIsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1Ys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LEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLFdBQ1E7d0JBQ1AsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsMEJBQTBCO3dCQUMxQixzQkFBc0I7d0JBQ3RCLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0QixTQUFTO3dCQUNULFlBQVk7d0JBQ1osZ0JBQWdCO3FCQUNqQjs7c0JBOEJBLEtBQUs7O3NCQWtCTCxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENvbXBvbmVudCxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIEFYVmFsdWVDaGFuZ2VkRXZlbnQsXG4gIE1YVmFsdWVDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHtcbiAgQVhDYWxlbmRhckNvbXBvbmVudCxcbiAgQVhDYWxlbmRhck5hdmlnYXRlRXZlbnQsXG4gIEFYRGF0ZVRpbWVQaWNrZXJUeXBlLFxuICBNWENhbGVuZGFyQmFzZUNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NhbGVuZGFyJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYUGlja2VyQ29udGFpbmVyQ29tcG9uZW50LCBBWFBpY2tlckl0ZW1zQ29tcG9uZW50LCBBWFBpY2tlclRpdGxlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BpY2tlcic7XG5pbXBvcnQgeyBBWFRhYkl0ZW1Db21wb25lbnQsIEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQsIEFYVGFic0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYRGF0ZVRpbWUsIEFYRGF0ZVRpbWVQYXJ0cywgVGltZVVuaXQgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IEFYRm9ybWF0UGlwZSwgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuaW1wb3J0IHsgQVhEYXRlVGltZVBpY2tlckNvbmZpZywgQVhfREFURVRJTUVfUElDS0VSX0NPTkZJRyB9IGZyb20gJy4vZGF0ZXRpbWUtcGlja2VyLmNvbmZpZyc7XG5cbi8qKlxuICogYWxsb3dzIHVzZXJzIHRvIHNlbGVjdCBhIGRhdGUgYW5kIHRpbWUgZnJvbSBhIGNhbGVuZGFyIGFuZCB0aW1lIHBpY2tlciBpbnRlcmZhY2UuXG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtZGF0ZXRpbWUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW5wdXRzOiBbXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAncmVhZG9ubHknLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3BsYWNlaG9sZGVyJyxcbiAgICAndmFsdWUnLFxuICAgICdzdGF0ZScsXG4gICAgJ25hbWUnLFxuICAgICdpZCcsXG4gICAgJ2RlcHRoJyxcbiAgICAnYWN0aXZlVmlldycsXG4gICAgJ21pblZhbHVlJyxcbiAgICAnbWF4VmFsdWUnLFxuICAgICdkaXNhYmxlZERhdGVzJyxcbiAgICAnaG9saWRheURhdGVzJyxcbiAgICAndHlwZScsXG4gICAgJ2NlbGxUZW1wbGF0ZScsXG4gICAgJ2NlbGxDbGFzcycsXG4gICAgJ3Nob3dOYXZpZ2F0aW9uJyxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAnb25DbGljaycsXG4gICAgJ3JlYWRvbmx5Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWRDaGFuZ2UnLFxuICAgICdkZXB0aENoYW5nZScsXG4gICAgJ3R5cGVDaGFuZ2UnLFxuICAgICdhY3RpdmVWaWV3Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWREYXRlc0NoYW5nZScsXG4gICAgJ2hvbGlkYXlEYXRlc0NoYW5nZScsXG4gICAgJ29uTmF2aWdhdGUnLFxuICAgICdvblNsb3RDbGljaycsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBBWFRhYnNDb21wb25lbnQsXG4gICAgQVhUYWJJdGVtQ29tcG9uZW50LFxuICAgIEFYQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBBWEJ1dHRvbkNvbXBvbmVudCxcbiAgICBBWFBpY2tlckNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBBWFBpY2tlclRpdGxlQ29tcG9uZW50LFxuICAgIEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCxcbiAgICBBWFBpY2tlckl0ZW1zQ29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgICBBWEZvcm1hdFBpcGUsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudFxuICBleHRlbmRzIGNsYXNzZXMoTVhDYWxlbmRhckJhc2VDb21wb25lbnQsIE1YVmFsdWVDb21wb25lbnQ8RGF0ZT4pXG4gIGltcGxlbWVudHMgT25Jbml0XG57XG4gIHByaXZhdGUgZm9ybWF0U2VydmljZSA9IGluamVjdChBWEZvcm1hdFNlcnZpY2UpO1xuXG4gIHdlZWtlbmQgPSBpbnB1dDxudW1iZXJbXT4oW10pO1xuICB3ZWVrZGF5cyA9IGlucHV0PG51bWJlcltdPihbXSk7XG5cbiAgcHJvdGVjdGVkIGJ1dHRvblRleHQgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5fYWN0aXZlUGFydCgpID09PSAnZGF0ZScgPyAnZGF0ZVRpbWUudG9kYXknIDogJ2RhdGVUaW1lLm5vdycpKTtcblxuICBwcml2YXRlIGRlZmF1bHRDb25maWc6IEFYRGF0ZVRpbWVQaWNrZXJDb25maWcgPSBpbmplY3QoQVhfREFURVRJTUVfUElDS0VSX0NPTkZJRyk7XG5cbiAgcHJvdGVjdGVkIHBpY2tlckhvdXJzTWluVmFsdWUgPSBzaWduYWw8bnVtYmVyPihudWxsKTtcbiAgcHJvdGVjdGVkIHBpY2tlckhvdXJzTWF4VmFsdWUgPSBzaWduYWw8bnVtYmVyPihudWxsKTtcbiAgcHJvdGVjdGVkIHBpY2tlck1pbnV0ZU1pblZhbHVlID0gc2lnbmFsPG51bWJlcj4obnVsbCk7XG4gIHByb3RlY3RlZCBwaWNrZXJNaW51dGVNYXhWYWx1ZSA9IHNpZ25hbDxudW1iZXI+KG51bGwpO1xuICBwcm90ZWN0ZWQgcGlja2VyU2Vjb25kTWluVmFsdWUgPSBzaWduYWw8bnVtYmVyPihudWxsKTtcbiAgcHJvdGVjdGVkIHBpY2tlclNlY29uZE1heFZhbHVlID0gc2lnbmFsPG51bWJlcj4obnVsbCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9jdXJyZW50VGltZUJ1dHRvbjogYm9vbGVhbiA9IHRoaXMuZGVmYXVsdENvbmZpZy5jdXJyZW50VGltZUJ1dHRvbjtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgYnV0dG9uIGZvciBzZWxlY3RpbmcgdGhlIGN1cnJlbnQgdGltZSBpcyBkaXNwbGF5ZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGN1cnJlbnRUaW1lQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VGltZUJ1dHRvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHdoZXRoZXIgdGhlIGJ1dHRvbiBmb3Igc2VsZWN0aW5nIHRoZSBjdXJyZW50IHRpbWUgaXMgZGlzcGxheWVkLlxuICAgKi9cbiAgcHVibGljIHNldCBjdXJyZW50VGltZUJ1dHRvbih2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2N1cnJlbnRUaW1lQnV0dG9uJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKEFYVGFic0NvbXBvbmVudClcbiAgcHJvdGVjdGVkIHRhYnM6IEFYVGFic0NvbXBvbmVudDtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBob3VyczogYW55W10gPSBBcnJheSgyNClcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKG0sIGkpID0+ICh7IGlkOiBpLCB0ZXh0OiBpIH0pKTtcbiAgbWludXRlczogYW55W10gPSBBcnJheSg2MClcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKG0sIGkpID0+ICh7IGlkOiBpLCB0ZXh0OiBpIH0pKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfcGFydHM6IEFYRGF0ZVRpbWVQYXJ0cyA9IHtcbiAgICB5ZWFyOiB7XG4gICAgICBrZXk6ICd5ZWFyJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAneXl5eScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnWVknLCAneXknLCAnWVlZWScsICd5eXl5J10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDIwMjMsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5lZGl0aW5nRGF0ZU9iaigpLCAnZGF0ZXRpbWUnLCB0aGlzLl9wYXJ0cy55ZWFyLnBsYWNlaG9sZGVyIGFzIGFueSksXG4gICAgfSxcbiAgICBtb250aDoge1xuICAgICAga2V5OiAnbW9udGgnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdNTScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnTU1NJywgJ01NTU0nLCAnTU0nLCAnTSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAxLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PlxuICAgICAgICB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuZWRpdGluZ0RhdGVPYmooKSwgJ2RhdGV0aW1lJywgdGhpcy5fcGFydHMubW9udGgucGxhY2Vob2xkZXIgYXMgYW55KSxcbiAgICB9LFxuICAgIGRheToge1xuICAgICAga2V5OiAnZGF5JyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnZGQnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ2RkJywgJ2QnLCAnRScsICdkZGRkJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDEsXG4gICAgICByZWFsVmFsdWU6ICgpID0+IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5lZGl0aW5nRGF0ZU9iaigpLCAnZGF0ZXRpbWUnLCB0aGlzLl9wYXJ0cy5kYXkucGxhY2Vob2xkZXIgYXMgYW55KSxcbiAgICB9LFxuICAgIGhvdXI6IHtcbiAgICAgIGtleTogJ2hvdXInLFxuICAgICAgcGxhY2Vob2xkZXI6ICdISCcsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnSEgnLCAnSCcsICdoaCcsICdoJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5lZGl0aW5nRGF0ZU9iaigpLCAnZGF0ZXRpbWUnLCB0aGlzLl9wYXJ0cy5ob3VyLnBsYWNlaG9sZGVyIGFzIGFueSksXG4gICAgfSxcbiAgICBtaW51dGU6IHtcbiAgICAgIGtleTogJ21pbnV0ZScsXG4gICAgICBwbGFjZWhvbGRlcjogJ21tJyxcbiAgICAgIHBsYWNlaG9sZGVyczogWydtbScsICdtJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5lZGl0aW5nRGF0ZU9iaigpLCAnZGF0ZXRpbWUnLCB0aGlzLl9wYXJ0cy5taW51dGUucGxhY2Vob2xkZXIgYXMgYW55KSxcbiAgICB9LFxuICAgIHNlY29uZDoge1xuICAgICAga2V5OiAnc2Vjb25kJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnc3MnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ3NzJywgJ3MnXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMCxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLmVkaXRpbmdEYXRlT2JqKCksICdkYXRldGltZScsIHRoaXMuX3BhcnRzLnNlY29uZC5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgQU1QTToge1xuICAgICAga2V5OiAnQU1QTScsXG4gICAgICBwbGFjZWhvbGRlcjogJ2EnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ2EnLCAnQSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgdHlwZWRWYWx1ZTogbnVsbCxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLmVkaXRpbmdEYXRlT2JqKCksICdkYXRldGltZScsIHRoaXMuX3BhcnRzLkFNUE0ucGxhY2Vob2xkZXIgYXMgYW55KSxcbiAgICB9LFxuICB9O1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9hY3RpdmVQYXJ0ID0gc2lnbmFsPCdkYXRlJyB8ICd0aW1lJz4oJ2RhdGUnKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBnZXQgX2hhc0RhdGVQYXJ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ3llYXInLCAnbW9udGgnLCAnZGF5J10uc29tZSgoaykgPT4gdGhpcy5fcGFydHNba10uZW5hYmxlZCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBnZXQgX2hhc1RpbWVQYXJ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCddLnNvbWUoKGspID0+IHRoaXMuX3BhcnRzW2tdLmVuYWJsZWQpO1xuICB9XG5cbiAgLy8gLyoqXG4gIC8vICAqICBAaWdub3JlXG4gIC8vICAqL1xuICBlZGl0aW5nRGF0ZU9iaiA9IGxpbmtlZFNpZ25hbDxBWERhdGVUaW1lPigoKSA9PiB0aGlzLmNhbGVuZGFyU2VydmljZS5ub3codGhpcy5jYWxlbmRhcigpKSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgY2FsZW5kYXIgdHlwZSB0byB1c2UgZm9yIHRoZSBkYXRldGltZSBpbnB1dC5cbiAgICovXG4gIGNhbGVuZGFyID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIF9jYWxlbmRhclN5c3RlbSA9IGxpbmtlZFNpZ25hbDxzdHJpbmcgfCBudWxsPigoKSA9PiB0aGlzLmNhbGVuZGFyKCkgPz8gdGhpcy50eXBlKTtcblxuICBwaWNrZXIgPSBpbnB1dDxBWERhdGVUaW1lUGlja2VyVHlwZT4oJ2RhdGV0aW1lJyk7XG5cbiAgI2VmZmVjdFBpY2tlciA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMucGlja2VyKCkgPT09ICd0aW1lJykge1xuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkTWluVmFsdWUodGhpcy5lZGl0aW5nRGF0ZU9iaigpKTtcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1heFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmooKSk7XG4gICAgICB0aGlzLl9hY3RpdmVQYXJ0LnNldCgndGltZScpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5waWNrZXIoKSA9PT0gJ2RhdGUnKSB7XG4gICAgICB0aGlzLl9hY3RpdmVQYXJ0LnNldCgnZGF0ZScpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSBfZm9ybWF0ID0gbGlua2VkU2lnbmFsPHN0cmluZz4oXG4gICAgKCkgPT4gdGhpcy5mb3JtYXQoKSA/PyB0aGlzLmxvY2FsZVNlcnZpY2UuYWN0aXZlUHJvZmlsZSgpLmZvcm1hdHNbdGhpcy5waWNrZXIoKV0/LnNob3J0ID8/ICcnLFxuICApO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgbG9jYWxlICYgbW9kZSBpbnN0ZWFkXG4gICAqL1xuICBmb3JtYXQgPSBpbnB1dDxzdHJpbmcgfCBudWxsPigpO1xuXG4gICNlZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHByb2ZpbGUgPSB0aGlzLmxvY2FsZVNlcnZpY2UuYWN0aXZlUHJvZmlsZSgpO1xuICAgIC8vXG4gICAgaWYgKCF0aGlzLmZvcm1hdCgpKSB7XG4gICAgICB0aGlzLl9mb3JtYXQuc2V0KHRoaXMuZm9ybWF0KCkgPz8gcHJvZmlsZS5mb3JtYXRzW3RoaXMucGlja2VyKCldPy5zaG9ydCA/PyAnJyk7XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKCF0aGlzLmNhbGVuZGFyKCkpIHtcbiAgICAgIHRoaXMuX2NhbGVuZGFyU3lzdGVtLnNldChwcm9maWxlLmNhbGVuZGFyLnN5c3RlbSk7XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy50eXBlID0gdGhpcy5fY2FsZW5kYXJTeXN0ZW0oKTtcbiAgICAvL1xuICAgIHRoaXMuX2RldGVjdFBhcnRzKCk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLl9kZXRlY3RQYXJ0cygpO1xuXG4gICAgdGhpcy5taW5WYWx1ZUNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkTWluVmFsdWUodGhpcy5lZGl0aW5nRGF0ZU9iaigpKTtcbiAgICB9KTtcblxuICAgIHRoaXMubWF4VmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1heFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmooKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBjaGFuZ2VzIHRvIHRoZSBpbnRlcm5hbCB2YWx1ZSBvZiB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgbmV3IGRhdGUgdmFsdWUuIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgZGF0ZS5cbiAgICovXG4gIG92ZXJyaWRlIGludGVybmFsVmFsdWVDaGFuZ2VkKHZhbHVlPzogRGF0ZSk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5jYWxlbmRhclNlcnZpY2UuaXNWYWxpZERhdGUodmFsdWUpKSB7XG4gICAgICAgIHRoaXMuZWRpdGluZ0RhdGVPYmouc2V0KHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZSh2YWx1ZSwgdGhpcy5jYWxlbmRhcigpKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuZWRpdGluZ0RhdGVPYmouc2V0KHRoaXMuY2FsZW5kYXJTZXJ2aWNlLm5vdyh0aGlzLmNhbGVuZGFyKCkpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlVmlld0NoYW5nZWQoZTogQVhUYWJTdHJpcENoYW5nZWRFdmVudCkge1xuICAgIHRoaXMuX2FjdGl2ZVBhcnQuc2V0KGUudGFiLmtleSBhcyAnZGF0ZScgfCAndGltZScpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4sIHBhcnQ6IHN0cmluZykge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLmVkaXRpbmdEYXRlT2JqLnNldCh0aGlzLmVkaXRpbmdEYXRlT2JqKCkuc2V0KHBhcnQgYXMgVGltZVVuaXQsIE51bWJlcihlLnZhbHVlWydpZCddKSkpO1xuXG4gICAgICBpZiAodGhpcy5taW5WYWx1ZSkge1xuICAgICAgICBjb25zdCBtaW52ID0gdGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh0aGlzLm1pblZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpO1xuICAgICAgICAvLyBPbmx5IGFwcGx5IG1pbnV0ZSByZXN0cmljdGlvbnMgaWYgd2UncmUgb24gdGhlIHNhbWUgZGF5IGFuZCBzYW1lIGhvdXJcbiAgICAgICAgaWYgKHRoaXMuZWRpdGluZ0RhdGVPYmooKS5pc0FmdGVyKHRoaXMubWluVmFsdWUsICdkYXknKSB8fCB0aGlzLmVkaXRpbmdEYXRlT2JqKCkuaG91ciA+IG1pbnYuaG91cikge1xuICAgICAgICAgIHRoaXMucGlja2VyTWludXRlTWluVmFsdWUuc2V0KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucGlja2VyTWludXRlTWluVmFsdWUuc2V0KG1pbnYubWludXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5tYXhWYWx1ZSkge1xuICAgICAgICBjb25zdCBtYXh2ID0gdGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh0aGlzLm1heFZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpO1xuICAgICAgICAvLyBPbmx5IGFwcGx5IG1pbnV0ZSByZXN0cmljdGlvbnMgaWYgd2UncmUgb24gdGhlIHNhbWUgZGF5IGFuZCBzYW1lIGhvdXJcbiAgICAgICAgaWYgKHRoaXMuZWRpdGluZ0RhdGVPYmooKS5pc0JlZm9yZSh0aGlzLm1heFZhbHVlLCAnZGF5JykgfHwgdGhpcy5lZGl0aW5nRGF0ZU9iaigpLmhvdXIgPCBtYXh2LmhvdXIpIHtcbiAgICAgICAgICB0aGlzLnBpY2tlck1pbnV0ZU1heFZhbHVlLnNldChudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnBpY2tlck1pbnV0ZU1heFZhbHVlLnNldChtYXh2Lm1pbnV0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlQ2FsZW5kYXJPbk5hdmlnYXRlKGU6IEFYQ2FsZW5kYXJOYXZpZ2F0ZUV2ZW50KSB7XG4gICAgdGhpcy5vbk5hdmlnYXRlLmVtaXQoZSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlQ2FsZW5kYXJPblZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PERhdGU+KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jcmVhdGUoZS52YWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlXG4gICAgICAgIC5jcmVhdGUoZS52YWx1ZSwgdGhpcy5jYWxlbmRhcigpKVxuICAgICAgICAuc2V0KCdkYXknLCBzZWxlY3RlZFZhbHVlLmRheU9mTW9udGgpXG4gICAgICAgIC5zZXQoJ21vbnRoJywgc2VsZWN0ZWRWYWx1ZS5tb250aE9mWWVhcilcbiAgICAgICAgLnNldCgneWVhcicsIHNlbGVjdGVkVmFsdWUueWVhcik7XG5cbiAgICAgIHRoaXMuZWRpdGluZ0RhdGVPYmouc2V0KGN1cnJlbnRWYWx1ZSk7XG4gICAgICBpZiAodGhpcy5faGFzVGltZVBhcnQpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlUGFydC5zZXQoJ3RpbWUnKTtcbiAgICAgICAgaWYgKHRoaXMudGFicyAmJiB0aGlzLl9oYXNEYXRlUGFydCAmJiB0aGlzLl9oYXNUaW1lUGFydCkge1xuICAgICAgICAgIHRoaXMudGFicy5zZWxlY3QoMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqKCkuZGF0ZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5lZGl0aW5nRGF0ZU9iaigpLmRhdGUsIHRydWUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNoZWNrU2VsZWN0ZWRNaW5WYWx1ZShzZWxlY3RlZFZhbHVlKTtcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1heFZhbHVlKHNlbGVjdGVkVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tTZWxlY3RlZE1pblZhbHVlKHNlbGVjdGVkVmFsdWU6IEFYRGF0ZVRpbWUpIHtcbiAgICBpZiAoIXRoaXMubWluVmFsdWUpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuY2FsZW5kYXJTZXJ2aWNlLmlzVmFsaWREYXRlKHRoaXMubWluVmFsdWUpKSByZXR1cm47XG5cbiAgICBpZiAoc2VsZWN0ZWRWYWx1ZS5pc0FmdGVyKHRoaXMubWluVmFsdWUsICdkYXknKSkge1xuICAgICAgdGhpcy5waWNrZXJIb3Vyc01pblZhbHVlLnNldChudWxsKTtcbiAgICAgIHRoaXMucGlja2VyTWludXRlTWluVmFsdWUuc2V0KG51bGwpO1xuICAgICAgdGhpcy5waWNrZXJTZWNvbmRNaW5WYWx1ZS5zZXQobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1pbnYgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jb252ZXJ0KHRoaXMubWluVmFsdWUsIHRoaXMuY2FsZW5kYXIoKSk7XG4gICAgICB0aGlzLnBpY2tlckhvdXJzTWluVmFsdWUuc2V0KG1pbnYuaG91cik7XG4gICAgICB0aGlzLnBpY2tlck1pbnV0ZU1pblZhbHVlLnNldChtaW52Lm1pbnV0ZSk7XG4gICAgICB0aGlzLnBpY2tlclNlY29uZE1pblZhbHVlLnNldChtaW52LnNlY29uZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1NlbGVjdGVkTWF4VmFsdWUoc2VsZWN0ZWRWYWx1ZTogQVhEYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5tYXhWYWx1ZSkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5jYWxlbmRhclNlcnZpY2UuaXNWYWxpZERhdGUodGhpcy5tYXhWYWx1ZSkpIHJldHVybjtcblxuICAgIGlmIChzZWxlY3RlZFZhbHVlLmlzQmVmb3JlKHRoaXMubWF4VmFsdWUsICdkYXknKSkge1xuICAgICAgdGhpcy5waWNrZXJIb3Vyc01heFZhbHVlLnNldChudWxsKTtcbiAgICAgIHRoaXMucGlja2VyTWludXRlTWF4VmFsdWUuc2V0KG51bGwpO1xuICAgICAgdGhpcy5waWNrZXJTZWNvbmRNYXhWYWx1ZS5zZXQobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1heHYgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jb252ZXJ0KHRoaXMubWF4VmFsdWUsIHRoaXMuY2FsZW5kYXIoKSk7XG4gICAgICB0aGlzLnBpY2tlckhvdXJzTWF4VmFsdWUuc2V0KG1heHYuaG91cik7XG4gICAgICB0aGlzLnBpY2tlck1pbnV0ZU1heFZhbHVlLnNldChtYXh2Lm1pbnV0ZSk7XG4gICAgICB0aGlzLnBpY2tlclNlY29uZE1heFZhbHVlLnNldChtYXh2LnNlY29uZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9kZXRlY3RQYXJ0cygpIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuX3BhcnRzKS5mb3JFYWNoKChlKSA9PiB7XG4gICAgICBlLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgICBjb25zdCBmb3JtYXRQYXJ0cyA9IHRoaXMuX2Zvcm1hdCgpLnNwbGl0KC9bXmEtekEtWl0rLyk7XG4gICAgZm9ybWF0UGFydHMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgY29uc3QgZm91bmQgPSBPYmplY3QudmFsdWVzKHRoaXMuX3BhcnRzKS5maW5kKChjKSA9PiBjLnBsYWNlaG9sZGVycy5zb21lKChkKSA9PiBkID09IGYpKTtcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICBmb3VuZC5lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgZm91bmQucGxhY2Vob2xkZXIgPSBmO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlU2V0Q2xpY2soKSB7XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqKCkuZGF0ZSwgdHJ1ZSk7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkTWluVmFsdWUodGhpcy5lZGl0aW5nRGF0ZU9iaigpKTtcbiAgICB0aGlzLmNoZWNrU2VsZWN0ZWRNYXhWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZU5vd0NsaWNrKCkge1xuICAgIHRoaXMuZWRpdGluZ0RhdGVPYmouc2V0KHRoaXMuY2FsZW5kYXJTZXJ2aWNlLm5vdyh0aGlzLmNhbGVuZGFyKCkpKTtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmooKS5kYXRlLCB0cnVlKTtcbiAgICB0aGlzLmNoZWNrU2VsZWN0ZWRNaW5WYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqKCkpO1xuICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1heFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmooKSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkKGRhdGU6IEFYRGF0ZVRpbWUpOiBib29sZWFuIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRpc2FibGVkRGF0ZXMpICYmIHRoaXMuZGlzYWJsZWREYXRlcy5sZW5ndGggIT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcy5zb21lKChkKSA9PiBkYXRlLmVxdWFsKGQsICdkYXknKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5kaXNhYmxlZERhdGVzID09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMoZGF0ZS5kYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaW50ZXJuYWxTZXRWYWx1ZSh2YWx1ZTogRGF0ZSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlIHx8ICF0aGlzLmNhbGVuZGFyU2VydmljZS5pc1ZhbGlkRGF0ZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCB2ID0gdGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh2YWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICB0aGlzLmNoZWNrU2VsZWN0ZWRNaW5WYWx1ZSh0aGlzLmNhbGVuZGFyU2VydmljZS5jb252ZXJ0KHYsIHRoaXMuY2FsZW5kYXIoKSkpO1xuICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1heFZhbHVlKHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodiwgdGhpcy5jYWxlbmRhcigpKSk7XG5cbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKHYpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5taW5WYWx1ZSAmJiB0aGlzLmNhbGVuZGFyU2VydmljZS5pc1ZhbGlkRGF0ZSh0aGlzLm1pblZhbHVlKSAmJiB2LmlzQmVmb3JlKHRoaXMubWluVmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5taW5WYWx1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4VmFsdWUgJiYgdGhpcy5jYWxlbmRhclNlcnZpY2UuaXNWYWxpZERhdGUodGhpcy5tYXhWYWx1ZSkgJiYgdi5pc0FmdGVyKHRoaXMubWF4VmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdi5kYXRlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzVG9kYXlEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBkaXNhYmxlZERhdGVzID0gdGhpcy5kaXNhYmxlZERhdGVzO1xuXG4gICAgaWYgKCFkaXNhYmxlZERhdGVzIHx8ICFBcnJheS5pc0FycmF5KGRpc2FibGVkRGF0ZXMpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIHRvZGF5LnNldEhvdXJzKDAsIDAsIDAsIDApO1xuXG4gICAgcmV0dXJuIGRpc2FibGVkRGF0ZXMuc29tZSgoZGlzYWJsZWREYXRlOiBEYXRlKSA9PiB7XG4gICAgICBjb25zdCBkaXNhYmxlZCA9IG5ldyBEYXRlKGRpc2FibGVkRGF0ZSk7XG4gICAgICBkaXNhYmxlZC5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgIHJldHVybiB0b2RheS5nZXRUaW1lKCkgPT09IGRpc2FibGVkLmdldFRpbWUoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmIChfaGFzRGF0ZVBhcnQgJiYgX2hhc1RpbWVQYXJ0KSB7XG4gIDxkaXYgY2xhc3M9XCJheC1oZWFkZXJcIj5cbiAgICA8YXgtdGFicyBbbG9va109XCInZGVmYXVsdCdcIiBbZml0UGFyZW50XT1cInRydWVcIiBbbG9jYXRpb25dPVwiJ3RvcCdcIiAob25BY3RpdmVUYWJDaGFuZ2VkKT1cIl9oYW5kbGVWaWV3Q2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICA8YXgtdGFiLWl0ZW1cbiAgICAgICAgW3RleHRdPVwiJ0BhY29yZXg6ZGF0ZVRpbWUuZGF0ZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgIFtrZXldPVwiJ2RhdGUnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgID48L2F4LXRhYi1pdGVtPlxuICAgICAgPGF4LXRhYi1pdGVtXG4gICAgICAgIFt0ZXh0XT1cIidAYWNvcmV4OmRhdGVUaW1lLnRpbWUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICBba2V5XT1cIid0aW1lJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICA+PC9heC10YWItaXRlbT5cbiAgICA8L2F4LXRhYnM+XG4gIDwvZGl2PlxufVxuPGRpdiBjbGFzcz1cImF4LWNvbnRlbnRcIj5cbiAgQGlmIChfYWN0aXZlUGFydCgpID09PSAnZGF0ZScpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItcGFydFwiPlxuICAgICAgPGF4LWNhbGVuZGFyXG4gICAgICAgICNjYWxlbmRhclxuICAgICAgICBpZD1cImNhbGVuZGFyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW3dlZWtlbmRdPVwid2Vla2VuZCgpXCJcbiAgICAgICAgW3dlZWtkYXlzXT1cIndlZWtkYXlzKClcIlxuICAgICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iaigpLmRhdGVcIlxuICAgICAgICBbbWluVmFsdWVdPVwibWluVmFsdWVcIlxuICAgICAgICBbbWF4VmFsdWVdPVwibWF4VmFsdWVcIlxuICAgICAgICBbZGlzYWJsZWREYXRlc109XCJkaXNhYmxlZERhdGVzXCJcbiAgICAgICAgW2hvbGlkYXlEYXRlc109XCJob2xpZGF5RGF0ZXNcIlxuICAgICAgICBbZGVwdGhdPVwiZGVwdGhcIlxuICAgICAgICAob25OYXZpZ2F0ZSk9XCJfaGFuZGxlQ2FsZW5kYXJPbk5hdmlnYXRlKCRldmVudClcIlxuICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZUNhbGVuZGFyT25WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIFt0eXBlXT1cIl9jYWxlbmRhclN5c3RlbSgpXCJcbiAgICAgID5cbiAgICAgIDwvYXgtY2FsZW5kYXI+XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYgKF9hY3RpdmVQYXJ0KCkgPT09ICd0aW1lJykge1xuICAgIDxkaXYgY2xhc3M9XCJheC1waWNrZXItcGFydFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWhlYWRlclwiPlxuICAgICAgICBAaWYgKHBpY2tlcigpID09PSAnZGF0ZXRpbWUnKSB7XG4gICAgICAgICAge3sgZWRpdGluZ0RhdGVPYmooKSB8IGZvcm1hdDogJ3RpbWUnIDogJ21lZGl1bScgfCBhc3luYyB9fVxuICAgICAgICAgIHt7IGVkaXRpbmdEYXRlT2JqKCkgfCBmb3JtYXQ6ICdkYXRlJyA6ICdtZWRpdW0nIHwgYXN5bmMgfX1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAge3sgZWRpdGluZ0RhdGVPYmooKSB8IGZvcm1hdDogcGlja2VyKCkgOiAnbWVkaXVtJyB8IGFzeW5jIH19XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBkaXI9XCJsdHJcIiBjbGFzcz1cImF4LXBpY2tlci10aW1lLWNvbnRhaW5lclwiPlxuICAgICAgICBAaWYgKF9wYXJ0cy5ob3VyLmVuYWJsZWQpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhvdXJSZWZcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKF9wYXJ0cy5taW51dGUuZW5hYmxlZCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWludXRlUmVmXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChfcGFydHMuc2Vjb25kLmVuYWJsZWQpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlY29uZFJlZlwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuQGlmICghZGlzYWJsZWQgJiYgIXJlYWRvbmx5ICYmIChjdXJyZW50VGltZUJ1dHRvbiB8fCBfaGFzVGltZVBhcnQpKSB7XG4gIDxkaXYgY2xhc3M9XCJheC1mb290ZXJcIj5cbiAgICA8ZGl2PlxuICAgICAgQGlmIChjdXJyZW50VGltZUJ1dHRvbikge1xuICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgW3RleHRdPVwiYEBhY29yZXg6JHtidXR0b25UZXh0KCl9YCB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICAob25DbGljayk9XCJfaGFuZGxlTm93Q2xpY2soKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImlzVG9kYXlEaXNhYmxlZCgpXCJcbiAgICAgICAgPjwvYXgtYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICBAaWYgKF9oYXNUaW1lUGFydCkge1xuICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICBbdGV4dF09XCInQGFjb3JleDpkYXRlVGltZS5zZXQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgIChvbkNsaWNrKT1cIl9oYW5kbGVTZXRDbGljaygpXCJcbiAgICAgICAgPjwvYXgtYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cblxuPG5nLXRlbXBsYXRlICNob3VyUmVmPlxuICA8YXgtcGlja2VyLWNvbnRhaW5lcj5cbiAgICA8YXgtcGlja2VyLXRpdGxlPlxuICAgICAgPGF4LXRleHQ+e3sgJ0BhY29yZXg6ZGF0ZVRpbWUudW5pdHMuaG91cicgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvYXgtdGV4dD5cbiAgICA8L2F4LXBpY2tlci10aXRsZT5cbiAgICA8YXgtcGlja2VyLWl0ZW1zXG4gICAgICBbaXRlbXNdPVwiaG91cnNcIlxuICAgICAgW25nTW9kZWxdPVwiZWRpdGluZ0RhdGVPYmooKS5ob3VyXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUGlja2VyT25WYWx1ZUNoYW5nZWQoJGV2ZW50LCAnaG91cicpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW21pblZhbHVlXT1cInBpY2tlckhvdXJzTWluVmFsdWUoKVwiXG4gICAgICBbbWF4VmFsdWVdPVwicGlja2VySG91cnNNYXhWYWx1ZSgpXCJcbiAgICA+PC9heC1waWNrZXItaXRlbXM+XG4gIDwvYXgtcGlja2VyLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbWludXRlUmVmPlxuICA8YXgtcGlja2VyLWNvbnRhaW5lcj5cbiAgICA8YXgtcGlja2VyLXRpdGxlPlxuICAgICAgPGF4LXRleHQ+e3sgJ0BhY29yZXg6ZGF0ZVRpbWUudW5pdHMubWludXRlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC10ZXh0PlxuICAgIDwvYXgtcGlja2VyLXRpdGxlPlxuICAgIDxheC1waWNrZXItaXRlbXNcbiAgICAgIFtpdGVtc109XCJtaW51dGVzXCJcbiAgICAgIFtuZ01vZGVsXT1cImVkaXRpbmdEYXRlT2JqKCkubWludXRlXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUGlja2VyT25WYWx1ZUNoYW5nZWQoJGV2ZW50LCAnbWludXRlJylcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbbWluVmFsdWVdPVwicGlja2VyTWludXRlTWluVmFsdWUoKVwiXG4gICAgICBbbWF4VmFsdWVdPVwicGlja2VyTWludXRlTWF4VmFsdWUoKVwiXG4gICAgPjwvYXgtcGlja2VyLWl0ZW1zPlxuICA8L2F4LXBpY2tlci1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NlY29uZFJlZj5cbiAgPGF4LXBpY2tlci1jb250YWluZXI+XG4gICAgPGF4LXBpY2tlci10aXRsZT5cbiAgICAgIDxheC10ZXh0Pnt7ICdAYWNvcmV4OmRhdGVUaW1lLnVuaXRzLnNlY29uZCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvYXgtdGV4dD5cbiAgICA8L2F4LXBpY2tlci10aXRsZT5cbiAgICA8YXgtcGlja2VyLWl0ZW1zXG4gICAgICBbaXRlbXNdPVwibWludXRlc1wiXG4gICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iaigpLnNlY29uZFwiXG4gICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKCRldmVudCwgJ3NlY29uZCcpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW21pblZhbHVlXT1cInBpY2tlclNlY29uZE1pblZhbHVlKClcIlxuICAgICAgW21heFZhbHVlXT1cInBpY2tlclNlY29uZE1heFZhbHVlKClcIlxuICAgID48L2F4LXBpY2tlci1pdGVtcz5cbiAgPC9heC1waWNrZXItY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { AXDateTimePickerComponent } from './datetime-picker.component';\nimport * as i0 from \"@angular/core\";\nexport class AXDateTimePickerModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDateTimePickerModule, imports: [AXDateTimePickerComponent], exports: [AXDateTimePickerComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDateTimePickerModule, imports: [AXDateTimePickerComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXDateTimePickerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXDateTimePickerComponent],\n exports: [AXDateTimePickerComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU14RSxNQUFNLE9BQU8sc0JBQXNCOytHQUF0QixzQkFBc0I7Z0hBQXRCLHNCQUFzQixZQUh2Qix5QkFBeUIsYUFDekIseUJBQXlCO2dIQUV4QixzQkFBc0IsWUFIdkIseUJBQXlCOzs0RkFHeEIsc0JBQXNCO2tCQUpsQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0FYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lUGlja2VyTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtZGF0ZXRpbWUtcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvc3JjL2Fjb3JleC1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}