@acorex/components 20.3.19 → 20.3.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-components-kanban.mjs +8 -25
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +6 -1
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/kanban/index.d.ts +2 -2
- package/package.json +11 -11
- package/popup/index.d.ts +2 -0
|
@@ -248,7 +248,7 @@ class AXKanbanComponent extends NXComponent {
|
|
|
248
248
|
}
|
|
249
249
|
/**
|
|
250
250
|
* Emit beforeDrop event and return whether to continue with the drop operation.
|
|
251
|
-
* Supports both synchronous and asynchronous event handlers.
|
|
251
|
+
* Supports both synchronous and asynchronous event handlers via the `wait()` method.
|
|
252
252
|
* @param item The original item from dataSource that is being moved
|
|
253
253
|
* @param previousStatusKey The status key the item is moving from
|
|
254
254
|
* @param currentStatusKey The status key the item is moving to
|
|
@@ -268,33 +268,16 @@ class AXKanbanComponent extends NXComponent {
|
|
|
268
268
|
currentIndex,
|
|
269
269
|
canceled: false,
|
|
270
270
|
};
|
|
271
|
-
//
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
const observers = emitter.observers || emitter._observers || [];
|
|
277
|
-
observers.forEach((observer) => {
|
|
278
|
-
try {
|
|
279
|
-
const result = observer.next?.(beforeDropEvent) || observer(beforeDropEvent);
|
|
280
|
-
if (result instanceof Promise) {
|
|
281
|
-
promises.push(result);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
catch (error) {
|
|
285
|
-
console.error('Error in onBeforeDrop handler:', error);
|
|
286
|
-
}
|
|
287
|
-
});
|
|
271
|
+
// Emit the event - handlers can call event.wait() to register async operations
|
|
272
|
+
this.onBeforeDrop.emit(beforeDropEvent);
|
|
273
|
+
let isCanceled;
|
|
274
|
+
if (typeof beforeDropEvent.canceled === 'function') {
|
|
275
|
+
isCanceled = await beforeDropEvent.canceled();
|
|
288
276
|
}
|
|
289
277
|
else {
|
|
290
|
-
|
|
291
|
-
this.onBeforeDrop.emit(beforeDropEvent);
|
|
292
|
-
}
|
|
293
|
-
// Wait for all async handlers to complete
|
|
294
|
-
if (promises.length > 0) {
|
|
295
|
-
await Promise.all(promises);
|
|
278
|
+
isCanceled = (beforeDropEvent.canceled || false);
|
|
296
279
|
}
|
|
297
|
-
return !
|
|
280
|
+
return !isCanceled;
|
|
298
281
|
}
|
|
299
282
|
getItemsById(key) {
|
|
300
283
|
return this.items().filter((e) => e.statusKey === key);
|
|
@@ -1 +1 @@
|
|
|
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.\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 const beforeDropEvent = {\n sender: this,\n nativeEvent,\n item,\n previousStatusKey,\n currentStatusKey,\n previousIndex,\n currentIndex,\n canceled: false,\n };\n // Manually invoke handlers to collect and await promises from async handlers\n const outputRef = this.onBeforeDrop;\n const emitter = outputRef._emitRef?.() || outputRef.emitRef?.();\n const promises = [];\n if (emitter?.observers || emitter?._observers) {\n const observers = emitter.observers || emitter._observers || [];\n observers.forEach((observer) => {\n try {\n const result = observer.next?.(beforeDropEvent) || observer(beforeDropEvent);\n if (result instanceof Promise) {\n promises.push(result);\n }\n }\n catch (error) {\n console.error('Error in onBeforeDrop handler:', error);\n }\n });\n }\n else {\n // Fallback: emit normally\n this.onBeforeDrop.emit(beforeDropEvent);\n }\n // Wait for all async handlers to complete\n if (promises.length > 0) {\n await Promise.all(promises);\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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TSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckcsQ0FBQzsrR0EzWVUsaUJBQWlCO21HQUFqQixpQkFBaUIscXJGQ2xDOUIsbzNHQTBGQSxvdklEbEVJLE9BQU8sb0ZBQ1AsZ0JBQWdCLG9KQUNoQixlQUFlLHFVQUNmLG1CQUFtQixvTUFDbkIsMkJBQTJCLHlMQUMzQiwyQkFBMkIsZ0dBQzNCLHdCQUF3QixzRUFDeEIsa0JBQWtCOzs0RkFHVCxpQkFBaUI7a0JBaEI3QixTQUFTOytCQUNFLFdBQVcsaUJBR04saUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQix3QkFBd0I7d0JBQ3hCLGtCQUFrQjtxQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERyYWdEaXJlY3RpdmUsIEFYRHJvcExpc3REaXJlY3RpdmUsIEFYRHJvcExpc3REcm9wcGVkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtcbiAgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LFxuICBBWERlY29yYXRvckhlYWRpbmdDb21wb25lbnQsXG4gIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgb3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFYS2FuYmFuQmVmb3JlRHJvcEV2ZW50LFxuICBBWEthbmJhbkl0ZW0sXG4gIEFYS2FuYmFuTW91c2VFdmVudCxcbiAgQVhLYW5iYW5Tb3J0RXZlbnQsXG4gIEFYS2FuYmFuU3RhdHVzLFxufSBmcm9tICcuL2thbmJhbi5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWthbmJhbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9rYW5iYW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9rYW5iYW4uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBBWERyYWdEaXJlY3RpdmUsXG4gICAgQVhEcm9wTGlzdERpcmVjdGl2ZSxcbiAgICBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsXG4gICAgQVhEZWNvcmF0b3JIZWFkaW5nQ29tcG9uZW50LFxuICAgIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCxcbiAgICBBWFRvb2x0aXBEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYS2FuYmFuQ29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuICBoYXNBY3Rpb25zID0gaW5wdXQoZmFsc2UpO1xuICBkcmFnU3RhcnREZWxheSA9IGlucHV0KDApO1xuICBzdGF0dXNlcyA9IGlucHV0PEFYS2FuYmFuU3RhdHVzW10+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+IFtpLmlkLCBpXSkpO1xuICAgIGNvbnN0IGZpbmFsRGF0YVNvdXJjZSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLmRhdGFTb3VyY2UoKSk7XG5cbiAgICBmaW5hbERhdGFTb3VyY2UuZm9yRWFjaCgob3JpZ2luYWxJdGVtKSA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVkSXRlbSA9IHVwZGF0ZWRJdGVtc01hcC5nZXQob3JpZ2luYWxJdGVtW2tleUZpZWxkXSk7XG4gICAgICBpZiAodXBkYXRlZEl0ZW0pIHtcbiAgICAgICAgb3JpZ2luYWxJdGVtW2luZGV4RmllbGRdID0gdXBkYXRlZEl0ZW0uaW5kZXg7XG4gICAgICAgIG9yaWdpbmFsSXRlbVtzdGF0dXNLZXlGaWVsZF0gPSB1cGRhdGVkSXRlbS5zdGF0dXNLZXk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBtb3ZlZEl0ZW1JZCA9IG9yaWdpbmFsSXRlbVtrZXlGaWVsZF07XG4gICAgY29uc3QgZmluYWxPcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSA9IGZpbmFsRGF0YVNvdXJjZS5maW5kKChpdGVtKSA9PiBpdGVtW2tleUZpZWxkXSA9PT0gbW92ZWRJdGVtSWQpO1xuXG4gICAgLy8gLS0tIDUuIEVtaXQgdGhlIGZpbmFsLCBjb21wcmVoZW5zaXZlIGV2ZW50IC0tLVxuICAgIHRoaXMub25Tb3J0Q2hhbmdlZC5lbWl0KHtcbiAgICAgIHNlbmRlcjogdGhpcyxcbiAgICAgIG5hdGl2ZUV2ZW50OiBuYXRpdmVFdmVudCxcbiAgICAgIC8vIFRoZSBvcmlnaW5hbCBkYXRhIG9iamVjdCB0aGF0IHdhcyBtb3ZlZFxuICAgICAgaXRlbTogZmluYWxPcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSxcbiAgICAgIC8vIFRoZSBjb21wbGV0ZSwgcHJlY2lzZWx5IHJlLWluZGV4ZWQgZGF0YSBzb3VyY2UsIHJlYWR5IGZvciBzdGF0ZSB1cGRhdGVcbiAgICAgIGFsbEl0ZW1zOiBmaW5hbERhdGFTb3VyY2UsXG4gICAgICBjdXJyZW50SW5kZXgsXG4gICAgICBwcmV2aW91c0luZGV4LFxuICAgICAgY3VycmVudFN0YXR1c0tleSxcbiAgICAgIHByZXZpb3VzU3RhdHVzS2V5LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogRW1pdCBiZWZvcmVEcm9wIGV2ZW50IGFuZCByZXR1cm4gd2hldGhlciB0byBjb250aW51ZSB3aXRoIHRoZSBkcm9wIG9wZXJhdGlvbi5cbiAgICogU3VwcG9ydHMgYm90aCBzeW5jaHJvbm91cyBhbmQgYXN5bmNocm9ub3VzIGV2ZW50IGhhbmRsZXJzLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgb3JpZ2luYWwgaXRlbSBmcm9tIGRhdGFTb3VyY2UgdGhhdCBpcyBiZWluZyBtb3ZlZFxuICAgKiBAcGFyYW0gcHJldmlvdXNTdGF0dXNLZXkgVGhlIHN0YXR1cyBrZXkgdGhlIGl0ZW0gaXMgbW92aW5nIGZyb21cbiAgICogQHBhcmFtIGN1cnJlbnRTdGF0dXNLZXkgVGhlIHN0YXR1cyBrZXkgdGhlIGl0ZW0gaXMgbW92aW5nIHRvXG4gICAqIEBwYXJhbSBwcmV2aW91c0luZGV4IFRoZSBpbmRleCB0aGUgaXRlbSBpcyBtb3ZpbmcgZnJvbVxuICAgKiBAcGFyYW0gY3VycmVudEluZGV4IFRoZSBpbmRleCB0aGUgaXRlbSBpcyBtb3ZpbmcgdG9cbiAgICogQHBhcmFtIG5hdGl2ZUV2ZW50IFRoZSBuYXRpdmUgbW91c2UgZXZlbnQgKG51bGwgZm9yIHByb2dyYW1tYXRpYyBtb3ZlcylcbiAgICogQHJldHVybnMgUHJvbWlzZTxib29sZWFuPiAtIHRydWUgaWYgdGhlIGRyb3Agc2hvdWxkIHByb2NlZWQsIGZhbHNlIGlmIGl0IHNob3VsZCBiZSBjYW5jZWxlZFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBlbWl0QmVmb3JlRHJvcEV2ZW50KFxuICAgIGl0ZW06IGFueSxcbiAgICBwcmV2aW91c1N0YXR1c0tleTogYW55LFxuICAgIGN1cnJlbnRTdGF0dXNLZXk6IGFueSxcbiAgICBwcmV2aW91c0luZGV4OiBudW1iZXIsXG4gICAgY3VycmVudEluZGV4OiBudW1iZXIsXG4gICAgbmF0aXZlRXZlbnQ6IE1vdXNlRXZlbnQgfCBudWxsLFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBiZWZvcmVEcm9wRXZlbnQ6IEFYS2FuYmFuQmVmb3JlRHJvcEV2ZW50ID0ge1xuICAgICAgc2VuZGVyOiB0aGlzLFxuICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICBpdGVtLFxuICAgICAgcHJldmlvdXNTdGF0dXNLZXksXG4gICAgICBjdXJyZW50U3RhdHVzS2V5LFxuICAgICAgcHJldmlvdXNJbmRleCxcbiAgICAgIGN1cnJlbnRJbmRleCxcbiAgICAgIGNhbmNlbGVkOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgLy8gTWFudWFsbHkgaW52b2tlIGhhbmRsZXJzIHRvIGNvbGxlY3QgYW5kIGF3YWl0IHByb21pc2VzIGZyb20gYXN5bmMgaGFuZGxlcnNcbiAgICBjb25zdCBvdXRwdXRSZWYgPSB0aGlzLm9uQmVmb3JlRHJvcCBhcyBhbnk7XG4gICAgY29uc3QgZW1pdHRlciA9IG91dHB1dFJlZi5fZW1pdFJlZj8uKCkgfHwgb3V0cHV0UmVmLmVtaXRSZWY/LigpO1xuICAgIGNvbnN0IHByb21pc2VzOiBQcm9taXNlPHVua25vd24+W10gPSBbXTtcblxuICAgIGlmIChlbWl0dGVyPy5vYnNlcnZlcnMgfHwgZW1pdHRlcj8uX29ic2VydmVycykge1xuICAgICAgY29uc3Qgb2JzZXJ2ZXJzID0gZW1pdHRlci5vYnNlcnZlcnMgfHwgZW1pdHRlci5fb2JzZXJ2ZXJzIHx8IFtdO1xuICAgICAgb2JzZXJ2ZXJzLmZvckVhY2goKG9ic2VydmVyOiBhbnkpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBvYnNlcnZlci5uZXh0Py4oYmVmb3JlRHJvcEV2ZW50KSB8fCBvYnNlcnZlcihiZWZvcmVEcm9wRXZlbnQpO1xuICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKHJlc3VsdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIG9uQmVmb3JlRHJvcCBoYW5kbGVyOicsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZhbGxiYWNrOiBlbWl0IG5vcm1hbGx5XG4gICAgICB0aGlzLm9uQmVmb3JlRHJvcC5lbWl0KGJlZm9yZURyb3BFdmVudCk7XG4gICAgfVxuXG4gICAgLy8gV2FpdCBmb3IgYWxsIGFzeW5jIGhhbmRsZXJzIHRvIGNvbXBsZXRlXG4gICAgaWYgKHByb21pc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gIWJlZm9yZURyb3BFdmVudC5jYW5jZWxlZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJdGVtc0J5SWQoa2V5OiBhbnkpOiBBWEthbmJhbkl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMoKS5maWx0ZXIoKGUpID0+IGUuc3RhdHVzS2V5ID09PSBrZXkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldE9yaWdpbmFsSXRlbXNCeUlkKGtleTogYW55KTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2UoKS5maWx0ZXIoKGUpID0+IGVbdGhpcy5zdGF0dXNLZXlGaWVsZCgpXSA9PT0ga2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdHJpbmdpZnkodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVBY3Rpb25DbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbTogQVhLYW5iYW5JdGVtKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxJdGVtRnJvbURhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UoKS5maW5kKFxuICAgICAgKG9yaWdpbmFsSXRlbSkgPT4gb3JpZ2luYWxJdGVtW3RoaXMua2V5RmllbGQoKV0gPT09IGl0ZW0uaWQsXG4gICAgKTtcbiAgICB0aGlzLm9uQWN0aW9uQ2xpY2suZW1pdCh7IGl0ZW06IG9yaWdpbmFsSXRlbUZyb21EYXRhU291cmNlLCBuYXRpdmVFdmVudDogZXZlbnQsIHNlbmRlcjogdGhpcyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbTogQVhLYW5iYW5JdGVtKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxJdGVtRnJvbURhdGFTb3VyY2UgPSB0aGlzLmRhdGFTb3VyY2UoKS5maW5kKFxuICAgICAgKG9yaWdpbmFsSXRlbSkgPT4gb3JpZ2luYWxJdGVtW3RoaXMua2V5RmllbGQoKV0gPT09IGl0ZW0uaWQsXG4gICAgKTtcbiAgICB0aGlzLm9uSXRlbUNsaWNrLmVtaXQoeyBpdGVtOiBvcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSwgbmF0aXZlRXZlbnQ6IGV2ZW50LCBzZW5kZXI6IHRoaXMgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlRGJsQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IEFYS2FuYmFuSXRlbSkge1xuICAgIGNvbnN0IG9yaWdpbmFsSXRlbUZyb21EYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlKCkuZmluZChcbiAgICAgIChvcmlnaW5hbEl0ZW0pID0+IG9yaWdpbmFsSXRlbVt0aGlzLmtleUZpZWxkKCldID09PSBpdGVtLmlkLFxuICAgICk7XG4gICAgdGhpcy5vbkl0ZW1EYmxDbGljay5lbWl0KHsgaXRlbTogb3JpZ2luYWxJdGVtRnJvbURhdGFTb3VyY2UsIG5hdGl2ZUV2ZW50OiBldmVudCwgc2VuZGVyOiB0aGlzIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVJpZ2h0Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IEFYS2FuYmFuSXRlbSkge1xuICAgIGNvbnN0IG9yaWdpbmFsSXRlbUZyb21EYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlKCkuZmluZChcbiAgICAgIChvcmlnaW5hbEl0ZW0pID0+IG9yaWdpbmFsSXRlbVt0aGlzLmtleUZpZWxkKCldID09PSBpdGVtLmlkLFxuICAgICk7XG4gICAgdGhpcy5vbkl0ZW1SaWdodENsaWNrLmVtaXQoeyBpdGVtOiBvcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSwgbmF0aXZlRXZlbnQ6IGV2ZW50LCBzZW5kZXI6IHRoaXMgfSk7XG4gIH1cbn1cbiIsIkBmb3IgKHN0YXR1cyBvZiBmaWx0ZXJlZFN0YXR1c2VzKCk7IHRyYWNrIHN0YXR1cy5rZXkpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWthbmJhbi1zdGF0dXMge3sgc3RhdHVzLmNzc0NsYXNzIH19XCI+XG4gICAgPGF4LWhlYWRlcj5cbiAgICAgIEBpZiAoaGVhZGVyVGVtcGxhdGUoKSkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyVGVtcGxhdGUoKVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBzdGF0dXMgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8YXgtdGl0bGU+e3sgc3RhdHVzLnRpdGxlIH19PC9heC10aXRsZT5cbiAgICAgIH1cbiAgICA8L2F4LWhlYWRlcj5cbiAgICA8YXgtY29udGVudCBheERyb3BMaXN0IGRyb3BMaXN0R3JvdXA9XCJrYW5iYW5cIiBbaWRdPVwic3RyaW5naWZ5KHN0YXR1cy5rZXkpXCIgKGRyb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICAgIEBpZiAoZW1wdHlUZW1wbGF0ZSgpICYmIGdldE9yaWdpbmFsSXRlbXNCeUlkKHN0YXR1cy5rZXkpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZW1wdHlUZW1wbGF0ZSgpXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHN0YXR1cyB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgfVxuICAgICAgQGlmIChpdGVtVGVtcGxhdGUoKSkge1xuICAgICAgICBAZm9yIChpdGVtIG9mIGdldE9yaWdpbmFsSXRlbXNCeUlkKHN0YXR1cy5rZXkpOyB0cmFjayBpdGVtW2tleUZpZWxkKCldKSB7XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgYXhEcmFnXG4gICAgICAgICAgICBbZHJhZ0RhdGFdPVwiaXRlbVwiXG4gICAgICAgICAgICBjbGFzcz1cInt7IGl0ZW0uY3NzQ2xhc3MgfX1cIlxuICAgICAgICAgICAgW2RyYWdTdGFydERlbGF5XT1cImRyYWdTdGFydERlbGF5KClcIlxuICAgICAgICAgICAgW2F4VG9vbHRpcERpc2FibGVkXT1cInRvb2x0aXBUZW1wbGF0ZSgpID8gZmFsc2UgOiB0cnVlXCJcbiAgICAgICAgICAgIFtheFRvb2x0aXBdPVwidG9vbHRpcFRlbXBsYXRlKClcIlxuICAgICAgICAgICAgW2F4VG9vbHRpcENvbnRleHRdPVwiaXRlbVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAoZGJsY2xpY2spPVwiaGFuZGxlRGJsQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAoY29udGV4dG1lbnUpPVwiaGFuZGxlUmlnaHRDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1UZW1wbGF0ZSgpXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGZvciAoaXRlbSBvZiBnZXRJdGVtc0J5SWQoc3RhdHVzLmtleSk7IHRyYWNrIGl0ZW0uaWQpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBheERyYWdcbiAgICAgICAgICAgIFtkcmFnRGF0YV09XCJpdGVtXCJcbiAgICAgICAgICAgIFtkcmFnQ3Vyc29yXT1cIidncmFiJ1wiXG4gICAgICAgICAgICBbZHJhZ1N0YXJ0RGVsYXldPVwiZHJhZ1N0YXJ0RGVsYXkoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImF4LWthbmJhbi1pdGVtICB7eyBpdGVtLmNzc0NsYXNzIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImBheC1rYW5iYW4tJHtpdGVtLnByaW9yaXR5ID8/ICdwcmltYXJ5J30tcGVyaW9yaXR5YFwiXG4gICAgICAgICAgICBbYXhUb29sdGlwRGlzYWJsZWRdPVwidG9vbHRpcFRlbXBsYXRlKCkgPyBmYWxzZSA6IHRydWVcIlxuICAgICAgICAgICAgW2F4VG9vbHRpcF09XCJ0b29sdGlwVGVtcGxhdGUoKVwiXG4gICAgICAgICAgICBbYXhUb29sdGlwQ29udGV4dF09XCJpdGVtXCJcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgIChkYmxjbGljayk9XCJoYW5kbGVEYmxDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgIChjb250ZXh0bWVudSk9XCJoYW5kbGVSaWdodENsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxheC1oZWFkaW5nPlxuICAgICAgICAgICAgICA8YXgtdGl0bGU+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1rYW5iYW4tdHJ1bmNhdGVcIj57eyBpdGVtLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIEBpZiAoaGFzQWN0aW9ucygpKSB7XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1tb3JlLWhvcml6b250YWwgYXgta2FuYmFuLWFjdGlvbi1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUFjdGlvbkNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9heC1pY29uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9heC10aXRsZT5cbiAgICAgICAgICAgICAgPGF4LXN1YnRpdGxlPnt7IGl0ZW0uZGVzY3JpcHRpb24gfX08L2F4LXN1YnRpdGxlPlxuICAgICAgICAgICAgPC9heC1oZWFkaW5nPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaWYgKGNvbnRlbnRGb290ZXJUZW1wbGF0ZSgpKSB7XG4gICAgICAgIDxheC1mb290ZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudEZvb3RlclRlbXBsYXRlKClcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBzdGF0dXMgfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2F4LWZvb3Rlcj5cbiAgICAgIH1cbiAgICA8L2F4LWNvbnRlbnQ+XG4gICAgQGlmIChmb290ZXJUZW1wbGF0ZSgpKSB7XG4gICAgICA8YXgtZm9vdGVyPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGUoKVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBzdGF0dXMgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvYXgtZm9vdGVyPlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=","/**\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
|
+
{"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 const beforeDropEvent = {\n sender: this,\n nativeEvent,\n item,\n previousStatusKey,\n currentStatusKey,\n previousIndex,\n currentIndex,\n canceled: false,\n };\n // Emit the event - handlers can call event.wait() to register async operations\n this.onBeforeDrop.emit(beforeDropEvent);\n let isCanceled;\n if (typeof beforeDropEvent.canceled === 'function') {\n isCanceled = await beforeDropEvent.canceled();\n }\n else {\n isCanceled = (beforeDropEvent.canceled || false);\n }\n return !isCanceled;\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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Q0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxLQUFpQixFQUFFLElBQWtCO1FBQzlELE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FDdkQsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUM1RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSwwQkFBMEIsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7K0dBMVhVLGlCQUFpQjttR0FBakIsaUJBQWlCLHFyRkNsQzlCLG8zR0EwRkEsb3ZJRGxFSSxPQUFPLG9GQUNQLGdCQUFnQixvSkFDaEIsZUFBZSxxVUFDZixtQkFBbUIsb01BQ25CLDJCQUEyQix5TEFDM0IsMkJBQTJCLGdHQUMzQix3QkFBd0Isc0VBQ3hCLGtCQUFrQjs7NEZBR1QsaUJBQWlCO2tCQWhCN0IsU0FBUzsrQkFDRSxXQUFXLGlCQUdOLGlCQUFpQixDQUFDLElBQUksV0FDNUI7d0JBQ1AsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQiwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0Isd0JBQXdCO3dCQUN4QixrQkFBa0I7cUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTlhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEcmFnRGlyZWN0aXZlLCBBWERyb3BMaXN0RGlyZWN0aXZlLCBBWERyb3BMaXN0RHJvcHBlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCxcbiAgQVhEZWNvcmF0b3JIZWFkaW5nQ29tcG9uZW50LFxuICBBWERlY29yYXRvckljb25Db21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQsIG91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWEthbmJhbkJlZm9yZURyb3BFdmVudCxcbiAgQVhLYW5iYW5JdGVtLFxuICBBWEthbmJhbk1vdXNlRXZlbnQsXG4gIEFYS2FuYmFuU29ydEV2ZW50LFxuICBBWEthbmJhblN0YXR1cyxcbn0gZnJvbSAnLi9rYW5iYW4uY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1rYW5iYW4nLFxuICB0ZW1wbGF0ZVVybDogJy4va2FuYmFuLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4va2FuYmFuLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgQVhEcmFnRGlyZWN0aXZlLFxuICAgIEFYRHJvcExpc3REaXJlY3RpdmUsXG4gICAgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LFxuICAgIEFYRGVjb3JhdG9ySGVhZGluZ0NvbXBvbmVudCxcbiAgICBBWERlY29yYXRvckljb25Db21wb25lbnQsXG4gICAgQVhUb29sdGlwRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWEthbmJhbkNvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IHtcbiAgaGFzQWN0aW9ucyA9IGlucHV0KGZhbHNlKTtcbiAgZHJhZ1N0YXJ0RGVsYXkgPSBpbnB1dCgwKTtcbiAgc3RhdHVzZXMgPSBpbnB1dDxBWEthbmJhblN0YXR1c1tdPihbXSk7XG4gIGl0ZW1UZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPHVua25vd24+PigpO1xuICBkYXRhU291cmNlID0gaW5wdXQ8QVhLYW5iYW5JdGVtW10gfCBhbnlbXT4oKTtcblxuICBrZXlGaWVsZCA9IGlucHV0PHN0cmluZz4oJ2lkJyk7XG4gIGluZGV4RmllbGQgPSBpbnB1dDxzdHJpbmc+KCdpbmRleCcpO1xuICB0aXRsZUZpZWxkID0gaW5wdXQ8c3RyaW5nPigndGl0bGUnKTtcbiAgY3NzQ2xhc3NGaWVsZCA9IGlucHV0PHN0cmluZz4oJ2Nzc0NsYXNzJyk7XG4gIHByaW9yaXR5RmllbGQgPSBpbnB1dDxzdHJpbmc+KCdwcmlvcml0eScpO1xuICBzdGF0dXNLZXlGaWVsZCA9IGlucHV0PHN0cmluZz4oJ3N0YXR1c0tleScpO1xuICBkZXNjcmlwdGlvbkZpZWxkID0gaW5wdXQ8c3RyaW5nPignZGVzY3JpcHRpb24nKTtcbiAgZW1wdHlUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPHVua25vd24+PigpO1xuICBoZWFkZXJUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPHVua25vd24+PigpO1xuICBmb290ZXJUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPHVua25vd24+PigpO1xuICBjb250ZW50Rm9vdGVyVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oKTtcbiAgdG9vbHRpcFRlbXBsYXRlID0gaW5wdXQ8c3RyaW5nIHwgVGVtcGxhdGVSZWY8dW5rbm93bj4+KCk7XG5cbiAgb25CZWZvcmVEcm9wID0gb3V0cHV0PEFYS2FuYmFuQmVmb3JlRHJvcEV2ZW50PigpO1xuICBvblNvcnRDaGFuZ2VkID0gb3V0cHV0PEFYS2FuYmFuU29ydEV2ZW50PigpO1xuICBvbkl0ZW1DbGljayA9IG91dHB1dDxBWEthbmJhbk1vdXNlRXZlbnQ+KCk7XG4gIG9uQWN0aW9uQ2xpY2sgPSBvdXRwdXQ8QVhLYW5iYW5Nb3VzZUV2ZW50PigpO1xuICBvbkl0ZW1EYmxDbGljayA9IG91dHB1dDxBWEthbmJhbk1vdXNlRXZlbnQ+KCk7XG4gIG9uSXRlbVJpZ2h0Q2xpY2sgPSBvdXRwdXQ8QVhLYW5iYW5Nb3VzZUV2ZW50PigpO1xuXG4gIHByb3RlY3RlZCBpdGVtcyA9IGNvbXB1dGVkPEFYS2FuYmFuSXRlbVtdPigoKSA9PiB7XG4gICAgLy8gLi4uIHlvdXIgZXhjZWxsZW50IGdhcC1maWxsaW5nIGluZGV4IGxvZ2ljIHJlbWFpbnMgdGhlIHNhbWUgLi4uXG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpIHx8IFtdO1xuICAgIGNvbnN0IG1hcHBlZEl0ZW1zID0gZGF0YVNvdXJjZS5tYXA8QVhLYW5iYW5JdGVtPigoaXRlbTogYW55KSA9PiAoe1xuICAgICAgaWQ6IGl0ZW1bdGhpcy5rZXlGaWVsZCgpXSxcbiAgICAgIGluZGV4OiBpdGVtW3RoaXMuaW5kZXhGaWVsZCgpXSxcbiAgICAgIHRpdGxlOiBpdGVtW3RoaXMudGl0bGVGaWVsZCgpXSxcbiAgICAgIGNzc0NsYXNzOiBpdGVtW3RoaXMuY3NzQ2xhc3NGaWVsZCgpXSxcbiAgICAgIHByaW9yaXR5OiBpdGVtW3RoaXMucHJpb3JpdHlGaWVsZCgpXSxcbiAgICAgIHN0YXR1c0tleTogaXRlbVt0aGlzLnN0YXR1c0tleUZpZWxkKCldLFxuICAgICAgZGVzY3JpcHRpb246IGl0ZW1bdGhpcy5kZXNjcmlwdGlvbkZpZWxkKCldLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGl0ZW1zQnlTdGF0dXMgPSBuZXcgTWFwPGFueSwgQVhLYW5iYW5JdGVtW10+KCk7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIG1hcHBlZEl0ZW1zKSB7XG4gICAgICBpZiAoIWl0ZW1zQnlTdGF0dXMuaGFzKGl0ZW0uc3RhdHVzS2V5KSkge1xuICAgICAgICBpdGVtc0J5U3RhdHVzLnNldChpdGVtLnN0YXR1c0tleSwgW10pO1xuICAgICAgfVxuICAgICAgaXRlbXNCeVN0YXR1cy5nZXQoaXRlbS5zdGF0dXNLZXkpLnB1c2goaXRlbSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmluYWxQcm9jZXNzZWRJdGVtczogQVhLYW5iYW5JdGVtW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIGl0ZW1zQnlTdGF0dXMudmFsdWVzKCkpIHtcbiAgICAgIGNvbnN0IGNvcnJlY3RseUluZGV4ZWRJdGVtczogQVhLYW5iYW5JdGVtW10gPSBbXTtcbiAgICAgIGNvbnN0IGl0ZW1zVG9CZUluZGV4ZWQ6IEFYS2FuYmFuSXRlbVtdID0gW107XG4gICAgICBjb25zdCB0YWtlbkluZGljZXMgPSBuZXcgU2V0PG51bWJlcj4oKTtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBncm91cCkge1xuICAgICAgICBjb25zdCBoYXNWYWxpZEluZGV4ID0gaXRlbS5pbmRleCAhPSBudWxsICYmIHR5cGVvZiBpdGVtLmluZGV4ID09PSAnbnVtYmVyJyAmJiAhdGFrZW5JbmRpY2VzLmhhcyhpdGVtLmluZGV4KTtcbiAgICAgICAgaWYgKGhhc1ZhbGlkSW5kZXgpIHtcbiAgICAgICAgICB0YWtlbkluZGljZXMuYWRkKGl0ZW0uaW5kZXgpO1xuICAgICAgICAgIGNvcnJlY3RseUluZGV4ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1zVG9CZUluZGV4ZWQucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IGN1cnJlbnRJbmRleCA9IDA7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXNUb0JlSW5kZXhlZCkge1xuICAgICAgICB3aGlsZSAodGFrZW5JbmRpY2VzLmhhcyhjdXJyZW50SW5kZXgpKSB7XG4gICAgICAgICAgY3VycmVudEluZGV4Kys7XG4gICAgICAgIH1cbiAgICAgICAgaXRlbS5pbmRleCA9IGN1cnJlbnRJbmRleDtcbiAgICAgICAgY3VycmVudEluZGV4Kys7XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9jZXNzZWRHcm91cCA9IFsuLi5jb3JyZWN0bHlJbmRleGVkSXRlbXMsIC4uLml0ZW1zVG9CZUluZGV4ZWRdO1xuICAgICAgcHJvY2Vzc2VkR3JvdXAuc29ydCgoYSwgYikgPT4gYS5pbmRleCAtIGIuaW5kZXgpO1xuICAgICAgZmluYWxQcm9jZXNzZWRJdGVtcy5wdXNoKC4uLnByb2Nlc3NlZEdyb3VwKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbmFsUHJvY2Vzc2VkSXRlbXM7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBmaWx0ZXJlZFN0YXR1c2VzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGF0dXNlcygpLnNvcnQoKGEsIGIpID0+IGEuaW5kZXggLSBiLmluZGV4KSk7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgYSBkcm9wIG9wZXJhdGlvbiB0byByZW9yZGVyIGl0ZW1zIG9yIG1vdmUgdGhlbSBiZXR3ZWVuIHN0YXR1c2VzLlxuICAgKiBJdCB1c2VzIHRoZSBjb21wb25lbnQncyBjdXJyZW50IHJlbmRlcmVkIHN0YXRlIChgdGhpcy5pdGVtc2ApIGFzIHRoZSBzb3VyY2VcbiAgICogb2YgdHJ1dGgsIHBlcmZvcm1zIHByZWNpc2UgcmUtaW5kZXhpbmcsIGFuZCBlbWl0cyBhIGNvbXByZWhlbnNpdmUgZXZlbnQgd2l0aFxuICAgKiB0aGUgdXBkYXRlZCBkYXRhIHNvdXJjZS5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IEFYRHJvcExpc3REcm9wcGVkRXZlbnQgLSBUaGUgZHJhZy1hbmQtZHJvcCBldmVudCBpbmNsdWRpbmcgaW5kaWNlcyBhbmQgY29udGFpbmVyIGluZm9ybWF0aW9uLlxuICAgKiBAcmV0dXJucyBQcm9taXNlPHZvaWQ+XG4gICAqL1xuICBhc3luYyBkcm9wKGV2ZW50OiBBWERyb3BMaXN0RHJvcHBlZEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBpdGVtOiBkcm9wcGVkSXRlbURpcmVjdGl2ZSwgY3VycmVudEluZGV4LCBwcmV2aW91c0luZGV4LCBjb250YWluZXIsIHByZXZpb3VzQ29udGFpbmVyIH0gPSBldmVudDtcblxuICAgIC8vIC0tLSAxLiBHZXQgaWRlbnRpZmllcnMgYW5kIHRoZSBpdGVtJ3Mgb3JpZ2luYWwgZGF0YSAtLS1cbiAgICBjb25zdCBjdXJyZW50U3RhdHVzS2V5ID0gSlNPTi5wYXJzZShjb250YWluZXIuZWxlbWVudC5pZCk7XG4gICAgY29uc3QgcHJldmlvdXNTdGF0dXNLZXkgPSBKU09OLnBhcnNlKHByZXZpb3VzQ29udGFpbmVyLmVsZW1lbnQuaWQpO1xuICAgIGNvbnN0IG1vdmVkSXRlbU9yaWdpbmFsRGF0YSA9IGRyb3BwZWRJdGVtRGlyZWN0aXZlLmRyYWdEYXRhKCkgYXMgQVhLYW5iYW5JdGVtO1xuXG4gICAgaWYgKCFtb3ZlZEl0ZW1PcmlnaW5hbERhdGEpIHtcbiAgICAgIGNvbnNvbGUud2FybignQVhLYW5iYW46IERyYWdnZWQgaXRlbSBoYXMgbm8gW2RyYWdEYXRhXS4gU29ydCBldmVudCBjYW5ub3QgYmUgZW1pdHRlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyAtLS0gMi4gR2V0IHRoZSBvcmlnaW5hbCBpdGVtIGZyb20gZGF0YVNvdXJjZSAtLS1cbiAgICBjb25zdCBvcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpLmZpbmQoXG4gICAgICAoaXRlbSkgPT4gaXRlbVt0aGlzLmtleUZpZWxkKCldID09PSBtb3ZlZEl0ZW1PcmlnaW5hbERhdGEuaWQsXG4gICAgKTtcblxuICAgIGlmICghb3JpZ2luYWxJdGVtRnJvbURhdGFTb3VyY2UpIHtcbiAgICAgIGNvbnNvbGUud2FybignQVhLYW5iYW46IEl0ZW0gbm90IGZvdW5kIGluIGRhdGFTb3VyY2UuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gLS0tIDMuIFBlcmZvcm0gdGhlIG1vdmUgb3BlcmF0aW9uIC0tLVxuICAgIGF3YWl0IHRoaXMucGVyZm9ybU1vdmUoXG4gICAgICBvcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSxcbiAgICAgIHByZXZpb3VzU3RhdHVzS2V5LFxuICAgICAgY3VycmVudFN0YXR1c0tleSxcbiAgICAgIHByZXZpb3VzSW5kZXgsXG4gICAgICBjdXJyZW50SW5kZXgsXG4gICAgICBldmVudC5uYXRpdmVFdmVudCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2dyYW1tYXRpY2FsbHkgbW92ZSBhbiBpdGVtIHRvIGEgZGlmZmVyZW50IHN0YXR1cyBvciByZW9yZGVyIHdpdGhpbiB0aGUgc2FtZSBzdGF0dXMuXG4gICAqIEBwYXJhbSBpdGVtSWQgVGhlIElEIG9mIHRoZSBpdGVtIHRvIG1vdmUgKHVzaW5nIGtleUZpZWxkKVxuICAgKiBAcGFyYW0gdGFyZ2V0U3RhdHVzS2V5IFRoZSB0YXJnZXQgc3RhdHVzIGtleSB0byBtb3ZlIHRoZSBpdGVtIHRvXG4gICAqIEBwYXJhbSB0YXJnZXRJbmRleCBPcHRpb25hbCB0YXJnZXQgaW5kZXggd2l0aGluIHRoZSB0YXJnZXQgc3RhdHVzLiBJZiBub3QgcHJvdmlkZWQsIGl0ZW0gd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZW5kLlxuICAgKiBAcmV0dXJucyBQcm9taXNlPGJvb2xlYW4+IC0gdHJ1ZSBpZiB0aGUgbW92ZSB3YXMgc3VjY2Vzc2Z1bCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBhc3luYyBtb3ZlSXRlbShpdGVtSWQ6IGFueSwgdGFyZ2V0U3RhdHVzS2V5OiBhbnksIHRhcmdldEluZGV4PzogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qga2V5RmllbGQgPSB0aGlzLmtleUZpZWxkKCk7XG4gICAgY29uc3Qgb3JpZ2luYWxJdGVtID0gdGhpcy5kYXRhU291cmNlKCkuZmluZCgoaXRlbSkgPT4gaXRlbVtrZXlGaWVsZF0gPT09IGl0ZW1JZCk7XG5cbiAgICBpZiAoIW9yaWdpbmFsSXRlbSkge1xuICAgICAgY29uc29sZS53YXJuKGBBWEthbmJhbjogSXRlbSB3aXRoIGlkIFwiJHtpdGVtSWR9XCIgbm90IGZvdW5kIGluIGRhdGFTb3VyY2UuYCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gR2V0IGN1cnJlbnQgc3RhdHVzIGZyb20gZGF0YVNvdXJjZVxuICAgIGNvbnN0IHN0YXR1c0tleUZpZWxkID0gdGhpcy5zdGF0dXNLZXlGaWVsZCgpO1xuICAgIGNvbnN0IHByZXZpb3VzU3RhdHVzS2V5ID0gb3JpZ2luYWxJdGVtW3N0YXR1c0tleUZpZWxkXTtcblxuICAgIC8vIEdldCBjdXJyZW50IGluZGV4IGZyb20gdGhlIGNvbXB1dGVkIGl0ZW1zIHN0YXRlIChtb3JlIGFjY3VyYXRlIHRoYW4gZGF0YVNvdXJjZSBmaWVsZClcbiAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMuaXRlbXMoKS5maW5kKChpKSA9PiBpLmlkID09PSBpdGVtSWQpO1xuICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBjdXJyZW50SXRlbT8uaW5kZXggPz8gMDtcblxuICAgIC8vIElmIHRhcmdldCBpbmRleCBpcyBub3QgcHJvdmlkZWQsIGFwcGVuZCB0byB0aGUgZW5kXG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRhcmdldEluZGV4O1xuICAgIGlmIChjdXJyZW50SW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgdGFyZ2V0U3RhdHVzSXRlbXMgPSB0aGlzLml0ZW1zKCkuZmlsdGVyKChpKSA9PiBpLnN0YXR1c0tleSA9PT0gdGFyZ2V0U3RhdHVzS2V5KTtcbiAgICAgIGN1cnJlbnRJbmRleCA9IHRhcmdldFN0YXR1c0l0ZW1zLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvLyBQZXJmb3JtIHRoZSBtb3ZlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucGVyZm9ybU1vdmUob3JpZ2luYWxJdGVtLCBwcmV2aW91c1N0YXR1c0tleSwgdGFyZ2V0U3RhdHVzS2V5LCBwcmV2aW91c0luZGV4LCBjdXJyZW50SW5kZXgsIG51bGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2dyYW1tYXRpY2FsbHkgcmVvcmRlciBhbiBpdGVtIHdpdGhpbiB0aGUgc2FtZSBzdGF0dXMuXG4gICAqIEBwYXJhbSBpdGVtSWQgVGhlIElEIG9mIHRoZSBpdGVtIHRvIHJlb3JkZXIgKHVzaW5nIGtleUZpZWxkKVxuICAgKiBAcGFyYW0gbmV3SW5kZXggVGhlIG5ldyBpbmRleCBwb3NpdGlvbiB3aXRoaW4gdGhlIHNhbWUgc3RhdHVzXG4gICAqIEByZXR1cm5zIFByb21pc2U8Ym9vbGVhbj4gLSB0cnVlIGlmIHRoZSByZW9yZGVyIHdhcyBzdWNjZXNzZnVsLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGFzeW5jIHJlb3JkZXJJdGVtKGl0ZW1JZDogYW55LCBuZXdJbmRleDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qga2V5RmllbGQgPSB0aGlzLmtleUZpZWxkKCk7XG4gICAgY29uc3Qgb3JpZ2luYWxJdGVtID0gdGhpcy5kYXRhU291cmNlKCkuZmluZCgoaXRlbSkgPT4gaXRlbVtrZXlGaWVsZF0gPT09IGl0ZW1JZCk7XG5cbiAgICBpZiAoIW9yaWdpbmFsSXRlbSkge1xuICAgICAgY29uc29sZS53YXJuKGBBWEthbmJhbjogSXRlbSB3aXRoIGlkIFwiJHtpdGVtSWR9XCIgbm90IGZvdW5kIGluIGRhdGFTb3VyY2UuYCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gR2V0IGN1cnJlbnQgc3RhdHVzIGZyb20gZGF0YVNvdXJjZVxuICAgIGNvbnN0IHN0YXR1c0tleUZpZWxkID0gdGhpcy5zdGF0dXNLZXlGaWVsZCgpO1xuICAgIGNvbnN0IHN0YXR1c0tleSA9IG9yaWdpbmFsSXRlbVtzdGF0dXNLZXlGaWVsZF07XG5cbiAgICAvLyBHZXQgY3VycmVudCBpbmRleCBmcm9tIHRoZSBjb21wdXRlZCBpdGVtcyBzdGF0ZSAobW9yZSBhY2N1cmF0ZSB0aGFuIGRhdGFTb3VyY2UgZmllbGQpXG4gICAgY29uc3QgY3VycmVudEl0ZW0gPSB0aGlzLml0ZW1zKCkuZmluZCgoaSkgPT4gaS5pZCA9PT0gaXRlbUlkKTtcbiAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gY3VycmVudEl0ZW0/LmluZGV4ID8/IDA7XG5cbiAgICAvLyBQZXJmb3JtIHRoZSBtb3ZlIChzYW1lIHN0YXR1cywgZGlmZmVyZW50IGluZGV4KVxuICAgIHJldHVybiBhd2FpdCB0aGlzLnBlcmZvcm1Nb3ZlKG9yaWdpbmFsSXRlbSwgc3RhdHVzS2V5LCBzdGF0dXNLZXksIHByZXZpb3VzSW5kZXgsIG5ld0luZGV4LCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9ncmFtbWF0aWNhbGx5IG1vdmUgYW4gaXRlbSB0byBhIGRpZmZlcmVudCBzdGF0dXMuXG4gICAqIEBwYXJhbSBpdGVtSWQgVGhlIElEIG9mIHRoZSBpdGVtIHRvIG1vdmUgKHVzaW5nIGtleUZpZWxkKVxuICAgKiBAcGFyYW0gdGFyZ2V0U3RhdHVzS2V5IFRoZSB0YXJnZXQgc3RhdHVzIGtleSB0byBtb3ZlIHRoZSBpdGVtIHRvXG4gICAqIEBwYXJhbSB0YXJnZXRJbmRleCBPcHRpb25hbCB0YXJnZXQgaW5kZXggd2l0aGluIHRoZSB0YXJnZXQgc3RhdHVzLiBJZiBub3QgcHJvdmlkZWQsIGl0ZW0gd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZW5kLlxuICAgKiBAcmV0dXJucyBQcm9taXNlPGJvb2xlYW4+IC0gdHJ1ZSBpZiB0aGUgbW92ZSB3YXMgc3VjY2Vzc2Z1bCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBhc3luYyBtb3ZlSXRlbVRvU3RhdHVzKGl0ZW1JZDogYW55LCB0YXJnZXRTdGF0dXNLZXk6IGFueSwgdGFyZ2V0SW5kZXg/OiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5tb3ZlSXRlbShpdGVtSWQsIHRhcmdldFN0YXR1c0tleSwgdGFyZ2V0SW5kZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcmUgbWV0aG9kIHRoYXQgcGVyZm9ybXMgdGhlIG1vdmUgb3BlcmF0aW9uLCBoYW5kbGVzIHJlLWluZGV4aW5nLCBhbmQgZW1pdHMgZXZlbnRzLlxuICAgKiBUaGlzIGlzIHVzZWQgYnkgYm90aCBkcmFnLWFuZC1kcm9wIG9wZXJhdGlvbnMgYW5kIHByb2dyYW1tYXRpYyBtb3Zlcy5cbiAgICpcbiAgICogQHBhcmFtIG9yaWdpbmFsSXRlbSBUaGUgb3JpZ2luYWwgaXRlbSBmcm9tIGRhdGFTb3VyY2UgdGhhdCBpcyBiZWluZyBtb3ZlZFxuICAgKiBAcGFyYW0gcHJldmlvdXNTdGF0dXNLZXkgVGhlIHN0YXR1cyBrZXkgdGhlIGl0ZW0gaXMgbW92aW5nIGZyb21cbiAgICogQHBhcmFtIGN1cnJlbnRTdGF0dXNLZXkgVGhlIHN0YXR1cyBrZXkgdGhlIGl0ZW0gaXMgbW92aW5nIHRvXG4gICAqIEBwYXJhbSBwcmV2aW91c0luZGV4IFRoZSBpbmRleCB0aGUgaXRlbSBpcyBtb3ZpbmcgZnJvbVxuICAgKiBAcGFyYW0gY3VycmVudEluZGV4IFRoZSBpbmRleCB0aGUgaXRlbSBpcyBtb3ZpbmcgdG9cbiAgICogQHBhcmFtIG5hdGl2ZUV2ZW50IFRoZSBuYXRpdmUgbW91c2UgZXZlbnQgKG51bGwgZm9yIHByb2dyYW1tYXRpYyBtb3ZlcylcbiAgICogQHJldHVybnMgUHJvbWlzZTxib29sZWFuPiAtIHRydWUgaWYgdGhlIG1vdmUgd2FzIHN1Y2Nlc3NmdWwsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBwZXJmb3JtTW92ZShcbiAgICBvcmlnaW5hbEl0ZW06IGFueSxcbiAgICBwcmV2aW91c1N0YXR1c0tleTogYW55LFxuICAgIGN1cnJlbnRTdGF0dXNLZXk6IGFueSxcbiAgICBwcmV2aW91c0luZGV4OiBudW1iZXIsXG4gICAgY3VycmVudEluZGV4OiBudW1iZXIsXG4gICAgbmF0aXZlRXZlbnQ6IE1vdXNlRXZlbnQgfCBudWxsLFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyAtLS0gMS4gRW1pdCBiZWZvcmVEcm9wIGV2ZW50IGFuZCBjaGVjayBpZiBkcm9wIHNob3VsZCBiZSBjYW5jZWxlZCAtLS1cbiAgICBjb25zdCBzaG91bGRQcm9jZWVkID0gYXdhaXQgdGhpcy5lbWl0QmVmb3JlRHJvcEV2ZW50KFxuICAgICAgb3JpZ2luYWxJdGVtLFxuICAgICAgcHJldmlvdXNTdGF0dXNLZXksXG4gICAgICBjdXJyZW50U3RhdHVzS2V5LFxuICAgICAgcHJldmlvdXNJbmRleCxcbiAgICAgIGN1cnJlbnRJbmRleCxcbiAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICk7XG4gICAgaWYgKCFzaG91bGRQcm9jZWVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gLS0tIDIuIFVzZSB0aGUgYGl0ZW1zYCBjb21wdXRlZCBwcm9wZXJ0eSBhcyB0aGUgc291cmNlIG9mIHRydXRoIGZvciB0aGUgb3BlcmF0aW9uIC0tLVxuICAgIC8vIFRoaXMgaXMgdGhlIENSVUNJQUwgRklYLiBXZSBvcGVyYXRlIG9uIHRoZSBkYXRhIGFzIGl0IHdhcyByZW5kZXJlZC5cbiAgICBjb25zdCBjdXJyZW50SXRlbXNTdGF0ZSA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLml0ZW1zKCkpO1xuXG4gICAgLy8gLS0tIDMuIFBlcmZvcm0gdGhlIG1vdmUgb3BlcmF0aW9uIGJhc2VkIG9uIHRoZSBzY2VuYXJpbyAtLS1cbiAgICBpZiAocHJldmlvdXNTdGF0dXNLZXkgPT09IGN1cnJlbnRTdGF0dXNLZXkpIHtcbiAgICAgIC8vIC0tLSBTY2VuYXJpbyBBOiBSZW9yZGVyaW5nIHdpdGhpbiB0aGUgc2FtZSBsaXN0IC0tLVxuICAgICAgY29uc3QgbGlzdCA9IGN1cnJlbnRJdGVtc1N0YXRlLmZpbHRlcigoaSkgPT4gaS5zdGF0dXNLZXkgPT09IGN1cnJlbnRTdGF0dXNLZXkpO1xuXG4gICAgICAvLyBSZW1vdmUgZnJvbSB0aGUgb2xkIHBvc2l0aW9uIGFuZCBpbnNlcnQgaW50byB0aGUgbmV3IHBvc2l0aW9uXG4gICAgICBjb25zdCBbbW92ZWRJdGVtXSA9IGxpc3Quc3BsaWNlKHByZXZpb3VzSW5kZXgsIDEpO1xuICAgICAgbGlzdC5zcGxpY2UoY3VycmVudEluZGV4LCAwLCBtb3ZlZEl0ZW0pO1xuXG4gICAgICAvLyBSZS1pbmRleCBvbmx5IHRoaXMgbW9kaWZpZWQgbGlzdFxuICAgICAgbGlzdC5mb3JFYWNoKChpdGVtLCBpZHgpID0+IChpdGVtLmluZGV4ID0gaWR4KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIC0tLSBTY2VuYXJpbyBCOiBNb3ZpbmcgdG8gYSBkaWZmZXJlbnQgbGlzdCAtLS1cbiAgICAgIGNvbnN0IHNvdXJjZUxpc3QgPSBjdXJyZW50SXRlbXNTdGF0ZS5maWx0ZXIoKGkpID0+IGkuc3RhdHVzS2V5ID09PSBwcmV2aW91c1N0YXR1c0tleSk7XG4gICAgICBjb25zdCBkZXN0TGlzdCA9IGN1cnJlbnRJdGVtc1N0YXRlLmZpbHRlcigoaSkgPT4gaS5zdGF0dXNLZXkgPT09IGN1cnJlbnRTdGF0dXNLZXkpO1xuXG4gICAgICAvLyBSZW1vdmUgZnJvbSBzb3VyY2UgbGlzdFxuICAgICAgY29uc3QgW21vdmVkSXRlbV0gPSBzb3VyY2VMaXN0LnNwbGljZShwcmV2aW91c0luZGV4LCAxKTtcblxuICAgICAgLy8gVXBkYXRlIGl0cyBzdGF0dXMgYW5kIGFkZCB0byBkZXN0aW5hdGlvbiBsaXN0XG4gICAgICBtb3ZlZEl0ZW0uc3RhdHVzS2V5ID0gY3VycmVudFN0YXR1c0tleTtcbiAgICAgIGRlc3RMaXN0LnNwbGljZShjdXJyZW50SW5kZXgsIDAsIG1vdmVkSXRlbSk7XG5cbiAgICAgIC8vIFJlLWluZGV4IGJvdGggYWZmZWN0ZWQgbGlzdHNcbiAgICAgIHNvdXJjZUxpc3QuZm9yRWFjaCgoaXRlbSwgaWR4KSA9PiAoaXRlbS5pbmRleCA9IGlkeCkpO1xuICAgICAgZGVzdExpc3QuZm9yRWFjaCgoaXRlbSwgaWR4KSA9PiAoaXRlbS5pbmRleCA9IGlkeCkpO1xuICAgIH1cblxuICAgIC8vIC0tLSA0LiBNYXAgdGhlIGNoYW5nZXMgYmFjayB0byBhIG5ldyB2ZXJzaW9uIG9mIHRoZSBvcmlnaW5hbCBkYXRhU291cmNlIC0tLVxuICAgIC8vIFRoaXMgcHJlc2VydmVzIGFueSBleHRyYSBwcm9wZXJ0aWVzIHRoZSB1c2VyIG1pZ2h0IGhhdmUgb24gdGhlaXIgZGF0YSBvYmplY3RzLlxuICAgIGNvbnN0IGtleUZpZWxkID0gdGhpcy5rZXlGaWVsZCgpO1xuICAgIGNvbnN0IHN0YXR1c0tleUZpZWxkID0gdGhpcy5zdGF0dXNLZXlGaWVsZCgpO1xuICAgIGNvbnN0IGluZGV4RmllbGQgPSB0aGlzLmluZGV4RmllbGQoKTtcblxuICAgIGNvbnN0IHVwZGF0ZWRJdGVtc01hcCA9IG5ldyBNYXAoY3VycmVudEl0ZW1zU3RhdGUubWFwKChpKSA9PiBbaS5pZCwgaV0pKTtcbiAgICBjb25zdCBmaW5hbERhdGFTb3VyY2UgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5kYXRhU291cmNlKCkpO1xuXG4gICAgZmluYWxEYXRhU291cmNlLmZvckVhY2goKG9yaWdpbmFsSXRlbSkgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZEl0ZW0gPSB1cGRhdGVkSXRlbXNNYXAuZ2V0KG9yaWdpbmFsSXRlbVtrZXlGaWVsZF0pO1xuICAgICAgaWYgKHVwZGF0ZWRJdGVtKSB7XG4gICAgICAgIG9yaWdpbmFsSXRlbVtpbmRleEZpZWxkXSA9IHVwZGF0ZWRJdGVtLmluZGV4O1xuICAgICAgICBvcmlnaW5hbEl0ZW1bc3RhdHVzS2V5RmllbGRdID0gdXBkYXRlZEl0ZW0uc3RhdHVzS2V5O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgbW92ZWRJdGVtSWQgPSBvcmlnaW5hbEl0ZW1ba2V5RmllbGRdO1xuICAgIGNvbnN0IGZpbmFsT3JpZ2luYWxJdGVtRnJvbURhdGFTb3VyY2UgPSBmaW5hbERhdGFTb3VyY2UuZmluZCgoaXRlbSkgPT4gaXRlbVtrZXlGaWVsZF0gPT09IG1vdmVkSXRlbUlkKTtcblxuICAgIC8vIC0tLSA1LiBFbWl0IHRoZSBmaW5hbCwgY29tcHJlaGVuc2l2ZSBldmVudCAtLS1cbiAgICB0aGlzLm9uU29ydENoYW5nZWQuZW1pdCh7XG4gICAgICBzZW5kZXI6IHRoaXMsXG4gICAgICBuYXRpdmVFdmVudDogbmF0aXZlRXZlbnQsXG4gICAgICAvLyBUaGUgb3JpZ2luYWwgZGF0YSBvYmplY3QgdGhhdCB3YXMgbW92ZWRcbiAgICAgIGl0ZW06IGZpbmFsT3JpZ2luYWxJdGVtRnJvbURhdGFTb3VyY2UsXG4gICAgICAvLyBUaGUgY29tcGxldGUsIHByZWNpc2VseSByZS1pbmRleGVkIGRhdGEgc291cmNlLCByZWFkeSBmb3Igc3RhdGUgdXBkYXRlXG4gICAgICBhbGxJdGVtczogZmluYWxEYXRhU291cmNlLFxuICAgICAgY3VycmVudEluZGV4LFxuICAgICAgcHJldmlvdXNJbmRleCxcbiAgICAgIGN1cnJlbnRTdGF0dXNLZXksXG4gICAgICBwcmV2aW91c1N0YXR1c0tleSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXQgYmVmb3JlRHJvcCBldmVudCBhbmQgcmV0dXJuIHdoZXRoZXIgdG8gY29udGludWUgd2l0aCB0aGUgZHJvcCBvcGVyYXRpb24uXG4gICAqIFN1cHBvcnRzIGJvdGggc3luY2hyb25vdXMgYW5kIGFzeW5jaHJvbm91cyBldmVudCBoYW5kbGVycyB2aWEgdGhlIGB3YWl0KClgIG1ldGhvZC5cbiAgICogQHBhcmFtIGl0ZW0gVGhlIG9yaWdpbmFsIGl0ZW0gZnJvbSBkYXRhU291cmNlIHRoYXQgaXMgYmVpbmcgbW92ZWRcbiAgICogQHBhcmFtIHByZXZpb3VzU3RhdHVzS2V5IFRoZSBzdGF0dXMga2V5IHRoZSBpdGVtIGlzIG1vdmluZyBmcm9tXG4gICAqIEBwYXJhbSBjdXJyZW50U3RhdHVzS2V5IFRoZSBzdGF0dXMga2V5IHRoZSBpdGVtIGlzIG1vdmluZyB0b1xuICAgKiBAcGFyYW0gcHJldmlvdXNJbmRleCBUaGUgaW5kZXggdGhlIGl0ZW0gaXMgbW92aW5nIGZyb21cbiAgICogQHBhcmFtIGN1cnJlbnRJbmRleCBUaGUgaW5kZXggdGhlIGl0ZW0gaXMgbW92aW5nIHRvXG4gICAqIEBwYXJhbSBuYXRpdmVFdmVudCBUaGUgbmF0aXZlIG1vdXNlIGV2ZW50IChudWxsIGZvciBwcm9ncmFtbWF0aWMgbW92ZXMpXG4gICAqIEByZXR1cm5zIFByb21pc2U8Ym9vbGVhbj4gLSB0cnVlIGlmIHRoZSBkcm9wIHNob3VsZCBwcm9jZWVkLCBmYWxzZSBpZiBpdCBzaG91bGQgYmUgY2FuY2VsZWRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZW1pdEJlZm9yZURyb3BFdmVudChcbiAgICBpdGVtOiBhbnksXG4gICAgcHJldmlvdXNTdGF0dXNLZXk6IGFueSxcbiAgICBjdXJyZW50U3RhdHVzS2V5OiBhbnksXG4gICAgcHJldmlvdXNJbmRleDogbnVtYmVyLFxuICAgIGN1cnJlbnRJbmRleDogbnVtYmVyLFxuICAgIG5hdGl2ZUV2ZW50OiBNb3VzZUV2ZW50IHwgbnVsbCxcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgYmVmb3JlRHJvcEV2ZW50OiBBWEthbmJhbkJlZm9yZURyb3BFdmVudCA9IHtcbiAgICAgIHNlbmRlcjogdGhpcyxcbiAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgaXRlbSxcbiAgICAgIHByZXZpb3VzU3RhdHVzS2V5LFxuICAgICAgY3VycmVudFN0YXR1c0tleSxcbiAgICAgIHByZXZpb3VzSW5kZXgsXG4gICAgICBjdXJyZW50SW5kZXgsXG4gICAgICBjYW5jZWxlZDogZmFsc2UsXG4gICAgfTtcblxuICAgIC8vIEVtaXQgdGhlIGV2ZW50IC0gaGFuZGxlcnMgY2FuIGNhbGwgZXZlbnQud2FpdCgpIHRvIHJlZ2lzdGVyIGFzeW5jIG9wZXJhdGlvbnNcbiAgICB0aGlzLm9uQmVmb3JlRHJvcC5lbWl0KGJlZm9yZURyb3BFdmVudCk7XG5cbiAgICBsZXQgaXNDYW5jZWxlZDtcbiAgICBpZiAodHlwZW9mIGJlZm9yZURyb3BFdmVudC5jYW5jZWxlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaXNDYW5jZWxlZCA9IGF3YWl0IGJlZm9yZURyb3BFdmVudC5jYW5jZWxlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpc0NhbmNlbGVkID0gKGJlZm9yZURyb3BFdmVudC5jYW5jZWxlZCB8fCBmYWxzZSkgYXMgYm9vbGVhbjtcbiAgICB9XG5cbiAgICByZXR1cm4gIWlzQ2FuY2VsZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0SXRlbXNCeUlkKGtleTogYW55KTogQVhLYW5iYW5JdGVtW10ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zKCkuZmlsdGVyKChlKSA9PiBlLnN0YXR1c0tleSA9PT0ga2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRPcmlnaW5hbEl0ZW1zQnlJZChrZXk6IGFueSk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlKCkuZmlsdGVyKChlKSA9PiBlW3RoaXMuc3RhdHVzS2V5RmllbGQoKV0gPT09IGtleSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RyaW5naWZ5KHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQWN0aW9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IEFYS2FuYmFuSXRlbSkge1xuICAgIGNvbnN0IG9yaWdpbmFsSXRlbUZyb21EYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlKCkuZmluZChcbiAgICAgIChvcmlnaW5hbEl0ZW0pID0+IG9yaWdpbmFsSXRlbVt0aGlzLmtleUZpZWxkKCldID09PSBpdGVtLmlkLFxuICAgICk7XG4gICAgdGhpcy5vbkFjdGlvbkNsaWNrLmVtaXQoeyBpdGVtOiBvcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSwgbmF0aXZlRXZlbnQ6IGV2ZW50LCBzZW5kZXI6IHRoaXMgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IEFYS2FuYmFuSXRlbSkge1xuICAgIGNvbnN0IG9yaWdpbmFsSXRlbUZyb21EYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlKCkuZmluZChcbiAgICAgIChvcmlnaW5hbEl0ZW0pID0+IG9yaWdpbmFsSXRlbVt0aGlzLmtleUZpZWxkKCldID09PSBpdGVtLmlkLFxuICAgICk7XG4gICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KHsgaXRlbTogb3JpZ2luYWxJdGVtRnJvbURhdGFTb3VyY2UsIG5hdGl2ZUV2ZW50OiBldmVudCwgc2VuZGVyOiB0aGlzIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZURibENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBBWEthbmJhbkl0ZW0pIHtcbiAgICBjb25zdCBvcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpLmZpbmQoXG4gICAgICAob3JpZ2luYWxJdGVtKSA9PiBvcmlnaW5hbEl0ZW1bdGhpcy5rZXlGaWVsZCgpXSA9PT0gaXRlbS5pZCxcbiAgICApO1xuICAgIHRoaXMub25JdGVtRGJsQ2xpY2suZW1pdCh7IGl0ZW06IG9yaWdpbmFsSXRlbUZyb21EYXRhU291cmNlLCBuYXRpdmVFdmVudDogZXZlbnQsIHNlbmRlcjogdGhpcyB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVSaWdodENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBBWEthbmJhbkl0ZW0pIHtcbiAgICBjb25zdCBvcmlnaW5hbEl0ZW1Gcm9tRGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpLmZpbmQoXG4gICAgICAob3JpZ2luYWxJdGVtKSA9PiBvcmlnaW5hbEl0ZW1bdGhpcy5rZXlGaWVsZCgpXSA9PT0gaXRlbS5pZCxcbiAgICApO1xuICAgIHRoaXMub25JdGVtUmlnaHRDbGljay5lbWl0KHsgaXRlbTogb3JpZ2luYWxJdGVtRnJvbURhdGFTb3VyY2UsIG5hdGl2ZUV2ZW50OiBldmVudCwgc2VuZGVyOiB0aGlzIH0pO1xuICB9XG59XG4iLCJAZm9yIChzdGF0dXMgb2YgZmlsdGVyZWRTdGF0dXNlcygpOyB0cmFjayBzdGF0dXMua2V5KSB7XG4gIDxkaXYgY2xhc3M9XCJheC1rYW5iYW4tc3RhdHVzIHt7IHN0YXR1cy5jc3NDbGFzcyB9fVwiPlxuICAgIDxheC1oZWFkZXI+XG4gICAgICBAaWYgKGhlYWRlclRlbXBsYXRlKCkpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclRlbXBsYXRlKClcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc3RhdHVzIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGF4LXRpdGxlPnt7IHN0YXR1cy50aXRsZSB9fTwvYXgtdGl0bGU+XG4gICAgICB9XG4gICAgPC9heC1oZWFkZXI+XG4gICAgPGF4LWNvbnRlbnQgYXhEcm9wTGlzdCBkcm9wTGlzdEdyb3VwPVwia2FuYmFuXCIgW2lkXT1cInN0cmluZ2lmeShzdGF0dXMua2V5KVwiIChkcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG4gICAgICBAaWYgKGVtcHR5VGVtcGxhdGUoKSAmJiBnZXRPcmlnaW5hbEl0ZW1zQnlJZChzdGF0dXMua2V5KS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVtcHR5VGVtcGxhdGUoKVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBzdGF0dXMgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgIH1cbiAgICAgIEBpZiAoaXRlbVRlbXBsYXRlKCkpIHtcbiAgICAgICAgQGZvciAoaXRlbSBvZiBnZXRPcmlnaW5hbEl0ZW1zQnlJZChzdGF0dXMua2V5KTsgdHJhY2sgaXRlbVtrZXlGaWVsZCgpXSkge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGF4RHJhZ1xuICAgICAgICAgICAgW2RyYWdEYXRhXT1cIml0ZW1cIlxuICAgICAgICAgICAgY2xhc3M9XCJ7eyBpdGVtLmNzc0NsYXNzIH19XCJcbiAgICAgICAgICAgIFtkcmFnU3RhcnREZWxheV09XCJkcmFnU3RhcnREZWxheSgpXCJcbiAgICAgICAgICAgIFtheFRvb2x0aXBEaXNhYmxlZF09XCJ0b29sdGlwVGVtcGxhdGUoKSA/IGZhbHNlIDogdHJ1ZVwiXG4gICAgICAgICAgICBbYXhUb29sdGlwXT1cInRvb2x0aXBUZW1wbGF0ZSgpXCJcbiAgICAgICAgICAgIFtheFRvb2x0aXBDb250ZXh0XT1cIml0ZW1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgKGRibGNsaWNrKT1cImhhbmRsZURibENsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgKGNvbnRleHRtZW51KT1cImhhbmRsZVJpZ2h0Q2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtVGVtcGxhdGUoKVwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgZ2V0SXRlbXNCeUlkKHN0YXR1cy5rZXkpOyB0cmFjayBpdGVtLmlkKSB7XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgYXhEcmFnXG4gICAgICAgICAgICBbZHJhZ0RhdGFdPVwiaXRlbVwiXG4gICAgICAgICAgICBbZHJhZ0N1cnNvcl09XCInZ3JhYidcIlxuICAgICAgICAgICAgW2RyYWdTdGFydERlbGF5XT1cImRyYWdTdGFydERlbGF5KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJheC1rYW5iYW4taXRlbSAge3sgaXRlbS5jc3NDbGFzcyB9fVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJgYXgta2FuYmFuLSR7aXRlbS5wcmlvcml0eSA/PyAncHJpbWFyeSd9LXBlcmlvcml0eWBcIlxuICAgICAgICAgICAgW2F4VG9vbHRpcERpc2FibGVkXT1cInRvb2x0aXBUZW1wbGF0ZSgpID8gZmFsc2UgOiB0cnVlXCJcbiAgICAgICAgICAgIFtheFRvb2x0aXBdPVwidG9vbHRpcFRlbXBsYXRlKClcIlxuICAgICAgICAgICAgW2F4VG9vbHRpcENvbnRleHRdPVwiaXRlbVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAoZGJsY2xpY2spPVwiaGFuZGxlRGJsQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAoY29udGV4dG1lbnUpPVwiaGFuZGxlUmlnaHRDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXgtaGVhZGluZz5cbiAgICAgICAgICAgICAgPGF4LXRpdGxlPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgta2FuYmFuLXRydW5jYXRlXCI+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICBAaWYgKGhhc0FjdGlvbnMoKSkge1xuICAgICAgICAgICAgICAgICAgPGF4LWljb25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1pY29uIGF4LWljb24tbW9yZS1ob3Jpem9udGFsIGF4LWthbmJhbi1hY3Rpb24taWNvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVBY3Rpb25DbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvYXgtdGl0bGU+XG4gICAgICAgICAgICAgIDxheC1zdWJ0aXRsZT57eyBpdGVtLmRlc2NyaXB0aW9uIH19PC9heC1zdWJ0aXRsZT5cbiAgICAgICAgICAgIDwvYXgtaGVhZGluZz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGlmIChjb250ZW50Rm9vdGVyVGVtcGxhdGUoKSkge1xuICAgICAgICA8YXgtZm9vdGVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRGb290ZXJUZW1wbGF0ZSgpXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc3RhdHVzIH1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9heC1mb290ZXI+XG4gICAgICB9XG4gICAgPC9heC1jb250ZW50PlxuICAgIEBpZiAoZm9vdGVyVGVtcGxhdGUoKSkge1xuICAgICAgPGF4LWZvb3Rlcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclRlbXBsYXRlKClcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc3RhdHVzIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2F4LWZvb3Rlcj5cbiAgICB9XG4gIDwvZGl2PlxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMta2FuYmFuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9rYW5iYW4vc3JjL2Fjb3JleC1jb21wb25lbnRzLWthbmJhbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -81,6 +81,11 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
81
81
|
// Render component
|
|
82
82
|
const componentRef = this.componentService.createFromComponent(content);
|
|
83
83
|
this._componentRef = componentRef;
|
|
84
|
+
// Expose component instance to the popup ref
|
|
85
|
+
const popupRef = this.__popupRef__();
|
|
86
|
+
if (popupRef) {
|
|
87
|
+
popupRef.componentInstance = componentRef.instance;
|
|
88
|
+
}
|
|
84
89
|
// Get component input definitions to check before setting inputs
|
|
85
90
|
const inputDefs = componentRef.componentType?.ɵcmp
|
|
86
91
|
?.inputs;
|
|
@@ -327,7 +332,7 @@ class AXPopupService {
|
|
|
327
332
|
ref.onClose.subscribe((data) => {
|
|
328
333
|
if (resolve) {
|
|
329
334
|
resolve({
|
|
330
|
-
sender:
|
|
335
|
+
sender: ref.componentInstance,
|
|
331
336
|
data: data,
|
|
332
337
|
});
|
|
333
338
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-popup.mjs","sources":["../tmp-esm2022/popup/lib/popup.component.js","../tmp-esm2022/popup/lib/popup.interface.js","../tmp-esm2022/popup/lib/popup.service.js","../tmp-esm2022/popup/lib/popup.module.js","../tmp-esm2022/popup/acorex-components-popup.js"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport { ChangeDetectionStrategy, Component, HostListener, inject, input, NgZone, signal, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation, } from '@angular/core';\nimport { AXClosableComponent, AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXComponentService } from '@acorex/core/components';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport * as i0 from \"@angular/core\";\n/**\n * The Popup is a component which displays content in a dialog overlay\n *\n * @category Components\n */\nexport class AXPopupComponent extends MXBaseComponent {\n constructor() {\n super(...arguments);\n this._zone = inject(NgZone);\n this.loadingService = inject(AXLoadingService);\n this._platform = inject(AXPlatform);\n this.componentService = inject(AXComponentService);\n // Inputs from overlay service\n this.__content__ = input(...(ngDevMode ? [undefined, { debugName: \"__content__\" }] : []));\n this.__config__ = input(...(ngDevMode ? [undefined, { debugName: \"__config__\" }] : []));\n this.__popupRef__ = input(...(ngDevMode ? [undefined, { debugName: \"__popupRef__\" }] : []));\n this.__id__ = input(...(ngDevMode ? [undefined, { debugName: \"__id__\" }] : []));\n /**\n * Indicates whether the component is loading.\n * @defaultValue true\n */\n this.isLoading = true;\n /** @ignore */\n this._componentRef = null;\n /** Current title */\n this.title = signal('', ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n /** @ignore */\n this.isDragging = signal(false, ...(ngDevMode ? [{ debugName: \"isDragging\" }] : []));\n /** @ignore */\n this.dragOffset = signal({ x: 0, y: 0 }, ...(ngDevMode ? [{ debugName: \"dragOffset\" }] : []));\n /** @ignore */\n this.dragStartPos = { x: 0, y: 0 };\n /** @ignore */\n this.elementStartPos = { x: 0, y: 0 };\n }\n /** @ignore */\n ngOnInit() {\n super.ngOnInit();\n const config = this.__config__();\n if (this._platform.is('SM')) {\n // Disable dragging on small screens\n if (config) {\n config.draggable = false;\n }\n }\n this.title.set(config?.title ?? '');\n this._loadingId = this.loadingService.show({\n location: this.getHostElement(),\n });\n this.renderContent();\n }\n /** @ignore */\n async renderContent() {\n const content = this.__content__();\n const config = this.__config__();\n if (!content) {\n this.loadingService.hide(this._loadingId);\n return;\n }\n if (content instanceof TemplateRef) {\n // Render template using ViewContainerRef (supports context)\n this.contentContainerRef.createEmbeddedView(content, {\n $implicit: config?.data,\n ref: this,\n });\n this.handleContentRendered();\n }\n else if (typeof content === 'function') {\n // Render component\n const componentRef = this.componentService.createFromComponent(content);\n this._componentRef = componentRef;\n // Get component input definitions to check before setting inputs\n const inputDefs = componentRef.componentType?.ɵcmp\n ?.inputs;\n // Set data inputs (only if the component has the input defined)\n if (config?.data && typeof config.data === 'object') {\n Object.entries(config.data).forEach(([key, value]) => {\n componentRef.instance[key] = value;\n });\n }\n if (config?.inputs && typeof config.inputs === 'object') {\n Object.entries(config.inputs).forEach(([key, value]) => {\n if (inputDefs && key in inputDefs) {\n componentRef.setInput(key, value);\n }\n });\n }\n // Set popup reference (only if the component has this input)\n if (inputDefs && '__popup__' in inputDefs) {\n componentRef.setInput('__popup__', this.__popupRef__());\n }\n // Move component to container\n const hostElement = componentRef.location.nativeElement;\n this.contentContainerEl.nativeElement.appendChild(hostElement);\n // Subscribe to close event if available\n const instance = componentRef.instance;\n if (instance.onClosed) {\n instance.onClosed.subscribe((e) => {\n this.close(e.data);\n });\n }\n this.handleContentRendered();\n }\n }\n /** @ignore */\n handleContentRendered() {\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n const body = this.getHostElement().querySelector('.ax-popup-body-container');\n const content = body.children[0];\n if (!content || !body)\n return;\n const popHeader = this.getHostElement().querySelector('.ax-popup-header-container');\n const popFooter = this.getHostElement().querySelector('.ax-popup-footer-container');\n const footer = content.querySelector(':scope > ax-footer');\n const header = content.querySelector(':scope > ax-header');\n if (footer && popFooter) {\n popFooter.append(footer);\n }\n if (header && popHeader) {\n popHeader.innerHTML = '';\n popHeader.append(header);\n }\n this.focus();\n });\n });\n this.loadingService.hide(this._loadingId);\n this.cdr.markForCheck();\n }\n /** @ignore */\n onKeydownHandler() {\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (this.__config__()?.closeButton && focusedOrHasFocused) {\n this.close();\n }\n }\n /** @ignore */\n _handleCloseClick() {\n this.close();\n }\n /** @ignore */\n ngOnDestroy() {\n this.loadingService.hide(this._loadingId);\n if (this._componentRef) {\n this._componentRef.destroy();\n this._componentRef = null;\n }\n }\n /**\n * Sets focus on the `.ax-popup` element within the host element after a short delay.\n */\n focus() {\n setTimeout(() => this.getHostElement().querySelector('.ax-popup')?.focus());\n }\n /**\n * Closes the popup, emitting component reference, host element, and optional data.\n * @param {unknown} [data]\n */\n close(data) {\n const closeFn = () => {\n this.__popupRef__()?.close(data);\n };\n const componentInstance = this._componentRef?.instance;\n if (typeof componentInstance?.onClosing === 'function') {\n const ee = {\n cancel: false,\n data,\n };\n const closingResult = componentInstance.onClosing(ee);\n if (closingResult instanceof Promise) {\n closingResult.then(() => {\n if (!ee.cancel) {\n closeFn();\n }\n });\n }\n else {\n if (!ee.cancel) {\n closeFn();\n }\n }\n }\n else {\n closeFn();\n }\n }\n /**\n * Sets inputs on the content component.\n * @param values - Object containing input values to set\n */\n setContentInputs(values) {\n const componentRef = this._componentRef;\n if (componentRef) {\n Object.entries(values).forEach(([key, value]) => {\n componentRef.setInput(key, value);\n });\n }\n }\n /**\n * Sets the popup title.\n * @param title - The new title\n */\n setTitle(title) {\n this.title.set(title);\n this.cdr.markForCheck();\n }\n // Drag functionality\n onDragStart(event) {\n const config = this.__config__();\n if (!config?.draggable)\n return;\n this.isDragging.set(true);\n this.dragStartPos = { x: event.clientX, y: event.clientY };\n const popup = this.getHostElement().querySelector('.ax-popup');\n if (popup) {\n const rect = popup.getBoundingClientRect();\n this.elementStartPos = { x: rect.left, y: rect.top };\n }\n event.preventDefault();\n }\n onDragMove(event) {\n if (!this.isDragging())\n return;\n const deltaX = event.clientX - this.dragStartPos.x;\n const deltaY = event.clientY - this.dragStartPos.y;\n this.dragOffset.set({\n x: this.elementStartPos.x + deltaX,\n y: this.elementStartPos.y + deltaY,\n });\n }\n onDragEnd() {\n this.isDragging.set(false);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: AXPopupComponent, isStandalone: true, selector: \"ax-popup\", inputs: { __content__: { classPropertyName: \"__content__\", publicName: \"__content__\", isSignal: true, isRequired: false, transformFunction: null }, __config__: { classPropertyName: \"__config__\", publicName: \"__config__\", isSignal: true, isRequired: false, transformFunction: null }, __popupRef__: { classPropertyName: \"__popupRef__\", publicName: \"__popupRef__\", isSignal: true, isRequired: false, transformFunction: null }, __id__: { classPropertyName: \"__id__\", publicName: \"__id__\", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { \"keydown.escape\": \"onKeydownHandler()\", \"document:mousemove\": \"onDragMove($event)\", \"document:mouseup\": \"onDragEnd()\" } }, providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ], viewQueries: [{ propertyName: \"contentContainerRef\", first: true, predicate: [\"contentContainer\"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: \"contentContainerEl\", first: true, predicate: [\"contentContainer\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"ax-popup-wrapper\\\" aria-modal=\\\"true\\\">\\n <div\\n class=\\\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\\\"\\n tabindex=\\\"0\\\"\\n [class.ax-popup-dragging]=\\\"isDragging()\\\"\\n [style.position]=\\\"dragOffset().x || dragOffset().y ? 'fixed' : null\\\"\\n [style.left.px]=\\\"dragOffset().x || null\\\"\\n [style.top.px]=\\\"dragOffset().y || null\\\"\\n [style.transform]=\\\"dragOffset().x || dragOffset().y ? 'none' : null\\\"\\n >\\n <div\\n class=\\\"ax-popup-header-container\\\"\\n [class.ax-popup-draggable]=\\\"__config__()?.draggable\\\"\\n (mousedown)=\\\"onDragStart($event)\\\"\\n >\\n @if (__config__()?.header) {\\n <div class=\\\"ax-popup-header\\\">\\n <span class=\\\"ax-popup-title\\\">{{ title() | translate | async }}</span>\\n @if (__config__()?.closeButton) {\\n <ax-close-button tabindex=\\\"1\\\" (click)=\\\"_handleCloseClick()\\\"></ax-close-button>\\n }\\n </div>\\n }\\n </div>\\n <div class=\\\"ax-popup-main-container ax-loading-container\\\">\\n <div class=\\\"ax-popup-body-container\\\" #contentContainer></div>\\n <div class=\\\"ax-popup-footer-container\\\"></div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\":root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}.ax-popup-wrapper{display:contents}.ax-popup-header-container.ax-popup-draggable{cursor:move}.ax-popup.ax-popup-dragging{-webkit-user-select:none;user-select:none}.ax-popup{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));margin-left:auto;margin-right:auto;display:flex;width:auto;flex-direction:column;overflow:hidden;border-radius:var(--ax-comp-popup-border-radius);border-width:1px;border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));padding:0;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);outline:2px solid transparent;outline-offset:2px;color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{background-color:rgba(var(--ax-comp-popup-header-bg-color))}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-color:rgba(var(--ax-comp-popup-header-border-color));padding:.75rem}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:1rem;font-weight:500}@media (min-width: 768px){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:1.125rem;line-height:1.75rem}}.ax-popup ax-footer{box-shadow:0 2px 10px #0000004d;display:flex;align-items:center;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color));padding:.75rem}.ax-popup:focus{outline:2px solid transparent;outline-offset:2px}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;flex:1 1 0%;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{flex:1 1 0%;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-footer-container{background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:fit-content!important}.ax-popup.ax-fit .ax-popup-body-container{max-height:100vh}.ax-popup.ax-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}@media (min-width: 320px) and (max-width: 640px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:fit-content;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-body-container>ng-component>div{width:100%}}@media (min-width: 768px){.ax-popup.ax-popup-sm{width:55vw!important}.ax-popup.ax-popup-md{width:65vw!important}.ax-popup.ax-popup-lg{width:75vw!important}}@media (min-width: 1280px){.ax-popup.ax-popup-sm{width:30vw!important}.ax-popup.ax-popup-md{width:50vw!important}.ax-popup.ax-popup-lg{width:85vw!important}}@media (min-width: 1536px){.ax-popup.ax-popup-sm{width:25vw!important}.ax-popup.ax-popup-md{width:40vw!important}.ax-popup.ax-popup-lg{width:65vw!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}\\n\"], dependencies: [{ kind: \"component\", type: AXDecoratorCloseButtonComponent, selector: \"ax-close-button\", inputs: [\"closeAll\", \"icon\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-popup', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ], imports: [AXDecoratorCloseButtonComponent, AsyncPipe, AXTranslatorPipe], template: \"<div class=\\\"ax-popup-wrapper\\\" aria-modal=\\\"true\\\">\\n <div\\n class=\\\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\\\"\\n tabindex=\\\"0\\\"\\n [class.ax-popup-dragging]=\\\"isDragging()\\\"\\n [style.position]=\\\"dragOffset().x || dragOffset().y ? 'fixed' : null\\\"\\n [style.left.px]=\\\"dragOffset().x || null\\\"\\n [style.top.px]=\\\"dragOffset().y || null\\\"\\n [style.transform]=\\\"dragOffset().x || dragOffset().y ? 'none' : null\\\"\\n >\\n <div\\n class=\\\"ax-popup-header-container\\\"\\n [class.ax-popup-draggable]=\\\"__config__()?.draggable\\\"\\n (mousedown)=\\\"onDragStart($event)\\\"\\n >\\n @if (__config__()?.header) {\\n <div class=\\\"ax-popup-header\\\">\\n <span class=\\\"ax-popup-title\\\">{{ title() | translate | async }}</span>\\n @if (__config__()?.closeButton) {\\n <ax-close-button tabindex=\\\"1\\\" (click)=\\\"_handleCloseClick()\\\"></ax-close-button>\\n }\\n </div>\\n }\\n </div>\\n <div class=\\\"ax-popup-main-container ax-loading-container\\\">\\n <div class=\\\"ax-popup-body-container\\\" #contentContainer></div>\\n <div class=\\\"ax-popup-footer-container\\\"></div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\":root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}.ax-popup-wrapper{display:contents}.ax-popup-header-container.ax-popup-draggable{cursor:move}.ax-popup.ax-popup-dragging{-webkit-user-select:none;user-select:none}.ax-popup{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));margin-left:auto;margin-right:auto;display:flex;width:auto;flex-direction:column;overflow:hidden;border-radius:var(--ax-comp-popup-border-radius);border-width:1px;border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));padding:0;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);outline:2px solid transparent;outline-offset:2px;color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{background-color:rgba(var(--ax-comp-popup-header-bg-color))}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-color:rgba(var(--ax-comp-popup-header-border-color));padding:.75rem}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:1rem;font-weight:500}@media (min-width: 768px){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:1.125rem;line-height:1.75rem}}.ax-popup ax-footer{box-shadow:0 2px 10px #0000004d;display:flex;align-items:center;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color));padding:.75rem}.ax-popup:focus{outline:2px solid transparent;outline-offset:2px}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;flex:1 1 0%;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{flex:1 1 0%;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-footer-container{background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:fit-content!important}.ax-popup.ax-fit .ax-popup-body-container{max-height:100vh}.ax-popup.ax-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}@media (min-width: 320px) and (max-width: 640px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:fit-content;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-body-container>ng-component>div{width:100%}}@media (min-width: 768px){.ax-popup.ax-popup-sm{width:55vw!important}.ax-popup.ax-popup-md{width:65vw!important}.ax-popup.ax-popup-lg{width:75vw!important}}@media (min-width: 1280px){.ax-popup.ax-popup-sm{width:30vw!important}.ax-popup.ax-popup-md{width:50vw!important}.ax-popup.ax-popup-lg{width:85vw!important}}@media (min-width: 1536px){.ax-popup.ax-popup-sm{width:25vw!important}.ax-popup.ax-popup-md{width:40vw!important}.ax-popup.ax-popup-lg{width:65vw!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}\\n\"] }]\n }], propDecorators: { contentContainerRef: [{\n type: ViewChild,\n args: ['contentContainer', { read: ViewContainerRef, static: true }]\n }], contentContainerEl: [{\n type: ViewChild,\n args: ['contentContainer', { static: true }]\n }], __content__: [{ type: i0.Input, args: [{ isSignal: true, alias: \"__content__\", required: false }] }], __config__: [{ type: i0.Input, args: [{ isSignal: true, alias: \"__config__\", required: false }] }], __popupRef__: [{ type: i0.Input, args: [{ isSignal: true, alias: \"__popupRef__\", required: false }] }], __id__: [{ type: i0.Input, args: [{ isSignal: true, alias: \"__id__\", required: false }] }], onKeydownHandler: [{\n type: HostListener,\n args: ['keydown.escape']\n }], onDragMove: [{\n type: HostListener,\n args: ['document:mousemove', ['$event']]\n }], onDragEnd: [{\n type: HostListener,\n args: ['document:mouseup']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9wb3B1cC9zcmMvbGliL3BvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcG9wdXAvc3JjL2xpYi9wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBc0IsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0csT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFxQixrQkFBa0IsRUFBbUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRzVDOzs7O0dBSUc7QUFhSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQVpyRDs7UUFhVSxVQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDMUMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FB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WUFBWTt1QkFBQyxnQkFBZ0I7O3NCQXVHN0IsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBYTdDLFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFYQ2xvc2FibGVDb21wb25lbnQsIEFYQ29tcG9uZW50LCBBWENvbXBvbmVudENsb3NpbmcsIE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckNsb3NlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhMb2FkaW5nU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYQ29tcG9uZW50SW5wdXRzLCBBWENvbXBvbmVudFNlcnZpY2UsIEFYQ29tcG9uZW50VHlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS9jb21wb25lbnRzJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFYUG9wdXBDb25maWcsIEFYUG9wdXBDb250ZW50VHlwZSwgQVhQb3B1cFJlZiB9IGZyb20gJy4vcG9wdXAuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBUaGUgUG9wdXAgaXMgYSBjb21wb25lbnQgd2hpY2ggZGlzcGxheXMgY29udGVudCBpbiBhIGRpYWxvZyBvdmVybGF5XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtcG9wdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wb3B1cC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENsb3NhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhQb3B1cENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBvcHVwQ29tcG9uZW50IH0sXG4gIF0sXG4gIGltcG9ydHM6IFtBWERlY29yYXRvckNsb3NlQnV0dG9uQ29tcG9uZW50LCBBc3luY1BpcGUsIEFYVHJhbnNsYXRvclBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBvcHVwQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgbG9hZGluZ1NlcnZpY2UgPSBpbmplY3QoQVhMb2FkaW5nU2VydmljZSk7XG4gIHByaXZhdGUgX3BsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuICBwcml2YXRlIGNvbXBvbmVudFNlcnZpY2UgPSBpbmplY3QoQVhDb21wb25lbnRTZXJ2aWNlKTtcblxuICBAVmlld0NoaWxkKCdjb250ZW50Q29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBjb250ZW50Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIGNvbnRlbnRDb250YWluZXJFbDogeyBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudCB9O1xuXG4gIC8vIElucHV0cyBmcm9tIG92ZXJsYXkgc2VydmljZVxuICByZWFkb25seSBfX2NvbnRlbnRfXyA9IGlucHV0PEFYUG9wdXBDb250ZW50VHlwZT4oKTtcbiAgcmVhZG9ubHkgX19jb25maWdfXyA9IGlucHV0PEFYUG9wdXBDb25maWc+KCk7XG4gIHJlYWRvbmx5IF9fcG9wdXBSZWZfXyA9IGlucHV0PEFYUG9wdXBSZWY+KCk7XG4gIHJlYWRvbmx5IF9faWRfXyA9IGlucHV0PG51bWJlcj4oKTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBsb2FkaW5nLlxuICAgKiBAZGVmYXVsdFZhbHVlIHRydWVcbiAgICovXG4gIGlzTG9hZGluZyA9IHRydWU7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfbG9hZGluZ0lkOiBudW1iZXI7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICAvKiogQ3VycmVudCB0aXRsZSAqL1xuICBwcm90ZWN0ZWQgdGl0bGUgPSBzaWduYWw8c3RyaW5nPignJyk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGlzRHJhZ2dpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBkcmFnT2Zmc2V0ID0gc2lnbmFsKHsgeDogMCwgeTogMCB9KTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGRyYWdTdGFydFBvcyA9IHsgeDogMCwgeTogMCB9O1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgZWxlbWVudFN0YXJ0UG9zID0geyB4OiAwLCB5OiAwIH07XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuX19jb25maWdfXygpO1xuICAgIGlmICh0aGlzLl9wbGF0Zm9ybS5pcygnU00nKSkge1xuICAgICAgLy8gRGlzYWJsZSBkcmFnZ2luZyBvbiBzbWFsbCBzY3JlZW5zXG4gICAgICBpZiAoY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5kcmFnZ2FibGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnRpdGxlLnNldChjb25maWc/LnRpdGxlID8/ICcnKTtcblxuICAgIHRoaXMuX2xvYWRpbmdJZCA9IHRoaXMubG9hZGluZ1NlcnZpY2Uuc2hvdyh7XG4gICAgICBsb2NhdGlvbjogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZW5kZXJDb250ZW50KCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIGFzeW5jIHJlbmRlckNvbnRlbnQoKSB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuX19jb250ZW50X18oKTtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLl9fY29uZmlnX18oKTtcblxuICAgIGlmICghY29udGVudCkge1xuICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS5oaWRlKHRoaXMuX2xvYWRpbmdJZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgLy8gUmVuZGVyIHRlbXBsYXRlIHVzaW5nIFZpZXdDb250YWluZXJSZWYgKHN1cHBvcnRzIGNvbnRleHQpXG4gICAgICB0aGlzLmNvbnRlbnRDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KGNvbnRlbnQsIHtcbiAgICAgICAgJGltcGxpY2l0OiBjb25maWc/LmRhdGEsXG4gICAgICAgIHJlZjogdGhpcyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5oYW5kbGVDb250ZW50UmVuZGVyZWQoKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBSZW5kZXIgY29tcG9uZW50XG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudFNlcnZpY2UuY3JlYXRlRnJvbUNvbXBvbmVudChjb250ZW50IGFzIEFYQ29tcG9uZW50VHlwZTx1bmtub3duPik7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSBjb21wb25lbnRSZWY7XG5cbiAgICAgIC8vIEdldCBjb21wb25lbnQgaW5wdXQgZGVmaW5pdGlvbnMgdG8gY2hlY2sgYmVmb3JlIHNldHRpbmcgaW5wdXRzXG4gICAgICBjb25zdCBpbnB1dERlZnMgPSAoY29tcG9uZW50UmVmLmNvbXBvbmVudFR5cGUgYXMgdW5rbm93biBhcyB7IMm1Y21wPzogeyBpbnB1dHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9IH0pPy7JtWNtcFxuICAgICAgICA/LmlucHV0cztcblxuICAgICAgLy8gU2V0IGRhdGEgaW5wdXRzIChvbmx5IGlmIHRoZSBjb21wb25lbnQgaGFzIHRoZSBpbnB1dCBkZWZpbmVkKVxuICAgICAgaWYgKGNvbmZpZz8uZGF0YSAmJiB0eXBlb2YgY29uZmlnLmRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbmZpZy5kYXRhKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29uZmlnPy5pbnB1dHMgJiYgdHlwZW9mIGNvbmZpZy5pbnB1dHMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbmZpZy5pbnB1dHMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgIGlmIChpbnB1dERlZnMgJiYga2V5IGluIGlucHV0RGVmcykge1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLnNldElucHV0KGtleSwgdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCBwb3B1cCByZWZlcmVuY2UgKG9ubHkgaWYgdGhlIGNvbXBvbmVudCBoYXMgdGhpcyBpbnB1dClcbiAgICAgIGlmIChpbnB1dERlZnMgJiYgJ19fcG9wdXBfXycgaW4gaW5wdXREZWZzKSB7XG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dCgnX19wb3B1cF9fJywgdGhpcy5fX3BvcHVwUmVmX18oKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE1vdmUgY29tcG9uZW50IHRvIGNvbnRhaW5lclxuICAgICAgY29uc3QgaG9zdEVsZW1lbnQgPSBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgIHRoaXMuY29udGVudENvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoaG9zdEVsZW1lbnQpO1xuXG4gICAgICAvLyBTdWJzY3JpYmUgdG8gY2xvc2UgZXZlbnQgaWYgYXZhaWxhYmxlXG4gICAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyB7XG4gICAgICAgIG9uQ2xvc2VkPzogeyBzdWJzY3JpYmU6IChmbjogKGU6IHsgZGF0YT86IHVua25vd24gfSkgPT4gdm9pZCkgPT4gdm9pZCB9O1xuICAgICAgfTtcbiAgICAgIGlmIChpbnN0YW5jZS5vbkNsb3NlZCkge1xuICAgICAgICBpbnN0YW5jZS5vbkNsb3NlZC5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgICB0aGlzLmNsb3NlKGUuZGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmhhbmRsZUNvbnRlbnRSZW5kZXJlZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgaGFuZGxlQ29udGVudFJlbmRlcmVkKCkge1xuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1wb3B1cC1ib2R5LWNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gYm9keS5jaGlsZHJlblswXTtcblxuICAgICAgICBpZiAoIWNvbnRlbnQgfHwgIWJvZHkpIHJldHVybjtcblxuICAgICAgICBjb25zdCBwb3BIZWFkZXIgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1wb3B1cC1oZWFkZXItY29udGFpbmVyJyk7XG4gICAgICAgIGNvbnN0IHBvcEZvb3RlciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LXBvcHVwLWZvb3Rlci1jb250YWluZXInKTtcblxuICAgICAgICBjb25zdCBmb290ZXIgPSBjb250ZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCc6c2NvcGUgPiBheC1mb290ZXInKTtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gY29udGVudC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignOnNjb3BlID4gYXgtaGVhZGVyJyk7XG5cbiAgICAgICAgaWYgKGZvb3RlciAmJiBwb3BGb290ZXIpIHtcbiAgICAgICAgICBwb3BGb290ZXIuYXBwZW5kKGZvb3Rlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhlYWRlciAmJiBwb3BIZWFkZXIpIHtcbiAgICAgICAgICBwb3BIZWFkZXIuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgICAgcG9wSGVhZGVyLmFwcGVuZChoZWFkZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMubG9hZGluZ1NlcnZpY2UuaGlkZSh0aGlzLl9sb2FkaW5nSWQpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2NhcGUnKVxuICBvbktleWRvd25IYW5kbGVyKCkge1xuICAgIGNvbnN0IGZvY3VzZWRPckhhc0ZvY3VzZWQgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkubWF0Y2hlcygnOmZvY3VzLXdpdGhpbicpO1xuICAgIGlmICh0aGlzLl9fY29uZmlnX18oKT8uY2xvc2VCdXR0b24gJiYgZm9jdXNlZE9ySGFzRm9jdXNlZCkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGFuZGxlQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLmhpZGUodGhpcy5fbG9hZGluZ0lkKTtcbiAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBmb2N1cyBvbiB0aGUgYC5heC1wb3B1cGAgZWxlbWVudCB3aXRoaW4gdGhlIGhvc3QgZWxlbWVudCBhZnRlciBhIHNob3J0IGRlbGF5LlxuICAgKi9cbiAgZm9jdXMoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1wb3B1cCcpPy5mb2N1cygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIHBvcHVwLCBlbWl0dGluZyBjb21wb25lbnQgcmVmZXJlbmNlLCBob3N0IGVsZW1lbnQsIGFuZCBvcHRpb25hbCBkYXRhLlxuICAgKiBAcGFyYW0ge3Vua25vd259IFtkYXRhXVxuICAgKi9cbiAgY2xvc2UoZGF0YT86IHVua25vd24pIHtcbiAgICBjb25zdCBjbG9zZUZuID0gKCkgPT4ge1xuICAgICAgdGhpcy5fX3BvcHVwUmVmX18oKT8uY2xvc2UoZGF0YSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNvbXBvbmVudEluc3RhbmNlID0gdGhpcy5fY29tcG9uZW50UmVmPy5pbnN0YW5jZSBhc1xuICAgICAgfCB7IG9uQ2xvc2luZz86IChlOiBBWENvbXBvbmVudENsb3NpbmcpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+IH1cbiAgICAgIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKHR5cGVvZiBjb21wb25lbnRJbnN0YW5jZT8ub25DbG9zaW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBlZTogQVhDb21wb25lbnRDbG9zaW5nID0ge1xuICAgICAgICBjYW5jZWw6IGZhbHNlLFxuICAgICAgICBkYXRhLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGNsb3NpbmdSZXN1bHQgPSBjb21wb25lbnRJbnN0YW5jZS5vbkNsb3NpbmcoZWUpO1xuICAgICAgaWYgKGNsb3NpbmdSZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgIGNsb3NpbmdSZXN1bHQudGhlbigoKSA9PiB7XG4gICAgICAgICAgaWYgKCFlZS5jYW5jZWwpIHtcbiAgICAgICAgICAgIGNsb3NlRm4oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFlZS5jYW5jZWwpIHtcbiAgICAgICAgICBjbG9zZUZuKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY2xvc2VGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGlucHV0cyBvbiB0aGUgY29udGVudCBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB2YWx1ZXMgLSBPYmplY3QgY29udGFpbmluZyBpbnB1dCB2YWx1ZXMgdG8gc2V0XG4gICAqL1xuICBzZXRDb250ZW50SW5wdXRzKHZhbHVlczogQVhDb21wb25lbnRJbnB1dHMpIHtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl9jb21wb25lbnRSZWY7XG4gICAgaWYgKGNvbXBvbmVudFJlZikge1xuICAgICAgT2JqZWN0LmVudHJpZXModmFsdWVzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29tcG9uZW50UmVmLnNldElucHV0KGtleSwgdmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBvcHVwIHRpdGxlLlxuICAgKiBAcGFyYW0gdGl0bGUgLSBUaGUgbmV3IHRpdGxlXG4gICAqL1xuICBzZXRUaXRsZSh0aXRsZTogc3RyaW5nKSB7XG4gICAgdGhpcy50aXRsZS5zZXQodGl0bGUpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLy8gRHJhZyBmdW5jdGlvbmFsaXR5XG4gIHByb3RlY3RlZCBvbkRyYWdTdGFydChldmVudDogTW91c2VFdmVudCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuX19jb25maWdfXygpO1xuICAgIGlmICghY29uZmlnPy5kcmFnZ2FibGUpIHJldHVybjtcblxuICAgIHRoaXMuaXNEcmFnZ2luZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5kcmFnU3RhcnRQb3MgPSB7IHg6IGV2ZW50LmNsaWVudFgsIHk6IGV2ZW50LmNsaWVudFkgfTtcblxuICAgIGNvbnN0IHBvcHVwID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtcG9wdXAnKTtcbiAgICBpZiAocG9wdXApIHtcbiAgICAgIGNvbnN0IHJlY3QgPSBwb3B1cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHRoaXMuZWxlbWVudFN0YXJ0UG9zID0geyB4OiByZWN0LmxlZnQsIHk6IHJlY3QudG9wIH07XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gIG9uRHJhZ01vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaXNEcmFnZ2luZygpKSByZXR1cm47XG5cbiAgICBjb25zdCBkZWx0YVggPSBldmVudC5jbGllbnRYIC0gdGhpcy5kcmFnU3RhcnRQb3MueDtcbiAgICBjb25zdCBkZWx0YVkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5kcmFnU3RhcnRQb3MueTtcblxuICAgIHRoaXMuZHJhZ09mZnNldC5zZXQoe1xuICAgICAgeDogdGhpcy5lbGVtZW50U3RhcnRQb3MueCArIGRlbHRhWCxcbiAgICAgIHk6IHRoaXMuZWxlbWVudFN0YXJ0UG9zLnkgKyBkZWx0YVksXG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwJylcbiAgb25EcmFnRW5kKCkge1xuICAgIHRoaXMuaXNEcmFnZ2luZy5zZXQoZmFsc2UpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtcG9wdXAtd3JhcHBlclwiIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImF4LXBvcHVwIGF4LXBvcHVwLXt7IF9fY29uZmlnX18oKT8uc2l6ZSB8fCAnbWQnIH19XCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIFtjbGFzcy5heC1wb3B1cC1kcmFnZ2luZ109XCJpc0RyYWdnaW5nKClcIlxuICAgIFtzdHlsZS5wb3NpdGlvbl09XCJkcmFnT2Zmc2V0KCkueCB8fCBkcmFnT2Zmc2V0KCkueSA/ICdmaXhlZCcgOiBudWxsXCJcbiAgICBbc3R5bGUubGVmdC5weF09XCJkcmFnT2Zmc2V0KCkueCB8fCBudWxsXCJcbiAgICBbc3R5bGUudG9wLnB4XT1cImRyYWdPZmZzZXQoKS55IHx8IG51bGxcIlxuICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiZHJhZ09mZnNldCgpLnggfHwgZHJhZ09mZnNldCgpLnkgPyAnbm9uZScgOiBudWxsXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYXgtcG9wdXAtaGVhZGVyLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3MuYXgtcG9wdXAtZHJhZ2dhYmxlXT1cIl9fY29uZmlnX18oKT8uZHJhZ2dhYmxlXCJcbiAgICAgIChtb3VzZWRvd24pPVwib25EcmFnU3RhcnQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgQGlmIChfX2NvbmZpZ19fKCk/LmhlYWRlcikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcG9wdXAtaGVhZGVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1wb3B1cC10aXRsZVwiPnt7IHRpdGxlKCkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICBAaWYgKF9fY29uZmlnX18oKT8uY2xvc2VCdXR0b24pIHtcbiAgICAgICAgICAgIDxheC1jbG9zZS1idXR0b24gdGFiaW5kZXg9XCIxXCIgKGNsaWNrKT1cIl9oYW5kbGVDbG9zZUNsaWNrKClcIj48L2F4LWNsb3NlLWJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1wb3B1cC1tYWluLWNvbnRhaW5lciBheC1sb2FkaW5nLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LXBvcHVwLWJvZHktY29udGFpbmVyXCIgI2NvbnRlbnRDb250YWluZXI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtcG9wdXAtZm9vdGVyLWNvbnRhaW5lclwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Directive, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPopupComponentBase {\n constructor() {\n this.__popup__ = input(...(ngDevMode ? [undefined, { debugName: \"__popup__\" }] : []));\n }\n close(data = null) {\n this.__popup__().close(data);\n }\n setTitle(title) {\n this.__popup__().setTitle(title);\n }\n bringToFront() {\n this.__popup__().bringToFront();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupComponentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.15\", type: AXPopupComponentBase, isStandalone: true, inputs: { __popup__: { classPropertyName: \"__popup__\", publicName: \"__popup__\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupComponentBase, decorators: [{\n type: Directive\n }], propDecorators: { __popup__: [{ type: i0.Input, args: [{ isSignal: true, alias: \"__popup__\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9wb3B1cC9zcmMvbGliL3BvcHVwLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUQsTUFBTSxlQUFlLENBQUM7O0FBK0NoRyxNQUFNLE9BQWdCLG9CQUFvQjtJQUQxQztRQUVFLGNBQVMsR0FBRyxLQUFLLCtEQUFjLENBQUM7S0FhakM7SUFYUSxLQUFLLENBQUMsT0FBWSxJQUFJO1FBQzNCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xDLENBQUM7K0dBYm1CLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUR6QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnRJbnB1dHMsIEFYQ29tcG9uZW50VHlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS9jb21wb25lbnRzJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgaW5wdXQsIFN0YXRpY1Byb3ZpZGVyLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBBWFBvcHVwQ29udGVudFR5cGUgPSBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IEFYQ29tcG9uZW50VHlwZTx1bmtub3duPjtcblxuZXhwb3J0IHR5cGUgQVhQb3B1cFNpemVUeXBlID0gJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ2Z1bGwnIHwgJ2ZpdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQb3B1cENvbmZpZyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBjbG9zZUJ1dHRvbj86IGJvb2xlYW47XG4gIGhlYWRlcj86IGJvb2xlYW47XG4gIG1heGltaXphYmxlPzogYm9vbGVhbjtcbiAgc2l6ZT86IEFYUG9wdXBTaXplVHlwZTtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgaW5wdXRzYCBpbnN0ZWFkIHRvIHBhc3MgZGF0YSB0byB0aGUgcG9wdXAgY29tcG9uZW50LiAqL1xuICBkYXRhPzogdW5rbm93bjtcbiAgaW5wdXRzPzogdW5rbm93bjtcbiAgZHJhZ2dhYmxlPzogYm9vbGVhbjtcbiAgaGFzQmFja2Ryb3A/OiBib29sZWFuO1xuICBiYWNrZHJvcENsYXNzPzogc3RyaW5nO1xuICBjbG9zZU9uQmFja2Ryb3BDbGljaz86IGJvb2xlYW47XG4gIHZpZXdDb250YWluZXJSZWY/OiBWaWV3Q29udGFpbmVyUmVmO1xuICBwcm92aWRlcnM/OiBTdGF0aWNQcm92aWRlcltdO1xuICBwYW5lbENsYXNzPzogc3RyaW5nW107XG4gIGRpcmVjdGlvbj86ICdydGwnIHwgJ2x0cic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQb3B1cERhdGEge1xuICB0aXRsZTogc3RyaW5nO1xuICBjbG9zZUJ1dHRvbjogYm9vbGVhbjtcbiAgaGVhZGVyOiBib29sZWFuO1xuICBtYXhpbWl6YWJsZTogYm9vbGVhbjtcbiAgc2l6ZTogQVhQb3B1cFNpemVUeXBlO1xuICBkYXRhPzogdW5rbm93bjtcbiAgZHJhZ2dhYmxlOiBib29sZWFuO1xuICBjb250ZW50OiBBWFBvcHVwQ29udGVudFR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQb3B1cFJlZjxUUmVzdWx0ID0gYW55PiB7XG4gIGNsb3NlOiAoZGF0YT86IFRSZXN1bHQpID0+IHZvaWQ7XG4gIHNldElucHV0czogKHZhbHVlczogQVhDb21wb25lbnRJbnB1dHMpID0+IHZvaWQ7XG4gIHNldFRpdGxlOiAodGl0bGU6IHN0cmluZykgPT4gdm9pZDtcbiAgLyoqIEJyaW5ncyB0aGlzIHBvcHVwIHRvIHRoZSBmcm9udCBvZiBhbGwgb3RoZXIgb3ZlcmxheXMgKi9cbiAgYnJpbmdUb0Zyb250OiAoKSA9PiB2b2lkO1xuICBvbkNsb3NlOiBTdWJqZWN0PFRSZXN1bHQ+O1xufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBvcHVwQ29tcG9uZW50QmFzZSB7XG4gIF9fcG9wdXBfXyA9IGlucHV0PEFYUG9wdXBSZWY+KCk7XG5cbiAgcHVibGljIGNsb3NlKGRhdGE6IGFueSA9IG51bGwpIHtcbiAgICB0aGlzLl9fcG9wdXBfXygpLmNsb3NlKGRhdGEpO1xuICB9XG5cbiAgcHVibGljIHNldFRpdGxlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fcG9wdXBfXygpLnNldFRpdGxlKHRpdGxlKTtcbiAgfVxuXG4gIHB1YmxpYyBicmluZ1RvRnJvbnQoKSB7XG4gICAgdGhpcy5fX3BvcHVwX18oKS5icmluZ1RvRnJvbnQoKTtcbiAgfVxufVxuIl19","import { AXComponentClosedPromise } from '@acorex/cdk/common';\nimport { AXOverlayService } from '@acorex/cdk/overlay';\nimport { ComponentRef, inject, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPopupComponent } from './popup.component';\nimport * as i0 from \"@angular/core\";\n/**\n * This is a service which you can create popup with it\n *\n * @category Components\n */\nexport class AXPopupService {\n constructor() {\n this.popupList = new Map();\n this.overlayService = inject(AXOverlayService);\n }\n /**\n * @ignore\n */\n open(arg1, arg2) {\n let config = {\n closeButton: true,\n header: true,\n size: 'md',\n maximizable: false,\n draggable: true,\n hasBackdrop: true,\n closeOnBackdropClick: false,\n data: {},\n };\n if (typeof arg2 === 'string') {\n config.title = arg2;\n }\n else {\n config = Object.assign(config, arg2);\n }\n const promise = new AXComponentClosedPromise((resolve) => {\n this.openInternal(arg1, config).then((ref) => {\n ref.onClose.subscribe((data) => {\n if (resolve) {\n resolve({\n sender: arg1,\n data: data,\n });\n }\n });\n });\n });\n return promise;\n }\n /**\n * Opens a popup with the specified content and configuration.\n * @param content - Component or template to display\n * @param config - Configuration options for the popup\n * @returns Promise<AXPopupRef> - Reference to the opened popup\n */\n async openInternal(content, config) {\n const randomId = Math.floor(Math.random() * 100000000000);\n const onClose = new Subject();\n const returnRef = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values) => {\n this.setInputs(randomId, values);\n },\n setTitle: (title) => {\n this.setTitle(randomId, title);\n },\n bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n };\n // Build panel classes\n const panelClasses = ['ax-popup-overlay'];\n if (config.panelClass) {\n panelClasses.push(...config.panelClass);\n }\n const ref = await this.overlayService.create(AXPopupComponent, {\n backdrop: {\n enabled: config.hasBackdrop ?? true,\n background: true,\n closeOnClick: config.closeOnBackdropClick ?? false,\n },\n panelClass: panelClasses,\n inputs: {\n __content__: content,\n __config__: config,\n __popupRef__: returnRef,\n __id__: randomId,\n },\n });\n this.popupList.set(randomId, { overlay: ref, popup: returnRef });\n return returnRef;\n }\n /**\n * Closes a popup by its ID.\n * @param id - The popup ID to close\n * @param data - Optional data to pass to the close event\n */\n close(id, data) {\n const ref = this.popupList.get(id);\n if (!ref)\n return;\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.overlay.dispose();\n this.popupList.delete(id);\n }\n /**\n * Sets input values for a popup by its ID.\n * @param id - The popup ID\n * @param values - Object containing input values to set\n */\n setInputs(id, values) {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref)\n return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance;\n componentInstance.setContentInputs(values);\n }\n }\n /**\n * Sets the title for a popup by its ID.\n * @param id - The popup ID\n * @param title - The new title\n */\n setTitle(id, title) {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref)\n return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance;\n componentInstance.setTitle(title);\n }\n }\n /**\n * Brings a popup to the front of all other overlays.\n * @param id - The popup ID to bring to front\n */\n bringToFront(id) {\n const ref = this.popupList.get(id);\n if (!ref)\n return;\n ref.overlay.bringToFront();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcG9wdXAvc3JjL2xpYi9wb3B1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHckQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBSVUsY0FBUyxHQUFHLElBQUksR0FBRyxFQUEwRSxDQUFDO1FBQzlGLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0EwSm5EO0lBL0lDOztPQUVHO0lBQ0gsSUFBSSxDQUFDLElBQXdCLEVBQUUsSUFBNEI7UUFDekQsSUFBSSxNQUFNLEdBQWtCO1lBQzFCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUUsS0FBSztZQUNsQixTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFDO1FBQ0YsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBR0QsTUFBTSxPQUFPLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMzQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUM3QixJQUFJLE9BQU8sRUFBRSxDQUFDO3dCQUNaLE9BQU8sQ0FBQzs0QkFDTixNQUFNLEVBQUUsSUFBSTs0QkFDWixJQUFJLEVBQUUsSUFBSTt5QkFDWCxDQUFDLENBQUM7b0JBQ0wsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxLQUFLLENBQUMsWUFBWSxDQUN4QixPQUEyQixFQUMzQixNQUFxQjtRQUVyQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxZQUFZLENBQUMsQ0FBQztRQUMxRCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRXZDLE1BQU0sU0FBUyxHQUF3QjtZQUNyQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBQ0QsU0FBUyxFQUFFLENBQUMsTUFBeUIsRUFBRSxFQUFFO2dCQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsUUFBUSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUM7WUFDRCxZQUFZLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlCLENBQUM7WUFDRCxPQUFPO1NBQ1IsQ0FBQztRQUVGLHNCQUFzQjtRQUN0QixNQUFNLFlBQVksR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUMsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEIsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRTtZQUM3RCxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksSUFBSTtnQkFDbkMsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFlBQVksRUFBRSxNQUFNLENBQUMsb0JBQW9CLElBQUksS0FBSzthQUNuRDtZQUNELFVBQVUsRUFBRSxZQUFZO1lBQ3hCLE1BQU0sRUFBRTtnQkFDTixXQUFXLEVBQUUsT0FBTztnQkFDcEIsVUFBVSxFQUFFLE1BQU07Z0JBQ2xCLFlBQVksRUFBRSxTQUFTO2dCQUN2QixNQUFNLEVBQUUsUUFBUTthQUNqQjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFakUsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQWdCLEVBQVUsRUFBRSxJQUFjO1FBQzdDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTztRQUNqQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxFQUFVLEVBQUUsTUFBeUI7UUFDN0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNyRCxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU87UUFDakIsSUFBSSxHQUFHLFlBQVksWUFBWSxFQUFFLENBQUM7WUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsUUFBNEIsQ0FBQztZQUMzRCxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsRUFBVSxFQUFFLEtBQWE7UUFDaEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNyRCxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU87UUFDakIsSUFBSSxHQUFHLFlBQVksWUFBWSxFQUFFLENBQUM7WUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsUUFBNEIsQ0FBQztZQUMzRCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZLENBQUMsRUFBVTtRQUNyQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU87UUFDakIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDOytHQTNKVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50Q2xvc2VkUHJvbWlzZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWE92ZXJsYXlSZWYsIEFYT3ZlcmxheVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEFYQ29tcG9uZW50SW5wdXRzIH0gZnJvbSAnQGFjb3JleC9jb3JlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUG9wdXBDb21wb25lbnQgfSBmcm9tICcuL3BvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBvcHVwQ29uZmlnLCBBWFBvcHVwQ29udGVudFR5cGUsIEFYUG9wdXBSZWYgfSBmcm9tICcuL3BvcHVwLmludGVyZmFjZSc7XG5cbi8qKlxuICogVGhpcyBpcyBhIHNlcnZpY2Ugd2hpY2ggeW91IGNhbiBjcmVhdGUgcG9wdXAgd2l0aCBpdFxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBvcHVwU2VydmljZSB7XG4gIHByaXZhdGUgcG9wdXBMaXN0ID0gbmV3IE1hcDxudW1iZXIsIHsgb3ZlcmxheTogQVhPdmVybGF5UmVmPEFYUG9wdXBDb21wb25lbnQ+OyBwb3B1cDogQVhQb3B1cFJlZiB9PigpO1xuICBwcml2YXRlIG92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KEFYT3ZlcmxheVNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiAgT3BlbiBwb3B1cCAxXG4gICAqL1xuICBvcGVuKGNvbnRlbnQ6IEFYUG9wdXBDb250ZW50VHlwZSwgdGl0bGU6IHN0cmluZyk6IEFYQ29tcG9uZW50Q2xvc2VkUHJvbWlzZTtcbiAgLyoqXG4gICAqICBPcGVuIHBvcHVwIDJcbiAgICovXG4gIG9wZW4oY29udGVudDogQVhQb3B1cENvbnRlbnRUeXBlLCBjb25maWc/OiBBWFBvcHVwQ29uZmlnKTogQVhDb21wb25lbnRDbG9zZWRQcm9taXNlO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgb3BlbihhcmcxOiBBWFBvcHVwQ29udGVudFR5cGUsIGFyZzI6IHN0cmluZyB8IEFYUG9wdXBDb25maWcpOiBBWENvbXBvbmVudENsb3NlZFByb21pc2Uge1xuICAgIGxldCBjb25maWc6IEFYUG9wdXBDb25maWcgPSB7XG4gICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIGhlYWRlcjogdHJ1ZSxcbiAgICAgIHNpemU6ICdtZCcsXG4gICAgICBtYXhpbWl6YWJsZTogZmFsc2UsXG4gICAgICBkcmFnZ2FibGU6IHRydWUsXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGNsb3NlT25CYWNrZHJvcENsaWNrOiBmYWxzZSxcbiAgICAgIGRhdGE6IHt9LFxuICAgIH07XG4gICAgaWYgKHR5cGVvZiBhcmcyID09PSAnc3RyaW5nJykge1xuICAgICAgY29uZmlnLnRpdGxlID0gYXJnMjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnID0gT2JqZWN0LmFzc2lnbihjb25maWcsIGFyZzIpO1xuICAgIH1cblxuXG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBBWENvbXBvbmVudENsb3NlZFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMub3BlbkludGVybmFsKGFyZzEsIGNvbmZpZykudGhlbigocmVmKSA9PiB7XG4gICAgICAgIHJlZi5vbkNsb3NlLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChyZXNvbHZlKSB7XG4gICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgc2VuZGVyOiBhcmcxLFxuICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBwb3B1cCB3aXRoIHRoZSBzcGVjaWZpZWQgY29udGVudCBhbmQgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIGNvbnRlbnQgLSBDb21wb25lbnQgb3IgdGVtcGxhdGUgdG8gZGlzcGxheVxuICAgKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcG9wdXBcbiAgICogQHJldHVybnMgUHJvbWlzZTxBWFBvcHVwUmVmPiAtIFJlZmVyZW5jZSB0byB0aGUgb3BlbmVkIHBvcHVwXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIG9wZW5JbnRlcm5hbDxUUmVzdWx0ID0gYW55PihcbiAgICBjb250ZW50OiBBWFBvcHVwQ29udGVudFR5cGUsXG4gICAgY29uZmlnOiBBWFBvcHVwQ29uZmlnLFxuICApOiBQcm9taXNlPEFYUG9wdXBSZWY8VFJlc3VsdD4+IHtcbiAgICBjb25zdCByYW5kb21JZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDAwMDAwMCk7XG4gICAgY29uc3Qgb25DbG9zZSA9IG5ldyBTdWJqZWN0PFRSZXN1bHQ+KCk7XG5cbiAgICBjb25zdCByZXR1cm5SZWY6IEFYUG9wdXBSZWY8VFJlc3VsdD4gPSB7XG4gICAgICBjbG9zZTogKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZShyYW5kb21JZCwgZGF0YSk7XG4gICAgICB9LFxuICAgICAgc2V0SW5wdXRzOiAodmFsdWVzOiBBWENvbXBvbmVudElucHV0cykgPT4ge1xuICAgICAgICB0aGlzLnNldElucHV0cyhyYW5kb21JZCwgdmFsdWVzKTtcbiAgICAgIH0sXG4gICAgICBzZXRUaXRsZTogKHRpdGxlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5zZXRUaXRsZShyYW5kb21JZCwgdGl0bGUpO1xuICAgICAgfSxcbiAgICAgIGJyaW5nVG9Gcm9udDogKCkgPT4ge1xuICAgICAgICB0aGlzLmJyaW5nVG9Gcm9udChyYW5kb21JZCk7XG4gICAgICB9LFxuICAgICAgb25DbG9zZSxcbiAgICB9O1xuXG4gICAgLy8gQnVpbGQgcGFuZWwgY2xhc3Nlc1xuICAgIGNvbnN0IHBhbmVsQ2xhc3NlcyA9IFsnYXgtcG9wdXAtb3ZlcmxheSddO1xuICAgIGlmIChjb25maWcucGFuZWxDbGFzcykge1xuICAgICAgcGFuZWxDbGFzc2VzLnB1c2goLi4uY29uZmlnLnBhbmVsQ2xhc3MpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlZiA9IGF3YWl0IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlKEFYUG9wdXBDb21wb25lbnQsIHtcbiAgICAgIGJhY2tkcm9wOiB7XG4gICAgICAgIGVuYWJsZWQ6IGNvbmZpZy5oYXNCYWNrZHJvcCA/PyB0cnVlLFxuICAgICAgICBiYWNrZ3JvdW5kOiB0cnVlLFxuICAgICAgICBjbG9zZU9uQ2xpY2s6IGNvbmZpZy5jbG9zZU9uQmFja2Ryb3BDbGljayA/PyBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBwYW5lbENsYXNzOiBwYW5lbENsYXNzZXMsXG4gICAgICBpbnB1dHM6IHtcbiAgICAgICAgX19jb250ZW50X186IGNvbnRlbnQsXG4gICAgICAgIF9fY29uZmlnX186IGNvbmZpZyxcbiAgICAgICAgX19wb3B1cFJlZl9fOiByZXR1cm5SZWYsXG4gICAgICAgIF9faWRfXzogcmFuZG9tSWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5wb3B1cExpc3Quc2V0KHJhbmRvbUlkLCB7IG92ZXJsYXk6IHJlZiwgcG9wdXA6IHJldHVyblJlZiB9KTtcblxuICAgIHJldHVybiByZXR1cm5SZWY7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIGEgcG9wdXAgYnkgaXRzIElELlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgcG9wdXAgSUQgdG8gY2xvc2VcbiAgICogQHBhcmFtIGRhdGEgLSBPcHRpb25hbCBkYXRhIHRvIHBhc3MgdG8gdGhlIGNsb3NlIGV2ZW50XG4gICAqL1xuICBjbG9zZTxUUmVzdWx0ID0gYW55PihpZDogbnVtYmVyLCBkYXRhPzogVFJlc3VsdCk6IHZvaWQge1xuICAgIGNvbnN0IHJlZiA9IHRoaXMucG9wdXBMaXN0LmdldChpZCk7XG4gICAgaWYgKCFyZWYpIHJldHVybjtcbiAgICByZWYucG9wdXAub25DbG9zZS5uZXh0KGRhdGEpO1xuICAgIHJlZi5wb3B1cC5vbkNsb3NlLmNvbXBsZXRlKCk7XG4gICAgcmVmLm92ZXJsYXkuZGlzcG9zZSgpO1xuICAgIHRoaXMucG9wdXBMaXN0LmRlbGV0ZShpZCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBpbnB1dCB2YWx1ZXMgZm9yIGEgcG9wdXAgYnkgaXRzIElELlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgcG9wdXAgSURcbiAgICogQHBhcmFtIHZhbHVlcyAtIE9iamVjdCBjb250YWluaW5nIGlucHV0IHZhbHVlcyB0byBzZXRcbiAgICovXG4gIHNldElucHV0cyhpZDogbnVtYmVyLCB2YWx1ZXM6IEFYQ29tcG9uZW50SW5wdXRzKTogdm9pZCB7XG4gICAgY29uc3QgcmVmID0gdGhpcy5wb3B1cExpc3QuZ2V0KGlkKT8ub3ZlcmxheS5pbnN0YW5jZTtcbiAgICBpZiAoIXJlZikgcmV0dXJuO1xuICAgIGlmIChyZWYgaW5zdGFuY2VvZiBDb21wb25lbnRSZWYpIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudEluc3RhbmNlID0gcmVmLmluc3RhbmNlIGFzIEFYUG9wdXBDb21wb25lbnQ7XG4gICAgICBjb21wb25lbnRJbnN0YW5jZS5zZXRDb250ZW50SW5wdXRzKHZhbHVlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRpdGxlIGZvciBhIHBvcHVwIGJ5IGl0cyBJRC5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHBvcHVwIElEXG4gICAqIEBwYXJhbSB0aXRsZSAtIFRoZSBuZXcgdGl0bGVcbiAgICovXG4gIHNldFRpdGxlKGlkOiBudW1iZXIsIHRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByZWYgPSB0aGlzLnBvcHVwTGlzdC5nZXQoaWQpPy5vdmVybGF5Lmluc3RhbmNlO1xuICAgIGlmICghcmVmKSByZXR1cm47XG4gICAgaWYgKHJlZiBpbnN0YW5jZW9mIENvbXBvbmVudFJlZikge1xuICAgICAgY29uc3QgY29tcG9uZW50SW5zdGFuY2UgPSByZWYuaW5zdGFuY2UgYXMgQVhQb3B1cENvbXBvbmVudDtcbiAgICAgIGNvbXBvbmVudEluc3RhbmNlLnNldFRpdGxlKHRpdGxlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnJpbmdzIGEgcG9wdXAgdG8gdGhlIGZyb250IG9mIGFsbCBvdGhlciBvdmVybGF5cy5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHBvcHVwIElEIHRvIGJyaW5nIHRvIGZyb250XG4gICAqL1xuICBicmluZ1RvRnJvbnQoaWQ6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHJlZiA9IHRoaXMucG9wdXBMaXN0LmdldChpZCk7XG4gICAgaWYgKCFyZWYpIHJldHVybjtcbiAgICByZWYub3ZlcmxheS5icmluZ1RvRnJvbnQoKTtcbiAgfVxufVxuIl19","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXPopupComponent];\nconst MODULES = [CommonModule, AXCommonModule, AXDecoratorModule, AXTranslationModule];\nexport class AXPopupModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupModule, imports: [CommonModule, AXCommonModule, AXDecoratorModule, AXTranslationModule, AXPopupComponent], exports: [AXPopupComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupModule, providers: [AXPopupService], imports: [MODULES, COMPONENT] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXPopupService],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9wb3B1cC9zcmMvbGliL3BvcHVwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUVqRCxNQUFNLFNBQVMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDckMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFPdkYsTUFBTSxPQUFPLGFBQWE7K0dBQWIsYUFBYTtnSEFBYixhQUFhLFlBUFQsWUFBWSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFEbEUsZ0JBQWdCLGFBQWhCLGdCQUFnQjtnSEFRdEIsYUFBYSxhQUZiLENBQUMsY0FBYyxDQUFDLFlBRmQsT0FBTyxFQUFLLFNBQVM7OzRGQUl2QixhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUG9wdXBDb21wb25lbnQgfSBmcm9tICcuL3BvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJy4vcG9wdXAuc2VydmljZSc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWFBvcHVwQ29tcG9uZW50XTtcbmNvbnN0IE1PRFVMRVMgPSBbQ29tbW9uTW9kdWxlLCBBWENvbW1vbk1vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGVdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW0FYUG9wdXBTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQb3B1cE1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtcG9wdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcHVwL3NyYy9hY29yZXgtY29tcG9uZW50cy1wb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-popup.mjs","sources":["../tmp-esm2022/popup/lib/popup.component.js","../tmp-esm2022/popup/lib/popup.interface.js","../tmp-esm2022/popup/lib/popup.service.js","../tmp-esm2022/popup/lib/popup.module.js","../tmp-esm2022/popup/acorex-components-popup.js"],"sourcesContent":["import { AXPlatform } from '@acorex/core/platform';\nimport { ChangeDetectionStrategy, Component, HostListener, inject, input, NgZone, signal, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation, } from '@angular/core';\nimport { AXClosableComponent, AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXDecoratorCloseButtonComponent } from '@acorex/components/decorators';\nimport { AXLoadingService } from '@acorex/components/loading';\nimport { AXComponentService } from '@acorex/core/components';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport * as i0 from \"@angular/core\";\n/**\n * The Popup is a component which displays content in a dialog overlay\n *\n * @category Components\n */\nexport class AXPopupComponent extends MXBaseComponent {\n constructor() {\n super(...arguments);\n this._zone = inject(NgZone);\n this.loadingService = inject(AXLoadingService);\n this._platform = inject(AXPlatform);\n this.componentService = inject(AXComponentService);\n // Inputs from overlay service\n this.__content__ = input(...(ngDevMode ? [undefined, { debugName: \"__content__\" }] : []));\n this.__config__ = input(...(ngDevMode ? [undefined, { debugName: \"__config__\" }] : []));\n this.__popupRef__ = input(...(ngDevMode ? [undefined, { debugName: \"__popupRef__\" }] : []));\n this.__id__ = input(...(ngDevMode ? [undefined, { debugName: \"__id__\" }] : []));\n /**\n * Indicates whether the component is loading.\n * @defaultValue true\n */\n this.isLoading = true;\n /** @ignore */\n this._componentRef = null;\n /** Current title */\n this.title = signal('', ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n /** @ignore */\n this.isDragging = signal(false, ...(ngDevMode ? [{ debugName: \"isDragging\" }] : []));\n /** @ignore */\n this.dragOffset = signal({ x: 0, y: 0 }, ...(ngDevMode ? [{ debugName: \"dragOffset\" }] : []));\n /** @ignore */\n this.dragStartPos = { x: 0, y: 0 };\n /** @ignore */\n this.elementStartPos = { x: 0, y: 0 };\n }\n /** @ignore */\n ngOnInit() {\n super.ngOnInit();\n const config = this.__config__();\n if (this._platform.is('SM')) {\n // Disable dragging on small screens\n if (config) {\n config.draggable = false;\n }\n }\n this.title.set(config?.title ?? '');\n this._loadingId = this.loadingService.show({\n location: this.getHostElement(),\n });\n this.renderContent();\n }\n /** @ignore */\n async renderContent() {\n const content = this.__content__();\n const config = this.__config__();\n if (!content) {\n this.loadingService.hide(this._loadingId);\n return;\n }\n if (content instanceof TemplateRef) {\n // Render template using ViewContainerRef (supports context)\n this.contentContainerRef.createEmbeddedView(content, {\n $implicit: config?.data,\n ref: this,\n });\n this.handleContentRendered();\n }\n else if (typeof content === 'function') {\n // Render component\n const componentRef = this.componentService.createFromComponent(content);\n this._componentRef = componentRef;\n // Expose component instance to the popup ref\n const popupRef = this.__popupRef__();\n if (popupRef) {\n popupRef.componentInstance = componentRef.instance;\n }\n // Get component input definitions to check before setting inputs\n const inputDefs = componentRef.componentType?.ɵcmp\n ?.inputs;\n // Set data inputs (only if the component has the input defined)\n if (config?.data && typeof config.data === 'object') {\n Object.entries(config.data).forEach(([key, value]) => {\n componentRef.instance[key] = value;\n });\n }\n if (config?.inputs && typeof config.inputs === 'object') {\n Object.entries(config.inputs).forEach(([key, value]) => {\n if (inputDefs && key in inputDefs) {\n componentRef.setInput(key, value);\n }\n });\n }\n // Set popup reference (only if the component has this input)\n if (inputDefs && '__popup__' in inputDefs) {\n componentRef.setInput('__popup__', this.__popupRef__());\n }\n // Move component to container\n const hostElement = componentRef.location.nativeElement;\n this.contentContainerEl.nativeElement.appendChild(hostElement);\n // Subscribe to close event if available\n const instance = componentRef.instance;\n if (instance.onClosed) {\n instance.onClosed.subscribe((e) => {\n this.close(e.data);\n });\n }\n this.handleContentRendered();\n }\n }\n /** @ignore */\n handleContentRendered() {\n this._zone.runOutsideAngular(() => {\n setTimeout(() => {\n const body = this.getHostElement().querySelector('.ax-popup-body-container');\n const content = body.children[0];\n if (!content || !body)\n return;\n const popHeader = this.getHostElement().querySelector('.ax-popup-header-container');\n const popFooter = this.getHostElement().querySelector('.ax-popup-footer-container');\n const footer = content.querySelector(':scope > ax-footer');\n const header = content.querySelector(':scope > ax-header');\n if (footer && popFooter) {\n popFooter.append(footer);\n }\n if (header && popHeader) {\n popHeader.innerHTML = '';\n popHeader.append(header);\n }\n this.focus();\n });\n });\n this.loadingService.hide(this._loadingId);\n this.cdr.markForCheck();\n }\n /** @ignore */\n onKeydownHandler() {\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (this.__config__()?.closeButton && focusedOrHasFocused) {\n this.close();\n }\n }\n /** @ignore */\n _handleCloseClick() {\n this.close();\n }\n /** @ignore */\n ngOnDestroy() {\n this.loadingService.hide(this._loadingId);\n if (this._componentRef) {\n this._componentRef.destroy();\n this._componentRef = null;\n }\n }\n /**\n * Sets focus on the `.ax-popup` element within the host element after a short delay.\n */\n focus() {\n setTimeout(() => this.getHostElement().querySelector('.ax-popup')?.focus());\n }\n /**\n * Closes the popup, emitting component reference, host element, and optional data.\n * @param {unknown} [data]\n */\n close(data) {\n const closeFn = () => {\n this.__popupRef__()?.close(data);\n };\n const componentInstance = this._componentRef?.instance;\n if (typeof componentInstance?.onClosing === 'function') {\n const ee = {\n cancel: false,\n data,\n };\n const closingResult = componentInstance.onClosing(ee);\n if (closingResult instanceof Promise) {\n closingResult.then(() => {\n if (!ee.cancel) {\n closeFn();\n }\n });\n }\n else {\n if (!ee.cancel) {\n closeFn();\n }\n }\n }\n else {\n closeFn();\n }\n }\n /**\n * Sets inputs on the content component.\n * @param values - Object containing input values to set\n */\n setContentInputs(values) {\n const componentRef = this._componentRef;\n if (componentRef) {\n Object.entries(values).forEach(([key, value]) => {\n componentRef.setInput(key, value);\n });\n }\n }\n /**\n * Sets the popup title.\n * @param title - The new title\n */\n setTitle(title) {\n this.title.set(title);\n this.cdr.markForCheck();\n }\n // Drag functionality\n onDragStart(event) {\n const config = this.__config__();\n if (!config?.draggable)\n return;\n this.isDragging.set(true);\n this.dragStartPos = { x: event.clientX, y: event.clientY };\n const popup = this.getHostElement().querySelector('.ax-popup');\n if (popup) {\n const rect = popup.getBoundingClientRect();\n this.elementStartPos = { x: rect.left, y: rect.top };\n }\n event.preventDefault();\n }\n onDragMove(event) {\n if (!this.isDragging())\n return;\n const deltaX = event.clientX - this.dragStartPos.x;\n const deltaY = event.clientY - this.dragStartPos.y;\n this.dragOffset.set({\n x: this.elementStartPos.x + deltaX,\n y: this.elementStartPos.y + deltaY,\n });\n }\n onDragEnd() {\n this.isDragging.set(false);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.15\", type: AXPopupComponent, isStandalone: true, selector: \"ax-popup\", inputs: { __content__: { classPropertyName: \"__content__\", publicName: \"__content__\", isSignal: true, isRequired: false, transformFunction: null }, __config__: { classPropertyName: \"__config__\", publicName: \"__config__\", isSignal: true, isRequired: false, transformFunction: null }, __popupRef__: { classPropertyName: \"__popupRef__\", publicName: \"__popupRef__\", isSignal: true, isRequired: false, transformFunction: null }, __id__: { classPropertyName: \"__id__\", publicName: \"__id__\", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { \"keydown.escape\": \"onKeydownHandler()\", \"document:mousemove\": \"onDragMove($event)\", \"document:mouseup\": \"onDragEnd()\" } }, providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ], viewQueries: [{ propertyName: \"contentContainerRef\", first: true, predicate: [\"contentContainer\"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: \"contentContainerEl\", first: true, predicate: [\"contentContainer\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"ax-popup-wrapper\\\" aria-modal=\\\"true\\\">\\n <div\\n class=\\\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\\\"\\n tabindex=\\\"0\\\"\\n [class.ax-popup-dragging]=\\\"isDragging()\\\"\\n [style.position]=\\\"dragOffset().x || dragOffset().y ? 'fixed' : null\\\"\\n [style.left.px]=\\\"dragOffset().x || null\\\"\\n [style.top.px]=\\\"dragOffset().y || null\\\"\\n [style.transform]=\\\"dragOffset().x || dragOffset().y ? 'none' : null\\\"\\n >\\n <div\\n class=\\\"ax-popup-header-container\\\"\\n [class.ax-popup-draggable]=\\\"__config__()?.draggable\\\"\\n (mousedown)=\\\"onDragStart($event)\\\"\\n >\\n @if (__config__()?.header) {\\n <div class=\\\"ax-popup-header\\\">\\n <span class=\\\"ax-popup-title\\\">{{ title() | translate | async }}</span>\\n @if (__config__()?.closeButton) {\\n <ax-close-button tabindex=\\\"1\\\" (click)=\\\"_handleCloseClick()\\\"></ax-close-button>\\n }\\n </div>\\n }\\n </div>\\n <div class=\\\"ax-popup-main-container ax-loading-container\\\">\\n <div class=\\\"ax-popup-body-container\\\" #contentContainer></div>\\n <div class=\\\"ax-popup-footer-container\\\"></div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\":root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}.ax-popup-wrapper{display:contents}.ax-popup-header-container.ax-popup-draggable{cursor:move}.ax-popup.ax-popup-dragging{-webkit-user-select:none;user-select:none}.ax-popup{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));margin-left:auto;margin-right:auto;display:flex;width:auto;flex-direction:column;overflow:hidden;border-radius:var(--ax-comp-popup-border-radius);border-width:1px;border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));padding:0;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);outline:2px solid transparent;outline-offset:2px;color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{background-color:rgba(var(--ax-comp-popup-header-bg-color))}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-color:rgba(var(--ax-comp-popup-header-border-color));padding:.75rem}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:1rem;font-weight:500}@media (min-width: 768px){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:1.125rem;line-height:1.75rem}}.ax-popup ax-footer{box-shadow:0 2px 10px #0000004d;display:flex;align-items:center;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color));padding:.75rem}.ax-popup:focus{outline:2px solid transparent;outline-offset:2px}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;flex:1 1 0%;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{flex:1 1 0%;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-footer-container{background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:fit-content!important}.ax-popup.ax-fit .ax-popup-body-container{max-height:100vh}.ax-popup.ax-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}@media (min-width: 320px) and (max-width: 640px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:fit-content;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-body-container>ng-component>div{width:100%}}@media (min-width: 768px){.ax-popup.ax-popup-sm{width:55vw!important}.ax-popup.ax-popup-md{width:65vw!important}.ax-popup.ax-popup-lg{width:75vw!important}}@media (min-width: 1280px){.ax-popup.ax-popup-sm{width:30vw!important}.ax-popup.ax-popup-md{width:50vw!important}.ax-popup.ax-popup-lg{width:85vw!important}}@media (min-width: 1536px){.ax-popup.ax-popup-sm{width:25vw!important}.ax-popup.ax-popup-md{width:40vw!important}.ax-popup.ax-popup-lg{width:65vw!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}\\n\"], dependencies: [{ kind: \"component\", type: AXDecoratorCloseButtonComponent, selector: \"ax-close-button\", inputs: [\"closeAll\", \"icon\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-popup', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n { provide: AXClosableComponent, useExisting: AXPopupComponent },\n { provide: AXComponent, useExisting: AXPopupComponent },\n ], imports: [AXDecoratorCloseButtonComponent, AsyncPipe, AXTranslatorPipe], template: \"<div class=\\\"ax-popup-wrapper\\\" aria-modal=\\\"true\\\">\\n <div\\n class=\\\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\\\"\\n tabindex=\\\"0\\\"\\n [class.ax-popup-dragging]=\\\"isDragging()\\\"\\n [style.position]=\\\"dragOffset().x || dragOffset().y ? 'fixed' : null\\\"\\n [style.left.px]=\\\"dragOffset().x || null\\\"\\n [style.top.px]=\\\"dragOffset().y || null\\\"\\n [style.transform]=\\\"dragOffset().x || dragOffset().y ? 'none' : null\\\"\\n >\\n <div\\n class=\\\"ax-popup-header-container\\\"\\n [class.ax-popup-draggable]=\\\"__config__()?.draggable\\\"\\n (mousedown)=\\\"onDragStart($event)\\\"\\n >\\n @if (__config__()?.header) {\\n <div class=\\\"ax-popup-header\\\">\\n <span class=\\\"ax-popup-title\\\">{{ title() | translate | async }}</span>\\n @if (__config__()?.closeButton) {\\n <ax-close-button tabindex=\\\"1\\\" (click)=\\\"_handleCloseClick()\\\"></ax-close-button>\\n }\\n </div>\\n }\\n </div>\\n <div class=\\\"ax-popup-main-container ax-loading-container\\\">\\n <div class=\\\"ax-popup-body-container\\\" #contentContainer></div>\\n <div class=\\\"ax-popup-footer-container\\\"></div>\\n </div>\\n </div>\\n</div>\\n\", styles: [\":root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}.ax-popup-wrapper{display:contents}.ax-popup-header-container.ax-popup-draggable{cursor:move}.ax-popup.ax-popup-dragging{-webkit-user-select:none;user-select:none}.ax-popup{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));margin-left:auto;margin-right:auto;display:flex;width:auto;flex-direction:column;overflow:hidden;border-radius:var(--ax-comp-popup-border-radius);border-width:1px;border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));padding:0;--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);outline:2px solid transparent;outline-offset:2px;color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{background-color:rgba(var(--ax-comp-popup-header-bg-color))}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-color:rgba(var(--ax-comp-popup-header-border-color));padding:.75rem}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:1rem;font-weight:500}@media (min-width: 768px){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:1.125rem;line-height:1.75rem}}.ax-popup ax-footer{box-shadow:0 2px 10px #0000004d;display:flex;align-items:center;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color));padding:.75rem}.ax-popup:focus{outline:2px solid transparent;outline-offset:2px}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;flex:1 1 0%;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{flex:1 1 0%;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-footer-container{background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{width:100vw;max-height:calc(100 * var(--ax-vh));height:calc(100 * var(--ax-vh));border-radius:0!important}.ax-popup.ax-fit{width:fit-content!important}.ax-popup.ax-fit .ax-popup-body-container{max-height:100vh}.ax-popup.ax-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}@media (min-width: 320px) and (max-width: 640px){.ax-popup.ax-popup-sm,.ax-popup.ax-popup-md,.ax-popup.ax-popup-lg{width:93vw!important;height:fit-content;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important}.ax-popup.ax-popup-sm .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-md .ax-popup-body-container>ng-component>div,.ax-popup.ax-popup-lg .ax-popup-body-container>ng-component>div{width:100%}}@media (min-width: 768px){.ax-popup.ax-popup-sm{width:55vw!important}.ax-popup.ax-popup-md{width:65vw!important}.ax-popup.ax-popup-lg{width:75vw!important}}@media (min-width: 1280px){.ax-popup.ax-popup-sm{width:30vw!important}.ax-popup.ax-popup-md{width:50vw!important}.ax-popup.ax-popup-lg{width:85vw!important}}@media (min-width: 1536px){.ax-popup.ax-popup-sm{width:25vw!important}.ax-popup.ax-popup-md{width:40vw!important}.ax-popup.ax-popup-lg{width:65vw!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}\\n\"] }]\n }], propDecorators: { contentContainerRef: [{\n type: ViewChild,\n args: ['contentContainer', { read: ViewContainerRef, static: true }]\n }], contentContainerEl: [{\n type: ViewChild,\n args: ['contentContainer', { static: true }]\n }], __content__: [{ type: i0.Input, args: [{ isSignal: true, alias: \"__content__\", required: false }] }], __config__: [{ type: i0.Input, args: [{ isSignal: true, alias: \"__config__\", required: false }] }], __popupRef__: [{ type: i0.Input, args: [{ isSignal: true, alias: \"__popupRef__\", required: false }] }], __id__: [{ type: i0.Input, args: [{ isSignal: true, alias: \"__id__\", required: false }] }], onKeydownHandler: [{\n type: HostListener,\n args: ['keydown.escape']\n }], onDragMove: [{\n type: HostListener,\n args: ['document:mousemove', ['$event']]\n }], onDragEnd: [{\n type: HostListener,\n args: ['document:mouseup']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9wb3B1cC9zcmMvbGliL3BvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcG9wdXAvc3JjL2xpYi9wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBc0IsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0csT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFxQixrQkFBa0IsRUFBbUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRzVDOzs7O0dBSUc7QUFhSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQVpyRDs7UUFhVSxVQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDMUMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FB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O3NCQVF0RSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7O3NCQUd0RSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7c0JBNko5QyxZQUFZO3VCQUFDLGdCQUFnQjs7c0JBdUc3QixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFhN0MsWUFBWTt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBzaWduYWwsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQVhDbG9zYWJsZUNvbXBvbmVudCwgQVhDb21wb25lbnQsIEFYQ29tcG9uZW50Q2xvc2luZywgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yQ2xvc2VCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhDb21wb25lbnRJbnB1dHMsIEFYQ29tcG9uZW50U2VydmljZSwgQVhDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVhQb3B1cENvbmZpZywgQVhQb3B1cENvbnRlbnRUeXBlLCBBWFBvcHVwUmVmIH0gZnJvbSAnLi9wb3B1cC5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFRoZSBQb3B1cCBpcyBhIGNvbXBvbmVudCB3aGljaCBkaXNwbGF5cyBjb250ZW50IGluIGEgZGlhbG9nIG92ZXJsYXlcbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1wb3B1cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3B1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BvcHVwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ2xvc2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBvcHVwQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYUG9wdXBDb21wb25lbnQgfSxcbiAgXSxcbiAgaW1wb3J0czogW0FYRGVjb3JhdG9yQ2xvc2VCdXR0b25Db21wb25lbnQsIEFzeW5jUGlwZSwgQVhUcmFuc2xhdG9yUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUG9wdXBDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSBsb2FkaW5nU2VydmljZSA9IGluamVjdChBWExvYWRpbmdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfcGxhdGZvcm0gPSBpbmplY3QoQVhQbGF0Zm9ybSk7XG4gIHByaXZhdGUgY29tcG9uZW50U2VydmljZSA9IGluamVjdChBWENvbXBvbmVudFNlcnZpY2UpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRDb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIGNvbnRlbnRDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudENvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgY29udGVudENvbnRhaW5lckVsOiB7IG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50IH07XG5cbiAgLy8gSW5wdXRzIGZyb20gb3ZlcmxheSBzZXJ2aWNlXG4gIHJlYWRvbmx5IF9fY29udGVudF9fID0gaW5wdXQ8QVhQb3B1cENvbnRlbnRUeXBlPigpO1xuICByZWFkb25seSBfX2NvbmZpZ19fID0gaW5wdXQ8QVhQb3B1cENvbmZpZz4oKTtcbiAgcmVhZG9ubHkgX19wb3B1cFJlZl9fID0gaW5wdXQ8QVhQb3B1cFJlZj4oKTtcbiAgcmVhZG9ubHkgX19pZF9fID0gaW5wdXQ8bnVtYmVyPigpO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29tcG9uZW50IGlzIGxvYWRpbmcuXG4gICAqIEBkZWZhdWx0VmFsdWUgdHJ1ZVxuICAgKi9cbiAgaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9sb2FkaW5nSWQ6IG51bWJlcjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBDdXJyZW50IHRpdGxlICovXG4gIHByb3RlY3RlZCB0aXRsZSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgaXNEcmFnZ2luZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGRyYWdPZmZzZXQgPSBzaWduYWwoeyB4OiAwLCB5OiAwIH0pO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgZHJhZ1N0YXJ0UG9zID0geyB4OiAwLCB5OiAwIH07XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBlbGVtZW50U3RhcnRQb3MgPSB7IHg6IDAsIHk6IDAgfTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5fX2NvbmZpZ19fKCk7XG4gICAgaWYgKHRoaXMuX3BsYXRmb3JtLmlzKCdTTScpKSB7XG4gICAgICAvLyBEaXNhYmxlIGRyYWdnaW5nIG9uIHNtYWxsIHNjcmVlbnNcbiAgICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgY29uZmlnLmRyYWdnYWJsZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudGl0bGUuc2V0KGNvbmZpZz8udGl0bGUgPz8gJycpO1xuXG4gICAgdGhpcy5fbG9hZGluZ0lkID0gdGhpcy5sb2FkaW5nU2VydmljZS5zaG93KHtcbiAgICAgIGxvY2F0aW9uOiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlbmRlckNvbnRlbnQoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgYXN5bmMgcmVuZGVyQ29udGVudCgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fX2NvbnRlbnRfXygpO1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuX19jb25maWdfXygpO1xuXG4gICAgaWYgKCFjb250ZW50KSB7XG4gICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLmhpZGUodGhpcy5fbG9hZGluZ0lkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAvLyBSZW5kZXIgdGVtcGxhdGUgdXNpbmcgVmlld0NvbnRhaW5lclJlZiAoc3VwcG9ydHMgY29udGV4dClcbiAgICAgIHRoaXMuY29udGVudENvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcoY29udGVudCwge1xuICAgICAgICAkaW1wbGljaXQ6IGNvbmZpZz8uZGF0YSxcbiAgICAgICAgcmVmOiB0aGlzLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmhhbmRsZUNvbnRlbnRSZW5kZXJlZCgpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIFJlbmRlciBjb21wb25lbnRcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50U2VydmljZS5jcmVhdGVGcm9tQ29tcG9uZW50KGNvbnRlbnQgYXMgQVhDb21wb25lbnRUeXBlPHVua25vd24+KTtcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IGNvbXBvbmVudFJlZjtcblxuICAgICAgLy8gRXhwb3NlIGNvbXBvbmVudCBpbnN0YW5jZSB0byB0aGUgcG9wdXAgcmVmXG4gICAgICBjb25zdCBwb3B1cFJlZiA9IHRoaXMuX19wb3B1cFJlZl9fKCk7XG4gICAgICBpZiAocG9wdXBSZWYpIHtcbiAgICAgICAgcG9wdXBSZWYuY29tcG9uZW50SW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICB9XG5cbiAgICAgIC8vIEdldCBjb21wb25lbnQgaW5wdXQgZGVmaW5pdGlvbnMgdG8gY2hlY2sgYmVmb3JlIHNldHRpbmcgaW5wdXRzXG4gICAgICBjb25zdCBpbnB1dERlZnMgPSAoY29tcG9uZW50UmVmLmNvbXBvbmVudFR5cGUgYXMgdW5rbm93biBhcyB7IMm1Y21wPzogeyBpbnB1dHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9IH0pPy7JtWNtcFxuICAgICAgICA/LmlucHV0cztcblxuICAgICAgLy8gU2V0IGRhdGEgaW5wdXRzIChvbmx5IGlmIHRoZSBjb21wb25lbnQgaGFzIHRoZSBpbnB1dCBkZWZpbmVkKVxuICAgICAgaWYgKGNvbmZpZz8uZGF0YSAmJiB0eXBlb2YgY29uZmlnLmRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbmZpZy5kYXRhKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAoY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29uZmlnPy5pbnB1dHMgJiYgdHlwZW9mIGNvbmZpZy5pbnB1dHMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbmZpZy5pbnB1dHMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgIGlmIChpbnB1dERlZnMgJiYga2V5IGluIGlucHV0RGVmcykge1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLnNldElucHV0KGtleSwgdmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCBwb3B1cCByZWZlcmVuY2UgKG9ubHkgaWYgdGhlIGNvbXBvbmVudCBoYXMgdGhpcyBpbnB1dClcbiAgICAgIGlmIChpbnB1dERlZnMgJiYgJ19fcG9wdXBfXycgaW4gaW5wdXREZWZzKSB7XG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dCgnX19wb3B1cF9fJywgdGhpcy5fX3BvcHVwUmVmX18oKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE1vdmUgY29tcG9uZW50IHRvIGNvbnRhaW5lclxuICAgICAgY29uc3QgaG9zdEVsZW1lbnQgPSBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgIHRoaXMuY29udGVudENvbnRhaW5lckVsLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoaG9zdEVsZW1lbnQpO1xuXG4gICAgICAvLyBTdWJzY3JpYmUgdG8gY2xvc2UgZXZlbnQgaWYgYXZhaWxhYmxlXG4gICAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyB7XG4gICAgICAgIG9uQ2xvc2VkPzogeyBzdWJzY3JpYmU6IChmbjogKGU6IHsgZGF0YT86IHVua25vd24gfSkgPT4gdm9pZCkgPT4gdm9pZCB9O1xuICAgICAgfTtcbiAgICAgIGlmIChpbnN0YW5jZS5vbkNsb3NlZCkge1xuICAgICAgICBpbnN0YW5jZS5vbkNsb3NlZC5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgICB0aGlzLmNsb3NlKGUuZGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmhhbmRsZUNvbnRlbnRSZW5kZXJlZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgaGFuZGxlQ29udGVudFJlbmRlcmVkKCkge1xuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1wb3B1cC1ib2R5LWNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBjb250ZW50ID0gYm9keS5jaGlsZHJlblswXTtcblxuICAgICAgICBpZiAoIWNvbnRlbnQgfHwgIWJvZHkpIHJldHVybjtcblxuICAgICAgICBjb25zdCBwb3BIZWFkZXIgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1wb3B1cC1oZWFkZXItY29udGFpbmVyJyk7XG4gICAgICAgIGNvbnN0IHBvcEZvb3RlciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LXBvcHVwLWZvb3Rlci1jb250YWluZXInKTtcblxuICAgICAgICBjb25zdCBmb290ZXIgPSBjb250ZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCc6c2NvcGUgPiBheC1mb290ZXInKTtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gY29udGVudC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignOnNjb3BlID4gYXgtaGVhZGVyJyk7XG5cbiAgICAgICAgaWYgKGZvb3RlciAmJiBwb3BGb290ZXIpIHtcbiAgICAgICAgICBwb3BGb290ZXIuYXBwZW5kKGZvb3Rlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhlYWRlciAmJiBwb3BIZWFkZXIpIHtcbiAgICAgICAgICBwb3BIZWFkZXIuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgICAgcG9wSGVhZGVyLmFwcGVuZChoZWFkZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMubG9hZGluZ1NlcnZpY2UuaGlkZSh0aGlzLl9sb2FkaW5nSWQpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2NhcGUnKVxuICBvbktleWRvd25IYW5kbGVyKCkge1xuICAgIGNvbnN0IGZvY3VzZWRPckhhc0ZvY3VzZWQgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkubWF0Y2hlcygnOmZvY3VzLXdpdGhpbicpO1xuICAgIGlmICh0aGlzLl9fY29uZmlnX18oKT8uY2xvc2VCdXR0b24gJiYgZm9jdXNlZE9ySGFzRm9jdXNlZCkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBfaGFuZGxlQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLmhpZGUodGhpcy5fbG9hZGluZ0lkKTtcbiAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBmb2N1cyBvbiB0aGUgYC5heC1wb3B1cGAgZWxlbWVudCB3aXRoaW4gdGhlIGhvc3QgZWxlbWVudCBhZnRlciBhIHNob3J0IGRlbGF5LlxuICAgKi9cbiAgZm9jdXMoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4oJy5heC1wb3B1cCcpPy5mb2N1cygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIHBvcHVwLCBlbWl0dGluZyBjb21wb25lbnQgcmVmZXJlbmNlLCBob3N0IGVsZW1lbnQsIGFuZCBvcHRpb25hbCBkYXRhLlxuICAgKiBAcGFyYW0ge3Vua25vd259IFtkYXRhXVxuICAgKi9cbiAgY2xvc2UoZGF0YT86IHVua25vd24pIHtcbiAgICBjb25zdCBjbG9zZUZuID0gKCkgPT4ge1xuICAgICAgdGhpcy5fX3BvcHVwUmVmX18oKT8uY2xvc2UoZGF0YSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNvbXBvbmVudEluc3RhbmNlID0gdGhpcy5fY29tcG9uZW50UmVmPy5pbnN0YW5jZSBhc1xuICAgICAgfCB7IG9uQ2xvc2luZz86IChlOiBBWENvbXBvbmVudENsb3NpbmcpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+IH1cbiAgICAgIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKHR5cGVvZiBjb21wb25lbnRJbnN0YW5jZT8ub25DbG9zaW5nID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBlZTogQVhDb21wb25lbnRDbG9zaW5nID0ge1xuICAgICAgICBjYW5jZWw6IGZhbHNlLFxuICAgICAgICBkYXRhLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGNsb3NpbmdSZXN1bHQgPSBjb21wb25lbnRJbnN0YW5jZS5vbkNsb3NpbmcoZWUpO1xuICAgICAgaWYgKGNsb3NpbmdSZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgIGNsb3NpbmdSZXN1bHQudGhlbigoKSA9PiB7XG4gICAgICAgICAgaWYgKCFlZS5jYW5jZWwpIHtcbiAgICAgICAgICAgIGNsb3NlRm4oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFlZS5jYW5jZWwpIHtcbiAgICAgICAgICBjbG9zZUZuKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY2xvc2VGbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGlucHV0cyBvbiB0aGUgY29udGVudCBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB2YWx1ZXMgLSBPYmplY3QgY29udGFpbmluZyBpbnB1dCB2YWx1ZXMgdG8gc2V0XG4gICAqL1xuICBzZXRDb250ZW50SW5wdXRzKHZhbHVlczogQVhDb21wb25lbnRJbnB1dHMpIHtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl9jb21wb25lbnRSZWY7XG4gICAgaWYgKGNvbXBvbmVudFJlZikge1xuICAgICAgT2JqZWN0LmVudHJpZXModmFsdWVzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29tcG9uZW50UmVmLnNldElucHV0KGtleSwgdmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBvcHVwIHRpdGxlLlxuICAgKiBAcGFyYW0gdGl0bGUgLSBUaGUgbmV3IHRpdGxlXG4gICAqL1xuICBzZXRUaXRsZSh0aXRsZTogc3RyaW5nKSB7XG4gICAgdGhpcy50aXRsZS5zZXQodGl0bGUpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLy8gRHJhZyBmdW5jdGlvbmFsaXR5XG4gIHByb3RlY3RlZCBvbkRyYWdTdGFydChldmVudDogTW91c2VFdmVudCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuX19jb25maWdfXygpO1xuICAgIGlmICghY29uZmlnPy5kcmFnZ2FibGUpIHJldHVybjtcblxuICAgIHRoaXMuaXNEcmFnZ2luZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5kcmFnU3RhcnRQb3MgPSB7IHg6IGV2ZW50LmNsaWVudFgsIHk6IGV2ZW50LmNsaWVudFkgfTtcblxuICAgIGNvbnN0IHBvcHVwID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCcuYXgtcG9wdXAnKTtcbiAgICBpZiAocG9wdXApIHtcbiAgICAgIGNvbnN0IHJlY3QgPSBwb3B1cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHRoaXMuZWxlbWVudFN0YXJ0UG9zID0geyB4OiByZWN0LmxlZnQsIHk6IHJlY3QudG9wIH07XG4gICAgfVxuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gIG9uRHJhZ01vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaXNEcmFnZ2luZygpKSByZXR1cm47XG5cbiAgICBjb25zdCBkZWx0YVggPSBldmVudC5jbGllbnRYIC0gdGhpcy5kcmFnU3RhcnRQb3MueDtcbiAgICBjb25zdCBkZWx0YVkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5kcmFnU3RhcnRQb3MueTtcblxuICAgIHRoaXMuZHJhZ09mZnNldC5zZXQoe1xuICAgICAgeDogdGhpcy5lbGVtZW50U3RhcnRQb3MueCArIGRlbHRhWCxcbiAgICAgIHk6IHRoaXMuZWxlbWVudFN0YXJ0UG9zLnkgKyBkZWx0YVksXG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwJylcbiAgb25EcmFnRW5kKCkge1xuICAgIHRoaXMuaXNEcmFnZ2luZy5zZXQoZmFsc2UpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtcG9wdXAtd3JhcHBlclwiIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImF4LXBvcHVwIGF4LXBvcHVwLXt7IF9fY29uZmlnX18oKT8uc2l6ZSB8fCAnbWQnIH19XCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICAgIFtjbGFzcy5heC1wb3B1cC1kcmFnZ2luZ109XCJpc0RyYWdnaW5nKClcIlxuICAgIFtzdHlsZS5wb3NpdGlvbl09XCJkcmFnT2Zmc2V0KCkueCB8fCBkcmFnT2Zmc2V0KCkueSA/ICdmaXhlZCcgOiBudWxsXCJcbiAgICBbc3R5bGUubGVmdC5weF09XCJkcmFnT2Zmc2V0KCkueCB8fCBudWxsXCJcbiAgICBbc3R5bGUudG9wLnB4XT1cImRyYWdPZmZzZXQoKS55IHx8IG51bGxcIlxuICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiZHJhZ09mZnNldCgpLnggfHwgZHJhZ09mZnNldCgpLnkgPyAnbm9uZScgOiBudWxsXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYXgtcG9wdXAtaGVhZGVyLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3MuYXgtcG9wdXAtZHJhZ2dhYmxlXT1cIl9fY29uZmlnX18oKT8uZHJhZ2dhYmxlXCJcbiAgICAgIChtb3VzZWRvd24pPVwib25EcmFnU3RhcnQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgQGlmIChfX2NvbmZpZ19fKCk/LmhlYWRlcikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcG9wdXAtaGVhZGVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1wb3B1cC10aXRsZVwiPnt7IHRpdGxlKCkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICBAaWYgKF9fY29uZmlnX18oKT8uY2xvc2VCdXR0b24pIHtcbiAgICAgICAgICAgIDxheC1jbG9zZS1idXR0b24gdGFiaW5kZXg9XCIxXCIgKGNsaWNrKT1cIl9oYW5kbGVDbG9zZUNsaWNrKClcIj48L2F4LWNsb3NlLWJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1wb3B1cC1tYWluLWNvbnRhaW5lciBheC1sb2FkaW5nLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LXBvcHVwLWJvZHktY29udGFpbmVyXCIgI2NvbnRlbnRDb250YWluZXI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtcG9wdXAtZm9vdGVyLWNvbnRhaW5lclwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Directive, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPopupComponentBase {\n constructor() {\n this.__popup__ = input(...(ngDevMode ? [undefined, { debugName: \"__popup__\" }] : []));\n }\n close(data = null) {\n this.__popup__().close(data);\n }\n setTitle(title) {\n this.__popup__().setTitle(title);\n }\n bringToFront() {\n this.__popup__().bringToFront();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupComponentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.15\", type: AXPopupComponentBase, isStandalone: true, inputs: { __popup__: { classPropertyName: \"__popup__\", publicName: \"__popup__\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupComponentBase, decorators: [{\n type: Directive\n }], propDecorators: { __popup__: [{ type: i0.Input, args: [{ isSignal: true, alias: \"__popup__\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9wb3B1cC9zcmMvbGliL3BvcHVwLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUQsTUFBTSxlQUFlLENBQUM7O0FBaURoRyxNQUFNLE9BQWdCLG9CQUFvQjtJQUQxQztRQUVFLGNBQVMsR0FBRyxLQUFLLCtEQUFjLENBQUM7S0FhakM7SUFYUSxLQUFLLENBQUMsT0FBWSxJQUFJO1FBQzNCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xDLENBQUM7K0dBYm1CLG9CQUFvQjttR0FBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUR6QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnRJbnB1dHMsIEFYQ29tcG9uZW50VHlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS9jb21wb25lbnRzJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgaW5wdXQsIFN0YXRpY1Byb3ZpZGVyLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBBWFBvcHVwQ29udGVudFR5cGUgPSBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IEFYQ29tcG9uZW50VHlwZTx1bmtub3duPjtcblxuZXhwb3J0IHR5cGUgQVhQb3B1cFNpemVUeXBlID0gJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ2Z1bGwnIHwgJ2ZpdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQb3B1cENvbmZpZyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBjbG9zZUJ1dHRvbj86IGJvb2xlYW47XG4gIGhlYWRlcj86IGJvb2xlYW47XG4gIG1heGltaXphYmxlPzogYm9vbGVhbjtcbiAgc2l6ZT86IEFYUG9wdXBTaXplVHlwZTtcbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgaW5wdXRzYCBpbnN0ZWFkIHRvIHBhc3MgZGF0YSB0byB0aGUgcG9wdXAgY29tcG9uZW50LiAqL1xuICBkYXRhPzogdW5rbm93bjtcbiAgaW5wdXRzPzogdW5rbm93bjtcbiAgZHJhZ2dhYmxlPzogYm9vbGVhbjtcbiAgaGFzQmFja2Ryb3A/OiBib29sZWFuO1xuICBiYWNrZHJvcENsYXNzPzogc3RyaW5nO1xuICBjbG9zZU9uQmFja2Ryb3BDbGljaz86IGJvb2xlYW47XG4gIHZpZXdDb250YWluZXJSZWY/OiBWaWV3Q29udGFpbmVyUmVmO1xuICBwcm92aWRlcnM/OiBTdGF0aWNQcm92aWRlcltdO1xuICBwYW5lbENsYXNzPzogc3RyaW5nW107XG4gIGRpcmVjdGlvbj86ICdydGwnIHwgJ2x0cic7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQb3B1cERhdGEge1xuICB0aXRsZTogc3RyaW5nO1xuICBjbG9zZUJ1dHRvbjogYm9vbGVhbjtcbiAgaGVhZGVyOiBib29sZWFuO1xuICBtYXhpbWl6YWJsZTogYm9vbGVhbjtcbiAgc2l6ZTogQVhQb3B1cFNpemVUeXBlO1xuICBkYXRhPzogdW5rbm93bjtcbiAgZHJhZ2dhYmxlOiBib29sZWFuO1xuICBjb250ZW50OiBBWFBvcHVwQ29udGVudFR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQb3B1cFJlZjxUUmVzdWx0ID0gYW55PiB7XG4gIGNsb3NlOiAoZGF0YT86IFRSZXN1bHQpID0+IHZvaWQ7XG4gIHNldElucHV0czogKHZhbHVlczogQVhDb21wb25lbnRJbnB1dHMpID0+IHZvaWQ7XG4gIHNldFRpdGxlOiAodGl0bGU6IHN0cmluZykgPT4gdm9pZDtcbiAgLyoqIEJyaW5ncyB0aGlzIHBvcHVwIHRvIHRoZSBmcm9udCBvZiBhbGwgb3RoZXIgb3ZlcmxheXMgKi9cbiAgYnJpbmdUb0Zyb250OiAoKSA9PiB2b2lkO1xuICBvbkNsb3NlOiBTdWJqZWN0PFRSZXN1bHQ+O1xuICAvKiogVGhlIGNvbXBvbmVudCBpbnN0YW5jZSByZW5kZXJlZCBpbnNpZGUgdGhlIHBvcHVwIChhdmFpbGFibGUgYWZ0ZXIgY29udGVudCBpcyByZW5kZXJlZCkgKi9cbiAgY29tcG9uZW50SW5zdGFuY2U/OiB1bmtub3duO1xufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBvcHVwQ29tcG9uZW50QmFzZSB7XG4gIF9fcG9wdXBfXyA9IGlucHV0PEFYUG9wdXBSZWY+KCk7XG5cbiAgcHVibGljIGNsb3NlKGRhdGE6IGFueSA9IG51bGwpIHtcbiAgICB0aGlzLl9fcG9wdXBfXygpLmNsb3NlKGRhdGEpO1xuICB9XG5cbiAgcHVibGljIHNldFRpdGxlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fcG9wdXBfXygpLnNldFRpdGxlKHRpdGxlKTtcbiAgfVxuXG4gIHB1YmxpYyBicmluZ1RvRnJvbnQoKSB7XG4gICAgdGhpcy5fX3BvcHVwX18oKS5icmluZ1RvRnJvbnQoKTtcbiAgfVxufVxuIl19","import { AXComponentClosedPromise } from '@acorex/cdk/common';\nimport { AXOverlayService } from '@acorex/cdk/overlay';\nimport { ComponentRef, inject, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPopupComponent } from './popup.component';\nimport * as i0 from \"@angular/core\";\n/**\n * This is a service which you can create popup with it\n *\n * @category Components\n */\nexport class AXPopupService {\n constructor() {\n this.popupList = new Map();\n this.overlayService = inject(AXOverlayService);\n }\n /**\n * @ignore\n */\n open(arg1, arg2) {\n let config = {\n closeButton: true,\n header: true,\n size: 'md',\n maximizable: false,\n draggable: true,\n hasBackdrop: true,\n closeOnBackdropClick: false,\n data: {},\n };\n if (typeof arg2 === 'string') {\n config.title = arg2;\n }\n else {\n config = Object.assign(config, arg2);\n }\n const promise = new AXComponentClosedPromise((resolve) => {\n this.openInternal(arg1, config).then((ref) => {\n ref.onClose.subscribe((data) => {\n if (resolve) {\n resolve({\n sender: ref.componentInstance,\n data: data,\n });\n }\n });\n });\n });\n return promise;\n }\n /**\n * Opens a popup with the specified content and configuration.\n * @param content - Component or template to display\n * @param config - Configuration options for the popup\n * @returns Promise<AXPopupRef> - Reference to the opened popup\n */\n async openInternal(content, config) {\n const randomId = Math.floor(Math.random() * 100000000000);\n const onClose = new Subject();\n const returnRef = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values) => {\n this.setInputs(randomId, values);\n },\n setTitle: (title) => {\n this.setTitle(randomId, title);\n },\n bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n };\n // Build panel classes\n const panelClasses = ['ax-popup-overlay'];\n if (config.panelClass) {\n panelClasses.push(...config.panelClass);\n }\n const ref = await this.overlayService.create(AXPopupComponent, {\n backdrop: {\n enabled: config.hasBackdrop ?? true,\n background: true,\n closeOnClick: config.closeOnBackdropClick ?? false,\n },\n panelClass: panelClasses,\n inputs: {\n __content__: content,\n __config__: config,\n __popupRef__: returnRef,\n __id__: randomId,\n },\n });\n this.popupList.set(randomId, { overlay: ref, popup: returnRef });\n return returnRef;\n }\n /**\n * Closes a popup by its ID.\n * @param id - The popup ID to close\n * @param data - Optional data to pass to the close event\n */\n close(id, data) {\n const ref = this.popupList.get(id);\n if (!ref)\n return;\n ref.popup.onClose.next(data);\n ref.popup.onClose.complete();\n ref.overlay.dispose();\n this.popupList.delete(id);\n }\n /**\n * Sets input values for a popup by its ID.\n * @param id - The popup ID\n * @param values - Object containing input values to set\n */\n setInputs(id, values) {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref)\n return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance;\n componentInstance.setContentInputs(values);\n }\n }\n /**\n * Sets the title for a popup by its ID.\n * @param id - The popup ID\n * @param title - The new title\n */\n setTitle(id, title) {\n const ref = this.popupList.get(id)?.overlay.instance;\n if (!ref)\n return;\n if (ref instanceof ComponentRef) {\n const componentInstance = ref.instance;\n componentInstance.setTitle(title);\n }\n }\n /**\n * Brings a popup to the front of all other overlays.\n * @param id - The popup ID to bring to front\n */\n bringToFront(id) {\n const ref = this.popupList.get(id);\n if (!ref)\n return;\n ref.overlay.bringToFront();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvcG9wdXAvc3JjL2xpYi9wb3B1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHckQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBSVUsY0FBUyxHQUFHLElBQUksR0FBRyxFQUEwRSxDQUFDO1FBQzlGLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0EwSm5EO0lBL0lDOztPQUVHO0lBQ0gsSUFBSSxDQUFDLElBQXdCLEVBQUUsSUFBNEI7UUFDekQsSUFBSSxNQUFNLEdBQWtCO1lBQzFCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUUsS0FBSztZQUNsQixTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFDO1FBQ0YsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFD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QUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPO1FBQ2pCLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQzsrR0EzSlUsY0FBYzttSEFBZCxjQUFjLGNBRmIsTUFBTTs7NEZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudENsb3NlZFByb21pc2UgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhPdmVybGF5UmVmLCBBWE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBBWENvbXBvbmVudElucHV0cyB9IGZyb20gJ0BhY29yZXgvY29yZS9jb21wb25lbnRzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZiwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQb3B1cENvbmZpZywgQVhQb3B1cENvbnRlbnRUeXBlLCBBWFBvcHVwUmVmIH0gZnJvbSAnLi9wb3B1cC5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFRoaXMgaXMgYSBzZXJ2aWNlIHdoaWNoIHlvdSBjYW4gY3JlYXRlIHBvcHVwIHdpdGggaXRcbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQb3B1cFNlcnZpY2Uge1xuICBwcml2YXRlIHBvcHVwTGlzdCA9IG5ldyBNYXA8bnVtYmVyLCB7IG92ZXJsYXk6IEFYT3ZlcmxheVJlZjxBWFBvcHVwQ29tcG9uZW50PjsgcG9wdXA6IEFYUG9wdXBSZWYgfT4oKTtcbiAgcHJpdmF0ZSBvdmVybGF5U2VydmljZSA9IGluamVjdChBWE92ZXJsYXlTZXJ2aWNlKTtcblxuICAvKipcbiAgICogIE9wZW4gcG9wdXAgMVxuICAgKi9cbiAgb3Blbihjb250ZW50OiBBWFBvcHVwQ29udGVudFR5cGUsIHRpdGxlOiBzdHJpbmcpOiBBWENvbXBvbmVudENsb3NlZFByb21pc2U7XG4gIC8qKlxuICAgKiAgT3BlbiBwb3B1cCAyXG4gICAqL1xuICBvcGVuKGNvbnRlbnQ6IEFYUG9wdXBDb250ZW50VHlwZSwgY29uZmlnPzogQVhQb3B1cENvbmZpZyk6IEFYQ29tcG9uZW50Q2xvc2VkUHJvbWlzZTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIG9wZW4oYXJnMTogQVhQb3B1cENvbnRlbnRUeXBlLCBhcmcyOiBzdHJpbmcgfCBBWFBvcHVwQ29uZmlnKTogQVhDb21wb25lbnRDbG9zZWRQcm9taXNlIHtcbiAgICBsZXQgY29uZmlnOiBBWFBvcHVwQ29uZmlnID0ge1xuICAgICAgY2xvc2VCdXR0b246IHRydWUsXG4gICAgICBoZWFkZXI6IHRydWUsXG4gICAgICBzaXplOiAnbWQnLFxuICAgICAgbWF4aW1pemFibGU6IGZhbHNlLFxuICAgICAgZHJhZ2dhYmxlOiB0cnVlLFxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBjbG9zZU9uQmFja2Ryb3BDbGljazogZmFsc2UsXG4gICAgICBkYXRhOiB7fSxcbiAgICB9O1xuICAgIGlmICh0eXBlb2YgYXJnMiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbmZpZy50aXRsZSA9IGFyZzI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbmZpZyA9IE9iamVjdC5hc3NpZ24oY29uZmlnLCBhcmcyKTtcbiAgICB9XG5cblxuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgQVhDb21wb25lbnRDbG9zZWRQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICB0aGlzLm9wZW5JbnRlcm5hbChhcmcxLCBjb25maWcpLnRoZW4oKHJlZikgPT4ge1xuICAgICAgICByZWYub25DbG9zZS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICBpZiAocmVzb2x2ZSkge1xuICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgIHNlbmRlcjogcmVmLmNvbXBvbmVudEluc3RhbmNlLFxuICAgICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBwb3B1cCB3aXRoIHRoZSBzcGVjaWZpZWQgY29udGVudCBhbmQgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIGNvbnRlbnQgLSBDb21wb25lbnQgb3IgdGVtcGxhdGUgdG8gZGlzcGxheVxuICAgKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgcG9wdXBcbiAgICogQHJldHVybnMgUHJvbWlzZTxBWFBvcHVwUmVmPiAtIFJlZmVyZW5jZSB0byB0aGUgb3BlbmVkIHBvcHVwXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIG9wZW5JbnRlcm5hbDxUUmVzdWx0ID0gYW55PihcbiAgICBjb250ZW50OiBBWFBvcHVwQ29udGVudFR5cGUsXG4gICAgY29uZmlnOiBBWFBvcHVwQ29uZmlnLFxuICApOiBQcm9taXNlPEFYUG9wdXBSZWY8VFJlc3VsdD4+IHtcbiAgICBjb25zdCByYW5kb21JZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDAwMDAwMCk7XG4gICAgY29uc3Qgb25DbG9zZSA9IG5ldyBTdWJqZWN0PFRSZXN1bHQ+KCk7XG5cbiAgICBjb25zdCByZXR1cm5SZWY6IEFYUG9wdXBSZWY8VFJlc3VsdD4gPSB7XG4gICAgICBjbG9zZTogKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZShyYW5kb21JZCwgZGF0YSk7XG4gICAgICB9LFxuICAgICAgc2V0SW5wdXRzOiAodmFsdWVzOiBBWENvbXBvbmVudElucHV0cykgPT4ge1xuICAgICAgICB0aGlzLnNldElucHV0cyhyYW5kb21JZCwgdmFsdWVzKTtcbiAgICAgIH0sXG4gICAgICBzZXRUaXRsZTogKHRpdGxlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5zZXRUaXRsZShyYW5kb21JZCwgdGl0bGUpO1xuICAgICAgfSxcbiAgICAgIGJyaW5nVG9Gcm9udDogKCkgPT4ge1xuICAgICAgICB0aGlzLmJyaW5nVG9Gcm9udChyYW5kb21JZCk7XG4gICAgICB9LFxuICAgICAgb25DbG9zZSxcbiAgICB9O1xuXG4gICAgLy8gQnVpbGQgcGFuZWwgY2xhc3Nlc1xuICAgIGNvbnN0IHBhbmVsQ2xhc3NlcyA9IFsnYXgtcG9wdXAtb3ZlcmxheSddO1xuICAgIGlmIChjb25maWcucGFuZWxDbGFzcykge1xuICAgICAgcGFuZWxDbGFzc2VzLnB1c2goLi4uY29uZmlnLnBhbmVsQ2xhc3MpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlZiA9IGF3YWl0IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlKEFYUG9wdXBDb21wb25lbnQsIHtcbiAgICAgIGJhY2tkcm9wOiB7XG4gICAgICAgIGVuYWJsZWQ6IGNvbmZpZy5oYXNCYWNrZHJvcCA/PyB0cnVlLFxuICAgICAgICBiYWNrZ3JvdW5kOiB0cnVlLFxuICAgICAgICBjbG9zZU9uQ2xpY2s6IGNvbmZpZy5jbG9zZU9uQmFja2Ryb3BDbGljayA/PyBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBwYW5lbENsYXNzOiBwYW5lbENsYXNzZXMsXG4gICAgICBpbnB1dHM6IHtcbiAgICAgICAgX19jb250ZW50X186IGNvbnRlbnQsXG4gICAgICAgIF9fY29uZmlnX186IGNvbmZpZyxcbiAgICAgICAgX19wb3B1cFJlZl9fOiByZXR1cm5SZWYsXG4gICAgICAgIF9faWRfXzogcmFuZG9tSWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5wb3B1cExpc3Quc2V0KHJhbmRvbUlkLCB7IG92ZXJsYXk6IHJlZiwgcG9wdXA6IHJldHVyblJlZiB9KTtcblxuICAgIHJldHVybiByZXR1cm5SZWY7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIGEgcG9wdXAgYnkgaXRzIElELlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgcG9wdXAgSUQgdG8gY2xvc2VcbiAgICogQHBhcmFtIGRhdGEgLSBPcHRpb25hbCBkYXRhIHRvIHBhc3MgdG8gdGhlIGNsb3NlIGV2ZW50XG4gICAqL1xuICBjbG9zZTxUUmVzdWx0ID0gYW55PihpZDogbnVtYmVyLCBkYXRhPzogVFJlc3VsdCk6IHZvaWQge1xuICAgIGNvbnN0IHJlZiA9IHRoaXMucG9wdXBMaXN0LmdldChpZCk7XG4gICAgaWYgKCFyZWYpIHJldHVybjtcbiAgICByZWYucG9wdXAub25DbG9zZS5uZXh0KGRhdGEpO1xuICAgIHJlZi5wb3B1cC5vbkNsb3NlLmNvbXBsZXRlKCk7XG4gICAgcmVmLm92ZXJsYXkuZGlzcG9zZSgpO1xuICAgIHRoaXMucG9wdXBMaXN0LmRlbGV0ZShpZCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBpbnB1dCB2YWx1ZXMgZm9yIGEgcG9wdXAgYnkgaXRzIElELlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgcG9wdXAgSURcbiAgICogQHBhcmFtIHZhbHVlcyAtIE9iamVjdCBjb250YWluaW5nIGlucHV0IHZhbHVlcyB0byBzZXRcbiAgICovXG4gIHNldElucHV0cyhpZDogbnVtYmVyLCB2YWx1ZXM6IEFYQ29tcG9uZW50SW5wdXRzKTogdm9pZCB7XG4gICAgY29uc3QgcmVmID0gdGhpcy5wb3B1cExpc3QuZ2V0KGlkKT8ub3ZlcmxheS5pbnN0YW5jZTtcbiAgICBpZiAoIXJlZikgcmV0dXJuO1xuICAgIGlmIChyZWYgaW5zdGFuY2VvZiBDb21wb25lbnRSZWYpIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudEluc3RhbmNlID0gcmVmLmluc3RhbmNlIGFzIEFYUG9wdXBDb21wb25lbnQ7XG4gICAgICBjb21wb25lbnRJbnN0YW5jZS5zZXRDb250ZW50SW5wdXRzKHZhbHVlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRpdGxlIGZvciBhIHBvcHVwIGJ5IGl0cyBJRC5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHBvcHVwIElEXG4gICAqIEBwYXJhbSB0aXRsZSAtIFRoZSBuZXcgdGl0bGVcbiAgICovXG4gIHNldFRpdGxlKGlkOiBudW1iZXIsIHRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByZWYgPSB0aGlzLnBvcHVwTGlzdC5nZXQoaWQpPy5vdmVybGF5Lmluc3RhbmNlO1xuICAgIGlmICghcmVmKSByZXR1cm47XG4gICAgaWYgKHJlZiBpbnN0YW5jZW9mIENvbXBvbmVudFJlZikge1xuICAgICAgY29uc3QgY29tcG9uZW50SW5zdGFuY2UgPSByZWYuaW5zdGFuY2UgYXMgQVhQb3B1cENvbXBvbmVudDtcbiAgICAgIGNvbXBvbmVudEluc3RhbmNlLnNldFRpdGxlKHRpdGxlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnJpbmdzIGEgcG9wdXAgdG8gdGhlIGZyb250IG9mIGFsbCBvdGhlciBvdmVybGF5cy5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHBvcHVwIElEIHRvIGJyaW5nIHRvIGZyb250XG4gICAqL1xuICBicmluZ1RvRnJvbnQoaWQ6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHJlZiA9IHRoaXMucG9wdXBMaXN0LmdldChpZCk7XG4gICAgaWYgKCFyZWYpIHJldHVybjtcbiAgICByZWYub3ZlcmxheS5icmluZ1RvRnJvbnQoKTtcbiAgfVxufVxuIl19","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXPopupComponent } from './popup.component';\nimport { AXPopupService } from './popup.service';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXPopupComponent];\nconst MODULES = [CommonModule, AXCommonModule, AXDecoratorModule, AXTranslationModule];\nexport class AXPopupModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupModule, imports: [CommonModule, AXCommonModule, AXDecoratorModule, AXTranslationModule, AXPopupComponent], exports: [AXPopupComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupModule, providers: [AXPopupService], imports: [MODULES, COMPONENT] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: AXPopupModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXPopupService],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9wb3B1cC9zcmMvbGliL3BvcHVwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUVqRCxNQUFNLFNBQVMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDckMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFPdkYsTUFBTSxPQUFPLGFBQWE7K0dBQWIsYUFBYTtnSEFBYixhQUFhLFlBUFQsWUFBWSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFEbEUsZ0JBQWdCLGFBQWhCLGdCQUFnQjtnSEFRdEIsYUFBYSxhQUZiLENBQUMsY0FBYyxDQUFDLFlBRmQsT0FBTyxFQUFLLFNBQVM7OzRGQUl2QixhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUG9wdXBDb21wb25lbnQgfSBmcm9tICcuL3BvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJy4vcG9wdXAuc2VydmljZSc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWFBvcHVwQ29tcG9uZW50XTtcbmNvbnN0IE1PRFVMRVMgPSBbQ29tbW9uTW9kdWxlLCBBWENvbW1vbk1vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGVdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW0FYUG9wdXBTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQb3B1cE1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtcG9wdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcHVwL3NyYy9hY29yZXgtY29tcG9uZW50cy1wb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
package/kanban/index.d.ts
CHANGED
|
@@ -77,7 +77,7 @@ declare class AXKanbanComponent extends NXComponent {
|
|
|
77
77
|
private performMove;
|
|
78
78
|
/**
|
|
79
79
|
* Emit beforeDrop event and return whether to continue with the drop operation.
|
|
80
|
-
* Supports both synchronous and asynchronous event handlers.
|
|
80
|
+
* Supports both synchronous and asynchronous event handlers via the `wait()` method.
|
|
81
81
|
* @param item The original item from dataSource that is being moved
|
|
82
82
|
* @param previousStatusKey The status key the item is moving from
|
|
83
83
|
* @param currentStatusKey The status key the item is moving to
|
|
@@ -130,7 +130,7 @@ interface AXKanbanBeforeDropEvent extends NXNativeEvent<AXKanbanComponent, Mouse
|
|
|
130
130
|
currentStatusKey: any;
|
|
131
131
|
previousIndex: number;
|
|
132
132
|
currentIndex: number;
|
|
133
|
-
canceled: boolean;
|
|
133
|
+
canceled: boolean | (() => boolean | Promise<boolean>);
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
export { AXKanbanComponent };
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/components",
|
|
3
|
-
"version": "20.3.
|
|
3
|
+
"version": "20.3.21",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/core": "20.3.
|
|
6
|
-
"@acorex/cdk": "20.3.
|
|
5
|
+
"@acorex/core": "20.3.21",
|
|
6
|
+
"@acorex/cdk": "20.3.21",
|
|
7
7
|
"@angular/common": "^20.0.0",
|
|
8
8
|
"@angular/core": "^20.0.0",
|
|
9
9
|
"@angular/cdk": "^20.0.0",
|
|
@@ -221,6 +221,10 @@
|
|
|
221
221
|
"types": "./file-explorer/index.d.ts",
|
|
222
222
|
"default": "./fesm2022/acorex-components-file-explorer.mjs"
|
|
223
223
|
},
|
|
224
|
+
"./flow-chart": {
|
|
225
|
+
"types": "./flow-chart/index.d.ts",
|
|
226
|
+
"default": "./fesm2022/acorex-components-flow-chart.mjs"
|
|
227
|
+
},
|
|
224
228
|
"./form": {
|
|
225
229
|
"types": "./form/index.d.ts",
|
|
226
230
|
"default": "./fesm2022/acorex-components-form.mjs"
|
|
@@ -233,10 +237,6 @@
|
|
|
233
237
|
"types": "./image/index.d.ts",
|
|
234
238
|
"default": "./fesm2022/acorex-components-image.mjs"
|
|
235
239
|
},
|
|
236
|
-
"./flow-chart": {
|
|
237
|
-
"types": "./flow-chart/index.d.ts",
|
|
238
|
-
"default": "./fesm2022/acorex-components-flow-chart.mjs"
|
|
239
|
-
},
|
|
240
240
|
"./image-editor": {
|
|
241
241
|
"types": "./image-editor/index.d.ts",
|
|
242
242
|
"default": "./fesm2022/acorex-components-image-editor.mjs"
|
|
@@ -429,14 +429,14 @@
|
|
|
429
429
|
"types": "./step-wizard/index.d.ts",
|
|
430
430
|
"default": "./fesm2022/acorex-components-step-wizard.mjs"
|
|
431
431
|
},
|
|
432
|
-
"./tabs": {
|
|
433
|
-
"types": "./tabs/index.d.ts",
|
|
434
|
-
"default": "./fesm2022/acorex-components-tabs.mjs"
|
|
435
|
-
},
|
|
436
432
|
"./switch": {
|
|
437
433
|
"types": "./switch/index.d.ts",
|
|
438
434
|
"default": "./fesm2022/acorex-components-switch.mjs"
|
|
439
435
|
},
|
|
436
|
+
"./tabs": {
|
|
437
|
+
"types": "./tabs/index.d.ts",
|
|
438
|
+
"default": "./fesm2022/acorex-components-tabs.mjs"
|
|
439
|
+
},
|
|
440
440
|
"./tag": {
|
|
441
441
|
"types": "./tag/index.d.ts",
|
|
442
442
|
"default": "./fesm2022/acorex-components-tag.mjs"
|
package/popup/index.d.ts
CHANGED
|
@@ -45,6 +45,8 @@ interface AXPopupRef<TResult = any> {
|
|
|
45
45
|
/** Brings this popup to the front of all other overlays */
|
|
46
46
|
bringToFront: () => void;
|
|
47
47
|
onClose: Subject<TResult>;
|
|
48
|
+
/** The component instance rendered inside the popup (available after content is rendered) */
|
|
49
|
+
componentInstance?: unknown;
|
|
48
50
|
}
|
|
49
51
|
declare abstract class AXPopupComponentBase {
|
|
50
52
|
__popup__: i0.InputSignal<AXPopupRef<any>>;
|