aril 1.1.65 → 1.1.67

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 (629) hide show
  1. package/README.md +62 -62
  2. package/boot/config/api.sample.json +8 -8
  3. package/esm2022/boot/config/api/index.mjs +1 -1
  4. package/esm2022/boot/config/api/src/api.service.mjs +1 -1
  5. package/esm2022/boot/config/api/src/interfaces.mjs +1 -1
  6. package/esm2022/boot/config/apps/index.mjs +1 -1
  7. package/esm2022/boot/config/apps/src/apps.service.mjs +1 -1
  8. package/esm2022/boot/config/apps/src/auth.guard.mjs +1 -1
  9. package/esm2022/boot/config/apps/src/interfaces.mjs +1 -1
  10. package/esm2022/boot/config/apps/src/reuse-strategy.mjs +1 -1
  11. package/esm2022/boot/config/apps/src/showdowDOMWrapper.mjs +1 -1
  12. package/esm2022/boot/config/plugins/index.mjs +1 -1
  13. package/esm2022/boot/config/plugins/src/getNgZone.mjs +1 -1
  14. package/esm2022/boot/config/plugins/src/interfaces.mjs +1 -1
  15. package/esm2022/boot/config/plugins/src/plugins.service.mjs +1 -1
  16. package/esm2022/boot/config/translate/constants.mjs +1 -1
  17. package/esm2022/boot/config/translate/index.mjs +1 -1
  18. package/esm2022/boot/config/translate/primeng/i18n/tr.mjs +1 -1
  19. package/esm2022/boot/host/index.mjs +1 -1
  20. package/esm2022/boot/host/src/app.component.mjs +1 -1
  21. package/esm2022/boot/host/src/bootstrap.mjs +1 -1
  22. package/esm2022/boot/index.mjs +1 -1
  23. package/esm2022/boot/mfe/index.mjs +1 -1
  24. package/esm2022/boot/mfe/src/app.component.mjs +13 -13
  25. package/esm2022/boot/mfe/src/appComponentLoader.mjs +1 -1
  26. package/esm2022/boot/mfe/src/bootstrap.mjs +1 -1
  27. package/esm2022/boot/mfe/src/loadStyles.mjs +1 -1
  28. package/esm2022/boot/mfe/src/monaco.config.mjs +1 -1
  29. package/esm2022/http/index.mjs +1 -1
  30. package/esm2022/http/lib/enums.mjs +1 -1
  31. package/esm2022/http/lib/interfaces.mjs +1 -1
  32. package/esm2022/http/src/httpBackend.mjs +1 -1
  33. package/esm2022/http/src/httpClient.mjs +1 -1
  34. package/esm2022/http/src/interceptor/accept-language.interceptor.mjs +1 -1
  35. package/esm2022/http/src/serviceBase.mjs +1 -1
  36. package/esm2022/http/src/serviceMockBase.mjs +1 -1
  37. package/esm2022/http/src/serviceRequest.mjs +1 -1
  38. package/esm2022/http/src/serviceStateMethods.mjs +1 -1
  39. package/esm2022/i18n/index.mjs +1 -1
  40. package/esm2022/i18n/src/folder-name-token.mjs +1 -1
  41. package/esm2022/i18n/src/i18n.module.mjs +1 -1
  42. package/esm2022/i18n/src/loader.mjs +1 -1
  43. package/esm2022/i18n/src/provideI18n.mjs +1 -1
  44. package/esm2022/i18n/src/provideScope.mjs +1 -1
  45. package/esm2022/keycloak/src/auth.interceptor.mjs +1 -1
  46. package/esm2022/provider/index.mjs +1 -1
  47. package/esm2022/provider/src/index.mjs +1 -1
  48. package/esm2022/provider/src/prodiveHost.mjs +1 -1
  49. package/esm2022/provider/src/prodiveHostRouter.mjs +1 -1
  50. package/esm2022/provider/src/provideHostKeycloak.mjs +1 -1
  51. package/esm2022/provider/src/provideLocaleId.mjs +1 -1
  52. package/esm2022/public-api.mjs +1 -1
  53. package/esm2022/theme/index.mjs +1 -1
  54. package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +3 -3
  55. package/esm2022/theme/layout/app/chatbot/app.chatbot.component.mjs +3 -3
  56. package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +3 -3
  57. package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +3 -3
  58. package/esm2022/theme/layout/app/favorite-pages/favorite-pages.service.mjs +1 -1
  59. package/esm2022/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.mjs +3 -3
  60. package/esm2022/theme/layout/app/general-search/general-search.component.mjs +3 -3
  61. package/esm2022/theme/layout/app/general-search/helpers.mjs +1 -1
  62. package/esm2022/theme/layout/app/general-search/models.mjs +1 -1
  63. package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +3 -3
  64. package/esm2022/theme/layout/app/history/history.service.mjs +1 -1
  65. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +3 -3
  66. package/esm2022/theme/layout/app/layout/mfe.layout.component.mjs +23 -23
  67. package/esm2022/theme/layout/app/notifications/notifications-sidebar.component.mjs +3 -3
  68. package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +3 -3
  69. package/esm2022/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.mjs +3 -3
  70. package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +3 -3
  71. package/esm2022/theme/layout/app/profileSidebar/profile.service.mjs +1 -1
  72. package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +3 -3
  73. package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +3 -3
  74. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +3 -3
  75. package/esm2022/theme/layout/index.mjs +1 -1
  76. package/esm2022/theme/layout/service/app.layout.service.mjs +1 -1
  77. package/esm2022/theme/layout/service/app.menu.service.mjs +1 -1
  78. package/esm2022/theme/layout/service/breadcrumb.service.mjs +1 -1
  79. package/esm2022/theme/layout/service/interfaces/enum.mjs +1 -1
  80. package/esm2022/theme/layout/service/interfaces/interfaces.mjs +1 -1
  81. package/esm2022/theme/layout/service/menuchangeevent.mjs +1 -1
  82. package/esm2022/theme/layout/service/notifications.service.mjs +1 -1
  83. package/esm2022/theme/layout/service/search.service.mjs +1 -1
  84. package/esm2022/theme/layout/service/selection-group.service.mjs +1 -1
  85. package/esm2022/ui/autoComplete/index.mjs +1 -1
  86. package/esm2022/ui/autoComplete/src/auto-complete.component.mjs +3 -3
  87. package/esm2022/ui/autoComplete/src/interfaces.mjs +1 -1
  88. package/esm2022/ui/badge/index.mjs +1 -1
  89. package/esm2022/ui/badge/src/badge.component.mjs +3 -3
  90. package/esm2022/ui/button/index.mjs +1 -1
  91. package/esm2022/ui/button/src/button.component.mjs +3 -3
  92. package/esm2022/ui/button/src/split-button.component.mjs +3 -3
  93. package/esm2022/ui/calendar/index.mjs +1 -1
  94. package/esm2022/ui/calendar/src/calendar.component.mjs +3 -3
  95. package/esm2022/ui/charts/index.mjs +1 -1
  96. package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +1 -1
  97. package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +1 -1
  98. package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +1 -1
  99. package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +19 -19
  100. package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +14 -14
  101. package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +14 -14
  102. package/esm2022/ui/charts/src/highCharts/gauge/solid-gauge.component.mjs +19 -19
  103. package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +15 -15
  104. package/esm2022/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.mjs +15 -15
  105. package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +5 -5
  106. package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +1 -1
  107. package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +17 -17
  108. package/esm2022/ui/charts/src/theme/theme.mjs +1 -1
  109. package/esm2022/ui/checkbox/index.mjs +1 -1
  110. package/esm2022/ui/checkbox/src/check-box.component.mjs +3 -3
  111. package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +3 -3
  112. package/esm2022/ui/chip/src/chip.component.mjs +3 -3
  113. package/esm2022/ui/collapse-reorder-list/src/collapse-reorder-list.component.mjs +3 -3
  114. package/esm2022/ui/dxEditor/index.mjs +1 -1
  115. package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +3 -3
  116. package/esm2022/ui/dxField/index.mjs +1 -1
  117. package/esm2022/ui/dxField/src/dx-field.component.mjs +3 -3
  118. package/esm2022/ui/editor/index.mjs +1 -1
  119. package/esm2022/ui/editor/src/aril-editor.component.mjs +3 -3
  120. package/esm2022/ui/editor/src/types.mjs +1 -1
  121. package/esm2022/ui/field/index.mjs +1 -1
  122. package/esm2022/ui/field/src/field.component.mjs +3 -3
  123. package/esm2022/ui/fileUpload/index.mjs +1 -1
  124. package/esm2022/ui/fileUpload/src/file-upload.component.mjs +3 -3
  125. package/esm2022/ui/form/index.mjs +1 -1
  126. package/esm2022/ui/form/src/form-submit-button.component.mjs +3 -3
  127. package/esm2022/ui/form/src/form.component.mjs +1 -1
  128. package/esm2022/ui/img-viewer/index.mjs +1 -1
  129. package/esm2022/ui/img-viewer/src/img-viewer.component.mjs +3 -3
  130. package/esm2022/ui/index.mjs +1 -1
  131. package/esm2022/ui/json-diff-comparison/index.mjs +1 -1
  132. package/esm2022/ui/json-diff-comparison/src/json-diff.component.mjs +3 -3
  133. package/esm2022/ui/lib/index.mjs +1 -1
  134. package/esm2022/ui/lib/src/form/form-error-message.component.mjs +9 -9
  135. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +1 -1
  136. package/esm2022/ui/lib/src/form/form-field-builder.mjs +1 -1
  137. package/esm2022/ui/lib/src/form/form-validation.mjs +1 -1
  138. package/esm2022/ui/lib/src/grid/enum-color-picker.pipe.mjs +1 -1
  139. package/esm2022/ui/lib/src/grid/flex-grid.directive.mjs +1 -1
  140. package/esm2022/ui/lib/src/input/baseInput.mjs +1 -1
  141. package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +1 -1
  142. package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +1 -1
  143. package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +1 -1
  144. package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +1 -1
  145. package/esm2022/ui/lib/src/input/input-transforms.mjs +1 -1
  146. package/esm2022/ui/lib/src/input/value-accessor.directive.mjs +1 -1
  147. package/esm2022/ui/loader/index.mjs +1 -1
  148. package/esm2022/ui/loader/src/loader.component.mjs +3 -3
  149. package/esm2022/ui/mask/index.mjs +1 -1
  150. package/esm2022/ui/mask/src/mask.component.mjs +3 -3
  151. package/esm2022/ui/multiSelect/index.mjs +1 -1
  152. package/esm2022/ui/multiSelect/src/interfaces.mjs +1 -1
  153. package/esm2022/ui/multiSelect/src/multi-select.component.mjs +3 -3
  154. package/esm2022/ui/number/index.mjs +1 -1
  155. package/esm2022/ui/number/src/number.component.mjs +3 -3
  156. package/esm2022/ui/operation-types-dialog/index.mjs +1 -1
  157. package/esm2022/ui/operation-types-dialog/src/operation-types-dialog.component.mjs +11 -11
  158. package/esm2022/ui/overlayPanel/index.mjs +1 -1
  159. package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +3 -3
  160. package/esm2022/ui/panel/index.mjs +1 -1
  161. package/esm2022/ui/panel/src/panel.component.mjs +3 -3
  162. package/esm2022/ui/password/index.mjs +1 -1
  163. package/esm2022/ui/password/src/password.component.mjs +3 -3
  164. package/esm2022/ui/pdf-viewer/index.mjs +1 -1
  165. package/esm2022/ui/pdf-viewer/src/pdf-viewer.component.mjs +3 -3
  166. package/esm2022/ui/progressbar/index.mjs +1 -1
  167. package/esm2022/ui/progressbar/src/progressbar.component.mjs +3 -3
  168. package/esm2022/ui/radioButton/index.mjs +1 -1
  169. package/esm2022/ui/radioButton/src/radio-button.component.mjs +3 -3
  170. package/esm2022/ui/relativeDateSelector/src/enum.mjs +1 -1
  171. package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +3 -3
  172. package/esm2022/ui/selectBox/index.mjs +1 -1
  173. package/esm2022/ui/selectBox/src/interfaces.mjs +1 -1
  174. package/esm2022/ui/selectBox/src/select-box.component.mjs +3 -3
  175. package/esm2022/ui/switch/index.mjs +1 -1
  176. package/esm2022/ui/switch/src/switch.component.mjs +3 -3
  177. package/esm2022/ui/table/index.mjs +1 -1
  178. package/esm2022/ui/table/src/export-overlay-panel.component.mjs +127 -127
  179. package/esm2022/ui/table/src/interfaces.mjs +1 -1
  180. package/esm2022/ui/table/src/table-column.component.mjs +1 -1
  181. package/esm2022/ui/table/src/table.component.mjs +3 -3
  182. package/esm2022/ui/table-expand/index.mjs +1 -1
  183. package/esm2022/ui/table-expand/src/table-column.component.mjs +1 -1
  184. package/esm2022/ui/table-expand/src/table-expand-area.component.mjs +1 -1
  185. package/esm2022/ui/table-expand/src/table.component.mjs +3 -3
  186. package/esm2022/ui/tag/src/tag.component.mjs +3 -3
  187. package/esm2022/ui/tagBox/index.mjs +1 -1
  188. package/esm2022/ui/tagBox/src/tag-box.component.mjs +3 -3
  189. package/esm2022/ui/text/index.mjs +1 -1
  190. package/esm2022/ui/text/src/text.component.mjs +3 -3
  191. package/esm2022/ui/textArea/index.mjs +1 -1
  192. package/esm2022/ui/textArea/src/text-area.component.mjs +3 -3
  193. package/esm2022/ui/toggle-button/src/toggle-button.component.mjs +3 -3
  194. package/esm2022/ui/tooltip/index.mjs +1 -1
  195. package/esm2022/ui/tooltip/src/tooltip-component.mjs +3 -3
  196. package/esm2022/ui/translate-input/index.mjs +1 -1
  197. package/esm2022/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.mjs +3 -3
  198. package/esm2022/ui/translate-input/src/aril-lang-modal/constants.mjs +1 -1
  199. package/esm2022/ui/translate-input/src/aril-translate-input.component.mjs +25 -25
  200. package/esm2022/ui/translate-input/src/interface.mjs +1 -1
  201. package/esm2022/ui/tree/index.mjs +1 -1
  202. package/esm2022/ui/tree/src/tree.component.mjs +3 -3
  203. package/esm2022/ui/treeSelect/index.mjs +1 -1
  204. package/esm2022/ui/treeSelect/src/treeSelect.component.mjs +3 -3
  205. package/esm2022/ui/treeTable/index.mjs +1 -1
  206. package/esm2022/ui/treeTable/src/tree-table.component.mjs +3 -3
  207. package/esm2022/ui/value/index.mjs +1 -1
  208. package/esm2022/ui/value/src/value.component.mjs +3 -3
  209. package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +71 -31
  210. package/esm2022/ui-business/assetPicker/src/interface.mjs +1 -1
  211. package/esm2022/ui-business/detailed-overlay-panel/index.mjs +1 -1
  212. package/esm2022/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +3 -3
  213. package/esm2022/ui-business/detailed-overlay-panel/src/interface.mjs +1 -1
  214. package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +3 -3
  215. package/esm2022/ui-business/enumPicker/src/interface.mjs +1 -1
  216. package/esm2022/ui-business/image-viewer/src/aril-image-viewer.component.mjs +29 -29
  217. package/esm2022/ui-business/index.mjs +1 -1
  218. package/esm2022/ui-business/multiple-ref-value/index.mjs +1 -1
  219. package/esm2022/ui-business/multiple-ref-value/src/multiple-ref-value.component.mjs +3 -3
  220. package/esm2022/ui-business/notification-templates-dialog/index.mjs +1 -1
  221. package/esm2022/ui-business/notification-templates-dialog/src/interface.mjs +1 -1
  222. package/esm2022/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.mjs +3 -3
  223. package/esm2022/ui-business/operation-types-dialog/index.mjs +1 -1
  224. package/esm2022/ui-business/operation-types-dialog/src/operation-types-dialog.component.mjs +11 -11
  225. package/esm2022/ui-business/ref-value/index.mjs +1 -1
  226. package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +3 -3
  227. package/esm2022/ui-business/rolePicker/index.mjs +1 -1
  228. package/esm2022/ui-business/rolePicker/src/interface.mjs +1 -1
  229. package/esm2022/ui-business/rolePicker/src/role-picker.component.mjs +3 -3
  230. package/esm2022/ui-business/userPicker/src/interface.mjs +1 -1
  231. package/esm2022/ui-business/userPicker/src/user-picker.component.mjs +3 -3
  232. package/esm2022/util/block/index.mjs +1 -1
  233. package/esm2022/util/block/src/block.mjs +1 -1
  234. package/esm2022/util/custom_pages/index.mjs +1 -1
  235. package/esm2022/util/custom_pages/src/notFound.component.mjs +47 -47
  236. package/esm2022/util/directives/index.mjs +1 -1
  237. package/esm2022/util/directives/src/detail-page-customization/detail-page-customization.directive.mjs +1 -1
  238. package/esm2022/util/directives/src/detail-page-customization/index.mjs +1 -1
  239. package/esm2022/util/directives/src/detail-page-customization/models.mjs +1 -1
  240. package/esm2022/util/directives/src/dialog-component/plugin-dialog.component.mjs +1 -1
  241. package/esm2022/util/directives/src/dialog-service/plugin-dialog.service.mjs +1 -1
  242. package/esm2022/util/init-event/index.mjs +1 -1
  243. package/esm2022/util/init-event/src/init-event.directive.mjs +1 -1
  244. package/esm2022/util/lib/index.mjs +1 -1
  245. package/esm2022/util/lib/src/interfaces.mjs +1 -1
  246. package/esm2022/util/lib/src/module-router.mjs +1 -1
  247. package/esm2022/util/lib/src/types.mjs +1 -1
  248. package/esm2022/util/lib/src/validators/iban.validator.mjs +1 -1
  249. package/esm2022/util/lib/src/validators/index.mjs +1 -1
  250. package/esm2022/util/lib/src/validators/max-array-length.validator.mjs +1 -1
  251. package/esm2022/util/lib/src/validators/min-array-length.validator.mjs +1 -1
  252. package/esm2022/util/lib/src/validators/tckn.validator.mjs +1 -1
  253. package/esm2022/util/lib/src/validators/validators.mjs +1 -1
  254. package/esm2022/util/loaders/index.mjs +1 -1
  255. package/esm2022/util/loaders/script/script.loader.service.mjs +1 -1
  256. package/esm2022/util/loaders/style/style.loader.service.mjs +1 -1
  257. package/esm2022/util/pipes/index.mjs +1 -1
  258. package/esm2022/util/pipes/src/distance-to-now.pipe.mjs +1 -1
  259. package/esm2022/util/pipes/src/get-column-by-field.pipe.mjs +1 -1
  260. package/esm2022/util/pipes/src/parse.pipe.mjs +1 -1
  261. package/esm2022/util/pipes/src/round-number.pipe.mjs +1 -1
  262. package/esm2022/util/pipes/src/safe.pipe.mjs +1 -1
  263. package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +1 -1
  264. package/esm2022/util/primitive-extensions/index.mjs +1 -1
  265. package/esm2022/util/primitive-extensions/src/boolean.extensions.mjs +1 -1
  266. package/esm2022/util/primitive-extensions/src/date.extensions.mjs +1 -1
  267. package/esm2022/util/primitive-extensions/src/number.extensions.mjs +1 -1
  268. package/esm2022/util/primitive-extensions/src/string.extensions.mjs +1 -1
  269. package/esm2022/util/pub-sub/index.mjs +1 -1
  270. package/esm2022/util/pub-sub/src/pub-sub.service.mjs +1 -1
  271. package/esm2022/util/sync-active-tab-route/index.mjs +1 -1
  272. package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +1 -1
  273. package/esm2022/util/unwrap/index.mjs +1 -1
  274. package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +1 -1
  275. package/fesm2022/{aril-app.component-BrM-uBqB.mjs → aril-app.component-hxaLgwmC.mjs} +13 -13
  276. package/fesm2022/aril-app.component-hxaLgwmC.mjs.map +1 -0
  277. package/fesm2022/aril-boot-config-api.mjs.map +1 -1
  278. package/fesm2022/aril-boot-config-apps.mjs +1 -1
  279. package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
  280. package/fesm2022/aril-boot-config-plugins.mjs +2 -2
  281. package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
  282. package/fesm2022/aril-boot-config-translate.mjs.map +1 -1
  283. package/fesm2022/aril-boot-host.mjs +4 -4
  284. package/fesm2022/aril-boot-host.mjs.map +1 -1
  285. package/fesm2022/{aril-boot-mfe-app.component-BWEM0ozE.mjs → aril-boot-mfe-app.component-s1a-tkOD.mjs} +14 -14
  286. package/fesm2022/aril-boot-mfe-app.component-s1a-tkOD.mjs.map +1 -0
  287. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-Chnmyg0H.mjs → aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs} +7 -7
  288. package/fesm2022/aril-boot-mfe-aril-boot-mfe-wLTqwDtz.mjs.map +1 -0
  289. package/fesm2022/aril-boot-mfe.mjs +1 -1
  290. package/fesm2022/aril-boot.mjs.map +1 -1
  291. package/fesm2022/aril-http.mjs.map +1 -1
  292. package/fesm2022/aril-i18n.mjs.map +1 -1
  293. package/fesm2022/aril-keycloak.mjs.map +1 -1
  294. package/fesm2022/aril-provider.mjs +1 -1
  295. package/fesm2022/aril-provider.mjs.map +1 -1
  296. package/fesm2022/aril-theme-layout.mjs +52 -52
  297. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  298. package/fesm2022/aril-theme.mjs.map +1 -1
  299. package/fesm2022/aril-ui-autoComplete.mjs +5 -5
  300. package/fesm2022/aril-ui-autoComplete.mjs.map +1 -1
  301. package/fesm2022/aril-ui-badge.mjs +3 -3
  302. package/fesm2022/aril-ui-badge.mjs.map +1 -1
  303. package/fesm2022/aril-ui-business-assetPicker.mjs +71 -31
  304. package/fesm2022/aril-ui-business-assetPicker.mjs.map +1 -1
  305. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs +4 -4
  306. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs.map +1 -1
  307. package/fesm2022/aril-ui-business-enumPicker.mjs +4 -4
  308. package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
  309. package/fesm2022/aril-ui-business-image-viewer.mjs +28 -28
  310. package/fesm2022/aril-ui-business-image-viewer.mjs.map +1 -1
  311. package/fesm2022/aril-ui-business-multiple-ref-value.mjs +3 -3
  312. package/fesm2022/aril-ui-business-multiple-ref-value.mjs.map +1 -1
  313. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs +2 -2
  314. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs.map +1 -1
  315. package/fesm2022/aril-ui-business-operation-types-dialog.mjs +10 -10
  316. package/fesm2022/aril-ui-business-operation-types-dialog.mjs.map +1 -1
  317. package/fesm2022/aril-ui-business-ref-value.mjs +3 -3
  318. package/fesm2022/aril-ui-business-ref-value.mjs.map +1 -1
  319. package/fesm2022/aril-ui-business-rolePicker.mjs +3 -3
  320. package/fesm2022/aril-ui-business-rolePicker.mjs.map +1 -1
  321. package/fesm2022/aril-ui-business-userPicker.mjs +2 -2
  322. package/fesm2022/aril-ui-business-userPicker.mjs.map +1 -1
  323. package/fesm2022/aril-ui-business.mjs.map +1 -1
  324. package/fesm2022/aril-ui-button.mjs +5 -5
  325. package/fesm2022/aril-ui-button.mjs.map +1 -1
  326. package/fesm2022/aril-ui-calendar.mjs +2 -2
  327. package/fesm2022/aril-ui-calendar.mjs.map +1 -1
  328. package/fesm2022/aril-ui-charts.mjs +111 -111
  329. package/fesm2022/aril-ui-charts.mjs.map +1 -1
  330. package/fesm2022/aril-ui-checkbox.mjs +4 -4
  331. package/fesm2022/aril-ui-checkbox.mjs.map +1 -1
  332. package/fesm2022/aril-ui-chip.mjs +3 -3
  333. package/fesm2022/aril-ui-chip.mjs.map +1 -1
  334. package/fesm2022/aril-ui-collapse-reorder-list.mjs +3 -3
  335. package/fesm2022/aril-ui-collapse-reorder-list.mjs.map +1 -1
  336. package/fesm2022/aril-ui-dxEditor.mjs +3 -3
  337. package/fesm2022/aril-ui-dxEditor.mjs.map +1 -1
  338. package/fesm2022/aril-ui-dxField.mjs +3 -3
  339. package/fesm2022/aril-ui-dxField.mjs.map +1 -1
  340. package/fesm2022/aril-ui-editor.mjs +3 -3
  341. package/fesm2022/aril-ui-editor.mjs.map +1 -1
  342. package/fesm2022/aril-ui-field.mjs +3 -3
  343. package/fesm2022/aril-ui-field.mjs.map +1 -1
  344. package/fesm2022/aril-ui-fileUpload.mjs +3 -3
  345. package/fesm2022/aril-ui-fileUpload.mjs.map +1 -1
  346. package/fesm2022/aril-ui-form.mjs +3 -3
  347. package/fesm2022/aril-ui-form.mjs.map +1 -1
  348. package/fesm2022/aril-ui-img-viewer.mjs +2 -2
  349. package/fesm2022/aril-ui-img-viewer.mjs.map +1 -1
  350. package/fesm2022/aril-ui-json-diff-comparison.mjs +3 -3
  351. package/fesm2022/aril-ui-json-diff-comparison.mjs.map +1 -1
  352. package/fesm2022/aril-ui-lib.mjs +9 -9
  353. package/fesm2022/aril-ui-lib.mjs.map +1 -1
  354. package/fesm2022/aril-ui-loader.mjs +2 -2
  355. package/fesm2022/aril-ui-loader.mjs.map +1 -1
  356. package/fesm2022/aril-ui-mask.mjs +2 -2
  357. package/fesm2022/aril-ui-mask.mjs.map +1 -1
  358. package/fesm2022/aril-ui-multiSelect.mjs +2 -2
  359. package/fesm2022/aril-ui-multiSelect.mjs.map +1 -1
  360. package/fesm2022/aril-ui-number.mjs +2 -2
  361. package/fesm2022/aril-ui-number.mjs.map +1 -1
  362. package/fesm2022/aril-ui-operation-types-dialog.mjs +10 -10
  363. package/fesm2022/aril-ui-operation-types-dialog.mjs.map +1 -1
  364. package/fesm2022/aril-ui-overlayPanel.mjs +3 -3
  365. package/fesm2022/aril-ui-overlayPanel.mjs.map +1 -1
  366. package/fesm2022/aril-ui-panel.mjs +3 -3
  367. package/fesm2022/aril-ui-panel.mjs.map +1 -1
  368. package/fesm2022/aril-ui-password.mjs +2 -2
  369. package/fesm2022/aril-ui-password.mjs.map +1 -1
  370. package/fesm2022/aril-ui-pdf-viewer.mjs +2 -2
  371. package/fesm2022/aril-ui-pdf-viewer.mjs.map +1 -1
  372. package/fesm2022/aril-ui-progressbar.mjs +2 -2
  373. package/fesm2022/aril-ui-progressbar.mjs.map +1 -1
  374. package/fesm2022/aril-ui-radioButton.mjs +2 -2
  375. package/fesm2022/aril-ui-radioButton.mjs.map +1 -1
  376. package/fesm2022/aril-ui-relativeDateSelector.mjs +3 -3
  377. package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -1
  378. package/fesm2022/aril-ui-selectBox.mjs +4 -4
  379. package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
  380. package/fesm2022/aril-ui-switch.mjs +2 -2
  381. package/fesm2022/aril-ui-switch.mjs.map +1 -1
  382. package/fesm2022/aril-ui-table-expand.mjs +3 -3
  383. package/fesm2022/aril-ui-table-expand.mjs.map +1 -1
  384. package/fesm2022/aril-ui-table.mjs +130 -130
  385. package/fesm2022/aril-ui-table.mjs.map +1 -1
  386. package/fesm2022/aril-ui-tag.mjs +2 -2
  387. package/fesm2022/aril-ui-tag.mjs.map +1 -1
  388. package/fesm2022/aril-ui-tagBox.mjs +4 -4
  389. package/fesm2022/aril-ui-tagBox.mjs.map +1 -1
  390. package/fesm2022/aril-ui-text.mjs +2 -2
  391. package/fesm2022/aril-ui-text.mjs.map +1 -1
  392. package/fesm2022/aril-ui-textArea.mjs +2 -2
  393. package/fesm2022/aril-ui-textArea.mjs.map +1 -1
  394. package/fesm2022/aril-ui-toggle-button.mjs +3 -3
  395. package/fesm2022/aril-ui-toggle-button.mjs.map +1 -1
  396. package/fesm2022/aril-ui-tooltip.mjs +2 -2
  397. package/fesm2022/aril-ui-tooltip.mjs.map +1 -1
  398. package/fesm2022/aril-ui-translate-input.mjs +26 -26
  399. package/fesm2022/aril-ui-translate-input.mjs.map +1 -1
  400. package/fesm2022/aril-ui-tree.mjs +3 -3
  401. package/fesm2022/aril-ui-tree.mjs.map +1 -1
  402. package/fesm2022/aril-ui-treeSelect.mjs +3 -3
  403. package/fesm2022/aril-ui-treeSelect.mjs.map +1 -1
  404. package/fesm2022/aril-ui-treeTable.mjs +3 -3
  405. package/fesm2022/aril-ui-treeTable.mjs.map +1 -1
  406. package/fesm2022/aril-ui-value.mjs +4 -4
  407. package/fesm2022/aril-ui-value.mjs.map +1 -1
  408. package/fesm2022/aril-ui.mjs.map +1 -1
  409. package/fesm2022/aril-util-block.mjs.map +1 -1
  410. package/fesm2022/aril-util-custom_pages.mjs +46 -46
  411. package/fesm2022/aril-util-custom_pages.mjs.map +1 -1
  412. package/fesm2022/aril-util-directives.mjs +1 -1
  413. package/fesm2022/aril-util-directives.mjs.map +1 -1
  414. package/fesm2022/aril-util-init-event.mjs +1 -1
  415. package/fesm2022/aril-util-init-event.mjs.map +1 -1
  416. package/fesm2022/aril-util-lib.mjs.map +1 -1
  417. package/fesm2022/aril-util-loaders.mjs +1 -1
  418. package/fesm2022/aril-util-loaders.mjs.map +1 -1
  419. package/fesm2022/aril-util-pipes.mjs +1 -1
  420. package/fesm2022/aril-util-pipes.mjs.map +1 -1
  421. package/fesm2022/aril-util-primitive-extensions.mjs.map +1 -1
  422. package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
  423. package/fesm2022/aril-util-sync-active-tab-route.mjs +1 -1
  424. package/fesm2022/aril-util-sync-active-tab-route.mjs.map +1 -1
  425. package/fesm2022/aril-util-unwrap.mjs.map +1 -1
  426. package/fesm2022/aril.mjs +6 -6
  427. package/fesm2022/aril.mjs.map +1 -1
  428. package/package.json +127 -127
  429. package/scripts/util/blockui.min.js +6 -6
  430. package/styles/ui/ui.common.scss +42 -42
  431. package/styles/util/blockui.css +56 -56
  432. package/theme/index.ts +1 -1
  433. package/theme/layout/app/breadcrumb/app.breadcrumb.component.html +8 -8
  434. package/theme/layout/app/breadcrumb/app.breadcrumb.component.ts +126 -126
  435. package/theme/layout/app/chatbot/app.chatbot.component.html +108 -108
  436. package/theme/layout/app/chatbot/app.chatbot.component.scss +34 -34
  437. package/theme/layout/app/chatbot/app.chatbot.component.ts +151 -151
  438. package/theme/layout/app/config/app.config.component.html +146 -146
  439. package/theme/layout/app/config/app.config.component.ts +143 -143
  440. package/theme/layout/app/expandableMenu/expandable-menu.component.html +89 -89
  441. package/theme/layout/app/expandableMenu/expandable-menu.component.ts +295 -295
  442. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.html +110 -110
  443. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.scss +181 -181
  444. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.ts +260 -260
  445. package/theme/layout/app/favorite-pages/favorite-pages.service.ts +95 -95
  446. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.html +27 -27
  447. package/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.ts +165 -165
  448. package/theme/layout/app/general-search/general-search.component.html +57 -57
  449. package/theme/layout/app/general-search/general-search.component.scss +27 -27
  450. package/theme/layout/app/general-search/general-search.component.ts +93 -93
  451. package/theme/layout/app/general-search/helpers.spec.ts +527 -527
  452. package/theme/layout/app/general-search/helpers.ts +106 -106
  453. package/theme/layout/app/general-search/models.ts +142 -142
  454. package/theme/layout/app/history/history-sidebar.component.html +87 -87
  455. package/theme/layout/app/history/history-sidebar.component.scss +182 -182
  456. package/theme/layout/app/history/history-sidebar.component.ts +143 -143
  457. package/theme/layout/app/history/history.service.ts +154 -154
  458. package/theme/layout/app/layout/app.layout.component.html +27 -27
  459. package/theme/layout/app/layout/app.layout.component.ts +171 -171
  460. package/theme/layout/app/layout/mfe.layout.component.ts +59 -59
  461. package/theme/layout/app/menu/app.menu.component.html +14 -14
  462. package/theme/layout/app/menu/app.menu.component.ts +350 -350
  463. package/theme/layout/app/notifications/notifications-sidebar.component.html +104 -104
  464. package/theme/layout/app/notifications/notifications-sidebar.component.scss +237 -237
  465. package/theme/layout/app/notifications/notifications-sidebar.component.ts +221 -221
  466. package/theme/layout/app/profileSidebar/app.profilesidebar.component.html +122 -122
  467. package/theme/layout/app/profileSidebar/app.profilesidebar.component.scss +151 -151
  468. package/theme/layout/app/profileSidebar/app.profilesidebar.component.ts +141 -141
  469. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.html +48 -48
  470. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.scss +27 -27
  471. package/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.ts +178 -178
  472. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.html +71 -71
  473. package/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.ts +251 -251
  474. package/theme/layout/app/profileSidebar/profile.service.ts +116 -116
  475. package/theme/layout/app/sidebar/app.sidebar.component.html +24 -24
  476. package/theme/layout/app/sidebar/app.sidebar.component.ts +44 -44
  477. package/theme/layout/app/site-map/site-map-sidebar.component.html +121 -121
  478. package/theme/layout/app/site-map/site-map-sidebar.component.scss +178 -178
  479. package/theme/layout/app/site-map/site-map-sidebar.component.ts +193 -193
  480. package/theme/layout/app/static-sidebar/static-sidebar.component.html +123 -123
  481. package/theme/layout/app/static-sidebar/static-sidebar.component.scss +408 -408
  482. package/theme/layout/app/static-sidebar/static-sidebar.component.ts +276 -276
  483. package/theme/layout/app/topbar/app.topbar.component.html +85 -85
  484. package/theme/layout/app/topbar/app.topbar.component.scss +193 -193
  485. package/theme/layout/app/topbar/app.topbar.component.ts +172 -172
  486. package/theme/layout/index.ts +7 -7
  487. package/theme/layout/ng-package.json +6 -6
  488. package/theme/layout/service/app.layout.service.ts +307 -307
  489. package/theme/layout/service/app.menu.service.ts +53 -53
  490. package/theme/layout/service/breadcrumb.service.ts +14 -14
  491. package/theme/layout/service/interfaces/enum.ts +13 -13
  492. package/theme/layout/service/interfaces/interfaces.ts +150 -150
  493. package/theme/layout/service/menuchangeevent.ts +4 -4
  494. package/theme/layout/service/notifications.service.ts +26 -26
  495. package/theme/layout/service/search.service.ts +22 -22
  496. package/theme/layout/service/selection-group.service.ts +73 -73
  497. package/theme/ng-package.json +6 -6
  498. package/theme/styles/layout/_animation.scss +53 -53
  499. package/theme/styles/layout/_breadcrumb.scss +31 -31
  500. package/theme/styles/layout/_config.scss +42 -42
  501. package/theme/styles/layout/_content.scss +61 -61
  502. package/theme/styles/layout/_expanded_sidebar.scss +486 -486
  503. package/theme/styles/layout/_fonts.scss +93 -93
  504. package/theme/styles/layout/_layout_dark.scss +5 -5
  505. package/theme/styles/layout/_layout_dim.scss +5 -5
  506. package/theme/styles/layout/_layout_light.scss +5 -5
  507. package/theme/styles/layout/_main.scss +28 -28
  508. package/theme/styles/layout/_profile.scss +10 -10
  509. package/theme/styles/layout/_responsive.scss +153 -153
  510. package/theme/styles/layout/_sidebar_drawer.scss +234 -234
  511. package/theme/styles/layout/_sidebar_horizontal.scss +163 -163
  512. package/theme/styles/layout/_sidebar_reveal.scss +201 -201
  513. package/theme/styles/layout/_sidebar_slim.scss +144 -144
  514. package/theme/styles/layout/_sidebar_slim_plus.scss +168 -168
  515. package/theme/styles/layout/_sidebar_vertical.scss +156 -156
  516. package/theme/styles/layout/_topbar.scss +140 -140
  517. package/theme/styles/layout/_typography.scss +68 -68
  518. package/theme/styles/layout/_utils.scss +24 -24
  519. package/theme/styles/layout/layout.scss +25 -25
  520. package/theme/styles/layout/menutheme/_colorscheme.scss +11 -11
  521. package/theme/styles/layout/menutheme/_menutheme.scss +3 -3
  522. package/theme/styles/layout/menutheme/_primarycolor.scss +16 -16
  523. package/theme/styles/layout/menutheme/_transparent.scss +26 -26
  524. package/theme/styles/layout/preloading.scss +84 -84
  525. package/theme/styles/theme/base/_colors.scss +17 -17
  526. package/theme/styles/theme/base/_common.scss +89 -89
  527. package/theme/styles/theme/base/_components.scss +108 -108
  528. package/theme/styles/theme/base/_mixins.scss +337 -337
  529. package/theme/styles/theme/base/components/button/_button.scss +576 -576
  530. package/theme/styles/theme/base/components/button/_speeddial.scss +96 -96
  531. package/theme/styles/theme/base/components/button/_splitbutton.scss +348 -348
  532. package/theme/styles/theme/base/components/data/_carousel.scss +37 -37
  533. package/theme/styles/theme/base/components/data/_datatable.scss +338 -338
  534. package/theme/styles/theme/base/components/data/_dataview.scss +46 -46
  535. package/theme/styles/theme/base/components/data/_filter.scss +137 -137
  536. package/theme/styles/theme/base/components/data/_orderlist.scss +114 -114
  537. package/theme/styles/theme/base/components/data/_organizationchart.scss +50 -50
  538. package/theme/styles/theme/base/components/data/_paginator.scss +92 -92
  539. package/theme/styles/theme/base/components/data/_picklist.scss +114 -114
  540. package/theme/styles/theme/base/components/data/_table.scss +16 -16
  541. package/theme/styles/theme/base/components/data/_timeline.scss +35 -35
  542. package/theme/styles/theme/base/components/data/_tree.scss +150 -150
  543. package/theme/styles/theme/base/components/data/_treetable.scss +255 -255
  544. package/theme/styles/theme/base/components/data/_virtualscroller.scss +28 -28
  545. package/theme/styles/theme/base/components/file/_fileupload.scss +64 -64
  546. package/theme/styles/theme/base/components/input/_autocomplete.scss +141 -141
  547. package/theme/styles/theme/base/components/input/_calendar.scss +267 -267
  548. package/theme/styles/theme/base/components/input/_cascadeselect.scss +135 -135
  549. package/theme/styles/theme/base/components/input/_checkbox.scss +99 -99
  550. package/theme/styles/theme/base/components/input/_chips.scss +67 -67
  551. package/theme/styles/theme/base/components/input/_colorpicker.scss +19 -19
  552. package/theme/styles/theme/base/components/input/_dropdown.scss +151 -151
  553. package/theme/styles/theme/base/components/input/_editor.scss +122 -122
  554. package/theme/styles/theme/base/components/input/_inputgroup.scss +75 -75
  555. package/theme/styles/theme/base/components/input/_inputmask.scss +16 -16
  556. package/theme/styles/theme/base/components/input/_inputnumber.scss +28 -28
  557. package/theme/styles/theme/base/components/input/_inputswitch.scss +60 -60
  558. package/theme/styles/theme/base/components/input/_inputtext.scss +100 -100
  559. package/theme/styles/theme/base/components/input/_listbox.scss +97 -97
  560. package/theme/styles/theme/base/components/input/_multiselect.scss +177 -177
  561. package/theme/styles/theme/base/components/input/_password.scss +52 -52
  562. package/theme/styles/theme/base/components/input/_radiobutton.scss +78 -78
  563. package/theme/styles/theme/base/components/input/_rating.scss +60 -60
  564. package/theme/styles/theme/base/components/input/_selectbutton.scss +50 -50
  565. package/theme/styles/theme/base/components/input/_slider.scss +75 -75
  566. package/theme/styles/theme/base/components/input/_togglebutton.scss +48 -48
  567. package/theme/styles/theme/base/components/input/_treeselect.scss +139 -139
  568. package/theme/styles/theme/base/components/menu/_breadcrumb.scss +43 -43
  569. package/theme/styles/theme/base/components/menu/_contextmenu.scss +39 -39
  570. package/theme/styles/theme/base/components/menu/_dock.scss +95 -95
  571. package/theme/styles/theme/base/components/menu/_megamenu.scss +55 -55
  572. package/theme/styles/theme/base/components/menu/_menu.scss +37 -37
  573. package/theme/styles/theme/base/components/menu/_menubar.scss +140 -140
  574. package/theme/styles/theme/base/components/menu/_panelmenu.scss +153 -153
  575. package/theme/styles/theme/base/components/menu/_slidemenu.scss +59 -59
  576. package/theme/styles/theme/base/components/menu/_steps.scss +56 -56
  577. package/theme/styles/theme/base/components/menu/_tabmenu.scss +73 -73
  578. package/theme/styles/theme/base/components/menu/_tieredmenu.scss +43 -43
  579. package/theme/styles/theme/base/components/messages/_inlinemessage.scss +69 -69
  580. package/theme/styles/theme/base/components/messages/_message.scss +107 -107
  581. package/theme/styles/theme/base/components/messages/_toast.scss +99 -99
  582. package/theme/styles/theme/base/components/misc/_avatar.scss +30 -30
  583. package/theme/styles/theme/base/components/misc/_badge.scss +48 -48
  584. package/theme/styles/theme/base/components/misc/_chip.scss +42 -42
  585. package/theme/styles/theme/base/components/misc/_inplace.scss +16 -16
  586. package/theme/styles/theme/base/components/misc/_progressbar.scss +17 -17
  587. package/theme/styles/theme/base/components/misc/_scrolltop.scss +25 -25
  588. package/theme/styles/theme/base/components/misc/_skeleton.scss +8 -8
  589. package/theme/styles/theme/base/components/misc/_tag.scss +45 -45
  590. package/theme/styles/theme/base/components/misc/_terminal.scss +12 -12
  591. package/theme/styles/theme/base/components/multimedia/_galleria.scss +155 -155
  592. package/theme/styles/theme/base/components/multimedia/_image.scss +49 -49
  593. package/theme/styles/theme/base/components/overlay/_confirmpopup.scss +70 -70
  594. package/theme/styles/theme/base/components/overlay/_dialog.scss +69 -69
  595. package/theme/styles/theme/base/components/overlay/_overlaypanel.scss +62 -62
  596. package/theme/styles/theme/base/components/overlay/_sidebar.scss +28 -28
  597. package/theme/styles/theme/base/components/overlay/_tooltip.scss +33 -33
  598. package/theme/styles/theme/base/components/panel/_accordion.scss +119 -119
  599. package/theme/styles/theme/base/components/panel/_card.scss +30 -30
  600. package/theme/styles/theme/base/components/panel/_divider.scss +31 -31
  601. package/theme/styles/theme/base/components/panel/_fieldset.scss +47 -47
  602. package/theme/styles/theme/base/components/panel/_panel.scss +77 -77
  603. package/theme/styles/theme/base/components/panel/_scrollpanel.scss +6 -6
  604. package/theme/styles/theme/base/components/panel/_splitter.scss +19 -19
  605. package/theme/styles/theme/base/components/panel/_stepper.scss +200 -200
  606. package/theme/styles/theme/base/components/panel/_tabview.scss +91 -91
  607. package/theme/styles/theme/base/components/panel/_toolbar.scss +11 -11
  608. package/theme/styles/theme/dark/_extensions.scss +134 -134
  609. package/theme/styles/theme/dark/_variables.scss +933 -933
  610. package/theme/styles/theme/dark/blue/theme.scss +14 -14
  611. package/theme/styles/theme/dark/indigo/theme.scss +14 -14
  612. package/theme/styles/theme/dark/lena/theme.scss +14 -14
  613. package/theme/styles/theme/dark/orange/theme.scss +14 -14
  614. package/theme/styles/theme/dark/thor/theme.scss +14 -14
  615. package/theme/styles/theme/dark/yeap/theme.scss +14 -14
  616. package/theme/styles/theme/light/_extensions.scss +116 -116
  617. package/theme/styles/theme/light/_variables.scss +940 -940
  618. package/theme/styles/theme/light/blue/theme.scss +14 -14
  619. package/theme/styles/theme/light/custom/theme.scss +16 -16
  620. package/theme/styles/theme/light/indigo/theme.scss +14 -14
  621. package/theme/styles/theme/light/lena/theme.scss +14 -14
  622. package/theme/styles/theme/light/orange/theme.scss +14 -14
  623. package/theme/styles/theme/light/thor/theme.scss +15 -15
  624. package/theme/styles/theme/light/yeap/theme.scss +14 -14
  625. package/ui-business/assetPicker/src/asset-picker.component.d.ts +8 -2
  626. package/ui-business/assetPicker/src/interface.d.ts +2 -0
  627. package/fesm2022/aril-app.component-BrM-uBqB.mjs.map +0 -1
  628. package/fesm2022/aril-boot-mfe-app.component-BWEM0ozE.mjs.map +0 -1
  629. package/fesm2022/aril-boot-mfe-aril-boot-mfe-Chnmyg0H.mjs.map +0 -1
