@acorex/components 19.15.0-next.9 → 20.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/accordion/README.md +3 -0
  2. package/accordion/index.d.ts +41 -0
  3. package/action-sheet/index.d.ts +126 -4
  4. package/alert/index.d.ts +93 -2
  5. package/audio-wave/index.d.ts +143 -3
  6. package/autocomplete/index.d.ts +123 -2
  7. package/avatar/index.d.ts +52 -3
  8. package/badge/index.d.ts +27 -2
  9. package/bottom-navigation/index.d.ts +67 -3
  10. package/breadcrumbs/index.d.ts +56 -4
  11. package/button/index.d.ts +230 -5
  12. package/button-group/index.d.ts +166 -3
  13. package/calendar/index.d.ts +367 -4
  14. package/check-box/index.d.ts +74 -2
  15. package/chips/index.d.ts +37 -2
  16. package/circular-progress/index.d.ts +73 -2
  17. package/collapse/index.d.ts +173 -3
  18. package/color-box/index.d.ts +72 -2
  19. package/color-palette/index.d.ts +293 -7
  20. package/comment/index.d.ts +107 -9
  21. package/conversation/index.d.ts +656 -18
  22. package/cron-job/index.d.ts +329 -8
  23. package/data-pager/index.d.ts +416 -9
  24. package/data-table/index.d.ts +1060 -11
  25. package/datetime-box/index.d.ts +112 -2
  26. package/datetime-input/index.d.ts +135 -2
  27. package/datetime-picker/index.d.ts +147 -3
  28. package/decorators/index.d.ts +129 -8
  29. package/dialog/index.d.ts +122 -4
  30. package/drawer/index.d.ts +86 -3
  31. package/drawer-2/README.md +3 -0
  32. package/drawer-2/index.d.ts +48 -0
  33. package/dropdown/index.d.ts +243 -4
  34. package/dropdown-button/index.d.ts +82 -2
  35. package/fesm2022/acorex-components-accordion.mjs +118 -0
  36. package/fesm2022/acorex-components-accordion.mjs.map +1 -0
  37. package/fesm2022/acorex-components-action-sheet.mjs +20 -27
  38. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  39. package/fesm2022/acorex-components-alert.mjs +9 -9
  40. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  41. package/fesm2022/acorex-components-audio-wave.mjs +8 -8
  42. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  43. package/fesm2022/acorex-components-autocomplete.mjs +7 -7
  44. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  45. package/fesm2022/acorex-components-avatar.mjs +11 -11
  46. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  47. package/fesm2022/acorex-components-badge.mjs +9 -8
  48. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  49. package/fesm2022/acorex-components-bottom-navigation.mjs +12 -12
  50. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  51. package/fesm2022/acorex-components-breadcrumbs.mjs +15 -21
  52. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  53. package/fesm2022/acorex-components-button-group.mjs +10 -10
  54. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  55. package/fesm2022/acorex-components-button.mjs +21 -27
  56. package/fesm2022/acorex-components-button.mjs.map +1 -1
  57. package/fesm2022/acorex-components-calendar.mjs +28 -22
  58. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  59. package/fesm2022/acorex-components-check-box.mjs +9 -9
  60. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  61. package/fesm2022/acorex-components-chips.mjs +8 -8
  62. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  63. package/fesm2022/acorex-components-circular-progress.mjs +8 -8
  64. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  65. package/fesm2022/acorex-components-collapse.mjs +17 -25
  66. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  67. package/fesm2022/acorex-components-color-box.mjs +9 -11
  68. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  69. package/fesm2022/acorex-components-color-palette.mjs +59 -63
  70. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  71. package/fesm2022/acorex-components-comment.mjs +31 -31
  72. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  73. package/fesm2022/acorex-components-conversation.mjs +119 -151
  74. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  75. package/fesm2022/acorex-components-cron-job.mjs +64 -64
  76. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  77. package/fesm2022/acorex-components-data-pager.mjs +44 -50
  78. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  79. package/fesm2022/acorex-components-data-table.mjs +49 -49
  80. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  81. package/fesm2022/acorex-components-datetime-box.mjs +10 -22
  82. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  83. package/fesm2022/acorex-components-datetime-input.mjs +12 -9
  84. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  85. package/fesm2022/acorex-components-datetime-picker.mjs +10 -16
  86. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  87. package/fesm2022/acorex-components-decorators.mjs +34 -51
  88. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  89. package/fesm2022/acorex-components-dialog.mjs +19 -26
  90. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  91. package/fesm2022/acorex-components-drawer-2.mjs +120 -0
  92. package/fesm2022/acorex-components-drawer-2.mjs.map +1 -0
  93. package/fesm2022/acorex-components-drawer.mjs +147 -61
  94. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  95. package/fesm2022/acorex-components-dropdown-button.mjs +9 -9
  96. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  97. package/fesm2022/acorex-components-dropdown.mjs +14 -14
  98. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  99. package/fesm2022/acorex-components-file-explorer.mjs +27 -28
  100. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  101. package/fesm2022/acorex-components-flow-chart.mjs +16 -16
  102. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  103. package/fesm2022/acorex-components-form.mjs +25 -30
  104. package/fesm2022/acorex-components-form.mjs.map +1 -1
  105. package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
  106. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  107. package/fesm2022/acorex-components-image-editor.mjs +39 -40
  108. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  109. package/fesm2022/acorex-components-image.mjs +10 -10
  110. package/fesm2022/acorex-components-image.mjs.map +1 -1
  111. package/fesm2022/acorex-components-json-viewer.mjs +7 -7
  112. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  113. package/fesm2022/acorex-components-kbd.mjs +10 -10
  114. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  115. package/fesm2022/acorex-components-label.mjs +9 -9
  116. package/fesm2022/acorex-components-label.mjs.map +1 -1
  117. package/fesm2022/acorex-components-list.mjs +11 -21
  118. package/fesm2022/acorex-components-list.mjs.map +1 -1
  119. package/fesm2022/acorex-components-loading-dialog.mjs +18 -25
  120. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  121. package/fesm2022/acorex-components-loading.mjs +23 -23
  122. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  123. package/fesm2022/acorex-components-map.mjs +700 -193
  124. package/fesm2022/acorex-components-map.mjs.map +1 -1
  125. package/fesm2022/acorex-components-media-viewer.mjs +39 -43
  126. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  127. package/fesm2022/acorex-components-menu.mjs +41 -26
  128. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  129. package/fesm2022/{acorex-components-modal-acorex-components-modal-CJ3M9U7p.mjs → acorex-components-modal-acorex-components-modal-DTLjJam5.mjs} +21 -21
  130. package/fesm2022/acorex-components-modal-acorex-components-modal-DTLjJam5.mjs.map +1 -0
  131. package/fesm2022/{acorex-components-modal-modal-content.component-Ef5XWxUb.mjs → acorex-components-modal-modal-content.component-CsxuUsLE.mjs} +5 -5
  132. package/fesm2022/acorex-components-modal-modal-content.component-CsxuUsLE.mjs.map +1 -0
  133. package/fesm2022/acorex-components-modal.mjs +1 -1
  134. package/fesm2022/acorex-components-navbar.mjs +7 -7
  135. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  136. package/fesm2022/acorex-components-notification.mjs +19 -23
  137. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  138. package/fesm2022/acorex-components-number-box.mjs +7 -7
  139. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  140. package/fesm2022/acorex-components-otp.mjs +7 -7
  141. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  142. package/fesm2022/acorex-components-page.mjs +10 -10
  143. package/fesm2022/acorex-components-page.mjs.map +1 -1
  144. package/fesm2022/acorex-components-paint.mjs +29 -29
  145. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  146. package/fesm2022/acorex-components-password-box.mjs +12 -12
  147. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  148. package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
  149. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  150. package/fesm2022/acorex-components-phone-box.mjs +7 -7
  151. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  152. package/fesm2022/acorex-components-picker.mjs +13 -13
  153. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  154. package/fesm2022/acorex-components-popover.mjs +11 -11
  155. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  156. package/fesm2022/acorex-components-popup.mjs +22 -39
  157. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  158. package/fesm2022/acorex-components-progress-bar.mjs +8 -8
  159. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  160. package/fesm2022/acorex-components-qrcode.mjs +7 -7
  161. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  162. package/fesm2022/acorex-components-query-builder.mjs +9 -10
  163. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  164. package/fesm2022/acorex-components-radio.mjs +7 -7
  165. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  166. package/fesm2022/acorex-components-rail-navigation.mjs +13 -13
  167. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  168. package/fesm2022/acorex-components-range-slider.mjs +9 -9
  169. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  170. package/fesm2022/acorex-components-rate-picker.mjs +7 -7
  171. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  172. package/fesm2022/acorex-components-rest-api-generator.mjs +26 -26
  173. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  174. package/fesm2022/acorex-components-result.mjs +8 -8
  175. package/fesm2022/acorex-components-result.mjs.map +1 -1
  176. package/fesm2022/acorex-components-routing-progress.mjs +13 -14
  177. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  178. package/fesm2022/acorex-components-scheduler.mjs +192 -146
  179. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  180. package/fesm2022/acorex-components-scss.mjs +4 -4
  181. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  182. package/fesm2022/acorex-components-search-box.mjs +12 -21
  183. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  184. package/fesm2022/acorex-components-select-box.mjs +7 -7
  185. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  186. package/fesm2022/acorex-components-selection-list-2.mjs +163 -0
  187. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -0
  188. package/fesm2022/acorex-components-selection-list.mjs +9 -9
  189. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  190. package/fesm2022/acorex-components-side-menu.mjs +28 -21
  191. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  192. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  193. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  194. package/fesm2022/acorex-components-slider.mjs +14 -15
  195. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  196. package/fesm2022/acorex-components-sliding-item.mjs +14 -14
  197. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  198. package/fesm2022/acorex-components-step-wizard.mjs +18 -18
  199. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  200. package/fesm2022/acorex-components-switch.mjs +12 -12
  201. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  202. package/fesm2022/acorex-components-tabs.mjs +17 -17
  203. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  204. package/fesm2022/acorex-components-tag-box.mjs +7 -7
  205. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  206. package/fesm2022/acorex-components-tag.mjs +8 -8
  207. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  208. package/fesm2022/acorex-components-text-area.mjs +7 -7
  209. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  210. package/fesm2022/acorex-components-text-box.mjs +10 -10
  211. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  212. package/fesm2022/acorex-components-time-duration.mjs +17 -9
  213. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  214. package/fesm2022/acorex-components-time-line.mjs +10 -10
  215. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  216. package/fesm2022/acorex-components-toast.mjs +23 -31
  217. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  218. package/fesm2022/acorex-components-toolbar.mjs +7 -7
  219. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  220. package/fesm2022/acorex-components-tooltip.mjs +16 -16
  221. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  222. package/fesm2022/acorex-components-tree-view.mjs +13 -12
  223. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  224. package/fesm2022/acorex-components-uploader.mjs +28 -28
  225. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  226. package/fesm2022/acorex-components-video-player.mjs +7 -7
  227. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  228. package/fesm2022/acorex-components-wysiwyg.mjs +33 -33
  229. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  230. package/fesm2022/acorex-components.mjs.map +1 -1
  231. package/file-explorer/index.d.ts +103 -8
  232. package/flow-chart/index.d.ts +159 -5
  233. package/form/index.d.ts +283 -6
  234. package/grid-layout-builder/index.d.ts +197 -4
  235. package/image/index.d.ts +95 -2
  236. package/image-editor/index.d.ts +268 -11
  237. package/index.d.ts +3 -1
  238. package/json-viewer/index.d.ts +25 -2
  239. package/kbd/index.d.ts +23 -3
  240. package/label/index.d.ts +58 -2
  241. package/list/index.d.ts +148 -2
  242. package/loading/index.d.ts +149 -6
  243. package/loading-dialog/index.d.ts +115 -4
  244. package/map/index.d.ts +661 -7
  245. package/media-viewer/index.d.ts +142 -9
  246. package/menu/index.d.ts +207 -6
  247. package/modal/index.d.ts +78 -5
  248. package/navbar/index.d.ts +22 -2
  249. package/notification/index.d.ts +134 -5
  250. package/number-box/index.d.ts +179 -2
  251. package/otp/index.d.ts +74 -3
  252. package/package.json +23 -11
  253. package/page/index.d.ts +58 -3
  254. package/paint/index.d.ts +157 -7
  255. package/password-box/index.d.ts +97 -3
  256. package/pdf-reader/index.d.ts +17 -2
  257. package/phone-box/index.d.ts +92 -2
  258. package/picker/index.d.ts +44 -4
  259. package/popover/index.d.ts +222 -2
  260. package/popup/index.d.ts +120 -4
  261. package/progress-bar/index.d.ts +65 -2
  262. package/qrcode/index.d.ts +68 -3
  263. package/query-builder/index.d.ts +52 -2
  264. package/radio/index.d.ts +33 -2
  265. package/rail-navigation/index.d.ts +74 -5
  266. package/range-slider/index.d.ts +320 -3
  267. package/rate-picker/index.d.ts +141 -2
  268. package/rest-api-generator/index.d.ts +129 -8
  269. package/result/index.d.ts +34 -2
  270. package/routing-progress/index.d.ts +39 -2
  271. package/scheduler/index.d.ts +556 -11
  272. package/scss/index.d.ts +10 -1
  273. package/search-box/index.d.ts +51 -2
  274. package/select-box/index.d.ts +161 -2
  275. package/selection-list/index.d.ts +93 -2
  276. package/selection-list-2/README.md +3 -0
  277. package/selection-list-2/index.d.ts +52 -0
  278. package/side-menu/index.d.ts +94 -4
  279. package/skeleton/index.d.ts +28 -2
  280. package/slider/index.d.ts +101 -2
  281. package/sliding-item/index.d.ts +45 -4
  282. package/step-wizard/index.d.ts +109 -5
  283. package/switch/index.d.ts +49 -3
  284. package/tabs/index.d.ts +156 -5
  285. package/tag/index.d.ts +26 -2
  286. package/tag-box/index.d.ts +41 -2
  287. package/text-area/index.d.ts +52 -2
  288. package/text-box/index.d.ts +92 -3
  289. package/time-duration/index.d.ts +48 -3
  290. package/time-line/index.d.ts +33 -3
  291. package/toast/index.d.ts +127 -5
  292. package/toolbar/index.d.ts +22 -2
  293. package/tooltip/index.d.ts +60 -3
  294. package/tree-view/index.d.ts +179 -4
  295. package/uploader/index.d.ts +188 -8
  296. package/video-player/index.d.ts +15 -2
  297. package/wysiwyg/index.d.ts +240 -9
  298. package/action-sheet/lib/action-sheet.class.d.ts +0 -40
  299. package/action-sheet/lib/action-sheet.component.d.ts +0 -59
  300. package/action-sheet/lib/action-sheet.module.d.ts +0 -16
  301. package/action-sheet/lib/action-sheet.service.d.ts +0 -16
  302. package/alert/lib/alert.component.d.ts +0 -82
  303. package/alert/lib/alert.module.d.ts +0 -9
  304. package/audio-wave/lib/audio-wave.component.d.ts +0 -112
  305. package/audio-wave/lib/audio-wave.module.d.ts +0 -12
  306. package/audio-wave/lib/interfaces/audio-wave.interface.d.ts +0 -16
  307. package/autocomplete/lib/autocomplete.component.d.ts +0 -114
  308. package/autocomplete/lib/autocomplete.module.d.ts +0 -7
  309. package/avatar/lib/avatar-group.component.d.ts +0 -5
  310. package/avatar/lib/avatar.component.d.ts +0 -37
  311. package/avatar/lib/avatar.module.d.ts +0 -9
  312. package/badge/lib/badge.component.d.ts +0 -16
  313. package/badge/lib/badge.module.d.ts +0 -8
  314. package/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.d.ts +0 -15
  315. package/bottom-navigation/lib/bottom-navigation.component.d.ts +0 -43
  316. package/bottom-navigation/lib/bottom-navigation.module.d.ts +0 -9
  317. package/breadcrumbs/lib/breadcrumbs-item.class.d.ts +0 -9
  318. package/breadcrumbs/lib/breadcrumbs-item.component.d.ts +0 -25
  319. package/breadcrumbs/lib/breadcrumbs.component.d.ts +0 -15
  320. package/breadcrumbs/lib/breadcrumbs.module.d.ts +0 -10
  321. package/button/lib/button-item-list.component.d.ts +0 -56
  322. package/button/lib/button-item.class.d.ts +0 -24
  323. package/button/lib/button-item.component.d.ts +0 -77
  324. package/button/lib/button.component.d.ts +0 -65
  325. package/button/lib/button.module.d.ts +0 -13
  326. package/button-group/lib/button-group-item.component.d.ts +0 -79
  327. package/button-group/lib/button-group.component.d.ts +0 -79
  328. package/button-group/lib/button-group.module.d.ts +0 -11
  329. package/calendar/lib/calendar-range.component.d.ts +0 -82
  330. package/calendar/lib/calendar.class.d.ts +0 -89
  331. package/calendar/lib/calendar.component.d.ts +0 -183
  332. package/calendar/lib/calendar.module.d.ts +0 -13
  333. package/check-box/lib/check-box.component.d.ts +0 -62
  334. package/check-box/lib/check-box.module.d.ts +0 -10
  335. package/chips/lib/chips.component.d.ts +0 -26
  336. package/chips/lib/chips.module.d.ts +0 -8
  337. package/circular-progress/lib/circular-progress.component.d.ts +0 -63
  338. package/circular-progress/lib/circular-progress.module.d.ts +0 -7
  339. package/collapse/lib/collapse-group.component.d.ts +0 -68
  340. package/collapse/lib/collapse.component.d.ts +0 -101
  341. package/collapse/lib/collapse.module.d.ts +0 -10
  342. package/color-box/lib/color-box.component.d.ts +0 -59
  343. package/color-box/lib/color-box.module.d.ts +0 -11
  344. package/color-palette/lib/color-palette-input.component.d.ts +0 -65
  345. package/color-palette/lib/color-palette-picker.component.d.ts +0 -96
  346. package/color-palette/lib/color-palette-preview.component.d.ts +0 -33
  347. package/color-palette/lib/color-palette-swatches.component.d.ts +0 -51
  348. package/color-palette/lib/color-palette.class.d.ts +0 -28
  349. package/color-palette/lib/color-palette.component.d.ts +0 -18
  350. package/color-palette/lib/color-palette.module.d.ts +0 -22
  351. package/comment/lib/comment-container/comment-container.component.d.ts +0 -13
  352. package/comment/lib/comment-item/comment-item.component.d.ts +0 -23
  353. package/comment/lib/comment-tools/comment-date/comment-date.component.d.ts +0 -10
  354. package/comment/lib/comment-tools/comment-like/comment-like.component.d.ts +0 -16
  355. package/comment/lib/comment-tools/comment-menu-options/comment-menu-options.component.d.ts +0 -10
  356. package/comment/lib/comment-tools/comment-reply-more/comment-reply-more.component.d.ts +0 -5
  357. package/comment/lib/comment-tools/comment-reply-text/comment-reply-text.component.d.ts +0 -5
  358. package/comment/lib/comment-view/comment-view.component.d.ts +0 -9
  359. package/comment/lib/comment.module.d.ts +0 -21
  360. package/conversation/lib/classes/events.interface.d.ts +0 -7
  361. package/conversation/lib/conversation-container/conversation-container.component.d.ts +0 -9
  362. package/conversation/lib/conversation-input/conversation-input.component.d.ts +0 -126
  363. package/conversation/lib/conversation-input/conversation-input.interface.d.ts +0 -10
  364. package/conversation/lib/conversation-message/conversation-message.component.d.ts +0 -62
  365. package/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.d.ts +0 -95
  366. package/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.d.ts +0 -53
  367. package/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.d.ts +0 -40
  368. package/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.d.ts +0 -18
  369. package/conversation/lib/conversation-messages/conversation-message-text/conversation-message-text.component.d.ts +0 -44
  370. package/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.d.ts +0 -20
  371. package/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.d.ts +0 -102
  372. package/conversation/lib/conversation-view/conversation-view.component.d.ts +0 -27
  373. package/conversation/lib/conversation.module.d.ts +0 -45
  374. package/conversation/lib/conversation.types.d.ts +0 -26
  375. package/conversation/lib/services/conversation-message-type-registry.service.d.ts +0 -9
  376. package/conversation/lib/services/conversation.service.d.ts +0 -7
  377. package/conversation/lib/services/recording.service.d.ts +0 -20
  378. package/cron-job/lib/cron-job-container/cron-job-container.component.d.ts +0 -30
  379. package/cron-job/lib/cron-job.module.d.ts +0 -25
  380. package/cron-job/lib/cron-job.service.d.ts +0 -22
  381. package/cron-job/lib/day/day.component.d.ts +0 -24
  382. package/cron-job/lib/day/day.model.d.ts +0 -61
  383. package/cron-job/lib/day/day.service.d.ts +0 -17
  384. package/cron-job/lib/hours/hours.component.d.ts +0 -16
  385. package/cron-job/lib/hours/hours.model.d.ts +0 -5
  386. package/cron-job/lib/hours/hours.service.d.ts +0 -13
  387. package/cron-job/lib/minutes/minutes.component.d.ts +0 -16
  388. package/cron-job/lib/minutes/minutes.model.d.ts +0 -5
  389. package/cron-job/lib/minutes/minutes.service.d.ts +0 -13
  390. package/cron-job/lib/month/month.component.d.ts +0 -18
  391. package/cron-job/lib/month/month.model.d.ts +0 -5
  392. package/cron-job/lib/month/month.service.d.ts +0 -14
  393. package/cron-job/lib/seconds/seconds.component.d.ts +0 -16
  394. package/cron-job/lib/seconds/seconds.model.d.ts +0 -5
  395. package/cron-job/lib/seconds/seconds.service.d.ts +0 -13
  396. package/cron-job/lib/types/iexpression.d.ts +0 -3
  397. package/cron-job/lib/types/shared.model.d.ts +0 -37
  398. package/cron-job/lib/year/year.component.d.ts +0 -17
  399. package/cron-job/lib/year/year.model.d.ts +0 -16
  400. package/cron-job/lib/year/year.service.d.ts +0 -12
  401. package/data-pager/lib/data-pager-base.component.d.ts +0 -64
  402. package/data-pager/lib/data-pager-info.component.d.ts +0 -25
  403. package/data-pager/lib/data-pager-input-selector.component.d.ts +0 -28
  404. package/data-pager/lib/data-pager-next-buttons.component.d.ts +0 -32
  405. package/data-pager/lib/data-pager-numeric-selector.component.d.ts +0 -36
  406. package/data-pager/lib/data-pager-pagesize-dropdown.component.d.ts +0 -42
  407. package/data-pager/lib/data-pager-prev-buttons.component.d.ts +0 -32
  408. package/data-pager/lib/data-pager.component.d.ts +0 -151
  409. package/data-pager/lib/data-pager.module.d.ts +0 -22
  410. package/data-table/lib/base-data-table.class.d.ts +0 -38
  411. package/data-table/lib/columns/data-table-column-resizable.directive.d.ts +0 -24
  412. package/data-table/lib/columns/data-table-column.d.ts +0 -20
  413. package/data-table/lib/columns/data-text-column.component.d.ts +0 -100
  414. package/data-table/lib/columns/row-command-column.component.d.ts +0 -131
  415. package/data-table/lib/columns/row-expand-column.component.d.ts +0 -50
  416. package/data-table/lib/columns/row-index-column.component.d.ts +0 -74
  417. package/data-table/lib/columns/row-select-column.component.d.ts +0 -70
  418. package/data-table/lib/data-table/data-table.component.d.ts +0 -301
  419. package/data-table/lib/data-table.module.d.ts +0 -27
  420. package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +0 -253
  421. package/datetime-box/lib/datetime-box.component.d.ts +0 -98
  422. package/datetime-box/lib/datetime-box.module.d.ts +0 -13
  423. package/datetime-input/lib/datetime-input.component.d.ts +0 -123
  424. package/datetime-input/lib/datetime-input.module.d.ts +0 -10
  425. package/datetime-picker/lib/datetime-picker.component.d.ts +0 -121
  426. package/datetime-picker/lib/datetime-picker.config.d.ts +0 -8
  427. package/datetime-picker/lib/datetime-picker.module.d.ts +0 -16
  428. package/decorators/lib/components/clear-button/clear-button.component.d.ts +0 -38
  429. package/decorators/lib/components/close-button/close-button.component.d.ts +0 -35
  430. package/decorators/lib/components/color-indicator/color-indicator.component.d.ts +0 -6
  431. package/decorators/lib/components/full-screen/full-screen-button.component.d.ts +0 -7
  432. package/decorators/lib/components/generic-content.component.d.ts +0 -10
  433. package/decorators/lib/components/heading/heading.component.d.ts +0 -17
  434. package/decorators/lib/components/icon/icon.component.d.ts +0 -20
  435. package/decorators/lib/decorators.module.d.ts +0 -14
  436. package/dialog/lib/dialog.class.d.ts +0 -39
  437. package/dialog/lib/dialog.component.d.ts +0 -41
  438. package/dialog/lib/dialog.module.d.ts +0 -16
  439. package/dialog/lib/dialog.service.d.ts +0 -31
  440. package/drawer/lib/drawer/drawer-container/drawer-container.component.d.ts +0 -12
  441. package/drawer/lib/drawer/drawer-item/drawer.component.d.ts +0 -29
  442. package/drawer/lib/drawer.module.d.ts +0 -9
  443. package/drawer/lib/drawer.service.d.ts +0 -7
  444. package/dropdown/lib/dropdown-box.class.d.ts +0 -17
  445. package/dropdown/lib/dropdown-box.component.d.ts +0 -97
  446. package/dropdown/lib/dropdown-panel.component.d.ts +0 -120
  447. package/dropdown/lib/dropdown.module.d.ts +0 -14
  448. package/dropdown-button/lib/dropdown-button.component.d.ts +0 -67
  449. package/dropdown-button/lib/dropdown-button.module.d.ts +0 -13
  450. package/fesm2022/acorex-components-modal-acorex-components-modal-CJ3M9U7p.mjs.map +0 -1
  451. package/fesm2022/acorex-components-modal-modal-content.component-Ef5XWxUb.mjs.map +0 -1
  452. package/file-explorer/lib/file-explorer-container/file-explorer-container.component.d.ts +0 -5
  453. package/file-explorer/lib/file-explorer-header/file-explorer-header.component.d.ts +0 -9
  454. package/file-explorer/lib/file-explorer-internal.service.d.ts +0 -18
  455. package/file-explorer/lib/file-explorer-item/file-explorer-item.component.d.ts +0 -11
  456. package/file-explorer/lib/file-explorer-tree/file-explorer-tree.component.d.ts +0 -13
  457. package/file-explorer/lib/file-explorer-types.d.ts +0 -11
  458. package/file-explorer/lib/file-explorer-view/file-explorer-view.component.d.ts +0 -14
  459. package/file-explorer/lib/file-explorer.module.d.ts +0 -19
  460. package/file-explorer/lib/file-explorer.service.d.ts +0 -11
  461. package/flow-chart/lib/flow-chart-creator/flow-chart-creator.component.d.ts +0 -13
  462. package/flow-chart/lib/flow-chart-renderer/flow-chart-renderer.component.d.ts +0 -22
  463. package/flow-chart/lib/flow-chart.component.d.ts +0 -24
  464. package/flow-chart/lib/flow-chart.module.d.ts +0 -10
  465. package/flow-chart/lib/flow-chart.service.d.ts +0 -57
  466. package/flow-chart/lib/flow-chart.type.d.ts +0 -37
  467. package/form/lib/form-field.component.d.ts +0 -69
  468. package/form/lib/form.component.d.ts +0 -109
  469. package/form/lib/form.config.d.ts +0 -7
  470. package/form/lib/form.module.d.ts +0 -16
  471. package/form/lib/validation-rule.directive.d.ts +0 -17
  472. package/form/lib/validation-summary.component.d.ts +0 -76
  473. package/grid-layout-builder/lib/grid-layout-builder.module.d.ts +0 -9
  474. package/grid-layout-builder/lib/grid-layout-container.component.d.ts +0 -47
  475. package/grid-layout-builder/lib/grid-layout-widget.component.d.ts +0 -39
  476. package/grid-layout-builder/lib/types.d.ts +0 -103
  477. package/grid-layout-builder/lib/utility.d.ts +0 -9
  478. package/image/lib/image.component.d.ts +0 -85
  479. package/image/lib/image.module.d.ts +0 -8
  480. package/image-editor/lib/image-editor-container/image-editor-container.component.d.ts +0 -26
  481. package/image-editor/lib/image-editor-cropper-window/image-editor-cropper-window.component.d.ts +0 -47
  482. package/image-editor/lib/image-editor-tools/image-editor-crop/image-editor-crop.component.d.ts +0 -14
  483. package/image-editor/lib/image-editor-tools/image-editor-highlight/image-editor-highlight.component.d.ts +0 -18
  484. package/image-editor/lib/image-editor-tools/image-editor-history/image-editor-history.component.d.ts +0 -13
  485. package/image-editor/lib/image-editor-tools/image-editor-pen/image-editor-pen.component.d.ts +0 -18
  486. package/image-editor/lib/image-editor-tools/image-editor-rotate/image-editor-rotate.component.d.ts +0 -16
  487. package/image-editor/lib/image-editor-tools/image-editor-tool-selector/image-editor-tool-selector.component.d.ts +0 -12
  488. package/image-editor/lib/image-editor-view/image-editor-view.component.d.ts +0 -78
  489. package/image-editor/lib/image-editor.module.d.ts +0 -25
  490. package/image-editor/lib/image-editor.service.d.ts +0 -22
  491. package/json-viewer/lib/json-viewer/json-viewer.component.d.ts +0 -13
  492. package/json-viewer/lib/json-viewer.module.d.ts +0 -10
  493. package/kbd/lib/kbd-item/kbd-item.component.d.ts +0 -8
  494. package/kbd/lib/kbd.component.d.ts +0 -5
  495. package/kbd/lib/kbd.module.d.ts +0 -9
  496. package/label/lib/label.component.d.ts +0 -48
  497. package/label/lib/label.module.d.ts +0 -8
  498. package/list/lib/list.component.d.ts +0 -139
  499. package/list/lib/list.module.d.ts +0 -10
  500. package/loading/lib/loading-spinner.component.d.ts +0 -34
  501. package/loading/lib/loading.component.d.ts +0 -53
  502. package/loading/lib/loading.config.d.ts +0 -8
  503. package/loading/lib/loading.directive.d.ts +0 -15
  504. package/loading/lib/loading.module.d.ts +0 -13
  505. package/loading/lib/loading.service.d.ts +0 -29
  506. package/loading-dialog/lib/loading-dialog.class.d.ts +0 -35
  507. package/loading-dialog/lib/loading-dialog.component.d.ts +0 -63
  508. package/loading-dialog/lib/loading-dialog.module.d.ts +0 -14
  509. package/loading-dialog/lib/loading-dialog.service.d.ts +0 -8
  510. package/map/lib/map.component.d.ts +0 -214
  511. package/map/lib/map.config.d.ts +0 -13
  512. package/map/lib/map.module.d.ts +0 -8
  513. package/map/lib/map.service.d.ts +0 -172
  514. package/map/lib/map.type.d.ts +0 -20
  515. package/map/lib/map.utility.d.ts +0 -2
  516. package/map/lib/map.world-map.d.ts +0 -28
  517. package/media-viewer/lib/media-viewer-container/media-viewer-container.component.d.ts +0 -38
  518. package/media-viewer/lib/media-viewer-slider/media-viewer-slider.component.d.ts +0 -18
  519. package/media-viewer/lib/media-viewer-tools/audio-player/audio-player.component.d.ts +0 -8
  520. package/media-viewer/lib/media-viewer-tools/file-info/file-info.component.d.ts +0 -9
  521. package/media-viewer/lib/media-viewer-tools/image-viewer/image-viewer.component.d.ts +0 -6
  522. package/media-viewer/lib/media-viewer-tools/pdf-reader/pdf-reader.component.d.ts +0 -8
  523. package/media-viewer/lib/media-viewer-tools/video-player/video-player.component.d.ts +0 -8
  524. package/media-viewer/lib/media-viewer-type-registry.service.d.ts +0 -9
  525. package/media-viewer/lib/media-viewer-types.d.ts +0 -19
  526. package/media-viewer/lib/media-viewer.module.d.ts +0 -31
  527. package/media-viewer/lib/media-viewer.service.d.ts +0 -8
  528. package/menu/lib/context-menu.component.d.ts +0 -57
  529. package/menu/lib/menu-item.component.d.ts +0 -62
  530. package/menu/lib/menu.component.d.ts +0 -23
  531. package/menu/lib/menu.module.d.ts +0 -15
  532. package/menu/lib/menu.service.d.ts +0 -19
  533. package/menu/lib/menu.types.d.ts +0 -39
  534. package/modal/lib/modal-content/modal-content.component.d.ts +0 -51
  535. package/modal/lib/modal-footer/modal-footer.component.d.ts +0 -5
  536. package/modal/lib/modal-state.service.d.ts +0 -17
  537. package/modal/lib/modal.component.d.ts +0 -18
  538. package/modal/lib/modal.module.d.ts +0 -8
  539. package/modal/lib/modal.service.d.ts +0 -15
  540. package/modal/lib/modal.types.d.ts +0 -34
  541. package/navbar/lib/navbar.component.d.ts +0 -12
  542. package/navbar/lib/navbar.module.d.ts +0 -8
  543. package/notification/lib/notification.class.d.ts +0 -42
  544. package/notification/lib/notification.component.d.ts +0 -41
  545. package/notification/lib/notification.config.d.ts +0 -15
  546. package/notification/lib/notification.module.d.ts +0 -14
  547. package/notification/lib/notification.service.d.ts +0 -25
  548. package/number-box/lib/number-box.component.d.ts +0 -165
  549. package/number-box/lib/number-box.module.d.ts +0 -12
  550. package/otp/lib/otp.class.d.ts +0 -5
  551. package/otp/lib/otp.component.d.ts +0 -59
  552. package/otp/lib/otp.module.d.ts +0 -9
  553. package/page/lib/base-page.class.d.ts +0 -22
  554. package/page/lib/page.component.d.ts +0 -29
  555. package/page/lib/page.module.d.ts +0 -6
  556. package/paint/lib/paint/paint-container/paint-container.component.d.ts +0 -19
  557. package/paint/lib/paint/paint-tools/paint-eraser-tool/paint-eraser-tool.component.d.ts +0 -15
  558. package/paint/lib/paint/paint-tools/paint-highlight-tool/paint-highlight-tool.component.d.ts +0 -18
  559. package/paint/lib/paint/paint-tools/paint-pen-tool/paint-pen-tool.component.d.ts +0 -18
  560. package/paint/lib/paint/paint-tools-selector/paint-tools-selector.component.d.ts +0 -9
  561. package/paint/lib/paint/paint-view/paint-view.component.d.ts +0 -56
  562. package/paint/lib/paint/paint.service.d.ts +0 -12
  563. package/paint/lib/paint.module.d.ts +0 -20
  564. package/password-box/lib/password-box.component.d.ts +0 -42
  565. package/password-box/lib/password-box.module.d.ts +0 -15
  566. package/password-box/lib/password-strength-validation/password-strength-validation.component.d.ts +0 -40
  567. package/pdf-reader/lib/pdf-reader/pdf-reader.component.d.ts +0 -8
  568. package/pdf-reader/lib/pdf-reader.module.d.ts +0 -7
  569. package/phone-box/lib/phone-box.component.d.ts +0 -75
  570. package/phone-box/lib/phone-box.module.d.ts +0 -15
  571. package/picker/lib/picker-container/picker-container.component.d.ts +0 -7
  572. package/picker/lib/picker-items/picker-items.component.d.ts +0 -20
  573. package/picker/lib/picker-title/picker-title.component.d.ts +0 -5
  574. package/picker/lib/picker.module.d.ts +0 -11
  575. package/popover/lib/popover.component.d.ts +0 -211
  576. package/popover/lib/popover.module.d.ts +0 -8
  577. package/popup/lib/popup.component.d.ts +0 -75
  578. package/popup/lib/popup.interface.d.ts +0 -30
  579. package/popup/lib/popup.module.d.ts +0 -15
  580. package/popup/lib/popup.service.d.ts +0 -22
  581. package/progress-bar/lib/progress-bar.component.d.ts +0 -54
  582. package/progress-bar/lib/progress-bar.module.d.ts +0 -8
  583. package/qrcode/lib/qrcode.class.d.ts +0 -3
  584. package/qrcode/lib/qrcode.component.d.ts +0 -54
  585. package/qrcode/lib/qrcode.module.d.ts +0 -8
  586. package/query-builder/lib/query-builder.component.d.ts +0 -35
  587. package/query-builder/lib/query-builder.module.d.ts +0 -15
  588. package/radio/lib/radio.component.d.ts +0 -22
  589. package/radio/lib/radio.module.d.ts +0 -9
  590. package/rail-navigation/lib/rail-navigation-item/rail-navigation-item.component.d.ts +0 -31
  591. package/rail-navigation/lib/rail-navigation.class.d.ts +0 -8
  592. package/rail-navigation/lib/rail-navigation.component.d.ts +0 -18
  593. package/rail-navigation/lib/rail-navigation.module.d.ts +0 -10
  594. package/rail-navigation/lib/rail-navigation.service.d.ts +0 -9
  595. package/range-slider/lib/range-slider.class.d.ts +0 -9
  596. package/range-slider/lib/range-slider.component.d.ts +0 -301
  597. package/range-slider/lib/range-slider.module.d.ts +0 -8
  598. package/rate-picker/lib/calculatePercentage.d.ts +0 -27
  599. package/rate-picker/lib/rate-picker.component.d.ts +0 -131
  600. package/rate-picker/lib/rate-picker.module.d.ts +0 -8
  601. package/rest-api-generator/lib/query-params/query-params.component.d.ts +0 -16
  602. package/rest-api-generator/lib/request-body/request-body.component.d.ts +0 -22
  603. package/rest-api-generator/lib/request-headers/request-headers.component.d.ts +0 -22
  604. package/rest-api-generator/lib/rest-api-auth/rest-api-auth.component.d.ts +0 -22
  605. package/rest-api-generator/lib/rest-api-generator.component.d.ts +0 -14
  606. package/rest-api-generator/lib/rest-api-generator.module.d.ts +0 -19
  607. package/rest-api-generator/lib/rest-api-generator.service.d.ts +0 -7
  608. package/rest-api-generator/lib/types.d.ts +0 -20
  609. package/result/lib/result.component.d.ts +0 -24
  610. package/result/lib/result.module.d.ts +0 -8
  611. package/routing-progress/lib/routing-progress.component.d.ts +0 -30
  612. package/routing-progress/lib/routing-progress.module.d.ts +0 -8
  613. package/scheduler/lib/scheduler.class.d.ts +0 -77
  614. package/scheduler/lib/scheduler.component.d.ts +0 -91
  615. package/scheduler/lib/scheduler.module.d.ts +0 -11
  616. package/scheduler/lib/scheduler.service.d.ts +0 -78
  617. package/scheduler/lib/views/agenda/scheduler-agenda-view.component.d.ts +0 -45
  618. package/scheduler/lib/views/day/scheduler-day-view.component.d.ts +0 -44
  619. package/scheduler/lib/views/month/scheduler-month-view.component.d.ts +0 -59
  620. package/scheduler/lib/views/timeline-day/scheduler-timeline-day-view.component.d.ts +0 -39
  621. package/scheduler/lib/views/timeline-month/scheduler-timeline-month-view.component.d.ts +0 -47
  622. package/scheduler/lib/views/timeline-multi-day/scheduler-timeline-multi-day-view.component.d.ts +0 -40
  623. package/scheduler/lib/views/week/scheduler-week-view.component.d.ts +0 -74
  624. package/scss/lib/scss.module.d.ts +0 -7
  625. package/search-box/lib/search-box.component.d.ts +0 -40
  626. package/search-box/lib/search-box.module.d.ts +0 -14
  627. package/select-box/lib/select-box.component.d.ts +0 -139
  628. package/select-box/lib/select-box.module.d.ts +0 -20
  629. package/selection-list/lib/selection-list.component.d.ts +0 -77
  630. package/selection-list/lib/selection-list.module.d.ts +0 -13
  631. package/side-menu/lib/side-menu-item/side-menu-item.component.d.ts +0 -30
  632. package/side-menu/lib/side-menu.component.d.ts +0 -39
  633. package/side-menu/lib/side-menu.directive.d.ts +0 -14
  634. package/side-menu/lib/side-menu.module.d.ts +0 -15
  635. package/skeleton/lib/skeleton.component.d.ts +0 -18
  636. package/skeleton/lib/skeleton.module.d.ts +0 -8
  637. package/slider/lib/slider.component.d.ts +0 -92
  638. package/slider/lib/slider.module.d.ts +0 -10
  639. package/sliding-item/lib/sliding-item/sliding-item.component.d.ts +0 -13
  640. package/sliding-item/lib/sliding-item-prefix/sliding-item-prefix.component.d.ts +0 -11
  641. package/sliding-item/lib/sliding-item-suffix/sliding-item-suffix.component.d.ts +0 -11
  642. package/sliding-item/lib/sliding-item.module.d.ts +0 -11
  643. package/step-wizard/lib/step-wizard-item/step-wizard-item.component.d.ts +0 -21
  644. package/step-wizard/lib/step-wizard.class.d.ts +0 -7
  645. package/step-wizard/lib/step-wizard.component.d.ts +0 -63
  646. package/step-wizard/lib/step-wizard.directive.d.ts +0 -11
  647. package/step-wizard/lib/step-wizard.module.d.ts +0 -13
  648. package/switch/lib/switch-content.component.d.ts +0 -10
  649. package/switch/lib/switch.component.d.ts +0 -29
  650. package/switch/lib/switch.module.d.ts +0 -10
  651. package/tabs/lib/tab-content.directive.d.ts +0 -11
  652. package/tabs/lib/tab-item.component.d.ts +0 -56
  653. package/tabs/lib/tabs.class.d.ts +0 -8
  654. package/tabs/lib/tabs.component.d.ts +0 -76
  655. package/tabs/lib/tabs.module.d.ts +0 -12
  656. package/tag/lib/tag.component.d.ts +0 -16
  657. package/tag/lib/tag.module.d.ts +0 -8
  658. package/tag-box/lib/tag-box.component.d.ts +0 -32
  659. package/tag-box/lib/tag-box.module.d.ts +0 -7
  660. package/text-area/lib/text-area.component.d.ts +0 -41
  661. package/text-area/lib/text-area.module.d.ts +0 -9
  662. package/text-box/lib/mask-options.directive.d.ts +0 -17
  663. package/text-box/lib/text-box.component.d.ts +0 -61
  664. package/text-box/lib/text-box.module.d.ts +0 -13
  665. package/time-duration/lib/time-duration.component.d.ts +0 -37
  666. package/time-duration/lib/time-duration.module.d.ts +0 -7
  667. package/time-duration/lib/time-duration.type.d.ts +0 -1
  668. package/time-line/lib/time-line-item.component.d.ts +0 -14
  669. package/time-line/lib/time-line.component.d.ts +0 -9
  670. package/time-line/lib/time-line.module.d.ts +0 -9
  671. package/toast/lib/toast.class.d.ts +0 -27
  672. package/toast/lib/toast.component.d.ts +0 -44
  673. package/toast/lib/toast.config.d.ts +0 -14
  674. package/toast/lib/toast.module.d.ts +0 -13
  675. package/toast/lib/toast.service.d.ts +0 -34
  676. package/toolbar/lib/toolbar.component.d.ts +0 -12
  677. package/toolbar/lib/toolbar.module.d.ts +0 -8
  678. package/tooltip/lib/tooltip.component.d.ts +0 -21
  679. package/tooltip/lib/tooltip.directive.d.ts +0 -29
  680. package/tooltip/lib/tooltip.module.d.ts +0 -10
  681. package/tree-view/lib/tree-view-item.component.d.ts +0 -20
  682. package/tree-view/lib/tree-view.class.d.ts +0 -47
  683. package/tree-view/lib/tree-view.component.d.ts +0 -98
  684. package/tree-view/lib/tree-view.component.module.d.ts +0 -16
  685. package/uploader/lib/uploader-browse-handle.directive.d.ts +0 -11
  686. package/uploader/lib/uploader-dialog-container/uploader-dialog-container.component.d.ts +0 -24
  687. package/uploader/lib/uploader-drop-zone/uploader-drop-zone.component.d.ts +0 -12
  688. package/uploader/lib/uploader-list/uploader-list.component.d.ts +0 -12
  689. package/uploader/lib/uploader-zone.directive.d.ts +0 -31
  690. package/uploader/lib/uploader.models.d.ts +0 -52
  691. package/uploader/lib/uploader.module.d.ts +0 -21
  692. package/uploader/lib/uploader.service.d.ts +0 -30
  693. package/video-player/lib/video-player/video-player.component.d.ts +0 -6
  694. package/video-player/lib/video-player.module.d.ts +0 -7
  695. package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +0 -40
  696. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.d.ts +0 -28
  697. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.d.ts +0 -40
  698. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.d.ts +0 -37
  699. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.d.ts +0 -16
  700. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.d.ts +0 -30
  701. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.d.ts +0 -20
  702. package/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.d.ts +0 -16
  703. package/wysiwyg/lib/wysiwyg/wysiwyg.service.d.ts +0 -11
  704. package/wysiwyg/lib/wysiwyg.module.d.ts +0 -21
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-flow-chart.mjs","sources":["../../../../packages/components/flow-chart/src/lib/flow-chart.service.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-creator/flow-chart-creator.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart-renderer/flow-chart-renderer.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart.component.ts","../../../../packages/components/flow-chart/src/lib/flow-chart.component.html","../../../../packages/components/flow-chart/src/lib/flow-chart.module.ts","../../../../packages/components/flow-chart/src/acorex-components-flow-chart.ts"],"sourcesContent":["import { effect, inject, Injectable, NgZone, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n AXFlowChartEdges,\n AXFlowChartNodes,\n AXLineClickEvent,\n AXNodeClickEvent,\n HTMLElementWithDataset,\n} from './flow-chart.type';\n\n@Injectable()\nexport class AXFlowChartService {\n private zone = inject(NgZone);\n\n initialFlowChartEdge = signal([]);\n initialFlowChartNode = signal([]);\n selectedNode = signal<AXFlowChartNodes | null>(null);\n selectedEdge = signal<AXFlowChartEdges | null>(null);\n readonly svgService = signal(null);\n readonly canvasService = signal(null);\n\n readonly lineClick = new Subject<AXLineClickEvent>();\n readonly lineDbClick = new Subject<AXLineClickEvent>();\n readonly nodeClick = new Subject<AXNodeClickEvent>();\n readonly nodeDbClick = new Subject<AXNodeClickEvent>();\n readonly onEdgeUpdate = new Subject<AXFlowChartEdges>();\n readonly onNodeUpdate = new Subject<AXFlowChartNodes>();\n\n private nodesMap = new Map<string, HTMLElementWithDataset>();\n private eventListeners = new Map<string, Map<string, EventListener>>();\n private anchorClickBuffer: { nodeId: string; anchor: string } | null = null;\n\n private currentConnection: {\n source?: { id: string; anchor: string };\n target?: { id: string; anchor: string };\n mouse?: { x: number; y: number };\n } | null = null;\n private draggingConnection = false;\n private tempLine: SVGLineElement | null = null;\n\n #eff2 = effect(() => {\n if (this.initialFlowChartEdge()) {\n setTimeout(() => {\n this.drawEdges(this.initialFlowChartEdge());\n });\n }\n });\n\n #eff3 = effect(() => {\n if (this.initialFlowChartNode()) {\n this.createNode(this.initialFlowChartNode());\n }\n });\n\n private addEventListener(element: HTMLElement, event: string, handler: EventListener) {\n const elementId = element.dataset['id'] || 'global';\n if (!this.eventListeners.has(elementId)) {\n this.eventListeners.set(elementId, new Map());\n }\n\n const elementListeners = this.eventListeners.get(elementId);\n if (elementListeners) {\n const boundHandler = handler.bind(this);\n elementListeners.set(event, boundHandler);\n element.addEventListener(event, boundHandler);\n }\n }\n\n private removeEventListeners(elementId: string) {\n const elementListeners = this.eventListeners.get(elementId);\n if (elementListeners) {\n elementListeners.forEach((handler, event) => {\n const element = this.nodesMap.get(elementId);\n if (element) {\n element.removeEventListener(event, handler);\n }\n });\n this.eventListeners.delete(elementId);\n }\n }\n\n private setupNodeEventListeners(\n el: HTMLElementWithDataset,\n node: { id: string; type: string; label: string; x: number; y: number },\n ) {\n this.addEventListener(el, 'click', (e: Event) => {\n this.nodeClick.next({ target: el, event: e as MouseEvent });\n this.selectedNode.set(node);\n el.classList.add('selected');\n this.nodesMap.forEach((existingNode) => {\n if (existingNode !== el) {\n existingNode.classList.remove('selected');\n }\n });\n });\n\n this.addEventListener(el, 'dblclick', (e: Event) => {\n this.nodeDbClick.next({ target: el, event: e as MouseEvent });\n });\n\n this.addEventListener(el, 'mouseenter', () => {\n el.classList.add('hover');\n });\n\n this.addEventListener(el, 'mouseleave', () => {\n el.classList.remove('hover');\n });\n }\n\n private setupAnchorEventListeners(dot: HTMLElementWithDataset, el: HTMLElementWithDataset) {\n // start drag to connect\n this.addEventListener(dot, 'mousedown', (e: Event) => {\n const mouseEvent = e as MouseEvent;\n mouseEvent.stopPropagation();\n mouseEvent.preventDefault();\n const pos = this.getAnchorPoint(el, dot.dataset['anchor']);\n\n this.currentConnection = {\n source: {\n id: dot.dataset['nodeId'],\n anchor: dot.dataset['anchor'],\n },\n mouse: { x: mouseEvent.clientX, y: mouseEvent.clientY },\n };\n\n this.startTempLine(pos.x, pos.y);\n this.draggingConnection = true;\n });\n\n this.addEventListener(dot, 'click', (e: Event) => {\n e.stopPropagation();\n\n if (dot.classList.contains('selected')) {\n dot.classList.remove('selected');\n } else {\n dot.classList.add('selected');\n }\n\n const clicked = {\n nodeId: dot.dataset['nodeId'],\n anchor: dot.dataset['anchor'],\n };\n\n console.log(clicked);\n\n if (!this.anchorClickBuffer) {\n this.anchorClickBuffer = clicked;\n } else {\n const source = this.anchorClickBuffer;\n const target = clicked;\n\n if (source.nodeId !== target.nodeId) {\n this.pushAndCreateEdgeData(\n { id: source.nodeId, anchor: source.anchor },\n { id: target.nodeId, anchor: target.anchor },\n );\n }\n\n this.anchorClickBuffer = null;\n }\n });\n\n this.addEventListener(dot, 'mouseenter', () => {\n dot.classList.add('hover');\n });\n\n this.addEventListener(dot, 'mouseleave', () => {\n dot.classList.remove('hover');\n });\n }\n\n private addAnchors(el: HTMLElementWithDataset, type: string) {\n ['top', 'bottom', 'left', 'right'].forEach((anchor) => {\n const dot = document.createElement('div') as HTMLElementWithDataset;\n dot.className = 'ax-flow-chart-anchor';\n dot.dataset['anchor'] = anchor;\n dot.dataset['nodeId'] = el.dataset['id'];\n\n this.positionAnchor(dot, anchor, type);\n el.appendChild(dot);\n\n this.setupAnchorEventListeners(dot, el);\n });\n }\n\n private makeDraggable(el: HTMLElement) {\n let offsetX = 0,\n offsetY = 0,\n isDragging = false;\n\n this.addEventListener(el, 'mousedown', (e: Event) => {\n const mouseEvent = e as MouseEvent;\n if ((mouseEvent.target as HTMLElement).classList.contains('ax-flow-chart-anchor')) return;\n isDragging = true;\n offsetX = mouseEvent.clientX - el.offsetLeft;\n offsetY = mouseEvent.clientY - el.offsetTop;\n mouseEvent.preventDefault();\n });\n\n const mousemoveHandler = (e: MouseEvent) => {\n if (isDragging) {\n el.style.left = e.clientX - offsetX + 'px';\n el.style.top = e.clientY - offsetY + 'px';\n this.drawEdges(this.initialFlowChartEdge());\n\n this.initialFlowChartNode.update((value) => {\n const node = value.find((node) => node.id === el.dataset['id']);\n if (node) {\n node.x = e.clientX - offsetX;\n node.y = e.clientY - offsetY;\n }\n return value;\n });\n }\n\n const elementId = (e.target as HTMLElement).id;\n if (elementId === 'ax-flow-chart-renderer-connections' || elementId === 'ax-flow-chart-renderer-canvas') {\n if (this.draggingConnection && this.tempLine) {\n this.tempLine.setAttribute('x2', e.offsetX.toString());\n this.tempLine.setAttribute('y2', e.offsetY.toString());\n }\n }\n };\n\n const mouseupHandler = (e: MouseEvent) => {\n isDragging = false;\n if (this.draggingConnection) {\n const target = (e.target as HTMLElement).closest('.ax-flow-chart-anchor') as HTMLElementWithDataset;\n if (target && target.dataset['nodeId'] !== this.currentConnection?.source?.id) {\n this.currentConnection = {\n ...this.currentConnection,\n target: {\n id: target.dataset['nodeId'],\n anchor: target.dataset['anchor'],\n },\n };\n this.finishConnection();\n }\n this.clearTempLine();\n this.draggingConnection = false;\n }\n };\n\n // Add global event listeners\n this.zone.runOutsideAngular(() => {\n document.addEventListener('mousemove', mousemoveHandler);\n document.addEventListener('mouseup', mouseupHandler);\n });\n\n // Store global listeners\n const globalListeners = this.eventListeners.get('global');\n if (globalListeners) {\n globalListeners.set('mousemove', mousemoveHandler as EventListener);\n globalListeners.set('mouseup', mouseupHandler as EventListener);\n }\n }\n\n private positionAnchor(dot: HTMLElement, anchor: string, type: string) {\n if (type !== 'diamond') {\n switch (anchor) {\n case 'top':\n dot.style.top = '0%';\n dot.style.left = '50%';\n break;\n case 'bottom':\n dot.style.top = '100%';\n dot.style.left = '50%';\n break;\n case 'left':\n dot.style.top = '50%';\n dot.style.left = '0%';\n break;\n case 'right':\n dot.style.top = '50%';\n dot.style.left = '100%';\n break;\n }\n } else {\n switch (anchor) {\n case 'top':\n dot.style.top = '0%';\n dot.style.left = '0%';\n break;\n case 'bottom':\n dot.style.top = '100%';\n dot.style.left = '100%';\n break;\n case 'left':\n dot.style.top = '100%';\n dot.style.left = '0%';\n break;\n case 'right':\n dot.style.top = '0%';\n dot.style.left = '100%';\n break;\n }\n }\n }\n\n private getAnchorPoint(el: HTMLElement, anchor: string): { x: number; y: number } {\n const rect = el.getBoundingClientRect();\n const centerX = el.offsetLeft + rect.width / 2;\n const centerY = el.offsetTop + rect.height / 2;\n\n switch (anchor) {\n case 'top':\n return { x: centerX, y: el.offsetTop };\n case 'bottom':\n return { x: centerX, y: el.offsetTop + rect.height };\n case 'left':\n return { x: el.offsetLeft, y: centerY };\n case 'right':\n return { x: el.offsetLeft + rect.width, y: centerY };\n default:\n return { x: centerX, y: centerY };\n }\n }\n\n private startTempLine(x: number, y: number) {\n const svgElement = this.svgService()?.nativeElement;\n\n if (!svgElement) return;\n\n this.tempLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n this.tempLine.setAttribute('x1', x.toString());\n this.tempLine.setAttribute('y1', y.toString());\n this.tempLine.setAttribute('x2', x.toString());\n this.tempLine.setAttribute('y2', y.toString());\n this.tempLine.setAttribute('stroke', 'rgba(var(--ax-sys-color-on-lightest-surface),0.5)');\n this.tempLine.setAttribute('stroke-width', '2');\n this.tempLine.setAttribute('stroke-dasharray', '4');\n svgElement.appendChild(this.tempLine);\n }\n\n private clearTempLine() {\n if (this.tempLine && this.tempLine.parentElement) {\n this.svgService()?.nativeElement.removeChild(this.tempLine);\n this.tempLine = null;\n }\n }\n\n private pushAndCreateEdgeData(source: { id: string; anchor: string }, target: { id: string; anchor: string }) {\n const newEdge = {\n id: `edge-${Math.random().toString()}`,\n source,\n target,\n };\n\n this.onEdgeUpdate.next(newEdge);\n this.initialFlowChartEdge.update((value) => [...value, newEdge]);\n this.drawEdges();\n }\n\n drawEdges(edges?: AXFlowChartEdges[]) {\n const svg = this.svgService()?.nativeElement;\n if (!svg) return;\n\n // Clear existing edges\n svg.innerHTML = '';\n\n // Use provided edges or get from signal\n const edgesToDraw = edges || this.initialFlowChartEdge();\n\n edgesToDraw.forEach((edge) => {\n const sourceNode = this.nodesMap.get(edge.source.id);\n const targetNode = this.nodesMap.get(edge.target.id);\n\n if (sourceNode) {\n const sourceAnchor = sourceNode.querySelector(`[data-anchor=\"${edge.source.anchor}\"]`);\n if (sourceAnchor) sourceAnchor.classList.add('selected');\n }\n if (targetNode) {\n const targetAnchor = targetNode.querySelector(`[data-anchor=\"${edge.target.anchor}\"]`);\n if (targetAnchor) targetAnchor.classList.add('selected');\n }\n\n if (sourceNode && targetNode) {\n const sourcePoint = this.getAnchorPoint(sourceNode, edge.source.anchor);\n const targetPoint = this.getAnchorPoint(targetNode, edge.target.anchor);\n\n const line = this.createLine(sourcePoint, targetPoint, edge);\n line.classList.add('ax-flow-chart-line');\n\n // Add click event listener for line selection\n this.addEventListener(line as unknown as HTMLElement, 'click', (e: Event) => {\n e.stopPropagation();\n this.lineClick.next({ target: edge, event: e as MouseEvent });\n this.selectedEdge.set(edge);\n this.selectedNode.set(null);\n // Remove selection from all other lines\n document.querySelectorAll('.ax-flow-chart-line').forEach((l) => {\n if (l !== line) l.classList.remove('selected');\n });\n // Add selection to clicked line\n line.classList.add('selected');\n // Remove selection from all nodes\n this.nodesMap.forEach((node) => node.classList.remove('selected'));\n });\n\n svg.appendChild(line);\n }\n });\n }\n\n createLine(from: { x: number; y: number }, to: { x: number; y: number }, edge: AXFlowChartEdges) {\n const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n line.setAttribute('x1', from.x.toString());\n line.setAttribute('y1', from.y.toString());\n line.setAttribute('x2', to.x.toString());\n line.setAttribute('y2', to.y.toString());\n line.setAttribute('stroke', 'rgba(var(--ax-sys-color-on-surface))');\n line.setAttribute('stroke-width', '3');\n line.classList.add('ax-flow-chart-line');\n line.addEventListener('click', (e: MouseEvent) => {\n this.lineClick.next({ target: edge, event: e });\n this.selectedEdge.set(edge);\n });\n line.addEventListener('dblclick', (e: MouseEvent) => {\n this.lineDbClick.next({ target: edge, event: e });\n });\n return line;\n }\n\n private finishConnection() {\n if (this.currentConnection?.source && this.currentConnection?.target) {\n this.pushAndCreateEdgeData(this.currentConnection.source, this.currentConnection.target);\n }\n this.currentConnection = null;\n }\n\n removeEdge(edge: AXFlowChartEdges) {\n this.initialFlowChartEdge.update((value) => value.filter((e) => e.id !== edge.id));\n\n // Remove selected class from connected anchors\n const sourceNode = this.nodesMap.get(edge.source.id);\n const targetNode = this.nodesMap.get(edge.target.id);\n\n if (sourceNode) {\n const sourceAnchor = sourceNode.querySelector(`[data-anchor=\"${edge.source.anchor}\"]`);\n if (sourceAnchor) sourceAnchor.classList.remove('selected');\n }\n\n if (targetNode) {\n const targetAnchor = targetNode.querySelector(`[data-anchor=\"${edge.target.anchor}\"]`);\n if (targetAnchor) targetAnchor.classList.remove('selected');\n }\n }\n\n createNode(nodes: { id: string; type: string; label: string; x: number; y: number }[]) {\n document.querySelectorAll('.ax-flow-chart-node')?.forEach((node) => node.remove());\n\n nodes.forEach((node) => {\n const el = document.createElement('div') as HTMLElementWithDataset;\n const p = document.createElement('p') as HTMLElementWithDataset;\n p.innerText = node.label;\n el.appendChild(p);\n el.className = 'ax-flow-chart-node';\n el.classList.add(`ax-${node.type}`);\n el.style.left = node.x + 'px';\n el.style.top = node.y + 'px';\n el.dataset['id'] = node.id;\n\n this.addAnchors(el, node.type);\n this.makeDraggable(el);\n this.setupNodeEventListeners(el, node);\n\n this.canvasService().nativeElement.appendChild(el);\n this.nodesMap.set(node.id, el);\n });\n }\n\n removeNode(nodeId: string) {\n this.initialFlowChartNode.update((value) => value.filter((e) => e.id !== nodeId));\n\n this.initialFlowChartEdge().forEach((edge) => {\n if (edge.source.id === nodeId || edge.target.id === nodeId) {\n this.removeEdge(edge);\n }\n });\n\n document.querySelector(`[data-id=\"${nodeId}\"]`)?.remove();\n this.anchorClickBuffer = null;\n }\n\n cleanup() {\n this.nodesMap.forEach((_, id) => this.removeEventListeners(id));\n this.nodesMap.clear();\n this.eventListeners.clear();\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXFlowChartService } from '../flow-chart.service';\n\n@Component({\n selector: 'ax-flow-chart-creator',\n templateUrl: './flow-chart-creator.component.html',\n styleUrls: ['./flow-chart-creator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [AXTextBoxModule, AXButtonModule, CommonModule, FormsModule],\n providers: [{ provide: AXComponent, useExisting: AXFlowChartCreatorComponent }],\n})\nexport class AXFlowChartCreatorComponent extends NXComponent {\n service = inject(AXFlowChartService);\n protected selectedShape = signal('rectangle');\n protected label = 'Label';\n\n protected selectShapeHandler(shape: 'rectangle' | 'circle' | 'diamond') {\n this.selectedShape.set(shape);\n }\n\n protected createShapeHandler() {\n const newNode = {\n id: Math.random().toString(),\n type: this.selectedShape(),\n label: this.label,\n x: 0,\n y: 0,\n };\n this.service.initialFlowChartNode.update((value) => [...value, newNode]);\n this.service.onNodeUpdate.next(newNode);\n }\n\n protected printChart(): void {\n const printWindow = window.open('', '_blank');\n if (!printWindow) return;\n\n const canvas = this.service.canvasService()?.nativeElement;\n if (!canvas) return;\n\n // Get all styles from the document and component\n const styles = Array.from(document.styleSheets)\n .map((sheet) => {\n try {\n return Array.from(sheet.cssRules)\n .map((rule) => rule.cssText)\n .join('\\n');\n } catch (e) {\n return '';\n }\n })\n .join('\\n');\n\n // Add print-specific styles for anchors\n const printStyles = `\n ${styles}\n .ax-flow-chart-anchor {\n opacity: 1 !important;\n }\n `;\n\n // Create the print content with proper styling\n const printContent = `\n <!DOCTYPE html>\n <html>\n <head>\n <title>Flow Chart Print</title>\n <style>\n ${printStyles}\n </style>\n </head>\n <body>\n <ax-flow-chart-renderer>\n ${canvas.outerHTML}\n </ax-flow-chart-renderer>\n </body>\n </html>\n `;\n\n printWindow.document.write(printContent);\n printWindow.document.close();\n }\n}\n","<div class=\"ax-shape-container\">\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'rectangle' }\"\n (click)=\"selectShapeHandler('rectangle')\"\n class=\"ax-rectangle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'circle' }\"\n (click)=\"selectShapeHandler('circle')\"\n class=\"ax-circle\"\n ></div>\n <div\n [ngClass]=\"{ 'ax-shape-selected': selectedShape() === 'diamond' }\"\n (click)=\"selectShapeHandler('diamond')\"\n class=\"ax-diamond\"\n ></div>\n</div>\n<ax-text-box class=\"ax-sm\" [(ngModel)]=\"label\" placeholder=\"Label\"> </ax-text-box>\n\n<ax-button class=\"ax-sm\" (onClick)=\"createShapeHandler()\" color=\"primary\" text=\"Create\"></ax-button>\n<ax-button color=\"primary\" text=\"Print\" class=\"ax-sm\" (click)=\"printChart()\"></ax-button>\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n OnDestroy,\n output,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXFlowChartService } from '../flow-chart.service';\nimport { AXFlowChartEdges, AXFlowChartNodes, AXLineClickEvent, AXNodeClickEvent } from '../flow-chart.type';\n\n@Component({\n selector: 'ax-flow-chart-renderer',\n templateUrl: './flow-chart-renderer.component.html',\n styleUrls: ['./flow-chart-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXFlowChartRendererComponent }],\n})\nexport class AXFlowChartRendererComponent extends NXComponent implements OnDestroy {\n private canvas = viewChild<ElementRef>('canvas');\n private svg = viewChild<ElementRef>('connections');\n private service = inject(AXFlowChartService);\n\n readonly onLineClick = output<AXLineClickEvent>();\n readonly onLineDbClick = output<AXLineClickEvent>();\n readonly onNodeClick = output<AXNodeClickEvent>();\n readonly onNodeDbClick = output<AXNodeClickEvent>();\n readonly onEdgeUpdate = output<AXFlowChartEdges>();\n readonly onNodeUpdate = output<AXFlowChartNodes>();\n\n #init = afterNextRender(() => {\n this.setupEventListeners();\n });\n\n #eff = effect(() => {\n if (this.canvas() && this.svg()) {\n this.initializeServices();\n }\n });\n\n private setupEventListeners(): void {\n this.service.lineClick.subscribe((value) => {\n this.onLineClick.emit(value);\n });\n this.service.lineDbClick.subscribe((value) => {\n this.onLineDbClick.emit(value);\n });\n this.service.nodeClick.subscribe((value) => {\n this.onNodeClick.emit(value);\n });\n this.service.nodeDbClick.subscribe((value) => {\n this.onNodeDbClick.emit(value);\n });\n this.service.onEdgeUpdate.subscribe((newEdge) => {\n this.onEdgeUpdate.emit(newEdge);\n });\n this.service.onNodeUpdate.subscribe((newNode) => {\n this.onNodeUpdate.emit(newNode);\n });\n }\n\n private initializeServices(): void {\n this.service.canvasService.set(this.canvas());\n this.service.svgService.set(this.svg());\n\n // Add click handlers for parent elements\n const canvas = this.canvas()?.nativeElement;\n const svg = this.svg()?.nativeElement;\n\n if (canvas) {\n canvas.addEventListener('click', (e: Event) => {\n if (e.target === canvas) {\n this.service.selectedNode.set(null);\n this.service.selectedEdge.set(null);\n document.querySelectorAll('.ax-flow-chart-node').forEach((node) => node.classList.remove('selected'));\n document.querySelectorAll('.ax-flow-chart-line').forEach((line) => line.classList.remove('selected'));\n }\n });\n }\n\n if (svg) {\n svg.addEventListener('click', (e: Event) => {\n if (e.target === svg) {\n this.service.selectedNode.set(null);\n this.service.selectedEdge.set(null);\n document.querySelectorAll('.ax-flow-chart-node').forEach((node) => node.classList.remove('selected'));\n document.querySelectorAll('.ax-flow-chart-line').forEach((line) => line.classList.remove('selected'));\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n this.cleanup();\n }\n\n private cleanup(): void {\n this.service.cleanup();\n this.service.lineClick.unsubscribe();\n this.service.lineDbClick.unsubscribe();\n this.service.nodeClick.unsubscribe();\n this.service.nodeDbClick.unsubscribe();\n this.service.onEdgeUpdate.unsubscribe();\n }\n}\n","<div id=\"ax-flow-chart-renderer-canvas\" #canvas>\n <svg class=\"ax-flow-chart-renderer-svg\" id=\"ax-flow-chart-renderer-connections\" #connections></svg>\n</div>\n","import { AXComponent, AXFocusableComponent, AXValuableComponent, NXComponent } from '@acorex/cdk/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostListener,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXFlowChartService } from './flow-chart.service';\nimport { AXFlowChartEdges, AXFlowChartNodes } from './flow-chart.type';\n\n@Component({\n selector: 'ax-flow-chart',\n templateUrl: './flow-chart.component.html',\n styleUrls: ['./flow-chart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXFlowChartService,\n { provide: AXComponent, useExisting: AXFlowChartComponent },\n { provide: AXValuableComponent, useExisting: AXFlowChartComponent },\n { provide: AXFocusableComponent, useExisting: AXFlowChartComponent },\n ],\n})\nexport class AXFlowChartComponent extends NXComponent {\n private flowChartService = inject(AXFlowChartService);\n\n initialFlowChartNode = input.required<AXFlowChartNodes[]>();\n initialFlowChartEdge = input.required<AXFlowChartEdges[]>();\n selectedNode = computed(() => this.flowChartService.selectedNode());\n selectedEdge = computed(() => this.flowChartService.selectedEdge());\n\n #init = afterNextRender(() => {\n this.flowChartService.initialFlowChartNode.set(this.initialFlowChartNode());\n this.flowChartService.initialFlowChartEdge.set(this.initialFlowChartEdge());\n });\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (event.key === 'Delete') {\n const selectedNode = this.selectedNode();\n const selectedEdge = this.selectedEdge();\n\n if (selectedNode) {\n this.removeNode(selectedNode.id);\n } else if (selectedEdge) {\n this.removeEdge(selectedEdge);\n }\n }\n }\n\n 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":["../tmp-esm2022/flow-chart/lib/flow-chart.service.js","../tmp-esm2022/flow-chart/lib/flow-chart-creator/flow-chart-creator.component.js","../tmp-esm2022/flow-chart/lib/flow-chart-renderer/flow-chart-renderer.component.js","../tmp-esm2022/flow-chart/lib/flow-chart.component.js","../tmp-esm2022/flow-chart/lib/flow-chart.module.js","../tmp-esm2022/flow-chart/acorex-components-flow-chart.js"],"sourcesContent":["import { effect, inject, Injectable, NgZone, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AXFlowChartService {\n constructor() {\n this.zone = inject(NgZone);\n this.initialFlowChartEdge = signal([]);\n this.initialFlowChartNode = signal([]);\n this.selectedNode = signal(null);\n this.selectedEdge = signal(null);\n this.svgService = signal(null);\n this.canvasService = signal(null);\n this.lineClick = new Subject();\n this.lineDbClick = new Subject();\n this.nodeClick = new Subject();\n this.nodeDbClick = new Subject();\n this.onEdgeUpdate = new Subject();\n this.onNodeUpdate = new Subject();\n this.nodesMap = new Map();\n this.eventListeners = new Map();\n this.anchorClickBuffer = null;\n this.currentConnection = null;\n this.draggingConnection = false;\n this.tempLine = null;\n this.#eff2 = effect(() => {\n if (this.initialFlowChartEdge()) {\n setTimeout(() => {\n this.drawEdges(this.initialFlowChartEdge());\n });\n }\n });\n this.#eff3 = effect(() => {\n if (this.initialFlowChartNode()) {\n this.createNode(this.initialFlowChartNode());\n }\n });\n }\n #eff2;\n #eff3;\n addEventListener(element, event, handler) {\n const elementId = element.dataset['id'] || 'global';\n if (!this.eventListeners.has(elementId)) {\n this.eventListeners.set(elementId, new Map());\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 removeEventListeners(elementId) {\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 setupNodeEventListeners(el, node) {\n this.addEventListener(el, 'click', (e) => {\n this.nodeClick.next({ target: el, event: e });\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 this.addEventListener(el, 'dblclick', (e) => {\n this.nodeDbClick.next({ target: el, event: e });\n });\n this.addEventListener(el, 'mouseenter', () => {\n el.classList.add('hover');\n });\n this.addEventListener(el, 'mouseleave', () => {\n el.classList.remove('hover');\n });\n }\n setupAnchorEventListeners(dot, el) {\n // start drag to connect\n this.addEventListener(dot, 'mousedown', (e) => {\n const mouseEvent = e;\n mouseEvent.stopPropagation();\n mouseEvent.preventDefault();\n const pos = this.getAnchorPoint(el, dot.dataset['anchor']);\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 this.startTempLine(pos.x, pos.y);\n this.draggingConnection = true;\n });\n this.addEventListener(dot, 'click', (e) => {\n e.stopPropagation();\n if (dot.classList.contains('selected')) {\n dot.classList.remove('selected');\n }\n else {\n dot.classList.add('selected');\n }\n const clicked = {\n nodeId: dot.dataset['nodeId'],\n anchor: dot.dataset['anchor'],\n };\n console.log(clicked);\n if (!this.anchorClickBuffer) {\n this.anchorClickBuffer = clicked;\n }\n else {\n const source = this.anchorClickBuffer;\n const target = clicked;\n if (source.nodeId !== target.nodeId) {\n this.pushAndCreateEdgeData({ id: source.nodeId, anchor: source.anchor }, { id: target.nodeId, anchor: target.anchor });\n }\n this.anchorClickBuffer = null;\n }\n });\n this.addEventListener(dot, 'mouseenter', () => {\n dot.classList.add('hover');\n });\n this.addEventListener(dot, 'mouseleave', () => {\n dot.classList.remove('hover');\n });\n }\n addAnchors(el, type) {\n ['top', 'bottom', 'left', 'right'].forEach((anchor) => {\n const dot = document.createElement('div');\n dot.className = 'ax-flow-chart-anchor';\n dot.dataset['anchor'] = anchor;\n dot.dataset['nodeId'] = el.dataset['id'];\n this.positionAnchor(dot, anchor, type);\n el.appendChild(dot);\n this.setupAnchorEventListeners(dot, el);\n });\n }\n makeDraggable(el) {\n let offsetX = 0, offsetY = 0, isDragging = false;\n this.addEventListener(el, 'mousedown', (e) => {\n const mouseEvent = e;\n if (mouseEvent.target.classList.contains('ax-flow-chart-anchor'))\n return;\n isDragging = true;\n offsetX = mouseEvent.clientX - el.offsetLeft;\n offsetY = mouseEvent.clientY - el.offsetTop;\n mouseEvent.preventDefault();\n });\n const mousemoveHandler = (e) => {\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 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 const elementId = e.target.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 const mouseupHandler = (e) => {\n isDragging = false;\n if (this.draggingConnection) {\n const target = e.target.closest('.ax-flow-chart-anchor');\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 // Add global event listeners\n this.zone.runOutsideAngular(() => {\n document.addEventListener('mousemove', mousemoveHandler);\n document.addEventListener('mouseup', mouseupHandler);\n });\n // Store global listeners\n const globalListeners = this.eventListeners.get('global');\n if (globalListeners) {\n globalListeners.set('mousemove', mousemoveHandler);\n globalListeners.set('mouseup', mouseupHandler);\n }\n }\n positionAnchor(dot, anchor, type) {\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 }\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 getAnchorPoint(el, anchor) {\n const rect = el.getBoundingClientRect();\n const centerX = el.offsetLeft + rect.width / 2;\n const centerY = el.offsetTop + rect.height / 2;\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 startTempLine(x, y) {\n const svgElement = this.svgService()?.nativeElement;\n if (!svgElement)\n return;\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 clearTempLine() {\n if (this.tempLine && this.tempLine.parentElement) {\n this.svgService()?.nativeElement.removeChild(this.tempLine);\n this.tempLine = null;\n }\n }\n pushAndCreateEdgeData(source, target) {\n const newEdge = {\n id: `edge-${Math.random().toString()}`,\n source,\n target,\n };\n this.onEdgeUpdate.next(newEdge);\n this.initialFlowChartEdge.update((value) => [...value, newEdge]);\n this.drawEdges();\n }\n drawEdges(edges) {\n const svg = this.svgService()?.nativeElement;\n if (!svg)\n return;\n // Clear existing edges\n svg.innerHTML = '';\n // Use provided edges or get from signal\n const edgesToDraw = edges || this.initialFlowChartEdge();\n edgesToDraw.forEach((edge) => {\n const sourceNode = this.nodesMap.get(edge.source.id);\n const targetNode = this.nodesMap.get(edge.target.id);\n if (sourceNode) {\n const sourceAnchor = sourceNode.querySelector(`[data-anchor=\"${edge.source.anchor}\"]`);\n if (sourceAnchor)\n sourceAnchor.classList.add('selected');\n }\n if (targetNode) {\n const targetAnchor = targetNode.querySelector(`[data-anchor=\"${edge.target.anchor}\"]`);\n if (targetAnchor)\n targetAnchor.classList.add('selected');\n }\n if (sourceNode && targetNode) {\n const sourcePoint = this.getAnchorPoint(sourceNode, edge.source.anchor);\n const targetPoint = this.getAnchorPoint(targetNode, edge.target.anchor);\n const line = this.createLine(sourcePoint, targetPoint, edge);\n line.classList.add('ax-flow-chart-line');\n // Add click event listener for line selection\n this.addEventListener(line, 'click', (e) => {\n e.stopPropagation();\n this.lineClick.next({ target: edge, event: e });\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)\n 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 svg.appendChild(line);\n }\n });\n }\n createLine(from, to, edge) {\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) => {\n this.lineClick.next({ target: edge, event: e });\n this.selectedEdge.set(edge);\n });\n line.addEventListener('dblclick', (e) => {\n this.lineDbClick.next({ target: edge, event: e });\n });\n return line;\n }\n 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 removeEdge(edge) {\n this.initialFlowChartEdge.update((value) => value.filter((e) => e.id !== edge.id));\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 if (sourceNode) {\n const sourceAnchor = sourceNode.querySelector(`[data-anchor=\"${edge.source.anchor}\"]`);\n if (sourceAnchor)\n sourceAnchor.classList.remove('selected');\n }\n if (targetNode) {\n const targetAnchor = targetNode.querySelector(`[data-anchor=\"${edge.target.anchor}\"]`);\n if (targetAnchor)\n targetAnchor.classList.remove('selected');\n }\n }\n createNode(nodes) {\n document.querySelectorAll('.ax-flow-chart-node')?.forEach((node) => node.remove());\n nodes.forEach((node) => {\n const el = document.createElement('div');\n const p = document.createElement('p');\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 this.addAnchors(el, node.type);\n this.makeDraggable(el);\n this.setupNodeEventListeners(el, node);\n this.canvasService().nativeElement.appendChild(el);\n this.nodesMap.set(node.id, el);\n });\n }\n removeNode(nodeId) {\n this.initialFlowChartNode.update((value) => value.filter((e) => e.id !== nodeId));\n this.initialFlowChartEdge().forEach((edge) => {\n if (edge.source.id === nodeId || edge.target.id === nodeId) {\n this.removeEdge(edge);\n }\n });\n document.querySelector(`[data-id=\"${nodeId}\"]`)?.remove();\n this.anchorClickBuffer = null;\n }\n cleanup() {\n this.nodesMap.forEach((_, id) => this.removeEventListeners(id));\n this.nodesMap.clear();\n this.eventListeners.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jaGFydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mbG93LWNoYXJ0L3NyYy9saWIvZmxvdy1jaGFydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBVS9CLE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFVSxTQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlCLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQyx5QkFBb0IsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsaUJBQVksR0FBRyxNQUFNLENBQTBCLElBQUksQ0FBQyxDQUFDO1FBQ3JELGlCQUFZLEdBQUcsTUFBTSxDQUEwQixJQUFJLENBQUMsQ0FBQztRQUM1QyxlQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFvQixDQUFDO1FBQzlDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFvQixDQUFDO1FBQzlDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQW9CLENBQUM7UUFDL0MsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztRQUVoRCxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQWtDLENBQUM7UUFDckQsbUJBQWMsR0FB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QUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0E3ZFUsa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlZmZlY3QsIGluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFYRmxvd0NoYXJ0RWRnZXMsXG4gIEFYRmxvd0NoYXJ0Tm9kZXMsXG4gIEFYTGluZUNsaWNrRXZlbnQsXG4gIEFYTm9kZUNsaWNrRXZlbnQsXG4gIEhUTUxFbGVtZW50V2l0aERhdGFzZXQsXG59IGZyb20gJy4vZmxvdy1jaGFydC50eXBlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYRmxvd0NoYXJ0U2VydmljZSB7XG4gIHByaXZhdGUgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIGluaXRpYWxGbG93Q2hhcnRFZGdlID0gc2lnbmFsKFtdKTtcbiAgaW5pdGlhbEZsb3dDaGFydE5vZGUgPSBzaWduYWwoW10pO1xuICBzZWxlY3RlZE5vZGUgPSBzaWduYWw8QVhGbG93Q2hhcnROb2RlcyB8IG51bGw+KG51bGwpO1xuICBzZWxlY3RlZEVkZ2UgPSBzaWduYWw8QVhGbG93Q2hhcnRFZGdlcyB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBzdmdTZXJ2aWNlID0gc2lnbmFsKG51bGwpO1xuICByZWFkb25seSBjYW52YXNTZXJ2aWNlID0gc2lnbmFsKG51bGwpO1xuXG4gIHJlYWRvbmx5IGxpbmVDbGljayA9IG5ldyBTdWJqZWN0PEFYTGluZUNsaWNrRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IGxpbmVEYkNsaWNrID0gbmV3IFN1YmplY3Q8QVhMaW5lQ2xpY2tFdmVudD4oKTtcbiAgcmVhZG9ubHkgbm9kZUNsaWNrID0gbmV3IFN1YmplY3Q8QVhOb2RlQ2xpY2tFdmVudD4oKTtcbiAgcmVhZG9ubHkgbm9kZURiQ2xpY2sgPSBuZXcgU3ViamVjdDxBWE5vZGVDbGlja0V2ZW50PigpO1xuICByZWFkb25seSBvbkVkZ2VVcGRhdGUgPSBuZXcgU3ViamVjdDxBWEZsb3dDaGFydEVkZ2VzPigpO1xuICByZWFkb25seSBvbk5vZGVVcGRhdGUgPSBuZXcgU3ViamVjdDxBWEZsb3dDaGFydE5vZGVzPigpO1xuXG4gIHByaXZhdGUgbm9kZXNNYXAgPSBuZXcgTWFwPHN0cmluZywgSFRNTEVsZW1lbnRXaXRoRGF0YXNldD4oKTtcbiAgcHJpdmF0ZSBldmVudExpc3RlbmVycyA9IG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBFdmVudExpc3RlbmVyPj4oKTtcbiAgcHJpdmF0ZSBhbmNob3JDbGlja0J1ZmZlcjogeyBub2RlSWQ6IHN0cmluZzsgYW5jaG9yOiBzdHJpbmcgfSB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgY3VycmVudENvbm5lY3Rpb246IHtcbiAgICBzb3VyY2U/OiB7IGlkOiBzdHJpbmc7IGFuY2hvcjogc3RyaW5nIH07XG4gICAgdGFyZ2V0PzogeyBpZDogc3RyaW5nOyBhbmNob3I6IHN0cmluZyB9O1xuICAgIG1vdXNlPzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuICB9IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZHJhZ2dpbmdDb25uZWN0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdGVtcExpbmU6IFNWR0xpbmVFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgI2VmZjIgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGlzLmluaXRpYWxGbG93Q2hhcnRFZGdlKCkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmRyYXdFZGdlcyh0aGlzLmluaXRpYWxGbG93Q2hhcnRFZGdlKCkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcblxuICAjZWZmMyA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbEZsb3dDaGFydE5vZGUoKSkge1xuICAgICAgdGhpcy5jcmVhdGVOb2RlKHRoaXMuaW5pdGlhbEZsb3dDaGFydE5vZGUoKSk7XG4gICAgfVxuICB9KTtcblxuICBwcml2YXRlIGFkZEV2ZW50TGlzdGVuZXIoZWxlbWVudDogSFRNTEVsZW1lbnQsIGV2ZW50OiBzdHJpbmcsIGhhbmRsZXI6IEV2ZW50TGlzdGVuZXIpIHtcbiAgICBjb25zdCBlbGVtZW50SWQgPSBlbGVtZW50LmRhdGFzZXRbJ2lkJ10gfHwgJ2dsb2JhbCc7XG4gICAgaWYgKCF0aGlzLmV2ZW50TGlzdGVuZXJzLmhhcyhlbGVtZW50SWQpKSB7XG4gICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnNldChlbGVtZW50SWQsIG5ldyBNYXAoKSk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudExpc3RlbmVycyA9IHRoaXMuZXZlbnRMaXN0ZW5lcnMuZ2V0KGVsZW1lbnRJZCk7XG4gICAgaWYgKGVsZW1lbnRMaXN0ZW5lcnMpIHtcbiAgICAgIGNvbnN0IGJvdW5kSGFuZGxlciA9IGhhbmRsZXIuYmluZCh0aGlzKTtcbiAgICAgIGVsZW1lbnRMaXN0ZW5lcnMuc2V0KGV2ZW50LCBib3VuZEhhbmRsZXIpO1xuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBib3VuZEhhbmRsZXIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRXZlbnRMaXN0ZW5lcnMoZWxlbWVudElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBlbGVtZW50TGlzdGVuZXJzID0gdGhpcy5ldmVudExpc3RlbmVycy5nZXQoZWxlbWVudElkKTtcbiAgICBpZiAoZWxlbWVudExpc3RlbmVycykge1xuICAgICAgZWxlbWVudExpc3RlbmVycy5mb3JFYWNoKChoYW5kbGVyLCBldmVudCkgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5ub2Rlc01hcC5nZXQoZWxlbWVudElkKTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuZGVsZXRlKGVsZW1lbnRJZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cE5vZGVFdmVudExpc3RlbmVycyhcbiAgICBlbDogSFRNTEVsZW1lbnRXaXRoRGF0YXNldCxcbiAgICBub2RlOiB7IGlkOiBzdHJpbmc7IHR5cGU6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSxcbiAgKSB7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGVsLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcbiAgICAgIHRoaXMubm9kZUNsaWNrLm5leHQoeyB0YXJnZXQ6IGVsLCBldmVudDogZSBhcyBNb3VzZUV2ZW50IH0pO1xuICAgICAgdGhpcy5zZWxlY3RlZE5vZGUuc2V0KG5vZGUpO1xuICAgICAgZWwuY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTtcbiAgICAgIHRoaXMubm9kZXNNYXAuZm9yRWFjaCgoZXhpc3RpbmdOb2RlKSA9PiB7XG4gICAgICAgIGlmIChleGlzdGluZ05vZGUgIT09IGVsKSB7XG4gICAgICAgICAgZXhpc3RpbmdOb2RlLmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGVsLCAnZGJsY2xpY2snLCAoZTogRXZlbnQpID0+IHtcbiAgICAgIHRoaXMubm9kZURiQ2xpY2submV4dCh7IHRhcmdldDogZWwsIGV2ZW50OiBlIGFzIE1vdXNlRXZlbnQgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZWwsICdtb3VzZWVudGVyJywgKCkgPT4ge1xuICAgICAgZWwuY2xhc3NMaXN0LmFkZCgnaG92ZXInKTtcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihlbCwgJ21vdXNlbGVhdmUnLCAoKSA9PiB7XG4gICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKCdob3ZlcicpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEFuY2hvckV2ZW50TGlzdGVuZXJzKGRvdDogSFRNTEVsZW1lbnRXaXRoRGF0YXNldCwgZWw6IEhUTUxFbGVtZW50V2l0aERhdGFzZXQpIHtcbiAgICAvLyBzdGFydCBkcmFnIHRvIGNvbm5lY3RcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZG90LCAnbW91c2Vkb3duJywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBtb3VzZUV2ZW50ID0gZSBhcyBNb3VzZUV2ZW50O1xuICAgICAgbW91c2VFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIG1vdXNlRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0QW5jaG9yUG9pbnQoZWwsIGRvdC5kYXRhc2V0WydhbmNob3InXSk7XG5cbiAgICAgIHRoaXMuY3VycmVudENvbm5lY3Rpb24gPSB7XG4gICAgICAgIHNvdXJjZToge1xuICAgICAgICAgIGlkOiBkb3QuZGF0YXNldFsnbm9kZUlkJ10sXG4gICAgICAgICAgYW5jaG9yOiBkb3QuZGF0YXNldFsnYW5jaG9yJ10sXG4gICAgICAgIH0sXG4gICAgICAgIG1vdXNlOiB7IHg6IG1vdXNlRXZlbnQuY2xpZW50WCwgeTogbW91c2VFdmVudC5jbGllbnRZIH0sXG4gICAgICB9O1xuXG4gICAgICB0aGlzLnN0YXJ0VGVtcExpbmUocG9zLngsIHBvcy55KTtcbiAgICAgIHRoaXMuZHJhZ2dpbmdDb25uZWN0aW9uID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihkb3QsICdjbGljaycsIChlOiBFdmVudCkgPT4ge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgaWYgKGRvdC5jbGFzc0xpc3QuY29udGFpbnMoJ3NlbGVjdGVkJykpIHtcbiAgICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb3QuY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2xpY2tlZCA9IHtcbiAgICAgICAgbm9kZUlkOiBkb3QuZGF0YXNldFsnbm9kZUlkJ10sXG4gICAgICAgIGFuY2hvcjogZG90LmRhdGFzZXRbJ2FuY2hvciddLFxuICAgICAgfTtcblxuICAgICAgY29uc29sZS5sb2coY2xpY2tlZCk7XG5cbiAgICAgIGlmICghdGhpcy5hbmNob3JDbGlja0J1ZmZlcikge1xuICAgICAgICB0aGlzLmFuY2hvckNsaWNrQnVmZmVyID0gY2xpY2tlZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuYW5jaG9yQ2xpY2tCdWZmZXI7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGNsaWNrZWQ7XG5cbiAgICAgICAgaWYgKHNvdXJjZS5ub2RlSWQgIT09IHRhcmdldC5ub2RlSWQpIHtcbiAgICAgICAgICB0aGlzLnB1c2hBbmRDcmVhdGVFZGdlRGF0YShcbiAgICAgICAgICAgIHsgaWQ6IHNvdXJjZS5ub2RlSWQsIGFuY2hvcjogc291cmNlLmFuY2hvciB9LFxuICAgICAgICAgICAgeyBpZDogdGFyZ2V0Lm5vZGVJZCwgYW5jaG9yOiB0YXJnZXQuYW5jaG9yIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYW5jaG9yQ2xpY2tCdWZmZXIgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGRvdCwgJ21vdXNlZW50ZXInLCAoKSA9PiB7XG4gICAgICBkb3QuY2xhc3NMaXN0LmFkZCgnaG92ZXInKTtcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihkb3QsICdtb3VzZWxlYXZlJywgKCkgPT4ge1xuICAgICAgZG90LmNsYXNzTGlzdC5yZW1vdmUoJ2hvdmVyJyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEFuY2hvcnMoZWw6IEhUTUxFbGVtZW50V2l0aERhdGFzZXQsIHR5cGU6IHN0cmluZykge1xuICAgIFsndG9wJywgJ2JvdHRvbScsICdsZWZ0JywgJ3JpZ2h0J10uZm9yRWFjaCgoYW5jaG9yKSA9PiB7XG4gICAgICBjb25zdCBkb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSBhcyBIVE1MRWxlbWVudFdpdGhEYXRhc2V0O1xuICAgICAgZG90LmNsYXNzTmFtZSA9ICdheC1mbG93LWNoYXJ0LWFuY2hvcic7XG4gICAgICBkb3QuZGF0YXNldFsnYW5jaG9yJ10gPSBhbmNob3I7XG4gICAgICBkb3QuZGF0YXNldFsnbm9kZUlkJ10gPSBlbC5kYXRhc2V0WydpZCddO1xuXG4gICAgICB0aGlzLnBvc2l0aW9uQW5jaG9yKGRvdCwgYW5jaG9yLCB0eXBlKTtcbiAgICAgIGVsLmFwcGVuZENoaWxkKGRvdCk7XG5cbiAgICAgIHRoaXMuc2V0dXBBbmNob3JFdmVudExpc3RlbmVycyhkb3QsIGVsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFrZURyYWdnYWJsZShlbDogSFRNTEVsZW1lbnQpIHtcbiAgICBsZXQgb2Zmc2V0WCA9IDAsXG4gICAgICBvZmZzZXRZID0gMCxcbiAgICAgIGlzRHJhZ2dpbmcgPSBmYWxzZTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihlbCwgJ21vdXNlZG93bicsIChlOiBFdmVudCkgPT4ge1xuICAgICAgY29uc3QgbW91c2VFdmVudCA9IGUgYXMgTW91c2VFdmVudDtcbiAgICAgIGlmICgobW91c2VFdmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5jb250YWlucygnYXgtZmxvdy1jaGFydC1hbmNob3InKSkgcmV0dXJuO1xuICAgICAgaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgICBvZmZzZXRYID0gbW91c2VFdmVudC5jbGllbnRYIC0gZWwub2Zmc2V0TGVmdDtcbiAgICAgIG9mZnNldFkgPSBtb3VzZUV2ZW50LmNsaWVudFkgLSBlbC5vZmZzZXRUb3A7XG4gICAgICBtb3VzZUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBtb3VzZW1vdmVIYW5kbGVyID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmIChpc0RyYWdnaW5nKSB7XG4gICAgICAgIGVsLnN0eWxlLmxlZnQgPSBlLmNsaWVudFggLSBvZmZzZXRYICsgJ3B4JztcbiAgICAgICAgZWwuc3R5bGUudG9wID0gZS5jbGllbnRZIC0gb2Zmc2V0WSArICdweCc7XG4gICAgICAgIHRoaXMuZHJhd0VkZ2VzKHRoaXMuaW5pdGlhbEZsb3dDaGFydEVkZ2UoKSk7XG5cbiAgICAgICAgdGhpcy5pbml0aWFsRmxvd0NoYXJ0Tm9kZS51cGRhdGUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgbm9kZSA9IHZhbHVlLmZpbmQoKG5vZGUpID0+IG5vZGUuaWQgPT09IGVsLmRhdGFzZXRbJ2lkJ10pO1xuICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICBub2RlLnggPSBlLmNsaWVudFggLSBvZmZzZXRYO1xuICAgICAgICAgICAgbm9kZS55ID0gZS5jbGllbnRZIC0gb2Zmc2V0WTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZWxlbWVudElkID0gKGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5pZDtcbiAgICAgIGlmIChlbGVtZW50SWQgPT09ICdheC1mbG93LWNoYXJ0LXJlbmRlcmVyLWNvbm5lY3Rpb25zJyB8fCBlbGVtZW50SWQgPT09ICdheC1mbG93LWNoYXJ0LXJlbmRlcmVyLWNhbnZhcycpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ2dpbmdDb25uZWN0aW9uICYmIHRoaXMudGVtcExpbmUpIHtcbiAgICAgICAgICB0aGlzLnRlbXBMaW5lLnNldEF0dHJpYnV0ZSgneDInLCBlLm9mZnNldFgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgdGhpcy50ZW1wTGluZS5zZXRBdHRyaWJ1dGUoJ3kyJywgZS5vZmZzZXRZLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IG1vdXNldXBIYW5kbGVyID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmRyYWdnaW5nQ29ubmVjdGlvbikge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSAoZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5heC1mbG93LWNoYXJ0LWFuY2hvcicpIGFzIEhUTUxFbGVtZW50V2l0aERhdGFzZXQ7XG4gICAgICAgIGlmICh0YXJnZXQgJiYgdGFyZ2V0LmRhdGFzZXRbJ25vZGVJZCddICE9PSB0aGlzLmN1cnJlbnRDb25uZWN0aW9uPy5zb3VyY2U/LmlkKSB7XG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29ubmVjdGlvbiA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuY3VycmVudENvbm5lY3Rpb24sXG4gICAgICAgICAgICB0YXJnZXQ6IHtcbiAgICAgICAgICAgICAgaWQ6IHRhcmdldC5kYXRhc2V0Wydub2RlSWQnXSxcbiAgICAgICAgICAgICAgYW5jaG9yOiB0YXJnZXQuZGF0YXNldFsnYW5jaG9yJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5maW5pc2hDb25uZWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbGVhclRlbXBMaW5lKCk7XG4gICAgICAgIHRoaXMuZHJhZ2dpbmdDb25uZWN0aW9uID0gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIEFkZCBnbG9iYWwgZXZlbnQgbGlzdGVuZXJzXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdXNlbW92ZUhhbmRsZXIpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIG1vdXNldXBIYW5kbGVyKTtcbiAgICB9KTtcblxuICAgIC8vIFN0b3JlIGdsb2JhbCBsaXN0ZW5lcnNcbiAgICBjb25zdCBnbG9iYWxMaXN0ZW5lcnMgPSB0aGlzLmV2ZW50TGlzdGVuZXJzLmdldCgnZ2xvYmFsJyk7XG4gICAgaWYgKGdsb2JhbExpc3RlbmVycykge1xuICAgICAgZ2xvYmFsTGlzdGVuZXJzLnNldCgnbW91c2Vtb3ZlJywgbW91c2Vtb3ZlSGFuZGxlciBhcyBFdmVudExpc3RlbmVyKTtcbiAgICAgIGdsb2JhbExpc3RlbmVycy5zZXQoJ21vdXNldXAnLCBtb3VzZXVwSGFuZGxlciBhcyBFdmVudExpc3RlbmVyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBvc2l0aW9uQW5jaG9yKGRvdDogSFRNTEVsZW1lbnQsIGFuY2hvcjogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcbiAgICBpZiAodHlwZSAhPT0gJ2RpYW1vbmQnKSB7XG4gICAgICBzd2l0Y2ggKGFuY2hvcikge1xuICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgIGRvdC5zdHlsZS50b3AgPSAnMCUnO1xuICAgICAgICAgIGRvdC5zdHlsZS5sZWZ0ID0gJzUwJSc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgZG90LnN0eWxlLnRvcCA9ICcxMDAlJztcbiAgICAgICAgICBkb3Quc3R5bGUubGVmdCA9ICc1MCUnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICBkb3Quc3R5bGUudG9wID0gJzUwJSc7XG4gICAgICAgICAgZG90LnN0eWxlLmxlZnQgPSAnMCUnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgZG90LnN0eWxlLnRvcCA9ICc1MCUnO1xuICAgICAgICAgIGRvdC5zdHlsZS5sZWZ0ID0gJzEwMCUnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKGFuY2hvcikge1xuICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgIGRvdC5zdHlsZS50b3AgPSAnMCUnO1xuICAgICAgICAgIGRvdC5zdHlsZS5sZWZ0ID0gJzAlJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICBkb3Quc3R5bGUudG9wID0gJzEwMCUnO1xuICAgICAgICAgIGRvdC5zdHlsZS5sZWZ0ID0gJzEwMCUnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICBkb3Quc3R5bGUudG9wID0gJzEwMCUnO1xuICAgICAgICAgIGRvdC5zdHlsZS5sZWZ0ID0gJzAlJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIGRvdC5zdHlsZS50b3AgPSAnMCUnO1xuICAgICAgICAgIGRvdC5zdHlsZS5sZWZ0ID0gJzEwMCUnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QW5jaG9yUG9pbnQoZWw6IEhUTUxFbGVtZW50LCBhbmNob3I6IHN0cmluZyk6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB7XG4gICAgY29uc3QgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGNlbnRlclggPSBlbC5vZmZzZXRMZWZ0ICsgcmVjdC53aWR0aCAvIDI7XG4gICAgY29uc3QgY2VudGVyWSA9IGVsLm9mZnNldFRvcCArIHJlY3QuaGVpZ2h0IC8gMjtcblxuICAgIHN3aXRjaCAoYW5jaG9yKSB7XG4gICAgICBjYXNlICd0b3AnOlxuICAgICAgICByZXR1cm4geyB4OiBjZW50ZXJYLCB5OiBlbC5vZmZzZXRUb3AgfTtcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgIHJldHVybiB7IHg6IGNlbnRlclgsIHk6IGVsLm9mZnNldFRvcCArIHJlY3QuaGVpZ2h0IH07XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgcmV0dXJuIHsgeDogZWwub2Zmc2V0TGVmdCwgeTogY2VudGVyWSB9O1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICByZXR1cm4geyB4OiBlbC5vZmZzZXRMZWZ0ICsgcmVjdC53aWR0aCwgeTogY2VudGVyWSB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHsgeDogY2VudGVyWCwgeTogY2VudGVyWSB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRUZW1wTGluZSh4OiBudW1iZXIsIHk6IG51bWJlcikge1xuICAgIGNvbnN0IHN2Z0VsZW1lbnQgPSB0aGlzLnN2Z1NlcnZpY2UoKT8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghc3ZnRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgdGhpcy50ZW1wTGluZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAnbGluZScpO1xuICAgIHRoaXMudGVtcExpbmUuc2V0QXR0cmlidXRlKCd4MScsIHgudG9TdHJpbmcoKSk7XG4gICAgdGhpcy50ZW1wTGluZS5zZXRBdHRyaWJ1dGUoJ3kxJywgeS50b1N0cmluZygpKTtcbiAgICB0aGlzLnRlbXBMaW5lLnNldEF0dHJpYnV0ZSgneDInLCB4LnRvU3RyaW5nKCkpO1xuICAgIHRoaXMudGVtcExpbmUuc2V0QXR0cmlidXRlKCd5MicsIHkudG9TdHJpbmcoKSk7XG4gICAgdGhpcy50ZW1wTGluZS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZScsICdyZ2JhKHZhcigtLWF4LXN5cy1jb2xvci1vbi1saWdodGVzdC1zdXJmYWNlKSwwLjUpJyk7XG4gICAgdGhpcy50ZW1wTGluZS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS13aWR0aCcsICcyJyk7XG4gICAgdGhpcy50ZW1wTGluZS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS1kYXNoYXJyYXknLCAnNCcpO1xuICAgIHN2Z0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy50ZW1wTGluZSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyVGVtcExpbmUoKSB7XG4gICAgaWYgKHRoaXMudGVtcExpbmUgJiYgdGhpcy50ZW1wTGluZS5wYXJlbnRFbGVtZW50KSB7XG4gICAgICB0aGlzLnN2Z1NlcnZpY2UoKT8ubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLnRlbXBMaW5lKTtcbiAgICAgIHRoaXMudGVtcExpbmUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHVzaEFuZENyZWF0ZUVkZ2VEYXRhKHNvdXJjZTogeyBpZDogc3RyaW5nOyBhbmNob3I6IHN0cmluZyB9LCB0YXJnZXQ6IHsgaWQ6IHN0cmluZzsgYW5jaG9yOiBzdHJpbmcgfSkge1xuICAgIGNvbnN0IG5ld0VkZ2UgPSB7XG4gICAgICBpZDogYGVkZ2UtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCl9YCxcbiAgICAgIHNvdXJjZSxcbiAgICAgIHRhcmdldCxcbiAgICB9O1xuXG4gICAgdGhpcy5vbkVkZ2VVcGRhdGUubmV4dChuZXdFZGdlKTtcbiAgICB0aGlzLmluaXRpYWxGbG93Q2hhcnRFZGdlLnVwZGF0ZSgodmFsdWUpID0+IFsuLi52YWx1ZSwgbmV3RWRnZV0pO1xuICAgIHRoaXMuZHJhd0VkZ2VzKCk7XG4gIH1cblxuICBkcmF3RWRnZXMoZWRnZXM/OiBBWEZsb3dDaGFydEVkZ2VzW10pIHtcbiAgICBjb25zdCBzdmcgPSB0aGlzLnN2Z1NlcnZpY2UoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIXN2ZykgcmV0dXJuO1xuXG4gICAgLy8gQ2xlYXIgZXhpc3RpbmcgZWRnZXNcbiAgICBzdmcuaW5uZXJIVE1MID0gJyc7XG5cbiAgICAvLyBVc2UgcHJvdmlkZWQgZWRnZXMgb3IgZ2V0IGZyb20gc2lnbmFsXG4gICAgY29uc3QgZWRnZXNUb0RyYXcgPSBlZGdlcyB8fCB0aGlzLmluaXRpYWxGbG93Q2hhcnRFZGdlKCk7XG5cbiAgICBlZGdlc1RvRHJhdy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2VOb2RlID0gdGhpcy5ub2Rlc01hcC5nZXQoZWRnZS5zb3VyY2UuaWQpO1xuICAgICAgY29uc3QgdGFyZ2V0Tm9kZSA9IHRoaXMubm9kZXNNYXAuZ2V0KGVkZ2UudGFyZ2V0LmlkKTtcblxuICAgICAgaWYgKHNvdXJjZU5vZGUpIHtcbiAgICAgICAgY29uc3Qgc291cmNlQW5jaG9yID0gc291cmNlTm9kZS5xdWVyeVNlbGVjdG9yKGBbZGF0YS1hbmNob3I9XCIke2VkZ2Uuc291cmNlLmFuY2hvcn1cIl1gKTtcbiAgICAgICAgaWYgKHNvdXJjZUFuY2hvcikgc291cmNlQW5jaG9yLmNsYXNzTGlzdC5hZGQoJ3NlbGVjdGVkJyk7XG4gICAgICB9XG4gICAgICBpZiAodGFyZ2V0Tm9kZSkge1xuICAgICAgICBjb25zdCB0YXJnZXRBbmNob3IgPSB0YXJnZXROb2RlLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWFuY2hvcj1cIiR7ZWRnZS50YXJnZXQuYW5jaG9yfVwiXWApO1xuICAgICAgICBpZiAodGFyZ2V0QW5jaG9yKSB0YXJnZXRBbmNob3IuY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNvdXJjZU5vZGUgJiYgdGFyZ2V0Tm9kZSkge1xuICAgICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHRoaXMuZ2V0QW5jaG9yUG9pbnQoc291cmNlTm9kZSwgZWRnZS5zb3VyY2UuYW5jaG9yKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0UG9pbnQgPSB0aGlzLmdldEFuY2hvclBvaW50KHRhcmdldE5vZGUsIGVkZ2UudGFyZ2V0LmFuY2hvcik7XG5cbiAgICAgICAgY29uc3QgbGluZSA9IHRoaXMuY3JlYXRlTGluZShzb3VyY2VQb2ludCwgdGFyZ2V0UG9pbnQsIGVkZ2UpO1xuICAgICAgICBsaW5lLmNsYXNzTGlzdC5hZGQoJ2F4LWZsb3ctY2hhcnQtbGluZScpO1xuXG4gICAgICAgIC8vIEFkZCBjbGljayBldmVudCBsaXN0ZW5lciBmb3IgbGluZSBzZWxlY3Rpb25cbiAgICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGxpbmUgYXMgdW5rbm93biBhcyBIVE1MRWxlbWVudCwgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB0aGlzLmxpbmVDbGljay5uZXh0KHsgdGFyZ2V0OiBlZGdlLCBldmVudDogZSBhcyBNb3VzZUV2ZW50IH0pO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFZGdlLnNldChlZGdlKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZS5zZXQobnVsbCk7XG4gICAgICAgICAgLy8gUmVtb3ZlIHNlbGVjdGlvbiBmcm9tIGFsbCBvdGhlciBsaW5lc1xuICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5heC1mbG93LWNoYXJ0LWxpbmUnKS5mb3JFYWNoKChsKSA9PiB7XG4gICAgICAgICAgICBpZiAobCAhPT0gbGluZSkgbC5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIEFkZCBzZWxlY3Rpb24gdG8gY2xpY2tlZCBsaW5lXG4gICAgICAgICAgbGluZS5jbGFzc0xpc3QuYWRkKCdzZWxlY3RlZCcpO1xuICAgICAgICAgIC8vIFJlbW92ZSBzZWxlY3Rpb24gZnJvbSBhbGwgbm9kZXNcbiAgICAgICAgICB0aGlzLm5vZGVzTWFwLmZvckVhY2goKG5vZGUpID0+IG5vZGUuY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0ZWQnKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN2Zy5hcHBlbmRDaGlsZChsaW5lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUxpbmUoZnJvbTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9LCB0bzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9LCBlZGdlOiBBWEZsb3dDaGFydEVkZ2VzKSB7XG4gICAgY29uc3QgbGluZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLCAnbGluZScpO1xuICAgIGxpbmUuc2V0QXR0cmlidXRlKCd4MScsIGZyb20ueC50b1N0cmluZygpKTtcbiAgICBsaW5lLnNldEF0dHJpYnV0ZSgneTEnLCBmcm9tLnkudG9TdHJpbmcoKSk7XG4gICAgbGluZS5zZXRBdHRyaWJ1dGUoJ3gyJywgdG8ueC50b1N0cmluZygpKTtcbiAgICBsaW5lLnNldEF0dHJpYnV0ZSgneTInLCB0by55LnRvU3RyaW5nKCkpO1xuICAgIGxpbmUuc2V0QXR0cmlidXRlKCdzdHJva2UnLCAncmdiYSh2YXIoLS1heC1zeXMtY29sb3Itb24tc3VyZmFjZSkpJyk7XG4gICAgbGluZS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS13aWR0aCcsICczJyk7XG4gICAgbGluZS5jbGFzc0xpc3QuYWRkKCdheC1mbG93LWNoYXJ0LWxpbmUnKTtcbiAgICBsaW5lLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMubGluZUNsaWNrLm5leHQoeyB0YXJnZXQ6IGVkZ2UsIGV2ZW50OiBlIH0pO1xuICAgICAgdGhpcy5zZWxlY3RlZEVkZ2Uuc2V0KGVkZ2UpO1xuICAgIH0pO1xuICAgIGxpbmUuYWRkRXZlbnRMaXN0ZW5lcignZGJsY2xpY2snLCAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5saW5lRGJDbGljay5uZXh0KHsgdGFyZ2V0OiBlZGdlLCBldmVudDogZSB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gbGluZTtcbiAgfVxuXG4gIHByaXZhdGUgZmluaXNoQ29ubmVjdGlvbigpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50Q29ubmVjdGlvbj8uc291cmNlICYmIHRoaXMuY3VycmVudENvbm5lY3Rpb24/LnRhcmdldCkge1xuICAgICAgdGhpcy5wdXNoQW5kQ3JlYXRlRWRnZURhdGEodGhpcy5jdXJyZW50Q29ubmVjdGlvbi5zb3VyY2UsIHRoaXMuY3VycmVudENvbm5lY3Rpb24udGFyZ2V0KTtcbiAgICB9XG4gICAgdGhpcy5jdXJyZW50Q29ubmVjdGlvbiA9IG51bGw7XG4gIH1cblxuICByZW1vdmVFZGdlKGVkZ2U6IEFYRmxvd0NoYXJ0RWRnZXMpIHtcbiAgICB0aGlzLmluaXRpYWxGbG93Q2hhcnRFZGdlLnVwZGF0ZSgodmFsdWUpID0+IHZhbHVlLmZpbHRlcigoZSkgPT4gZS5pZCAhPT0gZWRnZS5pZCkpO1xuXG4gICAgLy8gUmVtb3ZlIHNlbGVjdGVkIGNsYXNzIGZyb20gY29ubmVjdGVkIGFuY2hvcnNcbiAgICBjb25zdCBzb3VyY2VOb2RlID0gdGhpcy5ub2Rlc01hcC5nZXQoZWRnZS5zb3VyY2UuaWQpO1xuICAgIGNvbnN0IHRhcmdldE5vZGUgPSB0aGlzLm5vZGVzTWFwLmdldChlZGdlLnRhcmdldC5pZCk7XG5cbiAgICBpZiAoc291cmNlTm9kZSkge1xuICAgICAgY29uc3Qgc291cmNlQW5jaG9yID0gc291cmNlTm9kZS5xdWVyeVNlbGVjdG9yKGBbZGF0YS1hbmNob3I9XCIke2VkZ2Uuc291cmNlLmFuY2hvcn1cIl1gKTtcbiAgICAgIGlmIChzb3VyY2VBbmNob3IpIHNvdXJjZUFuY2hvci5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpO1xuICAgIH1cblxuICAgIGlmICh0YXJnZXROb2RlKSB7XG4gICAgICBjb25zdCB0YXJnZXRBbmNob3IgPSB0YXJnZXROb2RlLnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWFuY2hvcj1cIiR7ZWRnZS50YXJnZXQuYW5jaG9yfVwiXWApO1xuICAgICAgaWYgKHRhcmdldEFuY2hvcikgdGFyZ2V0QW5jaG9yLmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJyk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlTm9kZShub2RlczogeyBpZDogc3RyaW5nOyB0eXBlOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHg6IG51bWJlcjsgeTogbnVtYmVyIH1bXSkge1xuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5heC1mbG93LWNoYXJ0LW5vZGUnKT8uZm9yRWFjaCgobm9kZSkgPT4gbm9kZS5yZW1vdmUoKSk7XG5cbiAgICBub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpIGFzIEhUTUxFbGVtZW50V2l0aERhdGFzZXQ7XG4gICAgICBjb25zdCBwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpIGFzIEhUTUxFbGVtZW50V2l0aERhdGFzZXQ7XG4gICAgICBwLmlubmVyVGV4dCA9IG5vZGUubGFiZWw7XG4gICAgICBlbC5hcHBlbmRDaGlsZChwKTtcbiAgICAgIGVsLmNsYXNzTmFtZSA9ICdheC1mbG93LWNoYXJ0LW5vZGUnO1xuICAgICAgZWwuY2xhc3NMaXN0LmFkZChgYXgtJHtub2RlLnR5cGV9YCk7XG4gICAgICBlbC5zdHlsZS5sZWZ0ID0gbm9kZS54ICsgJ3B4JztcbiAgICAgIGVsLnN0eWxlLnRvcCA9IG5vZGUueSArICdweCc7XG4gICAgICBlbC5kYXRhc2V0WydpZCddID0gbm9kZS5pZDtcblxuICAgICAgdGhpcy5hZGRBbmNob3JzKGVsLCBub2RlLnR5cGUpO1xuICAgICAgdGhpcy5tYWtlRHJhZ2dhYmxlKGVsKTtcbiAgICAgIHRoaXMuc2V0dXBOb2RlRXZlbnRMaXN0ZW5lcnMoZWwsIG5vZGUpO1xuXG4gICAgICB0aGlzLmNhbnZhc1NlcnZpY2UoKS5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGVsKTtcbiAgICAgIHRoaXMubm9kZXNNYXAuc2V0KG5vZGUuaWQsIGVsKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZU5vZGUobm9kZUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmluaXRpYWxGbG93Q2hhcnROb2RlLnVwZGF0ZSgodmFsdWUpID0+IHZhbHVlLmZpbHRlcigoZSkgPT4gZS5pZCAhPT0gbm9kZUlkKSk7XG5cbiAgICB0aGlzLmluaXRpYWxGbG93Q2hhcnRFZGdlKCkuZm9yRWFjaCgoZWRnZSkgPT4ge1xuICAgICAgaWYgKGVkZ2Uuc291cmNlLmlkID09PSBub2RlSWQgfHwgZWRnZS50YXJnZXQuaWQgPT09IG5vZGVJZCkge1xuICAgICAgICB0aGlzLnJlbW92ZUVkZ2UoZWRnZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1pZD1cIiR7bm9kZUlkfVwiXWApPy5yZW1vdmUoKTtcbiAgICB0aGlzLmFuY2hvckNsaWNrQnVmZmVyID0gbnVsbDtcbiAgfVxuXG4gIGNsZWFudXAoKSB7XG4gICAgdGhpcy5ub2Rlc01hcC5mb3JFYWNoKChfLCBpZCkgPT4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVycyhpZCkpO1xuICAgIHRoaXMubm9kZXNNYXAuY2xlYXIoKTtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXFlowChartService } from '../flow-chart.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/text-box\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@angular/forms\";\nexport class AXFlowChartCreatorComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.service = inject(AXFlowChartService);\n this.selectedShape = signal('rectangle');\n this.label = 'Label';\n }\n selectShapeHandler(shape) {\n this.selectedShape.set(shape);\n }\n 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 printChart() {\n const printWindow = window.open('', '_blank');\n if (!printWindow)\n return;\n const canvas = this.service.canvasService()?.nativeElement;\n if (!canvas)\n return;\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 }\n catch (e) {\n return '';\n }\n })\n .join('\\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 // 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 printWindow.document.write(printContent);\n printWindow.document.close();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartCreatorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: AXFlowChartCreatorComponent, isStandalone: true, selector: \"ax-flow-chart-creator\", providers: [{ provide: AXComponent, useExisting: AXFlowChartCreatorComponent }], usesInheritance: true, ngImport: i0, template: \"<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\", styles: [\"ax-flow-chart-creator{display:flex;gap:1rem;align-items:center;padding:1rem}ax-flow-chart-creator .ax-shape-container{display:flex;gap:1rem}ax-flow-chart-creator .ax-shape-container .ax-shape-selected{border:2px solid rgba(var(--ax-sys-color-danger-darker-surface))!important}ax-flow-chart-creator .ax-shape-container .ax-rectangle,ax-flow-chart-creator .ax-shape-container .ax-circle,ax-flow-chart-creator .ax-shape-container .ax-diamond{border:2px solid rgba(var(--ax-sys-color-border-surface));display:flex;justify-content:center;align-items:center;width:30px;height:30px;cursor:pointer}ax-flow-chart-creator .ax-shape-container .ax-circle{border-radius:1000vmax;aspect-ratio:1}ax-flow-chart-creator .ax-shape-container .ax-diamond{transform:rotate(45deg) scale(.75);aspect-ratio:1}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"component\", type: i1.AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.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: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i3.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i4.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i4.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartCreatorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-flow-chart-creator', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXTextBoxModule, AXButtonModule, CommonModule, FormsModule], providers: [{ provide: AXComponent, useExisting: AXFlowChartCreatorComponent }], template: \"<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\", styles: [\"ax-flow-chart-creator{display:flex;gap:1rem;align-items:center;padding:1rem}ax-flow-chart-creator .ax-shape-container{display:flex;gap:1rem}ax-flow-chart-creator .ax-shape-container .ax-shape-selected{border:2px solid rgba(var(--ax-sys-color-danger-darker-surface))!important}ax-flow-chart-creator .ax-shape-container .ax-rectangle,ax-flow-chart-creator .ax-shape-container .ax-circle,ax-flow-chart-creator .ax-shape-container .ax-diamond{border:2px solid rgba(var(--ax-sys-color-border-surface));display:flex;justify-content:center;align-items:center;width:30px;height:30px;cursor:pointer}ax-flow-chart-creator .ax-shape-container .ax-circle{border-radius:1000vmax;aspect-ratio:1}ax-flow-chart-creator .ax-shape-container .ax-diamond{transform:rotate(45deg) scale(.75);aspect-ratio:1}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jaGFydC1jcmVhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmxvdy1jaGFydC9zcmMvbGliL2Zsb3ctY2hhcnQtY3JlYXRvci9mbG93LWNoYXJ0LWNyZWF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mbG93LWNoYXJ0L3NyYy9saWIvZmxvdy1jaGFydC1jcmVhdG9yL2Zsb3ctY2hhcnQtY3JlYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQVczRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsV0FBVztJQVQ1RDs7UUFVRSxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0Isa0JBQWEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsVUFBSyxHQUFHLE9BQU8sQ0FBQztLQW1FM0I7SUFqRVcsa0JBQWtCLENBQUMsS0FBeUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixNQUFNLE9BQU8sR0FBRztZQUNkLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO1lBQzVCLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1NBQ0wsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFUyxVQUFVO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUV6QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLGFBQWEsQ0FBQztRQUMzRCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFcEIsaURBQWlEO1FBQ2pELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQzthQUM1QyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQztnQkFDSCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztxQkFDOUIsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO3FCQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEIsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1FBQ0gsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWQsd0NBQXdDO1FBQ3hDLE1BQU0sV0FBVyxHQUFHO1FBQ2hCLE1BQU07Ozs7S0FJVCxDQUFDO1FBRUYsK0NBQStDO1FBQy9DLE1BQU0sWUFBWSxHQUFHOzs7Ozs7Y0FNWCxXQUFXOzs7OztjQUtYLE1BQU0sQ0FBQyxTQUFTOzs7O0tBSXpCLENBQUM7UUFFRixXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6QyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9CLENBQUM7OEdBckVVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLG9FQUYzQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyxpRENmakYsZzFCQXFCQSw0MEJEUFksZUFBZSxxYkFBRSxjQUFjLDZYQUFFLFlBQVksNEhBQUUsV0FBVzs7MkZBR3pELDJCQUEyQjtrQkFUdkMsU0FBUzsrQkFDRSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUMsYUFDMUQsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyw2QkFBNkIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQsIE5YQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWEZsb3dDaGFydFNlcnZpY2UgfSBmcm9tICcuLi9mbG93LWNoYXJ0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1mbG93LWNoYXJ0LWNyZWF0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vZmxvdy1jaGFydC1jcmVhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmxvdy1jaGFydC1jcmVhdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhUZXh0Qm94TW9kdWxlLCBBWEJ1dHRvbk1vZHVsZSwgQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEZsb3dDaGFydENyZWF0b3JDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYRmxvd0NoYXJ0Q3JlYXRvckNvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IHtcbiAgc2VydmljZSA9IGluamVjdChBWEZsb3dDaGFydFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRTaGFwZSA9IHNpZ25hbCgncmVjdGFuZ2xlJyk7XG4gIHByb3RlY3RlZCBsYWJlbCA9ICdMYWJlbCc7XG5cbiAgcHJvdGVjdGVkIHNlbGVjdFNoYXBlSGFuZGxlcihzaGFwZTogJ3JlY3RhbmdsZScgfCAnY2lyY2xlJyB8ICdkaWFtb25kJykge1xuICAgIHRoaXMuc2VsZWN0ZWRTaGFwZS5zZXQoc2hhcGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVNoYXBlSGFuZGxlcigpIHtcbiAgICBjb25zdCBuZXdOb2RlID0ge1xuICAgICAgaWQ6IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKSxcbiAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRTaGFwZSgpLFxuICAgICAgbGFiZWw6IHRoaXMubGFiZWwsXG4gICAgICB4OiAwLFxuICAgICAgeTogMCxcbiAgICB9O1xuICAgIHRoaXMuc2VydmljZS5pbml0aWFsRmxvd0NoYXJ0Tm9kZS51cGRhdGUoKHZhbHVlKSA9PiBbLi4udmFsdWUsIG5ld05vZGVdKTtcbiAgICB0aGlzLnNlcnZpY2Uub25Ob2RlVXBkYXRlLm5leHQobmV3Tm9kZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJpbnRDaGFydCgpOiB2b2lkIHtcbiAgICBjb25zdCBwcmludFdpbmRvdyA9IHdpbmRvdy5vcGVuKCcnLCAnX2JsYW5rJyk7XG4gICAgaWYgKCFwcmludFdpbmRvdykgcmV0dXJuO1xuXG4gICAgY29uc3QgY2FudmFzID0gdGhpcy5zZXJ2aWNlLmNhbnZhc1NlcnZpY2UoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWNhbnZhcykgcmV0dXJuO1xuXG4gICAgLy8gR2V0IGFsbCBzdHlsZXMgZnJvbSB0aGUgZG9jdW1lbnQgYW5kIGNvbXBvbmVudFxuICAgIGNvbnN0IHN0eWxlcyA9IEFycmF5LmZyb20oZG9jdW1lbnQuc3R5bGVTaGVldHMpXG4gICAgICAubWFwKChzaGVldCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBBcnJheS5mcm9tKHNoZWV0LmNzc1J1bGVzKVxuICAgICAgICAgICAgLm1hcCgocnVsZSkgPT4gcnVsZS5jc3NUZXh0KVxuICAgICAgICAgICAgLmpvaW4oJ1xcbicpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmpvaW4oJ1xcbicpO1xuXG4gICAgLy8gQWRkIHByaW50LXNwZWNpZmljIHN0eWxlcyBmb3IgYW5jaG9yc1xuICAgIGNvbnN0IHByaW50U3R5bGVzID0gYFxuICAgICAgJHtzdHlsZXN9XG4gICAgICAuYXgtZmxvdy1jaGFydC1hbmNob3Ige1xuICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgYDtcblxuICAgIC8vIENyZWF0ZSB0aGUgcHJpbnQgY29udGVudCB3aXRoIHByb3BlciBzdHlsaW5nXG4gICAgY29uc3QgcHJpbnRDb250ZW50ID0gYFxuICAgICAgPCFET0NUWVBFIGh0bWw+XG4gICAgICA8aHRtbD5cbiAgICAgICAgPGhlYWQ+XG4gICAgICAgICAgPHRpdGxlPkZsb3cgQ2hhcnQgUHJpbnQ8L3RpdGxlPlxuICAgICAgICAgIDxzdHlsZT5cbiAgICAgICAgICAgICR7cHJpbnRTdHlsZXN9XG4gICAgICAgICAgPC9zdHlsZT5cbiAgICAgICAgPC9oZWFkPlxuICAgICAgICA8Ym9keT5cbiAgICAgICAgICA8YXgtZmxvdy1jaGFydC1yZW5kZXJlcj5cbiAgICAgICAgICAgICR7Y2FudmFzLm91dGVySFRNTH1cbiAgICAgICAgICA8L2F4LWZsb3ctY2hhcnQtcmVuZGVyZXI+XG4gICAgICAgIDwvYm9keT5cbiAgICAgIDwvaHRtbD5cbiAgICBgO1xuXG4gICAgcHJpbnRXaW5kb3cuZG9jdW1lbnQud3JpdGUocHJpbnRDb250ZW50KTtcbiAgICBwcmludFdpbmRvdy5kb2N1bWVudC5jbG9zZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtc2hhcGUtY29udGFpbmVyXCI+XG4gIDxkaXZcbiAgICBbbmdDbGFzc109XCJ7ICdheC1zaGFwZS1zZWxlY3RlZCc6IHNlbGVjdGVkU2hhcGUoKSA9PT0gJ3JlY3RhbmdsZScgfVwiXG4gICAgKGNsaWNrKT1cInNlbGVjdFNoYXBlSGFuZGxlcigncmVjdGFuZ2xlJylcIlxuICAgIGNsYXNzPVwiYXgtcmVjdGFuZ2xlXCJcbiAgPjwvZGl2PlxuICA8ZGl2XG4gICAgW25nQ2xhc3NdPVwieyAnYXgtc2hhcGUtc2VsZWN0ZWQnOiBzZWxlY3RlZFNoYXBlKCkgPT09ICdjaXJjbGUnIH1cIlxuICAgIChjbGljayk9XCJzZWxlY3RTaGFwZUhhbmRsZXIoJ2NpcmNsZScpXCJcbiAgICBjbGFzcz1cImF4LWNpcmNsZVwiXG4gID48L2Rpdj5cbiAgPGRpdlxuICAgIFtuZ0NsYXNzXT1cInsgJ2F4LXNoYXBlLXNlbGVjdGVkJzogc2VsZWN0ZWRTaGFwZSgpID09PSAnZGlhbW9uZCcgfVwiXG4gICAgKGNsaWNrKT1cInNlbGVjdFNoYXBlSGFuZGxlcignZGlhbW9uZCcpXCJcbiAgICBjbGFzcz1cImF4LWRpYW1vbmRcIlxuICA+PC9kaXY+XG48L2Rpdj5cbjxheC10ZXh0LWJveCBjbGFzcz1cImF4LXNtXCIgWyhuZ01vZGVsKV09XCJsYWJlbFwiIHBsYWNlaG9sZGVyPVwiTGFiZWxcIj4gPC9heC10ZXh0LWJveD5cblxuPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwiY3JlYXRlU2hhcGVIYW5kbGVyKClcIiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwiQ3JlYXRlXCI+PC9heC1idXR0b24+XG48YXgtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJQcmludFwiIGNsYXNzPVwiYXgtc21cIiAoY2xpY2spPVwicHJpbnRDaGFydCgpXCI+PC9heC1idXR0b24+XG4iXX0=","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, inject, output, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { AXFlowChartService } from '../flow-chart.service';\nimport * as i0 from \"@angular/core\";\nexport class AXFlowChartRendererComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.canvas = viewChild('canvas');\n this.svg = viewChild('connections');\n this.service = inject(AXFlowChartService);\n this.onLineClick = output();\n this.onLineDbClick = output();\n this.onNodeClick = output();\n this.onNodeDbClick = output();\n this.onEdgeUpdate = output();\n this.onNodeUpdate = output();\n this.#init = afterNextRender(() => {\n this.setupEventListeners();\n });\n this.#eff = effect(() => {\n if (this.canvas() && this.svg()) {\n this.initializeServices();\n }\n });\n }\n #init;\n #eff;\n setupEventListeners() {\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 initializeServices() {\n this.service.canvasService.set(this.canvas());\n this.service.svgService.set(this.svg());\n // Add click handlers for parent elements\n const canvas = this.canvas()?.nativeElement;\n const svg = this.svg()?.nativeElement;\n if (canvas) {\n canvas.addEventListener('click', (e) => {\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 if (svg) {\n svg.addEventListener('click', (e) => {\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 ngOnDestroy() {\n this.cleanup();\n }\n cleanup() {\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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.0.3\", type: AXFlowChartRendererComponent, isStandalone: true, selector: \"ax-flow-chart-renderer\", outputs: { onLineClick: \"onLineClick\", onLineDbClick: \"onLineDbClick\", onNodeClick: \"onNodeClick\", onNodeDbClick: \"onNodeDbClick\", onEdgeUpdate: \"onEdgeUpdate\", onNodeUpdate: \"onNodeUpdate\" }, providers: [{ provide: AXComponent, useExisting: AXFlowChartRendererComponent }], viewQueries: [{ propertyName: \"canvas\", first: true, predicate: [\"canvas\"], descendants: true, isSignal: true }, { propertyName: \"svg\", first: true, predicate: [\"connections\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<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\", styles: [\"ax-flow-chart-renderer{overflow:hidden;width:var(--ax-comp-flow-chart-width, 100%);height:var(--ax-comp-flow-chart-height, 30rem);-webkit-print-color-adjust:exact;print-color-adjust:exact}ax-flow-chart-renderer #ax-flow-chart-renderer-canvas{position:relative;width:100%;height:100%}ax-flow-chart-renderer .ax-flow-chart-node{position:absolute;padding:1rem;background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-on-surface));border:2px solid rgba(var(--ax-sys-color-border-surface));cursor:move;-webkit-user-select:none;user-select:none}ax-flow-chart-renderer .ax-flow-chart-node.selected{border:2px solid rgba(var(--ax-sys-color-danger-darker-surface))}ax-flow-chart-renderer .ax-flow-chart-node .ax-flow-chart-anchor{opacity:0;transition:opacity .5s ease}ax-flow-chart-renderer .ax-flow-chart-node:hover .ax-flow-chart-anchor,ax-flow-chart-renderer .ax-flow-chart-node.selected .ax-flow-chart-anchor{opacity:1}ax-flow-chart-renderer .ax-flow-chart-anchor{position:absolute;width:10px;height:10px;background-color:rgba(var(--ax-sys-color-on-lightest-surface));border-radius:50%;cursor:crosshair;transform:translate(-50%,-50%)}ax-flow-chart-renderer .ax-flow-chart-anchor.selected{background-color:rgba(var(--ax-sys-color-primary-surface))}ax-flow-chart-renderer .ax-flow-chart-anchor.hover{transition:.3s all ease;scale:1.3;background-color:rgba(var(--ax-sys-color-danger-darkest-surface))}ax-flow-chart-renderer .ax-flow-chart-anchor:before{content:\\\"\\\";position:absolute;top:-7px;left:-7px;right:-7px;bottom:-7px}ax-flow-chart-renderer .ax-flow-chart-renderer-svg{position:absolute;top:0;left:0;overflow:visible}ax-flow-chart-renderer .ax-flow-chart-line:hover{transition:.3s all ease;stroke:rgba(var(--ax-sys-color-danger-darker-surface));cursor:pointer}ax-flow-chart-renderer .ax-flow-chart-line.selected{stroke:rgba(var(--ax-sys-color-primary-surface))}ax-flow-chart-renderer .ax-rectangle,ax-flow-chart-renderer .ax-circle,ax-flow-chart-renderer .ax-diamond{border:2px solid rgba(var(--ax-sys-color-border-surface));display:flex;justify-content:center;align-items:center;width:auto;height:auto}ax-flow-chart-renderer .ax-circle{border-radius:1000vmax;aspect-ratio:1}ax-flow-chart-renderer .ax-diamond{transform:rotate(45deg) scale(.75);aspect-ratio:1}ax-flow-chart-renderer .ax-diamond p{transform:rotate(-45deg) scale(1.25)}ax-flow-chart-renderer .ax-diamond .ax-flow-chart-anchor{width:14px;height:14px}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartRendererComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-flow-chart-renderer', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXFlowChartRendererComponent }], template: \"<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\", styles: [\"ax-flow-chart-renderer{overflow:hidden;width:var(--ax-comp-flow-chart-width, 100%);height:var(--ax-comp-flow-chart-height, 30rem);-webkit-print-color-adjust:exact;print-color-adjust:exact}ax-flow-chart-renderer #ax-flow-chart-renderer-canvas{position:relative;width:100%;height:100%}ax-flow-chart-renderer .ax-flow-chart-node{position:absolute;padding:1rem;background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-on-surface));border:2px solid rgba(var(--ax-sys-color-border-surface));cursor:move;-webkit-user-select:none;user-select:none}ax-flow-chart-renderer .ax-flow-chart-node.selected{border:2px solid rgba(var(--ax-sys-color-danger-darker-surface))}ax-flow-chart-renderer .ax-flow-chart-node .ax-flow-chart-anchor{opacity:0;transition:opacity .5s ease}ax-flow-chart-renderer .ax-flow-chart-node:hover .ax-flow-chart-anchor,ax-flow-chart-renderer .ax-flow-chart-node.selected .ax-flow-chart-anchor{opacity:1}ax-flow-chart-renderer .ax-flow-chart-anchor{position:absolute;width:10px;height:10px;background-color:rgba(var(--ax-sys-color-on-lightest-surface));border-radius:50%;cursor:crosshair;transform:translate(-50%,-50%)}ax-flow-chart-renderer .ax-flow-chart-anchor.selected{background-color:rgba(var(--ax-sys-color-primary-surface))}ax-flow-chart-renderer .ax-flow-chart-anchor.hover{transition:.3s all ease;scale:1.3;background-color:rgba(var(--ax-sys-color-danger-darkest-surface))}ax-flow-chart-renderer .ax-flow-chart-anchor:before{content:\\\"\\\";position:absolute;top:-7px;left:-7px;right:-7px;bottom:-7px}ax-flow-chart-renderer .ax-flow-chart-renderer-svg{position:absolute;top:0;left:0;overflow:visible}ax-flow-chart-renderer .ax-flow-chart-line:hover{transition:.3s all ease;stroke:rgba(var(--ax-sys-color-danger-darker-surface));cursor:pointer}ax-flow-chart-renderer .ax-flow-chart-line.selected{stroke:rgba(var(--ax-sys-color-primary-surface))}ax-flow-chart-renderer .ax-rectangle,ax-flow-chart-renderer .ax-circle,ax-flow-chart-renderer .ax-diamond{border:2px solid rgba(var(--ax-sys-color-border-surface));display:flex;justify-content:center;align-items:center;width:auto;height:auto}ax-flow-chart-renderer .ax-circle{border-radius:1000vmax;aspect-ratio:1}ax-flow-chart-renderer .ax-diamond{transform:rotate(45deg) scale(.75);aspect-ratio:1}ax-flow-chart-renderer .ax-diamond p{transform:rotate(-45deg) scale(1.25)}ax-flow-chart-renderer .ax-diamond .ax-flow-chart-anchor{width:14px;height:14px}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jaGFydC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2Zsb3ctY2hhcnQvc3JjL2xpYi9mbG93LWNoYXJ0LXJlbmRlcmVyL2Zsb3ctY2hhcnQtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9mbG93LWNoYXJ0L3NyYy9saWIvZmxvdy1jaGFydC1yZW5kZXJlci9mbG93LWNoYXJ0LXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFFTixNQUFNLEVBRU4sTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBVzNELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxXQUFXO0lBUjdEOztRQVNVLFdBQU0sR0FBRyxTQUFTLENBQWEsUUFBUSxDQUFDLENBQUM7UUFDekMsUUFBRyxHQUFHLFNBQVMsQ0FBYSxhQUFhLENBQUMsQ0FBQztRQUMzQyxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFcEMsZ0JBQVcsR0FBRyxNQUFNLEVBQW9CLENBQUM7UUFDekMsa0JBQWEsR0FBRyxNQUFNLEVBQW9CLENBQUM7UUFDM0MsZ0JBQVcsR0FBRyxNQUFNLEVBQW9CLENBQUM7UUFDekMsa0JBQWEsR0FBRyxNQUFNLEVBQW9CLENBQUM7UUFDM0MsaUJBQVksR0FBRyxNQUFNLEVBQW9CLENBQUM7UUFDMUMsaUJBQVksR0FBRyxNQUFNLEVBQW9CLENBQUM7UUFFbkQsVUFBSyxHQUFHLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0tBa0VKO0lBMUVDLEtBQUssQ0FFRjtJQUVILElBQUksQ0FJRDtJQUVLLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFeEMseUNBQXlDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxhQUFhLENBQUM7UUFDNUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLGFBQWEsQ0FBQztRQUV0QyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQVEsRUFBRSxFQUFFO2dCQUM1QyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ3RHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDeEcsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixHQUFHLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBUSxFQUFFLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDdEcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUN4RyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7OEdBckZVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHNRQUY1QixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQyx3UUN0QmxGLHlLQUdBOzsyRkRxQmEsNEJBQTRCO2tCQVJ4QyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLDhCQUE4QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCwgTlhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgT25EZXN0cm95LFxuICBvdXRwdXQsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhGbG93Q2hhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vZmxvdy1jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7IEFYRmxvd0NoYXJ0RWRnZXMsIEFYRmxvd0NoYXJ0Tm9kZXMsIEFYTGluZUNsaWNrRXZlbnQsIEFYTm9kZUNsaWNrRXZlbnQgfSBmcm9tICcuLi9mbG93LWNoYXJ0LnR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1mbG93LWNoYXJ0LXJlbmRlcmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zsb3ctY2hhcnQtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mbG93LWNoYXJ0LXJlbmRlcmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhGbG93Q2hhcnRSZW5kZXJlckNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhGbG93Q2hhcnRSZW5kZXJlckNvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBjYW52YXMgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2NhbnZhcycpO1xuICBwcml2YXRlIHN2ZyA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignY29ubmVjdGlvbnMnKTtcbiAgcHJpdmF0ZSBzZXJ2aWNlID0gaW5qZWN0KEFYRmxvd0NoYXJ0U2VydmljZSk7XG5cbiAgcmVhZG9ubHkgb25MaW5lQ2xpY2sgPSBvdXRwdXQ8QVhMaW5lQ2xpY2tFdmVudD4oKTtcbiAgcmVhZG9ubHkgb25MaW5lRGJDbGljayA9IG91dHB1dDxBWExpbmVDbGlja0V2ZW50PigpO1xuICByZWFkb25seSBvbk5vZGVDbGljayA9IG91dHB1dDxBWE5vZGVDbGlja0V2ZW50PigpO1xuICByZWFkb25seSBvbk5vZGVEYkNsaWNrID0gb3V0cHV0PEFYTm9kZUNsaWNrRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IG9uRWRnZVVwZGF0ZSA9IG91dHB1dDxBWEZsb3dDaGFydEVkZ2VzPigpO1xuICByZWFkb25seSBvbk5vZGVVcGRhdGUgPSBvdXRwdXQ8QVhGbG93Q2hhcnROb2Rlcz4oKTtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgdGhpcy5zZXR1cEV2ZW50TGlzdGVuZXJzKCk7XG4gIH0pO1xuXG4gICNlZmYgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGlzLmNhbnZhcygpICYmIHRoaXMuc3ZnKCkpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZVNlcnZpY2VzKCk7XG4gICAgfVxuICB9KTtcblxuICBwcml2YXRlIHNldHVwRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLmxpbmVDbGljay5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLm9uTGluZUNsaWNrLmVtaXQodmFsdWUpO1xuICAgIH0pO1xuICAgIHRoaXMuc2VydmljZS5saW5lRGJDbGljay5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLm9uTGluZURiQ2xpY2suZW1pdCh2YWx1ZSk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXJ2aWNlLm5vZGVDbGljay5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLm9uTm9kZUNsaWNrLmVtaXQodmFsdWUpO1xuICAgIH0pO1xuICAgIHRoaXMuc2VydmljZS5ub2RlRGJDbGljay5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLm9uTm9kZURiQ2xpY2suZW1pdCh2YWx1ZSk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXJ2aWNlLm9uRWRnZVVwZGF0ZS5zdWJzY3JpYmUoKG5ld0VkZ2UpID0+IHtcbiAgICAgIHRoaXMub25FZGdlVXBkYXRlLmVtaXQobmV3RWRnZSk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXJ2aWNlLm9uTm9kZVVwZGF0ZS5zdWJzY3JpYmUoKG5ld05vZGUpID0+IHtcbiAgICAgIHRoaXMub25Ob2RlVXBkYXRlLmVtaXQobmV3Tm9kZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVTZXJ2aWNlcygpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UuY2FudmFzU2VydmljZS5zZXQodGhpcy5jYW52YXMoKSk7XG4gICAgdGhpcy5zZXJ2aWNlLnN2Z1NlcnZpY2Uuc2V0KHRoaXMuc3ZnKCkpO1xuXG4gICAgLy8gQWRkIGNsaWNrIGhhbmRsZXJzIGZvciBwYXJlbnQgZWxlbWVudHNcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLmNhbnZhcygpPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHN2ZyA9IHRoaXMuc3ZnKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoY2FudmFzKSB7XG4gICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGUudGFyZ2V0ID09PSBjYW52YXMpIHtcbiAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2VsZWN0ZWROb2RlLnNldChudWxsKTtcbiAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2VsZWN0ZWRFZGdlLnNldChudWxsKTtcbiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYXgtZmxvdy1jaGFydC1ub2RlJykuZm9yRWFjaCgobm9kZSkgPT4gbm9kZS5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpKTtcbiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYXgtZmxvdy1jaGFydC1saW5lJykuZm9yRWFjaCgobGluZSkgPT4gbGluZS5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHN2Zykge1xuICAgICAgc3ZnLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChlLnRhcmdldCA9PT0gc3ZnKSB7XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLnNlbGVjdGVkTm9kZS5zZXQobnVsbCk7XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLnNlbGVjdGVkRWRnZS5zZXQobnVsbCk7XG4gICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmF4LWZsb3ctY2hhcnQtbm9kZScpLmZvckVhY2goKG5vZGUpID0+IG5vZGUuY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0ZWQnKSk7XG4gICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmF4LWZsb3ctY2hhcnQtbGluZScpLmZvckVhY2goKGxpbmUpID0+IGxpbmUuY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0ZWQnKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYW51cCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwKCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5jbGVhbnVwKCk7XG4gICAgdGhpcy5zZXJ2aWNlLmxpbmVDbGljay51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc2VydmljZS5saW5lRGJDbGljay51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc2VydmljZS5ub2RlQ2xpY2sudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNlcnZpY2Uubm9kZURiQ2xpY2sudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNlcnZpY2Uub25FZGdlVXBkYXRlLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJheC1mbG93LWNoYXJ0LXJlbmRlcmVyLWNhbnZhc1wiICNjYW52YXM+XG4gIDxzdmcgY2xhc3M9XCJheC1mbG93LWNoYXJ0LXJlbmRlcmVyLXN2Z1wiIGlkPVwiYXgtZmxvdy1jaGFydC1yZW5kZXJlci1jb25uZWN0aW9uc1wiICNjb25uZWN0aW9ucz48L3N2Zz5cbjwvZGl2PlxuIl19","import { AXComponent, AXFocusableComponent, AXValuableComponent, NXComponent } from '@acorex/cdk/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, computed, HostListener, inject, input, ViewEncapsulation, } from '@angular/core';\nimport { AXFlowChartService } from './flow-chart.service';\nimport * as i0 from \"@angular/core\";\nexport class AXFlowChartComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.flowChartService = inject(AXFlowChartService);\n this.initialFlowChartNode = input.required();\n this.initialFlowChartEdge = input.required();\n this.selectedNode = computed(() => this.flowChartService.selectedNode());\n this.selectedEdge = computed(() => this.flowChartService.selectedEdge());\n this.#init = afterNextRender(() => {\n this.flowChartService.initialFlowChartNode.set(this.initialFlowChartNode());\n this.flowChartService.initialFlowChartEdge.set(this.initialFlowChartEdge());\n });\n }\n #init;\n handleKeyboardEvent(event) {\n if (event.key === 'Delete') {\n const selectedNode = this.selectedNode();\n const selectedEdge = this.selectedEdge();\n if (selectedNode) {\n this.removeNode(selectedNode.id);\n }\n else if (selectedEdge) {\n this.removeEdge(selectedEdge);\n }\n }\n }\n drawEdges(edges) {\n this.flowChartService.drawEdges(edges);\n }\n removeEdge(edge) {\n this.flowChartService.removeEdge(edge);\n }\n createNode(nodes) {\n this.flowChartService.createNode(nodes);\n }\n removeNode(nodeId) {\n this.flowChartService.removeNode(nodeId);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.3\", type: AXFlowChartComponent, isStandalone: true, selector: \"ax-flow-chart\", inputs: { initialFlowChartNode: { classPropertyName: \"initialFlowChartNode\", publicName: \"initialFlowChartNode\", isSignal: true, isRequired: true, transformFunction: null }, initialFlowChartEdge: { classPropertyName: \"initialFlowChartEdge\", publicName: \"initialFlowChartEdge\", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { \"document:keydown\": \"handleKeyboardEvent($event)\" } }, providers: [\n AXFlowChartService,\n { provide: AXComponent, useExisting: AXFlowChartComponent },\n { provide: AXValuableComponent, useExisting: AXFlowChartComponent },\n { provide: AXFocusableComponent, useExisting: AXFlowChartComponent },\n ], usesInheritance: true, ngImport: i0, template: \"<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\", styles: [\"ax-flow-chart{display:flex;flex-direction:column;width:100%;height:100%;border:1px solid rgba(var(--ax-sys-color-border-lightest-surface));border-radius:var(--ax-sys-border-radius)}ax-flow-chart ax-header{border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-flow-chart ax-footer{border-top:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-flow-chart', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n AXFlowChartService,\n { provide: AXComponent, useExisting: AXFlowChartComponent },\n { provide: AXValuableComponent, useExisting: AXFlowChartComponent },\n { provide: AXFocusableComponent, useExisting: AXFlowChartComponent },\n ], template: \"<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\", styles: [\"ax-flow-chart{display:flex;flex-direction:column;width:100%;height:100%;border:1px solid rgba(var(--ax-sys-color-border-lightest-surface));border-radius:var(--ax-sys-border-radius)}ax-flow-chart ax-header{border-bottom:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}ax-flow-chart ax-footer{border-top:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}\\n\"] }]\n }], propDecorators: { handleKeyboardEvent: [{\n type: HostListener,\n args: ['document:keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2Zsb3ctY2hhcnQvc3JjL2xpYi9mbG93LWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmxvdy1jaGFydC9zcmMvbGliL2Zsb3ctY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RyxPQUFPLEVBQ0wsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFnQjFELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxXQUFXO0lBYnJEOztRQWNVLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXRELHlCQUFvQixHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXNCLENBQUM7UUFDNUQseUJBQW9CLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBc0IsQ0FBQztRQUM1RCxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNwRSxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUVwRSxVQUFLLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLENBQUMsQ0FBQyxDQUFDO0tBK0JKO0lBbENDLEtBQUssQ0FHRjtJQUdILG1CQUFtQixDQUFDLEtBQW9CO1FBQ3RDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMzQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXpDLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLENBQUM7aUJBQU0sSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsS0FBeUI7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQXNCO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUEwRTtRQUNuRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBYztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBekNVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDRkQVBwQjtZQUNULGtCQUFrQjtZQUNsQixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFO1lBQzNELEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRTtZQUNuRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUU7U0FDckUsaURDekJILCtKQUdBOzsyRkR3QmEsb0JBQW9CO2tCQWJoQyxTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVCxrQkFBa0I7d0JBQ2xCLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3dCQUMzRCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3dCQUNuRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLHNCQUFzQixFQUFFO3FCQUNyRTs4QkFnQkQsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQsIEFYRm9jdXNhYmxlQ29tcG9uZW50LCBBWFZhbHVhYmxlQ29tcG9uZW50LCBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQge1xuICBhZnRlck5leHRSZW5kZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRmxvd0NoYXJ0U2VydmljZSB9IGZyb20gJy4vZmxvdy1jaGFydC5zZXJ2aWNlJztcbmltcG9ydCB7IEFYRmxvd0NoYXJ0RWRnZXMsIEFYRmxvd0NoYXJ0Tm9kZXMgfSBmcm9tICcuL2Zsb3ctY2hhcnQudHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWZsb3ctY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmxvdy1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zsb3ctY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIEFYRmxvd0NoYXJ0U2VydmljZSxcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhGbG93Q2hhcnRDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEZsb3dDaGFydENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEZsb3dDaGFydENvbXBvbmVudCB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWEZsb3dDaGFydENvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBmbG93Q2hhcnRTZXJ2aWNlID0gaW5qZWN0KEFYRmxvd0NoYXJ0U2VydmljZSk7XG5cbiAgaW5pdGlhbEZsb3dDaGFydE5vZGUgPSBpbnB1dC5yZXF1aXJlZDxBWEZsb3dDaGFydE5vZGVzW10+KCk7XG4gIGluaXRpYWxGbG93Q2hhcnRFZGdlID0gaW5wdXQucmVxdWlyZWQ8QVhGbG93Q2hhcnRFZGdlc1tdPigpO1xuICBzZWxlY3RlZE5vZGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZsb3dDaGFydFNlcnZpY2Uuc2VsZWN0ZWROb2RlKCkpO1xuICBzZWxlY3RlZEVkZ2UgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZsb3dDaGFydFNlcnZpY2Uuc2VsZWN0ZWRFZGdlKCkpO1xuXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICB0aGlzLmZsb3dDaGFydFNlcnZpY2UuaW5pdGlhbEZsb3dDaGFydE5vZGUuc2V0KHRoaXMuaW5pdGlhbEZsb3dDaGFydE5vZGUoKSk7XG4gICAgdGhpcy5mbG93Q2hhcnRTZXJ2aWNlLmluaXRpYWxGbG93Q2hhcnRFZGdlLnNldCh0aGlzLmluaXRpYWxGbG93Q2hhcnRFZGdlKCkpO1xuICB9KTtcblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZE5vZGUgPSB0aGlzLnNlbGVjdGVkTm9kZSgpO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRFZGdlID0gdGhpcy5zZWxlY3RlZEVkZ2UoKTtcblxuICAgICAgaWYgKHNlbGVjdGVkTm9kZSkge1xuICAgICAgICB0aGlzLnJlbW92ZU5vZGUoc2VsZWN0ZWROb2RlLmlkKTtcbiAgICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRFZGdlKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRWRnZShzZWxlY3RlZEVkZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGRyYXdFZGdlcyhlZGdlczogQVhGbG93Q2hhcnRFZGdlc1tdKSB7XG4gICAgdGhpcy5mbG93Q2hhcnRTZXJ2aWNlLmRyYXdFZGdlcyhlZGdlcyk7XG4gIH1cblxuICByZW1vdmVFZGdlKGVkZ2U6IEFYRmxvd0NoYXJ0RWRnZXMpIHtcbiAgICB0aGlzLmZsb3dDaGFydFNlcnZpY2UucmVtb3ZlRWRnZShlZGdlKTtcbiAgfVxuXG4gIGNyZWF0ZU5vZGUobm9kZXM6IHsgaWQ6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyB4OiBudW1iZXI7IHk6IG51bWJlciB9W10pIHtcbiAgICB0aGlzLmZsb3dDaGFydFNlcnZpY2UuY3JlYXRlTm9kZShub2Rlcyk7XG4gIH1cblxuICByZW1vdmVOb2RlKG5vZGVJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5mbG93Q2hhcnRTZXJ2aWNlLnJlbW92ZU5vZGUobm9kZUlkKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtaGVhZGVyXCI+PC9uZy1jb250ZW50PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtZmxvdy1jaGFydC1yZW5kZXJlclwiPjwvbmctY29udGVudD5cbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPjwvbmctY29udGVudD5cbiJdfQ==","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';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXFlowChartRendererComponent, AXFlowChartCreatorComponent, AXFlowChartComponent];\nconst MODULES = [CommonModule];\nexport class AXFlowChartModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartModule, imports: [CommonModule, AXFlowChartRendererComponent, AXFlowChartCreatorComponent, AXFlowChartComponent], exports: [AXFlowChartRendererComponent, AXFlowChartCreatorComponent, AXFlowChartComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartModule, imports: [MODULES, AXFlowChartCreatorComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: AXFlowChartModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jaGFydC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2Zsb3ctY2hhcnQvc3JjL2xpYi9mbG93LWNoYXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFOUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSwyQkFBMkIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3BHLE1BQU0sT0FBTyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7QUFPL0IsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsWUFQYixZQUFZLEVBRFYsNEJBQTRCLEVBQUUsMkJBQTJCLEVBQUUsb0JBQW9CLGFBQS9FLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLG9CQUFvQjsrR0FRckYsaUJBQWlCLFlBSmYsT0FBTyxFQUoyQiwyQkFBMkI7OzJGQVEvRCxpQkFBaUI7a0JBTDdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhGbG93Q2hhcnRDcmVhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9mbG93LWNoYXJ0LWNyZWF0b3IvZmxvdy1jaGFydC1jcmVhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEZsb3dDaGFydFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9mbG93LWNoYXJ0LXJlbmRlcmVyL2Zsb3ctY2hhcnQtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYRmxvd0NoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9mbG93LWNoYXJ0LmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWEZsb3dDaGFydFJlbmRlcmVyQ29tcG9uZW50LCBBWEZsb3dDaGFydENyZWF0b3JDb21wb25lbnQsIEFYRmxvd0NoYXJ0Q29tcG9uZW50XTtcbmNvbnN0IE1PRFVMRVMgPSBbQ29tbW9uTW9kdWxlXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogWy4uLk1PRFVMRVMsIC4uLkNPTVBPTkVOVF0sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRdLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWEZsb3dDaGFydE1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtZmxvdy1jaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmxvdy1jaGFydC9zcmMvYWNvcmV4LWNvbXBvbmVudHMtZmxvdy1jaGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}