aril 1.1.72 → 1.1.73

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 (1349) hide show
  1. package/.eslintrc.json +41 -0
  2. package/README.md +62 -62
  3. package/boot/config/api/ng-package.json +6 -0
  4. package/boot/config/api/src/api.sample.json +8 -0
  5. package/boot/config/api/src/api.service.ts +91 -0
  6. package/boot/config/api/src/interfaces.ts +65 -0
  7. package/boot/config/apps/ng-package.json +6 -0
  8. package/boot/config/apps/src/apps.service.ts +62 -0
  9. package/boot/config/apps/src/auth.guard.ts +22 -0
  10. package/boot/config/apps/src/interfaces.ts +58 -0
  11. package/boot/config/apps/src/reuse-strategy.ts +10 -0
  12. package/boot/config/apps/src/showdowDOMWrapper.ts +28 -0
  13. package/boot/config/plugins/ng-package.json +6 -0
  14. package/boot/config/plugins/src/getNgZone.ts +7 -0
  15. package/boot/config/plugins/src/interfaces.ts +75 -0
  16. package/boot/config/plugins/src/plugins.service.ts +110 -0
  17. package/boot/config/translate/constants.ts +4 -0
  18. package/boot/config/translate/ng-package.json +6 -0
  19. package/boot/config/translate/primeng/i18n/tr.ts +59 -0
  20. package/boot/host/ng-package.json +6 -0
  21. package/boot/host/src/app.component.ts +51 -0
  22. package/boot/host/src/bootstrap.ts +87 -0
  23. package/boot/index.ts +1 -0
  24. package/boot/mfe/ng-package.json +6 -0
  25. package/boot/mfe/src/app.component.ts +63 -0
  26. package/boot/mfe/src/appComponentLoader.ts +4 -0
  27. package/boot/mfe/src/bootstrap.ts +97 -0
  28. package/boot/mfe/src/loadStyles.ts +42 -0
  29. package/boot/mfe/src/monaco.config.ts +266 -0
  30. package/boot/ng-package.json +6 -0
  31. package/http/index.ts +13 -0
  32. package/http/lib/enums.ts +31 -0
  33. package/http/lib/interfaces.ts +46 -0
  34. package/http/ng-package.json +6 -0
  35. package/http/src/httpBackend.ts +12 -0
  36. package/http/src/httpClient.ts +20 -0
  37. package/http/src/interceptor/accept-language.interceptor.ts +32 -0
  38. package/http/src/serviceBase.ts +175 -0
  39. package/http/src/serviceMockBase.ts +12 -0
  40. package/http/src/serviceRequest.ts +28 -0
  41. package/http/src/serviceStateMethods.ts +211 -0
  42. package/i18n/ng-package.json +6 -0
  43. package/i18n/src/folder-name-token.ts +3 -0
  44. package/i18n/src/i18n.module.ts +11 -0
  45. package/i18n/src/loader.ts +13 -0
  46. package/i18n/src/provideI18n.ts +18 -0
  47. package/i18n/src/provideScope.ts +20 -0
  48. package/keycloak/index.ts +1 -0
  49. package/keycloak/ng-package.json +6 -0
  50. package/keycloak/src/auth.interceptor.ts +103 -0
  51. package/ng-package.json +16 -0
  52. package/package.json +43 -528
  53. package/project.json +39 -0
  54. package/provider/ng-package.json +6 -0
  55. package/provider/src/index.ts +5 -0
  56. package/provider/src/prodiveHost.ts +15 -0
  57. package/provider/src/prodiveHostRouter.ts +21 -0
  58. package/provider/src/provideHostKeycloak.ts +34 -0
  59. package/provider/src/provideLocaleId.ts +22 -0
  60. package/theme/index.ts +1 -1
  61. package/theme/layout/app/breadcrumb/app.breadcrumb.component.html +8 -8
  62. package/theme/layout/app/breadcrumb/app.breadcrumb.component.ts +126 -126
  63. package/theme/layout/app/chatbot/app.chatbot.component.html +108 -108
  64. package/theme/layout/app/chatbot/app.chatbot.component.scss +34 -34
  65. package/theme/layout/app/chatbot/app.chatbot.component.ts +151 -151
  66. package/theme/layout/app/config/app.config.component.html +146 -146
  67. package/theme/layout/app/config/app.config.component.ts +143 -143
  68. package/theme/layout/app/expandableMenu/expandable-menu.component.html +89 -89
  69. package/theme/layout/app/expandableMenu/expandable-menu.component.ts +295 -295
  70. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.html +110 -110
  71. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.scss +181 -181
  72. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.ts +260 -260
  73. package/theme/layout/app/favorite-pages/favorite-pages.service.ts +95 -95
  74. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.html +27 -27
  75. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.ts +165 -165
  76. package/theme/layout/app/general-search/general-search.component.html +57 -57
  77. package/theme/layout/app/general-search/general-search.component.scss +27 -27
  78. package/theme/layout/app/general-search/general-search.component.ts +93 -93
  79. package/theme/layout/app/general-search/helpers.spec.ts +527 -527
  80. package/theme/layout/app/general-search/helpers.ts +106 -106
  81. package/theme/layout/app/general-search/models.ts +142 -142
  82. package/theme/layout/app/history/history-sidebar.component.html +87 -87
  83. package/theme/layout/app/history/history-sidebar.component.scss +182 -182
  84. package/theme/layout/app/history/history-sidebar.component.ts +143 -143
  85. package/theme/layout/app/history/history.service.ts +154 -154
  86. package/theme/layout/app/layout/app.layout.component.html +27 -27
  87. package/theme/layout/app/layout/app.layout.component.ts +171 -171
  88. package/theme/layout/app/layout/mfe.layout.component.ts +59 -59
  89. package/theme/layout/app/notifications/notifications-sidebar.component.html +104 -104
  90. package/theme/layout/app/notifications/notifications-sidebar.component.scss +237 -237
  91. package/theme/layout/app/notifications/notifications-sidebar.component.ts +221 -221
  92. package/theme/layout/app/profileSidebar/app.profilesidebar.component.html +122 -122
  93. package/theme/layout/app/profileSidebar/app.profilesidebar.component.scss +151 -151
  94. package/theme/layout/app/profileSidebar/app.profilesidebar.component.ts +141 -141
  95. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.html +48 -48
  96. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.scss +27 -27
  97. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.ts +178 -178
  98. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.html +71 -71
  99. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.ts +251 -251
  100. package/theme/layout/app/profileSidebar/profile.service.ts +116 -116
  101. package/theme/layout/app/site-map/site-map-sidebar.component.html +121 -121
  102. package/theme/layout/app/site-map/site-map-sidebar.component.scss +178 -178
  103. package/theme/layout/app/site-map/site-map-sidebar.component.ts +193 -193
  104. package/theme/layout/app/static-sidebar/static-sidebar.component.html +123 -123
  105. package/theme/layout/app/static-sidebar/static-sidebar.component.scss +411 -411
  106. package/theme/layout/app/static-sidebar/static-sidebar.component.ts +276 -276
  107. package/theme/layout/app/topbar/app.topbar.component.html +85 -85
  108. package/theme/layout/app/topbar/app.topbar.component.scss +193 -193
  109. package/theme/layout/app/topbar/app.topbar.component.ts +172 -172
  110. package/theme/layout/index.ts +7 -7
  111. package/theme/layout/ng-package.json +6 -6
  112. package/theme/layout/service/app.layout.service.ts +307 -307
  113. package/theme/layout/service/app.menu.service.ts +53 -53
  114. package/theme/layout/service/breadcrumb.service.ts +14 -14
  115. package/theme/layout/service/interfaces/enum.ts +13 -13
  116. package/theme/layout/service/interfaces/interfaces.ts +150 -150
  117. package/theme/layout/service/menuchangeevent.ts +4 -4
  118. package/theme/layout/service/notifications.service.ts +26 -26
  119. package/theme/layout/service/search.service.ts +22 -22
  120. package/theme/layout/service/selection-group.service.ts +73 -73
  121. package/theme/ng-package.json +6 -6
  122. package/theme/styles/layout/_animation.scss +53 -53
  123. package/theme/styles/layout/_breadcrumb.scss +31 -31
  124. package/theme/styles/layout/_config.scss +42 -42
  125. package/theme/styles/layout/_content.scss +61 -61
  126. package/theme/styles/layout/_expanded_sidebar.scss +486 -486
  127. package/theme/styles/layout/_fonts.scss +93 -93
  128. package/theme/styles/layout/_layout_dark.scss +5 -5
  129. package/theme/styles/layout/_layout_dim.scss +5 -5
  130. package/theme/styles/layout/_layout_light.scss +5 -5
  131. package/theme/styles/layout/_main.scss +28 -28
  132. package/theme/styles/layout/_profile.scss +10 -10
  133. package/theme/styles/layout/_responsive.scss +153 -153
  134. package/theme/styles/layout/_sidebar_drawer.scss +234 -234
  135. package/theme/styles/layout/_sidebar_horizontal.scss +163 -163
  136. package/theme/styles/layout/_sidebar_reveal.scss +201 -201
  137. package/theme/styles/layout/_sidebar_slim.scss +144 -144
  138. package/theme/styles/layout/_sidebar_slim_plus.scss +168 -168
  139. package/theme/styles/layout/_sidebar_vertical.scss +156 -156
  140. package/theme/styles/layout/_topbar.scss +140 -140
  141. package/theme/styles/layout/_typography.scss +68 -68
  142. package/theme/styles/layout/_utils.scss +24 -24
  143. package/theme/styles/layout/layout.scss +25 -25
  144. package/theme/styles/layout/menutheme/_colorscheme.scss +11 -11
  145. package/theme/styles/layout/menutheme/_menutheme.scss +3 -3
  146. package/theme/styles/layout/menutheme/_primarycolor.scss +16 -16
  147. package/theme/styles/layout/menutheme/_transparent.scss +26 -26
  148. package/theme/styles/layout/preloading.scss +84 -84
  149. package/theme/styles/theme/base/_colors.scss +17 -17
  150. package/theme/styles/theme/base/_common.scss +89 -89
  151. package/theme/styles/theme/base/_components.scss +108 -108
  152. package/theme/styles/theme/base/_mixins.scss +337 -337
  153. package/theme/styles/theme/base/components/button/_button.scss +576 -576
  154. package/theme/styles/theme/base/components/button/_speeddial.scss +96 -96
  155. package/theme/styles/theme/base/components/button/_splitbutton.scss +348 -348
  156. package/theme/styles/theme/base/components/data/_carousel.scss +37 -37
  157. package/theme/styles/theme/base/components/data/_datatable.scss +338 -338
  158. package/theme/styles/theme/base/components/data/_dataview.scss +46 -46
  159. package/theme/styles/theme/base/components/data/_filter.scss +137 -137
  160. package/theme/styles/theme/base/components/data/_orderlist.scss +114 -114
  161. package/theme/styles/theme/base/components/data/_organizationchart.scss +50 -50
  162. package/theme/styles/theme/base/components/data/_paginator.scss +92 -92
  163. package/theme/styles/theme/base/components/data/_picklist.scss +114 -114
  164. package/theme/styles/theme/base/components/data/_table.scss +16 -16
  165. package/theme/styles/theme/base/components/data/_timeline.scss +35 -35
  166. package/theme/styles/theme/base/components/data/_tree.scss +150 -150
  167. package/theme/styles/theme/base/components/data/_treetable.scss +255 -255
  168. package/theme/styles/theme/base/components/data/_virtualscroller.scss +28 -28
  169. package/theme/styles/theme/base/components/file/_fileupload.scss +64 -64
  170. package/theme/styles/theme/base/components/input/_autocomplete.scss +141 -141
  171. package/theme/styles/theme/base/components/input/_calendar.scss +267 -267
  172. package/theme/styles/theme/base/components/input/_cascadeselect.scss +135 -135
  173. package/theme/styles/theme/base/components/input/_checkbox.scss +99 -99
  174. package/theme/styles/theme/base/components/input/_chips.scss +67 -67
  175. package/theme/styles/theme/base/components/input/_colorpicker.scss +19 -19
  176. package/theme/styles/theme/base/components/input/_dropdown.scss +151 -151
  177. package/theme/styles/theme/base/components/input/_editor.scss +122 -122
  178. package/theme/styles/theme/base/components/input/_inputgroup.scss +75 -75
  179. package/theme/styles/theme/base/components/input/_inputmask.scss +16 -16
  180. package/theme/styles/theme/base/components/input/_inputnumber.scss +28 -28
  181. package/theme/styles/theme/base/components/input/_inputswitch.scss +60 -60
  182. package/theme/styles/theme/base/components/input/_inputtext.scss +100 -100
  183. package/theme/styles/theme/base/components/input/_listbox.scss +97 -97
  184. package/theme/styles/theme/base/components/input/_multiselect.scss +177 -177
  185. package/theme/styles/theme/base/components/input/_password.scss +52 -52
  186. package/theme/styles/theme/base/components/input/_radiobutton.scss +78 -78
  187. package/theme/styles/theme/base/components/input/_rating.scss +60 -60
  188. package/theme/styles/theme/base/components/input/_selectbutton.scss +50 -50
  189. package/theme/styles/theme/base/components/input/_slider.scss +75 -75
  190. package/theme/styles/theme/base/components/input/_togglebutton.scss +48 -48
  191. package/theme/styles/theme/base/components/input/_treeselect.scss +139 -139
  192. package/theme/styles/theme/base/components/menu/_breadcrumb.scss +43 -43
  193. package/theme/styles/theme/base/components/menu/_contextmenu.scss +39 -39
  194. package/theme/styles/theme/base/components/menu/_dock.scss +95 -95
  195. package/theme/styles/theme/base/components/menu/_megamenu.scss +55 -55
  196. package/theme/styles/theme/base/components/menu/_menu.scss +37 -37
  197. package/theme/styles/theme/base/components/menu/_menubar.scss +140 -140
  198. package/theme/styles/theme/base/components/menu/_panelmenu.scss +153 -153
  199. package/theme/styles/theme/base/components/menu/_slidemenu.scss +59 -59
  200. package/theme/styles/theme/base/components/menu/_steps.scss +56 -56
  201. package/theme/styles/theme/base/components/menu/_tabmenu.scss +73 -73
  202. package/theme/styles/theme/base/components/menu/_tieredmenu.scss +43 -43
  203. package/theme/styles/theme/base/components/messages/_inlinemessage.scss +69 -69
  204. package/theme/styles/theme/base/components/messages/_message.scss +107 -107
  205. package/theme/styles/theme/base/components/messages/_toast.scss +99 -99
  206. package/theme/styles/theme/base/components/misc/_avatar.scss +30 -30
  207. package/theme/styles/theme/base/components/misc/_badge.scss +48 -48
  208. package/theme/styles/theme/base/components/misc/_chip.scss +42 -42
  209. package/theme/styles/theme/base/components/misc/_inplace.scss +16 -16
  210. package/theme/styles/theme/base/components/misc/_progressbar.scss +17 -17
  211. package/theme/styles/theme/base/components/misc/_scrolltop.scss +25 -25
  212. package/theme/styles/theme/base/components/misc/_skeleton.scss +8 -8
  213. package/theme/styles/theme/base/components/misc/_tag.scss +45 -45
  214. package/theme/styles/theme/base/components/misc/_terminal.scss +12 -12
  215. package/theme/styles/theme/base/components/multimedia/_galleria.scss +155 -155
  216. package/theme/styles/theme/base/components/multimedia/_image.scss +49 -49
  217. package/theme/styles/theme/base/components/overlay/_confirmpopup.scss +70 -70
  218. package/theme/styles/theme/base/components/overlay/_dialog.scss +69 -69
  219. package/theme/styles/theme/base/components/overlay/_overlaypanel.scss +62 -62
  220. package/theme/styles/theme/base/components/overlay/_sidebar.scss +28 -28
  221. package/theme/styles/theme/base/components/overlay/_tooltip.scss +33 -33
  222. package/theme/styles/theme/base/components/panel/_accordion.scss +119 -119
  223. package/theme/styles/theme/base/components/panel/_card.scss +30 -30
  224. package/theme/styles/theme/base/components/panel/_divider.scss +31 -31
  225. package/theme/styles/theme/base/components/panel/_fieldset.scss +47 -47
  226. package/theme/styles/theme/base/components/panel/_panel.scss +77 -77
  227. package/theme/styles/theme/base/components/panel/_scrollpanel.scss +6 -6
  228. package/theme/styles/theme/base/components/panel/_splitter.scss +19 -19
  229. package/theme/styles/theme/base/components/panel/_stepper.scss +200 -200
  230. package/theme/styles/theme/base/components/panel/_tabview.scss +91 -91
  231. package/theme/styles/theme/base/components/panel/_toolbar.scss +11 -11
  232. package/theme/styles/theme/dark/_extensions.scss +134 -134
  233. package/theme/styles/theme/dark/_variables.scss +933 -933
  234. package/theme/styles/theme/dark/indigo/theme.scss +14 -14
  235. package/theme/styles/theme/light/_extensions.scss +116 -116
  236. package/theme/styles/theme/light/_variables.scss +940 -940
  237. package/theme/styles/theme/light/custom/theme.scss +16 -16
  238. package/theme/styles/theme/light/indigo/theme.scss +14 -14
  239. package/tsconfig.lib.json +12 -0
  240. package/tsconfig.lib.prod.json +10 -0
  241. package/tsconfig.spec.json +9 -0
  242. package/ui/autoComplete/ng-package.json +6 -0
  243. package/ui/autoComplete/src/auto-complete.component.html +14 -0
  244. package/ui/autoComplete/src/auto-complete.component.ts +130 -0
  245. package/ui/autoComplete/src/interfaces.ts +35 -0
  246. package/ui/badge/ng-package.json +6 -0
  247. package/ui/badge/src/badge.component.html +11 -0
  248. package/ui/badge/src/badge.component.ts +63 -0
  249. package/ui/button/ng-package.json +6 -0
  250. package/ui/button/src/button.component.html +12 -0
  251. package/ui/button/src/button.component.ts +47 -0
  252. package/ui/button/src/split-button.component.html +2 -0
  253. package/ui/button/src/split-button.component.ts +17 -0
  254. package/ui/calendar/ng-package.json +6 -0
  255. package/ui/calendar/src/calendar.component.html +48 -0
  256. package/ui/calendar/src/calendar.component.ts +257 -0
  257. package/ui/charts/index.ts +13 -0
  258. package/ui/charts/ng-package.json +6 -0
  259. package/ui/charts/src/amCharts/column/column-chart.component.ts +144 -0
  260. package/ui/charts/src/amCharts/line/line-chart.component.ts +194 -0
  261. package/ui/charts/src/amCharts/pie/pie-chart.component.ts +132 -0
  262. package/ui/charts/src/highCharts/area/area-chart.component.ts +112 -0
  263. package/ui/charts/src/highCharts/bar/bar-chart.component.ts +100 -0
  264. package/ui/charts/src/highCharts/bar/bar-chart.components.scss +50 -0
  265. package/ui/charts/src/highCharts/column/column-chart.component copy.ts +50 -0
  266. package/ui/charts/src/highCharts/column/column-chart.component.ts +125 -0
  267. package/ui/charts/src/highCharts/column/column-chart.components.scss +50 -0
  268. package/ui/charts/src/highCharts/gauge/solid-gauge.component.ts +199 -0
  269. package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.ts +279 -0
  270. package/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.ts +185 -0
  271. package/ui/charts/src/highCharts/line/line-chart-series.component.ts +92 -0
  272. package/ui/charts/src/highCharts/line/line-chart.component.ts +85 -0
  273. package/ui/charts/src/highCharts/pie/pie-chart.component.ts +139 -0
  274. package/ui/charts/src/theme/theme.ts +55 -0
  275. package/ui/checkbox/ng-package.json +6 -0
  276. package/ui/checkbox/src/check-box.component.html +15 -0
  277. package/ui/checkbox/src/check-box.component.ts +24 -0
  278. package/ui/checkbox/src/tri-state-checkbox.component.html +7 -0
  279. package/ui/checkbox/src/tri-state-checkbox.component.ts +20 -0
  280. package/ui/chip/index.ts +1 -0
  281. package/ui/chip/ng-package.json +6 -0
  282. package/ui/chip/src/chip.component.html +33 -0
  283. package/ui/chip/src/chip.component.ts +144 -0
  284. package/ui/collapse-reorder-list/index.ts +1 -0
  285. package/ui/collapse-reorder-list/ng-package.json +6 -0
  286. package/ui/collapse-reorder-list/src/collapse-reorder-list.component.html +42 -0
  287. package/ui/collapse-reorder-list/src/collapse-reorder-list.component.scss +24 -0
  288. package/ui/collapse-reorder-list/src/collapse-reorder-list.component.ts +56 -0
  289. package/ui/dxEditor/ng-package.json +6 -0
  290. package/ui/dxEditor/src/dx-editor.component.html +67 -0
  291. package/ui/dxEditor/src/dx-editor.component.ts +19 -0
  292. package/ui/dxField/ng-package.json +6 -0
  293. package/ui/dxField/src/dx-field.component.html +15 -0
  294. package/ui/dxField/src/dx-field.component.ts +17 -0
  295. package/ui/editor/ng-package.json +6 -0
  296. package/ui/editor/src/aril-editor.component.html +16 -0
  297. package/ui/editor/src/aril-editor.component.scss +18 -0
  298. package/ui/editor/src/aril-editor.component.ts +176 -0
  299. package/ui/editor/src/types.ts +24 -0
  300. package/ui/field/ng-package.json +6 -0
  301. package/ui/field/src/field.component.html +27 -0
  302. package/ui/field/src/field.component.ts +53 -0
  303. package/ui/fileUpload/ng-package.json +6 -0
  304. package/ui/fileUpload/src/file-upload.component.html +76 -0
  305. package/ui/fileUpload/src/file-upload.component.ts +90 -0
  306. package/ui/form/index.ts +18 -0
  307. package/ui/form/ng-package.json +6 -0
  308. package/ui/form/src/form-submit-button.component.html +12 -0
  309. package/ui/form/src/form-submit-button.component.ts +36 -0
  310. package/ui/form/src/form.component.ts +20 -0
  311. package/ui/img-viewer/index.ts +2 -0
  312. package/ui/img-viewer/ng-package.json +6 -0
  313. package/ui/img-viewer/src/img-viewer.component.html +12 -0
  314. package/ui/img-viewer/src/img-viewer.component.scss +8 -0
  315. package/ui/img-viewer/src/img-viewer.component.ts +59 -0
  316. package/ui/index.ts +1 -0
  317. package/ui/json-diff-comparison/ng-package.json +6 -0
  318. package/ui/json-diff-comparison/src/json-diff.component.html +5 -0
  319. package/ui/json-diff-comparison/src/json-diff.component.ts +45 -0
  320. package/ui/lib/index.ts +17 -0
  321. package/ui/lib/ng-package.json +6 -0
  322. package/ui/lib/src/form/form-error-message.component.ts +25 -0
  323. package/ui/lib/src/form/form-error-message.directive.ts +32 -0
  324. package/ui/lib/src/form/form-field-builder.ts +31 -0
  325. package/ui/lib/src/form/form-validation.ts +14 -0
  326. package/ui/lib/src/grid/enum-color-picker.pipe.ts +33 -0
  327. package/ui/lib/src/grid/flex-grid.directive.ts +10 -0
  328. package/ui/lib/src/input/baseInput.ts +30 -0
  329. package/ui/lib/src/input/common-input-validators.service.ts +57 -0
  330. package/ui/lib/src/input/dx-input-error-message.pipe.ts +16 -0
  331. package/ui/lib/src/input/input-disabled.directive.ts +15 -0
  332. package/ui/lib/src/input/input-error-message.pipe.ts +71 -0
  333. package/ui/lib/src/input/input-transforms.ts +11 -0
  334. package/ui/lib/src/input/value-accessor.directive.ts +31 -0
  335. package/ui/loader/ng-package.json +6 -0
  336. package/ui/loader/src/loader.component.html +7 -0
  337. package/ui/loader/src/loader.component.scss +6 -0
  338. package/ui/loader/src/loader.component.ts +14 -0
  339. package/ui/mask/ng-package.json +6 -0
  340. package/ui/mask/src/mask.component.css +23 -0
  341. package/ui/mask/src/mask.component.html +17 -0
  342. package/ui/mask/src/mask.component.ts +34 -0
  343. package/ui/multiSelect/ng-package.json +6 -0
  344. package/ui/multiSelect/src/interfaces.ts +41 -0
  345. package/ui/multiSelect/src/multi-select.component.html +14 -0
  346. package/ui/multiSelect/src/multi-select.component.ts +66 -0
  347. package/ui/ng-package.json +6 -0
  348. package/ui/number/ng-package.json +6 -0
  349. package/ui/number/src/number.component.html +26 -0
  350. package/ui/number/src/number.component.ts +36 -0
  351. package/ui/operation-types-dialog/ng-package.json +6 -0
  352. package/ui/operation-types-dialog/src/operation-types-dialog.component.ts +98 -0
  353. package/ui/overlayPanel/ng-package.json +6 -0
  354. package/ui/overlayPanel/src/overlay-panel.component.html +5 -0
  355. package/ui/overlayPanel/src/overlay-panel.component.ts +16 -0
  356. package/ui/panel/ng-package.json +6 -0
  357. package/ui/panel/src/panel.component.css +38 -0
  358. package/ui/panel/src/panel.component.html +44 -0
  359. package/ui/panel/src/panel.component.ts +31 -0
  360. package/ui/password/ng-package.json +6 -0
  361. package/ui/password/src/password.component.html +25 -0
  362. package/ui/password/src/password.component.ts +22 -0
  363. package/ui/pdf-viewer/ng-package.json +6 -0
  364. package/ui/pdf-viewer/src/pdf-viewer.component.html +16 -0
  365. package/ui/pdf-viewer/src/pdf-viewer.component.scss +8 -0
  366. package/ui/pdf-viewer/src/pdf-viewer.component.ts +28 -0
  367. package/ui/progressbar/dist/index.js +13 -0
  368. package/ui/progressbar/ng-package.json +6 -0
  369. package/ui/progressbar/src/dist/progressbar.component.js +28 -0
  370. package/ui/progressbar/src/progressbar.component.html +1 -0
  371. package/ui/progressbar/src/progressbar.component.ts +18 -0
  372. package/ui/radioButton/ng-package.json +6 -0
  373. package/ui/radioButton/src/radio-button.component.html +23 -0
  374. package/ui/radioButton/src/radio-button.component.scss +17 -0
  375. package/ui/radioButton/src/radio-button.component.ts +39 -0
  376. package/ui/relativeDateSelector/index.ts +1 -0
  377. package/ui/relativeDateSelector/ng-package.json +6 -0
  378. package/ui/relativeDateSelector/src/enum.ts +29 -0
  379. package/ui/relativeDateSelector/src/relative-date-selector.component.html +118 -0
  380. package/ui/relativeDateSelector/src/relative-date-selector.component.scss +154 -0
  381. package/ui/relativeDateSelector/src/relative-date-selector.component.ts +291 -0
  382. package/ui/selectBox/ng-package.json +6 -0
  383. package/ui/selectBox/src/interfaces.ts +41 -0
  384. package/ui/selectBox/src/select-box.component.html +19 -0
  385. package/ui/selectBox/src/select-box.component.ts +79 -0
  386. package/ui/styles/ui.common.scss +42 -0
  387. package/ui/switch/ng-package.json +6 -0
  388. package/ui/switch/src/switch.component.html +7 -0
  389. package/ui/switch/src/switch.component.ts +18 -0
  390. package/ui/table/index.ts +76 -0
  391. package/ui/table/ng-package.json +6 -0
  392. package/ui/table/src/export-overlay-panel.component.ts +330 -0
  393. package/ui/table/src/interfaces.ts +162 -0
  394. package/ui/table/src/table-column.component.ts +22 -0
  395. package/ui/table/src/table.component.html +404 -0
  396. package/ui/table/src/table.component.scss +15 -0
  397. package/ui/table/src/table.component.ts +368 -0
  398. package/ui/table-expand/index.ts +41 -0
  399. package/ui/table-expand/ng-package.json +6 -0
  400. package/ui/table-expand/src/table-column.component.ts +32 -0
  401. package/ui/table-expand/src/table-expand-area.component.ts +18 -0
  402. package/ui/table-expand/src/table.component.html +101 -0
  403. package/ui/table-expand/src/table.component.ts +92 -0
  404. package/ui/tag/index.ts +1 -0
  405. package/ui/tag/ng-package.json +6 -0
  406. package/ui/tag/src/interface.ts +1 -0
  407. package/ui/tag/src/tag.component.html +9 -0
  408. package/ui/tag/src/tag.component.ts +17 -0
  409. package/ui/tagBox/ng-package.json +6 -0
  410. package/ui/tagBox/src/tag-box.component.html +26 -0
  411. package/ui/tagBox/src/tag-box.component.ts +56 -0
  412. package/ui/text/ng-package.json +6 -0
  413. package/ui/text/src/text.component.html +21 -0
  414. package/ui/text/src/text.component.ts +55 -0
  415. package/ui/textArea/ng-package.json +6 -0
  416. package/ui/textArea/src/text-area.component.html +12 -0
  417. package/ui/textArea/src/text-area.component.ts +22 -0
  418. package/ui/toggle-button/index.ts +1 -0
  419. package/ui/toggle-button/ng-package.json +6 -0
  420. package/ui/toggle-button/src/toggle-button.component.html +13 -0
  421. package/ui/toggle-button/src/toggle-button.component.scss +19 -0
  422. package/ui/toggle-button/src/toggle-button.component.ts +22 -0
  423. package/ui/tooltip/ng-package.json +6 -0
  424. package/ui/tooltip/src/tooltip-component.html +10 -0
  425. package/ui/tooltip/src/tooltip-component.ts +20 -0
  426. package/ui/translate-input/ng-package.json +6 -0
  427. package/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.html +46 -0
  428. package/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.scss +9 -0
  429. package/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.ts +74 -0
  430. package/ui/translate-input/src/aril-lang-modal/constants.ts +16 -0
  431. package/ui/translate-input/src/aril-translate-input.component.ts +152 -0
  432. package/ui/translate-input/src/interface.ts +14 -0
  433. package/ui/tree/ng-package.json +6 -0
  434. package/ui/tree/src/tree.component.html +17 -0
  435. package/ui/tree/src/tree.component.ts +65 -0
  436. package/ui/treeSelect/ng-package.json +6 -0
  437. package/ui/treeSelect/src/treeSelect.component.html +18 -0
  438. package/ui/treeSelect/src/treeSelect.component.ts +43 -0
  439. package/ui/treeTable/ng-package.json +6 -0
  440. package/ui/treeTable/src/tree-table.component.html +88 -0
  441. package/ui/treeTable/src/tree-table.component.ts +57 -0
  442. package/ui/value/ng-package.json +6 -0
  443. package/ui/value/src/value.component.html +94 -0
  444. package/ui/value/src/value.component.scss +6 -0
  445. package/ui/value/src/value.component.ts +268 -0
  446. package/ui-business/assetPicker/index.ts +1 -0
  447. package/ui-business/assetPicker/ng-package.json +6 -0
  448. package/ui-business/assetPicker/src/asset-picker.component.html +29 -0
  449. package/ui-business/assetPicker/src/asset-picker.component.ts +259 -0
  450. package/ui-business/assetPicker/src/interface.ts +83 -0
  451. package/ui-business/detailed-overlay-panel/ng-package.json +6 -0
  452. package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.html +52 -0
  453. package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.scss +19 -0
  454. package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.ts +66 -0
  455. package/ui-business/detailed-overlay-panel/src/interface.ts +62 -0
  456. package/ui-business/enumPicker/index.ts +1 -0
  457. package/ui-business/enumPicker/ng-package.json +6 -0
  458. package/ui-business/enumPicker/src/enum-picker.component.html +39 -0
  459. package/ui-business/enumPicker/src/enum-picker.component.ts +147 -0
  460. package/ui-business/enumPicker/src/interface.ts +44 -0
  461. package/ui-business/image-viewer/index.ts +1 -0
  462. package/ui-business/image-viewer/ng-package.json +6 -0
  463. package/ui-business/image-viewer/src/aril-image-viewer.component.ts +92 -0
  464. package/ui-business/index.ts +1 -0
  465. package/ui-business/multiple-ref-value/ng-package.json +6 -0
  466. package/ui-business/multiple-ref-value/src/multiple-ref-value.component.html +26 -0
  467. package/ui-business/multiple-ref-value/src/multiple-ref-value.component.ts +21 -0
  468. package/ui-business/ng-package.json +6 -0
  469. package/ui-business/notification-templates-dialog/ng-package.json +6 -0
  470. package/ui-business/notification-templates-dialog/src/interface.ts +18 -0
  471. package/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.html +31 -0
  472. package/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.ts +69 -0
  473. package/ui-business/operation-types-dialog/ng-package.json +6 -0
  474. package/ui-business/operation-types-dialog/src/operation-types-dialog.component.ts +78 -0
  475. package/ui-business/ref-value/ng-package.json +6 -0
  476. package/ui-business/ref-value/src/ref-value.component.html +29 -0
  477. package/ui-business/ref-value/src/ref-value.component.ts +41 -0
  478. package/ui-business/rolePicker/ng-package.json +6 -0
  479. package/ui-business/rolePicker/src/interface.ts +56 -0
  480. package/ui-business/rolePicker/src/role-picker.component.html +21 -0
  481. package/ui-business/rolePicker/src/role-picker.component.ts +88 -0
  482. package/ui-business/userPicker/index.ts +1 -0
  483. package/ui-business/userPicker/ng-package.json +6 -0
  484. package/ui-business/userPicker/src/interface.ts +27 -0
  485. package/ui-business/userPicker/src/user-picker.component.html +20 -0
  486. package/ui-business/userPicker/src/user-picker.component.ts +52 -0
  487. package/util/block/ng-package.json +6 -0
  488. package/util/block/src/block.ts +65 -0
  489. package/util/block/src/blockui.css +56 -0
  490. package/util/block/src/blockui.min.js +7 -0
  491. package/util/custom_pages/ng-package.json +6 -0
  492. package/util/custom_pages/src/notFound.component.ts +34 -0
  493. package/util/directives/ng-package.json +6 -0
  494. package/util/directives/src/detail-page-customization/detail-page-customization.directive.md +199 -0
  495. package/util/directives/src/detail-page-customization/detail-page-customization.directive.ts +343 -0
  496. package/util/directives/src/detail-page-customization/index.ts +2 -0
  497. package/util/directives/src/detail-page-customization/models.ts +61 -0
  498. package/util/directives/src/dialog-component/plugin-dialog.component.ts +22 -0
  499. package/util/directives/src/dialog-service/plugin-dialog.service.ts +12 -0
  500. package/util/index.ts +1 -0
  501. package/util/lib/ng-package.json +6 -0
  502. package/util/lib/src/interfaces.ts +44 -0
  503. package/util/lib/src/module-router.ts +9 -0
  504. package/util/lib/src/types.ts +61 -0
  505. package/util/lib/src/validators/iban.validator.ts +202 -0
  506. package/util/lib/src/validators/max-array-length.validator.ts +18 -0
  507. package/util/lib/src/validators/min-array-length.validator.ts +18 -0
  508. package/util/lib/src/validators/tckn.validator.ts +55 -0
  509. package/util/lib/src/validators/validators.ts +21 -0
  510. package/util/loaders/index.ts +1 -0
  511. package/util/loaders/ng-package.json +6 -0
  512. package/util/loaders/style/style.loader.service.ts +69 -0
  513. package/util/ng-package.json +6 -0
  514. package/util/pipes/ng-package.json +6 -0
  515. package/util/pipes/src/distance-to-now.pipe.ts +37 -0
  516. package/util/pipes/src/get-column-by-field.pipe.ts +11 -0
  517. package/util/pipes/src/parse.pipe.ts +15 -0
  518. package/util/pipes/src/round-number.pipe.ts +75 -0
  519. package/util/pipes/src/safe.pipe.ts +27 -0
  520. package/util/pipes/src/translate-json/index.ts +1 -0
  521. package/util/pipes/src/translate-json/translate-json.pipe.ts +34 -0
  522. package/util/primitive-extensions/ng-package.json +6 -0
  523. package/util/primitive-extensions/src/date.extensions.ts +135 -0
  524. package/util/primitive-extensions/src/number.extensions.ts +57 -0
  525. package/util/primitive-extensions/src/string.extensions.ts +39 -0
  526. package/util/pub-sub/ng-package.json +6 -0
  527. package/util/pub-sub/src/pub-sub.service.ts +35 -0
  528. package/util/sync-active-tab-route/ng-package.json +6 -0
  529. package/util/sync-active-tab-route/src/sync-active-tab-route.directive.ts +47 -0
  530. package/util/unwrap/ng-package.json +6 -0
  531. package/util/unwrap/src/unwrap-tag.directive.ts +18 -0
  532. package/boot/config/api/src/api.service.d.ts +0 -12
  533. package/boot/config/api/src/interfaces.d.ts +0 -39
  534. package/boot/config/api.sample.json +0 -8
  535. package/boot/config/apps/src/apps.service.d.ts +0 -13
  536. package/boot/config/apps/src/auth.guard.d.ts +0 -9
  537. package/boot/config/apps/src/interfaces.d.ts +0 -50
  538. package/boot/config/apps/src/reuse-strategy.d.ts +0 -4
  539. package/boot/config/apps/src/showdowDOMWrapper.d.ts +0 -10
  540. package/boot/config/plugins/src/getNgZone.d.ts +0 -5
  541. package/boot/config/plugins/src/interfaces.d.ts +0 -55
  542. package/boot/config/plugins/src/plugins.service.d.ts +0 -5
  543. package/boot/config/translate/constants.d.ts +0 -4
  544. package/boot/config/translate/primeng/i18n/tr.d.ts +0 -46
  545. package/boot/host/src/app.component.d.ts +0 -10
  546. package/boot/host/src/bootstrap.d.ts +0 -4
  547. package/boot/index.d.ts +0 -1
  548. package/boot/mfe/src/app.component.d.ts +0 -17
  549. package/boot/mfe/src/appComponentLoader.d.ts +0 -1
  550. package/boot/mfe/src/bootstrap.d.ts +0 -5
  551. package/boot/mfe/src/loadStyles.d.ts +0 -3
  552. package/boot/mfe/src/monaco.config.d.ts +0 -7
  553. package/esm2022/aril.mjs +0 -5
  554. package/esm2022/boot/aril-boot.mjs +0 -5
  555. package/esm2022/boot/config/api/aril-boot-config-api.mjs +0 -5
  556. package/esm2022/boot/config/api/index.mjs +0 -2
  557. package/esm2022/boot/config/api/src/api.service.mjs +0 -59
  558. package/esm2022/boot/config/api/src/interfaces.mjs +0 -61
  559. package/esm2022/boot/config/apps/aril-boot-config-apps.mjs +0 -5
  560. package/esm2022/boot/config/apps/index.mjs +0 -4
  561. package/esm2022/boot/config/apps/src/apps.service.mjs +0 -53
  562. package/esm2022/boot/config/apps/src/auth.guard.mjs +0 -22
  563. package/esm2022/boot/config/apps/src/interfaces.mjs +0 -21
  564. package/esm2022/boot/config/apps/src/reuse-strategy.mjs +0 -9
  565. package/esm2022/boot/config/apps/src/showdowDOMWrapper.mjs +0 -35
  566. package/esm2022/boot/config/plugins/aril-boot-config-plugins.mjs +0 -5
  567. package/esm2022/boot/config/plugins/index.mjs +0 -3
  568. package/esm2022/boot/config/plugins/src/getNgZone.mjs +0 -9
  569. package/esm2022/boot/config/plugins/src/interfaces.mjs +0 -62
  570. package/esm2022/boot/config/plugins/src/plugins.service.mjs +0 -84
  571. package/esm2022/boot/config/translate/aril-boot-config-translate.mjs +0 -5
  572. package/esm2022/boot/config/translate/constants.mjs +0 -6
  573. package/esm2022/boot/config/translate/index.mjs +0 -3
  574. package/esm2022/boot/config/translate/primeng/i18n/tr.mjs +0 -60
  575. package/esm2022/boot/host/aril-boot-host.mjs +0 -5
  576. package/esm2022/boot/host/index.mjs +0 -2
  577. package/esm2022/boot/host/src/app.component.mjs +0 -49
  578. package/esm2022/boot/host/src/bootstrap.mjs +0 -55
  579. package/esm2022/boot/index.mjs +0 -2
  580. package/esm2022/boot/mfe/aril-boot-mfe.mjs +0 -5
  581. package/esm2022/boot/mfe/index.mjs +0 -2
  582. package/esm2022/boot/mfe/src/app.component.mjs +0 -63
  583. package/esm2022/boot/mfe/src/appComponentLoader.mjs +0 -5
  584. package/esm2022/boot/mfe/src/bootstrap.mjs +0 -76
  585. package/esm2022/boot/mfe/src/loadStyles.mjs +0 -37
  586. package/esm2022/boot/mfe/src/monaco.config.mjs +0 -247
  587. package/esm2022/http/aril-http.mjs +0 -5
  588. package/esm2022/http/index.mjs +0 -12
  589. package/esm2022/http/lib/enums.mjs +0 -35
  590. package/esm2022/http/lib/interfaces.mjs +0 -16
  591. package/esm2022/http/src/httpBackend.mjs +0 -17
  592. package/esm2022/http/src/httpClient.mjs +0 -16
  593. package/esm2022/http/src/interceptor/accept-language.interceptor.mjs +0 -21
  594. package/esm2022/http/src/serviceBase.mjs +0 -140
  595. package/esm2022/http/src/serviceMockBase.mjs +0 -4
  596. package/esm2022/http/src/serviceRequest.mjs +0 -23
  597. package/esm2022/http/src/serviceStateMethods.mjs +0 -167
  598. package/esm2022/i18n/aril-i18n.mjs +0 -5
  599. package/esm2022/i18n/index.mjs +0 -6
  600. package/esm2022/i18n/src/folder-name-token.mjs +0 -3
  601. package/esm2022/i18n/src/i18n.module.mjs +0 -17
  602. package/esm2022/i18n/src/loader.mjs +0 -18
  603. package/esm2022/i18n/src/provideI18n.mjs +0 -16
  604. package/esm2022/i18n/src/provideScope.mjs +0 -18
  605. package/esm2022/keycloak/aril-keycloak.mjs +0 -5
  606. package/esm2022/keycloak/index.mjs +0 -2
  607. package/esm2022/keycloak/src/auth.interceptor.mjs +0 -92
  608. package/esm2022/provider/aril-provider.mjs +0 -5
  609. package/esm2022/provider/index.mjs +0 -2
  610. package/esm2022/provider/src/index.mjs +0 -5
  611. package/esm2022/provider/src/prodiveHost.mjs +0 -9
  612. package/esm2022/provider/src/prodiveHostRouter.mjs +0 -12
  613. package/esm2022/provider/src/provideHostKeycloak.mjs +0 -28
  614. package/esm2022/provider/src/provideLocaleId.mjs +0 -20
  615. package/esm2022/public-api.mjs +0 -3
  616. package/esm2022/theme/aril-theme.mjs +0 -5
  617. package/esm2022/theme/index.mjs +0 -2
  618. package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +0 -106
  619. package/esm2022/theme/layout/app/chatbot/app.chatbot.component.mjs +0 -140
  620. package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +0 -250
  621. package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +0 -217
  622. package/esm2022/theme/layout/app/favorite-pages/favorite-pages.service.mjs +0 -60
  623. package/esm2022/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.mjs +0 -129
  624. package/esm2022/theme/layout/app/general-search/general-search.component.mjs +0 -75
  625. package/esm2022/theme/layout/app/general-search/helpers.mjs +0 -92
  626. package/esm2022/theme/layout/app/general-search/models.mjs +0 -50
  627. package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +0 -133
  628. package/esm2022/theme/layout/app/history/history.service.mjs +0 -131
  629. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +0 -160
  630. package/esm2022/theme/layout/app/layout/mfe.layout.component.mjs +0 -64
  631. package/esm2022/theme/layout/app/notifications/notifications-sidebar.component.mjs +0 -191
  632. package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +0 -122
  633. package/esm2022/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.mjs +0 -142
  634. package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +0 -202
  635. package/esm2022/theme/layout/app/profileSidebar/profile.service.mjs +0 -66
  636. package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +0 -166
  637. package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +0 -228
  638. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +0 -155
  639. package/esm2022/theme/layout/aril-theme-layout.mjs +0 -5
  640. package/esm2022/theme/layout/index.mjs +0 -8
  641. package/esm2022/theme/layout/service/app.layout.service.mjs +0 -231
  642. package/esm2022/theme/layout/service/app.menu.service.mjs +0 -46
  643. package/esm2022/theme/layout/service/breadcrumb.service.mjs +0 -20
  644. package/esm2022/theme/layout/service/interfaces/enum.mjs +0 -16
  645. package/esm2022/theme/layout/service/interfaces/interfaces.mjs +0 -2
  646. package/esm2022/theme/layout/service/menuchangeevent.mjs +0 -2
  647. package/esm2022/theme/layout/service/notifications.service.mjs +0 -30
  648. package/esm2022/theme/layout/service/search.service.mjs +0 -25
  649. package/esm2022/theme/layout/service/selection-group.service.mjs +0 -65
  650. package/esm2022/ui/aril-ui.mjs +0 -5
  651. package/esm2022/ui/autoComplete/aril-ui-autoComplete.mjs +0 -5
  652. package/esm2022/ui/autoComplete/index.mjs +0 -2
  653. package/esm2022/ui/autoComplete/src/auto-complete.component.mjs +0 -109
  654. package/esm2022/ui/autoComplete/src/interfaces.mjs +0 -2
  655. package/esm2022/ui/badge/aril-ui-badge.mjs +0 -5
  656. package/esm2022/ui/badge/index.mjs +0 -2
  657. package/esm2022/ui/badge/src/badge.component.mjs +0 -59
  658. package/esm2022/ui/button/aril-ui-button.mjs +0 -5
  659. package/esm2022/ui/button/index.mjs +0 -3
  660. package/esm2022/ui/button/src/button.component.mjs +0 -40
  661. package/esm2022/ui/button/src/split-button.component.mjs +0 -18
  662. package/esm2022/ui/calendar/aril-ui-calendar.mjs +0 -5
  663. package/esm2022/ui/calendar/index.mjs +0 -2
  664. package/esm2022/ui/calendar/src/calendar.component.mjs +0 -224
  665. package/esm2022/ui/charts/aril-ui-charts.mjs +0 -5
  666. package/esm2022/ui/charts/index.mjs +0 -13
  667. package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +0 -124
  668. package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +0 -164
  669. package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +0 -116
  670. package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +0 -114
  671. package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +0 -100
  672. package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +0 -117
  673. package/esm2022/ui/charts/src/highCharts/gauge/solid-gauge.component.mjs +0 -180
  674. package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +0 -252
  675. package/esm2022/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.mjs +0 -187
  676. package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +0 -89
  677. package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +0 -82
  678. package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +0 -137
  679. package/esm2022/ui/charts/src/theme/theme.mjs +0 -54
  680. package/esm2022/ui/checkbox/aril-ui-checkbox.mjs +0 -5
  681. package/esm2022/ui/checkbox/index.mjs +0 -3
  682. package/esm2022/ui/checkbox/src/check-box.component.mjs +0 -27
  683. package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +0 -24
  684. package/esm2022/ui/chip/aril-ui-chip.mjs +0 -5
  685. package/esm2022/ui/chip/index.mjs +0 -2
  686. package/esm2022/ui/chip/src/chip.component.mjs +0 -129
  687. package/esm2022/ui/collapse-reorder-list/aril-ui-collapse-reorder-list.mjs +0 -5
  688. package/esm2022/ui/collapse-reorder-list/index.mjs +0 -2
  689. package/esm2022/ui/collapse-reorder-list/src/collapse-reorder-list.component.mjs +0 -53
  690. package/esm2022/ui/dxEditor/aril-ui-dxEditor.mjs +0 -5
  691. package/esm2022/ui/dxEditor/index.mjs +0 -2
  692. package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +0 -26
  693. package/esm2022/ui/dxField/aril-ui-dxField.mjs +0 -5
  694. package/esm2022/ui/dxField/index.mjs +0 -2
  695. package/esm2022/ui/dxField/src/dx-field.component.mjs +0 -19
  696. package/esm2022/ui/editor/aril-ui-editor.mjs +0 -5
  697. package/esm2022/ui/editor/index.mjs +0 -3
  698. package/esm2022/ui/editor/src/aril-editor.component.mjs +0 -171
  699. package/esm2022/ui/editor/src/types.mjs +0 -26
  700. package/esm2022/ui/field/aril-ui-field.mjs +0 -5
  701. package/esm2022/ui/field/index.mjs +0 -2
  702. package/esm2022/ui/field/src/field.component.mjs +0 -45
  703. package/esm2022/ui/fileUpload/aril-ui-fileUpload.mjs +0 -5
  704. package/esm2022/ui/fileUpload/index.mjs +0 -2
  705. package/esm2022/ui/fileUpload/src/file-upload.component.mjs +0 -73
  706. package/esm2022/ui/form/aril-ui-form.mjs +0 -5
  707. package/esm2022/ui/form/index.mjs +0 -22
  708. package/esm2022/ui/form/src/form-submit-button.component.mjs +0 -40
  709. package/esm2022/ui/form/src/form.component.mjs +0 -27
  710. package/esm2022/ui/img-viewer/aril-ui-img-viewer.mjs +0 -5
  711. package/esm2022/ui/img-viewer/index.mjs +0 -2
  712. package/esm2022/ui/img-viewer/src/img-viewer.component.mjs +0 -57
  713. package/esm2022/ui/index.mjs +0 -2
  714. package/esm2022/ui/json-diff-comparison/aril-ui-json-diff-comparison.mjs +0 -5
  715. package/esm2022/ui/json-diff-comparison/index.mjs +0 -2
  716. package/esm2022/ui/json-diff-comparison/src/json-diff.component.mjs +0 -49
  717. package/esm2022/ui/lib/aril-ui-lib.mjs +0 -5
  718. package/esm2022/ui/lib/index.mjs +0 -16
  719. package/esm2022/ui/lib/src/form/form-error-message.component.mjs +0 -33
  720. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +0 -34
  721. package/esm2022/ui/lib/src/form/form-field-builder.mjs +0 -23
  722. package/esm2022/ui/lib/src/form/form-validation.mjs +0 -14
  723. package/esm2022/ui/lib/src/grid/enum-color-picker.pipe.mjs +0 -35
  724. package/esm2022/ui/lib/src/grid/flex-grid.directive.mjs +0 -21
  725. package/esm2022/ui/lib/src/input/baseInput.mjs +0 -24
  726. package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +0 -49
  727. package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +0 -22
  728. package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +0 -25
  729. package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +0 -63
  730. package/esm2022/ui/lib/src/input/input-transforms.mjs +0 -8
  731. package/esm2022/ui/lib/src/input/value-accessor.directive.mjs +0 -38
  732. package/esm2022/ui/loader/aril-ui-loader.mjs +0 -5
  733. package/esm2022/ui/loader/index.mjs +0 -2
  734. package/esm2022/ui/loader/src/loader.component.mjs +0 -14
  735. package/esm2022/ui/mask/aril-ui-mask.mjs +0 -5
  736. package/esm2022/ui/mask/index.mjs +0 -2
  737. package/esm2022/ui/mask/src/mask.component.mjs +0 -35
  738. package/esm2022/ui/multiSelect/aril-ui-multiSelect.mjs +0 -5
  739. package/esm2022/ui/multiSelect/index.mjs +0 -2
  740. package/esm2022/ui/multiSelect/src/interfaces.mjs +0 -2
  741. package/esm2022/ui/multiSelect/src/multi-select.component.mjs +0 -57
  742. package/esm2022/ui/number/aril-ui-number.mjs +0 -5
  743. package/esm2022/ui/number/index.mjs +0 -2
  744. package/esm2022/ui/number/src/number.component.mjs +0 -38
  745. package/esm2022/ui/operation-types-dialog/aril-ui-operation-types-dialog.mjs +0 -5
  746. package/esm2022/ui/operation-types-dialog/index.mjs +0 -2
  747. package/esm2022/ui/operation-types-dialog/src/operation-types-dialog.component.mjs +0 -91
  748. package/esm2022/ui/overlayPanel/aril-ui-overlayPanel.mjs +0 -5
  749. package/esm2022/ui/overlayPanel/index.mjs +0 -2
  750. package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +0 -20
  751. package/esm2022/ui/panel/aril-ui-panel.mjs +0 -5
  752. package/esm2022/ui/panel/index.mjs +0 -2
  753. package/esm2022/ui/panel/src/panel.component.mjs +0 -33
  754. package/esm2022/ui/password/aril-ui-password.mjs +0 -5
  755. package/esm2022/ui/password/index.mjs +0 -2
  756. package/esm2022/ui/password/src/password.component.mjs +0 -29
  757. package/esm2022/ui/pdf-viewer/aril-ui-pdf-viewer.mjs +0 -5
  758. package/esm2022/ui/pdf-viewer/index.mjs +0 -2
  759. package/esm2022/ui/pdf-viewer/src/pdf-viewer.component.mjs +0 -27
  760. package/esm2022/ui/progressbar/aril-ui-progressbar.mjs +0 -5
  761. package/esm2022/ui/progressbar/index.mjs +0 -2
  762. package/esm2022/ui/progressbar/src/progressbar.component.mjs +0 -18
  763. package/esm2022/ui/radioButton/aril-ui-radioButton.mjs +0 -5
  764. package/esm2022/ui/radioButton/index.mjs +0 -2
  765. package/esm2022/ui/radioButton/src/radio-button.component.mjs +0 -30
  766. package/esm2022/ui/relativeDateSelector/aril-ui-relativeDateSelector.mjs +0 -5
  767. package/esm2022/ui/relativeDateSelector/index.mjs +0 -2
  768. package/esm2022/ui/relativeDateSelector/src/enum.mjs +0 -31
  769. package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +0 -248
  770. package/esm2022/ui/selectBox/aril-ui-selectBox.mjs +0 -5
  771. package/esm2022/ui/selectBox/index.mjs +0 -2
  772. package/esm2022/ui/selectBox/src/interfaces.mjs +0 -2
  773. package/esm2022/ui/selectBox/src/select-box.component.mjs +0 -67
  774. package/esm2022/ui/switch/aril-ui-switch.mjs +0 -5
  775. package/esm2022/ui/switch/index.mjs +0 -2
  776. package/esm2022/ui/switch/src/switch.component.mjs +0 -23
  777. package/esm2022/ui/table/aril-ui-table.mjs +0 -5
  778. package/esm2022/ui/table/index.mjs +0 -131
  779. package/esm2022/ui/table/src/export-overlay-panel.component.mjs +0 -321
  780. package/esm2022/ui/table/src/interfaces.mjs +0 -44
  781. package/esm2022/ui/table/src/table-column.component.mjs +0 -31
  782. package/esm2022/ui/table/src/table.component.mjs +0 -334
  783. package/esm2022/ui/table-expand/aril-ui-table-expand.mjs +0 -5
  784. package/esm2022/ui/table-expand/index.mjs +0 -61
  785. package/esm2022/ui/table-expand/src/table-column.component.mjs +0 -25
  786. package/esm2022/ui/table-expand/src/table-expand-area.component.mjs +0 -17
  787. package/esm2022/ui/table-expand/src/table.component.mjs +0 -99
  788. package/esm2022/ui/tag/aril-ui-tag.mjs +0 -5
  789. package/esm2022/ui/tag/index.mjs +0 -2
  790. package/esm2022/ui/tag/src/interface.mjs +0 -2
  791. package/esm2022/ui/tag/src/tag.component.mjs +0 -20
  792. package/esm2022/ui/tagBox/aril-ui-tagBox.mjs +0 -5
  793. package/esm2022/ui/tagBox/index.mjs +0 -2
  794. package/esm2022/ui/tagBox/src/tag-box.component.mjs +0 -55
  795. package/esm2022/ui/text/aril-ui-text.mjs +0 -5
  796. package/esm2022/ui/text/index.mjs +0 -2
  797. package/esm2022/ui/text/src/text.component.mjs +0 -47
  798. package/esm2022/ui/textArea/aril-ui-textArea.mjs +0 -5
  799. package/esm2022/ui/textArea/index.mjs +0 -2
  800. package/esm2022/ui/textArea/src/text-area.component.mjs +0 -27
  801. package/esm2022/ui/toggle-button/aril-ui-toggle-button.mjs +0 -5
  802. package/esm2022/ui/toggle-button/index.mjs +0 -2
  803. package/esm2022/ui/toggle-button/src/toggle-button.component.mjs +0 -25
  804. package/esm2022/ui/tooltip/aril-ui-tooltip.mjs +0 -5
  805. package/esm2022/ui/tooltip/index.mjs +0 -2
  806. package/esm2022/ui/tooltip/src/tooltip-component.mjs +0 -23
  807. package/esm2022/ui/translate-input/aril-ui-translate-input.mjs +0 -5
  808. package/esm2022/ui/translate-input/index.mjs +0 -2
  809. package/esm2022/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.mjs +0 -64
  810. package/esm2022/ui/translate-input/src/aril-lang-modal/constants.mjs +0 -15
  811. package/esm2022/ui/translate-input/src/aril-translate-input.component.mjs +0 -128
  812. package/esm2022/ui/translate-input/src/interface.mjs +0 -2
  813. package/esm2022/ui/tree/aril-ui-tree.mjs +0 -5
  814. package/esm2022/ui/tree/index.mjs +0 -2
  815. package/esm2022/ui/tree/src/tree.component.mjs +0 -53
  816. package/esm2022/ui/treeSelect/aril-ui-treeSelect.mjs +0 -5
  817. package/esm2022/ui/treeSelect/index.mjs +0 -2
  818. package/esm2022/ui/treeSelect/src/treeSelect.component.mjs +0 -41
  819. package/esm2022/ui/treeTable/aril-ui-treeTable.mjs +0 -5
  820. package/esm2022/ui/treeTable/index.mjs +0 -2
  821. package/esm2022/ui/treeTable/src/tree-table.component.mjs +0 -55
  822. package/esm2022/ui/value/aril-ui-value.mjs +0 -5
  823. package/esm2022/ui/value/index.mjs +0 -2
  824. package/esm2022/ui/value/src/value.component.mjs +0 -207
  825. package/esm2022/ui-business/aril-ui-business.mjs +0 -5
  826. package/esm2022/ui-business/assetPicker/aril-ui-business-assetPicker.mjs +0 -5
  827. package/esm2022/ui-business/assetPicker/index.mjs +0 -2
  828. package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +0 -182
  829. package/esm2022/ui-business/assetPicker/src/interface.mjs +0 -2
  830. package/esm2022/ui-business/detailed-overlay-panel/aril-ui-business-detailed-overlay-panel.mjs +0 -5
  831. package/esm2022/ui-business/detailed-overlay-panel/index.mjs +0 -2
  832. package/esm2022/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +0 -61
  833. package/esm2022/ui-business/detailed-overlay-panel/src/interface.mjs +0 -19
  834. package/esm2022/ui-business/enumPicker/aril-ui-business-enumPicker.mjs +0 -5
  835. package/esm2022/ui-business/enumPicker/index.mjs +0 -2
  836. package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +0 -124
  837. package/esm2022/ui-business/enumPicker/src/interface.mjs +0 -2
  838. package/esm2022/ui-business/image-viewer/aril-ui-business-image-viewer.mjs +0 -5
  839. package/esm2022/ui-business/image-viewer/index.mjs +0 -2
  840. package/esm2022/ui-business/image-viewer/src/aril-image-viewer.component.mjs +0 -111
  841. package/esm2022/ui-business/index.mjs +0 -2
  842. package/esm2022/ui-business/multiple-ref-value/aril-ui-business-multiple-ref-value.mjs +0 -5
  843. package/esm2022/ui-business/multiple-ref-value/index.mjs +0 -2
  844. package/esm2022/ui-business/multiple-ref-value/src/multiple-ref-value.component.mjs +0 -23
  845. package/esm2022/ui-business/notification-templates-dialog/aril-ui-business-notification-templates-dialog.mjs +0 -5
  846. package/esm2022/ui-business/notification-templates-dialog/index.mjs +0 -2
  847. package/esm2022/ui-business/notification-templates-dialog/src/interface.mjs +0 -8
  848. package/esm2022/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.mjs +0 -56
  849. package/esm2022/ui-business/operation-types-dialog/aril-ui-business-operation-types-dialog.mjs +0 -5
  850. package/esm2022/ui-business/operation-types-dialog/index.mjs +0 -2
  851. package/esm2022/ui-business/operation-types-dialog/src/operation-types-dialog.component.mjs +0 -76
  852. package/esm2022/ui-business/ref-value/aril-ui-business-ref-value.mjs +0 -5
  853. package/esm2022/ui-business/ref-value/index.mjs +0 -2
  854. package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +0 -39
  855. package/esm2022/ui-business/rolePicker/aril-ui-business-rolePicker.mjs +0 -5
  856. package/esm2022/ui-business/rolePicker/index.mjs +0 -2
  857. package/esm2022/ui-business/rolePicker/src/interface.mjs +0 -2
  858. package/esm2022/ui-business/rolePicker/src/role-picker.component.mjs +0 -71
  859. package/esm2022/ui-business/userPicker/aril-ui-business-userPicker.mjs +0 -5
  860. package/esm2022/ui-business/userPicker/index.mjs +0 -2
  861. package/esm2022/ui-business/userPicker/src/interface.mjs +0 -2
  862. package/esm2022/ui-business/userPicker/src/user-picker.component.mjs +0 -43
  863. package/esm2022/util/aril-util.mjs +0 -5
  864. package/esm2022/util/block/aril-util-block.mjs +0 -5
  865. package/esm2022/util/block/index.mjs +0 -2
  866. package/esm2022/util/block/src/block.mjs +0 -64
  867. package/esm2022/util/custom_pages/aril-util-custom_pages.mjs +0 -5
  868. package/esm2022/util/custom_pages/index.mjs +0 -2
  869. package/esm2022/util/custom_pages/src/notFound.component.mjs +0 -65
  870. package/esm2022/util/directives/aril-util-directives.mjs +0 -5
  871. package/esm2022/util/directives/index.mjs +0 -4
  872. package/esm2022/util/directives/src/detail-page-customization/detail-page-customization.directive.mjs +0 -298
  873. package/esm2022/util/directives/src/detail-page-customization/index.mjs +0 -3
  874. package/esm2022/util/directives/src/detail-page-customization/models.mjs +0 -4
  875. package/esm2022/util/directives/src/dialog-component/plugin-dialog.component.mjs +0 -26
  876. package/esm2022/util/directives/src/dialog-service/plugin-dialog.service.mjs +0 -16
  877. package/esm2022/util/index.mjs +0 -2
  878. package/esm2022/util/lib/aril-util-lib.mjs +0 -5
  879. package/esm2022/util/lib/index.mjs +0 -5
  880. package/esm2022/util/lib/src/interfaces.mjs +0 -4
  881. package/esm2022/util/lib/src/module-router.mjs +0 -16
  882. package/esm2022/util/lib/src/types.mjs +0 -6
  883. package/esm2022/util/lib/src/validators/iban.validator.mjs +0 -189
  884. package/esm2022/util/lib/src/validators/index.mjs +0 -5
  885. package/esm2022/util/lib/src/validators/max-array-length.validator.mjs +0 -16
  886. package/esm2022/util/lib/src/validators/min-array-length.validator.mjs +0 -16
  887. package/esm2022/util/lib/src/validators/tckn.validator.mjs +0 -39
  888. package/esm2022/util/lib/src/validators/validators.mjs +0 -16
  889. package/esm2022/util/loaders/aril-util-loaders.mjs +0 -5
  890. package/esm2022/util/loaders/index.mjs +0 -2
  891. package/esm2022/util/loaders/style/style.loader.service.mjs +0 -61
  892. package/esm2022/util/pipes/aril-util-pipes.mjs +0 -5
  893. package/esm2022/util/pipes/index.mjs +0 -7
  894. package/esm2022/util/pipes/src/distance-to-now.pipe.mjs +0 -38
  895. package/esm2022/util/pipes/src/get-column-by-field.pipe.mjs +0 -17
  896. package/esm2022/util/pipes/src/parse.pipe.mjs +0 -22
  897. package/esm2022/util/pipes/src/round-number.pipe.mjs +0 -65
  898. package/esm2022/util/pipes/src/safe.pipe.mjs +0 -34
  899. package/esm2022/util/pipes/src/translate-json/index.mjs +0 -2
  900. package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +0 -41
  901. package/esm2022/util/primitive-extensions/aril-util-primitive-extensions.mjs +0 -5
  902. package/esm2022/util/primitive-extensions/index.mjs +0 -5
  903. package/esm2022/util/primitive-extensions/src/boolean.extensions.mjs +0 -2
  904. package/esm2022/util/primitive-extensions/src/date.extensions.mjs +0 -116
  905. package/esm2022/util/primitive-extensions/src/number.extensions.mjs +0 -39
  906. package/esm2022/util/primitive-extensions/src/string.extensions.mjs +0 -23
  907. package/esm2022/util/pub-sub/aril-util-pub-sub.mjs +0 -5
  908. package/esm2022/util/pub-sub/index.mjs +0 -2
  909. package/esm2022/util/pub-sub/src/pub-sub.service.mjs +0 -30
  910. package/esm2022/util/sync-active-tab-route/aril-util-sync-active-tab-route.mjs +0 -5
  911. package/esm2022/util/sync-active-tab-route/index.mjs +0 -2
  912. package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +0 -45
  913. package/esm2022/util/unwrap/aril-util-unwrap.mjs +0 -5
  914. package/esm2022/util/unwrap/index.mjs +0 -2
  915. package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +0 -24
  916. package/fesm2022/aril-app.component-hxaLgwmC.mjs +0 -81
  917. package/fesm2022/aril-app.component-hxaLgwmC.mjs.map +0 -1
  918. package/fesm2022/aril-boot-config-api.mjs +0 -126
  919. package/fesm2022/aril-boot-config-api.mjs.map +0 -1
  920. package/fesm2022/aril-boot-config-apps.mjs +0 -138
  921. package/fesm2022/aril-boot-config-apps.mjs.map +0 -1
  922. package/fesm2022/aril-boot-config-plugins.mjs +0 -159
  923. package/fesm2022/aril-boot-config-plugins.mjs.map +0 -1
  924. package/fesm2022/aril-boot-config-translate.mjs +0 -72
  925. package/fesm2022/aril-boot-config-translate.mjs.map +0 -1
  926. package/fesm2022/aril-boot-host.mjs +0 -108
  927. package/fesm2022/aril-boot-host.mjs.map +0 -1
  928. package/fesm2022/aril-boot-mfe-app.component-s1a-tkOD.mjs +0 -80
  929. package/fesm2022/aril-boot-mfe-app.component-s1a-tkOD.mjs.map +0 -1
  930. package/fesm2022/aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs +0 -369
  931. package/fesm2022/aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs.map +0 -1
  932. package/fesm2022/aril-boot-mfe.mjs +0 -19
  933. package/fesm2022/aril-boot-mfe.mjs.map +0 -1
  934. package/fesm2022/aril-boot.mjs +0 -8
  935. package/fesm2022/aril-boot.mjs.map +0 -1
  936. package/fesm2022/aril-http.mjs +0 -437
  937. package/fesm2022/aril-http.mjs.map +0 -1
  938. package/fesm2022/aril-i18n.mjs +0 -71
  939. package/fesm2022/aril-i18n.mjs.map +0 -1
  940. package/fesm2022/aril-keycloak.mjs +0 -99
  941. package/fesm2022/aril-keycloak.mjs.map +0 -1
  942. package/fesm2022/aril-provider.mjs +0 -74
  943. package/fesm2022/aril-provider.mjs.map +0 -1
  944. package/fesm2022/aril-theme-layout.mjs +0 -3015
  945. package/fesm2022/aril-theme-layout.mjs.map +0 -1
  946. package/fesm2022/aril-theme.mjs +0 -8
  947. package/fesm2022/aril-theme.mjs.map +0 -1
  948. package/fesm2022/aril-ui-autoComplete.mjs +0 -116
  949. package/fesm2022/aril-ui-autoComplete.mjs.map +0 -1
  950. package/fesm2022/aril-ui-badge.mjs +0 -66
  951. package/fesm2022/aril-ui-badge.mjs.map +0 -1
  952. package/fesm2022/aril-ui-business-assetPicker.mjs +0 -189
  953. package/fesm2022/aril-ui-business-assetPicker.mjs.map +0 -1
  954. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs +0 -68
  955. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs.map +0 -1
  956. package/fesm2022/aril-ui-business-enumPicker.mjs +0 -131
  957. package/fesm2022/aril-ui-business-enumPicker.mjs.map +0 -1
  958. package/fesm2022/aril-ui-business-image-viewer.mjs +0 -118
  959. package/fesm2022/aril-ui-business-image-viewer.mjs.map +0 -1
  960. package/fesm2022/aril-ui-business-multiple-ref-value.mjs +0 -30
  961. package/fesm2022/aril-ui-business-multiple-ref-value.mjs.map +0 -1
  962. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs +0 -70
  963. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs.map +0 -1
  964. package/fesm2022/aril-ui-business-operation-types-dialog.mjs +0 -83
  965. package/fesm2022/aril-ui-business-operation-types-dialog.mjs.map +0 -1
  966. package/fesm2022/aril-ui-business-ref-value.mjs +0 -46
  967. package/fesm2022/aril-ui-business-ref-value.mjs.map +0 -1
  968. package/fesm2022/aril-ui-business-rolePicker.mjs +0 -78
  969. package/fesm2022/aril-ui-business-rolePicker.mjs.map +0 -1
  970. package/fesm2022/aril-ui-business-userPicker.mjs +0 -50
  971. package/fesm2022/aril-ui-business-userPicker.mjs.map +0 -1
  972. package/fesm2022/aril-ui-business.mjs +0 -8
  973. package/fesm2022/aril-ui-business.mjs.map +0 -1
  974. package/fesm2022/aril-ui-button.mjs +0 -62
  975. package/fesm2022/aril-ui-button.mjs.map +0 -1
  976. package/fesm2022/aril-ui-calendar.mjs +0 -231
  977. package/fesm2022/aril-ui-calendar.mjs.map +0 -1
  978. package/fesm2022/aril-ui-charts.mjs +0 -1666
  979. package/fesm2022/aril-ui-charts.mjs.map +0 -1
  980. package/fesm2022/aril-ui-checkbox.mjs +0 -50
  981. package/fesm2022/aril-ui-checkbox.mjs.map +0 -1
  982. package/fesm2022/aril-ui-chip.mjs +0 -136
  983. package/fesm2022/aril-ui-chip.mjs.map +0 -1
  984. package/fesm2022/aril-ui-collapse-reorder-list.mjs +0 -60
  985. package/fesm2022/aril-ui-collapse-reorder-list.mjs.map +0 -1
  986. package/fesm2022/aril-ui-dxEditor.mjs +0 -33
  987. package/fesm2022/aril-ui-dxEditor.mjs.map +0 -1
  988. package/fesm2022/aril-ui-dxField.mjs +0 -26
  989. package/fesm2022/aril-ui-dxField.mjs.map +0 -1
  990. package/fesm2022/aril-ui-editor.mjs +0 -203
  991. package/fesm2022/aril-ui-editor.mjs.map +0 -1
  992. package/fesm2022/aril-ui-field.mjs +0 -52
  993. package/fesm2022/aril-ui-field.mjs.map +0 -1
  994. package/fesm2022/aril-ui-fileUpload.mjs +0 -80
  995. package/fesm2022/aril-ui-fileUpload.mjs.map +0 -1
  996. package/fesm2022/aril-ui-form.mjs +0 -86
  997. package/fesm2022/aril-ui-form.mjs.map +0 -1
  998. package/fesm2022/aril-ui-img-viewer.mjs +0 -64
  999. package/fesm2022/aril-ui-img-viewer.mjs.map +0 -1
  1000. package/fesm2022/aril-ui-json-diff-comparison.mjs +0 -56
  1001. package/fesm2022/aril-ui-json-diff-comparison.mjs.map +0 -1
  1002. package/fesm2022/aril-ui-lib.mjs +0 -376
  1003. package/fesm2022/aril-ui-lib.mjs.map +0 -1
  1004. package/fesm2022/aril-ui-loader.mjs +0 -21
  1005. package/fesm2022/aril-ui-loader.mjs.map +0 -1
  1006. package/fesm2022/aril-ui-mask.mjs +0 -42
  1007. package/fesm2022/aril-ui-mask.mjs.map +0 -1
  1008. package/fesm2022/aril-ui-multiSelect.mjs +0 -64
  1009. package/fesm2022/aril-ui-multiSelect.mjs.map +0 -1
  1010. package/fesm2022/aril-ui-number.mjs +0 -45
  1011. package/fesm2022/aril-ui-number.mjs.map +0 -1
  1012. package/fesm2022/aril-ui-operation-types-dialog.mjs +0 -98
  1013. package/fesm2022/aril-ui-operation-types-dialog.mjs.map +0 -1
  1014. package/fesm2022/aril-ui-overlayPanel.mjs +0 -27
  1015. package/fesm2022/aril-ui-overlayPanel.mjs.map +0 -1
  1016. package/fesm2022/aril-ui-panel.mjs +0 -40
  1017. package/fesm2022/aril-ui-panel.mjs.map +0 -1
  1018. package/fesm2022/aril-ui-password.mjs +0 -36
  1019. package/fesm2022/aril-ui-password.mjs.map +0 -1
  1020. package/fesm2022/aril-ui-pdf-viewer.mjs +0 -34
  1021. package/fesm2022/aril-ui-pdf-viewer.mjs.map +0 -1
  1022. package/fesm2022/aril-ui-progressbar.mjs +0 -25
  1023. package/fesm2022/aril-ui-progressbar.mjs.map +0 -1
  1024. package/fesm2022/aril-ui-radioButton.mjs +0 -37
  1025. package/fesm2022/aril-ui-radioButton.mjs.map +0 -1
  1026. package/fesm2022/aril-ui-relativeDateSelector.mjs +0 -285
  1027. package/fesm2022/aril-ui-relativeDateSelector.mjs.map +0 -1
  1028. package/fesm2022/aril-ui-selectBox.mjs +0 -74
  1029. package/fesm2022/aril-ui-selectBox.mjs.map +0 -1
  1030. package/fesm2022/aril-ui-switch.mjs +0 -30
  1031. package/fesm2022/aril-ui-switch.mjs.map +0 -1
  1032. package/fesm2022/aril-ui-table-expand.mjs +0 -194
  1033. package/fesm2022/aril-ui-table-expand.mjs.map +0 -1
  1034. package/fesm2022/aril-ui-table.mjs +0 -833
  1035. package/fesm2022/aril-ui-table.mjs.map +0 -1
  1036. package/fesm2022/aril-ui-tag.mjs +0 -27
  1037. package/fesm2022/aril-ui-tag.mjs.map +0 -1
  1038. package/fesm2022/aril-ui-tagBox.mjs +0 -62
  1039. package/fesm2022/aril-ui-tagBox.mjs.map +0 -1
  1040. package/fesm2022/aril-ui-text.mjs +0 -54
  1041. package/fesm2022/aril-ui-text.mjs.map +0 -1
  1042. package/fesm2022/aril-ui-textArea.mjs +0 -34
  1043. package/fesm2022/aril-ui-textArea.mjs.map +0 -1
  1044. package/fesm2022/aril-ui-toggle-button.mjs +0 -32
  1045. package/fesm2022/aril-ui-toggle-button.mjs.map +0 -1
  1046. package/fesm2022/aril-ui-tooltip.mjs +0 -30
  1047. package/fesm2022/aril-ui-tooltip.mjs.map +0 -1
  1048. package/fesm2022/aril-ui-translate-input.mjs +0 -207
  1049. package/fesm2022/aril-ui-translate-input.mjs.map +0 -1
  1050. package/fesm2022/aril-ui-tree.mjs +0 -60
  1051. package/fesm2022/aril-ui-tree.mjs.map +0 -1
  1052. package/fesm2022/aril-ui-treeSelect.mjs +0 -48
  1053. package/fesm2022/aril-ui-treeSelect.mjs.map +0 -1
  1054. package/fesm2022/aril-ui-treeTable.mjs +0 -62
  1055. package/fesm2022/aril-ui-treeTable.mjs.map +0 -1
  1056. package/fesm2022/aril-ui-value.mjs +0 -214
  1057. package/fesm2022/aril-ui-value.mjs.map +0 -1
  1058. package/fesm2022/aril-ui.mjs +0 -8
  1059. package/fesm2022/aril-ui.mjs.map +0 -1
  1060. package/fesm2022/aril-util-block.mjs +0 -71
  1061. package/fesm2022/aril-util-block.mjs.map +0 -1
  1062. package/fesm2022/aril-util-custom_pages.mjs +0 -72
  1063. package/fesm2022/aril-util-custom_pages.mjs.map +0 -1
  1064. package/fesm2022/aril-util-directives.mjs +0 -344
  1065. package/fesm2022/aril-util-directives.mjs.map +0 -1
  1066. package/fesm2022/aril-util-lib.mjs +0 -307
  1067. package/fesm2022/aril-util-lib.mjs.map +0 -1
  1068. package/fesm2022/aril-util-loaders.mjs +0 -68
  1069. package/fesm2022/aril-util-loaders.mjs.map +0 -1
  1070. package/fesm2022/aril-util-pipes.mjs +0 -213
  1071. package/fesm2022/aril-util-pipes.mjs.map +0 -1
  1072. package/fesm2022/aril-util-primitive-extensions.mjs +0 -179
  1073. package/fesm2022/aril-util-primitive-extensions.mjs.map +0 -1
  1074. package/fesm2022/aril-util-pub-sub.mjs +0 -37
  1075. package/fesm2022/aril-util-pub-sub.mjs.map +0 -1
  1076. package/fesm2022/aril-util-sync-active-tab-route.mjs +0 -52
  1077. package/fesm2022/aril-util-sync-active-tab-route.mjs.map +0 -1
  1078. package/fesm2022/aril-util-unwrap.mjs +0 -31
  1079. package/fesm2022/aril-util-unwrap.mjs.map +0 -1
  1080. package/fesm2022/aril-util.mjs +0 -8
  1081. package/fesm2022/aril-util.mjs.map +0 -1
  1082. package/fesm2022/aril.mjs +0 -456
  1083. package/fesm2022/aril.mjs.map +0 -1
  1084. package/http/index.d.ts +0 -8
  1085. package/http/lib/enums.d.ts +0 -31
  1086. package/http/lib/interfaces.d.ts +0 -27
  1087. package/http/src/httpBackend.d.ts +0 -8
  1088. package/http/src/httpClient.d.ts +0 -9
  1089. package/http/src/interceptor/accept-language.interceptor.d.ts +0 -2
  1090. package/http/src/serviceBase.d.ts +0 -8
  1091. package/http/src/serviceMockBase.d.ts +0 -6
  1092. package/http/src/serviceRequest.d.ts +0 -4
  1093. package/http/src/serviceStateMethods.d.ts +0 -17
  1094. package/i18n/src/folder-name-token.d.ts +0 -2
  1095. package/i18n/src/i18n.module.d.ts +0 -7
  1096. package/i18n/src/loader.d.ts +0 -8
  1097. package/i18n/src/provideI18n.d.ts +0 -2
  1098. package/i18n/src/provideScope.d.ts +0 -5
  1099. package/index.d.ts +0 -5
  1100. package/keycloak/index.d.ts +0 -1
  1101. package/keycloak/src/auth.interceptor.d.ts +0 -3
  1102. package/provider/src/index.d.ts +0 -4
  1103. package/provider/src/prodiveHost.d.ts +0 -3
  1104. package/provider/src/prodiveHostRouter.d.ts +0 -2
  1105. package/provider/src/provideHostKeycloak.d.ts +0 -5
  1106. package/provider/src/provideLocaleId.d.ts +0 -2
  1107. package/scripts/util/blockui.min.js +0 -7
  1108. package/styles/ui/ui.common.scss +0 -42
  1109. package/styles/util/blockui.css +0 -56
  1110. package/theme/index.d.ts +0 -1
  1111. package/theme/layout/app/breadcrumb/app.breadcrumb.component.d.ts +0 -25
  1112. package/theme/layout/app/chatbot/app.chatbot.component.d.ts +0 -35
  1113. package/theme/layout/app/expandableMenu/expandable-menu.component.d.ts +0 -72
  1114. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.d.ts +0 -2031
  1115. package/theme/layout/app/favorite-pages/favorite-pages.service.d.ts +0 -56
  1116. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.d.ts +0 -36
  1117. package/theme/layout/app/general-search/general-search.component.d.ts +0 -22
  1118. package/theme/layout/app/general-search/helpers.d.ts +0 -7
  1119. package/theme/layout/app/general-search/models.d.ts +0 -131
  1120. package/theme/layout/app/history/history-sidebar.component.d.ts +0 -2018
  1121. package/theme/layout/app/history/history.service.d.ts +0 -36
  1122. package/theme/layout/app/layout/app.layout.component.d.ts +0 -47
  1123. package/theme/layout/app/layout/mfe.layout.component.d.ts +0 -10
  1124. package/theme/layout/app/notifications/notifications-sidebar.component.d.ts +0 -2306
  1125. package/theme/layout/app/profileSidebar/app.profilesidebar.component.d.ts +0 -29
  1126. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.d.ts +0 -30
  1127. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.d.ts +0 -52
  1128. package/theme/layout/app/profileSidebar/profile.service.d.ts +0 -72
  1129. package/theme/layout/app/site-map/site-map-sidebar.component.d.ts +0 -2025
  1130. package/theme/layout/app/static-sidebar/static-sidebar.component.d.ts +0 -57
  1131. package/theme/layout/app/topbar/app.topbar.component.d.ts +0 -35
  1132. package/theme/layout/index.d.ts +0 -7
  1133. package/theme/layout/service/app.layout.service.d.ts +0 -69
  1134. package/theme/layout/service/app.menu.service.d.ts +0 -22
  1135. package/theme/layout/service/breadcrumb.service.d.ts +0 -10
  1136. package/theme/layout/service/interfaces/enum.d.ts +0 -12
  1137. package/theme/layout/service/interfaces/interfaces.d.ts +0 -131
  1138. package/theme/layout/service/menuchangeevent.d.ts +0 -4
  1139. package/theme/layout/service/notifications.service.d.ts +0 -12
  1140. package/theme/layout/service/search.service.d.ts +0 -11
  1141. package/theme/layout/service/selection-group.service.d.ts +0 -17
  1142. package/ui/autoComplete/src/auto-complete.component.d.ts +0 -31
  1143. package/ui/autoComplete/src/interfaces.d.ts +0 -28
  1144. package/ui/badge/src/badge.component.d.ts +0 -32
  1145. package/ui/button/src/button.component.d.ts +0 -28
  1146. package/ui/button/src/split-button.component.d.ts +0 -8
  1147. package/ui/calendar/src/calendar.component.d.ts +0 -63
  1148. package/ui/charts/index.d.ts +0 -12
  1149. package/ui/charts/src/amCharts/column/column-chart.component.d.ts +0 -25
  1150. package/ui/charts/src/amCharts/line/line-chart.component.d.ts +0 -26
  1151. package/ui/charts/src/amCharts/pie/pie-chart.component.d.ts +0 -24
  1152. package/ui/charts/src/highCharts/area/area-chart.component.d.ts +0 -20
  1153. package/ui/charts/src/highCharts/bar/bar-chart.component.d.ts +0 -26
  1154. package/ui/charts/src/highCharts/column/column-chart.component.d.ts +0 -28
  1155. package/ui/charts/src/highCharts/gauge/solid-gauge.component.d.ts +0 -38
  1156. package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.d.ts +0 -32
  1157. package/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.d.ts +0 -24
  1158. package/ui/charts/src/highCharts/line/line-chart-series.component.d.ts +0 -21
  1159. package/ui/charts/src/highCharts/line/line-chart.component.d.ts +0 -21
  1160. package/ui/charts/src/highCharts/pie/pie-chart.component.d.ts +0 -27
  1161. package/ui/charts/src/theme/theme.d.ts +0 -5
  1162. package/ui/checkbox/src/check-box.component.d.ts +0 -12
  1163. package/ui/checkbox/src/tri-state-checkbox.component.d.ts +0 -9
  1164. package/ui/chip/index.d.ts +0 -1
  1165. package/ui/chip/src/chip.component.d.ts +0 -34
  1166. package/ui/collapse-reorder-list/index.d.ts +0 -1
  1167. package/ui/collapse-reorder-list/src/collapse-reorder-list.component.d.ts +0 -21
  1168. package/ui/dxEditor/src/dx-editor.component.d.ts +0 -11
  1169. package/ui/dxField/src/dx-field.component.d.ts +0 -10
  1170. package/ui/editor/src/aril-editor.component.d.ts +0 -28
  1171. package/ui/editor/src/types.d.ts +0 -23
  1172. package/ui/field/src/field.component.d.ts +0 -30
  1173. package/ui/fileUpload/src/file-upload.component.d.ts +0 -49
  1174. package/ui/form/index.d.ts +0 -11
  1175. package/ui/form/src/form-submit-button.component.d.ts +0 -14
  1176. package/ui/form/src/form.component.d.ts +0 -8
  1177. package/ui/img-viewer/index.d.ts +0 -1
  1178. package/ui/img-viewer/src/img-viewer.component.d.ts +0 -13
  1179. package/ui/index.d.ts +0 -1
  1180. package/ui/json-diff-comparison/src/json-diff.component.d.ts +0 -13
  1181. package/ui/lib/index.d.ts +0 -12
  1182. package/ui/lib/src/form/form-error-message.component.d.ts +0 -9
  1183. package/ui/lib/src/form/form-error-message.directive.d.ts +0 -14
  1184. package/ui/lib/src/form/form-field-builder.d.ts +0 -8
  1185. package/ui/lib/src/form/form-validation.d.ts +0 -2
  1186. package/ui/lib/src/grid/enum-color-picker.pipe.d.ts +0 -9
  1187. package/ui/lib/src/grid/flex-grid.directive.d.ts +0 -6
  1188. package/ui/lib/src/input/baseInput.d.ts +0 -7
  1189. package/ui/lib/src/input/common-input-validators.service.d.ts +0 -20
  1190. package/ui/lib/src/input/dx-input-error-message.pipe.d.ts +0 -11
  1191. package/ui/lib/src/input/input-disabled.directive.d.ts +0 -9
  1192. package/ui/lib/src/input/input-error-message.pipe.d.ts +0 -10
  1193. package/ui/lib/src/input/input-transforms.d.ts +0 -5
  1194. package/ui/lib/src/input/value-accessor.directive.d.ts +0 -9
  1195. package/ui/loader/src/loader.component.d.ts +0 -5
  1196. package/ui/mask/src/mask.component.d.ts +0 -21
  1197. package/ui/multiSelect/src/interfaces.d.ts +0 -32
  1198. package/ui/multiSelect/src/multi-select.component.d.ts +0 -28
  1199. package/ui/number/src/number.component.d.ts +0 -29
  1200. package/ui/operation-types-dialog/src/operation-types-dialog.component.d.ts +0 -33
  1201. package/ui/overlayPanel/src/overlay-panel.component.d.ts +0 -8
  1202. package/ui/panel/src/panel.component.d.ts +0 -14
  1203. package/ui/password/src/password.component.d.ts +0 -11
  1204. package/ui/pdf-viewer/src/pdf-viewer.component.d.ts +0 -19
  1205. package/ui/progressbar/src/progressbar.component.d.ts +0 -8
  1206. package/ui/radioButton/src/radio-button.component.d.ts +0 -22
  1207. package/ui/relativeDateSelector/index.d.ts +0 -1
  1208. package/ui/relativeDateSelector/src/enum.d.ts +0 -26
  1209. package/ui/relativeDateSelector/src/relative-date-selector.component.d.ts +0 -61
  1210. package/ui/selectBox/src/interfaces.d.ts +0 -32
  1211. package/ui/selectBox/src/select-box.component.d.ts +0 -30
  1212. package/ui/switch/src/switch.component.d.ts +0 -8
  1213. package/ui/table/index.d.ts +0 -35
  1214. package/ui/table/src/export-overlay-panel.component.d.ts +0 -39
  1215. package/ui/table/src/interfaces.d.ts +0 -145
  1216. package/ui/table/src/table-column.component.d.ts +0 -19
  1217. package/ui/table/src/table.component.d.ts +0 -107
  1218. package/ui/table-expand/index.d.ts +0 -20
  1219. package/ui/table-expand/src/table-column.component.d.ts +0 -28
  1220. package/ui/table-expand/src/table-expand-area.component.d.ts +0 -14
  1221. package/ui/table-expand/src/table.component.d.ts +0 -47
  1222. package/ui/tag/index.d.ts +0 -1
  1223. package/ui/tag/src/interface.d.ts +0 -1
  1224. package/ui/tag/src/tag.component.d.ts +0 -15
  1225. package/ui/tagBox/src/tag-box.component.d.ts +0 -17
  1226. package/ui/text/src/text.component.d.ts +0 -18
  1227. package/ui/textArea/src/text-area.component.d.ts +0 -12
  1228. package/ui/toggle-button/index.d.ts +0 -1
  1229. package/ui/toggle-button/src/toggle-button.component.d.ts +0 -10
  1230. package/ui/tooltip/src/tooltip-component.d.ts +0 -14
  1231. package/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.d.ts +0 -21
  1232. package/ui/translate-input/src/aril-lang-modal/constants.d.ts +0 -2
  1233. package/ui/translate-input/src/aril-translate-input.component.d.ts +0 -26
  1234. package/ui/translate-input/src/interface.d.ts +0 -12
  1235. package/ui/tree/src/tree.component.d.ts +0 -23
  1236. package/ui/treeSelect/src/treeSelect.component.d.ts +0 -23
  1237. package/ui/treeTable/src/tree-table.component.d.ts +0 -21
  1238. package/ui/value/src/value.component.d.ts +0 -43
  1239. package/ui-business/assetPicker/index.d.ts +0 -1
  1240. package/ui-business/assetPicker/src/asset-picker.component.d.ts +0 -48
  1241. package/ui-business/assetPicker/src/interface.d.ts +0 -74
  1242. package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.d.ts +0 -31
  1243. package/ui-business/detailed-overlay-panel/src/interface.d.ts +0 -54
  1244. package/ui-business/enumPicker/index.d.ts +0 -1
  1245. package/ui-business/enumPicker/src/enum-picker.component.d.ts +0 -47
  1246. package/ui-business/enumPicker/src/interface.d.ts +0 -34
  1247. package/ui-business/image-viewer/index.d.ts +0 -1
  1248. package/ui-business/image-viewer/src/aril-image-viewer.component.d.ts +0 -20
  1249. package/ui-business/index.d.ts +0 -1
  1250. package/ui-business/multiple-ref-value/src/multiple-ref-value.component.d.ts +0 -16
  1251. package/ui-business/notification-templates-dialog/src/interface.d.ts +0 -17
  1252. package/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.d.ts +0 -18
  1253. package/ui-business/operation-types-dialog/src/operation-types-dialog.component.d.ts +0 -28
  1254. package/ui-business/ref-value/src/ref-value.component.d.ts +0 -20
  1255. package/ui-business/rolePicker/src/interface.d.ts +0 -44
  1256. package/ui-business/rolePicker/src/role-picker.component.d.ts +0 -25
  1257. package/ui-business/userPicker/index.d.ts +0 -1
  1258. package/ui-business/userPicker/src/interface.d.ts +0 -25
  1259. package/ui-business/userPicker/src/user-picker.component.d.ts +0 -18
  1260. package/util/block/src/block.d.ts +0 -28
  1261. package/util/custom_pages/src/notFound.component.d.ts +0 -5
  1262. package/util/directives/src/detail-page-customization/detail-page-customization.directive.d.ts +0 -26
  1263. package/util/directives/src/detail-page-customization/index.d.ts +0 -2
  1264. package/util/directives/src/detail-page-customization/models.d.ts +0 -53
  1265. package/util/directives/src/dialog-component/plugin-dialog.component.d.ts +0 -11
  1266. package/util/directives/src/dialog-service/plugin-dialog.service.d.ts +0 -7
  1267. package/util/index.d.ts +0 -1
  1268. package/util/lib/src/interfaces.d.ts +0 -41
  1269. package/util/lib/src/module-router.d.ts +0 -5
  1270. package/util/lib/src/types.d.ts +0 -2290
  1271. package/util/lib/src/validators/iban.validator.d.ts +0 -7
  1272. package/util/lib/src/validators/max-array-length.validator.d.ts +0 -7
  1273. package/util/lib/src/validators/min-array-length.validator.d.ts +0 -7
  1274. package/util/lib/src/validators/tckn.validator.d.ts +0 -7
  1275. package/util/lib/src/validators/validators.d.ts +0 -7
  1276. package/util/loaders/index.d.ts +0 -1
  1277. package/util/loaders/style/style.loader.service.d.ts +0 -13
  1278. package/util/pipes/src/distance-to-now.pipe.d.ts +0 -11
  1279. package/util/pipes/src/get-column-by-field.pipe.d.ts +0 -11
  1280. package/util/pipes/src/parse.pipe.d.ts +0 -7
  1281. package/util/pipes/src/round-number.pipe.d.ts +0 -11
  1282. package/util/pipes/src/safe.pipe.d.ts +0 -10
  1283. package/util/pipes/src/translate-json/index.d.ts +0 -1
  1284. package/util/pipes/src/translate-json/translate-json.pipe.d.ts +0 -10
  1285. package/util/primitive-extensions/src/date.extensions.d.ts +0 -8
  1286. package/util/primitive-extensions/src/number.extensions.d.ts +0 -12
  1287. package/util/primitive-extensions/src/string.extensions.d.ts +0 -11
  1288. package/util/pub-sub/src/pub-sub.service.d.ts +0 -21
  1289. package/util/sync-active-tab-route/src/sync-active-tab-route.directive.d.ts +0 -17
  1290. package/util/unwrap/src/unwrap-tag.directive.d.ts +0 -9
  1291. /package/boot/config/api/{index.d.ts → index.ts} +0 -0
  1292. /package/boot/config/apps/{index.d.ts → index.ts} +0 -0
  1293. /package/boot/config/plugins/{index.d.ts → index.ts} +0 -0
  1294. /package/boot/config/translate/{index.d.ts → index.ts} +0 -0
  1295. /package/boot/host/{index.d.ts → index.ts} +0 -0
  1296. /package/boot/mfe/{index.d.ts → index.ts} +0 -0
  1297. /package/i18n/{index.d.ts → index.ts} +0 -0
  1298. /package/provider/{index.d.ts → index.ts} +0 -0
  1299. /package/{public-api.d.ts → public-api.ts} +0 -0
  1300. /package/ui/autoComplete/{index.d.ts → index.ts} +0 -0
  1301. /package/ui/badge/{index.d.ts → index.ts} +0 -0
  1302. /package/ui/button/{index.d.ts → index.ts} +0 -0
  1303. /package/ui/calendar/{index.d.ts → index.ts} +0 -0
  1304. /package/ui/checkbox/{index.d.ts → index.ts} +0 -0
  1305. /package/ui/dxEditor/{index.d.ts → index.ts} +0 -0
  1306. /package/ui/dxField/{index.d.ts → index.ts} +0 -0
  1307. /package/ui/editor/{index.d.ts → index.ts} +0 -0
  1308. /package/ui/field/{index.d.ts → index.ts} +0 -0
  1309. /package/ui/fileUpload/{index.d.ts → index.ts} +0 -0
  1310. /package/ui/json-diff-comparison/{index.d.ts → index.ts} +0 -0
  1311. /package/ui/loader/{index.d.ts → index.ts} +0 -0
  1312. /package/ui/mask/{index.d.ts → index.ts} +0 -0
  1313. /package/ui/multiSelect/{index.d.ts → index.ts} +0 -0
  1314. /package/ui/number/{index.d.ts → index.ts} +0 -0
  1315. /package/ui/operation-types-dialog/{index.d.ts → index.ts} +0 -0
  1316. /package/ui/overlayPanel/{index.d.ts → index.ts} +0 -0
  1317. /package/ui/panel/{index.d.ts → index.ts} +0 -0
  1318. /package/ui/password/{index.d.ts → index.ts} +0 -0
  1319. /package/ui/pdf-viewer/{index.d.ts → index.ts} +0 -0
  1320. /package/ui/progressbar/{index.d.ts → index.ts} +0 -0
  1321. /package/ui/radioButton/{index.d.ts → index.ts} +0 -0
  1322. /package/ui/selectBox/{index.d.ts → index.ts} +0 -0
  1323. /package/ui/switch/{index.d.ts → index.ts} +0 -0
  1324. /package/ui/tagBox/{index.d.ts → index.ts} +0 -0
  1325. /package/ui/text/{index.d.ts → index.ts} +0 -0
  1326. /package/ui/textArea/{index.d.ts → index.ts} +0 -0
  1327. /package/ui/tooltip/{index.d.ts → index.ts} +0 -0
  1328. /package/ui/translate-input/{index.d.ts → index.ts} +0 -0
  1329. /package/ui/tree/{index.d.ts → index.ts} +0 -0
  1330. /package/ui/treeSelect/{index.d.ts → index.ts} +0 -0
  1331. /package/ui/treeTable/{index.d.ts → index.ts} +0 -0
  1332. /package/ui/value/{index.d.ts → index.ts} +0 -0
  1333. /package/ui-business/detailed-overlay-panel/{index.d.ts → index.ts} +0 -0
  1334. /package/ui-business/multiple-ref-value/{index.d.ts → index.ts} +0 -0
  1335. /package/ui-business/notification-templates-dialog/{index.d.ts → index.ts} +0 -0
  1336. /package/ui-business/operation-types-dialog/{index.d.ts → index.ts} +0 -0
  1337. /package/ui-business/ref-value/{index.d.ts → index.ts} +0 -0
  1338. /package/ui-business/rolePicker/{index.d.ts → index.ts} +0 -0
  1339. /package/util/block/{index.d.ts → index.ts} +0 -0
  1340. /package/util/custom_pages/{index.d.ts → index.ts} +0 -0
  1341. /package/util/directives/{index.d.ts → index.ts} +0 -0
  1342. /package/util/lib/{index.d.ts → index.ts} +0 -0
  1343. /package/util/lib/src/validators/{index.d.ts → index.ts} +0 -0
  1344. /package/util/pipes/{index.d.ts → index.ts} +0 -0
  1345. /package/util/primitive-extensions/{index.d.ts → index.ts} +0 -0
  1346. /package/util/primitive-extensions/src/{boolean.extensions.d.ts → boolean.extensions.ts} +0 -0
  1347. /package/util/pub-sub/{index.d.ts → index.ts} +0 -0
  1348. /package/util/sync-active-tab-route/{index.d.ts → index.ts} +0 -0
  1349. /package/util/unwrap/{index.d.ts → index.ts} +0 -0