@@ -125,7 +125,7 @@ export class AppLayoutComponent {
125
125
  }
126
126
  }
127
127
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppLayoutComponent, deps: [{ token: i1.AppMenuService }, { token: i2.LayoutService }, { token: i0.Renderer2 }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
128
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppLayoutComponent, isStandalone: true, selector: "app-layout", viewQueries: [{ propertyName: "expandableMenuComponent", first: true, predicate: ExpandableMenuComponent, descendants: true }, { propertyName: "staticSidebarComponent", first: true, predicate: StaticSidebarComponent, descendants: true }, { propertyName: "appTopbar", first: true, predicate: AppTopbarComponent, descendants: true }], ngImport: i0, template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\n\t@if (layoutService.shouldShowStaticSidebar()) {\n\t\t<app-static-sidebar />\n\t} @else if (layoutService.shouldShowExpandableMenu()) {\n\t\t<app-expandable-menu />\n\t}\n\t<div class=\"layout-content-wrapper\">\n\t\t<app-topbar />\n\t\t<div class=\"layout-content\">\n\t\t\t<router-outlet />\n\t\t</div>\n\t</div>\n\t<app-profilemenu />\n\t<app-history-sidebar />\n\t<app-site-map-sidebar />\n\t<app-favorite-pages-sidebar />\n\t<app-notifications-sidebar />\n\t<!--<app-config></app-config>-->\n\t<app-chatbot></app-chatbot>\n\t<div class=\"layout-mask\" (click)=\"hideMenu()\"></div>\n</div>\n\n<p-toast key=\"toast-root\" />\n<p-dialog key=\"dialog-root\" />\n<p-messages key=\"messages-root\" />\n<p-confirmPopup key=\"confirmPopup-root\" />\n<p-confirmDialog key=\"confirmDialog-root\" />\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i4.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: ConfirmPopupModule }, { kind: "component", type: i5.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i6.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i7.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i8.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: AppTopbarComponent, selector: "app-topbar" }, { kind: "component", type: AppProfileSidebarComponent, selector: "app-profilemenu" }, { kind: "component", type: HistorySidebarComponent, selector: "app-history-sidebar" }, { kind: "component", type: SiteMapSidebarComponent, selector: "app-site-map-sidebar" }, { kind: "component", type: FavoritePagesSidebarComponent, selector: "app-favorite-pages-sidebar" }, { kind: "component", type: AppChatbotComponent, selector: "app-chatbot" }, { kind: "component", type: ExpandableMenuComponent, selector: "app-expandable-menu" }, { kind: "component", type: StaticSidebarComponent, selector: "app-static-sidebar" }, { kind: "component", type: NotificationsSidebarComponent, selector: "app-notifications-sidebar" }] }); }
128
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppLayoutComponent, isStandalone: true, selector: "app-layout", viewQueries: [{ propertyName: "expandableMenuComponent", first: true, predicate: ExpandableMenuComponent, descendants: true }, { propertyName: "staticSidebarComponent", first: true, predicate: StaticSidebarComponent, descendants: true }, { propertyName: "appTopbar", first: true, predicate: AppTopbarComponent, descendants: true }], ngImport: i0, template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\r\n\t@if (layoutService.shouldShowStaticSidebar()) {\r\n\t\t<app-static-sidebar />\r\n\t} @else if (layoutService.shouldShowExpandableMenu()) {\r\n\t\t<app-expandable-menu />\r\n\t}\r\n\t<div class=\"layout-content-wrapper\">\r\n\t\t<app-topbar />\r\n\t\t<div class=\"layout-content\">\r\n\t\t\t<router-outlet />\r\n\t\t</div>\r\n\t</div>\r\n\t<app-profilemenu />\r\n\t<app-history-sidebar />\r\n\t<app-site-map-sidebar />\r\n\t<app-favorite-pages-sidebar />\r\n\t<app-notifications-sidebar />\r\n\t<!--<app-config></app-config>-->\r\n\t<app-chatbot></app-chatbot>\r\n\t<div class=\"layout-mask\" (click)=\"hideMenu()\"></div>\r\n</div>\r\n\r\n<p-toast key=\"toast-root\" />\r\n<p-dialog key=\"dialog-root\" />\r\n<p-messages key=\"messages-root\" />\r\n<p-confirmPopup key=\"confirmPopup-root\" />\r\n<p-confirmDialog key=\"confirmDialog-root\" />\r\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i4.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: ConfirmPopupModule }, { kind: "component", type: i5.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i6.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i7.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i8.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: AppTopbarComponent, selector: "app-topbar" }, { kind: "component", type: AppProfileSidebarComponent, selector: "app-profilemenu" }, { kind: "component", type: HistorySidebarComponent, selector: "app-history-sidebar" }, { kind: "component", type: SiteMapSidebarComponent, selector: "app-site-map-sidebar" }, { kind: "component", type: FavoritePagesSidebarComponent, selector: "app-favorite-pages-sidebar" }, { kind: "component", type: AppChatbotComponent, selector: "app-chatbot" }, { kind: "component", type: ExpandableMenuComponent, selector: "app-expandable-menu" }, { kind: "component", type: StaticSidebarComponent, selector: "app-static-sidebar" }, { kind: "component", type: NotificationsSidebarComponent, selector: "app-notifications-sidebar" }] }); }
129
129
  }
