aril 1.1.73 → 1.1.75

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 (1353) hide show
  1. package/README.md +62 -62
  2. package/boot/config/api/src/api.service.d.ts +12 -0
  3. package/boot/config/api/src/interfaces.d.ts +39 -0
  4. package/boot/config/api.sample.json +8 -0
  5. package/boot/config/apps/src/apps.service.d.ts +13 -0
  6. package/boot/config/apps/src/auth.guard.d.ts +9 -0
  7. package/boot/config/apps/src/interfaces.d.ts +50 -0
  8. package/boot/config/apps/src/reuse-strategy.d.ts +4 -0
  9. package/boot/config/apps/src/showdowDOMWrapper.d.ts +10 -0
  10. package/boot/config/plugins/src/getNgZone.d.ts +5 -0
  11. package/boot/config/plugins/src/interfaces.d.ts +55 -0
  12. package/boot/config/plugins/src/plugins.service.d.ts +5 -0
  13. package/boot/config/translate/constants.d.ts +4 -0
  14. package/boot/config/translate/primeng/i18n/tr.d.ts +46 -0
  15. package/boot/host/src/app.component.d.ts +10 -0
  16. package/boot/host/src/bootstrap.d.ts +4 -0
  17. package/boot/index.d.ts +1 -0
  18. package/boot/mfe/src/app.component.d.ts +17 -0
  19. package/boot/mfe/src/appComponentLoader.d.ts +1 -0
  20. package/boot/mfe/src/bootstrap.d.ts +5 -0
  21. package/boot/mfe/src/loadStyles.d.ts +3 -0
  22. package/boot/mfe/src/monaco.config.d.ts +7 -0
  23. package/esm2022/aril.mjs +5 -0
  24. package/esm2022/boot/aril-boot.mjs +5 -0
  25. package/esm2022/boot/config/api/aril-boot-config-api.mjs +5 -0
  26. package/esm2022/boot/config/api/index.mjs +2 -0
  27. package/esm2022/boot/config/api/src/api.service.mjs +59 -0
  28. package/esm2022/boot/config/api/src/interfaces.mjs +61 -0
  29. package/esm2022/boot/config/apps/aril-boot-config-apps.mjs +5 -0
  30. package/esm2022/boot/config/apps/index.mjs +4 -0
  31. package/esm2022/boot/config/apps/src/apps.service.mjs +53 -0
  32. package/esm2022/boot/config/apps/src/auth.guard.mjs +22 -0
  33. package/esm2022/boot/config/apps/src/interfaces.mjs +21 -0
  34. package/esm2022/boot/config/apps/src/reuse-strategy.mjs +9 -0
  35. package/esm2022/boot/config/apps/src/showdowDOMWrapper.mjs +35 -0
  36. package/esm2022/boot/config/plugins/aril-boot-config-plugins.mjs +5 -0
  37. package/esm2022/boot/config/plugins/index.mjs +3 -0
  38. package/esm2022/boot/config/plugins/src/getNgZone.mjs +9 -0
  39. package/esm2022/boot/config/plugins/src/interfaces.mjs +62 -0
  40. package/esm2022/boot/config/plugins/src/plugins.service.mjs +84 -0
  41. package/esm2022/boot/config/translate/aril-boot-config-translate.mjs +5 -0
  42. package/esm2022/boot/config/translate/constants.mjs +6 -0
  43. package/esm2022/boot/config/translate/index.mjs +3 -0
  44. package/esm2022/boot/config/translate/primeng/i18n/tr.mjs +60 -0
  45. package/esm2022/boot/host/aril-boot-host.mjs +5 -0
  46. package/esm2022/boot/host/index.mjs +2 -0
  47. package/esm2022/boot/host/src/app.component.mjs +49 -0
  48. package/esm2022/boot/host/src/bootstrap.mjs +55 -0
  49. package/esm2022/boot/index.mjs +2 -0
  50. package/esm2022/boot/mfe/aril-boot-mfe.mjs +5 -0
  51. package/esm2022/boot/mfe/index.mjs +2 -0
  52. package/esm2022/boot/mfe/src/app.component.mjs +63 -0
  53. package/esm2022/boot/mfe/src/appComponentLoader.mjs +5 -0
  54. package/esm2022/boot/mfe/src/bootstrap.mjs +76 -0
  55. package/esm2022/boot/mfe/src/loadStyles.mjs +37 -0
  56. package/esm2022/boot/mfe/src/monaco.config.mjs +247 -0
  57. package/esm2022/http/aril-http.mjs +5 -0
  58. package/esm2022/http/index.mjs +12 -0
  59. package/esm2022/http/lib/enums.mjs +35 -0
  60. package/esm2022/http/lib/interfaces.mjs +16 -0
  61. package/esm2022/http/src/httpBackend.mjs +17 -0
  62. package/esm2022/http/src/httpClient.mjs +16 -0
  63. package/esm2022/http/src/interceptor/accept-language.interceptor.mjs +21 -0
  64. package/esm2022/http/src/serviceBase.mjs +140 -0
  65. package/esm2022/http/src/serviceMockBase.mjs +4 -0
  66. package/esm2022/http/src/serviceRequest.mjs +23 -0
  67. package/esm2022/http/src/serviceStateMethods.mjs +167 -0
  68. package/esm2022/i18n/aril-i18n.mjs +5 -0
  69. package/esm2022/i18n/index.mjs +6 -0
  70. package/esm2022/i18n/src/folder-name-token.mjs +3 -0
  71. package/esm2022/i18n/src/i18n.module.mjs +17 -0
  72. package/esm2022/i18n/src/loader.mjs +18 -0
  73. package/esm2022/i18n/src/provideI18n.mjs +16 -0
  74. package/esm2022/i18n/src/provideScope.mjs +18 -0
  75. package/esm2022/keycloak/aril-keycloak.mjs +5 -0
  76. package/esm2022/keycloak/index.mjs +2 -0
  77. package/esm2022/keycloak/src/auth.interceptor.mjs +92 -0
  78. package/esm2022/provider/aril-provider.mjs +5 -0
  79. package/esm2022/provider/index.mjs +2 -0
  80. package/esm2022/provider/src/index.mjs +5 -0
  81. package/esm2022/provider/src/prodiveHost.mjs +9 -0
  82. package/esm2022/provider/src/prodiveHostRouter.mjs +12 -0
  83. package/esm2022/provider/src/provideHostKeycloak.mjs +28 -0
  84. package/esm2022/provider/src/provideLocaleId.mjs +20 -0
  85. package/esm2022/public-api.mjs +3 -0
  86. package/esm2022/theme/aril-theme.mjs +5 -0
  87. package/esm2022/theme/index.mjs +2 -0
  88. package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +106 -0
  89. package/esm2022/theme/layout/app/chatbot/app.chatbot.component.mjs +140 -0
  90. package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +250 -0
  91. package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +217 -0
  92. package/esm2022/theme/layout/app/favorite-pages/favorite-pages.service.mjs +60 -0
  93. package/esm2022/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.mjs +129 -0
  94. package/esm2022/theme/layout/app/general-search/general-search.component.mjs +75 -0
  95. package/esm2022/theme/layout/app/general-search/helpers.mjs +92 -0
  96. package/esm2022/theme/layout/app/general-search/models.mjs +50 -0
  97. package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +133 -0
  98. package/esm2022/theme/layout/app/history/history.service.mjs +131 -0
  99. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +160 -0
  100. package/esm2022/theme/layout/app/layout/mfe.layout.component.mjs +64 -0
  101. package/esm2022/theme/layout/app/notifications/notifications-sidebar.component.mjs +191 -0
  102. package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +122 -0
  103. package/esm2022/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.mjs +142 -0
  104. package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +202 -0
  105. package/esm2022/theme/layout/app/profileSidebar/profile.service.mjs +66 -0
  106. package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +166 -0
  107. package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +228 -0
  108. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +155 -0
  109. package/esm2022/theme/layout/aril-theme-layout.mjs +5 -0
  110. package/esm2022/theme/layout/index.mjs +8 -0
  111. package/esm2022/theme/layout/service/app.layout.service.mjs +231 -0
  112. package/esm2022/theme/layout/service/app.menu.service.mjs +46 -0
  113. package/esm2022/theme/layout/service/breadcrumb.service.mjs +20 -0
  114. package/esm2022/theme/layout/service/interfaces/enum.mjs +16 -0
  115. package/esm2022/theme/layout/service/interfaces/interfaces.mjs +2 -0
  116. package/esm2022/theme/layout/service/menuchangeevent.mjs +2 -0
  117. package/esm2022/theme/layout/service/notifications.service.mjs +30 -0
  118. package/esm2022/theme/layout/service/search.service.mjs +25 -0
  119. package/esm2022/theme/layout/service/selection-group.service.mjs +65 -0
  120. package/esm2022/ui/aril-ui.mjs +5 -0
  121. package/esm2022/ui/autoComplete/aril-ui-autoComplete.mjs +5 -0
  122. package/esm2022/ui/autoComplete/index.mjs +2 -0
  123. package/esm2022/ui/autoComplete/src/auto-complete.component.mjs +109 -0
  124. package/esm2022/ui/autoComplete/src/interfaces.mjs +2 -0
  125. package/esm2022/ui/badge/aril-ui-badge.mjs +5 -0
  126. package/esm2022/ui/badge/index.mjs +2 -0
  127. package/esm2022/ui/badge/src/badge.component.mjs +59 -0
  128. package/esm2022/ui/button/aril-ui-button.mjs +5 -0
  129. package/esm2022/ui/button/index.mjs +3 -0
  130. package/esm2022/ui/button/src/button.component.mjs +40 -0
  131. package/esm2022/ui/button/src/split-button.component.mjs +18 -0
  132. package/esm2022/ui/calendar/aril-ui-calendar.mjs +5 -0
  133. package/esm2022/ui/calendar/index.mjs +2 -0
  134. package/esm2022/ui/calendar/src/calendar.component.mjs +224 -0
  135. package/esm2022/ui/charts/aril-ui-charts.mjs +5 -0
  136. package/esm2022/ui/charts/index.mjs +13 -0
  137. package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +124 -0
  138. package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +164 -0
  139. package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +116 -0
  140. package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +114 -0
  141. package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +100 -0
  142. package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +117 -0
  143. package/esm2022/ui/charts/src/highCharts/gauge/solid-gauge.component.mjs +180 -0
  144. package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +252 -0
  145. package/esm2022/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.mjs +187 -0
  146. package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +89 -0
  147. package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +82 -0
  148. package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +137 -0
  149. package/esm2022/ui/charts/src/theme/theme.mjs +54 -0
  150. package/esm2022/ui/checkbox/aril-ui-checkbox.mjs +5 -0
  151. package/esm2022/ui/checkbox/index.mjs +3 -0
  152. package/esm2022/ui/checkbox/src/check-box.component.mjs +27 -0
  153. package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +24 -0
  154. package/esm2022/ui/chip/aril-ui-chip.mjs +5 -0
  155. package/esm2022/ui/chip/index.mjs +2 -0
  156. package/esm2022/ui/chip/src/chip.component.mjs +129 -0
  157. package/esm2022/ui/collapse-reorder-list/aril-ui-collapse-reorder-list.mjs +5 -0
  158. package/esm2022/ui/collapse-reorder-list/index.mjs +2 -0
  159. package/esm2022/ui/collapse-reorder-list/src/collapse-reorder-list.component.mjs +53 -0
  160. package/esm2022/ui/dxEditor/aril-ui-dxEditor.mjs +5 -0
  161. package/esm2022/ui/dxEditor/index.mjs +2 -0
  162. package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +26 -0
  163. package/esm2022/ui/dxField/aril-ui-dxField.mjs +5 -0
  164. package/esm2022/ui/dxField/index.mjs +2 -0
  165. package/esm2022/ui/dxField/src/dx-field.component.mjs +19 -0
  166. package/esm2022/ui/editor/aril-ui-editor.mjs +5 -0
  167. package/esm2022/ui/editor/index.mjs +3 -0
  168. package/esm2022/ui/editor/src/aril-editor.component.mjs +171 -0
  169. package/esm2022/ui/editor/src/types.mjs +26 -0
  170. package/esm2022/ui/field/aril-ui-field.mjs +5 -0
  171. package/esm2022/ui/field/index.mjs +2 -0
  172. package/esm2022/ui/field/src/field.component.mjs +45 -0
  173. package/esm2022/ui/fileUpload/aril-ui-fileUpload.mjs +5 -0
  174. package/esm2022/ui/fileUpload/index.mjs +2 -0
  175. package/esm2022/ui/fileUpload/src/file-upload.component.mjs +73 -0
  176. package/esm2022/ui/form/aril-ui-form.mjs +5 -0
  177. package/esm2022/ui/form/index.mjs +22 -0
  178. package/esm2022/ui/form/src/form-submit-button.component.mjs +40 -0
  179. package/esm2022/ui/form/src/form.component.mjs +27 -0
  180. package/esm2022/ui/img-viewer/aril-ui-img-viewer.mjs +5 -0
  181. package/esm2022/ui/img-viewer/index.mjs +2 -0
  182. package/esm2022/ui/img-viewer/src/img-viewer.component.mjs +57 -0
  183. package/esm2022/ui/index.mjs +2 -0
  184. package/esm2022/ui/json-diff-comparison/aril-ui-json-diff-comparison.mjs +5 -0
  185. package/esm2022/ui/json-diff-comparison/index.mjs +2 -0
  186. package/esm2022/ui/json-diff-comparison/src/json-diff.component.mjs +49 -0
  187. package/esm2022/ui/lib/aril-ui-lib.mjs +5 -0
  188. package/esm2022/ui/lib/index.mjs +16 -0
  189. package/esm2022/ui/lib/src/form/form-error-message.component.mjs +33 -0
  190. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +34 -0
  191. package/esm2022/ui/lib/src/form/form-field-builder.mjs +23 -0
  192. package/esm2022/ui/lib/src/form/form-validation.mjs +14 -0
  193. package/esm2022/ui/lib/src/grid/enum-color-picker.pipe.mjs +35 -0
  194. package/esm2022/ui/lib/src/grid/flex-grid.directive.mjs +21 -0
  195. package/esm2022/ui/lib/src/input/baseInput.mjs +24 -0
  196. package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +49 -0
  197. package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +22 -0
  198. package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +25 -0
  199. package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +69 -0
  200. package/esm2022/ui/lib/src/input/input-transforms.mjs +8 -0
  201. package/esm2022/ui/lib/src/input/value-accessor.directive.mjs +38 -0
  202. package/esm2022/ui/loader/aril-ui-loader.mjs +5 -0
  203. package/esm2022/ui/loader/index.mjs +2 -0
  204. package/esm2022/ui/loader/src/loader.component.mjs +14 -0
  205. package/esm2022/ui/mask/aril-ui-mask.mjs +5 -0
  206. package/esm2022/ui/mask/index.mjs +2 -0
  207. package/esm2022/ui/mask/src/mask.component.mjs +35 -0
  208. package/esm2022/ui/multiSelect/aril-ui-multiSelect.mjs +5 -0
  209. package/esm2022/ui/multiSelect/index.mjs +2 -0
  210. package/esm2022/ui/multiSelect/src/interfaces.mjs +2 -0
  211. package/esm2022/ui/multiSelect/src/multi-select.component.mjs +57 -0
  212. package/esm2022/ui/number/aril-ui-number.mjs +5 -0
  213. package/esm2022/ui/number/index.mjs +2 -0
  214. package/esm2022/ui/number/src/number.component.mjs +38 -0
  215. package/esm2022/ui/operation-types-dialog/aril-ui-operation-types-dialog.mjs +5 -0
  216. package/esm2022/ui/operation-types-dialog/index.mjs +2 -0
  217. package/esm2022/ui/operation-types-dialog/src/operation-types-dialog.component.mjs +91 -0
  218. package/esm2022/ui/overlayPanel/aril-ui-overlayPanel.mjs +5 -0
  219. package/esm2022/ui/overlayPanel/index.mjs +2 -0
  220. package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +20 -0
  221. package/esm2022/ui/panel/aril-ui-panel.mjs +5 -0
  222. package/esm2022/ui/panel/index.mjs +2 -0
  223. package/esm2022/ui/panel/src/panel.component.mjs +33 -0
  224. package/esm2022/ui/password/aril-ui-password.mjs +5 -0
  225. package/esm2022/ui/password/index.mjs +2 -0
  226. package/esm2022/ui/password/src/password.component.mjs +29 -0
  227. package/esm2022/ui/pdf-viewer/aril-ui-pdf-viewer.mjs +5 -0
  228. package/esm2022/ui/pdf-viewer/index.mjs +2 -0
  229. package/esm2022/ui/pdf-viewer/src/pdf-viewer.component.mjs +27 -0
  230. package/esm2022/ui/progressbar/aril-ui-progressbar.mjs +5 -0
  231. package/esm2022/ui/progressbar/index.mjs +2 -0
  232. package/esm2022/ui/progressbar/src/progressbar.component.mjs +18 -0
  233. package/esm2022/ui/radioButton/aril-ui-radioButton.mjs +5 -0
  234. package/esm2022/ui/radioButton/index.mjs +2 -0
  235. package/esm2022/ui/radioButton/src/radio-button.component.mjs +30 -0
  236. package/esm2022/ui/relativeDateSelector/aril-ui-relativeDateSelector.mjs +5 -0
  237. package/esm2022/ui/relativeDateSelector/index.mjs +2 -0
  238. package/esm2022/ui/relativeDateSelector/src/enum.mjs +31 -0
  239. package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +248 -0
  240. package/esm2022/ui/selectBox/aril-ui-selectBox.mjs +5 -0
  241. package/esm2022/ui/selectBox/index.mjs +2 -0
  242. package/esm2022/ui/selectBox/src/interfaces.mjs +2 -0
  243. package/esm2022/ui/selectBox/src/select-box.component.mjs +67 -0
  244. package/esm2022/ui/switch/aril-ui-switch.mjs +5 -0
  245. package/esm2022/ui/switch/index.mjs +2 -0
  246. package/esm2022/ui/switch/src/switch.component.mjs +23 -0
  247. package/esm2022/ui/table/aril-ui-table.mjs +5 -0
  248. package/esm2022/ui/table/index.mjs +131 -0
  249. package/esm2022/ui/table/src/export-overlay-panel.component.mjs +321 -0
  250. package/esm2022/ui/table/src/interfaces.mjs +44 -0
  251. package/esm2022/ui/table/src/table-column.component.mjs +31 -0
  252. package/esm2022/ui/table/src/table.component.mjs +334 -0
  253. package/esm2022/ui/table-expand/aril-ui-table-expand.mjs +5 -0
  254. package/esm2022/ui/table-expand/index.mjs +61 -0
  255. package/esm2022/ui/table-expand/src/table-column.component.mjs +25 -0
  256. package/esm2022/ui/table-expand/src/table-expand-area.component.mjs +17 -0
  257. package/esm2022/ui/table-expand/src/table.component.mjs +99 -0
  258. package/esm2022/ui/tag/aril-ui-tag.mjs +5 -0
  259. package/esm2022/ui/tag/index.mjs +2 -0
  260. package/esm2022/ui/tag/src/interface.mjs +2 -0
  261. package/esm2022/ui/tag/src/tag.component.mjs +20 -0
  262. package/esm2022/ui/tagBox/aril-ui-tagBox.mjs +5 -0
  263. package/esm2022/ui/tagBox/index.mjs +2 -0
  264. package/esm2022/ui/tagBox/src/tag-box.component.mjs +55 -0
  265. package/esm2022/ui/text/aril-ui-text.mjs +5 -0
  266. package/esm2022/ui/text/index.mjs +2 -0
  267. package/esm2022/ui/text/src/text.component.mjs +47 -0
  268. package/esm2022/ui/textArea/aril-ui-textArea.mjs +5 -0
  269. package/esm2022/ui/textArea/index.mjs +2 -0
  270. package/esm2022/ui/textArea/src/text-area.component.mjs +27 -0
  271. package/esm2022/ui/toggle-button/aril-ui-toggle-button.mjs +5 -0
  272. package/esm2022/ui/toggle-button/index.mjs +2 -0
  273. package/esm2022/ui/toggle-button/src/toggle-button.component.mjs +25 -0
  274. package/esm2022/ui/tooltip/aril-ui-tooltip.mjs +5 -0
  275. package/esm2022/ui/tooltip/index.mjs +2 -0
  276. package/esm2022/ui/tooltip/src/tooltip-component.mjs +23 -0
  277. package/esm2022/ui/translate-input/aril-ui-translate-input.mjs +5 -0
  278. package/esm2022/ui/translate-input/index.mjs +2 -0
  279. package/esm2022/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.mjs +64 -0
  280. package/esm2022/ui/translate-input/src/aril-lang-modal/constants.mjs +15 -0
  281. package/esm2022/ui/translate-input/src/aril-translate-input.component.mjs +128 -0
  282. package/esm2022/ui/translate-input/src/interface.mjs +2 -0
  283. package/esm2022/ui/tree/aril-ui-tree.mjs +5 -0
  284. package/esm2022/ui/tree/index.mjs +2 -0
  285. package/esm2022/ui/tree/src/tree.component.mjs +53 -0
  286. package/esm2022/ui/treeSelect/aril-ui-treeSelect.mjs +5 -0
  287. package/esm2022/ui/treeSelect/index.mjs +2 -0
  288. package/esm2022/ui/treeSelect/src/treeSelect.component.mjs +41 -0
  289. package/esm2022/ui/treeTable/aril-ui-treeTable.mjs +5 -0
  290. package/esm2022/ui/treeTable/index.mjs +2 -0
  291. package/esm2022/ui/treeTable/src/tree-table.component.mjs +55 -0
  292. package/esm2022/ui/value/aril-ui-value.mjs +5 -0
  293. package/esm2022/ui/value/index.mjs +2 -0
  294. package/esm2022/ui/value/src/value.component.mjs +207 -0
  295. package/esm2022/ui-business/aril-ui-business.mjs +5 -0
  296. package/esm2022/ui-business/assetPicker/aril-ui-business-assetPicker.mjs +5 -0
  297. package/esm2022/ui-business/assetPicker/index.mjs +2 -0
  298. package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +182 -0
  299. package/esm2022/ui-business/assetPicker/src/interface.mjs +2 -0
  300. package/esm2022/ui-business/detailed-overlay-panel/aril-ui-business-detailed-overlay-panel.mjs +5 -0
  301. package/esm2022/ui-business/detailed-overlay-panel/index.mjs +2 -0
  302. package/esm2022/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +61 -0
  303. package/esm2022/ui-business/detailed-overlay-panel/src/interface.mjs +19 -0
  304. package/esm2022/ui-business/enumPicker/aril-ui-business-enumPicker.mjs +5 -0
  305. package/esm2022/ui-business/enumPicker/index.mjs +2 -0
  306. package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +124 -0
  307. package/esm2022/ui-business/enumPicker/src/interface.mjs +2 -0
  308. package/esm2022/ui-business/image-viewer/aril-ui-business-image-viewer.mjs +5 -0
  309. package/esm2022/ui-business/image-viewer/index.mjs +2 -0
  310. package/esm2022/ui-business/image-viewer/src/aril-image-viewer.component.mjs +111 -0
  311. package/esm2022/ui-business/index.mjs +2 -0
  312. package/esm2022/ui-business/multiple-ref-value/aril-ui-business-multiple-ref-value.mjs +5 -0
  313. package/esm2022/ui-business/multiple-ref-value/index.mjs +2 -0
  314. package/esm2022/ui-business/multiple-ref-value/src/multiple-ref-value.component.mjs +23 -0
  315. package/esm2022/ui-business/notification-templates-dialog/aril-ui-business-notification-templates-dialog.mjs +5 -0
  316. package/esm2022/ui-business/notification-templates-dialog/index.mjs +2 -0
  317. package/esm2022/ui-business/notification-templates-dialog/src/interface.mjs +8 -0
  318. package/esm2022/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.mjs +56 -0
  319. package/esm2022/ui-business/operation-types-dialog/aril-ui-business-operation-types-dialog.mjs +5 -0
  320. package/esm2022/ui-business/operation-types-dialog/index.mjs +2 -0
  321. package/esm2022/ui-business/operation-types-dialog/src/operation-types-dialog.component.mjs +76 -0
  322. package/esm2022/ui-business/ref-value/aril-ui-business-ref-value.mjs +5 -0
  323. package/esm2022/ui-business/ref-value/index.mjs +2 -0
  324. package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +39 -0
  325. package/esm2022/ui-business/rolePicker/aril-ui-business-rolePicker.mjs +5 -0
  326. package/esm2022/ui-business/rolePicker/index.mjs +2 -0
  327. package/esm2022/ui-business/rolePicker/src/interface.mjs +2 -0
  328. package/esm2022/ui-business/rolePicker/src/role-picker.component.mjs +71 -0
  329. package/esm2022/ui-business/userPicker/aril-ui-business-userPicker.mjs +5 -0
  330. package/esm2022/ui-business/userPicker/index.mjs +2 -0
  331. package/esm2022/ui-business/userPicker/src/interface.mjs +2 -0
  332. package/esm2022/ui-business/userPicker/src/user-picker.component.mjs +43 -0
  333. package/esm2022/util/aril-util.mjs +5 -0
  334. package/esm2022/util/block/aril-util-block.mjs +5 -0
  335. package/esm2022/util/block/index.mjs +2 -0
  336. package/esm2022/util/block/src/block.mjs +64 -0
  337. package/esm2022/util/custom_pages/aril-util-custom_pages.mjs +5 -0
  338. package/esm2022/util/custom_pages/index.mjs +2 -0
  339. package/esm2022/util/custom_pages/src/notFound.component.mjs +65 -0
  340. package/esm2022/util/directives/aril-util-directives.mjs +5 -0
  341. package/esm2022/util/directives/index.mjs +4 -0
  342. package/esm2022/util/directives/src/detail-page-customization/detail-page-customization.directive.mjs +298 -0
  343. package/esm2022/util/directives/src/detail-page-customization/index.mjs +3 -0
  344. package/esm2022/util/directives/src/detail-page-customization/models.mjs +4 -0
  345. package/esm2022/util/directives/src/dialog-component/plugin-dialog.component.mjs +26 -0
  346. package/esm2022/util/directives/src/dialog-service/plugin-dialog.service.mjs +16 -0
  347. package/esm2022/util/index.mjs +2 -0
  348. package/esm2022/util/lib/aril-util-lib.mjs +5 -0
  349. package/esm2022/util/lib/index.mjs +6 -0
  350. package/esm2022/util/lib/src/interfaces.mjs +4 -0
  351. package/esm2022/util/lib/src/module-router.mjs +16 -0
  352. package/esm2022/util/lib/src/types.mjs +6 -0
  353. package/esm2022/util/lib/src/validators/iban.validator.mjs +189 -0
  354. package/esm2022/util/lib/src/validators/identity.validator.mjs +91 -0
  355. package/esm2022/util/lib/src/validators/index.mjs +6 -0
  356. package/esm2022/util/lib/src/validators/max-array-length.validator.mjs +16 -0
  357. package/esm2022/util/lib/src/validators/min-array-length.validator.mjs +16 -0
  358. package/esm2022/util/lib/src/validators/tckn.validator.mjs +39 -0
  359. package/esm2022/util/lib/src/validators/validators.mjs +31 -0
  360. package/esm2022/util/loaders/aril-util-loaders.mjs +5 -0
  361. package/esm2022/util/loaders/index.mjs +2 -0
  362. package/esm2022/util/loaders/style/style.loader.service.mjs +61 -0
  363. package/esm2022/util/pipes/aril-util-pipes.mjs +5 -0
  364. package/esm2022/util/pipes/index.mjs +7 -0
  365. package/esm2022/util/pipes/src/distance-to-now.pipe.mjs +38 -0
  366. package/esm2022/util/pipes/src/get-column-by-field.pipe.mjs +17 -0
  367. package/esm2022/util/pipes/src/parse.pipe.mjs +22 -0
  368. package/esm2022/util/pipes/src/round-number.pipe.mjs +65 -0
  369. package/esm2022/util/pipes/src/safe.pipe.mjs +34 -0
  370. package/esm2022/util/pipes/src/translate-json/index.mjs +2 -0
  371. package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +41 -0
  372. package/esm2022/util/primitive-extensions/aril-util-primitive-extensions.mjs +5 -0
  373. package/esm2022/util/primitive-extensions/index.mjs +5 -0
  374. package/esm2022/util/primitive-extensions/src/boolean.extensions.mjs +2 -0
  375. package/esm2022/util/primitive-extensions/src/date.extensions.mjs +116 -0
  376. package/esm2022/util/primitive-extensions/src/number.extensions.mjs +39 -0
  377. package/esm2022/util/primitive-extensions/src/string.extensions.mjs +23 -0
  378. package/esm2022/util/pub-sub/aril-util-pub-sub.mjs +5 -0
  379. package/esm2022/util/pub-sub/index.mjs +2 -0
  380. package/esm2022/util/pub-sub/src/pub-sub.service.mjs +30 -0
  381. package/esm2022/util/sync-active-tab-route/aril-util-sync-active-tab-route.mjs +5 -0
  382. package/esm2022/util/sync-active-tab-route/index.mjs +2 -0
  383. package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +45 -0
  384. package/esm2022/util/unwrap/aril-util-unwrap.mjs +5 -0
  385. package/esm2022/util/unwrap/index.mjs +2 -0
  386. package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +24 -0
  387. package/fesm2022/aril-app.component-hxaLgwmC.mjs +81 -0
  388. package/fesm2022/aril-app.component-hxaLgwmC.mjs.map +1 -0
  389. package/fesm2022/aril-boot-config-api.mjs +126 -0
  390. package/fesm2022/aril-boot-config-api.mjs.map +1 -0
  391. package/fesm2022/aril-boot-config-apps.mjs +138 -0
  392. package/fesm2022/aril-boot-config-apps.mjs.map +1 -0
  393. package/fesm2022/aril-boot-config-plugins.mjs +159 -0
  394. package/fesm2022/aril-boot-config-plugins.mjs.map +1 -0
  395. package/fesm2022/aril-boot-config-translate.mjs +72 -0
  396. package/fesm2022/aril-boot-config-translate.mjs.map +1 -0
  397. package/fesm2022/aril-boot-host.mjs +108 -0
  398. package/fesm2022/aril-boot-host.mjs.map +1 -0
  399. package/fesm2022/aril-boot-mfe-app.component-s1a-tkOD.mjs +80 -0
  400. package/fesm2022/aril-boot-mfe-app.component-s1a-tkOD.mjs.map +1 -0
  401. package/fesm2022/aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs +369 -0
  402. package/fesm2022/aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs.map +1 -0
  403. package/fesm2022/aril-boot-mfe.mjs +19 -0
  404. package/fesm2022/aril-boot-mfe.mjs.map +1 -0
  405. package/fesm2022/aril-boot.mjs +8 -0
  406. package/fesm2022/aril-boot.mjs.map +1 -0
  407. package/fesm2022/aril-http.mjs +437 -0
  408. package/fesm2022/aril-http.mjs.map +1 -0
  409. package/fesm2022/aril-i18n.mjs +71 -0
  410. package/fesm2022/aril-i18n.mjs.map +1 -0
  411. package/fesm2022/aril-keycloak.mjs +99 -0
  412. package/fesm2022/aril-keycloak.mjs.map +1 -0
  413. package/fesm2022/aril-provider.mjs +74 -0
  414. package/fesm2022/aril-provider.mjs.map +1 -0
  415. package/fesm2022/aril-theme-layout.mjs +3015 -0
  416. package/fesm2022/aril-theme-layout.mjs.map +1 -0
  417. package/fesm2022/aril-theme.mjs +8 -0
  418. package/fesm2022/aril-theme.mjs.map +1 -0
  419. package/fesm2022/aril-ui-autoComplete.mjs +116 -0
  420. package/fesm2022/aril-ui-autoComplete.mjs.map +1 -0
  421. package/fesm2022/aril-ui-badge.mjs +66 -0
  422. package/fesm2022/aril-ui-badge.mjs.map +1 -0
  423. package/fesm2022/aril-ui-business-assetPicker.mjs +189 -0
  424. package/fesm2022/aril-ui-business-assetPicker.mjs.map +1 -0
  425. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs +68 -0
  426. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs.map +1 -0
  427. package/fesm2022/aril-ui-business-enumPicker.mjs +131 -0
  428. package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -0
  429. package/fesm2022/aril-ui-business-image-viewer.mjs +118 -0
  430. package/fesm2022/aril-ui-business-image-viewer.mjs.map +1 -0
  431. package/fesm2022/aril-ui-business-multiple-ref-value.mjs +30 -0
  432. package/fesm2022/aril-ui-business-multiple-ref-value.mjs.map +1 -0
  433. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs +70 -0
  434. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs.map +1 -0
  435. package/fesm2022/aril-ui-business-operation-types-dialog.mjs +83 -0
  436. package/fesm2022/aril-ui-business-operation-types-dialog.mjs.map +1 -0
  437. package/fesm2022/aril-ui-business-ref-value.mjs +46 -0
  438. package/fesm2022/aril-ui-business-ref-value.mjs.map +1 -0
  439. package/fesm2022/aril-ui-business-rolePicker.mjs +78 -0
  440. package/fesm2022/aril-ui-business-rolePicker.mjs.map +1 -0
  441. package/fesm2022/aril-ui-business-userPicker.mjs +50 -0
  442. package/fesm2022/aril-ui-business-userPicker.mjs.map +1 -0
  443. package/fesm2022/aril-ui-business.mjs +8 -0
  444. package/fesm2022/aril-ui-business.mjs.map +1 -0
  445. package/fesm2022/aril-ui-button.mjs +62 -0
  446. package/fesm2022/aril-ui-button.mjs.map +1 -0
  447. package/fesm2022/aril-ui-calendar.mjs +231 -0
  448. package/fesm2022/aril-ui-calendar.mjs.map +1 -0
  449. package/fesm2022/aril-ui-charts.mjs +1666 -0
  450. package/fesm2022/aril-ui-charts.mjs.map +1 -0
  451. package/fesm2022/aril-ui-checkbox.mjs +50 -0
  452. package/fesm2022/aril-ui-checkbox.mjs.map +1 -0
  453. package/fesm2022/aril-ui-chip.mjs +136 -0
  454. package/fesm2022/aril-ui-chip.mjs.map +1 -0
  455. package/fesm2022/aril-ui-collapse-reorder-list.mjs +60 -0
  456. package/fesm2022/aril-ui-collapse-reorder-list.mjs.map +1 -0
  457. package/fesm2022/aril-ui-dxEditor.mjs +33 -0
  458. package/fesm2022/aril-ui-dxEditor.mjs.map +1 -0
  459. package/fesm2022/aril-ui-dxField.mjs +26 -0
  460. package/fesm2022/aril-ui-dxField.mjs.map +1 -0
  461. package/fesm2022/aril-ui-editor.mjs +203 -0
  462. package/fesm2022/aril-ui-editor.mjs.map +1 -0
  463. package/fesm2022/aril-ui-field.mjs +52 -0
  464. package/fesm2022/aril-ui-field.mjs.map +1 -0
  465. package/fesm2022/aril-ui-fileUpload.mjs +80 -0
  466. package/fesm2022/aril-ui-fileUpload.mjs.map +1 -0
  467. package/fesm2022/aril-ui-form.mjs +86 -0
  468. package/fesm2022/aril-ui-form.mjs.map +1 -0
  469. package/fesm2022/aril-ui-img-viewer.mjs +64 -0
  470. package/fesm2022/aril-ui-img-viewer.mjs.map +1 -0
  471. package/fesm2022/aril-ui-json-diff-comparison.mjs +56 -0
  472. package/fesm2022/aril-ui-json-diff-comparison.mjs.map +1 -0
  473. package/fesm2022/aril-ui-lib.mjs +382 -0
  474. package/fesm2022/aril-ui-lib.mjs.map +1 -0
  475. package/fesm2022/aril-ui-loader.mjs +21 -0
  476. package/fesm2022/aril-ui-loader.mjs.map +1 -0
  477. package/fesm2022/aril-ui-mask.mjs +42 -0
  478. package/fesm2022/aril-ui-mask.mjs.map +1 -0
  479. package/fesm2022/aril-ui-multiSelect.mjs +64 -0
  480. package/fesm2022/aril-ui-multiSelect.mjs.map +1 -0
  481. package/fesm2022/aril-ui-number.mjs +45 -0
  482. package/fesm2022/aril-ui-number.mjs.map +1 -0
  483. package/fesm2022/aril-ui-operation-types-dialog.mjs +98 -0
  484. package/fesm2022/aril-ui-operation-types-dialog.mjs.map +1 -0
  485. package/fesm2022/aril-ui-overlayPanel.mjs +27 -0
  486. package/fesm2022/aril-ui-overlayPanel.mjs.map +1 -0
  487. package/fesm2022/aril-ui-panel.mjs +40 -0
  488. package/fesm2022/aril-ui-panel.mjs.map +1 -0
  489. package/fesm2022/aril-ui-password.mjs +36 -0
  490. package/fesm2022/aril-ui-password.mjs.map +1 -0
  491. package/fesm2022/aril-ui-pdf-viewer.mjs +34 -0
  492. package/fesm2022/aril-ui-pdf-viewer.mjs.map +1 -0
  493. package/fesm2022/aril-ui-progressbar.mjs +25 -0
  494. package/fesm2022/aril-ui-progressbar.mjs.map +1 -0
  495. package/fesm2022/aril-ui-radioButton.mjs +37 -0
  496. package/fesm2022/aril-ui-radioButton.mjs.map +1 -0
  497. package/fesm2022/aril-ui-relativeDateSelector.mjs +285 -0
  498. package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -0
  499. package/fesm2022/aril-ui-selectBox.mjs +74 -0
  500. package/fesm2022/aril-ui-selectBox.mjs.map +1 -0
  501. package/fesm2022/aril-ui-switch.mjs +30 -0
  502. package/fesm2022/aril-ui-switch.mjs.map +1 -0
  503. package/fesm2022/aril-ui-table-expand.mjs +194 -0
  504. package/fesm2022/aril-ui-table-expand.mjs.map +1 -0
  505. package/fesm2022/aril-ui-table.mjs +833 -0
  506. package/fesm2022/aril-ui-table.mjs.map +1 -0
  507. package/fesm2022/aril-ui-tag.mjs +27 -0
  508. package/fesm2022/aril-ui-tag.mjs.map +1 -0
  509. package/fesm2022/aril-ui-tagBox.mjs +62 -0
  510. package/fesm2022/aril-ui-tagBox.mjs.map +1 -0
  511. package/fesm2022/aril-ui-text.mjs +54 -0
  512. package/fesm2022/aril-ui-text.mjs.map +1 -0
  513. package/fesm2022/aril-ui-textArea.mjs +34 -0
  514. package/fesm2022/aril-ui-textArea.mjs.map +1 -0
  515. package/fesm2022/aril-ui-toggle-button.mjs +32 -0
  516. package/fesm2022/aril-ui-toggle-button.mjs.map +1 -0
  517. package/fesm2022/aril-ui-tooltip.mjs +30 -0
  518. package/fesm2022/aril-ui-tooltip.mjs.map +1 -0
  519. package/fesm2022/aril-ui-translate-input.mjs +207 -0
  520. package/fesm2022/aril-ui-translate-input.mjs.map +1 -0
  521. package/fesm2022/aril-ui-tree.mjs +60 -0
  522. package/fesm2022/aril-ui-tree.mjs.map +1 -0
  523. package/fesm2022/aril-ui-treeSelect.mjs +48 -0
  524. package/fesm2022/aril-ui-treeSelect.mjs.map +1 -0
  525. package/fesm2022/aril-ui-treeTable.mjs +62 -0
  526. package/fesm2022/aril-ui-treeTable.mjs.map +1 -0
  527. package/fesm2022/aril-ui-value.mjs +214 -0
  528. package/fesm2022/aril-ui-value.mjs.map +1 -0
  529. package/fesm2022/aril-ui.mjs +8 -0
  530. package/fesm2022/aril-ui.mjs.map +1 -0
  531. package/fesm2022/aril-util-block.mjs +71 -0
  532. package/fesm2022/aril-util-block.mjs.map +1 -0
  533. package/fesm2022/aril-util-custom_pages.mjs +72 -0
  534. package/fesm2022/aril-util-custom_pages.mjs.map +1 -0
  535. package/fesm2022/aril-util-directives.mjs +344 -0
  536. package/fesm2022/aril-util-directives.mjs.map +1 -0
  537. package/fesm2022/aril-util-lib.mjs +413 -0
  538. package/fesm2022/aril-util-lib.mjs.map +1 -0
  539. package/fesm2022/aril-util-loaders.mjs +68 -0
  540. package/fesm2022/aril-util-loaders.mjs.map +1 -0
  541. package/fesm2022/aril-util-pipes.mjs +213 -0
  542. package/fesm2022/aril-util-pipes.mjs.map +1 -0
  543. package/fesm2022/aril-util-primitive-extensions.mjs +179 -0
  544. package/fesm2022/aril-util-primitive-extensions.mjs.map +1 -0
  545. package/fesm2022/aril-util-pub-sub.mjs +37 -0
  546. package/fesm2022/aril-util-pub-sub.mjs.map +1 -0
  547. package/fesm2022/aril-util-sync-active-tab-route.mjs +52 -0
  548. package/fesm2022/aril-util-sync-active-tab-route.mjs.map +1 -0
  549. package/fesm2022/aril-util-unwrap.mjs +31 -0
  550. package/fesm2022/aril-util-unwrap.mjs.map +1 -0
  551. package/fesm2022/aril-util.mjs +8 -0
  552. package/fesm2022/aril-util.mjs.map +1 -0
  553. package/fesm2022/aril.mjs +456 -0
  554. package/fesm2022/aril.mjs.map +1 -0
  555. package/http/index.d.ts +8 -0
  556. package/http/lib/enums.d.ts +31 -0
  557. package/http/lib/interfaces.d.ts +27 -0
  558. package/http/src/httpBackend.d.ts +8 -0
  559. package/http/src/httpClient.d.ts +9 -0
  560. package/http/src/interceptor/accept-language.interceptor.d.ts +2 -0
  561. package/http/src/serviceBase.d.ts +8 -0
  562. package/http/src/serviceMockBase.d.ts +6 -0
  563. package/http/src/serviceRequest.d.ts +4 -0
  564. package/http/src/serviceStateMethods.d.ts +17 -0
  565. package/i18n/src/folder-name-token.d.ts +2 -0
  566. package/i18n/src/i18n.module.d.ts +7 -0
  567. package/i18n/src/loader.d.ts +8 -0
  568. package/i18n/src/provideI18n.d.ts +2 -0
  569. package/i18n/src/provideScope.d.ts +5 -0
  570. package/index.d.ts +5 -0
  571. package/keycloak/index.d.ts +1 -0
  572. package/keycloak/src/auth.interceptor.d.ts +3 -0
  573. package/package.json +528 -43
  574. package/provider/src/index.d.ts +4 -0
  575. package/provider/src/prodiveHost.d.ts +3 -0
  576. package/provider/src/prodiveHostRouter.d.ts +2 -0
  577. package/provider/src/provideHostKeycloak.d.ts +5 -0
  578. package/provider/src/provideLocaleId.d.ts +2 -0
  579. package/scripts/util/blockui.min.js +7 -0
  580. package/styles/ui/ui.common.scss +42 -0
  581. package/styles/util/blockui.css +56 -0
  582. package/theme/index.d.ts +1 -0
  583. package/theme/index.ts +1 -1
  584. package/theme/layout/app/breadcrumb/app.breadcrumb.component.d.ts +25 -0
  585. package/theme/layout/app/breadcrumb/app.breadcrumb.component.html +8 -8
  586. package/theme/layout/app/breadcrumb/app.breadcrumb.component.ts +126 -126
  587. package/theme/layout/app/chatbot/app.chatbot.component.d.ts +35 -0
  588. package/theme/layout/app/chatbot/app.chatbot.component.html +108 -108
  589. package/theme/layout/app/chatbot/app.chatbot.component.scss +34 -34
  590. package/theme/layout/app/chatbot/app.chatbot.component.ts +151 -151
  591. package/theme/layout/app/config/app.config.component.html +146 -146
  592. package/theme/layout/app/config/app.config.component.ts +143 -143
  593. package/theme/layout/app/expandableMenu/expandable-menu.component.d.ts +72 -0
  594. package/theme/layout/app/expandableMenu/expandable-menu.component.html +89 -89
  595. package/theme/layout/app/expandableMenu/expandable-menu.component.ts +295 -295
  596. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.d.ts +2031 -0
  597. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.html +110 -110
  598. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.scss +181 -181
  599. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.ts +260 -260
  600. package/theme/layout/app/favorite-pages/favorite-pages.service.d.ts +56 -0
  601. package/theme/layout/app/favorite-pages/favorite-pages.service.ts +95 -95
  602. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.d.ts +36 -0
  603. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.html +27 -27
  604. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.ts +165 -165
  605. package/theme/layout/app/general-search/general-search.component.d.ts +22 -0
  606. package/theme/layout/app/general-search/general-search.component.html +57 -57
  607. package/theme/layout/app/general-search/general-search.component.scss +27 -27
  608. package/theme/layout/app/general-search/general-search.component.ts +93 -93
  609. package/theme/layout/app/general-search/helpers.d.ts +7 -0
  610. package/theme/layout/app/general-search/helpers.spec.ts +527 -527
  611. package/theme/layout/app/general-search/helpers.ts +106 -106
  612. package/theme/layout/app/general-search/models.d.ts +131 -0
  613. package/theme/layout/app/general-search/models.ts +142 -142
  614. package/theme/layout/app/history/history-sidebar.component.d.ts +2018 -0
  615. package/theme/layout/app/history/history-sidebar.component.html +87 -87
  616. package/theme/layout/app/history/history-sidebar.component.scss +182 -182
  617. package/theme/layout/app/history/history-sidebar.component.ts +143 -143
  618. package/theme/layout/app/history/history.service.d.ts +36 -0
  619. package/theme/layout/app/history/history.service.ts +154 -154
  620. package/theme/layout/app/layout/app.layout.component.d.ts +47 -0
  621. package/theme/layout/app/layout/app.layout.component.html +27 -27
  622. package/theme/layout/app/layout/app.layout.component.ts +171 -171
  623. package/theme/layout/app/layout/mfe.layout.component.d.ts +10 -0
  624. package/theme/layout/app/layout/mfe.layout.component.ts +59 -59
  625. package/theme/layout/app/notifications/notifications-sidebar.component.d.ts +2306 -0
  626. package/theme/layout/app/notifications/notifications-sidebar.component.html +104 -104
  627. package/theme/layout/app/notifications/notifications-sidebar.component.scss +237 -237
  628. package/theme/layout/app/notifications/notifications-sidebar.component.ts +221 -221
  629. package/theme/layout/app/profileSidebar/app.profilesidebar.component.d.ts +29 -0
  630. package/theme/layout/app/profileSidebar/app.profilesidebar.component.html +122 -122
  631. package/theme/layout/app/profileSidebar/app.profilesidebar.component.scss +151 -151
  632. package/theme/layout/app/profileSidebar/app.profilesidebar.component.ts +141 -141
  633. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.d.ts +30 -0
  634. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.html +48 -48
  635. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.scss +27 -27
  636. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.ts +178 -178
  637. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.d.ts +52 -0
  638. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.html +71 -71
  639. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.ts +251 -251
  640. package/theme/layout/app/profileSidebar/profile.service.d.ts +72 -0
  641. package/theme/layout/app/profileSidebar/profile.service.ts +116 -116
  642. package/theme/layout/app/site-map/site-map-sidebar.component.d.ts +2025 -0
  643. package/theme/layout/app/site-map/site-map-sidebar.component.html +121 -121
  644. package/theme/layout/app/site-map/site-map-sidebar.component.scss +178 -178
  645. package/theme/layout/app/site-map/site-map-sidebar.component.ts +193 -193
  646. package/theme/layout/app/static-sidebar/static-sidebar.component.d.ts +57 -0
  647. package/theme/layout/app/static-sidebar/static-sidebar.component.html +123 -123
  648. package/theme/layout/app/static-sidebar/static-sidebar.component.scss +411 -411
  649. package/theme/layout/app/static-sidebar/static-sidebar.component.ts +276 -276
  650. package/theme/layout/app/topbar/app.topbar.component.d.ts +35 -0
  651. package/theme/layout/app/topbar/app.topbar.component.html +85 -85
  652. package/theme/layout/app/topbar/app.topbar.component.scss +193 -193
  653. package/theme/layout/app/topbar/app.topbar.component.ts +172 -172
  654. package/theme/layout/index.d.ts +7 -0
  655. package/theme/layout/index.ts +7 -7
  656. package/theme/layout/ng-package.json +6 -6
  657. package/theme/layout/service/app.layout.service.d.ts +69 -0
  658. package/theme/layout/service/app.layout.service.ts +307 -307
  659. package/theme/layout/service/app.menu.service.d.ts +22 -0
  660. package/theme/layout/service/app.menu.service.ts +53 -53
  661. package/theme/layout/service/breadcrumb.service.d.ts +10 -0
  662. package/theme/layout/service/breadcrumb.service.ts +14 -14
  663. package/theme/layout/service/interfaces/enum.d.ts +12 -0
  664. package/theme/layout/service/interfaces/enum.ts +13 -13
  665. package/theme/layout/service/interfaces/interfaces.d.ts +131 -0
  666. package/theme/layout/service/interfaces/interfaces.ts +150 -150
  667. package/theme/layout/service/menuchangeevent.d.ts +4 -0
  668. package/theme/layout/service/menuchangeevent.ts +4 -4
  669. package/theme/layout/service/notifications.service.d.ts +12 -0
  670. package/theme/layout/service/notifications.service.ts +26 -26
  671. package/theme/layout/service/search.service.d.ts +11 -0
  672. package/theme/layout/service/search.service.ts +22 -22
  673. package/theme/layout/service/selection-group.service.d.ts +17 -0
  674. package/theme/layout/service/selection-group.service.ts +73 -73
  675. package/theme/ng-package.json +6 -6
  676. package/theme/styles/layout/_animation.scss +53 -53
  677. package/theme/styles/layout/_breadcrumb.scss +31 -31
  678. package/theme/styles/layout/_config.scss +42 -42
  679. package/theme/styles/layout/_content.scss +61 -61
  680. package/theme/styles/layout/_expanded_sidebar.scss +486 -486
  681. package/theme/styles/layout/_fonts.scss +93 -93
  682. package/theme/styles/layout/_layout_dark.scss +5 -5
  683. package/theme/styles/layout/_layout_dim.scss +5 -5
  684. package/theme/styles/layout/_layout_light.scss +5 -5
  685. package/theme/styles/layout/_main.scss +28 -28
  686. package/theme/styles/layout/_profile.scss +10 -10
  687. package/theme/styles/layout/_responsive.scss +153 -153
  688. package/theme/styles/layout/_sidebar_drawer.scss +234 -234
  689. package/theme/styles/layout/_sidebar_horizontal.scss +163 -163
  690. package/theme/styles/layout/_sidebar_reveal.scss +201 -201
  691. package/theme/styles/layout/_sidebar_slim.scss +144 -144
  692. package/theme/styles/layout/_sidebar_slim_plus.scss +168 -168
  693. package/theme/styles/layout/_sidebar_vertical.scss +156 -156
  694. package/theme/styles/layout/_topbar.scss +140 -140
  695. package/theme/styles/layout/_typography.scss +68 -68
  696. package/theme/styles/layout/_utils.scss +24 -24
  697. package/theme/styles/layout/layout.scss +25 -25
  698. package/theme/styles/layout/menutheme/_colorscheme.scss +11 -11
  699. package/theme/styles/layout/menutheme/_menutheme.scss +3 -3
  700. package/theme/styles/layout/menutheme/_primarycolor.scss +16 -16
  701. package/theme/styles/layout/menutheme/_transparent.scss +26 -26
  702. package/theme/styles/layout/preloading.scss +84 -84
  703. package/theme/styles/theme/base/_colors.scss +17 -17
  704. package/theme/styles/theme/base/_common.scss +89 -89
  705. package/theme/styles/theme/base/_components.scss +108 -108
  706. package/theme/styles/theme/base/_mixins.scss +337 -337
  707. package/theme/styles/theme/base/components/button/_button.scss +576 -576
  708. package/theme/styles/theme/base/components/button/_speeddial.scss +96 -96
  709. package/theme/styles/theme/base/components/button/_splitbutton.scss +348 -348
  710. package/theme/styles/theme/base/components/data/_carousel.scss +37 -37
  711. package/theme/styles/theme/base/components/data/_datatable.scss +338 -338
  712. package/theme/styles/theme/base/components/data/_dataview.scss +46 -46
  713. package/theme/styles/theme/base/components/data/_filter.scss +137 -137
  714. package/theme/styles/theme/base/components/data/_orderlist.scss +114 -114
  715. package/theme/styles/theme/base/components/data/_organizationchart.scss +50 -50
  716. package/theme/styles/theme/base/components/data/_paginator.scss +92 -92
  717. package/theme/styles/theme/base/components/data/_picklist.scss +114 -114
  718. package/theme/styles/theme/base/components/data/_table.scss +16 -16
  719. package/theme/styles/theme/base/components/data/_timeline.scss +35 -35
  720. package/theme/styles/theme/base/components/data/_tree.scss +150 -150
  721. package/theme/styles/theme/base/components/data/_treetable.scss +255 -255
  722. package/theme/styles/theme/base/components/data/_virtualscroller.scss +28 -28
  723. package/theme/styles/theme/base/components/file/_fileupload.scss +64 -64
  724. package/theme/styles/theme/base/components/input/_autocomplete.scss +141 -141
  725. package/theme/styles/theme/base/components/input/_calendar.scss +267 -267
  726. package/theme/styles/theme/base/components/input/_cascadeselect.scss +135 -135
  727. package/theme/styles/theme/base/components/input/_checkbox.scss +99 -99
  728. package/theme/styles/theme/base/components/input/_chips.scss +67 -67
  729. package/theme/styles/theme/base/components/input/_colorpicker.scss +19 -19
  730. package/theme/styles/theme/base/components/input/_dropdown.scss +151 -151
  731. package/theme/styles/theme/base/components/input/_editor.scss +122 -122
  732. package/theme/styles/theme/base/components/input/_inputgroup.scss +75 -75
  733. package/theme/styles/theme/base/components/input/_inputmask.scss +16 -16
  734. package/theme/styles/theme/base/components/input/_inputnumber.scss +28 -28
  735. package/theme/styles/theme/base/components/input/_inputswitch.scss +60 -60
  736. package/theme/styles/theme/base/components/input/_inputtext.scss +100 -100
  737. package/theme/styles/theme/base/components/input/_listbox.scss +97 -97
  738. package/theme/styles/theme/base/components/input/_multiselect.scss +177 -177
  739. package/theme/styles/theme/base/components/input/_password.scss +52 -52
  740. package/theme/styles/theme/base/components/input/_radiobutton.scss +78 -78
  741. package/theme/styles/theme/base/components/input/_rating.scss +60 -60
  742. package/theme/styles/theme/base/components/input/_selectbutton.scss +50 -50
  743. package/theme/styles/theme/base/components/input/_slider.scss +75 -75
  744. package/theme/styles/theme/base/components/input/_togglebutton.scss +48 -48
  745. package/theme/styles/theme/base/components/input/_treeselect.scss +139 -139
  746. package/theme/styles/theme/base/components/menu/_breadcrumb.scss +43 -43
  747. package/theme/styles/theme/base/components/menu/_contextmenu.scss +39 -39
  748. package/theme/styles/theme/base/components/menu/_dock.scss +95 -95
  749. package/theme/styles/theme/base/components/menu/_megamenu.scss +55 -55
  750. package/theme/styles/theme/base/components/menu/_menu.scss +37 -37
  751. package/theme/styles/theme/base/components/menu/_menubar.scss +140 -140
  752. package/theme/styles/theme/base/components/menu/_panelmenu.scss +153 -153
  753. package/theme/styles/theme/base/components/menu/_slidemenu.scss +59 -59
  754. package/theme/styles/theme/base/components/menu/_steps.scss +56 -56
  755. package/theme/styles/theme/base/components/menu/_tabmenu.scss +73 -73
  756. package/theme/styles/theme/base/components/menu/_tieredmenu.scss +43 -43
  757. package/theme/styles/theme/base/components/messages/_inlinemessage.scss +69 -69
  758. package/theme/styles/theme/base/components/messages/_message.scss +107 -107
  759. package/theme/styles/theme/base/components/messages/_toast.scss +99 -99
  760. package/theme/styles/theme/base/components/misc/_avatar.scss +30 -30
  761. package/theme/styles/theme/base/components/misc/_badge.scss +48 -48
  762. package/theme/styles/theme/base/components/misc/_chip.scss +42 -42
  763. package/theme/styles/theme/base/components/misc/_inplace.scss +16 -16
  764. package/theme/styles/theme/base/components/misc/_progressbar.scss +17 -17
  765. package/theme/styles/theme/base/components/misc/_scrolltop.scss +25 -25
  766. package/theme/styles/theme/base/components/misc/_skeleton.scss +8 -8
  767. package/theme/styles/theme/base/components/misc/_tag.scss +45 -45
  768. package/theme/styles/theme/base/components/misc/_terminal.scss +12 -12
  769. package/theme/styles/theme/base/components/multimedia/_galleria.scss +155 -155
  770. package/theme/styles/theme/base/components/multimedia/_image.scss +49 -49
  771. package/theme/styles/theme/base/components/overlay/_confirmpopup.scss +70 -70
  772. package/theme/styles/theme/base/components/overlay/_dialog.scss +69 -69
  773. package/theme/styles/theme/base/components/overlay/_overlaypanel.scss +62 -62
  774. package/theme/styles/theme/base/components/overlay/_sidebar.scss +28 -28
  775. package/theme/styles/theme/base/components/overlay/_tooltip.scss +33 -33
  776. package/theme/styles/theme/base/components/panel/_accordion.scss +119 -119
  777. package/theme/styles/theme/base/components/panel/_card.scss +30 -30
  778. package/theme/styles/theme/base/components/panel/_divider.scss +31 -31
  779. package/theme/styles/theme/base/components/panel/_fieldset.scss +47 -47
  780. package/theme/styles/theme/base/components/panel/_panel.scss +77 -77
  781. package/theme/styles/theme/base/components/panel/_scrollpanel.scss +6 -6
  782. package/theme/styles/theme/base/components/panel/_splitter.scss +19 -19
  783. package/theme/styles/theme/base/components/panel/_stepper.scss +200 -200
  784. package/theme/styles/theme/base/components/panel/_tabview.scss +91 -91
  785. package/theme/styles/theme/base/components/panel/_toolbar.scss +11 -11
  786. package/theme/styles/theme/dark/_extensions.scss +134 -134
  787. package/theme/styles/theme/dark/_variables.scss +933 -933
  788. package/theme/styles/theme/dark/indigo/theme.scss +14 -14
  789. package/theme/styles/theme/light/_extensions.scss +116 -116
  790. package/theme/styles/theme/light/_variables.scss +940 -940
  791. package/theme/styles/theme/light/custom/theme.scss +16 -16
  792. package/theme/styles/theme/light/indigo/theme.scss +14 -14
  793. package/ui/autoComplete/src/auto-complete.component.d.ts +31 -0
  794. package/ui/autoComplete/src/interfaces.d.ts +28 -0
  795. package/ui/badge/src/badge.component.d.ts +32 -0
  796. package/ui/button/src/button.component.d.ts +28 -0
  797. package/ui/button/src/split-button.component.d.ts +8 -0
  798. package/ui/calendar/src/calendar.component.d.ts +63 -0
  799. package/ui/charts/index.d.ts +12 -0
  800. package/ui/charts/src/amCharts/column/column-chart.component.d.ts +25 -0
  801. package/ui/charts/src/amCharts/line/line-chart.component.d.ts +26 -0
  802. package/ui/charts/src/amCharts/pie/pie-chart.component.d.ts +24 -0
  803. package/ui/charts/src/highCharts/area/area-chart.component.d.ts +20 -0
  804. package/ui/charts/src/highCharts/bar/bar-chart.component.d.ts +26 -0
  805. package/ui/charts/src/highCharts/column/column-chart.component.d.ts +28 -0
  806. package/ui/charts/src/highCharts/gauge/solid-gauge.component.d.ts +38 -0
  807. package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.d.ts +32 -0
  808. package/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.d.ts +24 -0
  809. package/ui/charts/src/highCharts/line/line-chart-series.component.d.ts +21 -0
  810. package/ui/charts/src/highCharts/line/line-chart.component.d.ts +21 -0
  811. package/ui/charts/src/highCharts/pie/pie-chart.component.d.ts +27 -0
  812. package/ui/charts/src/theme/theme.d.ts +5 -0
  813. package/ui/checkbox/src/check-box.component.d.ts +12 -0
  814. package/ui/checkbox/src/tri-state-checkbox.component.d.ts +9 -0
  815. package/ui/chip/index.d.ts +1 -0
  816. package/ui/chip/src/chip.component.d.ts +34 -0
  817. package/ui/collapse-reorder-list/index.d.ts +1 -0
  818. package/ui/collapse-reorder-list/src/collapse-reorder-list.component.d.ts +21 -0
  819. package/ui/dxEditor/src/dx-editor.component.d.ts +11 -0
  820. package/ui/dxField/src/dx-field.component.d.ts +10 -0
  821. package/ui/editor/src/aril-editor.component.d.ts +28 -0
  822. package/ui/editor/src/types.d.ts +23 -0
  823. package/ui/field/src/field.component.d.ts +30 -0
  824. package/ui/fileUpload/src/file-upload.component.d.ts +49 -0
  825. package/ui/form/index.d.ts +11 -0
  826. package/ui/form/src/form-submit-button.component.d.ts +14 -0
  827. package/ui/form/src/form.component.d.ts +8 -0
  828. package/ui/img-viewer/index.d.ts +1 -0
  829. package/ui/img-viewer/src/img-viewer.component.d.ts +13 -0
  830. package/ui/index.d.ts +1 -0
  831. package/ui/json-diff-comparison/src/json-diff.component.d.ts +13 -0
  832. package/ui/lib/index.d.ts +12 -0
  833. package/ui/lib/src/form/form-error-message.component.d.ts +9 -0
  834. package/ui/lib/src/form/form-error-message.directive.d.ts +14 -0
  835. package/ui/lib/src/form/form-field-builder.d.ts +8 -0
  836. package/ui/lib/src/form/form-validation.d.ts +2 -0
  837. package/ui/lib/src/grid/enum-color-picker.pipe.d.ts +9 -0
  838. package/ui/lib/src/grid/flex-grid.directive.d.ts +6 -0
  839. package/ui/lib/src/input/baseInput.d.ts +7 -0
  840. package/ui/lib/src/input/common-input-validators.service.d.ts +20 -0
  841. package/ui/lib/src/input/dx-input-error-message.pipe.d.ts +11 -0
  842. package/ui/lib/src/input/input-disabled.directive.d.ts +9 -0
  843. package/ui/lib/src/input/input-error-message.pipe.d.ts +10 -0
  844. package/ui/lib/src/input/input-transforms.d.ts +5 -0
  845. package/ui/lib/src/input/value-accessor.directive.d.ts +9 -0
  846. package/ui/loader/src/loader.component.d.ts +5 -0
  847. package/ui/mask/src/mask.component.d.ts +21 -0
  848. package/ui/multiSelect/src/interfaces.d.ts +32 -0
  849. package/ui/multiSelect/src/multi-select.component.d.ts +28 -0
  850. package/ui/number/src/number.component.d.ts +29 -0
  851. package/ui/operation-types-dialog/src/operation-types-dialog.component.d.ts +33 -0
  852. package/ui/overlayPanel/src/overlay-panel.component.d.ts +8 -0
  853. package/ui/panel/src/panel.component.d.ts +14 -0
  854. package/ui/password/src/password.component.d.ts +11 -0
  855. package/ui/pdf-viewer/src/pdf-viewer.component.d.ts +19 -0
  856. package/ui/progressbar/src/progressbar.component.d.ts +8 -0
  857. package/ui/radioButton/src/radio-button.component.d.ts +22 -0
  858. package/ui/relativeDateSelector/index.d.ts +1 -0
  859. package/ui/relativeDateSelector/src/enum.d.ts +26 -0
  860. package/ui/relativeDateSelector/src/relative-date-selector.component.d.ts +61 -0
  861. package/ui/selectBox/src/interfaces.d.ts +32 -0
  862. package/ui/selectBox/src/select-box.component.d.ts +30 -0
  863. package/ui/switch/src/switch.component.d.ts +8 -0
  864. package/ui/table/index.d.ts +35 -0
  865. package/ui/table/src/export-overlay-panel.component.d.ts +39 -0
  866. package/ui/table/src/interfaces.d.ts +145 -0
  867. package/ui/table/src/table-column.component.d.ts +19 -0
  868. package/ui/table/src/table.component.d.ts +107 -0
  869. package/ui/table-expand/index.d.ts +20 -0
  870. package/ui/table-expand/src/table-column.component.d.ts +28 -0
  871. package/ui/table-expand/src/table-expand-area.component.d.ts +14 -0
  872. package/ui/table-expand/src/table.component.d.ts +47 -0
  873. package/ui/tag/index.d.ts +1 -0
  874. package/ui/tag/src/interface.d.ts +1 -0
  875. package/ui/tag/src/tag.component.d.ts +15 -0
  876. package/ui/tagBox/src/tag-box.component.d.ts +17 -0
  877. package/ui/text/src/text.component.d.ts +18 -0
  878. package/ui/textArea/src/text-area.component.d.ts +12 -0
  879. package/ui/toggle-button/index.d.ts +1 -0
  880. package/ui/toggle-button/src/toggle-button.component.d.ts +10 -0
  881. package/ui/tooltip/src/tooltip-component.d.ts +14 -0
  882. package/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.d.ts +21 -0
  883. package/ui/translate-input/src/aril-lang-modal/constants.d.ts +2 -0
  884. package/ui/translate-input/src/aril-translate-input.component.d.ts +26 -0
  885. package/ui/translate-input/src/interface.d.ts +12 -0
  886. package/ui/tree/src/tree.component.d.ts +23 -0
  887. package/ui/treeSelect/src/treeSelect.component.d.ts +23 -0
  888. package/ui/treeTable/src/tree-table.component.d.ts +21 -0
  889. package/ui/value/src/value.component.d.ts +43 -0
  890. package/ui-business/assetPicker/index.d.ts +1 -0
  891. package/ui-business/assetPicker/src/asset-picker.component.d.ts +48 -0
  892. package/ui-business/assetPicker/src/interface.d.ts +74 -0
  893. package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.d.ts +31 -0
  894. package/ui-business/detailed-overlay-panel/src/interface.d.ts +54 -0
  895. package/ui-business/enumPicker/index.d.ts +1 -0
  896. package/ui-business/enumPicker/src/enum-picker.component.d.ts +47 -0
  897. package/ui-business/enumPicker/src/interface.d.ts +34 -0
  898. package/ui-business/image-viewer/index.d.ts +1 -0
  899. package/ui-business/image-viewer/src/aril-image-viewer.component.d.ts +20 -0
  900. package/ui-business/index.d.ts +1 -0
  901. package/ui-business/multiple-ref-value/src/multiple-ref-value.component.d.ts +16 -0
  902. package/ui-business/notification-templates-dialog/src/interface.d.ts +17 -0
  903. package/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.d.ts +18 -0
  904. package/ui-business/operation-types-dialog/src/operation-types-dialog.component.d.ts +28 -0
  905. package/ui-business/ref-value/src/ref-value.component.d.ts +20 -0
  906. package/ui-business/rolePicker/src/interface.d.ts +44 -0
  907. package/ui-business/rolePicker/src/role-picker.component.d.ts +25 -0
  908. package/ui-business/userPicker/index.d.ts +1 -0
  909. package/ui-business/userPicker/src/interface.d.ts +25 -0
  910. package/ui-business/userPicker/src/user-picker.component.d.ts +18 -0
  911. package/util/block/src/block.d.ts +28 -0
  912. package/util/custom_pages/src/notFound.component.d.ts +5 -0
  913. package/util/directives/src/detail-page-customization/detail-page-customization.directive.d.ts +26 -0
  914. package/util/directives/src/detail-page-customization/index.d.ts +2 -0
  915. package/util/directives/src/detail-page-customization/models.d.ts +53 -0
  916. package/util/directives/src/dialog-component/plugin-dialog.component.d.ts +11 -0
  917. package/util/directives/src/dialog-service/plugin-dialog.service.d.ts +7 -0
  918. package/util/index.d.ts +1 -0
  919. package/util/lib/index.d.ts +5 -0
  920. package/util/lib/src/interfaces.d.ts +41 -0
  921. package/util/lib/src/module-router.d.ts +5 -0
  922. package/util/lib/src/types.d.ts +2290 -0
  923. package/util/lib/src/validators/iban.validator.d.ts +7 -0
  924. package/util/lib/src/validators/identity.validator.d.ts +33 -0
  925. package/util/lib/src/validators/index.d.ts +5 -0
  926. package/util/lib/src/validators/max-array-length.validator.d.ts +7 -0
  927. package/util/lib/src/validators/min-array-length.validator.d.ts +7 -0
  928. package/util/lib/src/validators/tckn.validator.d.ts +7 -0
  929. package/util/lib/src/validators/validators.d.ts +12 -0
  930. package/util/loaders/index.d.ts +1 -0
  931. package/util/loaders/style/style.loader.service.d.ts +13 -0
  932. package/util/pipes/src/distance-to-now.pipe.d.ts +11 -0
  933. package/util/pipes/src/get-column-by-field.pipe.d.ts +11 -0
  934. package/util/pipes/src/parse.pipe.d.ts +7 -0
  935. package/util/pipes/src/round-number.pipe.d.ts +11 -0
  936. package/util/pipes/src/safe.pipe.d.ts +10 -0
  937. package/util/pipes/src/translate-json/index.d.ts +1 -0
  938. package/util/pipes/src/translate-json/translate-json.pipe.d.ts +10 -0
  939. package/util/primitive-extensions/src/date.extensions.d.ts +8 -0
  940. package/util/primitive-extensions/src/number.extensions.d.ts +12 -0
  941. package/util/primitive-extensions/src/string.extensions.d.ts +11 -0
  942. package/util/pub-sub/src/pub-sub.service.d.ts +21 -0
  943. package/util/sync-active-tab-route/src/sync-active-tab-route.directive.d.ts +17 -0
  944. package/util/unwrap/src/unwrap-tag.directive.d.ts +9 -0
  945. package/.eslintrc.json +0 -41
  946. package/boot/config/api/ng-package.json +0 -6
  947. package/boot/config/api/src/api.sample.json +0 -8
  948. package/boot/config/api/src/api.service.ts +0 -91
  949. package/boot/config/api/src/interfaces.ts +0 -65
  950. package/boot/config/apps/ng-package.json +0 -6
  951. package/boot/config/apps/src/apps.service.ts +0 -62
  952. package/boot/config/apps/src/auth.guard.ts +0 -22
  953. package/boot/config/apps/src/interfaces.ts +0 -58
  954. package/boot/config/apps/src/reuse-strategy.ts +0 -10
  955. package/boot/config/apps/src/showdowDOMWrapper.ts +0 -28
  956. package/boot/config/plugins/ng-package.json +0 -6
  957. package/boot/config/plugins/src/getNgZone.ts +0 -7
  958. package/boot/config/plugins/src/interfaces.ts +0 -75
  959. package/boot/config/plugins/src/plugins.service.ts +0 -110
  960. package/boot/config/translate/constants.ts +0 -4
  961. package/boot/config/translate/ng-package.json +0 -6
  962. package/boot/config/translate/primeng/i18n/tr.ts +0 -59
  963. package/boot/host/ng-package.json +0 -6
  964. package/boot/host/src/app.component.ts +0 -51
  965. package/boot/host/src/bootstrap.ts +0 -87
  966. package/boot/index.ts +0 -1
  967. package/boot/mfe/ng-package.json +0 -6
  968. package/boot/mfe/src/app.component.ts +0 -63
  969. package/boot/mfe/src/appComponentLoader.ts +0 -4
  970. package/boot/mfe/src/bootstrap.ts +0 -97
  971. package/boot/mfe/src/loadStyles.ts +0 -42
  972. package/boot/mfe/src/monaco.config.ts +0 -266
  973. package/boot/ng-package.json +0 -6
  974. package/http/index.ts +0 -13
  975. package/http/lib/enums.ts +0 -31
  976. package/http/lib/interfaces.ts +0 -46
  977. package/http/ng-package.json +0 -6
  978. package/http/src/httpBackend.ts +0 -12
  979. package/http/src/httpClient.ts +0 -20
  980. package/http/src/interceptor/accept-language.interceptor.ts +0 -32
  981. package/http/src/serviceBase.ts +0 -175
  982. package/http/src/serviceMockBase.ts +0 -12
  983. package/http/src/serviceRequest.ts +0 -28
  984. package/http/src/serviceStateMethods.ts +0 -211
  985. package/i18n/ng-package.json +0 -6
  986. package/i18n/src/folder-name-token.ts +0 -3
  987. package/i18n/src/i18n.module.ts +0 -11
  988. package/i18n/src/loader.ts +0 -13
  989. package/i18n/src/provideI18n.ts +0 -18
  990. package/i18n/src/provideScope.ts +0 -20
  991. package/keycloak/index.ts +0 -1
  992. package/keycloak/ng-package.json +0 -6
  993. package/keycloak/src/auth.interceptor.ts +0 -103
  994. package/ng-package.json +0 -16
  995. package/project.json +0 -39
  996. package/provider/ng-package.json +0 -6
  997. package/provider/src/index.ts +0 -5
  998. package/provider/src/prodiveHost.ts +0 -15
  999. package/provider/src/prodiveHostRouter.ts +0 -21
  1000. package/provider/src/provideHostKeycloak.ts +0 -34
  1001. package/provider/src/provideLocaleId.ts +0 -22
  1002. package/tsconfig.lib.json +0 -12
  1003. package/tsconfig.lib.prod.json +0 -10
  1004. package/tsconfig.spec.json +0 -9
  1005. package/ui/autoComplete/ng-package.json +0 -6
  1006. package/ui/autoComplete/src/auto-complete.component.html +0 -14
  1007. package/ui/autoComplete/src/auto-complete.component.ts +0 -130
  1008. package/ui/autoComplete/src/interfaces.ts +0 -35
  1009. package/ui/badge/ng-package.json +0 -6
  1010. package/ui/badge/src/badge.component.html +0 -11
  1011. package/ui/badge/src/badge.component.ts +0 -63
  1012. package/ui/button/ng-package.json +0 -6
  1013. package/ui/button/src/button.component.html +0 -12
  1014. package/ui/button/src/button.component.ts +0 -47
  1015. package/ui/button/src/split-button.component.html +0 -2
  1016. package/ui/button/src/split-button.component.ts +0 -17
  1017. package/ui/calendar/ng-package.json +0 -6
  1018. package/ui/calendar/src/calendar.component.html +0 -48
  1019. package/ui/calendar/src/calendar.component.ts +0 -257
  1020. package/ui/charts/index.ts +0 -13
  1021. package/ui/charts/ng-package.json +0 -6
  1022. package/ui/charts/src/amCharts/column/column-chart.component.ts +0 -144
  1023. package/ui/charts/src/amCharts/line/line-chart.component.ts +0 -194
  1024. package/ui/charts/src/amCharts/pie/pie-chart.component.ts +0 -132
  1025. package/ui/charts/src/highCharts/area/area-chart.component.ts +0 -112
  1026. package/ui/charts/src/highCharts/bar/bar-chart.component.ts +0 -100
  1027. package/ui/charts/src/highCharts/bar/bar-chart.components.scss +0 -50
  1028. package/ui/charts/src/highCharts/column/column-chart.component copy.ts +0 -50
  1029. package/ui/charts/src/highCharts/column/column-chart.component.ts +0 -125
  1030. package/ui/charts/src/highCharts/column/column-chart.components.scss +0 -50
  1031. package/ui/charts/src/highCharts/gauge/solid-gauge.component.ts +0 -199
  1032. package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.ts +0 -279
  1033. package/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.ts +0 -185
  1034. package/ui/charts/src/highCharts/line/line-chart-series.component.ts +0 -92
  1035. package/ui/charts/src/highCharts/line/line-chart.component.ts +0 -85
  1036. package/ui/charts/src/highCharts/pie/pie-chart.component.ts +0 -139
  1037. package/ui/charts/src/theme/theme.ts +0 -55
  1038. package/ui/checkbox/ng-package.json +0 -6
  1039. package/ui/checkbox/src/check-box.component.html +0 -15
  1040. package/ui/checkbox/src/check-box.component.ts +0 -24
  1041. package/ui/checkbox/src/tri-state-checkbox.component.html +0 -7
  1042. package/ui/checkbox/src/tri-state-checkbox.component.ts +0 -20
  1043. package/ui/chip/index.ts +0 -1
  1044. package/ui/chip/ng-package.json +0 -6
  1045. package/ui/chip/src/chip.component.html +0 -33
  1046. package/ui/chip/src/chip.component.ts +0 -144
  1047. package/ui/collapse-reorder-list/index.ts +0 -1
  1048. package/ui/collapse-reorder-list/ng-package.json +0 -6
  1049. package/ui/collapse-reorder-list/src/collapse-reorder-list.component.html +0 -42
  1050. package/ui/collapse-reorder-list/src/collapse-reorder-list.component.scss +0 -24
  1051. package/ui/collapse-reorder-list/src/collapse-reorder-list.component.ts +0 -56
  1052. package/ui/dxEditor/ng-package.json +0 -6
  1053. package/ui/dxEditor/src/dx-editor.component.html +0 -67
  1054. package/ui/dxEditor/src/dx-editor.component.ts +0 -19
  1055. package/ui/dxField/ng-package.json +0 -6
  1056. package/ui/dxField/src/dx-field.component.html +0 -15
  1057. package/ui/dxField/src/dx-field.component.ts +0 -17
  1058. package/ui/editor/ng-package.json +0 -6
  1059. package/ui/editor/src/aril-editor.component.html +0 -16
  1060. package/ui/editor/src/aril-editor.component.scss +0 -18
  1061. package/ui/editor/src/aril-editor.component.ts +0 -176
  1062. package/ui/editor/src/types.ts +0 -24
  1063. package/ui/field/ng-package.json +0 -6
  1064. package/ui/field/src/field.component.html +0 -27
  1065. package/ui/field/src/field.component.ts +0 -53
  1066. package/ui/fileUpload/ng-package.json +0 -6
  1067. package/ui/fileUpload/src/file-upload.component.html +0 -76
  1068. package/ui/fileUpload/src/file-upload.component.ts +0 -90
  1069. package/ui/form/index.ts +0 -18
  1070. package/ui/form/ng-package.json +0 -6
  1071. package/ui/form/src/form-submit-button.component.html +0 -12
  1072. package/ui/form/src/form-submit-button.component.ts +0 -36
  1073. package/ui/form/src/form.component.ts +0 -20
  1074. package/ui/img-viewer/index.ts +0 -2
  1075. package/ui/img-viewer/ng-package.json +0 -6
  1076. package/ui/img-viewer/src/img-viewer.component.html +0 -12
  1077. package/ui/img-viewer/src/img-viewer.component.scss +0 -8
  1078. package/ui/img-viewer/src/img-viewer.component.ts +0 -59
  1079. package/ui/index.ts +0 -1
  1080. package/ui/json-diff-comparison/ng-package.json +0 -6
  1081. package/ui/json-diff-comparison/src/json-diff.component.html +0 -5
  1082. package/ui/json-diff-comparison/src/json-diff.component.ts +0 -45
  1083. package/ui/lib/index.ts +0 -17
  1084. package/ui/lib/ng-package.json +0 -6
  1085. package/ui/lib/src/form/form-error-message.component.ts +0 -25
  1086. package/ui/lib/src/form/form-error-message.directive.ts +0 -32
  1087. package/ui/lib/src/form/form-field-builder.ts +0 -31
  1088. package/ui/lib/src/form/form-validation.ts +0 -14
  1089. package/ui/lib/src/grid/enum-color-picker.pipe.ts +0 -33
  1090. package/ui/lib/src/grid/flex-grid.directive.ts +0 -10
  1091. package/ui/lib/src/input/baseInput.ts +0 -30
  1092. package/ui/lib/src/input/common-input-validators.service.ts +0 -57
  1093. package/ui/lib/src/input/dx-input-error-message.pipe.ts +0 -16
  1094. package/ui/lib/src/input/input-disabled.directive.ts +0 -15
  1095. package/ui/lib/src/input/input-error-message.pipe.ts +0 -71
  1096. package/ui/lib/src/input/input-transforms.ts +0 -11
  1097. package/ui/lib/src/input/value-accessor.directive.ts +0 -31
  1098. package/ui/loader/ng-package.json +0 -6
  1099. package/ui/loader/src/loader.component.html +0 -7
  1100. package/ui/loader/src/loader.component.scss +0 -6
  1101. package/ui/loader/src/loader.component.ts +0 -14
  1102. package/ui/mask/ng-package.json +0 -6
  1103. package/ui/mask/src/mask.component.css +0 -23
  1104. package/ui/mask/src/mask.component.html +0 -17
  1105. package/ui/mask/src/mask.component.ts +0 -34
  1106. package/ui/multiSelect/ng-package.json +0 -6
  1107. package/ui/multiSelect/src/interfaces.ts +0 -41
  1108. package/ui/multiSelect/src/multi-select.component.html +0 -14
  1109. package/ui/multiSelect/src/multi-select.component.ts +0 -66
  1110. package/ui/ng-package.json +0 -6
  1111. package/ui/number/ng-package.json +0 -6
  1112. package/ui/number/src/number.component.html +0 -26
  1113. package/ui/number/src/number.component.ts +0 -36
  1114. package/ui/operation-types-dialog/ng-package.json +0 -6
  1115. package/ui/operation-types-dialog/src/operation-types-dialog.component.ts +0 -98
  1116. package/ui/overlayPanel/ng-package.json +0 -6
  1117. package/ui/overlayPanel/src/overlay-panel.component.html +0 -5
  1118. package/ui/overlayPanel/src/overlay-panel.component.ts +0 -16
  1119. package/ui/panel/ng-package.json +0 -6
  1120. package/ui/panel/src/panel.component.css +0 -38
  1121. package/ui/panel/src/panel.component.html +0 -44
  1122. package/ui/panel/src/panel.component.ts +0 -31
  1123. package/ui/password/ng-package.json +0 -6
  1124. package/ui/password/src/password.component.html +0 -25
  1125. package/ui/password/src/password.component.ts +0 -22
  1126. package/ui/pdf-viewer/ng-package.json +0 -6
  1127. package/ui/pdf-viewer/src/pdf-viewer.component.html +0 -16
  1128. package/ui/pdf-viewer/src/pdf-viewer.component.scss +0 -8
  1129. package/ui/pdf-viewer/src/pdf-viewer.component.ts +0 -28
  1130. package/ui/progressbar/dist/index.js +0 -13
  1131. package/ui/progressbar/ng-package.json +0 -6
  1132. package/ui/progressbar/src/dist/progressbar.component.js +0 -28
  1133. package/ui/progressbar/src/progressbar.component.html +0 -1
  1134. package/ui/progressbar/src/progressbar.component.ts +0 -18
  1135. package/ui/radioButton/ng-package.json +0 -6
  1136. package/ui/radioButton/src/radio-button.component.html +0 -23
  1137. package/ui/radioButton/src/radio-button.component.scss +0 -17
  1138. package/ui/radioButton/src/radio-button.component.ts +0 -39
  1139. package/ui/relativeDateSelector/index.ts +0 -1
  1140. package/ui/relativeDateSelector/ng-package.json +0 -6
  1141. package/ui/relativeDateSelector/src/enum.ts +0 -29
  1142. package/ui/relativeDateSelector/src/relative-date-selector.component.html +0 -118
  1143. package/ui/relativeDateSelector/src/relative-date-selector.component.scss +0 -154
  1144. package/ui/relativeDateSelector/src/relative-date-selector.component.ts +0 -291
  1145. package/ui/selectBox/ng-package.json +0 -6
  1146. package/ui/selectBox/src/interfaces.ts +0 -41
  1147. package/ui/selectBox/src/select-box.component.html +0 -19
  1148. package/ui/selectBox/src/select-box.component.ts +0 -79
  1149. package/ui/styles/ui.common.scss +0 -42
  1150. package/ui/switch/ng-package.json +0 -6
  1151. package/ui/switch/src/switch.component.html +0 -7
  1152. package/ui/switch/src/switch.component.ts +0 -18
  1153. package/ui/table/index.ts +0 -76
  1154. package/ui/table/ng-package.json +0 -6
  1155. package/ui/table/src/export-overlay-panel.component.ts +0 -330
  1156. package/ui/table/src/interfaces.ts +0 -162
  1157. package/ui/table/src/table-column.component.ts +0 -22
  1158. package/ui/table/src/table.component.html +0 -404
  1159. package/ui/table/src/table.component.scss +0 -15
  1160. package/ui/table/src/table.component.ts +0 -368
  1161. package/ui/table-expand/index.ts +0 -41
  1162. package/ui/table-expand/ng-package.json +0 -6
  1163. package/ui/table-expand/src/table-column.component.ts +0 -32
  1164. package/ui/table-expand/src/table-expand-area.component.ts +0 -18
  1165. package/ui/table-expand/src/table.component.html +0 -101
  1166. package/ui/table-expand/src/table.component.ts +0 -92
  1167. package/ui/tag/index.ts +0 -1
  1168. package/ui/tag/ng-package.json +0 -6
  1169. package/ui/tag/src/interface.ts +0 -1
  1170. package/ui/tag/src/tag.component.html +0 -9
  1171. package/ui/tag/src/tag.component.ts +0 -17
  1172. package/ui/tagBox/ng-package.json +0 -6
  1173. package/ui/tagBox/src/tag-box.component.html +0 -26
  1174. package/ui/tagBox/src/tag-box.component.ts +0 -56
  1175. package/ui/text/ng-package.json +0 -6
  1176. package/ui/text/src/text.component.html +0 -21
  1177. package/ui/text/src/text.component.ts +0 -55
  1178. package/ui/textArea/ng-package.json +0 -6
  1179. package/ui/textArea/src/text-area.component.html +0 -12
  1180. package/ui/textArea/src/text-area.component.ts +0 -22
  1181. package/ui/toggle-button/index.ts +0 -1
  1182. package/ui/toggle-button/ng-package.json +0 -6
  1183. package/ui/toggle-button/src/toggle-button.component.html +0 -13
  1184. package/ui/toggle-button/src/toggle-button.component.scss +0 -19
  1185. package/ui/toggle-button/src/toggle-button.component.ts +0 -22
  1186. package/ui/tooltip/ng-package.json +0 -6
  1187. package/ui/tooltip/src/tooltip-component.html +0 -10
  1188. package/ui/tooltip/src/tooltip-component.ts +0 -20
  1189. package/ui/translate-input/ng-package.json +0 -6
  1190. package/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.html +0 -46
  1191. package/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.scss +0 -9
  1192. package/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.ts +0 -74
  1193. package/ui/translate-input/src/aril-lang-modal/constants.ts +0 -16
  1194. package/ui/translate-input/src/aril-translate-input.component.ts +0 -152
  1195. package/ui/translate-input/src/interface.ts +0 -14
  1196. package/ui/tree/ng-package.json +0 -6
  1197. package/ui/tree/src/tree.component.html +0 -17
  1198. package/ui/tree/src/tree.component.ts +0 -65
  1199. package/ui/treeSelect/ng-package.json +0 -6
  1200. package/ui/treeSelect/src/treeSelect.component.html +0 -18
  1201. package/ui/treeSelect/src/treeSelect.component.ts +0 -43
  1202. package/ui/treeTable/ng-package.json +0 -6
  1203. package/ui/treeTable/src/tree-table.component.html +0 -88
  1204. package/ui/treeTable/src/tree-table.component.ts +0 -57
  1205. package/ui/value/ng-package.json +0 -6
  1206. package/ui/value/src/value.component.html +0 -94
  1207. package/ui/value/src/value.component.scss +0 -6
  1208. package/ui/value/src/value.component.ts +0 -268
  1209. package/ui-business/assetPicker/index.ts +0 -1
  1210. package/ui-business/assetPicker/ng-package.json +0 -6
  1211. package/ui-business/assetPicker/src/asset-picker.component.html +0 -29
  1212. package/ui-business/assetPicker/src/asset-picker.component.ts +0 -259
  1213. package/ui-business/assetPicker/src/interface.ts +0 -83
  1214. package/ui-business/detailed-overlay-panel/ng-package.json +0 -6
  1215. package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.html +0 -52
  1216. package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.scss +0 -19
  1217. package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.ts +0 -66
  1218. package/ui-business/detailed-overlay-panel/src/interface.ts +0 -62
  1219. package/ui-business/enumPicker/index.ts +0 -1
  1220. package/ui-business/enumPicker/ng-package.json +0 -6
  1221. package/ui-business/enumPicker/src/enum-picker.component.html +0 -39
  1222. package/ui-business/enumPicker/src/enum-picker.component.ts +0 -147
  1223. package/ui-business/enumPicker/src/interface.ts +0 -44
  1224. package/ui-business/image-viewer/index.ts +0 -1
  1225. package/ui-business/image-viewer/ng-package.json +0 -6
  1226. package/ui-business/image-viewer/src/aril-image-viewer.component.ts +0 -92
  1227. package/ui-business/index.ts +0 -1
  1228. package/ui-business/multiple-ref-value/ng-package.json +0 -6
  1229. package/ui-business/multiple-ref-value/src/multiple-ref-value.component.html +0 -26
  1230. package/ui-business/multiple-ref-value/src/multiple-ref-value.component.ts +0 -21
  1231. package/ui-business/ng-package.json +0 -6
  1232. package/ui-business/notification-templates-dialog/ng-package.json +0 -6
  1233. package/ui-business/notification-templates-dialog/src/interface.ts +0 -18
  1234. package/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.html +0 -31
  1235. package/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.ts +0 -69
  1236. package/ui-business/operation-types-dialog/ng-package.json +0 -6
  1237. package/ui-business/operation-types-dialog/src/operation-types-dialog.component.ts +0 -78
  1238. package/ui-business/ref-value/ng-package.json +0 -6
  1239. package/ui-business/ref-value/src/ref-value.component.html +0 -29
  1240. package/ui-business/ref-value/src/ref-value.component.ts +0 -41
  1241. package/ui-business/rolePicker/ng-package.json +0 -6
  1242. package/ui-business/rolePicker/src/interface.ts +0 -56
  1243. package/ui-business/rolePicker/src/role-picker.component.html +0 -21
  1244. package/ui-business/rolePicker/src/role-picker.component.ts +0 -88
  1245. package/ui-business/userPicker/index.ts +0 -1
  1246. package/ui-business/userPicker/ng-package.json +0 -6
  1247. package/ui-business/userPicker/src/interface.ts +0 -27
  1248. package/ui-business/userPicker/src/user-picker.component.html +0 -20
  1249. package/ui-business/userPicker/src/user-picker.component.ts +0 -52
  1250. package/util/block/ng-package.json +0 -6
  1251. package/util/block/src/block.ts +0 -65
  1252. package/util/block/src/blockui.css +0 -56
  1253. package/util/block/src/blockui.min.js +0 -7
  1254. package/util/custom_pages/ng-package.json +0 -6
  1255. package/util/custom_pages/src/notFound.component.ts +0 -34
  1256. package/util/directives/ng-package.json +0 -6
  1257. package/util/directives/src/detail-page-customization/detail-page-customization.directive.md +0 -199
  1258. package/util/directives/src/detail-page-customization/detail-page-customization.directive.ts +0 -343
  1259. package/util/directives/src/detail-page-customization/index.ts +0 -2
  1260. package/util/directives/src/detail-page-customization/models.ts +0 -61
  1261. package/util/directives/src/dialog-component/plugin-dialog.component.ts +0 -22
  1262. package/util/directives/src/dialog-service/plugin-dialog.service.ts +0 -12
  1263. package/util/index.ts +0 -1
  1264. package/util/lib/index.ts +0 -4
  1265. package/util/lib/ng-package.json +0 -6
  1266. package/util/lib/src/interfaces.ts +0 -44
  1267. package/util/lib/src/module-router.ts +0 -9
  1268. package/util/lib/src/types.ts +0 -61
  1269. package/util/lib/src/validators/iban.validator.ts +0 -202
  1270. package/util/lib/src/validators/index.ts +0 -4
  1271. package/util/lib/src/validators/max-array-length.validator.ts +0 -18
  1272. package/util/lib/src/validators/min-array-length.validator.ts +0 -18
  1273. package/util/lib/src/validators/tckn.validator.ts +0 -55
  1274. package/util/lib/src/validators/validators.ts +0 -21
  1275. package/util/loaders/index.ts +0 -1
  1276. package/util/loaders/ng-package.json +0 -6
  1277. package/util/loaders/style/style.loader.service.ts +0 -69
  1278. package/util/ng-package.json +0 -6
  1279. package/util/pipes/ng-package.json +0 -6
  1280. package/util/pipes/src/distance-to-now.pipe.ts +0 -37
  1281. package/util/pipes/src/get-column-by-field.pipe.ts +0 -11
  1282. package/util/pipes/src/parse.pipe.ts +0 -15
  1283. package/util/pipes/src/round-number.pipe.ts +0 -75
  1284. package/util/pipes/src/safe.pipe.ts +0 -27
  1285. package/util/pipes/src/translate-json/index.ts +0 -1
  1286. package/util/pipes/src/translate-json/translate-json.pipe.ts +0 -34
  1287. package/util/primitive-extensions/ng-package.json +0 -6
  1288. package/util/primitive-extensions/src/date.extensions.ts +0 -135
  1289. package/util/primitive-extensions/src/number.extensions.ts +0 -57
  1290. package/util/primitive-extensions/src/string.extensions.ts +0 -39
  1291. package/util/pub-sub/ng-package.json +0 -6
  1292. package/util/pub-sub/src/pub-sub.service.ts +0 -35
  1293. package/util/sync-active-tab-route/ng-package.json +0 -6
  1294. package/util/sync-active-tab-route/src/sync-active-tab-route.directive.ts +0 -47
  1295. package/util/unwrap/ng-package.json +0 -6
  1296. package/util/unwrap/src/unwrap-tag.directive.ts +0 -18
  1297. /package/boot/config/api/{index.ts → index.d.ts} +0 -0
  1298. /package/boot/config/apps/{index.ts → index.d.ts} +0 -0
  1299. /package/boot/config/plugins/{index.ts → index.d.ts} +0 -0
  1300. /package/boot/config/translate/{index.ts → index.d.ts} +0 -0
  1301. /package/boot/host/{index.ts → index.d.ts} +0 -0
  1302. /package/boot/mfe/{index.ts → index.d.ts} +0 -0
  1303. /package/i18n/{index.ts → index.d.ts} +0 -0
  1304. /package/provider/{index.ts → index.d.ts} +0 -0
  1305. /package/{public-api.ts → public-api.d.ts} +0 -0
  1306. /package/ui/autoComplete/{index.ts → index.d.ts} +0 -0
  1307. /package/ui/badge/{index.ts → index.d.ts} +0 -0
  1308. /package/ui/button/{index.ts → index.d.ts} +0 -0
  1309. /package/ui/calendar/{index.ts → index.d.ts} +0 -0
  1310. /package/ui/checkbox/{index.ts → index.d.ts} +0 -0
  1311. /package/ui/dxEditor/{index.ts → index.d.ts} +0 -0
  1312. /package/ui/dxField/{index.ts → index.d.ts} +0 -0
  1313. /package/ui/editor/{index.ts → index.d.ts} +0 -0
  1314. /package/ui/field/{index.ts → index.d.ts} +0 -0
  1315. /package/ui/fileUpload/{index.ts → index.d.ts} +0 -0
  1316. /package/ui/json-diff-comparison/{index.ts → index.d.ts} +0 -0
  1317. /package/ui/loader/{index.ts → index.d.ts} +0 -0
  1318. /package/ui/mask/{index.ts → index.d.ts} +0 -0
  1319. /package/ui/multiSelect/{index.ts → index.d.ts} +0 -0
  1320. /package/ui/number/{index.ts → index.d.ts} +0 -0
  1321. /package/ui/operation-types-dialog/{index.ts → index.d.ts} +0 -0
  1322. /package/ui/overlayPanel/{index.ts → index.d.ts} +0 -0
  1323. /package/ui/panel/{index.ts → index.d.ts} +0 -0
  1324. /package/ui/password/{index.ts → index.d.ts} +0 -0
  1325. /package/ui/pdf-viewer/{index.ts → index.d.ts} +0 -0
  1326. /package/ui/progressbar/{index.ts → index.d.ts} +0 -0
  1327. /package/ui/radioButton/{index.ts → index.d.ts} +0 -0
  1328. /package/ui/selectBox/{index.ts → index.d.ts} +0 -0
  1329. /package/ui/switch/{index.ts → index.d.ts} +0 -0
  1330. /package/ui/tagBox/{index.ts → index.d.ts} +0 -0
  1331. /package/ui/text/{index.ts → index.d.ts} +0 -0
  1332. /package/ui/textArea/{index.ts → index.d.ts} +0 -0
  1333. /package/ui/tooltip/{index.ts → index.d.ts} +0 -0
  1334. /package/ui/translate-input/{index.ts → index.d.ts} +0 -0
  1335. /package/ui/tree/{index.ts → index.d.ts} +0 -0
  1336. /package/ui/treeSelect/{index.ts → index.d.ts} +0 -0
  1337. /package/ui/treeTable/{index.ts → index.d.ts} +0 -0
  1338. /package/ui/value/{index.ts → index.d.ts} +0 -0
  1339. /package/ui-business/detailed-overlay-panel/{index.ts → index.d.ts} +0 -0
  1340. /package/ui-business/multiple-ref-value/{index.ts → index.d.ts} +0 -0
  1341. /package/ui-business/notification-templates-dialog/{index.ts → index.d.ts} +0 -0
  1342. /package/ui-business/operation-types-dialog/{index.ts → index.d.ts} +0 -0
  1343. /package/ui-business/ref-value/{index.ts → index.d.ts} +0 -0
  1344. /package/ui-business/rolePicker/{index.ts → index.d.ts} +0 -0
  1345. /package/util/block/{index.ts → index.d.ts} +0 -0
  1346. /package/util/custom_pages/{index.ts → index.d.ts} +0 -0
  1347. /package/util/directives/{index.ts → index.d.ts} +0 -0
  1348. /package/util/pipes/{index.ts → index.d.ts} +0 -0
  1349. /package/util/primitive-extensions/{index.ts → index.d.ts} +0 -0
  1350. /package/util/primitive-extensions/src/{boolean.extensions.ts → boolean.extensions.d.ts} +0 -0
  1351. /package/util/pub-sub/{index.ts → index.d.ts} +0 -0
  1352. /package/util/sync-active-tab-route/{index.ts → index.d.ts} +0 -0
  1353. /package/util/unwrap/{index.ts → index.d.ts} +0 -0