@@ -1,166 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, signal } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { RouterModule } from '@angular/router';
5
- import { ScrollPanelModule } from 'primeng/scrollpanel';
6
- import { SidebarModule } from 'primeng/sidebar';
7
- import { TooltipModule } from 'primeng/tooltip';
8
- import { TranslocoModule } from '@ngneat/transloco';
9
- import { ButtonComponent } from 'aril/ui/button';
10
- import { TextComponent } from 'aril/ui/text';
11
- import { TranslateJsonPipe } from 'aril/util/pipes';
12
- import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
13
- import { solidIcons } from 'aril/util/lib';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "../../service/app.layout.service";
16
- import * as i2 from "@ngneat/transloco";
17
- import * as i3 from "@angular/common";
18
- import * as i4 from "@angular/forms";
19
- import * as i5 from "@angular/router";
20
- import * as i6 from "primeng/sidebar";
21
- import * as i7 from "primeng/api";
22
- import * as i8 from "primeng/scrollpanel";
23
- import * as i9 from "primeng/tooltip";
24
- import * as i10 from "@fortawesome/angular-fontawesome";
25
- export class SiteMapSidebarComponent {
26
- constructor(layoutService, translocoService) {
27
- this.layoutService = layoutService;
28
- this.translocoService = translocoService;
29
- this.siteMapNodes = signal([]);
30
- this.filteredNodes = signal([]);
31
- this.searchTerm = signal('');
32
- this.totalPages = signal(0);
33
- this.solidIcons = solidIcons;
34
- }
35
- ngOnInit() {
36
- this.loadSiteMap();
37
- }
38
- get visible() {
39
- return this.layoutService.state.siteMapSidebarVisible;
40
- }
41
- set visible(value) {
42
- this.layoutService.state.siteMapSidebarVisible = value;
43
- }
44
- loadSiteMap() {
45
- const menuItems = globalThis.hostMenuItems?.() || [];
46
- const nodes = this.buildSiteMapNodes(menuItems);
47
- const totalCount = this.countTotalPages(nodes);
48
- this.siteMapNodes.set(nodes);
49
- this.filteredNodes.set(nodes);
50
- this.totalPages.set(totalCount);
51
- }
52
- buildSiteMapNodes(items, parentKey = '') {
53
- return items
54
- .filter((item) => {
55
- // Keep the home page route ("/") and any non-empty routes
56
- return !item.routerLink || item.routerLink === '/' || item.routerLink.trim() !== '';
57
- })
58
- .map((item, index) => {
59
- const key = parentKey ? `${parentKey}-${index}` : `${index}`;
60
- let label;
61
- if (item.routerLink === '/') {
62
- label = { tr: 'Anasayfa', en: 'Home' };
63
- }
64
- else {
65
- label = item.label || { tr: 'Bilinmeyen', en: 'Unknown' };
66
- }
67
- const node = {
68
- key,
69
- label,
70
- icon: item.icon,
71
- routerLink: item.routerLink,
72
- expanded: false
73
- };
74
- if (item.items && item.items.length > 0) {
75
- node.children = this.buildSiteMapNodes(item.items, key);
76
- }
77
- return node;
78
- });
79
- }
80
- countTotalPages(nodes) {
81
- let count = 0;
82
- for (const node of nodes) {
83
- if (node.routerLink) {
84
- count++;
85
- }
86
- if (node.children) {
87
- count += this.countTotalPages(node.children);
88
- }
89
- }
90
- return count;
91
- }
92
- onSearchChange() {
93
- const searchTerm = this.searchTerm()?.toLowerCase()?.trim();
94
- if (!searchTerm) {
95
- this.filteredNodes.set(this.siteMapNodes());
96
- }
97
- else {
98
- const filtered = this.filterNodes(this.siteMapNodes(), searchTerm);
99
- this.filteredNodes.set(filtered);
100
- }
101
- }
102
- filterNodes(nodes, searchTerm) {
103
- const filtered = [];
104
- const currentLang = this.translocoService.getActiveLang();
105
- for (const node of nodes) {
106
- // Convert label to string for search based on active language
107
- const labelText = typeof node.label === 'string' ?
108
- node.label
109
- : node.label?.[currentLang] || node.label?.tr || node.label?.en || '';
110
- const matches = labelText.toLowerCase().includes(searchTerm);
111
- let filteredChildren = [];
112
- if (node.children) {
113
- filteredChildren = this.filterNodes(node.children, searchTerm);
114
- }
115
- if (matches || filteredChildren.length > 0) {
116
- filtered.push({
117
- ...node,
118
- children: filteredChildren.length > 0 ? filteredChildren : node.children,
119
- expanded: filteredChildren.length > 0
120
- });
121
- }
122
- }
123
- return filtered;
124
- }
125
- expandAll() {
126
- const expanded = this.expandNodes(this.filteredNodes(), true);
127
- this.filteredNodes.set([...expanded]);
128
- }
129
- collapseAll() {
130
- const collapsed = this.expandNodes(this.filteredNodes(), false);
131
- this.filteredNodes.set([...collapsed]);
132
- }
133
- expandNodes(nodes, expanded) {
134
- return nodes.map((node) => ({
135
- ...node,
136
- expanded,
137
- children: node.children ? this.expandNodes(node.children, expanded) : undefined
138
- }));
139
- }
140
- toggleNode(node) {
141
- node.expanded = !node.expanded;
142
- this.filteredNodes.set([...this.filteredNodes()]);
143
- }
144
- trackByKey(index, node) {
145
- return node.key || `${index}`;
146
- }
147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SiteMapSidebarComponent, deps: [{ token: i1.LayoutService }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: SiteMapSidebarComponent, isStandalone: true, selector: "app-site-map-sidebar", ngImport: i0, template: "<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-sitemap-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'siteMap'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between gap-2 w-full\">\r\n\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t<i class=\"pi pi-sitemap text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('siteMap') }}</span>\r\n\t\t\t\t<span class=\"total-pages\">{{ totalPages() }} {{ t('pages') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"sitemap-content\">\r\n\t\t<div class=\"search-section grid p-fluid m-0\">\r\n\t\t\t<aril-text\r\n\t\t\t\t[placeholder]=\"t('searchPages')\"\r\n\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t(ngModelChange)=\"onSearchChange()\"\r\n\t\t\t\tclass=\"col-10 m-0\">\r\n\t\t\t</aril-text>\r\n\t\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"col-2 flex align-items-center m-0 p-0\">\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesDown\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--primary-color)\"\r\n\t\t\t\t\t\tclass=\"col-1 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('expandAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"expandAll()\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesUp\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\tclass=\"col-1 ml-3 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('collapseAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"collapseAll()\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t<!-- Site Map Tree -->\r\n\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"sitemap-tree\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-sitemap empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noPages') }}\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : '' }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t@if (searchTerm()) {\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\r\n\t\t\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<!-- Recursive Tree Node Template -->\r\n\t\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t\t<div class=\"tree-node\" [style.margin-left.px]=\"level * 20\">\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t(click)=\"!node.routerLink ? toggleNode(node) : (visible = false)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\" (click)=\"$event.stopPropagation(); toggleNode(node)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ node.label | translateJson }}</span>\r\n\r\n\t\t\t\t\t\t@if (node.routerLink) {\r\n\t\t\t\t\t\t\t<i class=\"external-icon pi pi-external-link\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- Recursive Children -->\r\n\t\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</div>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-sitemap-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header .total-pages{background:#fff3;color:#ffffffe6;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.sitemap-content{display:flex;flex-direction:column;height:100%;background:var(--surface-ground)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.sitemap-tree{flex:1;overflow:hidden}.tree-container{padding:.5rem 0}.tree-node .node-item{display:flex;align-items:center;padding:.5rem 1rem;border-radius:6px;margin:.1rem .5rem;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.tree-node .node-item:hover{background:var(--surface-hover);border-color:var(--surface-border)}.tree-node .node-item.is-page:hover{background:var(--primary-50);border-color:var(--primary-200)}.tree-node .node-item.is-page:hover .external-icon{opacity:1}.tree-node .node-item.has-children{font-weight:500}.tree-node .node-content{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:var(--text-color-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.tree-node .toggle-btn:hover{background:var(--surface-hover);color:var(--primary-color)}.tree-node .toggle-btn i{font-size:.7rem}.tree-node .node-icon{color:var(--primary-color);font-size:.9rem;flex-shrink:0}.tree-node .node-label{flex:1;font-size:.9rem;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node .external-icon{color:var(--text-color-secondary);font-size:.7rem;opacity:.6;transition:opacity .2s ease;flex-shrink:0}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i6.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i8.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }, { kind: "component", type: TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "pipe", type: TranslateJsonPipe, name: "translateJson" }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i10.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
149
- }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SiteMapSidebarComponent, decorators: [{
151
- type: Component,
152
- args: [{ standalone: true, selector: 'app-site-map-sidebar', imports: [
153
- CommonModule,
154
- FormsModule,
155
- RouterModule,
156
- SidebarModule,
157
- ScrollPanelModule,
158
- TooltipModule,
159
- ButtonComponent,
160
- TextComponent,
161
- TranslocoModule,
162
- TranslateJsonPipe,
163
- FontAwesomeModule
164
- ], template: "<p-sidebar\r\n\t[(visible)]=\"visible\"\r\n\tposition=\"right\"\r\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\r\n\tstyleClass=\"layout-sitemap-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'siteMap'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between gap-2 w-full\">\r\n\t\t\t<div class=\"flex align-items-center gap-2\">\r\n\t\t\t\t<i class=\"pi pi-sitemap text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('siteMap') }}</span>\r\n\t\t\t\t<span class=\"total-pages\">{{ totalPages() }} {{ t('pages') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"sitemap-content\">\r\n\t\t<div class=\"search-section grid p-fluid m-0\">\r\n\t\t\t<aril-text\r\n\t\t\t\t[placeholder]=\"t('searchPages')\"\r\n\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t(ngModelChange)=\"onSearchChange()\"\r\n\t\t\t\tclass=\"col-10 m-0\">\r\n\t\t\t</aril-text>\r\n\t\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"col-2 flex align-items-center m-0 p-0\">\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesDown\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--primary-color)\"\r\n\t\t\t\t\t\tclass=\"col-1 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('expandAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"expandAll()\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t[icon]=\"solidIcons.faAnglesUp\"\r\n\t\t\t\t\t\tsize=\"xl\"\r\n\t\t\t\t\t\tstyle=\"color: var(--red-500)\"\r\n\t\t\t\t\t\tclass=\"col-1 ml-3 cursor-pointer\"\r\n\t\t\t\t\t\t[pTooltip]=\"t('collapseAll')\"\r\n\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t(click)=\"collapseAll()\">\r\n\t\t\t\t\t</fa-icon>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\r\n\t\t<!-- Site Map Tree -->\r\n\t\t@if (filteredNodes().length > 0) {\r\n\t\t\t<div class=\"sitemap-tree\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-scrollPanel>\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<div class=\"empty-state\">\r\n\t\t\t\t<div class=\"empty-content\">\r\n\t\t\t\t\t<i class=\"pi pi-sitemap empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('noSearchResults') : t('noPages') }}\r\n\t\t\t\t\t</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">\r\n\t\t\t\t\t\t{{ searchTerm() ? t('tryDifferentKeywords') : '' }}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t@if (searchTerm()) {\r\n\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t[label]=\"t('clearSearch')\"\r\n\t\t\t\t\t\t\ticon=\"TIMES\"\r\n\t\t\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t(clickEvent)=\"searchTerm.set(''); onSearchChange()\">\r\n\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<!-- Recursive Tree Node Template -->\r\n\t\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t\t<div class=\"tree-node\" [style.margin-left.px]=\"level * 20\">\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t(click)=\"!node.routerLink ? toggleNode(node) : (visible = false)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\" (click)=\"$event.stopPropagation(); toggleNode(node)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ node.label | translateJson }}</span>\r\n\r\n\t\t\t\t\t\t@if (node.routerLink) {\r\n\t\t\t\t\t\t\t<i class=\"external-icon pi pi-external-link\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- Recursive Children -->\r\n\t\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t</div>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-sitemap-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem .5rem}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}:host ::ng-deep .layout-sitemap-sidebar .p-sidebar-header .total-pages{background:#fff3;color:#ffffffe6;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.sitemap-content{display:flex;flex-direction:column;height:100%;background:var(--surface-ground)}.search-section{padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.sitemap-tree{flex:1;overflow:hidden}.tree-container{padding:.5rem 0}.tree-node .node-item{display:flex;align-items:center;padding:.5rem 1rem;border-radius:6px;margin:.1rem .5rem;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.tree-node .node-item:hover{background:var(--surface-hover);border-color:var(--surface-border)}.tree-node .node-item.is-page:hover{background:var(--primary-50);border-color:var(--primary-200)}.tree-node .node-item.is-page:hover .external-icon{opacity:1}.tree-node .node-item.has-children{font-weight:500}.tree-node .node-content{display:flex;align-items:center;gap:.5rem;width:100%;min-width:0}.tree-node .toggle-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:4px;color:var(--text-color-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.tree-node .toggle-btn:hover{background:var(--surface-hover);color:var(--primary-color)}.tree-node .toggle-btn i{font-size:.7rem}.tree-node .node-icon{color:var(--primary-color);font-size:.9rem;flex-shrink:0}.tree-node .node-label{flex:1;font-size:.9rem;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-node .external-icon{color:var(--text-color-secondary);font-size:.7rem;opacity:.6;transition:opacity .2s ease;flex-shrink:0}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-content{text-align:center;max-width:300px}.empty-icon{font-size:3rem;color:var(--text-color-secondary);margin-bottom:1rem;opacity:.5}.empty-message{font-size:.9rem;color:var(--text-color-secondary);line-height:1.4;margin-bottom:1.5rem}:host ::ng-deep .p-scrollpanel-bar-y{background:var(--primary-200);width:4px;border-radius:2px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:var(--primary-300)}\n"] }]
165
- }], ctorParameters: () => [{ type: i1.LayoutService }, { type: i2.TranslocoService }] });
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvc2l0ZS1tYXAvc2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvc2l0ZS1tYXAvc2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFFdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBOEIzQyxNQUFNLE9BQU8sdUJBQXVCO0lBT25DLFlBQ1EsYUFBNEIsRUFDM0IsZ0JBQWtDO1FBRG5DLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFSM0MsaUJBQVksR0FBRyxNQUFNLENBQWEsRUFBRSxDQUFDLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxNQUFNLENBQWEsRUFBRSxDQUFDLENBQUM7UUFDdkMsZUFBVSxHQUFHLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNoQyxlQUFVLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzlCLGVBQVUsR0FBRyxVQUFVLENBQUM7SUFLdEIsQ0FBQztJQUVKLFFBQVE7UUFDUCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksT0FBTztRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQ3hELENBQUM7SUFFTyxXQUFXO1FBQ2xCLE1BQU0sU0FBUyxHQUFTLFVBQVcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM1RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBWSxFQUFFLFNBQVMsR0FBRyxFQUFFO1FBQ3JELE9BQU8sS0FBSzthQUNWLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hCLDBEQUEwRDtZQUMxRCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNyRixDQUFDLENBQUM7YUFDRCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUU3RCxJQUFJLEtBQXNCLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUM3QixLQUFLLEdBQUcsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN4QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUMzRCxDQUFDO1lBRUQsTUFBTSxJQUFJLEdBQWE7Z0JBQ3RCLEdBQUc7Z0JBQ0gsS0FBSztnQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQixRQUFRLEVBQUUsS0FBSzthQUNmLENBQUM7WUFFRixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDekQsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQWlCO1FBQ3hDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3JCLEtBQUssRUFBRSxDQUFDO1lBQ1QsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuQixLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsQ0FBQztRQUNGLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFRCxjQUFjO1FBQ2IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO2FBQU0sQ0FBQztZQUNQLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDRixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWlCLEVBQUUsVUFBa0I7UUFDeEQsTUFBTSxRQUFRLEdBQWUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUxRCxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQzFCLDhEQUE4RDtZQUM5RCxNQUFNLFNBQVMsR0FDZCxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxLQUFLO2dCQUNYLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBYSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUssSUFBSSxDQUFDLEtBQWEsRUFBRSxFQUFFLElBQUssSUFBSSxDQUFDLEtBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO1lBRWxHLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0QsSUFBSSxnQkFBZ0IsR0FBZSxFQUFFLENBQUM7WUFFdEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25CLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNoRSxDQUFDO1lBRUQsSUFBSSxPQUFPLElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUNiLEdBQUcsSUFBSTtvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRO29CQUN4RSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUM7aUJBQ3JDLENBQUMsQ0FBQztZQUNKLENBQUM7UUFDRixDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDakIsQ0FBQztJQUVELFNBQVM7UUFDUixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVztRQUNWLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBaUIsRUFBRSxRQUFpQjtRQUN2RCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDM0IsR0FBRyxJQUFJO1lBQ1AsUUFBUTtZQUNSLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDL0UsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQWM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhLEVBQUUsSUFBYztRQUN2QyxPQUFPLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUMvQixDQUFDOzhHQWhKVyx1QkFBdUI7a0dBQXZCLHVCQUF1QixnRkMvQ3BDLDJzSkF5SEEsNGpGRHpGRSxZQUFZLHFNQUNaLFdBQVcsOFZBQ1gsWUFBWSwrUUFDWixhQUFhLG1kQUNiLGlCQUFpQiwrSUFDakIsYUFBYSxzWEFDYixlQUFlLDhOQUNmLGFBQWEsa0xBQ2IsZUFBZSw0TkFDZixpQkFBaUIscURBQ2pCLGlCQUFpQjs7MkZBS04sdUJBQXVCO2tCQW5CbkMsU0FBUztpQ0FDRyxJQUFJLFlBQ04sc0JBQXNCLFdBQ3ZCO3dCQUNSLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsaUJBQWlCO3FCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBTY3JvbGxQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2Nyb2xscGFuZWwnO1xyXG5pbXBvcnQgeyBTaWRlYmFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zaWRlYmFyJztcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICdhcmlsL3VpL3RleHQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVKc29uUGlwZSB9IGZyb20gJ2FyaWwvdXRpbC9waXBlcyc7XHJcblxyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcclxuaW1wb3J0IHsgc29saWRJY29ucyB9IGZyb20gJ2FyaWwvdXRpbC9saWInO1xyXG5cclxuaW50ZXJmYWNlIE1lbnVOb2RlIHtcclxuXHRrZXk6IHN0cmluZztcclxuXHRsYWJlbDogc3RyaW5nIHwgb2JqZWN0O1xyXG5cdGljb24/OiBzdHJpbmc7XHJcblx0cm91dGVyTGluaz86IHN0cmluZztcclxuXHRjaGlsZHJlbj86IE1lbnVOb2RlW107XHJcblx0ZXhwYW5kZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXBwLXNpdGUtbWFwLXNpZGViYXInLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdENvbW1vbk1vZHVsZSxcclxuXHRcdEZvcm1zTW9kdWxlLFxyXG5cdFx0Um91dGVyTW9kdWxlLFxyXG5cdFx0U2lkZWJhck1vZHVsZSxcclxuXHRcdFNjcm9sbFBhbmVsTW9kdWxlLFxyXG5cdFx0VG9vbHRpcE1vZHVsZSxcclxuXHRcdEJ1dHRvbkNvbXBvbmVudCxcclxuXHRcdFRleHRDb21wb25lbnQsXHJcblx0XHRUcmFuc2xvY29Nb2R1bGUsXHJcblx0XHRUcmFuc2xhdGVKc29uUGlwZSxcclxuXHRcdEZvbnRBd2Vzb21lTW9kdWxlXHJcblx0XSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vc2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vc2l0ZS1tYXAtc2lkZWJhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaXRlTWFwU2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0c2l0ZU1hcE5vZGVzID0gc2lnbmFsPE1lbnVOb2RlW10+KFtdKTtcclxuXHRmaWx0ZXJlZE5vZGVzID0gc2lnbmFsPE1lbnVOb2RlW10+KFtdKTtcclxuXHRzZWFyY2hUZXJtID0gc2lnbmFsPHN0cmluZz4oJycpO1xyXG5cdHRvdGFsUGFnZXMgPSBzaWduYWw8bnVtYmVyPigwKTtcclxuICBzb2xpZEljb25zID0gc29saWRJY29ucztcclxuXHRcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlXHJcblx0KSB7fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMubG9hZFNpdGVNYXAoKTtcclxuXHR9XHJcblxyXG5cdGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zaXRlTWFwU2lkZWJhclZpc2libGU7XHJcblx0fVxyXG5cclxuXHRzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnNpdGVNYXBTaWRlYmFyVmlzaWJsZSA9IHZhbHVlO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBsb2FkU2l0ZU1hcCgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IG1lbnVJdGVtcyA9ICg8YW55Pmdsb2JhbFRoaXMpLmhvc3RNZW51SXRlbXM/LigpIHx8IFtdO1xyXG5cdFx0Y29uc3Qgbm9kZXMgPSB0aGlzLmJ1aWxkU2l0ZU1hcE5vZGVzKG1lbnVJdGVtcyk7XHJcblx0XHRjb25zdCB0b3RhbENvdW50ID0gdGhpcy5jb3VudFRvdGFsUGFnZXMobm9kZXMpO1xyXG5cclxuXHRcdHRoaXMuc2l0ZU1hcE5vZGVzLnNldChub2Rlcyk7XHJcblx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KG5vZGVzKTtcclxuXHRcdHRoaXMudG90YWxQYWdlcy5zZXQodG90YWxDb3VudCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGJ1aWxkU2l0ZU1hcE5vZGVzKGl0ZW1zOiBhbnlbXSwgcGFyZW50S2V5ID0gJycpOiBNZW51Tm9kZVtdIHtcclxuXHRcdHJldHVybiBpdGVtc1xyXG5cdFx0XHQuZmlsdGVyKChpdGVtKSA9PiB7XHJcblx0XHRcdFx0Ly8gS2VlcCB0aGUgaG9tZSBwYWdlIHJvdXRlIChcIi9cIikgYW5kIGFueSBub24tZW1wdHkgcm91dGVzXHJcblx0XHRcdFx0cmV0dXJuICFpdGVtLnJvdXRlckxpbmsgfHwgaXRlbS5yb3V0ZXJMaW5rID09PSAnLycgfHwgaXRlbS5yb3V0ZXJMaW5rLnRyaW0oKSAhPT0gJyc7XHJcblx0XHRcdH0pXHJcblx0XHRcdC5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcblx0XHRcdFx0Y29uc3Qga2V5ID0gcGFyZW50S2V5ID8gYCR7cGFyZW50S2V5fS0ke2luZGV4fWAgOiBgJHtpbmRleH1gO1xyXG5cclxuXHRcdFx0XHRsZXQgbGFiZWw6IHN0cmluZyB8IG9iamVjdDtcclxuXHRcdFx0XHRpZiAoaXRlbS5yb3V0ZXJMaW5rID09PSAnLycpIHtcclxuXHRcdFx0XHRcdGxhYmVsID0geyB0cjogJ0FuYXNheWZhJywgZW46ICdIb21lJyB9O1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRsYWJlbCA9IGl0ZW0ubGFiZWwgfHwgeyB0cjogJ0JpbGlubWV5ZW4nLCBlbjogJ1Vua25vd24nIH07XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRjb25zdCBub2RlOiBNZW51Tm9kZSA9IHtcclxuXHRcdFx0XHRcdGtleSxcclxuXHRcdFx0XHRcdGxhYmVsLFxyXG5cdFx0XHRcdFx0aWNvbjogaXRlbS5pY29uLFxyXG5cdFx0XHRcdFx0cm91dGVyTGluazogaXRlbS5yb3V0ZXJMaW5rLFxyXG5cdFx0XHRcdFx0ZXhwYW5kZWQ6IGZhbHNlXHJcblx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0aWYgKGl0ZW0uaXRlbXMgJiYgaXRlbS5pdGVtcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRub2RlLmNoaWxkcmVuID0gdGhpcy5idWlsZFNpdGVNYXBOb2RlcyhpdGVtLml0ZW1zLCBrZXkpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0cmV0dXJuIG5vZGU7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjb3VudFRvdGFsUGFnZXMobm9kZXM6IE1lbnVOb2RlW10pOiBudW1iZXIge1xyXG5cdFx0bGV0IGNvdW50ID0gMDtcclxuXHRcdGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG5cdFx0XHRpZiAobm9kZS5yb3V0ZXJMaW5rKSB7XHJcblx0XHRcdFx0Y291bnQrKztcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAobm9kZS5jaGlsZHJlbikge1xyXG5cdFx0XHRcdGNvdW50ICs9IHRoaXMuY291bnRUb3RhbFBhZ2VzKG5vZGUuY2hpbGRyZW4pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gY291bnQ7XHJcblx0fVxyXG5cclxuXHRvblNlYXJjaENoYW5nZSgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHNlYXJjaFRlcm0gPSB0aGlzLnNlYXJjaFRlcm0oKT8udG9Mb3dlckNhc2UoKT8udHJpbSgpO1xyXG5cdFx0aWYgKCFzZWFyY2hUZXJtKSB7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQodGhpcy5zaXRlTWFwTm9kZXMoKSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjb25zdCBmaWx0ZXJlZCA9IHRoaXMuZmlsdGVyTm9kZXModGhpcy5zaXRlTWFwTm9kZXMoKSwgc2VhcmNoVGVybSk7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQoZmlsdGVyZWQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBmaWx0ZXJOb2Rlcyhub2RlczogTWVudU5vZGVbXSwgc2VhcmNoVGVybTogc3RyaW5nKTogTWVudU5vZGVbXSB7XHJcblx0XHRjb25zdCBmaWx0ZXJlZDogTWVudU5vZGVbXSA9IFtdO1xyXG5cdFx0Y29uc3QgY3VycmVudExhbmcgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UuZ2V0QWN0aXZlTGFuZygpO1xyXG5cclxuXHRcdGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG5cdFx0XHQvLyBDb252ZXJ0IGxhYmVsIHRvIHN0cmluZyBmb3Igc2VhcmNoIGJhc2VkIG9uIGFjdGl2ZSBsYW5ndWFnZVxyXG5cdFx0XHRjb25zdCBsYWJlbFRleHQgPVxyXG5cdFx0XHRcdHR5cGVvZiBub2RlLmxhYmVsID09PSAnc3RyaW5nJyA/XHJcblx0XHRcdFx0XHRub2RlLmxhYmVsXHJcblx0XHRcdFx0Olx0KG5vZGUubGFiZWwgYXMgYW55KT8uW2N1cnJlbnRMYW5nXSB8fCAobm9kZS5sYWJlbCBhcyBhbnkpPy50ciB8fCAobm9kZS5sYWJlbCBhcyBhbnkpPy5lbiB8fCAnJztcclxuXHJcblx0XHRcdGNvbnN0IG1hdGNoZXMgPSBsYWJlbFRleHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKTtcclxuXHRcdFx0bGV0IGZpbHRlcmVkQ2hpbGRyZW46IE1lbnVOb2RlW10gPSBbXTtcclxuXHJcblx0XHRcdGlmIChub2RlLmNoaWxkcmVuKSB7XHJcblx0XHRcdFx0ZmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmlsdGVyTm9kZXMobm9kZS5jaGlsZHJlbiwgc2VhcmNoVGVybSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChtYXRjaGVzIHx8IGZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdGZpbHRlcmVkLnB1c2goe1xyXG5cdFx0XHRcdFx0Li4ubm9kZSxcclxuXHRcdFx0XHRcdGNoaWxkcmVuOiBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDAgPyBmaWx0ZXJlZENoaWxkcmVuIDogbm9kZS5jaGlsZHJlbixcclxuXHRcdFx0XHRcdGV4cGFuZGVkOiBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDBcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBmaWx0ZXJlZDtcclxuXHR9XHJcblxyXG5cdGV4cGFuZEFsbCgpOiB2b2lkIHtcclxuXHRcdGNvbnN0IGV4cGFuZGVkID0gdGhpcy5leHBhbmROb2Rlcyh0aGlzLmZpbHRlcmVkTm9kZXMoKSwgdHJ1ZSk7XHJcblx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KFsuLi5leHBhbmRlZF0pO1xyXG5cdH1cclxuXHJcblx0Y29sbGFwc2VBbGwoKTogdm9pZCB7XHJcblx0XHRjb25zdCBjb2xsYXBzZWQgPSB0aGlzLmV4cGFuZE5vZGVzKHRoaXMuZmlsdGVyZWROb2RlcygpLCBmYWxzZSk7XHJcblx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KFsuLi5jb2xsYXBzZWRdKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZXhwYW5kTm9kZXMobm9kZXM6IE1lbnVOb2RlW10sIGV4cGFuZGVkOiBib29sZWFuKTogTWVudU5vZGVbXSB7XHJcblx0XHRyZXR1cm4gbm9kZXMubWFwKChub2RlKSA9PiAoe1xyXG5cdFx0XHQuLi5ub2RlLFxyXG5cdFx0XHRleHBhbmRlZCxcclxuXHRcdFx0Y2hpbGRyZW46IG5vZGUuY2hpbGRyZW4gPyB0aGlzLmV4cGFuZE5vZGVzKG5vZGUuY2hpbGRyZW4sIGV4cGFuZGVkKSA6IHVuZGVmaW5lZFxyXG5cdFx0fSkpO1xyXG5cdH1cclxuXHJcblx0dG9nZ2xlTm9kZShub2RlOiBNZW51Tm9kZSk6IHZvaWQge1xyXG5cdFx0bm9kZS5leHBhbmRlZCA9ICFub2RlLmV4cGFuZGVkO1xyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldChbLi4udGhpcy5maWx0ZXJlZE5vZGVzKCldKTtcclxuXHR9XHJcblxyXG5cdHRyYWNrQnlLZXkoaW5kZXg6IG51bWJlciwgbm9kZTogTWVudU5vZGUpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIG5vZGUua2V5IHx8IGAke2luZGV4fWA7XHJcblx0fVxyXG59XHJcbiIsIjxwLXNpZGViYXJcclxuXHRbKHZpc2libGUpXT1cInZpc2libGVcIlxyXG5cdHBvc2l0aW9uPVwicmlnaHRcIlxyXG5cdFt0cmFuc2l0aW9uT3B0aW9uc109XCInLjNzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJ1wiXHJcblx0c3R5bGVDbGFzcz1cImxheW91dC1zaXRlbWFwLXNpZGViYXIgdy1mdWxsIHNtOnctMzByZW1cIlxyXG5cdCp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogJ3NpdGVNYXAnXCI+XHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0yIHctZnVsbFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXNpdGVtYXAgdGV4dC1wcmltYXJ5IHRleHQteGxcIj48L2k+XHJcblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZ1wiPnt7IHQoJ3NpdGVNYXAnKSB9fTwvc3Bhbj5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cInRvdGFsLXBhZ2VzXCI+e3sgdG90YWxQYWdlcygpIH19IHt7IHQoJ3BhZ2VzJykgfX08L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PGRpdiBjbGFzcz1cInNpdGVtYXAtY29udGVudFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInNlYXJjaC1zZWN0aW9uIGdyaWQgcC1mbHVpZCBtLTBcIj5cclxuXHRcdFx0PGFyaWwtdGV4dFxyXG5cdFx0XHRcdFtwbGFjZWhvbGRlcl09XCJ0KCdzZWFyY2hQYWdlcycpXCJcclxuXHRcdFx0XHRbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxyXG5cdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoQ2hhbmdlKClcIlxyXG5cdFx0XHRcdGNsYXNzPVwiY29sLTEwIG0tMFwiPlxyXG5cdFx0XHQ8L2FyaWwtdGV4dD5cclxuXHRcdFx0QGlmIChmaWx0ZXJlZE5vZGVzKCkubGVuZ3RoID4gMCkge1xyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTIgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbS0wIHAtMFwiPlxyXG5cdFx0XHRcdFx0PGZhLWljb25cclxuXHRcdFx0XHRcdFx0W2ljb25dPVwic29saWRJY29ucy5mYUFuZ2xlc0Rvd25cIlxyXG5cdFx0XHRcdFx0XHRzaXplPVwieGxcIlxyXG5cdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKVwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY29sLTEgY3Vyc29yLXBvaW50ZXJcIlxyXG5cdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwidCgnZXhwYW5kQWxsJylcIlxyXG5cdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiZXhwYW5kQWxsKClcIj5cclxuXHRcdFx0XHRcdDwvZmEtaWNvbj5cclxuXHRcdFx0XHRcdDxmYS1pY29uXHJcblx0XHRcdFx0XHRcdFtpY29uXT1cInNvbGlkSWNvbnMuZmFBbmdsZXNVcFwiXHJcblx0XHRcdFx0XHRcdHNpemU9XCJ4bFwiXHJcblx0XHRcdFx0XHRcdHN0eWxlPVwiY29sb3I6IHZhcigtLXJlZC01MDApXCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjb2wtMSBtbC0zIGN1cnNvci1wb2ludGVyXCJcclxuXHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cInQoJ2NvbGxhcHNlQWxsJylcIlxyXG5cdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwiY29sbGFwc2VBbGwoKVwiPlxyXG5cdFx0XHRcdFx0PC9mYS1pY29uPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHR9XHJcblx0XHQ8L2Rpdj5cclxuXHJcblx0XHQ8IS0tIFNpdGUgTWFwIFRyZWUgLS0+XHJcblx0XHRAaWYgKGZpbHRlcmVkTm9kZXMoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJzaXRlbWFwLXRyZWVcIj5cclxuXHRcdFx0XHQ8cC1zY3JvbGxQYW5lbCBbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMDAlJyB9XCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidHJlZS1jb250YWluZXJcIj5cclxuXHRcdFx0XHRcdFx0QGZvciAobm9kZSBvZiBmaWx0ZXJlZE5vZGVzKCk7IHRyYWNrIHRyYWNrQnlLZXkoJGluZGV4LCBub2RlKSkge1xyXG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmVlTm9kZVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbm9kZSwgbGV2ZWw6IDAgfVwiPjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L3Atc2Nyb2xsUGFuZWw+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZVwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJlbXB0eS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXNpdGVtYXAgZW1wdHktaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdDxoMyBjbGFzcz1cImVtcHR5LXRpdGxlXCI+XHJcblx0XHRcdFx0XHRcdHt7IHNlYXJjaFRlcm0oKSA/IHQoJ25vU2VhcmNoUmVzdWx0cycpIDogdCgnbm9QYWdlcycpIH19XHJcblx0XHRcdFx0XHQ8L2gzPlxyXG5cdFx0XHRcdFx0PHAgY2xhc3M9XCJlbXB0eS1tZXNzYWdlXCI+XHJcblx0XHRcdFx0XHRcdHt7IHNlYXJjaFRlcm0oKSA/IHQoJ3RyeURpZmZlcmVudEtleXdvcmRzJykgOiAnJyB9fVxyXG5cdFx0XHRcdFx0PC9wPlxyXG5cdFx0XHRcdFx0QGlmIChzZWFyY2hUZXJtKCkpIHtcclxuXHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0W2xhYmVsXT1cInQoJ2NsZWFyU2VhcmNoJylcIlxyXG5cdFx0XHRcdFx0XHRcdGljb249XCJUSU1FU1wiXHJcblx0XHRcdFx0XHRcdFx0Y29sb3I9XCJzZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0XHRcdFtvdXRsaW5lZF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdChjbGlja0V2ZW50KT1cInNlYXJjaFRlcm0uc2V0KCcnKTsgb25TZWFyY2hDaGFuZ2UoKVwiPlxyXG5cdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHJcblx0XHQ8IS0tIFJlY3Vyc2l2ZSBUcmVlIE5vZGUgVGVtcGxhdGUgLS0+XHJcblx0XHQ8bmctdGVtcGxhdGUgI3RyZWVOb2RlVGVtcGxhdGUgbGV0LW5vZGUgbGV0LWxldmVsPVwibGV2ZWxcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cInRyZWUtbm9kZVwiIFtzdHlsZS5tYXJnaW4tbGVmdC5weF09XCJsZXZlbCAqIDIwXCI+XHJcblx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJub2RlLWl0ZW1cIlxyXG5cdFx0XHRcdFx0W2NsYXNzLmhhcy1jaGlsZHJlbl09XCJub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMFwiXHJcblx0XHRcdFx0XHRbY2xhc3MuaXMtcGFnZV09XCJub2RlLnJvdXRlckxpbmtcIlxyXG5cdFx0XHRcdFx0W3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdChjbGljayk9XCIhbm9kZS5yb3V0ZXJMaW5rID8gdG9nZ2xlTm9kZShub2RlKSA6ICh2aXNpYmxlID0gZmFsc2UpXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibm9kZS1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdEBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidG9nZ2xlLWJ0blwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHRvZ2dsZU5vZGUobm9kZSlcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGlcIiBbY2xhc3MucGktY2hldnJvbi1yaWdodF09XCIhbm9kZS5leHBhbmRlZFwiIFtjbGFzcy5waS1jaGV2cm9uLWRvd25dPVwibm9kZS5leHBhbmRlZFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0QGlmIChub2RlLmljb24pIHtcclxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cIm5vZGUtaWNvblwiIFtjbGFzc109XCJub2RlLmljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJub2RlLWxhYmVsXCI+e3sgbm9kZS5sYWJlbCB8IHRyYW5zbGF0ZUpzb24gfX08L3NwYW4+XHJcblxyXG5cdFx0XHRcdFx0XHRAaWYgKG5vZGUucm91dGVyTGluaykge1xyXG5cdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiZXh0ZXJuYWwtaWNvbiBwaSBwaS1leHRlcm5hbC1saW5rXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdFx0PCEtLSBSZWN1cnNpdmUgQ2hpbGRyZW4gLS0+XHJcblx0XHRcdFx0QGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuZXhwYW5kZWQpIHtcclxuXHRcdFx0XHRcdEBmb3IgKGNoaWxkIG9mIG5vZGUuY2hpbGRyZW47IHRyYWNrIHRyYWNrQnlLZXkoJGluZGV4LCBjaGlsZCkpIHtcclxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwidHJlZU5vZGVUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNoaWxkLCBsZXZlbDogbGV2ZWwgKyAxIH1cIj48L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHQ8L2Rpdj5cclxuPC9wLXNpZGViYXI+XHJcbiJdfQ==
@@ -1,228 +0,0 @@
1
- import { NgClass, NgTemplateOutlet } from '@angular/common';
2
- import { Component, signal } from '@angular/core';
3
- import { toSignal } from '@angular/core/rxjs-interop';
4
- import { FormsModule } from '@angular/forms';
5
- import { RouterLink } from '@angular/router';
6
- import { NavigationEnd } from '@angular/router';
7
- import { ScrollPanelModule } from 'primeng/scrollpanel';
8
- import { TooltipModule } from 'primeng/tooltip';
9
- import { TranslocoModule } from '@ngneat/transloco';
10
- import { filter } from 'rxjs';
11
- import { TranslateJsonPipe } from 'aril/util/pipes';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "../../service/app.menu.service";
14
- import * as i2 from "@angular/router";
15
- import * as i3 from "../../service/app.layout.service";
16
- import * as i4 from "aril/util/pipes";
17
- import * as i5 from "@ngneat/transloco";
18
- import * as i6 from "primeng/scrollpanel";
19
- import * as i7 from "primeng/tooltip";
20
- import * as i8 from "@angular/forms";
21
- export class StaticSidebarComponent {
22
- constructor(menuService, router, layoutService, translateJsonPipe, translocoService) {
23
- this.menuService = menuService;
24
- this.router = router;
25
- this.layoutService = layoutService;
26
- this.translateJsonPipe = translateJsonPipe;
27
- this.translocoService = translocoService;
28
- this.menuNodes = signal([]);
29
- this.filteredNodes = signal([]);
30
- this.searchTerm = signal('');
31
- this.routerSubscription = null;
32
- this.MAX_LENGTH = { level0: 25, level1: 20, level2: 16, level3: 13 };
33
- this.activeLang = toSignal(this.translocoService.langChanges$, { initialValue: 'tr' });
34
- }
35
- get isCollapsed() {
36
- return this.layoutService.isStaticSidebarCollapsed();
37
- }
38
- get topLevelNodes() {
39
- return this.menuNodes();
40
- }
41
- ngOnInit() {
42
- this.buildMenuTree();
43
- this.routerSubscription = this.router.events
44
- .pipe(filter((event) => event instanceof NavigationEnd))
45
- .subscribe(() => this.buildMenuTree());
46
- }
47
- ngOnDestroy() {
48
- this.routerSubscription?.unsubscribe();
49
- }
50
- isTextTruncated(label, lang, level = 0) {
51
- if (!label || !lang || !label[lang])
52
- return false;
53
- const text = label[lang];
54
- const len = text.length;
55
- const limits = [this.MAX_LENGTH.level0, this.MAX_LENGTH.level1, this.MAX_LENGTH.level2, this.MAX_LENGTH.level3];
56
- return len > limits[Math.min(level, 3)];
57
- }
58
- isMobile() {
59
- return this.layoutService.isMobile();
60
- }
61
- buildMenuTree() {
62
- const menuItems = this.getMenuItems();
63
- const nodes = this.convertToMenuNodes(menuItems);
64
- this.menuNodes.set(nodes);
65
- this.filteredNodes.set([...nodes]);
66
- this.expandActiveMenu();
67
- }
68
- expandActiveMenu() {
69
- const nodes = this.menuNodes();
70
- this.findAndExpandActiveNode(nodes);
71
- this.filteredNodes.set([...this.filteredNodes()]);
72
- }
73
- findAndExpandActiveNode(nodes) {
74
- for (const node of nodes) {
75
- if (this.isActiveRouteForNode(node)) {
76
- return node;
77
- }
78
- if (node.children && node.children.length > 0) {
79
- const activeChild = this.findAndExpandActiveNode(node.children);
80
- if (activeChild) {
81
- // we find active child and then opened its parent nodes
82
- node.expanded = true;
83
- return activeChild;
84
- }
85
- }
86
- }
87
- return null;
88
- }
89
- convertToMenuNodes(items, parentKey = '') {
90
- return items
91
- .filter((item) => !item.separator)
92
- .map((item, index) => {
93
- const key = parentKey ? `${parentKey}-${index}` : `${index}`;
94
- const node = {
95
- key,
96
- label: item.label,
97
- icon: item.icon,
98
- routerLink: item.routerLink,
99
- expanded: false
100
- };
101
- if (item.items && item.items.length > 0) {
102
- node.children = this.convertToMenuNodes(item.items, key);
103
- }
104
- return node;
105
- });
106
- }
107
- getMenuItems() {
108
- const isHostMode = globalThis.isHostMode;
109
- const hostMenuItems = globalThis.hostMenuItems;
110
- return isHostMode ? hostMenuItems() : this.menuService.menuItems();
111
- }
112
- getLocalText(text) {
113
- return this.translateJsonPipe.transform(text);
114
- }
115
- isActiveRouteForNode(node) {
116
- if (!node.routerLink)
117
- return false;
118
- const currentUrl = this.router.url;
119
- const hashUrl = currentUrl.indexOf('#') > -1 ? currentUrl.split('#')[1] : currentUrl;
120
- if (hashUrl === node.routerLink || hashUrl === '/' + node.routerLink)
121
- return true;
122
- return (node.routerLink !== '/' &&
123
- (hashUrl.startsWith(node.routerLink + '/') || hashUrl.startsWith('/' + node.routerLink + '/')));
124
- }
125
- // use on collapsed mode
126
- isNodeOrChildActive(node) {
127
- if (this.isActiveRouteForNode(node)) {
128
- return true;
129
- }
130
- if (node.children && node.children.length > 0) {
131
- return node.children.some(child => this.isNodeOrChildActive(child));
132
- }
133
- return false;
134
- }
135
- isTopLevelNodeActive(node) {
136
- return this.isNodeOrChildActive(node);
137
- }
138
- isChildNodeActive(node) {
139
- return this.isActiveRouteForNode(node);
140
- }
141
- toggleNode(node, level = 0) {
142
- const wasExpanded = node.expanded;
143
- if (level === 0) {
144
- // Diğer ana menüleri kapat
145
- this.closeOtherTopLevelNodes(node);
146
- }
147
- node.expanded = !wasExpanded;
148
- this.filteredNodes.set([...this.filteredNodes()]);
149
- }
150
- closeOtherTopLevelNodes(exceptNode) {
151
- const nodes = this.menuNodes();
152
- nodes.forEach(node => {
153
- if (node !== exceptNode) {
154
- node.expanded = false;
155
- this.closeAllChildNodes(node);
156
- }
157
- });
158
- }
159
- closeAllChildNodes(node) {
160
- if (node.children) {
161
- node.children.forEach(child => {
162
- child.expanded = false;
163
- this.closeAllChildNodes(child);
164
- });
165
- }
166
- }
167
- trackByKey(index, node) {
168
- return node.key;
169
- }
170
- onMenuItemClick() {
171
- if (this.isMobile()) {
172
- this.layoutService.closeMobileMenu();
173
- }
174
- this.searchTerm.set('');
175
- this.filteredNodes.set(this.menuNodes() || []);
176
- }
177
- onCollapsedItemClick(node) {
178
- if (this.isCollapsed) {
179
- this.layoutService.onMenuToggle();
180
- }
181
- this.closeOtherTopLevelNodes(node);
182
- if (node.children && node.children.length > 0) {
183
- node.expanded = true;
184
- }
185
- this.filteredNodes.set([...this.filteredNodes()]);
186
- if (node.routerLink) {
187
- this.onMenuItemClick();
188
- }
189
- }
190
- onSearchChange() {
191
- const currentSearchTerm = this.searchTerm()?.toLowerCase()?.trim();
192
- if (!currentSearchTerm) {
193
- this.filteredNodes.set(this.menuNodes() || []);
194
- return;
195
- }
196
- this.filteredNodes.set(this.filterNodes(this.menuNodes(), currentSearchTerm));
197
- }
198
- filterNodes(nodes, searchTerm) {
199
- const filtered = [];
200
- const currentLang = this.translocoService.getActiveLang();
201
- for (const node of nodes) {
202
- // Convert label to string for search based on active language
203
- const labelText = typeof node.label === 'string' ?
204
- node.label
205
- : node.label?.[currentLang] || node.label?.tr || node.label?.en || '';
206
- const matches = labelText.toLowerCase().includes(searchTerm);
207
- let filteredChildren = [];
208
- if (node.children) {
209
- filteredChildren = this.filterNodes(node.children, searchTerm);
210
- }
211
- if (matches || filteredChildren.length > 0) {
212
- filtered.push({
213
- ...node,
214
- children: filteredChildren.length > 0 ? filteredChildren : node.children,
215
- expanded: filteredChildren.length > 0
216
- });
217
- }
218
- }
219
- return filtered;
220
- }
221
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: StaticSidebarComponent, deps: [{ token: i1.AppMenuService }, { token: i2.Router }, { token: i3.LayoutService }, { token: i4.TranslateJsonPipe }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
222
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: StaticSidebarComponent, isStandalone: true, selector: "app-static-sidebar", providers: [TranslateJsonPipe], ngImport: i0, template: "<div class=\"static-sidebar\" [class.collapsed]=\"isCollapsed\">\r\n\t<div class=\"static-sidebar-content\">\r\n\t\t@if (!isCollapsed) {\r\n\t\t\t<div class=\"search-container\" *transloco=\"let t; read: ''\">\r\n\t\t\t\t<div class=\"search-wrapper\">\r\n\t\t\t\t\t<i class=\"pi pi-search search-icon\"></i>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tvariant=\"filled\"\r\n\t\t\t\t\t\t[placeholder]=\"t('search')\"\r\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\"\r\n\t\t\t\t\t\tclass=\"search-static-sidebar\" />\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: 'calc(100vh - 130px)' }\">\r\n\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</p-scrollPanel>\r\n\t\t} @else {\r\n\t\t\t<!-- Collapsed mode - only icons -->\r\n\t\t\t<div class=\"collapsed-container\">\r\n\t\t\t\t@for (node of topLevelNodes; track trackByKey($index, node)) {\r\n\t\t\t\t\t@if (node.routerLink && (!node.children || node.children.length === 0)) {\r\n\t\t\t\t\t\t<a \r\n\t\t\t\t\t\t\tclass=\"collapsed-item\" \r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<div \r\n\t\t\t\t\t\t\tclass=\"collapsed-item\" \r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<!-- Recursive Tree Node Template -->\r\n\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t<div class=\"tree-node\" [ngClass]=\"'level-' + level\">\r\n\t\t\t@if (node.routerLink) {\r\n\t\t\t\t<a\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"onMenuItemClick()\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t} @else {\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"toggleNode(node, level)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\r\n\t\t\t<!-- Recursive Children -->\r\n\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t<div class=\"children-container\" [attr.data-level]=\"level\">\r\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</ng-template>\r\n</div> ", styles: [".search-container{padding:12px 8px;margin:0}.search-wrapper{position:relative;width:100%}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:14px;z-index:10;pointer-events:none;transition:color .2s ease}.search-static-sidebar{background:#1e293b!important;border:1px solid rgba(148,163,184,.1)!important;height:36px!important;font-size:13px!important;font-weight:400;color:#cbd5e1!important;padding:0 12px 0 36px!important;border-radius:4px!important;width:100%!important;box-sizing:border-box!important;transition:all .25s ease!important}.search-static-sidebar::placeholder{font-size:12px!important}.search-static-sidebar:hover{background:#0f172ab3!important;border-color:#94a3b826!important}.search-static-sidebar:focus{outline:none!important;border:1px solid rgba(15,23,42,.8)!important;background:#0f172acc!important}.search-wrapper:focus-within .search-icon{color:#cbd5e1}.static-sidebar{width:260px;height:100vh;background:#1e293b;border-right:1px solid #0f172a;display:flex;flex-direction:column;position:fixed;left:0;top:55px;z-index:999;overflow-y:auto;overflow-x:hidden;transition:width .3s ease;box-shadow:2px 0 5px #0000000d}.static-sidebar.collapsed{width:64px;box-shadow:none}.static-sidebar .static-sidebar-content{flex:1;background:transparent;overflow:hidden}.static-sidebar .tree-container{padding:5px 0;overflow-x:hidden}.static-sidebar .tree-node{margin-bottom:4px;position:relative}.static-sidebar .tree-node .node-item{display:flex;align-items:center;padding:10px 12px;border-radius:4px;margin:0 5px;cursor:pointer;transition:all .25s ease;text-decoration:none;color:#cbd5e1!important;overflow:visible;position:relative;white-space:nowrap}.static-sidebar .tree-node .node-item:before{content:\"\";position:absolute;width:0;height:100%;top:0;left:0;background-color:var(--primary-color);opacity:.08;transition:width .25s ease-in-out}.static-sidebar .tree-node .node-item:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover:before{width:100%}.static-sidebar .tree-node .node-item:hover .node-label{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover .node-icon{color:#e8e7e7!important;transform:translate(2px)}.static-sidebar .tree-node .node-item.is-page:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.is-page:hover:before{width:100%}.static-sidebar .tree-node .node-item.active{background-color:#495465!important;color:#e8e7e7!important;font-weight:500!important;box-shadow:0 2px 5px #0000001a!important}.static-sidebar .tree-node .node-item.active:before{display:none}.static-sidebar .tree-node .node-item.active .node-label,.static-sidebar .tree-node .node-item.active .node-icon,.static-sidebar .tree-node .node-item.active .toggle-btn i{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.active:hover{background-color:var(--primary-color)}.static-sidebar .tree-node .node-content{display:flex;align-items:center;gap:8px;width:100%;min-width:0;position:relative;z-index:2;padding-left:24px}.static-sidebar .tree-node .toggle-btn{position:absolute;left:0;display:flex;align-items:center;justify-content:center;width:20px;height:16px;border:none;border-radius:3px;color:#cbd5e1;cursor:pointer;transition:all .25s ease;flex-shrink:0;z-index:3}.static-sidebar .tree-node .toggle-btn:hover{transform:scale(1.1)}.static-sidebar .tree-node .toggle-btn i{font-size:.7rem;transition:transform .2s ease}.static-sidebar .tree-node .node-icon{color:#cbd5e1;font-size:16px;flex-shrink:0;transition:transform .25s ease,color .25s ease;position:relative}.static-sidebar .tree-node .node-label{flex:1;font-size:13px;font-weight:500;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .25s ease;position:relative}.static-sidebar .collapsed-container{padding:8px 0;display:flex;flex-direction:column;align-items:center;width:100%}.static-sidebar .collapsed-item{width:100%;display:flex;flex-direction:column;align-items:center;padding:12px 0;cursor:pointer;transition:all .25s ease;text-decoration:none;position:relative;overflow:hidden;margin-bottom:4px;color:#cbd5e1}.static-sidebar .collapsed-item:hover{color:#e8e7e7}.static-sidebar .collapsed-item:hover .collapsed-icon{transform:scale(1.15);color:#e8e7e7}.static-sidebar .collapsed-item:hover:after{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a;opacity:.7}.static-sidebar .collapsed-item.active{background-color:#495465!important}.static-sidebar .collapsed-item.active:before{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a}.static-sidebar .collapsed-item.active .collapsed-icon{color:#fff!important}.static-sidebar .collapsed-item .collapsed-icon{font-size:22px;color:#cbd5e1;transition:all .2s ease}.static-sidebar .children-container{position:relative}.static-sidebar .children-container:before{content:\"\";position:absolute;left:25px;top:0;bottom:0;width:1px;background-color:#4755694d;z-index:1}.static-sidebar .tree-node{position:relative}.static-sidebar .tree-node.level-0 .node-item{margin-right:20px;width:240px;max-width:240px}.static-sidebar .tree-node.level-0 .node-label{font-size:13px;font-weight:500;color:#cbd5e1}.static-sidebar .tree-node.level-0 .node-icon{font-size:16px}.static-sidebar .tree-node.level-1 .node-item{margin-left:36px;margin-right:20px;padding:8px 12px;width:204px;max-width:204px}.static-sidebar .tree-node.level-1 .node-label{font-size:12px;font-weight:400}.static-sidebar .tree-node.level-1 .node-icon{font-size:15px}.static-sidebar .tree-node.level-2 .node-item{margin-left:52px;margin-right:20px;width:188px;max-width:188px}.static-sidebar .tree-node.level-2 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-2 .node-icon{font-size:14px}.static-sidebar .tree-node.level-2.active .node-item{background-color:#495465!important}.static-sidebar .tree-node.level-2.active .node-item .node-label{color:#e8e7e7!important}.static-sidebar .tree-node.level-3 .node-item{margin-left:68px;margin-right:20px;padding:6px 12px;width:172px;max-width:172px}.static-sidebar .tree-node.level-3 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-3 .node-icon{font-size:13px}:host ::ng-deep .p-scrollpanel .p-scrollpanel-wrapper{border:none}:host ::ng-deep .p-scrollpanel .p-scrollpanel-content{padding-right:5px}:host ::ng-deep .p-scrollpanel-bar-y{background:#1e293b;width:4px;border-radius:4px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:#1e293b}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ScrollPanelModule }, { kind: "component", type: i6.ScrollPanel, selector: "p-scrollPanel", inputs: ["style", "styleClass", "step"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
223
- }
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: StaticSidebarComponent, decorators: [{
225
- type: Component,
226
- args: [{ standalone: true, selector: 'app-static-sidebar', imports: [RouterLink, NgClass, NgTemplateOutlet, ScrollPanelModule, TooltipModule, FormsModule, TranslocoModule], providers: [TranslateJsonPipe], template: "<div class=\"static-sidebar\" [class.collapsed]=\"isCollapsed\">\r\n\t<div class=\"static-sidebar-content\">\r\n\t\t@if (!isCollapsed) {\r\n\t\t\t<div class=\"search-container\" *transloco=\"let t; read: ''\">\r\n\t\t\t\t<div class=\"search-wrapper\">\r\n\t\t\t\t\t<i class=\"pi pi-search search-icon\"></i>\r\n\t\t\t\t\t<input\r\n\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\tpInputText\r\n\t\t\t\t\t\tvariant=\"filled\"\r\n\t\t\t\t\t\t[placeholder]=\"t('search')\"\r\n\t\t\t\t\t\t[(ngModel)]=\"searchTerm\"\r\n\t\t\t\t\t\t(ngModelChange)=\"onSearchChange()\"\r\n\t\t\t\t\t\tclass=\"search-static-sidebar\" />\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: 'calc(100vh - 130px)' }\">\r\n\t\t\t\t<div class=\"tree-container\">\r\n\t\t\t\t\t@for (node of filteredNodes(); track trackByKey($index, node)) {\r\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: node, level: 0 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t</p-scrollPanel>\r\n\t\t} @else {\r\n\t\t\t<!-- Collapsed mode - only icons -->\r\n\t\t\t<div class=\"collapsed-container\">\r\n\t\t\t\t@for (node of topLevelNodes; track trackByKey($index, node)) {\r\n\t\t\t\t\t@if (node.routerLink && (!node.children || node.children.length === 0)) {\r\n\t\t\t\t\t\t<a \r\n\t\t\t\t\t\t\tclass=\"collapsed-item\" \r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<div \r\n\t\t\t\t\t\t\tclass=\"collapsed-item\" \r\n\t\t\t\t\t\t\t[pTooltip]=\"getLocalText(node.label)\" \r\n\t\t\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t\t\t[class.active]=\"isTopLevelNodeActive(node)\"\r\n\t\t\t\t\t\t\t(click)=\"onCollapsedItemClick(node)\">\r\n\t\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t<i class=\"collapsed-icon pi pi-circle\"></i>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t}\r\n\t</div>\r\n\r\n\t<!-- Recursive Tree Node Template -->\r\n\t<ng-template #treeNodeTemplate let-node let-level=\"level\">\r\n\t\t<div class=\"tree-node\" [ngClass]=\"'level-' + level\">\r\n\t\t\t@if (node.routerLink) {\r\n\t\t\t\t<a\r\n\t\t\t\t\t[routerLink]=\"node.routerLink\"\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"onMenuItemClick()\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</a>\r\n\t\t\t} @else {\r\n\t\t\t\t<div\r\n\t\t\t\t\tclass=\"node-item\"\r\n\t\t\t\t\t[class.has-children]=\"node.children && node.children.length > 0\"\r\n\t\t\t\t\t[class.is-page]=\"node.routerLink\"\r\n\t\t\t\t\t[class.active]=\"isChildNodeActive(node)\"\r\n\t\t\t\t\t[pTooltip]=\"!isMobile() && isTextTruncated(node.label, activeLang(), level) ? getLocalText(node.label) : ''\"\r\n\t\t\t\t\ttooltipPosition=\"right\"\r\n\t\t\t\t\t(click)=\"toggleNode(node, level)\">\r\n\t\t\t\t\t<div class=\"node-content\">\r\n\t\t\t\t\t\t@if (node.children && node.children.length > 0) {\r\n\t\t\t\t\t\t\t<div class=\"toggle-btn\"\r\n\t\t\t\t\t\t\t\t(click)=\"$event.stopPropagation(); toggleNode(node, level)\">\r\n\t\t\t\t\t\t\t\t<i class=\"pi\" [class.pi-chevron-right]=\"!node.expanded\" [class.pi-chevron-down]=\"node.expanded\"></i>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t@if (node.icon) {\r\n\t\t\t\t\t\t\t<i class=\"node-icon\" [class]=\"node.icon\"></i>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t<span class=\"node-label\">{{ getLocalText(node.label) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\r\n\t\t\t<!-- Recursive Children -->\r\n\t\t\t@if (node.children && node.expanded) {\r\n\t\t\t\t<div class=\"children-container\" [attr.data-level]=\"level\">\r\n\t\t\t\t\t@for (child of node.children; track trackByKey($index, child)) {\r\n\t\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"treeNodeTemplate; context: { $implicit: child, level: level + 1 }\"></ng-container>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t</ng-template>\r\n</div> ", styles: [".search-container{padding:12px 8px;margin:0}.search-wrapper{position:relative;width:100%}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:14px;z-index:10;pointer-events:none;transition:color .2s ease}.search-static-sidebar{background:#1e293b!important;border:1px solid rgba(148,163,184,.1)!important;height:36px!important;font-size:13px!important;font-weight:400;color:#cbd5e1!important;padding:0 12px 0 36px!important;border-radius:4px!important;width:100%!important;box-sizing:border-box!important;transition:all .25s ease!important}.search-static-sidebar::placeholder{font-size:12px!important}.search-static-sidebar:hover{background:#0f172ab3!important;border-color:#94a3b826!important}.search-static-sidebar:focus{outline:none!important;border:1px solid rgba(15,23,42,.8)!important;background:#0f172acc!important}.search-wrapper:focus-within .search-icon{color:#cbd5e1}.static-sidebar{width:260px;height:100vh;background:#1e293b;border-right:1px solid #0f172a;display:flex;flex-direction:column;position:fixed;left:0;top:55px;z-index:999;overflow-y:auto;overflow-x:hidden;transition:width .3s ease;box-shadow:2px 0 5px #0000000d}.static-sidebar.collapsed{width:64px;box-shadow:none}.static-sidebar .static-sidebar-content{flex:1;background:transparent;overflow:hidden}.static-sidebar .tree-container{padding:5px 0;overflow-x:hidden}.static-sidebar .tree-node{margin-bottom:4px;position:relative}.static-sidebar .tree-node .node-item{display:flex;align-items:center;padding:10px 12px;border-radius:4px;margin:0 5px;cursor:pointer;transition:all .25s ease;text-decoration:none;color:#cbd5e1!important;overflow:visible;position:relative;white-space:nowrap}.static-sidebar .tree-node .node-item:before{content:\"\";position:absolute;width:0;height:100%;top:0;left:0;background-color:var(--primary-color);opacity:.08;transition:width .25s ease-in-out}.static-sidebar .tree-node .node-item:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover:before{width:100%}.static-sidebar .tree-node .node-item:hover .node-label{color:#e8e7e7!important}.static-sidebar .tree-node .node-item:hover .node-icon{color:#e8e7e7!important;transform:translate(2px)}.static-sidebar .tree-node .node-item.is-page:hover{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.is-page:hover:before{width:100%}.static-sidebar .tree-node .node-item.active{background-color:#495465!important;color:#e8e7e7!important;font-weight:500!important;box-shadow:0 2px 5px #0000001a!important}.static-sidebar .tree-node .node-item.active:before{display:none}.static-sidebar .tree-node .node-item.active .node-label,.static-sidebar .tree-node .node-item.active .node-icon,.static-sidebar .tree-node .node-item.active .toggle-btn i{color:#e8e7e7!important}.static-sidebar .tree-node .node-item.active:hover{background-color:var(--primary-color)}.static-sidebar .tree-node .node-content{display:flex;align-items:center;gap:8px;width:100%;min-width:0;position:relative;z-index:2;padding-left:24px}.static-sidebar .tree-node .toggle-btn{position:absolute;left:0;display:flex;align-items:center;justify-content:center;width:20px;height:16px;border:none;border-radius:3px;color:#cbd5e1;cursor:pointer;transition:all .25s ease;flex-shrink:0;z-index:3}.static-sidebar .tree-node .toggle-btn:hover{transform:scale(1.1)}.static-sidebar .tree-node .toggle-btn i{font-size:.7rem;transition:transform .2s ease}.static-sidebar .tree-node .node-icon{color:#cbd5e1;font-size:16px;flex-shrink:0;transition:transform .25s ease,color .25s ease;position:relative}.static-sidebar .tree-node .node-label{flex:1;font-size:13px;font-weight:500;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .25s ease;position:relative}.static-sidebar .collapsed-container{padding:8px 0;display:flex;flex-direction:column;align-items:center;width:100%}.static-sidebar .collapsed-item{width:100%;display:flex;flex-direction:column;align-items:center;padding:12px 0;cursor:pointer;transition:all .25s ease;text-decoration:none;position:relative;overflow:hidden;margin-bottom:4px;color:#cbd5e1}.static-sidebar .collapsed-item:hover{color:#e8e7e7}.static-sidebar .collapsed-item:hover .collapsed-icon{transform:scale(1.15);color:#e8e7e7}.static-sidebar .collapsed-item:hover:after{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a;opacity:.7}.static-sidebar .collapsed-item.active{background-color:#495465!important}.static-sidebar .collapsed-item.active:before{content:\"\";position:absolute;left:0;top:0;width:3px;height:100%;background-color:#0f172a}.static-sidebar .collapsed-item.active .collapsed-icon{color:#fff!important}.static-sidebar .collapsed-item .collapsed-icon{font-size:22px;color:#cbd5e1;transition:all .2s ease}.static-sidebar .children-container{position:relative}.static-sidebar .children-container:before{content:\"\";position:absolute;left:25px;top:0;bottom:0;width:1px;background-color:#4755694d;z-index:1}.static-sidebar .tree-node{position:relative}.static-sidebar .tree-node.level-0 .node-item{margin-right:20px;width:240px;max-width:240px}.static-sidebar .tree-node.level-0 .node-label{font-size:13px;font-weight:500;color:#cbd5e1}.static-sidebar .tree-node.level-0 .node-icon{font-size:16px}.static-sidebar .tree-node.level-1 .node-item{margin-left:36px;margin-right:20px;padding:8px 12px;width:204px;max-width:204px}.static-sidebar .tree-node.level-1 .node-label{font-size:12px;font-weight:400}.static-sidebar .tree-node.level-1 .node-icon{font-size:15px}.static-sidebar .tree-node.level-2 .node-item{margin-left:52px;margin-right:20px;width:188px;max-width:188px}.static-sidebar .tree-node.level-2 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-2 .node-icon{font-size:14px}.static-sidebar .tree-node.level-2.active .node-item{background-color:#495465!important}.static-sidebar .tree-node.level-2.active .node-item .node-label{color:#e8e7e7!important}.static-sidebar .tree-node.level-3 .node-item{margin-left:68px;margin-right:20px;padding:6px 12px;width:172px;max-width:172px}.static-sidebar .tree-node.level-3 .node-label{font-size:11px;font-weight:400;color:#cbd5e1}.static-sidebar .tree-node.level-3 .node-icon{font-size:13px}:host ::ng-deep .p-scrollpanel .p-scrollpanel-wrapper{border:none}:host ::ng-deep .p-scrollpanel .p-scrollpanel-content{padding-right:5px}:host ::ng-deep .p-scrollpanel-bar-y{background:#1e293b;width:4px;border-radius:4px}:host ::ng-deep .p-scrollpanel-bar-y:hover{background:#1e293b}\n"] }]
227
- }], ctorParameters: () => [{ type: i1.AppMenuService }, { type: i2.Router }, { type: i3.LayoutService }, { type: i4.TranslateJsonPipe }, { type: i5.TranslocoService }] });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL3N0YXRpYy1zaWRlYmFyL3N0YXRpYy1zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9zdGF0aWMtc2lkZWJhci9zdGF0aWMtc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBNkIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7OztBQXNCcEQsTUFBTSxPQUFPLHNCQUFzQjtJQVVsQyxZQUNTLFdBQTJCLEVBQzNCLE1BQWMsRUFDZCxhQUE0QixFQUM1QixpQkFBb0MsRUFDcEMsZ0JBQWtDO1FBSmxDLGdCQUFXLEdB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akIsQ0FBQzs4R0E3T1csc0JBQXNCO2tHQUF0QixzQkFBc0IsaUVBRnZCLENBQUMsaUJBQWlCLENBQUMsMEJDbEMvQixxeUtBMkhPLCs5TUQ1RkksVUFBVSxvT0FBRSxPQUFPLG9GQUFFLGdCQUFnQixtSkFBRSxpQkFBaUIsK0lBQUUsYUFBYSxxWEFBRSxXQUFXLDhtQkFBRSxlQUFlOzsyRkFLbkcsc0JBQXNCO2tCQVJsQyxTQUFTO2lDQUNHLElBQUksWUFDTixvQkFBb0IsV0FDckIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDLGFBR3JHLENBQUMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IFNjcm9sbFBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zY3JvbGxwYW5lbCc7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgUGx1Z2luTWVudUl0ZW0gfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVKc29uUGlwZSB9IGZyb20gJ2FyaWwvdXRpbC9waXBlcyc7XHJcblxyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLm1lbnUuc2VydmljZSc7XHJcblxyXG5pbnRlcmZhY2UgTWVudU5vZGUge1xyXG5cdGtleTogc3RyaW5nO1xyXG5cdGxhYmVsOiBhbnk7XHJcblx0aWNvbj86IHN0cmluZztcclxuXHRyb3V0ZXJMaW5rPzogc3RyaW5nO1xyXG5cdGNoaWxkcmVuPzogTWVudU5vZGVbXTtcclxuXHRleHBhbmRlZDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FwcC1zdGF0aWMtc2lkZWJhcicsXHJcblx0aW1wb3J0czogW1JvdXRlckxpbmssIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQsIFNjcm9sbFBhbmVsTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBGb3Jtc01vZHVsZSwgVHJhbnNsb2NvTW9kdWxlXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vc3RhdGljLXNpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9zdGF0aWMtc2lkZWJhci5jb21wb25lbnQuc2NzcycsXHJcblx0cHJvdmlkZXJzOiBbVHJhbnNsYXRlSnNvblBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdGF0aWNTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdGFjdGl2ZUxhbmc6IFNpZ25hbDxzdHJpbmc+O1xyXG5cdG1lbnVOb2RlcyA9IHNpZ25hbDxNZW51Tm9kZVtdPihbXSk7XHJcblx0ZmlsdGVyZWROb2RlcyA9IHNpZ25hbDxNZW51Tm9kZVtdPihbXSk7XHJcblx0c2VhcmNoVGVybSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcclxuXHJcblx0cHJpdmF0ZSByb3V0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IE1BWF9MRU5HVEggPSB7IGxldmVsMDogMjUsIGxldmVsMTogMjAsIGxldmVsMjogMTYsIGxldmVsMzogMTMgfTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIG1lbnVTZXJ2aWNlOiBBcHBNZW51U2VydmljZSxcclxuXHRcdHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcblx0XHRwcml2YXRlIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHRyYW5zbGF0ZUpzb25QaXBlOiBUcmFuc2xhdGVKc29uUGlwZSxcclxuXHRcdHByaXZhdGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZVxyXG5cdCkge1xyXG5cdFx0dGhpcy5hY3RpdmVMYW5nID0gdG9TaWduYWwodGhpcy50cmFuc2xvY29TZXJ2aWNlLmxhbmdDaGFuZ2VzJCwgeyBpbml0aWFsVmFsdWU6ICd0cicgfSk7XHJcblx0fVxyXG5cclxuXHRnZXQgaXNDb2xsYXBzZWQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmlzU3RhdGljU2lkZWJhckNvbGxhcHNlZCgpO1xyXG5cdH1cclxuXHJcblx0Z2V0IHRvcExldmVsTm9kZXMoKTogTWVudU5vZGVbXSB7XHJcblx0XHRyZXR1cm4gdGhpcy5tZW51Tm9kZXMoKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCkge1xyXG5cdFx0dGhpcy5idWlsZE1lbnVUcmVlKCk7XHJcblx0XHR0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50c1xyXG5cdFx0XHQucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuYnVpbGRNZW51VHJlZSgpKTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0dGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcblx0fVxyXG5cclxuXHRpc1RleHRUcnVuY2F0ZWQobGFiZWw6IGFueSwgbGFuZzogc3RyaW5nIHwgbnVsbCwgbGV2ZWwgPSAwKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIWxhYmVsIHx8ICFsYW5nIHx8ICFsYWJlbFtsYW5nXSkgcmV0dXJuIGZhbHNlO1xyXG5cdFx0Y29uc3QgdGV4dCA9IGxhYmVsW2xhbmddO1xyXG5cdFx0Y29uc3QgbGVuID0gdGV4dC5sZW5ndGg7XHJcblx0XHRjb25zdCBsaW1pdHMgPSBbdGhpcy5NQVhfTEVOR1RILmxldmVsMCwgdGhpcy5NQVhfTEVOR1RILmxldmVsMSwgdGhpcy5NQVhfTEVOR1RILmxldmVsMiwgdGhpcy5NQVhfTEVOR1RILmxldmVsM107XHJcblx0XHRyZXR1cm4gbGVuID4gbGltaXRzW01hdGgubWluKGxldmVsLCAzKV07XHJcblx0fVxyXG5cclxuXHRpc01vYmlsZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuaXNNb2JpbGUoKTtcclxuXHR9XHJcblxyXG5cdGJ1aWxkTWVudVRyZWUoKSB7XHJcblx0XHRjb25zdCBtZW51SXRlbXMgPSB0aGlzLmdldE1lbnVJdGVtcygpO1xyXG5cdFx0Y29uc3Qgbm9kZXMgPSB0aGlzLmNvbnZlcnRUb01lbnVOb2RlcyhtZW51SXRlbXMpO1xyXG5cdFx0dGhpcy5tZW51Tm9kZXMuc2V0KG5vZGVzKTtcclxuXHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQoWy4uLm5vZGVzXSk7XHJcblx0XHR0aGlzLmV4cGFuZEFjdGl2ZU1lbnUoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZXhwYW5kQWN0aXZlTWVudSgpIHtcclxuXHRcdGNvbnN0IG5vZGVzID0gdGhpcy5tZW51Tm9kZXMoKTtcclxuXHRcdHRoaXMuZmluZEFuZEV4cGFuZEFjdGl2ZU5vZGUobm9kZXMpO1xyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldChbLi4udGhpcy5maWx0ZXJlZE5vZGVzKCldKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZmluZEFuZEV4cGFuZEFjdGl2ZU5vZGUobm9kZXM6IE1lbnVOb2RlW10pOiBNZW51Tm9kZSB8IG51bGwge1xyXG5cdFx0Zm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XHJcblx0XHRcdGlmICh0aGlzLmlzQWN0aXZlUm91dGVGb3JOb2RlKG5vZGUpKSB7XHJcblx0XHRcdFx0cmV0dXJuIG5vZGU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdGNvbnN0IGFjdGl2ZUNoaWxkID0gdGhpcy5maW5kQW5kRXhwYW5kQWN0aXZlTm9kZShub2RlLmNoaWxkcmVuKTtcclxuXHRcdFx0XHRpZiAoYWN0aXZlQ2hpbGQpIHtcclxuXHRcdFx0XHRcdC8vIHdlIGZpbmQgYWN0aXZlIGNoaWxkIGFuZCB0aGVuIG9wZW5lZCBpdHMgcGFyZW50IG5vZGVzXHJcblx0XHRcdFx0XHRub2RlLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHRcdFx0XHRcdHJldHVybiBhY3RpdmVDaGlsZDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHJcblx0Y29udmVydFRvTWVudU5vZGVzKGl0ZW1zOiBQbHVnaW5NZW51SXRlbVtdLCBwYXJlbnRLZXkgPSAnJyk6IE1lbnVOb2RlW10ge1xyXG5cdFx0cmV0dXJuIGl0ZW1zXHJcblx0XHRcdC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLnNlcGFyYXRvcilcclxuXHRcdFx0Lm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuXHRcdFx0XHRjb25zdCBrZXkgPSBwYXJlbnRLZXkgPyBgJHtwYXJlbnRLZXl9LSR7aW5kZXh9YCA6IGAke2luZGV4fWA7XHJcblx0XHRcdFx0Y29uc3Qgbm9kZTogTWVudU5vZGUgPSB7XHJcblx0XHRcdFx0XHRrZXksXHJcblx0XHRcdFx0XHRsYWJlbDogaXRlbS5sYWJlbCxcclxuXHRcdFx0XHRcdGljb246IGl0ZW0uaWNvbixcclxuXHRcdFx0XHRcdHJvdXRlckxpbms6IGl0ZW0ucm91dGVyTGluayxcclxuXHRcdFx0XHRcdGV4cGFuZGVkOiBmYWxzZVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0aWYgKGl0ZW0uaXRlbXMgJiYgaXRlbS5pdGVtcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRub2RlLmNoaWxkcmVuID0gdGhpcy5jb252ZXJ0VG9NZW51Tm9kZXMoaXRlbS5pdGVtcywga2V5KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIG5vZGU7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Z2V0TWVudUl0ZW1zKCk6IFBsdWdpbk1lbnVJdGVtW10ge1xyXG5cdFx0Y29uc3QgaXNIb3N0TW9kZSA9ICg8YW55Pmdsb2JhbFRoaXMpLmlzSG9zdE1vZGU7XHJcblx0XHRjb25zdCBob3N0TWVudUl0ZW1zID0gKDxhbnk+Z2xvYmFsVGhpcykuaG9zdE1lbnVJdGVtcztcclxuXHRcdHJldHVybiBpc0hvc3RNb2RlID8gaG9zdE1lbnVJdGVtcygpIDogdGhpcy5tZW51U2VydmljZS5tZW51SXRlbXMoKTtcclxuXHR9XHJcblxyXG5cdGdldExvY2FsVGV4dCh0ZXh0OiBhbnkpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMudHJhbnNsYXRlSnNvblBpcGUudHJhbnNmb3JtKHRleHQpO1xyXG5cdH1cclxuXHJcblx0aXNBY3RpdmVSb3V0ZUZvck5vZGUobm9kZTogTWVudU5vZGUpOiBib29sZWFuIHtcclxuXHRcdGlmICghbm9kZS5yb3V0ZXJMaW5rKSByZXR1cm4gZmFsc2U7XHJcblx0XHRjb25zdCBjdXJyZW50VXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG5cdFx0Y29uc3QgaGFzaFVybCA9IGN1cnJlbnRVcmwuaW5kZXhPZignIycpID4gLTEgPyBjdXJyZW50VXJsLnNwbGl0KCcjJylbMV0gOiBjdXJyZW50VXJsO1xyXG5cdFx0aWYgKGhhc2hVcmwgPT09IG5vZGUucm91dGVyTGluayB8fCBoYXNoVXJsID09PSAnLycgKyBub2RlLnJvdXRlckxpbmspIHJldHVybiB0cnVlO1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0bm9kZS5yb3V0ZXJMaW5rICE9PSAnLycgJiZcclxuXHRcdFx0KGhhc2hVcmwuc3RhcnRzV2l0aChub2RlLnJvdXRlckxpbmsgKyAnLycpIHx8IGhhc2hVcmwuc3RhcnRzV2l0aCgnLycgKyBub2RlLnJvdXRlckxpbmsgKyAnLycpKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdC8vIHVzZSBvbiBjb2xsYXBzZWQgbW9kZVxyXG5cdGlzTm9kZU9yQ2hpbGRBY3RpdmUobm9kZTogTWVudU5vZGUpOiBib29sZWFuIHtcclxuXHRcdGlmICh0aGlzLmlzQWN0aXZlUm91dGVGb3JOb2RlKG5vZGUpKSB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0aWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHJldHVybiBub2RlLmNoaWxkcmVuLnNvbWUoY2hpbGQgPT4gdGhpcy5pc05vZGVPckNoaWxkQWN0aXZlKGNoaWxkKSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdGlzVG9wTGV2ZWxOb2RlQWN0aXZlKG5vZGU6IE1lbnVOb2RlKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5pc05vZGVPckNoaWxkQWN0aXZlKG5vZGUpO1xyXG5cdH1cclxuXHJcblx0aXNDaGlsZE5vZGVBY3RpdmUobm9kZTogTWVudU5vZGUpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmlzQWN0aXZlUm91dGVGb3JOb2RlKG5vZGUpO1xyXG5cdH1cclxuXHJcblx0dG9nZ2xlTm9kZShub2RlOiBNZW51Tm9kZSwgbGV2ZWwgPSAwKSB7XHJcblx0XHRjb25zdCB3YXNFeHBhbmRlZCA9IG5vZGUuZXhwYW5kZWQ7XHJcblx0XHRpZiAobGV2ZWwgPT09IDApIHtcclxuXHRcdFx0Ly8gRGnEn2VyIGFuYSBtZW7DvGxlcmkga2FwYXRcclxuXHRcdFx0dGhpcy5jbG9zZU90aGVyVG9wTGV2ZWxOb2Rlcyhub2RlKTtcclxuXHRcdH1cclxuXHRcdG5vZGUuZXhwYW5kZWQgPSAhd2FzRXhwYW5kZWQ7XHJcblx0XHRcclxuXHRcdHRoaXMuZmlsdGVyZWROb2Rlcy5zZXQoWy4uLnRoaXMuZmlsdGVyZWROb2RlcygpXSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNsb3NlT3RoZXJUb3BMZXZlbE5vZGVzKGV4Y2VwdE5vZGU6IE1lbnVOb2RlKSB7XHJcblx0XHRjb25zdCBub2RlcyA9IHRoaXMubWVudU5vZGVzKCk7XHJcblx0XHRub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xyXG5cdFx0XHRpZiAobm9kZSAhPT0gZXhjZXB0Tm9kZSkge1xyXG5cdFx0XHRcdG5vZGUuZXhwYW5kZWQgPSBmYWxzZTtcclxuXHRcdFx0XHR0aGlzLmNsb3NlQWxsQ2hpbGROb2Rlcyhub2RlKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNsb3NlQWxsQ2hpbGROb2Rlcyhub2RlOiBNZW51Tm9kZSkge1xyXG5cdFx0aWYgKG5vZGUuY2hpbGRyZW4pIHtcclxuXHRcdFx0bm9kZS5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcclxuXHRcdFx0XHRjaGlsZC5leHBhbmRlZCA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuY2xvc2VBbGxDaGlsZE5vZGVzKGNoaWxkKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR0cmFja0J5S2V5KGluZGV4OiBudW1iZXIsIG5vZGU6IE1lbnVOb2RlKTogYW55IHtcclxuXHRcdHJldHVybiBub2RlLmtleTtcclxuXHR9XHJcblxyXG5cdG9uTWVudUl0ZW1DbGljaygpIHtcclxuXHRcdGlmICh0aGlzLmlzTW9iaWxlKCkpIHtcclxuXHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNsb3NlTW9iaWxlTWVudSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc2VhcmNoVGVybS5zZXQoJycpO1xyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldCh0aGlzLm1lbnVOb2RlcygpIHx8IFtdKTtcclxuXHR9XHJcblxyXG5cdG9uQ29sbGFwc2VkSXRlbUNsaWNrKG5vZGU6IE1lbnVOb2RlKSB7XHJcblx0XHRpZiAodGhpcy5pc0NvbGxhcHNlZCkge1xyXG5cdFx0XHR0aGlzLmxheW91dFNlcnZpY2Uub25NZW51VG9nZ2xlKCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmNsb3NlT3RoZXJUb3BMZXZlbE5vZGVzKG5vZGUpO1xyXG5cdFx0aWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdG5vZGUuZXhwYW5kZWQgPSB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5maWx0ZXJlZE5vZGVzLnNldChbLi4udGhpcy5maWx0ZXJlZE5vZGVzKCldKTtcclxuXHRcdGlmIChub2RlLnJvdXRlckxpbmspIHtcclxuXHRcdFx0dGhpcy5vbk1lbnVJdGVtQ2xpY2soKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uU2VhcmNoQ2hhbmdlKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgY3VycmVudFNlYXJjaFRlcm0gPSB0aGlzLnNlYXJjaFRlcm0oKT8udG9Mb3dlckNhc2UoKT8udHJpbSgpO1xyXG5cdFx0aWYgKCFjdXJyZW50U2VhcmNoVGVybSkge1xyXG5cdFx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KHRoaXMubWVudU5vZGVzKCkgfHwgW10pO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLmZpbHRlcmVkTm9kZXMuc2V0KHRoaXMuZmlsdGVyTm9kZXModGhpcy5tZW51Tm9kZXMoKSwgY3VycmVudFNlYXJjaFRlcm0pKTtcclxuXHR9XHJcblxyXG5cdFx0cHJpdmF0ZSBmaWx0ZXJOb2Rlcyhub2RlczogTWVudU5vZGVbXSwgc2VhcmNoVGVybTogc3RyaW5nKTogTWVudU5vZGVbXSB7XHJcblx0XHRjb25zdCBmaWx0ZXJlZDogTWVudU5vZGVbXSA9IFtdO1xyXG5cdFx0Y29uc3QgY3VycmVudExhbmcgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UuZ2V0QWN0aXZlTGFuZygpO1xyXG5cclxuXHRcdGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG5cdFx0XHQvLyBDb252ZXJ0IGxhYmVsIHRvIHN0cmluZyBmb3Igc2VhcmNoIGJhc2VkIG9uIGFjdGl2ZSBsYW5ndWFnZVxyXG5cdFx0XHRjb25zdCBsYWJlbFRleHQgPVxyXG5cdFx0XHRcdHR5cGVvZiBub2RlLmxhYmVsID09PSAnc3RyaW5nJyA/XHJcblx0XHRcdFx0XHRub2RlLmxhYmVsXHJcblx0XHRcdFx0Olx0KG5vZGUubGFiZWwgYXMgYW55KT8uW2N1cnJlbnRMYW5nXSB8fCAobm9kZS5sYWJlbCBhcyBhbnkpPy50ciB8fCAobm9kZS5sYWJlbCBhcyBhbnkpPy5lbiB8fCAnJztcclxuXHJcblx0XHRcdGNvbnN0IG1hdGNoZXMgPSBsYWJlbFRleHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKTtcclxuXHRcdFx0bGV0IGZpbHRlcmVkQ2hpbGRyZW46IE1lbnVOb2RlW10gPSBbXTtcclxuXHJcblx0XHRcdGlmIChub2RlLmNoaWxkcmVuKSB7XHJcblx0XHRcdFx0ZmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmlsdGVyTm9kZXMobm9kZS5jaGlsZHJlbiwgc2VhcmNoVGVybSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChtYXRjaGVzIHx8IGZpbHRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdGZpbHRlcmVkLnB1c2goe1xyXG5cdFx0XHRcdFx0Li4ubm9kZSxcclxuXHRcdFx0XHRcdGNoaWxkcmVuOiBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDAgPyBmaWx0ZXJlZENoaWxkcmVuIDogbm9kZS5jaGlsZHJlbixcclxuXHRcdFx0XHRcdGV4cGFuZGVkOiBmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDBcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBmaWx0ZXJlZDtcclxuXHR9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzdGF0aWMtc2lkZWJhclwiIFtjbGFzcy5jb2xsYXBzZWRdPVwiaXNDb2xsYXBzZWRcIj5cclxuXHQ8ZGl2IGNsYXNzPVwic3RhdGljLXNpZGViYXItY29udGVudFwiPlxyXG5cdFx0QGlmICghaXNDb2xsYXBzZWQpIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cInNlYXJjaC1jb250YWluZXJcIiAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6ICcnXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cInNlYXJjaC13cmFwcGVyXCI+XHJcblx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXNlYXJjaCBzZWFyY2gtaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdDxpbnB1dFxyXG5cdFx0XHRcdFx0XHR0eXBlPVwidGV4dFwiXHJcblx0XHRcdFx0XHRcdHBJbnB1dFRleHRcclxuXHRcdFx0XHRcdFx0dmFyaWFudD1cImZpbGxlZFwiXHJcblx0XHRcdFx0XHRcdFtwbGFjZWhvbGRlcl09XCJ0KCdzZWFyY2gnKVwiXHJcblx0XHRcdFx0XHRcdFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiXHJcblx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoQ2hhbmdlKClcIlxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cInNlYXJjaC1zdGF0aWMtc2lkZWJhclwiIC8+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8cC1zY3JvbGxQYW5lbCBbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdjYWxjKDEwMHZoIC0gMTMwcHgpJyB9XCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cInRyZWUtY29udGFpbmVyXCI+XHJcblx0XHRcdFx0XHRAZm9yIChub2RlIG9mIGZpbHRlcmVkTm9kZXMoKTsgdHJhY2sgdHJhY2tCeUtleSgkaW5kZXgsIG5vZGUpKSB7XHJcblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmVlTm9kZVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbm9kZSwgbGV2ZWw6IDAgfVwiPjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L3Atc2Nyb2xsUGFuZWw+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PCEtLSBDb2xsYXBzZWQgbW9kZSAtIG9ubHkgaWNvbnMgLS0+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJjb2xsYXBzZWQtY29udGFpbmVyXCI+XHJcblx0XHRcdFx0QGZvciAobm9kZSBvZiB0b3BMZXZlbE5vZGVzOyB0cmFjayB0cmFja0J5S2V5KCRpbmRleCwgbm9kZSkpIHtcclxuXHRcdFx0XHRcdEBpZiAobm9kZS5yb3V0ZXJMaW5rICYmICghbm9kZS5jaGlsZHJlbiB8fCBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpIHtcclxuXHRcdFx0XHRcdFx0PGEgXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJjb2xsYXBzZWQtaXRlbVwiIFxyXG5cdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCJnZXRMb2NhbFRleHQobm9kZS5sYWJlbClcIiBcclxuXHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcblx0XHRcdFx0XHRcdFx0W3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdFx0XHRbY2xhc3MuYWN0aXZlXT1cImlzVG9wTGV2ZWxOb2RlQWN0aXZlKG5vZGUpXCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwib25Db2xsYXBzZWRJdGVtQ2xpY2sobm9kZSlcIj5cclxuXHRcdFx0XHRcdFx0XHRAaWYgKG5vZGUuaWNvbikge1xyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJjb2xsYXBzZWQtaWNvblwiIFtjbGFzc109XCJub2RlLmljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImNvbGxhcHNlZC1pY29uIHBpIHBpLWNpcmNsZVwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdDwvYT5cclxuXHRcdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQ8ZGl2IFxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiY29sbGFwc2VkLWl0ZW1cIiBcclxuXHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiZ2V0TG9jYWxUZXh0KG5vZGUubGFiZWwpXCIgXHJcblx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxyXG5cdFx0XHRcdFx0XHRcdFtjbGFzcy5hY3RpdmVdPVwiaXNUb3BMZXZlbE5vZGVBY3RpdmUobm9kZSlcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJvbkNvbGxhcHNlZEl0ZW1DbGljayhub2RlKVwiPlxyXG5cdFx0XHRcdFx0XHRcdEBpZiAobm9kZS5pY29uKSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImNvbGxhcHNlZC1pY29uXCIgW2NsYXNzXT1cIm5vZGUuaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiY29sbGFwc2VkLWljb24gcGkgcGktY2lyY2xlXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHQ8L2Rpdj5cclxuXHJcblx0PCEtLSBSZWN1cnNpdmUgVHJlZSBOb2RlIFRlbXBsYXRlIC0tPlxyXG5cdDxuZy10ZW1wbGF0ZSAjdHJlZU5vZGVUZW1wbGF0ZSBsZXQtbm9kZSBsZXQtbGV2ZWw9XCJsZXZlbFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInRyZWUtbm9kZVwiIFtuZ0NsYXNzXT1cIidsZXZlbC0nICsgbGV2ZWxcIj5cclxuXHRcdFx0QGlmIChub2RlLnJvdXRlckxpbmspIHtcclxuXHRcdFx0XHQ8YVxyXG5cdFx0XHRcdFx0W3JvdXRlckxpbmtdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdGNsYXNzPVwibm9kZS1pdGVtXCJcclxuXHRcdFx0XHRcdFtjbGFzcy5oYXMtY2hpbGRyZW5dPVwibm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDBcIlxyXG5cdFx0XHRcdFx0W2NsYXNzLmlzLXBhZ2VdPVwibm9kZS5yb3V0ZXJMaW5rXCJcclxuXHRcdFx0XHRcdFtjbGFzcy5hY3RpdmVdPVwiaXNDaGlsZE5vZGVBY3RpdmUobm9kZSlcIlxyXG5cdFx0XHRcdFx0W3BUb29sdGlwXT1cIiFpc01vYmlsZSgpICYmIGlzVGV4dFRydW5jYXRlZChub2RlLmxhYmVsLCBhY3RpdmVMYW5nKCksIGxldmVsKSA/IGdldExvY2FsVGV4dChub2RlLmxhYmVsKSA6ICcnXCJcclxuXHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcclxuXHRcdFx0XHRcdChjbGljayk9XCJvbk1lbnVJdGVtQ2xpY2soKVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm5vZGUtY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRvZ2dsZS1idG5cIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgdG9nZ2xlTm9kZShub2RlLCBsZXZlbClcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGlcIiBbY2xhc3MucGktY2hldnJvbi1yaWdodF09XCIhbm9kZS5leHBhbmRlZFwiIFtjbGFzcy5waS1jaGV2cm9uLWRvd25dPVwibm9kZS5leHBhbmRlZFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0QGlmIChub2RlLmljb24pIHtcclxuXHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cIm5vZGUtaWNvblwiIFtjbGFzc109XCJub2RlLmljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJub2RlLWxhYmVsXCI+e3sgZ2V0TG9jYWxUZXh0KG5vZGUubGFiZWwpIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9hPlxyXG5cdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRjbGFzcz1cIm5vZGUtaXRlbVwiXHJcblx0XHRcdFx0XHRbY2xhc3MuaGFzLWNoaWxkcmVuXT1cIm5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwXCJcclxuXHRcdFx0XHRcdFtjbGFzcy5pcy1wYWdlXT1cIm5vZGUucm91dGVyTGlua1wiXHJcblx0XHRcdFx0XHRbY2xhc3MuYWN0aXZlXT1cImlzQ2hpbGROb2RlQWN0aXZlKG5vZGUpXCJcclxuXHRcdFx0XHRcdFtwVG9vbHRpcF09XCIhaXNNb2JpbGUoKSAmJiBpc1RleHRUcnVuY2F0ZWQobm9kZS5sYWJlbCwgYWN0aXZlTGFuZygpLCBsZXZlbCkgPyBnZXRMb2NhbFRleHQobm9kZS5sYWJlbCkgOiAnJ1wiXHJcblx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcblx0XHRcdFx0XHQoY2xpY2spPVwidG9nZ2xlTm9kZShub2RlLCBsZXZlbClcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJub2RlLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0QGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0b2dnbGUtYnRuXCJcclxuXHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHRvZ2dsZU5vZGUobm9kZSwgbGV2ZWwpXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpXCIgW2NsYXNzLnBpLWNoZXZyb24tcmlnaHRdPVwiIW5vZGUuZXhwYW5kZWRcIiBbY2xhc3MucGktY2hldnJvbi1kb3duXT1cIm5vZGUuZXhwYW5kZWRcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdEBpZiAobm9kZS5pY29uKSB7XHJcblx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJub2RlLWljb25cIiBbY2xhc3NdPVwibm9kZS5pY29uXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwibm9kZS1sYWJlbFwiPnt7IGdldExvY2FsVGV4dChub2RlLmxhYmVsKSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ8IS0tIFJlY3Vyc2l2ZSBDaGlsZHJlbiAtLT5cclxuXHRcdFx0QGlmIChub2RlLmNoaWxkcmVuICYmIG5vZGUuZXhwYW5kZWQpIHtcclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2hpbGRyZW4tY29udGFpbmVyXCIgW2F0dHIuZGF0YS1sZXZlbF09XCJsZXZlbFwiPlxyXG5cdFx0XHRcdFx0QGZvciAoY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbjsgdHJhY2sgdHJhY2tCeUtleSgkaW5kZXgsIGNoaWxkKSkge1xyXG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdFx0XHRcdFx0Km5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmVlTm9kZVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY2hpbGQsIGxldmVsOiBsZXZlbCArIDEgfVwiPjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHR9XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj4gIl19