130
130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppLayoutComponent, decorators: [{
131
131
  type: Component,
@@ -146,7 +146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
146
146
  ExpandableMenuComponent,
147
147
  StaticSidebarComponent,
148
148
  NotificationsSidebarComponent
149
- ], template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\n\t@if (layoutService.shouldShowStaticSidebar()) {\n\t\t<app-static-sidebar />\n\t} @else if (layoutService.shouldShowExpandableMenu()) {\n\t\t<app-expandable-menu />\n\t}\n\t<div class=\"layout-content-wrapper\">\n\t\t<app-topbar />\n\t\t<div class=\"layout-content\">\n\t\t\t<router-outlet />\n\t\t</div>\n\t</div>\n\t<app-profilemenu />\n\t<app-history-sidebar />\n\t<app-site-map-sidebar />\n\t<app-favorite-pages-sidebar />\n\t<app-notifications-sidebar />\n\t<!--<app-config></app-config>-->\n\t<app-chatbot></app-chatbot>\n\t<div class=\"layout-mask\" (click)=\"hideMenu()\"></div>\n</div>\n\n<p-toast key=\"toast-root\" />\n<p-dialog key=\"dialog-root\" />\n<p-messages key=\"messages-root\" />\n<p-confirmPopup key=\"confirmPopup-root\" />\n<p-confirmDialog key=\"confirmDialog-root\" />\n" }]
149
+ ], template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\r\n\t@if (layoutService.shouldShowStaticSidebar()) {\r\n\t\t<app-static-sidebar />\r\n\t} @else if (layoutService.shouldShowExpandableMenu()) {\r\n\t\t<app-expandable-menu />\r\n\t}\r\n\t<div class=\"layout-content-wrapper\">\r\n\t\t<app-topbar />\r\n\t\t<div class=\"layout-content\">\r\n\t\t\t<router-outlet />\r\n\t\t</div>\r\n\t</div>\r\n\t<app-profilemenu />\r\n\t<app-history-sidebar />\r\n\t<app-site-map-sidebar />\r\n\t<app-favorite-pages-sidebar />\r\n\t<app-notifications-sidebar />\r\n\t<!--<app-config></app-config>-->\r\n\t<app-chatbot></app-chatbot>\r\n\t<div class=\"layout-mask\" (click)=\"hideMenu()\"></div>\r\n</div>\r\n\r\n<p-toast key=\"toast-root\" />\r\n<p-dialog key=\"dialog-root\" />\r\n<p-messages key=\"messages-root\" />\r\n<p-confirmPopup key=\"confirmPopup-root\" />\r\n<p-confirmDialog key=\"confirmDialog-root\" />\r\n" }]
150
150
  }], ctorParameters: () => [{ type: i1.AppMenuService }, { type: i2.LayoutService }, { type: i0.Renderer2 }, { type: i3.Router }], propDecorators: { expandableMenuComponent: [{
151
151
  type: ViewChild,
152
152
  args: [ExpandableMenuComponent]
@@ -157,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
157
157
  type: ViewChild,
158
158
  args: [AppTopbarComponent]
159
159
  }] } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvbGF5b3V0L2FwcC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2xheW91dC9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUF3QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFnQixNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJNUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDbkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUs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d0JBQ1gsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2Qiw2QkFBNkI7d0JBQzdCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLDZCQUE2QjtxQkFDN0I7NEpBU21DLHVCQUF1QjtzQkFBMUQsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBQ0Msc0JBQXNCO3NCQUF4RCxTQUFTO3VCQUFDLHNCQUFzQjtnQkFDRixTQUFTO3NCQUF2QyxTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlck91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xuaW1wb3J0IHsgQ29uZmlybVBvcHVwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtcG9wdXAnO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgTWVzc2FnZXNNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lc3NhZ2VzJztcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLm1lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBQcm9maWxlU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4uL3Byb2ZpbGVTaWRlYmFyL2FwcC5wcm9maWxlc2lkZWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGlzdG9yeVNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuLi9oaXN0b3J5L2hpc3Rvcnktc2lkZWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2l0ZU1hcFNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuLi9zaXRlLW1hcC9zaXRlLW1hcC1zaWRlYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYXZvcml0ZVBhZ2VzU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4uL2Zhdm9yaXRlLXBhZ2VzL2Zhdm9yaXRlLXBhZ2VzLXNpZGViYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcFRvcGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3RvcGJhci9hcHAudG9wYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBDaGF0Ym90Q29tcG9uZW50IH0gZnJvbSAnLi4vY2hhdGJvdC9hcHAuY2hhdGJvdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXhwYW5kYWJsZU1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9leHBhbmRhYmxlTWVudS9leHBhbmRhYmxlLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFN0YXRpY1NpZGViYXJDb21wb25lbnQgfSBmcm9tICcuLi9zdGF0aWMtc2lkZWJhci9zdGF0aWMtc2lkZWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc1NpZGViYXJDb21wb25lbnQgfSBmcm9tICcuLi9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtc2lkZWJhci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0c2VsZWN0b3I6ICdhcHAtbGF5b3V0Jyxcblx0aW1wb3J0czogW1xuXHRcdE5nQ2xhc3MsXG5cdFx0Um91dGVyT3V0bGV0LFxuXHRcdENvbmZpcm1EaWFsb2dNb2R1bGUsXG5cdFx0Q29uZmlybVBvcHVwTW9kdWxlLFxuXHRcdERpYWxvZ01vZHVsZSxcblx0XHRNZXNzYWdlc01vZHVsZSxcblx0XHRUb2FzdE1vZHVsZSxcblx0XHRBcHBUb3BiYXJDb21wb25lbnQsXG5cdFx0QXBwUHJvZmlsZVNpZGViYXJDb21wb25lbnQsXG5cdFx0SGlzdG9yeVNpZGViYXJDb21wb25lbnQsXG5cdFx0U2l0ZU1hcFNpZGViYXJDb21wb25lbnQsXG5cdFx0RmF2b3JpdGVQYWdlc1NpZGViYXJDb21wb25lbnQsXG5cdFx0QXBwQ2hhdGJvdENvbXBvbmVudCxcblx0XHRFeHBhbmRhYmxlTWVudUNvbXBvbmVudCxcblx0XHRTdGF0aWNTaWRlYmFyQ29tcG9uZW50LFxuXHRcdE5vdGlmaWNhdGlvbnNTaWRlYmFyQ29tcG9uZW50XG5cdF0sXG5cdHRlbXBsYXRlVXJsOiAnLi9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBcHBMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXHRvdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblx0bWVudU91dHNpZGVDbGlja0xpc3RlbmVyOiBhbnk7XG5cdG1lbnVTY3JvbGxMaXN0ZW5lcjogYW55O1xuXHRnbG9iYWxUaGlzOiBhbnkgPSBnbG9iYWxUaGlzO1xuXG5cdEBWaWV3Q2hpbGQoRXhwYW5kYWJsZU1lbnVDb21wb25lbnQpIGV4cGFuZGFibGVNZW51Q29tcG9uZW50ITogRXhwYW5kYWJsZU1lbnVDb21wb25lbnQ7XG5cdEBWaWV3Q2hpbGQoU3RhdGljU2lkZWJhckNvbXBvbmVudCkgc3RhdGljU2lkZWJhckNvbXBvbmVudCE6IFN0YXRpY1NpZGViYXJDb21wb25lbnQ7XG5cdEBWaWV3Q2hpbGQoQXBwVG9wYmFyQ29tcG9uZW50KSBhcHBUb3BiYXIhOiBBcHBUb3BiYXJDb21wb25lbnQ7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBtZW51U2VydmljZTogQXBwTWVudVNlcnZpY2UsXG5cdFx0cHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXG5cdFx0cHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG5cdFx0cHVibGljIHJvdXRlcjogUm91dGVyXG5cdCkge1xuXHRcdHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uID0gdGhpcy5sYXlvdXRTZXJ2aWNlLm92ZXJsYXlPcGVuJC5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0aWYgKCF0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuXHRcdFx0XHR0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdjbGljaycsIChldmVudCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGlzT3V0c2lkZUNsaWNrZWQgPSAhKFxuXHRcdFx0XHRcdFx0dGhpcy5hcHBUb3BiYXIubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoZXZlbnQudGFyZ2V0KSB8fFxuXHRcdFx0XHRcdFx0dGhpcy5hcHBUb3BiYXIubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgfHxcblx0XHRcdFx0XHRcdCh0aGlzLmV4cGFuZGFibGVNZW51Q29tcG9uZW50ICYmIHRoaXMuaXNFbGVtZW50SW5zaWRlKGV2ZW50LnRhcmdldCwgJ2FwcC1leHBhbmRhYmxlLW1lbnUnKSkgfHxcblx0XHRcdFx0XHRcdCh0aGlzLnN0YXRpY1NpZGViYXJDb21wb25lbnQgJiYgdGhpcy5pc0VsZW1lbnRJbnNpZGUoZXZlbnQudGFyZ2V0LCAnYXBwLXN0YXRpYy1zaWRlYmFyJykpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAoaXNPdXRzaWRlQ2xpY2tlZCkge1xuXHRcdFx0XHRcdFx0dGhpcy5oaWRlTWVudSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSkge1xuXHRcdFx0XHR0aGlzLmJsb2NrQm9keVNjcm9sbCgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSkuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdGlmICghdGhpcy5sYXlvdXRTZXJ2aWNlLm1mZUFwcEl0ZW1DbGlja2VkKCkpIHRoaXMuaGlkZU1lbnUoKTtcblx0XHR9KTtcblx0fVxuXG5cdGJsb2NrQm9keVNjcm9sbCgpOiB2b2lkIHtcblx0XHRpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QpIHtcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnYmxvY2tlZC1zY3JvbGwnKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgKz0gJyBibG9ja2VkLXNjcm9sbCc7XG5cdFx0fVxuXHR9XG5cblx0dW5ibG9ja0JvZHlTY3JvbGwoKTogdm9pZCB7XG5cdFx0aWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0KSB7XG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2Jsb2NrZWQtc2Nyb2xsJyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lID0gZG9jdW1lbnQuYm9keS5jbGFzc05hbWUucmVwbGFjZShcblx0XHRcdFx0bmV3IFJlZ0V4cCgnKF58XFxcXGIpJyArICdibG9ja2VkLXNjcm9sbCcuc3BsaXQoJyAnKS5qb2luKCd8JykgKyAnKFxcXFxifCQpJywgJ2dpJyksXG5cdFx0XHRcdCcgJ1xuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHQvLyBIZWxwZXIgbWV0aG9kIHRvIGNoZWNrIGlmIGVsZW1lbnQgaXMgaW5zaWRlIGEgc3BlY2lmaWMgY29tcG9uZW50XG5cdHByaXZhdGUgaXNFbGVtZW50SW5zaWRlKGVsZW1lbnQ6IGFueSwgc2VsZWN0b3I6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdGlmICghZWxlbWVudCkgcmV0dXJuIGZhbHNlO1xuXHRcdFxuXHRcdGxldCBjdXJyZW50RWxlbWVudCA9IGVsZW1lbnQ7XG5cdFx0d2hpbGUgKGN1cnJlbnRFbGVtZW50ICYmIGN1cnJlbnRFbGVtZW50ICE9PSBkb2N1bWVudCkge1xuXHRcdFx0aWYgKGN1cnJlbnRFbGVtZW50LnRhZ05hbWUgJiYgY3VycmVudEVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSBzZWxlY3Rvcikge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHRcdGN1cnJlbnRFbGVtZW50ID0gY3VycmVudEVsZW1lbnQucGFyZW50RWxlbWVudDtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0aGlkZU1lbnUoKSB7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUgPSBmYWxzZTtcblx0XHR0aGlzLm1lbnVTZXJ2aWNlLnJlc2V0KCk7XG5cblx0XHRpZiAodGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcblx0XHRcdHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKCk7XG5cdFx0XHR0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lciA9IG51bGw7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMubWVudVNjcm9sbExpc3RlbmVyKSB7XG5cdFx0XHR0aGlzLm1lbnVTY3JvbGxMaXN0ZW5lcigpO1xuXHRcdFx0dGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIgPSBudWxsO1xuXHRcdH1cblxuXHRcdHRoaXMudW5ibG9ja0JvZHlTY3JvbGwoKTtcblx0fVxuXG5cdGdldCBjb250YWluZXJDbGFzcygpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0J2xheW91dC1saWdodCc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5jb2xvclNjaGVtZSA9PT0gJ2xpZ2h0Jyxcblx0XHRcdCdsYXlvdXQtZGltJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lID09PSAnZGltJyxcblx0XHRcdCdsYXlvdXQtZGFyayc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5jb2xvclNjaGVtZSA9PT0gJ2RhcmsnLFxuXHRcdFx0J2xheW91dC1jb2xvcnNjaGVtZS1tZW51JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVUaGVtZSA9PT0gJ2NvbG9yU2NoZW1lJyxcblx0XHRcdCdsYXlvdXQtcHJpbWFyeWNvbG9yLW1lbnUnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudVRoZW1lID09PSAncHJpbWFyeUNvbG9yJyxcblx0XHRcdCdsYXlvdXQtdHJhbnNwYXJlbnQtbWVudSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51VGhlbWUgPT09ICd0cmFuc3BhcmVudCcsXG5cdFx0XHQnbGF5b3V0LXN0YXRpYyc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3N0YXRpYycsXG5cdFx0XHQnbGF5b3V0LWV4cGFuZGFibGUnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdleHBhbmRhYmxlJyxcblx0XHRcdCdsYXlvdXQtc3RhdGljLWluYWN0aXZlJzogXG5cdFx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3N0YXRpYycgJiYgXG5cdFx0XHRcdCF0aGlzLmxheW91dFNlcnZpY2Uuc2hvdWxkU2hvd1N0YXRpY1NpZGViYXIoKSxcblx0XHRcdCdsYXlvdXQtc3RhdGljLWNvbGxhcHNlZCc6IFxuXHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdzdGF0aWMnICYmIFxuXHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2UuaXNTdGF0aWNTaWRlYmFyQ29sbGFwc2VkKCksXG5cdFx0XHQnbGF5b3V0LW1vYmlsZS1hY3RpdmUnOiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSxcblx0XHRcdCdwLWlucHV0LWZpbGxlZCc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5pbnB1dFN0eWxlID09PSAnZmlsbGVkJyxcblx0XHRcdCdwLXJpcHBsZS1kaXNhYmxlZCc6ICF0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkucmlwcGxlLFxuXHRcdFx0J25ldy1zaWRlYmFyLWxheW91dCc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ2V4cGFuZGFibGUnLFxuXHRcdFx0J3NlY29uZGFyeS1leHBhbmRlZCc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zZWNvbmRhcnlTaWRlYmFyRXhwYW5kZWRcblx0XHR9O1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0aWYgKHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uKSB7XG5cdFx0XHR0aGlzLm92ZXJsYXlNZW51T3BlblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuXHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcblx0XHR9XG5cdH1cbn0iLCI8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzXCI+XG5cdEBpZiAobGF5b3V0U2VydmljZS5zaG91bGRTaG93U3RhdGljU2lkZWJhcigpKSB7XG5cdFx0PGFwcC1zdGF0aWMtc2lkZWJhciAvPlxuXHR9IEBlbHNlIGlmIChsYXlvdXRTZXJ2aWNlLnNob3VsZFNob3dFeHBhbmRhYmxlTWVudSgpKSB7XG5cdFx0PGFwcC1leHBhbmRhYmxlLW1lbnUgLz5cblx0fVxuXHQ8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRlbnQtd3JhcHBlclwiPlxuXHRcdDxhcHAtdG9wYmFyIC8+XG5cdFx0PGRpdiBjbGFzcz1cImxheW91dC1jb250ZW50XCI+XG5cdFx0XHQ8cm91dGVyLW91dGxldCAvPlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PGFwcC1wcm9maWxlbWVudSAvPlxuXHQ8YXBwLWhpc3Rvcnktc2lkZWJhciAvPlxuXHQ8YXBwLXNpdGUtbWFwLXNpZGViYXIgLz5cblx0PGFwcC1mYXZvcml0ZS1wYWdlcy1zaWRlYmFyIC8+XG5cdDxhcHAtbm90aWZpY2F0aW9ucy1zaWRlYmFyIC8+XG5cdDwhLS08YXBwLWNvbmZpZz48L2FwcC1jb25maWc+LS0+XG5cdDxhcHAtY2hhdGJvdD48L2FwcC1jaGF0Ym90PlxuXHQ8ZGl2IGNsYXNzPVwibGF5b3V0LW1hc2tcIiAoY2xpY2spPVwiaGlkZU1lbnUoKVwiPjwvZGl2PlxuPC9kaXY+XG5cbjxwLXRvYXN0IGtleT1cInRvYXN0LXJvb3RcIiAvPlxuPHAtZGlhbG9nIGtleT1cImRpYWxvZy1yb290XCIgLz5cbjxwLW1lc3NhZ2VzIGtleT1cIm1lc3NhZ2VzLXJvb3RcIiAvPlxuPHAtY29uZmlybVBvcHVwIGtleT1cImNvbmZpcm1Qb3B1cC1yb290XCIgLz5cbjxwLWNvbmZpcm1EaWFsb2cga2V5PVwiY29uZmlybURpYWxvZy1yb290XCIgLz5cbiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvbGF5b3V0L2FwcC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2xheW91dC9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUF3QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFnQixNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJNUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDNUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDbkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUs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d0JBQ1gsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2Qiw2QkFBNkI7d0JBQzdCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixzQkFBc0I7d0JBQ3RCLDZCQUE2QjtxQkFDN0I7NEpBU21DLHVCQUF1QjtzQkFBMUQsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBQ0Msc0JBQXNCO3NCQUF4RCxTQUFTO3VCQUFDLHNCQUFzQjtnQkFDRixTQUFTO3NCQUF2QyxTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyLCBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlybURpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY29uZmlybWRpYWxvZyc7XHJcbmltcG9ydCB7IENvbmZpcm1Qb3B1cE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY29uZmlybXBvcHVwJztcclxuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNZXNzYWdlc01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvbWVzc2FnZXMnO1xyXG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xyXG5cclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hcHAubWVudS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwUHJvZmlsZVNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuLi9wcm9maWxlU2lkZWJhci9hcHAucHJvZmlsZXNpZGViYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSGlzdG9yeVNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuLi9oaXN0b3J5L2hpc3Rvcnktc2lkZWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaXRlTWFwU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4uL3NpdGUtbWFwL3NpdGUtbWFwLXNpZGViYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmF2b3JpdGVQYWdlc1NpZGViYXJDb21wb25lbnQgfSBmcm9tICcuLi9mYXZvcml0ZS1wYWdlcy9mYXZvcml0ZS1wYWdlcy1zaWRlYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcFRvcGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3RvcGJhci9hcHAudG9wYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcENoYXRib3RDb21wb25lbnQgfSBmcm9tICcuLi9jaGF0Ym90L2FwcC5jaGF0Ym90LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEV4cGFuZGFibGVNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vZXhwYW5kYWJsZU1lbnUvZXhwYW5kYWJsZS1tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN0YXRpY1NpZGViYXJDb21wb25lbnQgfSBmcm9tICcuLi9zdGF0aWMtc2lkZWJhci9zdGF0aWMtc2lkZWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4uL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1zaWRlYmFyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXBwLWxheW91dCcsXHJcblx0aW1wb3J0czogW1xyXG5cdFx0TmdDbGFzcyxcclxuXHRcdFJvdXRlck91dGxldCxcclxuXHRcdENvbmZpcm1EaWFsb2dNb2R1bGUsXHJcblx0XHRDb25maXJtUG9wdXBNb2R1bGUsXHJcblx0XHREaWFsb2dNb2R1bGUsXHJcblx0XHRNZXNzYWdlc01vZHVsZSxcclxuXHRcdFRvYXN0TW9kdWxlLFxyXG5cdFx0QXBwVG9wYmFyQ29tcG9uZW50LFxyXG5cdFx0QXBwUHJvZmlsZVNpZGViYXJDb21wb25lbnQsXHJcblx0XHRIaXN0b3J5U2lkZWJhckNvbXBvbmVudCxcclxuXHRcdFNpdGVNYXBTaWRlYmFyQ29tcG9uZW50LFxyXG5cdFx0RmF2b3JpdGVQYWdlc1NpZGViYXJDb21wb25lbnQsXHJcblx0XHRBcHBDaGF0Ym90Q29tcG9uZW50LFxyXG5cdFx0RXhwYW5kYWJsZU1lbnVDb21wb25lbnQsXHJcblx0XHRTdGF0aWNTaWRlYmFyQ29tcG9uZW50LFxyXG5cdFx0Tm90aWZpY2F0aW9uc1NpZGViYXJDb21wb25lbnRcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHRvdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHRtZW51T3V0c2lkZUNsaWNrTGlzdGVuZXI6IGFueTtcclxuXHRtZW51U2Nyb2xsTGlzdGVuZXI6IGFueTtcclxuXHRnbG9iYWxUaGlzOiBhbnkgPSBnbG9iYWxUaGlzO1xyXG5cclxuXHRAVmlld0NoaWxkKEV4cGFuZGFibGVNZW51Q29tcG9uZW50KSBleHBhbmRhYmxlTWVudUNvbXBvbmVudCE6IEV4cGFuZGFibGVNZW51Q29tcG9uZW50O1xyXG5cdEBWaWV3Q2hpbGQoU3RhdGljU2lkZWJhckNvbXBvbmVudCkgc3RhdGljU2lkZWJhckNvbXBvbmVudCE6IFN0YXRpY1NpZGViYXJDb21wb25lbnQ7XHJcblx0QFZpZXdDaGlsZChBcHBUb3BiYXJDb21wb25lbnQpIGFwcFRvcGJhciE6IEFwcFRvcGJhckNvbXBvbmVudDtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIG1lbnVTZXJ2aWNlOiBBcHBNZW51U2VydmljZSxcclxuXHRcdHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG5cdFx0cHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcblx0XHRwdWJsaWMgcm91dGVyOiBSb3V0ZXJcclxuXHQpIHtcclxuXHRcdHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uID0gdGhpcy5sYXlvdXRTZXJ2aWNlLm92ZXJsYXlPcGVuJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG5cdFx0XHRpZiAoIXRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XHJcblx0XHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoZXZlbnQpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IGlzT3V0c2lkZUNsaWNrZWQgPSAhKFxyXG5cdFx0XHRcdFx0XHR0aGlzLmFwcFRvcGJhci5tZW51QnV0dG9uLm5hdGl2ZUVsZW1lbnQuaXNTYW1lTm9kZShldmVudC50YXJnZXQpIHx8XHJcblx0XHRcdFx0XHRcdHRoaXMuYXBwVG9wYmFyLm1lbnVCdXR0b24ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpIHx8XHJcblx0XHRcdFx0XHRcdCh0aGlzLmV4cGFuZGFibGVNZW51Q29tcG9uZW50ICYmIHRoaXMuaXNFbGVtZW50SW5zaWRlKGV2ZW50LnRhcmdldCwgJ2FwcC1leHBhbmRhYmxlLW1lbnUnKSkgfHxcclxuXHRcdFx0XHRcdFx0KHRoaXMuc3RhdGljU2lkZWJhckNvbXBvbmVudCAmJiB0aGlzLmlzRWxlbWVudEluc2lkZShldmVudC50YXJnZXQsICdhcHAtc3RhdGljLXNpZGViYXInKSlcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRpZiAoaXNPdXRzaWRlQ2xpY2tlZCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmhpZGVNZW51KCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmICh0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSkge1xyXG5cdFx0XHRcdHRoaXMuYmxvY2tCb2R5U2Nyb2xsKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcblx0XHRcdGlmICghdGhpcy5sYXlvdXRTZXJ2aWNlLm1mZUFwcEl0ZW1DbGlja2VkKCkpIHRoaXMuaGlkZU1lbnUoKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0YmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xyXG5cdFx0aWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0KSB7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnYmxvY2tlZC1zY3JvbGwnKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lICs9ICcgYmxvY2tlZC1zY3JvbGwnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dW5ibG9ja0JvZHlTY3JvbGwoKTogdm9pZCB7XHJcblx0XHRpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QpIHtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdibG9ja2VkLXNjcm9sbCcpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgPSBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZS5yZXBsYWNlKFxyXG5cdFx0XHRcdG5ldyBSZWdFeHAoJyhefFxcXFxiKScgKyAnYmxvY2tlZC1zY3JvbGwnLnNwbGl0KCcgJykuam9pbignfCcpICsgJyhcXFxcYnwkKScsICdnaScpLFxyXG5cdFx0XHRcdCcgJ1xyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gSGVscGVyIG1ldGhvZCB0byBjaGVjayBpZiBlbGVtZW50IGlzIGluc2lkZSBhIHNwZWNpZmljIGNvbXBvbmVudFxyXG5cdHByaXZhdGUgaXNFbGVtZW50SW5zaWRlKGVsZW1lbnQ6IGFueSwgc2VsZWN0b3I6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKCFlbGVtZW50KSByZXR1cm4gZmFsc2U7XHJcblx0XHRcclxuXHRcdGxldCBjdXJyZW50RWxlbWVudCA9IGVsZW1lbnQ7XHJcblx0XHR3aGlsZSAoY3VycmVudEVsZW1lbnQgJiYgY3VycmVudEVsZW1lbnQgIT09IGRvY3VtZW50KSB7XHJcblx0XHRcdGlmIChjdXJyZW50RWxlbWVudC50YWdOYW1lICYmIGN1cnJlbnRFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gc2VsZWN0b3IpIHtcclxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRjdXJyZW50RWxlbWVudCA9IGN1cnJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRoaWRlTWVudSgpIHtcclxuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlID0gZmFsc2U7XHJcblx0XHR0aGlzLm1lbnVTZXJ2aWNlLnJlc2V0KCk7XHJcblxyXG5cdFx0aWYgKHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XHJcblx0XHRcdHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKCk7XHJcblx0XHRcdHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyID0gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIpIHtcclxuXHRcdFx0dGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIoKTtcclxuXHRcdFx0dGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIgPSBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMudW5ibG9ja0JvZHlTY3JvbGwoKTtcclxuXHR9XHJcblxyXG5cdGdldCBjb250YWluZXJDbGFzcygpIHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdCdsYXlvdXQtbGlnaHQnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuY29sb3JTY2hlbWUgPT09ICdsaWdodCcsXHJcblx0XHRcdCdsYXlvdXQtZGltJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lID09PSAnZGltJyxcclxuXHRcdFx0J2xheW91dC1kYXJrJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lID09PSAnZGFyaycsXHJcblx0XHRcdCdsYXlvdXQtY29sb3JzY2hlbWUtbWVudSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51VGhlbWUgPT09ICdjb2xvclNjaGVtZScsXHJcblx0XHRcdCdsYXlvdXQtcHJpbWFyeWNvbG9yLW1lbnUnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudVRoZW1lID09PSAncHJpbWFyeUNvbG9yJyxcclxuXHRcdFx0J2xheW91dC10cmFuc3BhcmVudC1tZW51JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVUaGVtZSA9PT0gJ3RyYW5zcGFyZW50JyxcclxuXHRcdFx0J2xheW91dC1zdGF0aWMnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdzdGF0aWMnLFxyXG5cdFx0XHQnbGF5b3V0LWV4cGFuZGFibGUnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdleHBhbmRhYmxlJyxcclxuXHRcdFx0J2xheW91dC1zdGF0aWMtaW5hY3RpdmUnOiBcclxuXHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdzdGF0aWMnICYmIFxyXG5cdFx0XHRcdCF0aGlzLmxheW91dFNlcnZpY2Uuc2hvdWxkU2hvd1N0YXRpY1NpZGViYXIoKSxcclxuXHRcdFx0J2xheW91dC1zdGF0aWMtY29sbGFwc2VkJzogXHJcblx0XHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc3RhdGljJyAmJiBcclxuXHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2UuaXNTdGF0aWNTaWRlYmFyQ29sbGFwc2VkKCksXHJcblx0XHRcdCdsYXlvdXQtbW9iaWxlLWFjdGl2ZSc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlLFxyXG5cdFx0XHQncC1pbnB1dC1maWxsZWQnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuaW5wdXRTdHlsZSA9PT0gJ2ZpbGxlZCcsXHJcblx0XHRcdCdwLXJpcHBsZS1kaXNhYmxlZCc6ICF0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkucmlwcGxlLFxyXG5cdFx0XHQnbmV3LXNpZGViYXItbGF5b3V0JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnZXhwYW5kYWJsZScsXHJcblx0XHRcdCdzZWNvbmRhcnktZXhwYW5kZWQnOiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc2Vjb25kYXJ5U2lkZWJhckV4cGFuZGVkXHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHRpZiAodGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24pIHtcclxuXHRcdFx0dGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcclxuXHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcclxuXHRcdH1cclxuXHR9XHJcbn0iLCI8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzXCI+XHJcblx0QGlmIChsYXlvdXRTZXJ2aWNlLnNob3VsZFNob3dTdGF0aWNTaWRlYmFyKCkpIHtcclxuXHRcdDxhcHAtc3RhdGljLXNpZGViYXIgLz5cclxuXHR9IEBlbHNlIGlmIChsYXlvdXRTZXJ2aWNlLnNob3VsZFNob3dFeHBhbmRhYmxlTWVudSgpKSB7XHJcblx0XHQ8YXBwLWV4cGFuZGFibGUtbWVudSAvPlxyXG5cdH1cclxuXHQ8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRlbnQtd3JhcHBlclwiPlxyXG5cdFx0PGFwcC10b3BiYXIgLz5cclxuXHRcdDxkaXYgY2xhc3M9XCJsYXlvdXQtY29udGVudFwiPlxyXG5cdFx0XHQ8cm91dGVyLW91dGxldCAvPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblx0PGFwcC1wcm9maWxlbWVudSAvPlxyXG5cdDxhcHAtaGlzdG9yeS1zaWRlYmFyIC8+XHJcblx0PGFwcC1zaXRlLW1hcC1zaWRlYmFyIC8+XHJcblx0PGFwcC1mYXZvcml0ZS1wYWdlcy1zaWRlYmFyIC8+XHJcblx0PGFwcC1ub3RpZmljYXRpb25zLXNpZGViYXIgLz5cclxuXHQ8IS0tPGFwcC1jb25maWc+PC9hcHAtY29uZmlnPi0tPlxyXG5cdDxhcHAtY2hhdGJvdD48L2FwcC1jaGF0Ym90PlxyXG5cdDxkaXYgY2xhc3M9XCJsYXlvdXQtbWFza1wiIChjbGljayk9XCJoaWRlTWVudSgpXCI+PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPHAtdG9hc3Qga2V5PVwidG9hc3Qtcm9vdFwiIC8+XHJcbjxwLWRpYWxvZyBrZXk9XCJkaWFsb2ctcm9vdFwiIC8+XHJcbjxwLW1lc3NhZ2VzIGtleT1cIm1lc3NhZ2VzLXJvb3RcIiAvPlxyXG48cC1jb25maXJtUG9wdXAga2V5PVwiY29uZmlybVBvcHVwLXJvb3RcIiAvPlxyXG48cC1jb25maXJtRGlhbG9nIGtleT1cImNvbmZpcm1EaWFsb2ctcm9vdFwiIC8+XHJcbiJdfQ==
