@acorex/components 19.13.4 → 19.14.0-next.1

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 (206) hide show
  1. package/fesm2022/acorex-components-action-sheet.mjs +10 -10
  2. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  3. package/fesm2022/acorex-components-alert.mjs +7 -7
  4. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  5. package/fesm2022/acorex-components-audio-wave.mjs +7 -7
  6. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  7. package/fesm2022/acorex-components-autocomplete.mjs +7 -7
  8. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  9. package/fesm2022/acorex-components-avatar.mjs +10 -10
  10. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  11. package/fesm2022/acorex-components-badge.mjs +7 -7
  12. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  13. package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
  14. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  15. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  16. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  17. package/fesm2022/acorex-components-button-group.mjs +10 -10
  18. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  19. package/fesm2022/acorex-components-button.mjs +13 -13
  20. package/fesm2022/acorex-components-button.mjs.map +1 -1
  21. package/fesm2022/acorex-components-calendar.mjs +13 -13
  22. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  23. package/fesm2022/acorex-components-check-box.mjs +7 -7
  24. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  25. package/fesm2022/acorex-components-chips.mjs +7 -7
  26. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  27. package/fesm2022/acorex-components-circular-progress.mjs +7 -7
  28. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  29. package/fesm2022/acorex-components-collapse.mjs +10 -10
  30. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  31. package/fesm2022/acorex-components-color-box.mjs +7 -7
  32. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  33. package/fesm2022/acorex-components-color-palette.mjs +25 -25
  34. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  35. package/fesm2022/acorex-components-comment.mjs +28 -28
  36. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  37. package/fesm2022/acorex-components-common.mjs +91 -91
  38. package/fesm2022/acorex-components-common.mjs.map +1 -1
  39. package/fesm2022/acorex-components-conversation.mjs +49 -49
  40. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  41. package/fesm2022/acorex-components-cron-job.mjs +46 -46
  42. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  43. package/fesm2022/acorex-components-data-pager.mjs +31 -31
  44. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  45. package/fesm2022/acorex-components-data-table.mjs +37 -37
  46. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  47. package/fesm2022/acorex-components-datetime-box.mjs +7 -7
  48. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  49. package/fesm2022/acorex-components-datetime-input.mjs +7 -7
  50. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  51. package/fesm2022/acorex-components-datetime-picker.mjs +7 -7
  52. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  53. package/fesm2022/acorex-components-decorators.mjs +25 -25
  54. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  55. package/fesm2022/acorex-components-dialog.mjs +10 -10
  56. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  57. package/fesm2022/acorex-components-drawer.mjs +13 -13
  58. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  59. package/fesm2022/acorex-components-dropdown-button.mjs +7 -7
  60. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  61. package/fesm2022/acorex-components-dropdown.mjs +13 -13
  62. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  63. package/fesm2022/acorex-components-file-explorer.mjs +25 -25
  64. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  65. package/fesm2022/acorex-components-flow-chart.mjs +16 -16
  66. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  67. package/fesm2022/acorex-components-form.mjs +16 -16
  68. package/fesm2022/acorex-components-form.mjs.map +1 -1
  69. package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
  70. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  71. package/fesm2022/acorex-components-image-editor.mjs +34 -34
  72. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  73. package/fesm2022/acorex-components-image.mjs +7 -7
  74. package/fesm2022/acorex-components-image.mjs.map +1 -1
  75. package/fesm2022/acorex-components-json-viewer.mjs +7 -7
  76. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  77. package/fesm2022/acorex-components-kbd.mjs +10 -10
  78. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  79. package/fesm2022/acorex-components-label.mjs +7 -7
  80. package/fesm2022/acorex-components-label.mjs.map +1 -1
  81. package/fesm2022/acorex-components-list.mjs +7 -7
  82. package/fesm2022/acorex-components-list.mjs.map +1 -1
  83. package/fesm2022/acorex-components-loading-dialog.mjs +10 -10
  84. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  85. package/fesm2022/acorex-components-loading.mjs +16 -16
  86. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  87. package/fesm2022/acorex-components-map.mjs +10 -10
  88. package/fesm2022/acorex-components-map.mjs.map +1 -1
  89. package/fesm2022/acorex-components-media-viewer.mjs +34 -34
  90. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  91. package/fesm2022/acorex-components-menu.mjs +16 -16
  92. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  93. package/fesm2022/{acorex-components-modal-acorex-components-modal-B4nBGqa3.mjs → acorex-components-modal-acorex-components-modal-C83n2Gqn.mjs} +21 -21
  94. package/fesm2022/{acorex-components-modal-acorex-components-modal-B4nBGqa3.mjs.map → acorex-components-modal-acorex-components-modal-C83n2Gqn.mjs.map} +1 -1
  95. package/fesm2022/{acorex-components-modal-modal-content.component-oWerCvDI.mjs → acorex-components-modal-modal-content.component-YrM5Oi9b.mjs} +5 -5
  96. package/fesm2022/{acorex-components-modal-modal-content.component-oWerCvDI.mjs.map → acorex-components-modal-modal-content.component-YrM5Oi9b.mjs.map} +1 -1
  97. package/fesm2022/acorex-components-modal.mjs +1 -1
  98. package/fesm2022/acorex-components-navbar.mjs +7 -7
  99. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  100. package/fesm2022/acorex-components-notification.mjs +10 -10
  101. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  102. package/fesm2022/acorex-components-number-box.mjs +7 -7
  103. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  104. package/fesm2022/acorex-components-otp.mjs +7 -7
  105. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  106. package/fesm2022/acorex-components-page.mjs +10 -10
  107. package/fesm2022/acorex-components-page.mjs.map +1 -1
  108. package/fesm2022/acorex-components-paint.mjs +25 -25
  109. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  110. package/fesm2022/acorex-components-password-box.mjs +10 -10
  111. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  112. package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
  113. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  114. package/fesm2022/acorex-components-phone-box.mjs +7 -7
  115. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  116. package/fesm2022/acorex-components-picker.mjs +13 -13
  117. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  118. package/fesm2022/acorex-components-popover.mjs +7 -7
  119. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  120. package/fesm2022/acorex-components-popup.mjs +10 -10
  121. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  122. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  123. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  124. package/fesm2022/acorex-components-qrcode.mjs +7 -7
  125. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  126. package/fesm2022/acorex-components-query-builder.mjs +8 -8
  127. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  128. package/fesm2022/acorex-components-radio.mjs +7 -7
  129. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  130. package/fesm2022/acorex-components-rail-navigation.mjs +13 -13
  131. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  132. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  133. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  134. package/fesm2022/acorex-components-rate-picker.mjs +7 -7
  135. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  136. package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
  137. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  138. package/fesm2022/acorex-components-result.mjs +7 -7
  139. package/fesm2022/acorex-components-result.mjs.map +1 -1
  140. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  141. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  142. package/fesm2022/acorex-components-scheduler.mjs +157 -45
  143. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  144. package/fesm2022/acorex-components-scss.mjs +4 -4
  145. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  146. package/fesm2022/acorex-components-search-box.mjs +7 -7
  147. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  148. package/fesm2022/acorex-components-select-box.mjs +22 -10
  149. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  150. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  151. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  152. package/fesm2022/acorex-components-side-menu.mjs +13 -13
  153. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  154. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  155. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  156. package/fesm2022/acorex-components-slider.mjs +7 -7
  157. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  158. package/fesm2022/acorex-components-sliding-item.mjs +13 -13
  159. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  160. package/fesm2022/acorex-components-step-wizard.mjs +13 -13
  161. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  162. package/fesm2022/acorex-components-switch.mjs +10 -10
  163. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  164. package/fesm2022/acorex-components-tabs.mjs +13 -13
  165. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  166. package/fesm2022/acorex-components-tag-box.mjs +7 -7
  167. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  168. package/fesm2022/acorex-components-tag.mjs +7 -7
  169. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  170. package/fesm2022/acorex-components-text-area.mjs +7 -7
  171. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  172. package/fesm2022/acorex-components-text-box.mjs +10 -10
  173. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  174. package/fesm2022/acorex-components-time-duration.mjs +247 -0
  175. package/fesm2022/acorex-components-time-duration.mjs.map +1 -0
  176. package/fesm2022/acorex-components-time-line.mjs +10 -10
  177. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  178. package/fesm2022/acorex-components-toast.mjs +10 -10
  179. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  180. package/fesm2022/acorex-components-toolbar.mjs +7 -7
  181. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  182. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  183. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  184. package/fesm2022/acorex-components-tree-view.mjs +10 -10
  185. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  186. package/fesm2022/acorex-components-uploader.mjs +22 -22
  187. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  188. package/fesm2022/acorex-components-video-player.mjs +7 -7
  189. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  190. package/fesm2022/acorex-components-wysiwyg.mjs +31 -31
  191. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  192. package/package.json +5 -1
  193. package/scheduler/lib/scheduler.class.d.ts +4 -0
  194. package/scheduler/lib/scheduler.component.d.ts +5 -3
  195. package/scheduler/lib/views/agenda/scheduler-agenda-view.component.d.ts +5 -2
  196. package/scheduler/lib/views/day/scheduler-day-view.component.d.ts +7 -3
  197. package/scheduler/lib/views/month/scheduler-month-view.component.d.ts +5 -2
  198. package/scheduler/lib/views/timeline-day/scheduler-timeline-day-view.component.d.ts +5 -2
  199. package/scheduler/lib/views/timeline-month/scheduler-timeline-month-view.component.d.ts +5 -2
  200. package/scheduler/lib/views/timeline-multi-day/scheduler-timeline-multi-day-view.component.d.ts +3 -2
  201. package/scheduler/lib/views/week/scheduler-week-view.component.d.ts +6 -2
  202. package/time-duration/README.md +3 -0
  203. package/time-duration/index.d.ts +3 -0
  204. package/time-duration/lib/time-duration.component.d.ts +29 -0
  205. package/time-duration/lib/time-duration.module.d.ts +7 -0
  206. package/time-duration/lib/time-duration.type.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-flow-chart.mjs","sources":["../../../../libs/components/flow-chart/src/lib/flow-chart.service.ts","../../../../libs/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.ts","../../../../libs/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.html","../../../../libs/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.ts","../../../../libs/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.html","../../../../libs/components/flow-chart/src/lib/flow-chart.component.ts","../../../../libs/components/flow-chart/src/lib/flow-chart.component.html","../../../../libs/components/flow-chart/src/lib/flow-chart.module.ts","../../../../libs/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 { AXButtonModule } from '@acorex/components/button';\nimport { NXComponent } from '@acorex/components/common';\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})\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 { NXComponent } from '@acorex/components/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})\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 { NXComponent } from '@acorex/components/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: [AXFlowChartService],\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 drawEdges(edges: AXFlowChartEdges[]) {\n this.flowChartService.drawEdges(edges);\n }\n\n removeEdge(edge: AXFlowChartEdges) {\n this.flowChartService.removeEdge(edge);\n }\n\n createNode(nodes: { id: string; type: string; label: string; x: number; y: number }[]) {\n this.flowChartService.createNode(nodes);\n }\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":["../../../../libs/components/flow-chart/src/lib/flow-chart.service.ts","../../../../libs/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.ts","../../../../libs/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.html","../../../../libs/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.ts","../../../../libs/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.html","../../../../libs/components/flow-chart/src/lib/flow-chart.component.ts","../../../../libs/components/flow-chart/src/lib/flow-chart.component.html","../../../../libs/components/flow-chart/src/lib/flow-chart.module.ts","../../../../libs/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 { AXButtonModule } from '@acorex/components/button';\nimport { NXComponent } from '@acorex/components/common';\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})\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 { NXComponent } from '@acorex/components/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})\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 { NXComponent } from '@acorex/components/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: [AXFlowChartService],\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 drawEdges(edges: AXFlowChartEdges[]) {\n this.flowChartService.drawEdges(edges);\n }\n\n removeEdge(edge: AXFlowChartEdges) {\n this.flowChartService.removeEdge(edge);\n }\n\n createNode(nodes: { id: string; type: string; label: string; x: number; y: number }[]) {\n this.flowChartService.createNode(nodes);\n }\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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"}
