@acorex/components 19.10.0-next.1 → 19.10.0-next.11
Sign up to get free protection for your applications and to get access to all the features.
- package/avatar/lib/avatar.component.d.ts +3 -2
- package/badge/lib/badge.component.d.ts +2 -2
- package/button/lib/button.component.d.ts +1 -6
- package/button-group/lib/button-group-item.component.d.ts +3 -1
- package/button-group/lib/button-group.component.d.ts +6 -7
- package/button-group/lib/button-group.module.d.ts +2 -1
- package/chips/lib/chips.component.d.ts +11 -7
- package/color-box/lib/color-box.component.d.ts +5 -1
- package/color-palette/lib/color-palette-picker.component.d.ts +19 -14
- package/color-palette/lib/color-palette.module.d.ts +2 -1
- package/common/lib/classes/styles.class.d.ts +6 -4
- package/common/lib/components/button-base-component.class.d.ts +0 -1
- package/datetime-picker/lib/datetime-picker.component.d.ts +0 -10
- package/datetime-picker/lib/datetime-picker.module.d.ts +2 -1
- package/decorators/index.d.ts +6 -4
- package/decorators/lib/components/color-indicator/color-indicator.component.d.ts +6 -0
- package/decorators/lib/components/generic-content.component.d.ts +1 -1
- package/decorators/lib/components/heading/heading.component.d.ts +11 -0
- package/decorators/lib/decorators.module.d.ts +8 -6
- package/dialog/lib/dialog.component.d.ts +2 -0
- package/dropdown-button/lib/dropdown-button.component.d.ts +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +3 -3
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +3 -3
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +4 -4
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +5 -4
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +5 -5
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +2 -2
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +2 -2
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +167 -163
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +19 -22
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +4 -4
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +3 -3
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +11 -9
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +6 -6
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-collapse.mjs +4 -4
- package/fesm2022/acorex-components-collapse.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +11 -4
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +344 -326
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +10 -10
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +10 -19
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +16 -16
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +9 -17
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +46 -131
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +10 -8
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +2 -3
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +4 -4
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +17 -23
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +50 -21
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +11 -4
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +5 -5
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +6 -12
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +1 -1
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-file-explorer.mjs +5 -5
- package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +10 -3
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +2 -2
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +42 -57
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +2 -2
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +2 -2
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +56 -0
- package/fesm2022/acorex-components-kbd.mjs.map +1 -0
- package/fesm2022/acorex-components-label.mjs +2 -2
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +2 -2
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +2 -2
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +19 -22
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +5 -5
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +8 -13
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-navbar.mjs +3 -3
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +4 -4
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +6 -20
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +2 -2
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +25 -20
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +4 -4
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +2 -2
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +128 -233
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +2 -2
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +22 -22
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +237 -0
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -0
- package/fesm2022/acorex-components-rail-navigation.mjs +3 -3
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +11 -26
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +6 -6
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +2 -2
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +2 -2
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +11 -11
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +19 -10
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +5 -3
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +2 -2
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +8 -17
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +2 -2
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +2 -2
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-sliding-item.mjs +165 -0
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -0
- package/fesm2022/acorex-components-step-wizard.mjs +2 -2
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +8 -3
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +5 -5
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +3 -3
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +6 -3
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +2 -2
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +7 -7
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +4 -4
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +3 -12
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +2 -2
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +4 -4
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +6 -6
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +25 -25
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/form/lib/form.component.d.ts +3 -2
- package/image-editor/index.d.ts +0 -1
- package/image-editor/lib/image-editor-container/image-editor-container.component.d.ts +22 -3
- package/image-editor/lib/image-editor.module.d.ts +16 -17
- package/kbd/README.md +3 -0
- package/kbd/index.d.ts +3 -0
- package/kbd/lib/kbd-item/kbd-item.component.d.ts +7 -0
- package/kbd/lib/kbd.component.d.ts +7 -0
- package/kbd/lib/kbd.module.d.ts +9 -0
- package/loading/lib/loading-spinner.component.d.ts +6 -2
- package/menu/lib/menu-item.component.d.ts +2 -1
- package/notification/lib/notification.service.d.ts +1 -1
- package/number-box/lib/number-box.component.d.ts +1 -1
- package/package.json +13 -1
- package/paint/lib/paint/paint-view/paint-view.component.d.ts +7 -6
- package/picker/index.d.ts +3 -2
- package/picker/lib/picker-container/picker-container.component.d.ts +7 -0
- package/picker/lib/picker-items/picker-items.component.d.ts +20 -0
- package/picker/lib/picker-title/picker-title.component.d.ts +5 -0
- package/picker/lib/picker.module.d.ts +6 -4
- package/progress-bar/lib/progress-bar.component.d.ts +19 -19
- package/query-builder/README.md +3 -0
- package/query-builder/index.d.ts +2 -0
- package/query-builder/lib/query-builder.component.d.ts +32 -0
- package/query-builder/lib/query-builder.module.d.ts +15 -0
- package/range-slider/lib/range-slider.component.d.ts +1 -1
- package/scheduler/lib/scheduler-month-view.component.d.ts +6 -6
- package/search-box/lib/search-box.component.d.ts +5 -1
- package/select-box/lib/select-box.component.d.ts +1 -1
- package/side-menu/lib/side-menu-item/side-menu-item.component.d.ts +3 -6
- package/side-menu/lib/side-menu.component.d.ts +1 -2
- package/sliding-item/README.md +3 -0
- package/sliding-item/index.d.ts +4 -0
- package/sliding-item/lib/sliding-item/sliding-item.component.d.ts +13 -0
- package/sliding-item/lib/sliding-item-prefix/sliding-item-prefix.component.d.ts +11 -0
- package/sliding-item/lib/sliding-item-suffix/sliding-item-suffix.component.d.ts +11 -0
- package/sliding-item/lib/sliding-item.module.d.ts +11 -0
- package/tabs/lib/tabs.class.d.ts +1 -1
- package/text-area/lib/text-area.component.d.ts +5 -1
- package/time-line/lib/time-line.component.d.ts +1 -1
- package/toast/lib/toast.service.d.ts +1 -1
- package/toolbar/lib/toolbar.component.d.ts +1 -3
- package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +2 -2
- package/image-editor/lib/image-editor-toolbar/image-editor-toolbar.component.d.ts +0 -27
- package/picker/lib/picker-column.directive.d.ts +0 -16
- package/picker/lib/picker.component.d.ts +0 -61
- /package/decorators/lib/components/{clear-button.component.d.ts → clear-button/clear-button.component.d.ts} +0 -0
- /package/decorators/lib/components/{close-button.component.d.ts → close-button/close-button.component.d.ts} +0 -0
- /package/decorators/lib/components/{full-screen-button.component.d.ts → full-screen/full-screen-button.component.d.ts} +0 -0
- /package/decorators/lib/components/{icon.component.d.ts → icon/icon.component.d.ts} +0 -0
@@ -42,11 +42,11 @@ class AXFileExplorerContainerComponent {
|
|
42
42
|
}
|
43
43
|
#effect;
|
44
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXFileExplorerContainerComponent, isStandalone: false, selector: "ax-file-explorer-container", providers: [AXFileExplorerService], viewQueries: [{ propertyName: "drawer", first: true, predicate: AXDrawerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-drawer-container [ngStyle]=\"this.service.treeViewState() ? { width: 'fit-content' } : { width: 0 }\">\n <ax-drawer location=\"start\" mode=\"push\">\n <ax-content>\n <ng-content select=\"ax-tree-view\"></ng-content>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n\n<ax-divider></ax-divider>\n\n<ng-content select=\"ax-file-explorer-view\"></ng-content>\n", styles: ["ax-file-explorer-container{border:1px solid
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXFileExplorerContainerComponent, isStandalone: false, selector: "ax-file-explorer-container", providers: [AXFileExplorerService], viewQueries: [{ propertyName: "drawer", first: true, predicate: AXDrawerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-drawer-container [ngStyle]=\"this.service.treeViewState() ? { width: 'fit-content' } : { width: 0 }\">\n <ax-drawer location=\"start\" mode=\"push\">\n <ax-content>\n <ng-content select=\"ax-tree-view\"></ng-content>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n\n<ax-divider></ax-divider>\n\n<ng-content select=\"ax-file-explorer-view\"></ng-content>\n", styles: ["ax-file-explorer-container{display:flex;min-width:30vw;max-height:40vh;overflow:hidden;border:1px solid rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));border-radius:var(--ax-sys-border-radius)}ax-file-explorer-container ax-divider{display:block;width:1px}ax-file-explorer-container ax-drawer-container{height:auto}ax-file-explorer-container ax-drawer-container ax-drawer ax-content{padding:.5rem;overflow-x:hidden}ax-file-explorer-container ax-drawer-container ax-drawer ax-text{white-space:nowrap;padding-inline-end:1rem}ax-file-explorer-container ax-toolbar{background-color:rgba(var(--ax-sys-color-lighter-surface))}\n"], dependencies: [{ kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3.AXDrawerContainerComponent, selector: "ax-drawer-container" }], encapsulation: i0.ViewEncapsulation.None }); }
|
46
46
|
}
|
47
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerContainerComponent, decorators: [{
|
48
48
|
type: Component,
|
49
|
-
args: [{ selector: 'ax-file-explorer-container', standalone: false, encapsulation: ViewEncapsulation.None, providers: [AXFileExplorerService], template: "<ax-drawer-container [ngStyle]=\"this.service.treeViewState() ? { width: 'fit-content' } : { width: 0 }\">\n <ax-drawer location=\"start\" mode=\"push\">\n <ax-content>\n <ng-content select=\"ax-tree-view\"></ng-content>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n\n<ax-divider></ax-divider>\n\n<ng-content select=\"ax-file-explorer-view\"></ng-content>\n", styles: ["ax-file-explorer-container{border:1px solid
|
49
|
+
args: [{ selector: 'ax-file-explorer-container', standalone: false, encapsulation: ViewEncapsulation.None, providers: [AXFileExplorerService], template: "<ax-drawer-container [ngStyle]=\"this.service.treeViewState() ? { width: 'fit-content' } : { width: 0 }\">\n <ax-drawer location=\"start\" mode=\"push\">\n <ax-content>\n <ng-content select=\"ax-tree-view\"></ng-content>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n\n<ax-divider></ax-divider>\n\n<ng-content select=\"ax-file-explorer-view\"></ng-content>\n", styles: ["ax-file-explorer-container{display:flex;min-width:30vw;max-height:40vh;overflow:hidden;border:1px solid rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));border-radius:var(--ax-sys-border-radius)}ax-file-explorer-container ax-divider{display:block;width:1px}ax-file-explorer-container ax-drawer-container{height:auto}ax-file-explorer-container ax-drawer-container ax-drawer ax-content{padding:.5rem;overflow-x:hidden}ax-file-explorer-container ax-drawer-container ax-drawer ax-text{white-space:nowrap;padding-inline-end:1rem}ax-file-explorer-container ax-toolbar{background-color:rgba(var(--ax-sys-color-lighter-surface))}\n"] }]
|
50
50
|
}] });
|
51
51
|
|
52
52
|
class AXFileExplorerItemComponent extends MXBaseComponent {
|
@@ -60,7 +60,7 @@ class AXFileExplorerItemComponent extends MXBaseComponent {
|
|
60
60
|
this.dbClick.emit();
|
61
61
|
}
|
62
62
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
63
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXFileExplorerItemComponent, isStandalone: false, selector: "ax-file-explorer-item", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, viewMode: { classPropertyName: "viewMode", publicName: "viewMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dbClick: "dbClick" }, usesInheritance: true, ngImport: i0, template: "@if (viewMode() === 'ax-list-icon') {\n <div class=\"ax-list-icon\" (dblclick)=\"dbClickHandler()\">\n <div class=\"ax-thumb-file\">\n <ax-icon [icon]=\"data().icon\"></ax-icon>\n <ax-text>{{ data().text }}</ax-text>\n </div>\n\n @if (data().extension) {\n <ax-text>\n {{ data().size }}\n </ax-text>\n }\n\n <ax-text>\n {{ data().description }}\n </ax-text>\n\n <ax-text>\n {{ data().lastModify }}\n </ax-text>\n </div>\n} @else {\n <div [ngClass]=\"viewMode()\" (dblclick)=\"dbClickHandler()\">\n <ax-icon [icon]=\"data().icon\"></ax-icon>\n <ax-text>{{ data().text }}</ax-text>\n </div>\n}\n", styles: ["ax-file-explorer-item{-webkit-user-select:none;user-select:none;cursor:pointer}ax-file-explorer-item .ax-large-icon,ax-file-explorer-item .ax-small-icon{display:flex;flex-direction:column;justify-content:center;align-items:center}ax-file-explorer-item .ax-small-icon ax-icon{font-size:.9rem}ax-file-explorer-item .ax-small-icon ax-text{font-size:.7rem}ax-file-explorer-item .ax-large-icon ax-icon{font-size:3rem}ax-file-explorer-item .ax-large-icon ax-text{font-size:.8rem}ax-file-explorer-item .ax-list-icon{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.1rem;align-items:center;padding:.3rem;border-bottom:1px solid rgb(var(--ax-color-input-border));margin-bottom:.5rem}ax-file-explorer-item .ax-list-icon ax-icon{font-size:1.2rem;margin-inline-end:.5rem}ax-file-explorer-item .ax-list-icon ax-text{font-size:.8rem}ax-file-explorer-item .ax-list-icon .ax-thumb-file{display:flex}ax-file-explorer-item .ax-list-icon .ax-thumb-file ax-text{max-width:5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-file-explorer-item .ax-list-icon>ax-text{color:rgb(var(--ax-color-neutral-500));max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;justify-content:center}\n"], dependencies: [{ kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXFileExplorerItemComponent, isStandalone: false, selector: "ax-file-explorer-item", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, viewMode: { classPropertyName: "viewMode", publicName: "viewMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dbClick: "dbClick" }, usesInheritance: true, ngImport: i0, template: "@if (viewMode() === 'ax-list-icon') {\n <div class=\"ax-list-icon\" (dblclick)=\"dbClickHandler()\">\n <div class=\"ax-thumb-file\">\n <ax-icon [icon]=\"data().icon\"></ax-icon>\n <ax-text>{{ data().text }}</ax-text>\n </div>\n\n @if (data().extension) {\n <ax-text>\n {{ data().size }}\n </ax-text>\n }\n\n <ax-text>\n {{ data().description }}\n </ax-text>\n\n <ax-text>\n {{ data().lastModify }}\n </ax-text>\n </div>\n} @else {\n <div [ngClass]=\"viewMode()\" (dblclick)=\"dbClickHandler()\">\n <ax-icon [icon]=\"data().icon\"></ax-icon>\n <ax-text>{{ data().text }}</ax-text>\n </div>\n}\n", styles: ["ax-file-explorer-item{-webkit-user-select:none;user-select:none;cursor:pointer}ax-file-explorer-item .ax-large-icon,ax-file-explorer-item .ax-small-icon{display:flex;flex-direction:column;justify-content:center;align-items:center}ax-file-explorer-item .ax-small-icon ax-icon{font-size:.9rem}ax-file-explorer-item .ax-small-icon ax-text{font-size:.7rem}ax-file-explorer-item .ax-large-icon ax-icon{font-size:3rem}ax-file-explorer-item .ax-large-icon ax-text{font-size:.8rem}ax-file-explorer-item .ax-list-icon{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.1rem;align-items:center;padding:.3rem;border-bottom:1px solid rgb(var(--ax-color-input-border));margin-bottom:.5rem}ax-file-explorer-item .ax-list-icon ax-icon{font-size:1.2rem;margin-inline-end:.5rem}ax-file-explorer-item .ax-list-icon ax-text{font-size:.8rem}ax-file-explorer-item .ax-list-icon .ax-thumb-file{display:flex}ax-file-explorer-item .ax-list-icon .ax-thumb-file ax-text{max-width:5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-file-explorer-item .ax-list-icon>ax-text{color:rgb(var(--ax-color-neutral-500));max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;justify-content:center}\n"], dependencies: [{ kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
64
64
|
}
|
65
65
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerItemComponent, decorators: [{
|
66
66
|
type: Component,
|
@@ -177,11 +177,11 @@ class AXFileExplorerViewComponent {
|
|
177
177
|
this.service.treeViewState.update((prev) => !prev);
|
178
178
|
}
|
179
179
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
180
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXFileExplorerViewComponent, isStandalone: false, selector: "ax-file-explorer-view", inputs: { dataCallBack: { classPropertyName: "dataCallBack", publicName: "dataCallBack", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: AXContextMenuComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-toolbar
|
180
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXFileExplorerViewComponent, isStandalone: false, selector: "ax-file-explorer-view", inputs: { dataCallBack: { classPropertyName: "dataCallBack", publicName: "dataCallBack", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "contextMenu", first: true, predicate: AXContextMenuComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-toolbar>\n <ax-prefix>\n <ax-button (onClick)=\"menuToggleHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-menu\"></ax-icon>\n </ax-button>\n\n <ax-divider></ax-divider>\n\n <ax-button (onClick)=\"backButtonHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-up-folder\"></ax-icon>\n </ax-button>\n\n <ax-divider></ax-divider>\n\n <ax-breadcrumbs>\n <ng-template *ngIf=\"false\" #divider> '|' </ng-template>\n @for (item of breadcrumbsData(); track item; let idx = $last) {\n <ax-breadcrumbs-item [active]=\"idx\">\n <p>{{ item }}</p>\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </ax-prefix>\n\n <ax-suffix>\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-text>View</ax-text>\n\n <ax-menu-item (onClick)=\"changeViewHandler('ax-large-icon')\">\n <ax-text>Large</ax-text>\n </ax-menu-item>\n\n <ax-menu-item (onClick)=\"changeViewHandler('ax-small-icon')\">\n <ax-text>Small</ax-text>\n </ax-menu-item>\n\n <ax-menu-item (onClick)=\"changeViewHandler('ax-list-icon')\">\n <ax-text>List</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n\n <ax-divider></ax-divider>\n\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-prefix>\n <ax-icon class=\"ax-icon ax-icon-sort\"></ax-icon>\n </ax-prefix>\n <ax-menu-item (onClick)=\"sortItemHandler('name')\"> <ax-text>Name</ax-text> </ax-menu-item>\n <ax-menu-item (onClick)=\"sortItemHandler('date')\"> <ax-text>Date</ax-text> </ax-menu-item>\n <ax-menu-item (onClick)=\"sortItemHandler('type')\"> <ax-text>Type</ax-text> </ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n </ax-suffix>\n</ax-toolbar>\n\n<div [ngClass]=\"viewMode()\" class=\"ax-file-container\">\n @for (item of showData(); track item.id) {\n <ax-file-explorer-item id=\"ax-file-explore-item-ref\" (dbClick)=\"dbclickHandler(item)\" [data]=\"item\" [viewMode]=\"viewMode()\"></ax-file-explorer-item>\n }\n</div>\n<ax-context-menu\n target=\"#ax-file-explore-item-ref\"\n orientation=\"vertical\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n>\n</ax-context-menu>\n", styles: ["ax-file-explorer-view{flex-grow:1}ax-file-explorer-view .ax-file-container.ax-large-icon,ax-file-explorer-view .ax-file-container.ax-small-icon{display:flex;flex-wrap:wrap;padding:.5rem;overflow:auto;gap:.6rem}ax-file-explorer-view .ax-file-container.ax-list-icon{overflow:auto;height:100%;padding:.5rem}ax-file-explorer-view ax-toolbar{border-bottom:1px solid rgb(var(--ax-sys-color-border-lightest-surface));width:100%;justify-content:space-between}ax-file-explorer-view ax-toolbar ax-menu.ax-action-list-horizontal{min-width:fit-content}ax-file-explorer-view ax-toolbar ax-prefix{flex-wrap:nowrap}ax-file-explorer-view ax-toolbar .ax-start-toolbar-divider{display:none}ax-file-explorer-view ax-toolbar button{padding:0}\n"], dependencies: [{ kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: i2$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i3$1.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i3$1.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.AXToolBarComponent, selector: "ax-toolbar" }, { kind: "component", type: i6.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["name", "data", "disabled", "color"], outputs: ["onClick"] }, { kind: "component", type: i6.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn", "closeOn", "items", "hasArrow"], outputs: ["onItemClick"] }, { kind: "component", type: i6.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "component", type: AXFileExplorerItemComponent, selector: "ax-file-explorer-item", inputs: ["data", "viewMode"], outputs: ["dbClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
181
181
|
}
|
182
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFileExplorerViewComponent, decorators: [{
|
183
183
|
type: Component,
|
184
|
-
args: [{ selector: 'ax-file-explorer-view', standalone: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-toolbar
|
184
|
+
args: [{ selector: 'ax-file-explorer-view', standalone: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-toolbar>\n <ax-prefix>\n <ax-button (onClick)=\"menuToggleHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-menu\"></ax-icon>\n </ax-button>\n\n <ax-divider></ax-divider>\n\n <ax-button (onClick)=\"backButtonHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-up-folder\"></ax-icon>\n </ax-button>\n\n <ax-divider></ax-divider>\n\n <ax-breadcrumbs>\n <ng-template *ngIf=\"false\" #divider> '|' </ng-template>\n @for (item of breadcrumbsData(); track item; let idx = $last) {\n <ax-breadcrumbs-item [active]=\"idx\">\n <p>{{ item }}</p>\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </ax-prefix>\n\n <ax-suffix>\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-text>View</ax-text>\n\n <ax-menu-item (onClick)=\"changeViewHandler('ax-large-icon')\">\n <ax-text>Large</ax-text>\n </ax-menu-item>\n\n <ax-menu-item (onClick)=\"changeViewHandler('ax-small-icon')\">\n <ax-text>Small</ax-text>\n </ax-menu-item>\n\n <ax-menu-item (onClick)=\"changeViewHandler('ax-list-icon')\">\n <ax-text>List</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n\n <ax-divider></ax-divider>\n\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-prefix>\n <ax-icon class=\"ax-icon ax-icon-sort\"></ax-icon>\n </ax-prefix>\n <ax-menu-item (onClick)=\"sortItemHandler('name')\"> <ax-text>Name</ax-text> </ax-menu-item>\n <ax-menu-item (onClick)=\"sortItemHandler('date')\"> <ax-text>Date</ax-text> </ax-menu-item>\n <ax-menu-item (onClick)=\"sortItemHandler('type')\"> <ax-text>Type</ax-text> </ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n </ax-suffix>\n</ax-toolbar>\n\n<div [ngClass]=\"viewMode()\" class=\"ax-file-container\">\n @for (item of showData(); track item.id) {\n <ax-file-explorer-item id=\"ax-file-explore-item-ref\" (dbClick)=\"dbclickHandler(item)\" [data]=\"item\" [viewMode]=\"viewMode()\"></ax-file-explorer-item>\n }\n</div>\n<ax-context-menu\n target=\"#ax-file-explore-item-ref\"\n orientation=\"vertical\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n>\n</ax-context-menu>\n", styles: ["ax-file-explorer-view{flex-grow:1}ax-file-explorer-view .ax-file-container.ax-large-icon,ax-file-explorer-view .ax-file-container.ax-small-icon{display:flex;flex-wrap:wrap;padding:.5rem;overflow:auto;gap:.6rem}ax-file-explorer-view .ax-file-container.ax-list-icon{overflow:auto;height:100%;padding:.5rem}ax-file-explorer-view ax-toolbar{border-bottom:1px solid rgb(var(--ax-sys-color-border-lightest-surface));width:100%;justify-content:space-between}ax-file-explorer-view ax-toolbar ax-menu.ax-action-list-horizontal{min-width:fit-content}ax-file-explorer-view ax-toolbar ax-prefix{flex-wrap:nowrap}ax-file-explorer-view ax-toolbar .ax-start-toolbar-divider{display:none}ax-file-explorer-view ax-toolbar button{padding:0}\n"] }]
|
185
185
|
}] });
|
186
186
|
|
187
187
|
const COMPONENT = [
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-file-explorer.mjs","sources":["../../../../libs/components/file-explorer/src/lib/file-explorer.service.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-container/file-explorer-container.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-container/file-explorer-container.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer-item/file-explorer-item.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-item/file-explorer-item.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer-view/file-explorer-view.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-view/file-explorer-view.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer.module.ts","../../../../libs/components/file-explorer/src/acorex-components-file-explorer.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXFileExplorerService {\n treeViewState = signal(false);\n}\n","import { AXDrawerComponent } from '@acorex/components/drawer';\nimport { Component, effect, inject, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerService } from '../file-explorer.service';\n\n@Component({\n selector: 'ax-file-explorer-container',\n templateUrl: './file-explorer-container.component.html',\n styleUrls: ['./file-explorer-container.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n providers: [AXFileExplorerService],\n})\nexport class AXFileExplorerContainerComponent {\n protected service = inject(AXFileExplorerService);\n protected drawer = viewChild(AXDrawerComponent);\n\n #effect = effect(() => {\n if (this.service.treeViewState()) {\n this.drawer().open();\n } else {\n this.drawer().close();\n }\n });\n}\n","<ax-drawer-container [ngStyle]=\"this.service.treeViewState() ? { width: 'fit-content' } : { width: 0 }\">\n <ax-drawer location=\"start\" mode=\"push\">\n <ax-content>\n <ng-content select=\"ax-tree-view\"></ng-content>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n\n<ax-divider></ax-divider>\n\n<ng-content select=\"ax-file-explorer-view\"></ng-content>\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { ChangeDetectionStrategy, Component, input, output, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerSchema, ViewModeType } from '../file-explorer-types';\n\n@Component({\n selector: 'ax-file-explorer-item',\n templateUrl: './file-explorer-item.component.html',\n styleUrls: ['./file-explorer-item.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFileExplorerItemComponent extends MXBaseComponent {\n data = input<AXFileExplorerSchema>();\n dbClick = output();\n viewMode = input<ViewModeType>();\n\n protected dbClickHandler() {\n this.dbClick.emit();\n }\n\n // protected fileExtensionPreviewHandler(extension: string) {\n // switch (extension) {\n // case '':\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path fill=\"none\" d=\"M18 10L13 10\" stroke-linecap=\"round\"/>\n // <path fill=\"none\" d=\"M10 3H16.5C16.9644 3 17.1966 3 17.3916 3.02567C18.7378 3.2029 19.7971 4.26222 19.9743 5.60842C20 5.80337 20 6.03558 20 6.5\" />\n // <path fill=\"none\" d=\"M2 6.94975C2 6.06722 2 5.62595 2.06935 5.25839C2.37464 3.64031 3.64031 2.37464 5.25839 2.06935C5.62595 2 6.06722 2 6.94975 2C7.33642 2 7.52976 2 7.71557 2.01738C8.51665 2.09229 9.27652 2.40704 9.89594 2.92051C10.0396 3.03961 10.1763 3.17633 10.4497 3.44975L11 4C11.8158 4.81578 12.2237 5.22367 12.7121 5.49543C12.9804 5.64471 13.2651 5.7626 13.5604 5.84678C14.0979 6 14.6747 6 15.8284 6H16.2021C18.8345 6 20.1506 6 21.0062 6.76946C21.0849 6.84024 21.1598 6.91514 21.2305 6.99383C22 7.84935 22 9.16554 22 11.7979V14C22 17.7712 22 19.6569 20.8284 20.8284C19.6569 22 17.7712 22 14 22H10C6.22876 22 4.34315 22 3.17157 20.8284C2 19.6569 2 17.7712 2 14V6.94975Z\" />\n // </svg>`);\n // break;\n // case 'jpg':\n // case 'png':\n // case 'jpeg':\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"-0.5 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path\n // d=\"M21 22H3C2.72 22 2.5 21.6517 2.5 21.2083V3.79167C2.5 3.34833 2.72 3 3 3H21C21.28 3 21.5 3.34833 21.5 3.79167V21.2083C21.5 21.6517 21.28 22 21 22Z\"\n // stroke-miterlimit=\"10\"\n // stroke-linecap=\"round\"\n // stroke-linejoin=\"round\"\n // />\n // <path\n // d=\"M4.5 19.1875L9.66 12.6875C9.86 12.4375 10.24 12.4375 10.44 12.6875L15.6 19.1875\"\n // stroke-miterlimit=\"10\"\n // stroke-linecap=\"round\"\n // stroke-linejoin=\"round\"\n // />\n // <path\n // d=\"M16.2 16.6975L16.4599 16.3275C16.6599 16.0775 17.0399 16.0775 17.2399 16.3275L19.4999 19.1875\"\n // stroke-miterlimit=\"10\"\n // stroke-linecap=\"round\"\n // stroke-linejoin=\"round\"\n // />\n // <path\n // d=\"M17.2046 9.54315C17.2046 10.4294 16.4862 11.1478 15.6 11.1478C14.7138 11.1478 13.9954 10.4294 13.9954 9.54315C13.9954 8.65695 14.7138 7.93854 15.6 7.93854C16.4862 7.93854 17.2046 8.65695 17.2046 9.54315Z\"\n // />\n // </svg>`);\n // break;\n // case 'mp3':\n // case 'wav':\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path\n // fill-rule=\"evenodd\"\n // clip-rule=\"evenodd\"\n // d=\"M10 1C9.73478 1 9.48043 1.10536 9.29289 1.29289L3.29289 7.29289C3.10536 7.48043 3 7.73478 3 8V20C3 21.6569 4.34315 23 6 23H7C7.55228 23 8 22.5523 8 22C8 21.4477 7.55228 21 7 21H6C5.44772 21 5 20.5523 5 20V9H10C10.5523 9 11 8.55228 11 8V3H18C18.5523 3 19 3.44772 19 4V7C19 7.55228 19.4477 8 20 8C20.5523 8 21 7.55228 21 7V4C21 2.34315 19.6569 1 18 1H10ZM9 7H6.41421L9 4.41421V7ZM12.5 24C13.8807 24 15 22.8807 15 21.5V12.8673L20 12.153V18.05C19.8384 18.0172 19.6712 18 19.5 18C18.1193 18 17 19.1193 17 20.5C17 21.8807 18.1193 23 19.5 23C20.8807 23 22 21.8807 22 20.5V11C22 10.7101 21.8742 10.4345 21.6552 10.2445C21.4362 10.0546 21.1456 9.96905 20.8586 10.0101L13.8586 11.0101C13.3659 11.0804 13 11.5023 13 12V19.05C12.8384 19.0172 12.6712 19 12.5 19C11.1193 19 10 20.1193 10 21.5C10 22.8807 11.1193 24 12.5 24Z\"\n // />\n // </svg>`);\n // default:\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"0 0 32 32\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path\n // d=\"M26.731 9.902c-0.005-0.035-0.011-0.066-0.019-0.095l0.001 0.005c-0.031-0.134-0.094-0.249-0.182-0.342l0 0-8-8c-0.092-0.087-0.207-0.15-0.335-0.181l-0.005-0.001c-0.027-0.008-0.059-0.014-0.092-0.019l-0.003-0c-0.026-0.007-0.059-0.014-0.092-0.019l-0.004-0h-12c-0.414 0-0.75 0.336-0.75 0.75v0 28c0 0.414 0.336 0.75 0.75 0.75h20c0.414-0 0.75-0.336 0.75-0.75v0-20c-0.005-0.038-0.012-0.071-0.020-0.103l0.001 0.005zM24.189 9.25h-5.439v-5.439zM6.75 29.25v-26.5h10.5v7.25c0 0.414 0.336 0.75 0.75 0.75h7.25v18.5z\"\n // ></path>\n // </svg>`);\n // }\n // }\n}\n","@if (viewMode() === 'ax-list-icon') {\n <div class=\"ax-list-icon\" (dblclick)=\"dbClickHandler()\">\n <div class=\"ax-thumb-file\">\n <ax-icon [icon]=\"data().icon\"></ax-icon>\n <ax-text>{{ data().text }}</ax-text>\n </div>\n\n @if (data().extension) {\n <ax-text>\n {{ data().size }}\n </ax-text>\n }\n\n <ax-text>\n {{ data().description }}\n </ax-text>\n\n <ax-text>\n {{ data().lastModify }}\n </ax-text>\n </div>\n} @else {\n <div [ngClass]=\"viewMode()\" (dblclick)=\"dbClickHandler()\">\n <ax-icon [icon]=\"data().icon\"></ax-icon>\n <ax-text>{{ data().text }}</ax-text>\n </div>\n}\n","import {\n AXContextMenuComponent,\n AXContextMenuItemsClickEvent,\n AXContextMenuOpeningEvent,\n AXMenuItem,\n} from '@acorex/components/menu';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n input,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXFileExplorerItemComponent } from '../file-explorer-item/file-explorer-item.component';\nimport { AXFileExplorerSchema, ViewModeType } from '../file-explorer-types';\nimport { AXFileExplorerService } from '../file-explorer.service';\n\n@Component({\n selector: 'ax-file-explorer-view',\n templateUrl: './file-explorer-view.component.html',\n styleUrls: ['./file-explorer-view.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFileExplorerViewComponent {\n dataCallBack = input<(selectedItemId?: string | number, sortBy?: 'name' | 'date' | 'type') => any>();\n protected allData = signal<AXFileExplorerSchema[]>([]);\n protected showData = signal<AXFileExplorerSchema[]>([]);\n protected activeFolderId = signal<string | number>(null);\n protected clickedItems = new Set();\n protected breadcrumbsData = signal(['root']);\n protected contextMenu = viewChild(AXContextMenuComponent);\n protected viewMode = signal<ViewModeType>('ax-large-icon');\n protected service = inject(AXFileExplorerService);\n\n #effect = afterNextRender(() => {\n this.setInitialAllData();\n });\n\n #effect2 = effect(() => {\n if (this.activeFolderId()) {\n const result = this.findItemInNestedArray(this.allData(), (item) => item.id === this.activeFolderId());\n this.showData.set(result.childrens);\n } else {\n this.showData.set(this.allData());\n }\n setTimeout(() => {\n this.contextMenu().refresh();\n });\n });\n\n protected async setInitialAllData() {\n const rootData = await this.dataCallBack()();\n this.allData.set(rootData);\n }\n\n protected async dbclickHandler(item?: AXFileExplorerSchema) {\n if (item.extension) return;\n if (!item?.id) return;\n this.activeFolderId.set(item.id);\n const clickedItem = this.findItemInNestedArray(this.allData(), (e) => e.id === item.id);\n this.breadcrumbsData.update((prev) => [...prev, clickedItem.text]);\n let canPass = true;\n this.clickedItems.forEach((e) => {\n if (e === item.id) canPass = false;\n });\n this.clickedItems.add(item.id);\n if (!canPass) return;\n const newChild = await this.dataCallBack()(item.id);\n this.allData.update((prev) => {\n const copy = [...prev];\n const find = this.findItemInNestedArray(copy, (e) => e.id === item.id);\n find.childrens = newChild;\n return copy;\n });\n }\n\n private findItemInNestedArray(array: any[], predicate: (item: any) => boolean) {\n for (const item of array) {\n if (predicate(item)) {\n return item;\n }\n if (item.childrens) {\n const found = this.findItemInNestedArray(item.childrens, predicate);\n if (found) return found;\n }\n }\n return null;\n }\n\n protected backButtonHandler() {\n this.breadcrumbsData.update((prev) => {\n const copy = [...prev];\n if (copy.length !== 1) copy.pop();\n return copy;\n });\n\n const parentId = this.showData()[0].parentId;\n const parent = this.findItemInNestedArray(this.allData(), (item) => item.id === parentId);\n if (parent?.parentId) {\n this.activeFolderId.set(parent.parentId);\n } else {\n this.activeFolderId.set(null);\n }\n }\n\n protected handleContextMenuOpening(e: AXContextMenuOpeningEvent) {\n const target = e.targetElement['__axContext__'] as AXFileExplorerItemComponent;\n\n const items: AXMenuItem[] = [{ text: 'open', data: target } as AXMenuItem];\n e.items.push(...items);\n\n // if (items.length) {\n // e.items.push(...items);\n // } else {\n // e.canceled = true;\n // }\n }\n\n protected handleContextMenuItemClick(e: AXContextMenuItemsClickEvent) {\n console.log(e);\n this.dbclickHandler(e.item.data.data());\n }\n\n protected changeViewHandler(v: ViewModeType) {\n this.viewMode.set(v);\n }\n\n protected async sortItemHandler(sort: 'name' | 'date' | 'type') {\n const newChild = await this.dataCallBack()(this.activeFolderId(), sort);\n }\n\n protected menuToggleHandler() {\n this.service.treeViewState.update((prev) => !prev);\n }\n}\n","<ax-toolbar [dividerState]=\"false\">\n <ax-prefix>\n <ax-button (onClick)=\"menuToggleHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-menu\"></ax-icon>\n </ax-button>\n\n <ax-divider></ax-divider>\n\n <ax-button (onClick)=\"backButtonHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-up-folder\"></ax-icon>\n </ax-button>\n\n <ax-divider></ax-divider>\n\n <ax-breadcrumbs>\n <ng-template *ngIf=\"false\" #divider> '|' </ng-template>\n @for (item of breadcrumbsData(); track item; let idx = $last) {\n <ax-breadcrumbs-item [active]=\"idx\">\n <p>{{ item }}</p>\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </ax-prefix>\n\n <ax-suffix>\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-text>View</ax-text>\n\n <ax-menu-item (onClick)=\"changeViewHandler('ax-large-icon')\">\n <ax-text>Large</ax-text>\n </ax-menu-item>\n\n <ax-menu-item (onClick)=\"changeViewHandler('ax-small-icon')\">\n <ax-text>Small</ax-text>\n </ax-menu-item>\n\n <ax-menu-item (onClick)=\"changeViewHandler('ax-list-icon')\">\n <ax-text>List</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n\n <ax-divider></ax-divider>\n\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-prefix>\n <ax-icon class=\"ax-icon ax-icon-sort\"></ax-icon>\n </ax-prefix>\n <ax-menu-item (onClick)=\"sortItemHandler('name')\"> <ax-text>Name</ax-text> </ax-menu-item>\n <ax-menu-item (onClick)=\"sortItemHandler('date')\"> <ax-text>Date</ax-text> </ax-menu-item>\n <ax-menu-item (onClick)=\"sortItemHandler('type')\"> <ax-text>Type</ax-text> </ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n </ax-suffix>\n</ax-toolbar>\n\n<div [ngClass]=\"viewMode()\" class=\"ax-file-container\">\n @for (item of showData(); track item.id) {\n <ax-file-explorer-item\n id=\"ax-file-explore-item-ref\"\n (dbClick)=\"dbclickHandler(item)\"\n [data]=\"item\"\n [viewMode]=\"viewMode()\"\n ></ax-file-explorer-item>\n }\n</div>\n<ax-context-menu\n target=\"#ax-file-explore-item-ref\"\n orientation=\"vertical\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n>\n</ax-context-menu>\n","import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { AXToolBarModule } from '@acorex/components/toolbar';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFileExplorerContainerComponent } from './file-explorer-container/file-explorer-container.component';\nimport { AXFileExplorerItemComponent } from './file-explorer-item/file-explorer-item.component';\nimport { AXFileExplorerViewComponent } from './file-explorer-view/file-explorer-view.component';\n\nconst COMPONENT = [\n AXFileExplorerContainerComponent,\n AXFileExplorerViewComponent,\n AXFileExplorerItemComponent,\n];\n\nconst MODULES = [\n AXDecoratorModule,\n AXButtonModule,\n AXBreadcrumbsModule,\n CommonModule,\n AXToolBarModule,\n AXMenuModule,\n AXDrawerModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXFileExplorerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i4","i7.AXFileExplorerItemComponent"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-file-explorer.mjs","sources":["../../../../libs/components/file-explorer/src/lib/file-explorer.service.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-container/file-explorer-container.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-container/file-explorer-container.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer-item/file-explorer-item.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-item/file-explorer-item.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer-view/file-explorer-view.component.ts","../../../../libs/components/file-explorer/src/lib/file-explorer-view/file-explorer-view.component.html","../../../../libs/components/file-explorer/src/lib/file-explorer.module.ts","../../../../libs/components/file-explorer/src/acorex-components-file-explorer.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXFileExplorerService {\n treeViewState = signal(false);\n}\n","import { AXDrawerComponent } from '@acorex/components/drawer';\nimport { Component, effect, inject, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerService } from '../file-explorer.service';\n\n@Component({\n selector: 'ax-file-explorer-container',\n templateUrl: './file-explorer-container.component.html',\n styleUrls: ['./file-explorer-container.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n providers: [AXFileExplorerService],\n})\nexport class AXFileExplorerContainerComponent {\n protected service = inject(AXFileExplorerService);\n protected drawer = viewChild(AXDrawerComponent);\n\n #effect = effect(() => {\n if (this.service.treeViewState()) {\n this.drawer().open();\n } else {\n this.drawer().close();\n }\n });\n}\n","<ax-drawer-container [ngStyle]=\"this.service.treeViewState() ? { width: 'fit-content' } : { width: 0 }\">\n <ax-drawer location=\"start\" mode=\"push\">\n <ax-content>\n <ng-content select=\"ax-tree-view\"></ng-content>\n </ax-content>\n </ax-drawer>\n</ax-drawer-container>\n\n<ax-divider></ax-divider>\n\n<ng-content select=\"ax-file-explorer-view\"></ng-content>\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { ChangeDetectionStrategy, Component, input, output, ViewEncapsulation } from '@angular/core';\nimport { AXFileExplorerSchema, ViewModeType } from '../file-explorer-types';\n\n@Component({\n selector: 'ax-file-explorer-item',\n templateUrl: './file-explorer-item.component.html',\n styleUrls: ['./file-explorer-item.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFileExplorerItemComponent extends MXBaseComponent {\n data = input<AXFileExplorerSchema>();\n dbClick = output();\n viewMode = input<ViewModeType>();\n\n protected dbClickHandler() {\n this.dbClick.emit();\n }\n\n // protected fileExtensionPreviewHandler(extension: string) {\n // switch (extension) {\n // case '':\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path fill=\"none\" d=\"M18 10L13 10\" stroke-linecap=\"round\"/>\n // <path fill=\"none\" d=\"M10 3H16.5C16.9644 3 17.1966 3 17.3916 3.02567C18.7378 3.2029 19.7971 4.26222 19.9743 5.60842C20 5.80337 20 6.03558 20 6.5\" />\n // <path fill=\"none\" d=\"M2 6.94975C2 6.06722 2 5.62595 2.06935 5.25839C2.37464 3.64031 3.64031 2.37464 5.25839 2.06935C5.62595 2 6.06722 2 6.94975 2C7.33642 2 7.52976 2 7.71557 2.01738C8.51665 2.09229 9.27652 2.40704 9.89594 2.92051C10.0396 3.03961 10.1763 3.17633 10.4497 3.44975L11 4C11.8158 4.81578 12.2237 5.22367 12.7121 5.49543C12.9804 5.64471 13.2651 5.7626 13.5604 5.84678C14.0979 6 14.6747 6 15.8284 6H16.2021C18.8345 6 20.1506 6 21.0062 6.76946C21.0849 6.84024 21.1598 6.91514 21.2305 6.99383C22 7.84935 22 9.16554 22 11.7979V14C22 17.7712 22 19.6569 20.8284 20.8284C19.6569 22 17.7712 22 14 22H10C6.22876 22 4.34315 22 3.17157 20.8284C2 19.6569 2 17.7712 2 14V6.94975Z\" />\n // </svg>`);\n // break;\n // case 'jpg':\n // case 'png':\n // case 'jpeg':\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"-0.5 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path\n // d=\"M21 22H3C2.72 22 2.5 21.6517 2.5 21.2083V3.79167C2.5 3.34833 2.72 3 3 3H21C21.28 3 21.5 3.34833 21.5 3.79167V21.2083C21.5 21.6517 21.28 22 21 22Z\"\n // stroke-miterlimit=\"10\"\n // stroke-linecap=\"round\"\n // stroke-linejoin=\"round\"\n // />\n // <path\n // d=\"M4.5 19.1875L9.66 12.6875C9.86 12.4375 10.24 12.4375 10.44 12.6875L15.6 19.1875\"\n // stroke-miterlimit=\"10\"\n // stroke-linecap=\"round\"\n // stroke-linejoin=\"round\"\n // />\n // <path\n // d=\"M16.2 16.6975L16.4599 16.3275C16.6599 16.0775 17.0399 16.0775 17.2399 16.3275L19.4999 19.1875\"\n // stroke-miterlimit=\"10\"\n // stroke-linecap=\"round\"\n // stroke-linejoin=\"round\"\n // />\n // <path\n // d=\"M17.2046 9.54315C17.2046 10.4294 16.4862 11.1478 15.6 11.1478C14.7138 11.1478 13.9954 10.4294 13.9954 9.54315C13.9954 8.65695 14.7138 7.93854 15.6 7.93854C16.4862 7.93854 17.2046 8.65695 17.2046 9.54315Z\"\n // />\n // </svg>`);\n // break;\n // case 'mp3':\n // case 'wav':\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path\n // fill-rule=\"evenodd\"\n // clip-rule=\"evenodd\"\n // d=\"M10 1C9.73478 1 9.48043 1.10536 9.29289 1.29289L3.29289 7.29289C3.10536 7.48043 3 7.73478 3 8V20C3 21.6569 4.34315 23 6 23H7C7.55228 23 8 22.5523 8 22C8 21.4477 7.55228 21 7 21H6C5.44772 21 5 20.5523 5 20V9H10C10.5523 9 11 8.55228 11 8V3H18C18.5523 3 19 3.44772 19 4V7C19 7.55228 19.4477 8 20 8C20.5523 8 21 7.55228 21 7V4C21 2.34315 19.6569 1 18 1H10ZM9 7H6.41421L9 4.41421V7ZM12.5 24C13.8807 24 15 22.8807 15 21.5V12.8673L20 12.153V18.05C19.8384 18.0172 19.6712 18 19.5 18C18.1193 18 17 19.1193 17 20.5C17 21.8807 18.1193 23 19.5 23C20.8807 23 22 21.8807 22 20.5V11C22 10.7101 21.8742 10.4345 21.6552 10.2445C21.4362 10.0546 21.1456 9.96905 20.8586 10.0101L13.8586 11.0101C13.3659 11.0804 13 11.5023 13 12V19.05C12.8384 19.0172 12.6712 19 12.5 19C11.1193 19 10 20.1193 10 21.5C10 22.8807 11.1193 24 12.5 24Z\"\n // />\n // </svg>`);\n // default:\n // return this.sanitizer\n // .bypassSecurityTrustHtml(`<svg viewBox=\"0 0 32 32\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n // <path\n // d=\"M26.731 9.902c-0.005-0.035-0.011-0.066-0.019-0.095l0.001 0.005c-0.031-0.134-0.094-0.249-0.182-0.342l0 0-8-8c-0.092-0.087-0.207-0.15-0.335-0.181l-0.005-0.001c-0.027-0.008-0.059-0.014-0.092-0.019l-0.003-0c-0.026-0.007-0.059-0.014-0.092-0.019l-0.004-0h-12c-0.414 0-0.75 0.336-0.75 0.75v0 28c0 0.414 0.336 0.75 0.75 0.75h20c0.414-0 0.75-0.336 0.75-0.75v0-20c-0.005-0.038-0.012-0.071-0.020-0.103l0.001 0.005zM24.189 9.25h-5.439v-5.439zM6.75 29.25v-26.5h10.5v7.25c0 0.414 0.336 0.75 0.75 0.75h7.25v18.5z\"\n // ></path>\n // </svg>`);\n // }\n // }\n}\n","@if (viewMode() === 'ax-list-icon') {\n <div class=\"ax-list-icon\" (dblclick)=\"dbClickHandler()\">\n <div class=\"ax-thumb-file\">\n <ax-icon [icon]=\"data().icon\"></ax-icon>\n <ax-text>{{ data().text }}</ax-text>\n </div>\n\n @if (data().extension) {\n <ax-text>\n {{ data().size }}\n </ax-text>\n }\n\n <ax-text>\n {{ data().description }}\n </ax-text>\n\n <ax-text>\n {{ data().lastModify }}\n </ax-text>\n </div>\n} @else {\n <div [ngClass]=\"viewMode()\" (dblclick)=\"dbClickHandler()\">\n <ax-icon [icon]=\"data().icon\"></ax-icon>\n <ax-text>{{ data().text }}</ax-text>\n </div>\n}\n","import {\n AXContextMenuComponent,\n AXContextMenuItemsClickEvent,\n AXContextMenuOpeningEvent,\n AXMenuItem,\n} from '@acorex/components/menu';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n input,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXFileExplorerItemComponent } from '../file-explorer-item/file-explorer-item.component';\nimport { AXFileExplorerSchema, ViewModeType } from '../file-explorer-types';\nimport { AXFileExplorerService } from '../file-explorer.service';\n\n@Component({\n selector: 'ax-file-explorer-view',\n templateUrl: './file-explorer-view.component.html',\n styleUrls: ['./file-explorer-view.component.scss'],\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFileExplorerViewComponent {\n dataCallBack = input<(selectedItemId?: string | number, sortBy?: 'name' | 'date' | 'type') => any>();\n protected allData = signal<AXFileExplorerSchema[]>([]);\n protected showData = signal<AXFileExplorerSchema[]>([]);\n protected activeFolderId = signal<string | number>(null);\n protected clickedItems = new Set();\n protected breadcrumbsData = signal(['root']);\n protected contextMenu = viewChild(AXContextMenuComponent);\n protected viewMode = signal<ViewModeType>('ax-large-icon');\n protected service = inject(AXFileExplorerService);\n\n #effect = afterNextRender(() => {\n this.setInitialAllData();\n });\n\n #effect2 = effect(() => {\n if (this.activeFolderId()) {\n const result = this.findItemInNestedArray(this.allData(), (item) => item.id === this.activeFolderId());\n this.showData.set(result.childrens);\n } else {\n this.showData.set(this.allData());\n }\n setTimeout(() => {\n this.contextMenu().refresh();\n });\n });\n\n protected async setInitialAllData() {\n const rootData = await this.dataCallBack()();\n this.allData.set(rootData);\n }\n\n protected async dbclickHandler(item?: AXFileExplorerSchema) {\n if (item.extension) return;\n if (!item?.id) return;\n this.activeFolderId.set(item.id);\n const clickedItem = this.findItemInNestedArray(this.allData(), (e) => e.id === item.id);\n this.breadcrumbsData.update((prev) => [...prev, clickedItem.text]);\n let canPass = true;\n this.clickedItems.forEach((e) => {\n if (e === item.id) canPass = false;\n });\n this.clickedItems.add(item.id);\n if (!canPass) return;\n const newChild = await this.dataCallBack()(item.id);\n this.allData.update((prev) => {\n const copy = [...prev];\n const find = this.findItemInNestedArray(copy, (e) => e.id === item.id);\n find.childrens = newChild;\n return copy;\n });\n }\n\n private findItemInNestedArray(array: any[], predicate: (item: any) => boolean) {\n for (const item of array) {\n if (predicate(item)) {\n return item;\n }\n if (item.childrens) {\n const found = this.findItemInNestedArray(item.childrens, predicate);\n if (found) return found;\n }\n }\n return null;\n }\n\n protected backButtonHandler() {\n this.breadcrumbsData.update((prev) => {\n const copy = [...prev];\n if (copy.length !== 1) copy.pop();\n return copy;\n });\n\n const parentId = this.showData()[0].parentId;\n const parent = this.findItemInNestedArray(this.allData(), (item) => item.id === parentId);\n if (parent?.parentId) {\n this.activeFolderId.set(parent.parentId);\n } else {\n this.activeFolderId.set(null);\n }\n }\n\n protected handleContextMenuOpening(e: AXContextMenuOpeningEvent) {\n const target = e.targetElement['__axContext__'] as AXFileExplorerItemComponent;\n\n const items: AXMenuItem[] = [{ text: 'open', data: target } as AXMenuItem];\n e.items.push(...items);\n\n // if (items.length) {\n // e.items.push(...items);\n // } else {\n // e.canceled = true;\n // }\n }\n\n protected handleContextMenuItemClick(e: AXContextMenuItemsClickEvent) {\n console.log(e);\n this.dbclickHandler(e.item.data.data());\n }\n\n protected changeViewHandler(v: ViewModeType) {\n this.viewMode.set(v);\n }\n\n protected async sortItemHandler(sort: 'name' | 'date' | 'type') {\n const newChild = await this.dataCallBack()(this.activeFolderId(), sort);\n }\n\n protected menuToggleHandler() {\n this.service.treeViewState.update((prev) => !prev);\n }\n}\n","<ax-toolbar>\n <ax-prefix>\n <ax-button (onClick)=\"menuToggleHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-menu\"></ax-icon>\n </ax-button>\n\n <ax-divider></ax-divider>\n\n <ax-button (onClick)=\"backButtonHandler()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-up-folder\"></ax-icon>\n </ax-button>\n\n <ax-divider></ax-divider>\n\n <ax-breadcrumbs>\n <ng-template *ngIf=\"false\" #divider> '|' </ng-template>\n @for (item of breadcrumbsData(); track item; let idx = $last) {\n <ax-breadcrumbs-item [active]=\"idx\">\n <p>{{ item }}</p>\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </ax-prefix>\n\n <ax-suffix>\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-text>View</ax-text>\n\n <ax-menu-item (onClick)=\"changeViewHandler('ax-large-icon')\">\n <ax-text>Large</ax-text>\n </ax-menu-item>\n\n <ax-menu-item (onClick)=\"changeViewHandler('ax-small-icon')\">\n <ax-text>Small</ax-text>\n </ax-menu-item>\n\n <ax-menu-item (onClick)=\"changeViewHandler('ax-list-icon')\">\n <ax-text>List</ax-text>\n </ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n\n <ax-divider></ax-divider>\n\n <ax-menu openOn=\"click\" [hasArrow]=\"false\">\n <ax-menu-item>\n <ax-prefix>\n <ax-icon class=\"ax-icon ax-icon-sort\"></ax-icon>\n </ax-prefix>\n <ax-menu-item (onClick)=\"sortItemHandler('name')\"> <ax-text>Name</ax-text> </ax-menu-item>\n <ax-menu-item (onClick)=\"sortItemHandler('date')\"> <ax-text>Date</ax-text> </ax-menu-item>\n <ax-menu-item (onClick)=\"sortItemHandler('type')\"> <ax-text>Type</ax-text> </ax-menu-item>\n </ax-menu-item>\n </ax-menu>\n </ax-suffix>\n</ax-toolbar>\n\n<div [ngClass]=\"viewMode()\" class=\"ax-file-container\">\n @for (item of showData(); track item.id) {\n <ax-file-explorer-item id=\"ax-file-explore-item-ref\" (dbClick)=\"dbclickHandler(item)\" [data]=\"item\" [viewMode]=\"viewMode()\"></ax-file-explorer-item>\n }\n</div>\n<ax-context-menu\n target=\"#ax-file-explore-item-ref\"\n orientation=\"vertical\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n>\n</ax-context-menu>\n","import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { AXToolBarModule } from '@acorex/components/toolbar';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFileExplorerContainerComponent } from './file-explorer-container/file-explorer-container.component';\nimport { AXFileExplorerItemComponent } from './file-explorer-item/file-explorer-item.component';\nimport { AXFileExplorerViewComponent } from './file-explorer-view/file-explorer-view.component';\n\nconst COMPONENT = [\n AXFileExplorerContainerComponent,\n AXFileExplorerViewComponent,\n AXFileExplorerItemComponent,\n];\n\nconst MODULES = [\n AXDecoratorModule,\n AXButtonModule,\n AXBreadcrumbsModule,\n CommonModule,\n AXToolBarModule,\n AXMenuModule,\n AXDrawerModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXFileExplorerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i4","i7.AXFileExplorerItemComponent"],"mappings":"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"}
|
@@ -31,6 +31,13 @@ class AXFormValidationEvent extends AXEvent {
|
|
31
31
|
*/
|
32
32
|
class AXFormComponent extends MXBaseComponent {
|
33
33
|
#applyLooks;
|
34
|
+
ngAfterContentInit() {
|
35
|
+
this.content().forEach((item) => {
|
36
|
+
if (item.input) {
|
37
|
+
item.input.look = this.look();
|
38
|
+
}
|
39
|
+
});
|
40
|
+
}
|
34
41
|
/**
|
35
42
|
* Determines when the form should be updated.
|
36
43
|
*/
|
@@ -345,11 +352,11 @@ class AXFormFieldComponent extends MXBaseComponent {
|
|
345
352
|
return [`ax-state-${this._labelMode()}-label`, `${hasValue && 'ax-state-has-value'}`];
|
346
353
|
}
|
347
354
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
348
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: AXFormFieldComponent, isStandalone: false, selector: "ax-form-field", inputs: { labelMode: { classPropertyName: "labelMode", publicName: "labelMode", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [AXUnsubscriber], queries: [{ propertyName: "input", first: true, predicate: AXValuableComponent, descendants: true }, { propertyName: "label", first: true, predicate: AXLabelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: ["
|
355
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: AXFormFieldComponent, isStandalone: false, selector: "ax-form-field", inputs: { labelMode: { classPropertyName: "labelMode", publicName: "labelMode", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [AXUnsubscriber], queries: [{ propertyName: "input", first: true, predicate: AXValuableComponent, descendants: true }, { propertyName: "label", first: true, predicate: AXLabelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: ["ax-form-field{position:relative;display:block;width:100%}ax-form-field.ax-state-floating-label{--ax-sys-size-base: 3.5rem}ax-form-field.ax-state-floating-label>ax-label{position:absolute;top:calc(var(--ax-sys-size-base, 3.5rem) / 2);transform:translateY(-50%);inset-inline-start:1rem;pointer-events:none;z-index:10;transition:all .15s ease-in-out;display:inline-grid}ax-form-field.ax-state-floating-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-form-field.ax-state-floating-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label{transform:translateY(-115%) translate(-2.5%) scale(.95);inset-inline-start:.25rem;padding:0 .5rem}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label label{font-size:.75rem;color:rgba(var(--ax-sys-body-text-color),.5)}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area{padding-top:.875rem}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-over-label{--ax-sys-size-base: 3.5rem}ax-form-field.ax-state-over-label>ax-label{position:absolute;pointer-events:none;z-index:10;transition:all .15s ease-in-out;display:inline-grid;top:10%;transform:translateY(-10%);inset-inline-start:.25rem;padding:0 .5rem}ax-form-field.ax-state-over-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;white-space:nowrap}ax-form-field.ax-state-over-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-over-label.ax-state-focused .ax-input,ax-form-field.ax-state-over-label.ax-state-focused .ax-content,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area{padding-top:1rem}ax-form-field.ax-state-over-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-over-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-floating-label .ax-chips-container.ax-multiple,ax-form-field.ax-state-over-label .ax-chips-container.ax-multiple{padding-top:1.5rem!important;padding-inline-start:.75rem}ax-form-field .ax-error-message{margin-top:.25rem;margin-bottom:.25rem;display:block;font-size:.75rem;line-height:1rem}ax-form{width:100%}ax-form form.ax-bottom-error .ax-error-message{color:rgba(var(--ax-sys-color-danger-surface))}ax-form form.ax-float-error .ax-error-message{position:absolute;bottom:-2.5rem;z-index:20;display:block;width:fit-content;border-radius:.375rem;border-width:1px;border-color:rgba(var(--ax-sys-color-border-danger-surface));background-color:rgba(var(--ax-sys-color-danger-surface));color:rgba(var(--ax-sys-color-on-danger-surface));padding:.25rem .5rem;font-weight:400}ax-form form.ax-float-error .ax-error-message:before,ax-form form.ax-float-error .ax-error-message:after{pointer-events:none;position:absolute;bottom:100%;inset-inline-start:.75rem;z-index:20;height:0px;width:0px;border-bottom-color:rgba(var(--ax-sys-color-danger-surface));border-inline-end-color:transparent;border-inline-start-color:transparent;border-top-color:transparent;content:\"\"}ax-form form.ax-float-error .ax-error-message:before{margin-inline-start:-1px;border-width:4px;border-bottom-color:rgba(var(--ax-sys-color-danger-surface))}ax-form form.ax-float-error .ax-error-message:after{border-width:4px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
349
356
|
}
|
350
357
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXFormFieldComponent, decorators: [{
|
351
358
|
type: Component,
|
352
|
-
args: [{ selector: 'ax-form-field', template: `<ng-content></ng-content>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], standalone: false, styles: ["
|
359
|
+
args: [{ selector: 'ax-form-field', template: `<ng-content></ng-content>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], standalone: false, styles: ["ax-form-field{position:relative;display:block;width:100%}ax-form-field.ax-state-floating-label{--ax-sys-size-base: 3.5rem}ax-form-field.ax-state-floating-label>ax-label{position:absolute;top:calc(var(--ax-sys-size-base, 3.5rem) / 2);transform:translateY(-50%);inset-inline-start:1rem;pointer-events:none;z-index:10;transition:all .15s ease-in-out;display:inline-grid}ax-form-field.ax-state-floating-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-form-field.ax-state-floating-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label{transform:translateY(-115%) translate(-2.5%) scale(.95);inset-inline-start:.25rem;padding:0 .5rem}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label label{font-size:.75rem;color:rgba(var(--ax-sys-body-text-color),.5)}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area{padding-top:.875rem}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-over-label{--ax-sys-size-base: 3.5rem}ax-form-field.ax-state-over-label>ax-label{position:absolute;pointer-events:none;z-index:10;transition:all .15s ease-in-out;display:inline-grid;top:10%;transform:translateY(-10%);inset-inline-start:.25rem;padding:0 .5rem}ax-form-field.ax-state-over-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;white-space:nowrap}ax-form-field.ax-state-over-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-over-label.ax-state-focused .ax-input,ax-form-field.ax-state-over-label.ax-state-focused .ax-content,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area{padding-top:1rem}ax-form-field.ax-state-over-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-over-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-floating-label .ax-chips-container.ax-multiple,ax-form-field.ax-state-over-label .ax-chips-container.ax-multiple{padding-top:1.5rem!important;padding-inline-start:.75rem}ax-form-field .ax-error-message{margin-top:.25rem;margin-bottom:.25rem;display:block;font-size:.75rem;line-height:1rem}ax-form{width:100%}ax-form form.ax-bottom-error .ax-error-message{color:rgba(var(--ax-sys-color-danger-surface))}ax-form form.ax-float-error .ax-error-message{position:absolute;bottom:-2.5rem;z-index:20;display:block;width:fit-content;border-radius:.375rem;border-width:1px;border-color:rgba(var(--ax-sys-color-border-danger-surface));background-color:rgba(var(--ax-sys-color-danger-surface));color:rgba(var(--ax-sys-color-on-danger-surface));padding:.25rem .5rem;font-weight:400}ax-form form.ax-float-error .ax-error-message:before,ax-form form.ax-float-error .ax-error-message:after{pointer-events:none;position:absolute;bottom:100%;inset-inline-start:.75rem;z-index:20;height:0px;width:0px;border-bottom-color:rgba(var(--ax-sys-color-danger-surface));border-inline-end-color:transparent;border-inline-start-color:transparent;border-top-color:transparent;content:\"\"}ax-form form.ax-float-error .ax-error-message:before{margin-inline-start:-1px;border-width:4px;border-bottom-color:rgba(var(--ax-sys-color-danger-surface))}ax-form form.ax-float-error .ax-error-message:after{border-width:4px}\n"] }]
|
353
360
|
}], ctorParameters: () => [], propDecorators: { input: [{
|
354
361
|
type: ContentChild,
|
355
362
|
args: [AXValuableComponent]
|
@@ -513,7 +520,7 @@ class AXValidationSummaryComponent extends MXBaseComponent {
|
|
513
520
|
</ax-footer>
|
514
521
|
</ax-alert>
|
515
522
|
}
|
516
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-
|
523
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXAlertComponent, selector: "ax-alert", inputs: ["color", "timeOut"], outputs: ["colorChange", "onClosed", "timeOutChange"] }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
517
524
|
}
|
518
525
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXValidationSummaryComponent, decorators: [{
|
519
526
|
type: Component,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-form.mjs","sources":["../../../../libs/components/form/src/lib/form.component.ts","../../../../libs/components/form/src/lib/form-field.component.ts","../../../../libs/components/form/src/lib/form.config.ts","../../../../libs/components/form/src/lib/validation-rule.directive.ts","../../../../libs/components/form/src/lib/validation-summary.component.ts","../../../../libs/components/form/src/lib/form.module.ts","../../../../libs/components/form/src/acorex-components-form.ts"],"sourcesContent":["import {\n AXEvent,\n AXStyleLookType,\n AXValuableComponent,\n AXValueChangedEvent,\n MXBaseComponent,\n} from '@acorex/components/common';\nimport { AXValidationSummary } from '@acorex/core/validation';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n InputSignal,\n OnDestroy,\n Output,\n ViewEncapsulation,\n contentChildren,\n effect,\n input,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXFormFieldComponent } from './form-field.component';\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXFormValidationEvent extends AXEvent {\n result: AXValidationSummary;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport type AXFormUpdateOn = 'change' | 'blur' | 'submit';\nexport type AXFormMessageStyle = 'bottom' | 'float';\nexport type AXLabelMode = 'static' | 'floating' | 'over';\n\n/**\n * The AXForm is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-form',\n template: `<form\n (submit)=\"_handleSubmit($event)\"\n (reset)=\"_handleReset()\"\n class=\"ax-{{ messageStyle() }}-error\"\n >\n <ng-content></ng-content>\n </form>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AXFormComponent extends MXBaseComponent implements OnDestroy, AfterViewInit {\n /**\n * Specifies the mode of the label in the form field.\n * @defaultValue 'static'\n */\n labelMode = input<AXLabelMode>('static');\n\n look = input<AXStyleLookType>('solid');\n\n content = contentChildren(AXFormFieldComponent, { descendants: true });\n\n #applyLooks = effect(() => {\n this.look();\n this.content().forEach((item: any) => {\n if (item.input) {\n item.input.look = this.look();\n }\n });\n });\n\n /**\n * Determines the style of the message in the form field.\n * @defaultValue 'bottom'\n */\n messageStyle: InputSignal<AXFormMessageStyle> = input<AXFormMessageStyle>('bottom');\n\n /**\n * Emitted when the form is validated.\n *\n * @event\n */\n @Output()\n onValidate: EventEmitter<AXFormValidationEvent> = new EventEmitter<AXFormValidationEvent>();\n\n /**\n * Emitted when the form's update mode changes.\n *\n * @event\n */\n @Output()\n updateOnChange: EventEmitter<AXFormUpdateOn> = new EventEmitter<AXFormUpdateOn>();\n\n /**\n * @ignore\n */\n private _updateOn: AXFormUpdateOn = 'blur';\n\n /**\n * Determines when the form should be updated.\n */\n @Input()\n public get updateOn(): AXFormUpdateOn {\n return this._updateOn;\n }\n\n /**\n * Sets the criteria for when the form should be updated.\n * @param v The criteria to set (e.g., 'change', 'blur').\n */\n public set updateOn(v: AXFormUpdateOn) {\n this.setOption({\n name: 'updateOn',\n value: v,\n afterCallback: () => {\n this._bindEvents();\n },\n });\n }\n\n /**\n * @ignore\n */\n private _subs: Subscription[] = [];\n\n /**\n * @ignore\n */\n protected async _handleSubmit(e: SubmitEvent) {\n e.preventDefault();\n await this.validate();\n }\n\n /**\n * @ignore\n */\n protected _handleReset() {\n this.reset();\n }\n\n /**\n * @ignore\n */\n constructor() {\n super();\n }\n\n ngAfterViewInit(): void {\n this._bindEvents();\n }\n\n private _bindEvents() {\n this._clearSubs();\n const widgets = this.content();\n //\n widgets.forEach((w: any) => {\n if (w.input) {\n this._subs.push(\n w.input.onValueChanged?.subscribe((v: AXValueChangedEvent) => {\n if (v.isUserInteraction) {\n if (this.updateOn == 'change') {\n w.input.validate();\n } else {\n w.input.resetErrors();\n }\n }\n }),\n );\n if (this.updateOn == 'blur') {\n this._subs.push(\n w.input.onBlur?.subscribe((v) => {\n w.input.validate();\n }),\n );\n }\n }\n });\n }\n\n /**\n * @ignore\n */\n private _clearSubs() {\n this._subs.forEach((c) => c?.unsubscribe());\n this._subs = [];\n }\n\n /**\n * @ignore\n */\n private get fields(): AXValuableComponent[] {\n return Array.from(this.getHostElement().querySelectorAll('[ax-form-item=\"true\"]'))\n .map((c) => (c as any).__axContext__)\n .filter((c) => c != null);\n }\n\n async validate(...names: string[]): Promise<AXValidationSummary> {\n const results = await Promise.all(\n this.fields\n .filter((c) => names == null || names.length == 0 || names.includes(c.name))\n .map((field) => field.validate()),\n );\n // Merge all validation summaries into one\n const mergedSummary: AXValidationSummary = {\n result: results.every((res) => res.result),\n rules: results.flatMap((res) => res.rules),\n };\n this._emitOnValidateEvent(mergedSummary);\n return mergedSummary;\n }\n\n /**\n * @ignore\n */\n private _emitOnValidateEvent(e: AXValidationSummary) {\n this.onValidate.emit({\n component: this,\n result: e,\n htmlElement: this.getHostElement(),\n });\n }\n\n /**\n * Resets all form fields without clearing errors.\n */\n reset() {\n this.fields.forEach((c) => c.reset(false));\n this.fields.forEach((c) => c.resetErrors());\n }\n\n /**\n * Resets validation errors for all form fields.\n */\n resetErrors() {\n this.fields.forEach((c) => c.resetErrors());\n }\n\n /**\n * @ignore\n */\n ngOnDestroy(): void {\n this._clearSubs();\n }\n}\n","import { AXValuableComponent, MXBaseComponent } from '@acorex/components/common';\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n ViewContainerRef,\n ViewEncapsulation,\n WritableSignal,\n afterNextRender,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXFormComponent, AXLabelMode } from './form.component';\n\n/**\n * A container component for form fields that provides styling and structure.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-form-field',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./form-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXUnsubscriber],\n standalone: false,\n})\nexport class AXFormFieldComponent extends MXBaseComponent {\n /**\n * Specifies the mode of the label in the form field.\n * @defaultValue 'static'\n */\n labelMode = input<AXLabelMode>('static');\n\n /**\n * @ignore\n */\n protected _labelMode: WritableSignal<AXLabelMode> = signal(this.labelMode());\n\n private unsubscriber = inject(AXUnsubscriber);\n\n @ContentChild(AXValuableComponent)\n private input: AXValuableComponent;\n\n /**\n * @ignore\n */\n @ContentChild(AXLabelComponent)\n private label: AXLabelComponent;\n\n form = inject(AXFormComponent, { optional: true });\n\n host = inject(ViewContainerRef);\n\n /**\n * @ignore\n */\n prefix: HTMLElement;\n\n /**\n * @ignore\n */\n constructor() {\n super();\n\n afterNextRender(() => {\n this.calcIndentSize();\n this.setRequired();\n this.setLabelMode();\n this.listeningEvent();\n });\n\n effect(() => {\n this.setLabelMode();\n });\n }\n\n /**\n * Calculates and sets the indentation size for the label based on the width of the prefix element.\n * @ignore\n */\n calcIndentSize() {\n setTimeout(() => {\n const prefix = (this.input as any)?.getHostElement()?.querySelector('ax-prefix') as HTMLElement;\n if (prefix && this.label) {\n this.label.getHostElement().style.insetInlineStart = prefix?.clientWidth + 'px';\n }\n });\n }\n\n /**\n * Sets the required attribute for the input field based on validation rules.\n * Automatically updates if validation rules change.\n * @ignore\n */\n setRequired() {\n this.autoSetRequired();\n this.input?.validationRulesChange.pipe(this.unsubscriber.takeUntilDestroy).subscribe(() => {\n this.autoSetRequired();\n });\n }\n /**\n * Sets the label mode based on the form's label mode configuration.\n * @ignore\n */\n setLabelMode() {\n this._labelMode.set(this.form?.labelMode());\n }\n\n /**\n * Subscribes to focus and blur events on the input element.\n * Adds or removes the 'ax-state-focused' class to/from the host element based on the focus state.\n * @ignone\n */\n listeningEvent() {\n const focusEvent = this.input?.['onFocus'] as Subject<any>;\n focusEvent?.subscribe((e) => {\n // this.handleFloating('focus');\n this.host.element.nativeElement.classList.add('ax-state-focused');\n });\n //\n const blurEvent = this.input?.['onBlur'] as Subject<any>;\n blurEvent?.subscribe((e) => {\n // this.handleFloating('blur');\n this.host.element.nativeElement.classList.remove('ax-state-focused');\n });\n }\n // protected handleFloating(mode: 'focus' | 'blur') {\n // const _host = this.host.element.nativeElement as HTMLElement;\n // const placeholder = this.input;\n\n // switch (mode) {\n // case 'focus':\n // _host.classList.add('ax-state-floating');\n // this.label.getHostElement().style.insetInlineStart = 'inherit';\n\n // break;\n // case 'blur':\n // _host.classList.remove('ax-state-floating');\n\n // break;\n // }\n // }\n\n /**\n * @ignore\n */\n private autoSetRequired() {\n if (this.label && this.input) {\n if (this.label.required == null || this.label['autoSetRequired']) {\n this.label.required = this.input.isRequired;\n this.label['autoSetRequired'] = true;\n }\n }\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n get __hostClass(): string[] {\n let hasValue;\n if (this.input) {\n if (this.input instanceof AXSelectBoxComponent && this.input.multiple) {\n hasValue = (this.input as any).value?.length;\n } else {\n hasValue = this.input.value;\n }\n }\n return [`ax-state-${this._labelMode()}-label`, `${hasValue && 'ax-state-has-value'}`];\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AXFormConfig {}\n\nexport const AX_FORM_CONFIG = new InjectionToken<AXFormConfig>('AX_FORM_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return AXFormDefaultConfig;\n },\n});\n\nexport const AXFormDefaultConfig: AXFormConfig = {};\n\nexport type PartialFormConfig = Partial<AXFormConfig>;\n\nexport function formConfig(config: PartialFormConfig = {}): AXFormConfig {\n const result = {\n ...AXFormDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { AXValuableComponent } from '@acorex/components/common';\nimport { AXValidationRuleOptions } from '@acorex/core/validation';\nimport { Directive, Input, OnDestroy, OnInit } from '@angular/core';\n\n@Directive({\n selector: 'ax-validation-rule',\n standalone: false\n})\nexport class AXValidationRuleDirective implements OnInit, OnDestroy {\n @Input() rule: string;\n @Input() options: Omit<AXValidationRuleOptions, 'message'>;\n @Input() message: string;\n\n constructor(private host: AXValuableComponent) {}\n\n ngOnInit() {\n this.host.addValidationRule({ rule: this.rule, options: this.ruleOptions });\n }\n\n ngOnDestroy() {\n this.host.removeValidationRule({\n rule: this.rule,\n options: this.ruleOptions,\n });\n }\n\n private get ruleOptions(): AXValidationRuleOptions {\n return Object.assign({ message: this.message, name: this.host.name }, this.options);\n }\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { AXToastService } from '@acorex/components/toast';\nimport { translateSync } from '@acorex/core/translation';\nimport { ChangeDetectionStrategy, Component, Inject, Input, OnDestroy, Optional, ViewEncapsulation } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXFormComponent, AXFormValidationEvent } from './form.component';\n\nexport type AXValidationSummaryDisplayMode = 'toast' | 'alert';\n\n/**\n * Displays validation summaries in the form of an alert.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-validation-summary',\n template: `\n @if (displayMode === 'alert' && _content) {\n <ax-alert color=\"danger\" [timeOut]=\"_timeOut\" #a (onClosed)=\"_handleOnDismissed()\">\n <ax-icon></ax-icon>\n <ax-title>{{ title | translate | async }}</ax-title>\n <ax-content>\n <div [innerHTML]=\"_content\"></div>\n </ax-content>\n <ax-footer>\n <ax-suffix>\n <ax-button text=\"Dismiss\" (onClick)=\"a.close()\"></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-alert>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class AXValidationSummaryComponent extends MXBaseComponent implements OnDestroy {\n /**\n * @ignore\n */\n protected _content?: string = null;\n\n /**\n * @ignore\n */\n private _title = 'validation.messages.title';\n\n /**\n * The title of the validation summary alert.\n */\n @Input()\n public get title(): string {\n return this._title;\n }\n\n /**\n * Sets the title of the validation summary alert.\n *\n * @param v The title to be set.\n */\n public set title(v: string) {\n this._title = v;\n }\n\n /**\n * Specifies the display mode for the validation summary.\n *\n * @defaultValue 'toast'\n */\n @Input()\n displayMode: AXValidationSummaryDisplayMode = 'toast';\n\n /**\n * Specifies the time in milliseconds before the validation summary automatically hides.\n */\n @Input()\n timeOut?: number;\n\n /**\n * Determines whether the validation summary should automatically hide after a specified time.\n * @defaultValue false\n */\n @Input()\n autoHide = false;\n\n /**\n * @ignore\n */\n protected _timeOut: number;\n\n /**\n * @ignore\n */\n private sub: Subscription;\n\n /**\n * @ignore\n */\n constructor(\n private _tosatService: AXToastService,\n @Optional()\n @Inject(AXFormComponent)\n private host: AXFormComponent,\n ) {\n super();\n //\n this.sub = host.onValidate.subscribe((e: AXFormValidationEvent) => {\n if (e.result.result) {\n this._content = null;\n } else {\n const failedRules = e.result.rules.filter((c) => !c.result && c.message);\n\n this._content = `<ul>${failedRules.map((c) => this.formatRule({ title: c['title'] as string, message: c.message })).join('')}</ul>`;\n this._timeOut = this.autoHide ? this.timeOut ?? Math.max(failedRules.length * 1000, 2000) : 0;\n\n if (this.displayMode == 'toast') {\n this._tosatService.show({\n color: 'danger',\n closeButton: true,\n timeOut: this._timeOut,\n timeOutProgress: true,\n content: this._content,\n title: translateSync(this.title),\n location: 'bottom-center',\n });\n }\n }\n this.cdr.markForCheck();\n });\n }\n\n /**\n * @ignore\n */\n private formatRule(rule: { title?: string; message: string }): string {\n return rule.title ? `<li><b>${rule.title}:</b> ${rule.message}</li>` : `<li>${rule.message}</li>`;\n }\n\n /**\n * @ignore\n */\n protected _handleOnDismissed() {\n this._content = null;\n }\n\n /**\n * @ignore\n */\n ngOnDestroy() {\n this.sub?.unsubscribe();\n }\n}\n","import { AXAlertModule } from '@acorex/components/alert';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFormFieldComponent } from './form-field.component';\nimport { AXFormComponent } from './form.component';\nimport { AXValidationRuleDirective } from './validation-rule.directive';\nimport { AXValidationSummaryComponent } from './validation-summary.component';\n\n@NgModule({\n declarations: [AXFormFieldComponent, AXFormComponent, AXValidationRuleDirective, AXValidationSummaryComponent],\n imports: [CommonModule, AXDecoratorModule, AXAlertModule, AXButtonModule, AXValidationModule, AXTranslationModule],\n exports: [AXFormFieldComponent, AXFormComponent, AXValidationRuleDirective, AXValidationSummaryComponent],\n providers: [],\n})\nexport class AXFormModule {}\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-form.mjs","sources":["../../../../libs/components/form/src/lib/form.component.ts","../../../../libs/components/form/src/lib/form-field.component.ts","../../../../libs/components/form/src/lib/form.config.ts","../../../../libs/components/form/src/lib/validation-rule.directive.ts","../../../../libs/components/form/src/lib/validation-summary.component.ts","../../../../libs/components/form/src/lib/form.module.ts","../../../../libs/components/form/src/acorex-components-form.ts"],"sourcesContent":["import {\n AXEvent,\n AXStyleLookType,\n AXValuableComponent,\n AXValueChangedEvent,\n MXBaseComponent,\n} from '@acorex/components/common';\nimport { AXValidationSummary } from '@acorex/core/validation';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n InputSignal,\n OnDestroy,\n Output,\n ViewEncapsulation,\n contentChildren,\n effect,\n input,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXFormFieldComponent } from './form-field.component';\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXFormValidationEvent extends AXEvent {\n result: AXValidationSummary;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport type AXFormUpdateOn = 'change' | 'blur' | 'submit';\nexport type AXFormMessageStyle = 'bottom' | 'float';\nexport type AXLabelMode = 'static' | 'floating' | 'over';\n\n/**\n * The AXForm is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-form',\n template: `<form\n (submit)=\"_handleSubmit($event)\"\n (reset)=\"_handleReset()\"\n class=\"ax-{{ messageStyle() }}-error\"\n >\n <ng-content></ng-content>\n </form>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AXFormComponent extends MXBaseComponent implements OnDestroy, AfterViewInit, AfterContentInit {\n /**\n * Specifies the mode of the label in the form field.\n * @defaultValue 'static'\n */\n labelMode = input<AXLabelMode>('static');\n\n look = input<AXStyleLookType>('solid');\n\n content = contentChildren(AXFormFieldComponent, { descendants: true });\n\n #applyLooks = effect(() => {\n this.look();\n this.content().forEach((item: any) => {\n if (item.input) {\n item.input.look = this.look();\n }\n });\n });\n\n ngAfterContentInit(): void {\n this.content().forEach((item: any) => {\n if (item.input) {\n item.input.look = this.look();\n }\n });\n }\n\n /**\n * Determines the style of the message in the form field.\n * @defaultValue 'bottom'\n */\n messageStyle: InputSignal<AXFormMessageStyle> = input<AXFormMessageStyle>('bottom');\n\n /**\n * Emitted when the form is validated.\n *\n * @event\n */\n @Output()\n onValidate: EventEmitter<AXFormValidationEvent> = new EventEmitter<AXFormValidationEvent>();\n\n /**\n * Emitted when the form's update mode changes.\n *\n * @event\n */\n @Output()\n updateOnChange: EventEmitter<AXFormUpdateOn> = new EventEmitter<AXFormUpdateOn>();\n\n /**\n * @ignore\n */\n private _updateOn: AXFormUpdateOn = 'blur';\n\n /**\n * Determines when the form should be updated.\n */\n @Input()\n public get updateOn(): AXFormUpdateOn {\n return this._updateOn;\n }\n\n /**\n * Sets the criteria for when the form should be updated.\n * @param v The criteria to set (e.g., 'change', 'blur').\n */\n public set updateOn(v: AXFormUpdateOn) {\n this.setOption({\n name: 'updateOn',\n value: v,\n afterCallback: () => {\n this._bindEvents();\n },\n });\n }\n\n /**\n * @ignore\n */\n private _subs: Subscription[] = [];\n\n /**\n * @ignore\n */\n protected async _handleSubmit(e: SubmitEvent) {\n e.preventDefault();\n await this.validate();\n }\n\n /**\n * @ignore\n */\n protected _handleReset() {\n this.reset();\n }\n\n /**\n * @ignore\n */\n constructor() {\n super();\n }\n\n ngAfterViewInit(): void {\n this._bindEvents();\n }\n\n private _bindEvents() {\n this._clearSubs();\n const widgets = this.content();\n //\n widgets.forEach((w: any) => {\n if (w.input) {\n this._subs.push(\n w.input.onValueChanged?.subscribe((v: AXValueChangedEvent) => {\n if (v.isUserInteraction) {\n if (this.updateOn == 'change') {\n w.input.validate();\n } else {\n w.input.resetErrors();\n }\n }\n }),\n );\n if (this.updateOn == 'blur') {\n this._subs.push(\n w.input.onBlur?.subscribe((v) => {\n w.input.validate();\n }),\n );\n }\n }\n });\n }\n\n /**\n * @ignore\n */\n private _clearSubs() {\n this._subs.forEach((c) => c?.unsubscribe());\n this._subs = [];\n }\n\n /**\n * @ignore\n */\n private get fields(): AXValuableComponent[] {\n return Array.from(this.getHostElement().querySelectorAll('[ax-form-item=\"true\"]'))\n .map((c) => (c as any).__axContext__)\n .filter((c) => c != null);\n }\n\n async validate(...names: string[]): Promise<AXValidationSummary> {\n const results = await Promise.all(\n this.fields\n .filter((c) => names == null || names.length == 0 || names.includes(c.name))\n .map((field) => field.validate()),\n );\n // Merge all validation summaries into one\n const mergedSummary: AXValidationSummary = {\n result: results.every((res) => res.result),\n rules: results.flatMap((res) => res.rules),\n };\n this._emitOnValidateEvent(mergedSummary);\n return mergedSummary;\n }\n\n /**\n * @ignore\n */\n private _emitOnValidateEvent(e: AXValidationSummary) {\n this.onValidate.emit({\n component: this,\n result: e,\n htmlElement: this.getHostElement(),\n });\n }\n\n /**\n * Resets all form fields without clearing errors.\n */\n reset() {\n this.fields.forEach((c) => c.reset(false));\n this.fields.forEach((c) => c.resetErrors());\n }\n\n /**\n * Resets validation errors for all form fields.\n */\n resetErrors() {\n this.fields.forEach((c) => c.resetErrors());\n }\n\n /**\n * @ignore\n */\n ngOnDestroy(): void {\n this._clearSubs();\n }\n}\n","import { AXValuableComponent, MXBaseComponent } from '@acorex/components/common';\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n ViewContainerRef,\n ViewEncapsulation,\n WritableSignal,\n afterNextRender,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXFormComponent, AXLabelMode } from './form.component';\n\n/**\n * A container component for form fields that provides styling and structure.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-form-field',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./form-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXUnsubscriber],\n standalone: false,\n})\nexport class AXFormFieldComponent extends MXBaseComponent {\n /**\n * Specifies the mode of the label in the form field.\n * @defaultValue 'static'\n */\n labelMode = input<AXLabelMode>('static');\n\n /**\n * @ignore\n */\n protected _labelMode: WritableSignal<AXLabelMode> = signal(this.labelMode());\n\n private unsubscriber = inject(AXUnsubscriber);\n\n @ContentChild(AXValuableComponent)\n private input: AXValuableComponent;\n\n /**\n * @ignore\n */\n @ContentChild(AXLabelComponent)\n private label: AXLabelComponent;\n\n form = inject(AXFormComponent, { optional: true });\n\n host = inject(ViewContainerRef);\n\n /**\n * @ignore\n */\n prefix: HTMLElement;\n\n /**\n * @ignore\n */\n constructor() {\n super();\n\n afterNextRender(() => {\n this.calcIndentSize();\n this.setRequired();\n this.setLabelMode();\n this.listeningEvent();\n });\n\n effect(() => {\n this.setLabelMode();\n });\n }\n\n /**\n * Calculates and sets the indentation size for the label based on the width of the prefix element.\n * @ignore\n */\n calcIndentSize() {\n setTimeout(() => {\n const prefix = (this.input as any)?.getHostElement()?.querySelector('ax-prefix') as HTMLElement;\n if (prefix && this.label) {\n this.label.getHostElement().style.insetInlineStart = prefix?.clientWidth + 'px';\n }\n });\n }\n\n /**\n * Sets the required attribute for the input field based on validation rules.\n * Automatically updates if validation rules change.\n * @ignore\n */\n setRequired() {\n this.autoSetRequired();\n this.input?.validationRulesChange.pipe(this.unsubscriber.takeUntilDestroy).subscribe(() => {\n this.autoSetRequired();\n });\n }\n /**\n * Sets the label mode based on the form's label mode configuration.\n * @ignore\n */\n setLabelMode() {\n this._labelMode.set(this.form?.labelMode());\n }\n\n /**\n * Subscribes to focus and blur events on the input element.\n * Adds or removes the 'ax-state-focused' class to/from the host element based on the focus state.\n * @ignone\n */\n listeningEvent() {\n const focusEvent = this.input?.['onFocus'] as Subject<any>;\n focusEvent?.subscribe((e) => {\n // this.handleFloating('focus');\n this.host.element.nativeElement.classList.add('ax-state-focused');\n });\n //\n const blurEvent = this.input?.['onBlur'] as Subject<any>;\n blurEvent?.subscribe((e) => {\n // this.handleFloating('blur');\n this.host.element.nativeElement.classList.remove('ax-state-focused');\n });\n }\n // protected handleFloating(mode: 'focus' | 'blur') {\n // const _host = this.host.element.nativeElement as HTMLElement;\n // const placeholder = this.input;\n\n // switch (mode) {\n // case 'focus':\n // _host.classList.add('ax-state-floating');\n // this.label.getHostElement().style.insetInlineStart = 'inherit';\n\n // break;\n // case 'blur':\n // _host.classList.remove('ax-state-floating');\n\n // break;\n // }\n // }\n\n /**\n * @ignore\n */\n private autoSetRequired() {\n if (this.label && this.input) {\n if (this.label.required == null || this.label['autoSetRequired']) {\n this.label.required = this.input.isRequired;\n this.label['autoSetRequired'] = true;\n }\n }\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n get __hostClass(): string[] {\n let hasValue;\n if (this.input) {\n if (this.input instanceof AXSelectBoxComponent && this.input.multiple) {\n hasValue = (this.input as any).value?.length;\n } else {\n hasValue = this.input.value;\n }\n }\n return [`ax-state-${this._labelMode()}-label`, `${hasValue && 'ax-state-has-value'}`];\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AXFormConfig {}\n\nexport const AX_FORM_CONFIG = new InjectionToken<AXFormConfig>('AX_FORM_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return AXFormDefaultConfig;\n },\n});\n\nexport const AXFormDefaultConfig: AXFormConfig = {};\n\nexport type PartialFormConfig = Partial<AXFormConfig>;\n\nexport function formConfig(config: PartialFormConfig = {}): AXFormConfig {\n const result = {\n ...AXFormDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { AXValuableComponent } from '@acorex/components/common';\nimport { AXValidationRuleOptions } from '@acorex/core/validation';\nimport { Directive, Input, OnDestroy, OnInit } from '@angular/core';\n\n@Directive({\n selector: 'ax-validation-rule',\n standalone: false\n})\nexport class AXValidationRuleDirective implements OnInit, OnDestroy {\n @Input() rule: string;\n @Input() options: Omit<AXValidationRuleOptions, 'message'>;\n @Input() message: string;\n\n constructor(private host: AXValuableComponent) {}\n\n ngOnInit() {\n this.host.addValidationRule({ rule: this.rule, options: this.ruleOptions });\n }\n\n ngOnDestroy() {\n this.host.removeValidationRule({\n rule: this.rule,\n options: this.ruleOptions,\n });\n }\n\n private get ruleOptions(): AXValidationRuleOptions {\n return Object.assign({ message: this.message, name: this.host.name }, this.options);\n }\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { AXToastService } from '@acorex/components/toast';\nimport { translateSync } from '@acorex/core/translation';\nimport { ChangeDetectionStrategy, Component, Inject, Input, OnDestroy, Optional, ViewEncapsulation } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXFormComponent, AXFormValidationEvent } from './form.component';\n\nexport type AXValidationSummaryDisplayMode = 'toast' | 'alert';\n\n/**\n * Displays validation summaries in the form of an alert.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-validation-summary',\n template: `\n @if (displayMode === 'alert' && _content) {\n <ax-alert color=\"danger\" [timeOut]=\"_timeOut\" #a (onClosed)=\"_handleOnDismissed()\">\n <ax-icon></ax-icon>\n <ax-title>{{ title | translate | async }}</ax-title>\n <ax-content>\n <div [innerHTML]=\"_content\"></div>\n </ax-content>\n <ax-footer>\n <ax-suffix>\n <ax-button text=\"Dismiss\" (onClick)=\"a.close()\"></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-alert>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class AXValidationSummaryComponent extends MXBaseComponent implements OnDestroy {\n /**\n * @ignore\n */\n protected _content?: string = null;\n\n /**\n * @ignore\n */\n private _title = 'validation.messages.title';\n\n /**\n * The title of the validation summary alert.\n */\n @Input()\n public get title(): string {\n return this._title;\n }\n\n /**\n * Sets the title of the validation summary alert.\n *\n * @param v The title to be set.\n */\n public set title(v: string) {\n this._title = v;\n }\n\n /**\n * Specifies the display mode for the validation summary.\n *\n * @defaultValue 'toast'\n */\n @Input()\n displayMode: AXValidationSummaryDisplayMode = 'toast';\n\n /**\n * Specifies the time in milliseconds before the validation summary automatically hides.\n */\n @Input()\n timeOut?: number;\n\n /**\n * Determines whether the validation summary should automatically hide after a specified time.\n * @defaultValue false\n */\n @Input()\n autoHide = false;\n\n /**\n * @ignore\n */\n protected _timeOut: number;\n\n /**\n * @ignore\n */\n private sub: Subscription;\n\n /**\n * @ignore\n */\n constructor(\n private _tosatService: AXToastService,\n @Optional()\n @Inject(AXFormComponent)\n private host: AXFormComponent,\n ) {\n super();\n //\n this.sub = host.onValidate.subscribe((e: AXFormValidationEvent) => {\n if (e.result.result) {\n this._content = null;\n } else {\n const failedRules = e.result.rules.filter((c) => !c.result && c.message);\n\n this._content = `<ul>${failedRules.map((c) => this.formatRule({ title: c['title'] as string, message: c.message })).join('')}</ul>`;\n this._timeOut = this.autoHide ? this.timeOut ?? Math.max(failedRules.length * 1000, 2000) : 0;\n\n if (this.displayMode == 'toast') {\n this._tosatService.show({\n color: 'danger',\n closeButton: true,\n timeOut: this._timeOut,\n timeOutProgress: true,\n content: this._content,\n title: translateSync(this.title),\n location: 'bottom-center',\n });\n }\n }\n this.cdr.markForCheck();\n });\n }\n\n /**\n * @ignore\n */\n private formatRule(rule: { title?: string; message: string }): string {\n return rule.title ? `<li><b>${rule.title}:</b> ${rule.message}</li>` : `<li>${rule.message}</li>`;\n }\n\n /**\n * @ignore\n */\n protected _handleOnDismissed() {\n this._content = null;\n }\n\n /**\n * @ignore\n */\n ngOnDestroy() {\n this.sub?.unsubscribe();\n }\n}\n","import { AXAlertModule } from '@acorex/components/alert';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFormFieldComponent } from './form-field.component';\nimport { AXFormComponent } from './form.component';\nimport { AXValidationRuleDirective } from './validation-rule.directive';\nimport { AXValidationSummaryComponent } from './validation-summary.component';\n\n@NgModule({\n declarations: [AXFormFieldComponent, AXFormComponent, AXValidationRuleDirective, AXValidationSummaryComponent],\n imports: [CommonModule, AXDecoratorModule, AXAlertModule, AXButtonModule, AXValidationModule, AXTranslationModule],\n exports: [AXFormFieldComponent, AXFormComponent, AXValidationRuleDirective, AXValidationSummaryComponent],\n providers: [],\n})\nexport class AXFormModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|