@@ -28,17 +28,17 @@ export class MFELayoutComponent {
28
28
  })), { initialValue: true });
29
29
  }
30
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MFELayoutComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: MFELayoutComponent, isStandalone: true, selector: "mfe-layout", ngImport: i0, template: `
32
- <app-breadcrumb class="topbar-breadcrumb"></app-breadcrumb>
33
- @if (!loading()) {
34
- <router-outlet />
35
- }
36
-
37
- <p-toast key="toast-root"></p-toast>
38
- <p-dialog key="dialog-root"></p-dialog>
39
- <p-messages key="messages-root"></p-messages>
40
- <p-confirmPopup key="confirmPopup-root"></p-confirmPopup>
41
- <p-confirmDialog key="confirmDialog-root"></p-confirmDialog>
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: MFELayoutComponent, isStandalone: true, selector: "mfe-layout", ngImport: i0, template: `
32
+ <app-breadcrumb class="topbar-breadcrumb"></app-breadcrumb>
33
+ @if (!loading()) {
34
+ <router-outlet />
35
+ }
36
+
37
+ <p-toast key="toast-root"></p-toast>
38
+ <p-dialog key="dialog-root"></p-dialog>
39
+ <p-messages key="messages-root"></p-messages>
40
+ <p-confirmPopup key="confirmPopup-root"></p-confirmPopup>
41
+ <p-confirmDialog key="confirmDialog-root"></p-confirmDialog>
42
42
  `, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i2.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: ConfirmPopupModule }, { kind: "component", type: i3.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i5.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i6.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: AppBreadcrumbComponent, selector: "app-breadcrumb" }] }); }
43
43
  }
44
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MFELayoutComponent, decorators: [{
@@ -46,19 +46,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
46
46
  args: [{
47
47
  standalone: true,
48
48
  selector: 'mfe-layout',
49
- template: `
50
- <app-breadcrumb class="topbar-breadcrumb"></app-breadcrumb>
51
- @if (!loading()) {
52
- <router-outlet />
53
- }
54
-
55
- <p-toast key="toast-root"></p-toast>
56
- <p-dialog key="dialog-root"></p-dialog>
57
- <p-messages key="messages-root"></p-messages>
58
- <p-confirmPopup key="confirmPopup-root"></p-confirmPopup>
59
- <p-confirmDialog key="confirmDialog-root"></p-confirmDialog>
49
+ template: `
50
+ <app-breadcrumb class="topbar-breadcrumb"></app-breadcrumb>
51
+ @if (!loading()) {
52
+ <router-outlet />
53
+ }
54
+
55
+ <p-toast key="toast-root"></p-toast>
56
+ <p-dialog key="dialog-root"></p-dialog>
57
+ <p-messages key="messages-root"></p-messages>
58
+ <p-confirmPopup key="confirmPopup-root"></p-confirmPopup>
59
+ <p-confirmDialog key="confirmDialog-root"></p-confirmDialog>
60
60
  `,