@@ -193,12 +193,12 @@ class AXFormComponent extends MXBaseComponent {
193
193
  ngOnDestroy() {
194
194
  this._clearSubs();
195
195
  }
196
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: AXFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
197
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.9", type: AXFormComponent, isStandalone: true, selector: "ax-form", inputs: { labelMode: { classPropertyName: "labelMode", publicName: "labelMode", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null }, messageStyle: { classPropertyName: "messageStyle", publicName: "messageStyle", isSignal: true, isRequired: false, transformFunction: null }, updateOn: { classPropertyName: "updateOn", publicName: "updateOn", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onValidate: "onValidate", updateOnChange: "updateOnChange" }, queries: [{ propertyName: "content", predicate: AXFormFieldComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `<form (submit)="_handleSubmit($event)" (reset)="_handleReset()" class="ax-{{ messageStyle() }}-error">
196
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
197
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.10", type: AXFormComponent, isStandalone: true, selector: "ax-form", inputs: { labelMode: { classPropertyName: "labelMode", publicName: "labelMode", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null }, messageStyle: { classPropertyName: "messageStyle", publicName: "messageStyle", isSignal: true, isRequired: false, transformFunction: null }, updateOn: { classPropertyName: "updateOn", publicName: "updateOn", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onValidate: "onValidate", updateOnChange: "updateOnChange" }, queries: [{ propertyName: "content", predicate: AXFormFieldComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `<form (submit)="_handleSubmit($event)" (reset)="_handleReset()" class="ax-{{ messageStyle() }}-error">
198
198
  <ng-content></ng-content>
199
199
  </form>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
200
200
  }
