@acorex/components 20.2.12 → 20.2.14

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.
@@ -1,4 +1,6 @@
1
1
  import { MXInputBaseValueComponent, MXLookComponent, AXComponent, AXFocusableComponent, AXValuableComponent } from '@acorex/cdk/common';
2
+ import * as i3 from '@acorex/components/form';
3
+ import { AXFormModule } from '@acorex/components/form';
2
4
  import { AXSelectBoxModule } from '@acorex/components/select-box';
3
5
  import * as i1 from '@acorex/components/text-box';
4
6
  import { AXTextBoxModule } from '@acorex/components/text-box';
@@ -30,6 +32,7 @@ class AXTimeDurationComponent extends classes((MXInputBaseValueComponent), MXLoo
30
32
  }, ...(ngDevMode ? [{ debugName: "maskOptions" }] : []));
31
33
  this.translationService = inject(AXTranslationService);
32
34
  this.timeDurationFormatter = inject(AXTimeDurationFormatter);
35
+ this.translation = inject(AXTranslationService);
33
36
  this.onInputFire = false;
34
37
  this.onInternalValueChangedFire = false;
35
38
  this.YEAR = signal(null, ...(ngDevMode ? [{ debugName: "YEAR" }] : []));
@@ -51,6 +54,37 @@ class AXTimeDurationComponent extends classes((MXInputBaseValueComponent), MXLoo
51
54
  this.updateMask();
52
55
  }
53
56
  }, ...(ngDevMode ? [{ debugName: "#effect" }] : []));
57
+ this.validateFn = async (val) => {
58
+ if (this.minValue() && this.minValue() > val) {
59
+ const normalizedMaskMin = await this.timeDurationFormatter.millisecondsToMask(this.minValue(), this.valueStart(), this.valueEnd(), true, this.maskDigits(), true);
60
+ const message = await this.translation.translateAsync('@acorex:validation.messages.min', {
61
+ params: { value: normalizedMaskMin },
62
+ });
63
+ return {
64
+ rule: 'callback',
65
+ result: false,
66
+ message,
67
+ value: val,
68
+ };
69
+ }
70
+ if (this.maxValue() && this.maxValue() < val) {
71
+ const normalizedMaskMax = await this.timeDurationFormatter.millisecondsToMask(this.maxValue(), this.valueStart(), this.valueEnd(), true, this.maskDigits(), true);
72
+ const message = await this.translation.translateAsync('@acorex:validation.messages.max', {
73
+ params: { value: normalizedMaskMax },
74
+ });
75
+ return {
76
+ rule: 'callback',
77
+ result: false,
78
+ message,
79
+ value: val,
80
+ };
81
+ }
82
+ return {
83
+ rule: 'callback',
84
+ result: true,
85
+ value: val,
86
+ };
87
+ };
54
88
  }
55
89
  #init;
56
90
  #effect;
@@ -65,39 +99,19 @@ class AXTimeDurationComponent extends classes((MXInputBaseValueComponent), MXLoo
65
99
  this.MILLISECOND.set((await this.translationService.translateAsync('@acorex:dateTime.units.millisecond')).toLocaleUpperCase());
66
100
  this.isTranslationInit.set(true);
67
101
  }
