@acorex/components 21.0.1-next.82 → 21.0.1-next.83

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.
Files changed (47) hide show
  1. package/fesm2022/acorex-components-button.mjs +2 -2
  2. package/fesm2022/acorex-components-button.mjs.map +1 -1
  3. package/fesm2022/acorex-components-conversation.mjs +16 -16
  4. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  5. package/fesm2022/acorex-components-cron-job.mjs +2 -2
  6. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  7. package/fesm2022/acorex-components-data-list.mjs +2 -2
  8. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  9. package/fesm2022/acorex-components-flow-chart.mjs +6 -6
  10. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  11. package/fesm2022/acorex-components-grid-layout-builder.mjs +2 -2
  12. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-components-rest-api-generator.mjs +10 -10
  14. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  15. package/fesm2022/acorex-components-scheduler-picker.mjs +114 -120
  16. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  17. package/fesm2022/acorex-components-slider.mjs +1 -1
  18. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  19. package/fesm2022/acorex-components-tabs.mjs +2 -2
  20. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  21. package/fesm2022/acorex-components-tree-view.mjs +2 -2
  22. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  23. package/package.json +3 -27
  24. package/collapse/README.md +0 -3
  25. package/drawer-legacy/README.md +0 -3
  26. package/fesm2022/acorex-components-collapse.mjs +0 -369
  27. package/fesm2022/acorex-components-collapse.mjs.map +0 -1
  28. package/fesm2022/acorex-components-drawer-legacy.mjs +0 -218
  29. package/fesm2022/acorex-components-drawer-legacy.mjs.map +0 -1
  30. package/fesm2022/acorex-components-file-explorer.mjs +0 -307
  31. package/fesm2022/acorex-components-file-explorer.mjs.map +0 -1
  32. package/fesm2022/acorex-components-number-box-legacy.mjs +0 -412
  33. package/fesm2022/acorex-components-number-box-legacy.mjs.map +0 -1
  34. package/fesm2022/acorex-components-scss.mjs +0 -22
  35. package/fesm2022/acorex-components-scss.mjs.map +0 -1
  36. package/fesm2022/acorex-components-tree-view-legacy.mjs +0 -515
  37. package/fesm2022/acorex-components-tree-view-legacy.mjs.map +0 -1
  38. package/file-explorer/README.md +0 -3
  39. package/number-box-legacy/README.md +0 -3
  40. package/scss/README.md +0 -3
  41. package/tree-view-legacy/README.md +0 -3
  42. package/types/acorex-components-collapse.d.ts +0 -172
  43. package/types/acorex-components-drawer-legacy.d.ts +0 -86
  44. package/types/acorex-components-file-explorer.d.ts +0 -103
  45. package/types/acorex-components-number-box-legacy.d.ts +0 -191
  46. package/types/acorex-components-scss.d.ts +0 -10
  47. package/types/acorex-components-tree-view-legacy.d.ts +0 -185
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-flow-chart.mjs","sources":["../../../../packages/components/flow-chart/src/lib/flow-chart.service.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart.module.ts","../../../../packages/components/flow-chart/src/acorex-components-flow-chart.ts"],"sourcesContent":["import { effect, inject, Injectable, NgZone, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n AXFlowChartEdges,\n AXFlowChartNodes,\n AXLineClickEvent,\n AXNodeClickEvent,\n HTMLElementWithDataset,\n} from './flow-chart.type';\n\n@Injectable()\nexport class AXFlowChartService {\n private zone = inject(NgZone);\n\n initialFlowChartEdge = signal([]);\n initialFlowChartNode = signal([]);\n selectedNode = signal<AXFlowChartNodes | null>(null);\n selectedEdge = signal<AXFlowChartEdges | null>(null);\n readonly svgService = signal(null);\n readonly canvasService = signal(null);\n\n readonly lineClick = new Subject<AXLineClickEvent>();\n readonly lineDbClick = new Subject<AXLineClickEvent>();\n readonly nodeClick = new Subject<AXNodeClickEvent>();\n readonly nodeDbClick = new Subject<AXNodeClickEvent>();\n readonly onEdgeUpdate = new Subject<AXFlowChartEdges>();\n readonly onNodeUpdate = new Subject<AXFlowChartNodes>();\n\n private nodesMap = new Map<string, HTMLElementWithDataset>();\n private eventListeners = new Map<string, Map<string, EventListener>>();\n private anchorClickBuffer: { nodeId: string; anchor: string } | null = null;\n\n private currentConnection: {\n source?: { id: string; anchor: string };\n target?: { id: string; anchor: string };\n mouse?: { x: number; y: number };\n } | null = null;\n private draggingConnection = false;\n private tempLine: SVGLineElement | null = null;\n\n #eff2 = effect(() => {\n if (this.initialFlowChartEdge()) {\n setTimeout(() => {\n this.drawEdges(this.initialFlowChartEdge());\n });\n }\n });\n\n #eff3 = effect(() => {\n if (this.initialFlowChartNode()) {\n this.createNode(this.initialFlowChartNode());\n }\n });\n\n private addEventListener(element: HTMLElement, event: string, handler: EventListener) {\n const elementId = element.dataset['id'] || 'global';\n if (!this.eventListeners.has(elementId)) {\n this.eventListeners.set(elementId, new Map());\n }\n\n const elementListeners = this.eventListeners.get(elementId);\n if (elementListeners) {\n const boundHandler = handler.bind(this);\n elementListeners.set(event, boundHandler);\n element.addEventListener(event, boundHandler);\n }\n }\n\n private removeEventListeners(elementId: string) {\n const elementListeners = this.eventListeners.get(elementId);\n if (elementListeners) {\n elementListeners.forEach((handler, event) => {\n const element = this.nodesMap.get(elementId);\n if (element) {\n element.removeEventListener(event, handler);\n }\n });\n this.eventListeners.delete(elementId);\n }\n }\n\n private setupNodeEventListeners(\n el: HTMLElementWithDataset,\n node: { id: string; type: string; label: string; x: number; y: number },\n ) {\n this.addEventListener(el, 'click', (e: Event) => {\n this.nodeClick.next({ target: el, event: e as MouseEvent });\n this.selectedNode.set(node);\n el.classList.add('selected');\n this.nodesMap.forEach((existingNode) => {\n if (existingNode !== el) {\n existingNode.classList.remove('selected');\n }\n });\n });\n\n this.addEventListener(el, 'dblclick', (e: Event) => {\n this.nodeDbClick.next({ target: el, event: e as MouseEvent });\n });\n\n this.addEventListener(el, 'mouseenter', () => {\n el.classList.add('hover');\n });\n\n this.addEventListener(el, 'mouseleave', () => {\n el.classList.remove('hover');\n });\n }\n\n private setupAnchorEventListeners(dot: HTMLElementWithDataset, el: HTMLElementWithDataset) {\n // start drag to connect\n this.addEventListener(dot, 'mousedown', (e: Event) => {\n const mouseEvent = e as MouseEvent;\n mouseEvent.stopPropagation();\n mouseEvent.preventDefault();\n const pos = this.getAnchorPoint(el, dot.dataset['anchor']);\n\n this.currentConnection = {\n source: {\n id: dot.dataset['nodeId'],\n anchor: dot.dataset['anchor'],\n },\n mouse: { x: mouseEvent.clientX, y: mouseEvent.clientY },\n };\n\n this.startTempLine(pos.x, pos.y);\n this.draggingConnection = true;\n });\n\n this.addEventListener(dot, 'click', (e: Event) => {\n e.stopPropagation();\n\n if (dot.classList.contains('selected')) {\n dot.classList.remove('selected');\n } else {\n dot.classList.add('selected');\n }\n\n const clicked = {\n nodeId: dot.dataset['nodeId'],\n anchor: dot.dataset['anchor'],\n };\n\n console.log(clicked);\n\n if (!this.anchorClickBuffer) {\n this.anchorClickBuffer = clicked;\n } else {\n const source = this.anchorClickBuffer;\n const target = clicked;\n\n if (source.nodeId !== target.nodeId) {\n this.pushAndCreateEdgeData(\n { id: source.nodeId, anchor: source.anchor },\n { id: target.nodeId, anchor: target.anchor },\n );\n }\n\n this.anchorClickBuffer = null;\n }\n });\n\n this.addEventListener(dot, 'mouseenter', () => {\n dot.classList.add('hover');\n });\n\n this.addEventListener(dot, 'mouseleave', () => {\n dot.classList.remove('hover');\n });\n }\n\n private addAnchors(el: HTMLElementWithDataset, type: string) {\n ['top', 'bottom', 'left', 'right'].forEach((anchor) => {\n const dot = document.createElement('div') as HTMLElementWithDataset;\n dot.className = 'ax-flow-chart-anchor';\n dot.dataset['anchor'] = anchor;\n dot.dataset['nodeId'] = el.dataset['id'];\n\n this.positionAnchor(dot, anchor, type);\n el.appendChild(dot);\n\n this.setupAnchorEventListeners(dot, el);\n });\n }\n\n private makeDraggable(el: HTMLElement) {\n let offsetX = 0,\n offsetY = 0,\n isDragging = false;\n\n this.addEventListener(el, 'mousedown', (e: Event) => {\n const mouseEvent = e as MouseEvent;\n if ((mouseEvent.target as HTMLElement).classList.contains('ax-flow-chart-anchor')) return;\n isDragging = true;\n offsetX = mouseEvent.clientX - el.offsetLeft;\n offsetY = mouseEvent.clientY - el.offsetTop;\n mouseEvent.preventDefault();\n });\n\n const mousemoveHandler = (e: MouseEvent) => {\n if (isDragging) {\n el.style.left = e.clientX - offsetX + 'px';\n el.style.top = e.clientY - offsetY + 'px';\n this.drawEdges(this.initialFlowChartEdge());\n\n this.initialFlowChartNode.update((value) => {\n const node = value.find((node) => node.id === el.dataset['id']);\n if (node) {\n node.x = e.clientX - offsetX;\n node.y = e.clientY - offsetY;\n }\n return value;\n });\n }\n\n const elementId = (e.target as HTMLElement).id;\n if (elementId === 'ax-flow-chart-renderer-connections' || elementId === 'ax-flow-chart-renderer-canvas') {\n if (this.draggingConnection && this.tempLine) {\n this.tempLine.setAttribute('x2', e.offsetX.toString());\n this.tempLine.setAttribute('y2', e.offsetY.toString());\n }\n }\n };\n\n const mouseupHandler = (e: MouseEvent) => {\n isDragging = false;\n if (this.draggingConnection) {\n const target = (e.target as HTMLElement).closest('.ax-flow-chart-anchor') as HTMLElementWithDataset;\n if (target && target.dataset['nodeId'] !== this.currentConnection?.source?.id) {\n this.currentConnection = {\n ...this.currentConnection,\n target: {\n id: target.dataset['nodeId'],\n anchor: target.dataset['anchor'],\n },\n };\n this.finishConnection();\n }\n this.clearTempLine();\n this.draggingConnection = false;\n }\n };\n\n // Add global event listeners\n this.zone.runOutsideAngular(() => {\n document.addEventListener('mousemove', mousemoveHandler);\n document.addEventListener('mouseup', mouseupHandler);\n });\n\n // Store global listeners\n const globalListeners = this.eventListeners.get('global');\n if (globalListeners) {\n globalListeners.set('mousemove', mousemoveHandler as EventListener);\n globalListeners.set('mouseup', mouseupHandler as EventListener);\n }\n }\n\n private positionAnchor(dot: HTMLElement, anchor: string, type: string) {\n if (type !== 'diamond') {\n switch (anchor) {\n case 'top':\n dot.style.top = '0%';\n dot.style.left = '50%';\n break;\n case 'bottom':\n dot.style.top = '100%';\n dot.style.left = '50%';\n break;\n case 'left':\n dot.style.top = '50%';\n dot.style.left = '0%';\n break;\n case 'right':\n dot.style.top = '50%';\n dot.style.left = '100%';\n break;\n }\n } else {\n switch (anchor) {\n case 'top':\n dot.style.top = '0%';\n dot.style.left = '0%';\n break;\n case 'bottom':\n dot.style.top = '100%';\n dot.style.left = '100%';\n break;\n case 'left':\n dot.style.top = '100%';\n dot.style.left = '0%';\n break;\n case 'right':\n dot.style.top = '0%';\n dot.style.left = '100%';\n break;\n }\n }\n }\n\n private getAnchorPoint(el: HTMLElement, anchor: string): { x: number; y: number } {\n const rect = el.getBoundingClientRect();\n const centerX = el.offsetLeft + rect.width / 2;\n const centerY = el.offsetTop + rect.height / 2;\n\n switch (anchor) {\n case 'top':\n return { x: centerX, y: el.offsetTop };\n case 'bottom':\n return { x: centerX, y: el.offsetTop + rect.height };\n case 'left':\n return { x: el.offsetLeft, y: centerY };\n case 'right':\n return { x: el.offsetLeft + rect.width, y: centerY };\n default:\n return { x: centerX, y: centerY };\n }\n }\n\n private startTempLine(x: number, y: number) {\n const svgElement = this.svgService()?.nativeElement;\n\n if (!svgElement) return;\n\n this.tempLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n this.tempLine.setAttribute('x1', x.toString());\n this.tempLine.setAttribute('y1', y.toString());\n this.tempLine.setAttribute('x2', x.toString());\n this.tempLine.setAttribute('y2', y.toString());\n this.tempLine.setAttribute('stroke', 'rgba(var(--ax-sys-color-on-lightest-surface),0.5)');\n this.tempLine.setAttribute('stroke-width', '2');\n this.tempLine.setAttribute('stroke-dasharray', '4');\n svgElement.appendChild(this.tempLine);\n }\n\n private clearTempLine() {\n if (this.tempLine && this.tempLine.parentElement) {\n this.svgService()?.nativeElement.removeChild(this.tempLine);\n this.tempLine = null;\n }\n }\n\n private pushAndCreateEdgeData(source: { id: string; anchor: string }, target: { id: string; anchor: string }) {\n const newEdge = {\n id: `edge-${Math.random().toString()}`,\n source,\n target,\n };\n\n this.onEdgeUpdate.next(newEdge);\n this.initialFlowChartEdge.update((value) => [...value, newEdge]);\n this.drawEdges();\n }\n\n drawEdges(edges?: AXFlowChartEdges[]) {\n const svg = this.svgService()?.nativeElement;\n if (!svg) return;\n\n // Clear existing edges\n svg.innerHTML = '';\n\n // Use provided edges or get from signal\n const edgesToDraw = edges || this.initialFlowChartEdge();\n\n edgesToDraw.forEach((edge) => {\n const sourceNode = this.nodesMap.get(edge.source.id);\n const targetNode = this.nodesMap.get(edge.target.id);\n\n if (sourceNode) {\n const sourceAnchor = sourceNode.querySelector(`[data-anchor=\"${edge.source.anchor}\"]`);\n if (sourceAnchor) sourceAnchor.classList.add('selected');\n }\n if (targetNode) {\n const targetAnchor = targetNode.querySelector(`[data-anchor=\"${edge.target.anchor}\"]`);\n if (targetAnchor) targetAnchor.classList.add('selected');\n }\n\n if (sourceNode && targetNode) {\n const sourcePoint = this.getAnchorPoint(sourceNode, edge.source.anchor);\n const targetPoint = this.getAnchorPoint(targetNode, edge.target.anchor);\n\n const line = this.createLine(sourcePoint, targetPoint, edge);\n line.classList.add('ax-flow-chart-line');\n\n // Add click event listener for line selection\n this.addEventListener(line as unknown as HTMLElement, 'click', (e: Event) => {\n e.stopPropagation();\n this.lineClick.next({ target: edge, event: e as MouseEvent });\n this.selectedEdge.set(edge);\n this.selectedNode.set(null);\n // Remove selection from all other lines\n document.querySelectorAll('.ax-flow-chart-line').forEach((l) => {\n if (l !== line) l.classList.remove('selected');\n });\n // Add selection to clicked line\n line.classList.add('selected');\n // Remove selection from all nodes\n this.nodesMap.forEach((node) => node.classList.remove('selected'));\n });\n\n svg.appendChild(line);\n }\n });\n }\n\n createLine(from: { x: number; y: number }, to: { x: number; y: number }, edge: AXFlowChartEdges) {\n const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n line.setAttribute('x1', from.x.toString());\n line.setAttribute('y1', from.y.toString());\n line.setAttribute('x2', to.x.toString());\n line.setAttribute('y2', to.y.toString());\n line.setAttribute('stroke', 'rgba(var(--ax-sys-color-on-surface))');\n line.setAttribute('stroke-width', '3');\n line.classList.add('ax-flow-chart-line');\n line.addEventListener('click', (e: MouseEvent) => {\n this.lineClick.next({ target: edge, event: e });\n this.selectedEdge.set(edge);\n });\n line.addEventListener('dblclick', (e: MouseEvent) => {\n this.lineDbClick.next({ target: edge, event: e });\n });\n return line;\n }\n\n private finishConnection() {\n if (this.currentConnection?.source && this.currentConnection?.target) {\n this.pushAndCreateEdgeData(this.currentConnection.source, this.currentConnection.target);\n }\n this.currentConnection = null;\n }\n\n removeEdge(edge: AXFlowChartEdges) {\n this.initialFlowChartEdge.update((value) => value.filter((e) => e.id !== edge.id));\n\n // Remove selected class from connected anchors\n const sourceNode = this.nodesMap.get(edge.source.id);\n const targetNode = this.nodesMap.get(edge.target.id);\n\n if (sourceNode) {\n const sourceAnchor = sourceNode.querySelector(`[data-anchor=\"${edge.source.anchor}\"]`);\n if (sourceAnchor) sourceAnchor.classList.remove('selected');\n }\n\n if (targetNode) {\n const targetAnchor = targetNode.querySelector(`[data-anchor=\"${edge.target.anchor}\"]`);\n if (targetAnchor) targetAnchor.classList.remove('selected');\n }\n }\n\n createNode(nodes: { id: string; type: string; label: string; x: number; y: number }[]) {\n document.querySelectorAll('.ax-flow-chart-node')?.forEach((node) => node.remove());\n\n nodes.forEach((node) => {\n const el = document.createElement('div') as HTMLElementWithDataset;\n const p = document.createElement('p') as HTMLElementWithDataset;\n p.innerText = node.label;\n el.appendChild(p);\n el.className = 'ax-flow-chart-node';\n el.classList.add(`ax-${node.type}`);\n el.style.left = node.x + 'px';\n el.style.top = node.y + 'px';\n el.dataset['id'] = node.id;\n\n this.addAnchors(el, node.type);\n this.makeDraggable(el);\n this.setupNodeEventListeners(el, node);\n\n this.canvasService().nativeElement.appendChild(el);\n this.nodesMap.set(node.id, el);\n });\n }\n\n removeNode(nodeId: string) {\n this.initialFlowChartNode.update((value) => value.filter((e) => e.id !== nodeId));\n\n this.initialFlowChartEdge().forEach((edge) => {\n if (edge.source.id === nodeId || edge.target.id === nodeId) {\n this.removeEdge(edge);\n }\n });\n\n document.querySelector(`[data-id=\"${nodeId}\"]`)?.remove();\n this.anchorClickBuffer = null;\n }\n\n cleanup() {\n this.nodesMap.forEach((_, id) => this.removeEventListeners(id));\n this.nodesMap.clear();\n this.eventListeners.clear();\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXFlowChartService } from '../flow-chart.service';\n\n@Component({\n selector: 'ax-flow-chart-creator',\n templateUrl: './flow-chart-creator.component.html',\n styleUrls: ['./flow-chart-creator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextBoxModule, AXButtonModule, CommonModule, FormsModule],\n providers: [{ provide: AXComponent, useExisting: AXFlowChartCreatorComponent }],\n})\nexport class AXFlowChartCreatorComponent extends NXComponent {\n service = inject(AXFlowChartService);\n protected selectedShape = signal('rectangle');\n protected label = 'Label';\n\n protected selectShapeHandler(shape: 'rectangle' | 'circle' | 'diamond') {\n this.selectedShape.set(shape);\n }\n\n protected createShapeHandler() {\n const newNode = {\n id: Math.random().toString(),\n type: this.selectedShape(),\n label: this.label,\n x: 0,\n y: 0,\n };\n this.service.initialFlowChartNode.update((value) => [...value, newNode]);\n this.service.onNodeUpdate.next(newNode);\n }\n\n protected printChart(): void {\n const printWindow = window.open('', '_blank');\n if (!printWindow) return;\n\n const canvas = this.service.canvasService()?.nativeElement;\n if (!canvas) return;\n\n // Get all styles from the document and component\n const styles = Array.from(document.styleSheets)\n .map((sheet) => {\n try {\n return Array.from(sheet.cssRules)\n .map((rule) => rule.cssText)\n .join('\\n');\n } catch (e) {\n return '';\n }\n })\n .join('\\n');\n\n // Add print-specific styles for anchors\n const printStyles = `\n ${styles}\n .ax-flow-chart-anchor {\n opacity: 1 !important;\n }\n `;\n\n // Create the print content with proper styling\n const printContent = `\n <!DOCTYPE html>\n <html>\n <head>\n <title>Flow Chart Print</title>\n <style>\n ${printStyles}\n </style>\n </head>\n <body>\n <ax-flow-chart-renderer>\n ${canvas.outerHTML}\n </ax-flow-chart-renderer>\n </body>\n </html>\n `;\n\n printWindow.document.write(printContent);\n printWindow.document.close();\n }\n}\n","<div class=\"ax-shape-container\">\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'rectangle' }\"\n (click)=\"selectShapeHandler('rectangle')\"\n class=\"ax-rectangle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'circle' }\"\n (click)=\"selectShapeHandler('circle')\"\n class=\"ax-circle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'diamond' }\"\n (click)=\"selectShapeHandler('diamond')\"\n class=\"ax-diamond\"\n ></div>\n</div>\n<ax-text-box class=\"ax-sm\" [(ngModel)]=\"label\" placeholder=\"Label\"> </ax-text-box>\n\n<ax-button class=\"ax-sm\" (onClick)=\"createShapeHandler()\" color=\"primary\" text=\"Create\"></ax-button>\n<ax-button color=\"primary\" text=\"Print\" class=\"ax-sm\" (click)=\"printChart()\"></ax-button>\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n OnDestroy,\n output,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXFlowChartService } from '../flow-chart.service';\nimport { AXFlowChartEdges, AXFlowChartNodes, AXLineClickEvent, AXNodeClickEvent } from '../flow-chart.type';\n\n@Component({\n selector: 'ax-flow-chart-renderer',\n templateUrl: './flow-chart-renderer.component.html',\n styleUrls: ['./flow-chart-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXFlowChartRendererComponent }],\n})\nexport class AXFlowChartRendererComponent extends NXComponent implements OnDestroy {\n private canvas = viewChild<ElementRef>('canvas');\n private svg = viewChild<ElementRef>('connections');\n private service = inject(AXFlowChartService);\n\n readonly onLineClick = output<AXLineClickEvent>();\n readonly onLineDbClick = output<AXLineClickEvent>();\n readonly onNodeClick = output<AXNodeClickEvent>();\n readonly onNodeDbClick = output<AXNodeClickEvent>();\n readonly onEdgeUpdate = output<AXFlowChartEdges>();\n readonly onNodeUpdate = output<AXFlowChartNodes>();\n\n #init = afterNextRender(() => {\n this.setupEventListeners();\n });\n\n #eff = effect(() => {\n if (this.canvas() && this.svg()) {\n this.initializeServices();\n }\n });\n\n private setupEventListeners(): void {\n this.service.lineClick.subscribe((value) => {\n this.onLineClick.emit(value);\n });\n this.service.lineDbClick.subscribe((value) => {\n this.onLineDbClick.emit(value);\n });\n this.service.nodeClick.subscribe((value) => {\n this.onNodeClick.emit(value);\n });\n this.service.nodeDbClick.subscribe((value) => {\n this.onNodeDbClick.emit(value);\n });\n this.service.onEdgeUpdate.subscribe((newEdge) => {\n this.onEdgeUpdate.emit(newEdge);\n });\n this.service.onNodeUpdate.subscribe((newNode) => {\n this.onNodeUpdate.emit(newNode);\n });\n }\n\n private initializeServices(): void {\n this.service.canvasService.set(this.canvas());\n this.service.svgService.set(this.svg());\n\n // Add click handlers for parent elements\n const canvas = this.canvas()?.nativeElement;\n const svg = this.svg()?.nativeElement;\n\n if (canvas) {\n canvas.addEventListener('click', (e: Event) => {\n if (e.target === canvas) {\n this.service.selectedNode.set(null);\n this.service.selectedEdge.set(null);\n document.querySelectorAll('.ax-flow-chart-node').forEach((node) => node.classList.remove('selected'));\n document.querySelectorAll('.ax-flow-chart-line').forEach((line) => line.classList.remove('selected'));\n }\n });\n }\n\n if (svg) {\n svg.addEventListener('click', (e: Event) => {\n if (e.target === svg) {\n this.service.selectedNode.set(null);\n this.service.selectedEdge.set(null);\n document.querySelectorAll('.ax-flow-chart-node').forEach((node) => node.classList.remove('selected'));\n document.querySelectorAll('.ax-flow-chart-line').forEach((line) => line.classList.remove('selected'));\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n this.cleanup();\n }\n\n private cleanup(): void {\n this.service.cleanup();\n this.service.lineClick.unsubscribe();\n this.service.lineDbClick.unsubscribe();\n this.service.nodeClick.unsubscribe();\n this.service.nodeDbClick.unsubscribe();\n this.service.onEdgeUpdate.unsubscribe();\n }\n}\n","<div id=\"ax-flow-chart-renderer-canvas\" #canvas>\n <svg class=\"ax-flow-chart-renderer-svg\" id=\"ax-flow-chart-renderer-connections\" #connections></svg>\n</div>\n","import { AXComponent, AXFocusableComponent, AXValuableComponent, NXComponent } from '@acorex/cdk/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostListener,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXFlowChartService } from './flow-chart.service';\nimport { AXFlowChartEdges, AXFlowChartNodes } from './flow-chart.type';\n\n@Component({\n selector: 'ax-flow-chart',\n templateUrl: './flow-chart.component.html',\n styleUrls: ['./flow-chart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXFlowChartService,\n { provide: AXComponent, useExisting: AXFlowChartComponent },\n { provide: AXValuableComponent, useExisting: AXFlowChartComponent },\n { provide: AXFocusableComponent, useExisting: AXFlowChartComponent },\n ],\n})\nexport class AXFlowChartComponent extends NXComponent {\n private flowChartService = inject(AXFlowChartService);\n\n initialFlowChartNode = input.required<AXFlowChartNodes[]>();\n initialFlowChartEdge = input.required<AXFlowChartEdges[]>();\n selectedNode = computed(() => this.flowChartService.selectedNode());\n selectedEdge = computed(() => this.flowChartService.selectedEdge());\n\n #init = afterNextRender(() => {\n this.flowChartService.initialFlowChartNode.set(this.initialFlowChartNode());\n this.flowChartService.initialFlowChartEdge.set(this.initialFlowChartEdge());\n });\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (event.key === 'Delete') {\n const selectedNode = this.selectedNode();\n const selectedEdge = this.selectedEdge();\n\n if (selectedNode) {\n this.removeNode(selectedNode.id);\n } else if (selectedEdge) {\n this.removeEdge(selectedEdge);\n }\n }\n }\n\n /**\n * Draws edges on the flow chart.\n *\n * @param edges Array of edges to draw.\n * @returns void\n */\n drawEdges(edges: AXFlowChartEdges[]) {\n this.flowChartService.drawEdges(edges);\n }\n\n /**\n * Removes a specific edge from the flow chart.\n *\n * @param edge The edge object to remove.\n * @returns void\n */\n removeEdge(edge: AXFlowChartEdges) {\n this.flowChartService.removeEdge(edge);\n }\n\n /**\n * Creates one or more nodes on the flow chart.\n *\n * @param nodes Array of node definitions to create.\n * @returns void\n */\n createNode(nodes: { id: string; type: string; label: string; x: number; y: number }[]) {\n this.flowChartService.createNode(nodes);\n }\n\n /**\n * Removes a node by its identifier.\n *\n * @param nodeId The unique id of the node to remove.\n * @returns void\n */\n removeNode(nodeId: string) {\n this.flowChartService.removeNode(nodeId);\n }\n}\n","<ng-content select=\"ax-header\"></ng-content>\n<ng-content select=\"ax-flow-chart-renderer\"></ng-content>\n<ng-content select=\"ax-footer\"></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFlowChartCreatorComponent } from './flow-chart-creator/flow-chart-creator.component';\nimport { AXFlowChartRendererComponent } from './flow-chart-renderer/flow-chart-renderer.component';\nimport { AXFlowChartComponent } from './flow-chart.component';\n\nconst COMPONENT = [AXFlowChartRendererComponent, AXFlowChartCreatorComponent, AXFlowChartComponent];\nconst MODULES = [CommonModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXFlowChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-flow-chart.mjs","sources":["../../../../packages/components/flow-chart/src/lib/flow-chart.service.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart.module.ts","../../../../packages/components/flow-chart/src/acorex-components-flow-chart.ts"],"sourcesContent":["import { effect, inject, Injectable, NgZone, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n AXFlowChartEdges,\n AXFlowChartNodes,\n AXLineClickEvent,\n AXNodeClickEvent,\n HTMLElementWithDataset,\n} from './flow-chart.type';\n\n@Injectable()\nexport class AXFlowChartService {\n private zone = inject(NgZone);\n\n initialFlowChartEdge = signal([]);\n initialFlowChartNode = signal([]);\n selectedNode = signal<AXFlowChartNodes | null>(null);\n selectedEdge = signal<AXFlowChartEdges | null>(null);\n readonly svgService = signal(null);\n readonly canvasService = signal(null);\n\n readonly lineClick = new Subject<AXLineClickEvent>();\n readonly lineDbClick = new Subject<AXLineClickEvent>();\n readonly nodeClick = new Subject<AXNodeClickEvent>();\n readonly nodeDbClick = new Subject<AXNodeClickEvent>();\n readonly onEdgeUpdate = new Subject<AXFlowChartEdges>();\n readonly onNodeUpdate = new Subject<AXFlowChartNodes>();\n\n private nodesMap = new Map<string, HTMLElementWithDataset>();\n private eventListeners = new Map<string, Map<string, EventListener>>();\n private anchorClickBuffer: { nodeId: string; anchor: string } | null = null;\n\n private currentConnection: {\n source?: { id: string; anchor: string };\n target?: { id: string; anchor: string };\n mouse?: { x: number; y: number };\n } | null = null;\n private draggingConnection = false;\n private tempLine: SVGLineElement | null = null;\n\n #eff2 = effect(() => {\n if (this.initialFlowChartEdge()) {\n setTimeout(() => {\n this.drawEdges(this.initialFlowChartEdge());\n });\n }\n });\n\n #eff3 = effect(() => {\n if (this.initialFlowChartNode()) {\n this.createNode(this.initialFlowChartNode());\n }\n });\n\n private addEventListener(element: HTMLElement, event: string, handler: EventListener) {\n const elementId = element.dataset['id'] || 'global';\n if (!this.eventListeners.has(elementId)) {\n this.eventListeners.set(elementId, new Map());\n }\n\n const elementListeners = this.eventListeners.get(elementId);\n if (elementListeners) {\n const boundHandler = handler.bind(this);\n elementListeners.set(event, boundHandler);\n element.addEventListener(event, boundHandler);\n }\n }\n\n private removeEventListeners(elementId: string) {\n const elementListeners = this.eventListeners.get(elementId);\n if (elementListeners) {\n elementListeners.forEach((handler, event) => {\n const element = this.nodesMap.get(elementId);\n if (element) {\n element.removeEventListener(event, handler);\n }\n });\n this.eventListeners.delete(elementId);\n }\n }\n\n private setupNodeEventListeners(\n el: HTMLElementWithDataset,\n node: { id: string; type: string; label: string; x: number; y: number },\n ) {\n this.addEventListener(el, 'click', (e: Event) => {\n this.nodeClick.next({ target: el, event: e as MouseEvent });\n this.selectedNode.set(node);\n el.classList.add('selected');\n this.nodesMap.forEach((existingNode) => {\n if (existingNode !== el) {\n existingNode.classList.remove('selected');\n }\n });\n });\n\n this.addEventListener(el, 'dblclick', (e: Event) => {\n this.nodeDbClick.next({ target: el, event: e as MouseEvent });\n });\n\n this.addEventListener(el, 'mouseenter', () => {\n el.classList.add('hover');\n });\n\n this.addEventListener(el, 'mouseleave', () => {\n el.classList.remove('hover');\n });\n }\n\n private setupAnchorEventListeners(dot: HTMLElementWithDataset, el: HTMLElementWithDataset) {\n // start drag to connect\n this.addEventListener(dot, 'mousedown', (e: Event) => {\n const mouseEvent = e as MouseEvent;\n mouseEvent.stopPropagation();\n mouseEvent.preventDefault();\n const pos = this.getAnchorPoint(el, dot.dataset['anchor']);\n\n this.currentConnection = {\n source: {\n id: dot.dataset['nodeId'],\n anchor: dot.dataset['anchor'],\n },\n mouse: { x: mouseEvent.clientX, y: mouseEvent.clientY },\n };\n\n this.startTempLine(pos.x, pos.y);\n this.draggingConnection = true;\n });\n\n this.addEventListener(dot, 'click', (e: Event) => {\n e.stopPropagation();\n\n if (dot.classList.contains('selected')) {\n dot.classList.remove('selected');\n } else {\n dot.classList.add('selected');\n }\n\n const clicked = {\n nodeId: dot.dataset['nodeId'],\n anchor: dot.dataset['anchor'],\n };\n\n console.log(clicked);\n\n if (!this.anchorClickBuffer) {\n this.anchorClickBuffer = clicked;\n } else {\n const source = this.anchorClickBuffer;\n const target = clicked;\n\n if (source.nodeId !== target.nodeId) {\n this.pushAndCreateEdgeData(\n { id: source.nodeId, anchor: source.anchor },\n { id: target.nodeId, anchor: target.anchor },\n );\n }\n\n this.anchorClickBuffer = null;\n }\n });\n\n this.addEventListener(dot, 'mouseenter', () => {\n dot.classList.add('hover');\n });\n\n this.addEventListener(dot, 'mouseleave', () => {\n dot.classList.remove('hover');\n });\n }\n\n private addAnchors(el: HTMLElementWithDataset, type: string) {\n ['top', 'bottom', 'left', 'right'].forEach((anchor) => {\n const dot = document.createElement('div') as HTMLElementWithDataset;\n dot.className = 'ax-flow-chart-anchor';\n dot.dataset['anchor'] = anchor;\n dot.dataset['nodeId'] = el.dataset['id'];\n\n this.positionAnchor(dot, anchor, type);\n el.appendChild(dot);\n\n this.setupAnchorEventListeners(dot, el);\n });\n }\n\n private makeDraggable(el: HTMLElement) {\n let offsetX = 0,\n offsetY = 0,\n isDragging = false;\n\n this.addEventListener(el, 'mousedown', (e: Event) => {\n const mouseEvent = e as MouseEvent;\n if ((mouseEvent.target as HTMLElement).classList.contains('ax-flow-chart-anchor')) return;\n isDragging = true;\n offsetX = mouseEvent.clientX - el.offsetLeft;\n offsetY = mouseEvent.clientY - el.offsetTop;\n mouseEvent.preventDefault();\n });\n\n const mousemoveHandler = (e: MouseEvent) => {\n if (isDragging) {\n el.style.left = e.clientX - offsetX + 'px';\n el.style.top = e.clientY - offsetY + 'px';\n this.drawEdges(this.initialFlowChartEdge());\n\n this.initialFlowChartNode.update((value) => {\n const node = value.find((node) => node.id === el.dataset['id']);\n if (node) {\n node.x = e.clientX - offsetX;\n node.y = e.clientY - offsetY;\n }\n return value;\n });\n }\n\n const elementId = (e.target as HTMLElement).id;\n if (elementId === 'ax-flow-chart-renderer-connections' || elementId === 'ax-flow-chart-renderer-canvas') {\n if (this.draggingConnection && this.tempLine) {\n this.tempLine.setAttribute('x2', e.offsetX.toString());\n this.tempLine.setAttribute('y2', e.offsetY.toString());\n }\n }\n };\n\n const mouseupHandler = (e: MouseEvent) => {\n isDragging = false;\n if (this.draggingConnection) {\n const target = (e.target as HTMLElement).closest('.ax-flow-chart-anchor') as HTMLElementWithDataset;\n if (target && target.dataset['nodeId'] !== this.currentConnection?.source?.id) {\n this.currentConnection = {\n ...this.currentConnection,\n target: {\n id: target.dataset['nodeId'],\n anchor: target.dataset['anchor'],\n },\n };\n this.finishConnection();\n }\n this.clearTempLine();\n this.draggingConnection = false;\n }\n };\n\n // Add global event listeners\n this.zone.runOutsideAngular(() => {\n document.addEventListener('mousemove', mousemoveHandler);\n document.addEventListener('mouseup', mouseupHandler);\n });\n\n // Store global listeners\n const globalListeners = this.eventListeners.get('global');\n if (globalListeners) {\n globalListeners.set('mousemove', mousemoveHandler as EventListener);\n globalListeners.set('mouseup', mouseupHandler as EventListener);\n }\n }\n\n private positionAnchor(dot: HTMLElement, anchor: string, type: string) {\n if (type !== 'diamond') {\n switch (anchor) {\n case 'top':\n dot.style.top = '0%';\n dot.style.left = '50%';\n break;\n case 'bottom':\n dot.style.top = '100%';\n dot.style.left = '50%';\n break;\n case 'left':\n dot.style.top = '50%';\n dot.style.left = '0%';\n break;\n case 'right':\n dot.style.top = '50%';\n dot.style.left = '100%';\n break;\n }\n } else {\n switch (anchor) {\n case 'top':\n dot.style.top = '0%';\n dot.style.left = '0%';\n break;\n case 'bottom':\n dot.style.top = '100%';\n dot.style.left = '100%';\n break;\n case 'left':\n dot.style.top = '100%';\n dot.style.left = '0%';\n break;\n case 'right':\n dot.style.top = '0%';\n dot.style.left = '100%';\n break;\n }\n }\n }\n\n private getAnchorPoint(el: HTMLElement, anchor: string): { x: number; y: number } {\n const rect = el.getBoundingClientRect();\n const centerX = el.offsetLeft + rect.width / 2;\n const centerY = el.offsetTop + rect.height / 2;\n\n switch (anchor) {\n case 'top':\n return { x: centerX, y: el.offsetTop };\n case 'bottom':\n return { x: centerX, y: el.offsetTop + rect.height };\n case 'left':\n return { x: el.offsetLeft, y: centerY };\n case 'right':\n return { x: el.offsetLeft + rect.width, y: centerY };\n default:\n return { x: centerX, y: centerY };\n }\n }\n\n private startTempLine(x: number, y: number) {\n const svgElement = this.svgService()?.nativeElement;\n\n if (!svgElement) return;\n\n this.tempLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n this.tempLine.setAttribute('x1', x.toString());\n this.tempLine.setAttribute('y1', y.toString());\n this.tempLine.setAttribute('x2', x.toString());\n this.tempLine.setAttribute('y2', y.toString());\n this.tempLine.setAttribute('stroke', 'rgba(var(--ax-sys-color-on-lightest-surface),0.5)');\n this.tempLine.setAttribute('stroke-width', '2');\n this.tempLine.setAttribute('stroke-dasharray', '4');\n svgElement.appendChild(this.tempLine);\n }\n\n private clearTempLine() {\n if (this.tempLine && this.tempLine.parentElement) {\n this.svgService()?.nativeElement.removeChild(this.tempLine);\n this.tempLine = null;\n }\n }\n\n private pushAndCreateEdgeData(source: { id: string; anchor: string }, target: { id: string; anchor: string }) {\n const newEdge = {\n id: `edge-${Math.random().toString()}`,\n source,\n target,\n };\n\n this.onEdgeUpdate.next(newEdge);\n this.initialFlowChartEdge.update((value) => [...value, newEdge]);\n this.drawEdges();\n }\n\n drawEdges(edges?: AXFlowChartEdges[]) {\n const svg = this.svgService()?.nativeElement;\n if (!svg) return;\n\n // Clear existing edges\n svg.innerHTML = '';\n\n // Use provided edges or get from signal\n const edgesToDraw = edges || this.initialFlowChartEdge();\n\n edgesToDraw.forEach((edge) => {\n const sourceNode = this.nodesMap.get(edge.source.id);\n const targetNode = this.nodesMap.get(edge.target.id);\n\n if (sourceNode) {\n const sourceAnchor = sourceNode.querySelector(`[data-anchor=\"${edge.source.anchor}\"]`);\n if (sourceAnchor) sourceAnchor.classList.add('selected');\n }\n if (targetNode) {\n const targetAnchor = targetNode.querySelector(`[data-anchor=\"${edge.target.anchor}\"]`);\n if (targetAnchor) targetAnchor.classList.add('selected');\n }\n\n if (sourceNode && targetNode) {\n const sourcePoint = this.getAnchorPoint(sourceNode, edge.source.anchor);\n const targetPoint = this.getAnchorPoint(targetNode, edge.target.anchor);\n\n const line = this.createLine(sourcePoint, targetPoint, edge);\n line.classList.add('ax-flow-chart-line');\n\n // Add click event listener for line selection\n this.addEventListener(line as unknown as HTMLElement, 'click', (e: Event) => {\n e.stopPropagation();\n this.lineClick.next({ target: edge, event: e as MouseEvent });\n this.selectedEdge.set(edge);\n this.selectedNode.set(null);\n // Remove selection from all other lines\n document.querySelectorAll('.ax-flow-chart-line').forEach((l) => {\n if (l !== line) l.classList.remove('selected');\n });\n // Add selection to clicked line\n line.classList.add('selected');\n // Remove selection from all nodes\n this.nodesMap.forEach((node) => node.classList.remove('selected'));\n });\n\n svg.appendChild(line);\n }\n });\n }\n\n createLine(from: { x: number; y: number }, to: { x: number; y: number }, edge: AXFlowChartEdges) {\n const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n line.setAttribute('x1', from.x.toString());\n line.setAttribute('y1', from.y.toString());\n line.setAttribute('x2', to.x.toString());\n line.setAttribute('y2', to.y.toString());\n line.setAttribute('stroke', 'rgba(var(--ax-sys-color-on-surface))');\n line.setAttribute('stroke-width', '3');\n line.classList.add('ax-flow-chart-line');\n line.addEventListener('click', (e: MouseEvent) => {\n this.lineClick.next({ target: edge, event: e });\n this.selectedEdge.set(edge);\n });\n line.addEventListener('dblclick', (e: MouseEvent) => {\n this.lineDbClick.next({ target: edge, event: e });\n });\n return line;\n }\n\n private finishConnection() {\n if (this.currentConnection?.source && this.currentConnection?.target) {\n this.pushAndCreateEdgeData(this.currentConnection.source, this.currentConnection.target);\n }\n this.currentConnection = null;\n }\n\n removeEdge(edge: AXFlowChartEdges) {\n this.initialFlowChartEdge.update((value) => value.filter((e) => e.id !== edge.id));\n\n // Remove selected class from connected anchors\n const sourceNode = this.nodesMap.get(edge.source.id);\n const targetNode = this.nodesMap.get(edge.target.id);\n\n if (sourceNode) {\n const sourceAnchor = sourceNode.querySelector(`[data-anchor=\"${edge.source.anchor}\"]`);\n if (sourceAnchor) sourceAnchor.classList.remove('selected');\n }\n\n if (targetNode) {\n const targetAnchor = targetNode.querySelector(`[data-anchor=\"${edge.target.anchor}\"]`);\n if (targetAnchor) targetAnchor.classList.remove('selected');\n }\n }\n\n createNode(nodes: { id: string; type: string; label: string; x: number; y: number }[]) {\n document.querySelectorAll('.ax-flow-chart-node')?.forEach((node) => node.remove());\n\n nodes.forEach((node) => {\n const el = document.createElement('div') as HTMLElementWithDataset;\n const p = document.createElement('p') as HTMLElementWithDataset;\n p.innerText = node.label;\n el.appendChild(p);\n el.className = 'ax-flow-chart-node';\n el.classList.add(`ax-${node.type}`);\n el.style.left = node.x + 'px';\n el.style.top = node.y + 'px';\n el.dataset['id'] = node.id;\n\n this.addAnchors(el, node.type);\n this.makeDraggable(el);\n this.setupNodeEventListeners(el, node);\n\n this.canvasService().nativeElement.appendChild(el);\n this.nodesMap.set(node.id, el);\n });\n }\n\n removeNode(nodeId: string) {\n this.initialFlowChartNode.update((value) => value.filter((e) => e.id !== nodeId));\n\n this.initialFlowChartEdge().forEach((edge) => {\n if (edge.source.id === nodeId || edge.target.id === nodeId) {\n this.removeEdge(edge);\n }\n });\n\n document.querySelector(`[data-id=\"${nodeId}\"]`)?.remove();\n this.anchorClickBuffer = null;\n }\n\n cleanup() {\n this.nodesMap.forEach((_, id) => this.removeEventListeners(id));\n this.nodesMap.clear();\n this.eventListeners.clear();\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXFlowChartService } from '../flow-chart.service';\n\n@Component({\n selector: 'ax-flow-chart-creator',\n templateUrl: './flow-chart-creator.component.html',\n styleUrls: ['./flow-chart-creator.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextBoxModule, AXButtonModule, CommonModule, FormsModule],\n providers: [{ provide: AXComponent, useExisting: AXFlowChartCreatorComponent }],\n})\nexport class AXFlowChartCreatorComponent extends NXComponent {\n service = inject(AXFlowChartService);\n protected selectedShape = signal('rectangle');\n protected label = 'Label';\n\n protected selectShapeHandler(shape: 'rectangle' | 'circle' | 'diamond') {\n this.selectedShape.set(shape);\n }\n\n protected createShapeHandler() {\n const newNode = {\n id: Math.random().toString(),\n type: this.selectedShape(),\n label: this.label,\n x: 0,\n y: 0,\n };\n this.service.initialFlowChartNode.update((value) => [...value, newNode]);\n this.service.onNodeUpdate.next(newNode);\n }\n\n protected printChart(): void {\n const printWindow = window.open('', '_blank');\n if (!printWindow) return;\n\n const canvas = this.service.canvasService()?.nativeElement;\n if (!canvas) return;\n\n // Get all styles from the document and component\n const styles = Array.from(document.styleSheets)\n .map((sheet) => {\n try {\n return Array.from(sheet.cssRules)\n .map((rule) => rule.cssText)\n .join('\\n');\n } catch (e) {\n return '';\n }\n })\n .join('\\n');\n\n // Add print-specific styles for anchors\n const printStyles = `\n ${styles}\n .ax-flow-chart-anchor {\n opacity: 1 !important;\n }\n `;\n\n // Create the print content with proper styling\n const printContent = `\n <!DOCTYPE html>\n <html>\n <head>\n <title>Flow Chart Print</title>\n <style>\n ${printStyles}\n </style>\n </head>\n <body>\n <ax-flow-chart-renderer>\n ${canvas.outerHTML}\n </ax-flow-chart-renderer>\n </body>\n </html>\n `;\n\n printWindow.document.write(printContent);\n printWindow.document.close();\n }\n}\n","<div class=\"ax-shape-container\">\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'rectangle' }\"\n (click)=\"selectShapeHandler('rectangle')\"\n class=\"ax-rectangle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'circle' }\"\n (click)=\"selectShapeHandler('circle')\"\n class=\"ax-circle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'diamond' }\"\n (click)=\"selectShapeHandler('diamond')\"\n class=\"ax-diamond\"\n ></div>\n</div>\n<ax-text-box class=\"ax-sm\" [(ngModel)]=\"label\" placeholder=\"Label\"> </ax-text-box>\n\n<ax-button class=\"ax-sm\" (onClick)=\"createShapeHandler()\" color=\"primary\" text=\"Create\"></ax-button>\n<ax-button color=\"primary\" text=\"Print\" class=\"ax-sm\" (click)=\"printChart()\"></ax-button>\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n OnDestroy,\n output,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXFlowChartService } from '../flow-chart.service';\nimport { AXFlowChartEdges, AXFlowChartNodes, AXLineClickEvent, AXNodeClickEvent } from '../flow-chart.type';\n\n@Component({\n selector: 'ax-flow-chart-renderer',\n templateUrl: './flow-chart-renderer.component.html',\n styleUrls: ['./flow-chart-renderer.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXFlowChartRendererComponent }],\n})\nexport class AXFlowChartRendererComponent extends NXComponent implements OnDestroy {\n private canvas = viewChild<ElementRef>('canvas');\n private svg = viewChild<ElementRef>('connections');\n private service = inject(AXFlowChartService);\n\n readonly onLineClick = output<AXLineClickEvent>();\n readonly onLineDbClick = output<AXLineClickEvent>();\n readonly onNodeClick = output<AXNodeClickEvent>();\n readonly onNodeDbClick = output<AXNodeClickEvent>();\n readonly onEdgeUpdate = output<AXFlowChartEdges>();\n readonly onNodeUpdate = output<AXFlowChartNodes>();\n\n #init = afterNextRender(() => {\n this.setupEventListeners();\n });\n\n #eff = effect(() => {\n if (this.canvas() && this.svg()) {\n this.initializeServices();\n }\n });\n\n private setupEventListeners(): void {\n this.service.lineClick.subscribe((value) => {\n this.onLineClick.emit(value);\n });\n this.service.lineDbClick.subscribe((value) => {\n this.onLineDbClick.emit(value);\n });\n this.service.nodeClick.subscribe((value) => {\n this.onNodeClick.emit(value);\n });\n this.service.nodeDbClick.subscribe((value) => {\n this.onNodeDbClick.emit(value);\n });\n this.service.onEdgeUpdate.subscribe((newEdge) => {\n this.onEdgeUpdate.emit(newEdge);\n });\n this.service.onNodeUpdate.subscribe((newNode) => {\n this.onNodeUpdate.emit(newNode);\n });\n }\n\n private initializeServices(): void {\n this.service.canvasService.set(this.canvas());\n this.service.svgService.set(this.svg());\n\n // Add click handlers for parent elements\n const canvas = this.canvas()?.nativeElement;\n const svg = this.svg()?.nativeElement;\n\n if (canvas) {\n canvas.addEventListener('click', (e: Event) => {\n if (e.target === canvas) {\n this.service.selectedNode.set(null);\n this.service.selectedEdge.set(null);\n document.querySelectorAll('.ax-flow-chart-node').forEach((node) => node.classList.remove('selected'));\n document.querySelectorAll('.ax-flow-chart-line').forEach((line) => line.classList.remove('selected'));\n }\n });\n }\n\n if (svg) {\n svg.addEventListener('click', (e: Event) => {\n if (e.target === svg) {\n this.service.selectedNode.set(null);\n this.service.selectedEdge.set(null);\n document.querySelectorAll('.ax-flow-chart-node').forEach((node) => node.classList.remove('selected'));\n document.querySelectorAll('.ax-flow-chart-line').forEach((line) => line.classList.remove('selected'));\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n this.cleanup();\n }\n\n private cleanup(): void {\n this.service.cleanup();\n this.service.lineClick.unsubscribe();\n this.service.lineDbClick.unsubscribe();\n this.service.nodeClick.unsubscribe();\n this.service.nodeDbClick.unsubscribe();\n this.service.onEdgeUpdate.unsubscribe();\n }\n}\n","<div id=\"ax-flow-chart-renderer-canvas\" #canvas>\n <svg class=\"ax-flow-chart-renderer-svg\" id=\"ax-flow-chart-renderer-connections\" #connections></svg>\n</div>\n","import { AXComponent, AXFocusableComponent, AXValuableComponent, NXComponent } from '@acorex/cdk/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostListener,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXFlowChartService } from './flow-chart.service';\nimport { AXFlowChartEdges, AXFlowChartNodes } from './flow-chart.type';\n\n@Component({\n selector: 'ax-flow-chart',\n templateUrl: './flow-chart.component.html',\n styleUrls: ['./flow-chart.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXFlowChartService,\n { provide: AXComponent, useExisting: AXFlowChartComponent },\n { provide: AXValuableComponent, useExisting: AXFlowChartComponent },\n { provide: AXFocusableComponent, useExisting: AXFlowChartComponent },\n ],\n})\nexport class AXFlowChartComponent extends NXComponent {\n private flowChartService = inject(AXFlowChartService);\n\n initialFlowChartNode = input.required<AXFlowChartNodes[]>();\n initialFlowChartEdge = input.required<AXFlowChartEdges[]>();\n selectedNode = computed(() => this.flowChartService.selectedNode());\n selectedEdge = computed(() => this.flowChartService.selectedEdge());\n\n #init = afterNextRender(() => {\n this.flowChartService.initialFlowChartNode.set(this.initialFlowChartNode());\n this.flowChartService.initialFlowChartEdge.set(this.initialFlowChartEdge());\n });\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (event.key === 'Delete') {\n const selectedNode = this.selectedNode();\n const selectedEdge = this.selectedEdge();\n\n if (selectedNode) {\n this.removeNode(selectedNode.id);\n } else if (selectedEdge) {\n this.removeEdge(selectedEdge);\n }\n }\n }\n\n /**\n * Draws edges on the flow chart.\n *\n * @param edges Array of edges to draw.\n * @returns void\n */\n drawEdges(edges: AXFlowChartEdges[]) {\n this.flowChartService.drawEdges(edges);\n }\n\n /**\n * Removes a specific edge from the flow chart.\n *\n * @param edge The edge object to remove.\n * @returns void\n */\n removeEdge(edge: AXFlowChartEdges) {\n this.flowChartService.removeEdge(edge);\n }\n\n /**\n * Creates one or more nodes on the flow chart.\n *\n * @param nodes Array of node definitions to create.\n * @returns void\n */\n createNode(nodes: { id: string; type: string; label: string; x: number; y: number }[]) {\n this.flowChartService.createNode(nodes);\n }\n\n /**\n * Removes a node by its identifier.\n *\n * @param nodeId The unique id of the node to remove.\n * @returns void\n */\n removeNode(nodeId: string) {\n this.flowChartService.removeNode(nodeId);\n }\n}\n","<ng-content select=\"ax-header\"></ng-content>\n<ng-content select=\"ax-flow-chart-renderer\"></ng-content>\n<ng-content select=\"ax-footer\"></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFlowChartCreatorComponent } from './flow-chart-creator/flow-chart-creator.component';\nimport { AXFlowChartRendererComponent } from './flow-chart-renderer/flow-chart-renderer.component';\nimport { AXFlowChartComponent } from './flow-chart.component';\n\nconst COMPONENT = [AXFlowChartRendererComponent, AXFlowChartCreatorComponent, AXFlowChartComponent];\nconst MODULES = [CommonModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXFlowChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -548,11 +548,11 @@ class AXGridLayoutContainerComponent extends NXComponent {
548
548
  return { x: value.x, y: value.y };
549
549
  }