@@ -0,0 +1,191 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, effect, signal } from '@angular/core';
3
+ import { toSignal } from '@angular/core/rxjs-interop';
4
+ import { BadgeModule } from 'primeng/badge';
5
+ import { ConfirmDialogModule } from 'primeng/confirmdialog';
6
+ import { PaginatorModule } from 'primeng/paginator';
7
+ import { ScrollPanelModule } from 'primeng/scrollpanel';
8
+ import { SidebarModule } from 'primeng/sidebar';
9
+ import { TooltipModule } from 'primeng/tooltip';
10
+ import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
11
+ import { TranslocoModule } from '@ngneat/transloco';
12
+ import { Subject, switchMap } from 'rxjs';
13
+ import { ButtonComponent } from 'aril/ui/button';
14
+ import { regularIcons, solidIcons } from 'aril/util/lib';
15
+ import { SafePipe } from 'aril/util/pipes';
16
+ import { ActivityTypesEnum, DetailNotificationTypeEnum } from '../../service/interfaces/enum';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "../../service/app.layout.service";
19
+ import * as i2 from "../../service/notifications.service";
20
+ import * as i3 from "@ngneat/transloco";
21
+ import * as i4 from "@angular/router";
22
+ import * as i5 from "keycloak-angular";
23
+ import * as i6 from "primeng/sidebar";
24
+ import * as i7 from "primeng/api";
25
+ import * as i8 from "primeng/scrollpanel";
26
+ import * as i9 from "primeng/confirmdialog";
27
+ import * as i10 from "primeng/tooltip";
28
+ import * as i11 from "@fortawesome/angular-fontawesome";
29
+ export class NotificationsSidebarComponent {
30
+ get getUserPhones() {
31
+ const phones = this.keycloak.getKeycloakInstance().profile?.attributes?.['phone'];
32
+ if (phones && Array.isArray(phones)) {
33
+ return phones;
34
+ }
35
+ else if (phones && typeof phones === 'string') {
36
+ return [phones];
37
+ }
38
+ return [];
39
+ }
40
+ get getUserMail() {
41
+ return this.keycloak.getKeycloakInstance().profile?.email;
42
+ }
43
+ constructor(layoutService, notificationsService, translocoService, router, keycloak) {
44
+ this.layoutService = layoutService;
45
+ this.notificationsService = notificationsService;
46
+ this.translocoService = translocoService;
47
+ this.router = router;
48
+ this.keycloak = keycloak;
49
+ this.notifications = signal([]);
50
+ this.selectedNotification = null;
51
+ this.ActivityTypesEnum = ActivityTypesEnum;
52
+ this.DetailNotificationTypeEnum = DetailNotificationTypeEnum;
53
+ this.regularIcons = regularIcons;
54
+ this.solidIcons = solidIcons;
55
+ this.oneMonthAgo = new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000);
56
+ this.subjects = {
57
+ markAsRead: new Subject(),
58
+ loadNotifications: new Subject()
59
+ };
60
+ this.markAsReadService = toSignal(this.subjects.markAsRead.pipe(switchMap((id) => this.notificationsService.markAsReadNotification(id))));
61
+ this.loadNotificationsService = toSignal(this.subjects.loadNotifications.pipe(switchMap(() => this.notificationsService.getNotifications({
62
+ pager: {
63
+ pageSize: 10,
64
+ pageNumber: 1
65
+ },
66
+ startDate: this.oneMonthAgo.dateToLong('time') || 0,
67
+ endDate: new Date().dateToLong('time') || 0,
68
+ read: false,
69
+ toList: [this.getUserMail, ...this.getUserPhones],
70
+ }))));
71
+ this.initializeEffects();
72
+ }
73
+ ngOnInit() {
74
+ this.loadNotifications();
75
+ }
76
+ loadNotifications() {
77
+ this.subjects.loadNotifications.next();
78
+ }
79
+ initializeEffects() {
80
+ effect(() => {
81
+ const service = this.loadNotificationsService();
82
+ if (service?.response) {
83
+ this.notifications.set(service.response.result);
84
+ // Update unread count in layoutService
85
+ this.layoutService.setUnreadNotificationCount(service?.response.resultInfo.totalItem || 0);
86
+ }
87
+ }, { allowSignalWrites: true });
88
+ effect(() => {
89
+ const service = this.markAsReadService();
90
+ if (service?.response) {
91
+ this.loadNotifications();
92
+ if (this.selectedNotification?.detailNotificationType === DetailNotificationTypeEnum.TODO_ITEM) {
93
+ this.router.navigate([`mng/todo-tasks/detail/${this.selectedNotification?.referenceId}`]);
94
+ }
95
+ }
96
+ });
97
+ }
98
+ get visible() {
99
+ return this.layoutService.state.notificationsSidebarVisible;
100
+ }
101
+ set visible(value) {
102
+ this.layoutService.state.notificationsSidebarVisible = value;
103
+ }
104
+ markNotificationAsRead(notification) {
105
+ this.selectedNotification = notification;
106
+ this.subjects.markAsRead.next(notification.id);
107
+ this.visible = false;
108
+ if (notification?.detailNotificationType === DetailNotificationTypeEnum.TODO_ITEM) {
109
+ this.router.navigate([`mng/todo-tasks/detail/${notification?.referenceId}`]);
110
+ }
111
+ else if (notification?.detailNotificationType === DetailNotificationTypeEnum.BATCH_JOB) {
112
+ this.router.navigate([`mng/bulk-operations/${notification?.referenceId}`]);
113
+ }
114
+ }
115
+ markNotificationAsReadOnDotIcon(notification) {
116
+ if (!notification.read) {
117
+ this.subjects.markAsRead.next(notification.id);
118
+ }
119
+ }
120
+ trackByNotificationId(index, notification) {
121
+ return notification.id;
122
+ }
123
+ getNotificationTitle(notification) {
124
+ return notification.templateTitle || notification.templateCode || '';
125
+ }
126
+ getNotificationContent(notification) {
127
+ const truncated = notification.content?.length > 200 ? notification.content?.substring(0, 200) + '...' : notification.content;
128
+ return truncated || '';
129
+ }
130
+ formatNotificationDate(startDate) {
131
+ if (!startDate) {
132
+ return '';
133
+ }
134
+ const dateStr = startDate.toString();
135
+ const year = parseInt(dateStr.substring(0, 4));
136
+ const month = parseInt(dateStr.substring(4, 6)) - 1;
137
+ const day = parseInt(dateStr.substring(6, 8));
138
+ const hour = parseInt(dateStr.substring(8, 10));
139
+ const minute = parseInt(dateStr.substring(10, 12));
140
+ const second = parseInt(dateStr.substring(12, 14));
141
+ const notificationDate = new Date(year, month, day, hour, minute, second);
142
+ const now = new Date();
143
+ const diffMs = now.getTime() - notificationDate.getTime();
144
+ const diffMinutes = Math.floor(diffMs / (1000 * 60));
145
+ const diffHours = Math.floor(diffMs / (1000 * 60 * 60));
146
+ const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
147
+ const diffWeeks = Math.floor(diffDays / 7);
148
+ const diffMonths = Math.floor(diffDays / 30);
149
+ if (diffMinutes < 1) {
150
+ return this.translocoService.translate('notifications.time.justNow');
151
+ }
152
+ else if (diffMinutes < 60) {
153
+ return this.translocoService.translate('notifications.time.minutesAgo', { count: diffMinutes });
154
+ }
155
+ else if (diffHours < 24) {
156
+ return this.translocoService.translate('notifications.time.hoursAgo', { count: diffHours });
157
+ }
158
+ else if (diffDays < 7) {
159
+ return this.translocoService.translate('notifications.time.daysAgo', { count: diffDays });
160
+ }
161
+ else if (diffWeeks < 4) {
162
+ return this.translocoService.translate('notifications.time.weeksAgo', { count: diffWeeks });
163
+ }
164
+ else {
165
+ return this.translocoService.translate('notifications.time.monthsAgo', { count: diffMonths });
166
+ }
167
+ }
168
+ navigateToAllNotifications() {
169
+ this.router.navigate(['mng/control-management/sms-email-audit']);
170
+ this.visible = false;
171
+ }
172
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NotificationsSidebarComponent, deps: [{ token: i1.LayoutService }, { token: i2.NotificationsService }, { token: i3.TranslocoService }, { token: i4.Router }, { token: i5.KeycloakService }], target: i0.ɵɵFactoryTarget.Component }); }
173
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: NotificationsSidebarComponent, isStandalone: true, selector: "app-notifications-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-notifications-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'notifications'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\r\n\t\t\t<div class=\"flex align-items-center\">\r\n\t\t\t\t<i class=\"pi pi-bell text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('title') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"notifications-content\">\r\n\t\t@if (notifications().length > 0) {\r\n\t\t\t<div class=\"notifications-list\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"notifications-items\">\r\n\t\t\t\t\t\t@for (notification of notifications(); track trackByNotificationId($index, notification)) {\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclass=\"notification-item\"\r\n\t\t\t\t\t\t\t\t[class.unread-item]=\"!notification.read\"\r\n\t\t\t\t\t\t\t\t(click)=\"\r\n\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.TODO_ITEM ||\r\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.BATCH_JOB\r\n\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\tmarkNotificationAsRead(notification)\r\n\t\t\t\t\t\t\t\t\t:\tnull\r\n\t\t\t\t\t\t\t\t\">\r\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\r\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.SMS) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon sms-icon\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faMessage\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon unread\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelope\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon read\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelopeOpen\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"title-text ml-2\">{{ getNotificationTitle(notification) }}</p>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"notification-date\">{{ formatNotificationDate(notification.sendingDate) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faCircle\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"unread-dot\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('markAsRead')\"\r\n\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"markNotificationAsReadOnDotIcon(notification); $event.stopPropagation()\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-meta\"></div>\r\n\t\t\t\t\t\t\t\t\t@if (getNotificationContent(notification)) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-content-preview\">\r\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.EMAIL) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div [innerHTML]=\"notification.content | safe: 'html'\" class=\"html-preview line-clamp-3\"></div>\r\n\t\t\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"text-content\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ getNotificationContent(notification) }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\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-bell empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noNotifications') }}</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">{{ t('noNotificationsDescription') }}</p>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<div class=\"flex justify-content-center p-2 border-top-1 surface-border\">\r\n\t\t\t<aril-button\r\n\t\t\t\t[label]=\"t('allShow')\"\r\n\t\t\t\ticon=\"EXTERNAL_LINK\"\r\n\t\t\t\tcolor=\"primary\"\r\n\t\t\t\tsize=\"md\"\r\n\t\t\t\t(clickEvent)=\"navigateToAllNotifications()\">\r\n\t\t\t</aril-button>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<p-confirmDialog></p-confirmDialog>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-notifications-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-notifications-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-notifications-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.notifications-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.notifications-list{flex:1;overflow:hidden}.notifications-items{padding:0}.notification-item{background:transparent;border-bottom:1px solid var(--surface-border);cursor:pointer;transition:background-color .2s ease;position:relative}.notification-item:hover{background:var(--surface-hover)}.notification-item:last-child{border-bottom:none}.notification-item.unread-item{background:var(--surface-50)}.notification-item.unread-item:hover{background:var(--surface-100)}.notification-item.unread-item .title-text{font-weight:500}.item-content{padding:1.125rem 1rem}.item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.625rem;gap:1rem}.item-title{display:flex;align-items:center;flex:1;min-width:0;gap:.4em}.item-title .notification-icon{width:1.75rem;height:1.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.item-title .notification-icon fa-icon{font-size:.875rem;transition:all .2s ease}.item-title .notification-icon.email-icon.unread{background-color:#3b82f6;color:#fff;box-shadow:0 1px 4px #00000026}.item-title .notification-icon.email-icon.unread fa-icon{color:#fff}.item-title .notification-icon.email-icon.read{background:var(--surface-200);color:var(--text-color-secondary)}.item-title .notification-icon.email-icon.read fa-icon{color:var(--text-color-secondary)}.item-title .notification-icon.sms-icon{background:linear-gradient(135deg,var(--green-500),var(--green-600));color:#fff;box-shadow:0 2px 8px #22c55e40}.item-title .notification-icon.sms-icon fa-icon{color:#fff}.item-title .title-text{font-weight:500;line-height:1.5;font-size:.975rem;margin:0}.notification-date{font-size:.8rem;color:var(--text-color-secondary);font-weight:500;white-space:nowrap;background:var(--surface-100);padding:.2rem .4rem;border-radius:.25rem}.item-content-preview{margin-top:.625rem;color:var(--text-color-secondary);padding-left:1.5rem;border-left:2px solid var(--surface-200)}.item-content-preview .text-content{font-size:.875rem;line-height:1.5;margin:0;font-style:italic}.item-content-preview .html-preview{font-size:.875rem;line-height:1.5;max-height:75px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;word-break:break-word;white-space:normal;font-style:italic}.empty-state{display:flex;align-items:center;justify-content:center;flex:1;padding:2rem}.empty-state .empty-content{text-align:center}.empty-state .empty-content .empty-icon{font-size:4rem;color:var(--text-color-secondary);opacity:.3;margin-bottom:1rem}.empty-state .empty-content .empty-title{font-size:1.25rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-state .empty-content .empty-message{color:var(--text-color-secondary);margin:0}.unread-dot{color:#3b82f6;font-size:.625rem;cursor:pointer;transition:opacity .2s ease;opacity:.8}.unread-dot:hover{opacity:1}@media (max-width: 768px){.layout-notifications-sidebar ::ng-deep .p-sidebar{width:100%!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: ConfirmDialogModule }, { kind: "component", type: i9.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }, { kind: "ngmodule", type: PaginatorModule }, { 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: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i10.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: BadgeModule }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i11.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "pipe", type: SafePipe, name: "safe" }] }); }
174
+ }
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NotificationsSidebarComponent, decorators: [{
176
+ type: Component,
177
+ args: [{ standalone: true, selector: 'app-notifications-sidebar', imports: [
178
+ CommonModule,
179
+ SidebarModule,
180
+ ScrollPanelModule,
181
+ ConfirmDialogModule,
182
+ PaginatorModule,
183
+ ButtonComponent,
184
+ TranslocoModule,
185
+ TooltipModule,
186
+ BadgeModule,
187
+ FontAwesomeModule,
188
+ SafePipe
189
+ ], 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-notifications-sidebar w-full sm:w-30rem\"\r\n\t*transloco=\"let t; read: 'notifications'\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\r\n\t\t\t<div class=\"flex align-items-center\">\r\n\t\t\t\t<i class=\"pi pi-bell text-primary text-xl\"></i>\r\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('title') }}</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t<div class=\"notifications-content\">\r\n\t\t@if (notifications().length > 0) {\r\n\t\t\t<div class=\"notifications-list\">\r\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\r\n\t\t\t\t\t<div class=\"notifications-items\">\r\n\t\t\t\t\t\t@for (notification of notifications(); track trackByNotificationId($index, notification)) {\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclass=\"notification-item\"\r\n\t\t\t\t\t\t\t\t[class.unread-item]=\"!notification.read\"\r\n\t\t\t\t\t\t\t\t(click)=\"\r\n\t\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.TODO_ITEM ||\r\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.BATCH_JOB\r\n\t\t\t\t\t\t\t\t\t) ?\r\n\t\t\t\t\t\t\t\t\t\tmarkNotificationAsRead(notification)\r\n\t\t\t\t\t\t\t\t\t:\tnull\r\n\t\t\t\t\t\t\t\t\">\r\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\r\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.SMS) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon sms-icon\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faMessage\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon unread\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelope\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon read\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelopeOpen\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"title-text ml-2\">{{ getNotificationTitle(notification) }}</p>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"notification-date\">{{ formatNotificationDate(notification.sendingDate) }}</span>\r\n\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\r\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\r\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faCircle\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"unread-dot\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('markAsRead')\"\r\n\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"markNotificationAsReadOnDotIcon(notification); $event.stopPropagation()\">\r\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div class=\"item-meta\"></div>\r\n\t\t\t\t\t\t\t\t\t@if (getNotificationContent(notification)) {\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-content-preview\">\r\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.EMAIL) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div [innerHTML]=\"notification.content | safe: 'html'\" class=\"html-preview line-clamp-3\"></div>\r\n\t\t\t\t\t\t\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"text-content\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ getNotificationContent(notification) }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\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-bell empty-icon\"></i>\r\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noNotifications') }}</h3>\r\n\t\t\t\t\t<p class=\"empty-message\">{{ t('noNotificationsDescription') }}</p>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t}\r\n\r\n\t\t<div class=\"flex justify-content-center p-2 border-top-1 surface-border\">\r\n\t\t\t<aril-button\r\n\t\t\t\t[label]=\"t('allShow')\"\r\n\t\t\t\ticon=\"EXTERNAL_LINK\"\r\n\t\t\t\tcolor=\"primary\"\r\n\t\t\t\tsize=\"md\"\r\n\t\t\t\t(clickEvent)=\"navigateToAllNotifications()\">\r\n\t\t\t</aril-button>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<p-confirmDialog></p-confirmDialog>\r\n</p-sidebar>\r\n", styles: [":host ::ng-deep .layout-notifications-sidebar .p-sidebar-content{padding:0;background:var(--surface-ground)}:host ::ng-deep .layout-notifications-sidebar .p-sidebar-header{background:var(--primary-color);color:var(--primary-color-text);padding:1rem 1.5rem}:host ::ng-deep .layout-notifications-sidebar .p-sidebar-header span{font-size:1.1rem;font-weight:600}.notifications-content{display:flex;flex-direction:column;height:100%;background:var(--surface-0)}.add-section{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--surface-border);background:var(--surface-0)}.notifications-list{flex:1;overflow:hidden}.notifications-items{padding:0}.notification-item{background:transparent;border-bottom:1px solid var(--surface-border);cursor:pointer;transition:background-color .2s ease;position:relative}.notification-item:hover{background:var(--surface-hover)}.notification-item:last-child{border-bottom:none}.notification-item.unread-item{background:var(--surface-50)}.notification-item.unread-item:hover{background:var(--surface-100)}.notification-item.unread-item .title-text{font-weight:500}.item-content{padding:1.125rem 1rem}.item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.625rem;gap:1rem}.item-title{display:flex;align-items:center;flex:1;min-width:0;gap:.4em}.item-title .notification-icon{width:1.75rem;height:1.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.item-title .notification-icon fa-icon{font-size:.875rem;transition:all .2s ease}.item-title .notification-icon.email-icon.unread{background-color:#3b82f6;color:#fff;box-shadow:0 1px 4px #00000026}.item-title .notification-icon.email-icon.unread fa-icon{color:#fff}.item-title .notification-icon.email-icon.read{background:var(--surface-200);color:var(--text-color-secondary)}.item-title .notification-icon.email-icon.read fa-icon{color:var(--text-color-secondary)}.item-title .notification-icon.sms-icon{background:linear-gradient(135deg,var(--green-500),var(--green-600));color:#fff;box-shadow:0 2px 8px #22c55e40}.item-title .notification-icon.sms-icon fa-icon{color:#fff}.item-title .title-text{font-weight:500;line-height:1.5;font-size:.975rem;margin:0}.notification-date{font-size:.8rem;color:var(--text-color-secondary);font-weight:500;white-space:nowrap;background:var(--surface-100);padding:.2rem .4rem;border-radius:.25rem}.item-content-preview{margin-top:.625rem;color:var(--text-color-secondary);padding-left:1.5rem;border-left:2px solid var(--surface-200)}.item-content-preview .text-content{font-size:.875rem;line-height:1.5;margin:0;font-style:italic}.item-content-preview .html-preview{font-size:.875rem;line-height:1.5;max-height:75px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;word-break:break-word;white-space:normal;font-style:italic}.empty-state{display:flex;align-items:center;justify-content:center;flex:1;padding:2rem}.empty-state .empty-content{text-align:center}.empty-state .empty-content .empty-icon{font-size:4rem;color:var(--text-color-secondary);opacity:.3;margin-bottom:1rem}.empty-state .empty-content .empty-title{font-size:1.25rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem}.empty-state .empty-content .empty-message{color:var(--text-color-secondary);margin:0}.unread-dot{color:#3b82f6;font-size:.625rem;cursor:pointer;transition:opacity .2s ease;opacity:.8}.unread-dot:hover{opacity:1}@media (max-width: 768px){.layout-notifications-sidebar ::ng-deep .p-sidebar{width:100%!important}}\n"] }]
190
+ }], ctorParameters: () => [{ type: i1.LayoutService }, { type: i2.NotificationsService }, { type: i3.TranslocoService }, { type: i4.Router }, { type: i5.KeycloakService }] });
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1zaWRlYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXNpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztB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Q0FDRyxJQUFJLFlBQ04sMkJBQTJCLFdBQzVCO3dCQUNSLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsUUFBUTtxQkFDUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBlZmZlY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IEJhZGdlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9iYWRnZSc7XHJcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xyXG5pbXBvcnQgeyBQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdwcmltZW5nL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IFNjcm9sbFBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zY3JvbGxwYW5lbCc7XHJcbmltcG9ydCB7IFNpZGViYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL3NpZGViYXInO1xyXG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IEtleWNsb2FrU2VydmljZSB9IGZyb20gJ2tleWNsb2FrLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ2FyaWwvdWkvYnV0dG9uJztcclxuaW1wb3J0IHsgcmVndWxhckljb25zLCBzb2xpZEljb25zIH0gZnJvbSAnYXJpbC91dGlsL2xpYic7XHJcbmltcG9ydCB7IFNhZmVQaXBlIH0gZnJvbSAnYXJpbC91dGlsL3BpcGVzJztcclxuXHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2aXR5VHlwZXNFbnVtLCBEZXRhaWxOb3RpZmljYXRpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvaW50ZXJmYWNlcy9lbnVtJztcclxuaW1wb3J0IHsgU21zRW1haWxBdWRpdFJlc3BvbnNlRFRPIH0gZnJvbSAnLi4vLi4vc2VydmljZS9pbnRlcmZhY2VzL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2Uvbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcHAtbm90aWZpY2F0aW9ucy1zaWRlYmFyJyxcclxuXHRpbXBvcnRzOiBbXHJcblx0XHRDb21tb25Nb2R1bGUsXHJcblx0XHRTaWRlYmFyTW9kdWxlLFxyXG5cdFx0U2Nyb2xsUGFuZWxNb2R1bGUsXHJcblx0XHRDb25maXJtRGlhbG9nTW9kdWxlLFxyXG5cdFx0UGFnaW5hdG9yTW9kdWxlLFxyXG5cdFx0QnV0dG9uQ29tcG9uZW50LFxyXG5cdFx0VHJhbnNsb2NvTW9kdWxlLFxyXG5cdFx0VG9vbHRpcE1vZHVsZSxcclxuXHRcdEJhZGdlTW9kdWxlLFxyXG5cdFx0Rm9udEF3ZXNvbWVNb2R1bGUsXHJcblx0XHRTYWZlUGlwZVxyXG5cdF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbnMtc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9ucy1zaWRlYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRub3RpZmljYXRpb25zID0gc2lnbmFsPFNtc0VtYWlsQXVkaXRSZXNwb25zZURUT1tdPihbXSk7XHJcblx0c2VsZWN0ZWROb3RpZmljYXRpb246IFNtc0VtYWlsQXVkaXRSZXNwb25zZURUTyB8IG51bGwgPSBudWxsO1xyXG5cclxuXHRBY3Rpdml0eVR5cGVzRW51bSA9IEFjdGl2aXR5VHlwZXNFbnVtO1xyXG5cdERldGFpbE5vdGlmaWNhdGlvblR5cGVFbnVtID0gRGV0YWlsTm90aWZpY2F0aW9uVHlwZUVudW07XHJcblxyXG5cdHJlZ3VsYXJJY29ucyA9IHJlZ3VsYXJJY29ucztcclxuXHRzb2xpZEljb25zID0gc29saWRJY29ucztcclxuXHJcblx0b25lTW9udGhBZ28gPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIDMwICogMjQgKiA2MCAqIDYwICogMTAwMCk7XHJcblxyXG5cdHByaXZhdGUgc3ViamVjdHMgPSB7XHJcblx0XHRtYXJrQXNSZWFkOiBuZXcgU3ViamVjdDxzdHJpbmc+KCksXHJcblx0XHRsb2FkTm90aWZpY2F0aW9uczogbmV3IFN1YmplY3Q8dm9pZD4oKVxyXG5cdH07XHJcblxyXG5cdG1hcmtBc1JlYWRTZXJ2aWNlID0gdG9TaWduYWwoXHJcblx0XHR0aGlzLnN1YmplY3RzLm1hcmtBc1JlYWQucGlwZShzd2l0Y2hNYXAoKGlkKSA9PiB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLm1hcmtBc1JlYWROb3RpZmljYXRpb24oaWQpKSlcclxuXHQpO1xyXG5cclxuXHRnZXQgZ2V0VXNlclBob25lcygpOiBzdHJpbmdbXSB7XHJcblx0XHRjb25zdCBwaG9uZXMgPSB0aGlzLmtleWNsb2FrLmdldEtleWNsb2FrSW5zdGFuY2UoKS5wcm9maWxlPy5hdHRyaWJ1dGVzPy5bJ3Bob25lJ107XHJcblx0XHRpZiAocGhvbmVzICYmIEFycmF5LmlzQXJyYXkocGhvbmVzKSkge1xyXG5cdFx0XHRyZXR1cm4gcGhvbmVzO1xyXG5cdFx0fSBlbHNlIGlmIChwaG9uZXMgJiYgdHlwZW9mIHBob25lcyA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0cmV0dXJuIFtwaG9uZXNdO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIFtdO1xyXG5cdH1cclxuXHJcblx0Z2V0IGdldFVzZXJNYWlsKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMua2V5Y2xvYWsuZ2V0S2V5Y2xvYWtJbnN0YW5jZSgpLnByb2ZpbGU/LmVtYWlsIGFzIHN0cmluZztcclxuXHR9XHJcblxyXG5cdGxvYWROb3RpZmljYXRpb25zU2VydmljZSA9IHRvU2lnbmFsKFxyXG5cdFx0dGhpcy5zdWJqZWN0cy5sb2FkTm90aWZpY2F0aW9ucy5waXBlKFxyXG5cdFx0XHRzd2l0Y2hNYXAoKCkgPT5cclxuXHRcdFx0XHR0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLmdldE5vdGlmaWNhdGlvbnMoe1xyXG5cdFx0XHRcdFx0cGFnZXI6IHtcclxuXHRcdFx0XHRcdFx0cGFnZVNpemU6IDEwLFxyXG5cdFx0XHRcdFx0XHRwYWdlTnVtYmVyOiAxXHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0c3RhcnREYXRlOiB0aGlzLm9uZU1vbnRoQWdvLmRhdGVUb0xvbmcoJ3RpbWUnKSB8fCAwLFxyXG5cdFx0XHRcdFx0ZW5kRGF0ZTogbmV3IERhdGUoKS5kYXRlVG9Mb25nKCd0aW1lJykgfHwgMCxcclxuXHRcdFx0XHRcdHJlYWQ6IGZhbHNlLFxyXG5cdFx0XHRcdFx0dG9MaXN0OiBbdGhpcy5nZXRVc2VyTWFpbCwgLi4udGhpcy5nZXRVc2VyUGhvbmVzXSxcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpXHJcblx0XHQpXHJcblx0KTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uc1NlcnZpY2U6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkga2V5Y2xvYWs6IEtleWNsb2FrU2VydmljZVxyXG5cdCkge1xyXG5cdFx0dGhpcy5pbml0aWFsaXplRWZmZWN0cygpO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmxvYWROb3RpZmljYXRpb25zKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGxvYWROb3RpZmljYXRpb25zKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zdWJqZWN0cy5sb2FkTm90aWZpY2F0aW9ucy5uZXh0KCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGluaXRpYWxpemVFZmZlY3RzKCk6IHZvaWQge1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0Y29uc3Qgc2VydmljZSA9IHRoaXMubG9hZE5vdGlmaWNhdGlvbnNTZXJ2aWNlKCk7XHJcblx0XHRcdFx0aWYgKHNlcnZpY2U/LnJlc3BvbnNlKSB7XHJcblx0XHRcdFx0XHR0aGlzLm5vdGlmaWNhdGlvbnMuc2V0KHNlcnZpY2UucmVzcG9uc2UucmVzdWx0KTtcclxuXHRcdFx0XHRcdC8vIFVwZGF0ZSB1bnJlYWQgY291bnQgaW4gbGF5b3V0U2VydmljZVxyXG5cdFx0XHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnNldFVucmVhZE5vdGlmaWNhdGlvbkNvdW50KHNlcnZpY2U/LnJlc3BvbnNlLnJlc3VsdEluZm8udG90YWxJdGVtIHx8IDApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XHJcblx0XHQpO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0Y29uc3Qgc2VydmljZSA9IHRoaXMubWFya0FzUmVhZFNlcnZpY2UoKTtcclxuXHRcdFx0aWYgKHNlcnZpY2U/LnJlc3BvbnNlKSB7XHJcblx0XHRcdFx0dGhpcy5sb2FkTm90aWZpY2F0aW9ucygpO1xyXG5cclxuXHRcdFx0XHRpZiAodGhpcy5zZWxlY3RlZE5vdGlmaWNhdGlvbj8uZGV0YWlsTm90aWZpY2F0aW9uVHlwZSA9PT0gRGV0YWlsTm90aWZpY2F0aW9uVHlwZUVudW0uVE9ET19JVEVNKSB7XHJcblx0XHRcdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYG1uZy90b2RvLXRhc2tzL2RldGFpbC8ke3RoaXMuc2VsZWN0ZWROb3RpZmljYXRpb24/LnJlZmVyZW5jZUlkfWBdKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Z2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm5vdGlmaWNhdGlvbnNTaWRlYmFyVmlzaWJsZTtcclxuXHR9XHJcblxyXG5cdHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XHJcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUubm90aWZpY2F0aW9uc1NpZGViYXJWaXNpYmxlID0gdmFsdWU7XHJcblx0fVxyXG5cclxuXHRtYXJrTm90aWZpY2F0aW9uQXNSZWFkKG5vdGlmaWNhdGlvbjogU21zRW1haWxBdWRpdFJlc3BvbnNlRFRPKTogdm9pZCB7XHJcblx0XHR0aGlzLnNlbGVjdGVkTm90aWZpY2F0aW9uID0gbm90aWZpY2F0aW9uO1xyXG5cdFx0dGhpcy5zdWJqZWN0cy5tYXJrQXNSZWFkLm5leHQobm90aWZpY2F0aW9uLmlkKTtcclxuXHRcdHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuXHRcdGlmIChub3RpZmljYXRpb24/LmRldGFpbE5vdGlmaWNhdGlvblR5cGUgPT09IERldGFpbE5vdGlmaWNhdGlvblR5cGVFbnVtLlRPRE9fSVRFTSkge1xyXG5cdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYG1uZy90b2RvLXRhc2tzL2RldGFpbC8ke25vdGlmaWNhdGlvbj8ucmVmZXJlbmNlSWR9YF0pO1xyXG5cdFx0fSBlbHNlIGlmIChub3RpZmljYXRpb24/LmRldGFpbE5vdGlmaWNhdGlvblR5cGUgPT09IERldGFpbE5vdGlmaWNhdGlvblR5cGVFbnVtLkJBVENIX0pPQikge1xyXG5cdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYG1uZy9idWxrLW9wZXJhdGlvbnMvJHtub3RpZmljYXRpb24/LnJlZmVyZW5jZUlkfWBdKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG1hcmtOb3RpZmljYXRpb25Bc1JlYWRPbkRvdEljb24obm90aWZpY2F0aW9uOiBTbXNFbWFpbEF1ZGl0UmVzcG9uc2VEVE8pOiB2b2lkIHtcclxuXHRcdGlmICghbm90aWZpY2F0aW9uLnJlYWQpIHtcclxuXHRcdFx0dGhpcy5zdWJqZWN0cy5tYXJrQXNSZWFkLm5leHQobm90aWZpY2F0aW9uLmlkKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHRyYWNrQnlOb3RpZmljYXRpb25JZChpbmRleDogbnVtYmVyLCBub3RpZmljYXRpb246IFNtc0VtYWlsQXVkaXRSZXNwb25zZURUTyk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gbm90aWZpY2F0aW9uLmlkO1xyXG5cdH1cclxuXHJcblx0Z2V0Tm90aWZpY2F0aW9uVGl0bGUobm90aWZpY2F0aW9uOiBTbXNFbWFpbEF1ZGl0UmVzcG9uc2VEVE8pOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIG5vdGlmaWNhdGlvbi50ZW1wbGF0ZVRpdGxlIHx8IG5vdGlmaWNhdGlvbi50ZW1wbGF0ZUNvZGUgfHwgJyc7XHJcblx0fVxyXG5cclxuXHRnZXROb3RpZmljYXRpb25Db250ZW50KG5vdGlmaWNhdGlvbjogU21zRW1haWxBdWRpdFJlc3BvbnNlRFRPKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IHRydW5jYXRlZCA9XHJcblx0XHRcdG5vdGlmaWNhdGlvbi5jb250ZW50Py5sZW5ndGghID4gMjAwID8gbm90aWZpY2F0aW9uLmNvbnRlbnQ/LnN1YnN0cmluZygwLCAyMDApICsgJy4uLicgOiBub3RpZmljYXRpb24uY29udGVudDtcclxuXHRcdHJldHVybiB0cnVuY2F0ZWQgfHwgJyc7XHJcblx0fVxyXG5cclxuXHRmb3JtYXROb3RpZmljYXRpb25EYXRlKHN0YXJ0RGF0ZTogbnVtYmVyIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcclxuXHRcdGlmICghc3RhcnREYXRlKSB7XHJcblx0XHRcdHJldHVybiAnJztcclxuXHRcdH1cclxuXHRcdGNvbnN0IGRhdGVTdHIgPSBzdGFydERhdGUudG9TdHJpbmcoKTtcclxuXHRcdGNvbnN0IHllYXIgPSBwYXJzZUludChkYXRlU3RyLnN1YnN0cmluZygwLCA0KSk7XHJcblx0XHRjb25zdCBtb250aCA9IHBhcnNlSW50KGRhdGVTdHIuc3Vic3RyaW5nKDQsIDYpKSAtIDE7XHJcblx0XHRjb25zdCBkYXkgPSBwYXJzZUludChkYXRlU3RyLnN1YnN0cmluZyg2LCA4KSk7XHJcblx0XHRjb25zdCBob3VyID0gcGFyc2VJbnQoZGF0ZVN0ci5zdWJzdHJpbmcoOCwgMTApKTtcclxuXHRcdGNvbnN0IG1pbnV0ZSA9IHBhcnNlSW50KGRhdGVTdHIuc3Vic3RyaW5nKDEwLCAxMikpO1xyXG5cdFx0Y29uc3Qgc2Vjb25kID0gcGFyc2VJbnQoZGF0ZVN0ci5zdWJzdHJpbmcoMTIsIDE0KSk7XHJcblxyXG5cdFx0Y29uc3Qgbm90aWZpY2F0aW9uRGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kKTtcclxuXHRcdGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcblx0XHRjb25zdCBkaWZmTXMgPSBub3cuZ2V0VGltZSgpIC0gbm90aWZpY2F0aW9uRGF0ZS5nZXRUaW1lKCk7XHJcblxyXG5cdFx0Y29uc3QgZGlmZk1pbnV0ZXMgPSBNYXRoLmZsb29yKGRpZmZNcyAvICgxMDAwICogNjApKTtcclxuXHRcdGNvbnN0IGRpZmZIb3VycyA9IE1hdGguZmxvb3IoZGlmZk1zIC8gKDEwMDAgKiA2MCAqIDYwKSk7XHJcblx0XHRjb25zdCBkaWZmRGF5cyA9IE1hdGguZmxvb3IoZGlmZk1zIC8gKDEwMDAgKiA2MCAqIDYwICogMjQpKTtcclxuXHRcdGNvbnN0IGRpZmZXZWVrcyA9IE1hdGguZmxvb3IoZGlmZkRheXMgLyA3KTtcclxuXHRcdGNvbnN0IGRpZmZNb250aHMgPSBNYXRoLmZsb29yKGRpZmZEYXlzIC8gMzApO1xyXG5cclxuXHRcdGlmIChkaWZmTWludXRlcyA8IDEpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ25vdGlmaWNhdGlvbnMudGltZS5qdXN0Tm93Jyk7XHJcblx0XHR9IGVsc2UgaWYgKGRpZmZNaW51dGVzIDwgNjApIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ25vdGlmaWNhdGlvbnMudGltZS5taW51dGVzQWdvJywgeyBjb3VudDogZGlmZk1pbnV0ZXMgfSk7XHJcblx0XHR9IGVsc2UgaWYgKGRpZmZIb3VycyA8IDI0KSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdub3RpZmljYXRpb25zLnRpbWUuaG91cnNBZ28nLCB7IGNvdW50OiBkaWZmSG91cnMgfSk7XHJcblx0XHR9IGVsc2UgaWYgKGRpZmZEYXlzIDwgNykge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbm90aWZpY2F0aW9ucy50aW1lLmRheXNBZ28nLCB7IGNvdW50OiBkaWZmRGF5cyB9KTtcclxuXHRcdH0gZWxzZSBpZiAoZGlmZldlZWtzIDwgNCkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbm90aWZpY2F0aW9ucy50aW1lLndlZWtzQWdvJywgeyBjb3VudDogZGlmZldlZWtzIH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ25vdGlmaWNhdGlvbnMudGltZS5tb250aHNBZ28nLCB7IGNvdW50OiBkaWZmTW9udGhzIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmF2aWdhdGVUb0FsbE5vdGlmaWNhdGlvbnMoKTogdm9pZCB7XHJcblx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ21uZy9jb250cm9sLW1hbmFnZW1lbnQvc21zLWVtYWlsLWF1ZGl0J10pO1xyXG5cdFx0dGhpcy52aXNpYmxlID0gZmFsc2U7XHJcblx0fVxyXG59XHJcbiIsIjxwLXNpZGViYXJcclxuXHRbKHZpc2libGUpXT1cInZpc2libGVcIlxyXG5cdHBvc2l0aW9uPVwicmlnaHRcIlxyXG5cdFt0cmFuc2l0aW9uT3B0aW9uc109XCInLjNzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJ1wiXHJcblx0c3R5bGVDbGFzcz1cImxheW91dC1ub3RpZmljYXRpb25zLXNpZGViYXIgdy1mdWxsIHNtOnctMzByZW1cIlxyXG5cdCp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogJ25vdGlmaWNhdGlvbnMnXCI+XHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctZnVsbFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuXHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWJlbGwgdGV4dC1wcmltYXJ5IHRleHQteGxcIj48L2k+XHJcblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZ1wiPnt7IHQoJ3RpdGxlJykgfX08L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0PGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtY29udGVudFwiPlxyXG5cdFx0QGlmIChub3RpZmljYXRpb25zKCkubGVuZ3RoID4gMCkge1xyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9ucy1saXN0XCI+XHJcblx0XHRcdFx0PHAtc2Nyb2xsUGFuZWwgW3N0eWxlXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtaXRlbXNcIj5cclxuXHRcdFx0XHRcdFx0QGZvciAobm90aWZpY2F0aW9uIG9mIG5vdGlmaWNhdGlvbnMoKTsgdHJhY2sgdHJhY2tCeU5vdGlmaWNhdGlvbklkKCRpbmRleCwgbm90aWZpY2F0aW9uKSkge1xyXG5cdFx0XHRcdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibm90aWZpY2F0aW9uLWl0ZW1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0W2NsYXNzLnVucmVhZC1pdGVtXT1cIiFub3RpZmljYXRpb24ucmVhZFwiXHJcblx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdChcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRub3RpZmljYXRpb24/LmRldGFpbE5vdGlmaWNhdGlvblR5cGUgPT09IERldGFpbE5vdGlmaWNhdGlvblR5cGVFbnVtLlRPRE9fSVRFTSB8fFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vdGlmaWNhdGlvbj8uZGV0YWlsTm90aWZpY2F0aW9uVHlwZSA9PT0gRGV0YWlsTm90aWZpY2F0aW9uVHlwZUVudW0uQkFUQ0hfSk9CXHJcblx0XHRcdFx0XHRcdFx0XHRcdCkgP1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdG1hcmtOb3RpZmljYXRpb25Bc1JlYWQobm90aWZpY2F0aW9uKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ6XHRudWxsXHJcblx0XHRcdFx0XHRcdFx0XHRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpdGVtLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIml0ZW0taGVhZGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIml0ZW0tdGl0bGVcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdEBpZiAobm90aWZpY2F0aW9uLnR5cGUgPT09IEFjdGl2aXR5VHlwZXNFbnVtLlNNUykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWljb24gc21zLWljb25cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZmEtaWNvbiBbaWNvbl09XCJyZWd1bGFySWNvbnMuZmFNZXNzYWdlXCIgLz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0QGlmICghbm90aWZpY2F0aW9uLnJlYWQpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWljb24gZW1haWwtaWNvbiB1bnJlYWRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxmYS1pY29uIFtpY29uXT1cInJlZ3VsYXJJY29ucy5mYUVudmVsb3BlXCIgLz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pY29uIGVtYWlsLWljb24gcmVhZFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGZhLWljb24gW2ljb25dPVwicmVndWxhckljb25zLmZhRW52ZWxvcGVPcGVuXCIgLz5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJ0aXRsZS10ZXh0IG1sLTJcIj57eyBnZXROb3RpZmljYXRpb25UaXRsZShub3RpZmljYXRpb24pIH19PC9wPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9uLWRhdGVcIj57eyBmb3JtYXROb3RpZmljYXRpb25EYXRlKG5vdGlmaWNhdGlvbi5zZW5kaW5nRGF0ZSkgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0QGlmICghbm90aWZpY2F0aW9uLnJlYWQpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxmYS1pY29uXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtpY29uXT1cInNvbGlkSWNvbnMuZmFDaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInVucmVhZC1kb3RcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwidCgnbWFya0FzUmVhZCcpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJtYXJrTm90aWZpY2F0aW9uQXNSZWFkT25Eb3RJY29uKG5vdGlmaWNhdGlvbik7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9mYS1pY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpdGVtLW1ldGFcIj48L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmIChnZXROb3RpZmljYXRpb25Db250ZW50KG5vdGlmaWNhdGlvbikpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaXRlbS1jb250ZW50LXByZXZpZXdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdEBpZiAobm90aWZpY2F0aW9uLnR5cGUgPT09IEFjdGl2aXR5VHlwZXNFbnVtLkVNQUlMKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgW2lubmVySFRNTF09XCJub3RpZmljYXRpb24uY29udGVudCB8IHNhZmU6ICdodG1sJ1wiIGNsYXNzPVwiaHRtbC1wcmV2aWV3IGxpbmUtY2xhbXAtM1wiPjwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwidGV4dC1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgZ2V0Tm90aWZpY2F0aW9uQ29udGVudChub3RpZmljYXRpb24pIH19XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvcD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvcC1zY3JvbGxQYW5lbD5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImVtcHR5LWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktYmVsbCBlbXB0eS1pY29uXCI+PC9pPlxyXG5cdFx0XHRcdFx0PGgzIGNsYXNzPVwiZW1wdHktdGl0bGVcIj57eyB0KCdub05vdGlmaWNhdGlvbnMnKSB9fTwvaDM+XHJcblx0XHRcdFx0XHQ8cCBjbGFzcz1cImVtcHR5LW1lc3NhZ2VcIj57eyB0KCdub05vdGlmaWNhdGlvbnNEZXNjcmlwdGlvbicpIH19PC9wPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHJcblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHAtMiBib3JkZXItdG9wLTEgc3VyZmFjZS1ib3JkZXJcIj5cclxuXHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0W2xhYmVsXT1cInQoJ2FsbFNob3cnKVwiXHJcblx0XHRcdFx0aWNvbj1cIkVYVEVSTkFMX0xJTktcIlxyXG5cdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0c2l6ZT1cIm1kXCJcclxuXHRcdFx0XHQoY2xpY2tFdmVudCk9XCJuYXZpZ2F0ZVRvQWxsTm90aWZpY2F0aW9ucygpXCI+XHJcblx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PHAtY29uZmlybURpYWxvZz48L3AtY29uZmlybURpYWxvZz5cclxuPC9wLXNpZGViYXI+XHJcbiJdfQ==
@@ -0,0 +1,122 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, effect, signal } from '@angular/core';
3
+ import { toSignal } from '@angular/core/rxjs-interop';
4
+ import { AvatarModule } from 'primeng/avatar';
5
+ import { ButtonModule } from 'primeng/button';
6
+ import { ChipModule } from 'primeng/chip';
7
+ import { DialogService } from 'primeng/dynamicdialog';
8
+ import { SidebarModule } from 'primeng/sidebar';
9
+ import { SkeletonModule } from 'primeng/skeleton';
10
+ import { TagModule } from 'primeng/tag';
11
+ import { TranslocoModule } from '@ngneat/transloco';
12
+ import { Subject, switchMap } from 'rxjs';
13
+ import { ButtonComponent } from 'aril/ui/button';
14
+ import { ChangePasswordModalComponent } from './modals/change-password-modal/change-password-modal.component';
15
+ import { EditProfileModalComponent } from './modals/edit-profile-modal/edit-profile-modal.component';
16
+ import * as i0 from "@angular/core";
17
+ import * as i1 from "../../service/app.layout.service";
18
+ import * as i2 from "keycloak-angular";
19
+ import * as i3 from "./profile.service";
20
+ import * as i4 from "primeng/dynamicdialog";
21
+ import * as i5 from "@ngneat/transloco";
22
+ import * as i6 from "primeng/sidebar";
23
+ import * as i7 from "primeng/api";
24
+ export class AppProfileSidebarComponent {
25
+ constructor(layoutService, keycloak, profileService, dialogService, translocoService) {
26
+ this.layoutService = layoutService;
27
+ this.keycloak = keycloak;
28
+ this.profileService = profileService;
29
+ this.dialogService = dialogService;
30
+ this.translocoService = translocoService;
31
+ this.userProfile = signal(null);
32
+ this.subjects = {
33
+ getUser: new Subject()
34
+ };
35
+ this.getUserService = toSignal(this.subjects.getUser.pipe(switchMap((data) => this.profileService.getUser(data))));
36
+ this.username = this.keycloak.getUsername();
37
+ this.initializeEffects();
38
+ }
39
+ ngOnInit() {
40
+ this.loadUserProfile();
41
+ }
42
+ initializeEffects() {
43
+ effect(() => {
44
+ const service = this.getUserService();
45
+ if (service?.response) {
46
+ this.userProfile.set(service.response);
47
+ }
48
+ }, { allowSignalWrites: true });
49
+ }
50
+ loadUserProfile() {
51
+ const userId = this.keycloak.getKeycloakInstance().idTokenParsed?.sub;
52
+ if (userId) {
53
+ this.subjects.getUser.next({ id: userId });
54
+ }
55
+ }
56
+ get visible() {
57
+ return this.layoutService.state.profileSidebarVisible;
58
+ }
59
+ set visible(_val) {
60
+ this.layoutService.state.profileSidebarVisible = _val;
61
+ if (_val && !this.userProfile()) {
62
+ this.loadUserProfile();
63
+ }
64
+ }
65
+ logout() {
66
+ this.keycloak.logout();
67
+ }
68
+ editProfile() {
69
+ if (!this.userProfile())
70
+ return;
71
+ const ref = this.dialogService.open(EditProfileModalComponent, {
72
+ header: this.translocoService.translate('profileSidebar.editProfile'),
73
+ width: '40%',
74
+ height: 'auto',
75
+ modal: true,
76
+ maximizable: false,
77
+ closable: true,
78
+ data: {
79
+ userProfile: this.userProfile()
80
+ }
81
+ });
82
+ ref.onClose.subscribe((result) => {
83
+ if (result?.status === 'success') {
84
+ this.loadUserProfile();
85
+ }
86
+ });
87
+ }
88
+ changePassword() {
89
+ const userId = this.keycloak.getKeycloakInstance().idTokenParsed?.sub;
90
+ if (!userId)
91
+ return;
92
+ const ref = this.dialogService.open(ChangePasswordModalComponent, {
93
+ header: this.translocoService.translate('profileSidebar.changePassword'),
94
+ width: '500px',
95
+ height: 'auto',
96
+ modal: true,
97
+ maximizable: false,
98
+ closable: true,
99
+ data: {
100
+ userId: userId
101
+ }
102
+ });
103
+ ref.onClose.subscribe();
104
+ }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppProfileSidebarComponent, deps: [{ token: i1.LayoutService }, { token: i2.KeycloakService }, { token: i3.ProfileService }, { token: i4.DialogService }, { token: i5.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppProfileSidebarComponent, isStandalone: true, selector: "app-profilemenu", providers: [DialogService], 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-profile-sidebar w-full sm:w-30rem\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center gap-2\" *transloco=\"let t; read: 'profileSidebar'\">\r\n\t\t\t<span class=\"font-bold\">{{ t('personalInfo') }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t@if (userProfile()) {\r\n\t\t<div class=\"profile-content\" *transloco=\"let t; read: 'profileSidebar'\">\r\n\t\t\t<!-- Personal Information -->\r\n\t\t\t<div class=\"info-section\">\r\n\t\t\t\t<div class=\"info-items\">\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-user info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('fullName') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.firstName }} {{ userProfile()?.lastName }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-id-card info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('tcNumber') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.tckn || '' }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-envelope info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('email') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.email || '' }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-phone info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('phone') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.phone || '' }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-at info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('username') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.userName }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-check-circle info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('accountStatus') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value status\" [class.active]=\"userProfile()?.enabled\">\r\n\t\t\t\t\t\t\t\t{{ userProfile()?.enabled ? t('active') : t('inactive') }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-user info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('systemUser') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value status\" [class.active]=\"userProfile()?.systemUser\">\r\n\t\t\t\t\t\t\t\t{{ userProfile()?.systemUser ? t('yes') : t('no') }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-building info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('clientSystemUser') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.clientOfSystemUser }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t}\r\n\r\n\t<!-- Fixed Action Buttons -->\r\n\t@if (userProfile()) {\r\n\t\t<div class=\"action-buttons-container grid p-fluid\" *transloco=\"let t; read: 'profileSidebar'\">\r\n\t\t\t<div class=\"col-12 flex justify-content-between align-items-center\">\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('editProfile')\"\r\n\t\t\t\t\ticon=\"USER_EDIT\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\tclass=\"col-6\"\r\n\t\t\t\t\t(clickEvent)=\"editProfile()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('changePassword')\"\r\n\t\t\t\t\ticon=\"KEY\"\r\n\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\tclass=\"col-6\"\r\n\t\t\t\t\t(clickEvent)=\"changePassword()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t</div>\r\n\t\t\t<aril-button\r\n\t\t\t\t[label]=\"t('logout')\"\r\n\t\t\t\ticon=\"SIGN_OUT\"\r\n\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t[outlined]=\"false\"\r\n\t\t\t\tsize=\"sm\"\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t(clickEvent)=\"logout()\">\r\n\t\t\t</aril-button>\r\n\t\t</div>\r\n\t}\r\n</p-sidebar>\r\n", styles: [":host .layout-profile-sidebar .p-sidebar-content{padding:0;background:var(--surface-0, #ffffff);color:var(--text-color, #333);height:100vh;overflow-y:auto;position:relative}:host .profile-content{padding:1rem .75rem 12rem;display:flex;flex-direction:column;gap:1.25rem}:host .action-buttons-container{width:100%;position:absolute;bottom:0;left:0;right:0;background:var(--surface-0, #ffffff);border-top:1px solid var(--surface-border, #e2e8f0);padding:1rem .75rem;z-index:300}:host .info-section .section-title{font-size:1.25rem;font-weight:500;color:var(--text-color-secondary, #64748b);margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--surface-border, #e2e8f0);display:flex;align-items:center;gap:.5rem;text-transform:uppercase;letter-spacing:.5px}:host .info-section .section-title i{color:var(--text-color-secondary, #64748b);font-size:1rem}:host .info-section .info-items{display:flex;flex-direction:column;gap:0}:host .info-section .info-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--surface-border, #f1f5f9)}:host .info-section .info-item:last-child{border-bottom:none}:host .info-section .info-item .info-icon{color:var(--text-color-secondary, #64748b);font-size:1rem;flex-shrink:0;width:1.25rem;text-align:center}:host .info-section .info-item .info-content{flex:1;display:flex;flex-direction:column;gap:.25rem}:host .info-section .info-item .info-content .info-label{font-size:.95rem;color:var(--text-color-secondary, #64748b);font-weight:500;line-height:1}:host .info-section .info-item .info-content .info-value{font-size:.95rem;color:var(--text-color, #1e293b);font-weight:400;line-height:1.3}:host .info-section .info-item .info-content .info-value.status{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:16px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;width:fit-content;background:var(--red-100, #fee2e2);color:var(--red-700, #b91c1c);border:1px solid var(--red-200, #fecaca)}:host .info-section .info-item .info-content .info-value.status.active{background:var(--green-100, #dcfce7);color:var(--green-700, #15803d);border:1px solid var(--green-200, #bbf7d0)}@media (max-width: 768px){:host .profile-content{padding:.875rem .65rem 11rem;gap:1rem}:host .action-buttons-container{padding:.875rem .65rem}:host .action-buttons-container .action-buttons-vertical{gap:.65rem}:host .action-buttons-container .action-buttons-horizontal{gap:.4rem}:host .info-item{padding:.65rem 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: TagModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: SkeletonModule }, { kind: "ngmodule", type: AvatarModule }, { kind: "ngmodule", type: ChipModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i5.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "rounded", "text", "outlined", "badge", "size", "icon", "iconPos", "color"], outputs: ["clickEvent"] }] }); }
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppProfileSidebarComponent, decorators: [{
109
+ type: Component,
110
+ args: [{ standalone: true, selector: 'app-profilemenu', imports: [
111
+ CommonModule,
112
+ SidebarModule,
113
+ TagModule,
114
+ ButtonModule,
115
+ SkeletonModule,
116
+ AvatarModule,
117
+ ChipModule,
118
+ TranslocoModule,
119
+ ButtonComponent
120
+ ], providers: [DialogService], 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-profile-sidebar w-full sm:w-30rem\">\r\n\t<ng-template pTemplate=\"header\">\r\n\t\t<div class=\"flex align-items-center gap-2\" *transloco=\"let t; read: 'profileSidebar'\">\r\n\t\t\t<span class=\"font-bold\">{{ t('personalInfo') }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n\r\n\t@if (userProfile()) {\r\n\t\t<div class=\"profile-content\" *transloco=\"let t; read: 'profileSidebar'\">\r\n\t\t\t<!-- Personal Information -->\r\n\t\t\t<div class=\"info-section\">\r\n\t\t\t\t<div class=\"info-items\">\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-user info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('fullName') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.firstName }} {{ userProfile()?.lastName }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-id-card info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('tcNumber') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.tckn || '' }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-envelope info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('email') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.email || '' }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-phone info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('phone') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.phone || '' }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-at info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('username') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.userName }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-check-circle info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('accountStatus') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value status\" [class.active]=\"userProfile()?.enabled\">\r\n\t\t\t\t\t\t\t\t{{ userProfile()?.enabled ? t('active') : t('inactive') }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-user info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('systemUser') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value status\" [class.active]=\"userProfile()?.systemUser\">\r\n\t\t\t\t\t\t\t\t{{ userProfile()?.systemUser ? t('yes') : t('no') }}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div class=\"info-item\">\r\n\t\t\t\t\t\t<i class=\"pi pi-building info-icon\"></i>\r\n\t\t\t\t\t\t<div class=\"info-content\">\r\n\t\t\t\t\t\t\t<span class=\"info-label\">{{ t('clientSystemUser') }}</span>\r\n\t\t\t\t\t\t\t<span class=\"info-value\">{{ userProfile()?.clientOfSystemUser }}</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t}\r\n\r\n\t<!-- Fixed Action Buttons -->\r\n\t@if (userProfile()) {\r\n\t\t<div class=\"action-buttons-container grid p-fluid\" *transloco=\"let t; read: 'profileSidebar'\">\r\n\t\t\t<div class=\"col-12 flex justify-content-between align-items-center\">\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('editProfile')\"\r\n\t\t\t\t\ticon=\"USER_EDIT\"\r\n\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\tclass=\"col-6\"\r\n\t\t\t\t\t(clickEvent)=\"editProfile()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t\t<aril-button\r\n\t\t\t\t\t[label]=\"t('changePassword')\"\r\n\t\t\t\t\ticon=\"KEY\"\r\n\t\t\t\t\tcolor=\"secondary\"\r\n\t\t\t\t\t[outlined]=\"true\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\tclass=\"col-6\"\r\n\t\t\t\t\t(clickEvent)=\"changePassword()\">\r\n\t\t\t\t</aril-button>\r\n\t\t\t</div>\r\n\t\t\t<aril-button\r\n\t\t\t\t[label]=\"t('logout')\"\r\n\t\t\t\ticon=\"SIGN_OUT\"\r\n\t\t\t\tcolor=\"danger\"\r\n\t\t\t\t[outlined]=\"false\"\r\n\t\t\t\tsize=\"sm\"\r\n\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t(clickEvent)=\"logout()\">\r\n\t\t\t</aril-button>\r\n\t\t</div>\r\n\t}\r\n</p-sidebar>\r\n", styles: [":host .layout-profile-sidebar .p-sidebar-content{padding:0;background:var(--surface-0, #ffffff);color:var(--text-color, #333);height:100vh;overflow-y:auto;position:relative}:host .profile-content{padding:1rem .75rem 12rem;display:flex;flex-direction:column;gap:1.25rem}:host .action-buttons-container{width:100%;position:absolute;bottom:0;left:0;right:0;background:var(--surface-0, #ffffff);border-top:1px solid var(--surface-border, #e2e8f0);padding:1rem .75rem;z-index:300}:host .info-section .section-title{font-size:1.25rem;font-weight:500;color:var(--text-color-secondary, #64748b);margin:0 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--surface-border, #e2e8f0);display:flex;align-items:center;gap:.5rem;text-transform:uppercase;letter-spacing:.5px}:host .info-section .section-title i{color:var(--text-color-secondary, #64748b);font-size:1rem}:host .info-section .info-items{display:flex;flex-direction:column;gap:0}:host .info-section .info-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--surface-border, #f1f5f9)}:host .info-section .info-item:last-child{border-bottom:none}:host .info-section .info-item .info-icon{color:var(--text-color-secondary, #64748b);font-size:1rem;flex-shrink:0;width:1.25rem;text-align:center}:host .info-section .info-item .info-content{flex:1;display:flex;flex-direction:column;gap:.25rem}:host .info-section .info-item .info-content .info-label{font-size:.95rem;color:var(--text-color-secondary, #64748b);font-weight:500;line-height:1}:host .info-section .info-item .info-content .info-value{font-size:.95rem;color:var(--text-color, #1e293b);font-weight:400;line-height:1.3}:host .info-section .info-item .info-content .info-value.status{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:16px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;width:fit-content;background:var(--red-100, #fee2e2);color:var(--red-700, #b91c1c);border:1px solid var(--red-200, #fecaca)}:host .info-section .info-item .info-content .info-value.status.active{background:var(--green-100, #dcfce7);color:var(--green-700, #15803d);border:1px solid var(--green-200, #bbf7d0)}@media (max-width: 768px){:host .profile-content{padding:.875rem .65rem 11rem;gap:1rem}:host .action-buttons-container{padding:.875rem .65rem}:host .action-buttons-container .action-buttons-vertical{gap:.65rem}:host .action-buttons-container .action-buttons-horizontal{gap:.4rem}:host .info-item{padding:.65rem 0}}\n"] }]
121
+ }], ctorParameters: () => [{ type: i1.LayoutService }, { type: i2.KeycloakService }, { type: i3.ProfileService }, { type: i4.DialogService }, { type: i5.TranslocoService }] });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnByb2ZpbGVzaWRlYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdGhlbWUvbGF5b3V0L2FwcC9wcm9maWxlU2lkZWJhci9hcHAucHJvZmlsZXNpZGViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL3Byb2ZpbGVTaWRlYmFyL2FwcC5wcm9maWxlc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRCxPQUFPLEVBQUUs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UztpQ0FDRyxJQUFJLFlBQ04saUJBQWlCLFdBQ2xCO3dCQUNSLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixTQUFTO3dCQUNULFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixlQUFlO3FCQUNmLGFBR1UsQ0FBQyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgZWZmZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5pbXBvcnQgeyBBdmF0YXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F2YXRhcic7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgQ2hpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2hpcCc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBTaWRlYmFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zaWRlYmFyJztcclxuaW1wb3J0IHsgU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3NrZWxldG9uJztcclxuaW1wb3J0IHsgVGFnTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWcnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBLZXljbG9ha1NlcnZpY2UgfSBmcm9tICdrZXljbG9hay1hbmd1bGFyJztcclxuaW1wb3J0IHsgU3ViamVjdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcblxyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hcHAubGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaGFuZ2VQYXNzd29yZE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbHMvY2hhbmdlLXBhc3N3b3JkLW1vZGFsL2NoYW5nZS1wYXNzd29yZC1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFZGl0UHJvZmlsZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbHMvZWRpdC1wcm9maWxlLW1vZGFsL2VkaXQtcHJvZmlsZS1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHZXRVc2VyUmVxdWVzdERUTywgUHJvZmlsZVNlcnZpY2UsIFVzZXJSZXNwb25zZURUTyB9IGZyb20gJy4vcHJvZmlsZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcHAtcHJvZmlsZW1lbnUnLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdENvbW1vbk1vZHVsZSxcclxuXHRcdFNpZGViYXJNb2R1bGUsXHJcblx0XHRUYWdNb2R1bGUsXHJcblx0XHRCdXR0b25Nb2R1bGUsXHJcblx0XHRTa2VsZXRvbk1vZHVsZSxcclxuXHRcdEF2YXRhck1vZHVsZSxcclxuXHRcdENoaXBNb2R1bGUsXHJcblx0XHRUcmFuc2xvY29Nb2R1bGUsXHJcblx0XHRCdXR0b25Db21wb25lbnRcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9hcHAucHJvZmlsZXNpZGViYXIuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2FwcC5wcm9maWxlc2lkZWJhci5jb21wb25lbnQuc2NzcyddLFxyXG5cdHByb3ZpZGVyczogW0RpYWxvZ1NlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBQcm9maWxlU2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0dXNlcm5hbWU6IHN0cmluZztcclxuXHR1c2VyUHJvZmlsZSA9IHNpZ25hbDxVc2VyUmVzcG9uc2VEVE8gfCBudWxsPihudWxsKTtcclxuXHJcblx0cHJpdmF0ZSBzdWJqZWN0cyA9IHtcclxuXHRcdGdldFVzZXI6IG5ldyBTdWJqZWN0PEdldFVzZXJSZXF1ZXN0RFRPPigpXHJcblx0fTtcclxuXHJcblx0Z2V0VXNlclNlcnZpY2UgPSB0b1NpZ25hbCh0aGlzLnN1YmplY3RzLmdldFVzZXIucGlwZShzd2l0Y2hNYXAoKGRhdGEpID0+IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0VXNlcihkYXRhKSkpKTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkga2V5Y2xvYWs6IEtleWNsb2FrU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLnVzZXJuYW1lID0gdGhpcy5rZXljbG9hay5nZXRVc2VybmFtZSgpO1xyXG5cdFx0dGhpcy5pbml0aWFsaXplRWZmZWN0cygpO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmxvYWRVc2VyUHJvZmlsZSgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpbml0aWFsaXplRWZmZWN0cygpOiB2b2lkIHtcclxuXHRcdGVmZmVjdChcclxuXHRcdFx0KCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHNlcnZpY2UgPSB0aGlzLmdldFVzZXJTZXJ2aWNlKCk7XHJcblx0XHRcdFx0aWYgKHNlcnZpY2U/LnJlc3BvbnNlKSB7XHJcblx0XHRcdFx0XHR0aGlzLnVzZXJQcm9maWxlLnNldChzZXJ2aWNlLnJlc3BvbnNlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgbG9hZFVzZXJQcm9maWxlKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgdXNlcklkID0gdGhpcy5rZXljbG9hay5nZXRLZXljbG9ha0luc3RhbmNlKCkuaWRUb2tlblBhcnNlZD8uc3ViO1xyXG5cdFx0aWYgKHVzZXJJZCkge1xyXG5cdFx0XHR0aGlzLnN1YmplY3RzLmdldFVzZXIubmV4dCh7IGlkOiB1c2VySWQgfSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUucHJvZmlsZVNpZGViYXJWaXNpYmxlO1xyXG5cdH1cclxuXHJcblx0c2V0IHZpc2libGUoX3ZhbDogYm9vbGVhbikge1xyXG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnByb2ZpbGVTaWRlYmFyVmlzaWJsZSA9IF92YWw7XHJcblx0XHRpZiAoX3ZhbCAmJiAhdGhpcy51c2VyUHJvZmlsZSgpKSB7XHJcblx0XHRcdHRoaXMubG9hZFVzZXJQcm9maWxlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRsb2dvdXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmtleWNsb2FrLmxvZ291dCgpO1xyXG5cdH1cclxuXHJcblx0ZWRpdFByb2ZpbGUoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMudXNlclByb2ZpbGUoKSkgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEVkaXRQcm9maWxlTW9kYWxDb21wb25lbnQsIHtcclxuXHRcdFx0aGVhZGVyOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdwcm9maWxlU2lkZWJhci5lZGl0UHJvZmlsZScpLFxyXG5cdFx0XHR3aWR0aDogJzQwJScsXHJcblx0XHRcdGhlaWdodDogJ2F1dG8nLFxyXG5cdFx0XHRtb2RhbDogdHJ1ZSxcclxuXHRcdFx0bWF4aW1pemFibGU6IGZhbHNlLFxyXG5cdFx0XHRjbG9zYWJsZTogdHJ1ZSxcclxuXHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdHVzZXJQcm9maWxlOiB0aGlzLnVzZXJQcm9maWxlKClcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0cmVmLm9uQ2xvc2Uuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuXHRcdFx0aWYgKHJlc3VsdD8uc3RhdHVzID09PSAnc3VjY2VzcycpIHtcclxuXHRcdFx0XHR0aGlzLmxvYWRVc2VyUHJvZmlsZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGNoYW5nZVBhc3N3b3JkKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgdXNlcklkID0gdGhpcy5rZXljbG9hay5nZXRLZXljbG9ha0luc3RhbmNlKCkuaWRUb2tlblBhcnNlZD8uc3ViO1xyXG5cdFx0aWYgKCF1c2VySWQpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCByZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihDaGFuZ2VQYXNzd29yZE1vZGFsQ29tcG9uZW50LCB7XHJcblx0XHRcdGhlYWRlcjogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgncHJvZmlsZVNpZGViYXIuY2hhbmdlUGFzc3dvcmQnKSxcclxuXHRcdFx0d2lkdGg6ICc1MDBweCcsXHJcblx0XHRcdGhlaWdodDogJ2F1dG8nLFxyXG5cdFx0XHRtb2RhbDogdHJ1ZSxcclxuXHRcdFx0bWF4aW1pemFibGU6IGZhbHNlLFxyXG5cdFx0XHRjbG9zYWJsZTogdHJ1ZSxcclxuXHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdHVzZXJJZDogdXNlcklkXHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdHJlZi5vbkNsb3NlLnN1YnNjcmliZSgpO1xyXG5cdH1cclxufVxyXG4iLCI8cC1zaWRlYmFyXHJcblx0Wyh2aXNpYmxlKV09XCJ2aXNpYmxlXCJcclxuXHRwb3NpdGlvbj1cInJpZ2h0XCJcclxuXHRbdHJhbnNpdGlvbk9wdGlvbnNdPVwiJy4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSdcIlxyXG5cdHN0eWxlQ2xhc3M9XCJsYXlvdXQtcHJvZmlsZS1zaWRlYmFyIHctZnVsbCBzbTp3LTMwcmVtXCI+XHJcblx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCIgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiAncHJvZmlsZVNpZGViYXInXCI+XHJcblx0XHRcdDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgdCgncGVyc29uYWxJbmZvJykgfX08L3NwYW4+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHRAaWYgKHVzZXJQcm9maWxlKCkpIHtcclxuXHRcdDxkaXYgY2xhc3M9XCJwcm9maWxlLWNvbnRlbnRcIiAqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6ICdwcm9maWxlU2lkZWJhcidcIj5cclxuXHRcdFx0PCEtLSBQZXJzb25hbCBJbmZvcm1hdGlvbiAtLT5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImluZm8tc2VjdGlvblwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJpbmZvLWl0ZW1zXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5mby1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktdXNlciBpbmZvLWljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbmZvLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImluZm8tbGFiZWxcIj57eyB0KCdmdWxsTmFtZScpIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiaW5mby12YWx1ZVwiPnt7IHVzZXJQcm9maWxlKCk/LmZpcnN0TmFtZSB9fSB7eyB1c2VyUHJvZmlsZSgpPy5sYXN0TmFtZSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5mby1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktaWQtY2FyZCBpbmZvLWljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbmZvLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImluZm8tbGFiZWxcIj57eyB0KCd0Y051bWJlcicpIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiaW5mby12YWx1ZVwiPnt7IHVzZXJQcm9maWxlKCk/LnRja24gfHwgJycgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImluZm8taXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWVudmVsb3BlIGluZm8taWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImluZm8tY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiaW5mby1sYWJlbFwiPnt7IHQoJ2VtYWlsJykgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJpbmZvLXZhbHVlXCI+e3sgdXNlclByb2ZpbGUoKT8uZW1haWwgfHwgJycgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImluZm8taXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXBob25lIGluZm8taWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImluZm8tY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiaW5mby1sYWJlbFwiPnt7IHQoJ3Bob25lJykgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJpbmZvLXZhbHVlXCI+e3sgdXNlclByb2ZpbGUoKT8ucGhvbmUgfHwgJycgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImluZm8taXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWF0IGluZm8taWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImluZm8tY29udGVudFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiaW5mby1sYWJlbFwiPnt7IHQoJ3VzZXJuYW1lJykgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJpbmZvLXZhbHVlXCI+e3sgdXNlclByb2ZpbGUoKT8udXNlck5hbWUgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImluZm8taXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLWNoZWNrLWNpcmNsZSBpbmZvLWljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbmZvLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImluZm8tbGFiZWxcIj57eyB0KCdhY2NvdW50U3RhdHVzJykgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJpbmZvLXZhbHVlIHN0YXR1c1wiIFtjbGFzcy5hY3RpdmVdPVwidXNlclByb2ZpbGUoKT8uZW5hYmxlZFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgdXNlclByb2ZpbGUoKT8uZW5hYmxlZCA/IHQoJ2FjdGl2ZScpIDogdCgnaW5hY3RpdmUnKSB9fVxyXG5cdFx0XHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5mby1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktdXNlciBpbmZvLWljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJpbmZvLWNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImluZm8tbGFiZWxcIj57eyB0KCdzeXN0ZW1Vc2VyJykgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJpbmZvLXZhbHVlIHN0YXR1c1wiIFtjbGFzcy5hY3RpdmVdPVwidXNlclByb2ZpbGUoKT8uc3lzdGVtVXNlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgdXNlclByb2ZpbGUoKT8uc3lzdGVtVXNlciA/IHQoJ3llcycpIDogdCgnbm8nKSB9fVxyXG5cdFx0XHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5mby1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktYnVpbGRpbmcgaW5mby1pY29uXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaW5mby1jb250ZW50XCI+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJpbmZvLWxhYmVsXCI+e3sgdCgnY2xpZW50U3lzdGVtVXNlcicpIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiaW5mby12YWx1ZVwiPnt7IHVzZXJQcm9maWxlKCk/LmNsaWVudE9mU3lzdGVtVXNlciB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHR9XHJcblxyXG5cdDwhLS0gRml4ZWQgQWN0aW9uIEJ1dHRvbnMgLS0+XHJcblx0QGlmICh1c2VyUHJvZmlsZSgpKSB7XHJcblx0XHQ8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyIGdyaWQgcC1mbHVpZFwiICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogJ3Byb2ZpbGVTaWRlYmFyJ1wiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLTEyIGZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcblx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRbbGFiZWxdPVwidCgnZWRpdFByb2ZpbGUnKVwiXHJcblx0XHRcdFx0XHRpY29uPVwiVVNFUl9FRElUXCJcclxuXHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0Y2xhc3M9XCJjb2wtNlwiXHJcblx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJlZGl0UHJvZmlsZSgpXCI+XHJcblx0XHRcdFx0PC9hcmlsLWJ1dHRvbj5cclxuXHRcdFx0XHQ8YXJpbC1idXR0b25cclxuXHRcdFx0XHRcdFtsYWJlbF09XCJ0KCdjaGFuZ2VQYXNzd29yZCcpXCJcclxuXHRcdFx0XHRcdGljb249XCJLRVlcIlxyXG5cdFx0XHRcdFx0Y29sb3I9XCJzZWNvbmRhcnlcIlxyXG5cdFx0XHRcdFx0W291dGxpbmVkXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0c2l6ZT1cInNtXCJcclxuXHRcdFx0XHRcdGNsYXNzPVwiY29sLTZcIlxyXG5cdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiY2hhbmdlUGFzc3dvcmQoKVwiPlxyXG5cdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8YXJpbC1idXR0b25cclxuXHRcdFx0XHRbbGFiZWxdPVwidCgnbG9nb3V0JylcIlxyXG5cdFx0XHRcdGljb249XCJTSUdOX09VVFwiXHJcblx0XHRcdFx0Y29sb3I9XCJkYW5nZXJcIlxyXG5cdFx0XHRcdFtvdXRsaW5lZF09XCJmYWxzZVwiXHJcblx0XHRcdFx0c2l6ZT1cInNtXCJcclxuXHRcdFx0XHRjbGFzcz1cImNvbC0xMlwiXHJcblx0XHRcdFx0KGNsaWNrRXZlbnQpPVwibG9nb3V0KClcIj5cclxuXHRcdFx0PC9hcmlsLWJ1dHRvbj5cclxuXHRcdDwvZGl2PlxyXG5cdH1cclxuPC9wLXNpZGViYXI+XHJcbiJdfQ==