@acorex/components 21.0.1-next.7 → 21.0.1-next.8
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/accordion/index.d.ts +1 -0
- package/button-group/index.d.ts +4 -6
- package/chips/index.d.ts +8 -3
- package/collapse/index.d.ts +6 -4
- package/data-table/index.d.ts +253 -4
- package/dialog/index.d.ts +1 -1
- package/fesm2022/acorex-components-accordion.mjs +13 -8
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +2 -2
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +6 -6
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +4 -5
- 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 +3 -3
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +3 -3
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +2 -2
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +2 -2
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +11 -15
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +5 -5
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +4 -4
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +3 -3
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +8 -6
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +4 -6
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-collapse.mjs +10 -13
- package/fesm2022/acorex-components-collapse.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +2 -2
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +2 -2
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-command.mjs +2 -2
- package/fesm2022/acorex-components-command.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +8 -8
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +2 -2
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-list.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +2 -2
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +452 -16
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +2 -2
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +2 -2
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +2 -2
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +13 -20
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +4 -5
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +7 -6
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +2 -2
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +3 -5
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-editor.mjs +4 -4
- package/fesm2022/acorex-components-editor.mjs.map +1 -1
- 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 +9 -17
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +3 -2
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +18 -18
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +2 -2
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +2 -2
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kanban.mjs +13 -32
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +7 -25
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +2 -2
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +2 -2
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +3 -3
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +8 -8
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +2 -2
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +10 -10
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +5 -5
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-BnUdtPke.mjs → acorex-components-modal-acorex-components-modal-CXXcFToK.mjs} +4 -4
- package/fesm2022/acorex-components-modal-acorex-components-modal-CXXcFToK.mjs.map +1 -0
- package/fesm2022/{acorex-components-modal-modal-content.component-Cgq-wx_m.mjs → acorex-components-modal-modal-content.component-B4rhHeEz.mjs} +5 -7
- package/fesm2022/acorex-components-modal-modal-content.component-B4rhHeEz.mjs.map +1 -0
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs +3 -3
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +14 -7
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box-legacy.mjs +2 -2
- package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +2 -2
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +2 -2
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +19 -14
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +4 -4
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +2 -2
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +2 -2
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +6 -6
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +4 -4
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +3 -3
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +3 -5
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +2 -2
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +2 -2
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +2 -2
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +25 -27
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +3 -3
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +29 -14
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +2 -2
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +2 -2
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-rrule.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler-picker.mjs +2 -2
- package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +18 -18
- 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 +3 -9
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +2 -4
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list-2.mjs +4 -4
- package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +2 -2
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +14 -63
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +2 -2
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +5 -5
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-sliding-item.mjs +2 -2
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +2 -2
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +4 -4
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +2 -2
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +2 -2
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +3 -3
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +2 -2
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +2 -2
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +4 -4
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +4 -4
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +2 -2
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +10 -9
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +6 -6
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-video-player.mjs +2 -2
- package/fesm2022/acorex-components-video-player.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +12 -12
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/fesm2022/acorex-components.mjs.map +1 -1
- package/grid-layout-builder/index.d.ts +2 -1
- package/kanban/index.d.ts +7 -1
- package/kbd/index.d.ts +7 -13
- package/loading/index.d.ts +1 -1
- package/notification/index.d.ts +2 -0
- package/package.json +3 -3
- package/paint/index.d.ts +6 -1
- package/rate-picker/index.d.ts +15 -5
- package/side-menu/index.d.ts +2 -9
- package/slider/index.d.ts +2 -2
- package/tooltip/index.d.ts +1 -0
- package/fesm2022/acorex-components-modal-acorex-components-modal-BnUdtPke.mjs.map +0 -1
- package/fesm2022/acorex-components-modal-modal-content.component-Cgq-wx_m.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-kanban.mjs","sources":["../../../../packages/components/kanban/src/lib/kanban.component.ts","../../../../packages/components/kanban/src/lib/kanban.component.html","../../../../packages/components/kanban/src/acorex-components-kanban.ts"],"sourcesContent":["import { NXComponent } from '@acorex/cdk/common';\nimport { AXDragDirective, AXDropListDirective, AXDropListDroppedEvent } from '@acorex/cdk/drag-drop';\nimport { AXDecoratorGenericComponent, AXDecoratorHeadingComponent } from '@acorex/components/decorators';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, input, output, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport {\n AXKanbanBeforeDropEvent,\n AXKanbanItem,\n AXKanbanMouseEvent,\n AXKanbanSortEvent,\n AXKanbanStatus,\n} from './kanban.class';\n\n@Component({\n selector: 'ax-kanban',\n templateUrl: './kanban.component.html',\n styleUrls: ['./kanban.component.compiled.css'],\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgClass,\n NgTemplateOutlet,\n AXDragDirective,\n AXDropListDirective,\n AXDecoratorGenericComponent,\n AXDecoratorHeadingComponent,\n // AXDecoratorIconComponent,\n AXTooltipDirective,\n ],\n})\nexport class AXKanbanComponent extends NXComponent {\n hasActions = input(false);\n dragStartDelay = input(0);\n statuses = input<AXKanbanStatus[]>([]);\n itemTemplate = input<TemplateRef<unknown>>();\n dataSource = input<AXKanbanItem[] | any[]>();\n\n keyField = input<string>('id');\n indexField = input<string>('index');\n titleField = input<string>('title');\n cssClassField = input<string>('cssClass');\n priorityField = input<string>('priority');\n statusKeyField = input<string>('statusKey');\n descriptionField = input<string>('description');\n emptyTemplate = input<TemplateRef<unknown>>();\n headerTemplate = input<TemplateRef<unknown>>();\n footerTemplate = input<TemplateRef<unknown>>();\n contentFooterTemplate = input<TemplateRef<unknown>>();\n tooltipTemplate = input<string | TemplateRef<unknown>>();\n\n onBeforeDrop = output<AXKanbanBeforeDropEvent>();\n onSortChanged = output<AXKanbanSortEvent>();\n onItemClick = output<AXKanbanMouseEvent>();\n onActionClick = output<AXKanbanMouseEvent>();\n onItemDblClick = output<AXKanbanMouseEvent>();\n onItemRightClick = output<AXKanbanMouseEvent>();\n\n protected items = computed<AXKanbanItem[]>(() => {\n // ... your excellent gap-filling index logic remains the same ...\n const dataSource = this.dataSource() || [];\n const mappedItems = dataSource.map<AXKanbanItem>((item: any) => ({\n id: item[this.keyField()],\n index: item[this.indexField()],\n title: item[this.titleField()],\n cssClass: item[this.cssClassField()],\n priority: item[this.priorityField()],\n statusKey: item[this.statusKeyField()],\n description: item[this.descriptionField()],\n }));\n\n const itemsByStatus = new Map<any, AXKanbanItem[]>();\n for (const item of mappedItems) {\n if (!itemsByStatus.has(item.statusKey)) {\n itemsByStatus.set(item.statusKey, []);\n }\n itemsByStatus.get(item.statusKey).push(item);\n }\n\n const finalProcessedItems: AXKanbanItem[] = [];\n for (const group of itemsByStatus.values()) {\n const correctlyIndexedItems: AXKanbanItem[] = [];\n const itemsToBeIndexed: AXKanbanItem[] = [];\n const takenIndices = new Set<number>();\n for (const item of group) {\n const hasValidIndex = item.index != null && typeof item.index === 'number' && !takenIndices.has(item.index);\n if (hasValidIndex) {\n takenIndices.add(item.index);\n correctlyIndexedItems.push(item);\n } else {\n itemsToBeIndexed.push(item);\n }\n }\n let currentIndex = 0;\n for (const item of itemsToBeIndexed) {\n while (takenIndices.has(currentIndex)) {\n currentIndex++;\n }\n item.index = currentIndex;\n currentIndex++;\n }\n const processedGroup = [...correctlyIndexedItems, ...itemsToBeIndexed];\n processedGroup.sort((a, b) => a.index - b.index);\n finalProcessedItems.push(...processedGroup);\n }\n return finalProcessedItems;\n });\n\n protected filteredStatuses = computed(() => this.statuses().sort((a, b) => a.index - b.index));\n\n /**\n * Handles a drop operation to reorder items or move them between statuses.\n * It uses the component's current rendered state (`this.items`) as the source\n * of truth, performs precise re-indexing, and emits a comprehensive event with\n * the updated data source.\n *\n * @param event AXDropListDroppedEvent - The drag-and-drop event including indices and container information.\n * @returns Promise<void>\n */\n async drop(event: AXDropListDroppedEvent): Promise<void> {\n const { item: droppedItemDirective, currentIndex, previousIndex, container, previousContainer } = event;\n\n // --- 1. Get identifiers and the item's original data ---\n const currentStatusKey = JSON.parse(container.element.id);\n const previousStatusKey = JSON.parse(previousContainer.element.id);\n const movedItemOriginalData = droppedItemDirective.dragData() as AXKanbanItem;\n\n if (!movedItemOriginalData) {\n console.warn('AXKanban: Dragged item has no [dragData]. Sort event cannot be emitted.');\n return;\n }\n\n // --- 2. Get the original item from dataSource ---\n const originalItemFromDataSource = this.dataSource().find(\n (item) => item[this.keyField()] === movedItemOriginalData.id,\n );\n\n if (!originalItemFromDataSource) {\n console.warn('AXKanban: Item not found in dataSource.');\n return;\n }\n\n // --- 3. Perform the move operation ---\n await this.performMove(\n originalItemFromDataSource,\n previousStatusKey,\n currentStatusKey,\n previousIndex,\n currentIndex,\n event.nativeEvent,\n );\n }\n\n /**\n * Programmatically move an item to a different status or reorder within the same status.\n * @param itemId The ID of the item to move (using keyField)\n * @param targetStatusKey The target status key to move the item to\n * @param targetIndex Optional target index within the target status. If not provided, item will be appended to the end.\n * @returns Promise<boolean> - true if the move was successful, false otherwise\n */\n async moveItem(itemId: any, targetStatusKey: any, targetIndex?: number): Promise<boolean> {\n const keyField = this.keyField();\n const originalItem = this.dataSource().find((item) => item[keyField] === itemId);\n\n if (!originalItem) {\n console.warn(`AXKanban: Item with id \"${itemId}\" not found in dataSource.`);\n return false;\n }\n\n // Get current status from dataSource\n const statusKeyField = this.statusKeyField();\n const previousStatusKey = originalItem[statusKeyField];\n\n // Get current index from the computed items state (more accurate than dataSource field)\n const currentItem = this.items().find((i) => i.id === itemId);\n const previousIndex = currentItem?.index ?? 0;\n\n // If target index is not provided, append to the end\n let currentIndex = targetIndex;\n if (currentIndex === undefined) {\n const targetStatusItems = this.items().filter((i) => i.statusKey === targetStatusKey);\n currentIndex = targetStatusItems.length;\n }\n\n // Perform the move\n return await this.performMove(originalItem, previousStatusKey, targetStatusKey, previousIndex, currentIndex, null);\n }\n\n /**\n * Programmatically reorder an item within the same status.\n * @param itemId The ID of the item to reorder (using keyField)\n * @param newIndex The new index position within the same status\n * @returns Promise<boolean> - true if the reorder was successful, false otherwise\n */\n async reorderItem(itemId: any, newIndex: number): Promise<boolean> {\n const keyField = this.keyField();\n const originalItem = this.dataSource().find((item) => item[keyField] === itemId);\n\n if (!originalItem) {\n console.warn(`AXKanban: Item with id \"${itemId}\" not found in dataSource.`);\n return false;\n }\n\n // Get current status from dataSource\n const statusKeyField = this.statusKeyField();\n const statusKey = originalItem[statusKeyField];\n\n // Get current index from the computed items state (more accurate than dataSource field)\n const currentItem = this.items().find((i) => i.id === itemId);\n const previousIndex = currentItem?.index ?? 0;\n\n // Perform the move (same status, different index)\n return await this.performMove(originalItem, statusKey, statusKey, previousIndex, newIndex, null);\n }\n\n /**\n * Programmatically move an item to a different status.\n * @param itemId The ID of the item to move (using keyField)\n * @param targetStatusKey The target status key to move the item to\n * @param targetIndex Optional target index within the target status. If not provided, item will be appended to the end.\n * @returns Promise<boolean> - true if the move was successful, false otherwise\n */\n async moveItemToStatus(itemId: any, targetStatusKey: any, targetIndex?: number): Promise<boolean> {\n return await this.moveItem(itemId, targetStatusKey, targetIndex);\n }\n\n /**\n * Core method that performs the move operation, handles re-indexing, and emits events.\n * This is used by both drag-and-drop operations and programmatic moves.\n *\n * @param originalItem The original item from dataSource that is being moved\n * @param previousStatusKey The status key the item is moving from\n * @param currentStatusKey The status key the item is moving to\n * @param previousIndex The index the item is moving from\n * @param currentIndex The index the item is moving to\n * @param nativeEvent The native mouse event (null for programmatic moves)\n * @returns Promise<boolean> - true if the move was successful, false otherwise\n */\n private async performMove(\n originalItem: any,\n previousStatusKey: any,\n currentStatusKey: any,\n previousIndex: number,\n currentIndex: number,\n nativeEvent: MouseEvent | null,\n ): Promise<boolean> {\n // --- 1. Emit beforeDrop event and check if drop should be canceled ---\n const shouldProceed = await this.emitBeforeDropEvent(\n originalItem,\n previousStatusKey,\n currentStatusKey,\n previousIndex,\n currentIndex,\n nativeEvent,\n );\n if (!shouldProceed) {\n return false;\n }\n\n // --- 2. Use the `items` computed property as the source of truth for the operation ---\n // This is the CRUCIAL FIX. We operate on the data as it was rendered.\n const currentItemsState = structuredClone(this.items());\n\n // --- 3. Perform the move operation based on the scenario ---\n if (previousStatusKey === currentStatusKey) {\n // --- Scenario A: Reordering within the same list ---\n const list = currentItemsState.filter((i) => i.statusKey === currentStatusKey);\n\n // Remove from the old position and insert into the new position\n const [movedItem] = list.splice(previousIndex, 1);\n list.splice(currentIndex, 0, movedItem);\n\n // Re-index only this modified list\n list.forEach((item, idx) => (item.index = idx));\n } else {\n // --- Scenario B: Moving to a different list ---\n const sourceList = currentItemsState.filter((i) => i.statusKey === previousStatusKey);\n const destList = currentItemsState.filter((i) => i.statusKey === currentStatusKey);\n\n // Remove from source list\n const [movedItem] = sourceList.splice(previousIndex, 1);\n\n // Update its status and add to destination list\n movedItem.statusKey = currentStatusKey;\n destList.splice(currentIndex, 0, movedItem);\n\n // Re-index both affected lists\n sourceList.forEach((item, idx) => (item.index = idx));\n destList.forEach((item, idx) => (item.index = idx));\n }\n\n // --- 4. Map the changes back to a new version of the original dataSource ---\n // This preserves any extra properties the user might have on their data objects.\n const keyField = this.keyField();\n const statusKeyField = this.statusKeyField();\n const indexField = this.indexField();\n\n const updatedItemsMap = new Map(currentItemsState.map((i) => [i.id, i]));\n const finalDataSource = structuredClone(this.dataSource());\n\n finalDataSource.forEach((originalItem) => {\n const updatedItem = updatedItemsMap.get(originalItem[keyField]);\n if (updatedItem) {\n originalItem[indexField] = updatedItem.index;\n originalItem[statusKeyField] = updatedItem.statusKey;\n }\n });\n\n const movedItemId = originalItem[keyField];\n const finalOriginalItemFromDataSource = finalDataSource.find((item) => item[keyField] === movedItemId);\n\n // --- 5. Emit the final, comprehensive event ---\n this.onSortChanged.emit({\n sender: this,\n nativeEvent: nativeEvent,\n // The original data object that was moved\n item: finalOriginalItemFromDataSource,\n // The complete, precisely re-indexed data source, ready for state update\n allItems: finalDataSource,\n currentIndex,\n previousIndex,\n currentStatusKey,\n previousStatusKey,\n });\n\n return true;\n }\n\n /**\n * Emit beforeDrop event and return whether to continue with the drop operation.\n * Supports both synchronous and asynchronous event handlers.\n * @param item The original item from dataSource that is being moved\n * @param previousStatusKey The status key the item is moving from\n * @param currentStatusKey The status key the item is moving to\n * @param previousIndex The index the item is moving from\n * @param currentIndex The index the item is moving to\n * @param nativeEvent The native mouse event (null for programmatic moves)\n * @returns Promise<boolean> - true if the drop should proceed, false if it should be canceled\n */\n private async emitBeforeDropEvent(\n item: any,\n previousStatusKey: any,\n currentStatusKey: any,\n previousIndex: number,\n currentIndex: number,\n nativeEvent: MouseEvent | null,\n ): Promise<boolean> {\n const beforeDropEvent: AXKanbanBeforeDropEvent = {\n sender: this,\n nativeEvent,\n item,\n previousStatusKey,\n currentStatusKey,\n previousIndex,\n currentIndex,\n canceled: false,\n };\n\n // Manually invoke handlers to collect and await promises from async handlers\n const outputRef = this.onBeforeDrop as any;\n const emitter = outputRef._emitRef?.() || outputRef.emitRef?.();\n const promises: Promise<unknown>[] = [];\n\n if (emitter?.observers || emitter?._observers) {\n const observers = emitter.observers || emitter._observers || [];\n observers.forEach((observer: any) => {\n try {\n const result = observer.next?.(beforeDropEvent) || observer(beforeDropEvent);\n if (result instanceof Promise) {\n promises.push(result);\n }\n } catch (error) {\n console.error('Error in onBeforeDrop handler:', error);\n }\n });\n } else {\n // Fallback: emit normally\n this.onBeforeDrop.emit(beforeDropEvent);\n }\n\n // Wait for all async handlers to complete\n if (promises.length > 0) {\n await Promise.all(promises);\n }\n\n return !beforeDropEvent.canceled;\n }\n\n protected getItemsById(key: any): AXKanbanItem[] {\n return this.items().filter((e) => e.statusKey === key);\n }\n\n protected getOriginalItemsById(key: any): any[] {\n return this.dataSource().filter((e) => e[this.statusKeyField()] === key);\n }\n\n protected stringify(value: any): string {\n return JSON.stringify(value);\n }\n\n protected handleActionClick(event: MouseEvent, item: AXKanbanItem) {\n const originalItemFromDataSource = this.dataSource().find(\n (originalItem) => originalItem[this.keyField()] === item.id,\n );\n this.onActionClick.emit({ item: originalItemFromDataSource, nativeEvent: event, sender: this });\n }\n\n protected handleClick(event: MouseEvent, item: AXKanbanItem) {\n const originalItemFromDataSource = this.dataSource().find(\n (originalItem) => originalItem[this.keyField()] === item.id,\n );\n this.onItemClick.emit({ item: originalItemFromDataSource, nativeEvent: event, sender: this });\n }\n\n protected handleDblClick(event: MouseEvent, item: AXKanbanItem) {\n const originalItemFromDataSource = this.dataSource().find(\n (originalItem) => originalItem[this.keyField()] === item.id,\n );\n this.onItemDblClick.emit({ item: originalItemFromDataSource, nativeEvent: event, sender: this });\n }\n\n protected handleRightClick(event: MouseEvent, item: AXKanbanItem) {\n const originalItemFromDataSource = this.dataSource().find(\n (originalItem) => originalItem[this.keyField()] === item.id,\n );\n this.onItemRightClick.emit({ item: originalItemFromDataSource, nativeEvent: event, sender: this });\n }\n}\n","@for (status of filteredStatuses(); track status.key) {\n <div class=\"ax-kanban-status {{ status.cssClass }}\">\n <ax-header>\n @if (headerTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"headerTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: status }\"\n ></ng-container>\n } @else {\n <ax-title>{{ status.title }}</ax-title>\n }\n </ax-header>\n <ax-content axDropList dropListGroup=\"kanban\" [id]=\"stringify(status.key)\" (dropListDropped)=\"drop($event)\">\n @if (emptyTemplate() && getOriginalItemsById(status.key).length === 0) {\n <ng-container\n [ngTemplateOutlet]=\"emptyTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: status }\"\n ></ng-container>\n }\n @if (itemTemplate()) {\n @for (item of getOriginalItemsById(status.key); track item[keyField()]) {\n <div\n axDrag\n [dragData]=\"item\"\n class=\"{{ item.cssClass }}\"\n [dragStartDelay]=\"dragStartDelay()\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"item\"\n (click)=\"handleClick($event, item)\"\n (dblclick)=\"handleDblClick($event, item)\"\n (contextmenu)=\"handleRightClick($event, item)\"\n >\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n </div>\n }\n } @else {\n @for (item of getItemsById(status.key); track item.id) {\n <div\n axDrag\n [dragData]=\"item\"\n [dragCursor]=\"'grab'\"\n [dragStartDelay]=\"dragStartDelay()\"\n class=\"ax-kanban-item {{ item.cssClass }}\"\n [ngClass]=\"`ax-kanban-${item.priority ?? 'primary'}-periority`\"\n [axTooltipDisabled]=\"tooltipTemplate() ? false : true\"\n [axTooltip]=\"tooltipTemplate()\"\n [axTooltipContext]=\"item\"\n (click)=\"handleClick($event, item)\"\n (dblclick)=\"handleDblClick($event, item)\"\n (contextmenu)=\"handleRightClick($event, item)\"\n >\n <ax-heading>\n <ax-title>\n <span class=\"ax-kanban-truncate\">{{ item.title }}</span>\n @if (hasActions()) {\n <!-- <ax-icon\n class=\"ax-icon ax-icon-more-horizontal ax-kanban-action-icon\"\n (click)=\"handleActionClick($event, item)\"\n >\n </ax-icon> -->\n }\n </ax-title>\n <ax-subtitle>{{ item.description }}</ax-subtitle>\n </ax-heading>\n </div>\n }\n }\n @if (contentFooterTemplate()) {\n <ax-footer>\n <ng-container\n [ngTemplateOutlet]=\"contentFooterTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: status }\"\n ></ng-container>\n </ax-footer>\n }\n </ax-content>\n @if (footerTemplate()) {\n <ax-footer>\n <ng-container\n [ngTemplateOutlet]=\"footerTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: status }\"\n ></ng-container>\n </ax-footer>\n }\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-kanban.mjs","sources":["../tmp-esm2022/kanban/lib/kanban.component.js","../tmp-esm2022/kanban/acorex-components-kanban.js"],"sourcesContent":["import { NXComponent } from '@acorex/cdk/common';\nimport { AXDragDirective, AXDropListDirective } from '@acorex/cdk/drag-drop';\nimport { AXDecoratorGenericComponent, AXDecoratorHeadingComponent, AXDecoratorIconComponent, } from '@acorex/components/decorators';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, input, output, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXKanbanComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.hasActions = input(false, ...(ngDevMode ? [{ debugName: \"hasActions\" }] : []));\n this.dragStartDelay = input(0, ...(ngDevMode ? [{ debugName: \"dragStartDelay\" }] : []));\n this.statuses = input([], ...(ngDevMode ? [{ debugName: \"statuses\" }] : []));\n this.itemTemplate = input(...(ngDevMode ? [undefined, { debugName: \"itemTemplate\" }] : []));\n this.dataSource = input(...(ngDevMode ? [undefined, { debugName: \"dataSource\" }] : []));\n this.keyField = input('id', ...(ngDevMode ? [{ debugName: \"keyField\" }] : []));\n this.indexField = input('index', ...(ngDevMode ? [{ debugName: \"indexField\" }] : []));\n this.titleField = input('title', ...(ngDevMode ? [{ debugName: \"titleField\" }] : []));\n this.cssClassField = input('cssClass', ...(ngDevMode ? [{ debugName: \"cssClassField\" }] : []));\n this.priorityField = input('priority', ...(ngDevMode ? [{ debugName: \"priorityField\" }] : []));\n this.statusKeyField = input('statusKey', ...(ngDevMode ? [{ debugName: \"statusKeyField\" }] : []));\n this.descriptionField = input('description', ...(ngDevMode ? [{ debugName: \"descriptionField\" }] : []));\n this.emptyTemplate = input(...(ngDevMode ? [undefined, { debugName: \"emptyTemplate\" }] : []));\n this.headerTemplate = input(...(ngDevMode ? [undefined, { debugName: \"headerTemplate\" }] : []));\n this.footerTemplate = input(...(ngDevMode ? [undefined, { debugName: \"footerTemplate\" }] : []));\n this.contentFooterTemplate = input(...(ngDevMode ? [undefined, { debugName: \"contentFooterTemplate\" }] : []));\n this.tooltipTemplate = input(...(ngDevMode ? [undefined, { debugName: \"tooltipTemplate\" }] : []));\n this.onBeforeDrop = output();\n this.onSortChanged = output();\n this.onItemClick = output();\n this.onActionClick = output();\n this.onItemDblClick = output();\n this.onItemRightClick = output();\n this.items = computed(() => {\n // ... your excellent gap-filling index logic remains the same ...\n const dataSource = this.dataSource() || [];\n const mappedItems = dataSource.map((item) => ({\n id: item[this.keyField()],\n index: item[this.indexField()],\n title: item[this.titleField()],\n cssClass: item[this.cssClassField()],\n priority: item[this.priorityField()],\n statusKey: item[this.statusKeyField()],\n description: item[this.descriptionField()],\n }));\n const itemsByStatus = new Map();\n for (const item of mappedItems) {\n if (!itemsByStatus.has(item.statusKey)) {\n itemsByStatus.set(item.statusKey, []);\n }\n itemsByStatus.get(item.statusKey).push(item);\n }\n const finalProcessedItems = [];\n for (const group of itemsByStatus.values()) {\n const correctlyIndexedItems = [];\n const itemsToBeIndexed = [];\n const takenIndices = new Set();\n for (const item of group) {\n const hasValidIndex = item.index != null && typeof item.index === 'number' && !takenIndices.has(item.index);\n if (hasValidIndex) {\n takenIndices.add(item.index);\n correctlyIndexedItems.push(item);\n }\n else {\n itemsToBeIndexed.push(item);\n }\n }\n let currentIndex = 0;\n for (const item of itemsToBeIndexed) {\n while (takenIndices.has(currentIndex)) {\n currentIndex++;\n }\n item.index = currentIndex;\n currentIndex++;\n }\n const processedGroup = [...correctlyIndexedItems, ...itemsToBeIndexed];\n processedGroup.sort((a, b) => a.index - b.index);\n finalProcessedItems.push(...processedGroup);\n }\n return finalProcessedItems;\n }, ...(ngDevMode ? [{ debugName: \"items\" }] : []));\n this.filteredStatuses = computed(() => this.statuses().sort((a, b) => a.index - b.index), ...(ngDevMode ? [{ debugName: \"filteredStatuses\" }] : []));\n }\n /**\n * Handles a drop operation to reorder items or move them between statuses.\n * It uses the component's current rendered state (`this.items`) as the source\n * of truth, performs precise re-indexing, and emits a comprehensive event with\n * the updated data source.\n *\n * @param event AXDropListDroppedEvent - The drag-and-drop event including indices and container information.\n * @returns Promise<void>\n */\n async drop(event) {\n const { item: droppedItemDirective, currentIndex, previousIndex, container, previousContainer } = event;\n // --- 1. Get identifiers and the item's original data ---\n const currentStatusKey = JSON.parse(container.element.id);\n const previousStatusKey = JSON.parse(previousContainer.element.id);\n const movedItemOriginalData = droppedItemDirective.dragData();\n if (!movedItemOriginalData) {\n console.warn('AXKanban: Dragged item has no [dragData]. Sort event cannot be emitted.');\n return;\n }\n // --- 2. Get the original item from dataSource ---\n const originalItemFromDataSource = this.dataSource().find((item) => item[this.keyField()] === movedItemOriginalData.id);\n if (!originalItemFromDataSource) {\n console.warn('AXKanban: Item not found in dataSource.');\n return;\n }\n // --- 3. Perform the move operation ---\n await this.performMove(originalItemFromDataSource, previousStatusKey, currentStatusKey, previousIndex, currentIndex, event.nativeEvent);\n }\n /**\n * Programmatically move an item to a different status or reorder within the same status.\n * @param itemId The ID of the item to move (using keyField)\n * @param targetStatusKey The target status key to move the item to\n * @param targetIndex Optional target index within the target status. If not provided, item will be appended to the end.\n * @returns Promise<boolean> - true if the move was successful, false otherwise\n */\n async moveItem(itemId, targetStatusKey, targetIndex) {\n const keyField = this.keyField();\n const originalItem = this.dataSource().find((item) => item[keyField] === itemId);\n if (!originalItem) {\n console.warn(`AXKanban: Item with id \"${itemId}\" not found in dataSource.`);\n return false;\n }\n // Get current status from dataSource\n const statusKeyField = this.statusKeyField();\n const previousStatusKey = originalItem[statusKeyField];\n // Get current index from the computed items state (more accurate than dataSource field)\n const currentItem = this.items().find((i) => i.id === itemId);\n const previousIndex = currentItem?.index ?? 0;\n // If target index is not provided, append to the end\n let currentIndex = targetIndex;\n if (currentIndex === undefined) {\n const targetStatusItems = this.items().filter((i) => i.statusKey === targetStatusKey);\n currentIndex = targetStatusItems.length;\n }\n // Perform the move\n return await this.performMove(originalItem, previousStatusKey, targetStatusKey, previousIndex, currentIndex, null);\n }\n /**\n * Programmatically reorder an item within the same status.\n * @param itemId The ID of the item to reorder (using keyField)\n * @param newIndex The new index position within the same status\n * @returns Promise<boolean> - true if the reorder was successful, false otherwise\n */\n async reorderItem(itemId, newIndex) {\n const keyField = this.keyField();\n const originalItem = this.dataSource().find((item) => item[keyField] === itemId);\n if (!originalItem) {\n console.warn(`AXKanban: Item with id \"${itemId}\" not found in dataSource.`);\n return false;\n }\n // Get current status from dataSource\n const statusKeyField = this.statusKeyField();\n const statusKey = originalItem[statusKeyField];\n // Get current index from the computed items state (more accurate than dataSource field)\n const currentItem = this.items().find((i) => i.id === itemId);\n const previousIndex = currentItem?.index ?? 0;\n // Perform the move (same status, different index)\n return await this.performMove(originalItem, statusKey, statusKey, previousIndex, newIndex, null);\n }\n /**\n * Programmatically move an item to a different status.\n * @param itemId The ID of the item to move (using keyField)\n * @param targetStatusKey The target status key to move the item to\n * @param targetIndex Optional target index within the target status. If not provided, item will be appended to the end.\n * @returns Promise<boolean> - true if the move was successful, false otherwise\n */\n async moveItemToStatus(itemId, targetStatusKey, targetIndex) {\n return await this.moveItem(itemId, targetStatusKey, targetIndex);\n }\n /**\n * Core method that performs the move operation, handles re-indexing, and emits events.\n * This is used by both drag-and-drop operations and programmatic moves.\n *\n * @param originalItem The original item from dataSource that is being moved\n * @param previousStatusKey The status key the item is moving from\n * @param currentStatusKey The status key the item is moving to\n * @param previousIndex The index the item is moving from\n * @param currentIndex The index the item is moving to\n * @param nativeEvent The native mouse event (null for programmatic moves)\n * @returns Promise<boolean> - true if the move was successful, false otherwise\n */\n async performMove(originalItem, previousStatusKey, currentStatusKey, previousIndex, currentIndex, nativeEvent) {\n // --- 1. Emit beforeDrop event and check if drop should be canceled ---\n const shouldProceed = await this.emitBeforeDropEvent(originalItem, previousStatusKey, currentStatusKey, previousIndex, currentIndex, nativeEvent);\n if (!shouldProceed) {\n return false;\n }\n // --- 2. Use the `items` computed property as the source of truth for the operation ---\n // This is the CRUCIAL FIX. We operate on the data as it was rendered.\n const currentItemsState = structuredClone(this.items());\n // --- 3. Perform the move operation based on the scenario ---\n if (previousStatusKey === currentStatusKey) {\n // --- Scenario A: Reordering within the same list ---\n const list = currentItemsState.filter((i) => i.statusKey === currentStatusKey);\n // Remove from the old position and insert into the new position\n const [movedItem] = list.splice(previousIndex, 1);\n list.splice(currentIndex, 0, movedItem);\n // Re-index only this modified list\n list.forEach((item, idx) => (item.index = idx));\n }\n else {\n // --- Scenario B: Moving to a different list ---\n const sourceList = currentItemsState.filter((i) => i.statusKey === previousStatusKey);\n const destList = currentItemsState.filter((i) => i.statusKey === currentStatusKey);\n // Remove from source list\n const [movedItem] = sourceList.splice(previousIndex, 1);\n // Update its status and add to destination list\n movedItem.statusKey = currentStatusKey;\n destList.splice(currentIndex, 0, movedItem);\n // Re-index both affected lists\n sourceList.forEach((item, idx) => (item.index = idx));\n destList.forEach((item, idx) => (item.index = idx));\n }\n // --- 4. Map the changes back to a new version of the original dataSource ---\n // This preserves any extra properties the user might have on their data objects.\n const keyField = this.keyField();\n const statusKeyField = this.statusKeyField();\n const indexField = this.indexField();\n const updatedItemsMap = new Map(currentItemsState.map((i) => [i.id, i]));\n const finalDataSource = structuredClone(this.dataSource());\n finalDataSource.forEach((originalItem) => {\n const updatedItem = updatedItemsMap.get(originalItem[keyField]);\n if (updatedItem) {\n originalItem[indexField] = updatedItem.index;\n originalItem[statusKeyField] = updatedItem.statusKey;\n }\n });\n const movedItemId = originalItem[keyField];\n const finalOriginalItemFromDataSource = finalDataSource.find((item) => item[keyField] === movedItemId);\n // --- 5. Emit the final, comprehensive event ---\n this.onSortChanged.emit({\n sender: this,\n nativeEvent: nativeEvent,\n // The original data object that was moved\n item: finalOriginalItemFromDataSource,\n // The complete, precisely re-indexed data source, ready for state update\n allItems: finalDataSource,\n currentIndex,\n previousIndex,\n currentStatusKey,\n previousStatusKey,\n });\n return true;\n }\n /**\n * Emit beforeDrop event and return whether to continue with the drop operation.\n * Supports both synchronous and asynchronous event handlers via the `wait()` method.\n * @param item The original item from dataSource that is being moved\n * @param previousStatusKey The status key the item is moving from\n * @param currentStatusKey The status key the item is moving to\n * @param previousIndex The index the item is moving from\n * @param currentIndex The index the item is moving to\n * @param nativeEvent The native mouse event (null for programmatic moves)\n * @returns Promise<boolean> - true if the drop should proceed, false if it should be canceled\n */\n async emitBeforeDropEvent(item, previousStatusKey, currentStatusKey, previousIndex, currentIndex, nativeEvent) {\n // Collect promises registered via wait()\n const waitPromises = [];\n const beforeDropEvent = {\n sender: this,\n nativeEvent,\n item,\n previousStatusKey,\n currentStatusKey,\n previousIndex,\n currentIndex,\n canceled: false,\n wait: (promise) => waitPromises.push(promise),\n };\n // Emit the event - handlers can call event.wait() to register async operations\n this.onBeforeDrop.emit(beforeDropEvent);\n // Wait for all registered promises to complete\n if (waitPromises.length > 0) {\n await Promise.all(waitPromises);\n }\n return !beforeDropEvent.canceled;\n }\n getItemsById(key) {\n return this.items().filter((e) => e.statusKey === key);\n }\n getOriginalItemsById(key) {\n return this.dataSource().filter((e) => e[this.statusKeyField()] === key);\n }\n stringify(value) {\n return JSON.stringify(value);\n }\n handleActionClick(event, item) {\n const originalItemFromDataSource = this.dataSource().find((originalItem) => originalItem[this.keyField()] === item.id);\n this.onActionClick.emit({ item: originalItemFromDataSource, nativeEvent: event, sender: this });\n }\n handleClick(event, item) {\n const originalItemFromDataSource = this.dataSource().find((originalItem) => originalItem[this.keyField()] === item.id);\n this.onItemClick.emit({ item: originalItemFromDataSource, nativeEvent: event, sender: this });\n }\n handleDblClick(event, item) {\n const originalItemFromDataSource = this.dataSource().find((originalItem) => originalItem[this.keyField()] === item.id);\n this.onItemDblClick.emit({ item: originalItemFromDataSource, nativeEvent: event, sender: this });\n }\n handleRightClick(event, item) {\n const originalItemFromDataSource = this.dataSource().find((originalItem) => originalItem[this.keyField()] === item.id);\n this.onItemRightClick.emit({ item: originalItemFromDataSource, nativeEvent: event, sender: this });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXKanbanComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: AXKanbanComponent, isStandalone: true, selector: \"ax-kanban\", inputs: { hasActions: { classPropertyName: \"hasActions\", publicName: \"hasActions\", isSignal: true, isRequired: false, transformFunction: null }, dragStartDelay: { classPropertyName: \"dragStartDelay\", publicName: \"dragStartDelay\", isSignal: true, isRequired: false, transformFunction: null }, statuses: { classPropertyName: \"statuses\", publicName: \"statuses\", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: \"itemTemplate\", publicName: \"itemTemplate\", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: \"dataSource\", publicName: \"dataSource\", isSignal: true, isRequired: false, transformFunction: null }, keyField: { classPropertyName: \"keyField\", publicName: \"keyField\", isSignal: true, isRequired: false, transformFunction: null }, indexField: { classPropertyName: \"indexField\", publicName: \"indexField\", isSignal: true, isRequired: false, transformFunction: null }, titleField: { classPropertyName: \"titleField\", publicName: \"titleField\", isSignal: true, isRequired: false, transformFunction: null }, cssClassField: { classPropertyName: \"cssClassField\", publicName: \"cssClassField\", isSignal: true, isRequired: false, transformFunction: null }, priorityField: { classPropertyName: \"priorityField\", publicName: \"priorityField\", isSignal: true, isRequired: false, transformFunction: null }, statusKeyField: { classPropertyName: \"statusKeyField\", publicName: \"statusKeyField\", isSignal: true, isRequired: false, transformFunction: null }, descriptionField: { classPropertyName: \"descriptionField\", publicName: \"descriptionField\", isSignal: true, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: \"emptyTemplate\", publicName: \"emptyTemplate\", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: \"headerTemplate\", publicName: \"headerTemplate\", isSignal: true, isRequired: false, transformFunction: null }, footerTemplate: { classPropertyName: \"footerTemplate\", publicName: \"footerTemplate\", isSignal: true, isRequired: false, transformFunction: null }, contentFooterTemplate: { classPropertyName: \"contentFooterTemplate\", publicName: \"contentFooterTemplate\", isSignal: true, isRequired: false, transformFunction: null }, tooltipTemplate: { classPropertyName: \"tooltipTemplate\", publicName: \"tooltipTemplate\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onBeforeDrop: \"onBeforeDrop\", onSortChanged: \"onSortChanged\", onItemClick: \"onItemClick\", onActionClick: \"onActionClick\", onItemDblClick: \"onItemDblClick\", onItemRightClick: \"onItemRightClick\" }, usesInheritance: true, ngImport: i0, template: \"@for (status of filteredStatuses(); track status.key) {\\n <div class=\\\"ax-kanban-status {{ status.cssClass }}\\\">\\n <ax-header>\\n @if (headerTemplate()) {\\n <ng-container\\n [ngTemplateOutlet]=\\\"headerTemplate()\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: status }\\\"\\n ></ng-container>\\n } @else {\\n <ax-title>{{ status.title }}</ax-title>\\n }\\n </ax-header>\\n <ax-content axDropList dropListGroup=\\\"kanban\\\" [id]=\\\"stringify(status.key)\\\" (dropListDropped)=\\\"drop($event)\\\">\\n @if (emptyTemplate() && getOriginalItemsById(status.key).length === 0) {\\n <ng-container\\n [ngTemplateOutlet]=\\\"emptyTemplate()\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: status }\\\"\\n ></ng-container>\\n }\\n @if (itemTemplate()) {\\n @for (item of getOriginalItemsById(status.key); track item[keyField()]) {\\n <div\\n axDrag\\n [dragData]=\\\"item\\\"\\n class=\\\"{{ item.cssClass }}\\\"\\n [dragStartDelay]=\\\"dragStartDelay()\\\"\\n [axTooltipDisabled]=\\\"tooltipTemplate() ? false : true\\\"\\n [axTooltip]=\\\"tooltipTemplate()\\\"\\n [axTooltipContext]=\\\"item\\\"\\n (click)=\\\"handleClick($event, item)\\\"\\n (dblclick)=\\\"handleDblClick($event, item)\\\"\\n (contextmenu)=\\\"handleRightClick($event, item)\\\"\\n >\\n <ng-container\\n [ngTemplateOutlet]=\\\"itemTemplate()\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item }\\\"\\n ></ng-container>\\n </div>\\n }\\n } @else {\\n @for (item of getItemsById(status.key); track item.id) {\\n <div\\n axDrag\\n [dragData]=\\\"item\\\"\\n [dragCursor]=\\\"'grab'\\\"\\n [dragStartDelay]=\\\"dragStartDelay()\\\"\\n class=\\\"ax-kanban-item {{ item.cssClass }}\\\"\\n [ngClass]=\\\"`ax-kanban-${item.priority ?? 'primary'}-periority`\\\"\\n [axTooltipDisabled]=\\\"tooltipTemplate() ? false : true\\\"\\n [axTooltip]=\\\"tooltipTemplate()\\\"\\n [axTooltipContext]=\\\"item\\\"\\n (click)=\\\"handleClick($event, item)\\\"\\n (dblclick)=\\\"handleDblClick($event, item)\\\"\\n (contextmenu)=\\\"handleRightClick($event, item)\\\"\\n >\\n <ax-heading>\\n <ax-title>\\n <span class=\\\"ax-kanban-truncate\\\">{{ item.title }}</span>\\n @if (hasActions()) {\\n <ax-icon\\n class=\\\"ax-icon ax-icon-more-horizontal ax-kanban-action-icon\\\"\\n (click)=\\\"handleActionClick($event, item)\\\"\\n >\\n </ax-icon>\\n }\\n </ax-title>\\n <ax-subtitle>{{ item.description }}</ax-subtitle>\\n </ax-heading>\\n </div>\\n }\\n }\\n @if (contentFooterTemplate()) {\\n <ax-footer>\\n <ng-container\\n [ngTemplateOutlet]=\\\"contentFooterTemplate()\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: status }\\\"\\n ></ng-container>\\n </ax-footer>\\n }\\n </ax-content>\\n @if (footerTemplate()) {\\n <ax-footer>\\n <ng-container\\n [ngTemplateOutlet]=\\\"footerTemplate()\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: status }\\\"\\n ></ng-container>\\n </ax-footer>\\n }\\n </div>\\n}\\n\", styles: [\".ax-dark ax-kanban{--ax-comp-kanban-item-bg-color: var(--ax-sys-color-surface);--ax-comp-kanban-item-text-color: var(--ax-sys-color-on-surface)}:root{--ax-comp-kanban-gap: 1rem;--ax-comp-kanban-status-gap: .5rem;--ax-comp-kanban-status-min-width: 20rem;--ax-comp-kanban-status-min-height: 30rem;--ax-comp-kanban-status-padding-block: .5rem;--ax-comp-kanban-status-padding-inline: .5rem;--ax-comp-kanban-item-padding-block: .25rem;--ax-comp-kanban-item-padding-inline: .5rem;--ax-comp-kanban-item-indicator-size: .125rem;--ax-comp-kanban-status-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-kanban-status-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-kanban-item-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-kanban-item-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-kanban-primary-periority-color: var(--ax-sys-color-primary-surface);--ax-comp-kanban-highest-periority-color: var(--ax-sys-color-danger-dark-surface);--ax-comp-kanban-high-periority-color: var(--ax-sys-color-danger-surface);--ax-comp-kanban-medium-periority-color: var(--ax-sys-color-warning-surface);--ax-comp-kanban-low-periority-color: var(--ax-sys-color-success-light-surface);--ax-comp-kanban-lowest-periority-color: var(--ax-sys-color-success-lightest-surface)}ax-kanban{display:grid;overflow-x:auto;grid-auto-flow:column;gap:var(--ax-comp-kanban-gap);grid-auto-columns:var(--ax-comp-kanban-status-min-width)}ax-kanban .ax-kanban-status{display:flex;overflow-y:auto;flex-direction:column;gap:var(--ax-comp-kanban-status-gap);border-radius:var(--ax-sys-border-radius);height:var(--ax-comp-kanban-status-min-height);color:rgba(var(--ax-comp-kanban-status-text-color));clip-path:inset(0 round var(--ax-sys-border-radius));background-color:rgba(var(--ax-comp-kanban-status-bg-color))}ax-kanban .ax-kanban-status>ax-header{top:0;z-index:2;position:sticky;background-color:inherit}ax-kanban .ax-kanban-status>ax-header>ax-title{width:100%;display:block;font-weight:600;font-size:1.25rem;text-align:center;padding-block-start:var(--ax-comp-kanban-status-padding-block)}ax-kanban .ax-kanban-status ax-content{flex:1;display:flex;flex-direction:column;gap:var(--ax-comp-kanban-status-gap);padding-inline:var(--ax-comp-kanban-status-padding-inline)}ax-kanban .ax-kanban-status ax-content ax-popover{display:none}ax-kanban .ax-kanban-status ax-content .ax-kanban-item{width:100%;position:relative;box-shadow:0 1px 2px #0000000d;color:rgba(var(--ax-comp-kanban-item-text-color));border-radius:calc(var(--ax-sys-border-radius) / 2);padding-block:var(--ax-comp-kanban-item-padding-block);padding-inline:var(--ax-comp-kanban-item-padding-inline);background-color:rgba(var(--ax-comp-kanban-item-bg-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item:before{content:\\\"\\\";position:absolute;border-radius:9999px;inset-inline-start:.125rem;width:var(--ax-comp-kanban-item-indicator-size);height:calc(100% - var(--ax-comp-kanban-item-padding-inline))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item.ax-kanban-primary-periority:before{background-color:rgba(var(--ax-comp-kanban-primary-periority-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item.ax-kanban-highest-periority:before{background-color:rgba(var(--ax-comp-kanban-highest-periority-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item.ax-kanban-high-periority:before{background-color:rgba(var(--ax-comp-kanban-high-periority-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item.ax-kanban-medium-periority:before{background-color:rgba(var(--ax-comp-kanban-medium-periority-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item.ax-kanban-low-periority:before{background-color:rgba(var(--ax-comp-kanban-low-periority-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item.ax-kanban-lowest-periority:before{background-color:rgba(var(--ax-comp-kanban-lowest-periority-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item>ax-heading>ax-title{display:flex;font-size:1rem;font-weight:500;align-items:center;justify-content:space-between}ax-kanban .ax-kanban-status ax-content .ax-kanban-item>ax-heading>ax-title .ax-kanban-action-icon{cursor:pointer}ax-kanban .ax-kanban-status>ax-footer{bottom:0;z-index:2;position:sticky;background-color:inherit}\\n\"], dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: AXDragDirective, selector: \"[axDrag]\", inputs: [\"axDrag\", \"dragData\", \"dragDisabled\", \"dragTransition\", \"dragElementClone\", \"dropZoneGroup\", \"dragStartDelay\", \"dragResetOnDblClick\", \"dragLockAxis\", \"dragClonedTemplate\", \"dragCursor\", \"dragBoundary\", \"dragTransitionDuration\"], outputs: [\"dragPositionChanged\"] }, { kind: \"directive\", type: AXDropListDirective, selector: \"[axDropList]\", inputs: [\"axDropList\", \"sortingDisabled\", \"dropListGroup\", \"dropListOrientation\"], outputs: [\"dropListDropped\"], exportAs: [\"axDropList\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXDecoratorHeadingComponent, selector: \"ax-heading\", inputs: [\"darkMode\", \"color\", \"weight\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"directive\", type: AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXKanbanComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-kanban', encapsulation: ViewEncapsulation.None, imports: [\n NgClass,\n NgTemplateOutlet,\n AXDragDirective,\n AXDropListDirective,\n AXDecoratorGenericComponent,\n AXDecoratorHeadingComponent,\n AXDecoratorIconComponent,\n AXTooltipDirective,\n ], template: \"@for (status of filteredStatuses(); track status.key) {\\n <div class=\\\"ax-kanban-status {{ status.cssClass }}\\\">\\n <ax-header>\\n @if (headerTemplate()) {\\n <ng-container\\n [ngTemplateOutlet]=\\\"headerTemplate()\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: status }\\\"\\n ></ng-container>\\n } @else {\\n <ax-title>{{ status.title }}</ax-title>\\n }\\n </ax-header>\\n <ax-content axDropList dropListGroup=\\\"kanban\\\" [id]=\\\"stringify(status.key)\\\" (dropListDropped)=\\\"drop($event)\\\">\\n @if (emptyTemplate() && getOriginalItemsById(status.key).length === 0) {\\n <ng-container\\n [ngTemplateOutlet]=\\\"emptyTemplate()\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: status }\\\"\\n ></ng-container>\\n }\\n @if (itemTemplate()) {\\n @for (item of getOriginalItemsById(status.key); track item[keyField()]) {\\n <div\\n axDrag\\n [dragData]=\\\"item\\\"\\n class=\\\"{{ item.cssClass }}\\\"\\n [dragStartDelay]=\\\"dragStartDelay()\\\"\\n [axTooltipDisabled]=\\\"tooltipTemplate() ? false : true\\\"\\n [axTooltip]=\\\"tooltipTemplate()\\\"\\n [axTooltipContext]=\\\"item\\\"\\n (click)=\\\"handleClick($event, item)\\\"\\n (dblclick)=\\\"handleDblClick($event, item)\\\"\\n (contextmenu)=\\\"handleRightClick($event, item)\\\"\\n >\\n <ng-container\\n [ngTemplateOutlet]=\\\"itemTemplate()\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item }\\\"\\n ></ng-container>\\n </div>\\n }\\n } @else {\\n @for (item of getItemsById(status.key); track item.id) {\\n <div\\n axDrag\\n [dragData]=\\\"item\\\"\\n [dragCursor]=\\\"'grab'\\\"\\n [dragStartDelay]=\\\"dragStartDelay()\\\"\\n class=\\\"ax-kanban-item {{ item.cssClass }}\\\"\\n [ngClass]=\\\"`ax-kanban-${item.priority ?? 'primary'}-periority`\\\"\\n [axTooltipDisabled]=\\\"tooltipTemplate() ? false : true\\\"\\n [axTooltip]=\\\"tooltipTemplate()\\\"\\n [axTooltipContext]=\\\"item\\\"\\n (click)=\\\"handleClick($event, item)\\\"\\n (dblclick)=\\\"handleDblClick($event, item)\\\"\\n (contextmenu)=\\\"handleRightClick($event, item)\\\"\\n >\\n <ax-heading>\\n <ax-title>\\n <span class=\\\"ax-kanban-truncate\\\">{{ item.title }}</span>\\n @if (hasActions()) {\\n <ax-icon\\n class=\\\"ax-icon ax-icon-more-horizontal ax-kanban-action-icon\\\"\\n (click)=\\\"handleActionClick($event, item)\\\"\\n >\\n </ax-icon>\\n }\\n </ax-title>\\n <ax-subtitle>{{ item.description }}</ax-subtitle>\\n </ax-heading>\\n </div>\\n }\\n }\\n @if (contentFooterTemplate()) {\\n <ax-footer>\\n <ng-container\\n [ngTemplateOutlet]=\\\"contentFooterTemplate()\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: status }\\\"\\n ></ng-container>\\n </ax-footer>\\n }\\n </ax-content>\\n @if (footerTemplate()) {\\n <ax-footer>\\n <ng-container\\n [ngTemplateOutlet]=\\\"footerTemplate()\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: status }\\\"\\n ></ng-container>\\n </ax-footer>\\n }\\n </div>\\n}\\n\", styles: [\".ax-dark ax-kanban{--ax-comp-kanban-item-bg-color: var(--ax-sys-color-surface);--ax-comp-kanban-item-text-color: var(--ax-sys-color-on-surface)}:root{--ax-comp-kanban-gap: 1rem;--ax-comp-kanban-status-gap: .5rem;--ax-comp-kanban-status-min-width: 20rem;--ax-comp-kanban-status-min-height: 30rem;--ax-comp-kanban-status-padding-block: .5rem;--ax-comp-kanban-status-padding-inline: .5rem;--ax-comp-kanban-item-padding-block: .25rem;--ax-comp-kanban-item-padding-inline: .5rem;--ax-comp-kanban-item-indicator-size: .125rem;--ax-comp-kanban-status-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-kanban-status-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-kanban-item-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-kanban-item-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-kanban-primary-periority-color: var(--ax-sys-color-primary-surface);--ax-comp-kanban-highest-periority-color: var(--ax-sys-color-danger-dark-surface);--ax-comp-kanban-high-periority-color: var(--ax-sys-color-danger-surface);--ax-comp-kanban-medium-periority-color: var(--ax-sys-color-warning-surface);--ax-comp-kanban-low-periority-color: var(--ax-sys-color-success-light-surface);--ax-comp-kanban-lowest-periority-color: var(--ax-sys-color-success-lightest-surface)}ax-kanban{display:grid;overflow-x:auto;grid-auto-flow:column;gap:var(--ax-comp-kanban-gap);grid-auto-columns:var(--ax-comp-kanban-status-min-width)}ax-kanban .ax-kanban-status{display:flex;overflow-y:auto;flex-direction:column;gap:var(--ax-comp-kanban-status-gap);border-radius:var(--ax-sys-border-radius);height:var(--ax-comp-kanban-status-min-height);color:rgba(var(--ax-comp-kanban-status-text-color));clip-path:inset(0 round var(--ax-sys-border-radius));background-color:rgba(var(--ax-comp-kanban-status-bg-color))}ax-kanban .ax-kanban-status>ax-header{top:0;z-index:2;position:sticky;background-color:inherit}ax-kanban .ax-kanban-status>ax-header>ax-title{width:100%;display:block;font-weight:600;font-size:1.25rem;text-align:center;padding-block-start:var(--ax-comp-kanban-status-padding-block)}ax-kanban .ax-kanban-status ax-content{flex:1;display:flex;flex-direction:column;gap:var(--ax-comp-kanban-status-gap);padding-inline:var(--ax-comp-kanban-status-padding-inline)}ax-kanban .ax-kanban-status ax-content ax-popover{display:none}ax-kanban .ax-kanban-status ax-content .ax-kanban-item{width:100%;position:relative;box-shadow:0 1px 2px #0000000d;color:rgba(var(--ax-comp-kanban-item-text-color));border-radius:calc(var(--ax-sys-border-radius) / 2);padding-block:var(--ax-comp-kanban-item-padding-block);padding-inline:var(--ax-comp-kanban-item-padding-inline);background-color:rgba(var(--ax-comp-kanban-item-bg-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item:before{content:\\\"\\\";position:absolute;border-radius:9999px;inset-inline-start:.125rem;width:var(--ax-comp-kanban-item-indicator-size);height:calc(100% - var(--ax-comp-kanban-item-padding-inline))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item.ax-kanban-primary-periority:before{background-color:rgba(var(--ax-comp-kanban-primary-periority-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item.ax-kanban-highest-periority:before{background-color:rgba(var(--ax-comp-kanban-highest-periority-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item.ax-kanban-high-periority:before{background-color:rgba(var(--ax-comp-kanban-high-periority-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item.ax-kanban-medium-periority:before{background-color:rgba(var(--ax-comp-kanban-medium-periority-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item.ax-kanban-low-periority:before{background-color:rgba(var(--ax-comp-kanban-low-periority-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item.ax-kanban-lowest-periority:before{background-color:rgba(var(--ax-comp-kanban-lowest-periority-color))}ax-kanban .ax-kanban-status ax-content .ax-kanban-item>ax-heading>ax-title{display:flex;font-size:1rem;font-weight:500;align-items:center;justify-content:space-between}ax-kanban .ax-kanban-status ax-content .ax-kanban-item>ax-heading>ax-title .ax-kanban-action-icon{cursor:pointer}ax-kanban .ax-kanban-status>ax-footer{bottom:0;z-index:2;position:sticky;background-color:inherit}\\n\"] }]\n }], propDecorators: { hasActions: [{ type: i0.Input, args: [{ isSignal: true, alias: \"hasActions\", required: false }] }], dragStartDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: \"dragStartDelay\", required: false }] }], statuses: [{ type: i0.Input, args: [{ isSignal: true, alias: \"statuses\", required: false }] }], itemTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: \"itemTemplate\", required: false }] }], dataSource: [{ type: i0.Input, args: [{ isSignal: true, alias: \"dataSource\", required: false }] }], keyField: [{ type: i0.Input, args: [{ isSignal: true, alias: \"keyField\", required: false }] }], indexField: [{ type: i0.Input, args: [{ isSignal: true, alias: \"indexField\", required: false }] }], titleField: [{ type: i0.Input, args: [{ isSignal: true, alias: \"titleField\", required: false }] }], cssClassField: [{ type: i0.Input, args: [{ isSignal: true, alias: \"cssClassField\", required: false }] }], priorityField: [{ type: i0.Input, args: [{ isSignal: true, alias: \"priorityField\", required: false }] }], statusKeyField: [{ type: i0.Input, args: [{ isSignal: true, alias: \"statusKeyField\", required: false }] }], descriptionField: [{ type: i0.Input, args: [{ isSignal: true, alias: \"descriptionField\", required: false }] }], emptyTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: \"emptyTemplate\", required: false }] }], headerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: \"headerTemplate\", required: false }] }], footerTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: \"footerTemplate\", required: false }] }], contentFooterTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: \"contentFooterTemplate\", required: false }] }], tooltipTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: \"tooltipTemplate\", required: false }] }], onBeforeDrop: [{ type: i0.Output, args: [\"onBeforeDrop\"] }], onSortChanged: [{ type: i0.Output, args: [\"onSortChanged\"] }], onItemClick: [{ type: i0.Output, args: [\"onItemClick\"] }], onActionClick: [{ type: i0.Output, args: [\"onActionClick\"] }], onItemDblClick: [{ type: i0.Output, args: [\"onItemDblClick\"] }], onItemRightClick: [{ type: i0.Output, args: [\"onItemRightClick\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2FuYmFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMva2FuYmFuL3NyYy9saWIva2FuYmFuLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMva2FuYmFuL3NyYy9saWIva2FuYmFuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUEwQixNQUFNLHVCQUF1QixDQUFDO0FBQ3JHLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLHdCQUF3QixHQUN6QixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFlLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXlCbkcsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVc7SUFoQmxEOztRQWlCRSxlQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssc0RBQUMsQ0FBQztRQUMxQixtQkFBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLDBEQUFDLENBQUM7UUFDMUIsYUFBUSxHQUFHLEtBQUssQ0FBbUIsRUFBRSxvREFBQyxDQUFDO1FBQ3ZDLGlCQUFZLEdBQUcsS0FBSyxrRUFBd0IsQ0FBQztRQUM3QyxlQUFVLEdBQUcsS0FBSyxnRUFBMEIsQ0FBQztRQUU3QyxhQUFRLEdBQUcsS0FBSyxDQUFTLElBQUksb0RBQUMsQ0FBQztRQUMvQixlQUFVLEdBQUcsS0FBSyxD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QVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVTLGdCQUFnQixDQUFDLEtBQWlCLEVBQUUsSUFBa0I7UUFDOUQsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUN2RCxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQzVELENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckcsQ0FBQzsrR0E1WFUsaUJBQWlCO21HQUFqQixpQkFBaUIscXJGQ2xDOUIsbzNHQTBGQSxvdklEbEVJLE9BQU8sb0ZBQ1AsZ0JBQWdCLG9KQUNoQixlQUFlLHFVQUNmLG1CQUFtQixvTUFDbkIsMkJBQTJCLHlMQUMzQiwyQkFBMkIsZ0dBQzNCLHdCQUF3QixzRUFDeEIsa0JBQWtCOzs0RkFHVCxpQkFBaUI7a0JBaEI3QixTQUFTOytCQUNFLFdBQVcsaUJBR04saUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQix3QkFBd0I7d0JBQ3hCLGtCQUFrQjtxQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERyYWdEaXJlY3RpdmUsIEFYRHJvcExpc3REaXJlY3RpdmUsIEFYRHJvcExpc3REcm9wcGVkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtcbiAgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LFxuICBBWERlY29yYXRvckhlYWRpbmdDb21wb25lbnQsXG4gIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgb3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFYS2FuYmFuQmVmb3JlRHJvcEV2ZW50LFxuICBBWEthbmJhbkl0ZW0sXG4gIEFYS2FuYmFuTW91c2VFdmVudCxcbiAgQVhLYW5iYW5Tb3J0RXZlbnQsXG4gIEFYS2FuYmFuU3RhdHVzLFxufSBmcm9tICcuL2thbmJhbi5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWthbmJhbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9rYW5iYW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9rYW5iYW4uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBBWERyYWdEaXJlY3RpdmUsXG4gICAgQVhEcm9wTGlzdERpcmVjdGl2ZSxcbiAgICBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsXG4gICAgQVhEZWNvcmF0b3JIZWFkaW5nQ29tcG9uZW50LFxuICAgIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCxcbiAgICBBWFRvb2x0aXBEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYS2FuYmFuQ29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuICBoYXNBY3Rpb25zID0gaW5wdXQoZmFsc2UpO1xuICBkcmFnU3RhcnREZWxheSA9IGlucHV0KDApO1xuICBzdGF0dXNlcyA9IGlucHV0PEFYS2FuYmFuU3RhdHVzW10+KFtdKTtcbiAgaXRlbVRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCk7XG4gIGRhdGFTb3VyY2UgPSBpbnB1dDxBWEthbmJhbkl0ZW1bXSB8IGFueVtdPigpO1xuXG4gIGtleUZpZWxkID0gaW5wdXQ8c3RyaW5nPignaWQnKTtcbiAgaW5kZXhGaWVsZCA9IGlucHV0PHN0cmluZz4oJ2luZGV4Jyk7XG4gIHRpdGxlRmllbGQgPSBpbnB1dDxzdHJpbmc+KCd0aXRsZScpO1xuICBjc3NDbGFzc0ZpZWxkID0gaW5wdXQ8c3RyaW5nPignY3NzQ2xhc3MnKTtcbiAgcHJpb3JpdHlGaWVsZCA9IGlucHV0PHN0cmluZz4oJ3ByaW9yaXR5Jyk7XG4gIHN0YXR1c0tleUZpZWxkID0gaW5wdXQ8c3RyaW5nPignc3RhdHVzS2V5Jyk7XG4gIGRlc2NyaXB0aW9uRmllbGQgPSBpbnB1dDxzdHJpbmc+KCdkZXNjcmlwdGlvbicpO1xuICBlbXB0eVRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCk7XG4gIGhlYWRlclRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCk7XG4gIGZvb3RlclRlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCk7XG4gIGNvbnRlbnRGb290ZXJUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPHVua25vd24+PigpO1xuICB0b29sdGlwVGVtcGxhdGUgPSBpbnB1dDxzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPj4oKTtcblxuICBvbkJlZm9yZURyb3AgPSBvdXRwdXQ8QVhLYW5iYW5CZWZvcmVEcm9wRXZlbnQ+KCk7XG4gIG9uU29ydENoYW5nZWQgPSBvdXRwdXQ8QVhLYW5iYW5Tb3J0RXZlbnQ+KCk7XG4gIG9uSXRlbUNsaWNrID0gb3V0cHV0PEFYS2FuYmFuTW91c2VFdmVudD4oKTtcbiAgb25BY3Rpb25DbGljayA9IG91dHB1dDxBWEthbmJhbk1vdXNlRXZlbnQ+KCk7XG4gIG9uSXRlbURibENsaWNrID0gb3V0cHV0PEFYS2FuYmFuTW91c2VFdmVudD4oKTtcbiAgb25JdGVtUmlnaHRDbGljayA9IG91dHB1dDxBWEthbmJhbk1vdXNlRXZlbnQ+KCk7XG5cbiAgcHJvdGVjdGVkIGl0ZW1zID0gY29tcHV0ZWQ8QVhLYW5iYW5JdGVtW10+KCgpID0+IHtcbiAgICAvLyAuLi4geW91ciBleGNlbGxlbnQgZ2FwLWZpbGxpbmcgaW5kZXggbG9naWMgcmVtYWlucyB0aGUgc2FtZSAuLi5cbiAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlKCkgfHwgW107XG4gICAgY29uc3QgbWFwcGVkSXRlbXMgPSBkYXRhU291cmNlLm1hcDxBWEthbmJhbkl0ZW0+KChpdGVtOiBhbnkpID0+ICh7XG4gICAgICBpZDogaXRlbVt0aGlzLmtleUZpZWxkKCldLFxuICAgICAgaW5kZXg6IGl0ZW1bdGhpcy5pbmRleEZpZWxkKCldLFxuICAgICAgdGl0bGU6IGl0ZW1bdGhpcy50aXRsZUZpZWxkKCldLFxuICAgICAgY3NzQ2xhc3M6IGl0ZW1bdGhpcy5jc3NDbGFzc0ZpZWxkKCldLFxuICAgICAgcHJpb3JpdHk6IGl0ZW1bdGhpcy5wcmlvcml0eUZpZWxkKCldLFxuICAgICAgc3RhdHVzS2V5OiBpdGVtW3RoaXMuc3RhdHVzS2V5RmllbGQoKV0sXG4gICAgICBkZXNjcmlwdGlvbjogaXRlbVt0aGlzLmRlc2NyaXB0aW9uRmllbGQoKV0sXG4gICAgfSkpO1xuXG4gICAgY29uc3QgaXRlbXNCeVN0YXR1cyA9IG5ldyBNYXA8YW55LCBBWEthbmJhbkl0ZW1bXT4oKTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgbWFwcGVkSXRlbXMpIHtcbiAgICAgIGlmICghaXRlbXNCeVN0YXR1cy5oYXMoaXRlbS5zdGF0dXNLZXkpKSB7XG4gICAgICAgIGl0ZW1zQnlTdGF0dXMuc2V0KGl0ZW0uc3RhdHVzS2V5LCBbXSk7XG4gICAgICB9XG4gICAgICBpdGVtc0J5U3RhdHVzLmdldChpdGVtLnN0YXR1c0tleSkucHVzaChpdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaW5hbFByb2Nlc3NlZEl0ZW1zOiBBWEthbmJhbkl0ZW1bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgaXRlbXNCeVN0YXR1cy52YWx1ZXMoKSkge1xuICAgICAgY29uc3QgY29ycmVjdGx5SW5kZXhlZEl0ZW1zOiBBWEthbmJhbkl0ZW1bXSA9IFtdO1xuICAgICAgY29uc3QgaXRlbXNUb0JlSW5kZXhlZDogQVhLYW5iYW5JdGVtW10gPSBbXTtcbiAgICAgIGNvbnN0IHRha2VuSW5kaWNlcyA9IG5ldyBTZXQ8bnVtYmVyPigpO1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGdyb3VwKSB7XG4gICAgICAgIGNvbnN0IGhhc1ZhbGlkSW5kZXggPSBpdGVtLmluZGV4ICE9IG51bGwgJiYgdHlwZW9mIGl0ZW0uaW5kZXggPT09ICdudW1iZXInICYmICF0YWtlbkluZGljZXMuaGFzKGl0ZW0uaW5kZXgpO1xuICAgICAgICBpZiAoaGFzVmFsaWRJbmRleCkge1xuICAgICAgICAgIHRha2VuSW5kaWNlcy5hZGQoaXRlbS5pbmRleCk7XG4gICAgICAgICAgY29ycmVjdGx5SW5kZXhlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbXNUb0JlSW5kZXhlZC5wdXNoKGl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZXQgY3VycmVudEluZGV4ID0gMDtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtc1RvQmVJbmRleGVkKSB7XG4gICAgICAgIHdoaWxlICh0YWtlbkluZGljZXMuaGFzKGN1cnJlbnRJbmRleCkpIHtcbiAgICAgICAgICBjdXJyZW50SW5kZXgrKztcbiAgICAgICAgfVxuICAgICAgICBpdGVtLmluZGV4ID0gY3VycmVudEluZGV4O1xuICAgICAgICBjdXJyZW50SW5kZXgrKztcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByb2Nlc3NlZEdyb3VwID0gWy4uLmNvcnJlY3RseUluZGV4ZWRJdGVtcywgLi4uaXRlbXNUb0JlSW5kZXhlZF07XG4gICAgICBwcm9jZXNzZWRHcm91cC5zb3J0KChhLCBiKSA9PiBhLmluZGV4IC0gYi5pbmRleCk7XG4gICAgICBmaW5hbFByb2Nlc3NlZEl0ZW1zLnB1c2goLi4ucHJvY2Vzc2VkR3JvdXApO1xuICAgIH1cbiAgICByZXR1cm4gZmluYWxQcm9jZXNzZWRJdGVtcztcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGZpbHRlcmVkU3RhdHVzZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXR1c2VzKCkuc29ydCgoYSwgYikgPT4gYS5pbmRleCAtIGIuaW5kZXgpKTtcblxuICAvKipcbiAgICogSGFuZGxlcyBhIGRyb3Agb3BlcmF0aW9uIHRvIHJlb3JkZXIgaXRlbXMgb3IgbW92ZSB0aGVtIGJldHdlZW4gc3RhdHVzZXMuXG4gICAqIEl0IHVzZXMgdGhlIGNvbXBvbmVudCdzIGN1cnJlbnQgcmVuZGVyZWQgc3RhdGUgKGB0aGlzLml0ZW1zYCkgYXMgdGhlIHNvdXJjZVxuICAgKiBvZiB0cnV0aCwgcGVyZm9ybXMgcHJlY2lzZSByZS1pbmRleGluZywgYW5kIGVtaXRzIGEgY29tcHJlaGVuc2l2ZSBldmVudCB3aXRoXG4gICAqIHRoZSB1cGRhdGVkIGRhdGEgc291cmNlLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgQVhEcm9wTGlzdERyb3BwZWRFdmVudCAtIFRoZSBkcmFnLWFuZC1kcm9wIGV2ZW50IGluY2x1ZGluZyBpbmRpY2VzIGFuZCBjb250YWluZXIgaW5mb3JtYXRpb24uXG4gICAqIEByZXR1cm5zIFByb21pc2U8dm9pZD5cbiAgICovXG4gIGFzeW5jIGRyb3AoZXZlbnQ6IEFYRHJvcExpc3REcm9wcGVkRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGl0ZW06IGRyb3BwZWRJdGVtRGlyZWN0aXZlLCBjdXJyZW50SW5kZXgsIHByZXZpb3VzSW5kZXgsIGNvbnRhaW5lciwgcHJldmlvdXNDb250YWluZXIgfSA9IGV2ZW50O1xuXG4gICAgLy8gLS0tIDEuIEdldCBpZGVudGlmaWVycyBhbmQgdGhlIGl0ZW0ncyBvcmlnaW5hbCBkYXRhIC0tLVxuICAgIGNvbnN0IGN1cnJlbnRTdGF0dXNLZXkgPSBKU09OLnBhcnNlKGNvbnRhaW5lci5lbGVtZW50LmlkKTtcbiAgICBjb25zdCBwcmV2aW91c1N0YXR1c0tleSA9IEpTT04ucGFyc2UocHJldmlvdXNDb250YWluZXIuZWxlbWVudC5pZCk7XG4gICAgY29uc3QgbW92ZWRJdGVtT3JpZ2luYWxEYXRhID0gZHJvcHBlZEl0ZW1EaXJlY3RpdmUuZHJhZ0RhdGEoKSBhcyBBWEthbmJhbkl0ZW07XG5cbiAgICBpZiAoIW1vdmVkSXRlbU9yaWdpbmFsRGF0YSkge1xuICAgICAgY29uc29sZS53YXJuKCdBWEthbmJhbjogRHJhZ2dlZCBpdGVtIGhhcyBubyBbZHJhZ0RhdGFdLiBTb3J0IGV2ZW50IGNhbm5vdCBiZSBlbWl0dGVkLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIC0tLSAyLiBHZXQgdGhlIG9yaWdpbmFsIGl0ZW0gZnJvbSBkYXRhU291cmNlIC0tLVxuICAgIGNvbnN0IG9yaWdpbmFsSXRlbUZyb21EYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlKCkuZmluZChcbiAgICAgIChpdGVtKSA9PiBpdGVtW3RoaXMua2V5RmllbGQoKV0gPT09IG1vdmVkSXRlbU9yaWdpbmFsRGF0YS5pZCxcbiAgICApO1xuXG4gICAgaWYgKCFvcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSkge1xuICAgICAgY29uc29sZS53YXJuKCdBWEthbmJhbjogSXRlbSBub3QgZm91bmQgaW4gZGF0YVNvdXJjZS4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyAtLS0gMy4gUGVyZm9ybSB0aGUgbW92ZSBvcGVyYXRpb24gLS0tXG4gICAgYXdhaXQgdGhpcy5wZXJmb3JtTW92ZShcbiAgICAgIG9yaWdpbmFsSXRlbUZyb21EYXRhU291cmNlLFxuICAgICAgcHJldmlvdXNTdGF0dXNLZXksXG4gICAgICBjdXJyZW50U3RhdHVzS2V5LFxuICAgICAgcHJldmlvdXNJbmRleCxcbiAgICAgIGN1cnJlbnRJbmRleCxcbiAgICAgIGV2ZW50Lm5hdGl2ZUV2ZW50LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUHJvZ3JhbW1hdGljYWxseSBtb3ZlIGFuIGl0ZW0gdG8gYSBkaWZmZXJlbnQgc3RhdHVzIG9yIHJlb3JkZXIgd2l0aGluIHRoZSBzYW1lIHN0YXR1cy5cbiAgICogQHBhcmFtIGl0ZW1JZCBUaGUgSUQgb2YgdGhlIGl0ZW0gdG8gbW92ZSAodXNpbmcga2V5RmllbGQpXG4gICAqIEBwYXJhbSB0YXJnZXRTdGF0dXNLZXkgVGhlIHRhcmdldCBzdGF0dXMga2V5IHRvIG1vdmUgdGhlIGl0ZW0gdG9cbiAgICogQHBhcmFtIHRhcmdldEluZGV4IE9wdGlvbmFsIHRhcmdldCBpbmRleCB3aXRoaW4gdGhlIHRhcmdldCBzdGF0dXMuIElmIG5vdCBwcm92aWRlZCwgaXRlbSB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZSBlbmQuXG4gICAqIEByZXR1cm5zIFByb21pc2U8Ym9vbGVhbj4gLSB0cnVlIGlmIHRoZSBtb3ZlIHdhcyBzdWNjZXNzZnVsLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGFzeW5jIG1vdmVJdGVtKGl0ZW1JZDogYW55LCB0YXJnZXRTdGF0dXNLZXk6IGFueSwgdGFyZ2V0SW5kZXg/OiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBrZXlGaWVsZCA9IHRoaXMua2V5RmllbGQoKTtcbiAgICBjb25zdCBvcmlnaW5hbEl0ZW0gPSB0aGlzLmRhdGFTb3VyY2UoKS5maW5kKChpdGVtKSA9PiBpdGVtW2tleUZpZWxkXSA9PT0gaXRlbUlkKTtcblxuICAgIGlmICghb3JpZ2luYWxJdGVtKSB7XG4gICAgICBjb25zb2xlLndhcm4oYEFYS2FuYmFuOiBJdGVtIHdpdGggaWQgXCIke2l0ZW1JZH1cIiBub3QgZm91bmQgaW4gZGF0YVNvdXJjZS5gKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBHZXQgY3VycmVudCBzdGF0dXMgZnJvbSBkYXRhU291cmNlXG4gICAgY29uc3Qgc3RhdHVzS2V5RmllbGQgPSB0aGlzLnN0YXR1c0tleUZpZWxkKCk7XG4gICAgY29uc3QgcHJldmlvdXNTdGF0dXNLZXkgPSBvcmlnaW5hbEl0ZW1bc3RhdHVzS2V5RmllbGRdO1xuXG4gICAgLy8gR2V0IGN1cnJlbnQgaW5kZXggZnJvbSB0aGUgY29tcHV0ZWQgaXRlbXMgc3RhdGUgKG1vcmUgYWNjdXJhdGUgdGhhbiBkYXRhU291cmNlIGZpZWxkKVxuICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gdGhpcy5pdGVtcygpLmZpbmQoKGkpID0+IGkuaWQgPT09IGl0ZW1JZCk7XG4gICAgY29uc3QgcHJldmlvdXNJbmRleCA9IGN1cnJlbnRJdGVtPy5pbmRleCA/PyAwO1xuXG4gICAgLy8gSWYgdGFyZ2V0IGluZGV4IGlzIG5vdCBwcm92aWRlZCwgYXBwZW5kIHRvIHRoZSBlbmRcbiAgICBsZXQgY3VycmVudEluZGV4ID0gdGFyZ2V0SW5kZXg7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB0YXJnZXRTdGF0dXNJdGVtcyA9IHRoaXMuaXRlbXMoKS5maWx0ZXIoKGkpID0+IGkuc3RhdHVzS2V5ID09PSB0YXJnZXRTdGF0dXNLZXkpO1xuICAgICAgY3VycmVudEluZGV4ID0gdGFyZ2V0U3RhdHVzSXRlbXMubGVuZ3RoO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm0gdGhlIG1vdmVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wZXJmb3JtTW92ZShvcmlnaW5hbEl0ZW0sIHByZXZpb3VzU3RhdHVzS2V5LCB0YXJnZXRTdGF0dXNLZXksIHByZXZpb3VzSW5kZXgsIGN1cnJlbnRJbmRleCwgbnVsbCk7XG4gIH1cblxuICAvKipcbiAgICogUHJvZ3JhbW1hdGljYWxseSByZW9yZGVyIGFuIGl0ZW0gd2l0aGluIHRoZSBzYW1lIHN0YXR1cy5cbiAgICogQHBhcmFtIGl0ZW1JZCBUaGUgSUQgb2YgdGhlIGl0ZW0gdG8gcmVvcmRlciAodXNpbmcga2V5RmllbGQpXG4gICAqIEBwYXJhbSBuZXdJbmRleCBUaGUgbmV3IGluZGV4IHBvc2l0aW9uIHdpdGhpbiB0aGUgc2FtZSBzdGF0dXNcbiAgICogQHJldHVybnMgUHJvbWlzZTxib29sZWFuPiAtIHRydWUgaWYgdGhlIHJlb3JkZXIgd2FzIHN1Y2Nlc3NmdWwsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgYXN5bmMgcmVvcmRlckl0ZW0oaXRlbUlkOiBhbnksIG5ld0luZGV4OiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBrZXlGaWVsZCA9IHRoaXMua2V5RmllbGQoKTtcbiAgICBjb25zdCBvcmlnaW5hbEl0ZW0gPSB0aGlzLmRhdGFTb3VyY2UoKS5maW5kKChpdGVtKSA9PiBpdGVtW2tleUZpZWxkXSA9PT0gaXRlbUlkKTtcblxuICAgIGlmICghb3JpZ2luYWxJdGVtKSB7XG4gICAgICBjb25zb2xlLndhcm4oYEFYS2FuYmFuOiBJdGVtIHdpdGggaWQgXCIke2l0ZW1JZH1cIiBub3QgZm91bmQgaW4gZGF0YVNvdXJjZS5gKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBHZXQgY3VycmVudCBzdGF0dXMgZnJvbSBkYXRhU291cmNlXG4gICAgY29uc3Qgc3RhdHVzS2V5RmllbGQgPSB0aGlzLnN0YXR1c0tleUZpZWxkKCk7XG4gICAgY29uc3Qgc3RhdHVzS2V5ID0gb3JpZ2luYWxJdGVtW3N0YXR1c0tleUZpZWxkXTtcblxuICAgIC8vIEdldCBjdXJyZW50IGluZGV4IGZyb20gdGhlIGNvbXB1dGVkIGl0ZW1zIHN0YXRlIChtb3JlIGFjY3VyYXRlIHRoYW4gZGF0YVNvdXJjZSBmaWVsZClcbiAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMuaXRlbXMoKS5maW5kKChpKSA9PiBpLmlkID09PSBpdGVtSWQpO1xuICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBjdXJyZW50SXRlbT8uaW5kZXggPz8gMDtcblxuICAgIC8vIFBlcmZvcm0gdGhlIG1vdmUgKHNhbWUgc3RhdHVzLCBkaWZmZXJlbnQgaW5kZXgpXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucGVyZm9ybU1vdmUob3JpZ2luYWxJdGVtLCBzdGF0dXNLZXksIHN0YXR1c0tleSwgcHJldmlvdXNJbmRleCwgbmV3SW5kZXgsIG51bGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2dyYW1tYXRpY2FsbHkgbW92ZSBhbiBpdGVtIHRvIGEgZGlmZmVyZW50IHN0YXR1cy5cbiAgICogQHBhcmFtIGl0ZW1JZCBUaGUgSUQgb2YgdGhlIGl0ZW0gdG8gbW92ZSAodXNpbmcga2V5RmllbGQpXG4gICAqIEBwYXJhbSB0YXJnZXRTdGF0dXNLZXkgVGhlIHRhcmdldCBzdGF0dXMga2V5IHRvIG1vdmUgdGhlIGl0ZW0gdG9cbiAgICogQHBhcmFtIHRhcmdldEluZGV4IE9wdGlvbmFsIHRhcmdldCBpbmRleCB3aXRoaW4gdGhlIHRhcmdldCBzdGF0dXMuIElmIG5vdCBwcm92aWRlZCwgaXRlbSB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZSBlbmQuXG4gICAqIEByZXR1cm5zIFByb21pc2U8Ym9vbGVhbj4gLSB0cnVlIGlmIHRoZSBtb3ZlIHdhcyBzdWNjZXNzZnVsLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGFzeW5jIG1vdmVJdGVtVG9TdGF0dXMoaXRlbUlkOiBhbnksIHRhcmdldFN0YXR1c0tleTogYW55LCB0YXJnZXRJbmRleD86IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLm1vdmVJdGVtKGl0ZW1JZCwgdGFyZ2V0U3RhdHVzS2V5LCB0YXJnZXRJbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogQ29yZSBtZXRob2QgdGhhdCBwZXJmb3JtcyB0aGUgbW92ZSBvcGVyYXRpb24sIGhhbmRsZXMgcmUtaW5kZXhpbmcsIGFuZCBlbWl0cyBldmVudHMuXG4gICAqIFRoaXMgaXMgdXNlZCBieSBib3RoIGRyYWctYW5kLWRyb3Agb3BlcmF0aW9ucyBhbmQgcHJvZ3JhbW1hdGljIG1vdmVzLlxuICAgKlxuICAgKiBAcGFyYW0gb3JpZ2luYWxJdGVtIFRoZSBvcmlnaW5hbCBpdGVtIGZyb20gZGF0YVNvdXJjZSB0aGF0IGlzIGJlaW5nIG1vdmVkXG4gICAqIEBwYXJhbSBwcmV2aW91c1N0YXR1c0tleSBUaGUgc3RhdHVzIGtleSB0aGUgaXRlbSBpcyBtb3ZpbmcgZnJvbVxuICAgKiBAcGFyYW0gY3VycmVudFN0YXR1c0tleSBUaGUgc3RhdHVzIGtleSB0aGUgaXRlbSBpcyBtb3ZpbmcgdG9cbiAgICogQHBhcmFtIHByZXZpb3VzSW5kZXggVGhlIGluZGV4IHRoZSBpdGVtIGlzIG1vdmluZyBmcm9tXG4gICAqIEBwYXJhbSBjdXJyZW50SW5kZXggVGhlIGluZGV4IHRoZSBpdGVtIGlzIG1vdmluZyB0b1xuICAgKiBAcGFyYW0gbmF0aXZlRXZlbnQgVGhlIG5hdGl2ZSBtb3VzZSBldmVudCAobnVsbCBmb3IgcHJvZ3JhbW1hdGljIG1vdmVzKVxuICAgKiBAcmV0dXJucyBQcm9taXNlPGJvb2xlYW4+IC0gdHJ1ZSBpZiB0aGUgbW92ZSB3YXMgc3VjY2Vzc2Z1bCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHBlcmZvcm1Nb3ZlKFxuICAgIG9yaWdpbmFsSXRlbTogYW55LFxuICAgIHByZXZpb3VzU3RhdHVzS2V5OiBhbnksXG4gICAgY3VycmVudFN0YXR1c0tleTogYW55LFxuICAgIHByZXZpb3VzSW5kZXg6IG51bWJlcixcbiAgICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgICBuYXRpdmVFdmVudDogTW91c2VFdmVudCB8IG51bGwsXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIC8vIC0tLSAxLiBFbWl0IGJlZm9yZURyb3AgZXZlbnQgYW5kIGNoZWNrIGlmIGRyb3Agc2hvdWxkIGJlIGNhbmNlbGVkIC0tLVxuICAgIGNvbnN0IHNob3VsZFByb2NlZWQgPSBhd2FpdCB0aGlzLmVtaXRCZWZvcmVEcm9wRXZlbnQoXG4gICAgICBvcmlnaW5hbEl0ZW0sXG4gICAgICBwcmV2aW91c1N0YXR1c0tleSxcbiAgICAgIGN1cnJlbnRTdGF0dXNLZXksXG4gICAgICBwcmV2aW91c0luZGV4LFxuICAgICAgY3VycmVudEluZGV4LFxuICAgICAgbmF0aXZlRXZlbnQsXG4gICAgKTtcbiAgICBpZiAoIXNob3VsZFByb2NlZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyAtLS0gMi4gVXNlIHRoZSBgaXRlbXNgIGNvbXB1dGVkIHByb3BlcnR5IGFzIHRoZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIHRoZSBvcGVyYXRpb24gLS0tXG4gICAgLy8gVGhpcyBpcyB0aGUgQ1JVQ0lBTCBGSVguIFdlIG9wZXJhdGUgb24gdGhlIGRhdGEgYXMgaXQgd2FzIHJlbmRlcmVkLlxuICAgIGNvbnN0IGN1cnJlbnRJdGVtc1N0YXRlID0gc3RydWN0dXJlZENsb25lKHRoaXMuaXRlbXMoKSk7XG5cbiAgICAvLyAtLS0gMy4gUGVyZm9ybSB0aGUgbW92ZSBvcGVyYXRpb24gYmFzZWQgb24gdGhlIHNjZW5hcmlvIC0tLVxuICAgIGlmIChwcmV2aW91c1N0YXR1c0tleSA9PT0gY3VycmVudFN0YXR1c0tleSkge1xuICAgICAgLy8gLS0tIFNjZW5hcmlvIEE6IFJlb3JkZXJpbmcgd2l0aGluIHRoZSBzYW1lIGxpc3QgLS0tXG4gICAgICBjb25zdCBsaXN0ID0gY3VycmVudEl0ZW1zU3RhdGUuZmlsdGVyKChpKSA9PiBpLnN0YXR1c0tleSA9PT0gY3VycmVudFN0YXR1c0tleSk7XG5cbiAgICAgIC8vIFJlbW92ZSBmcm9tIHRoZSBvbGQgcG9zaXRpb24gYW5kIGluc2VydCBpbnRvIHRoZSBuZXcgcG9zaXRpb25cbiAgICAgIGNvbnN0IFttb3ZlZEl0ZW1dID0gbGlzdC5zcGxpY2UocHJldmlvdXNJbmRleCwgMSk7XG4gICAgICBsaXN0LnNwbGljZShjdXJyZW50SW5kZXgsIDAsIG1vdmVkSXRlbSk7XG5cbiAgICAgIC8vIFJlLWluZGV4IG9ubHkgdGhpcyBtb2RpZmllZCBsaXN0XG4gICAgICBsaXN0LmZvckVhY2goKGl0ZW0sIGlkeCkgPT4gKGl0ZW0uaW5kZXggPSBpZHgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gLS0tIFNjZW5hcmlvIEI6IE1vdmluZyB0byBhIGRpZmZlcmVudCBsaXN0IC0tLVxuICAgICAgY29uc3Qgc291cmNlTGlzdCA9IGN1cnJlbnRJdGVtc1N0YXRlLmZpbHRlcigoaSkgPT4gaS5zdGF0dXNLZXkgPT09IHByZXZpb3VzU3RhdHVzS2V5KTtcbiAgICAgIGNvbnN0IGRlc3RMaXN0ID0gY3VycmVudEl0ZW1zU3RhdGUuZmlsdGVyKChpKSA9PiBpLnN0YXR1c0tleSA9PT0gY3VycmVudFN0YXR1c0tleSk7XG5cbiAgICAgIC8vIFJlbW92ZSBmcm9tIHNvdXJjZSBsaXN0XG4gICAgICBjb25zdCBbbW92ZWRJdGVtXSA9IHNvdXJjZUxpc3Quc3BsaWNlKHByZXZpb3VzSW5kZXgsIDEpO1xuXG4gICAgICAvLyBVcGRhdGUgaXRzIHN0YXR1cyBhbmQgYWRkIHRvIGRlc3RpbmF0aW9uIGxpc3RcbiAgICAgIG1vdmVkSXRlbS5zdGF0dXNLZXkgPSBjdXJyZW50U3RhdHVzS2V5O1xuICAgICAgZGVzdExpc3Quc3BsaWNlKGN1cnJlbnRJbmRleCwgMCwgbW92ZWRJdGVtKTtcblxuICAgICAgLy8gUmUtaW5kZXggYm90aCBhZmZlY3RlZCBsaXN0c1xuICAgICAgc291cmNlTGlzdC5mb3JFYWNoKChpdGVtLCBpZHgpID0+IChpdGVtLmluZGV4ID0gaWR4KSk7XG4gICAgICBkZXN0TGlzdC5mb3JFYWNoKChpdGVtLCBpZHgpID0+IChpdGVtLmluZGV4ID0gaWR4KSk7XG4gICAgfVxuXG4gICAgLy8gLS0tIDQuIE1hcCB0aGUgY2hhbmdlcyBiYWNrIHRvIGEgbmV3IHZlcnNpb24gb2YgdGhlIG9yaWdpbmFsIGRhdGFTb3VyY2UgLS0tXG4gICAgLy8gVGhpcyBwcmVzZXJ2ZXMgYW55IGV4dHJhIHByb3BlcnRpZXMgdGhlIHVzZXIgbWlnaHQgaGF2ZSBvbiB0aGVpciBkYXRhIG9iamVjdHMuXG4gICAgY29uc3Qga2V5RmllbGQgPSB0aGlzLmtleUZpZWxkKCk7XG4gICAgY29uc3Qgc3RhdHVzS2V5RmllbGQgPSB0aGlzLnN0YXR1c0tleUZpZWxkKCk7XG4gICAgY29uc3QgaW5kZXhGaWVsZCA9IHRoaXMuaW5kZXhGaWVsZCgpO1xuXG4gICAgY29uc3QgdXBkYXRlZEl0ZW1zTWFwID0gbmV3IE1hcChjdXJyZW50SXRlbXNTdGF0ZS5tYXAoKGkpID0+IFtpLmlkLCBpXSkpO1xuICAgIGNvbnN0IGZpbmFsRGF0YVNvdXJjZSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLmRhdGFTb3VyY2UoKSk7XG5cbiAgICBmaW5hbERhdGFTb3VyY2UuZm9yRWFjaCgob3JpZ2luYWxJdGVtKSA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVkSXRlbSA9IHVwZGF0ZWRJdGVtc01hcC5nZXQob3JpZ2luYWxJdGVtW2tleUZpZWxkXSk7XG4gICAgICBpZiAodXBkYXRlZEl0ZW0pIHtcbiAgICAgICAgb3JpZ2luYWxJdGVtW2luZGV4RmllbGRdID0gdXBkYXRlZEl0ZW0uaW5kZXg7XG4gICAgICAgIG9yaWdpbmFsSXRlbVtzdGF0dXNLZXlGaWVsZF0gPSB1cGRhdGVkSXRlbS5zdGF0dXNLZXk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBtb3ZlZEl0ZW1JZCA9IG9yaWdpbmFsSXRlbVtrZXlGaWVsZF07XG4gICAgY29uc3QgZmluYWxPcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSA9IGZpbmFsRGF0YVNvdXJjZS5maW5kKChpdGVtKSA9PiBpdGVtW2tleUZpZWxkXSA9PT0gbW92ZWRJdGVtSWQpO1xuXG4gICAgLy8gLS0tIDUuIEVtaXQgdGhlIGZpbmFsLCBjb21wcmVoZW5zaXZlIGV2ZW50IC0tLVxuICAgIHRoaXMub25Tb3J0Q2hhbmdlZC5lbWl0KHtcbiAgICAgIHNlbmRlcjogdGhpcyxcbiAgICAgIG5hdGl2ZUV2ZW50OiBuYXRpdmVFdmVudCxcbiAgICAgIC8vIFRoZSBvcmlnaW5hbCBkYXRhIG9iamVjdCB0aGF0IHdhcyBtb3ZlZFxuICAgICAgaXRlbTogZmluYWxPcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSxcbiAgICAgIC8vIFRoZSBjb21wbGV0ZSwgcHJlY2lzZWx5IHJlLWluZGV4ZWQgZGF0YSBzb3VyY2UsIHJlYWR5IGZvciBzdGF0ZSB1cGRhdGVcbiAgICAgIGFsbEl0ZW1zOiBmaW5hbERhdGFTb3VyY2UsXG4gICAgICBjdXJyZW50SW5kZXgsXG4gICAgICBwcmV2aW91c0luZGV4LFxuICAgICAgY3VycmVudFN0YXR1c0tleSxcbiAgICAgIHByZXZpb3VzU3RhdHVzS2V5LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogRW1pdCBiZWZvcmVEcm9wIGV2ZW50IGFuZCByZXR1cm4gd2hldGhlciB0byBjb250aW51ZSB3aXRoIHRoZSBkcm9wIG9wZXJhdGlvbi5cbiAgICogU3VwcG9ydHMgYm90aCBzeW5jaHJvbm91cyBhbmQgYXN5bmNocm9ub3VzIGV2ZW50IGhhbmRsZXJzIHZpYSB0aGUgYHdhaXQoKWAgbWV0aG9kLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgb3JpZ2luYWwgaXRlbSBmcm9tIGRhdGFTb3VyY2UgdGhhdCBpcyBiZWluZyBtb3ZlZFxuICAgKiBAcGFyYW0gcHJldmlvdXNTdGF0dXNLZXkgVGhlIHN0YXR1cyBrZXkgdGhlIGl0ZW0gaXMgbW92aW5nIGZyb21cbiAgICogQHBhcmFtIGN1cnJlbnRTdGF0dXNLZXkgVGhlIHN0YXR1cyBrZXkgdGhlIGl0ZW0gaXMgbW92aW5nIHRvXG4gICAqIEBwYXJhbSBwcmV2aW91c0luZGV4IFRoZSBpbmRleCB0aGUgaXRlbSBpcyBtb3ZpbmcgZnJvbVxuICAgKiBAcGFyYW0gY3VycmVudEluZGV4IFRoZSBpbmRleCB0aGUgaXRlbSBpcyBtb3ZpbmcgdG9cbiAgICogQHBhcmFtIG5hdGl2ZUV2ZW50IFRoZSBuYXRpdmUgbW91c2UgZXZlbnQgKG51bGwgZm9yIHByb2dyYW1tYXRpYyBtb3ZlcylcbiAgICogQHJldHVybnMgUHJvbWlzZTxib29sZWFuPiAtIHRydWUgaWYgdGhlIGRyb3Agc2hvdWxkIHByb2NlZWQsIGZhbHNlIGlmIGl0IHNob3VsZCBiZSBjYW5jZWxlZFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBlbWl0QmVmb3JlRHJvcEV2ZW50KFxuICAgIGl0ZW06IGFueSxcbiAgICBwcmV2aW91c1N0YXR1c0tleTogYW55LFxuICAgIGN1cnJlbnRTdGF0dXNLZXk6IGFueSxcbiAgICBwcmV2aW91c0luZGV4OiBudW1iZXIsXG4gICAgY3VycmVudEluZGV4OiBudW1iZXIsXG4gICAgbmF0aXZlRXZlbnQ6IE1vdXNlRXZlbnQgfCBudWxsLFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBDb2xsZWN0IHByb21pc2VzIHJlZ2lzdGVyZWQgdmlhIHdhaXQoKVxuICAgIGNvbnN0IHdhaXRQcm9taXNlczogUHJvbWlzZTx2b2lkPltdID0gW107XG5cbiAgICBjb25zdCBiZWZvcmVEcm9wRXZlbnQ6IEFYS2FuYmFuQmVmb3JlRHJvcEV2ZW50ID0ge1xuICAgICAgc2VuZGVyOiB0aGlzLFxuICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICBpdGVtLFxuICAgICAgcHJldmlvdXNTdGF0dXNLZXksXG4gICAgICBjdXJyZW50U3RhdHVzS2V5LFxuICAgICAgcHJldmlvdXNJbmRleCxcbiAgICAgIGN1cnJlbnRJbmRleCxcbiAgICAgIGNhbmNlbGVkOiBmYWxzZSxcbiAgICAgIHdhaXQ6IChwcm9taXNlOiBQcm9taXNlPHZvaWQ+KSA9PiB3YWl0UHJvbWlzZXMucHVzaChwcm9taXNlKSxcbiAgICB9O1xuXG4gICAgLy8gRW1pdCB0aGUgZXZlbnQgLSBoYW5kbGVycyBjYW4gY2FsbCBldmVudC53YWl0KCkgdG8gcmVnaXN0ZXIgYXN5bmMgb3BlcmF0aW9uc1xuICAgIHRoaXMub25CZWZvcmVEcm9wLmVtaXQoYmVmb3JlRHJvcEV2ZW50KTtcblxuICAgIC8vIFdhaXQgZm9yIGFsbCByZWdpc3RlcmVkIHByb21pc2VzIHRvIGNvbXBsZXRlXG4gICAgaWYgKHdhaXRQcm9taXNlcy5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbCh3YWl0UHJvbWlzZXMpO1xuICAgIH1cblxuICAgIHJldHVybiAhYmVmb3JlRHJvcEV2ZW50LmNhbmNlbGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEl0ZW1zQnlJZChrZXk6IGFueSk6IEFYS2FuYmFuSXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcygpLmZpbHRlcigoZSkgPT4gZS5zdGF0dXNLZXkgPT09IGtleSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0T3JpZ2luYWxJdGVtc0J5SWQoa2V5OiBhbnkpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZSgpLmZpbHRlcigoZSkgPT4gZVt0aGlzLnN0YXR1c0tleUZpZWxkKCldID09PSBrZXkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN0cmluZ2lmeSh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUFjdGlvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBBWEthbmJhbkl0ZW0pIHtcbiAgICBjb25zdCBvcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpLmZpbmQoXG4gICAgICAob3JpZ2luYWxJdGVtKSA9PiBvcmlnaW5hbEl0ZW1bdGhpcy5rZXlGaWVsZCgpXSA9PT0gaXRlbS5pZCxcbiAgICApO1xuICAgIHRoaXMub25BY3Rpb25DbGljay5lbWl0KHsgaXRlbTogb3JpZ2luYWxJdGVtRnJvbURhdGFTb3VyY2UsIG5hdGl2ZUV2ZW50OiBldmVudCwgc2VuZGVyOiB0aGlzIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBBWEthbmJhbkl0ZW0pIHtcbiAgICBjb25zdCBvcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpLmZpbmQoXG4gICAgICAob3JpZ2luYWxJdGVtKSA9PiBvcmlnaW5hbEl0ZW1bdGhpcy5rZXlGaWVsZCgpXSA9PT0gaXRlbS5pZCxcbiAgICApO1xuICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdCh7IGl0ZW06IG9yaWdpbmFsSXRlbUZyb21EYXRhU291cmNlLCBuYXRpdmVFdmVudDogZXZlbnQsIHNlbmRlcjogdGhpcyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEYmxDbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbTogQVhLYW5iYW5JdGVtKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxJdGVtRnJvbURhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UoKS5maW5kKFxuICAgICAgKG9yaWdpbmFsSXRlbSkgPT4gb3JpZ2luYWxJdGVtW3RoaXMua2V5RmllbGQoKV0gPT09IGl0ZW0uaWQsXG4gICAgKTtcbiAgICB0aGlzLm9uSXRlbURibENsaWNrLmVtaXQoeyBpdGVtOiBvcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSwgbmF0aXZlRXZlbnQ6IGV2ZW50LCBzZW5kZXI6IHRoaXMgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUmlnaHRDbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbTogQVhLYW5iYW5JdGVtKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxJdGVtRnJvbURhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UoKS5maW5kKFxuICAgICAgKG9yaWdpbmFsSXRlbSkgPT4gb3JpZ2luYWxJdGVtW3RoaXMua2V5RmllbGQoKV0gPT09IGl0ZW0uaWQsXG4gICAgKTtcbiAgICB0aGlzLm9uSXRlbVJpZ2h0Q2xpY2suZW1pdCh7IGl0ZW06IG9yaWdpbmFsSXRlbUZyb21EYXRhU291cmNlLCBuYXRpdmVFdmVudDogZXZlbnQsIHNlbmRlcjogdGhpcyB9KTtcbiAgfVxufVxuIiwiQGZvciAoc3RhdHVzIG9mIGZpbHRlcmVkU3RhdHVzZXMoKTsgdHJhY2sgc3RhdHVzLmtleSkge1xuICA8ZGl2IGNsYXNzPVwiYXgta2FuYmFuLXN0YXR1cyB7eyBzdGF0dXMuY3NzQ2xhc3MgfX1cIj5cbiAgICA8YXgtaGVhZGVyPlxuICAgICAgQGlmIChoZWFkZXJUZW1wbGF0ZSgpKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJUZW1wbGF0ZSgpXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHN0YXR1cyB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxheC10aXRsZT57eyBzdGF0dXMudGl0bGUgfX08L2F4LXRpdGxlPlxuICAgICAgfVxuICAgIDwvYXgtaGVhZGVyPlxuICAgIDxheC1jb250ZW50IGF4RHJvcExpc3QgZHJvcExpc3RHcm91cD1cImthbmJhblwiIFtpZF09XCJzdHJpbmdpZnkoc3RhdHVzLmtleSlcIiAoZHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICAgICAgQGlmIChlbXB0eVRlbXBsYXRlKCkgJiYgZ2V0T3JpZ2luYWxJdGVtc0J5SWQoc3RhdHVzLmtleSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJlbXB0eVRlbXBsYXRlKClcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc3RhdHVzIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICB9XG4gICAgICBAaWYgKGl0ZW1UZW1wbGF0ZSgpKSB7XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgZ2V0T3JpZ2luYWxJdGVtc0J5SWQoc3RhdHVzLmtleSk7IHRyYWNrIGl0ZW1ba2V5RmllbGQoKV0pIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBheERyYWdcbiAgICAgICAgICAgIFtkcmFnRGF0YV09XCJpdGVtXCJcbiAgICAgICAgICAgIGNsYXNzPVwie3sgaXRlbS5jc3NDbGFzcyB9fVwiXG4gICAgICAgICAgICBbZHJhZ1N0YXJ0RGVsYXldPVwiZHJhZ1N0YXJ0RGVsYXkoKVwiXG4gICAgICAgICAgICBbYXhUb29sdGlwRGlzYWJsZWRdPVwidG9vbHRpcFRlbXBsYXRlKCkgPyBmYWxzZSA6IHRydWVcIlxuICAgICAgICAgICAgW2F4VG9vbHRpcF09XCJ0b29sdGlwVGVtcGxhdGUoKVwiXG4gICAgICAgICAgICBbYXhUb29sdGlwQ29udGV4dF09XCJpdGVtXCJcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgIChkYmxjbGljayk9XCJoYW5kbGVEYmxDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgIChjb250ZXh0bWVudSk9XCJoYW5kbGVSaWdodENsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVRlbXBsYXRlKClcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAZm9yIChpdGVtIG9mIGdldEl0ZW1zQnlJZChzdGF0dXMua2V5KTsgdHJhY2sgaXRlbS5pZCkge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGF4RHJhZ1xuICAgICAgICAgICAgW2RyYWdEYXRhXT1cIml0ZW1cIlxuICAgICAgICAgICAgW2RyYWdDdXJzb3JdPVwiJ2dyYWInXCJcbiAgICAgICAgICAgIFtkcmFnU3RhcnREZWxheV09XCJkcmFnU3RhcnREZWxheSgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYXgta2FuYmFuLWl0ZW0gIHt7IGl0ZW0uY3NzQ2xhc3MgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiYGF4LWthbmJhbi0ke2l0ZW0ucHJpb3JpdHkgPz8gJ3ByaW1hcnknfS1wZXJpb3JpdHlgXCJcbiAgICAgICAgICAgIFtheFRvb2x0aXBEaXNhYmxlZF09XCJ0b29sdGlwVGVtcGxhdGUoKSA/IGZhbHNlIDogdHJ1ZVwiXG4gICAgICAgICAgICBbYXhUb29sdGlwXT1cInRvb2x0aXBUZW1wbGF0ZSgpXCJcbiAgICAgICAgICAgIFtheFRvb2x0aXBDb250ZXh0XT1cIml0ZW1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgKGRibGNsaWNrKT1cImhhbmRsZURibENsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgKGNvbnRleHRtZW51KT1cImhhbmRsZVJpZ2h0Q2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGF4LWhlYWRpbmc+XG4gICAgICAgICAgICAgIDxheC10aXRsZT5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWthbmJhbi10cnVuY2F0ZVwiPnt7IGl0ZW0udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgQGlmIChoYXNBY3Rpb25zKCkpIHtcbiAgICAgICAgICAgICAgICAgIDxheC1pY29uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLW1vcmUtaG9yaXpvbnRhbCBheC1rYW5iYW4tYWN0aW9uLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQWN0aW9uQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L2F4LWljb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2F4LXRpdGxlPlxuICAgICAgICAgICAgICA8YXgtc3VidGl0bGU+e3sgaXRlbS5kZXNjcmlwdGlvbiB9fTwvYXgtc3VidGl0bGU+XG4gICAgICAgICAgICA8L2F4LWhlYWRpbmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpZiAoY29udGVudEZvb3RlclRlbXBsYXRlKCkpIHtcbiAgICAgICAgPGF4LWZvb3Rlcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50Rm9vdGVyVGVtcGxhdGUoKVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHN0YXR1cyB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvYXgtZm9vdGVyPlxuICAgICAgfVxuICAgIDwvYXgtY29udGVudD5cbiAgICBAaWYgKGZvb3RlclRlbXBsYXRlKCkpIHtcbiAgICAgIDxheC1mb290ZXI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJUZW1wbGF0ZSgpXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHN0YXR1cyB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9heC1mb290ZXI+XG4gICAgfVxuICA8L2Rpdj5cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMta2FuYmFuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9rYW5iYW4vc3JjL2Fjb3JleC1jb21wb25lbnRzLWthbmJhbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
import { NXComponent, AXComponent } from '@acorex/cdk/common';
|
|
2
|
-
import * as i1 from '@acorex/components/decorators';
|
|
3
|
-
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
4
2
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { input, signal,
|
|
3
|
+
import { input, signal, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
|
|
6
4
|
|
|
7
5
|
class AXKBDItemComponent extends NXComponent {
|
|
8
6
|
constructor() {
|
|
9
7
|
super(...arguments);
|
|
10
8
|
this.keys = input(...(ngDevMode ? [undefined, { debugName: "keys" }] : []));
|
|
11
9
|
this.modifierKeys = signal(['ctrl', 'shift', 'alt', 'meta', 'esc', 'del', 'delete', 'win'], ...(ngDevMode ? [{ debugName: "modifierKeys" }] : []));
|
|
12
|
-
this.join = input('joined', ...(ngDevMode ? [{ debugName: "join" }] : []));
|
|
13
|
-
this.look = model('solid', ...(ngDevMode ? [{ debugName: "look" }] : []));
|
|
14
|
-
this.lookClass = computed(() => `ax-${this.look()} ax-default`, ...(ngDevMode ? [{ debugName: "lookClass" }] : []));
|
|
15
10
|
}
|
|
16
11
|
/**
|
|
17
12
|
* Capitalizes the first letter of the provided text.
|
|
@@ -23,34 +18,21 @@ class AXKBDItemComponent extends NXComponent {
|
|
|
23
18
|
return text.charAt(0).toUpperCase() + text.slice(1);
|
|
24
19
|
}
|
|
25
20
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXKBDItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXKBDItemComponent, isStandalone: true, selector: "ax-kbd-item", inputs: { keys: { classPropertyName: "keys", publicName: "keys", isSignal: true, isRequired: false, transformFunction: null }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXKBDItemComponent, isStandalone: true, selector: "ax-kbd-item", inputs: { keys: { classPropertyName: "keys", publicName: "keys", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXKBDItemComponent }], usesInheritance: true, ngImport: i0, template: "<kbd>\n @let localKeys = keys();\n @if (typeof localKeys === 'string') {\n @if (modifierKeys().includes(localKeys.toLocaleLowerCase())) {\n {{ capitalizeFirstLetter(localKeys) }}\n } @else {\n {{ localKeys.toLocaleUpperCase() }}\n }\n } @else {\n @for (key of localKeys; track $index) {\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n {{ capitalizeFirstLetter(key) }}\n } @else {\n {{ key.toLocaleUpperCase() }}\n }\n }\n }\n</kbd>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
27
22
|
}
|
|
28
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXKBDItemComponent, decorators: [{
|
|
29
24
|
type: Component,
|
|
30
|
-
args: [{ selector: 'ax-kbd-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXKBDItemComponent }],
|
|
31
|
-
}], propDecorators: { keys: [{ type: i0.Input, args: [{ isSignal: true, alias: "keys", required: false }] }]
|
|
25
|
+
args: [{ selector: 'ax-kbd-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXKBDItemComponent }], template: "<kbd>\n @let localKeys = keys();\n @if (typeof localKeys === 'string') {\n @if (modifierKeys().includes(localKeys.toLocaleLowerCase())) {\n {{ capitalizeFirstLetter(localKeys) }}\n } @else {\n {{ localKeys.toLocaleUpperCase() }}\n }\n } @else {\n @for (key of localKeys; track $index) {\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n {{ capitalizeFirstLetter(key) }}\n } @else {\n {{ key.toLocaleUpperCase() }}\n }\n }\n }\n</kbd>\n" }]
|
|
26
|
+
}], propDecorators: { keys: [{ type: i0.Input, args: [{ isSignal: true, alias: "keys", required: false }] }] } });
|
|
32
27
|
|
|
33
28
|
class AXKBDComponent extends NXComponent {
|
|
34
|
-
constructor() {
|
|
35
|
-
super(...arguments);
|
|
36
|
-
this.kbdItem = contentChildren(AXKBDItemComponent, ...(ngDevMode ? [{ debugName: "kbdItem", descendants: true }] : [{ descendants: true }]));
|
|
37
|
-
this.look = input(null, ...(ngDevMode ? [{ debugName: "look" }] : []));
|
|
38
|
-
this.#eff = effect(() => {
|
|
39
|
-
if (!this.look())
|
|
40
|
-
return;
|
|
41
|
-
this.kbdItem().forEach((kbd) => {
|
|
42
|
-
kbd.look.set(this.look());
|
|
43
|
-
});
|
|
44
|
-
}, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
|
|
45
|
-
}
|
|
46
|
-
#eff;
|
|
47
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXKBDComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AXKBDComponent, isStandalone: true, selector: "ax-kbd", providers: [{ provide: AXComponent, useExisting: AXKBDComponent }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-kbd-item\"></ng-content>\n", styles: ["ax-kbd{display:flex;-webkit-user-select:none;user-select:none;line-height:normal;gap:var(--ax-comp-kbd-gap, 1rem)}ax-kbd ax-kbd-item{display:flex;font-weight:600;font-size:.75rem;align-items:center;gap:var(--ax-comp-kbd-item-gap, .25rem)}ax-kbd ax-kbd-item kbd{display:flex;height:1.75rem;min-width:1.75rem;align-items:center;justify-content:center;padding-inline:.375rem;color:rgba(var(--ax-sys-color-on-lightest-surface),.74);font-family:var(--ax-comp-kbd-item-font-family, var(--ax-sys-font-family));border-radius:var(--ax-comp-kbd-item-border-radius, var(--ax-sys-border-radius));background-color:rgba(var(--ax-comp-kbd-item-bg-color, var(--ax-sys-color-lightest-surface)));border:1px solid rgba(var(--ax-comp-kbd-item-border-color, var(--ax-sys-color-dark-surface)))}.ax-dark ax-kbd{color:rgba(var(--ax-sys-color-on-lighter-surface),.84);--ax-comp-kbd-item-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-kbd-item-border-color: var(--ax-sys-color-lightest-surface)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
49
31
|
}
|
|
50
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXKBDComponent, decorators: [{
|
|
51
33
|
type: Component,
|
|
52
|
-
args: [{ selector: 'ax-kbd', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXKBDComponent }], template: "<ng-content select=\"ax-kbd-item\"></ng-content>\n", styles: ["
|
|
53
|
-
}]
|
|
34
|
+
args: [{ selector: 'ax-kbd', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXKBDComponent }], template: "<ng-content select=\"ax-kbd-item\"></ng-content>\n", styles: ["ax-kbd{display:flex;-webkit-user-select:none;user-select:none;line-height:normal;gap:var(--ax-comp-kbd-gap, 1rem)}ax-kbd ax-kbd-item{display:flex;font-weight:600;font-size:.75rem;align-items:center;gap:var(--ax-comp-kbd-item-gap, .25rem)}ax-kbd ax-kbd-item kbd{display:flex;height:1.75rem;min-width:1.75rem;align-items:center;justify-content:center;padding-inline:.375rem;color:rgba(var(--ax-sys-color-on-lightest-surface),.74);font-family:var(--ax-comp-kbd-item-font-family, var(--ax-sys-font-family));border-radius:var(--ax-comp-kbd-item-border-radius, var(--ax-sys-border-radius));background-color:rgba(var(--ax-comp-kbd-item-bg-color, var(--ax-sys-color-lightest-surface)));border:1px solid rgba(var(--ax-comp-kbd-item-border-color, var(--ax-sys-color-dark-surface)))}.ax-dark ax-kbd{color:rgba(var(--ax-sys-color-on-lighter-surface),.84);--ax-comp-kbd-item-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-kbd-item-border-color: var(--ax-sys-color-lightest-surface)}\n"] }]
|
|
35
|
+
}] });
|
|
54
36
|
|
|
55
37
|
/**
|
|
56
38
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-kbd.mjs","sources":["../../../../packages/components/kbd/src/lib/kbd-item/kbd-item.component.ts","../../../../packages/components/kbd/src/lib/kbd-item/kbd-item.component.html","../../../../packages/components/kbd/src/lib/kbd.component.ts","../../../../packages/components/kbd/src/lib/kbd.component.html","../../../../packages/components/kbd/src/acorex-components-kbd.ts"],"sourcesContent":["import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { ChangeDetectionStrategy, Component, computed, input, model, signal, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-kbd-item',\n templateUrl: './kbd-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXKBDItemComponent }],\n imports: [AXDecoratorModule],\n})\nexport class AXKBDItemComponent extends NXComponent {\n keys = input<string[] | string>();\n\n modifierKeys = signal(['ctrl', 'shift', 'alt', 'meta', 'esc', 'del', 'delete', 'win']);\n\n join = input<'split' | 'joined'>('joined');\n\n look = model<'fill' | 'solid'>('solid');\n\n lookClass = computed(() => `ax-${this.look()} ax-default`);\n\n /**\n * Capitalizes the first letter of the provided text.\n *\n * @param text Input text to transform\n * @returns The text with its first character uppercased\n */\n protected capitalizeFirstLetter(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n }\n}\n","@let localKeys = keys();\n\n@if (typeof localKeys === 'string') {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(localKeys.toLocaleLowerCase())) {\n {{ capitalizeFirstLetter(localKeys) }}\n } @else {\n {{ localKeys.toLocaleUpperCase() }}\n }\n </kbd>\n} @else {\n @if (join() === 'split') {\n @for (key of localKeys; track $index) {\n <kbd [class]=\"lookClass()\">\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n {{ capitalizeFirstLetter(key) }}\n } @else {\n {{ key.toLocaleUpperCase() }}\n }\n </kbd>\n @if ($index < localKeys.length - 1) {\n <ax-icon class=\"ax-icon ax-icon-plus\"></ax-icon>\n }\n }\n } @else {\n <kbd [class]=\"lookClass()\">\n @for (key of localKeys; track $index) {\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\n {{ capitalizeFirstLetter(key) }}\n } @else {\n {{ key.toLocaleUpperCase() }}\n }\n }\n </kbd>\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, contentChildren, effect, input, ViewEncapsulation } from '@angular/core';\nimport { AXKBDItemComponent } from './kbd-item/kbd-item.component';\n\n@Component({\n selector: 'ax-kbd',\n templateUrl: './kbd.component.html',\n styleUrls: ['./kbd.component.compiled.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXKBDComponent }],\n})\nexport class AXKBDComponent extends NXComponent {\n private kbdItem = contentChildren(AXKBDItemComponent, { descendants: true });\n\n look = input<'fill' | 'solid'>(null);\n\n #eff = effect(() => {\n if (!this.look()) return;\n this.kbdItem().forEach((kbd) => {\n kbd.look.set(this.look());\n });\n });\n}\n","<ng-content select=\"ax-kbd-item\"></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-kbd.mjs","sources":["../tmp-esm2022/kbd/lib/kbd-item/kbd-item.component.js","../tmp-esm2022/kbd/lib/kbd.component.js","../tmp-esm2022/kbd/acorex-components-kbd.js"],"sourcesContent":["import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, input, signal, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXKBDItemComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.keys = input(...(ngDevMode ? [undefined, { debugName: \"keys\" }] : []));\n this.modifierKeys = signal(['ctrl', 'shift', 'alt', 'meta', 'esc', 'del', 'delete', 'win'], ...(ngDevMode ? [{ debugName: \"modifierKeys\" }] : []));\n }\n /**\n * Capitalizes the first letter of the provided text.\n *\n * @param text Input text to transform\n * @returns The text with its first character uppercased\n */\n capitalizeFirstLetter(text) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXKBDItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: AXKBDItemComponent, isStandalone: true, selector: \"ax-kbd-item\", inputs: { keys: { classPropertyName: \"keys\", publicName: \"keys\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXKBDItemComponent }], usesInheritance: true, ngImport: i0, template: \"<kbd>\\n @let localKeys = keys();\\n @if (typeof localKeys === 'string') {\\n @if (modifierKeys().includes(localKeys.toLocaleLowerCase())) {\\n {{ capitalizeFirstLetter(localKeys) }}\\n } @else {\\n {{ localKeys.toLocaleUpperCase() }}\\n }\\n } @else {\\n @for (key of localKeys; track $index) {\\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\\n {{ capitalizeFirstLetter(key) }}\\n } @else {\\n {{ key.toLocaleUpperCase() }}\\n }\\n }\\n }\\n</kbd>\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXKBDItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-kbd-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXKBDItemComponent }], template: \"<kbd>\\n @let localKeys = keys();\\n @if (typeof localKeys === 'string') {\\n @if (modifierKeys().includes(localKeys.toLocaleLowerCase())) {\\n {{ capitalizeFirstLetter(localKeys) }}\\n } @else {\\n {{ localKeys.toLocaleUpperCase() }}\\n }\\n } @else {\\n @for (key of localKeys; track $index) {\\n @if (modifierKeys().includes(key.toLocaleLowerCase())) {\\n {{ capitalizeFirstLetter(key) }}\\n } @else {\\n {{ key.toLocaleUpperCase() }}\\n }\\n }\\n }\\n</kbd>\\n\" }]\n }], propDecorators: { keys: [{ type: i0.Input, args: [{ isSignal: true, alias: \"keys\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2JkLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9rYmQvc3JjL2xpYi9rYmQtaXRlbS9rYmQtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2tiZC9zcmMvbGliL2tiZC1pdGVtL2tiZC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVNyRyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBVztJQVBuRDs7UUFRRSxTQUFJLEdBQUcsS0FBSywwREFBcUIsQ0FBQztRQUVsQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsd0RBQUMsQ0FBQztLQVd4RjtJQVRDOzs7OztPQUtHO0lBQ08scUJBQXFCLENBQUMsSUFBWTtRQUMxQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOytHQWJVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDJMQUZsQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxpRENSeEUsMGZBa0JBOzs0RkRSYSxrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0UsYUFBYSxpQkFFUixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsb0JBQW9CLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50LCBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1rYmQtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9rYmQtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhLQkRJdGVtQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWEtCREl0ZW1Db21wb25lbnQgZXh0ZW5kcyBOWENvbXBvbmVudCB7XG4gIGtleXMgPSBpbnB1dDxzdHJpbmdbXSB8IHN0cmluZz4oKTtcblxuICBtb2RpZmllcktleXMgPSBzaWduYWwoWydjdHJsJywgJ3NoaWZ0JywgJ2FsdCcsICdtZXRhJywgJ2VzYycsICdkZWwnLCAnZGVsZXRlJywgJ3dpbiddKTtcblxuICAvKipcbiAgICogQ2FwaXRhbGl6ZXMgdGhlIGZpcnN0IGxldHRlciBvZiB0aGUgcHJvdmlkZWQgdGV4dC5cbiAgICpcbiAgICogQHBhcmFtIHRleHQgSW5wdXQgdGV4dCB0byB0cmFuc2Zvcm1cbiAgICogQHJldHVybnMgVGhlIHRleHQgd2l0aCBpdHMgZmlyc3QgY2hhcmFjdGVyIHVwcGVyY2FzZWRcbiAgICovXG4gIHByb3RlY3RlZCBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodGV4dDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRleHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0ZXh0LnNsaWNlKDEpO1xuICB9XG59XG4iLCI8a2JkPlxuICBAbGV0IGxvY2FsS2V5cyA9IGtleXMoKTtcbiAgQGlmICh0eXBlb2YgbG9jYWxLZXlzID09PSAnc3RyaW5nJykge1xuICAgIEBpZiAobW9kaWZpZXJLZXlzKCkuaW5jbHVkZXMobG9jYWxLZXlzLnRvTG9jYWxlTG93ZXJDYXNlKCkpKSB7XG4gICAgICB7eyBjYXBpdGFsaXplRmlyc3RMZXR0ZXIobG9jYWxLZXlzKSB9fVxuICAgIH0gQGVsc2Uge1xuICAgICAge3sgbG9jYWxLZXlzLnRvTG9jYWxlVXBwZXJDYXNlKCkgfX1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBmb3IgKGtleSBvZiBsb2NhbEtleXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgQGlmIChtb2RpZmllcktleXMoKS5pbmNsdWRlcyhrZXkudG9Mb2NhbGVMb3dlckNhc2UoKSkpIHtcbiAgICAgICAge3sgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSkgfX1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB7eyBrZXkudG9Mb2NhbGVVcHBlckNhc2UoKSB9fVxuICAgICAgfVxuICAgIH1cbiAgfVxuPC9rYmQ+XG4iXX0=","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXKBDComponent extends NXComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXKBDComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.15\", type: AXKBDComponent, isStandalone: true, selector: \"ax-kbd\", providers: [{ provide: AXComponent, useExisting: AXKBDComponent }], usesInheritance: true, ngImport: i0, template: \"<ng-content select=\\\"ax-kbd-item\\\"></ng-content>\\n\", styles: [\"ax-kbd{display:flex;-webkit-user-select:none;user-select:none;line-height:normal;gap:var(--ax-comp-kbd-gap, 1rem)}ax-kbd ax-kbd-item{display:flex;font-weight:600;font-size:.75rem;align-items:center;gap:var(--ax-comp-kbd-item-gap, .25rem)}ax-kbd ax-kbd-item kbd{display:flex;height:1.75rem;min-width:1.75rem;align-items:center;justify-content:center;padding-inline:.375rem;color:rgba(var(--ax-sys-color-on-lightest-surface),.74);font-family:var(--ax-comp-kbd-item-font-family, var(--ax-sys-font-family));border-radius:var(--ax-comp-kbd-item-border-radius, var(--ax-sys-border-radius));background-color:rgba(var(--ax-comp-kbd-item-bg-color, var(--ax-sys-color-lightest-surface)));border:1px solid rgba(var(--ax-comp-kbd-item-border-color, var(--ax-sys-color-dark-surface)))}.ax-dark ax-kbd{color:rgba(var(--ax-sys-color-on-lighter-surface),.84);--ax-comp-kbd-item-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-kbd-item-border-color: var(--ax-sys-color-lightest-surface)}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXKBDComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-kbd', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXKBDComponent }], template: \"<ng-content select=\\\"ax-kbd-item\\\"></ng-content>\\n\", styles: [\"ax-kbd{display:flex;-webkit-user-select:none;user-select:none;line-height:normal;gap:var(--ax-comp-kbd-gap, 1rem)}ax-kbd ax-kbd-item{display:flex;font-weight:600;font-size:.75rem;align-items:center;gap:var(--ax-comp-kbd-item-gap, .25rem)}ax-kbd ax-kbd-item kbd{display:flex;height:1.75rem;min-width:1.75rem;align-items:center;justify-content:center;padding-inline:.375rem;color:rgba(var(--ax-sys-color-on-lightest-surface),.74);font-family:var(--ax-comp-kbd-item-font-family, var(--ax-sys-font-family));border-radius:var(--ax-comp-kbd-item-border-radius, var(--ax-sys-border-radius));background-color:rgba(var(--ax-comp-kbd-item-bg-color, var(--ax-sys-color-lightest-surface)));border:1px solid rgba(var(--ax-comp-kbd-item-border-color, var(--ax-sys-color-dark-surface)))}.ax-dark ax-kbd{color:rgba(var(--ax-sys-color-on-lighter-surface),.84);--ax-comp-kbd-item-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-kbd-item-border-color: var(--ax-sys-color-lightest-surface)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMva2JkL3NyYy9saWIva2JkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMva2JkL3NyYy9saWIva2JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVdEYsTUFBTSxPQUFPLGNBQWUsU0FBUSxXQUFXOytHQUFsQyxjQUFjO21HQUFkLGNBQWMscURBRmQsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxDQUFDLGlEQ1RwRSxvREFDQTs7NEZEVWEsY0FBYztrQkFSMUIsU0FBUzsrQkFDRSxRQUFRLGlCQUdILGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxnQkFBZ0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQsIE5YQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWtiZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9rYmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9rYmQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEtCRENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhLQkRDb21wb25lbnQgZXh0ZW5kcyBOWENvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgta2JkLWl0ZW1cIj48L25nLWNvbnRlbnQ+XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMta2JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9rYmQvc3JjL2Fjb3JleC1jb21wb25lbnRzLWtiZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -67,14 +67,14 @@ class AXLabelComponent extends MXBaseComponent {
|
|
|
67
67
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: AXLabelComponent, isStandalone: true, selector: "ax-label", inputs: { required: "required", for: "for" }, outputs: { requiredChange: "requiredChange" }, providers: [
|
|
68
68
|
{ provide: MXBaseComponent, useExisting: AXLabelComponent },
|
|
69
69
|
{ provide: AXComponent, useExisting: AXLabelComponent },
|
|
70
|
-
], usesInheritance: true, ngImport: i0, template: "<label (click)=\"for?.focus()\" [class.ax-cursor-pointer]=\"for\" [attr.for]=\"for?.getHostElement().id\">\n <ng-content></ng-content>\n @if (required || for?.isRequired) {\n <span class=\"ax-state-required\"> *</span>\n }\n</label>\n", styles: ["
|
|
70
|
+
], usesInheritance: true, ngImport: i0, template: "<label (click)=\"for?.focus()\" [class.ax-cursor-pointer]=\"for\" [attr.for]=\"for?.getHostElement().id\">\n <ng-content></ng-content>\n @if (required || for?.isRequired) {\n <span class=\"ax-state-required\"> *</span>\n }\n</label>\n", styles: ["ax-label{color:rgb(var(--ax-comp-label-text-color, var(--ax-sys-color-on-lightest-surface)))}ax-label label{margin-bottom:.5rem;display:block;cursor:inherit;font-size:.875rem;line-height:1.25rem;font-weight:500}ax-label label .ax-state-required{color:rgba(var(--ax-comp-label-required-text-color, var(--ax-sys-color-danger-surface)))}ax-label.ax-state-error{color:rgba(var(--ax-comp-label-error-text-color, var(--ax-sys-color-danger-surface)))!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
71
71
|
}
|
|
72
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AXLabelComponent, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
74
|
args: [{ selector: 'ax-label', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
75
75
|
{ provide: MXBaseComponent, useExisting: AXLabelComponent },
|
|
76
76
|
{ provide: AXComponent, useExisting: AXLabelComponent },
|
|
77
|
-
], template: "<label (click)=\"for?.focus()\" [class.ax-cursor-pointer]=\"for\" [attr.for]=\"for?.getHostElement().id\">\n <ng-content></ng-content>\n @if (required || for?.isRequired) {\n <span class=\"ax-state-required\"> *</span>\n }\n</label>\n", styles: ["
|
|
77
|
+
], template: "<label (click)=\"for?.focus()\" [class.ax-cursor-pointer]=\"for\" [attr.for]=\"for?.getHostElement().id\">\n <ng-content></ng-content>\n @if (required || for?.isRequired) {\n <span class=\"ax-state-required\"> *</span>\n }\n</label>\n", styles: ["ax-label{color:rgb(var(--ax-comp-label-text-color, var(--ax-sys-color-on-lightest-surface)))}ax-label label{margin-bottom:.5rem;display:block;cursor:inherit;font-size:.875rem;line-height:1.25rem;font-weight:500}ax-label label .ax-state-required{color:rgba(var(--ax-comp-label-required-text-color, var(--ax-sys-color-danger-surface)))}ax-label.ax-state-error{color:rgba(var(--ax-comp-label-error-text-color, var(--ax-sys-color-danger-surface)))!important}\n"] }]
|
|
78
78
|
}], propDecorators: { requiredChange: [{
|
|
79
79
|
type: Output
|
|
80
80
|
}], required: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-label.mjs","sources":["../../../../packages/components/label/src/lib/label.component.ts","../../../../packages/components/label/src/lib/label.component.html","../../../../packages/components/label/src/lib/label.module.ts","../../../../packages/components/label/src/acorex-components-label.ts"],"sourcesContent":["import { AXComponent, MXBaseComponent, MXValueComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n/**\n * Represents a label component that provides a way to display text labels within the application.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-label',\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: MXBaseComponent, useExisting: AXLabelComponent },\n { provide: AXComponent, useExisting: AXLabelComponent },\n ],\n})\nexport class AXLabelComponent extends MXBaseComponent {\n /**\n * Emitted when the `required` property changes.\n *\n * @event\n */\n @Output()\n requiredChange = new EventEmitter<boolean>();\n\n /**\n * @ignore\n */\n private _required?: boolean | null = null;\n\n /**\n * Determines if the field is required.\n *\n * @defaultValue false\n */\n @Input()\n public get required(): boolean {\n return this._required;\n }\n /**\n * Sets whether the field is required.\n *\n * @param v - A boolean indicating if the field is required.\n */\n public set required(v: boolean) {\n this.setOption({\n name: 'required',\n value: v,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n /**\n * @ignore\n */\n private _for: MXValueComponent;\n\n /**\n * Gets the form control or component associated with the label.\n */\n @Input()\n public get for(): MXValueComponent {\n return this._for;\n }\n /**\n * Sets the form control or component associated with the label.\n *\n * @param v The `MXValueComponent` to associate with the label.\n */\n public set for(v: MXValueComponent) {\n this.setOption({\n name: 'for',\n value: v,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n}\n","<label (click)=\"for?.focus()\" [class.ax-cursor-pointer]=\"for\" [attr.for]=\"for?.getHostElement().id\">\n <ng-content></ng-content>\n @if (required || for?.isRequired) {\n <span class=\"ax-state-required\"> *</span>\n }\n</label>\n","import { NgModule } from '@angular/core';\nimport { AXLabelComponent } from './label.component';\n\n@NgModule({\n imports: [AXLabelComponent],\n exports: [AXLabelComponent],\n})\nexport class AXLabelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-label.mjs","sources":["../tmp-esm2022/label/lib/label.component.js","../tmp-esm2022/label/lib/label.module.js","../tmp-esm2022/label/acorex-components-label.js"],"sourcesContent":["import { AXComponent, MXBaseComponent, MXValueComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Represents a label component that provides a way to display text labels within the application.\n *\n * @category Components\n */\nexport class AXLabelComponent extends MXBaseComponent {\n constructor() {\n super(...arguments);\n /**\n * Emitted when the `required` property changes.\n *\n * @event\n */\n this.requiredChange = new EventEmitter();\n /**\n * @ignore\n */\n this._required = null;\n }\n /**\n * Determines if the field is required.\n *\n * @defaultValue false\n */\n get required() {\n return this._required;\n }\n /**\n * Sets whether the field is required.\n *\n * @param v - A boolean indicating if the field is required.\n */\n set required(v) {\n this.setOption({\n name: 'required',\n value: v,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n /**\n * Gets the form control or component associated with the label.\n */\n get for() {\n return this._for;\n }\n /**\n * Sets the form control or component associated with the label.\n *\n * @param v The `MXValueComponent` to associate with the label.\n */\n set for(v) {\n this.setOption({\n name: 'for',\n value: v,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: AXLabelComponent, isStandalone: true, selector: \"ax-label\", inputs: { required: \"required\", for: \"for\" }, outputs: { requiredChange: \"requiredChange\" }, providers: [\n { provide: MXBaseComponent, useExisting: AXLabelComponent },\n { provide: AXComponent, useExisting: AXLabelComponent },\n ], usesInheritance: true, ngImport: i0, template: \"<label (click)=\\\"for?.focus()\\\" [class.ax-cursor-pointer]=\\\"for\\\" [attr.for]=\\\"for?.getHostElement().id\\\">\\n <ng-content></ng-content>\\n @if (required || for?.isRequired) {\\n <span class=\\\"ax-state-required\\\"> *</span>\\n }\\n</label>\\n\", styles: [\"ax-label{color:rgb(var(--ax-comp-label-text-color, var(--ax-sys-color-on-lightest-surface)))}ax-label label{margin-bottom:.5rem;display:block;cursor:inherit;font-size:.875rem;line-height:1.25rem;font-weight:500}ax-label label .ax-state-required{color:rgba(var(--ax-comp-label-required-text-color, var(--ax-sys-color-danger-surface)))}ax-label.ax-state-error{color:rgba(var(--ax-comp-label-error-text-color, var(--ax-sys-color-danger-surface)))!important}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXLabelComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-label', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n { provide: MXBaseComponent, useExisting: AXLabelComponent },\n { provide: AXComponent, useExisting: AXLabelComponent },\n ], template: \"<label (click)=\\\"for?.focus()\\\" [class.ax-cursor-pointer]=\\\"for\\\" [attr.for]=\\\"for?.getHostElement().id\\\">\\n <ng-content></ng-content>\\n @if (required || for?.isRequired) {\\n <span class=\\\"ax-state-required\\\"> *</span>\\n }\\n</label>\\n\", styles: [\"ax-label{color:rgb(var(--ax-comp-label-text-color, var(--ax-sys-color-on-lightest-surface)))}ax-label label{margin-bottom:.5rem;display:block;cursor:inherit;font-size:.875rem;line-height:1.25rem;font-weight:500}ax-label label .ax-state-required{color:rgba(var(--ax-comp-label-required-text-color, var(--ax-sys-color-danger-surface)))}ax-label.ax-state-error{color:rgba(var(--ax-comp-label-error-text-color, var(--ax-sys-color-danger-surface)))!important}\\n\"] }]\n }], propDecorators: { requiredChange: [{\n type: Output\n }], required: [{\n type: Input\n }], for: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9sYWJlbC9zcmMvbGliL2xhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbGFiZWwvc3JjL2xpYi9sYWJlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRW5IOzs7O0dBSUc7QUFZSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQVhyRDs7UUFZRTs7OztXQUlHO1FBRUgsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTdDOztXQUVHO1FBQ0ssY0FBUyxHQUFvQixJQUFJLENBQUM7S0FvRDNDO0lBbERDOzs7O09BSUc7SUFDSCxJQUNXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsSUFBVyxRQUFRLENBQUMsQ0FBVTtRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLENBQUM7WUFDUixhQUFhLEVBQUUsR0FBRyxFQUFFO2dCQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBT0Q7O09BRUc7SUFDSCxJQUNXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxJQUFXLEdBQUcsQ0FBQyxDQUFtQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsSUFBSSxFQUFFLEtBQUs7WUFDWCxLQUFLLEVBQUUsQ0FBQztZQUNSLGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBL0RVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLG9KQUxoQjtZQUNULEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUU7WUFDM0QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRTtTQUN4RCxpRENqQkgsdVBBTUE7OzRGRGFhLGdCQUFnQjtrQkFYNUIsU0FBUzsrQkFDRSxVQUFVLG1CQUdILHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsa0JBQWtCLEVBQUU7d0JBQzNELEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLGtCQUFrQixFQUFFO3FCQUN4RDs7c0JBUUEsTUFBTTs7c0JBYU4sS0FBSzs7c0JBMkJMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCwgTVhCYXNlQ29tcG9uZW50LCBNWFZhbHVlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbGFiZWwgY29tcG9uZW50IHRoYXQgcHJvdmlkZXMgYSB3YXkgdG8gZGlzcGxheSB0ZXh0IGxhYmVscyB3aXRoaW4gdGhlIGFwcGxpY2F0aW9uLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWxhYmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xhYmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGFiZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTVhCYXNlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhMYWJlbENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWExhYmVsQ29tcG9uZW50IH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTGFiZWxDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBgcmVxdWlyZWRgIHByb3BlcnR5IGNoYW5nZXMuXG4gICAqXG4gICAqIEBldmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHJlcXVpcmVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfcmVxdWlyZWQ/OiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuICAvKipcbiAgICogU2V0cyB3aGV0aGVyIHRoZSBmaWVsZCBpcyByZXF1aXJlZC5cbiAgICpcbiAgICogQHBhcmFtIHYgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQuXG4gICAqL1xuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAncmVxdWlyZWQnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfZm9yOiBNWFZhbHVlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmb3JtIGNvbnRyb2wgb3IgY29tcG9uZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgbGFiZWwuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGZvcigpOiBNWFZhbHVlQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZm9yO1xuICB9XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBmb3JtIGNvbnRyb2wgb3IgY29tcG9uZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgbGFiZWwuXG4gICAqXG4gICAqIEBwYXJhbSB2IFRoZSBgTVhWYWx1ZUNvbXBvbmVudGAgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGxhYmVsLlxuICAgKi9cbiAgcHVibGljIHNldCBmb3IodjogTVhWYWx1ZUNvbXBvbmVudCkge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdmb3InLFxuICAgICAgdmFsdWU6IHYsXG4gICAgICBhZnRlckNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGxhYmVsIChjbGljayk9XCJmb3I/LmZvY3VzKClcIiBbY2xhc3MuYXgtY3Vyc29yLXBvaW50ZXJdPVwiZm9yXCIgW2F0dHIuZm9yXT1cImZvcj8uZ2V0SG9zdEVsZW1lbnQoKS5pZFwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIEBpZiAocmVxdWlyZWQgfHwgZm9yPy5pc1JlcXVpcmVkKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJheC1zdGF0ZS1yZXF1aXJlZFwiPiZuYnNwOyo8L3NwYW4+XG4gIH1cbjwvbGFiZWw+XG4iXX0=","import { NgModule } from '@angular/core';\nimport { AXLabelComponent } from './label.component';\nimport * as i0 from \"@angular/core\";\nexport class AXLabelModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXLabelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: AXLabelModule, imports: [AXLabelComponent], exports: [AXLabelComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXLabelModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXLabelModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXLabelComponent],\n exports: [AXLabelComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9sYWJlbC9zcmMvbGliL2xhYmVsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU1yRCxNQUFNLE9BQU8sYUFBYTsrR0FBYixhQUFhO2dIQUFiLGFBQWEsWUFIZCxnQkFBZ0IsYUFDaEIsZ0JBQWdCO2dIQUVmLGFBQWE7OzRGQUFiLGFBQWE7a0JBSnpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9sYWJlbC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQVhMYWJlbENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtBWExhYmVsQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhMYWJlbE1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtbGFiZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2xhYmVsL3NyYy9hY29yZXgtY29tcG9uZW50cy1sYWJlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|