@acorex/components 19.14.0-next.3 → 19.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/calendar/lib/calendar.component.d.ts +4 -0
- package/common/index.d.ts +1 -0
- package/common/lib/classes/components.class.d.ts +1 -0
- package/common/lib/components/value-component.class.d.ts +1 -1
- package/common/lib/directives/copy-clipboard.directive.d.ts +40 -0
- package/datetime-box/lib/datetime-box.component.d.ts +4 -3
- package/fesm2022/acorex-components-action-sheet.mjs +32 -5
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +19 -3
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +14 -2
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +11 -1
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-collapse.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +18 -3
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +7 -1
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +16 -2
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-common.mjs +110 -15
- package/fesm2022/acorex-components-common.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +8 -1
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +15 -17
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +101 -20
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +68 -15
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +26 -7
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +0 -1
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +14 -4
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +29 -4
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +26 -3
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-file-explorer.mjs +26 -3
- package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
- package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +43 -24
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +5 -1
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +14 -3
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +23 -3
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +14 -2
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +23 -18
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-C83n2Gqn.mjs → acorex-components-modal-acorex-components-modal-Ckn70-o5.mjs} +2 -2
- package/fesm2022/acorex-components-modal-acorex-components-modal-Ckn70-o5.mjs.map +1 -0
- package/fesm2022/acorex-components-modal-modal-content.component-DzRhA-Nt.mjs +216 -0
- package/fesm2022/acorex-components-modal-modal-content.component-DzRhA-Nt.mjs.map +1 -0
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +30 -5
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +6 -6
- package/fesm2022/acorex-components-page.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +28 -3
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +53 -4
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +18 -4
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +18 -2
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +13 -2
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +33 -3
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +757 -367
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-scss.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +42 -5
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +2 -2
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +41 -5
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +44 -6
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +12 -1
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +48 -4
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +45 -60
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +6 -2
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +1 -1
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +3 -1
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-video-player.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +24 -3
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/fesm2022/acorex-components.mjs.map +1 -1
- package/form/lib/validation-rule.directive.d.ts +10 -9
- package/menu/index.d.ts +2 -2
- package/menu/lib/menu.service.d.ts +1 -1
- package/modal/lib/modal-content/modal-content.component.d.ts +4 -3
- package/package.json +1 -1
- package/page/lib/page.component.d.ts +6 -6
- package/scheduler/lib/scheduler.class.d.ts +10 -3
- package/scheduler/lib/scheduler.service.d.ts +18 -6
- package/scheduler/lib/views/agenda/scheduler-agenda-view.component.d.ts +17 -7
- package/scheduler/lib/views/day/scheduler-day-view.component.d.ts +3 -2
- package/scheduler/lib/views/month/scheduler-month-view.component.d.ts +16 -9
- package/scheduler/lib/views/timeline-day/scheduler-timeline-day-view.component.d.ts +7 -3
- package/scheduler/lib/views/timeline-month/scheduler-timeline-month-view.component.d.ts +16 -11
- package/scheduler/lib/views/timeline-multi-day/scheduler-timeline-multi-day-view.component.d.ts +16 -3
- package/scheduler/lib/views/week/scheduler-week-view.component.d.ts +30 -8
- package/time-duration/lib/time-duration.component.d.ts +11 -1
- package/time-duration/lib/time-duration.type.d.ts +1 -1
- package/fesm2022/acorex-components-modal-acorex-components-modal-C83n2Gqn.mjs.map +0 -1
- package/fesm2022/acorex-components-modal-modal-content.component-YrM5Oi9b.mjs +0 -191
- package/fesm2022/acorex-components-modal-modal-content.component-YrM5Oi9b.mjs.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-tree-view.mjs","sources":["../../../../libs/components/tree-view/src/lib/tree-view.class.ts","../../../../libs/components/tree-view/src/lib/tree-view-item.component.ts","../../../../libs/components/tree-view/src/lib/tree-view-item.component.html","../../../../libs/components/tree-view/src/lib/tree-view.component.ts","../../../../libs/components/tree-view/src/lib/tree-view.component.html","../../../../libs/components/tree-view/src/lib/tree-view.component.module.ts","../../../../libs/components/tree-view/src/acorex-components-tree-view.ts"],"sourcesContent":["import { AXClickEvent } from '@acorex/components/common';\nimport { EventEmitter } from '@angular/core';\n\nexport class AXTreeItemClickBaseEvent extends AXClickEvent {\n nativeElement: any;\n}\n\nexport type AXTreeViewSelectionBehavior = 'autoExpand' | 'cascade' | 'indeterminate';\n\nexport type AXTreeViewExpandBehavior = 'click' | 'dbClick' | 'defult';\n\nexport type AXTreeViewOperationMethod = 'expand' | 'active' | 'visible' | 'disabled';\n\nexport type AXTreeViewLook = 'with-line' | 'defult';\n\nexport abstract class AXTreeViewBase {\n abstract getChildren(item: unknown): unknown[];\n\n abstract hasChildren(item: unknown): boolean;\n\n abstract itemTemplate: any;\n\n // Field accessors\n abstract disableField(): string;\n abstract childrenField(): string;\n abstract valueField(): string;\n abstract activeField(): string;\n abstract hasChildField(): string;\n abstract tooltipField(): string;\n\n // Behavior methods\n abstract expandOn(): AXTreeViewExpandBehavior;\n abstract focusNodeEnabled(): boolean;\n abstract toggleIcons(): { expanded: string; collapsed: string } | null;\n\n // Data management\n abstract itemsPromise: boolean;\n abstract itemsSignal(): unknown[];\n abstract fetchData(item: unknown): void;\n abstract setNodeLoading(value: unknown, loading: boolean): void;\n abstract handleUnActiveNode(items: unknown[]): void;\n\n // Event emitters\n abstract onCollapsedChanged: EventEmitter<{ component: any; data: unknown; nativeElement: any }>;\n abstract onNodeClick: EventEmitter<{ component: any; data: unknown; nativeElement: any }>;\n abstract onNodedbClick: EventEmitter<{ component: any; data: unknown; nativeElement: any }>;\n}\n","import { NXComponent } from '@acorex/components/common';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, model, ViewEncapsulation } from '@angular/core';\nimport { AXTreeViewBase, AXTreeViewOperationMethod } from './tree-view.class';\n\n@Component({\n selector: 'ax-tree-view-item',\n templateUrl: 'tree-view-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('collapseExpand', [\n state(\n 'collapsed',\n style({\n height: '0',\n overflow: 'hidden',\n opacity: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n height: '*',\n overflow: 'hidden',\n opacity: 1,\n }),\n ),\n transition('collapsed <=> expanded', [animate('300ms ease-in-out')]),\n ]),\n ],\n imports: [CommonModule, AXLoadingComponent, AXTooltipDirective],\n})\nexport class AXTreeViewItemComponent extends NXComponent {\n constructor() {\n super();\n }\n\n treeView = inject(AXTreeViewBase);\n\n item = input<unknown>();\n\n isExpanded = model<boolean>(false);\n\n isActive = model<boolean>(false);\n\n isLoading = input<boolean>(false);\n\n executorChanges = input<AXTreeViewOperationMethod>();\n\n protected platformService = inject(AXPlatform);\n\n protected arrowIcon = computed(() => {\n const baseClasses = 'ax-tree-view-arrow ax-icon ax-icon-solid';\n const toggleIcons = this.treeView.toggleIcons();\n\n if (toggleIcons) {\n return this.isExpanded() ? `${baseClasses} ${toggleIcons.expanded}` : `${baseClasses} ${toggleIcons.collapsed}`;\n }\n\n if (this.isExpanded()) {\n return `${baseClasses} ax-icon-chevron-down`;\n }\n\n return this.platformService.isRtl()\n ? `${baseClasses} ax-icon-chevron-left`\n : `${baseClasses} ax-icon-chevron-right`;\n });\n\n protected handleArrowNodeClick() {\n if (this.item()[this.treeView.disableField()] || this.isLoading() || this.treeView.expandOn() === 'dbClick') {\n return;\n }\n\n this.isExpanded.set(!this.isExpanded());\n\n if (this.treeView.itemsPromise && this.isExpanded() && !this.item()[this.treeView.childrenField()]?.length) {\n this.treeView.fetchData(this.item());\n this.treeView.setNodeLoading(this.item()[this.treeView.valueField()], true);\n }\n\n this.treeView.onCollapsedChanged.emit({ component: this, data: this.item(), nativeElement: this.nativeElement });\n }\n\n protected handleTextClick(item: unknown) {\n if (this.item()[this.treeView.disableField()]) {\n return;\n }\n if (this.treeView.focusNodeEnabled()) {\n this.treeView.handleUnActiveNode(this.treeView.itemsSignal());\n this.item()[this.treeView.activeField()] = true;\n }\n this.treeView.onNodeClick.emit({ component: this, data: item, nativeElement: this.nativeElement });\n }\n\n protected handleTextDbClick(item: unknown) {\n if (item[this.treeView.disableField()] || this.treeView.expandOn() === 'click') {\n return;\n }\n if (item?.[this.treeView.childrenField()] || item[this.treeView.hasChildField()]) {\n this.isExpanded.set(!this.isExpanded());\n\n if (this.treeView.itemsPromise && this.isExpanded()) {\n this.treeView.fetchData(this.item());\n this.treeView.setNodeLoading(this.item()[this.treeView.valueField()], true);\n }\n }\n this.treeView.onNodedbClick.emit({ component: this, data: item, nativeElement: this.nativeElement });\n }\n}\n","<div class=\"ax-tree-view-container\">\n @if ((item()[this.treeView.childrenField()] && !isLoading()) || (item()[treeView.hasChildField()] && !isLoading())) {\n <div class=\"ax-tree-view-icon-container\" (click)=\"handleArrowNodeClick()\">\n <i [class.ax-state-disabled]=\"item()[treeView.disableField()]\" class=\"{{ arrowIcon() }}\"></i>\n </div>\n } @else if (isLoading()) {\n <ax-loading></ax-loading>\n }\n\n <div class=\"ax-tree-view-items\">\n <ng-content select=\"ax-check-box\"></ng-content>\n <div\n [class.ax-state-disabled]=\"item()[treeView.disableField()]\"\n [axTooltip]=\"item()[treeView.tooltipField()]\"\n axTooltipPlacement=\"end-bottom\"\n (click)=\"handleTextClick(item())\"\n (dblclick)=\"handleTextDbClick(item())\"\n class=\"ax-tree-view-items-prefix noselect-tree-view\"\n [class.ax-state-tree-view-active]=\"item()[treeView.activeField()]\"\n >\n @if (treeView.itemTemplate) {\n <ng-container *ngTemplateOutlet=\"treeView.itemTemplate; context: { $implicit: item() }\"></ng-container>\n } @else {\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n }\n </div>\n </div>\n</div>\n\n<div class=\"ax-tree-view-child\" [@collapseExpand]=\"isExpanded() ? 'expanded' : 'collapsed'\">\n <ng-content></ng-content>\n</div>\n","import { AXCheckBoxComponent } from '@acorex/components/check-box';\nimport { AXComponent, AXExpandToggleIcons, AXValueChangedEvent, NXComponent } from '@acorex/components/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n HostBinding,\n inject,\n Input,\n input,\n output,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXTreeViewItemComponent } from './tree-view-item.component';\nimport {\n AXTreeItemClickBaseEvent,\n AXTreeViewBase,\n AXTreeViewExpandBehavior,\n AXTreeViewLook,\n AXTreeViewOperationMethod,\n AXTreeViewSelectionBehavior,\n} from './tree-view.class';\n\n@Component({\n selector: 'ax-tree-view',\n templateUrl: 'tree-view.component.html',\n styleUrls: ['tree-view.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n AXTreeViewItemComponent,\n AXCheckBoxComponent,\n FormsModule,\n AXDecoratorGenericComponent,\n AXDecoratorIconComponent,\n AXTranslatorPipe,\n AsyncPipe,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXTreeViewComponent },\n { provide: AXTreeViewBase, useExisting: AXTreeViewComponent },\n ],\n})\nexport class AXTreeViewComponent extends NXComponent {\n /** @ignore */\n @HostBinding('class')\n private get __hostClass(): string[] {\n return [`ax-look-${this.look()}`];\n }\n\n itemsSignal = signal<unknown[]>([]);\n\n itemsPromise: any;\n\n items = input<unknown[] | ((selectedItemId?: string | number) => unknown[] | Promise<unknown[]>)>();\n\n protected get resolvedItems() {\n return this.itemsSignal();\n }\n\n showCheckbox = input<boolean>(true);\n\n selectionMode = input<'single' | 'multiple'>('single');\n\n selectionBehavior = input<AXTreeViewSelectionBehavior>();\n\n focusNodeEnabled = input<boolean>(true);\n\n valueField = input('id');\n\n textField = input('text');\n\n visibleField = input('visible');\n\n disableField = input('disabled');\n\n hasChildField = input('hasChild');\n\n selectedField = input('selected');\n\n expandedField = input('expanded');\n\n tooltipField = input('tooltip');\n\n childrenField = input('children');\n\n activeField = input('active');\n\n indeterminateField = input('indeterminate');\n\n parentField = input('parentId');\n\n iconField = input<string>('icon');\n\n toggleIcons = input<AXExpandToggleIcons>();\n\n onSelectionChanged = output<AXTreeItemClickBaseEvent>();\n\n onNodeClick = output<AXTreeItemClickBaseEvent>();\n\n onCollapsedChanged = output<AXTreeItemClickBaseEvent>();\n\n onNodedbClick = output<AXTreeItemClickBaseEvent>();\n\n executorChanges = signal<AXTreeViewOperationMethod>(null);\n\n look = input<AXTreeViewLook>('defult');\n\n @Input() itemTemplate?: TemplateRef<unknown>;\n\n @Input() emptyTemplate?: TemplateRef<unknown>;\n\n protected platformService = inject(AXPlatform);\n\n #effect = effect(() => {\n const itemsInput = this.items();\n\n if (typeof itemsInput === 'function') {\n const result = itemsInput();\n if (result instanceof Promise) {\n this.itemsPromise = (options) => itemsInput(options);\n this.fetchData();\n } else {\n this.itemsSignal.set(result);\n this.itemsPromise = null;\n }\n } else {\n this.itemsSignal.set(itemsInput);\n this.itemsPromise = null;\n }\n });\n\n expandOn = input<AXTreeViewExpandBehavior>('defult');\n\n protected handleNodeSelectionClick(event: AXValueChangedEvent, item: unknown) {\n if (item[this.disableField()] || this.isNodeLoading(item[this.valueField()])) {\n return;\n }\n\n if (this.selectionMode() === 'single' && event.isUserInteraction) {\n this.handleUnSelectNode(this.itemsSignal());\n }\n\n if (event.isUserInteraction) {\n item[this.selectedField()] = event.value;\n\n if (event.value !== null) {\n switch (this.selectionBehavior()) {\n case 'autoExpand':\n if (event.value) {\n if (this.itemsPromise && item[this.hasChildField()] && !item?.[this.childrenField()]?.length) {\n this.fetchData(item);\n this.setNodeLoading(item[this.valueField()], true);\n }\n this.toggleExpand(item);\n }\n break;\n case 'cascade':\n this.expandAndToggleSelection(item, event.value);\n break;\n case 'indeterminate':\n if (item?.[this.childrenField()]?.length) {\n this.applySelectionToChildren(item, event.value, item[this.valueField()]);\n }\n this.updateParentSelection(item, event.value);\n break;\n default:\n break;\n }\n }\n\n const result: unknown[] = this.findSelectedNodes(this.itemsSignal());\n\n this.onSelectionChanged.emit({\n component: this,\n data: result,\n nativeElement: this.nativeElement,\n });\n }\n }\n\n /**\n *\n * auto expand\n *\n */\n private toggleExpand(item: unknown) {\n if (!item[this.expandedField()]) {\n item[this.expandedField()] = true;\n }\n }\n\n /**\n *\n * expand and change value parent change\n *\n */\n\n private async expandAndToggleSelection(item: unknown, selected: boolean) {\n if (this.itemsPromise && item[this.hasChildField()] && !item?.[this.childrenField()]?.length) {\n await this.fetchData(item);\n await this.setNodeLoading(item[this.valueField()], true);\n }\n this.toggleExpand(item);\n\n if (item[this.childrenField()]?.length) {\n this.applySelectionToChildren(item, selected, item[this.valueField()]);\n }\n }\n\n private applySelectionToChildren(item: unknown, isSelected: boolean, parentId?: number | string) {\n item[this.childrenField()].forEach(async (child) => {\n if (\n this.itemsPromise &&\n child[this.hasChildField()] &&\n !child?.[this.childrenField()]?.length &&\n this.selectionBehavior() === 'cascade'\n ) {\n await this.fetchData(child);\n await this.setNodeLoading(child[this.valueField()], true);\n this.toggleExpand(child);\n }\n child[this.parentField()] = parentId;\n child[this.selectedField()] = isSelected;\n if (child[this.childrenField()]?.length) {\n this.applySelectionToChildren(child, isSelected, child[this.valueField()]);\n }\n });\n }\n\n /**\n *\n * indeterminate logic\n *\n */\n\n private updateParentSelection(item: unknown, selected: boolean) {\n item[this.selectedField()] = selected;\n\n let parent = this.findParent(item, this.itemsSignal());\n\n while ((parent && parent[this.selectedField()] != false) || (parent && item[this.selectedField()])) {\n const allSelected = parent?.[this.childrenField()]?.every((child) => child[this.selectedField()]);\n\n const someSelected = parent?.[this.childrenField()]?.some(\n (child) => child[this.selectedField()] || child[this.indeterminateField()],\n );\n\n if (!allSelected && !someSelected) {\n parent[this.selectedField()] = false;\n parent[this.indeterminateField()] = null;\n } else if (!allSelected) {\n parent[this.indeterminateField()] = true;\n parent[this.selectedField()] = null;\n } else if (allSelected) {\n parent[this.selectedField()] = true;\n parent[this.indeterminateField()] = false;\n } else {\n parent[this.indeterminateField()] = false;\n parent[this.selectedField()] = true;\n }\n\n parent = this.findParent(parent, this.itemsSignal());\n }\n }\n\n private findParent(item: unknown, nodes: unknown[]) {\n for (const node of nodes) {\n if (node[this.childrenField()]?.includes(item)) {\n return node;\n } else if (node[this.childrenField()]) {\n const parent = this.findParent(item, node[this.childrenField()]);\n if (parent) return parent;\n }\n }\n return null;\n }\n\n /**\n *\n * find node selected true for emit Selections\n *\n */\n\n private findSelectedNodes(nodes: unknown[]): unknown[] {\n let selectedNodes: unknown[] = [];\n\n nodes.forEach((node) => {\n if (node[this.selectedField()]) {\n selectedNodes.push(node);\n }\n\n if (node[this.childrenField()]) {\n selectedNodes = selectedNodes.concat(this.findSelectedNodes(node[this.childrenField()]));\n }\n });\n\n return selectedNodes;\n }\n\n /**\n *\n * find for emit Selections single mode\n *\n */\n\n private handleUnSelectNode(items: unknown[]) {\n items.forEach((child) => {\n child[this.selectedField()] = false;\n if (child?.[this.childrenField()]?.length) {\n this.handleUnSelectNode(child[this.childrenField()]);\n }\n });\n }\n\n /**\n *\n * lazy load logic\n *\n */\n\n fetchData(selectedNode?: unknown) {\n this.itemsPromise(selectedNode?.[this.valueField()])\n .then((data: unknown[]) => {\n if (Array.isArray(data)) {\n if (selectedNode?.[this.valueField()]) {\n this.findNode(selectedNode[this.valueField()], data, this.itemsSignal());\n } else {\n this.itemsSignal.set(data);\n }\n }\n })\n .finally(() => {\n this.setNodeLoading(selectedNode?.[this.valueField()], false);\n });\n }\n\n private findNode(parentId: number | string, _children: unknown[], source: unknown[]) {\n if (source.length) {\n source.forEach((element) => {\n if (element[this.valueField()] == parentId) {\n if (this.selectionBehavior() === 'indeterminate' && element[this.selectedField()]) {\n _children.forEach((child) => (child[this.selectedField()] = true));\n }\n element[this.childrenField()] = _children;\n } else {\n if (element?.[this.childrenField()]) this.findNode(parentId, _children, element[this.childrenField()]);\n }\n });\n }\n }\n\n /**\n *\n * emit when arrow click\n *\n */\n\n protected handleNodeExpandClick(node: AXTreeItemClickBaseEvent) {\n const selectedNode = node.data;\n if (this.itemsPromise && node.data[this.expandedField()] && !node?.data[this.childrenField()]?.length) {\n this.fetchData(selectedNode);\n this.setNodeLoading(selectedNode[this.valueField()], true);\n }\n this.onCollapsedChanged.emit({ component: this, data: node.data, nativeElement: this.nativeElement });\n }\n\n handleUnActiveNode(unActiveSource: unknown[]) {\n unActiveSource.forEach((child) => {\n child[this.activeField()] = false;\n if (child?.[this.childrenField()]?.length) {\n this.handleUnActiveNode(child[this.childrenField()]);\n }\n });\n }\n\n private loadingState = signal<Record<string | number, boolean>>({});\n\n protected isNodeLoading(nodeId: string | number): boolean {\n return this.loadingState()[nodeId] || false;\n }\n\n setNodeLoading(nodeId: string | number, isLoading: boolean): void {\n this.loadingState.update((state) => ({\n ...state,\n [nodeId]: isLoading,\n }));\n }\n\n public executeOnTreeNode(node: unknown, operation: AXTreeViewOperationMethod, value: boolean) {\n switch (operation) {\n case 'active':\n node[this.activeField()] = value;\n break;\n case 'expand':\n node[this.expandedField()] = true;\n if (this.itemsPromise && node[this.hasChildField()] && !node[this.childrenField()]?.length) {\n this.handleNodeExpandClick({ data: node, nativeElement: this.nativeElement, component: this });\n }\n\n break;\n case 'visible':\n node[this.visibleField()] = value;\n\n break;\n case 'disabled':\n node[this.disableField()] = value;\n break;\n default:\n break;\n }\n /**\n *\n * for detect changes treeviewitem\n *\n */\n\n this.executorChanges.set(operation);\n }\n\n refresh() {\n if (this.itemsPromise) {\n this.fetchData();\n }\n }\n}\n","@if (resolvedItems?.length) {\n @for (node of resolvedItems; track $index) {\n <ng-container [ngTemplateOutlet]=\"recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n }\n} @else {\n <ng-container *ngTemplateOutlet=\"emptyTemplate || empty\"></ng-container>\n}\n\n<ng-template #recursion let-item>\n @if (item[visibleField()] !== false) {\n <ax-tree-view-item\n [item]=\"item\"\n [(isExpanded)]=\"item[expandedField()]\"\n [(isActive)]=\"item[activeField()]\"\n [isLoading]=\"isNodeLoading(item[valueField()])\"\n [executorChanges]=\"executorChanges()\"\n >\n @if (this.showCheckbox()) {\n <ax-check-box\n [disabled]=\"item[disableField()]\"\n [indeterminate]=\"item[indeterminateField()]\"\n [(ngModel)]=\"item[selectedField()]\"\n (onValueChanged)=\"handleNodeSelectionClick($event, item)\"\n ></ax-check-box>\n }\n <ax-prefix>\n @if (item[iconField()]) {\n <ax-icon [icon]=\"item[iconField()]\"></ax-icon>\n } @else {\n <i></i>\n }\n </ax-prefix>\n @if (item[textField()]) {\n <ax-text>{{ item[textField()] }}</ax-text>\n }\n\n <ax-suffix></ax-suffix>\n @for (child of item?.[childrenField()]; track $index) {\n <ng-container [ngTemplateOutlet]=\"recursion\" [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\n }\n </ax-tree-view-item>\n }\n</ng-template>\n\n<ng-template #empty>\n {{ 'no-result-found' | translate | async }}\n</ng-template>\n","import { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXTreeViewItemComponent } from './tree-view-item.component';\nimport { AXTreeViewComponent } from './tree-view.component';\n\nconst COMPONENT = [AXTreeViewComponent, AXTreeViewItemComponent];\nconst MODULES = [\n CommonModule,\n AXCommonModule,\n AXDecoratorModule,\n AXCheckBoxModule,\n AXFormModule,\n FormsModule,\n AXTooltipModule,\n AXLoadingModule,\n];\n@NgModule({\n imports: [...COMPONENT, ...MODULES],\n exports: [...COMPONENT],\n})\nexport class AXTreeViewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-tree-view.mjs","sources":["../../../../packages/components/tree-view/src/lib/tree-view.class.ts","../../../../packages/components/tree-view/src/lib/tree-view-item.component.ts","../../../../packages/components/tree-view/src/lib/tree-view-item.component.html","../../../../packages/components/tree-view/src/lib/tree-view.component.ts","../../../../packages/components/tree-view/src/lib/tree-view.component.html","../../../../packages/components/tree-view/src/lib/tree-view.component.module.ts","../../../../packages/components/tree-view/src/acorex-components-tree-view.ts"],"sourcesContent":["import { AXClickEvent } from '@acorex/components/common';\nimport { EventEmitter } from '@angular/core';\n\nexport class AXTreeItemClickBaseEvent extends AXClickEvent {\n nativeElement: any;\n}\n\nexport type AXTreeViewSelectionBehavior = 'autoExpand' | 'cascade' | 'indeterminate';\n\nexport type AXTreeViewExpandBehavior = 'click' | 'dbClick' | 'defult';\n\nexport type AXTreeViewOperationMethod = 'expand' | 'active' | 'visible' | 'disabled';\n\nexport type AXTreeViewLook = 'with-line' | 'defult';\n\nexport abstract class AXTreeViewBase {\n abstract getChildren(item: unknown): unknown[];\n\n abstract hasChildren(item: unknown): boolean;\n\n abstract itemTemplate: any;\n\n // Field accessors\n abstract disableField(): string;\n abstract childrenField(): string;\n abstract valueField(): string;\n abstract activeField(): string;\n abstract hasChildField(): string;\n abstract tooltipField(): string;\n\n // Behavior methods\n abstract expandOn(): AXTreeViewExpandBehavior;\n abstract focusNodeEnabled(): boolean;\n abstract toggleIcons(): { expanded: string; collapsed: string } | null;\n\n // Data management\n abstract itemsPromise: boolean;\n abstract itemsSignal(): unknown[];\n abstract fetchData(item: unknown): void;\n abstract setNodeLoading(value: unknown, loading: boolean): void;\n abstract handleUnActiveNode(items: unknown[]): void;\n\n // Event emitters\n abstract onCollapsedChanged: EventEmitter<{ component: any; data: unknown; nativeElement: any }>;\n abstract onNodeClick: EventEmitter<{ component: any; data: unknown; nativeElement: any }>;\n abstract onNodedbClick: EventEmitter<{ component: any; data: unknown; nativeElement: any }>;\n}\n","import { NXComponent } from '@acorex/components/common';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, model, ViewEncapsulation } from '@angular/core';\nimport { AXTreeViewBase, AXTreeViewOperationMethod } from './tree-view.class';\n\n@Component({\n selector: 'ax-tree-view-item',\n templateUrl: 'tree-view-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('collapseExpand', [\n state(\n 'collapsed',\n style({\n height: '0',\n overflow: 'hidden',\n opacity: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n height: '*',\n overflow: 'hidden',\n opacity: 1,\n }),\n ),\n transition('collapsed <=> expanded', [animate('300ms ease-in-out')]),\n ]),\n ],\n imports: [CommonModule, AXLoadingComponent, AXTooltipDirective],\n})\nexport class AXTreeViewItemComponent extends NXComponent {\n constructor() {\n super();\n }\n\n treeView = inject(AXTreeViewBase);\n\n item = input<unknown>();\n\n isExpanded = model<boolean>(false);\n\n isActive = model<boolean>(false);\n\n isLoading = input<boolean>(false);\n\n executorChanges = input<AXTreeViewOperationMethod>();\n\n protected platformService = inject(AXPlatform);\n\n protected arrowIcon = computed(() => {\n const baseClasses = 'ax-tree-view-arrow ax-icon ax-icon-solid';\n const toggleIcons = this.treeView.toggleIcons();\n\n if (toggleIcons) {\n return this.isExpanded() ? `${baseClasses} ${toggleIcons.expanded}` : `${baseClasses} ${toggleIcons.collapsed}`;\n }\n\n if (this.isExpanded()) {\n return `${baseClasses} ax-icon-chevron-down`;\n }\n\n return this.platformService.isRtl()\n ? `${baseClasses} ax-icon-chevron-left`\n : `${baseClasses} ax-icon-chevron-right`;\n });\n\n protected handleArrowNodeClick() {\n if (this.item()[this.treeView.disableField()] || this.isLoading() || this.treeView.expandOn() === 'dbClick') {\n return;\n }\n\n this.isExpanded.set(!this.isExpanded());\n\n if (this.treeView.itemsPromise && this.isExpanded() && !this.item()[this.treeView.childrenField()]?.length) {\n this.treeView.fetchData(this.item());\n this.treeView.setNodeLoading(this.item()[this.treeView.valueField()], true);\n }\n\n this.treeView.onCollapsedChanged.emit({ component: this, data: this.item(), nativeElement: this.nativeElement });\n }\n\n protected handleTextClick(item: unknown) {\n if (this.item()[this.treeView.disableField()]) {\n return;\n }\n if (this.treeView.focusNodeEnabled()) {\n this.treeView.handleUnActiveNode(this.treeView.itemsSignal());\n this.item()[this.treeView.activeField()] = true;\n }\n this.treeView.onNodeClick.emit({ component: this, data: item, nativeElement: this.nativeElement });\n }\n\n protected handleTextDbClick(item: unknown) {\n if (item[this.treeView.disableField()] || this.treeView.expandOn() === 'click') {\n return;\n }\n if (item?.[this.treeView.childrenField()] || item[this.treeView.hasChildField()]) {\n this.isExpanded.set(!this.isExpanded());\n\n if (this.treeView.itemsPromise && this.isExpanded()) {\n this.treeView.fetchData(this.item());\n this.treeView.setNodeLoading(this.item()[this.treeView.valueField()], true);\n }\n }\n this.treeView.onNodedbClick.emit({ component: this, data: item, nativeElement: this.nativeElement });\n }\n}\n","<div class=\"ax-tree-view-container\">\n @if ((item()[this.treeView.childrenField()] && !isLoading()) || (item()[treeView.hasChildField()] && !isLoading())) {\n <div class=\"ax-tree-view-icon-container\" (click)=\"handleArrowNodeClick()\">\n <i [class.ax-state-disabled]=\"item()[treeView.disableField()]\" class=\"{{ arrowIcon() }}\"></i>\n </div>\n } @else if (isLoading()) {\n <ax-loading></ax-loading>\n }\n\n <div class=\"ax-tree-view-items\">\n <ng-content select=\"ax-check-box\"></ng-content>\n <div\n [class.ax-state-disabled]=\"item()[treeView.disableField()]\"\n [axTooltip]=\"item()[treeView.tooltipField()]\"\n axTooltipPlacement=\"end-bottom\"\n (click)=\"handleTextClick(item())\"\n (dblclick)=\"handleTextDbClick(item())\"\n class=\"ax-tree-view-items-prefix noselect-tree-view\"\n [class.ax-state-tree-view-active]=\"item()[treeView.activeField()]\"\n >\n @if (treeView.itemTemplate) {\n <ng-container *ngTemplateOutlet=\"treeView.itemTemplate; context: { $implicit: item() }\"></ng-container>\n } @else {\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n }\n </div>\n </div>\n</div>\n\n<div class=\"ax-tree-view-child\" [@collapseExpand]=\"isExpanded() ? 'expanded' : 'collapsed'\">\n <ng-content></ng-content>\n</div>\n","import { AXCheckBoxComponent } from '@acorex/components/check-box';\nimport { AXComponent, AXExpandToggleIcons, AXValueChangedEvent, NXComponent } from '@acorex/components/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n HostBinding,\n inject,\n Input,\n input,\n output,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXTreeViewItemComponent } from './tree-view-item.component';\nimport {\n AXTreeItemClickBaseEvent,\n AXTreeViewBase,\n AXTreeViewExpandBehavior,\n AXTreeViewLook,\n AXTreeViewOperationMethod,\n AXTreeViewSelectionBehavior,\n} from './tree-view.class';\n\n@Component({\n selector: 'ax-tree-view',\n templateUrl: 'tree-view.component.html',\n styleUrls: ['tree-view.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgTemplateOutlet,\n AXTreeViewItemComponent,\n AXCheckBoxComponent,\n FormsModule,\n AXDecoratorGenericComponent,\n AXDecoratorIconComponent,\n AXTranslatorPipe,\n AsyncPipe,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXTreeViewComponent },\n { provide: AXTreeViewBase, useExisting: AXTreeViewComponent },\n ],\n})\nexport class AXTreeViewComponent extends NXComponent {\n /** @ignore */\n @HostBinding('class')\n private get __hostClass(): string[] {\n return [`ax-look-${this.look()}`];\n }\n\n itemsSignal = signal<unknown[]>([]);\n\n itemsPromise: any;\n\n items = input<unknown[] | ((selectedItemId?: string | number) => unknown[] | Promise<unknown[]>)>();\n\n protected get resolvedItems() {\n return this.itemsSignal();\n }\n\n showCheckbox = input<boolean>(true);\n\n selectionMode = input<'single' | 'multiple'>('single');\n\n selectionBehavior = input<AXTreeViewSelectionBehavior>();\n\n focusNodeEnabled = input<boolean>(true);\n\n valueField = input('id');\n\n textField = input('text');\n\n visibleField = input('visible');\n\n disableField = input('disabled');\n\n hasChildField = input('hasChild');\n\n selectedField = input('selected');\n\n expandedField = input('expanded');\n\n tooltipField = input('tooltip');\n\n childrenField = input('children');\n\n activeField = input('active');\n\n indeterminateField = input('indeterminate');\n\n parentField = input('parentId');\n\n iconField = input<string>('icon');\n\n toggleIcons = input<AXExpandToggleIcons>();\n\n onSelectionChanged = output<AXTreeItemClickBaseEvent>();\n\n onNodeClick = output<AXTreeItemClickBaseEvent>();\n\n onCollapsedChanged = output<AXTreeItemClickBaseEvent>();\n\n onNodedbClick = output<AXTreeItemClickBaseEvent>();\n\n executorChanges = signal<AXTreeViewOperationMethod>(null);\n\n look = input<AXTreeViewLook>('defult');\n\n @Input() itemTemplate?: TemplateRef<unknown>;\n\n @Input() emptyTemplate?: TemplateRef<unknown>;\n\n protected platformService = inject(AXPlatform);\n\n #effect = effect(() => {\n const itemsInput = this.items();\n\n if (typeof itemsInput === 'function') {\n const result = itemsInput();\n if (result instanceof Promise) {\n this.itemsPromise = (options) => itemsInput(options);\n this.fetchData();\n } else {\n this.itemsSignal.set(result);\n this.itemsPromise = null;\n }\n } else {\n this.itemsSignal.set(itemsInput);\n this.itemsPromise = null;\n }\n });\n\n expandOn = input<AXTreeViewExpandBehavior>('defult');\n\n protected handleNodeSelectionClick(event: AXValueChangedEvent, item: unknown) {\n if (item[this.disableField()] || this.isNodeLoading(item[this.valueField()])) {\n return;\n }\n\n if (this.selectionMode() === 'single' && event.isUserInteraction) {\n this.handleUnSelectNode(this.itemsSignal());\n }\n\n if (event.isUserInteraction) {\n item[this.selectedField()] = event.value;\n\n if (event.value !== null) {\n switch (this.selectionBehavior()) {\n case 'autoExpand':\n if (event.value) {\n if (this.itemsPromise && item[this.hasChildField()] && !item?.[this.childrenField()]?.length) {\n this.fetchData(item);\n this.setNodeLoading(item[this.valueField()], true);\n }\n this.toggleExpand(item);\n }\n break;\n case 'cascade':\n this.expandAndToggleSelection(item, event.value);\n break;\n case 'indeterminate':\n if (item?.[this.childrenField()]?.length) {\n this.applySelectionToChildren(item, event.value, item[this.valueField()]);\n }\n this.updateParentSelection(item, event.value);\n break;\n default:\n break;\n }\n }\n\n const result: unknown[] = this.findSelectedNodes(this.itemsSignal());\n\n this.onSelectionChanged.emit({\n component: this,\n data: result,\n nativeElement: this.nativeElement,\n });\n }\n }\n\n /**\n *\n * auto expand\n *\n */\n private toggleExpand(item: unknown) {\n if (!item[this.expandedField()]) {\n item[this.expandedField()] = true;\n }\n }\n\n /**\n *\n * expand and change value parent change\n *\n */\n\n private async expandAndToggleSelection(item: unknown, selected: boolean) {\n if (this.itemsPromise && item[this.hasChildField()] && !item?.[this.childrenField()]?.length) {\n await this.fetchData(item);\n await this.setNodeLoading(item[this.valueField()], true);\n }\n this.toggleExpand(item);\n\n if (item[this.childrenField()]?.length) {\n this.applySelectionToChildren(item, selected, item[this.valueField()]);\n }\n }\n\n private applySelectionToChildren(item: unknown, isSelected: boolean, parentId?: number | string) {\n item[this.childrenField()].forEach(async (child) => {\n if (\n this.itemsPromise &&\n child[this.hasChildField()] &&\n !child?.[this.childrenField()]?.length &&\n this.selectionBehavior() === 'cascade'\n ) {\n await this.fetchData(child);\n await this.setNodeLoading(child[this.valueField()], true);\n this.toggleExpand(child);\n }\n child[this.parentField()] = parentId;\n child[this.selectedField()] = isSelected;\n if (child[this.childrenField()]?.length) {\n this.applySelectionToChildren(child, isSelected, child[this.valueField()]);\n }\n });\n }\n\n /**\n *\n * indeterminate logic\n *\n */\n\n private updateParentSelection(item: unknown, selected: boolean) {\n item[this.selectedField()] = selected;\n\n let parent = this.findParent(item, this.itemsSignal());\n\n while ((parent && parent[this.selectedField()] != false) || (parent && item[this.selectedField()])) {\n const allSelected = parent?.[this.childrenField()]?.every((child) => child[this.selectedField()]);\n\n const someSelected = parent?.[this.childrenField()]?.some(\n (child) => child[this.selectedField()] || child[this.indeterminateField()],\n );\n\n if (!allSelected && !someSelected) {\n parent[this.selectedField()] = false;\n parent[this.indeterminateField()] = null;\n } else if (!allSelected) {\n parent[this.indeterminateField()] = true;\n parent[this.selectedField()] = null;\n } else if (allSelected) {\n parent[this.selectedField()] = true;\n parent[this.indeterminateField()] = false;\n } else {\n parent[this.indeterminateField()] = false;\n parent[this.selectedField()] = true;\n }\n\n parent = this.findParent(parent, this.itemsSignal());\n }\n }\n\n private findParent(item: unknown, nodes: unknown[]) {\n for (const node of nodes) {\n if (node[this.childrenField()]?.includes(item)) {\n return node;\n } else if (node[this.childrenField()]) {\n const parent = this.findParent(item, node[this.childrenField()]);\n if (parent) return parent;\n }\n }\n return null;\n }\n\n /**\n *\n * find node selected true for emit Selections\n *\n */\n\n private findSelectedNodes(nodes: unknown[]): unknown[] {\n let selectedNodes: unknown[] = [];\n\n nodes.forEach((node) => {\n if (node[this.selectedField()]) {\n selectedNodes.push(node);\n }\n\n if (node[this.childrenField()]) {\n selectedNodes = selectedNodes.concat(this.findSelectedNodes(node[this.childrenField()]));\n }\n });\n\n return selectedNodes;\n }\n\n /**\n *\n * find for emit Selections single mode\n *\n */\n\n private handleUnSelectNode(items: unknown[]) {\n items.forEach((child) => {\n child[this.selectedField()] = false;\n if (child?.[this.childrenField()]?.length) {\n this.handleUnSelectNode(child[this.childrenField()]);\n }\n });\n }\n\n /**\n *\n * lazy load logic\n *\n */\n\n fetchData(selectedNode?: unknown) {\n this.itemsPromise(selectedNode?.[this.valueField()])\n .then((data: unknown[]) => {\n if (Array.isArray(data)) {\n if (selectedNode?.[this.valueField()]) {\n this.findNode(selectedNode[this.valueField()], data, this.itemsSignal());\n } else {\n this.itemsSignal.set(data);\n }\n }\n })\n .finally(() => {\n this.setNodeLoading(selectedNode?.[this.valueField()], false);\n });\n }\n\n private findNode(parentId: number | string, _children: unknown[], source: unknown[]) {\n if (source.length) {\n source.forEach((element) => {\n if (element[this.valueField()] == parentId) {\n if (this.selectionBehavior() === 'indeterminate' && element[this.selectedField()]) {\n _children.forEach((child) => (child[this.selectedField()] = true));\n }\n element[this.childrenField()] = _children;\n } else {\n if (element?.[this.childrenField()]) this.findNode(parentId, _children, element[this.childrenField()]);\n }\n });\n }\n }\n\n /**\n *\n * emit when arrow click\n *\n */\n\n protected handleNodeExpandClick(node: AXTreeItemClickBaseEvent) {\n const selectedNode = node.data;\n if (this.itemsPromise && node.data[this.expandedField()] && !node?.data[this.childrenField()]?.length) {\n this.fetchData(selectedNode);\n this.setNodeLoading(selectedNode[this.valueField()], true);\n }\n this.onCollapsedChanged.emit({ component: this, data: node.data, nativeElement: this.nativeElement });\n }\n\n handleUnActiveNode(unActiveSource: unknown[]) {\n unActiveSource.forEach((child) => {\n child[this.activeField()] = false;\n if (child?.[this.childrenField()]?.length) {\n this.handleUnActiveNode(child[this.childrenField()]);\n }\n });\n }\n\n private loadingState = signal<Record<string | number, boolean>>({});\n\n protected isNodeLoading(nodeId: string | number): boolean {\n return this.loadingState()[nodeId] || false;\n }\n\n setNodeLoading(nodeId: string | number, isLoading: boolean): void {\n this.loadingState.update((state) => ({\n ...state,\n [nodeId]: isLoading,\n }));\n }\n\n public executeOnTreeNode(node: unknown, operation: AXTreeViewOperationMethod, value: boolean) {\n switch (operation) {\n case 'active':\n node[this.activeField()] = value;\n break;\n case 'expand':\n node[this.expandedField()] = true;\n if (this.itemsPromise && node[this.hasChildField()] && !node[this.childrenField()]?.length) {\n this.handleNodeExpandClick({ data: node, nativeElement: this.nativeElement, component: this });\n }\n\n break;\n case 'visible':\n node[this.visibleField()] = value;\n\n break;\n case 'disabled':\n node[this.disableField()] = value;\n break;\n default:\n break;\n }\n /**\n *\n * for detect changes treeviewitem\n *\n */\n\n this.executorChanges.set(operation);\n }\n\n refresh() {\n if (this.itemsPromise) {\n this.fetchData();\n }\n }\n}\n","@if (resolvedItems?.length) {\n @for (node of resolvedItems; track $index) {\n <ng-container [ngTemplateOutlet]=\"recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-container>\n }\n} @else {\n <ng-container *ngTemplateOutlet=\"emptyTemplate || empty\"></ng-container>\n}\n\n<ng-template #recursion let-item>\n @if (item[visibleField()] !== false) {\n <ax-tree-view-item\n [item]=\"item\"\n [(isExpanded)]=\"item[expandedField()]\"\n [(isActive)]=\"item[activeField()]\"\n [isLoading]=\"isNodeLoading(item[valueField()])\"\n [executorChanges]=\"executorChanges()\"\n >\n @if (this.showCheckbox()) {\n <ax-check-box\n [disabled]=\"item[disableField()]\"\n [indeterminate]=\"item[indeterminateField()]\"\n [(ngModel)]=\"item[selectedField()]\"\n (onValueChanged)=\"handleNodeSelectionClick($event, item)\"\n ></ax-check-box>\n }\n <ax-prefix>\n @if (item[iconField()]) {\n <ax-icon [icon]=\"item[iconField()]\"></ax-icon>\n } @else {\n <i></i>\n }\n </ax-prefix>\n @if (item[textField()]) {\n <ax-text>{{ item[textField()] }}</ax-text>\n }\n\n <ax-suffix></ax-suffix>\n @for (child of item?.[childrenField()]; track $index) {\n <ng-container [ngTemplateOutlet]=\"recursion\" [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\n }\n </ax-tree-view-item>\n }\n</ng-template>\n\n<ng-template #empty>\n {{ 'no-result-found' | translate | async }}\n</ng-template>\n","import { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXTreeViewItemComponent } from './tree-view-item.component';\nimport { AXTreeViewComponent } from './tree-view.component';\n\nconst COMPONENT = [AXTreeViewComponent, AXTreeViewItemComponent];\nconst MODULES = [\n CommonModule,\n AXCommonModule,\n AXDecoratorModule,\n AXCheckBoxModule,\n AXFormModule,\n FormsModule,\n AXTooltipModule,\n AXLoadingModule,\n];\n@NgModule({\n imports: [...COMPONENT, ...MODULES],\n exports: [...COMPONENT],\n})\nexport class AXTreeViewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
@@ -141,7 +141,9 @@ class AXUploaderService {
|
|
141
141
|
this.popupService
|
142
142
|
.open(c.AXUploaderListComponent, {
|
143
143
|
size: 'sm',
|
144
|
-
title: filesCount > 1
|
144
|
+
title: filesCount > 1
|
145
|
+
? await this.translateService.translateAsync('uploader.zone.uploadFiles')
|
146
|
+
: await this.translateService.translateAsync('uploader.zone.uploadFile'),
|
145
147
|
})
|
146
148
|
.then(async () => {
|
147
149
|
await this.cancelAll();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-uploader.mjs","sources":["../../../../libs/components/uploader/src/lib/uploader.models.ts","../../../../libs/components/uploader/src/lib/uploader.service.ts","../../../../libs/components/uploader/src/lib/uploader-zone.directive.ts","../../../../libs/components/uploader/src/lib/uploader-browse-handle.directive.ts","../../../../libs/components/uploader/src/lib/uploader-list/uploader-list.component.ts","../../../../libs/components/uploader/src/lib/uploader-list/uploader-list.component.html","../../../../libs/components/uploader/src/lib/uploader-dialog-container/uploader-dialog-container.component.ts","../../../../libs/components/uploader/src/lib/uploader-dialog-container/uploader-dialog-container.component.html","../../../../libs/components/uploader/src/lib/uploader-drop-zone/uploader-drop-zone.component.ts","../../../../libs/components/uploader/src/lib/uploader-drop-zone/uploader-drop-zone.component.html","../../../../libs/components/uploader/src/lib/uploader.module.ts","../../../../libs/components/uploader/src/acorex-components-uploader.ts"],"sourcesContent":["import { AXEvent } from '@acorex/components/common';\nimport { computed, signal } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nexport type AXUploadStatus = 'new' | 'inprogress' | 'completed' | 'failed' | 'canceled';\n\nexport interface AXUploaderChangedEvent extends AXEvent {\n requests: AXUploadRequest[];\n}\n\nexport interface AXUploaderFileStartEvent extends AXEvent {\n uploadedFile: AXUploadRequest;\n}\nexport interface AXUploaderFileCompleteEvent extends AXEvent {\n uploadedFile: AXUploadRequest;\n}\n\nexport interface AXUploaderFilesCompleteEvent extends AXEvent {\n uploadedFiles: AXUploadRequest[];\n data?: any;\n}\n\nexport interface AXUploaderFileCancelEvent extends AXEvent {\n uploadedFile: AXUploadRequest;\n}\n\nexport class AXUploadRequest {\n get name(): string {\n return this.file.name;\n }\n\n get ext(): string {\n const parts = this.name.split('.');\n if (parts.length > 1) {\n return parts[parts.length - 1];\n } else {\n // No extension found\n return '';\n }\n }\n\n get size(): number {\n return this.file.size;\n }\n\n get file(): File {\n return this.uploadFile;\n }\n\n private readonly _progress = signal(0);\n progress = computed(() => this._progress());\n\n private readonly _estimateTime = signal(0);\n estimateTime = computed(() => this._estimateTime());\n\n private readonly _status = signal<AXUploadStatus>('new');\n status = computed(() => this._status());\n\n private readonly _message = signal<string | null>(null);\n message = computed(() => this._message());\n\n private readonly _isDetermined = signal<boolean>(false);\n isDetermined = computed(() => this._isDetermined());\n\n private startTime: number;\n private bytesTransferred = 0;\n\n public metaData: any;\n\n public onCancel = new Subject<void>();\n public onStart = new Subject<void>();\n public onFailed = new Subject<void>();\n public onComplete = new BehaviorSubject<void>(null);\n\n constructor(private uploadFile: File) {}\n\n private estimateTimeRemaining(bytesTransferred: number): number | null {\n const now = Date.now();\n const elapsed = now - this.startTime; // Time in milliseconds\n\n if (isNaN(elapsed) || elapsed === 0) {\n return null; // Avoid division by zero\n }\n\n const speed = (bytesTransferred || 1) / elapsed; // Bytes per millisecond\n const remainingBytes = this.size - bytesTransferred;\n const estimatedTime = Math.ceil(remainingBytes / speed); // Time in milliseconds\n return estimatedTime; // Return the estimated time in milliseconds\n }\n\n public setTransferredBytes(value: number) {\n this.bytesTransferred = value;\n if (value > 0 && !this._isDetermined() && (this.status() == 'new' || this.status() == 'inprogress')) {\n this._isDetermined.set(true);\n }\n this.updateEstimateTime();\n }\n\n private updateEstimateTime() {\n this._estimateTime.set(this.estimateTimeRemaining(this.bytesTransferred));\n const progress = Math.floor((this.bytesTransferred / this.size) * 100);\n this._progress.set(progress);\n }\n\n public async upload(): Promise<void> {\n this.startTime = Date.now();\n this._progress.set(0);\n this._status.set('inprogress');\n this.onStart.next();\n }\n\n public cancel(): void {\n this._status.set('canceled');\n this.bytesTransferred = 0;\n this._estimateTime.set(0);\n this._progress.set(0);\n this.onCancel.next();\n }\n\n public redo(): void {\n // this.startTime = Date.now();\n this._progress.set(0);\n this._status.set('inprogress');\n this._message.set(null);\n this.onStart.next();\n }\n\n public error(message: string): void {\n this._status.set('failed');\n this.bytesTransferred = 0;\n this._estimateTime.set(0);\n this._progress.set(0);\n this._message.set(message);\n this.onFailed.next();\n }\n\n public finish(data?: any): void {\n this._status.set('completed');\n this.bytesTransferred = this.size;\n this._estimateTime.set(0);\n this._progress.set(100);\n this.onComplete.next(data);\n }\n}\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXFileService } from '@acorex/core/file';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject, signal } from '@angular/core';\nimport { sumBy } from 'lodash-es';\nimport { BehaviorSubject, Subject, interval, map, switchMap } from 'rxjs';\nimport {\n AXUploadRequest,\n AXUploaderFileCancelEvent,\n AXUploaderFileCompleteEvent,\n AXUploaderFileStartEvent,\n AXUploaderFilesCompleteEvent,\n} from './uploader.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AXUploaderService {\n private popupService = inject(AXPopupService);\n private translateService = inject(AXTranslationService);\n private fileService: AXFileService = inject(AXFileService);\n private files$: BehaviorSubject<AXUploadRequest[]> = new BehaviorSubject<AXUploadRequest[]>([]);\n public get files(): BehaviorSubject<AXUploadRequest[]> {\n return this.files$;\n }\n\n public readonly onFileUploadStart: Subject<AXUploaderFileStartEvent> = new Subject<AXUploaderFileStartEvent>();\n public readonly onFileUploadComplete: Subject<AXUploaderFileCompleteEvent> = new Subject<AXUploaderFileCompleteEvent>();\n public readonly onFilesUploadComplete: Subject<AXUploaderFilesCompleteEvent> = new Subject<AXUploaderFilesCompleteEvent>();\n public readonly onFileUploadCanceled: Subject<AXUploaderFileCancelEvent> = new Subject<AXUploaderFileCancelEvent>();\n\n public readonly isAnyDetermined = signal(false);\n\n public readonly totalEstimateTime = interval(500).pipe(\n switchMap(() => this.files$.asObservable()),\n map((f) =>\n sumBy(f, (c) => {\n if (c.isDetermined()) {\n this.isAnyDetermined.set(true);\n }\n return c.status() === 'inprogress' ? c.estimateTime() : 0;\n }),\n ),\n );\n\n private async showDialog() {\n const filesCount = this.files$.getValue().length;\n import('./uploader-list/uploader-list.component').then(async (c) => {\n this.popupService\n .open(c.AXUploaderListComponent, {\n size: 'sm',\n title:\n filesCount > 1 ? await this.translateService.translateAsync('uploader.zone.uploadFiles') : await this.translateService.translateAsync('uploader.zone.uploadFile'),\n })\n .then(async () => {\n await this.cancelAll();\n this.clearAll();\n });\n });\n }\n\n private convertFileToRequest(file: File): AXUploadRequest {\n return new AXUploadRequest(file);\n }\n\n private startUpload() {\n this.files.value\n .filter((c) => c.status() == 'new')\n .forEach(async (c) => {\n await this.bindEvents(c);\n });\n }\n\n private async bindEvents(c: AXUploadRequest) {\n c.onStart.subscribe(() => {\n this.onFileUploadStart.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n });\n c.onComplete.subscribe((data) => {\n Object.assign(c, { metaData: data });\n this.onFileUploadComplete.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n if (this.files.value.every((c) => c.status() == 'completed')) {\n this.onFilesUploadComplete.next({\n component: this,\n uploadedFiles: this.files.value,\n isUserInteraction: false,\n });\n }\n });\n c.onCancel.subscribe(() => {\n this.onFileUploadCanceled.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n });\n }\n\n async browse(options: { multiple?: boolean; accept?: string } = { multiple: false }): Promise<AXUploadRequest[]> {\n try {\n const files = await this.fileService.choose({ multiple: options?.multiple || false, accept: options.accept });\n if (files.length) {\n return this.add(files);\n }\n return Promise.resolve([]);\n } catch (error) {\n return Promise.resolve([]);\n }\n }\n\n async add(files: FileList | File[]): Promise<AXUploadRequest[]> {\n const list = Array.from(files).map((f) => this.convertFileToRequest(f));\n const currentValue = this.files$.value;\n currentValue.push(...list);\n this.files$.next(currentValue);\n await this.showDialog();\n this.startUpload();\n return Promise.resolve(list);\n }\n\n async cancelAll() {\n await Promise.all(this.files$.value.filter((c) => c.status() != 'completed').map((c) => c.cancel()));\n }\n\n clearAll() {\n this.files$.value.filter((c) => c.status() != 'inprogress').forEach((c) => this.remove(c));\n }\n\n remove(item: AXUploadRequest) {\n let currentValue = this.files$.value;\n currentValue = currentValue.filter((c) => c != item);\n this.files$.next(currentValue);\n }\n}\n","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, Output, PLATFORM_ID, inject } from '@angular/core';\nimport { AXUploaderChangedEvent, AXUploaderFileCompleteEvent, AXUploaderFilesCompleteEvent } from './uploader.models';\nimport { AXUploaderService } from './uploader.service';\n\n@Directive({\n selector: '[axUploaderZone]',\n providers: [AXUnsubscriber],\n})\nexport class AXUploaderZoneDirective implements OnDestroy {\n @Input()\n multiple = true;\n\n @Input()\n accept: string = null;\n\n private cdr = inject(ChangeDetectorRef);\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n private uploadService = inject(AXUploaderService);\n private unsubscriber = inject(AXUnsubscriber);\n private translateService = inject(AXTranslationService);\n\n private element: HTMLElement;\n\n @Output()\n onChanged: EventEmitter<AXUploaderChangedEvent> = new EventEmitter<AXUploaderChangedEvent>();\n\n @Output()\n onFileUploadComplete: EventEmitter<AXUploaderFileCompleteEvent> = new EventEmitter<AXUploaderFileCompleteEvent>();\n\n @Output()\n onFilesUploadComplete: EventEmitter<AXUploaderFilesCompleteEvent> = new EventEmitter<AXUploaderFilesCompleteEvent>();\n\n stateClass = 'ax-uploader-overlay-state';\n overlayElement: HTMLDivElement;\n\n constructor(private elementRef: ElementRef) {\n this.element = this.elementRef.nativeElement as HTMLElement;\n this.element.style.position = 'relative';\n\n //\n this.uploadService.onFileUploadComplete.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onFileUploadComplete.next(c);\n });\n\n this.uploadService.onFilesUploadComplete.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onFilesUploadComplete.next(c);\n });\n //\n setTimeout(() => {\n const browseHandlers = this.element.querySelectorAll('[data-ax-uploader-browse-handle=\"true\"]');\n if (browseHandlers.length <= 0) this.element.addEventListener('click', this.browser.bind(this), true);\n });\n\n this.element.addEventListener('dragenter', this.handleDragEnter.bind(this), true);\n this.element.addEventListener('dragover', this.handleDragOver.bind(this), true);\n this.element.addEventListener('drop', this.handleOnDrop.bind(this), true);\n this.element.addEventListener('dragleave', this.removeZone.bind(this), true);\n }\n\n ngOnDestroy(): void {\n this.element.removeEventListener('click', this.browser.bind(this));\n\n this.element.removeEventListener('dragenter', this.handleDragEnter.bind(this));\n this.element.removeEventListener('drop', this.handleOnDrop.bind(this));\n this.element.removeEventListener('dragover', this.handleDragOver.bind(this));\n this.element.removeEventListener('dragleave', this.removeZone.bind(this));\n }\n\n private async handleDragEnter(event: Event) {\n this.createZone();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n private async handleOnDrop(event: DragEvent) {\n event.preventDefault();\n event.stopImmediatePropagation();\n const requests = await this.uploadService.add(event.dataTransfer?.files);\n this.onChanged.emit({\n component: this,\n requests,\n isUserInteraction: true,\n });\n this.removeZone();\n this.cdr.detectChanges();\n }\n\n private handleDragOver(event: Event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n private async createZone() {\n if (isPlatformBrowser(this.platformID)) {\n this.overlayElement = this.document.createElement('div');\n this.overlayElement.classList.add('ax-uploader-overlay-state', '-ax-z-1');\n this.overlayElement.id = 'ax-uploader-overlay-state';\n\n const icon: HTMLSpanElement = this.document.createElement('span');\n icon.classList.add('ax-icon', 'ax-icon-upload');\n\n const text = this.document.createElement('span');\n text.innerText = await this.translateService.translateAsync('uploader.zone.text');\n\n this.overlayElement.appendChild(icon);\n this.overlayElement.appendChild(text);\n\n this.element.appendChild(this.overlayElement);\n }\n }\n\n private removeZone() {\n if (isPlatformBrowser(this.platformID)) {\n this.element.removeChild(this.document.getElementById('ax-uploader-overlay-state'));\n this.overlayElement.remove();\n //console.log(this.overlayElement);\n }\n }\n\n public async browser(): Promise<void> {\n const requests = await this.uploadService.browse({ accept: this.accept, multiple: this.multiple });\n this.onChanged.emit({\n component: this,\n requests,\n isUserInteraction: true,\n });\n }\n\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-drop-zone`;\n }\n}\n","import { Directive, ElementRef, OnDestroy, OnInit, inject } from '@angular/core';\nimport { AXUploaderZoneDirective } from './uploader-zone.directive';\n\n@Directive({ selector: '[axUploaderBrowseHandle]' })\nexport class AXUploaderBrowseDirective implements OnInit, OnDestroy {\n private uploaderZone = inject(AXUploaderZoneDirective);\n private elemenrRef: ElementRef<HTMLDivElement> = inject(ElementRef<HTMLDivElement>);\n\n ngOnInit() {\n this.elemenrRef.nativeElement.addEventListener('click', this.handleClick.bind(this));\n this.elemenrRef.nativeElement.dataset['axUploaderBrowseHandle'] = 'true';\n }\n\n ngOnDestroy(): void {\n this.elemenrRef.nativeElement.removeEventListener('click', this.handleClick.bind(this));\n }\n\n private async handleClick() {\n await this.uploaderZone.browser();\n }\n}\n","import { AXProgressBarComponent } from '@acorex/components/progress-bar';\nimport { AXFormatPipe } from '@acorex/core/format';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { AXUploaderService } from '../uploader.service';\n\n/**\n * A component that displays a list of uploaded files.\n * @category Components\n */\n@Component({\n selector: 'ax-uploader-list',\n templateUrl: './uploader-list.component.html',\n styleUrls: ['./uploader-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [AXProgressBarComponent, AsyncPipe, AXTranslatorPipe, AXFormatPipe],\n})\nexport class AXUploaderListComponent {\n /** @ignore */\n protected uploadService: AXUploaderService = inject(AXUploaderService);\n}\n","<!-- @if ((uploadService.totalEstimateTime | async) > 0) { -->\n<div class=\"ax-uploader-progress-status\" [class.ax-hide]=\"(uploadService.totalEstimateTime | async) <= 0\">\n @if(uploadService.isAnyDetermined()){\n <span>{{'processing' | translate| async}}</span>\n }@else {\n <div>{{ uploadService.totalEstimateTime | async | format: 'timeleft' | async }}</div>\n }\n <button (click)=\"uploadService.cancelAll()\">{{ 'cancel' | translate | async }}</button>\n</div>\n<!-- } -->\n\n<ul class=\"ax-uploader-list-items\">\n @for (item of uploadService.files | async; track item.name) {\n <li>\n <div class=\"ax-file\">\n <span>{{ item.ext }}</span>\n </div>\n <div class=\"ax-item-container\">\n <div class=\"ax-item-name\" [title]=\"item.name\">{{ item.name }}</div>\n <div class=\"ax-status\">\n @switch (item.status()) {\n @case ('inprogress') {\n <span>{{ item.size | format: 'filesize' | async }}</span> / {{item.isDetermined()?( item.estimateTime() | format: 'timeleft' | async):('processing' | translate| async) }}\n }\n @case ('failed') {\n <div class=\"ax-state-failed\">\n <span>{{ item.message() }}</span>\n </div>\n }\n @case ('completed') {\n <div class=\"ax-state-completed\">\n <span>{{'completed' | translate | async}}</span>\n </div>\n }\n }\n </div>\n </div>\n <div class=\"ax-status\">\n @switch (item.status()) {\n @case ('completed') {\n <i class=\"ax-icon ax-icon-solid ax-icon-check-circle ax-state-completed\"></i>\n }\n @case ('canceled') {\n <div>\n <span class=\"ax-state-canceled\">{{ 'canceled' | translate | async }}</span>\n <!-- <i class=\"ax-icon ax-icon-solid ax-icon-redo\" (click)=\"item.redo()\" title=\"{{ 'retry' | translate | async }}\"></i> -->\n </div>\n }\n @case ('failed') {\n <div class=\"ax-state-failed\">\n <span>{{ 'failed' | translate | async }}</span>\n <i class=\"ax-icon ax-icon-solid ax-icon-redo\" (click)=\"item.redo()\" title=\"{{ 'retry' | translate | async }}\"></i>\n </div>\n }\n @default {\n <!-- <ax-circular-progress\n [mode]=\"item.isDetermined() ? 'determinate' : 'indeterminate'\"\n [size]=\"22\"\n [stroke]=\"6\"\n [progress]=\"item.isDetermined() ? item.progress() : 60\"\n class=\"ax-show\"\n >\n </ax-circular-progress> -->\n <i class=\"ax-icon ax-icon-solid ax-icon-close\" (click)=\"item.cancel()\" title=\"{{ 'cancel' | translate | async }}\"></i>\n }\n }\n </div>\n </li>\n @let completed = item.status() === 'completed';\n @if (item.status() === 'inprogress' || completed) {\n <div class=\"ax-status-loading\" [class.ax-status-loading-hide]=\"completed\">\n <ax-progress-bar\n [height]=\"4\"\n [mode]=\"completed ? 'determinate' : 'indeterminate'\"\n [progress]=\"completed ? 100 : 60\"\n [color]=\"completed ? 'success' : 'primary'\"\n ></ax-progress-bar>\n </div>\n }\n }\n</ul>\n","import { AXClosbaleComponent } from '@acorex/components/common';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AUTO_STYLE, animate, state, style, transition, trigger } from '@angular/animations';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { AXUploaderListComponent } from '../uploader-list/uploader-list.component';\n\n/**\n * A container for managing the uploader dialog with collapse and expand animations.\n * @category Components\n */\n@Component({\n selector: 'ax-uploader-dialog-container',\n templateUrl: './uploader-dialog-container.component.html',\n styleUrls: ['./uploader-dialog-container.component.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('collapse', [\n state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),\n state('true', style({ height: '0', visibility: 'hidden' })),\n transition('false => true', animate(150 + 'ms ease-in')),\n transition('true => false', animate(150 + 'ms ease-out')),\n ]),\n ],\n imports: [NgClass, AXUploaderListComponent, AsyncPipe, AXTranslatorPipe],\n})\nexport class AXUploaderDialogContainerComponent {\n /** @ignore */\n private parent = inject(AXClosbaleComponent);\n\n /**\n * Indicates whether the component is in a collapsed state.\n * @defaultValue false\n */\n isCollapsed = false;\n\n /**\n * Closes the parent dialog or container.\n */\n close() {\n this.parent.close();\n }\n\n /**\n * Toggles the collapsed state of the component.\n */\n toggle() {\n this.isCollapsed = !this.isCollapsed;\n }\n}\n","<div class=\"ax-uploader-list-header\">\n <div>{{ 'Uploading' | translate | async }}</div>\n <div>\n <i\n class=\"ax-icon\"\n [ngClass]=\"{ 'ax-icon-chevron-down': !isCollapsed, 'ax-icon-chevron-up': isCollapsed }\"\n (click)=\"toggle()\"\n ></i>\n <i class=\"ax-icon ax-icon-close\" (click)=\"close()\"></i>\n </div>\n</div>\n<div [@collapse]=\"isCollapsed\">\n <ax-uploader-list></ax-uploader-list>\n</div>\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component that provides a drop zone area for uploading files.\n * @category Components\n */\n@Component({\n selector: 'ax-uploader-drop-zone',\n templateUrl: './uploader-drop-zone.component.html',\n styleUrls: ['./uploader-drop-zone.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [AXDecoratorIconComponent, AsyncPipe, AXTranslatorPipe],\n})\nexport class AXUploaderDropZoneComponent extends MXBaseComponent {\n public description = input('');\n preventRefresh() {\n return false;\n }\n}\n","<div class=\"ax-uploader-drop-zone-container\">\n <ax-icon class=\"ax-icon ax-icon-upload\"></ax-icon>\n <div class=\"ax-uploader-drop-zone-description\">\n <span>\n {{ 'uploader.zone.drag' | translate | async }}\n <a href=\"\" (click)=\"preventRefresh()\">\n {{ 'uploader.zone.choose' | translate | async }}\n </a>\n {{ 'uploader.zone.to-upload' | translate | async }}\n </span>\n <!-- <p>SVG, PNG, JPG or GIF (MAX. 800x400px)</p> -->\n @if (description()) {\n <p>{{ description() }}</p>\n }\n </div>\n</div>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AXCircularProgressModule } from '@acorex/components/circular-progress';\nimport { AXPopupModule } from '@acorex/components/popup';\nimport { AXProgressBarModule } from '@acorex/components/progress-bar';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFileModule } from '@acorex/core/file';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXUploaderListComponent } from '..';\nimport { AXUploaderBrowseDirective } from './uploader-browse-handle.directive';\nimport { AXUploaderDialogContainerComponent } from './uploader-dialog-container/uploader-dialog-container.component';\nimport { AXUploaderDropZoneComponent } from './uploader-drop-zone/uploader-drop-zone.component';\nimport { AXUploaderZoneDirective } from './uploader-zone.directive';\n\nconst COMPONENTS = [\n AXUploaderDropZoneComponent,\n AXUploaderListComponent,\n AXUploaderZoneDirective,\n AXUploaderBrowseDirective,\n AXUploaderDialogContainerComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n AXProgressBarModule,\n AXFormatModule,\n AXFileModule,\n AXDateTimeModule,\n AXCircularProgressModule,\n AXPopupModule,\n ...COMPONENTS,\n ],\n exports: [...COMPONENTS],\n providers: [],\n})\nexport class AXUploaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;MA0Ba,eAAe,CAAA;AAC1B,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;;AAGvB,IAAA,IAAI,GAAG,GAAA;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAClC,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;;aACzB;;AAEL,YAAA,OAAO,EAAE;;;AAIb,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;;AAGvB,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,UAAU;;AA4BxB,IAAA,WAAA,CAAoB,UAAgB,EAAA;QAAhB,IAAU,CAAA,UAAA,GAAV,UAAU;AAzBb,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC;QACtC,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AAE1B,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC;QAC1C,IAAY,CAAA,YAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AAElC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAiB,KAAK,CAAC;QACxD,IAAM,CAAA,MAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AAEtB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAgB,IAAI,CAAC;QACvD,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;AAExB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAU,KAAK,CAAC;QACvD,IAAY,CAAA,YAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAG3C,IAAgB,CAAA,gBAAA,GAAG,CAAC;AAIrB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;AAC9B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAQ;AAC7B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;AAC9B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAO,IAAI,CAAC;;AAI3C,IAAA,qBAAqB,CAAC,gBAAwB,EAAA;AACpD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QACtB,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QAErC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE;YACnC,OAAO,IAAI,CAAC;;QAGd,MAAM,KAAK,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,OAAO,CAAC;AAChD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,GAAG,gBAAgB;AACnD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC;QACxD,OAAO,aAAa,CAAC;;AAGhB,IAAA,mBAAmB,CAAC,KAAa,EAAA;AACtC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;QAC7B,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,YAAY,CAAC,EAAE;AACnG,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;;QAE9B,IAAI,CAAC,kBAAkB,EAAE;;IAGnB,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACzE,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;AACtE,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;;AAGvB,IAAA,MAAM,MAAM,GAAA;AACjB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AAC3B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;;IAGd,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;IAGf,IAAI,GAAA;;AAET,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;;AAGd,IAAA,KAAK,CAAC,OAAe,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;AAGf,IAAA,MAAM,CAAC,IAAU,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;AAE7B;;MChIY,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC/C,QAAA,IAAA,CAAA,WAAW,GAAkB,MAAM,CAAC,aAAa,CAAC;AAClD,QAAA,IAAA,CAAA,MAAM,GAAuC,IAAI,eAAe,CAAoB,EAAE,CAAC;AAK/E,QAAA,IAAA,CAAA,iBAAiB,GAAsC,IAAI,OAAO,EAA4B;AAC9F,QAAA,IAAA,CAAA,oBAAoB,GAAyC,IAAI,OAAO,EAA+B;AACvG,QAAA,IAAA,CAAA,qBAAqB,GAA0C,IAAI,OAAO,EAAgC;AAC1G,QAAA,IAAA,CAAA,oBAAoB,GAAuC,IAAI,OAAO,EAA6B;AAEnG,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;AAE/B,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CACpD,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,EAC3C,GAAG,CAAC,CAAC,CAAC,KACJ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI;AACb,YAAA,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;AACpB,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;;AAEhC,YAAA,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,YAAY,GAAG,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC;SAC1D,CAAC,CACH,CACF;AAiGF;AAtHC,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;;AAsBZ,IAAA,MAAM,UAAU,GAAA;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM;QAChD,sEAAiD,CAAC,IAAI,CAAC,OAAO,CAAC,KAAI;AACjE,YAAA,IAAI,CAAC;AACF,iBAAA,IAAI,CAAC,CAAC,CAAC,uBAAuB,EAAE;AAC/B,gBAAA,IAAI,EAAE,IAAI;gBACV,KAAK,EACH,UAAU,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,2BAA2B,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,0BAA0B,CAAC;aACpK;iBACA,IAAI,CAAC,YAAW;AACf,gBAAA,MAAM,IAAI,CAAC,SAAS,EAAE;gBACtB,IAAI,CAAC,QAAQ,EAAE;AACjB,aAAC,CAAC;AACN,SAAC,CAAC;;AAGI,IAAA,oBAAoB,CAAC,IAAU,EAAA;AACrC,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC;;IAG1B,WAAW,GAAA;QACjB,IAAI,CAAC,KAAK,CAAC;AACR,aAAA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,KAAK;AACjC,aAAA,OAAO,CAAC,OAAO,CAAC,KAAI;AACnB,YAAA,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1B,SAAC,CAAC;;IAGE,MAAM,UAAU,CAAC,CAAkB,EAAA;AACzC,QAAA,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;AACvB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,YAAY,EAAE,CAAC;AACf,gBAAA,iBAAiB,EAAE,KAAK;AACzB,aAAA,CAAC;AACJ,SAAC,CAAC;QACF,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;YAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACpC,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC7B,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,YAAY,EAAE,CAAC;AACf,gBAAA,iBAAiB,EAAE,KAAK;AACzB,aAAA,CAAC;YACF,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,EAAE;AAC5D,gBAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;AAC9B,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;AAC/B,oBAAA,iBAAiB,EAAE,KAAK;AACzB,iBAAA,CAAC;;AAEN,SAAC,CAAC;AACF,QAAA,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAK;AACxB,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC7B,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,YAAY,EAAE,CAAC;AACf,gBAAA,iBAAiB,EAAE,KAAK;AACzB,aAAA,CAAC;AACJ,SAAC,CAAC;;IAGJ,MAAM,MAAM,CAAC,OAAA,GAAmD,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAA;AACjF,QAAA,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AAC7G,YAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,gBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;;AAExB,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;;QAC1B,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;;;IAI9B,MAAM,GAAG,CAAC,KAAwB,EAAA;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;AACvE,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;AACtC,QAAA,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9B,QAAA,MAAM,IAAI,CAAC,UAAU,EAAE;QACvB,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;;AAG9B,IAAA,MAAM,SAAS,GAAA;AACb,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;;IAGtG,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;AAG5F,IAAA,MAAM,CAAC,IAAqB,EAAA;AAC1B,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;AACpC,QAAA,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AACpD,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;;+GAzHrB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADJ,MAAM,EAAA,CAAA,CAAA;;4FACnB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCHrB,uBAAuB,CAAA;AA4BlC,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU;QA1B9B,IAAQ,CAAA,QAAA,GAAG,IAAI;QAGf,IAAM,CAAA,MAAA,GAAW,IAAI;AAEb,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACzC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAKvD,QAAA,IAAA,CAAA,SAAS,GAAyC,IAAI,YAAY,EAA0B;AAG5F,QAAA,IAAA,CAAA,oBAAoB,GAA8C,IAAI,YAAY,EAA+B;AAGjH,QAAA,IAAA,CAAA,qBAAqB,GAA+C,IAAI,YAAY,EAAgC;QAEpH,IAAU,CAAA,UAAA,GAAG,2BAA2B;QAItC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAA4B;QAC3D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;;AAGxC,QAAA,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC/F,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;AACnC,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAChG,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,SAAC,CAAC;;QAEF,UAAU,CAAC,MAAK;YACd,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,yCAAyC,CAAC;AAC/F,YAAA,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC;AAAE,gBAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AACvG,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AACjF,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AAC/E,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;AACzE,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;;IAG9E,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAElE,QAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,QAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;IAGnE,MAAM,eAAe,CAAC,KAAY,EAAA;QACxC,IAAI,CAAC,UAAU,EAAE;QACjB,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,wBAAwB,EAAE;;IAG1B,MAAM,YAAY,CAAC,KAAgB,EAAA;QACzC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,wBAAwB,EAAE;AAChC,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC;AACxE,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAClB,YAAA,SAAS,EAAE,IAAI;YACf,QAAQ;AACR,YAAA,iBAAiB,EAAE,IAAI;AACxB,SAAA,CAAC;QACF,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;;AAGlB,IAAA,cAAc,CAAC,KAAY,EAAA;QACjC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,wBAAwB,EAAE;;AAG1B,IAAA,MAAM,UAAU,GAAA;AACtB,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,EAAE,SAAS,CAAC;AACzE,YAAA,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,2BAA2B;YAEpD,MAAM,IAAI,GAAoB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;YACjE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC;YAE/C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAChD,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,oBAAoB,CAAC;AAEjF,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC;AACrC,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC;YAErC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;;;IAIzC,UAAU,GAAA;AAChB,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;AACnF,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;;;;AAKzB,IAAA,MAAM,OAAO,GAAA;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClG,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAClB,YAAA,SAAS,EAAE,IAAI;YACf,QAAQ;AACR,YAAA,iBAAiB,EAAE,IAAI;AACxB,SAAA,CAAC;;AAGJ,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,cAAc;;+GA3HZ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAFvB,CAAC,cAAc,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEhB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,SAAS,EAAE,CAAC,cAAc,CAAC;AAC5B,iBAAA;+EAGC,QAAQ,EAAA,CAAA;sBADP;gBAID,MAAM,EAAA,CAAA;sBADL;gBAaD,SAAS,EAAA,CAAA;sBADR;gBAID,oBAAoB,EAAA,CAAA;sBADnB;gBAID,qBAAqB,EAAA,CAAA;sBADpB;gBAoGG,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;;;MChIT,yBAAyB,CAAA;AADtC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC9C,QAAA,IAAA,CAAA,UAAU,GAA+B,MAAM,EAAC,UAA0B,EAAC;AAcpF;IAZC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,wBAAwB,CAAC,GAAG,MAAM;;IAG1E,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAGjF,IAAA,MAAM,WAAW,GAAA;AACvB,QAAA,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;;+GAdxB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,SAAS;mBAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE;;;ACInD;;;AAGG;MAQU,uBAAuB,CAAA;AAPpC,IAAA,WAAA,GAAA;;AASY,QAAA,IAAA,CAAA,aAAa,GAAsB,MAAM,CAAC,iBAAiB,CAAC;AACvE;+GAHY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBpC,4zGAiFA,EDjEY,MAAA,EAAA,CAAA,+jGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sBAAsB,gJAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,YAAY,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAEhE,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGb,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA,CAAC,sBAAsB,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,4zGAAA,EAAA,MAAA,EAAA,CAAA,+jGAAA,CAAA,EAAA;;;;;;;;AET9E;;;AAGG;MAgBU,kCAAkC,CAAA;AAf/C,IAAA,WAAA,GAAA;;AAiBU,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAE5C;;;AAGG;QACH,IAAW,CAAA,WAAA,GAAG,KAAK;AAepB;AAbC;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;;AAGrB;;AAEG;IACH,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;;+GArB3B,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlC,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1B/C,wbAcA,EAAA,MAAA,EAAA,CAAA,24BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDUY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,uBAAuB,EAAE,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,SAAS,EAAE,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,gBAAgB,EAR3D,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,OAAO,CAAC,UAAU,EAAE;AAClB,gBAAA,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;AACrE,gBAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC3D,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC;gBACxD,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC;aAC1D,CAAC;AACH,SAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAGU,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAf9C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAGzB,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA;wBACV,OAAO,CAAC,UAAU,EAAE;AAClB,4BAAA,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;AACrE,4BAAA,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;4BAC3D,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC;4BACxD,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC;yBAC1D,CAAC;qBACH,EACQ,OAAA,EAAA,CAAC,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,wbAAA,EAAA,MAAA,EAAA,CAAA,24BAAA,CAAA,EAAA;;;AElB1E;;;AAGG;AAQG,MAAO,2BAA4B,SAAQ,eAAe,CAAA;AAPhE,IAAA,WAAA,GAAA;;AAQS,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;AAI/B;IAHC,cAAc,GAAA;AACZ,QAAA,OAAO,KAAK;;+GAHH,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,8PCjBxC,mjBAgBA,EAAA,MAAA,EAAA,CAAA,slCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDY,wBAAwB,EAAE,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,SAAS,yCAAE,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAEpD,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;+BACE,uBAAuB,EAAA,aAAA,EAGlB,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,wBAAwB,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,mjBAAA,EAAA,MAAA,EAAA,CAAA,slCAAA,CAAA,EAAA;;;AEGlE,MAAM,UAAU,GAAG;IACjB,2BAA2B;IAC3B,uBAAuB;IACvB,uBAAuB;IACvB,yBAAyB;IACzB,kCAAkC;CACnC;MAmBY,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAfzB,YAAY;YACZ,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,mBAAmB;YACnB,cAAc;YACd,YAAY;YACZ,gBAAgB;YAChB,wBAAwB;AACxB,YAAA,aAAa,EAlBf,2BAA2B;YAC3B,uBAAuB;YACvB,uBAAuB;YACvB,yBAAyB;AACzB,YAAA,kCAAkC,aAJlC,2BAA2B;YAC3B,uBAAuB;YACvB,uBAAuB;YACvB,yBAAyB;YACzB,kCAAkC,CAAA,EAAA,CAAA,CAAA;AAoBvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAfzB,YAAY;YACZ,iBAAiB;YACjB,cAAc;YACd,mBAAmB;YACnB,mBAAmB;YACnB,cAAc;YACd,YAAY;YACZ,gBAAgB;YAChB,wBAAwB;AACxB,YAAA,aAAa,EAlBf,2BAA2B;YAC3B,uBAAuB;YAGvB,kCAAkC,CAAA,EAAA,CAAA,CAAA;;4FAoBvB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAjB5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,iBAAiB;wBACjB,cAAc;wBACd,mBAAmB;wBACnB,mBAAmB;wBACnB,cAAc;wBACd,YAAY;wBACZ,gBAAgB;wBAChB,wBAAwB;wBACxB,aAAa;AACb,wBAAA,GAAG,UAAU;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AACxB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;AC1CD;;AAEG;;;;"}
|
1
|
+
{"version":3,"file":"acorex-components-uploader.mjs","sources":["../../../../packages/components/uploader/src/lib/uploader.models.ts","../../../../packages/components/uploader/src/lib/uploader.service.ts","../../../../packages/components/uploader/src/lib/uploader-zone.directive.ts","../../../../packages/components/uploader/src/lib/uploader-browse-handle.directive.ts","../../../../packages/components/uploader/src/lib/uploader-list/uploader-list.component.ts","../../../../packages/components/uploader/src/lib/uploader-list/uploader-list.component.html","../../../../packages/components/uploader/src/lib/uploader-dialog-container/uploader-dialog-container.component.ts","../../../../packages/components/uploader/src/lib/uploader-dialog-container/uploader-dialog-container.component.html","../../../../packages/components/uploader/src/lib/uploader-drop-zone/uploader-drop-zone.component.ts","../../../../packages/components/uploader/src/lib/uploader-drop-zone/uploader-drop-zone.component.html","../../../../packages/components/uploader/src/lib/uploader.module.ts","../../../../packages/components/uploader/src/acorex-components-uploader.ts"],"sourcesContent":["import { AXEvent } from '@acorex/components/common';\nimport { computed, signal } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nexport type AXUploadStatus = 'new' | 'inprogress' | 'completed' | 'failed' | 'canceled';\n\nexport interface AXUploaderChangedEvent extends AXEvent {\n requests: AXUploadRequest[];\n}\n\nexport interface AXUploaderFileStartEvent extends AXEvent {\n uploadedFile: AXUploadRequest;\n}\nexport interface AXUploaderFileCompleteEvent extends AXEvent {\n uploadedFile: AXUploadRequest;\n}\n\nexport interface AXUploaderFilesCompleteEvent extends AXEvent {\n uploadedFiles: AXUploadRequest[];\n data?: any;\n}\n\nexport interface AXUploaderFileCancelEvent extends AXEvent {\n uploadedFile: AXUploadRequest;\n}\n\nexport class AXUploadRequest {\n get name(): string {\n return this.file.name;\n }\n\n get ext(): string {\n const parts = this.name.split('.');\n if (parts.length > 1) {\n return parts[parts.length - 1];\n } else {\n // No extension found\n return '';\n }\n }\n\n get size(): number {\n return this.file.size;\n }\n\n get file(): File {\n return this.uploadFile;\n }\n\n private readonly _progress = signal(0);\n progress = computed(() => this._progress());\n\n private readonly _estimateTime = signal(0);\n estimateTime = computed(() => this._estimateTime());\n\n private readonly _status = signal<AXUploadStatus>('new');\n status = computed(() => this._status());\n\n private readonly _message = signal<string | null>(null);\n message = computed(() => this._message());\n\n private readonly _isDetermined = signal<boolean>(false);\n isDetermined = computed(() => this._isDetermined());\n\n private startTime: number;\n private bytesTransferred = 0;\n\n public metaData: any;\n\n public onCancel = new Subject<void>();\n public onStart = new Subject<void>();\n public onFailed = new Subject<void>();\n public onComplete = new BehaviorSubject<void>(null);\n\n constructor(private uploadFile: File) {}\n\n private estimateTimeRemaining(bytesTransferred: number): number | null {\n const now = Date.now();\n const elapsed = now - this.startTime; // Time in milliseconds\n\n if (isNaN(elapsed) || elapsed === 0) {\n return null; // Avoid division by zero\n }\n\n const speed = (bytesTransferred || 1) / elapsed; // Bytes per millisecond\n const remainingBytes = this.size - bytesTransferred;\n const estimatedTime = Math.ceil(remainingBytes / speed); // Time in milliseconds\n return estimatedTime; // Return the estimated time in milliseconds\n }\n\n public setTransferredBytes(value: number) {\n this.bytesTransferred = value;\n if (value > 0 && !this._isDetermined() && (this.status() == 'new' || this.status() == 'inprogress')) {\n this._isDetermined.set(true);\n }\n this.updateEstimateTime();\n }\n\n private updateEstimateTime() {\n this._estimateTime.set(this.estimateTimeRemaining(this.bytesTransferred));\n const progress = Math.floor((this.bytesTransferred / this.size) * 100);\n this._progress.set(progress);\n }\n\n public async upload(): Promise<void> {\n this.startTime = Date.now();\n this._progress.set(0);\n this._status.set('inprogress');\n this.onStart.next();\n }\n\n public cancel(): void {\n this._status.set('canceled');\n this.bytesTransferred = 0;\n this._estimateTime.set(0);\n this._progress.set(0);\n this.onCancel.next();\n }\n\n public redo(): void {\n // this.startTime = Date.now();\n this._progress.set(0);\n this._status.set('inprogress');\n this._message.set(null);\n this.onStart.next();\n }\n\n public error(message: string): void {\n this._status.set('failed');\n this.bytesTransferred = 0;\n this._estimateTime.set(0);\n this._progress.set(0);\n this._message.set(message);\n this.onFailed.next();\n }\n\n public finish(data?: any): void {\n this._status.set('completed');\n this.bytesTransferred = this.size;\n this._estimateTime.set(0);\n this._progress.set(100);\n this.onComplete.next(data);\n }\n}\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXFileService } from '@acorex/core/file';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject, signal } from '@angular/core';\nimport { sumBy } from 'lodash-es';\nimport { BehaviorSubject, Subject, interval, map, switchMap } from 'rxjs';\nimport {\n AXUploadRequest,\n AXUploaderFileCancelEvent,\n AXUploaderFileCompleteEvent,\n AXUploaderFileStartEvent,\n AXUploaderFilesCompleteEvent,\n} from './uploader.models';\n\n@Injectable({ providedIn: 'root' })\nexport class AXUploaderService {\n private popupService = inject(AXPopupService);\n private translateService = inject(AXTranslationService);\n private fileService: AXFileService = inject(AXFileService);\n private files$: BehaviorSubject<AXUploadRequest[]> = new BehaviorSubject<AXUploadRequest[]>([]);\n public get files(): BehaviorSubject<AXUploadRequest[]> {\n return this.files$;\n }\n\n public readonly onFileUploadStart: Subject<AXUploaderFileStartEvent> = new Subject<AXUploaderFileStartEvent>();\n public readonly onFileUploadComplete: Subject<AXUploaderFileCompleteEvent> =\n new Subject<AXUploaderFileCompleteEvent>();\n public readonly onFilesUploadComplete: Subject<AXUploaderFilesCompleteEvent> =\n new Subject<AXUploaderFilesCompleteEvent>();\n public readonly onFileUploadCanceled: Subject<AXUploaderFileCancelEvent> = new Subject<AXUploaderFileCancelEvent>();\n\n public readonly isAnyDetermined = signal(false);\n\n public readonly totalEstimateTime = interval(500).pipe(\n switchMap(() => this.files$.asObservable()),\n map((f) =>\n sumBy(f, (c) => {\n if (c.isDetermined()) {\n this.isAnyDetermined.set(true);\n }\n return c.status() === 'inprogress' ? c.estimateTime() : 0;\n }),\n ),\n );\n\n private async showDialog() {\n const filesCount = this.files$.getValue().length;\n import('./uploader-list/uploader-list.component').then(async (c) => {\n this.popupService\n .open(c.AXUploaderListComponent, {\n size: 'sm',\n title:\n filesCount > 1\n ? await this.translateService.translateAsync('uploader.zone.uploadFiles')\n : await this.translateService.translateAsync('uploader.zone.uploadFile'),\n })\n .then(async () => {\n await this.cancelAll();\n this.clearAll();\n });\n });\n }\n\n private convertFileToRequest(file: File): AXUploadRequest {\n return new AXUploadRequest(file);\n }\n\n private startUpload() {\n this.files.value\n .filter((c) => c.status() == 'new')\n .forEach(async (c) => {\n await this.bindEvents(c);\n });\n }\n\n private async bindEvents(c: AXUploadRequest) {\n c.onStart.subscribe(() => {\n this.onFileUploadStart.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n });\n c.onComplete.subscribe((data) => {\n Object.assign(c, { metaData: data });\n this.onFileUploadComplete.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n if (this.files.value.every((c) => c.status() == 'completed')) {\n this.onFilesUploadComplete.next({\n component: this,\n uploadedFiles: this.files.value,\n isUserInteraction: false,\n });\n }\n });\n c.onCancel.subscribe(() => {\n this.onFileUploadCanceled.next({\n component: this,\n uploadedFile: c,\n isUserInteraction: false,\n });\n });\n }\n\n async browse(options: { multiple?: boolean; accept?: string } = { multiple: false }): Promise<AXUploadRequest[]> {\n try {\n const files = await this.fileService.choose({ multiple: options?.multiple || false, accept: options.accept });\n if (files.length) {\n return this.add(files);\n }\n return Promise.resolve([]);\n } catch (error) {\n return Promise.resolve([]);\n }\n }\n\n async add(files: FileList | File[]): Promise<AXUploadRequest[]> {\n const list = Array.from(files).map((f) => this.convertFileToRequest(f));\n const currentValue = this.files$.value;\n currentValue.push(...list);\n this.files$.next(currentValue);\n await this.showDialog();\n this.startUpload();\n return Promise.resolve(list);\n }\n\n async cancelAll() {\n await Promise.all(this.files$.value.filter((c) => c.status() != 'completed').map((c) => c.cancel()));\n }\n\n clearAll() {\n this.files$.value.filter((c) => c.status() != 'inprogress').forEach((c) => this.remove(c));\n }\n\n remove(item: AXUploadRequest) {\n let currentValue = this.files$.value;\n currentValue = currentValue.filter((c) => c != item);\n this.files$.next(currentValue);\n }\n}\n","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n PLATFORM_ID,\n inject,\n} from '@angular/core';\nimport { AXUploaderChangedEvent, AXUploaderFileCompleteEvent, AXUploaderFilesCompleteEvent } from './uploader.models';\nimport { AXUploaderService } from './uploader.service';\n\n@Directive({\n selector: '[axUploaderZone]',\n providers: [AXUnsubscriber],\n})\nexport class AXUploaderZoneDirective implements OnDestroy {\n @Input()\n multiple = true;\n\n @Input()\n accept: string = null;\n\n private cdr = inject(ChangeDetectorRef);\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n private uploadService = inject(AXUploaderService);\n private unsubscriber = inject(AXUnsubscriber);\n private translateService = inject(AXTranslationService);\n\n private element: HTMLElement;\n\n @Output()\n onChanged: EventEmitter<AXUploaderChangedEvent> = new EventEmitter<AXUploaderChangedEvent>();\n\n @Output()\n onFileUploadComplete: EventEmitter<AXUploaderFileCompleteEvent> = new EventEmitter<AXUploaderFileCompleteEvent>();\n\n @Output()\n onFilesUploadComplete: EventEmitter<AXUploaderFilesCompleteEvent> = new EventEmitter<AXUploaderFilesCompleteEvent>();\n\n stateClass = 'ax-uploader-overlay-state';\n overlayElement: HTMLDivElement;\n\n constructor(private elementRef: ElementRef) {\n this.element = this.elementRef.nativeElement as HTMLElement;\n this.element.style.position = 'relative';\n\n //\n this.uploadService.onFileUploadComplete.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onFileUploadComplete.next(c);\n });\n\n this.uploadService.onFilesUploadComplete.pipe(this.unsubscriber.takeUntilDestroy).subscribe((c) => {\n this.onFilesUploadComplete.next(c);\n });\n //\n setTimeout(() => {\n const browseHandlers = this.element.querySelectorAll('[data-ax-uploader-browse-handle=\"true\"]');\n if (browseHandlers.length <= 0) this.element.addEventListener('click', this.browser.bind(this), true);\n });\n\n this.element.addEventListener('dragenter', this.handleDragEnter.bind(this), true);\n this.element.addEventListener('dragover', this.handleDragOver.bind(this), true);\n this.element.addEventListener('drop', this.handleOnDrop.bind(this), true);\n this.element.addEventListener('dragleave', this.removeZone.bind(this), true);\n }\n\n ngOnDestroy(): void {\n this.element.removeEventListener('click', this.browser.bind(this));\n\n this.element.removeEventListener('dragenter', this.handleDragEnter.bind(this));\n this.element.removeEventListener('drop', this.handleOnDrop.bind(this));\n this.element.removeEventListener('dragover', this.handleDragOver.bind(this));\n this.element.removeEventListener('dragleave', this.removeZone.bind(this));\n }\n\n private async handleDragEnter(event: Event) {\n this.createZone();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n private async handleOnDrop(event: DragEvent) {\n event.preventDefault();\n event.stopImmediatePropagation();\n const requests = await this.uploadService.add(event.dataTransfer?.files);\n this.onChanged.emit({\n component: this,\n requests,\n isUserInteraction: true,\n });\n this.removeZone();\n this.cdr.detectChanges();\n }\n\n private handleDragOver(event: Event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n private async createZone() {\n if (isPlatformBrowser(this.platformID)) {\n this.overlayElement = this.document.createElement('div');\n this.overlayElement.classList.add('ax-uploader-overlay-state', '-ax-z-1');\n this.overlayElement.id = 'ax-uploader-overlay-state';\n\n const icon: HTMLSpanElement = this.document.createElement('span');\n icon.classList.add('ax-icon', 'ax-icon-upload');\n\n const text = this.document.createElement('span');\n text.innerText = await this.translateService.translateAsync('uploader.zone.text');\n\n this.overlayElement.appendChild(icon);\n this.overlayElement.appendChild(text);\n\n this.element.appendChild(this.overlayElement);\n }\n }\n\n private removeZone() {\n if (isPlatformBrowser(this.platformID)) {\n this.element.removeChild(this.document.getElementById('ax-uploader-overlay-state'));\n this.overlayElement.remove();\n //console.log(this.overlayElement);\n }\n }\n\n public async browser(): Promise<void> {\n const requests = await this.uploadService.browse({ accept: this.accept, multiple: this.multiple });\n this.onChanged.emit({\n component: this,\n requests,\n isUserInteraction: true,\n });\n }\n\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-drop-zone`;\n }\n}\n","import { Directive, ElementRef, OnDestroy, OnInit, inject } from '@angular/core';\nimport { AXUploaderZoneDirective } from './uploader-zone.directive';\n\n@Directive({ selector: '[axUploaderBrowseHandle]' })\nexport class AXUploaderBrowseDirective implements OnInit, OnDestroy {\n private uploaderZone = inject(AXUploaderZoneDirective);\n private elemenrRef: ElementRef<HTMLDivElement> = inject(ElementRef<HTMLDivElement>);\n\n ngOnInit() {\n this.elemenrRef.nativeElement.addEventListener('click', this.handleClick.bind(this));\n this.elemenrRef.nativeElement.dataset['axUploaderBrowseHandle'] = 'true';\n }\n\n ngOnDestroy(): void {\n this.elemenrRef.nativeElement.removeEventListener('click', this.handleClick.bind(this));\n }\n\n private async handleClick() {\n await this.uploaderZone.browser();\n }\n}\n","import { AXProgressBarComponent } from '@acorex/components/progress-bar';\nimport { AXFormatPipe } from '@acorex/core/format';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { AXUploaderService } from '../uploader.service';\n\n/**\n * A component that displays a list of uploaded files.\n * @category Components\n */\n@Component({\n selector: 'ax-uploader-list',\n templateUrl: './uploader-list.component.html',\n styleUrls: ['./uploader-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [AXProgressBarComponent, AsyncPipe, AXTranslatorPipe, AXFormatPipe],\n})\nexport class AXUploaderListComponent {\n /** @ignore */\n protected uploadService: AXUploaderService = inject(AXUploaderService);\n}\n","<!-- @if ((uploadService.totalEstimateTime | async) > 0) { -->\n<div class=\"ax-uploader-progress-status\" [class.ax-hide]=\"(uploadService.totalEstimateTime | async) <= 0\">\n @if(uploadService.isAnyDetermined()){\n <span>{{'processing' | translate| async}}</span>\n }@else {\n <div>{{ uploadService.totalEstimateTime | async | format: 'timeleft' | async }}</div>\n }\n <button (click)=\"uploadService.cancelAll()\">{{ 'cancel' | translate | async }}</button>\n</div>\n<!-- } -->\n\n<ul class=\"ax-uploader-list-items\">\n @for (item of uploadService.files | async; track item.name) {\n <li>\n <div class=\"ax-file\">\n <span>{{ item.ext }}</span>\n </div>\n <div class=\"ax-item-container\">\n <div class=\"ax-item-name\" [title]=\"item.name\">{{ item.name }}</div>\n <div class=\"ax-status\">\n @switch (item.status()) {\n @case ('inprogress') {\n <span>{{ item.size | format: 'filesize' | async }}</span> / {{item.isDetermined()?( item.estimateTime() | format: 'timeleft' | async):('processing' | translate| async) }}\n }\n @case ('failed') {\n <div class=\"ax-state-failed\">\n <span>{{ item.message() }}</span>\n </div>\n }\n @case ('completed') {\n <div class=\"ax-state-completed\">\n <span>{{'completed' | translate | async}}</span>\n </div>\n }\n }\n </div>\n </div>\n <div class=\"ax-status\">\n @switch (item.status()) {\n @case ('completed') {\n <i class=\"ax-icon ax-icon-solid ax-icon-check-circle ax-state-completed\"></i>\n }\n @case ('canceled') {\n <div>\n <span class=\"ax-state-canceled\">{{ 'canceled' | translate | async }}</span>\n <!-- <i class=\"ax-icon ax-icon-solid ax-icon-redo\" (click)=\"item.redo()\" title=\"{{ 'retry' | translate | async }}\"></i> -->\n </div>\n }\n @case ('failed') {\n <div class=\"ax-state-failed\">\n <span>{{ 'failed' | translate | async }}</span>\n <i class=\"ax-icon ax-icon-solid ax-icon-redo\" (click)=\"item.redo()\" title=\"{{ 'retry' | translate | async }}\"></i>\n </div>\n }\n @default {\n <!-- <ax-circular-progress\n [mode]=\"item.isDetermined() ? 'determinate' : 'indeterminate'\"\n [size]=\"22\"\n [stroke]=\"6\"\n [progress]=\"item.isDetermined() ? item.progress() : 60\"\n class=\"ax-show\"\n >\n </ax-circular-progress> -->\n <i class=\"ax-icon ax-icon-solid ax-icon-close\" (click)=\"item.cancel()\" title=\"{{ 'cancel' | translate | async }}\"></i>\n }\n }\n </div>\n </li>\n @let completed = item.status() === 'completed';\n @if (item.status() === 'inprogress' || completed) {\n <div class=\"ax-status-loading\" [class.ax-status-loading-hide]=\"completed\">\n <ax-progress-bar\n [height]=\"4\"\n [mode]=\"completed ? 'determinate' : 'indeterminate'\"\n [progress]=\"completed ? 100 : 60\"\n [color]=\"completed ? 'success' : 'primary'\"\n ></ax-progress-bar>\n </div>\n }\n }\n</ul>\n","import { AXClosbaleComponent } from '@acorex/components/common';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AUTO_STYLE, animate, state, style, transition, trigger } from '@angular/animations';\nimport { AsyncPipe, NgClass } from '@angular/common';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { AXUploaderListComponent } from '../uploader-list/uploader-list.component';\n\n/**\n * A container for managing the uploader dialog with collapse and expand animations.\n * @category Components\n */\n@Component({\n selector: 'ax-uploader-dialog-container',\n templateUrl: './uploader-dialog-container.component.html',\n styleUrls: ['./uploader-dialog-container.component.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('collapse', [\n state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),\n state('true', style({ height: '0', visibility: 'hidden' })),\n transition('false => true', animate(150 + 'ms ease-in')),\n transition('true => false', animate(150 + 'ms ease-out')),\n ]),\n ],\n imports: [NgClass, AXUploaderListComponent, AsyncPipe, AXTranslatorPipe],\n})\nexport class AXUploaderDialogContainerComponent {\n /** @ignore */\n private parent = inject(AXClosbaleComponent);\n\n /**\n * Indicates whether the component is in a collapsed state.\n * @defaultValue false\n */\n isCollapsed = false;\n\n /**\n * Closes the parent dialog or container.\n */\n close() {\n this.parent.close();\n }\n\n /**\n * Toggles the collapsed state of the component.\n */\n toggle() {\n this.isCollapsed = !this.isCollapsed;\n }\n}\n","<div class=\"ax-uploader-list-header\">\n <div>{{ 'Uploading' | translate | async }}</div>\n <div>\n <i\n class=\"ax-icon\"\n [ngClass]=\"{ 'ax-icon-chevron-down': !isCollapsed, 'ax-icon-chevron-up': isCollapsed }\"\n (click)=\"toggle()\"\n ></i>\n <i class=\"ax-icon ax-icon-close\" (click)=\"close()\"></i>\n </div>\n</div>\n<div [@collapse]=\"isCollapsed\">\n <ax-uploader-list></ax-uploader-list>\n</div>\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A component that provides a drop zone area for uploading files.\n * @category Components\n */\n@Component({\n selector: 'ax-uploader-drop-zone',\n templateUrl: './uploader-drop-zone.component.html',\n styleUrls: ['./uploader-drop-zone.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [AXDecoratorIconComponent, AsyncPipe, AXTranslatorPipe],\n})\nexport class AXUploaderDropZoneComponent extends MXBaseComponent {\n public description = input('');\n preventRefresh() {\n return false;\n }\n}\n","<div class=\"ax-uploader-drop-zone-container\">\n <ax-icon class=\"ax-icon ax-icon-upload\"></ax-icon>\n <div class=\"ax-uploader-drop-zone-description\">\n <span>\n {{ 'uploader.zone.drag' | translate | async }}\n <a href=\"\" (click)=\"preventRefresh()\">\n {{ 'uploader.zone.choose' | translate | async }}\n </a>\n {{ 'uploader.zone.to-upload' | translate | async }}\n </span>\n <!-- <p>SVG, PNG, JPG or GIF (MAX. 800x400px)</p> -->\n @if (description()) {\n <p>{{ description() }}</p>\n }\n </div>\n</div>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AXCircularProgressModule } from '@acorex/components/circular-progress';\nimport { AXPopupModule } from '@acorex/components/popup';\nimport { AXProgressBarModule } from '@acorex/components/progress-bar';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFileModule } from '@acorex/core/file';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXUploaderListComponent } from '..';\nimport { AXUploaderBrowseDirective } from './uploader-browse-handle.directive';\nimport { AXUploaderDialogContainerComponent } from './uploader-dialog-container/uploader-dialog-container.component';\nimport { AXUploaderDropZoneComponent } from './uploader-drop-zone/uploader-drop-zone.component';\nimport { AXUploaderZoneDirective } from './uploader-zone.directive';\n\nconst COMPONENTS = [\n AXUploaderDropZoneComponent,\n AXUploaderListComponent,\n AXUploaderZoneDirective,\n AXUploaderBrowseDirective,\n AXUploaderDialogContainerComponent,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n AXProgressBarModule,\n AXFormatModule,\n AXFileModule,\n AXDateTimeModule,\n AXCircularProgressModule,\n AXPopupModule,\n ...COMPONENTS,\n ],\n exports: [...COMPONENTS],\n providers: [],\n})\nexport class AXUploaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-video-player.mjs","sources":["../../../../
|
1
|
+
{"version":3,"file":"acorex-components-video-player.mjs","sources":["../../../../packages/components/video-player/src/lib/video-player/video-player.component.ts","../../../../packages/components/video-player/src/lib/video-player/video-player.component.html","../../../../packages/components/video-player/src/lib/video-player.module.ts","../../../../packages/components/video-player/src/acorex-components-video-player.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-video-player',\n templateUrl: './video-player.component.html',\n styleUrls: ['./video-player.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXVideoPlayerComponent {\n src = input();\n}\n","<video controls [src]=\"src()\"></video>\n","import { NgModule } from '@angular/core';\nimport { AXVideoPlayerComponent } from './video-player/video-player.component';\n\nconst COMPONENT = [AXVideoPlayerComponent];\nconst MODULES = [];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n})\nexport class AXVideoPlayerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MASa,sBAAsB,CAAA;AAPnC,IAAA,WAAA,GAAA;QAQE,IAAG,CAAA,GAAA,GAAG,KAAK,EAAE;AACd;+GAFY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,yMCTnC,4CACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDQa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,mBAGV,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,4CAAA,EAAA;;;AEJvC,MAAM,SAAS,GAAG,CAAC,sBAAsB,CAAC;AAC1C,MAAM,OAAO,GAAG,EAAE;MAML,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAnB,mBAAmB,EAAA,OAAA,EAAA,CAPb,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAAtB,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAO5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHjB,OAAO,CAAA,EAAA,CAAA,CAAA;;4FAGT,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACxB,iBAAA;;;ACTD;;AAEG;;;;"}
|
@@ -478,7 +478,14 @@ class AXWysiwygInsertComponent {
|
|
478
478
|
}
|
479
479
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXWysiwygInsertComponent, decorators: [{
|
480
480
|
type: Component,
|
481
|
-
args: [{ selector: 'ax-wysiwyg-insert', encapsulation: ViewEncapsulation.None, imports: [
|
481
|
+
args: [{ selector: 'ax-wysiwyg-insert', encapsulation: ViewEncapsulation.None, imports: [
|
482
|
+
AXButtonComponent,
|
483
|
+
AXDecoratorIconComponent,
|
484
|
+
AXPopoverComponent,
|
485
|
+
AXTextBoxComponent,
|
486
|
+
FormsModule,
|
487
|
+
AXDecoratorGenericComponent,
|
488
|
+
], template: "<ax-button #linkBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-image\"></ax-icon>\n</ax-button>\n\n<ax-popover\n [adaptivityEnabled]=\"true\"\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"linkBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane ax-insert-container\">\n <ax-text-box\n class=\"{{ textBoxOptions.size }}\"\n [(ngModel)]=\"textBoxOptions.text\"\n [placeholder]=\"textBoxOptions.placeholder\"\n >\n <ax-suffix>\n <ax-button (click)=\"submitLink()\" color=\"secondary\" text=\"Add\"> </ax-button>\n </ax-suffix>\n </ax-text-box>\n </div>\n</ax-popover>\n", styles: [".ax-insert-container{display:flex;padding:.5rem}\n"] }]
|
482
489
|
}] });
|
483
490
|
|
484
491
|
/**
|
@@ -596,10 +603,24 @@ const COMPONENT = [
|
|
596
603
|
AXWysiwygInsertComponent,
|
597
604
|
AXWysiwygListComponent,
|
598
605
|
];
|
599
|
-
const MODULES = [
|
606
|
+
const MODULES = [
|
607
|
+
AXButtonModule,
|
608
|
+
AXDecoratorModule,
|
609
|
+
AXSelectBoxModule,
|
610
|
+
FormsModule,
|
611
|
+
AXColorPaletteModule,
|
612
|
+
AXPopoverModule,
|
613
|
+
AXTextBoxModule,
|
614
|
+
];
|
600
615
|
class AXWysiwygModule {
|
601
616
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXWysiwygModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
602
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.10", ngImport: i0, type: AXWysiwygModule, imports: [AXButtonModule,
|
617
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.10", ngImport: i0, type: AXWysiwygModule, imports: [AXButtonModule,
|
618
|
+
AXDecoratorModule,
|
619
|
+
AXSelectBoxModule,
|
620
|
+
FormsModule,
|
621
|
+
AXColorPaletteModule,
|
622
|
+
AXPopoverModule,
|
623
|
+
AXTextBoxModule, AXWysiwygContainerComponent,
|
603
624
|
AXWysiwygViewComponent,
|
604
625
|
AXWysiwygAlignmentComponent,
|
605
626
|
AXWysiwygColorsComponent,
|