61
61
  imports: [RouterOutlet, ConfirmDialogModule, ConfirmPopupModule, DialogModule, MessagesModule, ToastModule, AppBreadcrumbComponent]
62
62
  }]
63
63
  }], ctorParameters: () => [{ type: i1.Router }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZlLmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvbGF5b3V0L21mZS5sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFDTixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGVBQWUsRUFDZixpQkFBaUIsRUFFakIsWUFBWSxFQUNaLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7O0FBbUJoRixNQUFNLE9BQU8sa0JBQWtCO0lBRzlCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3RCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2IsSUFDQyxLQUFLLFlBQVksYUFBYTtnQkFDOUIsS0FBSyxZQUFZLGdCQUFnQjtnQkFDakMsS0FBSyxZQUFZLGVBQWU7Z0JBQ2hDLEtBQUssWUFBWSxpQkFBaUI7Z0JBRWxDLE9BQU8sS0FBSyxDQUFDO1lBRWQsT0FBTyxJQUFJLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDRixFQUNELEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUN0QixDQUFDO0lBQ0YsQ0FBQzs4R0FwQlcsa0JBQWtCO2tHQUFsQixrQkFBa0Isc0VBZHBCOzs7Ozs7Ozs7OztFQVdULDREQUNTLFlBQVksMEpBQUUsbUJBQW1CLG9tQkFBRSxrQkFBa0IseVBBQUUsWUFBWSx1dUJBQUUsY0FBYywyUkFBRSxXQUFXLHdXQUFFLHNCQUFzQjs7MkZBRXRILGtCQUFrQjtrQkFqQjlCLFNBQVM7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0VBV1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixDQUFDO2lCQUNuSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG5cdE5hdmlnYXRpb25DYW5jZWwsXG5cdE5hdmlnYXRpb25FbmQsXG5cdE5hdmlnYXRpb25FcnJvcixcblx0TmF2aWdhdGlvblNraXBwZWQsXG5cdFJvdXRlcixcblx0Um91dGVyT3V0bGV0XG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xuaW1wb3J0IHsgQ29uZmlybVBvcHVwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtcG9wdXAnO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgTWVzc2FnZXNNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lc3NhZ2VzJztcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5cbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4uL2JyZWFkY3J1bWIvYXBwLmJyZWFkY3J1bWIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNlbGVjdG9yOiAnbWZlLWxheW91dCcsXG5cdHRlbXBsYXRlOiBgXG5cdCA8YXBwLWJyZWFkY3J1bWIgY2xhc3M9XCJ0b3BiYXItYnJlYWRjcnVtYlwiPjwvYXBwLWJyZWFkY3J1bWI+XG5cdFx0QGlmICghbG9hZGluZygpKSB7XG5cdFx0XHQ8cm91dGVyLW91dGxldCAvPlxuXHRcdH1cblxuXHRcdDxwLXRvYXN0IGtleT1cInRvYXN0LXJvb3RcIj48L3AtdG9hc3Q+XG5cdFx0PHAtZGlhbG9nIGtleT1cImRpYWxvZy1yb290XCI+PC9wLWRpYWxvZz5cblx0XHQ8cC1tZXNzYWdlcyBrZXk9XCJtZXNzYWdlcy1yb290XCI+PC9wLW1lc3NhZ2VzPlxuXHRcdDxwLWNvbmZpcm1Qb3B1cCBrZXk9XCJjb25maXJtUG9wdXAtcm9vdFwiPjwvcC1jb25maXJtUG9wdXA+XG5cdFx0PHAtY29uZmlybURpYWxvZyBrZXk9XCJjb25maXJtRGlhbG9nLXJvb3RcIj48L3AtY29uZmlybURpYWxvZz5cblx0YCxcblx0aW1wb3J0czogW1JvdXRlck91dGxldCwgQ29uZmlybURpYWxvZ01vZHVsZSwgQ29uZmlybVBvcHVwTW9kdWxlLCBEaWFsb2dNb2R1bGUsIE1lc3NhZ2VzTW9kdWxlLCBUb2FzdE1vZHVsZSwgQXBwQnJlYWRjcnVtYkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTUZFTGF5b3V0Q29tcG9uZW50IHtcblx0bG9hZGluZzogU2lnbmFsPGJvb2xlYW4+O1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcblx0XHR0aGlzLmxvYWRpbmcgPSB0b1NpZ25hbChcblx0XHR0aGlzLnJvdXRlci5ldmVudHMucGlwZShcblx0XHRcdG1hcCgoZXZlbnQpID0+IHtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCB8fFxuXHRcdFx0XHRcdGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCB8fFxuXHRcdFx0XHRcdGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yIHx8XG5cdFx0XHRcdFx0ZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU2tpcHBlZFxuXHRcdFx0XHQpXG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fSlcblx0XHQpLFxuXHRcdHsgaW5pdGlhbFZhbHVlOiB0cnVlIH1cblx0KTtcblx0fVxuXG59Il19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZlLmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvbGF5b3V0L21mZS5sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFDTixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGVBQWUsRUFDZixpQkFBaUIsRUFFakIsWUFBWSxFQUNaLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7O0FBbUJoRixNQUFNLE9BQU8sa0JBQWtCO0lBRzlCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3RCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2IsSUFDQyxLQUFLLFlBQVksYUFBYTtnQkFDOUIsS0FBSyxZQUFZLGdCQUFnQjtnQkFDakMsS0FBSyxZQUFZLGVBQWU7Z0JBQ2hDLEtBQUssWUFBWSxpQkFBaUI7Z0JBRWxDLE9BQU8sS0FBSyxDQUFDO1lBRWQsT0FBTyxJQUFJLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDRixFQUNELEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUN0QixDQUFDO0lBQ0YsQ0FBQzs4R0FwQlcsa0JBQWtCO2tHQUFsQixrQkFBa0Isc0VBZHBCOzs7Ozs7Ozs7OztFQVdULDREQUNTLFlBQVksMEpBQUUsbUJBQW1CLG9tQkFBRSxrQkFBa0IseVBBQUUsWUFBWSx1dUJBQUUsY0FBYywyUkFBRSxXQUFXLHdXQUFFLHNCQUFzQjs7MkZBRXRILGtCQUFrQjtrQkFqQjlCLFNBQVM7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0VBV1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixDQUFDO2lCQUNuSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQge1xyXG5cdE5hdmlnYXRpb25DYW5jZWwsXHJcblx0TmF2aWdhdGlvbkVuZCxcclxuXHROYXZpZ2F0aW9uRXJyb3IsXHJcblx0TmF2aWdhdGlvblNraXBwZWQsXHJcblx0Um91dGVyLFxyXG5cdFJvdXRlck91dGxldFxyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtZGlhbG9nJztcclxuaW1wb3J0IHsgQ29uZmlybVBvcHVwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb25maXJtcG9wdXAnO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1lc3NhZ2VzTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9tZXNzYWdlcyc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcblxyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXBwQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4uL2JyZWFkY3J1bWIvYXBwLmJyZWFkY3J1bWIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdtZmUtbGF5b3V0JyxcclxuXHR0ZW1wbGF0ZTogYFxyXG5cdCA8YXBwLWJyZWFkY3J1bWIgY2xhc3M9XCJ0b3BiYXItYnJlYWRjcnVtYlwiPjwvYXBwLWJyZWFkY3J1bWI+XHJcblx0XHRAaWYgKCFsb2FkaW5nKCkpIHtcclxuXHRcdFx0PHJvdXRlci1vdXRsZXQgLz5cclxuXHRcdH1cclxuXHJcblx0XHQ8cC10b2FzdCBrZXk9XCJ0b2FzdC1yb290XCI+PC9wLXRvYXN0PlxyXG5cdFx0PHAtZGlhbG9nIGtleT1cImRpYWxvZy1yb290XCI+PC9wLWRpYWxvZz5cclxuXHRcdDxwLW1lc3NhZ2VzIGtleT1cIm1lc3NhZ2VzLXJvb3RcIj48L3AtbWVzc2FnZXM+XHJcblx0XHQ8cC1jb25maXJtUG9wdXAga2V5PVwiY29uZmlybVBvcHVwLXJvb3RcIj48L3AtY29uZmlybVBvcHVwPlxyXG5cdFx0PHAtY29uZmlybURpYWxvZyBrZXk9XCJjb25maXJtRGlhbG9nLXJvb3RcIj48L3AtY29uZmlybURpYWxvZz5cclxuXHRgLFxyXG5cdGltcG9ydHM6IFtSb3V0ZXJPdXRsZXQsIENvbmZpcm1EaWFsb2dNb2R1bGUsIENvbmZpcm1Qb3B1cE1vZHVsZSwgRGlhbG9nTW9kdWxlLCBNZXNzYWdlc01vZHVsZSwgVG9hc3RNb2R1bGUsIEFwcEJyZWFkY3J1bWJDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNRkVMYXlvdXRDb21wb25lbnQge1xyXG5cdGxvYWRpbmc6IFNpZ25hbDxib29sZWFuPjtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG5cdFx0dGhpcy5sb2FkaW5nID0gdG9TaWduYWwoXHJcblx0XHR0aGlzLnJvdXRlci5ldmVudHMucGlwZShcclxuXHRcdFx0bWFwKChldmVudCkgPT4ge1xyXG5cdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCB8fFxyXG5cdFx0XHRcdFx0ZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsIHx8XHJcblx0XHRcdFx0XHRldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvciB8fFxyXG5cdFx0XHRcdFx0ZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU2tpcHBlZFxyXG5cdFx0XHRcdClcclxuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH0pXHJcblx0XHQpLFxyXG5cdFx0eyBpbml0aWFsVmFsdWU6IHRydWUgfVxyXG5cdCk7XHJcblx0fVxyXG5cclxufSJdfQ==
@@ -170,7 +170,7 @@ export class NotificationsSidebarComponent {
170
170
  this.visible = false;
171
171
  }
172
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\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-notifications-sidebar w-full sm:w-30rem\"\n\t*transloco=\"let t; read: 'notifications'\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\n\t\t\t<div class=\"flex align-items-center\">\n\t\t\t\t<i class=\"pi pi-bell text-primary text-xl\"></i>\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('title') }}</span>\n\t\t\t</div>\n\t\t</div>\n\t</ng-template>\n\n\t<div class=\"notifications-content\">\n\t\t@if (notifications().length > 0) {\n\t\t\t<div class=\"notifications-list\">\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\n\t\t\t\t\t<div class=\"notifications-items\">\n\t\t\t\t\t\t@for (notification of notifications(); track trackByNotificationId($index, notification)) {\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"notification-item\"\n\t\t\t\t\t\t\t\t[class.unread-item]=\"!notification.read\"\n\t\t\t\t\t\t\t\t(click)=\"\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.TODO_ITEM ||\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.BATCH_JOB\n\t\t\t\t\t\t\t\t\t) ?\n\t\t\t\t\t\t\t\t\t\tmarkNotificationAsRead(notification)\n\t\t\t\t\t\t\t\t\t:\tnull\n\t\t\t\t\t\t\t\t\">\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.SMS) {\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon sms-icon\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faMessage\" />\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon unread\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelope\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon read\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelopeOpen\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"title-text ml-2\">{{ getNotificationTitle(notification) }}</p>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<span class=\"notification-date\">{{ formatNotificationDate(notification.sendingDate) }}</span>\n\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faCircle\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"unread-dot\"\n\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('markAsRead')\"\n\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"markNotificationAsReadOnDotIcon(notification); $event.stopPropagation()\">\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"item-meta\"></div>\n\t\t\t\t\t\t\t\t\t@if (getNotificationContent(notification)) {\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-content-preview\">\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.EMAIL) {\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>\n\t\t\t\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"text-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ getNotificationContent(notification) }}\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</p-scrollPanel>\n\t\t\t</div>\n\t\t} @else {\n\t\t\t<div class=\"empty-state\">\n\t\t\t\t<div class=\"empty-content\">\n\t\t\t\t\t<i class=\"pi pi-bell empty-icon\"></i>\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noNotifications') }}</h3>\n\t\t\t\t\t<p class=\"empty-message\">{{ t('noNotificationsDescription') }}</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\n\t\t<div class=\"flex justify-content-center p-2 border-top-1 surface-border\">\n\t\t\t<aril-button\n\t\t\t\t[label]=\"t('allShow')\"\n\t\t\t\ticon=\"EXTERNAL_LINK\"\n\t\t\t\tcolor=\"primary\"\n\t\t\t\tsize=\"md\"\n\t\t\t\t(clickEvent)=\"navigateToAllNotifications()\">\n\t\t\t</aril-button>\n\t\t</div>\n\t</div>\n\n\t<p-confirmDialog></p-confirmDialog>\n</p-sidebar>\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" }] }); }
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
174
  }