68
- onInput(event) {
102
+ async onInput(event) {
69
103
  if (this.onInternalValueChangedFire)
70
104
  return;
71
105
  this.onInputFire = true;
72
106
  const milliseconds = this.maskToMilliseconds(event);
73
- // Apply min/max validation
74
- const minValue = this.minValue();
75
- const maxValue = this.maxValue();
76
- let validatedMilliseconds = milliseconds;
77
- if (minValue !== null && milliseconds < minValue) {
78
- validatedMilliseconds = minValue;
79
- }
80
- if (maxValue !== null && milliseconds > maxValue) {
81
- validatedMilliseconds = maxValue;
82
- }
83
- this.commitValue(validatedMilliseconds, true);
107
+ this.commitValue(milliseconds, true);
84
108
  this.onInputFire = false;
85
109
  }
86
110
  async internalValueChanged(value) {
87
111
  if (this.onInputFire)
88
112
  return;
89
113
  this.onInternalValueChangedFire = true;
90
- // Apply min/max validation for programmatically set values
91
- const minValue = this.minValue();
92
- const maxValue = this.maxValue();
93
- let validatedValue = value;
94
- if (minValue !== null && value < minValue) {
95
- validatedValue = minValue;
96
- }
97
- if (maxValue !== null && value > maxValue) {
98
- validatedValue = maxValue;
99
- }
100
- const normalizedMask = await this.timeDurationFormatter.millisecondsToMask(validatedValue, this.valueStart(), this.valueEnd(), this.label(), this.maskDigits(), true);
114
+ const normalizedMask = await this.timeDurationFormatter.millisecondsToMask(value, this.valueStart(), this.valueEnd(), this.label(), this.maskDigits(), true);
101
115
  this.inputValue = normalizedMask;
102
116
  setTimeout(() => {
103
117
  this.onInternalValueChangedFire = false;
@@ -245,11 +259,11 @@ class AXTimeDurationComponent extends classes((MXInputBaseValueComponent), MXLoo
245
259
  useExisting: forwardRef(() => AXTimeDurationComponent),
246
260
  multi: true,
247
261
  },
248
- ], usesInheritance: true, ngImport: i0, template: "<ax-text-box\n [look]=\"look\"\n [placeholder]=\"maskOptions().mask\"\n [mask-options]=\"maskOptions()\"\n [(ngModel)]=\"inputValue\"\n (ngModelChange)=\"onInput($event)\"\n class=\"ax-time-duration-text\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [readonly]=\"readonly\"\n (onFocus)=\"focusHandler($event)\"\n (onBlur)=\"blurHandler($event)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</ax-text-box>\n", dependencies: [{ kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
262
+ ], usesInheritance: true, ngImport: i0, template: "<ax-text-box\n [look]=\"look\"\n [placeholder]=\"maskOptions().mask\"\n [mask-options]=\"maskOptions()\"\n [ngModel]=\"inputValue\"\n (ngModelChange)=\"onInput($event)\"\n class=\"ax-time-duration-text\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [readonly]=\"readonly\"\n (onFocus)=\"focusHandler($event)\"\n (onBlur)=\"blurHandler($event)\"\n>\n</ax-text-box>\n<ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n", dependencies: [{ kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
249
263
  }
250
264
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: AXTimeDurationComponent, decorators: [{
251
265
  type: Component,
252
- args: [{ selector: 'ax-time-duration', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXTextBoxModule, FormsModule, AXSelectBoxModule], inputs: ['disabled', 'tabIndex', 'readonly', 'look'], outputs: ['onValueChanged'], providers: [
266
+ args: [{ selector: 'ax-time-duration', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXTextBoxModule, FormsModule, AXSelectBoxModule, AXFormModule], inputs: ['disabled', 'tabIndex', 'readonly', 'look'], outputs: ['onValueChanged'], providers: [
253
267
  { provide: AXComponent, useExisting: AXTimeDurationComponent },
254
268
  { provide: AXFocusableComponent, useExisting: AXTimeDurationComponent },
255
269
  { provide: AXValuableComponent, useExisting: AXTimeDurationComponent },
@@ -258,7 +272,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
258
272
  useExisting: forwardRef(() => AXTimeDurationComponent),
259
273
  multi: true,
260
274
  },
261
- ], template: "<ax-text-box\n [look]=\"look\"\n [placeholder]=\"maskOptions().mask\"\n [mask-options]=\"maskOptions()\"\n [(ngModel)]=\"inputValue\"\n (ngModelChange)=\"onInput($event)\"\n class=\"ax-time-duration-text\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [readonly]=\"readonly\"\n (onFocus)=\"focusHandler($event)\"\n (onBlur)=\"blurHandler($event)\"\n>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</ax-text-box>\n" }]
275
+ ], template: "<ax-text-box\n [look]=\"look\"\n [placeholder]=\"maskOptions().mask\"\n [mask-options]=\"maskOptions()\"\n [ngModel]=\"inputValue\"\n (ngModelChange)=\"onInput($event)\"\n class=\"ax-time-duration-text\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [readonly]=\"readonly\"\n (onFocus)=\"focusHandler($event)\"\n (onBlur)=\"blurHandler($event)\"\n>\n</ax-text-box>\n<ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateFn }\"></ax-validation-rule>\n" }]
262
276
  }], propDecorators: { __hostName: [{
263
277
  type: HostBinding,
264
278
  args: ['attr.name']
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-time-duration.mjs","sources":["../tmp-esm2022/time-duration/lib/time-duration.component.js","../tmp-esm2022/time-duration/lib/time-duration.module.js","../tmp-esm2022/time-duration/acorex-components-time-duration.js"],"sourcesContent":["import { AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTimeDurationFormatter } from '@acorex/core/date-time';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, forwardRef, HostBinding, inject, input, signal, ViewEncapsulation, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMask } from 'angular-imask';\nimport { classes } from 'polytype';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/text-box\";\nimport * as i2 from \"@angular/forms\";\nexport class AXTimeDurationComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {\n constructor() {\n super(...arguments);\n this.valueStart = input('YEAR', ...(ngDevMode ? [{ debugName: \"valueStart\" }] : []));\n this.valueEnd = input('MILLISECOND', ...(ngDevMode ? [{ debugName: \"valueEnd\" }] : []));\n this.label = input(true, ...(ngDevMode ? [{ debugName: \"label\" }] : []));\n this.maskDigits = input('00:00:00:00:00:00:00:000', ...(ngDevMode ? [{ debugName: \"maskDigits\" }] : []));\n this.minValue = input(null, ...(ngDevMode ? [{ debugName: \"minValue\" }] : []));\n this.maxValue = input(null, ...(ngDevMode ? [{ debugName: \"maxValue\" }] : []));\n this.maskOptions = signal({\n mask: 'HH:MM:SS',\n blocks: {\n HH: { mask: IMask.MaskedRange, from: 0, to: 23 },\n MM: { mask: IMask.MaskedRange, from: 0, to: 59 },\n SS: { mask: IMask.MaskedRange, from: 0, to: 59 },\n },\n }, ...(ngDevMode ? [{ debugName: \"maskOptions\" }] : []));\n this.translationService = inject(AXTranslationService);\n this.timeDurationFormatter = inject(AXTimeDurationFormatter);\n this.onInputFire = false;\n this.onInternalValueChangedFire = false;\n this.YEAR = signal(null, ...(ngDevMode ? [{ debugName: \"YEAR\" }] : []));\n this.MONTH = signal(null, ...(ngDevMode ? [{ debugName: \"MONTH\" }] : []));\n this.WEEK = signal(null, ...(ngDevMode ? [{ debugName: \"WEEK\" }] : []));\n this.DAY = signal(null, ...(ngDevMode ? [{ debugName: \"DAY\" }] : []));\n this.HOUR = signal(null, ...(ngDevMode ? [{ debugName: \"HOUR\" }] : []));\n this.MINUTE = signal(null, ...(ngDevMode ? [{ debugName: \"MINUTE\" }] : []));\n this.SECOND = signal(null, ...(ngDevMode ? [{ debugName: \"SECOND\" }] : []));\n this.MILLISECOND = signal(null, ...(ngDevMode ? [{ debugName: \"MILLISECOND\" }] : []));\n this.isTranslationInit = signal(false, ...(ngDevMode ? [{ debugName: \"isTranslationInit\" }] : []));\n this.#init = afterNextRender(async () => {\n await this.initTranslation();\n });\n this.#effect = effect(() => {\n // Depend on label as well\n void this.label();\n if (this.valueStart() && this.valueEnd() && this.isTranslationInit()) {\n this.updateMask();\n }\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n }\n #init;\n #effect;\n async initTranslation() {\n this.YEAR.set((await this.translationService.translateAsync('@acorex:dateTime.units.year')).toLocaleUpperCase());\n this.MONTH.set((await this.translationService.translateAsync('@acorex:dateTime.units.month')).toLocaleUpperCase());\n this.WEEK.set((await this.translationService.translateAsync('@acorex:dateTime.units.week')).toLocaleUpperCase());\n this.DAY.set((await this.translationService.translateAsync('@acorex:dateTime.units.day')).toLocaleUpperCase());\n this.HOUR.set((await this.translationService.translateAsync('@acorex:dateTime.units.hour')).toLocaleUpperCase());\n this.MINUTE.set((await this.translationService.translateAsync('@acorex:dateTime.units.minute')).toLocaleUpperCase());\n this.SECOND.set((await this.translationService.translateAsync('@acorex:dateTime.units.second')).toLocaleUpperCase());\n this.MILLISECOND.set((await this.translationService.translateAsync('@acorex:dateTime.units.millisecond')).toLocaleUpperCase());\n this.isTranslationInit.set(true);\n }\n onInput(event) {\n if (this.onInternalValueChangedFire)\n return;\n this.onInputFire = true;\n const milliseconds = this.maskToMilliseconds(event);\n // Apply min/max validation\n const minValue = this.minValue();\n const maxValue = this.maxValue();\n let validatedMilliseconds = milliseconds;\n if (minValue !== null && milliseconds < minValue) {\n validatedMilliseconds = minValue;\n }\n if (maxValue !== null && milliseconds > maxValue) {\n validatedMilliseconds = maxValue;\n }\n this.commitValue(validatedMilliseconds, true);\n this.onInputFire = false;\n }\n async internalValueChanged(value) {\n if (this.onInputFire)\n return;\n this.onInternalValueChangedFire = true;\n // Apply min/max validation for programmatically set values\n const minValue = this.minValue();\n const maxValue = this.maxValue();\n let validatedValue = value;\n if (minValue !== null && value < minValue) {\n validatedValue = minValue;\n }\n if (maxValue !== null && value > maxValue) {\n validatedValue = maxValue;\n }\n const normalizedMask = await this.timeDurationFormatter.millisecondsToMask(validatedValue, this.valueStart(), this.valueEnd(), this.label(), this.maskDigits(), true);\n this.inputValue = normalizedMask;\n setTimeout(() => {\n this.onInternalValueChangedFire = false;\n });\n }\n replacePersianLabels(input) {\n const replacements = {\n [this.YEAR()]: 'YEAR',\n [this.MONTH()]: 'MONTH',\n [this.WEEK()]: 'WEEK',\n [this.DAY()]: 'DAY',\n [this.HOUR()]: 'HOUR',\n [this.MINUTE()]: 'MINUTE',\n [this.SECOND()]: 'SECOND',\n [this.MILLISECOND()]: 'MILLISECOND',\n };\n return Object.entries(replacements).reduce((str, [fa, en]) => {\n return str.replace(`(${fa})`, `(${en})`);\n }, input);\n }\n maskToMilliseconds(maskValue) {\n const timeUnits = {\n YEAR: 365 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n HOUR: 60 * 60 * 1000,\n MINUTE: 60 * 1000,\n SECOND: 1000,\n MILLISECOND: 1,\n };\n let totalMs = 0;\n if (this.label()) {\n // Parse labeled format: \"00 (YEAR) : 00 (MONTH) : 00 (DAY)\"\n const transformedMaskValue = this.replacePersianLabels(maskValue);\n const regex = /(\\d+)\\s*\\((YEAR|MONTH|WEEK|DAY|HOUR|MINUTE|SECOND|MILLISECOND)\\)/g;\n let match;\n while ((match = regex.exec(transformedMaskValue)) !== null) {\n const value = parseInt(match[1], 10);\n const unit = match[2];\n if (timeUnits[unit] !== undefined) {\n totalMs += value * timeUnits[unit];\n }\n }\n }\n else {\n // Parse unlabeled format: \"00:00:00\" (colon-separated numbers)\n const allUnits = ['YEAR', 'MONTH', 'WEEK', 'DAY', 'HOUR', 'MINUTE', 'SECOND', 'MILLISECOND'];\n const startIndex = allUnits.indexOf(this.valueStart());\n const endIndex = allUnits.indexOf(this.valueEnd());\n if (startIndex !== -1 && endIndex !== -1 && endIndex >= startIndex) {\n const selectedUnits = allUnits.slice(startIndex, endIndex + 1);\n const numbers = maskValue.split(':').map((num) => parseInt(num.trim(), 10));\n for (let i = 0; i < Math.min(numbers.length, selectedUnits.length); i++) {\n const value = numbers[i];\n const unit = selectedUnits[i];\n if (!isNaN(value) && timeUnits[unit] !== undefined) {\n totalMs += value * timeUnits[unit];\n }\n }\n }\n }\n return totalMs;\n }\n updateMask() {\n const allUnits = ['YEAR', 'MONTH', 'WEEK', 'DAY', 'HOUR', 'MINUTE', 'SECOND', 'MILLISECOND'];\n const startIndex = allUnits.indexOf(this.valueStart());\n const endIndex = allUnits.indexOf(this.valueEnd());\n if (startIndex === -1 || endIndex === -1 || endIndex < startIndex) {\n this.maskOptions.set({ mask: '', eager: true });\n return null;\n }\n const selectedUnits = allUnits.slice(startIndex, endIndex + 1);\n let maskParts;\n const yearDigits = this.maskDigits().split(':')[0];\n const monthDigits = this.maskDigits().split(':')[1];\n const weekDigits = this.maskDigits().split(':')[2];\n const dayDigits = this.maskDigits().split(':')[3];\n const hourDigits = this.maskDigits().split(':')[4];\n const minuteDigits = this.maskDigits().split(':')[5];\n const secondDigits = this.maskDigits().split(':')[6];\n const millisecondDigits = this.maskDigits().split(':')[7];\n if (this.label()) {\n // With labels\n const unitPatterns = {\n YEAR: `${yearDigits} (${this.YEAR()})`,\n MONTH: `${monthDigits} (${this.MONTH()})`,\n WEEK: `${weekDigits} (${this.WEEK()})`,\n DAY: `${dayDigits} (${this.DAY()})`,\n HOUR: `${hourDigits} (${this.HOUR()})`,\n MINUTE: `${minuteDigits} (${this.MINUTE()})`,\n SECOND: `${secondDigits} (${this.SECOND()})`,\n MILLISECOND: `${millisecondDigits} (${this.MILLISECOND()})`,\n };\n maskParts = selectedUnits.map((unit) => {\n return unitPatterns[unit];\n });\n }\n else {\n // Without labels - just numbers\n const unitPatterns = {\n YEAR: yearDigits,\n MONTH: monthDigits,\n WEEK: weekDigits,\n DAY: dayDigits,\n HOUR: hourDigits,\n MINUTE: minuteDigits,\n SECOND: secondDigits,\n MILLISECOND: millisecondDigits,\n };\n maskParts = selectedUnits.map((unit) => {\n return unitPatterns[unit];\n });\n }\n let result;\n if (this.label()) {\n if (this.translationService.getActiveLang() === 'fa-IR') {\n result = maskParts.reverse().join(' : ');\n }\n else {\n result = maskParts.join(' : ');\n }\n }\n else {\n result = maskParts.join(':');\n }\n this.maskOptions.set({ mask: result, eager: true });\n }\n focusHandler(e) {\n this.onFocus.emit(e);\n }\n blurHandler(e) {\n this.onBlur.emit(e);\n }\n get __hostName() {\n return this.name;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXTimeDurationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.4\", type: AXTimeDurationComponent, isStandalone: true, selector: \"ax-time-duration\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: \"look\", publicName: \"look\", isSignal: false, isRequired: false, transformFunction: null }, valueStart: { classPropertyName: \"valueStart\", publicName: \"valueStart\", isSignal: true, isRequired: false, transformFunction: null }, valueEnd: { classPropertyName: \"valueEnd\", publicName: \"valueEnd\", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: \"label\", publicName: \"label\", isSignal: true, isRequired: false, transformFunction: null }, maskDigits: { classPropertyName: \"maskDigits\", publicName: \"maskDigits\", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: \"minValue\", publicName: \"minValue\", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: \"maxValue\", publicName: \"maxValue\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: \"onValueChanged\" }, host: { properties: { \"attr.name\": \"this.__hostName\" } }, providers: [\n { provide: AXComponent, useExisting: AXTimeDurationComponent },\n { provide: AXFocusableComponent, useExisting: AXTimeDurationComponent },\n { provide: AXValuableComponent, useExisting: AXTimeDurationComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXTimeDurationComponent),\n multi: true,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<ax-text-box\\n [look]=\\\"look\\\"\\n [placeholder]=\\\"maskOptions().mask\\\"\\n [mask-options]=\\\"maskOptions()\\\"\\n [(ngModel)]=\\\"inputValue\\\"\\n (ngModelChange)=\\\"onInput($event)\\\"\\n class=\\\"ax-time-duration-text\\\"\\n [disabled]=\\\"disabled\\\"\\n [tabIndex]=\\\"tabIndex\\\"\\n [readonly]=\\\"readonly\\\"\\n (onFocus)=\\\"focusHandler($event)\\\"\\n (onBlur)=\\\"blurHandler($event)\\\"\\n>\\n <ng-content select=\\\"ax-validation-rule\\\"> </ng-content>\\n</ax-text-box>\\n\", dependencies: [{ kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"component\", type: i1.AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXTimeDurationComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-time-duration', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXTextBoxModule, FormsModule, AXSelectBoxModule], inputs: ['disabled', 'tabIndex', 'readonly', 'look'], outputs: ['onValueChanged'], providers: [\n { provide: AXComponent, useExisting: AXTimeDurationComponent },\n { provide: AXFocusableComponent, useExisting: AXTimeDurationComponent },\n { provide: AXValuableComponent, useExisting: AXTimeDurationComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXTimeDurationComponent),\n multi: true,\n },\n ], template: \"<ax-text-box\\n [look]=\\\"look\\\"\\n [placeholder]=\\\"maskOptions().mask\\\"\\n [mask-options]=\\\"maskOptions()\\\"\\n [(ngModel)]=\\\"inputValue\\\"\\n (ngModelChange)=\\\"onInput($event)\\\"\\n class=\\\"ax-time-duration-text\\\"\\n [disabled]=\\\"disabled\\\"\\n [tabIndex]=\\\"tabIndex\\\"\\n [readonly]=\\\"readonly\\\"\\n (onFocus)=\\\"focusHandler($event)\\\"\\n (onBlur)=\\\"blurHandler($event)\\\"\\n>\\n <ng-content select=\\\"ax-validation-rule\\\"> </ng-content>\\n</ax-text-box>\\n\" }]\n }], propDecorators: { __hostName: [{\n type: HostBinding,\n args: ['attr.name']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1kdXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RpbWUtZHVyYXRpb24vc3JjL2xpYi90aW1lLWR1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdGltZS1kdXJhdGlvbi9zcmMvbGliL3RpbWUtZHVyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxvQkFBb0IsRUFFcEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFpQixlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7QUFzQm5DLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxPQUFPLENBQUMsQ0FBQSx5QkFBaUMsQ0FBQSxFQUFFLGVBQWUsQ0FBQztJ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QkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxVQUNsRCxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxXQUMzQyxDQUFDLGdCQUFnQixDQUFDLGFBQ2hCO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHlCQUF5QixFQUFFO3dCQUM5RCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLHlCQUF5QixFQUFFO3dCQUN2RSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHlCQUF5QixFQUFFO3dCQUN0RTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBNlFXLFVBQVU7c0JBRHJCLFdBQVc7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29tcG9uZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhGb2N1c0V2ZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50LFxuICBNWExvb2tDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYTWFza09wdGlvbnMsIEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBBWFRpbWVEdXJhdGlvbkZvcm1hdHRlciB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlLXRpbWUnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBzaWduYWwsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYXNrIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuaW1wb3J0IHsgQVhUaW1lRHVyYXRpb25Vbml0IH0gZnJvbSAnLi90aW1lLWR1cmF0aW9uLnR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC10aW1lLWR1cmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtZHVyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0FYVGV4dEJveE1vZHVsZSwgRm9ybXNNb2R1bGUsIEFYU2VsZWN0Qm94TW9kdWxlXSxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3RhYkluZGV4JywgJ3JlYWRvbmx5JywgJ2xvb2snXSxcbiAgb3V0cHV0czogWydvblZhbHVlQ2hhbmdlZCddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhUaW1lRHVyYXRpb25Db21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhUaW1lRHVyYXRpb25Db21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFRpbWVEdXJhdGlvbkNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhUaW1lRHVyYXRpb25Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhUaW1lRHVyYXRpb25Db21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8bnVtYmVyPiwgTVhMb29rQ29tcG9uZW50KSB7XG4gIHByb3RlY3RlZCBpbnB1dFZhbHVlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZhbHVlU3RhcnQgPSBpbnB1dDxBWFRpbWVEdXJhdGlvblVuaXQ+KCdZRUFSJyk7XG4gIHJlYWRvbmx5IHZhbHVlRW5kID0gaW5wdXQ8QVhUaW1lRHVyYXRpb25Vbml0PignTUlMTElTRUNPTkQnKTtcbiAgcmVhZG9ubHkgbGFiZWwgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgbWFza0RpZ2l0cyA9IGlucHV0KCcwMDowMDowMDowMDowMDowMDowMDowMDAnKTtcbiAgcmVhZG9ubHkgbWluVmFsdWUgPSBpbnB1dDxudW1iZXI+KG51bGwpO1xuICByZWFkb25seSBtYXhWYWx1ZSA9IGlucHV0PG51bWJlcj4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIG1hc2tPcHRpb25zID0gc2lnbmFsPEFYTWFza09wdGlvbnM+KHtcbiAgICBtYXNrOiAnSEg6TU06U1MnLFxuICAgIGJsb2Nrczoge1xuICAgICAgSEg6IHsgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsIGZyb206IDAsIHRvOiAyMyB9LFxuICAgICAgTU06IHsgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsIGZyb206IDAsIHRvOiA1OSB9LFxuICAgICAgU1M6IHsgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsIGZyb206IDAsIHRvOiA1OSB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBBWFRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgdGltZUR1cmF0aW9uRm9ybWF0dGVyOiBBWFRpbWVEdXJhdGlvbkZvcm1hdHRlciA9IGluamVjdChBWFRpbWVEdXJhdGlvbkZvcm1hdHRlcik7XG5cbiAgcHJpdmF0ZSBvbklucHV0RmlyZSA9IGZhbHNlO1xuICBwcml2YXRlIG9uSW50ZXJuYWxWYWx1ZUNoYW5nZWRGaXJlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBZRUFSID0gc2lnbmFsKG51bGwpO1xuICBwcml2YXRlIE1PTlRIID0gc2lnbmFsKG51bGwpO1xuICBwcml2YXRlIFdFRUsgPSBzaWduYWwobnVsbCk7XG4gIHByaXZhdGUgREFZID0gc2lnbmFsKG51bGwpO1xuICBwcml2YXRlIEhPVVIgPSBzaWduYWwobnVsbCk7XG4gIHByaXZhdGUgTUlOVVRFID0gc2lnbmFsKG51bGwpO1xuICBwcml2YXRlIFNFQ09ORCA9IHNpZ25hbChudWxsKTtcbiAgcHJpdmF0ZSBNSUxMSVNFQ09ORCA9IHNpZ25hbChudWxsKTtcbiAgcHJpdmF0ZSBpc1RyYW5zbGF0aW9uSW5pdCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgI2luaXQgPSBhZnRlck5leHRSZW5kZXIoYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHRoaXMuaW5pdFRyYW5zbGF0aW9uKCk7XG4gIH0pO1xuXG4gICNlZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIC8vIERlcGVuZCBvbiBsYWJlbCBhcyB3ZWxsXG4gICAgdm9pZCB0aGlzLmxhYmVsKCk7XG4gICAgaWYgKHRoaXMudmFsdWVTdGFydCgpICYmIHRoaXMudmFsdWVFbmQoKSAmJiB0aGlzLmlzVHJhbnNsYXRpb25Jbml0KCkpIHtcbiAgICAgIHRoaXMudXBkYXRlTWFzaygpO1xuICAgIH1cbiAgfSk7XG5cbiAgYXN5bmMgaW5pdFRyYW5zbGF0aW9uKCkge1xuICAgIHRoaXMuWUVBUi5zZXQoKGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAYWNvcmV4OmRhdGVUaW1lLnVuaXRzLnllYXInKSkudG9Mb2NhbGVVcHBlckNhc2UoKSk7XG4gICAgdGhpcy5NT05USC5zZXQoKGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAYWNvcmV4OmRhdGVUaW1lLnVuaXRzLm1vbnRoJykpLnRvTG9jYWxlVXBwZXJDYXNlKCkpO1xuICAgIHRoaXMuV0VFSy5zZXQoKGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAYWNvcmV4OmRhdGVUaW1lLnVuaXRzLndlZWsnKSkudG9Mb2NhbGVVcHBlckNhc2UoKSk7XG4gICAgdGhpcy5EQVkuc2V0KChhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGFjb3JleDpkYXRlVGltZS51bml0cy5kYXknKSkudG9Mb2NhbGVVcHBlckNhc2UoKSk7XG4gICAgdGhpcy5IT1VSLnNldCgoYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BhY29yZXg6ZGF0ZVRpbWUudW5pdHMuaG91cicpKS50b0xvY2FsZVVwcGVyQ2FzZSgpKTtcbiAgICB0aGlzLk1JTlVURS5zZXQoXG4gICAgICAoYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BhY29yZXg6ZGF0ZVRpbWUudW5pdHMubWludXRlJykpLnRvTG9jYWxlVXBwZXJDYXNlKCksXG4gICAgKTtcbiAgICB0aGlzLlNFQ09ORC5zZXQoXG4gICAgICAoYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BhY29yZXg6ZGF0ZVRpbWUudW5pdHMuc2Vjb25kJykpLnRvTG9jYWxlVXBwZXJDYXNlKCksXG4gICAgKTtcbiAgICB0aGlzLk1JTExJU0VDT05ELnNldChcbiAgICAgIChhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGFjb3JleDpkYXRlVGltZS51bml0cy5taWxsaXNlY29uZCcpKS50b0xvY2FsZVVwcGVyQ2FzZSgpLFxuICAgICk7XG4gICAgdGhpcy5pc1RyYW5zbGF0aW9uSW5pdC5zZXQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25JbnB1dChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMub25JbnRlcm5hbFZhbHVlQ2hhbmdlZEZpcmUpIHJldHVybjtcbiAgICB0aGlzLm9uSW5wdXRGaXJlID0gdHJ1ZTtcbiAgICBjb25zdCBtaWxsaXNlY29uZHMgPSB0aGlzLm1hc2tUb01pbGxpc2Vjb25kcyhldmVudCk7XG5cbiAgICAvLyBBcHBseSBtaW4vbWF4IHZhbGlkYXRpb25cbiAgICBjb25zdCBtaW5WYWx1ZSA9IHRoaXMubWluVmFsdWUoKTtcbiAgICBjb25zdCBtYXhWYWx1ZSA9IHRoaXMubWF4VmFsdWUoKTtcbiAgICBsZXQgdmFsaWRhdGVkTWlsbGlzZWNvbmRzID0gbWlsbGlzZWNvbmRzO1xuXG4gICAgaWYgKG1pblZhbHVlICE9PSBudWxsICYmIG1pbGxpc2Vjb25kcyA8IG1pblZhbHVlKSB7XG4gICAgICB2YWxpZGF0ZWRNaWxsaXNlY29uZHMgPSBtaW5WYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAobWF4VmFsdWUgIT09IG51bGwgJiYgbWlsbGlzZWNvbmRzID4gbWF4VmFsdWUpIHtcbiAgICAgIHZhbGlkYXRlZE1pbGxpc2Vjb25kcyA9IG1heFZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuY29tbWl0VmFsdWUodmFsaWRhdGVkTWlsbGlzZWNvbmRzLCB0cnVlKTtcbiAgICB0aGlzLm9uSW5wdXRGaXJlID0gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgaW50ZXJuYWxWYWx1ZUNoYW5nZWQodmFsdWU6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm9uSW5wdXRGaXJlKSByZXR1cm47XG4gICAgdGhpcy5vbkludGVybmFsVmFsdWVDaGFuZ2VkRmlyZSA9IHRydWU7XG5cbiAgICAvLyBBcHBseSBtaW4vbWF4IHZhbGlkYXRpb24gZm9yIHByb2dyYW1tYXRpY2FsbHkgc2V0IHZhbHVlc1xuICAgIGNvbnN0IG1pblZhbHVlID0gdGhpcy5taW5WYWx1ZSgpO1xuICAgIGNvbnN0IG1heFZhbHVlID0gdGhpcy5tYXhWYWx1ZSgpO1xuICAgIGxldCB2YWxpZGF0ZWRWYWx1ZSA9IHZhbHVlO1xuXG4gICAgaWYgKG1pblZhbHVlICE9PSBudWxsICYmIHZhbHVlIDwgbWluVmFsdWUpIHtcbiAgICAgIHZhbGlkYXRlZFZhbHVlID0gbWluVmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKG1heFZhbHVlICE9PSBudWxsICYmIHZhbHVlID4gbWF4VmFsdWUpIHtcbiAgICAgIHZhbGlkYXRlZFZhbHVlID0gbWF4VmFsdWU7XG4gICAgfVxuXG4gICAgY29uc3Qgbm9ybWFsaXplZE1hc2sgPSBhd2FpdCB0aGlzLnRpbWVEdXJhdGlvbkZvcm1hdHRlci5taWxsaXNlY29uZHNUb01hc2soXG4gICAgICB2YWxpZGF0ZWRWYWx1ZSxcbiAgICAgIHRoaXMudmFsdWVTdGFydCgpLFxuICAgICAgdGhpcy52YWx1ZUVuZCgpLFxuICAgICAgdGhpcy5sYWJlbCgpLFxuICAgICAgdGhpcy5tYXNrRGlnaXRzKCksXG4gICAgICB0cnVlLFxuICAgICk7XG5cbiAgICB0aGlzLmlucHV0VmFsdWUgPSBub3JtYWxpemVkTWFzaztcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vbkludGVybmFsVmFsdWVDaGFuZ2VkRmlyZSA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBsYWNlUGVyc2lhbkxhYmVscyhpbnB1dDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVwbGFjZW1lbnRzID0ge1xuICAgICAgW3RoaXMuWUVBUigpXTogJ1lFQVInLFxuICAgICAgW3RoaXMuTU9OVEgoKV06ICdNT05USCcsXG4gICAgICBbdGhpcy5XRUVLKCldOiAnV0VFSycsXG4gICAgICBbdGhpcy5EQVkoKV06ICdEQVknLFxuICAgICAgW3RoaXMuSE9VUigpXTogJ0hPVVInLFxuICAgICAgW3RoaXMuTUlOVVRFKCldOiAnTUlOVVRFJyxcbiAgICAgIFt0aGlzLlNFQ09ORCgpXTogJ1NFQ09ORCcsXG4gICAgICBbdGhpcy5NSUxMSVNFQ09ORCgpXTogJ01JTExJU0VDT05EJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlcGxhY2VtZW50cykucmVkdWNlKChzdHIsIFtmYSwgZW5dKSA9PiB7XG4gICAgICByZXR1cm4gc3RyLnJlcGxhY2UoYCgke2ZhfSlgLCBgKCR7ZW59KWApO1xuICAgIH0sIGlucHV0KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFza1RvTWlsbGlzZWNvbmRzKG1hc2tWYWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCB0aW1lVW5pdHMgPSB7XG4gICAgICBZRUFSOiAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgICAgTU9OVEg6IDMwICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICAgIFdFRUs6IDcgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgICAgREFZOiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgICAgSE9VUjogNjAgKiA2MCAqIDEwMDAsXG4gICAgICBNSU5VVEU6IDYwICogMTAwMCxcbiAgICAgIFNFQ09ORDogMTAwMCxcbiAgICAgIE1JTExJU0VDT05EOiAxLFxuICAgIH07XG5cbiAgICBsZXQgdG90YWxNcyA9IDA7XG5cbiAgICBpZiAodGhpcy5sYWJlbCgpKSB7XG4gICAgICAvLyBQYXJzZSBsYWJlbGVkIGZvcm1hdDogXCIwMCAoWUVBUikgOiAwMCAoTU9OVEgpIDogMDAgKERBWSlcIlxuICAgICAgY29uc3QgdHJhbnNmb3JtZWRNYXNrVmFsdWUgPSB0aGlzLnJlcGxhY2VQZXJzaWFuTGFiZWxzKG1hc2tWYWx1ZSk7XG4gICAgICBjb25zdCByZWdleCA9IC8oXFxkKylcXHMqXFwoKFlFQVJ8TU9OVEh8V0VFS3xEQVl8SE9VUnxNSU5VVEV8U0VDT05EfE1JTExJU0VDT05EKVxcKS9nO1xuICAgICAgbGV0IG1hdGNoO1xuXG4gICAgICB3aGlsZSAoKG1hdGNoID0gcmVnZXguZXhlYyh0cmFuc2Zvcm1lZE1hc2tWYWx1ZSkpICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcbiAgICAgICAgY29uc3QgdW5pdCA9IG1hdGNoWzJdO1xuICAgICAgICBpZiAodGltZVVuaXRzW3VuaXRdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0b3RhbE1zICs9IHZhbHVlICogdGltZVVuaXRzW3VuaXRdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFBhcnNlIHVubGFiZWxlZCBmb3JtYXQ6IFwiMDA6MDA6MDBcIiAoY29sb24tc2VwYXJhdGVkIG51bWJlcnMpXG4gICAgICBjb25zdCBhbGxVbml0cyA9IFsnWUVBUicsICdNT05USCcsICdXRUVLJywgJ0RBWScsICdIT1VSJywgJ01JTlVURScsICdTRUNPTkQnLCAnTUlMTElTRUNPTkQnXTtcbiAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBhbGxVbml0cy5pbmRleE9mKHRoaXMudmFsdWVTdGFydCgpKTtcbiAgICAgIGNvbnN0IGVuZEluZGV4ID0gYWxsVW5pdHMuaW5kZXhPZih0aGlzLnZhbHVlRW5kKCkpO1xuXG4gICAgICBpZiAoc3RhcnRJbmRleCAhPT0gLTEgJiYgZW5kSW5kZXggIT09IC0xICYmIGVuZEluZGV4ID49IHN0YXJ0SW5kZXgpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRVbml0cyA9IGFsbFVuaXRzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4ICsgMSk7XG4gICAgICAgIGNvbnN0IG51bWJlcnMgPSBtYXNrVmFsdWUuc3BsaXQoJzonKS5tYXAoKG51bSkgPT4gcGFyc2VJbnQobnVtLnRyaW0oKSwgMTApKTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGgubWluKG51bWJlcnMubGVuZ3RoLCBzZWxlY3RlZFVuaXRzLmxlbmd0aCk7IGkrKykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gbnVtYmVyc1tpXTtcbiAgICAgICAgICBjb25zdCB1bml0ID0gc2VsZWN0ZWRVbml0c1tpXTtcbiAgICAgICAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiB0aW1lVW5pdHNbdW5pdF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdG90YWxNcyArPSB2YWx1ZSAqIHRpbWVVbml0c1t1bml0XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdG90YWxNcztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTWFzaygpIHtcbiAgICBjb25zdCBhbGxVbml0cyA9IFsnWUVBUicsICdNT05USCcsICdXRUVLJywgJ0RBWScsICdIT1VSJywgJ01JTlVURScsICdTRUNPTkQnLCAnTUlMTElTRUNPTkQnXTtcbiAgICBjb25zdCBzdGFydEluZGV4ID0gYWxsVW5pdHMuaW5kZXhPZih0aGlzLnZhbHVlU3RhcnQoKSk7XG4gICAgY29uc3QgZW5kSW5kZXggPSBhbGxVbml0cy5pbmRleE9mKHRoaXMudmFsdWVFbmQoKSk7XG5cbiAgICBpZiAoc3RhcnRJbmRleCA9PT0gLTEgfHwgZW5kSW5kZXggPT09IC0xIHx8IGVuZEluZGV4IDwgc3RhcnRJbmRleCkge1xuICAgICAgdGhpcy5tYXNrT3B0aW9ucy5zZXQoeyBtYXNrOiAnJywgZWFnZXI6IHRydWUgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZFVuaXRzID0gYWxsVW5pdHMuc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXggKyAxKTtcblxuICAgIGxldCBtYXNrUGFydHM6IHN0cmluZ1tdO1xuXG4gICAgY29uc3QgeWVhckRpZ2l0cyA9IHRoaXMubWFza0RpZ2l0cygpLnNwbGl0KCc6JylbMF07XG4gICAgY29uc3QgbW9udGhEaWdpdHMgPSB0aGlzLm1hc2tEaWdpdHMoKS5zcGxpdCgnOicpWzFdO1xuICAgIGNvbnN0IHdlZWtEaWdpdHMgPSB0aGlzLm1hc2tEaWdpdHMoKS5zcGxpdCgnOicpWzJdO1xuICAgIGNvbnN0IGRheURpZ2l0cyA9IHRoaXMubWFza0RpZ2l0cygpLnNwbGl0KCc6JylbM107XG4gICAgY29uc3QgaG91ckRpZ2l0cyA9IHRoaXMubWFza0RpZ2l0cygpLnNwbGl0KCc6JylbNF07XG4gICAgY29uc3QgbWludXRlRGlnaXRzID0gdGhpcy5tYXNrRGlnaXRzKCkuc3BsaXQoJzonKVs1XTtcbiAgICBjb25zdCBzZWNvbmREaWdpdHMgPSB0aGlzLm1hc2tEaWdpdHMoKS5zcGxpdCgnOicpWzZdO1xuICAgIGNvbnN0IG1pbGxpc2Vjb25kRGlnaXRzID0gdGhpcy5tYXNrRGlnaXRzKCkuc3BsaXQoJzonKVs3XTtcblxuICAgIGlmICh0aGlzLmxhYmVsKCkpIHtcbiAgICAgIC8vIFdpdGggbGFiZWxzXG4gICAgICBjb25zdCB1bml0UGF0dGVybnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgIFlFQVI6IGAke3llYXJEaWdpdHN9ICgke3RoaXMuWUVBUigpfSlgLFxuICAgICAgICBNT05USDogYCR7bW9udGhEaWdpdHN9ICgke3RoaXMuTU9OVEgoKX0pYCxcbiAgICAgICAgV0VFSzogYCR7d2Vla0RpZ2l0c30gKCR7dGhpcy5XRUVLKCl9KWAsXG4gICAgICAgIERBWTogYCR7ZGF5RGlnaXRzfSAoJHt0aGlzLkRBWSgpfSlgLFxuICAgICAgICBIT1VSOiBgJHtob3VyRGlnaXRzfSAoJHt0aGlzLkhPVVIoKX0pYCxcbiAgICAgICAgTUlOVVRFOiBgJHttaW51dGVEaWdpdHN9ICgke3RoaXMuTUlOVVRFKCl9KWAsXG4gICAgICAgIFNFQ09ORDogYCR7c2Vjb25kRGlnaXRzfSAoJHt0aGlzLlNFQ09ORCgpfSlgLFxuICAgICAgICBNSUxMSVNFQ09ORDogYCR7bWlsbGlzZWNvbmREaWdpdHN9ICgke3RoaXMuTUlMTElTRUNPTkQoKX0pYCxcbiAgICAgIH07XG5cbiAgICAgIG1hc2tQYXJ0cyA9IHNlbGVjdGVkVW5pdHMubWFwKCh1bml0KSA9PiB7XG4gICAgICAgIHJldHVybiB1bml0UGF0dGVybnNbdW5pdF07XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gV2l0aG91dCBsYWJlbHMgLSBqdXN0IG51bWJlcnNcbiAgICAgIGNvbnN0IHVuaXRQYXR0ZXJuczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgWUVBUjogeWVhckRpZ2l0cyxcbiAgICAgICAgTU9OVEg6IG1vbnRoRGlnaXRzLFxuICAgICAgICBXRUVLOiB3ZWVrRGlnaXRzLFxuICAgICAgICBEQVk6IGRheURpZ2l0cyxcbiAgICAgICAgSE9VUjogaG91ckRpZ2l0cyxcbiAgICAgICAgTUlOVVRFOiBtaW51dGVEaWdpdHMsXG4gICAgICAgIFNFQ09ORDogc2Vjb25kRGlnaXRzLFxuICAgICAgICBNSUxMSVNFQ09ORDogbWlsbGlzZWNvbmREaWdpdHMsXG4gICAgICB9O1xuXG4gICAgICBtYXNrUGFydHMgPSBzZWxlY3RlZFVuaXRzLm1hcCgodW5pdCkgPT4ge1xuICAgICAgICByZXR1cm4gdW5pdFBhdHRlcm5zW3VuaXRdO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuXG4gICAgaWYgKHRoaXMubGFiZWwoKSkge1xuICAgICAgaWYgKHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKSA9PT0gJ2ZhLUlSJykge1xuICAgICAgICByZXN1bHQgPSBtYXNrUGFydHMucmV2ZXJzZSgpLmpvaW4oJyA6ICcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gbWFza1BhcnRzLmpvaW4oJyA6ICcpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBtYXNrUGFydHMuam9pbignOicpO1xuICAgIH1cblxuICAgIHRoaXMubWFza09wdGlvbnMuc2V0KHsgbWFzazogcmVzdWx0LCBlYWdlcjogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmb2N1c0hhbmRsZXIoZTogQVhGb2N1c0V2ZW50KSB7XG4gICAgdGhpcy5vbkZvY3VzLmVtaXQoZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYmx1ckhhbmRsZXIoZTogQVhGb2N1c0V2ZW50KSB7XG4gICAgdGhpcy5vbkJsdXIuZW1pdChlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5uYW1lJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cbn1cbiIsIjxheC10ZXh0LWJveFxuICBbbG9va109XCJsb29rXCJcbiAgW3BsYWNlaG9sZGVyXT1cIm1hc2tPcHRpb25zKCkubWFza1wiXG4gIFttYXNrLW9wdGlvbnNdPVwibWFza09wdGlvbnMoKVwiXG4gIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gIGNsYXNzPVwiYXgtdGltZS1kdXJhdGlvbi10ZXh0XCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW3RhYkluZGV4XT1cInRhYkluZGV4XCJcbiAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgKG9uRm9jdXMpPVwiZm9jdXNIYW5kbGVyKCRldmVudClcIlxuICAob25CbHVyKT1cImJsdXJIYW5kbGVyKCRldmVudClcIlxuPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuPC9heC10ZXh0LWJveD5cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { AXTimeDurationComponent } from './time-duration.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXTimeDurationComponent];\nconst MODULES = [];\nexport class AXTimeDurationModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXTimeDurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.4\", ngImport: i0, type: AXTimeDurationModule, imports: [AXTimeDurationComponent], exports: [AXTimeDurationComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXTimeDurationModule, imports: [MODULES, COMPONENT] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXTimeDurationModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1kdXJhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RpbWUtZHVyYXRpb24vc3JjL2xpYi90aW1lLWR1cmF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUVwRSxNQUFNLFNBQVMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFFNUMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBT25CLE1BQU0sT0FBTyxvQkFBb0I7OEdBQXBCLG9CQUFvQjsrR0FBcEIsb0JBQW9CLFlBVGQsdUJBQXVCLGFBQXZCLHVCQUF1QjsrR0FTN0Isb0JBQW9CLFlBSmxCLE9BQU8sRUFBSyxTQUFTOzsyRkFJdkIsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhUaW1lRHVyYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3RpbWUtZHVyYXRpb24uY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYVGltZUR1cmF0aW9uQ29tcG9uZW50XTtcblxuY29uc3QgTU9EVUxFUyA9IFtdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYVGltZUR1cmF0aW9uTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtdGltZS1kdXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdGltZS1kdXJhdGlvbi9zcmMvYWNvcmV4LWNvbXBvbmVudHMtdGltZS1kdXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-time-duration.mjs","sources":["../tmp-esm2022/time-duration/lib/time-duration.component.js","../tmp-esm2022/time-duration/lib/time-duration.module.js","../tmp-esm2022/time-duration/acorex-components-time-duration.js"],"sourcesContent":["import { AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTimeDurationFormatter } from '@acorex/core/date-time';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, forwardRef, HostBinding, inject, input, signal, ViewEncapsulation, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMask } from 'angular-imask';\nimport { classes } from 'polytype';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/text-box\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@acorex/components/form\";\nexport class AXTimeDurationComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {\n constructor() {\n super(...arguments);\n this.valueStart = input('YEAR', ...(ngDevMode ? [{ debugName: \"valueStart\" }] : []));\n this.valueEnd = input('MILLISECOND', ...(ngDevMode ? [{ debugName: \"valueEnd\" }] : []));\n this.label = input(true, ...(ngDevMode ? [{ debugName: \"label\" }] : []));\n this.maskDigits = input('00:00:00:00:00:00:00:000', ...(ngDevMode ? [{ debugName: \"maskDigits\" }] : []));\n this.minValue = input(null, ...(ngDevMode ? [{ debugName: \"minValue\" }] : []));\n this.maxValue = input(null, ...(ngDevMode ? [{ debugName: \"maxValue\" }] : []));\n this.maskOptions = signal({\n mask: 'HH:MM:SS',\n blocks: {\n HH: { mask: IMask.MaskedRange, from: 0, to: 23 },\n MM: { mask: IMask.MaskedRange, from: 0, to: 59 },\n SS: { mask: IMask.MaskedRange, from: 0, to: 59 },\n },\n }, ...(ngDevMode ? [{ debugName: \"maskOptions\" }] : []));\n this.translationService = inject(AXTranslationService);\n this.timeDurationFormatter = inject(AXTimeDurationFormatter);\n this.translation = inject(AXTranslationService);\n this.onInputFire = false;\n this.onInternalValueChangedFire = false;\n this.YEAR = signal(null, ...(ngDevMode ? [{ debugName: \"YEAR\" }] : []));\n this.MONTH = signal(null, ...(ngDevMode ? [{ debugName: \"MONTH\" }] : []));\n this.WEEK = signal(null, ...(ngDevMode ? [{ debugName: \"WEEK\" }] : []));\n this.DAY = signal(null, ...(ngDevMode ? [{ debugName: \"DAY\" }] : []));\n this.HOUR = signal(null, ...(ngDevMode ? [{ debugName: \"HOUR\" }] : []));\n this.MINUTE = signal(null, ...(ngDevMode ? [{ debugName: \"MINUTE\" }] : []));\n this.SECOND = signal(null, ...(ngDevMode ? [{ debugName: \"SECOND\" }] : []));\n this.MILLISECOND = signal(null, ...(ngDevMode ? [{ debugName: \"MILLISECOND\" }] : []));\n this.isTranslationInit = signal(false, ...(ngDevMode ? [{ debugName: \"isTranslationInit\" }] : []));\n this.#init = afterNextRender(async () => {\n await this.initTranslation();\n });\n this.#effect = effect(() => {\n // Depend on label as well\n void this.label();\n if (this.valueStart() && this.valueEnd() && this.isTranslationInit()) {\n this.updateMask();\n }\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n this.validateFn = async (val) => {\n if (this.minValue() && this.minValue() > val) {\n const normalizedMaskMin = await this.timeDurationFormatter.millisecondsToMask(this.minValue(), this.valueStart(), this.valueEnd(), true, this.maskDigits(), true);\n const message = await this.translation.translateAsync('@acorex:validation.messages.min', {\n params: { value: normalizedMaskMin },\n });\n return {\n rule: 'callback',\n result: false,\n message,\n value: val,\n };\n }\n if (this.maxValue() && this.maxValue() < val) {\n const normalizedMaskMax = await this.timeDurationFormatter.millisecondsToMask(this.maxValue(), this.valueStart(), this.valueEnd(), true, this.maskDigits(), true);\n const message = await this.translation.translateAsync('@acorex:validation.messages.max', {\n params: { value: normalizedMaskMax },\n });\n return {\n rule: 'callback',\n result: false,\n message,\n value: val,\n };\n }\n return {\n rule: 'callback',\n result: true,\n value: val,\n };\n };\n }\n #init;\n #effect;\n async initTranslation() {\n this.YEAR.set((await this.translationService.translateAsync('@acorex:dateTime.units.year')).toLocaleUpperCase());\n this.MONTH.set((await this.translationService.translateAsync('@acorex:dateTime.units.month')).toLocaleUpperCase());\n this.WEEK.set((await this.translationService.translateAsync('@acorex:dateTime.units.week')).toLocaleUpperCase());\n this.DAY.set((await this.translationService.translateAsync('@acorex:dateTime.units.day')).toLocaleUpperCase());\n this.HOUR.set((await this.translationService.translateAsync('@acorex:dateTime.units.hour')).toLocaleUpperCase());\n this.MINUTE.set((await this.translationService.translateAsync('@acorex:dateTime.units.minute')).toLocaleUpperCase());\n this.SECOND.set((await this.translationService.translateAsync('@acorex:dateTime.units.second')).toLocaleUpperCase());\n this.MILLISECOND.set((await this.translationService.translateAsync('@acorex:dateTime.units.millisecond')).toLocaleUpperCase());\n this.isTranslationInit.set(true);\n }\n async onInput(event) {\n if (this.onInternalValueChangedFire)\n return;\n this.onInputFire = true;\n const milliseconds = this.maskToMilliseconds(event);\n this.commitValue(milliseconds, true);\n this.onInputFire = false;\n }\n async internalValueChanged(value) {\n if (this.onInputFire)\n return;\n this.onInternalValueChangedFire = true;\n const normalizedMask = await this.timeDurationFormatter.millisecondsToMask(value, this.valueStart(), this.valueEnd(), this.label(), this.maskDigits(), true);\n this.inputValue = normalizedMask;\n setTimeout(() => {\n this.onInternalValueChangedFire = false;\n });\n }\n replacePersianLabels(input) {\n const replacements = {\n [this.YEAR()]: 'YEAR',\n [this.MONTH()]: 'MONTH',\n [this.WEEK()]: 'WEEK',\n [this.DAY()]: 'DAY',\n [this.HOUR()]: 'HOUR',\n [this.MINUTE()]: 'MINUTE',\n [this.SECOND()]: 'SECOND',\n [this.MILLISECOND()]: 'MILLISECOND',\n };\n return Object.entries(replacements).reduce((str, [fa, en]) => {\n return str.replace(`(${fa})`, `(${en})`);\n }, input);\n }\n maskToMilliseconds(maskValue) {\n const timeUnits = {\n YEAR: 365 * 24 * 60 * 60 * 1000,\n MONTH: 30 * 24 * 60 * 60 * 1000,\n WEEK: 7 * 24 * 60 * 60 * 1000,\n DAY: 24 * 60 * 60 * 1000,\n HOUR: 60 * 60 * 1000,\n MINUTE: 60 * 1000,\n SECOND: 1000,\n MILLISECOND: 1,\n };\n let totalMs = 0;\n if (this.label()) {\n // Parse labeled format: \"00 (YEAR) : 00 (MONTH) : 00 (DAY)\"\n const transformedMaskValue = this.replacePersianLabels(maskValue);\n const regex = /(\\d+)\\s*\\((YEAR|MONTH|WEEK|DAY|HOUR|MINUTE|SECOND|MILLISECOND)\\)/g;\n let match;\n while ((match = regex.exec(transformedMaskValue)) !== null) {\n const value = parseInt(match[1], 10);\n const unit = match[2];\n if (timeUnits[unit] !== undefined) {\n totalMs += value * timeUnits[unit];\n }\n }\n }\n else {\n // Parse unlabeled format: \"00:00:00\" (colon-separated numbers)\n const allUnits = ['YEAR', 'MONTH', 'WEEK', 'DAY', 'HOUR', 'MINUTE', 'SECOND', 'MILLISECOND'];\n const startIndex = allUnits.indexOf(this.valueStart());\n const endIndex = allUnits.indexOf(this.valueEnd());\n if (startIndex !== -1 && endIndex !== -1 && endIndex >= startIndex) {\n const selectedUnits = allUnits.slice(startIndex, endIndex + 1);\n const numbers = maskValue.split(':').map((num) => parseInt(num.trim(), 10));\n for (let i = 0; i < Math.min(numbers.length, selectedUnits.length); i++) {\n const value = numbers[i];\n const unit = selectedUnits[i];\n if (!isNaN(value) && timeUnits[unit] !== undefined) {\n totalMs += value * timeUnits[unit];\n }\n }\n }\n }\n return totalMs;\n }\n updateMask() {\n const allUnits = ['YEAR', 'MONTH', 'WEEK', 'DAY', 'HOUR', 'MINUTE', 'SECOND', 'MILLISECOND'];\n const startIndex = allUnits.indexOf(this.valueStart());\n const endIndex = allUnits.indexOf(this.valueEnd());\n if (startIndex === -1 || endIndex === -1 || endIndex < startIndex) {\n this.maskOptions.set({ mask: '', eager: true });\n return null;\n }\n const selectedUnits = allUnits.slice(startIndex, endIndex + 1);\n let maskParts;\n const yearDigits = this.maskDigits().split(':')[0];\n const monthDigits = this.maskDigits().split(':')[1];\n const weekDigits = this.maskDigits().split(':')[2];\n const dayDigits = this.maskDigits().split(':')[3];\n const hourDigits = this.maskDigits().split(':')[4];\n const minuteDigits = this.maskDigits().split(':')[5];\n const secondDigits = this.maskDigits().split(':')[6];\n const millisecondDigits = this.maskDigits().split(':')[7];\n if (this.label()) {\n // With labels\n const unitPatterns = {\n YEAR: `${yearDigits} (${this.YEAR()})`,\n MONTH: `${monthDigits} (${this.MONTH()})`,\n WEEK: `${weekDigits} (${this.WEEK()})`,\n DAY: `${dayDigits} (${this.DAY()})`,\n HOUR: `${hourDigits} (${this.HOUR()})`,\n MINUTE: `${minuteDigits} (${this.MINUTE()})`,\n SECOND: `${secondDigits} (${this.SECOND()})`,\n MILLISECOND: `${millisecondDigits} (${this.MILLISECOND()})`,\n };\n maskParts = selectedUnits.map((unit) => {\n return unitPatterns[unit];\n });\n }\n else {\n // Without labels - just numbers\n const unitPatterns = {\n YEAR: yearDigits,\n MONTH: monthDigits,\n WEEK: weekDigits,\n DAY: dayDigits,\n HOUR: hourDigits,\n MINUTE: minuteDigits,\n SECOND: secondDigits,\n MILLISECOND: millisecondDigits,\n };\n maskParts = selectedUnits.map((unit) => {\n return unitPatterns[unit];\n });\n }\n let result;\n if (this.label()) {\n if (this.translationService.getActiveLang() === 'fa-IR') {\n result = maskParts.reverse().join(' : ');\n }\n else {\n result = maskParts.join(' : ');\n }\n }\n else {\n result = maskParts.join(':');\n }\n this.maskOptions.set({ mask: result, eager: true });\n }\n focusHandler(e) {\n this.onFocus.emit(e);\n }\n blurHandler(e) {\n this.onBlur.emit(e);\n }\n get __hostName() {\n return this.name;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXTimeDurationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.4\", type: AXTimeDurationComponent, isStandalone: true, selector: \"ax-time-duration\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: \"look\", publicName: \"look\", isSignal: false, isRequired: false, transformFunction: null }, valueStart: { classPropertyName: \"valueStart\", publicName: \"valueStart\", isSignal: true, isRequired: false, transformFunction: null }, valueEnd: { classPropertyName: \"valueEnd\", publicName: \"valueEnd\", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: \"label\", publicName: \"label\", isSignal: true, isRequired: false, transformFunction: null }, maskDigits: { classPropertyName: \"maskDigits\", publicName: \"maskDigits\", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: \"minValue\", publicName: \"minValue\", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: \"maxValue\", publicName: \"maxValue\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: \"onValueChanged\" }, host: { properties: { \"attr.name\": \"this.__hostName\" } }, providers: [\n { provide: AXComponent, useExisting: AXTimeDurationComponent },\n { provide: AXFocusableComponent, useExisting: AXTimeDurationComponent },\n { provide: AXValuableComponent, useExisting: AXTimeDurationComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXTimeDurationComponent),\n multi: true,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<ax-text-box\\n [look]=\\\"look\\\"\\n [placeholder]=\\\"maskOptions().mask\\\"\\n [mask-options]=\\\"maskOptions()\\\"\\n [ngModel]=\\\"inputValue\\\"\\n (ngModelChange)=\\\"onInput($event)\\\"\\n class=\\\"ax-time-duration-text\\\"\\n [disabled]=\\\"disabled\\\"\\n [tabIndex]=\\\"tabIndex\\\"\\n [readonly]=\\\"readonly\\\"\\n (onFocus)=\\\"focusHandler($event)\\\"\\n (onBlur)=\\\"blurHandler($event)\\\"\\n>\\n</ax-text-box>\\n<ax-validation-rule rule=\\\"callback\\\" [options]=\\\"{ validate: validateFn }\\\"></ax-validation-rule>\\n\", dependencies: [{ kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"component\", type: i1.AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i3.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXTimeDurationComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-time-duration', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXTextBoxModule, FormsModule, AXSelectBoxModule, AXFormModule], inputs: ['disabled', 'tabIndex', 'readonly', 'look'], outputs: ['onValueChanged'], providers: [\n { provide: AXComponent, useExisting: AXTimeDurationComponent },\n { provide: AXFocusableComponent, useExisting: AXTimeDurationComponent },\n { provide: AXValuableComponent, useExisting: AXTimeDurationComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXTimeDurationComponent),\n multi: true,\n },\n ], template: \"<ax-text-box\\n [look]=\\\"look\\\"\\n [placeholder]=\\\"maskOptions().mask\\\"\\n [mask-options]=\\\"maskOptions()\\\"\\n [ngModel]=\\\"inputValue\\\"\\n (ngModelChange)=\\\"onInput($event)\\\"\\n class=\\\"ax-time-duration-text\\\"\\n [disabled]=\\\"disabled\\\"\\n [tabIndex]=\\\"tabIndex\\\"\\n [readonly]=\\\"readonly\\\"\\n (onFocus)=\\\"focusHandler($event)\\\"\\n (onBlur)=\\\"blurHandler($event)\\\"\\n>\\n</ax-text-box>\\n<ax-validation-rule rule=\\\"callback\\\" [options]=\\\"{ validate: validateFn }\\\"></ax-validation-rule>\\n\" }]\n }], propDecorators: { __hostName: [{\n type: HostBinding,\n args: ['attr.name']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1kdXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RpbWUtZHVyYXRpb24vc3JjL2xpYi90aW1lLWR1cmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdGltZS1kdXJhdGlvbi9zcmMvbGliL3RpbWUtZHVyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxvQkFBb0IsRUFFcEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBaUIsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7OztBQXNCbkMsTUFBTSxPQUFPLHVCQUF3QixTQUFR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RUFBRTt3QkFDdEU7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzhCQXlTVyxVQUFVO3NCQURyQixXQUFXO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENvbXBvbmVudCxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYRm9jdXNFdmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWE1hc2tPcHRpb25zLCBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQVhUaW1lRHVyYXRpb25Gb3JtYXR0ZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgc2lnbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJTWFzayB9IGZyb20gJ2FuZ3VsYXItaW1hc2snO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IEFYVGltZUR1cmF0aW9uVW5pdCB9IGZyb20gJy4vdGltZS1kdXJhdGlvbi50eXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtdGltZS1kdXJhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi90aW1lLWR1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtBWFRleHRCb3hNb2R1bGUsIEZvcm1zTW9kdWxlLCBBWFNlbGVjdEJveE1vZHVsZSwgQVhGb3JtTW9kdWxlXSxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3RhYkluZGV4JywgJ3JlYWRvbmx5JywgJ2xvb2snXSxcbiAgb3V0cHV0czogWydvblZhbHVlQ2hhbmdlZCddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhUaW1lRHVyYXRpb25Db21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhUaW1lRHVyYXRpb25Db21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFRpbWVEdXJhdGlvbkNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhUaW1lRHVyYXRpb25Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhUaW1lRHVyYXRpb25Db21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8bnVtYmVyPiwgTVhMb29rQ29tcG9uZW50KSB7XG4gIHByb3RlY3RlZCBpbnB1dFZhbHVlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZhbHVlU3RhcnQgPSBpbnB1dDxBWFRpbWVEdXJhdGlvblVuaXQ+KCdZRUFSJyk7XG4gIHJlYWRvbmx5IHZhbHVlRW5kID0gaW5wdXQ8QVhUaW1lRHVyYXRpb25Vbml0PignTUlMTElTRUNPTkQnKTtcbiAgcmVhZG9ubHkgbGFiZWwgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgbWFza0RpZ2l0cyA9IGlucHV0KCcwMDowMDowMDowMDowMDowMDowMDowMDAnKTtcbiAgcmVhZG9ubHkgbWluVmFsdWUgPSBpbnB1dDxudW1iZXI+KG51bGwpO1xuICByZWFkb25seSBtYXhWYWx1ZSA9IGlucHV0PG51bWJlcj4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIG1hc2tPcHRpb25zID0gc2lnbmFsPEFYTWFza09wdGlvbnM+KHtcbiAgICBtYXNrOiAnSEg6TU06U1MnLFxuICAgIGJsb2Nrczoge1xuICAgICAgSEg6IHsgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsIGZyb206IDAsIHRvOiAyMyB9LFxuICAgICAgTU06IHsgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsIGZyb206IDAsIHRvOiA1OSB9LFxuICAgICAgU1M6IHsgbWFzazogSU1hc2suTWFza2VkUmFuZ2UsIGZyb206IDAsIHRvOiA1OSB9LFxuICAgIH0sXG4gIH0pO1xuXG4gIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBBWFRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgdGltZUR1cmF0aW9uRm9ybWF0dGVyOiBBWFRpbWVEdXJhdGlvbkZvcm1hdHRlciA9IGluamVjdChBWFRpbWVEdXJhdGlvbkZvcm1hdHRlcik7XG4gIHByaXZhdGUgdHJhbnNsYXRpb24gPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gIHByaXZhdGUgb25JbnB1dEZpcmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBvbkludGVybmFsVmFsdWVDaGFuZ2VkRmlyZSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgWUVBUiA9IHNpZ25hbChudWxsKTtcbiAgcHJpdmF0ZSBNT05USCA9IHNpZ25hbChudWxsKTtcbiAgcHJpdmF0ZSBXRUVLID0gc2lnbmFsKG51bGwpO1xuICBwcml2YXRlIERBWSA9IHNpZ25hbChudWxsKTtcbiAgcHJpdmF0ZSBIT1VSID0gc2lnbmFsKG51bGwpO1xuICBwcml2YXRlIE1JTlVURSA9IHNpZ25hbChudWxsKTtcbiAgcHJpdmF0ZSBTRUNPTkQgPSBzaWduYWwobnVsbCk7XG4gIHByaXZhdGUgTUlMTElTRUNPTkQgPSBzaWduYWwobnVsbCk7XG4gIHByaXZhdGUgaXNUcmFuc2xhdGlvbkluaXQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCB0aGlzLmluaXRUcmFuc2xhdGlvbigpO1xuICB9KTtcblxuICAjZWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICAvLyBEZXBlbmQgb24gbGFiZWwgYXMgd2VsbFxuICAgIHZvaWQgdGhpcy5sYWJlbCgpO1xuICAgIGlmICh0aGlzLnZhbHVlU3RhcnQoKSAmJiB0aGlzLnZhbHVlRW5kKCkgJiYgdGhpcy5pc1RyYW5zbGF0aW9uSW5pdCgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZU1hc2soKTtcbiAgICB9XG4gIH0pO1xuXG4gIGFzeW5jIGluaXRUcmFuc2xhdGlvbigpIHtcbiAgICB0aGlzLllFQVIuc2V0KChhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGFjb3JleDpkYXRlVGltZS51bml0cy55ZWFyJykpLnRvTG9jYWxlVXBwZXJDYXNlKCkpO1xuICAgIHRoaXMuTU9OVEguc2V0KChhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGFjb3JleDpkYXRlVGltZS51bml0cy5tb250aCcpKS50b0xvY2FsZVVwcGVyQ2FzZSgpKTtcbiAgICB0aGlzLldFRUsuc2V0KChhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGFjb3JleDpkYXRlVGltZS51bml0cy53ZWVrJykpLnRvTG9jYWxlVXBwZXJDYXNlKCkpO1xuICAgIHRoaXMuREFZLnNldCgoYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BhY29yZXg6ZGF0ZVRpbWUudW5pdHMuZGF5JykpLnRvTG9jYWxlVXBwZXJDYXNlKCkpO1xuICAgIHRoaXMuSE9VUi5zZXQoKGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAYWNvcmV4OmRhdGVUaW1lLnVuaXRzLmhvdXInKSkudG9Mb2NhbGVVcHBlckNhc2UoKSk7XG4gICAgdGhpcy5NSU5VVEUuc2V0KFxuICAgICAgKGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAYWNvcmV4OmRhdGVUaW1lLnVuaXRzLm1pbnV0ZScpKS50b0xvY2FsZVVwcGVyQ2FzZSgpLFxuICAgICk7XG4gICAgdGhpcy5TRUNPTkQuc2V0KFxuICAgICAgKGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAYWNvcmV4OmRhdGVUaW1lLnVuaXRzLnNlY29uZCcpKS50b0xvY2FsZVVwcGVyQ2FzZSgpLFxuICAgICk7XG4gICAgdGhpcy5NSUxMSVNFQ09ORC5zZXQoXG4gICAgICAoYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BhY29yZXg6ZGF0ZVRpbWUudW5pdHMubWlsbGlzZWNvbmQnKSkudG9Mb2NhbGVVcHBlckNhc2UoKSxcbiAgICApO1xuICAgIHRoaXMuaXNUcmFuc2xhdGlvbkluaXQuc2V0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG9uSW5wdXQoZXZlbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLm9uSW50ZXJuYWxWYWx1ZUNoYW5nZWRGaXJlKSByZXR1cm47XG4gICAgdGhpcy5vbklucHV0RmlyZSA9IHRydWU7XG5cbiAgICBjb25zdCBtaWxsaXNlY29uZHMgPSB0aGlzLm1hc2tUb01pbGxpc2Vjb25kcyhldmVudCk7XG5cbiAgICB0aGlzLmNvbW1pdFZhbHVlKG1pbGxpc2Vjb25kcywgdHJ1ZSk7XG4gICAgdGhpcy5vbklucHV0RmlyZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGludGVybmFsVmFsdWVDaGFuZ2VkKHZhbHVlOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5vbklucHV0RmlyZSkgcmV0dXJuO1xuICAgIHRoaXMub25JbnRlcm5hbFZhbHVlQ2hhbmdlZEZpcmUgPSB0cnVlO1xuXG4gICAgY29uc3Qgbm9ybWFsaXplZE1hc2sgPSBhd2FpdCB0aGlzLnRpbWVEdXJhdGlvbkZvcm1hdHRlci5taWxsaXNlY29uZHNUb01hc2soXG4gICAgICB2YWx1ZSxcbiAgICAgIHRoaXMudmFsdWVTdGFydCgpLFxuICAgICAgdGhpcy52YWx1ZUVuZCgpLFxuICAgICAgdGhpcy5sYWJlbCgpLFxuICAgICAgdGhpcy5tYXNrRGlnaXRzKCksXG4gICAgICB0cnVlLFxuICAgICk7XG5cbiAgICB0aGlzLmlucHV0VmFsdWUgPSBub3JtYWxpemVkTWFzaztcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vbkludGVybmFsVmFsdWVDaGFuZ2VkRmlyZSA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBsYWNlUGVyc2lhbkxhYmVscyhpbnB1dDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVwbGFjZW1lbnRzID0ge1xuICAgICAgW3RoaXMuWUVBUigpXTogJ1lFQVInLFxuICAgICAgW3RoaXMuTU9OVEgoKV06ICdNT05USCcsXG4gICAgICBbdGhpcy5XRUVLKCldOiAnV0VFSycsXG4gICAgICBbdGhpcy5EQVkoKV06ICdEQVknLFxuICAgICAgW3RoaXMuSE9VUigpXTogJ0hPVVInLFxuICAgICAgW3RoaXMuTUlOVVRFKCldOiAnTUlOVVRFJyxcbiAgICAgIFt0aGlzLlNFQ09ORCgpXTogJ1NFQ09ORCcsXG4gICAgICBbdGhpcy5NSUxMSVNFQ09ORCgpXTogJ01JTExJU0VDT05EJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlcGxhY2VtZW50cykucmVkdWNlKChzdHIsIFtmYSwgZW5dKSA9PiB7XG4gICAgICByZXR1cm4gc3RyLnJlcGxhY2UoYCgke2ZhfSlgLCBgKCR7ZW59KWApO1xuICAgIH0sIGlucHV0KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFza1RvTWlsbGlzZWNvbmRzKG1hc2tWYWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCB0aW1lVW5pdHMgPSB7XG4gICAgICBZRUFSOiAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgICAgTU9OVEg6IDMwICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgICAgIFdFRUs6IDcgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgICAgREFZOiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgICAgSE9VUjogNjAgKiA2MCAqIDEwMDAsXG4gICAgICBNSU5VVEU6IDYwICogMTAwMCxcbiAgICAgIFNFQ09ORDogMTAwMCxcbiAgICAgIE1JTExJU0VDT05EOiAxLFxuICAgIH07XG5cbiAgICBsZXQgdG90YWxNcyA9IDA7XG5cbiAgICBpZiAodGhpcy5sYWJlbCgpKSB7XG4gICAgICAvLyBQYXJzZSBsYWJlbGVkIGZvcm1hdDogXCIwMCAoWUVBUikgOiAwMCAoTU9OVEgpIDogMDAgKERBWSlcIlxuICAgICAgY29uc3QgdHJhbnNmb3JtZWRNYXNrVmFsdWUgPSB0aGlzLnJlcGxhY2VQZXJzaWFuTGFiZWxzKG1hc2tWYWx1ZSk7XG4gICAgICBjb25zdCByZWdleCA9IC8oXFxkKylcXHMqXFwoKFlFQVJ8TU9OVEh8V0VFS3xEQVl8SE9VUnxNSU5VVEV8U0VDT05EfE1JTExJU0VDT05EKVxcKS9nO1xuICAgICAgbGV0IG1hdGNoO1xuXG4gICAgICB3aGlsZSAoKG1hdGNoID0gcmVnZXguZXhlYyh0cmFuc2Zvcm1lZE1hc2tWYWx1ZSkpICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcbiAgICAgICAgY29uc3QgdW5pdCA9IG1hdGNoWzJdO1xuICAgICAgICBpZiAodGltZVVuaXRzW3VuaXRdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0b3RhbE1zICs9IHZhbHVlICogdGltZVVuaXRzW3VuaXRdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFBhcnNlIHVubGFiZWxlZCBmb3JtYXQ6IFwiMDA6MDA6MDBcIiAoY29sb24tc2VwYXJhdGVkIG51bWJlcnMpXG4gICAgICBjb25zdCBhbGxVbml0cyA9IFsnWUVBUicsICdNT05USCcsICdXRUVLJywgJ0RBWScsICdIT1VSJywgJ01JTlVURScsICdTRUNPTkQnLCAnTUlMTElTRUNPTkQnXTtcbiAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBhbGxVbml0cy5pbmRleE9mKHRoaXMudmFsdWVTdGFydCgpKTtcbiAgICAgIGNvbnN0IGVuZEluZGV4ID0gYWxsVW5pdHMuaW5kZXhPZih0aGlzLnZhbHVlRW5kKCkpO1xuXG4gICAgICBpZiAoc3RhcnRJbmRleCAhPT0gLTEgJiYgZW5kSW5kZXggIT09IC0xICYmIGVuZEluZGV4ID49IHN0YXJ0SW5kZXgpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRVbml0cyA9IGFsbFVuaXRzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4ICsgMSk7XG4gICAgICAgIGNvbnN0IG51bWJlcnMgPSBtYXNrVmFsdWUuc3BsaXQoJzonKS5tYXAoKG51bSkgPT4gcGFyc2VJbnQobnVtLnRyaW0oKSwgMTApKTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGgubWluKG51bWJlcnMubGVuZ3RoLCBzZWxlY3RlZFVuaXRzLmxlbmd0aCk7IGkrKykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gbnVtYmVyc1tpXTtcbiAgICAgICAgICBjb25zdCB1bml0ID0gc2VsZWN0ZWRVbml0c1tpXTtcbiAgICAgICAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiB0aW1lVW5pdHNbdW5pdF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdG90YWxNcyArPSB2YWx1ZSAqIHRpbWVVbml0c1t1bml0XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdG90YWxNcztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTWFzaygpIHtcbiAgICBjb25zdCBhbGxVbml0cyA9IFsnWUVBUicsICdNT05USCcsICdXRUVLJywgJ0RBWScsICdIT1VSJywgJ01JTlVURScsICdTRUNPTkQnLCAnTUlMTElTRUNPTkQnXTtcbiAgICBjb25zdCBzdGFydEluZGV4ID0gYWxsVW5pdHMuaW5kZXhPZih0aGlzLnZhbHVlU3RhcnQoKSk7XG4gICAgY29uc3QgZW5kSW5kZXggPSBhbGxVbml0cy5pbmRleE9mKHRoaXMudmFsdWVFbmQoKSk7XG5cbiAgICBpZiAoc3RhcnRJbmRleCA9PT0gLTEgfHwgZW5kSW5kZXggPT09IC0xIHx8IGVuZEluZGV4IDwgc3RhcnRJbmRleCkge1xuICAgICAgdGhpcy5tYXNrT3B0aW9ucy5zZXQoeyBtYXNrOiAnJywgZWFnZXI6IHRydWUgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZFVuaXRzID0gYWxsVW5pdHMuc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXggKyAxKTtcblxuICAgIGxldCBtYXNrUGFydHM6IHN0cmluZ1tdO1xuXG4gICAgY29uc3QgeWVhckRpZ2l0cyA9IHRoaXMubWFza0RpZ2l0cygpLnNwbGl0KCc6JylbMF07XG4gICAgY29uc3QgbW9udGhEaWdpdHMgPSB0aGlzLm1hc2tEaWdpdHMoKS5zcGxpdCgnOicpWzFdO1xuICAgIGNvbnN0IHdlZWtEaWdpdHMgPSB0aGlzLm1hc2tEaWdpdHMoKS5zcGxpdCgnOicpWzJdO1xuICAgIGNvbnN0IGRheURpZ2l0cyA9IHRoaXMubWFza0RpZ2l0cygpLnNwbGl0KCc6JylbM107XG4gICAgY29uc3QgaG91ckRpZ2l0cyA9IHRoaXMubWFza0RpZ2l0cygpLnNwbGl0KCc6JylbNF07XG4gICAgY29uc3QgbWludXRlRGlnaXRzID0gdGhpcy5tYXNrRGlnaXRzKCkuc3BsaXQoJzonKVs1XTtcbiAgICBjb25zdCBzZWNvbmREaWdpdHMgPSB0aGlzLm1hc2tEaWdpdHMoKS5zcGxpdCgnOicpWzZdO1xuICAgIGNvbnN0IG1pbGxpc2Vjb25kRGlnaXRzID0gdGhpcy5tYXNrRGlnaXRzKCkuc3BsaXQoJzonKVs3XTtcblxuICAgIGlmICh0aGlzLmxhYmVsKCkpIHtcbiAgICAgIC8vIFdpdGggbGFiZWxzXG4gICAgICBjb25zdCB1bml0UGF0dGVybnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgIFlFQVI6IGAke3llYXJEaWdpdHN9ICgke3RoaXMuWUVBUigpfSlgLFxuICAgICAgICBNT05USDogYCR7bW9udGhEaWdpdHN9ICgke3RoaXMuTU9OVEgoKX0pYCxcbiAgICAgICAgV0VFSzogYCR7d2Vla0RpZ2l0c30gKCR7dGhpcy5XRUVLKCl9KWAsXG4gICAgICAgIERBWTogYCR7ZGF5RGlnaXRzfSAoJHt0aGlzLkRBWSgpfSlgLFxuICAgICAgICBIT1VSOiBgJHtob3VyRGlnaXRzfSAoJHt0aGlzLkhPVVIoKX0pYCxcbiAgICAgICAgTUlOVVRFOiBgJHttaW51dGVEaWdpdHN9ICgke3RoaXMuTUlOVVRFKCl9KWAsXG4gICAgICAgIFNFQ09ORDogYCR7c2Vjb25kRGlnaXRzfSAoJHt0aGlzLlNFQ09ORCgpfSlgLFxuICAgICAgICBNSUxMSVNFQ09ORDogYCR7bWlsbGlzZWNvbmREaWdpdHN9ICgke3RoaXMuTUlMTElTRUNPTkQoKX0pYCxcbiAgICAgIH07XG5cbiAgICAgIG1hc2tQYXJ0cyA9IHNlbGVjdGVkVW5pdHMubWFwKCh1bml0KSA9PiB7XG4gICAgICAgIHJldHVybiB1bml0UGF0dGVybnNbdW5pdF07XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gV2l0aG91dCBsYWJlbHMgLSBqdXN0IG51bWJlcnNcbiAgICAgIGNvbnN0IHVuaXRQYXR0ZXJuczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgWUVBUjogeWVhckRpZ2l0cyxcbiAgICAgICAgTU9OVEg6IG1vbnRoRGlnaXRzLFxuICAgICAgICBXRUVLOiB3ZWVrRGlnaXRzLFxuICAgICAgICBEQVk6IGRheURpZ2l0cyxcbiAgICAgICAgSE9VUjogaG91ckRpZ2l0cyxcbiAgICAgICAgTUlOVVRFOiBtaW51dGVEaWdpdHMsXG4gICAgICAgIFNFQ09ORDogc2Vjb25kRGlnaXRzLFxuICAgICAgICBNSUxMSVNFQ09ORDogbWlsbGlzZWNvbmREaWdpdHMsXG4gICAgICB9O1xuXG4gICAgICBtYXNrUGFydHMgPSBzZWxlY3RlZFVuaXRzLm1hcCgodW5pdCkgPT4ge1xuICAgICAgICByZXR1cm4gdW5pdFBhdHRlcm5zW3VuaXRdO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuXG4gICAgaWYgKHRoaXMubGFiZWwoKSkge1xuICAgICAgaWYgKHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKSA9PT0gJ2ZhLUlSJykge1xuICAgICAgICByZXN1bHQgPSBtYXNrUGFydHMucmV2ZXJzZSgpLmpvaW4oJyA6ICcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gbWFza1BhcnRzLmpvaW4oJyA6ICcpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBtYXNrUGFydHMuam9pbignOicpO1xuICAgIH1cblxuICAgIHRoaXMubWFza09wdGlvbnMuc2V0KHsgbWFzazogcmVzdWx0LCBlYWdlcjogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmb2N1c0hhbmRsZXIoZTogQVhGb2N1c0V2ZW50KSB7XG4gICAgdGhpcy5vbkZvY3VzLmVtaXQoZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYmx1ckhhbmRsZXIoZTogQVhGb2N1c0V2ZW50KSB7XG4gICAgdGhpcy5vbkJsdXIuZW1pdChlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWxpZGF0ZUZuID0gYXN5bmMgKHZhbDogbnVtYmVyKSA9PiB7XG4gICAgaWYgKHRoaXMubWluVmFsdWUoKSAmJiB0aGlzLm1pblZhbHVlKCkgPiB2YWwpIHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRNYXNrTWluID0gYXdhaXQgdGhpcy50aW1lRHVyYXRpb25Gb3JtYXR0ZXIubWlsbGlzZWNvbmRzVG9NYXNrKFxuICAgICAgICB0aGlzLm1pblZhbHVlKCksXG4gICAgICAgIHRoaXMudmFsdWVTdGFydCgpLFxuICAgICAgICB0aGlzLnZhbHVlRW5kKCksXG4gICAgICAgIHRydWUsXG4gICAgICAgIHRoaXMubWFza0RpZ2l0cygpLFxuICAgICAgICB0cnVlLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlQXN5bmMoJ0BhY29yZXg6dmFsaWRhdGlvbi5tZXNzYWdlcy5taW4nLCB7XG4gICAgICAgIHBhcmFtczogeyB2YWx1ZTogbm9ybWFsaXplZE1hc2tNaW4gfSxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBydWxlOiAnY2FsbGJhY2snLFxuICAgICAgICByZXN1bHQ6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICB2YWx1ZTogdmFsLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tYXhWYWx1ZSgpICYmIHRoaXMubWF4VmFsdWUoKSA8IHZhbCkge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZE1hc2tNYXggPSBhd2FpdCB0aGlzLnRpbWVEdXJhdGlvbkZvcm1hdHRlci5taWxsaXNlY29uZHNUb01hc2soXG4gICAgICAgIHRoaXMubWF4VmFsdWUoKSxcbiAgICAgICAgdGhpcy52YWx1ZVN0YXJ0KCksXG4gICAgICAgIHRoaXMudmFsdWVFbmQoKSxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgdGhpcy5tYXNrRGlnaXRzKCksXG4gICAgICAgIHRydWUsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGVBc3luYygnQGFjb3JleDp2YWxpZGF0aW9uLm1lc3NhZ2VzLm1heCcsIHtcbiAgICAgICAgcGFyYW1zOiB7IHZhbHVlOiBub3JtYWxpemVkTWFza01heCB9LFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJ1bGU6ICdjYWxsYmFjaycsXG4gICAgICAgIHJlc3VsdDogZmFsc2UsXG4gICAgICAgIG1lc3NhZ2UsXG4gICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBydWxlOiAnY2FsbGJhY2snLFxuICAgICAgcmVzdWx0OiB0cnVlLFxuICAgICAgdmFsdWU6IHZhbCxcbiAgICB9O1xuICB9O1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5uYW1lJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cbn1cbiIsIjxheC10ZXh0LWJveFxuICBbbG9va109XCJsb29rXCJcbiAgW3BsYWNlaG9sZGVyXT1cIm1hc2tPcHRpb25zKCkubWFza1wiXG4gIFttYXNrLW9wdGlvbnNdPVwibWFza09wdGlvbnMoKVwiXG4gIFtuZ01vZGVsXT1cImlucHV0VmFsdWVcIlxuICAobmdNb2RlbENoYW5nZSk9XCJvbklucHV0KCRldmVudClcIlxuICBjbGFzcz1cImF4LXRpbWUtZHVyYXRpb24tdGV4dFwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXG4gIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gIChvbkZvY3VzKT1cImZvY3VzSGFuZGxlcigkZXZlbnQpXCJcbiAgKG9uQmx1cik9XCJibHVySGFuZGxlcigkZXZlbnQpXCJcbj5cbjwvYXgtdGV4dC1ib3g+XG48YXgtdmFsaWRhdGlvbi1ydWxlIHJ1bGU9XCJjYWxsYmFja1wiIFtvcHRpb25zXT1cInsgdmFsaWRhdGU6IHZhbGlkYXRlRm4gfVwiPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuIl19","import { NgModule } from '@angular/core';\nimport { AXTimeDurationComponent } from './time-duration.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXTimeDurationComponent];\nconst MODULES = [];\nexport class AXTimeDurationModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXTimeDurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.4\", ngImport: i0, type: AXTimeDurationModule, imports: [AXTimeDurationComponent], exports: [AXTimeDurationComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXTimeDurationModule, imports: [MODULES, COMPONENT] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXTimeDurationModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1kdXJhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3RpbWUtZHVyYXRpb24vc3JjL2xpYi90aW1lLWR1cmF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUVwRSxNQUFNLFNBQVMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFFNUMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBT25CLE1BQU0sT0FBTyxvQkFBb0I7OEdBQXBCLG9CQUFvQjsrR0FBcEIsb0JBQW9CLFlBVGQsdUJBQXVCLGFBQXZCLHVCQUF1QjsrR0FTN0Isb0JBQW9CLFlBSmxCLE9BQU8sRUFBSyxTQUFTOzsyRkFJdkIsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhUaW1lRHVyYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3RpbWUtZHVyYXRpb24uY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYVGltZUR1cmF0aW9uQ29tcG9uZW50XTtcblxuY29uc3QgTU9EVUxFUyA9IFtdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYVGltZUR1cmF0aW9uTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtdGltZS1kdXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvdGltZS1kdXJhdGlvbi9zcmMvYWNvcmV4LWNvbXBvbmVudHMtdGltZS1kdXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "20.2.12",
3
+ "version": "20.2.14",
4
4
  "peerDependencies": {
5
- "@acorex/core": "20.2.12",
6
- "@acorex/cdk": "20.2.12",
5
+ "@acorex/core": "20.2.14",
6
+ "@acorex/cdk": "20.2.14",
7
7
  "@angular/common": "^20.0.0",
8
8
  "@angular/core": "^20.0.0",
9
9
  "@angular/cdk": "^20.0.0",
@@ -119,6 +119,10 @@
119
119
  "types": "./circular-progress/index.d.ts",
120
120
  "default": "./fesm2022/acorex-components-circular-progress.mjs"
121
121
  },
122
+ "./code-editor": {
123
+ "types": "./code-editor/index.d.ts",
124
+ "default": "./fesm2022/acorex-components-code-editor.mjs"
125
+ },
122
126
  "./collapse": {
123
127
  "types": "./collapse/index.d.ts",
124
128
  "default": "./fesm2022/acorex-components-collapse.mjs"
@@ -287,10 +291,6 @@
287
291
  "types": "./page/index.d.ts",
288
292
  "default": "./fesm2022/acorex-components-page.mjs"
289
293
  },
290
- "./code-editor": {
291
- "types": "./code-editor/index.d.ts",
292
- "default": "./fesm2022/acorex-components-code-editor.mjs"
293
- },
294
294
  "./paint": {
295
295
  "types": "./paint/index.d.ts",
296
296
  "default": "./fesm2022/acorex-components-paint.mjs"
@@ -351,14 +351,14 @@
351
351
  "types": "./rest-api-generator/index.d.ts",
352
352
  "default": "./fesm2022/acorex-components-rest-api-generator.mjs"
353
353
  },
354
- "./routing-progress": {
355
- "types": "./routing-progress/index.d.ts",
356
- "default": "./fesm2022/acorex-components-routing-progress.mjs"
357
- },
358
354
  "./result": {
359
355
  "types": "./result/index.d.ts",
360
356
  "default": "./fesm2022/acorex-components-result.mjs"
361
357
  },
358
+ "./routing-progress": {
359
+ "types": "./routing-progress/index.d.ts",
360
+ "default": "./fesm2022/acorex-components-routing-progress.mjs"
361
+ },
362
362
  "./rrule": {
363
363
  "types": "./rrule/index.d.ts",
364
364
  "default": "./fesm2022/acorex-components-rrule.mjs"
@@ -21,6 +21,7 @@ declare class AXTimeDurationComponent extends AXTimeDurationComponent_base {
21
21
  protected maskOptions: _angular_core.WritableSignal<any>;
22
22
  private translationService;
23
23
  private timeDurationFormatter;
24
+ private translation;
24
25
  private onInputFire;
25
26
  private onInternalValueChangedFire;
26
27
  private YEAR;
@@ -33,16 +34,27 @@ declare class AXTimeDurationComponent extends AXTimeDurationComponent_base {
33
34
  private MILLISECOND;
34
35
  private isTranslationInit;
35
36
  initTranslation(): Promise<void>;
36
- protected onInput(event: any): void;
37
+ protected onInput(event: any): Promise<void>;
37
38
  protected internalValueChanged(value: number): Promise<void>;
38
39
  private replacePersianLabels;
39
40
  private maskToMilliseconds;
40
41
  private updateMask;
41
42
  protected focusHandler(e: AXFocusEvent): void;
42
43
  protected blurHandler(e: AXFocusEvent): void;
44
+ protected validateFn: (val: number) => Promise<{
45
+ rule: string;
46
+ result: boolean;
47
+ message: string;
48
+ value: number;
49
+ } | {
50
+ rule: string;
51
+ result: boolean;
52
+ value: number;
53
+ message?: undefined;
54
+ }>;
43
55
  private get __hostName();
44
56
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTimeDurationComponent, never>;
45
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTimeDurationComponent, "ax-time-duration", never, { "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "look": { "alias": "look"; "required": false; }; "valueStart": { "alias": "valueStart"; "required": false; "isSignal": true; }; "valueEnd": { "alias": "valueEnd"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "maskDigits": { "alias": "maskDigits"; "required": false; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; }, { "onValueChanged": "onValueChanged"; }, never, ["ax-validation-rule"], true, never>;
57
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTimeDurationComponent, "ax-time-duration", never, { "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "look": { "alias": "look"; "required": false; }; "valueStart": { "alias": "valueStart"; "required": false; "isSignal": true; }; "valueEnd": { "alias": "valueEnd"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "maskDigits": { "alias": "maskDigits"; "required": false; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; }, { "onValueChanged": "onValueChanged"; }, never, never, true, never>;
46
58
  }
47
59
 
48
60
  declare class AXTimeDurationModule {