@acorex/components 19.13.4 → 19.13.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/calendar/lib/calendar.component.d.ts +4 -0
- package/common/index.d.ts +1 -0
- package/common/lib/directives/copy-clipboard.directive.d.ts +40 -0
- package/common/lib/services/hotkey.service.d.ts +1 -1
- package/datetime-box/lib/datetime-box.component.d.ts +4 -3
- package/fesm2022/acorex-components-action-sheet.mjs +10 -10
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +7 -7
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +7 -7
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs +7 -7
- package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +10 -10
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +7 -7
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +10 -10
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +13 -13
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +24 -14
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +7 -7
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +7 -7
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +7 -7
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-collapse.mjs +10 -10
- package/fesm2022/acorex-components-collapse.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +25 -10
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +25 -25
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +28 -28
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +170 -99
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +49 -49
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +46 -46
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +31 -31
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +37 -37
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +19 -12
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +7 -7
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +7 -7
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +27 -27
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +10 -10
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +13 -13
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +7 -7
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +13 -13
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-file-explorer.mjs +25 -25
- package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
- package/fesm2022/acorex-components-flow-chart.mjs +16 -16
- package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +16 -16
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +34 -34
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +7 -7
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +7 -7
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +10 -10
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +7 -7
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +9 -9
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +10 -10
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +16 -16
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +10 -10
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +34 -34
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +16 -16
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-B4nBGqa3.mjs → acorex-components-modal-acorex-components-modal-C83n2Gqn.mjs} +21 -21
- package/fesm2022/{acorex-components-modal-acorex-components-modal-B4nBGqa3.mjs.map → acorex-components-modal-acorex-components-modal-C83n2Gqn.mjs.map} +1 -1
- package/fesm2022/{acorex-components-modal-modal-content.component-oWerCvDI.mjs → acorex-components-modal-modal-content.component-YrM5Oi9b.mjs} +5 -5
- package/fesm2022/{acorex-components-modal-modal-content.component-oWerCvDI.mjs.map → acorex-components-modal-modal-content.component-YrM5Oi9b.mjs.map} +1 -1
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs +7 -7
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +10 -10
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +7 -7
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +7 -7
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +10 -10
- package/fesm2022/acorex-components-page.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +25 -25
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +10 -10
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +7 -7
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +13 -13
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +7 -7
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +10 -10
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +7 -7
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +7 -7
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +8 -8
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +7 -7
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +13 -13
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +7 -7
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +7 -7
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +7 -7
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +7 -7
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +910 -381
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-scss.mjs +4 -4
- package/fesm2022/acorex-components-scss.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +7 -7
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +24 -12
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +7 -7
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +13 -13
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +7 -7
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +7 -7
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-sliding-item.mjs +13 -13
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +13 -13
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +10 -10
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +13 -13
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +7 -7
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +7 -7
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +7 -7
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +10 -10
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +247 -0
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -0
- package/fesm2022/acorex-components-time-line.mjs +10 -10
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +10 -10
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +7 -7
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +10 -10
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +10 -10
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +22 -22
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-video-player.mjs +7 -7
- package/fesm2022/acorex-components-video-player.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +31 -31
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/package.json +5 -1
- package/scheduler/lib/scheduler.class.d.ts +13 -3
- package/scheduler/lib/scheduler.component.d.ts +5 -3
- package/scheduler/lib/scheduler.service.d.ts +13 -6
- package/scheduler/lib/views/agenda/scheduler-agenda-view.component.d.ts +12 -6
- package/scheduler/lib/views/day/scheduler-day-view.component.d.ts +9 -4
- package/scheduler/lib/views/month/scheduler-month-view.component.d.ts +16 -8
- package/scheduler/lib/views/timeline-day/scheduler-timeline-day-view.component.d.ts +12 -4
- package/scheduler/lib/views/timeline-month/scheduler-timeline-month-view.component.d.ts +11 -10
- package/scheduler/lib/views/timeline-multi-day/scheduler-timeline-multi-day-view.component.d.ts +8 -3
- package/scheduler/lib/views/week/scheduler-week-view.component.d.ts +24 -7
- package/time-duration/README.md +3 -0
- package/time-duration/index.d.ts +3 -0
- package/time-duration/lib/time-duration.component.d.ts +29 -0
- package/time-duration/lib/time-duration.module.d.ts +7 -0
- package/time-duration/lib/time-duration.type.d.ts +1 -0
@@ -26,8 +26,8 @@ class AXTextAreaComponent extends classes((MXInputBaseValueComponent), MXLookCom
|
|
26
26
|
_handleModelChange(value) {
|
27
27
|
this.commitValue(value, true);
|
28
28
|
}
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTextAreaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AXTextAreaComponent, isStandalone: true, selector: "ax-text-area", inputs: { disabled: "disabled", tabIndex: "tabIndex", readonly: "readonly", value: "value", state: "state", name: "name", placeholder: "placeholder", maxLength: "maxLength", look: "look", rows: "rows", allowResize: "allowResize", showCounter: "showCounter", classNames: ["class", "classNames"] }, outputs: { onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress" }, providers: [
|
31
31
|
{ provide: AXComponent, useExisting: AXTextAreaComponent },
|
32
32
|
{ provide: AXFocusableComponent, useExisting: AXTextAreaComponent },
|
33
33
|
{ provide: AXClearableComponent, useExisting: AXTextAreaComponent },
|
@@ -39,7 +39,7 @@ class AXTextAreaComponent extends classes((MXInputBaseValueComponent), MXLookCom
|
|
39
39
|
},
|
40
40
|
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-editor-container {{ classNames }} ax-{{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <textarea\n #input\n [id]=\"id\"\n [name]=\"name\"\n type=\"text\"\n [rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.maxlength]=\"maxLength\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [class.ax-state-no-resizing]=\"!allowResize\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n ></textarea>\n @if (showCounter) {\n <div class=\"ax-counter\">\n {{ input.value.length }}\n @if (maxLength) {\n <span>/ {{ maxLength }}</span>\n }\n </div>\n }\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-text-area{height:auto!important;width:100%;border-radius:var(--ax-comp-editor-border-radius)}ax-text-area .ax-editor-container{--ax-comp-editor-height: auto;padding:0}ax-text-area textarea{height:fit-content;width:100%;background-color:inherit;padding-block:var(--ax-comp-editor-space-block-size);padding-inline-start:var(--ax-comp-editor-space-start-size);padding-inline-end:var(--ax-comp-editor-space-end-size);font-size:.875rem;line-height:1.625}ax-text-area textarea:focus-visible,ax-text-area textarea:focus{outline:none}ax-text-area textarea.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-text-area textarea.ax-state-no-resizing{resize:none}ax-text-area>ax-prefix,ax-text-area>ax-suffix{margin-bottom:.5rem;padding:.75rem}ax-text-area .ax-counter{position:absolute;bottom:.25rem;inset-inline-end:.5rem;color:rgb(var(--ax-sys-body-text-color),.5)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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 }); }
|
41
41
|
}
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTextAreaComponent, decorators: [{
|
43
43
|
type: Component,
|
44
44
|
args: [{ selector: 'ax-text-area', inputs: ['disabled', 'tabIndex', 'readonly', 'value', 'state', 'name', 'placeholder', 'maxLength', 'look'], outputs: ['onBlur', 'onFocus', 'valueChange', 'stateChange', 'onValueChanged', 'readonlyChange', 'disabledChange', 'onKeyDown', 'onKeyUp', 'onKeyPress'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
45
45
|
{ provide: AXComponent, useExisting: AXTextAreaComponent },
|
@@ -69,11 +69,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
69
69
|
}] } });
|
70
70
|
|
71
71
|
class AXTextAreaModule {
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
73
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
74
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
72
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTextAreaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
73
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.10", ngImport: i0, type: AXTextAreaModule, imports: [CommonModule, FormsModule, AXTextAreaComponent], exports: [AXTextAreaComponent] }); }
|
74
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTextAreaModule, imports: [CommonModule, FormsModule, AXTextAreaComponent] }); }
|
75
75
|
}
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTextAreaModule, decorators: [{
|
77
77
|
type: NgModule,
|
78
78
|
args: [{
|
79
79
|
imports: [CommonModule, FormsModule, AXTextAreaComponent],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-text-area.mjs","sources":["../../../../libs/components/text-area/src/lib/text-area.component.ts","../../../../libs/components/text-area/src/lib/text-area.component.html","../../../../libs/components/text-area/src/lib/text-area.module.ts","../../../../libs/components/text-area/src/acorex-components-text-area.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/components/common';\n\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * @category\n * This component provides the main scheduler functionality, integrating various views and handling scheduling operations.\n */\n@Component({\n selector: 'ax-text-area',\n templateUrl: './text-area.component.html',\n styleUrls: ['./text-area.component.scss'],\n inputs: ['disabled', 'tabIndex', 'readonly', 'value', 'state', 'name', 'placeholder', 'maxLength', 'look'],\n outputs: ['onBlur', 'onFocus', 'valueChange', 'stateChange', 'onValueChanged', 'readonlyChange', 'disabledChange', 'onKeyDown', 'onKeyUp', 'onKeyPress'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: AXComponent, useExisting: AXTextAreaComponent },\n { provide: AXFocusableComponent, useExisting: AXTextAreaComponent },\n { provide: AXClearableComponent, useExisting: AXTextAreaComponent },\n { provide: AXValuableComponent, useExisting: AXTextAreaComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXTextAreaComponent),\n multi: true,\n },\n ],\n imports: [FormsModule],\n})\nexport class AXTextAreaComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n /** @ignore */\n @ViewChild('input')\n input: ElementRef<HTMLInputElement>;\n\n /**\n * Specifies the number of rows for the component, typically used for configuring the size of a text area or similar input field.\n */\n @Input()\n rows = 0;\n\n /**\n * Indicates whether the component allows resizing.\n */\n @Input()\n allowResize = true;\n\n /**\n * Determines whether a counter is displayed in the component.\n */\n @Input()\n public showCounter: boolean;\n\n /**\n * Specifies the maximum number of characters allowed in the input field.\n */\n @Input()\n public maxLength: number;\n\n /**\n * CSS classes to apply to the component.\n */\n @Input('class')\n classNames: string;\n\n /** @ignore */\n protected _handleModelChange(value: string | null) {\n this.commitValue(value, true);\n }\n\n // @HostBinding('class')\n // get __hostClass(): string[] {\n // return [\n // 'ax-editor-container',\n // `ax-${this.look}`,\n // `${this.disabled ? 'ax-state-disabled' : ''}`,\n // this.classNames,\n // ];\n // }\n}\n","<div\n class=\"ax-editor-container {{ classNames }} ax-{{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <textarea\n #input\n [id]=\"id\"\n [name]=\"name\"\n type=\"text\"\n [rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.maxlength]=\"maxLength\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [class.ax-state-no-resizing]=\"!allowResize\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n ></textarea>\n @if (showCounter) {\n <div class=\"ax-counter\">\n {{ input.value.length }}\n @if (maxLength) {\n <span>/ {{ maxLength }}</span>\n }\n </div>\n }\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXTextAreaComponent } from './text-area.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, AXTextAreaComponent],\n exports: [AXTextAreaComponent],\n})\nexport class AXTextAreaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAaA;;;AAGG;AAsBG,MAAO,mBAAoB,SAAQ,OAAO,EAAC,yBAAiC,GAAE,eAAe,CAAC,CAAA;AArBpG,IAAA,WAAA,GAAA;;AA0BE;;AAEG;QAEH,IAAI,CAAA,IAAA,GAAG,CAAC;AAER;;AAEG;QAEH,IAAW,CAAA,WAAA,GAAG,IAAI;AAkCnB;;AAbW,IAAA,kBAAkB,CAAC,KAAoB,EAAA;AAC/C,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC
|
1
|
+
{"version":3,"file":"acorex-components-text-area.mjs","sources":["../../../../libs/components/text-area/src/lib/text-area.component.ts","../../../../libs/components/text-area/src/lib/text-area.component.html","../../../../libs/components/text-area/src/lib/text-area.module.ts","../../../../libs/components/text-area/src/acorex-components-text-area.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/components/common';\n\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, ViewEncapsulation, forwardRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * @category\n * This component provides the main scheduler functionality, integrating various views and handling scheduling operations.\n */\n@Component({\n selector: 'ax-text-area',\n templateUrl: './text-area.component.html',\n styleUrls: ['./text-area.component.scss'],\n inputs: ['disabled', 'tabIndex', 'readonly', 'value', 'state', 'name', 'placeholder', 'maxLength', 'look'],\n outputs: ['onBlur', 'onFocus', 'valueChange', 'stateChange', 'onValueChanged', 'readonlyChange', 'disabledChange', 'onKeyDown', 'onKeyUp', 'onKeyPress'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: AXComponent, useExisting: AXTextAreaComponent },\n { provide: AXFocusableComponent, useExisting: AXTextAreaComponent },\n { provide: AXClearableComponent, useExisting: AXTextAreaComponent },\n { provide: AXValuableComponent, useExisting: AXTextAreaComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXTextAreaComponent),\n multi: true,\n },\n ],\n imports: [FormsModule],\n})\nexport class AXTextAreaComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) {\n /** @ignore */\n @ViewChild('input')\n input: ElementRef<HTMLInputElement>;\n\n /**\n * Specifies the number of rows for the component, typically used for configuring the size of a text area or similar input field.\n */\n @Input()\n rows = 0;\n\n /**\n * Indicates whether the component allows resizing.\n */\n @Input()\n allowResize = true;\n\n /**\n * Determines whether a counter is displayed in the component.\n */\n @Input()\n public showCounter: boolean;\n\n /**\n * Specifies the maximum number of characters allowed in the input field.\n */\n @Input()\n public maxLength: number;\n\n /**\n * CSS classes to apply to the component.\n */\n @Input('class')\n classNames: string;\n\n /** @ignore */\n protected _handleModelChange(value: string | null) {\n this.commitValue(value, true);\n }\n\n // @HostBinding('class')\n // get __hostClass(): string[] {\n // return [\n // 'ax-editor-container',\n // `ax-${this.look}`,\n // `${this.disabled ? 'ax-state-disabled' : ''}`,\n // this.classNames,\n // ];\n // }\n}\n","<div\n class=\"ax-editor-container {{ classNames }} ax-{{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <textarea\n #input\n [id]=\"id\"\n [name]=\"name\"\n type=\"text\"\n [rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.maxlength]=\"maxLength\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [class.ax-state-no-resizing]=\"!allowResize\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n ></textarea>\n @if (showCounter) {\n <div class=\"ax-counter\">\n {{ input.value.length }}\n @if (maxLength) {\n <span>/ {{ maxLength }}</span>\n }\n </div>\n }\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXTextAreaComponent } from './text-area.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, AXTextAreaComponent],\n exports: [AXTextAreaComponent],\n})\nexport class AXTextAreaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -20,10 +20,10 @@ class AXMaskOptionsDirective {
|
|
20
20
|
this._mask = v;
|
21
21
|
this.onMaskChange.emit(v);
|
22
22
|
}
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
24
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMaskOptionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
24
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.10", type: AXMaskOptionsDirective, isStandalone: true, selector: "ax-mask-options", inputs: { mask: "mask", updateValue: "updateValue" }, outputs: { onMaskChange: "onMaskChange" }, ngImport: i0 }); }
|
25
25
|
}
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXMaskOptionsDirective, decorators: [{
|
27
27
|
type: Directive,
|
28
28
|
args: [{ selector: 'ax-mask-options' }]
|
29
29
|
}], propDecorators: { onMaskChange: [{
|
@@ -110,8 +110,8 @@ class AXTextBoxComponent extends classes((MXInputBaseValueComponent), MXLookComp
|
|
110
110
|
_handleModelChange(value) {
|
111
111
|
this.commitValue(value, true);
|
112
112
|
}
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTextBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
114
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AXTextBoxComponent, isStandalone: true, selector: "ax-text-box", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, 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 }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: false, isRequired: false, transformFunction: null }, allowNull: { classPropertyName: "allowNull", publicName: "allowNull", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: false, isRequired: false, transformFunction: null }, autoComplete: { classPropertyName: "autoComplete", publicName: "autoComplete", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, maskOptions: { classPropertyName: "maskOptions", publicName: "mask-options", isSignal: false, isRequired: false, transformFunction: null }, classNames: { classPropertyName: "classNames", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress" }, providers: [
|
115
115
|
{ provide: AXComponent, useExisting: AXTextBoxComponent },
|
116
116
|
{ provide: AXFocusableComponent, useExisting: AXTextBoxComponent },
|
117
117
|
{ provide: AXClearableComponent, useExisting: AXTextBoxComponent },
|
@@ -123,7 +123,7 @@ class AXTextBoxComponent extends classes((MXInputBaseValueComponent), MXLookComp
|
|
123
123
|
},
|
124
124
|
], queries: [{ propertyName: "_maskOptionsContent", first: true, predicate: AXMaskOptionsDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-editor-container {{ classNames() }} ax-{{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n class=\"ax-input\"\n [id]=\"id\"\n [name]=\"name\"\n [attr.autocomplete]=\"autoComplete\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeholder\"\n [attr.maxlength]=\"maxLength\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [ngModelOptions]=\"{ updateOn: _updateOn }\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n", styles: [".ax-action-list{display:flex;gap:.25rem}.ax-action-list.ax-action-list-horizontal{flex-direction:row}.ax-action-list.ax-action-list-horizontal ax-divider{width:0px;height:auto;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}.ax-action-list.ax-action-list-vertical{flex-direction:column}.ax-action-list.ax-action-list-vertical .ax-action-item>div.ax-action-item-prefix ax-prefix{min-width:1rem}.ax-action-list.ax-action-list-vertical ax-divider{height:1px;width:100%}.ax-action-list ax-title{opacity:.5;display:block;font-size:.75rem;line-height:1rem;font-weight:bolder;text-transform:uppercase;padding-block:var(--ax-comp-action-item-padding-block, .25rem);padding-inline:var(--ax-comp-action-item-padding-inline, calc(var(--ax-comp-action-item-padding-inline, .875rem) / 3 * 2))}.ax-action-list ax-divider{display:block;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-action-list ax-text{white-space:nowrap}.ax-action-list .ax-action-item{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;line-height:1.25rem;height:2.25rem;width:100%;cursor:pointer;padding-inline:var(--ax-comp-action-item-padding-inline, .875rem)}.ax-action-list .ax-action-item.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected){background-color:rgba(var(--ax-sys-color-surface))}.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected) ax-prefix,.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected) ax-suffix{opacity:1}.ax-action-list .ax-action-item>div{display:flex;align-items:center;justify-content:center}.ax-action-list .ax-action-item>div.ax-action-item-prefix,.ax-action-list .ax-action-item>div.ax-action-item-suffix{gap:.5rem}.ax-action-list .ax-action-item ax-prefix{display:flex;gap:.5rem}.ax-action-list .ax-action-item ax-suffix ax-text{color:rgba(var(--ax-sys-body-text-color));opacity:.5;font-weight:lighter}.ax-action-sheet-panel{--ax-comp-action-sheet-border-radius-size: var(--ax-sys-border-radius);overflow:hidden;border-top-left-radius:var(--ax-comp-action-sheet-border-radius-size);border-top-right-radius:var(--ax-comp-action-sheet-border-radius-size);background-color:rgba(var(--ax-sys-color-surface-lowest));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);animation:1s both ax-fadeInUp;animation-duration:var(--ax-sys-transition-duration)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}@-moz-document url-prefix(){*{scrollbar-color:var(--ax-sys-scroller-thumb-color) var(--ax-sys-scroller-track-color)}}.ax-checkbox{margin:0;height:1rem;min-width:1rem;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:.25rem;border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-input-surface));vertical-align:middle;outline:2px solid transparent;outline-offset:2px}.ax-checkbox:checked,.ax-checkbox:indeterminate{border-color:rgba(var(--ax-sys-color-primary-500))!important;background-color:rgba(var(--ax-sys-color-primary-500))!important;background-size:contain;background-repeat:no-repeat}.ax-checkbox:checked{background-image:url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\")}.ax-checkbox:indeterminate{background-image:url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSIzIiB5PSI3IiB3aWR0aD0iMTAiIGhlaWdodD0iMiIvPjwvc3ZnPg==)}.ax-checkbox:focus-visible,.ax-checkbox:focus{box-shadow:0 0 0 2px rgba(var(--ax-sys-color-surface)),0 0 0 4px rgba(var(--ax-sys-color-primary-500))}.ax-checkbox:disabled{cursor:not-allowed;opacity:.5}.ax-drop-down{display:contents}.ax-drop-down .ax-dropdown-content{display:flex;flex:1 1 0%;align-items:center;overflow-x:auto;overflow-y:hidden;font-size:.875rem;line-height:1.25rem;text-transform:capitalize}.ax-drop-down .ax-dropdown-content.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-overlay-pane{margin:.25rem 0;min-width:10rem;height:fit-content;overflow:hidden;border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);border-top-left-radius:var(--ax-comp-drop-down-border-top-left-radius, var(--ax-sys-border-radius));border-top-right-radius:var(--ax-comp-drop-down-border-top-right-radius, var(--ax-sys-border-radius));border-bottom-left-radius:var(--ax-comp-drop-down-border-bottom-left-radius, var(--ax-sys-border-radius));border-bottom-right-radius:var(--ax-comp-drop-down-border-bottom-right-radius, var(--ax-sys-border-radius))}@media (min-width: 320px) and (max-width: 640px){.ax-overlay-pane{margin:0}}.ax-overlay-pane ax-header,.ax-overlay-pane ax-footer{background-color:rgba(var(--ax-sys-color-lightest-surface));padding:.75rem}.ax-overlay-pane.ax-overlay-center{height:fit-content;width:80vw;max-width:90vh}.ax-overlay-pane.ax-overlay-actionsheet{height:auto;max-height:85vh;width:100%;background-color:rgba(var(--ax-sys-color-lightest-surface))}.ax-overlay-pane.ax-overlay-actionsheet.ax-full{height:95vh;max-height:95vh}.ax-overlay-pane.ax-overlay-full{width:100vw;height:100vh}.ax-dark .ax-overlay-pane{background-color:rgba(var(--ax-sys-color-darker-surface));border-color:rgba(var(--ax-sys-color-border-darker-surface))}:root,.ax-editor-container{--ax-comp-editor-font-size: .875rem;--ax-comp-editor-gap: .5rem;--ax-comp-editor-space-start-size: .5rem;--ax-comp-editor-space-end-size: .5rem;--ax-comp-editor-space-block-size: .5rem;--ax-comp-editor-height: var(--ax-sys-size-base);--ax-comp-editor-placeholder-space-x: .75rem;--ax-comp-editor-error-bg-color: var(--ax-sys-color-danger-light-surface);--ax-comp-editor-error-text-color: var(--ax-sys-color-danger-surface);--ax-comp-editor-error-border-color: var(--ax-sys-color-border-danger-surface);--ax-comp-editor-error-box-shadow-color: var(--ax-sys-color-danger-surface);--ax-comp-editor-text-color: var(--ax-sys-color-on-surface);--ax-comp-editor-border-color: var(--ax-sys-color-border-surface);--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-box-outline-width: 1px;--ax-comp-editor-box-outline-color: var(--ax-sys-color-primary-surface);--ax-comp-editor-placeholder-opacity: .5;--ax-comp-editor-focused-border-color: var(--ax-sys-color-border-primary-surface);--ax-comp-editor-focused-box-shadow-color: var(--ax-sys-color-primary-surface);--ax-comp-editor-border-width: 0px}.ax-editor-container{display:flex;align-items:center;overflow:hidden;width:100%;height:var(--ax-comp-editor-height);font-size:var(--ax-comp-editor-font-size);border-radius:var(--ax-comp-editor-border-radius);border-width:var(--ax-comp-editor-border-width);border-color:rgba(var(--ax-comp-editor-border-color));background-color:rgba(var(--ax-comp-editor-bg-color));color:rgba(var(--ax-comp-editor-text-color));position:relative;gap:var(--ax-comp-editor-gap);padding-inline-end:var(--ax-comp-editor-space-end-size);padding-inline-start:var(--ax-comp-editor-space-start-size)}.ax-editor-container:has(>ax-prefix){padding-inline-start:0}.ax-editor-container:has(>ax-prefix)>ax-prefix{padding-inline-start:var(--ax-comp-editor-space-start-size)}.ax-editor-container:has(>ax-prefix)>ax-prefix:has(ax-button,.ax-editor-container){--ax-comp-editor-space-start-size: 0px}.ax-editor-container:has(>ax-suffix){padding-inline-end:0}.ax-editor-container:has(>ax-suffix)>ax-suffix{padding-inline-end:var(--ax-comp-editor-space-end-size)}.ax-editor-container:has(>ax-suffix)>ax-suffix:has(ax-button,.ax-editor-container){--ax-comp-editor-space-end-size: 0px}.ax-editor-container:focus-within{border-color:rgba(var(--ax-comp-editor-focused-border-color));outline-width:var(--ax-comp-editor-box-outline-width);outline-style:solid;outline-color:rgba(var(--ax-comp-editor-focused-border-color))}.ax-editor-container.ax-state-error{border-color:rgba(var(--ax-comp-editor-error-border-color));outline-width:var(--ax-comp-editor-box-outline-width);outline-color:rgba(var(--ax-comp-editor-error-border-color));outline-style:solid}.ax-editor-container.ax-state-error:focus-within{border-color:rgba(var(--ax-comp-editor-error-border-color))}.ax-editor-container.ax-state-error .ax-input .ax-placeholder,.ax-editor-container.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-comp-editor-error-text-color),var(--ax-comp-editor-placeholder-opacity))}.ax-editor-container.ax-solid{--ax-comp-editor-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-editor-border-width: 1px}.ax-editor-container.ax-outline{--ax-comp-editor-bg-color: 0, 0, 0, 0;--ax-comp-editor-border-width: 1px}.ax-editor-container.ax-flat{--ax-comp-editor-border-width: 2px;--ax-comp-editor-border-radius: 0px;--ax-comp-editor-box-outline-width: 0px;border-width:0px!important;border-bottom-width:var(--ax-comp-editor-border-width)!important}.ax-editor-container.ax-fill{--ax-comp-editor-box-outline-width: 2px;--ax-comp-editor-border-width: 0px;--ax-comp-editor-bg-color: var(--ax-sys-color-surface);--ax-comp-editor-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-editor-border-color: var(--ax-sys-color-border-lighter-surface)}.ax-editor-container.ax-none{--ax-comp-editor-border-radius: 0px;--ax-comp-editor-box-outline-width: 0px;--ax-comp-editor-border-width: 0px;--ax-comp-editor-bg-color: 0, 0, 0, 0;--ax-comp-editor-border-color: 0, 0, 0, 0;--ax-comp-editor-text-color: var(--ax-sys-color-on-lighter-surface)}.ax-editor-container .ax-editor-input{height:100%;flex:1 1 0%}.ax-editor-container .ax-editor-input .ax-input{height:100%}.ax-editor-container .ax-input{font-size:var(--ax-comp-editor-font-size);line-height:var(--ax-comp-editor-font-size);color:rgba(var(--ax-comp-editor-text-color));cursor:inherit}.ax-editor-container .ax-input .ax-placeholder,.ax-editor-container .ax-input::placeholder{font-size:inherit;font-weight:400;color:rgb(var(--ax-comp-editor-text-color),var(--ax-comp-editor-placeholder-opacity))}.ax-editor-container .ax-input:focus,.ax-editor-container .ax-input:focus-visible,.ax-editor-container .ax-input:focus-within{outline:none}.ax-editor-container.ax-state-disabled{opacity:.5;cursor:not-allowed}.ax-editor-container .ax-editor-control{display:flex;height:100%;align-items:center;justify-content:center;padding-inline-start:.5rem;font-size:1.125rem;line-height:1.75rem;color:rgba(var(--ax-comp-editor-text-color))}.ax-editor-container.ax-button-icon{padding:0 .5rem}.ax-editor-container .ax-input,.ax-editor-container .ax-text-area{text-align:inherit;font-family:inherit;font-size:inherit;line-height:inherit;height:100%;width:100%;flex:1 1 0%;background-color:transparent;font-weight:inherit}.ax-editor-container .ax-input:focus,.ax-editor-container .ax-text-area:focus{box-shadow:none}.ax-editor-container .ax-editor-button{font-size:var(--ax-comp-editor-button-font-size, var(--ax-comp-editor-font-size));height:var(--ax-comp-editor-button-height, 100%)}.ax-editor-container>ax-prefix,.ax-editor-container>ax-suffix{height:100%;max-width:fit-content}.ax-editor-container>ax-prefix ax-button,.ax-editor-container>ax-prefix ax-text,.ax-editor-container>ax-prefix ax-icon,.ax-editor-container>ax-prefix .ax-editor-container,.ax-editor-container>ax-suffix ax-button,.ax-editor-container>ax-suffix ax-text,.ax-editor-container>ax-suffix ax-icon,.ax-editor-container>ax-suffix .ax-editor-container{display:flex;height:100%;align-items:center;justify-content:center;border-radius:0}.ax-editor-container>ax-prefix ax-title,.ax-editor-container>ax-suffix ax-title{padding-left:1rem;padding-right:1rem}.ax-editor-container>ax-prefix>ax-text,.ax-editor-container>ax-suffix>ax-text{display:flex;align-items:center;justify-content:center}.ax-editor-container .ax-button{height:100%!important;border-radius:0!important}.ax-editor-container .ax-button.ax-button-icon{height:100%;width:var(--ax-comp-editor-height)}.ax-editor-container ax-popover{position:absolute}.ax-xs .ax-editor-container,.ax-editor-container.ax-xs{--ax-comp-editor-font-size: .75rem;--ax-comp-editor-space-start-size: .25rem;--ax-comp-editor-space-end-size: .25rem;--ax-comp-editor-button-font-size: .625rem;--ax-comp-editor-gap: .25rem}.ax-sm .ax-editor-container,.ax-editor-container.ax-sm{--ax-comp-editor-font-size: .875rem;--ax-comp-editor-space-start-size: .5rem;--ax-comp-editor-space-end-size: .5rem;--ax-comp-editor-button-font-size: .75rem;--ax-comp-editor-gap: .375rem}.ax-md .ax-editor-container,.ax-editor-container,.ax-editor-container.ax-md{--ax-comp-editor-space-start-size: .5rem;--ax-comp-editor-space-end-size: .5rem;--ax-comp-editor-button-font-size: .875rem;--ax-comp-editor-gap: .5rem}.ax-lg .ax-editor-container,.ax-editor-container.ax-lg{--ax-comp-editor-font-size: 1.125rem;--ax-comp-editor-space-start-size: 1.125rem;--ax-comp-editor-space-end-size: 1.125rem;--ax-comp-editor-button-font-size: .875rem;--ax-comp-editor-gap: .625rem}.ax-xl .ax-editor-container,.ax-editor-container.ax-xl{--ax-comp-editor-font-size: 1.5rem;--ax-comp-editor-space-start-size: 1.5rem;--ax-comp-editor-space-end-size: 1.5rem;--ax-comp-editor-button-font-size: 1rem;--ax-comp-editor-gap: .75rem}ax-validation-rule{position:absolute}.ax-general-button{display:inline-flex;height:var(--ax-sys-size-base);cursor:pointer;align-items:center;justify-content:center;border-radius:var(--ax-sys-border-radius);padding-left:var(--ax-comp-general-button-padding-left, 1rem);padding-right:var(--ax-comp-general-button-padding-right, 1rem);font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface),.75)}.ax-general-button:hover:not(.ax-general-button:hover:disabled,.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity))}.ax-general-button:focus:not(.ax-general-button:focus:disabled,.ax-state-disabled,.ax-general-button:focus-visible:disabled),.ax-general-button:focus-visible:not(.ax-general-button:focus:disabled,.ax-state-disabled,.ax-general-button:focus-visible:disabled){color:rgba(var(--ax-sys-color-primary-700),var(--tw-text-opacity))}.ax-general-button:active:not(.ax-general-button:active:disabled,.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-300),var(--tw-text-opacity))}.ax-general-button.ax-button-icon{padding-left:var(--ax-comp-general-button-padding-left, .5rem);padding-right:var(--ax-comp-general-button-padding-right, .5rem);font-size:100%}.ax-general-button.ax-button-icon>button{display:flex}.ax-general-button.ax-button-rounded{border-radius:var(--ax-sys-border-radius)}.ax-general-button:disabled,.ax-general-button.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-clear-button{display:inline-flex;height:var(--ax-sys-size-base);align-items:center;justify-content:center;margin-left:.25rem;margin-right:.25rem;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface),.75)}.ax-clear-button>button{display:flex}.ax-clear-button:hover:not(.ax-clear-button:hover:disabled,.ax-state-disabled){color:rgb(var(--ax-sys-color-on-surface),.5)}.ax-clear-button:focus:not(.ax-clear-button:focus:disabled,.ax-state-disabled,.ax-clear-button:focus-visible:disabled),.ax-clear-button:focus-visible:not(.ax-clear-button:focus:disabled,.ax-state-disabled,.ax-clear-button:focus-visible:disabled){color:rgb(var(--ax-sys-color-on-surface))}.ax-dark .ax-list-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-800))!important;color:rgba(var(--ax-sys-color-on-primary))!important}.ax-list{display:flex;height:100%;flex-direction:column;overflow:hidden;background-color:rgba(var(--ax-sys-color-surface));font-size:.875rem;line-height:1.25rem}@media (min-width: 768px){.ax-list{max-height:20rem}}.ax-list ax-header,.ax-list ax-footer{display:flex;align-items:center;justify-content:space-between;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity));background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity))}.ax-list ax-header{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity));padding:1rem;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){.ax-list ax-header{font-size:1.125rem;line-height:1.75rem}}.ax-list ax-header ax-prefix,.ax-list ax-header ax-suffix{display:flex;flex-direction:column;justify-items:start}.ax-list ax-header ax-prefix{align-items:flex-start}.ax-list ax-header ax-suffix{align-items:flex-end}.ax-list ax-footer{border-top-width:1px}.ax-list .ax-content{flex:1 1 0%;overflow-y:auto;overflow-x:hidden}.ax-list .ax-content.ax-list-items-container{height:100%;overflow-y:auto;padding-top:.5rem;padding-bottom:.5rem}.ax-list .ax-content.ax-list-items-container.ax-vertical{display:grid;grid-template-columns:repeat(1,minmax(0,1fr))}.ax-list .ax-content.ax-list-items-container.ax-vertical.ax-divide{border-top-width:1px;border-bottom-width:1px}.ax-list .ax-content.ax-list-items-container.ax-default{cursor:pointer}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group>span{display:flex;align-items:center;padding:.75rem;font-weight:500}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group>ul{padding-left:.75rem;padding-right:.75rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group .ax-list-item{margin-bottom:.25rem;border-radius:var(--ax-sys-border-radius)}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item{position:relative;display:flex;height:var(--ax-sys-size-base);-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:1rem;padding-inline-start:.75rem;font-size:1rem;line-height:1.5rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus,.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus-visible{outline-width:2px;outline-offset:2px}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-checkbox .ax-checkbox-label{margin-inline-start:.5rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity))!important;color:rgba(var(--ax-sys-color-on-primary),var(--tw-text-opacity))!important}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus-visible,.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:hover{background-color:rgba(var(--ax-sys-color-surface))}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-focus{background-color:rgba(var(--ax-sys-color-surface))}.ax-list .ax-content.ax-list-items-container .ax-list-loading-container{display:flex;justify-content:center;padding:.5rem}.ax-list .ax-search-box-container{padding:.5rem}.ax-list .ax-search-box-container.ax-state-hidden{display:none}.ax-radio{margin:0;height:1rem;min-height:1rem;min-width:1rem;width:1rem;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:9999px;border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-input-surface));vertical-align:middle;outline:2px solid transparent;outline-offset:2px}.ax-radio:checked{border-color:rgba(var(--ax-sys-color-primary-500))!important;background-color:rgba(var(--ax-sys-color-primary-500))!important;background-size:contain;background-repeat:no-repeat}.ax-radio:checked{background-image:url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\")}.ax-radio:focus-visible,.ax-radio:focus{box-shadow:0 0 0 2px rgba(var(--ax-sys-color-surface)),0 0 0 4px rgba(var(--ax-sys-color-primary-500))}.ax-radio:disabled{cursor:not-allowed;opacity:.5}.ax-ripple{transform:scale(0);animation:ripple .5s linear;position:absolute;border-radius:9999rem!important}@keyframes ripple{to{transform:scale(4);opacity:0}}.ax-dark .ax-table thead{background-color:rgba(var(--ax-sys-color-surface))}.ax-table{width:100%;border-collapse:collapse;border-spacing:0;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));font-size:.875rem;line-height:1.25rem}.ax-table td{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:.75rem 1rem}.ax-table thead{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-surface))}.ax-table thead th{padding:.875rem 1rem;text-align:start;font-weight:500;text-transform:uppercase}.ax-table.ax-table-alternate tbody tr:nth-child(2n){background-color:rgba(var(--ax-sys-color-lighter-surface))}.ax-table.ax-table-bordered thead th{border-top-width:0px!important}.ax-table.ax-table-bordered tbody tr:last-child td{border-bottom-width:0px!important}.ax-table.ax-table-bordered tbody tr td:last-child{border-bottom-width:0px!important}.ax-table.ax-table-bordered td,.ax-table.ax-table-bordered th{border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-table.ax-table-bordered td:first-child,.ax-table.ax-table-bordered th:first-child{border-inline-start-width:0px}.ax-table.ax-table-bordered td:last-child,.ax-table.ax-table-bordered th:last-child{border-inline-end-width:0px}@media screen and (max-width: 640px){.ax-table.ax-table-responsive{display:block;overflow-wrap:break-word;border-width:0px}.ax-table.ax-table-responsive thead{position:absolute;inset-inline-start:-100%;top:-100%}.ax-table.ax-table-responsive td{float:inline-start;clear:both;box-sizing:border-box;display:block;width:100%;padding:.375rem .625rem}.ax-table.ax-table-responsive td:last-child{border-width:0px}.ax-table.ax-table-responsive td:before{content:attr(data-label);display:block;font-weight:700}.ax-table.ax-table-responsive tr{border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-table.ax-table-responsive tr,.ax-table.ax-table-responsive tbody{float:inline-start;margin-bottom:.625rem;width:100%}}.ax-uploader-overlay-state{border-radius:inherit;pointer-events:none;position:absolute;inset-inline-start:0px;top:0;z-index:10;display:flex;height:100%;width:100%;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background-color:rgba(var(--ax-sys-color-primary-200),.75);font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-sys-color-on-primary-tint));outline-style:dashed;outline-offset:-4px;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ax-drop-zone>input{position:absolute;height:100%;width:100%;cursor:pointer;opacity:0}.ax-dark .ax-uploader-overlay-state{background-color:rgba(var(--ax-sys-color-primary-800),.75);color:rgba(var(--ax-sys-color-on-primary));outline-color:rgba(var(--ax-sys-color-on-primary))}ax-text-box{width:100%}ax-text-box input::-webkit-outer-spin-button,ax-text-box input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}ax-text-box input[type=number]{-moz-appearance:textfield}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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 }); }
|
125
125
|
}
|
126
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTextBoxComponent, decorators: [{
|
127
127
|
type: Component,
|
128
128
|
args: [{ selector: 'ax-text-box', inputs: ['disabled', 'tabIndex', 'readonly', 'value', 'state', 'name', 'id', 'placeholder', 'maxLength', 'allowNull', 'type', 'autoComplete', 'look'], outputs: ['onBlur', 'onFocus', 'valueChange', 'stateChange', 'onValueChanged', 'readonlyChange', 'disabledChange', 'onKeyDown', 'onKeyUp', 'onKeyPress'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
129
129
|
{ provide: AXComponent, useExisting: AXTextBoxComponent },
|
@@ -154,11 +154,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
154
154
|
}] } });
|
155
155
|
|
156
156
|
class AXTextBoxModule {
|
157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
158
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
159
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
157
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTextBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
158
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.10", ngImport: i0, type: AXTextBoxModule, imports: [CommonModule, AXCommonModule, FormsModule, AXButtonModule, AXDecoratorModule, AXTextBoxComponent, AXMaskOptionsDirective], exports: [AXTextBoxComponent, AXMaskOptionsDirective] }); }
|
159
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTextBoxModule, imports: [CommonModule, AXCommonModule, FormsModule, AXButtonModule, AXDecoratorModule, AXTextBoxComponent] }); }
|
160
160
|
}
|
161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTextBoxModule, decorators: [{
|
162
162
|
type: NgModule,
|
163
163
|
args: [{
|
164
164
|
imports: [CommonModule, AXCommonModule, FormsModule, AXButtonModule, AXDecoratorModule, AXTextBoxComponent, AXMaskOptionsDirective],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-text-box.mjs","sources":["../../../../libs/components/text-box/src/lib/mask-options.directive.ts","../../../../libs/components/text-box/src/lib/text-box.component.ts","../../../../libs/components/text-box/src/lib/text-box.component.html","../../../../libs/components/text-box/src/lib/text-box.module.ts","../../../../libs/components/text-box/src/acorex-components-text-box.ts"],"sourcesContent":["import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { MaskedOptions } from 'imask';\n\nexport type AXMaskOptions = MaskedOptions | any;\n\nexport interface AXMaskOptionsInterface {\n mask: MaskedOptions | string | RegExp;\n updateValue?: (masked: string, unmasked: string) => void;\n}\n\n@Directive({ selector: 'ax-mask-options' })\nexport class AXMaskOptionsDirective implements AXMaskOptionsInterface {\n private _mask: MaskedOptions | string | RegExp;\n\n @Output()\n public onMaskChange = new EventEmitter<MaskedOptions | string | RegExp>();\n\n @Input()\n public get mask(): MaskedOptions | string | RegExp {\n return this._mask;\n }\n\n public set mask(v: MaskedOptions | string | RegExp) {\n this._mask = v;\n this.onMaskChange.emit(v);\n }\n\n @Input()\n updateValue?: (masked: string, unmasked: string) => void;\n}\n","/* eslint-disable @angular-eslint/no-inputs-metadata-property */\nimport {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/components/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n Input,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n input,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport IMask, { InputMask } from 'imask';\nimport { classes } from 'polytype';\nimport { AXMaskOptions, AXMaskOptionsDirective } from './mask-options.directive';\n\n/**\n * The Textbox is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-text-box',\n templateUrl: 'text-box.component.html',\n styleUrls: ['text-box.component.scss'],\n inputs: ['disabled', 'tabIndex', 'readonly', 'value', 'state', 'name', 'id', 'placeholder', 'maxLength', 'allowNull', 'type', 'autoComplete', 'look'],\n outputs: ['onBlur', 'onFocus', 'valueChange', 'stateChange', 'onValueChanged', 'readonlyChange', 'disabledChange', 'onKeyDown', 'onKeyUp', 'onKeyPress'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: AXComponent, useExisting: AXTextBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXTextBoxComponent },\n { provide: AXClearableComponent, useExisting: AXTextBoxComponent },\n { provide: AXValuableComponent, useExisting: AXTextBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXTextBoxComponent),\n multi: true,\n },\n ],\n imports: [FormsModule],\n})\nexport class AXTextBoxComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) implements AfterContentInit {\n /** @ignore */\n protected _updateOn: 'change' | 'blur' | 'submit' = 'change';\n\n /** @ignore */\n @ViewChild('input', { static: true })\n private input: ElementRef<HTMLInputElement>;\n\n /** @ignore */\n private _maskObj: InputMask<any>;\n\n /** @ignore */\n private _maskOptions: AXMaskOptions = { mask: null };\n\n /**\n * This public getter provides access to the `_maskOptions` property, which holds the configuration options for the mask feature.\n */\n @Input('mask-options')\n public get maskOptions(): AXMaskOptions {\n return this._maskOptions;\n }\n\n /**\n * @param value {AXMaskOptions} - The new mask configuration options to be set.\n */\n public set maskOptions(value: AXMaskOptions) {\n this._maskOptions = value;\n this.setMask();\n }\n\n /**\n * This property defines the maximum number of characters that the input field can accept. It can be dynamically bound from a parent component template to enforce input length constraints.\n */\n @Input()\n maxLength: number;\n\n /**\n * This property determines the type of the input element (e.g., 'text', 'password', 'email', etc.). It can be dynamically bound from a parent component template to change the input field type based on different conditions or requirements.\n */\n @Input()\n type: string;\n\n /**\n * This property determines whether the input field should have autocomplete enabled and what type of autocomplete suggestions should be provided\n */\n @Input()\n autoComplete: string;\n\n /**\n * This will apply 'my-custom-class' and 'another-class' to the component's root element.\n */\n // @Input('class')\n // classNames: string;\n classNames = input('', { alias: 'class' });\n\n /** @ignore */\n @ContentChild(AXMaskOptionsDirective, { static: true })\n protected _maskOptionsContent: AXMaskOptionsDirective;\n\n /** @ignore */\n ngAfterContentInit() {\n if (this._maskOptionsContent?.mask) {\n if (typeof this._maskOptionsContent.mask == 'string' || this._maskOptionsContent.mask instanceof RegExp) {\n Object.assign(this.maskOptions, {\n mask: this._maskOptionsContent.mask,\n unmask: false,\n });\n }\n if (typeof this._maskOptionsContent.mask == 'object') {\n Object.assign(this.maskOptions, this._maskOptionsContent.mask);\n }\n }\n //\n this.setMask();\n }\n\n /** @ignore */\n private setMask() {\n if (this._maskObj) this._maskObj.destroy();\n //\n if (this.maskOptions?.mask) {\n this._maskObj = IMask(this.input.nativeElement, this.maskOptions);\n this._updateOn = 'submit';\n this._maskObj.on('accept', this._onComplete.bind(this));\n this._maskObj.on('complete', this._onComplete.bind(this));\n if (this.value) {\n this._maskObj.value = `${this.value}`;\n this._maskObj.updateValue();\n }\n }\n }\n\n /** @ignore */\n private _onComplete(e: InputEvent) {\n this.commitValue(this._maskObj.value, e?.isTrusted ?? false);\n if (typeof this._maskOptionsContent?.updateValue === 'function') {\n this._maskOptionsContent?.updateValue(this._maskObj.value, this._maskObj.unmaskedValue);\n }\n }\n\n /** @ignore */\n protected _handleModelChange(value: string | null) {\n this.commitValue(value, true);\n }\n}\n","<div\n class=\"ax-editor-container {{ classNames() }} ax-{{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n class=\"ax-input\"\n [id]=\"id\"\n [name]=\"name\"\n [attr.autocomplete]=\"autoComplete\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeholder\"\n [attr.maxlength]=\"maxLength\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [ngModelOptions]=\"{ updateOn: _updateOn }\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXMaskOptionsDirective } from './mask-options.directive';\nimport { AXTextBoxComponent } from './text-box.component';\n\n@NgModule({\n imports: [CommonModule, AXCommonModule, FormsModule, AXButtonModule, AXDecoratorModule, AXTextBoxComponent, AXMaskOptionsDirective],\n exports: [AXTextBoxComponent, AXMaskOptionsDirective],\n providers: [],\n})\nexport class AXTextBoxModule {}\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-text-box.mjs","sources":["../../../../libs/components/text-box/src/lib/mask-options.directive.ts","../../../../libs/components/text-box/src/lib/text-box.component.ts","../../../../libs/components/text-box/src/lib/text-box.component.html","../../../../libs/components/text-box/src/lib/text-box.module.ts","../../../../libs/components/text-box/src/acorex-components-text-box.ts"],"sourcesContent":["import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { MaskedOptions } from 'imask';\n\nexport type AXMaskOptions = MaskedOptions | any;\n\nexport interface AXMaskOptionsInterface {\n mask: MaskedOptions | string | RegExp;\n updateValue?: (masked: string, unmasked: string) => void;\n}\n\n@Directive({ selector: 'ax-mask-options' })\nexport class AXMaskOptionsDirective implements AXMaskOptionsInterface {\n private _mask: MaskedOptions | string | RegExp;\n\n @Output()\n public onMaskChange = new EventEmitter<MaskedOptions | string | RegExp>();\n\n @Input()\n public get mask(): MaskedOptions | string | RegExp {\n return this._mask;\n }\n\n public set mask(v: MaskedOptions | string | RegExp) {\n this._mask = v;\n this.onMaskChange.emit(v);\n }\n\n @Input()\n updateValue?: (masked: string, unmasked: string) => void;\n}\n","/* eslint-disable @angular-eslint/no-inputs-metadata-property */\nimport {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/components/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n Input,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n input,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport IMask, { InputMask } from 'imask';\nimport { classes } from 'polytype';\nimport { AXMaskOptions, AXMaskOptionsDirective } from './mask-options.directive';\n\n/**\n * The Textbox is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-text-box',\n templateUrl: 'text-box.component.html',\n styleUrls: ['text-box.component.scss'],\n inputs: ['disabled', 'tabIndex', 'readonly', 'value', 'state', 'name', 'id', 'placeholder', 'maxLength', 'allowNull', 'type', 'autoComplete', 'look'],\n outputs: ['onBlur', 'onFocus', 'valueChange', 'stateChange', 'onValueChanged', 'readonlyChange', 'disabledChange', 'onKeyDown', 'onKeyUp', 'onKeyPress'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: AXComponent, useExisting: AXTextBoxComponent },\n { provide: AXFocusableComponent, useExisting: AXTextBoxComponent },\n { provide: AXClearableComponent, useExisting: AXTextBoxComponent },\n { provide: AXValuableComponent, useExisting: AXTextBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXTextBoxComponent),\n multi: true,\n },\n ],\n imports: [FormsModule],\n})\nexport class AXTextBoxComponent extends classes(MXInputBaseValueComponent<string>, MXLookComponent) implements AfterContentInit {\n /** @ignore */\n protected _updateOn: 'change' | 'blur' | 'submit' = 'change';\n\n /** @ignore */\n @ViewChild('input', { static: true })\n private input: ElementRef<HTMLInputElement>;\n\n /** @ignore */\n private _maskObj: InputMask<any>;\n\n /** @ignore */\n private _maskOptions: AXMaskOptions = { mask: null };\n\n /**\n * This public getter provides access to the `_maskOptions` property, which holds the configuration options for the mask feature.\n */\n @Input('mask-options')\n public get maskOptions(): AXMaskOptions {\n return this._maskOptions;\n }\n\n /**\n * @param value {AXMaskOptions} - The new mask configuration options to be set.\n */\n public set maskOptions(value: AXMaskOptions) {\n this._maskOptions = value;\n this.setMask();\n }\n\n /**\n * This property defines the maximum number of characters that the input field can accept. It can be dynamically bound from a parent component template to enforce input length constraints.\n */\n @Input()\n maxLength: number;\n\n /**\n * This property determines the type of the input element (e.g., 'text', 'password', 'email', etc.). It can be dynamically bound from a parent component template to change the input field type based on different conditions or requirements.\n */\n @Input()\n type: string;\n\n /**\n * This property determines whether the input field should have autocomplete enabled and what type of autocomplete suggestions should be provided\n */\n @Input()\n autoComplete: string;\n\n /**\n * This will apply 'my-custom-class' and 'another-class' to the component's root element.\n */\n // @Input('class')\n // classNames: string;\n classNames = input('', { alias: 'class' });\n\n /** @ignore */\n @ContentChild(AXMaskOptionsDirective, { static: true })\n protected _maskOptionsContent: AXMaskOptionsDirective;\n\n /** @ignore */\n ngAfterContentInit() {\n if (this._maskOptionsContent?.mask) {\n if (typeof this._maskOptionsContent.mask == 'string' || this._maskOptionsContent.mask instanceof RegExp) {\n Object.assign(this.maskOptions, {\n mask: this._maskOptionsContent.mask,\n unmask: false,\n });\n }\n if (typeof this._maskOptionsContent.mask == 'object') {\n Object.assign(this.maskOptions, this._maskOptionsContent.mask);\n }\n }\n //\n this.setMask();\n }\n\n /** @ignore */\n private setMask() {\n if (this._maskObj) this._maskObj.destroy();\n //\n if (this.maskOptions?.mask) {\n this._maskObj = IMask(this.input.nativeElement, this.maskOptions);\n this._updateOn = 'submit';\n this._maskObj.on('accept', this._onComplete.bind(this));\n this._maskObj.on('complete', this._onComplete.bind(this));\n if (this.value) {\n this._maskObj.value = `${this.value}`;\n this._maskObj.updateValue();\n }\n }\n }\n\n /** @ignore */\n private _onComplete(e: InputEvent) {\n this.commitValue(this._maskObj.value, e?.isTrusted ?? false);\n if (typeof this._maskOptionsContent?.updateValue === 'function') {\n this._maskOptionsContent?.updateValue(this._maskObj.value, this._maskObj.unmaskedValue);\n }\n }\n\n /** @ignore */\n protected _handleModelChange(value: string | null) {\n this.commitValue(value, true);\n }\n}\n","<div\n class=\"ax-editor-container {{ classNames() }} ax-{{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <input\n #input\n class=\"ax-input\"\n [id]=\"id\"\n [name]=\"name\"\n [attr.autocomplete]=\"autoComplete\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeholder\"\n [attr.maxlength]=\"maxLength\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [ngModelOptions]=\"{ updateOn: _updateOn }\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n />\n @if (input.value && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <ng-content select=\"ax-suffix\"> </ng-content>\n</div>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n<div class=\"ax-error-container\"></div>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXMaskOptionsDirective } from './mask-options.directive';\nimport { AXTextBoxComponent } from './text-box.component';\n\n@NgModule({\n imports: [CommonModule, AXCommonModule, FormsModule, AXButtonModule, AXDecoratorModule, AXTextBoxComponent, AXMaskOptionsDirective],\n exports: [AXTextBoxComponent, AXMaskOptionsDirective],\n providers: [],\n})\nexport class AXTextBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;MAWa,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;AAKS,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAmC;AAc1E;AAZC,IAAA,IACW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK;;IAGnB,IAAW,IAAI,CAAC,CAAkC,EAAA;AAChD,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;AACd,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;;+GAbhB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;mBAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE;8BAKjC,YAAY,EAAA,CAAA;sBADlB;gBAIU,IAAI,EAAA,CAAA;sBADd;gBAWD,WAAW,EAAA,CAAA;sBADV;;;AC3BH;AA0BA;;;;AAIG;AAsBG,MAAO,kBAAmB,SAAQ,OAAO,EAAC,yBAAiC,GAAE,eAAe,CAAC,CAAA;AArBnG,IAAA,WAAA,GAAA;;;QAuBY,IAAS,CAAA,SAAA,GAAiC,QAAQ;;AAUpD,QAAA,IAAA,CAAA,YAAY,GAAkB,EAAE,IAAI,EAAE,IAAI,EAAE;AAoCpD;;AAEG;;;QAGH,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAmD3C;AA1FC;;AAEG;AACH,IAAA,IACW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY;;AAG1B;;AAEG;IACH,IAAW,WAAW,CAAC,KAAoB,EAAA;AACzC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,OAAO,EAAE;;;IAiChB,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE;AAClC,YAAA,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,YAAY,MAAM,EAAE;AACvG,gBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;AAC9B,oBAAA,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI;AACnC,oBAAA,MAAM,EAAE,KAAK;AACd,iBAAA,CAAC;;YAEJ,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,IAAI,QAAQ,EAAE;AACpD,gBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;;;;QAIlE,IAAI,CAAC,OAAO,EAAE;;;IAIR,OAAO,GAAA;QACb,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;;AAE1C,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC;AACjE,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvD,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA,CAAE;AACrC,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;;;;;AAMzB,IAAA,WAAW,CAAC,CAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,IAAI,KAAK,CAAC;QAC5D,IAAI,OAAO,IAAI,CAAC,mBAAmB,EAAE,WAAW,KAAK,UAAU,EAAE;AAC/D,YAAA,IAAI,CAAC,mBAAmB,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;;;;AAKjF,IAAA,kBAAkB,CAAC,KAAoB,EAAA;AAC/C,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;;+GAtGpB,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAblB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,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,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,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE;AACzD,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,kBAAkB,EAAE;AAClE,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,kBAAkB,EAAE;AAClE,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,kBAAkB,EAAE;AACjE,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AACjD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA2Da,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5GtC,qtCAoCA,EAAA,MAAA,EAAA,CAAA,+svBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDcY,WAAW,EAAA,EAAA,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;;4FAEV,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBArB9B,SAAS;+BACE,aAAa,EAAA,MAAA,EAGf,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,EAAA,OAAA,EAC5I,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,EACzI,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,oBAAoB,EAAE;AACzD,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,oBAAoB,EAAE;AAClE,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,oBAAoB,EAAE;AAClE,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,oBAAoB,EAAE;AACjE,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC;AACjD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EACQ,OAAA,EAAA,CAAC,WAAW,CAAC,EAAA,QAAA,EAAA,qtCAAA,EAAA,MAAA,EAAA,CAAA,+svBAAA,CAAA,EAAA;8BAQd,KAAK,EAAA,CAAA;sBADZ,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAazB,WAAW,EAAA,CAAA;sBADrB,KAAK;uBAAC,cAAc;gBAiBrB,SAAS,EAAA,CAAA;sBADR;gBAOD,IAAI,EAAA,CAAA;sBADH;gBAOD,YAAY,EAAA,CAAA;sBADX;gBAYS,mBAAmB,EAAA,CAAA;sBAD5B,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,sBAAsB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;ME9F3C,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAJhB,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,CACxH,EAAA,OAAA,EAAA,CAAA,kBAAkB,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA;gHAGzC,eAAe,EAAA,OAAA,EAAA,CAJhB,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA;;4FAI/F,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,CAAC;AACnI,oBAAA,OAAO,EAAE,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;AACrD,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACbD;;AAEG;;;;"}
|
@@ -0,0 +1,247 @@
|
|
1
|
+
import { MXInputBaseValueComponent, MXLookComponent, AXComponent, AXFocusableComponent, AXClearableComponent, AXValuableComponent } from '@acorex/components/common';
|
2
|
+
import { AXSelectBoxModule } from '@acorex/components/select-box';
|
3
|
+
import * as i1 from '@acorex/components/text-box';
|
4
|
+
import { AXTextBoxModule } from '@acorex/components/text-box';
|
5
|
+
import { AXTranslationService } from '@acorex/core/translation';
|
6
|
+
import * as i0 from '@angular/core';
|
7
|
+
import { input, signal, inject, effect, forwardRef, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
8
|
+
import * as i2 from '@angular/forms';
|
9
|
+
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
10
|
+
import { classes } from 'polytype';
|
11
|
+
|
12
|
+
class AXTimeDurationComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {
|
13
|
+
constructor() {
|
14
|
+
super(...arguments);
|
15
|
+
this.valueStart = input('year');
|
16
|
+
this.valueEnd = input('millisecond');
|
17
|
+
this.maskOptions = signal({ mask: '' });
|
18
|
+
this.translationService = inject(AXTranslationService);
|
19
|
+
this.onInputFire = false;
|
20
|
+
this.onInternalValueChangedFire = false;
|
21
|
+
this.#effect = effect(() => {
|
22
|
+
if (this.valueStart() && this.valueEnd()) {
|
23
|
+
this.updateMask();
|
24
|
+
}
|
25
|
+
});
|
26
|
+
}
|
27
|
+
#effect;
|
28
|
+
onInput(event) {
|
29
|
+
if (this.onInternalValueChangedFire)
|
30
|
+
return;
|
31
|
+
this.onInputFire = true;
|
32
|
+
const milliseconds = this.maskToMilliseconds(event);
|
33
|
+
this.commitValue(milliseconds, true);
|
34
|
+
this.onInputFire = false;
|
35
|
+
}
|
36
|
+
internalValueChanged(value) {
|
37
|
+
if (this.onInputFire)
|
38
|
+
return;
|
39
|
+
this.onInternalValueChangedFire = true;
|
40
|
+
const normalizedMask = this.millisecondsToMask(value);
|
41
|
+
this.inputValue = normalizedMask;
|
42
|
+
this.onInternalValueChangedFire = false;
|
43
|
+
}
|
44
|
+
maskToMilliseconds(maskValue) {
|
45
|
+
if (!maskValue)
|
46
|
+
return 0;
|
47
|
+
const parts = maskValue.split(':').map((part) => part.trim());
|
48
|
+
let totalMilliseconds = 0;
|
49
|
+
// Define maximum values for each unit
|
50
|
+
const maxValues = {
|
51
|
+
MILLISECOND: 1000,
|
52
|
+
SECOND: 60,
|
53
|
+
MINUTE: 60,
|
54
|
+
HOUR: 24,
|
55
|
+
DAY: 7,
|
56
|
+
WEEK: 4,
|
57
|
+
MONTH: 12,
|
58
|
+
YEAR: Infinity,
|
59
|
+
};
|
60
|
+
// First pass: convert all values to milliseconds
|
61
|
+
for (const part of parts) {
|
62
|
+
const match = part.match(/(\d+)\s*\((\w+)\)/);
|
63
|
+
if (match) {
|
64
|
+
const [_, value, unit] = match;
|
65
|
+
const numValue = parseInt(value, 10);
|
66
|
+
const unitUpper = unit.toUpperCase();
|
67
|
+
// Check if value exceeds maximum
|
68
|
+
if (numValue >= maxValues[unitUpper]) {
|
69
|
+
// Convert to next larger unit
|
70
|
+
const nextUnit = this.getNextLargerUnit(unitUpper);
|
71
|
+
if (nextUnit) {
|
72
|
+
const convertedValue = this.convertToLargerUnit(numValue, unitUpper, nextUnit);
|
73
|
+
totalMilliseconds += this.unitToMilliseconds(convertedValue.value, convertedValue.unit);
|
74
|
+
}
|
75
|
+
else {
|
76
|
+
totalMilliseconds += this.unitToMilliseconds(numValue, unitUpper);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
else {
|
80
|
+
totalMilliseconds += this.unitToMilliseconds(numValue, unitUpper);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
84
|
+
return totalMilliseconds;
|
85
|
+
}
|
86
|
+
getNextLargerUnit(unit) {
|
87
|
+
const units = ['MILLISECOND', 'SECOND', 'MINUTE', 'HOUR', 'DAY', 'WEEK', 'MONTH', 'YEAR'];
|
88
|
+
const currentIndex = units.indexOf(unit);
|
89
|
+
return currentIndex < units.length - 1 ? units[currentIndex + 1] : null;
|
90
|
+
}
|
91
|
+
convertToLargerUnit(value, fromUnit, toUnit) {
|
92
|
+
const conversionRates = {
|
93
|
+
MILLISECOND: { SECOND: 1000 },
|
94
|
+
SECOND: { MINUTE: 60 },
|
95
|
+
MINUTE: { HOUR: 60 },
|
96
|
+
HOUR: { DAY: 24 },
|
97
|
+
DAY: { WEEK: 7 },
|
98
|
+
WEEK: { MONTH: 4 },
|
99
|
+
MONTH: { YEAR: 12 },
|
100
|
+
};
|
101
|
+
if (conversionRates[fromUnit] && conversionRates[fromUnit][toUnit]) {
|
102
|
+
const rate = conversionRates[fromUnit][toUnit];
|
103
|
+
return {
|
104
|
+
value: Math.floor(value / rate),
|
105
|
+
unit: toUnit,
|
106
|
+
};
|
107
|
+
}
|
108
|
+
return { value, unit: fromUnit };
|
109
|
+
}
|
110
|
+
unitToMilliseconds(value, unit) {
|
111
|
+
switch (unit) {
|
112
|
+
case 'YEAR':
|
113
|
+
return value * 31536000000; // 365 days
|
114
|
+
case 'MONTH':
|
115
|
+
return value * 2592000000; // 30 days
|
116
|
+
case 'WEEK':
|
117
|
+
return value * 604800000; // 7 days
|
118
|
+
case 'DAY':
|
119
|
+
return value * 86400000; // 24 hours
|
120
|
+
case 'HOUR':
|
121
|
+
return value * 3600000; // 60 minutes
|
122
|
+
case 'MINUTE':
|
123
|
+
return value * 60000; // 60 seconds
|
124
|
+
case 'SECOND':
|
125
|
+
return value * 1000;
|
126
|
+
case 'MILLISECOND':
|
127
|
+
return value;
|
128
|
+
default:
|
129
|
+
return 0;
|
130
|
+
}
|
131
|
+
}
|
132
|
+
millisecondsToMask(milliseconds) {
|
133
|
+
if (milliseconds <= 0)
|
134
|
+
return '';
|
135
|
+
const units = [
|
136
|
+
{ name: 'YEAR', value: 31536000000 },
|
137
|
+
{ name: 'MONTH', value: 2592000000 },
|
138
|
+
{ name: 'WEEK', value: 604800000 },
|
139
|
+
{ name: 'DAY', value: 86400000 },
|
140
|
+
{ name: 'HOUR', value: 3600000 },
|
141
|
+
{ name: 'MINUTE', value: 60000 },
|
142
|
+
{ name: 'SECOND', value: 1000 },
|
143
|
+
{ name: 'MILLISECOND', value: 1 },
|
144
|
+
];
|
145
|
+
let remaining = milliseconds;
|
146
|
+
const parts = [];
|
147
|
+
for (const unit of units) {
|
148
|
+
if (remaining >= unit.value) {
|
149
|
+
const value = Math.floor(remaining / unit.value);
|
150
|
+
remaining = remaining % unit.value;
|
151
|
+
parts.push(`${value.toString().padStart(2, '0')}(${unit.name})`);
|
152
|
+
}
|
153
|
+
}
|
154
|
+
return parts.join(':');
|
155
|
+
}
|
156
|
+
updateMask() {
|
157
|
+
const allUnits = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
|
158
|
+
const startIndex = allUnits.indexOf(this.valueStart());
|
159
|
+
const endIndex = allUnits.indexOf(this.valueEnd());
|
160
|
+
if (startIndex === -1 || endIndex === -1 || endIndex < startIndex) {
|
161
|
+
this.maskOptions.set({ mask: '' });
|
162
|
+
return;
|
163
|
+
}
|
164
|
+
const selectedUnits = allUnits.slice(startIndex, endIndex + 1);
|
165
|
+
const unitPatterns = {
|
166
|
+
year: `00 (${this.translationService.translateSync('year').toLocaleUpperCase()})`,
|
167
|
+
month: `00 (${this.translationService.translateSync('month').toLocaleUpperCase()})`,
|
168
|
+
week: `00 (${this.translationService.translateSync('week').toLocaleUpperCase()})`,
|
169
|
+
day: `00 (${this.translationService.translateSync('day').toLocaleUpperCase()})`,
|
170
|
+
hour: `00 (${this.translationService.translateSync('hour').toLocaleUpperCase()})`,
|
171
|
+
minute: `00 (${this.translationService.translateSync('minute').toLocaleUpperCase()})`,
|
172
|
+
second: `00 (${this.translationService.translateSync('second').toLocaleUpperCase()})`,
|
173
|
+
millisecond: `000 (${this.translationService.translateSync('millisecond').toLocaleUpperCase()})`,
|
174
|
+
};
|
175
|
+
const maskParts = selectedUnits.map((unit) => {
|
176
|
+
if (unit === 'hour' || unit === 'minute' || unit === 'second' || unit === 'millisecond') {
|
177
|
+
return unitPatterns[unit];
|
178
|
+
}
|
179
|
+
return unitPatterns[unit];
|
180
|
+
});
|
181
|
+
// Create final mask string, joining properly
|
182
|
+
let timePart = '';
|
183
|
+
const dateParts = [];
|
184
|
+
for (const part of maskParts) {
|
185
|
+
if (part.includes('(')) {
|
186
|
+
dateParts.push(part);
|
187
|
+
}
|
188
|
+
else if (part.includes('.')) {
|
189
|
+
timePart += part;
|
190
|
+
}
|
191
|
+
else {
|
192
|
+
timePart += (timePart ? ':' : '') + part;
|
193
|
+
}
|
194
|
+
}
|
195
|
+
const result = dateParts.join(' : ');
|
196
|
+
this.maskOptions.set({ mask: result });
|
197
|
+
}
|
198
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTimeDurationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
199
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: AXTimeDurationComponent, isStandalone: true, selector: "ax-time-duration", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, valueStart: { classPropertyName: "valueStart", publicName: "valueStart", isSignal: true, isRequired: false, transformFunction: null }, valueEnd: { classPropertyName: "valueEnd", publicName: "valueEnd", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: "onValueChanged" }, providers: [
|
200
|
+
{ provide: AXComponent, useExisting: AXTimeDurationComponent },
|
201
|
+
{ provide: AXFocusableComponent, useExisting: AXTimeDurationComponent },
|
202
|
+
{ provide: AXClearableComponent, useExisting: AXTimeDurationComponent },
|
203
|
+
{ provide: AXValuableComponent, useExisting: AXTimeDurationComponent },
|
204
|
+
{
|
205
|
+
provide: NG_VALUE_ACCESSOR,
|
206
|
+
useExisting: forwardRef(() => AXTimeDurationComponent),
|
207
|
+
multi: true,
|
208
|
+
},
|
209
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-editor-container\">\n <ax-text-box\n [look]=\"look\"\n [placeholder]=\"maskOptions().mask\"\n [mask-options]=\"maskOptions()\"\n [(ngModel)]=\"inputValue\"\n (ngModelChange)=\"onInput($event)\"\n class=\"ax-time-duration-text\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [readonly]=\"readonly\"\n >\n </ax-text-box>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-time-duration>.ax-editor-container{display:block;height:100%!important;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
210
|
+
}
|
211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTimeDurationComponent, decorators: [{
|
212
|
+
type: Component,
|
213
|
+
args: [{ selector: 'ax-time-duration', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXTextBoxModule, FormsModule, AXSelectBoxModule], inputs: ['disabled', 'tabIndex', 'readonly', 'look'], outputs: ['onValueChanged'], providers: [
|
214
|
+
{ provide: AXComponent, useExisting: AXTimeDurationComponent },
|
215
|
+
{ provide: AXFocusableComponent, useExisting: AXTimeDurationComponent },
|
216
|
+
{ provide: AXClearableComponent, useExisting: AXTimeDurationComponent },
|
217
|
+
{ provide: AXValuableComponent, useExisting: AXTimeDurationComponent },
|
218
|
+
{
|
219
|
+
provide: NG_VALUE_ACCESSOR,
|
220
|
+
useExisting: forwardRef(() => AXTimeDurationComponent),
|
221
|
+
multi: true,
|
222
|
+
},
|
223
|
+
], template: "<div class=\"ax-editor-container\">\n <ax-text-box\n [look]=\"look\"\n [placeholder]=\"maskOptions().mask\"\n [mask-options]=\"maskOptions()\"\n [(ngModel)]=\"inputValue\"\n (ngModelChange)=\"onInput($event)\"\n class=\"ax-time-duration-text\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [readonly]=\"readonly\"\n >\n </ax-text-box>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n", styles: ["ax-time-duration>.ax-editor-container{display:block;height:100%!important;padding:0}\n"] }]
|
224
|
+
}] });
|
225
|
+
|
226
|
+
const COMPONENT = [AXTimeDurationComponent];
|
227
|
+
const MODULES = [];
|
228
|
+
class AXTimeDurationModule {
|
229
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTimeDurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
230
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.10", ngImport: i0, type: AXTimeDurationModule, imports: [AXTimeDurationComponent], exports: [AXTimeDurationComponent] }); }
|
231
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTimeDurationModule, imports: [MODULES, COMPONENT] }); }
|
232
|
+
}
|
233
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXTimeDurationModule, decorators: [{
|
234
|
+
type: NgModule,
|
235
|
+
args: [{
|
236
|
+
imports: [...MODULES, ...COMPONENT],
|
237
|
+
exports: [...COMPONENT],
|
238
|
+
providers: [],
|
239
|
+
}]
|
240
|
+
}] });
|
241
|
+
|
242
|
+
/**
|
243
|
+
* Generated bundle index. Do not edit.
|
244
|
+
*/
|
245
|
+
|
246
|
+
export { AXTimeDurationComponent, AXTimeDurationModule };
|
247
|
+
//# sourceMappingURL=acorex-components-time-duration.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"acorex-components-time-duration.mjs","sources":["../../../../libs/components/time-duration/src/lib/time-duration.component.ts","../../../../libs/components/time-duration/src/lib/time-duration.component.html","../../../../libs/components/time-duration/src/lib/time-duration.module.ts","../../../../libs/components/time-duration/src/acorex-components-time-duration.ts"],"sourcesContent":["import {\n AXClearableComponent,\n AXComponent,\n AXFocusableComponent,\n AXValuableComponent,\n MXInputBaseValueComponent,\n MXLookComponent,\n} from '@acorex/components/common';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXMaskOptions, AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n forwardRef,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXTimeDurationUnit } from './time-duration.type';\n\n@Component({\n selector: 'ax-time-duration',\n templateUrl: './time-duration.component.html',\n styleUrls: ['./time-duration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextBoxModule, FormsModule, AXSelectBoxModule],\n inputs: ['disabled', 'tabIndex', 'readonly', 'look'],\n outputs: ['onValueChanged'],\n providers: [\n { provide: AXComponent, useExisting: AXTimeDurationComponent },\n { provide: AXFocusableComponent, useExisting: AXTimeDurationComponent },\n { provide: AXClearableComponent, useExisting: AXTimeDurationComponent },\n { provide: AXValuableComponent, useExisting: AXTimeDurationComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXTimeDurationComponent),\n multi: true,\n },\n ],\n})\nexport class AXTimeDurationComponent extends classes(MXInputBaseValueComponent<number>, MXLookComponent) {\n protected inputValue: string;\n readonly valueStart = input<AXTimeDurationUnit>('year');\n readonly valueEnd = input<AXTimeDurationUnit>('millisecond');\n protected maskOptions = signal<AXMaskOptions>({ mask: '' });\n\n private translationService: AXTranslationService = inject(AXTranslationService);\n\n private onInputFire = false;\n private onInternalValueChangedFire = false;\n\n #effect = effect(() => {\n if (this.valueStart() && this.valueEnd()) {\n this.updateMask();\n }\n });\n\n protected onInput(event: any) {\n if (this.onInternalValueChangedFire) return;\n this.onInputFire = true;\n const milliseconds = this.maskToMilliseconds(event);\n this.commitValue(milliseconds, true);\n this.onInputFire = false;\n }\n\n protected override internalValueChanged(value: number): void {\n if (this.onInputFire) return;\n this.onInternalValueChangedFire = true;\n const normalizedMask = this.millisecondsToMask(value);\n this.inputValue = normalizedMask;\n this.onInternalValueChangedFire = false;\n }\n\n private maskToMilliseconds(maskValue: string): number {\n if (!maskValue) return 0;\n\n const parts = maskValue.split(':').map((part) => part.trim());\n let totalMilliseconds = 0;\n\n // Define maximum values for each unit\n const maxValues = {\n MILLISECOND: 1000,\n SECOND: 60,\n MINUTE: 60,\n HOUR: 24,\n DAY: 7,\n WEEK: 4,\n MONTH: 12,\n YEAR: Infinity,\n };\n\n // First pass: convert all values to milliseconds\n for (const part of parts) {\n const match = part.match(/(\\d+)\\s*\\((\\w+)\\)/);\n if (match) {\n const [_, value, unit] = match;\n const numValue = parseInt(value, 10);\n const unitUpper = unit.toUpperCase();\n\n // Check if value exceeds maximum\n if (numValue >= maxValues[unitUpper]) {\n // Convert to next larger unit\n const nextUnit = this.getNextLargerUnit(unitUpper);\n if (nextUnit) {\n const convertedValue = this.convertToLargerUnit(numValue, unitUpper, nextUnit);\n totalMilliseconds += this.unitToMilliseconds(convertedValue.value, convertedValue.unit);\n } else {\n totalMilliseconds += this.unitToMilliseconds(numValue, unitUpper);\n }\n } else {\n totalMilliseconds += this.unitToMilliseconds(numValue, unitUpper);\n }\n }\n }\n\n return totalMilliseconds;\n }\n\n private getNextLargerUnit(unit: string): string {\n const units = ['MILLISECOND', 'SECOND', 'MINUTE', 'HOUR', 'DAY', 'WEEK', 'MONTH', 'YEAR'];\n const currentIndex = units.indexOf(unit);\n return currentIndex < units.length - 1 ? units[currentIndex + 1] : null;\n }\n\n private convertToLargerUnit(value: number, fromUnit: string, toUnit: string): { value: number; unit: string } {\n const conversionRates = {\n MILLISECOND: { SECOND: 1000 },\n SECOND: { MINUTE: 60 },\n MINUTE: { HOUR: 60 },\n HOUR: { DAY: 24 },\n DAY: { WEEK: 7 },\n WEEK: { MONTH: 4 },\n MONTH: { YEAR: 12 },\n };\n\n if (conversionRates[fromUnit] && conversionRates[fromUnit][toUnit]) {\n const rate = conversionRates[fromUnit][toUnit];\n return {\n value: Math.floor(value / rate),\n unit: toUnit,\n };\n }\n\n return { value, unit: fromUnit };\n }\n\n private unitToMilliseconds(value: number, unit: string): number {\n switch (unit) {\n case 'YEAR':\n return value * 31536000000; // 365 days\n case 'MONTH':\n return value * 2592000000; // 30 days\n case 'WEEK':\n return value * 604800000; // 7 days\n case 'DAY':\n return value * 86400000; // 24 hours\n case 'HOUR':\n return value * 3600000; // 60 minutes\n case 'MINUTE':\n return value * 60000; // 60 seconds\n case 'SECOND':\n return value * 1000;\n case 'MILLISECOND':\n return value;\n default:\n return 0;\n }\n }\n\n private millisecondsToMask(milliseconds: number): string {\n if (milliseconds <= 0) return '';\n\n const units = [\n { name: 'YEAR', value: 31536000000 },\n { name: 'MONTH', value: 2592000000 },\n { name: 'WEEK', value: 604800000 },\n { name: 'DAY', value: 86400000 },\n { name: 'HOUR', value: 3600000 },\n { name: 'MINUTE', value: 60000 },\n { name: 'SECOND', value: 1000 },\n { name: 'MILLISECOND', value: 1 },\n ];\n\n let remaining = milliseconds;\n const parts: string[] = [];\n\n for (const unit of units) {\n if (remaining >= unit.value) {\n const value = Math.floor(remaining / unit.value);\n remaining = remaining % unit.value;\n parts.push(`${value.toString().padStart(2, '0')}(${unit.name})`);\n }\n }\n\n return parts.join(':');\n }\n\n private updateMask() {\n const allUnits = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n const startIndex = allUnits.indexOf(this.valueStart());\n const endIndex = allUnits.indexOf(this.valueEnd());\n\n if (startIndex === -1 || endIndex === -1 || endIndex < startIndex) {\n this.maskOptions.set({ mask: '' });\n return;\n }\n\n const selectedUnits = allUnits.slice(startIndex, endIndex + 1);\n\n const unitPatterns: Record<string, string> = {\n year: `00 (${this.translationService.translateSync('year').toLocaleUpperCase()})`,\n month: `00 (${this.translationService.translateSync('month').toLocaleUpperCase()})`,\n week: `00 (${this.translationService.translateSync('week').toLocaleUpperCase()})`,\n day: `00 (${this.translationService.translateSync('day').toLocaleUpperCase()})`,\n hour: `00 (${this.translationService.translateSync('hour').toLocaleUpperCase()})`,\n minute: `00 (${this.translationService.translateSync('minute').toLocaleUpperCase()})`,\n second: `00 (${this.translationService.translateSync('second').toLocaleUpperCase()})`,\n millisecond: `000 (${this.translationService.translateSync('millisecond').toLocaleUpperCase()})`,\n };\n\n const maskParts = selectedUnits.map((unit) => {\n if (unit === 'hour' || unit === 'minute' || unit === 'second' || unit === 'millisecond') {\n return unitPatterns[unit];\n }\n return unitPatterns[unit];\n });\n\n // Create final mask string, joining properly\n let timePart = '';\n const dateParts = [];\n for (const part of maskParts) {\n if (part.includes('(')) {\n dateParts.push(part);\n } else if (part.includes('.')) {\n timePart += part;\n } else {\n timePart += (timePart ? ':' : '') + part;\n }\n }\n\n const result = dateParts.join(' : ');\n\n this.maskOptions.set({ mask: result });\n }\n}\n","<div class=\"ax-editor-container\">\n <ax-text-box\n [look]=\"look\"\n [placeholder]=\"maskOptions().mask\"\n [mask-options]=\"maskOptions()\"\n [(ngModel)]=\"inputValue\"\n (ngModelChange)=\"onInput($event)\"\n class=\"ax-time-duration-text\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [readonly]=\"readonly\"\n >\n </ax-text-box>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n","import { NgModule } from '@angular/core';\nimport { AXTimeDurationComponent } from './time-duration.component';\n\nconst COMPONENT = [AXTimeDurationComponent];\n\nconst MODULES = [];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXTimeDurationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|