201
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: AXFormComponent, decorators: [{
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXFormComponent, decorators: [{
202
202
  type: Component,
203
203
  args: [{
204
204
  selector: 'ax-form',
@@ -338,10 +338,10 @@ class AXFormFieldComponent extends MXBaseComponent {
338
338
  }
339
339
  return [`ax-state-${this._labelMode()}-label`, `${hasValue && 'ax-state-has-value'}`];
340
340
  }
341
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: AXFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
342
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.9", type: AXFormFieldComponent, isStandalone: true, selector: "ax-form-field", inputs: { labelMode: { classPropertyName: "labelMode", publicName: "labelMode", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [AXUnsubscriber], queries: [{ propertyName: "input", first: true, predicate: AXValuableComponent, descendants: true }, { propertyName: "label", first: true, predicate: AXLabelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: ["ax-form-field{position:relative;display:block;width:100%}ax-form-field.ax-state-floating-label{--ax-sys-size-base: 3.5rem}ax-form-field.ax-state-floating-label>ax-label{position:absolute;top:calc(var(--ax-sys-size-base, 3.5rem) / 2);transform:translateY(-50%);inset-inline-start:1rem;pointer-events:none;z-index:10;display:inline-grid;transition-property:transform,top;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-form-field.ax-state-floating-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-form-field.ax-state-floating-label .ax-input::placeholder,ax-form-field.ax-state-floating-label .ax-input .ax-placeholder{opacity:0}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label{transform:translateY(-115%) translate(-2.5%) scale(.95);inset-inline-start:.5rem}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label label{font-size:.75rem;color:rgba(var(--ax-sys-body-text-color),.5)}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area{padding-top:.875rem}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-floating-label.ax-state-focused .ax-chips-container,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-chips-container{padding:0}ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-over-label{--ax-sys-size-base: 3.5rem}ax-form-field.ax-state-over-label>ax-label{position:absolute;pointer-events:none;z-index:10;display:inline-grid;top:10%;transform:translateY(-10%);inset-inline-start:.5rem;transition-property:transform,top;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-form-field.ax-state-over-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;white-space:nowrap}ax-form-field.ax-state-over-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-over-label.ax-state-focused .ax-input,ax-form-field.ax-state-over-label.ax-state-focused .ax-content,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area{padding-top:1rem}ax-form-field.ax-state-over-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-over-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-floating-label .ax-chips-container.ax-multiple,ax-form-field.ax-state-over-label .ax-chips-container.ax-multiple{padding-top:1.5rem!important;padding-inline-start:.75rem}ax-form-field .ax-error-message{margin-top:.25rem;margin-bottom:.25rem;display:block;font-size:.75rem;line-height:1rem}ax-form{width:100%}ax-form form.ax-bottom-error .ax-error-message{color:rgba(var(--ax-sys-color-danger-surface))}ax-form form.ax-float-error .ax-error-message{position:absolute;bottom:-2.5rem;z-index:20;display:block;width:fit-content;border-radius:.375rem;border-width:1px;border-color:rgba(var(--ax-sys-color-border-danger-surface));background-color:rgba(var(--ax-sys-color-danger-surface));color:rgba(var(--ax-sys-color-on-danger-surface));padding:.25rem .5rem;font-weight:400}ax-form form.ax-float-error .ax-error-message:before,ax-form form.ax-float-error .ax-error-message:after{pointer-events:none;position:absolute;bottom:100%;inset-inline-start:.75rem;z-index:20;height:0px;width:0px;border-bottom-color:rgba(var(--ax-sys-color-danger-surface));border-inline-end-color:transparent;border-inline-start-color:transparent;border-top-color:transparent;content:\"\"}ax-form form.ax-float-error .ax-error-message:before{margin-inline-start:-1px;border-width:4px;border-bottom-color:rgba(var(--ax-sys-color-danger-surface))}ax-form form.ax-float-error .ax-error-message:after{border-width:4px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
341
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
342
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: AXFormFieldComponent, isStandalone: true, selector: "ax-form-field", inputs: { labelMode: { classPropertyName: "labelMode", publicName: "labelMode", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [AXUnsubscriber], queries: [{ propertyName: "input", first: true, predicate: AXValuableComponent, descendants: true }, { propertyName: "label", first: true, predicate: AXLabelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: ["ax-form-field{position:relative;display:block;width:100%}ax-form-field.ax-state-floating-label{--ax-sys-size-base: 3.5rem}ax-form-field.ax-state-floating-label>ax-label{position:absolute;top:calc(var(--ax-sys-size-base, 3.5rem) / 2);transform:translateY(-50%);inset-inline-start:1rem;pointer-events:none;z-index:10;display:inline-grid;transition-property:transform,top;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-form-field.ax-state-floating-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-form-field.ax-state-floating-label .ax-input::placeholder,ax-form-field.ax-state-floating-label .ax-input .ax-placeholder{opacity:0}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label{transform:translateY(-115%) translate(-2.5%) scale(.95);inset-inline-start:.5rem}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label label{font-size:.75rem;color:rgba(var(--ax-sys-body-text-color),.5)}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area{padding-top:.875rem}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-floating-label.ax-state-focused .ax-chips-container,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-chips-container{padding:0}ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-over-label{--ax-sys-size-base: 3.5rem}ax-form-field.ax-state-over-label>ax-label{position:absolute;pointer-events:none;z-index:10;display:inline-grid;top:10%;transform:translateY(-10%);inset-inline-start:.5rem;transition-property:transform,top;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-form-field.ax-state-over-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;white-space:nowrap}ax-form-field.ax-state-over-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-over-label.ax-state-focused .ax-input,ax-form-field.ax-state-over-label.ax-state-focused .ax-content,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area{padding-top:1rem}ax-form-field.ax-state-over-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-over-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-floating-label .ax-chips-container.ax-multiple,ax-form-field.ax-state-over-label .ax-chips-container.ax-multiple{padding-top:1.5rem!important;padding-inline-start:.75rem}ax-form-field .ax-error-message{margin-top:.25rem;margin-bottom:.25rem;display:block;font-size:.75rem;line-height:1rem}ax-form{width:100%}ax-form form.ax-bottom-error .ax-error-message{color:rgba(var(--ax-sys-color-danger-surface))}ax-form form.ax-float-error .ax-error-message{position:absolute;bottom:-2.5rem;z-index:20;display:block;width:fit-content;border-radius:.375rem;border-width:1px;border-color:rgba(var(--ax-sys-color-border-danger-surface));background-color:rgba(var(--ax-sys-color-danger-surface));color:rgba(var(--ax-sys-color-on-danger-surface));padding:.25rem .5rem;font-weight:400}ax-form form.ax-float-error .ax-error-message:before,ax-form form.ax-float-error .ax-error-message:after{pointer-events:none;position:absolute;bottom:100%;inset-inline-start:.75rem;z-index:20;height:0px;width:0px;border-bottom-color:rgba(var(--ax-sys-color-danger-surface));border-inline-end-color:transparent;border-inline-start-color:transparent;border-top-color:transparent;content:\"\"}ax-form form.ax-float-error .ax-error-message:before{margin-inline-start:-1px;border-width:4px;border-bottom-color:rgba(var(--ax-sys-color-danger-surface))}ax-form form.ax-float-error .ax-error-message:after{border-width:4px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
343
343
  }
344
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: AXFormFieldComponent, decorators: [{
344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXFormFieldComponent, decorators: [{
345
345
  type: Component,
346
346
  args: [{ selector: 'ax-form-field', template: `<ng-content></ng-content>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], styles: ["ax-form-field{position:relative;display:block;width:100%}ax-form-field.ax-state-floating-label{--ax-sys-size-base: 3.5rem}ax-form-field.ax-state-floating-label>ax-label{position:absolute;top:calc(var(--ax-sys-size-base, 3.5rem) / 2);transform:translateY(-50%);inset-inline-start:1rem;pointer-events:none;z-index:10;display:inline-grid;transition-property:transform,top;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-form-field.ax-state-floating-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ax-form-field.ax-state-floating-label .ax-input::placeholder,ax-form-field.ax-state-floating-label .ax-input .ax-placeholder{opacity:0}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label{transform:translateY(-115%) translate(-2.5%) scale(.95);inset-inline-start:.5rem}ax-form-field.ax-state-floating-label.ax-state-focused>ax-label label,ax-form-field.ax-state-floating-label.ax-state-has-value>ax-label label{font-size:.75rem;color:rgba(var(--ax-sys-body-text-color),.5)}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area{padding-top:.875rem}ax-form-field.ax-state-floating-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-floating-label.ax-state-focused .ax-chips-container,ax-form-field.ax-state-floating-label.ax-state-has-value .ax-chips-container{padding:0}ax-form-field.ax-state-floating-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-floating-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-over-label{--ax-sys-size-base: 3.5rem}ax-form-field.ax-state-over-label>ax-label{position:absolute;pointer-events:none;z-index:10;display:inline-grid;top:10%;transform:translateY(-10%);inset-inline-start:.5rem;transition-property:transform,top;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-form-field.ax-state-over-label>ax-label label{margin:0;overflow:hidden;text-overflow:ellipsis;font-size:.75rem;white-space:nowrap}ax-form-field.ax-state-over-label .ax-input::placeholder{opacity:0}ax-form-field.ax-state-over-label.ax-state-focused .ax-input,ax-form-field.ax-state-over-label.ax-state-focused .ax-content,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area{padding-top:1rem}ax-form-field.ax-state-over-label.ax-state-focused .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-focused .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-focused ax-text-area::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-input::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value .ax-content::placeholder,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area::placeholder{opacity:1}ax-form-field.ax-state-over-label.ax-state-focused ax-text-area textarea,ax-form-field.ax-state-over-label.ax-state-has-value ax-text-area textarea{padding-top:1.5rem!important}ax-form-field.ax-state-floating-label .ax-chips-container.ax-multiple,ax-form-field.ax-state-over-label .ax-chips-container.ax-multiple{padding-top:1.5rem!important;padding-inline-start:.75rem}ax-form-field .ax-error-message{margin-top:.25rem;margin-bottom:.25rem;display:block;font-size:.75rem;line-height:1rem}ax-form{width:100%}ax-form form.ax-bottom-error .ax-error-message{color:rgba(var(--ax-sys-color-danger-surface))}ax-form form.ax-float-error .ax-error-message{position:absolute;bottom:-2.5rem;z-index:20;display:block;width:fit-content;border-radius:.375rem;border-width:1px;border-color:rgba(var(--ax-sys-color-border-danger-surface));background-color:rgba(var(--ax-sys-color-danger-surface));color:rgba(var(--ax-sys-color-on-danger-surface));padding:.25rem .5rem;font-weight:400}ax-form form.ax-float-error .ax-error-message:before,ax-form form.ax-float-error .ax-error-message:after{pointer-events:none;position:absolute;bottom:100%;inset-inline-start:.75rem;z-index:20;height:0px;width:0px;border-bottom-color:rgba(var(--ax-sys-color-danger-surface));border-inline-end-color:transparent;border-inline-start-color:transparent;border-top-color:transparent;content:\"\"}ax-form form.ax-float-error .ax-error-message:before{margin-inline-start:-1px;border-width:4px;border-bottom-color:rgba(var(--ax-sys-color-danger-surface))}ax-form form.ax-float-error .ax-error-message:after{border-width:4px}\n"] }]
347
347
  }], ctorParameters: () => [], propDecorators: { input: [{
@@ -386,10 +386,10 @@ class AXValidationRuleDirective {
386
386
  get ruleOptions() {
387
387
  return Object.assign({ message: this.message, name: this.host.name }, this.options);
388
388
  }
389
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: AXValidationRuleDirective, deps: [{ token: i1.AXValuableComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
390
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.9", type: AXValidationRuleDirective, isStandalone: true, selector: "ax-validation-rule", inputs: { rule: "rule", options: "options", message: "message" }, ngImport: i0 }); }
389
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXValidationRuleDirective, deps: [{ token: i1.AXValuableComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
390
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.10", type: AXValidationRuleDirective, isStandalone: true, selector: "ax-validation-rule", inputs: { rule: "rule", options: "options", message: "message" }, ngImport: i0 }); }
391
391
  }
392
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: AXValidationRuleDirective, decorators: [{
392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXValidationRuleDirective, decorators: [{
393
393
  type: Directive,
394
394
  args: [{ selector: 'ax-validation-rule' }]
395
395
  }], ctorParameters: () => [{ type: i1.AXValuableComponent }], propDecorators: { rule: [{
@@ -489,8 +489,8 @@ class AXValidationSummaryComponent extends MXBaseComponent {
489
489
  ngOnDestroy() {
490
490
  this.sub?.unsubscribe();
491
491
  }
492
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: AXValidationSummaryComponent, deps: [{ token: i1$1.AXToastService }, { token: AXFormComponent, optional: true }, { token: i2.AXTranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
493
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.9", type: AXValidationSummaryComponent, isStandalone: true, selector: "ax-validation-summary", inputs: { title: "title", displayMode: "displayMode", timeOut: "timeOut", autoHide: "autoHide" }, usesInheritance: true, ngImport: i0, template: `
492
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXValidationSummaryComponent, deps: [{ token: i1$1.AXToastService }, { token: AXFormComponent, optional: true }, { token: i2.AXTranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
493
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: AXValidationSummaryComponent, isStandalone: true, selector: "ax-validation-summary", inputs: { title: "title", displayMode: "displayMode", timeOut: "timeOut", autoHide: "autoHide" }, usesInheritance: true, ngImport: i0, template: `
494
494
  @if (displayMode === 'alert' && _content) {
495
495
  <ax-alert color="danger" [timeOut]="_timeOut" #a (onClosed)="_handleOnDismissed()">
496
496
  <ax-icon></ax-icon>
@@ -507,7 +507,7 @@ class AXValidationSummaryComponent extends MXBaseComponent {
507
507
  }
508
508
  `, isInline: true, dependencies: [{ kind: "component", type: AXAlertComponent, selector: "ax-alert", inputs: ["color", "timeOut"], outputs: ["colorChange", "onClosed", "timeOutChange"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
509
509
  }
510
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: AXValidationSummaryComponent, decorators: [{
510
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXValidationSummaryComponent, decorators: [{
511
511
  type: Component,
512
512
  args: [{
513
513
  selector: 'ax-validation-summary',
@@ -547,8 +547,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
547
547
  }] } });
548
548
 
549
549
  class AXFormModule {
550
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: AXFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
551
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.9", ngImport: i0, type: AXFormModule, imports: [CommonModule,
550
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
551
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.10", ngImport: i0, type: AXFormModule, imports: [CommonModule,
552
552
  AXDecoratorModule,
553
553
  AXAlertModule,
554
554
  AXButtonModule,
@@ -558,7 +558,7 @@ class AXFormModule {
558
558
  AXFormComponent,
559
559
  AXValidationRuleDirective,
560
560
  AXValidationSummaryComponent], exports: [AXFormFieldComponent, AXFormComponent, AXValidationRuleDirective, AXValidationSummaryComponent] }); }
561
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: AXFormModule, imports: [CommonModule,
561
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXFormModule, imports: [CommonModule,
562
562
  AXDecoratorModule,
563
563
  AXAlertModule,
564
564
  AXButtonModule,
@@ -566,7 +566,7 @@ class AXFormModule {
566
566
  AXTranslationModule,
567
567
  AXValidationSummaryComponent] }); }
568
568
  }
569
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: AXFormModule, decorators: [{
569
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXFormModule, decorators: [{
570
570
  type: NgModule,
571
571
  args: [{
572
572
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-form.mjs","sources":["../../../../libs/components/form/src/lib/form.component.ts","../../../../libs/components/form/src/lib/form-field.component.ts","../../../../libs/components/form/src/lib/form.config.ts","../../../../libs/components/form/src/lib/validation-rule.directive.ts","../../../../libs/components/form/src/lib/validation-summary.component.ts","../../../../libs/components/form/src/lib/form.module.ts","../../../../libs/components/form/src/acorex-components-form.ts"],"sourcesContent":["import { AXEvent, AXStyleLookType, AXValuableComponent, AXValueChangedEvent, MXBaseComponent } from '@acorex/components/common';\nimport { AXValidationSummary } from '@acorex/core/validation';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n InputSignal,\n OnDestroy,\n Output,\n ViewEncapsulation,\n contentChildren,\n effect,\n input,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXFormFieldComponent } from './form-field.component';\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXFormValidationEvent extends AXEvent {\n result: AXValidationSummary;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport type AXFormUpdateOn = 'change' | 'blur' | 'submit';\nexport type AXFormMessageStyle = 'bottom' | 'float';\nexport type AXLabelMode = 'static' | 'floating' | 'over';\n\n/**\n * The AXForm is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-form',\n template: `<form (submit)=\"_handleSubmit($event)\" (reset)=\"_handleReset()\" class=\"ax-{{ messageStyle() }}-error\">\n <ng-content></ng-content>\n </form>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFormComponent extends MXBaseComponent implements OnDestroy, AfterViewInit, AfterContentInit {\n /**\n * Specifies the mode of the label in the form field.\n * @defaultValue 'static'\n */\n labelMode = input<AXLabelMode>('static');\n\n look = input<AXStyleLookType>('solid');\n\n content = contentChildren(AXFormFieldComponent, { descendants: true });\n\n #applyLooks = effect(() => {\n this.look();\n this.content().forEach((item: any) => {\n if (item.input) {\n item.input.look = this.look();\n }\n });\n });\n\n ngAfterContentInit(): void {\n this.content().forEach((item: any) => {\n if (item.input) {\n item.input.look = this.look();\n }\n });\n }\n\n /**\n * Determines the style of the message in the form field.\n * @defaultValue 'bottom'\n */\n messageStyle: InputSignal<AXFormMessageStyle> = input<AXFormMessageStyle>('bottom');\n\n /**\n * Emitted when the form is validated.\n *\n * @event\n */\n @Output()\n onValidate: EventEmitter<AXFormValidationEvent> = new EventEmitter<AXFormValidationEvent>();\n\n /**\n * Emitted when the form's update mode changes.\n *\n * @event\n */\n @Output()\n updateOnChange: EventEmitter<AXFormUpdateOn> = new EventEmitter<AXFormUpdateOn>();\n\n /**\n * @ignore\n */\n private _updateOn: AXFormUpdateOn = 'blur';\n\n /**\n * Determines when the form should be updated.\n */\n @Input()\n public get updateOn(): AXFormUpdateOn {\n return this._updateOn;\n }\n\n /**\n * Sets the criteria for when the form should be updated.\n * @param v The criteria to set (e.g., 'change', 'blur').\n */\n public set updateOn(v: AXFormUpdateOn) {\n this.setOption({\n name: 'updateOn',\n value: v,\n afterCallback: () => {\n this._bindEvents();\n },\n });\n }\n\n /**\n * @ignore\n */\n private _subs: Subscription[] = [];\n\n /**\n * @ignore\n */\n protected async _handleSubmit(e: SubmitEvent) {\n e.preventDefault();\n await this.validate();\n }\n\n /**\n * @ignore\n */\n protected _handleReset() {\n this.reset();\n }\n\n /**\n * @ignore\n */\n constructor() {\n super();\n }\n\n ngAfterViewInit(): void {\n this._bindEvents();\n }\n\n private _bindEvents() {\n this._clearSubs();\n const widgets = this.content();\n //\n widgets.forEach((w: any) => {\n if (w.input) {\n this._subs.push(\n w.input.onValueChanged?.subscribe((v: AXValueChangedEvent) => {\n if (v.isUserInteraction) {\n if (this.updateOn == 'change') {\n w.input.validate();\n } else {\n w.input.resetErrors();\n }\n }\n }),\n );\n if (this.updateOn == 'blur') {\n this._subs.push(\n w.input.onBlur?.subscribe((v) => {\n w.input.validate();\n }),\n );\n }\n }\n });\n }\n\n /**\n * @ignore\n */\n private _clearSubs() {\n this._subs.forEach((c) => c?.unsubscribe());\n this._subs = [];\n }\n\n /**\n * @ignore\n */\n private get fields(): AXValuableComponent[] {\n return Array.from(this.getHostElement().querySelectorAll('[ax-form-item=\"true\"]'))\n .map((c) => (c as any).__axContext__)\n .filter((c) => c != null);\n }\n\n async validate(...names: string[]): Promise<AXValidationSummary> {\n const results = await Promise.all(this.fields.filter((c) => names == null || names.length == 0 || names.includes(c.name)).map((field) => field.validate()));\n // Merge all validation summaries into one\n const mergedSummary: AXValidationSummary = {\n result: results.every((res) => res.result),\n rules: results.flatMap((res) => res.rules),\n };\n this._emitOnValidateEvent(mergedSummary);\n return mergedSummary;\n }\n\n /**\n * @ignore\n */\n private _emitOnValidateEvent(e: AXValidationSummary) {\n this.onValidate.emit({\n component: this,\n result: e,\n htmlElement: this.getHostElement(),\n });\n }\n\n /**\n * Resets all form fields without clearing errors.\n */\n reset() {\n this.fields.forEach((c) => c.reset(false));\n this.fields.forEach((c) => c.resetErrors());\n }\n\n /**\n * Resets validation errors for all form fields.\n */\n resetErrors() {\n this.fields.forEach((c) => c.resetErrors());\n }\n\n /**\n * @ignore\n */\n ngOnDestroy(): void {\n this._clearSubs();\n }\n}\n","import { AXValuableComponent, MXBaseComponent } from '@acorex/components/common';\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport {\n AfterContentChecked,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n ViewContainerRef,\n ViewEncapsulation,\n WritableSignal,\n afterNextRender,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXFormComponent, AXLabelMode } from './form.component';\n\n/**\n * A container component for form fields that provides styling and structure.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-form-field',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./form-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXUnsubscriber],\n})\nexport class AXFormFieldComponent extends MXBaseComponent implements AfterContentChecked {\n /**\n * Specifies the mode of the label in the form field.\n * @defaultValue 'static'\n */\n labelMode = input<AXLabelMode>('static');\n\n /**\n * @ignore\n */\n protected _labelMode: WritableSignal<AXLabelMode> = signal(this.labelMode());\n\n private unsubscriber = inject(AXUnsubscriber);\n\n @ContentChild(AXValuableComponent)\n private input: AXValuableComponent;\n\n /**\n * @ignore\n */\n @ContentChild(AXLabelComponent)\n private label: AXLabelComponent;\n\n form = inject(AXFormComponent, { optional: true });\n\n host = inject(ViewContainerRef);\n\n /**\n * @ignore\n */\n prefix: HTMLElement;\n\n /**\n * @ignore\n */\n constructor() {\n super();\n\n afterNextRender(() => {\n this.calcIndentSize();\n this.setRequired();\n this.setLabelMode();\n this.listeningEvent();\n });\n\n effect(() => {\n this.setLabelMode();\n });\n }\n\n ngAfterContentChecked(): void {\n this.calcIndentSize();\n }\n\n /**\n * Calculates and sets the indentation size for the label based on the width of the prefix element.\n * @ignore\n */\n calcIndentSize() {\n const prefix = (this.input as any)?.getHostElement()?.querySelector('ax-prefix') as HTMLElement;\n if (prefix && this.label) {\n this.label.getHostElement().style.insetInlineStart = `calc(${prefix?.clientWidth}px + var(--ax-comp-editor-gap))`;\n this.label.getHostElement().style.paddingInline = '0px';\n }\n }\n\n /**\n * Sets the required attribute for the input field based on validation rules.\n * Automatically updates if validation rules change.\n * @ignore\n */\n setRequired() {\n this.autoSetRequired();\n this.input?.validationRulesChange.pipe(this.unsubscriber.takeUntilDestroy).subscribe(() => {\n this.autoSetRequired();\n });\n }\n /**\n * Sets the label mode based on the form's label mode configuration.\n * @ignore\n */\n setLabelMode() {\n this._labelMode.set(this.form?.labelMode());\n }\n\n /**\n * Subscribes to focus and blur events on the input element.\n * Adds or removes the 'ax-state-focused' class to/from the host element based on the focus state.\n * @ignone\n */\n listeningEvent() {\n const focusEvent = this.input?.['onFocus'] as Subject<any>;\n focusEvent?.subscribe((e) => {\n // this.handleFloating('focus');\n this.host.element.nativeElement.classList.add('ax-state-focused');\n });\n //\n const blurEvent = this.input?.['onBlur'] as Subject<any>;\n blurEvent?.subscribe((e) => {\n // this.handleFloating('blur');\n this.host.element.nativeElement.classList.remove('ax-state-focused');\n });\n }\n // protected handleFloating(mode: 'focus' | 'blur') {\n // const _host = this.host.element.nativeElement as HTMLElement;\n // const placeholder = this.input;\n\n // switch (mode) {\n // case 'focus':\n // _host.classList.add('ax-state-floating');\n // this.label.getHostElement().style.insetInlineStart = 'inherit';\n\n // break;\n // case 'blur':\n // _host.classList.remove('ax-state-floating');\n\n // break;\n // }\n // }\n\n /**\n * @ignore\n */\n private autoSetRequired() {\n if (this.label && this.input) {\n if (this.label.required == null || this.label['autoSetRequired']) {\n this.label.required = this.input.isRequired;\n this.label['autoSetRequired'] = true;\n }\n }\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n get __hostClass(): string[] {\n let hasValue;\n if (this.input) {\n if (this.input instanceof AXSelectBoxComponent && this.input.multiple) {\n hasValue = (this.input as any).value?.length;\n } else {\n hasValue = this.input.value;\n }\n }\n return [`ax-state-${this._labelMode()}-label`, `${hasValue && 'ax-state-has-value'}`];\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AXFormConfig {}\n\nexport const AX_FORM_CONFIG = new InjectionToken<AXFormConfig>('AX_FORM_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return AXFormDefaultConfig;\n },\n});\n\nexport const AXFormDefaultConfig: AXFormConfig = {};\n\nexport type PartialFormConfig = Partial<AXFormConfig>;\n\nexport function formConfig(config: PartialFormConfig = {}): AXFormConfig {\n const result = {\n ...AXFormDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { AXValuableComponent } from '@acorex/components/common';\nimport { AXValidationRuleOptions } from '@acorex/core/validation';\nimport { Directive, Input, OnDestroy, OnInit } from '@angular/core';\n\n@Directive({ selector: 'ax-validation-rule' })\nexport class AXValidationRuleDirective implements OnInit, OnDestroy {\n @Input() rule: string;\n @Input() options: Omit<AXValidationRuleOptions, 'message'>;\n @Input() message: string;\n\n constructor(private host: AXValuableComponent) {}\n\n ngOnInit() {\n this.host.addValidationRule({ rule: this.rule, options: this.ruleOptions });\n }\n\n ngOnDestroy() {\n this.host.removeValidationRule({\n rule: this.rule,\n options: this.ruleOptions,\n });\n }\n\n private get ruleOptions(): AXValidationRuleOptions {\n return Object.assign({ message: this.message, name: this.host.name }, this.options);\n }\n}\n","import { AXAlertComponent } from '@acorex/components/alert';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { MXBaseComponent } from '@acorex/components/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService, AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, Input, OnDestroy, Optional, ViewEncapsulation } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXFormComponent, AXFormValidationEvent } from './form.component';\n\nexport type AXValidationSummaryDisplayMode = 'toast' | 'alert';\n\n/**\n * Displays validation summaries in the form of an alert.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-validation-summary',\n template: `\n @if (displayMode === 'alert' && _content) {\n <ax-alert color=\"danger\" [timeOut]=\"_timeOut\" #a (onClosed)=\"_handleOnDismissed()\">\n <ax-icon></ax-icon>\n <ax-title>{{ title | translate | async }}</ax-title>\n <ax-content>\n <div [innerHTML]=\"_content\"></div>\n </ax-content>\n <ax-footer>\n <ax-suffix>\n <ax-button text=\"Dismiss\" (onClick)=\"a.close()\"></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-alert>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXAlertComponent, AXDecoratorIconComponent, AXDecoratorGenericComponent, AXButtonComponent, AsyncPipe, AXTranslatorPipe],\n})\nexport class AXValidationSummaryComponent extends MXBaseComponent implements OnDestroy {\n /**\n * @ignore\n */\n protected _content?: string = null;\n\n /**\n * @ignore\n */\n private _title = 'validation.messages.title';\n\n /**\n * The title of the validation summary alert.\n */\n @Input()\n public get title(): string {\n return this._title;\n }\n\n /**\n * Sets the title of the validation summary alert.\n *\n * @param v The title to be set.\n */\n public set title(v: string) {\n this._title = v;\n }\n\n /**\n * Specifies the display mode for the validation summary.\n *\n * @defaultValue 'toast'\n */\n @Input()\n displayMode: AXValidationSummaryDisplayMode = 'toast';\n\n /**\n * Specifies the time in milliseconds before the validation summary automatically hides.\n */\n @Input()\n timeOut?: number;\n\n /**\n * Determines whether the validation summary should automatically hide after a specified time.\n * @defaultValue false\n */\n @Input()\n autoHide = false;\n\n /**\n * @ignore\n */\n protected _timeOut: number;\n\n /**\n * @ignore\n */\n private sub: Subscription;\n\n /**\n * @ignore\n */\n constructor(\n private _tosatService: AXToastService,\n @Optional()\n @Inject(AXFormComponent)\n private host: AXFormComponent,\n private translateService: AXTranslationService,\n ) {\n super();\n //\n this.sub = host.onValidate.subscribe(async (e: AXFormValidationEvent) => {\n if (e.result.result) {\n this._content = null;\n } else {\n const failedRules = e.result.rules.filter((c) => !c.result && c.message);\n\n this._content = `<ul>${failedRules.map((c) => this.formatRule({ title: c['title'] as string, message: c.message })).join('')}</ul>`;\n this._timeOut = this.autoHide ? (this.timeOut ?? Math.max(failedRules.length * 1000, 2000)) : 0;\n\n if (this.displayMode == 'toast') {\n this._tosatService.show({\n color: 'danger',\n closeButton: true,\n timeOut: this._timeOut,\n timeOutProgress: true,\n content: this._content,\n title: await this.translateService.translateAsync(this.title),\n location: 'bottom-center',\n });\n }\n }\n this.cdr.markForCheck();\n });\n }\n\n /**\n * @ignore\n */\n private formatRule(rule: { title?: string; message: string }): string {\n return rule.title ? `<li><b>${rule.title}:</b> ${rule.message}</li>` : `<li>${rule.message}</li>`;\n }\n\n /**\n * @ignore\n */\n protected _handleOnDismissed() {\n this._content = null;\n }\n\n /**\n * @ignore\n */\n ngOnDestroy() {\n this.sub?.unsubscribe();\n }\n}\n","import { AXAlertModule } from '@acorex/components/alert';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFormFieldComponent } from './form-field.component';\nimport { AXFormComponent } from './form.component';\nimport { AXValidationRuleDirective } from './validation-rule.directive';\nimport { AXValidationSummaryComponent } from './validation-summary.component';\n\n@NgModule({\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXAlertModule,\n AXButtonModule,\n AXValidationModule,\n AXTranslationModule,\n AXFormFieldComponent,\n AXFormComponent,\n AXValidationRuleDirective,\n AXValidationSummaryComponent,\n ],\n exports: [AXFormFieldComponent, AXFormComponent, AXValidationRuleDirective, AXValidationSummaryComponent],\n providers: [],\n})\nexport class AXFormModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-form.mjs","sources":["../../../../libs/components/form/src/lib/form.component.ts","../../../../libs/components/form/src/lib/form-field.component.ts","../../../../libs/components/form/src/lib/form.config.ts","../../../../libs/components/form/src/lib/validation-rule.directive.ts","../../../../libs/components/form/src/lib/validation-summary.component.ts","../../../../libs/components/form/src/lib/form.module.ts","../../../../libs/components/form/src/acorex-components-form.ts"],"sourcesContent":["import { AXEvent, AXStyleLookType, AXValuableComponent, AXValueChangedEvent, MXBaseComponent } from '@acorex/components/common';\nimport { AXValidationSummary } from '@acorex/core/validation';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n InputSignal,\n OnDestroy,\n Output,\n ViewEncapsulation,\n contentChildren,\n effect,\n input,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXFormFieldComponent } from './form-field.component';\n\n/**\n * Contains native event\n * @category Events\n */\nexport class AXFormValidationEvent extends AXEvent {\n result: AXValidationSummary;\n}\n\n/**\n * Contains native event\n * @category Events\n */\nexport type AXFormUpdateOn = 'change' | 'blur' | 'submit';\nexport type AXFormMessageStyle = 'bottom' | 'float';\nexport type AXLabelMode = 'static' | 'floating' | 'over';\n\n/**\n * The AXForm is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-form',\n template: `<form (submit)=\"_handleSubmit($event)\" (reset)=\"_handleReset()\" class=\"ax-{{ messageStyle() }}-error\">\n <ng-content></ng-content>\n </form>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXFormComponent extends MXBaseComponent implements OnDestroy, AfterViewInit, AfterContentInit {\n /**\n * Specifies the mode of the label in the form field.\n * @defaultValue 'static'\n */\n labelMode = input<AXLabelMode>('static');\n\n look = input<AXStyleLookType>('solid');\n\n content = contentChildren(AXFormFieldComponent, { descendants: true });\n\n #applyLooks = effect(() => {\n this.look();\n this.content().forEach((item: any) => {\n if (item.input) {\n item.input.look = this.look();\n }\n });\n });\n\n ngAfterContentInit(): void {\n this.content().forEach((item: any) => {\n if (item.input) {\n item.input.look = this.look();\n }\n });\n }\n\n /**\n * Determines the style of the message in the form field.\n * @defaultValue 'bottom'\n */\n messageStyle: InputSignal<AXFormMessageStyle> = input<AXFormMessageStyle>('bottom');\n\n /**\n * Emitted when the form is validated.\n *\n * @event\n */\n @Output()\n onValidate: EventEmitter<AXFormValidationEvent> = new EventEmitter<AXFormValidationEvent>();\n\n /**\n * Emitted when the form's update mode changes.\n *\n * @event\n */\n @Output()\n updateOnChange: EventEmitter<AXFormUpdateOn> = new EventEmitter<AXFormUpdateOn>();\n\n /**\n * @ignore\n */\n private _updateOn: AXFormUpdateOn = 'blur';\n\n /**\n * Determines when the form should be updated.\n */\n @Input()\n public get updateOn(): AXFormUpdateOn {\n return this._updateOn;\n }\n\n /**\n * Sets the criteria for when the form should be updated.\n * @param v The criteria to set (e.g., 'change', 'blur').\n */\n public set updateOn(v: AXFormUpdateOn) {\n this.setOption({\n name: 'updateOn',\n value: v,\n afterCallback: () => {\n this._bindEvents();\n },\n });\n }\n\n /**\n * @ignore\n */\n private _subs: Subscription[] = [];\n\n /**\n * @ignore\n */\n protected async _handleSubmit(e: SubmitEvent) {\n e.preventDefault();\n await this.validate();\n }\n\n /**\n * @ignore\n */\n protected _handleReset() {\n this.reset();\n }\n\n /**\n * @ignore\n */\n constructor() {\n super();\n }\n\n ngAfterViewInit(): void {\n this._bindEvents();\n }\n\n private _bindEvents() {\n this._clearSubs();\n const widgets = this.content();\n //\n widgets.forEach((w: any) => {\n if (w.input) {\n this._subs.push(\n w.input.onValueChanged?.subscribe((v: AXValueChangedEvent) => {\n if (v.isUserInteraction) {\n if (this.updateOn == 'change') {\n w.input.validate();\n } else {\n w.input.resetErrors();\n }\n }\n }),\n );\n if (this.updateOn == 'blur') {\n this._subs.push(\n w.input.onBlur?.subscribe((v) => {\n w.input.validate();\n }),\n );\n }\n }\n });\n }\n\n /**\n * @ignore\n */\n private _clearSubs() {\n this._subs.forEach((c) => c?.unsubscribe());\n this._subs = [];\n }\n\n /**\n * @ignore\n */\n private get fields(): AXValuableComponent[] {\n return Array.from(this.getHostElement().querySelectorAll('[ax-form-item=\"true\"]'))\n .map((c) => (c as any).__axContext__)\n .filter((c) => c != null);\n }\n\n async validate(...names: string[]): Promise<AXValidationSummary> {\n const results = await Promise.all(this.fields.filter((c) => names == null || names.length == 0 || names.includes(c.name)).map((field) => field.validate()));\n // Merge all validation summaries into one\n const mergedSummary: AXValidationSummary = {\n result: results.every((res) => res.result),\n rules: results.flatMap((res) => res.rules),\n };\n this._emitOnValidateEvent(mergedSummary);\n return mergedSummary;\n }\n\n /**\n * @ignore\n */\n private _emitOnValidateEvent(e: AXValidationSummary) {\n this.onValidate.emit({\n component: this,\n result: e,\n htmlElement: this.getHostElement(),\n });\n }\n\n /**\n * Resets all form fields without clearing errors.\n */\n reset() {\n this.fields.forEach((c) => c.reset(false));\n this.fields.forEach((c) => c.resetErrors());\n }\n\n /**\n * Resets validation errors for all form fields.\n */\n resetErrors() {\n this.fields.forEach((c) => c.resetErrors());\n }\n\n /**\n * @ignore\n */\n ngOnDestroy(): void {\n this._clearSubs();\n }\n}\n","import { AXValuableComponent, MXBaseComponent } from '@acorex/components/common';\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXSelectBoxComponent } from '@acorex/components/select-box';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport {\n AfterContentChecked,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n ViewContainerRef,\n ViewEncapsulation,\n WritableSignal,\n afterNextRender,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXFormComponent, AXLabelMode } from './form.component';\n\n/**\n * A container component for form fields that provides styling and structure.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-form-field',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./form-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXUnsubscriber],\n})\nexport class AXFormFieldComponent extends MXBaseComponent implements AfterContentChecked {\n /**\n * Specifies the mode of the label in the form field.\n * @defaultValue 'static'\n */\n labelMode = input<AXLabelMode>('static');\n\n /**\n * @ignore\n */\n protected _labelMode: WritableSignal<AXLabelMode> = signal(this.labelMode());\n\n private unsubscriber = inject(AXUnsubscriber);\n\n @ContentChild(AXValuableComponent)\n private input: AXValuableComponent;\n\n /**\n * @ignore\n */\n @ContentChild(AXLabelComponent)\n private label: AXLabelComponent;\n\n form = inject(AXFormComponent, { optional: true });\n\n host = inject(ViewContainerRef);\n\n /**\n * @ignore\n */\n prefix: HTMLElement;\n\n /**\n * @ignore\n */\n constructor() {\n super();\n\n afterNextRender(() => {\n this.calcIndentSize();\n this.setRequired();\n this.setLabelMode();\n this.listeningEvent();\n });\n\n effect(() => {\n this.setLabelMode();\n });\n }\n\n ngAfterContentChecked(): void {\n this.calcIndentSize();\n }\n\n /**\n * Calculates and sets the indentation size for the label based on the width of the prefix element.\n * @ignore\n */\n calcIndentSize() {\n const prefix = (this.input as any)?.getHostElement()?.querySelector('ax-prefix') as HTMLElement;\n if (prefix && this.label) {\n this.label.getHostElement().style.insetInlineStart = `calc(${prefix?.clientWidth}px + var(--ax-comp-editor-gap))`;\n this.label.getHostElement().style.paddingInline = '0px';\n }\n }\n\n /**\n * Sets the required attribute for the input field based on validation rules.\n * Automatically updates if validation rules change.\n * @ignore\n */\n setRequired() {\n this.autoSetRequired();\n this.input?.validationRulesChange.pipe(this.unsubscriber.takeUntilDestroy).subscribe(() => {\n this.autoSetRequired();\n });\n }\n /**\n * Sets the label mode based on the form's label mode configuration.\n * @ignore\n */\n setLabelMode() {\n this._labelMode.set(this.form?.labelMode());\n }\n\n /**\n * Subscribes to focus and blur events on the input element.\n * Adds or removes the 'ax-state-focused' class to/from the host element based on the focus state.\n * @ignone\n */\n listeningEvent() {\n const focusEvent = this.input?.['onFocus'] as Subject<any>;\n focusEvent?.subscribe((e) => {\n // this.handleFloating('focus');\n this.host.element.nativeElement.classList.add('ax-state-focused');\n });\n //\n const blurEvent = this.input?.['onBlur'] as Subject<any>;\n blurEvent?.subscribe((e) => {\n // this.handleFloating('blur');\n this.host.element.nativeElement.classList.remove('ax-state-focused');\n });\n }\n // protected handleFloating(mode: 'focus' | 'blur') {\n // const _host = this.host.element.nativeElement as HTMLElement;\n // const placeholder = this.input;\n\n // switch (mode) {\n // case 'focus':\n // _host.classList.add('ax-state-floating');\n // this.label.getHostElement().style.insetInlineStart = 'inherit';\n\n // break;\n // case 'blur':\n // _host.classList.remove('ax-state-floating');\n\n // break;\n // }\n // }\n\n /**\n * @ignore\n */\n private autoSetRequired() {\n if (this.label && this.input) {\n if (this.label.required == null || this.label['autoSetRequired']) {\n this.label.required = this.input.isRequired;\n this.label['autoSetRequired'] = true;\n }\n }\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n get __hostClass(): string[] {\n let hasValue;\n if (this.input) {\n if (this.input instanceof AXSelectBoxComponent && this.input.multiple) {\n hasValue = (this.input as any).value?.length;\n } else {\n hasValue = this.input.value;\n }\n }\n return [`ax-state-${this._labelMode()}-label`, `${hasValue && 'ax-state-has-value'}`];\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AXFormConfig {}\n\nexport const AX_FORM_CONFIG = new InjectionToken<AXFormConfig>('AX_FORM_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return AXFormDefaultConfig;\n },\n});\n\nexport const AXFormDefaultConfig: AXFormConfig = {};\n\nexport type PartialFormConfig = Partial<AXFormConfig>;\n\nexport function formConfig(config: PartialFormConfig = {}): AXFormConfig {\n const result = {\n ...AXFormDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { AXValuableComponent } from '@acorex/components/common';\nimport { AXValidationRuleOptions } from '@acorex/core/validation';\nimport { Directive, Input, OnDestroy, OnInit } from '@angular/core';\n\n@Directive({ selector: 'ax-validation-rule' })\nexport class AXValidationRuleDirective implements OnInit, OnDestroy {\n @Input() rule: string;\n @Input() options: Omit<AXValidationRuleOptions, 'message'>;\n @Input() message: string;\n\n constructor(private host: AXValuableComponent) {}\n\n ngOnInit() {\n this.host.addValidationRule({ rule: this.rule, options: this.ruleOptions });\n }\n\n ngOnDestroy() {\n this.host.removeValidationRule({\n rule: this.rule,\n options: this.ruleOptions,\n });\n }\n\n private get ruleOptions(): AXValidationRuleOptions {\n return Object.assign({ message: this.message, name: this.host.name }, this.options);\n }\n}\n","import { AXAlertComponent } from '@acorex/components/alert';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { MXBaseComponent } from '@acorex/components/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService, AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, Input, OnDestroy, Optional, ViewEncapsulation } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AXFormComponent, AXFormValidationEvent } from './form.component';\n\nexport type AXValidationSummaryDisplayMode = 'toast' | 'alert';\n\n/**\n * Displays validation summaries in the form of an alert.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-validation-summary',\n template: `\n @if (displayMode === 'alert' && _content) {\n <ax-alert color=\"danger\" [timeOut]=\"_timeOut\" #a (onClosed)=\"_handleOnDismissed()\">\n <ax-icon></ax-icon>\n <ax-title>{{ title | translate | async }}</ax-title>\n <ax-content>\n <div [innerHTML]=\"_content\"></div>\n </ax-content>\n <ax-footer>\n <ax-suffix>\n <ax-button text=\"Dismiss\" (onClick)=\"a.close()\"></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-alert>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXAlertComponent, AXDecoratorIconComponent, AXDecoratorGenericComponent, AXButtonComponent, AsyncPipe, AXTranslatorPipe],\n})\nexport class AXValidationSummaryComponent extends MXBaseComponent implements OnDestroy {\n /**\n * @ignore\n */\n protected _content?: string = null;\n\n /**\n * @ignore\n */\n private _title = 'validation.messages.title';\n\n /**\n * The title of the validation summary alert.\n */\n @Input()\n public get title(): string {\n return this._title;\n }\n\n /**\n * Sets the title of the validation summary alert.\n *\n * @param v The title to be set.\n */\n public set title(v: string) {\n this._title = v;\n }\n\n /**\n * Specifies the display mode for the validation summary.\n *\n * @defaultValue 'toast'\n */\n @Input()\n displayMode: AXValidationSummaryDisplayMode = 'toast';\n\n /**\n * Specifies the time in milliseconds before the validation summary automatically hides.\n */\n @Input()\n timeOut?: number;\n\n /**\n * Determines whether the validation summary should automatically hide after a specified time.\n * @defaultValue false\n */\n @Input()\n autoHide = false;\n\n /**\n * @ignore\n */\n protected _timeOut: number;\n\n /**\n * @ignore\n */\n private sub: Subscription;\n\n /**\n * @ignore\n */\n constructor(\n private _tosatService: AXToastService,\n @Optional()\n @Inject(AXFormComponent)\n private host: AXFormComponent,\n private translateService: AXTranslationService,\n ) {\n super();\n //\n this.sub = host.onValidate.subscribe(async (e: AXFormValidationEvent) => {\n if (e.result.result) {\n this._content = null;\n } else {\n const failedRules = e.result.rules.filter((c) => !c.result && c.message);\n\n this._content = `<ul>${failedRules.map((c) => this.formatRule({ title: c['title'] as string, message: c.message })).join('')}</ul>`;\n this._timeOut = this.autoHide ? (this.timeOut ?? Math.max(failedRules.length * 1000, 2000)) : 0;\n\n if (this.displayMode == 'toast') {\n this._tosatService.show({\n color: 'danger',\n closeButton: true,\n timeOut: this._timeOut,\n timeOutProgress: true,\n content: this._content,\n title: await this.translateService.translateAsync(this.title),\n location: 'bottom-center',\n });\n }\n }\n this.cdr.markForCheck();\n });\n }\n\n /**\n * @ignore\n */\n private formatRule(rule: { title?: string; message: string }): string {\n return rule.title ? `<li><b>${rule.title}:</b> ${rule.message}</li>` : `<li>${rule.message}</li>`;\n }\n\n /**\n * @ignore\n */\n protected _handleOnDismissed() {\n this._content = null;\n }\n\n /**\n * @ignore\n */\n ngOnDestroy() {\n this.sub?.unsubscribe();\n }\n}\n","import { AXAlertModule } from '@acorex/components/alert';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXFormFieldComponent } from './form-field.component';\nimport { AXFormComponent } from './form.component';\nimport { AXValidationRuleDirective } from './validation-rule.directive';\nimport { AXValidationSummaryComponent } from './validation-summary.component';\n\n@NgModule({\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXAlertModule,\n AXButtonModule,\n AXValidationModule,\n AXTranslationModule,\n AXFormFieldComponent,\n AXFormComponent,\n AXValidationRuleDirective,\n AXValidationSummaryComponent,\n ],\n exports: [AXFormFieldComponent, AXFormComponent, AXValidationRuleDirective, AXValidationSummaryComponent],\n providers: [],\n})\nexport class AXFormModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}