550
550
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXGridLayoutContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
551
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.3", type: AXGridLayoutContainerComponent, isStandalone: true, selector: "ax-grid-layout-container", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, isEmpty: { classPropertyName: "isEmpty", publicName: "isEmpty", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onAdded: "onAdded", onRemoved: "onRemoved", onWidgetChange: "onWidgetChange", onChange: "onChange", onRender: "onRender", isEmpty: "isEmptyChange" }, providers: [{ provide: AXComponent, useExisting: AXGridLayoutContainerComponent }], queries: [{ propertyName: "gridstackItems", predicate: AXGridLayoutWidgetComponent }], usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content> `, isInline: true, styles: [".grid-stack{position:relative}.grid-stack-rtl{direction:ltr}.grid-stack-rtl>.grid-stack-item{direction:rtl}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;margin:0;position:absolute;width:auto;z-index:0!important}.grid-stack>.grid-stack-item{position:absolute;padding:0;top:0;left:0;width:var(--gs-column-width);height:var(--gs-cell-height)}.grid-stack>.grid-stack-item>.grid-stack-item-content{margin:0;position:absolute;width:auto;overflow-x:hidden;overflow-y:auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{top:var(--gs-item-margin-top);right:var(--gs-item-margin-right);bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle,.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{background-image:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"%23666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewBox=\"0 0 20 20\"><path d=\"m10 3 2 2H8l2-2v14l-2-2h4l-2 2\"/></svg>');background-repeat:no-repeat;background-position:center}.grid-stack-item>.ui-resizable-ne{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;top:var(--gs-item-margin-top);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:var(--gs-item-margin-top);left:25px;right:25px}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;top:var(--gs-item-margin-top);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;top:15px;bottom:15px;right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:var(--gs-item-margin-bottom);right:25px}.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;top:15px;bottom:15px;left:var(--gs-item-margin-left)}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left,top}.grid-stack-item.ui-resizable-resizing{will-change:width,height}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{box-shadow:1px 4px 6px #0003;opacity:.8}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing,.grid-stack-animate .grid-stack-item.grid-stack-placeholder{transition:left 0s,top 0s,height 0s,width 0s}.grid-stack>.grid-stack-item[gs-y=\"0\"]{top:0}.grid-stack>.grid-stack-item[gs-x=\"0\"]{left:0%}ax-grid-layout-container{display:block;border-style:solid;border-width:var(--ax-comp-grid-layout-container-border-width, 0px);border-color:rgba(var(--ax-comp-grid-layout-container-border-color, var(--ax-sys-color-border-surface)));background-color:rgba(var(--ax-comp-grid-layout-container-bg-color, transparent))}ax-grid-layout-container .grid-stack-placeholder>.placeholder-content{background-color:rgba(var(--ax-comp-grid-layout-placeholder-bg-color, var(--ax-sys-color-surface)))}ax-grid-layout-widget{display:block}.grid-stack-item{cursor:pointer;border-radius:var(--ax-comp-grid-layout-stack-item-border-radius, 0)}.grid-stack-item-content{display:flex;align-items:center;justify-content:center;border-style:solid;border-radius:var(--ax-comp-grid-layout-stack-item-content-border-radius, var(--ax-sys-border-radius));border-width:var(--ax-comp-grid-layout-stack-item-content-border-width, 1px);border-color:rgba(var(--ax-comp-grid-layout-stack-item-content-border-color, var(--ax-sys-color-border-surface)));background-color:rgba(var(--ax-comp-grid-layout-stack-item-content-bg-color, var(--ax-sys-color-surface)));overflow:auto;-webkit-user-select:none;user-select:none;text-align:center}.grid-stack-item-removing{animation:var(--ax-comp-grid-layout-stack-item-removing-animation, fadeAndBlur .5s linear forwards)}@keyframes fadeAndBlur{0%{opacity:1;filter:blur(0)}to{opacity:.8;filter:blur(5px)}}.ax-grid-layout-trash{cursor:grabbing;min-height:var(--ax-comp-grid-layout-stack-trash-min-height, 120px);background-repeat:no-repeat;background-position:center center;background-image:var(--ax-comp-grid-layout-stack-trash-bg-image, url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjY0cHgiIGhlaWdodD0iNjRweCIgdmlld0JveD0iMCAwIDQzOC41MjkgNDM4LjUyOSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDM4LjUyOSA0MzguNTI5OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTQxNy42ODksNzUuNjU0Yy0xLjcxMS0xLjcwOS0zLjkwMS0yLjU2OC02LjU2My0yLjU2OGgtODguMjI0TDMwMi45MTcsMjUuNDFjLTIuODU0LTcuMDQ0LTcuOTk0LTEzLjA0LTE1LjQxMy0xNy45ODkgICAgQzI4MC4wNzgsMi40NzMsMjcyLjU1NiwwLDI2NC45NDUsMGgtOTEuMzYzYy03LjYxMSwwLTE1LjEzMSwyLjQ3My0yMi41NTQsNy40MjFjLTcuNDI0LDQuOTQ5LTEyLjU2MywxMC45NDQtMTUuNDE5LDE3Ljk4OSAgICBsLTE5Ljk4NSw0Ny42NzZoLTg4LjIyYy0yLjY2NywwLTQuODUzLDAuODU5LTYuNTY3LDIuNTY4Yy0xLjcwOSwxLjcxMy0yLjU2OCwzLjkwMy0yLjU2OCw2LjU2N3YxOC4yNzQgICAgYzAsMi42NjQsMC44NTUsNC44NTQsMi41NjgsNi41NjRjMS43MTQsMS43MTIsMy45MDQsMi41NjgsNi41NjcsMi41NjhoMjcuNDA2djI3MS44YzAsMTUuODAzLDQuNDczLDI5LjI2NiwxMy40MTgsNDAuMzk4ICAgIGM4Ljk0NywxMS4xMzksMTkuNzAxLDE2LjcwMywzMi4yNjQsMTYuNzAzaDIzNy41NDJjMTIuNTY2LDAsMjMuMzE5LTUuNzU2LDMyLjI2NS0xNy4yNjhjOC45NDUtMTEuNTIsMTMuNDE1LTI1LjE3NCwxMy40MTUtNDAuOTcxICAgIFYxMDkuNjI3aDI3LjQxMWMyLjY2MiwwLDQuODUzLTAuODU2LDYuNTYzLTIuNTY4YzEuNzA4LTEuNzA5LDIuNTctMy45LDIuNTctNi41NjRWODIuMjIxICAgIEM0MjAuMjYsNzkuNTU3LDQxOS4zOTcsNzcuMzY3LDQxNy42ODksNzUuNjU0eiBNMTY5LjMwMSwzOS42NzhjMS4zMzEtMS43MTIsMi45NS0yLjc2Miw0Ljg1My0zLjE0aDkwLjUwNCAgICBjMS45MDMsMC4zODEsMy41MjUsMS40Myw0Ljg1NCwzLjE0bDEzLjcwOSwzMy40MDRIMTU1LjMxMUwxNjkuMzAxLDM5LjY3OHogTTM0Ny4xNzMsMzgwLjI5MWMwLDQuMTg2LTAuNjY0LDguMDQyLTEuOTk5LDExLjU2MSAgICBjLTEuMzM0LDMuNTE4LTIuNzE3LDYuMDg4LTQuMTQxLDcuNzA2Yy0xLjQzMSwxLjYyMi0yLjQyMywyLjQyNy0yLjk5OCwyLjQyN0gxMDAuNDkzYy0wLjU3MSwwLTEuNTY1LTAuODA1LTIuOTk2LTIuNDI3ICAgIGMtMS40MjktMS42MTgtMi44MS00LjE4OC00LjE0My03LjcwNmMtMS4zMzEtMy41MTktMS45OTctNy4zNzktMS45OTctMTEuNTYxVjEwOS42MjdoMjU1LjgxNVYzODAuMjkxeiIgZmlsbD0iI2ZmOWNhZSIvPgoJCTxwYXRoIGQ9Ik0xMzcuMDQsMzQ3LjE3MmgxOC4yNzFjMi42NjcsMCw0Ljg1OC0wLjg1NSw2LjU2Ny0yLjU2N2MxLjcwOS0xLjcxOCwyLjU2OC0zLjkwMSwyLjU2OC02LjU3VjE3My41ODEgICAgYzAtMi42NjMtMC44NTktNC44NTMtMi41NjgtNi41NjdjLTEuNzE0LTEuNzA5LTMuODk5LTIuNTY1LTYuNTY3LTIuNTY1SDEzNy4wNGMtMi42NjcsMC00Ljg1NCwwLjg1NS02LjU2NywyLjU2NSAgICBjLTEuNzExLDEuNzE0LTIuNTY4LDMuOTA0LTIuNTY4LDYuNTY3djE2NC40NTRjMCwyLjY2OSwwLjg1NCw0Ljg1MywyLjU2OCw2LjU3QzEzMi4xODYsMzQ2LjMxNiwxMzQuMzczLDM0Ny4xNzIsMTM3LjA0LDM0Ny4xNzJ6IiBmaWxsPSIjZmY5Y2FlIi8+CgkJPHBhdGggZD0iTTIxMC4xMjksMzQ3LjE3MmgxOC4yNzFjMi42NjYsMCw0Ljg1Ni0wLjg1NSw2LjU2NC0yLjU2N2MxLjcxOC0xLjcxOCwyLjU2OS0zLjkwMSwyLjU2OS02LjU3VjE3My41ODEgICAgYzAtMi42NjMtMC44NTItNC44NTMtMi41NjktNi41NjdjLTEuNzA4LTEuNzA5LTMuODk4LTIuNTY1LTYuNTY0LTIuNTY1aC0xOC4yNzFjLTIuNjY0LDAtNC44NTQsMC44NTUtNi41NjcsMi41NjUgICAgYy0xLjcxNCwxLjcxNC0yLjU2OCwzLjkwNC0yLjU2OCw2LjU2N3YxNjQuNDU0YzAsMi42NjksMC44NTQsNC44NTMsMi41NjgsNi41N0MyMDUuMjc0LDM0Ni4zMTYsMjA3LjQ2NSwzNDcuMTcyLDIxMC4xMjksMzQ3LjE3MnogICAgIiBmaWxsPSIjZmY5Y2FlIi8+CgkJPHBhdGggZD0iTTI4My4yMiwzNDcuMTcyaDE4LjI2OGMyLjY2OSwwLDQuODU5LTAuODU1LDYuNTctMi41NjdjMS43MTEtMS43MTgsMi41NjItMy45MDEsMi41NjItNi41N1YxNzMuNTgxICAgIGMwLTIuNjYzLTAuODUyLTQuODUzLTIuNTYyLTYuNTY3Yy0xLjcxMS0xLjcwOS0zLjkwMS0yLjU2NS02LjU3LTIuNTY1SDI4My4yMmMtMi42NywwLTQuODUzLDAuODU1LTYuNTcxLDIuNTY1ICAgIGMtMS43MTEsMS43MTQtMi41NjYsMy45MDQtMi41NjYsNi41Njd2MTY0LjQ1NGMwLDIuNjY5LDAuODU1LDQuODUzLDIuNTY2LDYuNTdDMjc4LjM2NywzNDYuMzE2LDI4MC41NSwzNDcuMTcyLDI4My4yMiwzNDcuMTcyeiIgZmlsbD0iI2ZmOWNhZSIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
551
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.3", type: AXGridLayoutContainerComponent, isStandalone: true, selector: "ax-grid-layout-container", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, isEmpty: { classPropertyName: "isEmpty", publicName: "isEmpty", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onAdded: "onAdded", onRemoved: "onRemoved", onWidgetChange: "onWidgetChange", onChange: "onChange", onRender: "onRender", isEmpty: "isEmptyChange" }, providers: [{ provide: AXComponent, useExisting: AXGridLayoutContainerComponent }], queries: [{ propertyName: "gridstackItems", predicate: AXGridLayoutWidgetComponent }], usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content> `, isInline: true, styles: [".grid-stack{position:relative}.grid-stack-rtl{direction:ltr}.grid-stack-rtl>.grid-stack-item{direction:rtl}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;margin:0;position:absolute;width:auto;z-index:0!important}.grid-stack>.grid-stack-item{position:absolute;padding:0;top:0;left:0;width:var(--gs-column-width);height:var(--gs-cell-height)}.grid-stack>.grid-stack-item>.grid-stack-item-content{margin:0;position:absolute;width:auto;overflow-x:hidden;overflow-y:auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{top:var(--gs-item-margin-top);right:var(--gs-item-margin-right);bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle,.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{background-image:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"%23666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewBox=\"0 0 20 20\"><path d=\"m10 3 2 2H8l2-2v14l-2-2h4l-2 2\"/></svg>');background-repeat:no-repeat;background-position:center}.grid-stack-item>.ui-resizable-ne{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;top:var(--gs-item-margin-top);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:var(--gs-item-margin-top);left:25px;right:25px}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;top:var(--gs-item-margin-top);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;top:15px;bottom:15px;right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:var(--gs-item-margin-bottom);right:25px}.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;top:15px;bottom:15px;left:var(--gs-item-margin-left)}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left,top}.grid-stack-item.ui-resizable-resizing{will-change:width,height}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{box-shadow:1px 4px 6px #0003;opacity:.8}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing,.grid-stack-animate .grid-stack-item.grid-stack-placeholder{transition:left 0s,top 0s,height 0s,width 0s}.grid-stack>.grid-stack-item[gs-y=\"0\"]{top:0}.grid-stack>.grid-stack-item[gs-x=\"0\"]{left:0%}ax-grid-layout-container{display:block;border-style:solid;border-width:var(--ax-comp-grid-layout-container-border-width, 0px);border-color:rgba(var(--ax-comp-grid-layout-container-border-color, var(--ax-sys-color-border-surface)));background-color:rgba(var(--ax-comp-grid-layout-container-bg-color, transparent))}ax-grid-layout-container .grid-stack-placeholder>.placeholder-content{background-color:rgba(var(--ax-comp-grid-layout-placeholder-bg-color, var(--ax-sys-color-surface)))}ax-grid-layout-widget{display:block}.grid-stack-item{cursor:pointer;border-radius:var(--ax-comp-grid-layout-stack-item-border-radius, 0)}.grid-stack-item-content{display:flex;align-items:center;justify-content:center;border-style:solid;border-radius:var(--ax-comp-grid-layout-stack-item-content-border-radius, var(--ax-sys-border-radius));border-width:var(--ax-comp-grid-layout-stack-item-content-border-width, 1px);border-color:rgba(var(--ax-comp-grid-layout-stack-item-content-border-color, var(--ax-sys-color-border-surface)));background-color:rgba(var(--ax-comp-grid-layout-stack-item-content-bg-color, var(--ax-sys-color-surface)));overflow:auto;-webkit-user-select:none;user-select:none;text-align:center}.grid-stack-item-removing{animation:var(--ax-comp-grid-layout-stack-item-removing-animation, fadeAndBlur .5s linear forwards)}@keyframes fadeAndBlur{0%{opacity:1;filter:blur(0)}to{opacity:.8;filter:blur(5px)}}.ax-grid-layout-trash{cursor:grabbing;min-height:var(--ax-comp-grid-layout-stack-trash-min-height, 120px);background-repeat:no-repeat;background-position:center center;background-image:var( --ax-comp-grid-layout-stack-trash-bg-image, url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjY0cHgiIGhlaWdodD0iNjRweCIgdmlld0JveD0iMCAwIDQzOC41MjkgNDM4LjUyOSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDM4LjUyOSA0MzguNTI5OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTQxNy42ODksNzUuNjU0Yy0xLjcxMS0xLjcwOS0zLjkwMS0yLjU2OC02LjU2My0yLjU2OGgtODguMjI0TDMwMi45MTcsMjUuNDFjLTIuODU0LTcuMDQ0LTcuOTk0LTEzLjA0LTE1LjQxMy0xNy45ODkgICAgQzI4MC4wNzgsMi40NzMsMjcyLjU1NiwwLDI2NC45NDUsMGgtOTEuMzYzYy03LjYxMSwwLTE1LjEzMSwyLjQ3My0yMi41NTQsNy40MjFjLTcuNDI0LDQuOTQ5LTEyLjU2MywxMC45NDQtMTUuNDE5LDE3Ljk4OSAgICBsLTE5Ljk4NSw0Ny42NzZoLTg4LjIyYy0yLjY2NywwLTQuODUzLDAuODU5LTYuNTY3LDIuNTY4Yy0xLjcwOSwxLjcxMy0yLjU2OCwzLjkwMy0yLjU2OCw2LjU2N3YxOC4yNzQgICAgYzAsMi42NjQsMC44NTUsNC44NTQsMi41NjgsNi41NjRjMS43MTQsMS43MTIsMy45MDQsMi41NjgsNi41NjcsMi41NjhoMjcuNDA2djI3MS44YzAsMTUuODAzLDQuNDczLDI5LjI2NiwxMy40MTgsNDAuMzk4ICAgIGM4Ljk0NywxMS4xMzksMTkuNzAxLDE2LjcwMywzMi4yNjQsMTYuNzAzaDIzNy41NDJjMTIuNTY2LDAsMjMuMzE5LTUuNzU2LDMyLjI2NS0xNy4yNjhjOC45NDUtMTEuNTIsMTMuNDE1LTI1LjE3NCwxMy40MTUtNDAuOTcxICAgIFYxMDkuNjI3aDI3LjQxMWMyLjY2MiwwLDQuODUzLTAuODU2LDYuNTYzLTIuNTY4YzEuNzA4LTEuNzA5LDIuNTctMy45LDIuNTctNi41NjRWODIuMjIxICAgIEM0MjAuMjYsNzkuNTU3LDQxOS4zOTcsNzcuMzY3LDQxNy42ODksNzUuNjU0eiBNMTY5LjMwMSwzOS42NzhjMS4zMzEtMS43MTIsMi45NS0yLjc2Miw0Ljg1My0zLjE0aDkwLjUwNCAgICBjMS45MDMsMC4zODEsMy41MjUsMS40Myw0Ljg1NCwzLjE0bDEzLjcwOSwzMy40MDRIMTU1LjMxMUwxNjkuMzAxLDM5LjY3OHogTTM0Ny4xNzMsMzgwLjI5MWMwLDQuMTg2LTAuNjY0LDguMDQyLTEuOTk5LDExLjU2MSAgICBjLTEuMzM0LDMuNTE4LTIuNzE3LDYuMDg4LTQuMTQxLDcuNzA2Yy0xLjQzMSwxLjYyMi0yLjQyMywyLjQyNy0yLjk5OCwyLjQyN0gxMDAuNDkzYy0wLjU3MSwwLTEuNTY1LTAuODA1LTIuOTk2LTIuNDI3ICAgIGMtMS40MjktMS42MTgtMi44MS00LjE4OC00LjE0My03LjcwNmMtMS4zMzEtMy41MTktMS45OTctNy4zNzktMS45OTctMTEuNTYxVjEwOS42MjdoMjU1LjgxNVYzODAuMjkxeiIgZmlsbD0iI2ZmOWNhZSIvPgoJCTxwYXRoIGQ9Ik0xMzcuMDQsMzQ3LjE3MmgxOC4yNzFjMi42NjcsMCw0Ljg1OC0wLjg1NSw2LjU2Ny0yLjU2N2MxLjcwOS0xLjcxOCwyLjU2OC0zLjkwMSwyLjU2OC02LjU3VjE3My41ODEgICAgYzAtMi42NjMtMC44NTktNC44NTMtMi41NjgtNi41NjdjLTEuNzE0LTEuNzA5LTMuODk5LTIuNTY1LTYuNTY3LTIuNTY1SDEzNy4wNGMtMi42NjcsMC00Ljg1NCwwLjg1NS02LjU2NywyLjU2NSAgICBjLTEuNzExLDEuNzE0LTIuNTY4LDMuOTA0LTIuNTY4LDYuNTY3djE2NC40NTRjMCwyLjY2OSwwLjg1NCw0Ljg1MywyLjU2OCw2LjU3QzEzMi4xODYsMzQ2LjMxNiwxMzQuMzczLDM0Ny4xNzIsMTM3LjA0LDM0Ny4xNzJ6IiBmaWxsPSIjZmY5Y2FlIi8+CgkJPHBhdGggZD0iTTIxMC4xMjksMzQ3LjE3MmgxOC4yNzFjMi42NjYsMCw0Ljg1Ni0wLjg1NSw2LjU2NC0yLjU2N2MxLjcxOC0xLjcxOCwyLjU2OS0zLjkwMSwyLjU2OS02LjU3VjE3My41ODEgICAgYzAtMi42NjMtMC44NTItNC44NTMtMi41NjktNi41NjdjLTEuNzA4LTEuNzA5LTMuODk4LTIuNTY1LTYuNTY0LTIuNTY1aC0xOC4yNzFjLTIuNjY0LDAtNC44NTQsMC44NTUtNi41NjcsMi41NjUgICAgYy0xLjcxNCwxLjcxNC0yLjU2OCwzLjkwNC0yLjU2OCw2LjU2N3YxNjQuNDU0YzAsMi42NjksMC44NTQsNC44NTMsMi41NjgsNi41N0MyMDUuMjc0LDM0Ni4zMTYsMjA3LjQ2NSwzNDcuMTcyLDIxMC4xMjksMzQ3LjE3MnogICAgIiBmaWxsPSIjZmY5Y2FlIi8+CgkJPHBhdGggZD0iTTI4My4yMiwzNDcuMTcyaDE4LjI2OGMyLjY2OSwwLDQuODU5LTAuODU1LDYuNTctMi41NjdjMS43MTEtMS43MTgsMi41NjItMy45MDEsMi41NjItNi41N1YxNzMuNTgxICAgIGMwLTIuNjYzLTAuODUyLTQuODUzLTIuNTYyLTYuNTY3Yy0xLjcxMS0xLjcwOS0zLjkwMS0yLjU2NS02LjU3LTIuNTY1SDI4My4yMmMtMi42NywwLTQuODUzLDAuODU1LTYuNTcxLDIuNTY1ICAgIGMtMS43MTEsMS43MTQtMi41NjYsMy45MDQtMi41NjYsNi41Njd2MTY0LjQ1NGMwLDIuNjY5LDAuODU1LDQuODUzLDIuNTY2LDYuNTdDMjc4LjM2NywzNDYuMzE2LDI4MC41NSwzNDcuMTcyLDI4My4yMiwzNDcuMTcyeiIgZmlsbD0iI2ZmOWNhZSIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=) )}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
552
552
  }
553
553
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXGridLayoutContainerComponent, decorators: [{
554
554
  type: Component,
555
- args: [{ selector: 'ax-grid-layout-container', template: `<ng-content></ng-content> `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXGridLayoutContainerComponent }], styles: [".grid-stack{position:relative}.grid-stack-rtl{direction:ltr}.grid-stack-rtl>.grid-stack-item{direction:rtl}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;margin:0;position:absolute;width:auto;z-index:0!important}.grid-stack>.grid-stack-item{position:absolute;padding:0;top:0;left:0;width:var(--gs-column-width);height:var(--gs-cell-height)}.grid-stack>.grid-stack-item>.grid-stack-item-content{margin:0;position:absolute;width:auto;overflow-x:hidden;overflow-y:auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{top:var(--gs-item-margin-top);right:var(--gs-item-margin-right);bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle,.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{background-image:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"%23666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewBox=\"0 0 20 20\"><path d=\"m10 3 2 2H8l2-2v14l-2-2h4l-2 2\"/></svg>');background-repeat:no-repeat;background-position:center}.grid-stack-item>.ui-resizable-ne{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;top:var(--gs-item-margin-top);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:var(--gs-item-margin-top);left:25px;right:25px}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;top:var(--gs-item-margin-top);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;top:15px;bottom:15px;right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:var(--gs-item-margin-bottom);right:25px}.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;top:15px;bottom:15px;left:var(--gs-item-margin-left)}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left,top}.grid-stack-item.ui-resizable-resizing{will-change:width,height}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{box-shadow:1px 4px 6px #0003;opacity:.8}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing,.grid-stack-animate .grid-stack-item.grid-stack-placeholder{transition:left 0s,top 0s,height 0s,width 0s}.grid-stack>.grid-stack-item[gs-y=\"0\"]{top:0}.grid-stack>.grid-stack-item[gs-x=\"0\"]{left:0%}ax-grid-layout-container{display:block;border-style:solid;border-width:var(--ax-comp-grid-layout-container-border-width, 0px);border-color:rgba(var(--ax-comp-grid-layout-container-border-color, var(--ax-sys-color-border-surface)));background-color:rgba(var(--ax-comp-grid-layout-container-bg-color, transparent))}ax-grid-layout-container .grid-stack-placeholder>.placeholder-content{background-color:rgba(var(--ax-comp-grid-layout-placeholder-bg-color, var(--ax-sys-color-surface)))}ax-grid-layout-widget{display:block}.grid-stack-item{cursor:pointer;border-radius:var(--ax-comp-grid-layout-stack-item-border-radius, 0)}.grid-stack-item-content{display:flex;align-items:center;justify-content:center;border-style:solid;border-radius:var(--ax-comp-grid-layout-stack-item-content-border-radius, var(--ax-sys-border-radius));border-width:var(--ax-comp-grid-layout-stack-item-content-border-width, 1px);border-color:rgba(var(--ax-comp-grid-layout-stack-item-content-border-color, var(--ax-sys-color-border-surface)));background-color:rgba(var(--ax-comp-grid-layout-stack-item-content-bg-color, var(--ax-sys-color-surface)));overflow:auto;-webkit-user-select:none;user-select:none;text-align:center}.grid-stack-item-removing{animation:var(--ax-comp-grid-layout-stack-item-removing-animation, fadeAndBlur .5s linear forwards)}@keyframes fadeAndBlur{0%{opacity:1;filter:blur(0)}to{opacity:.8;filter:blur(5px)}}.ax-grid-layout-trash{cursor:grabbing;min-height:var(--ax-comp-grid-layout-stack-trash-min-height, 120px);background-repeat:no-repeat;background-position:center center;background-image:var(--ax-comp-grid-layout-stack-trash-bg-image, url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjY0cHgiIGhlaWdodD0iNjRweCIgdmlld0JveD0iMCAwIDQzOC41MjkgNDM4LjUyOSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDM4LjUyOSA0MzguNTI5OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTQxNy42ODksNzUuNjU0Yy0xLjcxMS0xLjcwOS0zLjkwMS0yLjU2OC02LjU2My0yLjU2OGgtODguMjI0TDMwMi45MTcsMjUuNDFjLTIuODU0LTcuMDQ0LTcuOTk0LTEzLjA0LTE1LjQxMy0xNy45ODkgICAgQzI4MC4wNzgsMi40NzMsMjcyLjU1NiwwLDI2NC45NDUsMGgtOTEuMzYzYy03LjYxMSwwLTE1LjEzMSwyLjQ3My0yMi41NTQsNy40MjFjLTcuNDI0LDQuOTQ5LTEyLjU2MywxMC45NDQtMTUuNDE5LDE3Ljk4OSAgICBsLTE5Ljk4NSw0Ny42NzZoLTg4LjIyYy0yLjY2NywwLTQuODUzLDAuODU5LTYuNTY3LDIuNTY4Yy0xLjcwOSwxLjcxMy0yLjU2OCwzLjkwMy0yLjU2OCw2LjU2N3YxOC4yNzQgICAgYzAsMi42NjQsMC44NTUsNC44NTQsMi41NjgsNi41NjRjMS43MTQsMS43MTIsMy45MDQsMi41NjgsNi41NjcsMi41NjhoMjcuNDA2djI3MS44YzAsMTUuODAzLDQuNDczLDI5LjI2NiwxMy40MTgsNDAuMzk4ICAgIGM4Ljk0NywxMS4xMzksMTkuNzAxLDE2LjcwMywzMi4yNjQsMTYuNzAzaDIzNy41NDJjMTIuNTY2LDAsMjMuMzE5LTUuNzU2LDMyLjI2NS0xNy4yNjhjOC45NDUtMTEuNTIsMTMuNDE1LTI1LjE3NCwxMy40MTUtNDAuOTcxICAgIFYxMDkuNjI3aDI3LjQxMWMyLjY2MiwwLDQuODUzLTAuODU2LDYuNTYzLTIuNTY4YzEuNzA4LTEuNzA5LDIuNTctMy45LDIuNTctNi41NjRWODIuMjIxICAgIEM0MjAuMjYsNzkuNTU3LDQxOS4zOTcsNzcuMzY3LDQxNy42ODksNzUuNjU0eiBNMTY5LjMwMSwzOS42NzhjMS4zMzEtMS43MTIsMi45NS0yLjc2Miw0Ljg1My0zLjE0aDkwLjUwNCAgICBjMS45MDMsMC4zODEsMy41MjUsMS40Myw0Ljg1NCwzLjE0bDEzLjcwOSwzMy40MDRIMTU1LjMxMUwxNjkuMzAxLDM5LjY3OHogTTM0Ny4xNzMsMzgwLjI5MWMwLDQuMTg2LTAuNjY0LDguMDQyLTEuOTk5LDExLjU2MSAgICBjLTEuMzM0LDMuNTE4LTIuNzE3LDYuMDg4LTQuMTQxLDcuNzA2Yy0xLjQzMSwxLjYyMi0yLjQyMywyLjQyNy0yLjk5OCwyLjQyN0gxMDAuNDkzYy0wLjU3MSwwLTEuNTY1LTAuODA1LTIuOTk2LTIuNDI3ICAgIGMtMS40MjktMS42MTgtMi44MS00LjE4OC00LjE0My03LjcwNmMtMS4zMzEtMy41MTktMS45OTctNy4zNzktMS45OTctMTEuNTYxVjEwOS42MjdoMjU1LjgxNVYzODAuMjkxeiIgZmlsbD0iI2ZmOWNhZSIvPgoJCTxwYXRoIGQ9Ik0xMzcuMDQsMzQ3LjE3MmgxOC4yNzFjMi42NjcsMCw0Ljg1OC0wLjg1NSw2LjU2Ny0yLjU2N2MxLjcwOS0xLjcxOCwyLjU2OC0zLjkwMSwyLjU2OC02LjU3VjE3My41ODEgICAgYzAtMi42NjMtMC44NTktNC44NTMtMi41NjgtNi41NjdjLTEuNzE0LTEuNzA5LTMuODk5LTIuNTY1LTYuNTY3LTIuNTY1SDEzNy4wNGMtMi42NjcsMC00Ljg1NCwwLjg1NS02LjU2NywyLjU2NSAgICBjLTEuNzExLDEuNzE0LTIuNTY4LDMuOTA0LTIuNTY4LDYuNTY3djE2NC40NTRjMCwyLjY2OSwwLjg1NCw0Ljg1MywyLjU2OCw2LjU3QzEzMi4xODYsMzQ2LjMxNiwxMzQuMzczLDM0Ny4xNzIsMTM3LjA0LDM0Ny4xNzJ6IiBmaWxsPSIjZmY5Y2FlIi8+CgkJPHBhdGggZD0iTTIxMC4xMjksMzQ3LjE3MmgxOC4yNzFjMi42NjYsMCw0Ljg1Ni0wLjg1NSw2LjU2NC0yLjU2N2MxLjcxOC0xLjcxOCwyLjU2OS0zLjkwMSwyLjU2OS02LjU3VjE3My41ODEgICAgYzAtMi42NjMtMC44NTItNC44NTMtMi41NjktNi41NjdjLTEuNzA4LTEuNzA5LTMuODk4LTIuNTY1LTYuNTY0LTIuNTY1aC0xOC4yNzFjLTIuNjY0LDAtNC44NTQsMC44NTUtNi41NjcsMi41NjUgICAgYy0xLjcxNCwxLjcxNC0yLjU2OCwzLjkwNC0yLjU2OCw2LjU2N3YxNjQuNDU0YzAsMi42NjksMC44NTQsNC44NTMsMi41NjgsNi41N0MyMDUuMjc0LDM0Ni4zMTYsMjA3LjQ2NSwzNDcuMTcyLDIxMC4xMjksMzQ3LjE3MnogICAgIiBmaWxsPSIjZmY5Y2FlIi8+CgkJPHBhdGggZD0iTTI4My4yMiwzNDcuMTcyaDE4LjI2OGMyLjY2OSwwLDQuODU5LTAuODU1LDYuNTctMi41NjdjMS43MTEtMS43MTgsMi41NjItMy45MDEsMi41NjItNi41N1YxNzMuNTgxICAgIGMwLTIuNjYzLTAuODUyLTQuODUzLTIuNTYyLTYuNTY3Yy0xLjcxMS0xLjcwOS0zLjkwMS0yLjU2NS02LjU3LTIuNTY1SDI4My4yMmMtMi42NywwLTQuODUzLDAuODU1LTYuNTcxLDIuNTY1ICAgIGMtMS43MTEsMS43MTQtMi41NjYsMy45MDQtMi41NjYsNi41Njd2MTY0LjQ1NGMwLDIuNjY5LDAuODU1LDQuODUzLDIuNTY2LDYuNTdDMjc4LjM2NywzNDYuMzE2LDI4MC41NSwzNDcuMTcyLDI4My4yMiwzNDcuMTcyeiIgZmlsbD0iI2ZmOWNhZSIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=))}\n"] }]
555
+ args: [{ selector: 'ax-grid-layout-container', template: `<ng-content></ng-content> `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXGridLayoutContainerComponent }], styles: [".grid-stack{position:relative}.grid-stack-rtl{direction:ltr}.grid-stack-rtl>.grid-stack-item{direction:rtl}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;margin:0;position:absolute;width:auto;z-index:0!important}.grid-stack>.grid-stack-item{position:absolute;padding:0;top:0;left:0;width:var(--gs-column-width);height:var(--gs-cell-height)}.grid-stack>.grid-stack-item>.grid-stack-item-content{margin:0;position:absolute;width:auto;overflow-x:hidden;overflow-y:auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{top:var(--gs-item-margin-top);right:var(--gs-item-margin-right);bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle,.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{background-image:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"%23666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewBox=\"0 0 20 20\"><path d=\"m10 3 2 2H8l2-2v14l-2-2h4l-2 2\"/></svg>');background-repeat:no-repeat;background-position:center}.grid-stack-item>.ui-resizable-ne{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;top:var(--gs-item-margin-top);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:var(--gs-item-margin-top);left:25px;right:25px}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;top:var(--gs-item-margin-top);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;top:15px;bottom:15px;right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:var(--gs-item-margin-bottom);right:25px}.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;top:15px;bottom:15px;left:var(--gs-item-margin-left)}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left,top}.grid-stack-item.ui-resizable-resizing{will-change:width,height}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{box-shadow:1px 4px 6px #0003;opacity:.8}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing,.grid-stack-animate .grid-stack-item.grid-stack-placeholder{transition:left 0s,top 0s,height 0s,width 0s}.grid-stack>.grid-stack-item[gs-y=\"0\"]{top:0}.grid-stack>.grid-stack-item[gs-x=\"0\"]{left:0%}ax-grid-layout-container{display:block;border-style:solid;border-width:var(--ax-comp-grid-layout-container-border-width, 0px);border-color:rgba(var(--ax-comp-grid-layout-container-border-color, var(--ax-sys-color-border-surface)));background-color:rgba(var(--ax-comp-grid-layout-container-bg-color, transparent))}ax-grid-layout-container .grid-stack-placeholder>.placeholder-content{background-color:rgba(var(--ax-comp-grid-layout-placeholder-bg-color, var(--ax-sys-color-surface)))}ax-grid-layout-widget{display:block}.grid-stack-item{cursor:pointer;border-radius:var(--ax-comp-grid-layout-stack-item-border-radius, 0)}.grid-stack-item-content{display:flex;align-items:center;justify-content:center;border-style:solid;border-radius:var(--ax-comp-grid-layout-stack-item-content-border-radius, var(--ax-sys-border-radius));border-width:var(--ax-comp-grid-layout-stack-item-content-border-width, 1px);border-color:rgba(var(--ax-comp-grid-layout-stack-item-content-border-color, var(--ax-sys-color-border-surface)));background-color:rgba(var(--ax-comp-grid-layout-stack-item-content-bg-color, var(--ax-sys-color-surface)));overflow:auto;-webkit-user-select:none;user-select:none;text-align:center}.grid-stack-item-removing{animation:var(--ax-comp-grid-layout-stack-item-removing-animation, fadeAndBlur .5s linear forwards)}@keyframes fadeAndBlur{0%{opacity:1;filter:blur(0)}to{opacity:.8;filter:blur(5px)}}.ax-grid-layout-trash{cursor:grabbing;min-height:var(--ax-comp-grid-layout-stack-trash-min-height, 120px);background-repeat:no-repeat;background-position:center center;background-image:var( --ax-comp-grid-layout-stack-trash-bg-image, url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjY0cHgiIGhlaWdodD0iNjRweCIgdmlld0JveD0iMCAwIDQzOC41MjkgNDM4LjUyOSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDM4LjUyOSA0MzguNTI5OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTQxNy42ODksNzUuNjU0Yy0xLjcxMS0xLjcwOS0zLjkwMS0yLjU2OC02LjU2My0yLjU2OGgtODguMjI0TDMwMi45MTcsMjUuNDFjLTIuODU0LTcuMDQ0LTcuOTk0LTEzLjA0LTE1LjQxMy0xNy45ODkgICAgQzI4MC4wNzgsMi40NzMsMjcyLjU1NiwwLDI2NC45NDUsMGgtOTEuMzYzYy03LjYxMSwwLTE1LjEzMSwyLjQ3My0yMi41NTQsNy40MjFjLTcuNDI0LDQuOTQ5LTEyLjU2MywxMC45NDQtMTUuNDE5LDE3Ljk4OSAgICBsLTE5Ljk4NSw0Ny42NzZoLTg4LjIyYy0yLjY2NywwLTQuODUzLDAuODU5LTYuNTY3LDIuNTY4Yy0xLjcwOSwxLjcxMy0yLjU2OCwzLjkwMy0yLjU2OCw2LjU2N3YxOC4yNzQgICAgYzAsMi42NjQsMC44NTUsNC44NTQsMi41NjgsNi41NjRjMS43MTQsMS43MTIsMy45MDQsMi41NjgsNi41NjcsMi41NjhoMjcuNDA2djI3MS44YzAsMTUuODAzLDQuNDczLDI5LjI2NiwxMy40MTgsNDAuMzk4ICAgIGM4Ljk0NywxMS4xMzksMTkuNzAxLDE2LjcwMywzMi4yNjQsMTYuNzAzaDIzNy41NDJjMTIuNTY2LDAsMjMuMzE5LTUuNzU2LDMyLjI2NS0xNy4yNjhjOC45NDUtMTEuNTIsMTMuNDE1LTI1LjE3NCwxMy40MTUtNDAuOTcxICAgIFYxMDkuNjI3aDI3LjQxMWMyLjY2MiwwLDQuODUzLTAuODU2LDYuNTYzLTIuNTY4YzEuNzA4LTEuNzA5LDIuNTctMy45LDIuNTctNi41NjRWODIuMjIxICAgIEM0MjAuMjYsNzkuNTU3LDQxOS4zOTcsNzcuMzY3LDQxNy42ODksNzUuNjU0eiBNMTY5LjMwMSwzOS42NzhjMS4zMzEtMS43MTIsMi45NS0yLjc2Miw0Ljg1My0zLjE0aDkwLjUwNCAgICBjMS45MDMsMC4zODEsMy41MjUsMS40Myw0Ljg1NCwzLjE0bDEzLjcwOSwzMy40MDRIMTU1LjMxMUwxNjkuMzAxLDM5LjY3OHogTTM0Ny4xNzMsMzgwLjI5MWMwLDQuMTg2LTAuNjY0LDguMDQyLTEuOTk5LDExLjU2MSAgICBjLTEuMzM0LDMuNTE4LTIuNzE3LDYuMDg4LTQuMTQxLDcuNzA2Yy0xLjQzMSwxLjYyMi0yLjQyMywyLjQyNy0yLjk5OCwyLjQyN0gxMDAuNDkzYy0wLjU3MSwwLTEuNTY1LTAuODA1LTIuOTk2LTIuNDI3ICAgIGMtMS40MjktMS42MTgtMi44MS00LjE4OC00LjE0My03LjcwNmMtMS4zMzEtMy41MTktMS45OTctNy4zNzktMS45OTctMTEuNTYxVjEwOS42MjdoMjU1LjgxNVYzODAuMjkxeiIgZmlsbD0iI2ZmOWNhZSIvPgoJCTxwYXRoIGQ9Ik0xMzcuMDQsMzQ3LjE3MmgxOC4yNzFjMi42NjcsMCw0Ljg1OC0wLjg1NSw2LjU2Ny0yLjU2N2MxLjcwOS0xLjcxOCwyLjU2OC0zLjkwMSwyLjU2OC02LjU3VjE3My41ODEgICAgYzAtMi42NjMtMC44NTktNC44NTMtMi41NjgtNi41NjdjLTEuNzE0LTEuNzA5LTMuODk5LTIuNTY1LTYuNTY3LTIuNTY1SDEzNy4wNGMtMi42NjcsMC00Ljg1NCwwLjg1NS02LjU2NywyLjU2NSAgICBjLTEuNzExLDEuNzE0LTIuNTY4LDMuOTA0LTIuNTY4LDYuNTY3djE2NC40NTRjMCwyLjY2OSwwLjg1NCw0Ljg1MywyLjU2OCw2LjU3QzEzMi4xODYsMzQ2LjMxNiwxMzQuMzczLDM0Ny4xNzIsMTM3LjA0LDM0Ny4xNzJ6IiBmaWxsPSIjZmY5Y2FlIi8+CgkJPHBhdGggZD0iTTIxMC4xMjksMzQ3LjE3MmgxOC4yNzFjMi42NjYsMCw0Ljg1Ni0wLjg1NSw2LjU2NC0yLjU2N2MxLjcxOC0xLjcxOCwyLjU2OS0zLjkwMSwyLjU2OS02LjU3VjE3My41ODEgICAgYzAtMi42NjMtMC44NTItNC44NTMtMi41NjktNi41NjdjLTEuNzA4LTEuNzA5LTMuODk4LTIuNTY1LTYuNTY0LTIuNTY1aC0xOC4yNzFjLTIuNjY0LDAtNC44NTQsMC44NTUtNi41NjcsMi41NjUgICAgYy0xLjcxNCwxLjcxNC0yLjU2OCwzLjkwNC0yLjU2OCw2LjU2N3YxNjQuNDU0YzAsMi42NjksMC44NTQsNC44NTMsMi41NjgsNi41N0MyMDUuMjc0LDM0Ni4zMTYsMjA3LjQ2NSwzNDcuMTcyLDIxMC4xMjksMzQ3LjE3MnogICAgIiBmaWxsPSIjZmY5Y2FlIi8+CgkJPHBhdGggZD0iTTI4My4yMiwzNDcuMTcyaDE4LjI2OGMyLjY2OSwwLDQuODU5LTAuODU1LDYuNTctMi41NjdjMS43MTEtMS43MTgsMi41NjItMy45MDEsMi41NjItNi41N1YxNzMuNTgxICAgIGMwLTIuNjYzLTAuODUyLTQuODUzLTIuNTYyLTYuNTY3Yy0xLjcxMS0xLjcwOS0zLjkwMS0yLjU2NS02LjU3LTIuNTY1SDI4My4yMmMtMi42NywwLTQuODUzLDAuODU1LTYuNTcxLDIuNTY1ICAgIGMtMS43MTEsMS43MTQtMi41NjYsMy45MDQtMi41NjYsNi41Njd2MTY0LjQ1NGMwLDIuNjY5LDAuODU1LDQuODUzLDIuNTY2LDYuNTdDMjc4LjM2NywzNDYuMzE2LDI4MC41NSwzNDcuMTcyLDI4My4yMiwzNDcuMTcyeiIgZmlsbD0iI2ZmOWNhZSIvPgoJPC9nPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+CjxnPgo8L2c+Cjwvc3ZnPgo=) )}\n"] }]
556
556
  }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], onAdded: [{ type: i0.Output, args: ["onAdded"] }], onRemoved: [{ type: i0.Output, args: ["onRemoved"] }], onWidgetChange: [{ type: i0.Output, args: ["onWidgetChange"] }], onChange: [{ type: i0.Output, args: ["onChange"] }], onRender: [{ type: i0.Output, args: ["onRender"] }], isEmpty: [{ type: i0.Input, args: [{ isSignal: true, alias: "isEmpty", required: false }] }, { type: i0.Output, args: ["isEmptyChange"] }], gridstackItems: [{
557
557
  type: ContentChildren,
558
558
  args: [AXGridLayoutWidgetComponent]
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-grid-layout-builder.mjs","sources":["../../../../packages/components/grid-layout-builder/src/lib/utility.ts","../../../../packages/components/grid-layout-builder/src/lib/grid-layout-widget.component.ts","../../../../packages/components/grid-layout-builder/src/lib/grid-layout-container.component.ts","../../../../packages/components/grid-layout-builder/src/lib/grid-layout-builder.module.ts","../../../../packages/components/grid-layout-builder/src/acorex-components-grid-layout-builder.ts"],"sourcesContent":["import { AXGridLayoutNode, AXGridLayoutOptions, AXGridLayoutWidget } from './types';\n\n// Convert AXGridLayoutWidget to GridStackWidget\nexport function convertAXGridLayoutWidgetToGridStackWidget(\n widget: AXGridLayoutWidget,\n): import('gridstack').GridStackWidget {\n return {\n id: widget.id,\n x: widget.x,\n y: widget.y,\n w: widget.width,\n h: widget.height,\n maxW: widget.maxWidth,\n maxH: widget.maxHeight,\n minW: widget.minWidth,\n minH: widget.minHeight,\n noResize: widget.disableResize,\n noMove: widget.disableDrag,\n };\n}\n\n// Convert GridStackWidget to AXGridLayoutWidget\nexport function convertGridStackWidgetToAXGridLayoutWidget(\n widget: import('gridstack').GridStackWidget,\n): AXGridLayoutWidget {\n return {\n id: widget.id,\n x: widget.x,\n y: widget.y,\n width: widget.w,\n height: widget.h,\n maxWidth: widget.maxW,\n maxHeight: widget.maxH,\n minWidth: widget.minW,\n minHeight: widget.minH,\n disableResize: widget.noResize,\n disableDrag: widget.noMove,\n };\n}\n\n// Convert AXGridLayoutNode to GridStackNode\nexport function convertAXGridLayoutNodeToGridStackNode(node: AXGridLayoutNode): import('gridstack').GridStackNode {\n return {\n id: node.id,\n x: node.x,\n y: node.y,\n w: node.width,\n h: node.height,\n maxW: node.maxWidth,\n maxH: node.maxHeight,\n minW: node.minWidth,\n minH: node.minHeight,\n noResize: node.disableResize,\n noMove: node.disableDrag,\n el: node.element,\n };\n}\n\n// Convert GridStackNode to AXGridLayoutNode\nexport function convertGridStackNodeToAXGridLayoutNode(node: import('gridstack').GridStackNode): AXGridLayoutNode {\n return {\n id: node.id,\n x: node.x,\n y: node.y,\n width: node.w,\n height: node.h,\n maxWidth: node.maxW,\n maxHeight: node.maxH,\n minWidth: node.minW,\n minHeight: node.minH,\n disableResize: node.noResize,\n disableDrag: node.noMove,\n element: node.el,\n };\n}\n\n// Convert AXGridLayoutOptions to GridStackOptions\nexport function convertAXGridLayoutOptionsToGridStackOptions(\n options: AXGridLayoutOptions,\n): import('gridstack').GridStackOptions {\n return {\n column: options.column,\n disableDrag: options.disableDrag,\n disableResize: options.disableResize,\n margin: options.gap,\n cellHeight: options.cellHeight,\n rtl: options.rtl,\n maxRow: options.maxRow,\n minRow: options.minRow,\n row: options.row,\n removable: options.removableSelector || options.removable,\n acceptWidgets: options.acceptWidgets,\n float: options.float,\n handle: options.dragHandlerSelector,\n columnOpts: { breakpoints: options?.responsiveLayout?.map((i) => ({ c: i.column, w: i.width })) },\n };\n}\n\n// Convert GridStackOptions to AXGridLayoutOptions\nexport function convertGridStackOptionsToAXGridLayoutOptions(\n options: import('gridstack').GridStackOptions,\n): AXGridLayoutOptions {\n return {\n column: options.column,\n disableDrag: options.disableDrag,\n disableResize: options.disableResize,\n gap: options.margin,\n cellHeight: options.cellHeight,\n rtl: options.rtl,\n maxRow: options.maxRow,\n minRow: options.minRow,\n row: options.row,\n removableSelector: typeof options.removable === 'string' ? options.removable : undefined,\n removable: typeof options.removable === 'boolean' ? options.removable : undefined,\n acceptWidgets: options.acceptWidgets as boolean,\n float: options.float,\n dragHandlerSelector: options.handle,\n responsiveLayout: options?.columnOpts?.breakpoints?.map((i) => ({ width: i.w, column: i.c })),\n };\n}\n\n/** remove keys which are undefined */\nexport function removeUndefinedKeys(obj) {\n const newObj = { ...obj };\n for (const key in newObj) {\n if (newObj[key] === undefined) {\n delete newObj[key];\n }\n }\n return newObj;\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXGridLayoutNode, AXGridLayoutWidget, AXGridLayoutWidgetElement } from './types';\nimport {\n convertAXGridLayoutWidgetToGridStackWidget,\n convertGridStackNodeToAXGridLayoutNode,\n removeUndefinedKeys,\n} from './utility';\n\n@Component({\n selector: 'ax-grid-layout-widget',\n template: `<div class=\"grid-stack-item-content\"><ng-content></ng-content></div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXGridLayoutWidgetComponent }],\n})\nexport class AXGridLayoutWidgetComponent {\n private readonly elementRef: ElementRef<AXGridLayoutWidgetElement> = inject(ElementRef);\n\n public options = input<AXGridLayoutNode>();\n\n #eff = effect(() => {\n const options = this.options();\n\n untracked(() => {\n const gridstackNode = this.elementRef.nativeElement.gridstackNode as import('gridstack').GridStackNode;\n if (gridstackNode?.grid) {\n gridstackNode.grid.update(\n this.elementRef.nativeElement,\n removeUndefinedKeys(convertAXGridLayoutWidgetToGridStackWidget(options)),\n );\n }\n });\n });\n\n /**\n * Locks or unlocks the widget (prevents dragging and resizing).\n *\n * @param state - If true, the widget will be locked.\n * @returns void - No return value. The widget lock state is updated.\n */\n public setLockable(state: boolean): void {\n this.updateWidgetOptions({ disableResize: state, disableDrag: state });\n }\n\n /**\n * Enables or disables resizing of the widget.\n *\n * @param state - If true, resizing will be enabled.\n * @returns void - No return value. The widget resize state is updated.\n */\n public setResizable(state: boolean): void {\n this.updateWidgetOptions({ disableResize: !state });\n }\n\n /**\n * Updates the widget options.\n *\n * @param options - The new options for the widget.\n * @returns void - No return value. The widget options are updated.\n */\n public setOptions(options: AXGridLayoutWidget): void {\n this.updateWidgetOptions(options);\n }\n\n /**\n * Returns the current options of the widget.\n *\n * @returns AXGridLayoutNode - The current widget options.\n */\n public getOptions(): AXGridLayoutNode {\n const gridstackNode = this.elementRef.nativeElement.gridstackNode;\n return gridstackNode\n ? removeUndefinedKeys(convertGridStackNodeToAXGridLayoutNode(gridstackNode))\n : { ...this.options(), element: this.elementRef.nativeElement };\n }\n\n /**\n * Returns the widget options from the Angular input binding (stored/desired positions),\n * bypassing the live gridstackNode which may have been auto-reflowed.\n * Used by the container to load correct per-breakpoint layouts after column changes.\n *\n * @returns AXGridLayoutNode - The widget options from the input signal.\n */\n public getInputOptions(): AXGridLayoutNode {\n const opts = this.options();\n return opts\n ? { ...opts, element: this.elementRef.nativeElement }\n : { element: this.elementRef.nativeElement };\n }\n\n /**\n * Returns the native DOM element of the widget.\n *\n * @returns AXGridLayoutWidgetElement - The native element.\n */\n public get element(): AXGridLayoutWidgetElement {\n return this.elementRef.nativeElement;\n }\n\n /**\n * Updates the widget options and triggers a grid update.\n * @param options - The partial options to update.\n */\n private updateWidgetOptions(options: Partial<AXGridLayoutWidget>): void {\n const gridstackNode = this.elementRef.nativeElement.gridstackNode as import('gridstack').GridStackNode;\n if (gridstackNode?.grid) {\n gridstackNode.grid.update(\n this.elementRef.nativeElement,\n removeUndefinedKeys(convertAXGridLayoutWidgetToGridStackWidget(options)),\n );\n }\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n NgZone,\n OnDestroy,\n QueryList,\n ViewEncapsulation,\n afterNextRender,\n effect,\n inject,\n input,\n model,\n output,\n untracked,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXGridLayoutWidgetComponent } from './grid-layout-widget.component';\nimport {\n AXGridLayout,\n AXGridLayoutContainerElement,\n AXGridLayoutEvent,\n AXGridLayoutNode,\n AXGridLayoutOptions,\n AXGridLayoutPosition,\n AXGridLayoutWidget,\n AXGridLayoutWidgetElement,\n} from './types';\nimport {\n convertAXGridLayoutNodeToGridStackNode,\n convertAXGridLayoutOptionsToGridStackOptions,\n convertAXGridLayoutWidgetToGridStackWidget,\n convertGridStackNodeToAXGridLayoutNode,\n convertGridStackOptionsToAXGridLayoutOptions,\n removeUndefinedKeys,\n} from './utility';\n\n@Component({\n selector: 'ax-grid-layout-container',\n template: `<ng-content></ng-content> `,\n styleUrl: './grid-layout-container.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXGridLayoutContainerComponent }],\n})\nexport class AXGridLayoutContainerComponent extends NXComponent implements OnDestroy {\n //#region Inputs and Outputs\n public options = input<AXGridLayoutOptions>();\n\n protected onAdded = output<AXGridLayoutEvent>();\n protected onRemoved = output<AXGridLayoutEvent>();\n protected onWidgetChange = output<AXGridLayoutEvent>();\n protected onChange = output<AXGridLayoutEvent>();\n protected onRender = output<void>();\n\n protected isEmpty = model(false);\n //#endregion\n\n //#region Private Properties\n private readonly elementRef: ElementRef<AXGridLayoutContainerElement> = inject(ElementRef);\n private readonly ngZone = inject(NgZone);\n\n @ContentChildren(AXGridLayoutWidgetComponent) public gridstackItems?: QueryList<AXGridLayoutWidgetComponent>;\n\n private el = this.elementRef.nativeElement;\n private grid?: AXGridLayout;\n protected _sub: Subscription | undefined;\n private isInitialized = false;\n //#endregion\n\n //#region Initialization\n #init = afterNextRender(() => {\n this.ngZone.runOutsideAngular(async () => {\n const { GridStack } = await import('gridstack');\n const gridStackOptions = removeUndefinedKeys(convertAXGridLayoutOptionsToGridStackOptions(this.options() ?? {}));\n this.grid = GridStack.init(gridStackOptions, this.el);\n this.updateAll();\n this.hookEvents(this.grid);\n this.onRender.emit();\n this.isInitialized = true;\n });\n this._sub = this.gridstackItems?.changes.subscribe(() => {\n this.updateAll();\n });\n });\n\n // Watch for options changes\n #optionsEffect = effect(() => {\n const newOptions = this.options();\n if (this.isInitialized && this.grid && newOptions) {\n untracked(() => {\n this.ngZone.runOutsideAngular(() => {\n const gridStackOptions = removeUndefinedKeys(convertAXGridLayoutOptionsToGridStackOptions(newOptions));\n\n // Detect whether the column count is changing — requires loading from stored input positions\n const isColumnChange =\n gridStackOptions.column !== undefined && gridStackOptions.column !== this.grid?.opts?.column;\n\n // Use 'none' layout mode to prevent GridStack from auto-reflowing widget positions.\n // The correct per-breakpoint positions will be loaded explicitly via updateAll(true).\n if (gridStackOptions.column !== undefined) {\n this.grid?.column(gridStackOptions.column, 'none');\n }\n\n if (gridStackOptions.cellHeight !== undefined) {\n this.grid?.cellHeight(gridStackOptions.cellHeight);\n }\n\n if (gridStackOptions.margin !== undefined) {\n this.grid?.margin(gridStackOptions.margin);\n }\n\n if (gridStackOptions.disableResize !== undefined) {\n this.grid?.enableResize(!gridStackOptions.disableResize);\n }\n\n if (gridStackOptions.disableDrag !== undefined) {\n this.grid?.enableMove(!gridStackOptions.disableDrag);\n }\n\n if (gridStackOptions.float !== undefined) {\n this.grid?.float(gridStackOptions.float);\n }\n\n if (gridStackOptions.animate !== undefined) {\n this.grid?.setAnimation(gridStackOptions.animate);\n }\n\n // When column count changes, read from Angular inputs (stored per-breakpoint positions)\n // to avoid using stale gridstackNode positions from the old column layout.\n // For non-column changes, read from gridstackNode to preserve live drag/resize state.\n this.updateAll(isColumnChange);\n });\n });\n }\n });\n\n public ngOnDestroy(): void {\n this.unhookEvents(this.grid);\n this._sub?.unsubscribe();\n this.destroy();\n }\n //#endregion\n\n //#region Internal Methods\n\n /**\n * Synchronizes the grid layout with the current widget list.\n *\n * @param useInputValues - When true, reads positions from Angular input bindings\n * (stored per-breakpoint positions). When false, reads from live gridstackNode\n * (preserving user drag/resize state). Use true after column/breakpoint changes.\n */\n private updateAll(useInputValues = false) {\n if (!this.grid) return;\n\n const arrays = this.gridstackItems?.toArray() ?? [];\n\n if (arrays.length === 0) {\n this.grid.removeAll(true);\n this.checkEmpty();\n return;\n }\n\n const layout: AXGridLayoutNode[] = [];\n arrays.forEach((item) => {\n const widgetOptions = useInputValues ? item.getInputOptions() : item.getOptions();\n if (widgetOptions) {\n layout.push(removeUndefinedKeys(convertAXGridLayoutNodeToGridStackNode(widgetOptions)));\n }\n });\n\n this.grid.load(layout);\n this.checkEmpty();\n }\n\n private checkEmpty() {\n if (this.grid) {\n const isEmpty = !this.getChildren().length;\n if (isEmpty === this.isEmpty()) return;\n this.isEmpty.set(isEmpty);\n }\n }\n\n private hookEvents(grid?: AXGridLayout): void {\n if (grid) {\n grid\n .on('added', (event: Event, nodes: import('gridstack').GridStackNode[]) => {\n const mappedNodes = nodes.map((node) => removeUndefinedKeys(convertGridStackNodeToAXGridLayoutNode(node)));\n this.checkEmpty();\n this.onAdded.emit({ sender: this, nodes: mappedNodes });\n this._dispatchChangeEvent();\n })\n .on('removed', (event: Event, nodes: import('gridstack').GridStackNode[]) => {\n const mappedNodes = nodes.map((node) => removeUndefinedKeys(convertGridStackNodeToAXGridLayoutNode(node)));\n this.checkEmpty();\n this.onRemoved.emit({ sender: this, nodes: mappedNodes });\n this._dispatchChangeEvent();\n })\n .on('change', (event: Event, nodes: import('gridstack').GridStackNode[]) => {\n const mappedNodes = nodes.map((node) => removeUndefinedKeys(convertGridStackNodeToAXGridLayoutNode(node)));\n this.onWidgetChange.emit({ sender: this, nodes: mappedNodes });\n this._dispatchChangeEvent();\n });\n }\n }\n\n private unhookEvents(grid?: AXGridLayout) {\n if (grid) grid.offAll();\n }\n\n private _dispatchChangeEvent() {\n if (this.getChildren().length) {\n this.onChange.emit({\n sender: this,\n nodes: this.getChildren(),\n });\n }\n }\n //#endregion\n\n /**\n * Adds a widget to the grid layout.\n *\n * @param w - Widget configuration object.\n * @param withAutoArrange - Whether to compact the grid before adding the widget.\n * @returns AXGridLayoutWidgetElement | undefined - The created widget element or undefined if failed.\n */\n public addWidget(w: AXGridLayoutWidget, withAutoArrange = false): AXGridLayoutWidgetElement | undefined {\n if (withAutoArrange) this.compact();\n\n const gridStackWidget = removeUndefinedKeys(convertAXGridLayoutWidgetToGridStackWidget(w));\n const node = this.grid?.addWidget(gridStackWidget)?.gridstackNode;\n if (!node) return undefined;\n\n const widgetElement: AXGridLayoutWidgetElement = node.el as AXGridLayoutWidgetElement;\n widgetElement.gridstackNode = removeUndefinedKeys(convertGridStackNodeToAXGridLayoutNode(node));\n\n return widgetElement;\n }\n\n /**\n * Compacts the grid layout.\n *\n * @param layout - Layout type for compacting ('list' or 'compact').\n * @param doSort - Whether to sort items while compacting.\n * @returns void - No return value. The grid layout is compacted.\n */\n public compact(layout: 'list' | 'compact' = 'compact', doSort = true): void {\n this.grid?.compact(layout, doSort);\n }\n\n /**\n * Sets the cell height of the grid.\n *\n * @param val - New cell height value.\n * @returns void - No return value. The cell height is updated.\n */\n public setCellHeight(val: number): void {\n this.grid?.cellHeight(val);\n }\n\n /**\n * Sets the number of columns in the grid.\n *\n * @param column - Number of columns.\n * @param layout - Layout type for the change ('list', 'compact', 'moveScale', 'move', 'scale', or 'none').\n * @returns void - No return value. The column count is updated.\n */\n public setColumn(\n column: number,\n layout: 'list' | 'compact' | 'moveScale' | 'move' | 'scale' | 'none' = 'moveScale',\n ): void {\n this.grid?.column(column, layout);\n }\n\n /**\n * Destroys the grid instance.\n *\n * @param removeDOM - Whether to remove DOM elements.\n * @returns void - No return value. The grid instance is destroyed.\n */\n public destroy(removeDOM = true): void {\n this.grid?.destroy(removeDOM);\n }\n\n /**\n * Enables or disables moving of widgets.\n *\n * @param state - Whether to enable moving.\n * @param recurse - Whether to apply to all child widgets.\n * @returns void - No return value. The move state is updated.\n */\n public setMovable(state: boolean, recurse?: boolean) {\n this.grid?.enableMove(state, recurse);\n }\n\n /**\n * Enables or disables resizing of widgets.\n *\n * @param state - Whether to enable resizing.\n * @param recurse - Whether to apply to all child widgets.\n * @returns void - No return value. The resize state is updated.\n */\n public setResizable(state: boolean, recurse?: boolean) {\n this.grid?.enableResize(state, recurse);\n }\n\n /**\n * Sets the float property of the grid.\n *\n * @param val - Whether to enable floating widgets.\n * @returns void - No return value. The float state is updated.\n */\n public setFloat(val: boolean): void {\n this.grid?.float(val);\n }\n\n /**\n * Sets the margin between grid items.\n *\n * @param value - Margin value (number in pixels or string with units).\n * @returns void - No return value. The margin is updated.\n */\n public setMargin(value: number | string): void {\n this.grid?.margin(value);\n }\n\n /**\n * Removes a specific widget from the grid.\n *\n * @param el - The widget element to remove.\n * @param removeDOM - Whether to remove the DOM element.\n * @param triggerEvent - Whether to trigger removal events.\n * @returns void - No return value. The widget is removed.\n */\n public removeWidget(el: AXGridLayoutWidgetElement, removeDOM = true, triggerEvent = true): void {\n this.grid?.removeWidget(el, removeDOM, triggerEvent);\n }\n\n /**\n * Removes all widgets from the grid.\n *\n * @param removeDOM - Whether to remove DOM elements.\n * @returns void - No return value. All widgets are removed.\n */\n public removeAll(removeDOM = true): void {\n this.grid?.removeAll(removeDOM);\n }\n\n /**\n * Sets the animation state for the grid.\n *\n * @param doAnimate - Whether to enable animations.\n * @returns void - No return value. The animation state is updated.\n */\n public setAnimation(doAnimate: boolean): void {\n this.grid?.setAnimation(doAnimate);\n }\n\n /**\n * Sets up draggable functionality for external elements.\n *\n * @param dragIn - CSS selector string or array of HTML elements to make draggable.\n * @param widgets - Optional widget configuration for dragged items.\n * @returns Promise<void> - Promise that resolves when drag setup is complete.\n */\n public async setupDraggable(dragIn?: string | HTMLElement[], widgets?: AXGridLayoutWidget) {\n if (typeof dragIn === 'string') {\n document.querySelectorAll(dragIn).forEach((item) => {\n if (!item.classList.contains('grid-stack-item')) {\n item.classList.add('grid-stack-item');\n }\n });\n }\n const { GridStack } = await import('gridstack');\n const gridStackWidgets = widgets\n ? [removeUndefinedKeys(convertAXGridLayoutWidgetToGridStackWidget(widgets))]\n : undefined;\n GridStack.setupDragIn(dragIn, undefined, gridStackWidgets);\n }\n\n /**\n * Gets the current grid options.\n *\n * @returns AXGridLayoutOptions - Current grid configuration options.\n */\n public getOptions(): AXGridLayoutOptions {\n const opts = this.grid?.opts;\n if (!opts) return {};\n\n return removeUndefinedKeys(convertGridStackOptionsToAXGridLayoutOptions(opts));\n }\n\n /**\n * Gets all child widgets in the grid.\n *\n * @returns AXGridLayoutNode[] - Array of all child widget nodes.\n */\n public getChildren(): AXGridLayoutNode[] {\n const children = this.grid?.engine.nodes ?? [];\n return children.map((node) => removeUndefinedKeys(convertGridStackNodeToAXGridLayoutNode(node)));\n }\n\n /**\n * Finds an empty space in the grid for a widget.\n *\n * @param input - Dimensions of the widget with height and width.\n * @returns { x: number; y: number } - Object containing x and y coordinates of empty space.\n */\n public findEmptySpace(\n input: Required<Pick<AXGridLayoutPosition, 'height' | 'width'>>,\n ): Pick<AXGridLayoutPosition, 'x' | 'y'> {\n const value = { h: input.height, w: input.height } as any;\n this.grid?.engine.findEmptyPosition(value);\n return { x: value.x, y: value.y };\n }\n //#endregion\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AXGridLayoutContainerComponent } from './grid-layout-container.component';\nimport { AXGridLayoutWidgetComponent } from './grid-layout-widget.component';\n\n@NgModule({\n imports: [CommonModule, AXGridLayoutContainerComponent, AXGridLayoutWidgetComponent],\n exports: [AXGridLayoutContainerComponent, AXGridLayoutWidgetComponent],\n})\nexport class AXGridLayoutBuilderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-grid-layout-builder.mjs","sources":["../../../../packages/components/grid-layout-builder/src/lib/utility.ts","../../../../packages/components/grid-layout-builder/src/lib/grid-layout-widget.component.ts","../../../../packages/components/grid-layout-builder/src/lib/grid-layout-container.component.ts","../../../../packages/components/grid-layout-builder/src/lib/grid-layout-builder.module.ts","../../../../packages/components/grid-layout-builder/src/acorex-components-grid-layout-builder.ts"],"sourcesContent":["import { AXGridLayoutNode, AXGridLayoutOptions, AXGridLayoutWidget } from './types';\n\n// Convert AXGridLayoutWidget to GridStackWidget\nexport function convertAXGridLayoutWidgetToGridStackWidget(\n widget: AXGridLayoutWidget,\n): import('gridstack').GridStackWidget {\n return {\n id: widget.id,\n x: widget.x,\n y: widget.y,\n w: widget.width,\n h: widget.height,\n maxW: widget.maxWidth,\n maxH: widget.maxHeight,\n minW: widget.minWidth,\n minH: widget.minHeight,\n noResize: widget.disableResize,\n noMove: widget.disableDrag,\n };\n}\n\n// Convert GridStackWidget to AXGridLayoutWidget\nexport function convertGridStackWidgetToAXGridLayoutWidget(\n widget: import('gridstack').GridStackWidget,\n): AXGridLayoutWidget {\n return {\n id: widget.id,\n x: widget.x,\n y: widget.y,\n width: widget.w,\n height: widget.h,\n maxWidth: widget.maxW,\n maxHeight: widget.maxH,\n minWidth: widget.minW,\n minHeight: widget.minH,\n disableResize: widget.noResize,\n disableDrag: widget.noMove,\n };\n}\n\n// Convert AXGridLayoutNode to GridStackNode\nexport function convertAXGridLayoutNodeToGridStackNode(node: AXGridLayoutNode): import('gridstack').GridStackNode {\n return {\n id: node.id,\n x: node.x,\n y: node.y,\n w: node.width,\n h: node.height,\n maxW: node.maxWidth,\n maxH: node.maxHeight,\n minW: node.minWidth,\n minH: node.minHeight,\n noResize: node.disableResize,\n noMove: node.disableDrag,\n el: node.element,\n };\n}\n\n// Convert GridStackNode to AXGridLayoutNode\nexport function convertGridStackNodeToAXGridLayoutNode(node: import('gridstack').GridStackNode): AXGridLayoutNode {\n return {\n id: node.id,\n x: node.x,\n y: node.y,\n width: node.w,\n height: node.h,\n maxWidth: node.maxW,\n maxHeight: node.maxH,\n minWidth: node.minW,\n minHeight: node.minH,\n disableResize: node.noResize,\n disableDrag: node.noMove,\n element: node.el,\n };\n}\n\n// Convert AXGridLayoutOptions to GridStackOptions\nexport function convertAXGridLayoutOptionsToGridStackOptions(\n options: AXGridLayoutOptions,\n): import('gridstack').GridStackOptions {\n return {\n column: options.column,\n disableDrag: options.disableDrag,\n disableResize: options.disableResize,\n margin: options.gap,\n cellHeight: options.cellHeight,\n rtl: options.rtl,\n maxRow: options.maxRow,\n minRow: options.minRow,\n row: options.row,\n removable: options.removableSelector || options.removable,\n acceptWidgets: options.acceptWidgets,\n float: options.float,\n handle: options.dragHandlerSelector,\n columnOpts: { breakpoints: options?.responsiveLayout?.map((i) => ({ c: i.column, w: i.width })) },\n };\n}\n\n// Convert GridStackOptions to AXGridLayoutOptions\nexport function convertGridStackOptionsToAXGridLayoutOptions(\n options: import('gridstack').GridStackOptions,\n): AXGridLayoutOptions {\n return {\n column: options.column,\n disableDrag: options.disableDrag,\n disableResize: options.disableResize,\n gap: options.margin,\n cellHeight: options.cellHeight,\n rtl: options.rtl,\n maxRow: options.maxRow,\n minRow: options.minRow,\n row: options.row,\n removableSelector: typeof options.removable === 'string' ? options.removable : undefined,\n removable: typeof options.removable === 'boolean' ? options.removable : undefined,\n acceptWidgets: options.acceptWidgets as boolean,\n float: options.float,\n dragHandlerSelector: options.handle,\n responsiveLayout: options?.columnOpts?.breakpoints?.map((i) => ({ width: i.w, column: i.c })),\n };\n}\n\n/** remove keys which are undefined */\nexport function removeUndefinedKeys(obj) {\n const newObj = { ...obj };\n for (const key in newObj) {\n if (newObj[key] === undefined) {\n delete newObj[key];\n }\n }\n return newObj;\n}\n","import { AXComponent } from '@acorex/cdk/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXGridLayoutNode, AXGridLayoutWidget, AXGridLayoutWidgetElement } from './types';\nimport {\n convertAXGridLayoutWidgetToGridStackWidget,\n convertGridStackNodeToAXGridLayoutNode,\n removeUndefinedKeys,\n} from './utility';\n\n@Component({\n selector: 'ax-grid-layout-widget',\n template: `<div class=\"grid-stack-item-content\"><ng-content></ng-content></div>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXGridLayoutWidgetComponent }],\n})\nexport class AXGridLayoutWidgetComponent {\n private readonly elementRef: ElementRef<AXGridLayoutWidgetElement> = inject(ElementRef);\n\n public options = input<AXGridLayoutNode>();\n\n #eff = effect(() => {\n const options = this.options();\n\n untracked(() => {\n const gridstackNode = this.elementRef.nativeElement.gridstackNode as import('gridstack').GridStackNode;\n if (gridstackNode?.grid) {\n gridstackNode.grid.update(\n this.elementRef.nativeElement,\n removeUndefinedKeys(convertAXGridLayoutWidgetToGridStackWidget(options)),\n );\n }\n });\n });\n\n /**\n * Locks or unlocks the widget (prevents dragging and resizing).\n *\n * @param state - If true, the widget will be locked.\n * @returns void - No return value. The widget lock state is updated.\n */\n public setLockable(state: boolean): void {\n this.updateWidgetOptions({ disableResize: state, disableDrag: state });\n }\n\n /**\n * Enables or disables resizing of the widget.\n *\n * @param state - If true, resizing will be enabled.\n * @returns void - No return value. The widget resize state is updated.\n */\n public setResizable(state: boolean): void {\n this.updateWidgetOptions({ disableResize: !state });\n }\n\n /**\n * Updates the widget options.\n *\n * @param options - The new options for the widget.\n * @returns void - No return value. The widget options are updated.\n */\n public setOptions(options: AXGridLayoutWidget): void {\n this.updateWidgetOptions(options);\n }\n\n /**\n * Returns the current options of the widget.\n *\n * @returns AXGridLayoutNode - The current widget options.\n */\n public getOptions(): AXGridLayoutNode {\n const gridstackNode = this.elementRef.nativeElement.gridstackNode;\n return gridstackNode\n ? removeUndefinedKeys(convertGridStackNodeToAXGridLayoutNode(gridstackNode))\n : { ...this.options(), element: this.elementRef.nativeElement };\n }\n\n /**\n * Returns the widget options from the Angular input binding (stored/desired positions),\n * bypassing the live gridstackNode which may have been auto-reflowed.\n * Used by the container to load correct per-breakpoint layouts after column changes.\n *\n * @returns AXGridLayoutNode - The widget options from the input signal.\n */\n public getInputOptions(): AXGridLayoutNode {\n const opts = this.options();\n return opts\n ? { ...opts, element: this.elementRef.nativeElement }\n : { element: this.elementRef.nativeElement };\n }\n\n /**\n * Returns the native DOM element of the widget.\n *\n * @returns AXGridLayoutWidgetElement - The native element.\n */\n public get element(): AXGridLayoutWidgetElement {\n return this.elementRef.nativeElement;\n }\n\n /**\n * Updates the widget options and triggers a grid update.\n * @param options - The partial options to update.\n */\n private updateWidgetOptions(options: Partial<AXGridLayoutWidget>): void {\n const gridstackNode = this.elementRef.nativeElement.gridstackNode as import('gridstack').GridStackNode;\n if (gridstackNode?.grid) {\n gridstackNode.grid.update(\n this.elementRef.nativeElement,\n removeUndefinedKeys(convertAXGridLayoutWidgetToGridStackWidget(options)),\n );\n }\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n NgZone,\n OnDestroy,\n QueryList,\n ViewEncapsulation,\n afterNextRender,\n effect,\n inject,\n input,\n model,\n output,\n untracked,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXGridLayoutWidgetComponent } from './grid-layout-widget.component';\nimport {\n AXGridLayout,\n AXGridLayoutContainerElement,\n AXGridLayoutEvent,\n AXGridLayoutNode,\n AXGridLayoutOptions,\n AXGridLayoutPosition,\n AXGridLayoutWidget,\n AXGridLayoutWidgetElement,\n} from './types';\nimport {\n convertAXGridLayoutNodeToGridStackNode,\n convertAXGridLayoutOptionsToGridStackOptions,\n convertAXGridLayoutWidgetToGridStackWidget,\n convertGridStackNodeToAXGridLayoutNode,\n convertGridStackOptionsToAXGridLayoutOptions,\n removeUndefinedKeys,\n} from './utility';\n\n@Component({\n selector: 'ax-grid-layout-container',\n template: `<ng-content></ng-content> `,\n styleUrl: './grid-layout-container.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXGridLayoutContainerComponent }],\n})\nexport class AXGridLayoutContainerComponent extends NXComponent implements OnDestroy {\n //#region Inputs and Outputs\n public options = input<AXGridLayoutOptions>();\n\n protected onAdded = output<AXGridLayoutEvent>();\n protected onRemoved = output<AXGridLayoutEvent>();\n protected onWidgetChange = output<AXGridLayoutEvent>();\n protected onChange = output<AXGridLayoutEvent>();\n protected onRender = output<void>();\n\n protected isEmpty = model(false);\n //#endregion\n\n //#region Private Properties\n private readonly elementRef: ElementRef<AXGridLayoutContainerElement> = inject(ElementRef);\n private readonly ngZone = inject(NgZone);\n\n @ContentChildren(AXGridLayoutWidgetComponent) public gridstackItems?: QueryList<AXGridLayoutWidgetComponent>;\n\n private el = this.elementRef.nativeElement;\n private grid?: AXGridLayout;\n protected _sub: Subscription | undefined;\n private isInitialized = false;\n //#endregion\n\n //#region Initialization\n #init = afterNextRender(() => {\n this.ngZone.runOutsideAngular(async () => {\n const { GridStack } = await import('gridstack');\n const gridStackOptions = removeUndefinedKeys(convertAXGridLayoutOptionsToGridStackOptions(this.options() ?? {}));\n this.grid = GridStack.init(gridStackOptions, this.el);\n this.updateAll();\n this.hookEvents(this.grid);\n this.onRender.emit();\n this.isInitialized = true;\n });\n this._sub = this.gridstackItems?.changes.subscribe(() => {\n this.updateAll();\n });\n });\n\n // Watch for options changes\n #optionsEffect = effect(() => {\n const newOptions = this.options();\n if (this.isInitialized && this.grid && newOptions) {\n untracked(() => {\n this.ngZone.runOutsideAngular(() => {\n const gridStackOptions = removeUndefinedKeys(convertAXGridLayoutOptionsToGridStackOptions(newOptions));\n\n // Detect whether the column count is changing — requires loading from stored input positions\n const isColumnChange =\n gridStackOptions.column !== undefined && gridStackOptions.column !== this.grid?.opts?.column;\n\n // Use 'none' layout mode to prevent GridStack from auto-reflowing widget positions.\n // The correct per-breakpoint positions will be loaded explicitly via updateAll(true).\n if (gridStackOptions.column !== undefined) {\n this.grid?.column(gridStackOptions.column, 'none');\n }\n\n if (gridStackOptions.cellHeight !== undefined) {\n this.grid?.cellHeight(gridStackOptions.cellHeight);\n }\n\n if (gridStackOptions.margin !== undefined) {\n this.grid?.margin(gridStackOptions.margin);\n }\n\n if (gridStackOptions.disableResize !== undefined) {\n this.grid?.enableResize(!gridStackOptions.disableResize);\n }\n\n if (gridStackOptions.disableDrag !== undefined) {\n this.grid?.enableMove(!gridStackOptions.disableDrag);\n }\n\n if (gridStackOptions.float !== undefined) {\n this.grid?.float(gridStackOptions.float);\n }\n\n if (gridStackOptions.animate !== undefined) {\n this.grid?.setAnimation(gridStackOptions.animate);\n }\n\n // When column count changes, read from Angular inputs (stored per-breakpoint positions)\n // to avoid using stale gridstackNode positions from the old column layout.\n // For non-column changes, read from gridstackNode to preserve live drag/resize state.\n this.updateAll(isColumnChange);\n });\n });\n }\n });\n\n public ngOnDestroy(): void {\n this.unhookEvents(this.grid);\n this._sub?.unsubscribe();\n this.destroy();\n }\n //#endregion\n\n //#region Internal Methods\n\n /**\n * Synchronizes the grid layout with the current widget list.\n *\n * @param useInputValues - When true, reads positions from Angular input bindings\n * (stored per-breakpoint positions). When false, reads from live gridstackNode\n * (preserving user drag/resize state). Use true after column/breakpoint changes.\n */\n private updateAll(useInputValues = false) {\n if (!this.grid) return;\n\n const arrays = this.gridstackItems?.toArray() ?? [];\n\n if (arrays.length === 0) {\n this.grid.removeAll(true);\n this.checkEmpty();\n return;\n }\n\n const layout: AXGridLayoutNode[] = [];\n arrays.forEach((item) => {\n const widgetOptions = useInputValues ? item.getInputOptions() : item.getOptions();\n if (widgetOptions) {\n layout.push(removeUndefinedKeys(convertAXGridLayoutNodeToGridStackNode(widgetOptions)));\n }\n });\n\n this.grid.load(layout);\n this.checkEmpty();\n }\n\n private checkEmpty() {\n if (this.grid) {\n const isEmpty = !this.getChildren().length;\n if (isEmpty === this.isEmpty()) return;\n this.isEmpty.set(isEmpty);\n }\n }\n\n private hookEvents(grid?: AXGridLayout): void {\n if (grid) {\n grid\n .on('added', (event: Event, nodes: import('gridstack').GridStackNode[]) => {\n const mappedNodes = nodes.map((node) => removeUndefinedKeys(convertGridStackNodeToAXGridLayoutNode(node)));\n this.checkEmpty();\n this.onAdded.emit({ sender: this, nodes: mappedNodes });\n this._dispatchChangeEvent();\n })\n .on('removed', (event: Event, nodes: import('gridstack').GridStackNode[]) => {\n const mappedNodes = nodes.map((node) => removeUndefinedKeys(convertGridStackNodeToAXGridLayoutNode(node)));\n this.checkEmpty();\n this.onRemoved.emit({ sender: this, nodes: mappedNodes });\n this._dispatchChangeEvent();\n })\n .on('change', (event: Event, nodes: import('gridstack').GridStackNode[]) => {\n const mappedNodes = nodes.map((node) => removeUndefinedKeys(convertGridStackNodeToAXGridLayoutNode(node)));\n this.onWidgetChange.emit({ sender: this, nodes: mappedNodes });\n this._dispatchChangeEvent();\n });\n }\n }\n\n private unhookEvents(grid?: AXGridLayout) {\n if (grid) grid.offAll();\n }\n\n private _dispatchChangeEvent() {\n if (this.getChildren().length) {\n this.onChange.emit({\n sender: this,\n nodes: this.getChildren(),\n });\n }\n }\n //#endregion\n\n /**\n * Adds a widget to the grid layout.\n *\n * @param w - Widget configuration object.\n * @param withAutoArrange - Whether to compact the grid before adding the widget.\n * @returns AXGridLayoutWidgetElement | undefined - The created widget element or undefined if failed.\n */\n public addWidget(w: AXGridLayoutWidget, withAutoArrange = false): AXGridLayoutWidgetElement | undefined {\n if (withAutoArrange) this.compact();\n\n const gridStackWidget = removeUndefinedKeys(convertAXGridLayoutWidgetToGridStackWidget(w));\n const node = this.grid?.addWidget(gridStackWidget)?.gridstackNode;\n if (!node) return undefined;\n\n const widgetElement: AXGridLayoutWidgetElement = node.el as AXGridLayoutWidgetElement;\n widgetElement.gridstackNode = removeUndefinedKeys(convertGridStackNodeToAXGridLayoutNode(node));\n\n return widgetElement;\n }\n\n /**\n * Compacts the grid layout.\n *\n * @param layout - Layout type for compacting ('list' or 'compact').\n * @param doSort - Whether to sort items while compacting.\n * @returns void - No return value. The grid layout is compacted.\n */\n public compact(layout: 'list' | 'compact' = 'compact', doSort = true): void {\n this.grid?.compact(layout, doSort);\n }\n\n /**\n * Sets the cell height of the grid.\n *\n * @param val - New cell height value.\n * @returns void - No return value. The cell height is updated.\n */\n public setCellHeight(val: number): void {\n this.grid?.cellHeight(val);\n }\n\n /**\n * Sets the number of columns in the grid.\n *\n * @param column - Number of columns.\n * @param layout - Layout type for the change ('list', 'compact', 'moveScale', 'move', 'scale', or 'none').\n * @returns void - No return value. The column count is updated.\n */\n public setColumn(\n column: number,\n layout: 'list' | 'compact' | 'moveScale' | 'move' | 'scale' | 'none' = 'moveScale',\n ): void {\n this.grid?.column(column, layout);\n }\n\n /**\n * Destroys the grid instance.\n *\n * @param removeDOM - Whether to remove DOM elements.\n * @returns void - No return value. The grid instance is destroyed.\n */\n public destroy(removeDOM = true): void {\n this.grid?.destroy(removeDOM);\n }\n\n /**\n * Enables or disables moving of widgets.\n *\n * @param state - Whether to enable moving.\n * @param recurse - Whether to apply to all child widgets.\n * @returns void - No return value. The move state is updated.\n */\n public setMovable(state: boolean, recurse?: boolean) {\n this.grid?.enableMove(state, recurse);\n }\n\n /**\n * Enables or disables resizing of widgets.\n *\n * @param state - Whether to enable resizing.\n * @param recurse - Whether to apply to all child widgets.\n * @returns void - No return value. The resize state is updated.\n */\n public setResizable(state: boolean, recurse?: boolean) {\n this.grid?.enableResize(state, recurse);\n }\n\n /**\n * Sets the float property of the grid.\n *\n * @param val - Whether to enable floating widgets.\n * @returns void - No return value. The float state is updated.\n */\n public setFloat(val: boolean): void {\n this.grid?.float(val);\n }\n\n /**\n * Sets the margin between grid items.\n *\n * @param value - Margin value (number in pixels or string with units).\n * @returns void - No return value. The margin is updated.\n */\n public setMargin(value: number | string): void {\n this.grid?.margin(value);\n }\n\n /**\n * Removes a specific widget from the grid.\n *\n * @param el - The widget element to remove.\n * @param removeDOM - Whether to remove the DOM element.\n * @param triggerEvent - Whether to trigger removal events.\n * @returns void - No return value. The widget is removed.\n */\n public removeWidget(el: AXGridLayoutWidgetElement, removeDOM = true, triggerEvent = true): void {\n this.grid?.removeWidget(el, removeDOM, triggerEvent);\n }\n\n /**\n * Removes all widgets from the grid.\n *\n * @param removeDOM - Whether to remove DOM elements.\n * @returns void - No return value. All widgets are removed.\n */\n public removeAll(removeDOM = true): void {\n this.grid?.removeAll(removeDOM);\n }\n\n /**\n * Sets the animation state for the grid.\n *\n * @param doAnimate - Whether to enable animations.\n * @returns void - No return value. The animation state is updated.\n */\n public setAnimation(doAnimate: boolean): void {\n this.grid?.setAnimation(doAnimate);\n }\n\n /**\n * Sets up draggable functionality for external elements.\n *\n * @param dragIn - CSS selector string or array of HTML elements to make draggable.\n * @param widgets - Optional widget configuration for dragged items.\n * @returns Promise<void> - Promise that resolves when drag setup is complete.\n */\n public async setupDraggable(dragIn?: string | HTMLElement[], widgets?: AXGridLayoutWidget) {\n if (typeof dragIn === 'string') {\n document.querySelectorAll(dragIn).forEach((item) => {\n if (!item.classList.contains('grid-stack-item')) {\n item.classList.add('grid-stack-item');\n }\n });\n }\n const { GridStack } = await import('gridstack');\n const gridStackWidgets = widgets\n ? [removeUndefinedKeys(convertAXGridLayoutWidgetToGridStackWidget(widgets))]\n : undefined;\n GridStack.setupDragIn(dragIn, undefined, gridStackWidgets);\n }\n\n /**\n * Gets the current grid options.\n *\n * @returns AXGridLayoutOptions - Current grid configuration options.\n */\n public getOptions(): AXGridLayoutOptions {\n const opts = this.grid?.opts;\n if (!opts) return {};\n\n return removeUndefinedKeys(convertGridStackOptionsToAXGridLayoutOptions(opts));\n }\n\n /**\n * Gets all child widgets in the grid.\n *\n * @returns AXGridLayoutNode[] - Array of all child widget nodes.\n */\n public getChildren(): AXGridLayoutNode[] {\n const children = this.grid?.engine.nodes ?? [];\n return children.map((node) => removeUndefinedKeys(convertGridStackNodeToAXGridLayoutNode(node)));\n }\n\n /**\n * Finds an empty space in the grid for a widget.\n *\n * @param input - Dimensions of the widget with height and width.\n * @returns { x: number; y: number } - Object containing x and y coordinates of empty space.\n */\n public findEmptySpace(\n input: Required<Pick<AXGridLayoutPosition, 'height' | 'width'>>,\n ): Pick<AXGridLayoutPosition, 'x' | 'y'> {\n const value = { h: input.height, w: input.height } as any;\n this.grid?.engine.findEmptyPosition(value);\n return { x: value.x, y: value.y };\n }\n //#endregion\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AXGridLayoutContainerComponent } from './grid-layout-container.component';\nimport { AXGridLayoutWidgetComponent } from './grid-layout-widget.component';\n\n@NgModule({\n imports: [CommonModule, AXGridLayoutContainerComponent, AXGridLayoutWidgetComponent],\n exports: [AXGridLayoutContainerComponent, AXGridLayoutWidgetComponent],\n})\nexport class AXGridLayoutBuilderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}