@acorex/components 17.0.25 → 17.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/color-box/lib/color-box.component.d.ts +3 -3
- package/datetime-box/lib/datetime-box.component.d.ts +7 -4
- package/datetime-input/lib/datetime-input.component.d.ts +2 -2
- package/decorators/lib/components/generic-content.component.d.ts +1 -1
- package/dropdown/lib/dropdown-box.class.d.ts +2 -0
- package/esm2022/action-sheet/lib/action-sheet.component.mjs +1 -1
- package/esm2022/button/lib/button-item-list.component.mjs +1 -1
- package/esm2022/color-box/lib/color-box.component.mjs +7 -7
- package/esm2022/common/lib/components/interactive-component.class.mjs +9 -2
- package/esm2022/common/lib/directives/inverted-color.directive.mjs +3 -5
- package/esm2022/conversation/lib/conversation-message/conversation-message.component.mjs +1 -1
- package/esm2022/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.mjs +1 -1
- package/esm2022/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.mjs +1 -1
- package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +1 -1
- package/esm2022/data-pager/lib/data-pager.component.mjs +1 -1
- package/esm2022/data-table/lib/data-table/data-table.component.mjs +1 -1
- package/esm2022/datetime-box/lib/datetime-box.component.mjs +35 -9
- package/esm2022/datetime-input/lib/datetime-input.component.mjs +26 -57
- package/esm2022/decorators/lib/components/generic-content.component.mjs +4 -4
- package/esm2022/dialog/lib/dialog.component.mjs +1 -1
- package/esm2022/dropdown/lib/dropdown-box.class.mjs +13 -1
- package/esm2022/form/lib/form-field.component.mjs +64 -12
- package/esm2022/form/lib/form.component.mjs +18 -18
- package/esm2022/form/lib/validation-summary.component.mjs +1 -1
- package/esm2022/label/lib/label.component.mjs +2 -2
- package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +1 -1
- package/esm2022/number-box/lib/number-box.component.mjs +3 -3
- package/esm2022/phone-box/lib/phone-box.component.mjs +1 -1
- package/esm2022/scheduler/lib/scheduler.component.mjs +1 -1
- package/esm2022/select-box/lib/select-box.component.mjs +3 -3
- package/esm2022/text-area/lib/text-area.component.mjs +3 -3
- package/fesm2022/acorex-components-action-sheet.mjs +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +1 -1
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +6 -6
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +9 -4
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +3 -3
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +2 -2
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +1 -1
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +34 -8
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +24 -55
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +2 -2
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +1 -1
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +12 -0
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +105 -54
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +2 -2
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +2 -2
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +1 -1
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +1 -1
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +2 -2
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +2 -2
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/form/lib/form-field.component.d.ts +15 -4
- package/form/lib/form.component.d.ts +7 -5
- package/package.json +1 -1
@@ -7,7 +7,7 @@ import { AXDateTimePickerComponent, AXDateTimePickerModule } from '@acorex/compo
|
|
7
7
|
import * as i3 from '@acorex/components/dropdown';
|
8
8
|
import { MXDropdownBoxBaseComponent, AXDropdownBoxComponent, AXDropdownModule } from '@acorex/components/dropdown';
|
9
9
|
import * as i0 from '@angular/core';
|
10
|
-
import { EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Output, Input, NgModule } from '@angular/core';
|
10
|
+
import { EventEmitter, input, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Output, Input, NgModule } from '@angular/core';
|
11
11
|
import * as i1 from '@angular/forms';
|
12
12
|
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
13
13
|
import { classes } from 'polytype';
|
@@ -22,6 +22,7 @@ class AXDateTimeBoxComponent extends classes((MXInputBaseValueComponent), MXCale
|
|
22
22
|
constructor() {
|
23
23
|
super(...arguments);
|
24
24
|
this.formatChange = new EventEmitter();
|
25
|
+
this.allowTyping = input(false);
|
25
26
|
this._format = this.calendarService.calendar.formats.dateTimeInput;
|
26
27
|
}
|
27
28
|
get format() {
|
@@ -40,11 +41,21 @@ class AXDateTimeBoxComponent extends classes((MXInputBaseValueComponent), MXCale
|
|
40
41
|
if (this.isOpen)
|
41
42
|
this.commitValue(value, true);
|
42
43
|
}
|
43
|
-
_handleOnOpenedEvent() {
|
44
|
+
_handleOnOpenedEvent(e) {
|
45
|
+
//this.emitOnFocusEvent(null);
|
44
46
|
this.picker?.refresh();
|
47
|
+
this.emitOnOpenedEvent();
|
45
48
|
}
|
46
|
-
_handleOnClosedEvent() {
|
49
|
+
_handleOnClosedEvent(e) {
|
50
|
+
//this.emitOnBlurEvent(null);
|
47
51
|
this.input.focus();
|
52
|
+
this.emitOnClosedEvent();
|
53
|
+
}
|
54
|
+
_handleInputOnFocusEvent(e) {
|
55
|
+
this.emitOnFocusEvent(e.nativeEvent);
|
56
|
+
}
|
57
|
+
_handleInputOnBlurEvent(e) {
|
58
|
+
this.emitOnBlurEvent(e.nativeEvent);
|
48
59
|
}
|
49
60
|
_handleCalendarOnNavigate(e) {
|
50
61
|
this.onNavigate.emit(e);
|
@@ -53,10 +64,15 @@ class AXDateTimeBoxComponent extends classes((MXInputBaseValueComponent), MXCale
|
|
53
64
|
this.close();
|
54
65
|
}
|
55
66
|
_handleInputOnClick() {
|
56
|
-
this.
|
67
|
+
if (!this.allowTyping()) {
|
68
|
+
this.open();
|
69
|
+
}
|
70
|
+
else {
|
71
|
+
this.close();
|
72
|
+
}
|
57
73
|
}
|
58
74
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
59
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXDateTimeBoxComponent, selector: "ax-datetime-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", minValue: "minValue", maxValue: "maxValue", value: "value", state: "state", name: "name", depth: "depth", id: "id", type: "type", look: "look", format: "format" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", formatChange: "formatChange" }, host: { attributes: { "ngSkipHydration": "true" } }, providers: [
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXDateTimeBoxComponent, selector: "ax-datetime-box", 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 }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: false, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", 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 }, depth: { classPropertyName: "depth", publicName: "depth", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, allowTyping: { classPropertyName: "allowTyping", publicName: "allowTyping", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", onOpened: "onOpened", onClosed: "onClosed", readonlyChange: "readonlyChange", disabledChange: "disabledChange", formatChange: "formatChange" }, host: { attributes: { "ngSkipHydration": "true" } }, providers: [
|
60
76
|
{ provide: AXComponent, useExisting: AXDateTimeBoxComponent },
|
61
77
|
{ provide: AXFocusableComponent, useExisting: AXDateTimeBoxComponent },
|
62
78
|
{ provide: AXValuableComponent, useExisting: AXDateTimeBoxComponent },
|
@@ -66,7 +82,7 @@ class AXDateTimeBoxComponent extends classes((MXInputBaseValueComponent), MXCale
|
|
66
82
|
useExisting: forwardRef(() => AXDateTimeBoxComponent),
|
67
83
|
multi: true,
|
68
84
|
},
|
69
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: AXDateTimeInputComponent, descendants: true }, { propertyName: "picker", first: true, predicate: AXDateTimePickerComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent()\"
|
85
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: AXDateTimeInputComponent, descendants: true }, { propertyName: "picker", first: true, predicate: AXDateTimePickerComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\" [look]=\"look\">\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <ax-datetime-input id=\"{{ id }}-input\" [ngModel]=\"value\" [allowTyping]=\"allowTyping()\"\n (ngModelChange)=\"_handleInputModelChange($event)\" [placeholder]=\"placeholder\" [format]=\"format\"\n [disabled]=\"disabled\" [readonly]=\"readonly\" [type]=\"type\" (onFocus)=\"_handleInputOnFocusEvent($event)\"\n (onBlur)=\"_handleInputOnBlurEvent($event)\" (onClick)=\"_handleInputOnClick()\"></ax-datetime-input>\n @if(value && !disabled && !readonly){\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" class=\"ax-general-button ax-button-icon\" [tabIndex]=\"-1\" [disabled]=\"disabled\"\n (click)=\"toggle()\">\n <span class=\"ax-icon ax-icon-calendar\"></span>\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-datetime-picker [depth]=\"depth\" id=\"{{ id }}-picker\" #picker [ngModel]=\"value\"\n (ngModelChange)=\"_handlePickerModelChange($event)\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [minValue]=\"minValue\" [maxValue]=\"maxValue\" [format]=\"format\" [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\" [depth]=\"depth\" [type]=\"type\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"></ax-datetime-picker>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>", dependencies: [{ 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: "component", type: i2.AXDateTimeInputComponent, selector: "ax-datetime-input", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "allowTyping", "type", "minValue", "maxValue", "format"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "onClick", "readonlyChange", "disabledChange", "formatChange"] }, { kind: "component", type: i3.AXDropdownBoxComponent, selector: "ax-dropdown-box", inputs: ["disabled", "look"], outputs: ["disabledChange", "onBlur", "onFocus", "onClick", "onOpened", "onClosed"] }, { kind: "component", type: i4.AXDateTimePickerComponent, selector: "ax-datetime-picker", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "currentTimeButton", "format"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "onClick", "readonlyChange", "disabledChange", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "formatChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
70
86
|
}
|
71
87
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeBoxComponent, decorators: [{
|
72
88
|
type: Component,
|
@@ -84,7 +100,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
84
100
|
'id',
|
85
101
|
'type',
|
86
102
|
'look',
|
87
|
-
], outputs: [
|
103
|
+
], outputs: [
|
104
|
+
'valueChange',
|
105
|
+
'stateChange',
|
106
|
+
'onValueChanged',
|
107
|
+
'onBlur',
|
108
|
+
'onFocus',
|
109
|
+
'onOpened',
|
110
|
+
'onClosed',
|
111
|
+
'readonlyChange',
|
112
|
+
'disabledChange',
|
113
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
88
114
|
{ provide: AXComponent, useExisting: AXDateTimeBoxComponent },
|
89
115
|
{ provide: AXFocusableComponent, useExisting: AXDateTimeBoxComponent },
|
90
116
|
{ provide: AXValuableComponent, useExisting: AXDateTimeBoxComponent },
|
@@ -94,7 +120,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
94
120
|
useExisting: forwardRef(() => AXDateTimeBoxComponent),
|
95
121
|
multi: true,
|
96
122
|
},
|
97
|
-
], host: { ngSkipHydration: 'true' }, template: "<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent()\"
|
123
|
+
], host: { ngSkipHydration: 'true' }, template: "<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\" [look]=\"look\">\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <ax-datetime-input id=\"{{ id }}-input\" [ngModel]=\"value\" [allowTyping]=\"allowTyping()\"\n (ngModelChange)=\"_handleInputModelChange($event)\" [placeholder]=\"placeholder\" [format]=\"format\"\n [disabled]=\"disabled\" [readonly]=\"readonly\" [type]=\"type\" (onFocus)=\"_handleInputOnFocusEvent($event)\"\n (onBlur)=\"_handleInputOnBlurEvent($event)\" (onClick)=\"_handleInputOnClick()\"></ax-datetime-input>\n @if(value && !disabled && !readonly){\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" class=\"ax-general-button ax-button-icon\" [tabIndex]=\"-1\" [disabled]=\"disabled\"\n (click)=\"toggle()\">\n <span class=\"ax-icon ax-icon-calendar\"></span>\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-datetime-picker [depth]=\"depth\" id=\"{{ id }}-picker\" #picker [ngModel]=\"value\"\n (ngModelChange)=\"_handlePickerModelChange($event)\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [minValue]=\"minValue\" [maxValue]=\"maxValue\" [format]=\"format\" [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\" [depth]=\"depth\" [type]=\"type\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"></ax-datetime-picker>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>" }]
|
98
124
|
}], propDecorators: { input: [{
|
99
125
|
type: ViewChild,
|
100
126
|
args: [AXDateTimeInputComponent]
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-datetime-box.mjs","sources":["../../../../libs/components/datetime-box/src/lib/datetime-box.component.ts","../../../../libs/components/datetime-box/src/lib/datetime-box.component.html","../../../../libs/components/datetime-box/src/lib/datetime-box.module.ts","../../../../libs/components/datetime-box/src/acorex-components-datetime-box.ts"],"sourcesContent":["import { AXCalendarNavigateEvent, MXCalendarBaseComponent } from '@acorex/components/calendar';\nimport {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/components/common';\nimport { AXDateTimeInputComponent } from '@acorex/components/datetime-input';\nimport { AXDateTimePickerComponent } from '@acorex/components/datetime-picker';\nimport { AXDropdownBoxComponent, MXDropdownBoxBaseComponent } from '@acorex/components/dropdown';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-datetime-box',\n templateUrl: './datetime-box.component.html',\n inputs: [\n 'disabled',\n 'readonly',\n 'tabIndex',\n 'placeholder',\n 'minValue',\n 'maxValue',\n 'value',\n 'state',\n 'name',\n 'depth',\n 'id',\n 'type',\n 'look',\n ],\n outputs: ['valueChange', 'stateChange', 'onValueChanged', 'onBlur', 'onFocus', 'readonlyChange', 'disabledChange'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXDateTimeBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimeBoxComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimeBoxComponent },\n { provide: AXClearableComponent, useExisting: AXDateTimeBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimeBoxComponent),\n multi: true,\n },\n ],\n host: { ngSkipHydration: 'true' },\n})\nexport class AXDateTimeBoxComponent extends classes(\n MXInputBaseValueComponent<Date>,\n MXCalendarBaseComponent,\n MXDropdownBoxBaseComponent,\n MXLookComponent,\n) {\n @ViewChild(AXDateTimeInputComponent)\n protected input: AXDateTimeInputComponent;\n\n @ViewChild(AXDateTimePickerComponent)\n protected picker: AXDateTimePickerComponent;\n\n @ViewChild(AXDropdownBoxComponent)\n protected dropdown: AXDropdownBoxComponent;\n\n @Output()\n formatChange = new EventEmitter<string>();\n\n private _format = this.calendarService.calendar.formats.dateTimeInput;\n @Input()\n public get format(): string {\n return this._format;\n }\n public set format(v: string) {\n this.setOption({\n name: 'format',\n value: v,\n });\n }\n\n protected _handleInputModelChange(value: Date | null) {\n this.commitValue(value, true);\n }\n\n protected _handlePickerModelChange(value: Date | null) {\n if (this.isOpen) this.commitValue(value, true);\n }\n\n protected _handleOnOpenedEvent() {\n this.picker?.refresh();\n }\n\n protected _handleOnClosedEvent() {\n this.input.focus();\n }\n\n protected _handleCalendarOnNavigate(e: AXCalendarNavigateEvent) {\n this.onNavigate.emit(e);\n }\n\n override internalValueChanged(): void {\n this.close();\n }\n\n protected _handleInputOnClick() {\n this.close();\n }\n}\n","<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent()\" (onClosed)=\"_handleOnClosedEvent()\"\n [look]=\"look\">\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <ax-datetime-input id=\"{{ id }}-input\" [ngModel]=\"value\" (ngModelChange)=\"_handleInputModelChange($event)\"\n [placeholder]=\"placeholder\" [format]=\"format\" [disabled]=\"disabled\" [readonly]=\"readonly\" [type]=\"type\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\" (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onClick)=\"_handleInputOnClick()\"></ax-datetime-input>\n @if(value && !disabled && !readonly){\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" class=\"ax-general-button ax-button-icon\" [tabIndex]=\"-1\" [disabled]=\"disabled\"\n (click)=\"toggle()\">\n <span class=\"ax-icon ax-icon-calendar\"></span>\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-datetime-picker [depth]=\"depth\" id=\"{{ id }}-picker\" #picker [ngModel]=\"value\"\n (ngModelChange)=\"_handlePickerModelChange($event)\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [minValue]=\"minValue\" [maxValue]=\"maxValue\" [format]=\"format\" [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\" [depth]=\"depth\" [type]=\"type\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"></ax-datetime-picker>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>","import { AXCalendarModule } from '@acorex/components/calendar';\nimport { AXDateTimeInputModule } from '@acorex/components/datetime-input';\nimport { AXDateTimePickerModule } from '@acorex/components/datetime-picker';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXDateTimeBoxComponent } from './datetime-box.component';\n\nconst COMPONENT = [AXDateTimeBoxComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n AXDateTimeInputModule,\n AXDropdownModule,\n AXCalendarModule,\n AXDateTimePickerModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXDateTimeBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-datetime-box.mjs","sources":["../../../../libs/components/datetime-box/src/lib/datetime-box.component.ts","../../../../libs/components/datetime-box/src/lib/datetime-box.component.html","../../../../libs/components/datetime-box/src/lib/datetime-box.module.ts","../../../../libs/components/datetime-box/src/acorex-components-datetime-box.ts"],"sourcesContent":["import { AXCalendarNavigateEvent, MXCalendarBaseComponent } from '@acorex/components/calendar';\nimport {\n AXClearableComponent,\n AXComponent,\n AXEvent,\n AXFocusEvent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/components/common';\nimport { AXDateTimeInputComponent } from '@acorex/components/datetime-input';\nimport { AXDateTimePickerComponent } from '@acorex/components/datetime-picker';\nimport { AXDropdownBoxComponent, MXDropdownBoxBaseComponent } from '@acorex/components/dropdown';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n input,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-datetime-box',\n templateUrl: './datetime-box.component.html',\n inputs: [\n 'disabled',\n 'readonly',\n 'tabIndex',\n 'placeholder',\n 'minValue',\n 'maxValue',\n 'value',\n 'state',\n 'name',\n 'depth',\n 'id',\n 'type',\n 'look',\n ],\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'onOpened',\n 'onClosed',\n 'readonlyChange',\n 'disabledChange',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: AXComponent, useExisting: AXDateTimeBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimeBoxComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimeBoxComponent },\n { provide: AXClearableComponent, useExisting: AXDateTimeBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimeBoxComponent),\n multi: true,\n },\n ],\n host: { ngSkipHydration: 'true' },\n})\nexport class AXDateTimeBoxComponent extends classes(\n MXInputBaseValueComponent<Date>,\n MXCalendarBaseComponent,\n MXDropdownBoxBaseComponent,\n MXLookComponent,\n) {\n @ViewChild(AXDateTimeInputComponent)\n protected input: AXDateTimeInputComponent;\n\n @ViewChild(AXDateTimePickerComponent)\n protected picker: AXDateTimePickerComponent;\n\n @ViewChild(AXDropdownBoxComponent)\n protected dropdown: AXDropdownBoxComponent;\n\n @Output()\n formatChange = new EventEmitter<string>();\n\n allowTyping = input<boolean>(false);\n\n private _format = this.calendarService.calendar.formats.dateTimeInput;\n @Input()\n public get format(): string {\n return this._format;\n }\n public set format(v: string) {\n this.setOption({\n name: 'format',\n value: v,\n });\n }\n\n protected _handleInputModelChange(value: Date | null) {\n this.commitValue(value, true);\n }\n\n protected _handlePickerModelChange(value: Date | null) {\n if (this.isOpen) this.commitValue(value, true);\n }\n\n protected _handleOnOpenedEvent(e: AXEvent) {\n //this.emitOnFocusEvent(null);\n this.picker?.refresh();\n this.emitOnOpenedEvent();\n }\n\n protected _handleOnClosedEvent(e: AXEvent) {\n //this.emitOnBlurEvent(null);\n this.input.focus();\n this.emitOnClosedEvent();\n }\n\n protected _handleInputOnFocusEvent(e: AXFocusEvent) {\n this.emitOnFocusEvent(e.nativeEvent);\n }\n\n protected _handleInputOnBlurEvent(e: AXFocusEvent) {\n this.emitOnBlurEvent(e.nativeEvent);\n }\n\n protected _handleCalendarOnNavigate(e: AXCalendarNavigateEvent) {\n this.onNavigate.emit(e);\n }\n\n override internalValueChanged(): void {\n this.close();\n }\n\n protected _handleInputOnClick() {\n if (!this.allowTyping()) {\n this.open();\n } else {\n this.close();\n }\n }\n}\n","<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent($event)\"\n (onClosed)=\"_handleOnClosedEvent($event)\" [look]=\"look\">\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <ax-datetime-input id=\"{{ id }}-input\" [ngModel]=\"value\" [allowTyping]=\"allowTyping()\"\n (ngModelChange)=\"_handleInputModelChange($event)\" [placeholder]=\"placeholder\" [format]=\"format\"\n [disabled]=\"disabled\" [readonly]=\"readonly\" [type]=\"type\" (onFocus)=\"_handleInputOnFocusEvent($event)\"\n (onBlur)=\"_handleInputOnBlurEvent($event)\" (onClick)=\"_handleInputOnClick()\"></ax-datetime-input>\n @if(value && !disabled && !readonly){\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" class=\"ax-general-button ax-button-icon\" [tabIndex]=\"-1\" [disabled]=\"disabled\"\n (click)=\"toggle()\">\n <span class=\"ax-icon ax-icon-calendar\"></span>\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-datetime-picker [depth]=\"depth\" id=\"{{ id }}-picker\" #picker [ngModel]=\"value\"\n (ngModelChange)=\"_handlePickerModelChange($event)\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [minValue]=\"minValue\" [maxValue]=\"maxValue\" [format]=\"format\" [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\" [depth]=\"depth\" [type]=\"type\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"></ax-datetime-picker>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>","import { AXCalendarModule } from '@acorex/components/calendar';\nimport { AXDateTimeInputModule } from '@acorex/components/datetime-input';\nimport { AXDateTimePickerModule } from '@acorex/components/datetime-picker';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXDateTimeBoxComponent } from './datetime-box.component';\n\nconst COMPONENT = [AXDateTimeBoxComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n AXDateTimeInputModule,\n AXDropdownModule,\n AXCalendarModule,\n AXDateTimePickerModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXDateTimeBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -2,7 +2,7 @@ import { MXInputBaseValueComponent, AXComponent, AXFocusableComponent, AXValuabl
|
|
2
2
|
import { AXCalendarService, AXDateTimeModule } from '@acorex/core/date-time';
|
3
3
|
import { AXStringUtil } from '@acorex/core/utils';
|
4
4
|
import * as i0 from '@angular/core';
|
5
|
-
import { inject, EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, Output, HostListener, NgModule } from '@angular/core';
|
5
|
+
import { inject, input, EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, Output, HostListener, NgModule } from '@angular/core';
|
6
6
|
import * as i1 from '@angular/forms';
|
7
7
|
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
8
8
|
import { CommonModule } from '@angular/common';
|
@@ -69,6 +69,7 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
69
69
|
};
|
70
70
|
this._inputChars = [];
|
71
71
|
this._type = this.calendarService.calendar.name();
|
72
|
+
this.allowTyping = input(false);
|
72
73
|
this._activePart = 'hour';
|
73
74
|
this._editingDateObj = this.calendarService.now(this.type);
|
74
75
|
this.formatChange = new EventEmitter();
|
@@ -199,12 +200,14 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
199
200
|
e.preventDefault();
|
200
201
|
e.stopPropagation();
|
201
202
|
};
|
203
|
+
if (!this.allowTyping()) {
|
204
|
+
ignore();
|
205
|
+
return;
|
206
|
+
}
|
202
207
|
const input = e.target;
|
203
208
|
//
|
204
209
|
const orderedParts = this._getOrderedParts();
|
205
|
-
const part = this.activePart
|
206
|
-
? this._editingParts[this.activePart]
|
207
|
-
: orderedParts[0];
|
210
|
+
const part = this.activePart ? this._editingParts[this.activePart] : orderedParts[0];
|
208
211
|
const nextPart = part ? orderedParts[orderedParts.indexOf(part) + 1] : null;
|
209
212
|
const prevPart = part ? orderedParts[orderedParts.indexOf(part) - 1] : null;
|
210
213
|
//
|
@@ -250,8 +253,7 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
250
253
|
}
|
251
254
|
if (input.value) {
|
252
255
|
ignore();
|
253
|
-
this._editingParts[part.key].typedValue =
|
254
|
-
this._editingParts[part.key].placeholder;
|
256
|
+
this._editingParts[part.key].typedValue = this._editingParts[part.key].placeholder;
|
255
257
|
this._detectValueChanges();
|
256
258
|
goPrev();
|
257
259
|
}
|
@@ -268,9 +270,11 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
268
270
|
goPrev();
|
269
271
|
}
|
270
272
|
}
|
273
|
+
// TODO: FiX type in input
|
271
274
|
}
|
272
275
|
else if (e.key?.trim() && !isNaN(Number(e.key))) {
|
273
276
|
ignore();
|
277
|
+
return;
|
274
278
|
if (this.disabled || this.readonly) {
|
275
279
|
return;
|
276
280
|
}
|
@@ -280,11 +284,7 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
280
284
|
switch (part.key) {
|
281
285
|
case 'year': {
|
282
286
|
if (editing.placeholder.length == 2 && this._inputChars.length == 0) {
|
283
|
-
this._inputChars.push(...this.calendarService
|
284
|
-
.now(this.type)
|
285
|
-
.format('yyyy')
|
286
|
-
.substring(0, 2)
|
287
|
-
.split(''));
|
287
|
+
this._inputChars.push(...this.calendarService.now(this.type).format('yyyy').substring(0, 2).split(''));
|
288
288
|
}
|
289
289
|
if (this._inputChars.length < 4) {
|
290
290
|
editing.typedValue = `${this._inputChars.join('')}${e.key}`;
|
@@ -325,10 +325,7 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
325
325
|
this._clearInputBuffer();
|
326
326
|
next = true;
|
327
327
|
}
|
328
|
-
editing.typedValue =
|
329
|
-
editing.typedValue?.length === 1
|
330
|
-
? '0' + editing.typedValue
|
331
|
-
: editing.typedValue;
|
328
|
+
editing.typedValue = editing.typedValue?.length === 1 ? '0' + editing.typedValue : editing.typedValue;
|
332
329
|
const nv = parseInt(editing.typedValue);
|
333
330
|
if (nv > 0) {
|
334
331
|
const newVal = this.editingDateObj.set(part.key, nv);
|
@@ -357,10 +354,7 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
357
354
|
this._clearInputBuffer();
|
358
355
|
next = true;
|
359
356
|
}
|
360
|
-
editing.typedValue =
|
361
|
-
editing.typedValue?.length === 1
|
362
|
-
? '0' + editing.typedValue
|
363
|
-
: editing.typedValue;
|
357
|
+
editing.typedValue = editing.typedValue?.length === 1 ? '0' + editing.typedValue : editing.typedValue;
|
364
358
|
const nv = parseInt(editing.typedValue);
|
365
359
|
if (nv > 0) {
|
366
360
|
const newVal = this.editingDateObj.set(part.key, nv);
|
@@ -387,10 +381,7 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
387
381
|
}
|
388
382
|
next = true;
|
389
383
|
}
|
390
|
-
editing.typedValue =
|
391
|
-
editing.typedValue?.length === 1
|
392
|
-
? '0' + editing.typedValue
|
393
|
-
: editing.typedValue;
|
384
|
+
editing.typedValue = editing.typedValue?.length === 1 ? '0' + editing.typedValue : editing.typedValue;
|
394
385
|
const newVal = this.editingDateObj.set('hour', parseInt(editing.typedValue));
|
395
386
|
this._editingDateObj = newVal;
|
396
387
|
this._detectValueChanges();
|
@@ -417,10 +408,7 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
417
408
|
this._clearInputBuffer();
|
418
409
|
next = true;
|
419
410
|
}
|
420
|
-
editing.typedValue =
|
421
|
-
editing.typedValue?.length === 1
|
422
|
-
? '0' + editing.typedValue
|
423
|
-
: editing.typedValue;
|
411
|
+
editing.typedValue = editing.typedValue?.length === 1 ? '0' + editing.typedValue : editing.typedValue;
|
424
412
|
const newVal = this.editingDateObj.set(part.key, parseInt(editing.typedValue));
|
425
413
|
this._editingDateObj = newVal;
|
426
414
|
this._detectValueChanges();
|
@@ -448,9 +436,11 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
448
436
|
super.emitOnBlurEvent(e);
|
449
437
|
}
|
450
438
|
_handleOnInputClickEvent(e) {
|
451
|
-
|
452
|
-
|
453
|
-
|
439
|
+
if (this.allowTyping()) {
|
440
|
+
setTimeout(() => {
|
441
|
+
this._detectPartAtPosition();
|
442
|
+
}, 0);
|
443
|
+
}
|
454
444
|
this.onClick.emit({
|
455
445
|
component: this,
|
456
446
|
htmlElement: this.getHostElement(),
|
@@ -484,7 +474,7 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
484
474
|
this.commitValue(this._editingDateObj.date, true);
|
485
475
|
}
|
486
476
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
487
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
477
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.2", type: AXDateTimeInputComponent, selector: "ax-datetime-input", 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 }, allowTyping: { classPropertyName: "allowTyping", publicName: "allowTyping", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", 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 }, format: { classPropertyName: "format", publicName: "format", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", readonlyChange: "readonlyChange", disabledChange: "disabledChange", formatChange: "formatChange" }, host: { listeners: { "keydown": "_handleOnKeydownEvent($event)", "keyup": "_handleKeyUpEvent($event)" }, classAttribute: "ax-editor-input" }, providers: [
|
488
478
|
{ provide: AXComponent, useExisting: AXDateTimeInputComponent },
|
489
479
|
{ provide: AXFocusableComponent, useExisting: AXDateTimeInputComponent },
|
490
480
|
{ provide: AXValuableComponent, useExisting: AXDateTimeInputComponent },
|
@@ -494,29 +484,11 @@ class AXDateTimeInputComponent extends MXInputBaseValueComponent {
|
|
494
484
|
useExisting: forwardRef(() => AXDateTimeInputComponent),
|
495
485
|
multi: true,
|
496
486
|
},
|
497
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }
|
487
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input #input id=\"input\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" class=\"ax-input\"\n type=\"text\" [attr.placeholder]=\"placeholder\" [class.ax-state-disabled]=\"disabled\"\n [class.ax-select-none]=\"!allowTyping()\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"true\"\n [ngModel]=\"_editingText\" (mouseup)=\"_handleOnInputClickEvent($event)\" (blur)=\"_handleBlurEvent($event)\"\n (focus)=\"_handleFocusEvent($event)\">\n<ng-content select=\"ax-validation-rule\">\n</ng-content>", dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
498
488
|
}
|
499
489
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXDateTimeInputComponent, decorators: [{
|
500
490
|
type: Component,
|
501
|
-
args: [{ selector: 'ax-datetime-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [
|
502
|
-
'disabled',
|
503
|
-
'readonly',
|
504
|
-
'tabIndex',
|
505
|
-
'placeholder',
|
506
|
-
'value',
|
507
|
-
'state',
|
508
|
-
'name',
|
509
|
-
'id',
|
510
|
-
], host: { class: 'ax-editor-input' }, outputs: [
|
511
|
-
'valueChange',
|
512
|
-
'stateChange',
|
513
|
-
'onValueChanged',
|
514
|
-
'onBlur',
|
515
|
-
'onFocus',
|
516
|
-
'onClick',
|
517
|
-
'readonlyChange',
|
518
|
-
'disabledChange',
|
519
|
-
], providers: [
|
491
|
+
args: [{ selector: 'ax-datetime-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id'], host: { class: 'ax-editor-input' }, outputs: ['valueChange', 'stateChange', 'onValueChanged', 'onBlur', 'onFocus', 'onClick', 'readonlyChange', 'disabledChange'], providers: [
|
520
492
|
{ provide: AXComponent, useExisting: AXDateTimeInputComponent },
|
521
493
|
{ provide: AXFocusableComponent, useExisting: AXDateTimeInputComponent },
|
522
494
|
{ provide: AXValuableComponent, useExisting: AXDateTimeInputComponent },
|
@@ -526,15 +498,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
526
498
|
useExisting: forwardRef(() => AXDateTimeInputComponent),
|
527
499
|
multi: true,
|
528
500
|
},
|
529
|
-
], template: "<input #input id=\"input\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" class=\"ax-input\"\n type=\"text\" [attr.placeholder]=\"placeholder\" [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"true\"
|
501
|
+
], template: "<input #input id=\"input\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" class=\"ax-input\"\n type=\"text\" [attr.placeholder]=\"placeholder\" [class.ax-state-disabled]=\"disabled\"\n [class.ax-select-none]=\"!allowTyping()\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"true\"\n [ngModel]=\"_editingText\" (mouseup)=\"_handleOnInputClickEvent($event)\" (blur)=\"_handleBlurEvent($event)\"\n (focus)=\"_handleFocusEvent($event)\">\n<ng-content select=\"ax-validation-rule\">\n</ng-content>" }]
|
530
502
|
}], propDecorators: { type: [{
|
531
503
|
type: Input
|
532
504
|
}], input: [{
|
533
505
|
type: ViewChild,
|
534
506
|
args: ['input']
|
535
|
-
}], input2: [{
|
536
|
-
type: ViewChild,
|
537
|
-
args: ['input2']
|
538
507
|
}], minValue: [{
|
539
508
|
type: Input
|
540
509
|
}], maxValue: [{
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-datetime-input.mjs","sources":["../../../../libs/components/datetime-input/src/lib/datetime-input.component.ts","../../../../libs/components/datetime-input/src/lib/datetime-input.component.html","../../../../libs/components/datetime-input/src/lib/datetime-input.module.ts","../../../../libs/components/datetime-input/src/acorex-components-datetime-input.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXClickEvent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n} from '@acorex/components/common';\nimport {\n AXCalendarService,\n AXDateTime,\n AXDateTimePart,\n AXDateTimeParts,\n TimeUnit,\n} from '@acorex/core/date-time';\nimport { AXStringUtil } from '@acorex/core/utils';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'ax-datetime-input',\n templateUrl: './datetime-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: [\n 'disabled',\n 'readonly',\n 'tabIndex',\n 'placeholder',\n 'value',\n 'state',\n 'name',\n 'id',\n ],\n host: { class: 'ax-editor-input' },\n outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'onClick',\n 'readonlyChange',\n 'disabledChange',\n ],\n providers: [\n { provide: AXComponent, useExisting: AXDateTimeInputComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimeInputComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimeInputComponent },\n { provide: AXClearableComponent, useExisting: AXDateTimeInputComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimeInputComponent),\n multi: true,\n },\n ],\n})\nexport class AXDateTimeInputComponent extends MXInputBaseValueComponent<Date> {\n private calendarService: AXCalendarService = inject(AXCalendarService);\n\n private _editingParts: AXDateTimeParts = {\n year: {\n key: 'year',\n placeholder: 'yyyy',\n placeholders: ['YY', 'yy', 'YYYY', 'yyyy'],\n enabled: false,\n default: 2023,\n typedValue: null,\n realValue: () =>\n this.editingDateObj.format(this._editingParts.year.placeholder),\n },\n month: {\n key: 'month',\n placeholder: 'MM',\n placeholders: ['MMM', 'MMMM', 'MM', 'M'],\n enabled: false,\n default: 1,\n typedValue: null,\n realValue: () =>\n this.editingDateObj.format(this._editingParts.month.placeholder),\n },\n day: {\n key: 'day',\n placeholder: 'dd',\n placeholders: ['dd', 'd', 'DDDD', 'DDD'],\n enabled: false,\n default: 1,\n typedValue: null,\n realValue: () =>\n this.editingDateObj.format(this._editingParts.day.placeholder),\n },\n hour: {\n key: 'hour',\n placeholder: 'HH',\n placeholders: ['HH', 'H', 'hh', 'h'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () =>\n this.editingDateObj.format(this._editingParts.hour.placeholder),\n },\n minute: {\n key: 'minute',\n placeholder: 'mm',\n placeholders: ['mm', 'm'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () =>\n this.editingDateObj.format(this._editingParts.minute.placeholder),\n },\n second: {\n key: 'second',\n placeholder: 'ss',\n placeholders: ['ss', 's'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () =>\n this.editingDateObj.format(this._editingParts.second.placeholder),\n },\n };\n\n protected _editingText: string;\n protected _inputChars: string[] = [];\n\n private _type: string = this.calendarService.calendar.name();\n\n @Input()\n public get type(): string {\n return this._type || this.calendarService.calendar.name();\n }\n public set type(v: string) {\n this.setOption({\n name: 'type',\n value: v,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n private _activePart = 'hour';\n public get activePart(): string {\n return this._activePart;\n }\n public set activePart(v: string) {\n this._activePart = v;\n this._clearInputBuffer();\n }\n\n private _editingDateObj: AXDateTime = this.calendarService.now(this.type);\n private get editingDateObj(): AXDateTime {\n return this._editingDateObj;\n }\n\n @ViewChild('input')\n input: ElementRef<HTMLInputElement>;\n\n @ViewChild('input2')\n input2: ElementRef<HTMLInputElement>;\n\n private _minValue: Date;\n @Input()\n public get minValue(): Date {\n return this._minValue;\n }\n public set minValue(v: Date) {\n this._minValue = v;\n }\n\n private _maxValue: Date;\n @Input()\n public get maxValue(): Date {\n return this._maxValue;\n }\n public set maxValue(v: Date) {\n this._maxValue = v;\n }\n\n @Output()\n formatChange = new EventEmitter<string>();\n\n @Output()\n onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n private _format = this.calendarService.calendar.formats.dateTimeInput;\n @Input()\n public get format(): string {\n return this._format;\n }\n public set format(v: string) {\n this.setOption({\n name: 'format',\n value: v,\n afterCallback: (o, n) => {\n Object.values(this._editingParts).forEach((e) => {\n e.enabled = false;\n });\n const formatParts = n.split(/[^a-zA-Z]+/);\n formatParts.forEach((f) => {\n const found = Object.values(this._editingParts).find((c) =>\n c.placeholders.some((d) => d == f)\n );\n if (found) {\n found.enabled = true;\n found.placeholder = f;\n }\n });\n },\n });\n }\n\n private _getOrderedParts(): AXDateTimePart[] {\n // TODO: better spliter format\n const formatParts = this.format.split(/[^a-zA-Z]+/);\n const result: AXDateTimePart[] = [];\n formatParts.forEach((f) => {\n const found = Object.values(this._editingParts).find((c) =>\n c.placeholders.some((d) => d == f)\n );\n if (found && found.enabled) result.push(found);\n });\n return result;\n }\n\n private _clearInputBuffer() {\n this._inputChars = [];\n }\n\n private _updateText() {\n let text = this.format;\n //\n Object.values(this._editingParts).forEach((part) => {\n if (this.activePart == part.key) {\n if (part.typedValue)\n text = text.replace(part.placeholder, part.typedValue);\n } else {\n if (part.typedValue != part.placeholder && part.typedValue != null) {\n text = text.replace(part.placeholder, part.realValue());\n }\n }\n });\n this._editingText = text == this.format ? '' : text;\n if (this.activePart) {\n this._highlightActivePart();\n }\n }\n\n override internalSetValue(value?: Date) {\n if (value) {\n let editingDate = this.calendarService.create(value, this.type);\n let applyChanges = false;\n Object.values(this._editingParts).forEach((part) => {\n if (!part.enabled) {\n editingDate = editingDate.set(part.key as TimeUnit, part.default);\n applyChanges = true;\n }\n });\n if (applyChanges) {\n return editingDate.date;\n }\n }\n return value;\n }\n\n override internalValueChanged(value?: Date): void {\n if (value) {\n this._editingDateObj = this.calendarService.create(value, this.type);\n }\n Object.values(this._editingParts).forEach((part) => {\n if (value) {\n if (part.typedValue != part.placeholder)\n part.typedValue = part.realValue();\n } else part.typedValue = null;\n });\n this._updateText();\n }\n\n @HostListener('keydown', ['$event'])\n _handleOnKeydownEvent(e: KeyboardEvent) {\n const ignore = () => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n const input = e.target as HTMLInputElement;\n //\n const orderedParts = this._getOrderedParts();\n const part = this.activePart\n ? this._editingParts[this.activePart]\n : orderedParts[0];\n const nextPart = part ? orderedParts[orderedParts.indexOf(part) + 1] : null;\n const prevPart = part ? orderedParts[orderedParts.indexOf(part) - 1] : null;\n //\n const goNext = () => {\n this._clearInputBuffer();\n if (nextPart) {\n this.activePart = nextPart.key;\n this._highlightActivePart();\n }\n };\n const goPrev = () => {\n this._clearInputBuffer();\n if (prevPart) {\n this.activePart = prevPart.key;\n this._highlightActivePart();\n }\n };\n /*************** Handle Left and Right **************/\n if (e.code === 'ArrowRight' || e.code === 'ArrowLeft') {\n ignore();\n e.code === 'ArrowRight' ? goNext() : goPrev();\n } else if ((e.code === 'ArrowUp' || e.code === 'ArrowDown') && !e.ctrlKey) {\n /*************** Handle Up and Down **************/\n if (this.disabled || this.readonly) {\n ignore();\n return;\n } else {\n ignore();\n const sign = e.code === 'ArrowUp' ? +1 : -1;\n this.activePart = part.key;\n let newVal: AXDateTime = this.editingDateObj.add(part.key, sign);\n this._editingParts[part.key].typedValue = newVal.format(\n this._editingParts[part.key].placeholder\n );\n this._editingDateObj = newVal;\n this._detectValueChanges();\n }\n } else if (e.code == 'Backspace' || e.code == 'Delete') {\n /*************** Handle Backspace **************/\n if (this.disabled || this.readonly) {\n return;\n }\n if (input.value) {\n ignore();\n this._editingParts[part.key].typedValue =\n this._editingParts[part.key].placeholder;\n this._detectValueChanges();\n goPrev();\n }\n } else if (e.code == 'Tab' || e.code == 'Space') {\n /*************** Handle Backspace **************/\n if (input.value) {\n if (!e.shiftKey && nextPart) {\n ignore();\n goNext();\n } else if (e.shiftKey && prevPart) {\n ignore();\n goPrev();\n }\n }\n } else if (e.key?.trim() && !isNaN(Number(e.key))) {\n ignore();\n if (this.disabled || this.readonly) {\n return;\n }\n let next = false;\n const editing = this._editingParts[part.key];\n //\n switch (part.key) {\n case 'year': {\n if (editing.placeholder.length == 2 && this._inputChars.length == 0) {\n this._inputChars.push(\n ...this.calendarService\n .now(this.type)\n .format('yyyy')\n .substring(0, 2)\n .split('')\n );\n }\n if (this._inputChars.length < 4) {\n editing.typedValue = `${this._inputChars.join('')}${e.key}`;\n this._inputChars.push(e.key);\n if (this._inputChars.length > 3) {\n next = true;\n }\n } else {\n next = true;\n }\n editing.typedValue = ('0000' + editing.typedValue).slice(-4);\n const nv = parseInt(editing.typedValue);\n //if (nv > 0) {\n const newVal = this.editingDateObj.set('year', nv);\n this._editingDateObj = newVal;\n this._detectValueChanges();\n //}\n break;\n }\n case 'month': {\n if (this._inputChars.length == 0) {\n this._inputChars.push(e.key);\n editing.typedValue = `0${e.key}`;\n if (parseInt(e.key) > 1) {\n this._clearInputBuffer();\n next = true;\n }\n } else if (this._inputChars.length == 1) {\n const newStr = parseInt(`${this._inputChars[0]}${e.key}`);\n if (newStr > 12) {\n editing.typedValue = `0${e.key}`;\n } else {\n editing.typedValue = newStr.toString();\n }\n this._clearInputBuffer();\n next = true;\n }\n editing.typedValue =\n editing.typedValue?.length === 1\n ? '0' + editing.typedValue\n : editing.typedValue;\n const nv = parseInt(editing.typedValue);\n if (nv > 0) {\n const newVal = this.editingDateObj.set(part.key, nv);\n this._editingDateObj = newVal;\n this._detectValueChanges();\n }\n break;\n }\n case 'day': {\n if (this._inputChars.length == 0) {\n this._inputChars.push(e.key);\n editing.typedValue = `0${e.key}`;\n if (parseInt(e.key) > 3) {\n this._clearInputBuffer();\n next = true;\n }\n } else if (this._inputChars.length == 1) {\n const newStr = parseInt(`${this._inputChars[0]}${e.key}`);\n if (newStr > this._editingDateObj.month.totalDays) {\n editing.typedValue = `0${e.key}`;\n } else {\n editing.typedValue = newStr.toString();\n }\n this._clearInputBuffer();\n next = true;\n }\n editing.typedValue =\n editing.typedValue?.length === 1\n ? '0' + editing.typedValue\n : editing.typedValue;\n const nv = parseInt(editing.typedValue);\n if (nv > 0) {\n const newVal = this.editingDateObj.set(part.key, nv);\n this._editingDateObj = newVal;\n this._detectValueChanges();\n }\n break;\n }\n case 'hour': {\n if (this._inputChars.length == 0) {\n this._inputChars.push(e.key);\n editing.typedValue = `0${e.key}`;\n if (parseInt(e.key) > 2) {\n next = true;\n }\n } else if (this._inputChars.length == 1) {\n const newStr = parseInt(`${this._inputChars[0]}${e.key}`);\n if (newStr > 23) {\n editing.typedValue = `0${e.key}`;\n } else {\n editing.typedValue = newStr.toString();\n }\n next = true;\n }\n editing.typedValue =\n editing.typedValue?.length === 1\n ? '0' + editing.typedValue\n : editing.typedValue;\n const newVal = this.editingDateObj.set(\n 'hour',\n parseInt(editing.typedValue)\n );\n this._editingDateObj = newVal;\n this._detectValueChanges();\n break;\n }\n case 'minute':\n case 'second':\n if (this._inputChars.length == 0) {\n this._inputChars.push(e.key);\n editing.typedValue = `0${e.key}`;\n if (parseInt(e.key) > 5) {\n this._clearInputBuffer();\n next = true;\n }\n } else if (this._inputChars.length == 1) {\n const newStr = parseInt(`${this._inputChars[0]}${e.key}`);\n if (newStr > 59) {\n editing.typedValue = `0${e.key}`;\n } else {\n editing.typedValue = newStr.toString();\n }\n this._clearInputBuffer();\n next = true;\n }\n editing.typedValue =\n editing.typedValue?.length === 1\n ? '0' + editing.typedValue\n : editing.typedValue;\n const newVal = this.editingDateObj.set(\n part.key,\n parseInt(editing.typedValue)\n );\n this._editingDateObj = newVal;\n this._detectValueChanges();\n break;\n default:\n }\n if (next) {\n goNext();\n return;\n }\n }\n /*************** Emit Event **************/\n super.emitOnKeydownEvent(e);\n }\n\n @HostListener('keyup', ['$event'])\n _handleKeyUpEvent(e: KeyboardEvent) {\n if (this.activePart) {\n this._highlightActivePart();\n }\n }\n\n protected _handleFocusEvent(e: FocusEvent) {\n //this._highlightActivePart();\n super.emitOnFocusEvent(e);\n }\n\n protected _handleBlurEvent(e: FocusEvent) {\n super.emitOnBlurEvent(e);\n }\n\n protected _handleOnInputClickEvent(e: MouseEvent): void {\n setTimeout(() => {\n this._detectPartAtPosition();\n }, 0);\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n\n private _detectPartAtPosition(): void {\n const input = this.input.nativeElement;\n if (!input.value) return;\n const sStart = input.selectionEnd || 0;\n const re = /[a-zA-Z0-9]+/gi;\n const valueParts = Array.from(input.value.matchAll(re));\n const orderedParts = this._getOrderedParts();\n const index = valueParts.findIndex(\n (c: any) => c.index <= sStart && c.index + c[0].length >= sStart\n );\n this.activePart = orderedParts[index].key;\n this._highlightActivePart();\n }\n\n private _highlightActivePart(): void {\n const input = this.input?.nativeElement;\n if (!input || !input.value || !this.activePart) return;\n const orderedParts = this._getOrderedParts();\n const index = orderedParts.findIndex((c) => c.key == this.activePart);\n const re = /[a-zA-Z0-9]+/gi;\n const valueParts = Array.from(input.value.matchAll(re));\n const { start, end } = AXStringUtil.getWordBoundsAtPosition(\n input.value,\n valueParts[index]?.index\n );\n input.setSelectionRange(start, end);\n }\n\n private _detectValueChanges() {\n this.commitValue(this._editingDateObj.date, true);\n }\n}\n","<input #input id=\"input\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" class=\"ax-input\"\n type=\"text\" [attr.placeholder]=\"placeholder\" [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"true\" [ngModel]=\"_editingText\"\n (mouseup)=\"_handleOnInputClickEvent($event)\" (blur)=\"_handleBlurEvent($event)\" (focus)=\"_handleFocusEvent($event)\">\n<ng-content select=\"ax-validation-rule\">\n</ng-content>","import { AXDateTimeModule } from '@acorex/core/date-time';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXDateTimeInputComponent } from './datetime-input.component';\n\nconst COMPONENT = [AXDateTimeInputComponent];\nconst MODULES = [CommonModule, FormsModule, AXDateTimeModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXDateTimeInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-datetime-input.mjs","sources":["../../../../libs/components/datetime-input/src/lib/datetime-input.component.ts","../../../../libs/components/datetime-input/src/lib/datetime-input.component.html","../../../../libs/components/datetime-input/src/lib/datetime-input.module.ts","../../../../libs/components/datetime-input/src/acorex-components-datetime-input.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXClickEvent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n} from '@acorex/components/common';\nimport { AXCalendarService, AXDateTime, AXDateTimePart, AXDateTimeParts, TimeUnit } from '@acorex/core/date-time';\nimport { AXStringUtil } from '@acorex/core/utils';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n inject,\n input,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'ax-datetime-input',\n templateUrl: './datetime-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id'],\n host: { class: 'ax-editor-input' },\n outputs: ['valueChange', 'stateChange', 'onValueChanged', 'onBlur', 'onFocus', 'onClick', 'readonlyChange', 'disabledChange'],\n providers: [\n { provide: AXComponent, useExisting: AXDateTimeInputComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimeInputComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimeInputComponent },\n { provide: AXClearableComponent, useExisting: AXDateTimeInputComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimeInputComponent),\n multi: true,\n },\n ],\n})\nexport class AXDateTimeInputComponent extends MXInputBaseValueComponent<Date> {\n private calendarService: AXCalendarService = inject(AXCalendarService);\n\n private _editingParts: AXDateTimeParts = {\n year: {\n key: 'year',\n placeholder: 'yyyy',\n placeholders: ['YY', 'yy', 'YYYY', 'yyyy'],\n enabled: false,\n default: 2023,\n typedValue: null,\n realValue: () => this.editingDateObj.format(this._editingParts.year.placeholder),\n },\n month: {\n key: 'month',\n placeholder: 'MM',\n placeholders: ['MMM', 'MMMM', 'MM', 'M'],\n enabled: false,\n default: 1,\n typedValue: null,\n realValue: () => this.editingDateObj.format(this._editingParts.month.placeholder),\n },\n day: {\n key: 'day',\n placeholder: 'dd',\n placeholders: ['dd', 'd', 'DDDD', 'DDD'],\n enabled: false,\n default: 1,\n typedValue: null,\n realValue: () => this.editingDateObj.format(this._editingParts.day.placeholder),\n },\n hour: {\n key: 'hour',\n placeholder: 'HH',\n placeholders: ['HH', 'H', 'hh', 'h'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () => this.editingDateObj.format(this._editingParts.hour.placeholder),\n },\n minute: {\n key: 'minute',\n placeholder: 'mm',\n placeholders: ['mm', 'm'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () => this.editingDateObj.format(this._editingParts.minute.placeholder),\n },\n second: {\n key: 'second',\n placeholder: 'ss',\n placeholders: ['ss', 's'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () => this.editingDateObj.format(this._editingParts.second.placeholder),\n },\n };\n\n protected _editingText: string;\n protected _inputChars: string[] = [];\n\n private _type: string = this.calendarService.calendar.name();\n\n allowTyping = input<boolean>(false);\n\n @Input()\n public get type(): string {\n return this._type || this.calendarService.calendar.name();\n }\n public set type(v: string) {\n this.setOption({\n name: 'type',\n value: v,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n private _activePart = 'hour';\n public get activePart(): string {\n return this._activePart;\n }\n public set activePart(v: string) {\n this._activePart = v;\n this._clearInputBuffer();\n }\n\n private _editingDateObj: AXDateTime = this.calendarService.now(this.type);\n private get editingDateObj(): AXDateTime {\n return this._editingDateObj;\n }\n\n @ViewChild('input')\n input: ElementRef<HTMLInputElement>;\n\n private _minValue: Date;\n @Input()\n public get minValue(): Date {\n return this._minValue;\n }\n public set minValue(v: Date) {\n this._minValue = v;\n }\n\n private _maxValue: Date;\n @Input()\n public get maxValue(): Date {\n return this._maxValue;\n }\n public set maxValue(v: Date) {\n this._maxValue = v;\n }\n\n @Output()\n formatChange = new EventEmitter<string>();\n\n @Output()\n onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n private _format = this.calendarService.calendar.formats.dateTimeInput;\n @Input()\n public get format(): string {\n return this._format;\n }\n public set format(v: string) {\n this.setOption({\n name: 'format',\n value: v,\n afterCallback: (o, n) => {\n Object.values(this._editingParts).forEach((e) => {\n e.enabled = false;\n });\n const formatParts = n.split(/[^a-zA-Z]+/);\n formatParts.forEach((f) => {\n const found = Object.values(this._editingParts).find((c) => c.placeholders.some((d) => d == f));\n if (found) {\n found.enabled = true;\n found.placeholder = f;\n }\n });\n },\n });\n }\n\n private _getOrderedParts(): AXDateTimePart[] {\n // TODO: better spliter format\n const formatParts = this.format.split(/[^a-zA-Z]+/);\n const result: AXDateTimePart[] = [];\n formatParts.forEach((f) => {\n const found = Object.values(this._editingParts).find((c) => c.placeholders.some((d) => d == f));\n if (found && found.enabled) result.push(found);\n });\n return result;\n }\n\n private _clearInputBuffer() {\n this._inputChars = [];\n }\n\n private _updateText() {\n let text = this.format;\n //\n Object.values(this._editingParts).forEach((part) => {\n if (this.activePart == part.key) {\n if (part.typedValue) text = text.replace(part.placeholder, part.typedValue);\n } else {\n if (part.typedValue != part.placeholder && part.typedValue != null) {\n text = text.replace(part.placeholder, part.realValue());\n }\n }\n });\n this._editingText = text == this.format ? '' : text;\n if (this.activePart) {\n this._highlightActivePart();\n }\n }\n\n override internalSetValue(value?: Date) {\n if (value) {\n let editingDate = this.calendarService.create(value, this.type);\n let applyChanges = false;\n Object.values(this._editingParts).forEach((part) => {\n if (!part.enabled) {\n editingDate = editingDate.set(part.key as TimeUnit, part.default);\n applyChanges = true;\n }\n });\n if (applyChanges) {\n return editingDate.date;\n }\n }\n return value;\n }\n\n override internalValueChanged(value?: Date): void {\n if (value) {\n this._editingDateObj = this.calendarService.create(value, this.type);\n }\n Object.values(this._editingParts).forEach((part) => {\n if (value) {\n if (part.typedValue != part.placeholder) part.typedValue = part.realValue();\n } else part.typedValue = null;\n });\n this._updateText();\n }\n\n @HostListener('keydown', ['$event'])\n _handleOnKeydownEvent(e: KeyboardEvent) {\n const ignore = () => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n if (!this.allowTyping()) {\n ignore();\n return;\n }\n\n const input = e.target as HTMLInputElement;\n //\n const orderedParts = this._getOrderedParts();\n const part = this.activePart ? this._editingParts[this.activePart] : orderedParts[0];\n const nextPart = part ? orderedParts[orderedParts.indexOf(part) + 1] : null;\n const prevPart = part ? orderedParts[orderedParts.indexOf(part) - 1] : null;\n //\n const goNext = () => {\n this._clearInputBuffer();\n if (nextPart) {\n this.activePart = nextPart.key;\n this._highlightActivePart();\n }\n };\n const goPrev = () => {\n this._clearInputBuffer();\n if (prevPart) {\n this.activePart = prevPart.key;\n this._highlightActivePart();\n }\n };\n /*************** Handle Left and Right **************/\n if (e.code === 'ArrowRight' || e.code === 'ArrowLeft') {\n ignore();\n e.code === 'ArrowRight' ? goNext() : goPrev();\n } else if ((e.code === 'ArrowUp' || e.code === 'ArrowDown') && !e.ctrlKey) {\n /*************** Handle Up and Down **************/\n if (this.disabled || this.readonly) {\n ignore();\n return;\n } else {\n ignore();\n const sign = e.code === 'ArrowUp' ? +1 : -1;\n this.activePart = part.key;\n let newVal: AXDateTime = this.editingDateObj.add(part.key, sign);\n this._editingParts[part.key].typedValue = newVal.format(this._editingParts[part.key].placeholder);\n this._editingDateObj = newVal;\n this._detectValueChanges();\n }\n } else if (e.code == 'Backspace' || e.code == 'Delete') {\n /*************** Handle Backspace **************/\n if (this.disabled || this.readonly) {\n return;\n }\n if (input.value) {\n ignore();\n this._editingParts[part.key].typedValue = this._editingParts[part.key].placeholder;\n this._detectValueChanges();\n goPrev();\n }\n } else if (e.code == 'Tab' || e.code == 'Space') {\n /*************** Handle Backspace **************/\n if (input.value) {\n if (!e.shiftKey && nextPart) {\n ignore();\n goNext();\n } else if (e.shiftKey && prevPart) {\n ignore();\n goPrev();\n }\n }\n // TODO: FiX type in input\n } else if (e.key?.trim() && !isNaN(Number(e.key))) {\n ignore();\n return;\n if (this.disabled || this.readonly) {\n return;\n }\n let next = false;\n const editing = this._editingParts[part.key];\n //\n switch (part.key) {\n case 'year': {\n if (editing.placeholder.length == 2 && this._inputChars.length == 0) {\n this._inputChars.push(...this.calendarService.now(this.type).format('yyyy').substring(0, 2).split(''));\n }\n if (this._inputChars.length < 4) {\n editing.typedValue = `${this._inputChars.join('')}${e.key}`;\n this._inputChars.push(e.key);\n if (this._inputChars.length > 3) {\n next = true;\n }\n } else {\n next = true;\n }\n editing.typedValue = ('0000' + editing.typedValue).slice(-4);\n const nv = parseInt(editing.typedValue);\n //if (nv > 0) {\n const newVal = this.editingDateObj.set('year', nv);\n this._editingDateObj = newVal;\n this._detectValueChanges();\n //}\n break;\n }\n case 'month': {\n if (this._inputChars.length == 0) {\n this._inputChars.push(e.key);\n editing.typedValue = `0${e.key}`;\n if (parseInt(e.key) > 1) {\n this._clearInputBuffer();\n next = true;\n }\n } else if (this._inputChars.length == 1) {\n const newStr = parseInt(`${this._inputChars[0]}${e.key}`);\n if (newStr > 12) {\n editing.typedValue = `0${e.key}`;\n } else {\n editing.typedValue = newStr.toString();\n }\n this._clearInputBuffer();\n next = true;\n }\n editing.typedValue = editing.typedValue?.length === 1 ? '0' + editing.typedValue : editing.typedValue;\n const nv = parseInt(editing.typedValue);\n if (nv > 0) {\n const newVal = this.editingDateObj.set(part.key, nv);\n this._editingDateObj = newVal;\n this._detectValueChanges();\n }\n break;\n }\n case 'day': {\n if (this._inputChars.length == 0) {\n this._inputChars.push(e.key);\n editing.typedValue = `0${e.key}`;\n if (parseInt(e.key) > 3) {\n this._clearInputBuffer();\n next = true;\n }\n } else if (this._inputChars.length == 1) {\n const newStr = parseInt(`${this._inputChars[0]}${e.key}`);\n if (newStr > this._editingDateObj.month.totalDays) {\n editing.typedValue = `0${e.key}`;\n } else {\n editing.typedValue = newStr.toString();\n }\n this._clearInputBuffer();\n next = true;\n }\n editing.typedValue = editing.typedValue?.length === 1 ? '0' + editing.typedValue : editing.typedValue;\n const nv = parseInt(editing.typedValue);\n if (nv > 0) {\n const newVal = this.editingDateObj.set(part.key, nv);\n this._editingDateObj = newVal;\n this._detectValueChanges();\n }\n break;\n }\n case 'hour': {\n if (this._inputChars.length == 0) {\n this._inputChars.push(e.key);\n editing.typedValue = `0${e.key}`;\n if (parseInt(e.key) > 2) {\n next = true;\n }\n } else if (this._inputChars.length == 1) {\n const newStr = parseInt(`${this._inputChars[0]}${e.key}`);\n if (newStr > 23) {\n editing.typedValue = `0${e.key}`;\n } else {\n editing.typedValue = newStr.toString();\n }\n next = true;\n }\n editing.typedValue = editing.typedValue?.length === 1 ? '0' + editing.typedValue : editing.typedValue;\n const newVal = this.editingDateObj.set('hour', parseInt(editing.typedValue));\n this._editingDateObj = newVal;\n this._detectValueChanges();\n break;\n }\n case 'minute':\n case 'second':\n if (this._inputChars.length == 0) {\n this._inputChars.push(e.key);\n editing.typedValue = `0${e.key}`;\n if (parseInt(e.key) > 5) {\n this._clearInputBuffer();\n next = true;\n }\n } else if (this._inputChars.length == 1) {\n const newStr = parseInt(`${this._inputChars[0]}${e.key}`);\n if (newStr > 59) {\n editing.typedValue = `0${e.key}`;\n } else {\n editing.typedValue = newStr.toString();\n }\n this._clearInputBuffer();\n next = true;\n }\n editing.typedValue = editing.typedValue?.length === 1 ? '0' + editing.typedValue : editing.typedValue;\n const newVal = this.editingDateObj.set(part.key, parseInt(editing.typedValue));\n this._editingDateObj = newVal;\n this._detectValueChanges();\n break;\n default:\n }\n if (next) {\n goNext();\n return;\n }\n }\n /*************** Emit Event **************/\n super.emitOnKeydownEvent(e);\n }\n\n @HostListener('keyup', ['$event'])\n _handleKeyUpEvent(e: KeyboardEvent) {\n if (this.activePart) {\n this._highlightActivePart();\n }\n }\n\n protected _handleFocusEvent(e: FocusEvent) {\n //this._highlightActivePart();\n super.emitOnFocusEvent(e);\n }\n\n protected _handleBlurEvent(e: FocusEvent) {\n super.emitOnBlurEvent(e);\n }\n\n protected _handleOnInputClickEvent(e: MouseEvent): void {\n if (this.allowTyping()) {\n setTimeout(() => {\n this._detectPartAtPosition();\n }, 0);\n }\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n\n private _detectPartAtPosition(): void {\n const input = this.input.nativeElement;\n if (!input.value) return;\n const sStart = input.selectionEnd || 0;\n const re = /[a-zA-Z0-9]+/gi;\n const valueParts = Array.from(input.value.matchAll(re));\n const orderedParts = this._getOrderedParts();\n const index = valueParts.findIndex((c: any) => c.index <= sStart && c.index + c[0].length >= sStart);\n this.activePart = orderedParts[index].key;\n this._highlightActivePart();\n }\n\n private _highlightActivePart(): void {\n const input = this.input?.nativeElement;\n if (!input || !input.value || !this.activePart) return;\n const orderedParts = this._getOrderedParts();\n const index = orderedParts.findIndex((c) => c.key == this.activePart);\n const re = /[a-zA-Z0-9]+/gi;\n const valueParts = Array.from(input.value.matchAll(re));\n const { start, end } = AXStringUtil.getWordBoundsAtPosition(input.value, valueParts[index]?.index);\n input.setSelectionRange(start, end);\n }\n\n private _detectValueChanges() {\n this.commitValue(this._editingDateObj.date, true);\n }\n}\n","<input #input id=\"input\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" class=\"ax-input\"\n type=\"text\" [attr.placeholder]=\"placeholder\" [class.ax-state-disabled]=\"disabled\"\n [class.ax-select-none]=\"!allowTyping()\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"true\"\n [ngModel]=\"_editingText\" (mouseup)=\"_handleOnInputClickEvent($event)\" (blur)=\"_handleBlurEvent($event)\"\n (focus)=\"_handleFocusEvent($event)\">\n<ng-content select=\"ax-validation-rule\">\n</ng-content>","import { AXDateTimeModule } from '@acorex/core/date-time';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXDateTimeInputComponent } from './datetime-input.component';\n\nconst COMPONENT = [AXDateTimeInputComponent];\nconst MODULES = [CommonModule, FormsModule, AXDateTimeModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXDateTimeInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AA8CM,MAAO,wBAAyB,SAAQ,yBAA+B,CAAA;AApB7E,IAAA,WAAA,GAAA;;AAqBU,QAAA,IAAA,CAAA,eAAe,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE/D,QAAA,IAAA,CAAA,aAAa,GAAoB;AACvC,YAAA,IAAI,EAAE;AACJ,gBAAA,GAAG,EAAE,MAAM;AACX,gBAAA,WAAW,EAAE,MAAM;gBACnB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AAC1C,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,SAAS,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;AACjF,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,GAAG,EAAE,OAAO;AACZ,gBAAA,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;AACxC,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,SAAS,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC;AAClF,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,GAAG,EAAE,KAAK;AACV,gBAAA,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC;AACxC,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,SAAS,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC;AAChF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,GAAG,EAAE,MAAM;AACX,gBAAA,WAAW,EAAE,IAAI;gBACjB,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;AACpC,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,SAAS,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;AACjF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,QAAQ;AACb,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;AACzB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,SAAS,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC;AACnF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,QAAQ;AACb,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;AACzB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,SAAS,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC;AACnF,aAAA;SACF,CAAC;QAGQ,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;QAE7B,IAAK,CAAA,KAAA,GAAW,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAE7D,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAU,KAAK,CAAC,CAAC;QAgB5B,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC;QASrB,IAAe,CAAA,eAAA,GAAe,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AA2B1E,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;AAG1C,QAAA,IAAA,CAAA,OAAO,GAA+B,IAAI,YAAY,EAAgB,CAAC;QAE/D,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;AAuWvE,KAAA;AA9ZC,IAAA,IACW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KAC3D;IACD,IAAW,IAAI,CAAC,CAAS,EAAA;QACvB,IAAI,CAAC,SAAS,CAAC;AACb,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,CAAC;YACR,aAAa,EAAE,MAAK;AAClB,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aACzB;AACF,SAAA,CAAC,CAAC;KACJ;AAGD,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IACD,IAAW,UAAU,CAAC,CAAS,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;AAGD,IAAA,IAAY,cAAc,GAAA;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;AAMD,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAW,QAAQ,CAAC,CAAO,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;KACpB;AAGD,IAAA,IACW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAW,QAAQ,CAAC,CAAO,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;KACpB;AASD,IAAA,IACW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IACD,IAAW,MAAM,CAAC,CAAS,EAAA;QACzB,IAAI,CAAC,SAAS,CAAC;AACb,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;AACtB,gBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAC9C,oBAAA,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;AACpB,iBAAC,CAAC,CAAC;gBACH,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,gBAAA,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACxB,oBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChG,IAAI,KAAK,EAAE;AACT,wBAAA,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,wBAAA,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;qBACvB;AACH,iBAAC,CAAC,CAAC;aACJ;AACF,SAAA,CAAC,CAAC;KACJ;IAEO,gBAAgB,GAAA;;QAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,MAAM,GAAqB,EAAE,CAAC;AACpC,QAAA,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACxB,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChG,YAAA,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO;AAAE,gBAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC;KACf;IAEO,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACvB;IAEO,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;;AAEvB,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACjD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE;gBAC/B,IAAI,IAAI,CAAC,UAAU;AAAE,oBAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;aAC7E;iBAAM;AACL,gBAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;AAClE,oBAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;iBACzD;aACF;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;AACpD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;KACF;AAEQ,IAAA,gBAAgB,CAAC,KAAY,EAAA;QACpC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChE,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACjD,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,oBAAA,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClE,YAAY,GAAG,IAAI,CAAC;iBACrB;AACH,aAAC,CAAC,CAAC;YACH,IAAI,YAAY,EAAE;gBAChB,OAAO,WAAW,CAAC,IAAI,CAAC;aACzB;SACF;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAEQ,IAAA,oBAAoB,CAAC,KAAY,EAAA;QACxC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SACtE;AACD,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACjD,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW;AAAE,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;aAC7E;;AAAM,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAChC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAGD,IAAA,qBAAqB,CAAC,CAAgB,EAAA;QACpC,MAAM,MAAM,GAAG,MAAK;YAClB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;AACtB,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AACvB,YAAA,MAAM,EAAE,CAAC;YACT,OAAO;SACR;AAED,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAC;;AAE3C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAG,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;;QAE5E,MAAM,MAAM,GAAG,MAAK;YAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;AACH,SAAC,CAAC;QACF,MAAM,MAAM,GAAG,MAAK;YAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;AACH,SAAC,CAAC;;AAEF,QAAA,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;AACrD,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,CAAC,CAAC,IAAI,KAAK,YAAY,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;SAC/C;AAAM,aAAA,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE;;YAEzE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClC,gBAAA,MAAM,EAAE,CAAC;gBACT,OAAO;aACR;iBAAM;AACL,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;AAC3B,gBAAA,IAAI,MAAM,GAAe,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACjE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AAClG,gBAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5B;SACF;AAAM,aAAA,IAAI,CAAC,CAAC,IAAI,IAAI,WAAW,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE;;YAEtD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClC,OAAO;aACR;AACD,YAAA,IAAI,KAAK,CAAC,KAAK,EAAE;AACf,gBAAA,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;gBACnF,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,gBAAA,MAAM,EAAE,CAAC;aACV;SACF;AAAM,aAAA,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,EAAE;;AAE/C,YAAA,IAAI,KAAK,CAAC,KAAK,EAAE;AACf,gBAAA,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,EAAE;AAC3B,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,MAAM,EAAE,CAAC;iBACV;AAAM,qBAAA,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,EAAE;AACjC,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,MAAM,EAAE,CAAC;iBACV;aACF;;SAEF;AAAM,aAAA,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;AACjD,YAAA,MAAM,EAAE,CAAC;YACT,OAAO;YACP,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClC,OAAO;aACR;YACD,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;AAE7C,YAAA,QAAQ,IAAI,CAAC,GAAG;gBACd,KAAK,MAAM,EAAE;AACX,oBAAA,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;AACnE,wBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;qBACxG;oBACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,wBAAA,OAAO,CAAC,UAAU,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,EAAG,CAAC,CAAC,GAAG,EAAE,CAAC;wBAC5D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC/B,IAAI,GAAG,IAAI,CAAC;yBACb;qBACF;yBAAM;wBACL,IAAI,GAAG,IAAI,CAAC;qBACb;AACD,oBAAA,OAAO,CAAC,UAAU,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7D,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;AAExC,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACnD,oBAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;oBAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;;oBAE3B,MAAM;iBACP;gBACD,KAAK,OAAO,EAAE;oBACZ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;wBAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC7B,OAAO,CAAC,UAAU,GAAG,CAAA,CAAA,EAAI,CAAC,CAAC,GAAG,EAAE,CAAC;wBACjC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;4BACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BACzB,IAAI,GAAG,IAAI,CAAC;yBACb;qBACF;yBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,wBAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAG,EAAA,CAAC,CAAC,GAAG,CAAA,CAAE,CAAC,CAAC;AAC1D,wBAAA,IAAI,MAAM,GAAG,EAAE,EAAE;4BACf,OAAO,CAAC,UAAU,GAAG,CAAA,CAAA,EAAI,CAAC,CAAC,GAAG,EAAE,CAAC;yBAClC;6BAAM;AACL,4BAAA,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;yBACxC;wBACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzB,IAAI,GAAG,IAAI,CAAC;qBACb;oBACD,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;oBACtG,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACxC,oBAAA,IAAI,EAAE,GAAG,CAAC,EAAE;AACV,wBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrD,wBAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;wBAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;qBAC5B;oBACD,MAAM;iBACP;gBACD,KAAK,KAAK,EAAE;oBACV,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;wBAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC7B,OAAO,CAAC,UAAU,GAAG,CAAA,CAAA,EAAI,CAAC,CAAC,GAAG,EAAE,CAAC;wBACjC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;4BACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BACzB,IAAI,GAAG,IAAI,CAAC;yBACb;qBACF;yBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,wBAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAG,EAAA,CAAC,CAAC,GAAG,CAAA,CAAE,CAAC,CAAC;wBAC1D,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE;4BACjD,OAAO,CAAC,UAAU,GAAG,CAAA,CAAA,EAAI,CAAC,CAAC,GAAG,EAAE,CAAC;yBAClC;6BAAM;AACL,4BAAA,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;yBACxC;wBACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzB,IAAI,GAAG,IAAI,CAAC;qBACb;oBACD,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;oBACtG,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACxC,oBAAA,IAAI,EAAE,GAAG,CAAC,EAAE;AACV,wBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrD,wBAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;wBAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;qBAC5B;oBACD,MAAM;iBACP;gBACD,KAAK,MAAM,EAAE;oBACX,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;wBAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC7B,OAAO,CAAC,UAAU,GAAG,CAAA,CAAA,EAAI,CAAC,CAAC,GAAG,EAAE,CAAC;wBACjC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;4BACvB,IAAI,GAAG,IAAI,CAAC;yBACb;qBACF;yBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,wBAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAG,EAAA,CAAC,CAAC,GAAG,CAAA,CAAE,CAAC,CAAC;AAC1D,wBAAA,IAAI,MAAM,GAAG,EAAE,EAAE;4BACf,OAAO,CAAC,UAAU,GAAG,CAAA,CAAA,EAAI,CAAC,CAAC,GAAG,EAAE,CAAC;yBAClC;6BAAM;AACL,4BAAA,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;yBACxC;wBACD,IAAI,GAAG,IAAI,CAAC;qBACb;oBACD,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;AACtG,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7E,oBAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;oBAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,MAAM;iBACP;AACD,gBAAA,KAAK,QAAQ,CAAC;AACd,gBAAA,KAAK,QAAQ;oBACX,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;wBAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC7B,OAAO,CAAC,UAAU,GAAG,CAAA,CAAA,EAAI,CAAC,CAAC,GAAG,EAAE,CAAC;wBACjC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;4BACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BACzB,IAAI,GAAG,IAAI,CAAC;yBACb;qBACF;yBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,wBAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAG,EAAA,CAAC,CAAC,GAAG,CAAA,CAAE,CAAC,CAAC;AAC1D,wBAAA,IAAI,MAAM,GAAG,EAAE,EAAE;4BACf,OAAO,CAAC,UAAU,GAAG,CAAA,CAAA,EAAI,CAAC,CAAC,GAAG,EAAE,CAAC;yBAClC;6BAAM;AACL,4BAAA,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;yBACxC;wBACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzB,IAAI,GAAG,IAAI,CAAC;qBACb;oBACD,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;AACtG,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/E,oBAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;oBAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC3B,MAAM;gBACR,QAAQ;aACT;YACD,IAAI,IAAI,EAAE;AACR,gBAAA,MAAM,EAAE,CAAC;gBACT,OAAO;aACR;SACF;;AAED,QAAA,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;KAC7B;AAGD,IAAA,iBAAiB,CAAC,CAAgB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;KACF;AAES,IAAA,iBAAiB,CAAC,CAAa,EAAA;;AAEvC,QAAA,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;KAC3B;AAES,IAAA,gBAAgB,CAAC,CAAa,EAAA;AACtC,QAAA,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;KAC1B;AAES,IAAA,wBAAwB,CAAC,CAAa,EAAA;AAC9C,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B,EAAE,CAAC,CAAC,CAAC;SACP;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;AAClC,YAAA,WAAW,EAAE,CAAC;AACf,SAAA,CAAC,CAAC;KACJ;IAEO,qBAAqB,GAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO;AACzB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,gBAAgB,CAAC;AAC5B,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7C,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC;QACrG,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;QAC1C,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAEO,oBAAoB,GAAA;AAC1B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC;QACxC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;AACvD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7C,QAAA,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QACtE,MAAM,EAAE,GAAG,gBAAgB,CAAC;AAC5B,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AACnG,QAAA,KAAK,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACrC;IAEO,mBAAmB,GAAA;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACnD;8GAheU,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAZxB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,+BAAA,EAAA,OAAA,EAAA,2BAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB,EAAE;AAC/D,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,wBAAwB,EAAE;AACxE,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,wBAAwB,EAAE;AACvE,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,wBAAwB,EAAE;AACxE,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AACvD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5CH,6jBAMa,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDwCA,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBApBpC,SAAS;+BACE,mBAAmB,EAAA,eAAA,EAEZ,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAC7B,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EACrF,IAAA,EAAA,EAAE,KAAK,EAAE,iBAAiB,EAAE,EACzB,OAAA,EAAA,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,EAClH,SAAA,EAAA;AACT,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,0BAA0B,EAAE;AAC/D,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,0BAA0B,EAAE;AACxE,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,0BAA0B,EAAE;AACvE,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,0BAA0B,EAAE;AACxE,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,8BAA8B,CAAC;AACvD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,6jBAAA,EAAA,CAAA;8BAsEU,IAAI,EAAA,CAAA;sBADd,KAAK;gBA6BN,KAAK,EAAA,CAAA;sBADJ,SAAS;uBAAC,OAAO,CAAA;gBAKP,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAUK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBASN,YAAY,EAAA,CAAA;sBADX,MAAM;gBAIP,OAAO,EAAA,CAAA;sBADN,MAAM;gBAKI,MAAM,EAAA,CAAA;sBADhB,KAAK;gBAuFN,qBAAqB,EAAA,CAAA;sBADpB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBA0NnC,iBAAiB,EAAA,CAAA;sBADhB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AEldnC,MAAM,SAAS,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAC7C,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;MAQjD,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAArB,qBAAqB,EAAA,YAAA,EAAA,CATf,wBAAwB,CAC1B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,gBAAgB,CAAA,EAAA,OAAA,EAAA,CADzC,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAS9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAJnB,OAAO,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIT,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;AAC5B,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;AACrB,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACvB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;ACdD;;AAEG;;;;"}
|