175
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NotificationsSidebarComponent, decorators: [{
176
176
  type: Component,
@@ -186,6 +186,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
186
186
  BadgeModule,
187
187
  FontAwesomeModule,
188
188
  SafePipe
189
- ], template: "<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-notifications-sidebar w-full sm:w-30rem\"\n\t*transloco=\"let t; read: 'notifications'\">\n\t<ng-template pTemplate=\"header\">\n\t\t<div class=\"flex align-items-center justify-content-between w-full\">\n\t\t\t<div class=\"flex align-items-center\">\n\t\t\t\t<i class=\"pi pi-bell text-primary text-xl\"></i>\n\t\t\t\t<span class=\"font-bold text-lg\">{{ t('title') }}</span>\n\t\t\t</div>\n\t\t</div>\n\t</ng-template>\n\n\t<div class=\"notifications-content\">\n\t\t@if (notifications().length > 0) {\n\t\t\t<div class=\"notifications-list\">\n\t\t\t\t<p-scrollPanel [style]=\"{ width: '100%', height: '100%' }\">\n\t\t\t\t\t<div class=\"notifications-items\">\n\t\t\t\t\t\t@for (notification of notifications(); track trackByNotificationId($index, notification)) {\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"notification-item\"\n\t\t\t\t\t\t\t\t[class.unread-item]=\"!notification.read\"\n\t\t\t\t\t\t\t\t(click)=\"\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.TODO_ITEM ||\n\t\t\t\t\t\t\t\t\t\tnotification?.detailNotificationType === DetailNotificationTypeEnum.BATCH_JOB\n\t\t\t\t\t\t\t\t\t) ?\n\t\t\t\t\t\t\t\t\t\tmarkNotificationAsRead(notification)\n\t\t\t\t\t\t\t\t\t:\tnull\n\t\t\t\t\t\t\t\t\">\n\t\t\t\t\t\t\t\t<div class=\"item-content\">\n\t\t\t\t\t\t\t\t\t<div class=\"item-header\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-title\">\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.SMS) {\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon sms-icon\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faMessage\" />\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon unread\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelope\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"notification-icon email-icon read\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<fa-icon [icon]=\"regularIcons.faEnvelopeOpen\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"title-text ml-2\">{{ getNotificationTitle(notification) }}</p>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<span class=\"notification-date\">{{ formatNotificationDate(notification.sendingDate) }}</span>\n\t\t\t\t\t\t\t\t\t\t@if (!notification.read) {\n\t\t\t\t\t\t\t\t\t\t\t<fa-icon\n\t\t\t\t\t\t\t\t\t\t\t\t[icon]=\"solidIcons.faCircle\"\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"unread-dot\"\n\t\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"t('markAsRead')\"\n\t\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"markNotificationAsReadOnDotIcon(notification); $event.stopPropagation()\">\n\t\t\t\t\t\t\t\t\t\t\t</fa-icon>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"item-meta\"></div>\n\t\t\t\t\t\t\t\t\t@if (getNotificationContent(notification)) {\n\t\t\t\t\t\t\t\t\t\t<div class=\"item-content-preview\">\n\t\t\t\t\t\t\t\t\t\t\t@if (notification.type === ActivityTypesEnum.EMAIL) {\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>\n\t\t\t\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"text-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ getNotificationContent(notification) }}\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t</p-scrollPanel>\n\t\t\t</div>\n\t\t} @else {\n\t\t\t<div class=\"empty-state\">\n\t\t\t\t<div class=\"empty-content\">\n\t\t\t\t\t<i class=\"pi pi-bell empty-icon\"></i>\n\t\t\t\t\t<h3 class=\"empty-title\">{{ t('noNotifications') }}</h3>\n\t\t\t\t\t<p class=\"empty-message\">{{ t('noNotificationsDescription') }}</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\n\t\t<div class=\"flex justify-content-center p-2 border-top-1 surface-border\">\n\t\t\t<aril-button\n\t\t\t\t[label]=\"t('allShow')\"\n\t\t\t\ticon=\"EXTERNAL_LINK\"\n\t\t\t\tcolor=\"primary\"\n\t\t\t\tsize=\"md\"\n\t\t\t\t(clickEvent)=\"navigateToAllNotifications()\">\n\t\t\t</aril-button>\n\t\t</div>\n\t</div>\n\n\t<p-confirmDialog></p-confirmDialog>\n</p-sidebar>\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"] }]
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
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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Q0FDRyxJQUFJLFlBQ04sMkJBQTJCLFdBQzVCO3dCQUNSLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsUUFBUTtxQkFDUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgZWZmZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQmFkZ2VNb2R1bGUgfSBmcm9tICdwcmltZW5nL2JhZGdlJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbmZpcm1kaWFsb2cnO1xuaW1wb3J0IHsgUGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9wYWdpbmF0b3InO1xuaW1wb3J0IHsgU2Nyb2xsUGFuZWxNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Njcm9sbHBhbmVsJztcbmltcG9ydCB7IFNpZGViYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL3NpZGViYXInO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5cbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xuaW1wb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSAna2V5Y2xvYWstYW5ndWxhcic7XG5pbXBvcnQgeyBTdWJqZWN0LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnYXJpbC91aS9idXR0b24nO1xuaW1wb3J0IHsgcmVndWxhckljb25zLCBzb2xpZEljb25zIH0gZnJvbSAnYXJpbC91dGlsL2xpYic7XG5pbXBvcnQgeyBTYWZlUGlwZSB9IGZyb20gJ2FyaWwvdXRpbC9waXBlcyc7XG5cbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQgeyBBY3Rpdml0eVR5cGVzRW51bSwgRGV0YWlsTm90aWZpY2F0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ludGVyZmFjZXMvZW51bSc7XG5pbXBvcnQgeyBTbXNFbWFpbEF1ZGl0UmVzcG9uc2VEVE8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2Uvbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNlbGVjdG9yOiAnYXBwLW5vdGlmaWNhdGlvbnMtc2lkZWJhcicsXG5cdGltcG9ydHM6IFtcblx0XHRDb21tb25Nb2R1bGUsXG5cdFx0U2lkZWJhck1vZHVsZSxcblx0XHRTY3JvbGxQYW5lbE1vZHVsZSxcblx0XHRDb25maXJtRGlhbG9nTW9kdWxlLFxuXHRcdFBhZ2luYXRvck1vZHVsZSxcblx0XHRCdXR0b25Db21wb25lbnQsXG5cdFx0VHJhbnNsb2NvTW9kdWxlLFxuXHRcdFRvb2x0aXBNb2R1bGUsXG5cdFx0QmFkZ2VNb2R1bGUsXG5cdFx0Rm9udEF3ZXNvbWVNb2R1bGUsXG5cdFx0U2FmZVBpcGVcblx0XSxcblx0dGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbnMtc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbnMtc2lkZWJhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNTaWRlYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblx0bm90aWZpY2F0aW9ucyA9IHNpZ25hbDxTbXNFbWFpbEF1ZGl0UmVzcG9uc2VEVE9bXT4oW10pO1xuXHRzZWxlY3RlZE5vdGlmaWNhdGlvbjogU21zRW1haWxBdWRpdFJlc3BvbnNlRFRPIHwgbnVsbCA9IG51bGw7XG5cblx0QWN0aXZpdHlUeXBlc0VudW0gPSBBY3Rpdml0eVR5cGVzRW51bTtcblx0RGV0YWlsTm90aWZpY2F0aW9uVHlwZUVudW0gPSBEZXRhaWxOb3RpZmljYXRpb25UeXBlRW51bTtcblxuXHRyZWd1bGFySWNvbnMgPSByZWd1bGFySWNvbnM7XG5cdHNvbGlkSWNvbnMgPSBzb2xpZEljb25zO1xuXG5cdG9uZU1vbnRoQWdvID0gbmV3IERhdGUobmV3IERhdGUoKS5nZXRUaW1lKCkgLSAzMCAqIDI0ICogNjAgKiA2MCAqIDEwMDApO1xuXG5cdHByaXZhdGUgc3ViamVjdHMgPSB7XG5cdFx0bWFya0FzUmVhZDogbmV3IFN1YmplY3Q8c3RyaW5nPigpLFxuXHRcdGxvYWROb3RpZmljYXRpb25zOiBuZXcgU3ViamVjdDx2b2lkPigpXG5cdH07XG5cblx0bWFya0FzUmVhZFNlcnZpY2UgPSB0b1NpZ25hbChcblx0XHR0aGlzLnN1YmplY3RzLm1hcmtBc1JlYWQucGlwZShzd2l0Y2hNYXAoKGlkKSA9PiB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLm1hcmtBc1JlYWROb3RpZmljYXRpb24oaWQpKSlcblx0KTtcblxuXHRnZXQgZ2V0VXNlclBob25lcygpOiBzdHJpbmdbXSB7XG5cdFx0Y29uc3QgcGhvbmVzID0gdGhpcy5rZXljbG9hay5nZXRLZXljbG9ha0luc3RhbmNlKCkucHJvZmlsZT8uYXR0cmlidXRlcz8uWydwaG9uZSddO1xuXHRcdGlmIChwaG9uZXMgJiYgQXJyYXkuaXNBcnJheShwaG9uZXMpKSB7XG5cdFx0XHRyZXR1cm4gcGhvbmVzO1xuXHRcdH0gZWxzZSBpZiAocGhvbmVzICYmIHR5cGVvZiBwaG9uZXMgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRyZXR1cm4gW3Bob25lc107XG5cdFx0fVxuXHRcdHJldHVybiBbXTtcblx0fVxuXG5cdGdldCBnZXRVc2VyTWFpbCgpIHtcblx0XHRyZXR1cm4gdGhpcy5rZXljbG9hay5nZXRLZXljbG9ha0luc3RhbmNlKCkucHJvZmlsZT8uZW1haWwgYXMgc3RyaW5nO1xuXHR9XG5cblx0bG9hZE5vdGlmaWNhdGlvbnNTZXJ2aWNlID0gdG9TaWduYWwoXG5cdFx0dGhpcy5zdWJqZWN0cy5sb2FkTm90aWZpY2F0aW9ucy5waXBlKFxuXHRcdFx0c3dpdGNoTWFwKCgpID0+XG5cdFx0XHRcdHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UuZ2V0Tm90aWZpY2F0aW9ucyh7XG5cdFx0XHRcdFx0cGFnZXI6IHtcblx0XHRcdFx0XHRcdHBhZ2VTaXplOiAxMCxcblx0XHRcdFx0XHRcdHBhZ2VOdW1iZXI6IDFcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHN0YXJ0RGF0ZTogdGhpcy5vbmVNb250aEFnby5kYXRlVG9Mb25nKCd0aW1lJykgfHwgMCxcblx0XHRcdFx0XHRlbmREYXRlOiBuZXcgRGF0ZSgpLmRhdGVUb0xvbmcoJ3RpbWUnKSB8fCAwLFxuXHRcdFx0XHRcdHJlYWQ6IGZhbHNlLFxuXHRcdFx0XHRcdHRvTGlzdDogW3RoaXMuZ2V0VXNlck1haWwsIC4uLnRoaXMuZ2V0VXNlclBob25lc10sXG5cdFx0XHRcdH0pXG5cdFx0XHQpXG5cdFx0KVxuXHQpO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uc1NlcnZpY2U6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcblx0XHRwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuXHRcdHByaXZhdGUgcmVhZG9ubHkga2V5Y2xvYWs6IEtleWNsb2FrU2VydmljZVxuXHQpIHtcblx0XHR0aGlzLmluaXRpYWxpemVFZmZlY3RzKCk7XG5cdH1cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLmxvYWROb3RpZmljYXRpb25zKCk7XG5cdH1cblxuXHRwcml2YXRlIGxvYWROb3RpZmljYXRpb25zKCk6IHZvaWQge1xuXHRcdHRoaXMuc3ViamVjdHMubG9hZE5vdGlmaWNhdGlvbnMubmV4dCgpO1xuXHR9XG5cblx0cHJpdmF0ZSBpbml0aWFsaXplRWZmZWN0cygpOiB2b2lkIHtcblx0XHRlZmZlY3QoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHNlcnZpY2UgPSB0aGlzLmxvYWROb3RpZmljYXRpb25zU2VydmljZSgpO1xuXHRcdFx0XHRpZiAoc2VydmljZT8ucmVzcG9uc2UpIHtcblx0XHRcdFx0XHR0aGlzLm5vdGlmaWNhdGlvbnMuc2V0KHNlcnZpY2UucmVzcG9uc2UucmVzdWx0KTtcblx0XHRcdFx0XHQvLyBVcGRhdGUgdW5yZWFkIGNvdW50IGluIGxheW91dFNlcnZpY2Vcblx0XHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc2V0VW5yZWFkTm90aWZpY2F0aW9uQ291bnQoc2VydmljZT8ucmVzcG9uc2UucmVzdWx0SW5mby50b3RhbEl0ZW0gfHwgMCk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cblx0XHQpO1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBzZXJ2aWNlID0gdGhpcy5tYXJrQXNSZWFkU2VydmljZSgpO1xuXHRcdFx0aWYgKHNlcnZpY2U/LnJlc3BvbnNlKSB7XG5cdFx0XHRcdHRoaXMubG9hZE5vdGlmaWNhdGlvbnMoKTtcblxuXHRcdFx0XHRpZiAodGhpcy5zZWxlY3RlZE5vdGlmaWNhdGlvbj8uZGV0YWlsTm90aWZpY2F0aW9uVHlwZSA9PT0gRGV0YWlsTm90aWZpY2F0aW9uVHlwZUVudW0uVE9ET19JVEVNKSB7XG5cdFx0XHRcdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoW2BtbmcvdG9kby10YXNrcy9kZXRhaWwvJHt0aGlzLnNlbGVjdGVkTm90aWZpY2F0aW9uPy5yZWZlcmVuY2VJZH1gXSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUubm90aWZpY2F0aW9uc1NpZGViYXJWaXNpYmxlO1xuXHR9XG5cblx0c2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUubm90aWZpY2F0aW9uc1NpZGViYXJWaXNpYmxlID0gdmFsdWU7XG5cdH1cblxuXHRtYXJrTm90aWZpY2F0aW9uQXNSZWFkKG5vdGlmaWNhdGlvbjogU21zRW1haWxBdWRpdFJlc3BvbnNlRFRPKTogdm9pZCB7XG5cdFx0dGhpcy5zZWxlY3RlZE5vdGlmaWNhdGlvbiA9IG5vdGlmaWNhdGlvbjtcblx0XHR0aGlzLnN1YmplY3RzLm1hcmtBc1JlYWQubmV4dChub3RpZmljYXRpb24uaWQpO1xuXHRcdHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuXG5cdFx0aWYgKG5vdGlmaWNhdGlvbj8uZGV0YWlsTm90aWZpY2F0aW9uVHlwZSA9PT0gRGV0YWlsTm90aWZpY2F0aW9uVHlwZUVudW0uVE9ET19JVEVNKSB7XG5cdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYG1uZy90b2RvLXRhc2tzL2RldGFpbC8ke25vdGlmaWNhdGlvbj8ucmVmZXJlbmNlSWR9YF0pO1xuXHRcdH0gZWxzZSBpZiAobm90aWZpY2F0aW9uPy5kZXRhaWxOb3RpZmljYXRpb25UeXBlID09PSBEZXRhaWxOb3RpZmljYXRpb25UeXBlRW51bS5CQVRDSF9KT0IpIHtcblx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFtgbW5nL2J1bGstb3BlcmF0aW9ucy8ke25vdGlmaWNhdGlvbj8ucmVmZXJlbmNlSWR9YF0pO1xuXHRcdH1cblx0fVxuXG5cdG1hcmtOb3RpZmljYXRpb25Bc1JlYWRPbkRvdEljb24obm90aWZpY2F0aW9uOiBTbXNFbWFpbEF1ZGl0UmVzcG9uc2VEVE8pOiB2b2lkIHtcblx0XHRpZiAoIW5vdGlmaWNhdGlvbi5yZWFkKSB7XG5cdFx0XHR0aGlzLnN1YmplY3RzLm1hcmtBc1JlYWQubmV4dChub3RpZmljYXRpb24uaWQpO1xuXHRcdH1cblx0fVxuXG5cdHRyYWNrQnlOb3RpZmljYXRpb25JZChpbmRleDogbnVtYmVyLCBub3RpZmljYXRpb246IFNtc0VtYWlsQXVkaXRSZXNwb25zZURUTyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIG5vdGlmaWNhdGlvbi5pZDtcblx0fVxuXG5cdGdldE5vdGlmaWNhdGlvblRpdGxlKG5vdGlmaWNhdGlvbjogU21zRW1haWxBdWRpdFJlc3BvbnNlRFRPKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gbm90aWZpY2F0aW9uLnRlbXBsYXRlVGl0bGUgfHwgbm90aWZpY2F0aW9uLnRlbXBsYXRlQ29kZSB8fCAnJztcblx0fVxuXG5cdGdldE5vdGlmaWNhdGlvbkNvbnRlbnQobm90aWZpY2F0aW9uOiBTbXNFbWFpbEF1ZGl0UmVzcG9uc2VEVE8pOiBzdHJpbmcge1xuXHRcdGNvbnN0IHRydW5jYXRlZCA9XG5cdFx0XHRub3RpZmljYXRpb24uY29udGVudD8ubGVuZ3RoISA+IDIwMCA/IG5vdGlmaWNhdGlvbi5jb250ZW50Py5zdWJzdHJpbmcoMCwgMjAwKSArICcuLi4nIDogbm90aWZpY2F0aW9uLmNvbnRlbnQ7XG5cdFx0cmV0dXJuIHRydW5jYXRlZCB8fCAnJztcblx0fVxuXG5cdGZvcm1hdE5vdGlmaWNhdGlvbkRhdGUoc3RhcnREYXRlOiBudW1iZXIgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuXHRcdGlmICghc3RhcnREYXRlKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXHRcdGNvbnN0IGRhdGVTdHIgPSBzdGFydERhdGUudG9TdHJpbmcoKTtcblx0XHRjb25zdCB5ZWFyID0gcGFyc2VJbnQoZGF0ZVN0ci5zdWJzdHJpbmcoMCwgNCkpO1xuXHRcdGNvbnN0IG1vbnRoID0gcGFyc2VJbnQoZGF0ZVN0ci5zdWJzdHJpbmcoNCwgNikpIC0gMTtcblx0XHRjb25zdCBkYXkgPSBwYXJzZUludChkYXRlU3RyLnN1YnN0cmluZyg2LCA4KSk7XG5cdFx0Y29uc3QgaG91ciA9IHBhcnNlSW50KGRhdGVTdHIuc3Vic3RyaW5nKDgsIDEwKSk7XG5cdFx0Y29uc3QgbWludXRlID0gcGFyc2VJbnQoZGF0ZVN0ci5zdWJzdHJpbmcoMTAsIDEyKSk7XG5cdFx0Y29uc3Qgc2Vjb25kID0gcGFyc2VJbnQoZGF0ZVN0ci5zdWJzdHJpbmcoMTIsIDE0KSk7XG5cblx0XHRjb25zdCBub3RpZmljYXRpb25EYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQpO1xuXHRcdGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG5cdFx0Y29uc3QgZGlmZk1zID0gbm93LmdldFRpbWUoKSAtIG5vdGlmaWNhdGlvbkRhdGUuZ2V0VGltZSgpO1xuXG5cdFx0Y29uc3QgZGlmZk1pbnV0ZXMgPSBNYXRoLmZsb29yKGRpZmZNcyAvICgxMDAwICogNjApKTtcblx0XHRjb25zdCBkaWZmSG91cnMgPSBNYXRoLmZsb29yKGRpZmZNcyAvICgxMDAwICogNjAgKiA2MCkpO1xuXHRcdGNvbnN0IGRpZmZEYXlzID0gTWF0aC5mbG9vcihkaWZmTXMgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xuXHRcdGNvbnN0IGRpZmZXZWVrcyA9IE1hdGguZmxvb3IoZGlmZkRheXMgLyA3KTtcblx0XHRjb25zdCBkaWZmTW9udGhzID0gTWF0aC5mbG9vcihkaWZmRGF5cyAvIDMwKTtcblxuXHRcdGlmIChkaWZmTWludXRlcyA8IDEpIHtcblx0XHRcdHJldHVybiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdub3RpZmljYXRpb25zLnRpbWUuanVzdE5vdycpO1xuXHRcdH0gZWxzZSBpZiAoZGlmZk1pbnV0ZXMgPCA2MCkge1xuXHRcdFx0cmV0dXJuIHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ25vdGlmaWNhdGlvbnMudGltZS5taW51dGVzQWdvJywgeyBjb3VudDogZGlmZk1pbnV0ZXMgfSk7XG5cdFx0fSBlbHNlIGlmIChkaWZmSG91cnMgPCAyNCkge1xuXHRcdFx0cmV0dXJuIHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ25vdGlmaWNhdGlvbnMudGltZS5ob3Vyc0FnbycsIHsgY291bnQ6IGRpZmZIb3VycyB9KTtcblx0XHR9IGVsc2UgaWYgKGRpZmZEYXlzIDwgNykge1xuXHRcdFx0cmV0dXJuIHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ25vdGlmaWNhdGlvbnMudGltZS5kYXlzQWdvJywgeyBjb3VudDogZGlmZkRheXMgfSk7XG5cdFx0fSBlbHNlIGlmIChkaWZmV2Vla3MgPCA0KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbm90aWZpY2F0aW9ucy50aW1lLndlZWtzQWdvJywgeyBjb3VudDogZGlmZldlZWtzIH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbm90aWZpY2F0aW9ucy50aW1lLm1vbnRoc0FnbycsIHsgY291bnQ6IGRpZmZNb250aHMgfSk7XG5cdFx0fVxuXHR9XG5cblx0bmF2aWdhdGVUb0FsbE5vdGlmaWNhdGlvbnMoKTogdm9pZCB7XG5cdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoWydtbmcvY29udHJvbC1tYW5hZ2VtZW50L3Ntcy1lbWFpbC1hdWRpdCddKTtcblx0XHR0aGlzLnZpc2libGUgPSBmYWxzZTtcblx0fVxufVxuIiwiPHAtc2lkZWJhclxuXHRbKHZpc2libGUpXT1cInZpc2libGVcIlxuXHRwb3NpdGlvbj1cInJpZ2h0XCJcblx0W3RyYW5zaXRpb25PcHRpb25zXT1cIicuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknXCJcblx0c3R5bGVDbGFzcz1cImxheW91dC1ub3RpZmljYXRpb25zLXNpZGViYXIgdy1mdWxsIHNtOnctMzByZW1cIlxuXHQqdHJhbnNsb2NvPVwibGV0IHQ7IHJlYWQ6ICdub3RpZmljYXRpb25zJ1wiPlxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG5cdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctZnVsbFwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG5cdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktYmVsbCB0ZXh0LXByaW1hcnkgdGV4dC14bFwiPjwvaT5cblx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZ1wiPnt7IHQoJ3RpdGxlJykgfX08L3NwYW4+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9uZy10ZW1wbGF0ZT5cblxuXHQ8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9ucy1jb250ZW50XCI+XG5cdFx0QGlmIChub3RpZmljYXRpb25zKCkubGVuZ3RoID4gMCkge1xuXHRcdFx0PGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtbGlzdFwiPlxuXHRcdFx0XHQ8cC1zY3JvbGxQYW5lbCBbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMDAlJyB9XCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtaXRlbXNcIj5cblx0XHRcdFx0XHRcdEBmb3IgKG5vdGlmaWNhdGlvbiBvZiBub3RpZmljYXRpb25zKCk7IHRyYWNrIHRyYWNrQnlOb3RpZmljYXRpb25JZCgkaW5kZXgsIG5vdGlmaWNhdGlvbikpIHtcblx0XHRcdFx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibm90aWZpY2F0aW9uLWl0ZW1cIlxuXHRcdFx0XHRcdFx0XHRcdFtjbGFzcy51bnJlYWQtaXRlbV09XCIhbm90aWZpY2F0aW9uLnJlYWRcIlxuXHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJcblx0XHRcdFx0XHRcdFx0XHRcdChcblx0XHRcdFx0XHRcdFx0XHRcdFx0bm90aWZpY2F0aW9uPy5kZXRhaWxOb3RpZmljYXRpb25UeXBlID09PSBEZXRhaWxOb3RpZmljYXRpb25UeXBlRW51bS5UT0RPX0lURU0gfHxcblx0XHRcdFx0XHRcdFx0XHRcdFx0bm90aWZpY2F0aW9uPy5kZXRhaWxOb3RpZmljYXRpb25UeXBlID09PSBEZXRhaWxOb3RpZmljYXRpb25UeXBlRW51bS5CQVRDSF9KT0Jcblx0XHRcdFx0XHRcdFx0XHRcdCkgP1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRtYXJrTm90aWZpY2F0aW9uQXNSZWFkKG5vdGlmaWNhdGlvbilcblx0XHRcdFx0XHRcdFx0XHRcdDpcdG51bGxcblx0XHRcdFx0XHRcdFx0XHRcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaXRlbS1jb250ZW50XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaXRlbS1oZWFkZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIml0ZW0tdGl0bGVcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRAaWYgKG5vdGlmaWNhdGlvbi50eXBlID09PSBBY3Rpdml0eVR5cGVzRW51bS5TTVMpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24taWNvbiBzbXMtaWNvblwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZmEtaWNvbiBbaWNvbl09XCJyZWd1bGFySWNvbnMuZmFNZXNzYWdlXCIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0QGlmICghbm90aWZpY2F0aW9uLnJlYWQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pY29uIGVtYWlsLWljb24gdW5yZWFkXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGZhLWljb24gW2ljb25dPVwicmVndWxhckljb25zLmZhRW52ZWxvcGVcIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWljb24gZW1haWwtaWNvbiByZWFkXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGZhLWljb24gW2ljb25dPVwicmVndWxhckljb25zLmZhRW52ZWxvcGVPcGVuXCIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxwIGNsYXNzPVwidGl0bGUtdGV4dCBtbC0yXCI+e3sgZ2V0Tm90aWZpY2F0aW9uVGl0bGUobm90aWZpY2F0aW9uKSB9fTwvcD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwibm90aWZpY2F0aW9uLWRhdGVcIj57eyBmb3JtYXROb3RpZmljYXRpb25EYXRlKG5vdGlmaWNhdGlvbi5zZW5kaW5nRGF0ZSkgfX08L3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoIW5vdGlmaWNhdGlvbi5yZWFkKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGZhLWljb25cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtpY29uXT1cInNvbGlkSWNvbnMuZmFDaXJjbGVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ1bnJlYWQtZG90XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCJ0KCdtYXJrQXNSZWFkJylcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwibWFya05vdGlmaWNhdGlvbkFzUmVhZE9uRG90SWNvbihub3RpZmljYXRpb24pOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2ZhLWljb24+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIml0ZW0tbWV0YVwiPjwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmIChnZXROb3RpZmljYXRpb25Db250ZW50KG5vdGlmaWNhdGlvbikpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIml0ZW0tY29udGVudC1wcmV2aWV3XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0QGlmIChub3RpZmljYXRpb24udHlwZSA9PT0gQWN0aXZpdHlUeXBlc0VudW0uRU1BSUwpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgW2lubmVySFRNTF09XCJub3RpZmljYXRpb24uY29udGVudCB8IHNhZmU6ICdodG1sJ1wiIGNsYXNzPVwiaHRtbC1wcmV2aWV3IGxpbmUtY2xhbXAtM1wiPjwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJ0ZXh0LWNvbnRlbnRcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgZ2V0Tm90aWZpY2F0aW9uQ29udGVudChub3RpZmljYXRpb24pIH19XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3A+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvcC1zY3JvbGxQYW5lbD5cblx0XHRcdDwvZGl2PlxuXHRcdH0gQGVsc2Uge1xuXHRcdFx0PGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJlbXB0eS1jb250ZW50XCI+XG5cdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1iZWxsIGVtcHR5LWljb25cIj48L2k+XG5cdFx0XHRcdFx0PGgzIGNsYXNzPVwiZW1wdHktdGl0bGVcIj57eyB0KCdub05vdGlmaWNhdGlvbnMnKSB9fTwvaDM+XG5cdFx0XHRcdFx0PHAgY2xhc3M9XCJlbXB0eS1tZXNzYWdlXCI+e3sgdCgnbm9Ob3RpZmljYXRpb25zRGVzY3JpcHRpb24nKSB9fTwvcD5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHR9XG5cblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHAtMiBib3JkZXItdG9wLTEgc3VyZmFjZS1ib3JkZXJcIj5cblx0XHRcdDxhcmlsLWJ1dHRvblxuXHRcdFx0XHRbbGFiZWxdPVwidCgnYWxsU2hvdycpXCJcblx0XHRcdFx0aWNvbj1cIkVYVEVSTkFMX0xJTktcIlxuXHRcdFx0XHRjb2xvcj1cInByaW1hcnlcIlxuXHRcdFx0XHRzaXplPVwibWRcIlxuXHRcdFx0XHQoY2xpY2tFdmVudCk9XCJuYXZpZ2F0ZVRvQWxsTm90aWZpY2F0aW9ucygpXCI+XG5cdFx0XHQ8L2FyaWwtYnV0dG9uPlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblxuXHQ8cC1jb25maXJtRGlhbG9nPjwvcC1jb25maXJtRGlhbG9nPlxuPC9wLXNpZGViYXI+XG4iXX0=
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==