@acorex/components 21.0.3-next.17 → 21.0.3-next.18
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/fesm2022/acorex-components-check-box.mjs +2 -2
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +2 -2
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +1 -1
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +2 -2
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -115,7 +115,7 @@ class AXCheckBoxComponent extends classes((MXValueComponent), MXColorComponent)
|
|
|
115
115
|
multi: true,
|
|
116
116
|
},
|
|
117
117
|
{ provide: AXComponent, useExisting: AXCheckBoxComponent },
|
|
118
|
-
], queries: [{ propertyName: "_labels", predicate: AXLabelComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n @if (isLoading()) {\n <div class=\"ax-loading-container\">\n <ax-loading></ax-loading>\n </div>\n } @else {\n <input\n [id]=\"id\"\n class=\"ax-check-box\"\n type=\"checkbox\"\n [indeterminate]=\"_stateIndeterminate\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n #cb\n />\n <div class=\"ax-checkbox-background\" (click)=\"changeValue()\">\n @if (cb.indeterminate) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <rect x=\"3\" y=\"7\" width=\"10\" height=\"2\" />\n </svg>\n }\n @if (cb.checked) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path\n 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\"\n />\n </svg>\n }\n </div>\n }\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content select=\"ax-label\"></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer components{.ax-checkbox-label{cursor:pointer;width:fit-content;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:calc(var(--spacing,.25rem) * 5);line-height:calc(var(--spacing,.25rem) * 5);-webkit-user-select:none;user-select:none;align-items:flex-start;display:flex}.ax-checkbox-label.ax-state-readonly{opacity:.75}.ax-checkbox-label.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-checkbox-label.ax-state-disabled .ax-check-box:disabled{opacity:1}.ax-checkbox-label .ax-checkbox-start-side{--tw-leading:calc(var(--spacing,.25rem) * 5);line-height:calc(var(--spacing,.25rem) * 5);align-items:center;display:flex;position:relative}.ax-checkbox-label .ax-checkbox-start-side .ax-loading-container{width:calc(var(--spacing,.25rem) * 4)}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box{width:calc(var(--spacing,.25rem) * 4);height:calc(var(--spacing,.25rem) * 4);min-width:calc(var(--spacing,.25rem) * 4);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:var(--radius-sm,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-
|
|
118
|
+
], queries: [{ propertyName: "_labels", predicate: AXLabelComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n @if (isLoading()) {\n <div class=\"ax-loading-container\">\n <ax-loading></ax-loading>\n </div>\n } @else {\n <input\n [id]=\"id\"\n class=\"ax-check-box\"\n type=\"checkbox\"\n [indeterminate]=\"_stateIndeterminate\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n #cb\n />\n <div class=\"ax-checkbox-background\" (click)=\"changeValue()\">\n @if (cb.indeterminate) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <rect x=\"3\" y=\"7\" width=\"10\" height=\"2\" />\n </svg>\n }\n @if (cb.checked) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path\n 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\"\n />\n </svg>\n }\n </div>\n }\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content select=\"ax-label\"></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer components{.ax-checkbox-label{cursor:pointer;width:fit-content;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:calc(var(--spacing,.25rem) * 5);line-height:calc(var(--spacing,.25rem) * 5);-webkit-user-select:none;user-select:none;align-items:flex-start;display:flex}.ax-checkbox-label.ax-state-readonly{opacity:.75}.ax-checkbox-label.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-checkbox-label.ax-state-disabled .ax-check-box:disabled{opacity:1}.ax-checkbox-label .ax-checkbox-start-side{--tw-leading:calc(var(--spacing,.25rem) * 5);line-height:calc(var(--spacing,.25rem) * 5);align-items:center;display:flex;position:relative}.ax-checkbox-label .ax-checkbox-start-side .ax-loading-container{width:calc(var(--spacing,.25rem) * 4)}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box{width:calc(var(--spacing,.25rem) * 4);height:calc(var(--spacing,.25rem) * 4);min-width:calc(var(--spacing,.25rem) * 4);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:var(--radius-sm,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));margin:0}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:where(.ax-dark,.ax-dark *){background-color:rgba(var(--ax-sys-color-darkest-surface))}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:checked,.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:indeterminate{border-color:var(--ax-comp-bg,var(--color-primary));background-color:var(--ax-comp-bg,var(--color-primary));background-repeat:no-repeat;background-size:contain}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:focus-visible,.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:focus{border-color:var(--ax-comp-bg,var(--color-primary));--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--ax-comp-border,rgba(var(--ax-sys-color-primary-surface)))}@supports (color:color-mix(in lab,red,red)){.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:focus-visible,.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:focus{--tw-ring-color:color-mix(in oklab, var(--ax-comp-border,var(--color-primary)) 30%, transparent)}}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:focus-visible,.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:focus{--tw-outline-style:none;outline-style:none}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:disabled{cursor:not-allowed;opacity:.5}.ax-checkbox-label .ax-checkbox-start-side .ax-checkbox-background{position:absolute}.ax-checkbox-label .ax-checkbox-start-side .ax-checkbox-background svg{fill:var(--ax-comp-text,var(--color-on-primary))}.ax-checkbox-label .ax-checkbox-end-side{gap:var(--spacing,.25rem);flex-direction:column;display:flex}.ax-checkbox-label .ax-checkbox-end-side ax-label label{margin-bottom:0!important}.ax-checkbox-label .ax-checkbox-end-side ax-form-hint{cursor:text;-webkit-user-select:text;user-select:text;margin:0!important}.ax-checkbox-label .ax-checkbox-end-side ax-label,.ax-checkbox-label .ax-checkbox-end-side ax-form-hint,.ax-checkbox-label .ax-checkbox-end-side .ax-error-container{padding-inline-start:calc(var(--spacing,.25rem) * 3)}}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
119
119
|
}
|
|
120
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXCheckBoxComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
@@ -127,7 +127,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
127
127
|
multi: true,
|
|
128
128
|
},
|
|
129
129
|
{ provide: AXComponent, useExisting: AXCheckBoxComponent },
|
|
130
|
-
], imports: [FormsModule, AXLoadingComponent], template: "<div class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n @if (isLoading()) {\n <div class=\"ax-loading-container\">\n <ax-loading></ax-loading>\n </div>\n } @else {\n <input\n [id]=\"id\"\n class=\"ax-check-box\"\n type=\"checkbox\"\n [indeterminate]=\"_stateIndeterminate\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n #cb\n />\n <div class=\"ax-checkbox-background\" (click)=\"changeValue()\">\n @if (cb.indeterminate) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <rect x=\"3\" y=\"7\" width=\"10\" height=\"2\" />\n </svg>\n }\n @if (cb.checked) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path\n 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\"\n />\n </svg>\n }\n </div>\n }\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content select=\"ax-label\"></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer components{.ax-checkbox-label{cursor:pointer;width:fit-content;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:calc(var(--spacing,.25rem) * 5);line-height:calc(var(--spacing,.25rem) * 5);-webkit-user-select:none;user-select:none;align-items:flex-start;display:flex}.ax-checkbox-label.ax-state-readonly{opacity:.75}.ax-checkbox-label.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-checkbox-label.ax-state-disabled .ax-check-box:disabled{opacity:1}.ax-checkbox-label .ax-checkbox-start-side{--tw-leading:calc(var(--spacing,.25rem) * 5);line-height:calc(var(--spacing,.25rem) * 5);align-items:center;display:flex;position:relative}.ax-checkbox-label .ax-checkbox-start-side .ax-loading-container{width:calc(var(--spacing,.25rem) * 4)}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box{width:calc(var(--spacing,.25rem) * 4);height:calc(var(--spacing,.25rem) * 4);min-width:calc(var(--spacing,.25rem) * 4);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:var(--radius-sm,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-
|
|
130
|
+
], imports: [FormsModule, AXLoadingComponent], template: "<div class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n @if (isLoading()) {\n <div class=\"ax-loading-container\">\n <ax-loading></ax-loading>\n </div>\n } @else {\n <input\n [id]=\"id\"\n class=\"ax-check-box\"\n type=\"checkbox\"\n [indeterminate]=\"_stateIndeterminate\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n #cb\n />\n <div class=\"ax-checkbox-background\" (click)=\"changeValue()\">\n @if (cb.indeterminate) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <rect x=\"3\" y=\"7\" width=\"10\" height=\"2\" />\n </svg>\n }\n @if (cb.checked) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path\n 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\"\n />\n </svg>\n }\n </div>\n }\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content select=\"ax-label\"></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer components{.ax-checkbox-label{cursor:pointer;width:fit-content;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:calc(var(--spacing,.25rem) * 5);line-height:calc(var(--spacing,.25rem) * 5);-webkit-user-select:none;user-select:none;align-items:flex-start;display:flex}.ax-checkbox-label.ax-state-readonly{opacity:.75}.ax-checkbox-label.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-checkbox-label.ax-state-disabled .ax-check-box:disabled{opacity:1}.ax-checkbox-label .ax-checkbox-start-side{--tw-leading:calc(var(--spacing,.25rem) * 5);line-height:calc(var(--spacing,.25rem) * 5);align-items:center;display:flex;position:relative}.ax-checkbox-label .ax-checkbox-start-side .ax-loading-container{width:calc(var(--spacing,.25rem) * 4)}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box{width:calc(var(--spacing,.25rem) * 4);height:calc(var(--spacing,.25rem) * 4);min-width:calc(var(--spacing,.25rem) * 4);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:var(--radius-sm,.25rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));margin:0}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:where(.ax-dark,.ax-dark *){background-color:rgba(var(--ax-sys-color-darkest-surface))}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:checked,.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:indeterminate{border-color:var(--ax-comp-bg,var(--color-primary));background-color:var(--ax-comp-bg,var(--color-primary));background-repeat:no-repeat;background-size:contain}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:focus-visible,.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:focus{border-color:var(--ax-comp-bg,var(--color-primary));--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--ax-comp-border,rgba(var(--ax-sys-color-primary-surface)))}@supports (color:color-mix(in lab,red,red)){.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:focus-visible,.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:focus{--tw-ring-color:color-mix(in oklab, var(--ax-comp-border,var(--color-primary)) 30%, transparent)}}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:focus-visible,.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:focus{--tw-outline-style:none;outline-style:none}.ax-checkbox-label .ax-checkbox-start-side .ax-check-box:disabled{cursor:not-allowed;opacity:.5}.ax-checkbox-label .ax-checkbox-start-side .ax-checkbox-background{position:absolute}.ax-checkbox-label .ax-checkbox-start-side .ax-checkbox-background svg{fill:var(--ax-comp-text,var(--color-on-primary))}.ax-checkbox-label .ax-checkbox-end-side{gap:var(--spacing,.25rem);flex-direction:column;display:flex}.ax-checkbox-label .ax-checkbox-end-side ax-label label{margin-bottom:0!important}.ax-checkbox-label .ax-checkbox-end-side ax-form-hint{cursor:text;-webkit-user-select:text;user-select:text;margin:0!important}.ax-checkbox-label .ax-checkbox-end-side ax-label,.ax-checkbox-label .ax-checkbox-end-side ax-form-hint,.ax-checkbox-label .ax-checkbox-end-side .ax-error-container{padding-inline-start:calc(var(--spacing,.25rem) * 3)}}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
131
131
|
}], propDecorators: { isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], _labels: [{
|
|
132
132
|
type: ContentChildren,
|
|
133
133
|
args: [AXLabelComponent]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-check-box.mjs","sources":["../../../../packages/components/check-box/src/lib/check-box.component.ts","../../../../packages/components/check-box/src/lib/check-box.component.html","../../../../packages/components/check-box/src/lib/check-box.module.ts","../../../../packages/components/check-box/src/acorex-components-check-box.ts"],"sourcesContent":["import { AXComponent, AXValuableComponent, MXColorComponent, MXValueComponent } from '@acorex/cdk/common';\n\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n HostBinding,\n HostListener,\n Input,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n input,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * A checkbox component that allows users to select or deselect an option.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-check-box',\n templateUrl: './check-box.component.html',\n styleUrls: ['./check-box.component.compiled.css'],\n inputs: ['disabled', 'tabIndex', 'readonly', 'color', 'value', 'name', 'id'],\n outputs: ['onBlur', 'onFocus', 'valueChange', 'onValueChanged'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: AXValuableComponent, useExisting: AXCheckBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXCheckBoxComponent),\n multi: true,\n },\n { provide: AXComponent, useExisting: AXCheckBoxComponent },\n ],\n imports: [FormsModule, AXLoadingComponent],\n})\nexport class AXCheckBoxComponent extends classes(MXValueComponent<boolean>, MXColorComponent) {\n isLoading = input(false);\n\n /**\n * @ignore\n */\n @ContentChildren(AXLabelComponent)\n private _labels: QueryList<AXLabelComponent>;\n\n /**\n * Sets the checkbox to an indeterminate state.\n *\n * @defaultValue false\n */\n @Input()\n public indeterminate = false;\n\n /**\n * @ignore\n */\n protected _stateIndeterminate = false;\n\n /**\n * @ignore\n */\n protected override internalGetValue(value: unknown): boolean | null {\n if (!this.indeterminate && value == null) {\n return false;\n }\n if (this.indeterminate && value == null) {\n return null;\n }\n return coerceBooleanProperty(value);\n }\n\n /**\n * Sets the checkbox state based on the provided value.\n *\n * @param value - `boolean` or `null`. Determines if the checkbox is checked, unchecked, or indeterminate.\n */\n override internalSetValue(value: boolean | null) {\n if (this.indeterminate && value == null) {\n this._stateIndeterminate = true;\n return null;\n } else if (!this.indeterminate && value == null) {\n this._stateIndeterminate = false;\n return false;\n } else {\n this._stateIndeterminate = false;\n return value == true ? true : false;\n }\n }\n\n /**\n * @ignore\n */\n protected override ngOnInit(): void {\n super.ngOnInit();\n //\n this.registerValidation();\n }\n\n /**\n * @ignore\n */\n\n ngAfterViewInit() {\n this._labels?.forEach((c) => {\n //TODO: remove listener\n c.getHostElement().addEventListener('click', () => {\n this.changeValue();\n });\n });\n }\n\n /**\n * @ignore\n */\n @HostListener('click', ['$event'])\n _handleClick(e: UIEvent) {\n e.stopPropagation();\n if (this.readonly || this.disabled || this.isLoading()) {\n e.preventDefault();\n return false;\n }\n return true;\n }\n\n /**\n * @ignore\n */\n protected _handleModelChange(value: boolean | null) {\n this.commitValue(value, true);\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string {\n return `${this.color ? this.color : 'ax-primary'}`;\n }\n\n protected changeValue() {\n if (!this.readonly && !this.disabled && !this.isLoading()) {\n this.commitValue(!this.value, true);\n }\n }\n}\n","<div class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n @if (isLoading()) {\n <div class=\"ax-loading-container\">\n <ax-loading></ax-loading>\n </div>\n } @else {\n <input\n [id]=\"id\"\n class=\"ax-check-box\"\n type=\"checkbox\"\n [indeterminate]=\"_stateIndeterminate\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n #cb\n />\n <div class=\"ax-checkbox-background\" (click)=\"changeValue()\">\n @if (cb.indeterminate) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <rect x=\"3\" y=\"7\" width=\"10\" height=\"2\" />\n </svg>\n }\n @if (cb.checked) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path\n 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\"\n />\n </svg>\n }\n </div>\n }\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content select=\"ax-label\"></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { AXCheckBoxComponent } from './check-box.component';\n\n@NgModule({\n imports: [AXCheckBoxComponent],\n exports: [AXCheckBoxComponent],\n})\nexport class AXCheckBoxModule {}\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-check-box.mjs","sources":["../../../../packages/components/check-box/src/lib/check-box.component.ts","../../../../packages/components/check-box/src/lib/check-box.component.html","../../../../packages/components/check-box/src/lib/check-box.module.ts","../../../../packages/components/check-box/src/acorex-components-check-box.ts"],"sourcesContent":["import { AXComponent, AXValuableComponent, MXColorComponent, MXValueComponent } from '@acorex/cdk/common';\n\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n HostBinding,\n HostListener,\n Input,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n input,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * A checkbox component that allows users to select or deselect an option.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-check-box',\n templateUrl: './check-box.component.html',\n styleUrls: ['./check-box.component.compiled.css'],\n inputs: ['disabled', 'tabIndex', 'readonly', 'color', 'value', 'name', 'id'],\n outputs: ['onBlur', 'onFocus', 'valueChange', 'onValueChanged'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: AXValuableComponent, useExisting: AXCheckBoxComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXCheckBoxComponent),\n multi: true,\n },\n { provide: AXComponent, useExisting: AXCheckBoxComponent },\n ],\n imports: [FormsModule, AXLoadingComponent],\n})\nexport class AXCheckBoxComponent extends classes(MXValueComponent<boolean>, MXColorComponent) {\n isLoading = input(false);\n\n /**\n * @ignore\n */\n @ContentChildren(AXLabelComponent)\n private _labels: QueryList<AXLabelComponent>;\n\n /**\n * Sets the checkbox to an indeterminate state.\n *\n * @defaultValue false\n */\n @Input()\n public indeterminate = false;\n\n /**\n * @ignore\n */\n protected _stateIndeterminate = false;\n\n /**\n * @ignore\n */\n protected override internalGetValue(value: unknown): boolean | null {\n if (!this.indeterminate && value == null) {\n return false;\n }\n if (this.indeterminate && value == null) {\n return null;\n }\n return coerceBooleanProperty(value);\n }\n\n /**\n * Sets the checkbox state based on the provided value.\n *\n * @param value - `boolean` or `null`. Determines if the checkbox is checked, unchecked, or indeterminate.\n */\n override internalSetValue(value: boolean | null) {\n if (this.indeterminate && value == null) {\n this._stateIndeterminate = true;\n return null;\n } else if (!this.indeterminate && value == null) {\n this._stateIndeterminate = false;\n return false;\n } else {\n this._stateIndeterminate = false;\n return value == true ? true : false;\n }\n }\n\n /**\n * @ignore\n */\n protected override ngOnInit(): void {\n super.ngOnInit();\n //\n this.registerValidation();\n }\n\n /**\n * @ignore\n */\n\n ngAfterViewInit() {\n this._labels?.forEach((c) => {\n //TODO: remove listener\n c.getHostElement().addEventListener('click', () => {\n this.changeValue();\n });\n });\n }\n\n /**\n * @ignore\n */\n @HostListener('click', ['$event'])\n _handleClick(e: UIEvent) {\n e.stopPropagation();\n if (this.readonly || this.disabled || this.isLoading()) {\n e.preventDefault();\n return false;\n }\n return true;\n }\n\n /**\n * @ignore\n */\n protected _handleModelChange(value: boolean | null) {\n this.commitValue(value, true);\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n private get __hostClass(): string {\n return `${this.color ? this.color : 'ax-primary'}`;\n }\n\n protected changeValue() {\n if (!this.readonly && !this.disabled && !this.isLoading()) {\n this.commitValue(!this.value, true);\n }\n }\n}\n","<div class=\"ax-checkbox-label\" [class.ax-state-readonly]=\"readonly\" [class.ax-state-disabled]=\"disabled\">\n <div class=\"ax-checkbox-start-side\">\n @if (isLoading()) {\n <div class=\"ax-loading-container\">\n <ax-loading></ax-loading>\n </div>\n } @else {\n <input\n [id]=\"id\"\n class=\"ax-check-box\"\n type=\"checkbox\"\n [indeterminate]=\"_stateIndeterminate\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n #cb\n />\n <div class=\"ax-checkbox-background\" (click)=\"changeValue()\">\n @if (cb.indeterminate) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <rect x=\"3\" y=\"7\" width=\"10\" height=\"2\" />\n </svg>\n }\n @if (cb.checked) {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path\n 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\"\n />\n </svg>\n }\n </div>\n }\n </div>\n <div class=\"ax-checkbox-end-side\">\n <ng-content select=\"ax-label\"></ng-content>\n <ng-content select=\"ax-form-hint\"></ng-content>\n <span class=\"ax-error-container\"></span>\n </div>\n</div>\n<ng-content select=\"ax-validation-rule\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { AXCheckBoxComponent } from './check-box.component';\n\n@NgModule({\n imports: [AXCheckBoxComponent],\n exports: [AXCheckBoxComponent],\n})\nexport class AXCheckBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -23,11 +23,11 @@ class AXKBDItemComponent extends NXComponent {
|
|
|
23
23
|
return text.charAt(0).toUpperCase() + text.slice(1);
|
|
24
24
|
}
|
|
25
25
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXKBDItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXKBDItemComponent, isStandalone: true, selector: "ax-kbd-item", inputs: { keys: { classPropertyName: "keys", publicName: "keys", isSignal: true, isRequired: false, transformFunction: null }, join: { classPropertyName: "join", publicName: "join", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { look: "lookChange" }, providers: [{ provide: AXComponent, useExisting: AXKBDItemComponent }], usesInheritance: true, ngImport: i0, template: "@let localKeys = keys();\n\n@if (typeof localKeys === 'string') {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(localKeys.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(localKeys) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ localKeys.toLocaleUpperCase() }}</span>\n }\n </kbd>\n} @else {\n @if (join() === 'split') {\n @for (key of localKeys; track $index) {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(key) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ key.toLocaleUpperCase() }}</span>\n }\n </kbd>\n @if (
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXKBDItemComponent, isStandalone: true, selector: "ax-kbd-item", inputs: { keys: { classPropertyName: "keys", publicName: "keys", isSignal: true, isRequired: false, transformFunction: null }, join: { classPropertyName: "join", publicName: "join", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { look: "lookChange" }, providers: [{ provide: AXComponent, useExisting: AXKBDItemComponent }], usesInheritance: true, ngImport: i0, template: "@let localKeys = keys();\n\n@if (typeof localKeys === 'string') {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(localKeys.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(localKeys) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ localKeys.toLocaleUpperCase() }}</span>\n }\n </kbd>\n} @else {\n @if (join() === 'split') {\n @for (key of localKeys; track $index) {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(key) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ key.toLocaleUpperCase() }}</span>\n }\n </kbd>\n @if (!$last) {\n <ax-icon class=\"ax-icon ax-icon-plus\"></ax-icon>\n }\n }\n } @else {\n <kbd [class]=\"lookClass()\">\n <div class=\"ax-kbd-inner-text\">\n @for (key of localKeys; track $index) {\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(key) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ key.toLocaleUpperCase() }}</span>\n }\n @if (!$last) {\n <ax-icon class=\"ax-icon ax-icon-plus\"></ax-icon>\n }\n }\n </div>\n </kbd>\n }\n}\n", dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
27
27
|
}
|
|
28
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXKBDItemComponent, decorators: [{
|
|
29
29
|
type: Component,
|
|
30
|
-
args: [{ selector: 'ax-kbd-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXKBDItemComponent }], imports: [AXDecoratorModule], template: "@let localKeys = keys();\n\n@if (typeof localKeys === 'string') {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(localKeys.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(localKeys) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ localKeys.toLocaleUpperCase() }}</span>\n }\n </kbd>\n} @else {\n @if (join() === 'split') {\n @for (key of localKeys; track $index) {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(key) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ key.toLocaleUpperCase() }}</span>\n }\n </kbd>\n @if (
|
|
30
|
+
args: [{ selector: 'ax-kbd-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXKBDItemComponent }], imports: [AXDecoratorModule], template: "@let localKeys = keys();\n\n@if (typeof localKeys === 'string') {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(localKeys.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(localKeys) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ localKeys.toLocaleUpperCase() }}</span>\n }\n </kbd>\n} @else {\n @if (join() === 'split') {\n @for (key of localKeys; track $index) {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(key) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ key.toLocaleUpperCase() }}</span>\n }\n </kbd>\n @if (!$last) {\n <ax-icon class=\"ax-icon ax-icon-plus\"></ax-icon>\n }\n }\n } @else {\n <kbd [class]=\"lookClass()\">\n <div class=\"ax-kbd-inner-text\">\n @for (key of localKeys; track $index) {\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(key) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ key.toLocaleUpperCase() }}</span>\n }\n @if (!$last) {\n <ax-icon class=\"ax-icon ax-icon-plus\"></ax-icon>\n }\n }\n </div>\n </kbd>\n }\n}\n" }]
|
|
31
31
|
}], propDecorators: { keys: [{ type: i0.Input, args: [{ isSignal: true, alias: "keys", required: false }] }], join: [{ type: i0.Input, args: [{ isSignal: true, alias: "join", required: false }] }], look: [{ type: i0.Input, args: [{ isSignal: true, alias: "look", required: false }] }, { type: i0.Output, args: ["lookChange"] }] } });
|
|
32
32
|
|
|
33
33
|
class AXKBDComponent extends NXComponent {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-kbd.mjs","sources":["../../../../packages/components/kbd/src/lib/kbd-item/kbd-item.component.ts","../../../../packages/components/kbd/src/lib/kbd-item/kbd-item.component.html","../../../../packages/components/kbd/src/lib/kbd.component.ts","../../../../packages/components/kbd/src/lib/kbd.component.html","../../../../packages/components/kbd/src/acorex-components-kbd.ts"],"sourcesContent":["import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { ChangeDetectionStrategy, Component, computed, input, model, signal, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-kbd-item',\n templateUrl: './kbd-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXKBDItemComponent }],\n imports: [AXDecoratorModule],\n})\nexport class AXKBDItemComponent extends NXComponent {\n keys = input<string[] | string>();\n\n modifierKeys = signal(['ctrl', 'shift', 'alt', 'meta', 'esc', 'del', 'delete', 'win']);\n\n join = input<'split' | 'joined'>('joined');\n\n look = model<'fill' | 'solid'>('solid');\n\n lookClass = computed(() => `ax-${this.look()} ax-default`);\n\n /**\n * Capitalizes the first letter of the provided text.\n *\n * @param text Input text to transform\n * @returns The text with its first character uppercased\n */\n protected capitalizeFirstLetter(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n }\n}\n","@let localKeys = keys();\n\n@if (typeof localKeys === 'string') {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(localKeys.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(localKeys) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ localKeys.toLocaleUpperCase() }}</span>\n }\n </kbd>\n} @else {\n @if (join() === 'split') {\n @for (key of localKeys; track $index) {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(key) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ key.toLocaleUpperCase() }}</span>\n }\n </kbd>\n @if (
|
|
1
|
+
{"version":3,"file":"acorex-components-kbd.mjs","sources":["../../../../packages/components/kbd/src/lib/kbd-item/kbd-item.component.ts","../../../../packages/components/kbd/src/lib/kbd-item/kbd-item.component.html","../../../../packages/components/kbd/src/lib/kbd.component.ts","../../../../packages/components/kbd/src/lib/kbd.component.html","../../../../packages/components/kbd/src/acorex-components-kbd.ts"],"sourcesContent":["import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { ChangeDetectionStrategy, Component, computed, input, model, signal, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-kbd-item',\n templateUrl: './kbd-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXKBDItemComponent }],\n imports: [AXDecoratorModule],\n})\nexport class AXKBDItemComponent extends NXComponent {\n keys = input<string[] | string>();\n\n modifierKeys = signal(['ctrl', 'shift', 'alt', 'meta', 'esc', 'del', 'delete', 'win']);\n\n join = input<'split' | 'joined'>('joined');\n\n look = model<'fill' | 'solid'>('solid');\n\n lookClass = computed(() => `ax-${this.look()} ax-default`);\n\n /**\n * Capitalizes the first letter of the provided text.\n *\n * @param text Input text to transform\n * @returns The text with its first character uppercased\n */\n protected capitalizeFirstLetter(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n }\n}\n","@let localKeys = keys();\n\n@if (typeof localKeys === 'string') {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(localKeys.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(localKeys) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ localKeys.toLocaleUpperCase() }}</span>\n }\n </kbd>\n} @else {\n @if (join() === 'split') {\n @for (key of localKeys; track $index) {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(key) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ key.toLocaleUpperCase() }}</span>\n }\n </kbd>\n @if (!$last) {\n <ax-icon class=\"ax-icon ax-icon-plus\"></ax-icon>\n }\n }\n } @else {\n <kbd [class]=\"lookClass()\">\n <div class=\"ax-kbd-inner-text\">\n @for (key of localKeys; track $index) {\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n <span class=\"ax-kbd-text\"> {{ capitalizeFirstLetter(key) }}</span>\n } @else {\n <span class=\"ax-kbd-text\"> {{ key.toLocaleUpperCase() }}</span>\n }\n @if (!$last) {\n <ax-icon class=\"ax-icon ax-icon-plus\"></ax-icon>\n }\n }\n </div>\n </kbd>\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, contentChildren, effect, input, ViewEncapsulation } from '@angular/core';\nimport { AXKBDItemComponent } from './kbd-item/kbd-item.component';\n\n@Component({\n selector: 'ax-kbd',\n templateUrl: './kbd.component.html',\n styleUrls: ['./kbd.component.compiled.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXKBDComponent }],\n})\nexport class AXKBDComponent extends NXComponent {\n private kbdItem = contentChildren(AXKBDItemComponent, { descendants: true });\n\n look = input<'fill' | 'solid'>(null);\n\n #eff = effect(() => {\n if (!this.look()) return;\n this.kbdItem().forEach((kbd) => {\n kbd.look.set(this.look());\n });\n });\n}\n","<ng-content select=\"ax-kbd-item\"></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -348,7 +348,7 @@ class AXPopupService {
|
|
|
348
348
|
closeOnBackdropClick: false,
|
|
349
349
|
data: {},
|
|
350
350
|
closeOnNavigation: true,
|
|
351
|
-
panelClass: ['animate-fadeIn', 'animate-
|
|
351
|
+
panelClass: ['animate-fadeIn', 'animate-slow'],
|
|
352
352
|
};
|
|
353
353
|
if (typeof arg2 === 'string') {
|
|
354
354
|
config.title = arg2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-popup.mjs","sources":["../../../../packages/components/popup/src/lib/popup.component.ts","../../../../packages/components/popup/src/lib/popup.component.html","../../../../packages/components/popup/src/lib/popup.interface.ts","../../../../packages/components/popup/src/lib/popup.service.ts","../../../../packages/components/popup/src/lib/popup.module.ts","../../../../packages/components/popup/src/acorex-components-popup.ts"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n DestroyRef,\n HostListener,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\nimport { AXClosableComponent, AXComponent, AXComponentClosing, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXComponentInputs, AXComponentService, AXComponentType } from '@acorex/core/components';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } from './popup.interface';\n\n/**\n * The Popup is a component which displays content in a dialog overlay\n *\n * @category Components\n */\n@Component({\n selector: 'ax-popup',\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-popup-host',\n style: 'display: block; max-width: 100%;',\n },\n providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ],\n imports: [AXDecoratorCloseButtonComponent, AsyncPipe, AXTranslatorPipe, AXFocusTrapDirective],\n})\nexport class AXPopupComponent extends MXBaseComponent implements OnInit, OnDestroy {\n private _zone = inject(NgZone);\n private loadingService = inject(AXLoadingService);\n private _platform = inject(AXPlatform);\n private componentService = inject(AXComponentService);\n private _router = inject(Router, { optional: true });\n private _destroyRef = inject(DestroyRef);\n\n @ViewChild('contentContainer', { read: ViewContainerRef, static: true })\n private contentContainerRef: ViewContainerRef;\n\n @ViewChild('contentContainer', { static: true })\n private contentContainerEl: { nativeElement: HTMLElement };\n\n // Inputs from overlay service\n readonly __content__ = input<AXPopupContentType>();\n readonly __config__ = input<AXPopupConfig>();\n readonly __popupRef__ = input<AXPopupRef>();\n readonly __id__ = input<number>();\n\n /**\n * Indicates whether the component is loading.\n * @defaultValue true\n */\n isLoading = true;\n\n /** @ignore */\n private _loadingId: number;\n\n /** @ignore */\n private _componentRef: ComponentRef<unknown> | null = null;\n\n /** Current title */\n protected title = signal<string>('');\n\n /** @ignore */\n protected isDragging = signal(false);\n\n /** @ignore */\n protected dragOffset = signal({ x: 0, y: 0 });\n\n /** @ignore */\n private dragStartPos = { x: 0, y: 0 };\n\n /** @ignore */\n private elementStartPos = { x: 0, y: 0 };\n\n /** @ignore */\n override ngOnInit() {\n super.ngOnInit();\n\n const config = this.__config__();\n if (this._platform.is('SM')) {\n // Disable dragging on small screens\n if (config) {\n config.draggable = false;\n }\n }\n\n this.title.set(config?.title ?? '');\n\n this._loadingId = this.loadingService.show({\n location: this.getHostElement(),\n });\n\n this._setupCloseOnNavigation();\n\n this.renderContent();\n }\n\n /**\n * Subscribes to router navigation events so the popup is closed automatically\n * when the user navigates to another route. Enabled by default; disable via\n * `closeOnNavigation: false` in the popup config.\n * @ignore\n */\n private _setupCloseOnNavigation() {\n if (!this._router) return;\n if (this.__config__()?.closeOnNavigation === false) return;\n\n this._router.events\n .pipe(\n filter((event): event is NavigationStart => event instanceof NavigationStart),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this.close();\n });\n }\n\n /** @ignore */\n private async renderContent() {\n const content = this.__content__();\n const config = this.__config__();\n\n if (!content) {\n this.loadingService.hide(this._loadingId);\n return;\n }\n\n if (content instanceof TemplateRef) {\n // Render template using ViewContainerRef (supports context)\n this.contentContainerRef.createEmbeddedView(content, {\n $implicit: config?.data,\n ref: this,\n });\n this.handleContentRendered();\n } else if (typeof content === 'function') {\n // Render component\n const componentRef = this.componentService.createFromComponent(content as AXComponentType<unknown>);\n this._componentRef = componentRef;\n\n // Expose component instance to the popup ref\n const popupRef = this.__popupRef__();\n if (popupRef) {\n popupRef.componentInstance = componentRef.instance;\n }\n\n // Get component input definitions to check before setting inputs\n const inputDefs = (componentRef.componentType as unknown as { ɵcmp?: { inputs?: Record<string, unknown> } })?.ɵcmp\n ?.inputs;\n\n // Set data inputs (only if the component has the input defined)\n if (config?.data && typeof config.data === 'object') {\n Object.entries(config.data).forEach(([key, value]) => {\n (componentRef.instance as Record<string, unknown>)[key] = value;\n });\n }\n\n if (config?.inputs && typeof config.inputs === 'object') {\n Object.entries(config.inputs).forEach(([key, value]) => {\n if (inputDefs && key in inputDefs) {\n componentRef.setInput(key, value);\n }\n });\n }\n\n // Set popup reference (only if the component has this input)\n if (inputDefs && '__popup__' in inputDefs) {\n componentRef.setInput('__popup__', this.__popupRef__());\n }\n\n // Move component to container\n const hostElement = componentRef.location.nativeElement;\n this.contentContainerEl.nativeElement.appendChild(hostElement);\n\n // Subscribe to close event if available\n const instance = componentRef.instance as {\n onClosed?: { subscribe: (fn: (e: { data?: unknown }) => void) => void };\n };\n if (instance.onClosed) {\n instance.onClosed.subscribe((e) => {\n this.close(e.data);\n });\n }\n\n this.handleContentRendered();\n }\n }\n\n /** @ignore */\n private handleContentRendered() {\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n const body = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-body-container');\n const content = body.children[0];\n\n if (!content || !body) return;\n\n const popHeader = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-header-container');\n const popFooter = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-footer-container');\n\n const footer = content.querySelector<HTMLDivElement>(':scope > ax-footer');\n const header = content.querySelector<HTMLDivElement>(':scope > ax-header');\n\n if (footer && popFooter) {\n popFooter.append(footer);\n }\n if (header && popHeader) {\n popHeader.innerHTML = '';\n popHeader.append(header);\n }\n this.focus();\n });\n });\n this.loadingService.hide(this._loadingId);\n this.cdr.markForCheck();\n }\n\n /** @ignore */\n @HostListener('keydown.escape')\n onKeydownHandler() {\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (this.__config__()?.closeButton && focusedOrHasFocused) {\n this.close();\n }\n }\n\n /** @ignore */\n protected _handleCloseClick() {\n this.close();\n }\n\n /** @ignore */\n ngOnDestroy() {\n this.loadingService.hide(this._loadingId);\n if (this._componentRef) {\n this._componentRef.destroy();\n this._componentRef = null;\n }\n }\n\n /**\n * Sets focus on the `.ax-popup` element within the host element after a short delay.\n */\n focus() {\n setTimeout(() => this.getHostElement().querySelector<HTMLDivElement>('.ax-popup')?.focus());\n }\n\n /**\n * Closes the popup, emitting component reference, host element, and optional data.\n * @param {unknown} [data]\n */\n close(data?: unknown) {\n const closeFn = () => {\n this.__popupRef__()?.close(data);\n };\n\n const componentInstance = this._componentRef?.instance as\n | { onClosing?: (e: AXComponentClosing) => void | Promise<void> }\n | undefined;\n\n if (typeof componentInstance?.onClosing === 'function') {\n const ee: AXComponentClosing = {\n cancel: false,\n data,\n };\n const closingResult = componentInstance.onClosing(ee);\n if (closingResult instanceof Promise) {\n closingResult.then(() => {\n if (!ee.cancel) {\n closeFn();\n }\n });\n } else {\n if (!ee.cancel) {\n closeFn();\n }\n }\n } else {\n closeFn();\n }\n }\n\n /**\n * Sets inputs on the content component.\n * @param values - Object containing input values to set\n */\n setContentInputs(values: AXComponentInputs) {\n const componentRef = this._componentRef;\n if (componentRef) {\n Object.entries(values).forEach(([key, value]) => {\n componentRef.setInput(key, value);\n });\n }\n }\n\n /**\n * Sets the popup title.\n * @param title - The new title\n */\n setTitle(title: string) {\n this.title.set(title);\n this.cdr.markForCheck();\n }\n\n // Drag functionality\n protected onDragStart(event: MouseEvent) {\n const config = this.__config__();\n if (!config?.draggable) return;\n\n this.isDragging.set(true);\n this.dragStartPos = { x: event.clientX, y: event.clientY };\n\n const popup = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup');\n if (popup) {\n const rect = popup.getBoundingClientRect();\n this.elementStartPos = { x: rect.left, y: rect.top };\n }\n\n event.preventDefault();\n }\n\n @HostListener('document:mousemove', ['$event'])\n onDragMove(event: MouseEvent) {\n if (!this.isDragging()) return;\n\n const deltaX = event.clientX - this.dragStartPos.x;\n const deltaY = event.clientY - this.dragStartPos.y;\n\n this.dragOffset.set({\n x: this.elementStartPos.x + deltaX,\n y: this.elementStartPos.y + deltaY,\n });\n }\n\n @HostListener('document:mouseup')\n onDragEnd() {\n this.isDragging.set(false);\n }\n}\n","<div class=\"ax-popup-wrapper\" aria-modal=\"true\" axFocusTrap>\n <div\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [style.position]=\"dragOffset().x || dragOffset().y ? 'fixed' : null\"\n [style.left.px]=\"dragOffset().x || null\"\n [style.top.px]=\"dragOffset().y || null\"\n [style.transform]=\"dragOffset().x || dragOffset().y ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable\"\n (mousedown)=\"onDragStart($event)\"\n >\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n @if (__config__()?.closeButton) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>\n","import { AXComponentInputs, AXComponentType } from '@acorex/core/components';\nimport { Directive, input, StaticProvider, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type AXPopupContentType = TemplateRef<unknown> | AXComponentType<unknown>;\n\nexport type AXPopupSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'fit';\n\nexport interface AXPopupConfig {\n title?: string;\n closeButton?: boolean;\n header?: boolean;\n maximizable?: boolean;\n size?: AXPopupSizeType;\n /** @deprecated Use `inputs` instead to pass data to the popup component. */\n data?: unknown;\n inputs?: unknown;\n draggable?: boolean;\n hasBackdrop?: boolean;\n backdropClass?: string;\n closeOnBackdropClick?: boolean;\n closeOnNavigation?: boolean;\n viewContainerRef?: ViewContainerRef;\n providers?: StaticProvider[];\n panelClass?: string[];\n direction?: 'rtl' | 'ltr';\n}\n\nexport interface AXPopupData {\n title: string;\n closeButton: boolean;\n header: boolean;\n maximizable: boolean;\n size: AXPopupSizeType;\n data?: unknown;\n draggable: boolean;\n content: AXPopupContentType;\n}\n\nexport interface AXPopupRef<TResult = any> {\n close: (data?: TResult) => void;\n setInputs: (values: AXComponentInputs) => void;\n setTitle: (title: string) => void;\n /** Brings this popup to the front of all other overlays */\n bringToFront: () => void;\n onClose: Subject<TResult>;\n /** The component instance rendered inside the popup (available after content is rendered) */\n componentInstance?: unknown;\n}\n\n@Directive()\nexport abstract class AXPopupComponentBase {\n __popup__ = input<AXPopupRef>();\n\n public close(data: any = null) {\n this.__popup__().close(data);\n }\n\n public setTitle(title: string) {\n this.__popup__().setTitle(title);\n }\n\n public bringToFront() {\n this.__popup__().bringToFront();\n }\n}\n","import { AXComponentClosedPromise } from '@acorex/cdk/common';\nimport { AXOverlayRef, AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, inject, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } from './popup.interface';\n\n/**\n * This is a service which you can create popup with it\n *\n * @category Components\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPopupService {\n private popupList = new Map<number, { overlay: AXOverlayRef<AXPopupComponent>; popup: AXPopupRef }>();\n private overlayService = inject(AXOverlayService);\n\n /**\n * Open popup 1\n */\n open(content: AXPopupContentType, title: string): AXComponentClosedPromise;\n /**\n * Open popup 2\n */\n open(content: AXPopupContentType, config?: AXPopupConfig): AXComponentClosedPromise;\n\n /**\n * @ignore\n */\n open(arg1: AXPopupContentType, arg2: string | AXPopupConfig): AXComponentClosedPromise {\n let config: AXPopupConfig = {\n closeButton: true,\n header: true,\n size: 'md',\n maximizable: false,\n draggable: true,\n hasBackdrop: true,\n closeOnBackdropClick: false,\n data: {},\n closeOnNavigation: true,\n panelClass: ['animate-fadeIn', 'animate-faster'],\n };\n if (typeof arg2 === 'string') {\n config.title = arg2;\n } else {\n config = Object.assign(config, arg2);\n }\n\n const promise = new AXComponentClosedPromise((resolve) => {\n this.openInternal(arg1, config).then((ref) => {\n ref.onClose.subscribe((data) => {\n if (resolve) {\n resolve({\n sender: ref.componentInstance,\n data: data,\n });\n }\n });\n });\n });\n\n return promise;\n }\n\n /**\n * Opens a popup with the specified content and configuration.\n * @param content - Component or template to display\n * @param config - Configuration options for the popup\n * @returns Promise<AXPopupRef> - Reference to the opened popup\n */\n private async openInternal<TResult = any>(\n content: AXPopupContentType,\n config: AXPopupConfig,\n ): Promise<AXPopupRef<TResult>> {\n const randomId = Math.floor(Math.random() * 100000000000);\n const onClose = new Subject<TResult>();\n\n const returnRef: AXPopupRef<TResult> = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values: AXComponentInputs) => {\n this.setInputs(randomId, values);\n },\n setTitle: (title: string) => {\n this.setTitle(randomId, title);\n },\n bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n };\n\n // Build panel classes\n const panelClasses = ['ax-popup-overlay'];\n if (config.panelClass) {\n panelClasses.push(...config.panelClass);\n }\n\n const ref = await this.overlayService.create(AXPopupComponent, {\n backdrop: {\n enabled: config.hasBackdrop ?? true,\n background: true,\n closeOnClick: config.closeOnBackdropClick ?? false,\n },\n panelClass: panelClasses,\n inputs: {\n __content__: content,\n __config__: config,\n __popupRef__: returnRef,\n __id__: randomId,\n },\n });\n\n this.popupList.set(randomId, { overlay: ref, popup: returnRef });\n\n return returnRef;\n }\n\n /**\n * Closes a popup by its ID.\n * @param id - The popup ID to close\n * @param data - Optional data to pass to the close event\n */\n close<TResult = any>(id: number, data?: TResult): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.overlay.dispose();\n this.popupList.delete(id);\n }\n\n /**\n * Sets input values for a popup by its ID.\n * @param id - The popup ID\n * @param values - Object containing input values to set\n */\n setInputs(id: number, values: AXComponentInputs): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setContentInputs(values);\n }\n }\n\n /**\n * Sets the title for a popup by its ID.\n * @param id - The popup ID\n * @param title - The new title\n */\n setTitle(id: number, title: string): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setTitle(title);\n }\n }\n\n /**\n * Brings a popup to the front of all other overlays.\n * @param id - The popup ID to bring to front\n */\n bringToFront(id: number): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\n }\n}\n","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\n\nconst COMPONENT = [AXPopupComponent];\nconst MODULES = [CommonModule, AXCommonModule, AXDecoratorModule, AXTranslationModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXPopupService],\n})\nexport class AXPopupModule {}\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-popup.mjs","sources":["../../../../packages/components/popup/src/lib/popup.component.ts","../../../../packages/components/popup/src/lib/popup.component.html","../../../../packages/components/popup/src/lib/popup.interface.ts","../../../../packages/components/popup/src/lib/popup.service.ts","../../../../packages/components/popup/src/lib/popup.module.ts","../../../../packages/components/popup/src/acorex-components-popup.ts"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n DestroyRef,\n HostListener,\n inject,\n input,\n NgZone,\n OnDestroy,\n OnInit,\n signal,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\n\nimport { AXClosableComponent, AXComponent, AXComponentClosing, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXComponentInputs, AXComponentService, AXComponentType } from '@acorex/core/components';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } from './popup.interface';\n\n/**\n * The Popup is a component which displays content in a dialog overlay\n *\n * @category Components\n */\n@Component({\n selector: 'ax-popup',\n templateUrl: './popup.component.html',\n styleUrls: ['./popup.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ax-popup-host',\n style: 'display: block; max-width: 100%;',\n },\n providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ],\n imports: [AXDecoratorCloseButtonComponent, AsyncPipe, AXTranslatorPipe, AXFocusTrapDirective],\n})\nexport class AXPopupComponent extends MXBaseComponent implements OnInit, OnDestroy {\n private _zone = inject(NgZone);\n private loadingService = inject(AXLoadingService);\n private _platform = inject(AXPlatform);\n private componentService = inject(AXComponentService);\n private _router = inject(Router, { optional: true });\n private _destroyRef = inject(DestroyRef);\n\n @ViewChild('contentContainer', { read: ViewContainerRef, static: true })\n private contentContainerRef: ViewContainerRef;\n\n @ViewChild('contentContainer', { static: true })\n private contentContainerEl: { nativeElement: HTMLElement };\n\n // Inputs from overlay service\n readonly __content__ = input<AXPopupContentType>();\n readonly __config__ = input<AXPopupConfig>();\n readonly __popupRef__ = input<AXPopupRef>();\n readonly __id__ = input<number>();\n\n /**\n * Indicates whether the component is loading.\n * @defaultValue true\n */\n isLoading = true;\n\n /** @ignore */\n private _loadingId: number;\n\n /** @ignore */\n private _componentRef: ComponentRef<unknown> | null = null;\n\n /** Current title */\n protected title = signal<string>('');\n\n /** @ignore */\n protected isDragging = signal(false);\n\n /** @ignore */\n protected dragOffset = signal({ x: 0, y: 0 });\n\n /** @ignore */\n private dragStartPos = { x: 0, y: 0 };\n\n /** @ignore */\n private elementStartPos = { x: 0, y: 0 };\n\n /** @ignore */\n override ngOnInit() {\n super.ngOnInit();\n\n const config = this.__config__();\n if (this._platform.is('SM')) {\n // Disable dragging on small screens\n if (config) {\n config.draggable = false;\n }\n }\n\n this.title.set(config?.title ?? '');\n\n this._loadingId = this.loadingService.show({\n location: this.getHostElement(),\n });\n\n this._setupCloseOnNavigation();\n\n this.renderContent();\n }\n\n /**\n * Subscribes to router navigation events so the popup is closed automatically\n * when the user navigates to another route. Enabled by default; disable via\n * `closeOnNavigation: false` in the popup config.\n * @ignore\n */\n private _setupCloseOnNavigation() {\n if (!this._router) return;\n if (this.__config__()?.closeOnNavigation === false) return;\n\n this._router.events\n .pipe(\n filter((event): event is NavigationStart => event instanceof NavigationStart),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe(() => {\n this.close();\n });\n }\n\n /** @ignore */\n private async renderContent() {\n const content = this.__content__();\n const config = this.__config__();\n\n if (!content) {\n this.loadingService.hide(this._loadingId);\n return;\n }\n\n if (content instanceof TemplateRef) {\n // Render template using ViewContainerRef (supports context)\n this.contentContainerRef.createEmbeddedView(content, {\n $implicit: config?.data,\n ref: this,\n });\n this.handleContentRendered();\n } else if (typeof content === 'function') {\n // Render component\n const componentRef = this.componentService.createFromComponent(content as AXComponentType<unknown>);\n this._componentRef = componentRef;\n\n // Expose component instance to the popup ref\n const popupRef = this.__popupRef__();\n if (popupRef) {\n popupRef.componentInstance = componentRef.instance;\n }\n\n // Get component input definitions to check before setting inputs\n const inputDefs = (componentRef.componentType as unknown as { ɵcmp?: { inputs?: Record<string, unknown> } })?.ɵcmp\n ?.inputs;\n\n // Set data inputs (only if the component has the input defined)\n if (config?.data && typeof config.data === 'object') {\n Object.entries(config.data).forEach(([key, value]) => {\n (componentRef.instance as Record<string, unknown>)[key] = value;\n });\n }\n\n if (config?.inputs && typeof config.inputs === 'object') {\n Object.entries(config.inputs).forEach(([key, value]) => {\n if (inputDefs && key in inputDefs) {\n componentRef.setInput(key, value);\n }\n });\n }\n\n // Set popup reference (only if the component has this input)\n if (inputDefs && '__popup__' in inputDefs) {\n componentRef.setInput('__popup__', this.__popupRef__());\n }\n\n // Move component to container\n const hostElement = componentRef.location.nativeElement;\n this.contentContainerEl.nativeElement.appendChild(hostElement);\n\n // Subscribe to close event if available\n const instance = componentRef.instance as {\n onClosed?: { subscribe: (fn: (e: { data?: unknown }) => void) => void };\n };\n if (instance.onClosed) {\n instance.onClosed.subscribe((e) => {\n this.close(e.data);\n });\n }\n\n this.handleContentRendered();\n }\n }\n\n /** @ignore */\n private handleContentRendered() {\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n const body = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-body-container');\n const content = body.children[0];\n\n if (!content || !body) return;\n\n const popHeader = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-header-container');\n const popFooter = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup-footer-container');\n\n const footer = content.querySelector<HTMLDivElement>(':scope > ax-footer');\n const header = content.querySelector<HTMLDivElement>(':scope > ax-header');\n\n if (footer && popFooter) {\n popFooter.append(footer);\n }\n if (header && popHeader) {\n popHeader.innerHTML = '';\n popHeader.append(header);\n }\n this.focus();\n });\n });\n this.loadingService.hide(this._loadingId);\n this.cdr.markForCheck();\n }\n\n /** @ignore */\n @HostListener('keydown.escape')\n onKeydownHandler() {\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (this.__config__()?.closeButton && focusedOrHasFocused) {\n this.close();\n }\n }\n\n /** @ignore */\n protected _handleCloseClick() {\n this.close();\n }\n\n /** @ignore */\n ngOnDestroy() {\n this.loadingService.hide(this._loadingId);\n if (this._componentRef) {\n this._componentRef.destroy();\n this._componentRef = null;\n }\n }\n\n /**\n * Sets focus on the `.ax-popup` element within the host element after a short delay.\n */\n focus() {\n setTimeout(() => this.getHostElement().querySelector<HTMLDivElement>('.ax-popup')?.focus());\n }\n\n /**\n * Closes the popup, emitting component reference, host element, and optional data.\n * @param {unknown} [data]\n */\n close(data?: unknown) {\n const closeFn = () => {\n this.__popupRef__()?.close(data);\n };\n\n const componentInstance = this._componentRef?.instance as\n | { onClosing?: (e: AXComponentClosing) => void | Promise<void> }\n | undefined;\n\n if (typeof componentInstance?.onClosing === 'function') {\n const ee: AXComponentClosing = {\n cancel: false,\n data,\n };\n const closingResult = componentInstance.onClosing(ee);\n if (closingResult instanceof Promise) {\n closingResult.then(() => {\n if (!ee.cancel) {\n closeFn();\n }\n });\n } else {\n if (!ee.cancel) {\n closeFn();\n }\n }\n } else {\n closeFn();\n }\n }\n\n /**\n * Sets inputs on the content component.\n * @param values - Object containing input values to set\n */\n setContentInputs(values: AXComponentInputs) {\n const componentRef = this._componentRef;\n if (componentRef) {\n Object.entries(values).forEach(([key, value]) => {\n componentRef.setInput(key, value);\n });\n }\n }\n\n /**\n * Sets the popup title.\n * @param title - The new title\n */\n setTitle(title: string) {\n this.title.set(title);\n this.cdr.markForCheck();\n }\n\n // Drag functionality\n protected onDragStart(event: MouseEvent) {\n const config = this.__config__();\n if (!config?.draggable) return;\n\n this.isDragging.set(true);\n this.dragStartPos = { x: event.clientX, y: event.clientY };\n\n const popup = this.getHostElement().querySelector<HTMLDivElement>('.ax-popup');\n if (popup) {\n const rect = popup.getBoundingClientRect();\n this.elementStartPos = { x: rect.left, y: rect.top };\n }\n\n event.preventDefault();\n }\n\n @HostListener('document:mousemove', ['$event'])\n onDragMove(event: MouseEvent) {\n if (!this.isDragging()) return;\n\n const deltaX = event.clientX - this.dragStartPos.x;\n const deltaY = event.clientY - this.dragStartPos.y;\n\n this.dragOffset.set({\n x: this.elementStartPos.x + deltaX,\n y: this.elementStartPos.y + deltaY,\n });\n }\n\n @HostListener('document:mouseup')\n onDragEnd() {\n this.isDragging.set(false);\n }\n}\n","<div class=\"ax-popup-wrapper\" aria-modal=\"true\" axFocusTrap>\n <div\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [style.position]=\"dragOffset().x || dragOffset().y ? 'fixed' : null\"\n [style.left.px]=\"dragOffset().x || null\"\n [style.top.px]=\"dragOffset().y || null\"\n [style.transform]=\"dragOffset().x || dragOffset().y ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable\"\n (mousedown)=\"onDragStart($event)\"\n >\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n @if (__config__()?.closeButton) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\"></div>\n </div>\n </div>\n</div>\n","import { AXComponentInputs, AXComponentType } from '@acorex/core/components';\nimport { Directive, input, StaticProvider, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type AXPopupContentType = TemplateRef<unknown> | AXComponentType<unknown>;\n\nexport type AXPopupSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | 'fit';\n\nexport interface AXPopupConfig {\n title?: string;\n closeButton?: boolean;\n header?: boolean;\n maximizable?: boolean;\n size?: AXPopupSizeType;\n /** @deprecated Use `inputs` instead to pass data to the popup component. */\n data?: unknown;\n inputs?: unknown;\n draggable?: boolean;\n hasBackdrop?: boolean;\n backdropClass?: string;\n closeOnBackdropClick?: boolean;\n closeOnNavigation?: boolean;\n viewContainerRef?: ViewContainerRef;\n providers?: StaticProvider[];\n panelClass?: string[];\n direction?: 'rtl' | 'ltr';\n}\n\nexport interface AXPopupData {\n title: string;\n closeButton: boolean;\n header: boolean;\n maximizable: boolean;\n size: AXPopupSizeType;\n data?: unknown;\n draggable: boolean;\n content: AXPopupContentType;\n}\n\nexport interface AXPopupRef<TResult = any> {\n close: (data?: TResult) => void;\n setInputs: (values: AXComponentInputs) => void;\n setTitle: (title: string) => void;\n /** Brings this popup to the front of all other overlays */\n bringToFront: () => void;\n onClose: Subject<TResult>;\n /** The component instance rendered inside the popup (available after content is rendered) */\n componentInstance?: unknown;\n}\n\n@Directive()\nexport abstract class AXPopupComponentBase {\n __popup__ = input<AXPopupRef>();\n\n public close(data: any = null) {\n this.__popup__().close(data);\n }\n\n public setTitle(title: string) {\n this.__popup__().setTitle(title);\n }\n\n public bringToFront() {\n this.__popup__().bringToFront();\n }\n}\n","import { AXComponentClosedPromise } from '@acorex/cdk/common';\nimport { AXOverlayRef, AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, inject, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupConfig, AXPopupContentType, AXPopupRef } from './popup.interface';\n\n/**\n * This is a service which you can create popup with it\n *\n * @category Components\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPopupService {\n private popupList = new Map<number, { overlay: AXOverlayRef<AXPopupComponent>; popup: AXPopupRef }>();\n private overlayService = inject(AXOverlayService);\n\n /**\n * Open popup 1\n */\n open(content: AXPopupContentType, title: string): AXComponentClosedPromise;\n /**\n * Open popup 2\n */\n open(content: AXPopupContentType, config?: AXPopupConfig): AXComponentClosedPromise;\n\n /**\n * @ignore\n */\n open(arg1: AXPopupContentType, arg2: string | AXPopupConfig): AXComponentClosedPromise {\n let config: AXPopupConfig = {\n closeButton: true,\n header: true,\n size: 'md',\n maximizable: false,\n draggable: true,\n hasBackdrop: true,\n closeOnBackdropClick: false,\n data: {},\n closeOnNavigation: true,\n panelClass: ['animate-fadeIn', 'animate-slow'],\n };\n if (typeof arg2 === 'string') {\n config.title = arg2;\n } else {\n config = Object.assign(config, arg2);\n }\n\n const promise = new AXComponentClosedPromise((resolve) => {\n this.openInternal(arg1, config).then((ref) => {\n ref.onClose.subscribe((data) => {\n if (resolve) {\n resolve({\n sender: ref.componentInstance,\n data: data,\n });\n }\n });\n });\n });\n\n return promise;\n }\n\n /**\n * Opens a popup with the specified content and configuration.\n * @param content - Component or template to display\n * @param config - Configuration options for the popup\n * @returns Promise<AXPopupRef> - Reference to the opened popup\n */\n private async openInternal<TResult = any>(\n content: AXPopupContentType,\n config: AXPopupConfig,\n ): Promise<AXPopupRef<TResult>> {\n const randomId = Math.floor(Math.random() * 100000000000);\n const onClose = new Subject<TResult>();\n\n const returnRef: AXPopupRef<TResult> = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values: AXComponentInputs) => {\n this.setInputs(randomId, values);\n },\n setTitle: (title: string) => {\n this.setTitle(randomId, title);\n },\n bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n };\n\n // Build panel classes\n const panelClasses = ['ax-popup-overlay'];\n if (config.panelClass) {\n panelClasses.push(...config.panelClass);\n }\n\n const ref = await this.overlayService.create(AXPopupComponent, {\n backdrop: {\n enabled: config.hasBackdrop ?? true,\n background: true,\n closeOnClick: config.closeOnBackdropClick ?? false,\n },\n panelClass: panelClasses,\n inputs: {\n __content__: content,\n __config__: config,\n __popupRef__: returnRef,\n __id__: randomId,\n },\n });\n\n this.popupList.set(randomId, { overlay: ref, popup: returnRef });\n\n return returnRef;\n }\n\n /**\n * Closes a popup by its ID.\n * @param id - The popup ID to close\n * @param data - Optional data to pass to the close event\n */\n close<TResult = any>(id: number, data?: TResult): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.overlay.dispose();\n this.popupList.delete(id);\n }\n\n /**\n * Sets input values for a popup by its ID.\n * @param id - The popup ID\n * @param values - Object containing input values to set\n */\n setInputs(id: number, values: AXComponentInputs): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setContentInputs(values);\n }\n }\n\n /**\n * Sets the title for a popup by its ID.\n * @param id - The popup ID\n * @param title - The new title\n */\n setTitle(id: number, title: string): void {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance as AXPopupComponent;\n componentInstance.setTitle(title);\n }\n }\n\n /**\n * Brings a popup to the front of all other overlays.\n * @param id - The popup ID to bring to front\n */\n bringToFront(id: number): void {\n const ref = this.popupList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\n }\n}\n","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\n\nconst COMPONENT = [AXPopupComponent];\nconst MODULES = [CommonModule, AXCommonModule, AXDecoratorModule, AXTranslationModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXPopupService],\n})\nexport class AXPopupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ class AXTextAreaComponent extends classes((MXInputBaseValueComponent), MXLookCom
|
|
|
39
39
|
useExisting: forwardRef(() => AXTextAreaComponent),
|
|
40
40
|
multi: true,
|
|
41
41
|
},
|
|
42
|
-
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-editor-container ax-default {{ classNames }} {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <textarea\n #input\n [name]=\"name\"\n [id]=\"id\"\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: ["@layer components{ax-text-area{width:100%}ax-text-area .ax-editor-container{padding-inline:0!important;height:auto!important;padding-bottom:0!important}ax-text-area textarea{background-color:inherit;width:100%;height:fit-content;padding-inline:calc(var(--spacing,.25rem) * 3)
|
|
42
|
+
], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-editor-container ax-default {{ classNames }} {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <textarea\n #input\n [name]=\"name\"\n [id]=\"id\"\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: ["@layer components{ax-text-area{width:100%}ax-text-area .ax-editor-container{padding-inline:0!important;height:auto!important;padding-bottom:0!important}ax-text-area textarea{background-color:inherit;width:100%;height:fit-content;padding-inline:calc(var(--spacing,.25rem) * 3)}ax-text-area textarea:focus{--tw-outline-style:none;outline-style:none}ax-text-area>ax-prefix,ax-text-area>ax-suffix{margin-bottom:calc(var(--spacing,.25rem) * 2);padding:calc(var(--spacing,.25rem) * 3)}ax-text-area .ax-counter{inset-inline-end:calc(var(--spacing,.25rem) * 2);bottom:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));opacity:.5;position:absolute}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\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 }); }
|
|
43
43
|
}
|
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXTextAreaComponent, decorators: [{
|
|
45
45
|
type: Component,
|
|
@@ -64,7 +64,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
64
64
|
useExisting: forwardRef(() => AXTextAreaComponent),
|
|
65
65
|
multi: true,
|
|
66
66
|
},
|
|
67
|
-
], imports: [FormsModule], template: "<div\n class=\"ax-editor-container ax-default {{ classNames }} {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <textarea\n #input\n [name]=\"name\"\n [id]=\"id\"\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: ["@layer components{ax-text-area{width:100%}ax-text-area .ax-editor-container{padding-inline:0!important;height:auto!important;padding-bottom:0!important}ax-text-area textarea{background-color:inherit;width:100%;height:fit-content;padding-inline:calc(var(--spacing,.25rem) * 3)
|
|
67
|
+
], imports: [FormsModule], template: "<div\n class=\"ax-editor-container ax-default {{ classNames }} {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <textarea\n #input\n [name]=\"name\"\n [id]=\"id\"\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: ["@layer components{ax-text-area{width:100%}ax-text-area .ax-editor-container{padding-inline:0!important;height:auto!important;padding-bottom:0!important}ax-text-area textarea{background-color:inherit;width:100%;height:fit-content;padding-inline:calc(var(--spacing,.25rem) * 3)}ax-text-area textarea:focus{--tw-outline-style:none;outline-style:none}ax-text-area>ax-prefix,ax-text-area>ax-suffix{margin-bottom:calc(var(--spacing,.25rem) * 2);padding:calc(var(--spacing,.25rem) * 3)}ax-text-area .ax-counter{inset-inline-end:calc(var(--spacing,.25rem) * 2);bottom:calc(var(--spacing,.25rem) * 2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));opacity:.5;position:absolute}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
68
68
|
}], propDecorators: { input: [{
|
|
69
69
|
type: ViewChild,
|
|
70
70
|
args: ['input']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-text-area.mjs","sources":["../../../../packages/components/text-area/src/lib/text-area.component.ts","../../../../packages/components/text-area/src/lib/text-area.component.html","../../../../packages/components/text-area/src/lib/text-area.module.ts","../../../../packages/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/cdk/common';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * A component that provides a multi-line text input field with support for resizing, validation, and custom styling.\n */\n@Component({\n selector: 'ax-text-area',\n templateUrl: './text-area.component.html',\n styleUrls: ['./text-area.component.compiled.css'],\n inputs: ['disabled', 'tabIndex', 'readonly', 'value', 'state', 'name', 'placeholder', 'maxLength', 'look'],\n outputs: [\n 'onBlur',\n 'onFocus',\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\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('attr.name')\n private get __hostName(): string {\n return this.name;\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 ax-default {{ classNames }} {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <textarea\n #input\n [name]=\"name\"\n [id]=\"id\"\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":";;;;;;;;AAsBA;;AAEG;AAiCG,MAAO,mBAAoB,SAAQ,OAAO,EAAC,yBAAiC,GAAE,eAAe,CAAC,CAAA;AAhCpG,IAAA,WAAA,GAAA;;AAqCE;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAG,CAAC;AAER;;AAEG;QAEH,IAAA,CAAA,WAAW,GAAG,IAAI;AAsCnB,IAAA;;AAjBW,IAAA,kBAAkB,CAAC,KAAoB,EAAA;AAC/C,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC;IAC/B;AAEA,IAAA,IACY,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI;IAClB;8GA3CW,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,CAAA,OAAA,EAAA,YAAA,CAAA,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,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAbnB;AACT,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE;AAC1D,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,mBAAmB,EAAE;AACnE,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,mBAAmB,EAAE;AACnE,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,mBAAmB,EAAE;AAClE,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtDH,ipCAsCA,
|
|
1
|
+
{"version":3,"file":"acorex-components-text-area.mjs","sources":["../../../../packages/components/text-area/src/lib/text-area.component.ts","../../../../packages/components/text-area/src/lib/text-area.component.html","../../../../packages/components/text-area/src/lib/text-area.module.ts","../../../../packages/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/cdk/common';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\n\n/**\n * A component that provides a multi-line text input field with support for resizing, validation, and custom styling.\n */\n@Component({\n selector: 'ax-text-area',\n templateUrl: './text-area.component.html',\n styleUrls: ['./text-area.component.compiled.css'],\n inputs: ['disabled', 'tabIndex', 'readonly', 'value', 'state', 'name', 'placeholder', 'maxLength', 'look'],\n outputs: [\n 'onBlur',\n 'onFocus',\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'readonlyChange',\n 'disabledChange',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n ],\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('attr.name')\n private get __hostName(): string {\n return this.name;\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 ax-default {{ classNames }} {{ look }}\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\"\n>\n <textarea\n #input\n [name]=\"name\"\n [id]=\"id\"\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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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/components",
|
|
3
|
-
"version": "21.0.3-next.
|
|
3
|
+
"version": "21.0.3-next.18",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/core": "21.0.3-next.
|
|
6
|
-
"@acorex/cdk": "21.0.3-next.
|
|
5
|
+
"@acorex/core": "21.0.3-next.18",
|
|
6
|
+
"@acorex/cdk": "21.0.3-next.18",
|
|
7
7
|
"polytype": ">=0.17.0",
|
|
8
8
|
"angular-imask": ">=7.6.1",
|
|
9
9
|
"gridstack": ">=12.0.0",
|