aril 1.2.18 → 1.2.20

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 (398) hide show
  1. package/boot/config/apps/src/interfaces.d.ts +7 -1
  2. package/boot/config/apps/src/route-permissions.d.ts +2 -2
  3. package/esm2022/boot/config/api/src/interfaces.mjs +3 -2
  4. package/esm2022/boot/config/apps/src/apps.service.mjs +5 -5
  5. package/esm2022/boot/config/apps/src/auth.guard.mjs +4 -4
  6. package/esm2022/boot/config/apps/src/interfaces.mjs +2 -1
  7. package/esm2022/boot/config/apps/src/route-permissions.mjs +24 -6
  8. package/esm2022/boot/config/apps/src/showdowDOMWrapper.mjs +4 -4
  9. package/esm2022/boot/config/plugins/src/plugins.service.mjs +7 -5
  10. package/esm2022/boot/host/src/app.component.mjs +4 -4
  11. package/esm2022/boot/host/src/bootstrap.mjs +5 -3
  12. package/esm2022/boot/mfe/src/app.component.mjs +4 -4
  13. package/esm2022/boot/mfe/src/bootstrap.mjs +5 -3
  14. package/esm2022/boot/pages/src/forbidden.component.mjs +4 -4
  15. package/esm2022/boot/pages/src/notFound.component.mjs +4 -4
  16. package/esm2022/http/src/httpBackend.mjs +4 -4
  17. package/esm2022/i18n/src/i18n.module.mjs +5 -5
  18. package/esm2022/i18n/src/loader.mjs +4 -4
  19. package/esm2022/keycloak/src/auth.interceptor.mjs +5 -2
  20. package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +4 -4
  21. package/esm2022/theme/layout/app/expandableMenu/expandable-menu.component.mjs +4 -4
  22. package/esm2022/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.mjs +4 -4
  23. package/esm2022/theme/layout/app/favorite-pages/favorite-pages.service.mjs +4 -4
  24. package/esm2022/theme/layout/app/favorite-pages/modals/add-edit-favorite-modal/add-edit-favorite-modal.component.mjs +4 -4
  25. package/esm2022/theme/layout/app/general-search/general-search.component.mjs +4 -4
  26. package/esm2022/theme/layout/app/history/history-sidebar.component.mjs +4 -4
  27. package/esm2022/theme/layout/app/history/history.service.mjs +4 -4
  28. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +4 -4
  29. package/esm2022/theme/layout/app/layout/mfe.layout.component.mjs +4 -4
  30. package/esm2022/theme/layout/app/notifications/notifications-sidebar.component.mjs +4 -4
  31. package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +4 -4
  32. package/esm2022/theme/layout/app/profileSidebar/modals/change-password-modal/change-password-modal.component.mjs +4 -4
  33. package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +4 -4
  34. package/esm2022/theme/layout/app/profileSidebar/profile.service.mjs +4 -4
  35. package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +4 -4
  36. package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +4 -4
  37. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +18 -6
  38. package/esm2022/theme/layout/service/app.layout.service.mjs +4 -4
  39. package/esm2022/theme/layout/service/app.menu.service.mjs +4 -4
  40. package/esm2022/theme/layout/service/breadcrumb.service.mjs +4 -4
  41. package/esm2022/theme/layout/service/notifications.service.mjs +4 -4
  42. package/esm2022/theme/layout/service/search.service.mjs +4 -4
  43. package/esm2022/theme/layout/service/selection-group.service.mjs +4 -4
  44. package/esm2022/ui/autoComplete/src/auto-complete.component.mjs +4 -4
  45. package/esm2022/ui/badge/src/badge.component.mjs +4 -4
  46. package/esm2022/ui/button/src/button.component.mjs +8 -5
  47. package/esm2022/ui/button/src/split-button.component.mjs +4 -4
  48. package/esm2022/ui/calendar/src/calendar.component.mjs +4 -4
  49. package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +4 -4
  50. package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +4 -4
  51. package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +4 -4
  52. package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +4 -4
  53. package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +4 -4
  54. package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +4 -4
  55. package/esm2022/ui/charts/src/highCharts/gauge/solid-gauge.component.mjs +4 -4
  56. package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +4 -4
  57. package/esm2022/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.mjs +4 -4
  58. package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +4 -4
  59. package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +4 -4
  60. package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +4 -4
  61. package/esm2022/ui/checkbox/src/check-box.component.mjs +4 -4
  62. package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +4 -4
  63. package/esm2022/ui/chip/src/chip.component.mjs +4 -4
  64. package/esm2022/ui/collapse-reorder-list/src/collapse-reorder-list.component.mjs +4 -4
  65. package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +4 -4
  66. package/esm2022/ui/dxField/src/dx-field.component.mjs +4 -4
  67. package/esm2022/ui/editor/src/aril-editor.component.mjs +4 -4
  68. package/esm2022/ui/field/src/field.component.mjs +4 -4
  69. package/esm2022/ui/fileUpload/src/file-upload.component.mjs +4 -4
  70. package/esm2022/ui/form/index.mjs +5 -5
  71. package/esm2022/ui/form/src/form-submit-button.component.mjs +4 -4
  72. package/esm2022/ui/form/src/form.component.mjs +4 -4
  73. package/esm2022/ui/img-viewer/src/img-viewer.component.mjs +4 -4
  74. package/esm2022/ui/json-diff-comparison/src/json-diff.component.mjs +4 -4
  75. package/esm2022/ui/lib/src/form/form-error-message.component.mjs +4 -4
  76. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +4 -4
  77. package/esm2022/ui/lib/src/grid/enum-color-picker.pipe.mjs +4 -4
  78. package/esm2022/ui/lib/src/grid/flex-grid.directive.mjs +4 -4
  79. package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +4 -4
  80. package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +4 -4
  81. package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +4 -4
  82. package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +4 -4
  83. package/esm2022/ui/lib/src/input/value-accessor.directive.mjs +4 -4
  84. package/esm2022/ui/loader/src/loader.component.mjs +4 -4
  85. package/esm2022/ui/mask/src/mask.component.mjs +4 -4
  86. package/esm2022/ui/multiSelect/src/multi-select.component.mjs +4 -4
  87. package/esm2022/ui/number/src/number.component.mjs +4 -4
  88. package/esm2022/ui/operation-types-dialog/src/operation-types-dialog.component.mjs +4 -4
  89. package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +4 -4
  90. package/esm2022/ui/panel/src/panel.component.mjs +4 -4
  91. package/esm2022/ui/password/src/password.component.mjs +4 -4
  92. package/esm2022/ui/pdf-viewer/src/pdf-viewer.component.mjs +4 -4
  93. package/esm2022/ui/progressbar/src/progressbar.component.mjs +4 -4
  94. package/esm2022/ui/radioButton/src/radio-button.component.mjs +4 -4
  95. package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +4 -4
  96. package/esm2022/ui/selectBox/src/select-box.component.mjs +4 -4
  97. package/esm2022/ui/switch/src/switch.component.mjs +4 -4
  98. package/esm2022/ui/table/index.mjs +5 -5
  99. package/esm2022/ui/table/src/export-overlay-panel.component.mjs +4 -4
  100. package/esm2022/ui/table/src/table-column.component.mjs +4 -4
  101. package/esm2022/ui/table/src/table.component.mjs +4 -4
  102. package/esm2022/ui/table-expand/index.mjs +5 -5
  103. package/esm2022/ui/table-expand/src/table-column.component.mjs +4 -4
  104. package/esm2022/ui/table-expand/src/table-expand-area.component.mjs +4 -4
  105. package/esm2022/ui/table-expand/src/table.component.mjs +4 -4
  106. package/esm2022/ui/tag/src/tag.component.mjs +4 -4
  107. package/esm2022/ui/tagBox/src/tag-box.component.mjs +4 -4
  108. package/esm2022/ui/text/src/text.component.mjs +4 -4
  109. package/esm2022/ui/textArea/src/text-area.component.mjs +4 -4
  110. package/esm2022/ui/toggle-button/src/toggle-button.component.mjs +4 -4
  111. package/esm2022/ui/tooltip/src/tooltip-component.mjs +4 -4
  112. package/esm2022/ui/translate-input/src/aril-lang-modal/aril-lang-modal.component.mjs +4 -4
  113. package/esm2022/ui/translate-input/src/aril-translate-input.component.mjs +4 -4
  114. package/esm2022/ui/tree/src/tree.component.mjs +4 -4
  115. package/esm2022/ui/treeSelect/src/treeSelect.component.mjs +4 -4
  116. package/esm2022/ui/treeTable/src/tree-table.component.mjs +4 -4
  117. package/esm2022/ui/value/src/value.component.mjs +4 -4
  118. package/esm2022/ui-business/assetPicker/src/asset-picker.component.mjs +4 -4
  119. package/esm2022/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +4 -4
  120. package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +4 -4
  121. package/esm2022/ui-business/image-viewer/src/aril-image-viewer.component.mjs +4 -4
  122. package/esm2022/ui-business/multiple-ref-value/src/multiple-ref-value.component.mjs +4 -4
  123. package/esm2022/ui-business/notification-templates-dialog/src/notification-templates-dialog.component.mjs +4 -4
  124. package/esm2022/ui-business/operation-types-dialog/src/operation-types-dialog.component.mjs +4 -4
  125. package/esm2022/ui-business/pdf-preview-modal/src/pdf-preview-modal.component.mjs +4 -4
  126. package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +4 -4
  127. package/esm2022/ui-business/rolePicker/src/role-picker.component.mjs +4 -4
  128. package/esm2022/ui-business/trace-drawer/src/app-log.service.mjs +4 -4
  129. package/esm2022/ui-business/trace-drawer/src/trace-drawer.component.mjs +4 -4
  130. package/esm2022/ui-business/trace-drawer/src/trace-log.service.mjs +4 -4
  131. package/esm2022/ui-business/trace-id/src/trace-id.component.mjs +4 -4
  132. package/esm2022/ui-business/userPicker/src/user-picker.component.mjs +4 -4
  133. package/esm2022/util/activity/aril-util-activity.mjs +5 -0
  134. package/esm2022/util/activity/index.mjs +4 -0
  135. package/esm2022/util/activity/src/activity.constants.mjs +4 -0
  136. package/esm2022/util/activity/src/activity.service.mjs +198 -0
  137. package/esm2022/util/activity/src/activity.types.mjs +2 -0
  138. package/esm2022/util/block/src/block.mjs +7 -7
  139. package/esm2022/util/directives/src/detail-page-customization/detail-page-customization.directive.mjs +4 -4
  140. package/esm2022/util/directives/src/dialog-component/plugin-dialog.component.mjs +4 -4
  141. package/esm2022/util/directives/src/dialog-service/plugin-dialog.service.mjs +4 -4
  142. package/esm2022/util/lib/src/module-router.mjs +4 -4
  143. package/esm2022/util/pipes/src/distance-to-now.pipe.mjs +4 -4
  144. package/esm2022/util/pipes/src/get-column-by-field.pipe.mjs +4 -4
  145. package/esm2022/util/pipes/src/parse.pipe.mjs +4 -4
  146. package/esm2022/util/pipes/src/round-number.pipe.mjs +4 -4
  147. package/esm2022/util/pipes/src/safe.pipe.mjs +4 -4
  148. package/esm2022/util/pipes/src/translate-json/translate-json.pipe.mjs +4 -4
  149. package/esm2022/util/pub-sub/src/pub-sub.service.mjs +4 -4
  150. package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +4 -4
  151. package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +4 -4
  152. package/fesm2022/{aril-app.component-wxP3y8dg.mjs → aril-app.component-CwZZhJcO.mjs} +5 -4
  153. package/fesm2022/{aril-app.component-wxP3y8dg.mjs.map → aril-app.component-CwZZhJcO.mjs.map} +1 -1
  154. package/fesm2022/aril-boot-base.mjs +1 -1
  155. package/fesm2022/aril-boot-base.mjs.map +1 -1
  156. package/fesm2022/aril-boot-bridge.mjs.map +1 -1
  157. package/fesm2022/aril-boot-config-api.mjs +3 -2
  158. package/fesm2022/aril-boot-config-api.mjs.map +1 -1
  159. package/fesm2022/aril-boot-config-apps.mjs +35 -16
  160. package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
  161. package/fesm2022/aril-boot-config-plugins.mjs +7 -5
  162. package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
  163. package/fesm2022/aril-boot-config-translate.mjs.map +1 -1
  164. package/fesm2022/aril-boot-host.mjs +8 -6
  165. package/fesm2022/aril-boot-host.mjs.map +1 -1
  166. package/fesm2022/{aril-boot-mfe-app.component-7IjAmjz0.mjs → aril-boot-mfe-app.component-DwYgUUdL.mjs} +6 -5
  167. package/fesm2022/{aril-boot-mfe-app.component-7IjAmjz0.mjs.map → aril-boot-mfe-app.component-DwYgUUdL.mjs.map} +1 -1
  168. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-KXDpUyv7.mjs → aril-boot-mfe-aril-boot-mfe-hJkkFa_a.mjs} +8 -6
  169. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-KXDpUyv7.mjs.map → aril-boot-mfe-aril-boot-mfe-hJkkFa_a.mjs.map} +1 -1
  170. package/fesm2022/aril-boot-mfe.mjs +2 -1
  171. package/fesm2022/aril-boot-mfe.mjs.map +1 -1
  172. package/fesm2022/aril-boot-pages.mjs +6 -6
  173. package/fesm2022/aril-boot-pages.mjs.map +1 -1
  174. package/fesm2022/aril-http.mjs +3 -3
  175. package/fesm2022/aril-http.mjs.map +1 -1
  176. package/fesm2022/aril-i18n.mjs +7 -7
  177. package/fesm2022/aril-i18n.mjs.map +1 -1
  178. package/fesm2022/aril-keycloak.mjs +4 -1
  179. package/fesm2022/aril-keycloak.mjs.map +1 -1
  180. package/fesm2022/aril-provider.mjs +1 -1
  181. package/fesm2022/aril-provider.mjs.map +1 -1
  182. package/fesm2022/aril-theme-layout.mjs +85 -74
  183. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  184. package/fesm2022/aril-ui-autoComplete.mjs +6 -6
  185. package/fesm2022/aril-ui-autoComplete.mjs.map +1 -1
  186. package/fesm2022/aril-ui-badge.mjs +4 -4
  187. package/fesm2022/aril-ui-badge.mjs.map +1 -1
  188. package/fesm2022/aril-ui-business-assetPicker.mjs +5 -5
  189. package/fesm2022/aril-ui-business-assetPicker.mjs.map +1 -1
  190. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs +5 -5
  191. package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs.map +1 -1
  192. package/fesm2022/aril-ui-business-enumPicker.mjs +5 -5
  193. package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
  194. package/fesm2022/aril-ui-business-image-viewer.mjs +3 -3
  195. package/fesm2022/aril-ui-business-image-viewer.mjs.map +1 -1
  196. package/fesm2022/aril-ui-business-multiple-ref-value.mjs +4 -4
  197. package/fesm2022/aril-ui-business-multiple-ref-value.mjs.map +1 -1
  198. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs +3 -3
  199. package/fesm2022/aril-ui-business-notification-templates-dialog.mjs.map +1 -1
  200. package/fesm2022/aril-ui-business-operation-types-dialog.mjs +3 -3
  201. package/fesm2022/aril-ui-business-operation-types-dialog.mjs.map +1 -1
  202. package/fesm2022/aril-ui-business-pdf-preview-modal.mjs +3 -3
  203. package/fesm2022/aril-ui-business-pdf-preview-modal.mjs.map +1 -1
  204. package/fesm2022/aril-ui-business-ref-value.mjs +4 -4
  205. package/fesm2022/aril-ui-business-ref-value.mjs.map +1 -1
  206. package/fesm2022/aril-ui-business-rolePicker.mjs +4 -4
  207. package/fesm2022/aril-ui-business-rolePicker.mjs.map +1 -1
  208. package/fesm2022/aril-ui-business-trace-drawer.mjs +10 -10
  209. package/fesm2022/aril-ui-business-trace-drawer.mjs.map +1 -1
  210. package/fesm2022/aril-ui-business-trace-id.mjs +4 -4
  211. package/fesm2022/aril-ui-business-trace-id.mjs.map +1 -1
  212. package/fesm2022/aril-ui-business-userPicker.mjs +3 -3
  213. package/fesm2022/aril-ui-business-userPicker.mjs.map +1 -1
  214. package/fesm2022/aril-ui-button.mjs +10 -7
  215. package/fesm2022/aril-ui-button.mjs.map +1 -1
  216. package/fesm2022/aril-ui-calendar.mjs +3 -3
  217. package/fesm2022/aril-ui-calendar.mjs.map +1 -1
  218. package/fesm2022/aril-ui-charts.mjs +37 -37
  219. package/fesm2022/aril-ui-charts.mjs.map +1 -1
  220. package/fesm2022/aril-ui-checkbox.mjs +6 -6
  221. package/fesm2022/aril-ui-checkbox.mjs.map +1 -1
  222. package/fesm2022/aril-ui-chip.mjs +4 -4
  223. package/fesm2022/aril-ui-chip.mjs.map +1 -1
  224. package/fesm2022/aril-ui-collapse-reorder-list.mjs +4 -4
  225. package/fesm2022/aril-ui-collapse-reorder-list.mjs.map +1 -1
  226. package/fesm2022/aril-ui-dxEditor.mjs +4 -4
  227. package/fesm2022/aril-ui-dxEditor.mjs.map +1 -1
  228. package/fesm2022/aril-ui-dxField.mjs +4 -4
  229. package/fesm2022/aril-ui-dxField.mjs.map +1 -1
  230. package/fesm2022/aril-ui-editor.mjs +4 -4
  231. package/fesm2022/aril-ui-editor.mjs.map +1 -1
  232. package/fesm2022/aril-ui-field.mjs +4 -4
  233. package/fesm2022/aril-ui-field.mjs.map +1 -1
  234. package/fesm2022/aril-ui-fileUpload.mjs +4 -4
  235. package/fesm2022/aril-ui-fileUpload.mjs.map +1 -1
  236. package/fesm2022/aril-ui-form.mjs +11 -11
  237. package/fesm2022/aril-ui-form.mjs.map +1 -1
  238. package/fesm2022/aril-ui-img-viewer.mjs +3 -3
  239. package/fesm2022/aril-ui-img-viewer.mjs.map +1 -1
  240. package/fesm2022/aril-ui-json-diff-comparison.mjs +4 -4
  241. package/fesm2022/aril-ui-json-diff-comparison.mjs.map +1 -1
  242. package/fesm2022/aril-ui-lib.mjs +28 -28
  243. package/fesm2022/aril-ui-lib.mjs.map +1 -1
  244. package/fesm2022/aril-ui-loader.mjs +3 -3
  245. package/fesm2022/aril-ui-loader.mjs.map +1 -1
  246. package/fesm2022/aril-ui-mask.mjs +3 -3
  247. package/fesm2022/aril-ui-mask.mjs.map +1 -1
  248. package/fesm2022/aril-ui-multiSelect.mjs +3 -3
  249. package/fesm2022/aril-ui-multiSelect.mjs.map +1 -1
  250. package/fesm2022/aril-ui-number.mjs +3 -3
  251. package/fesm2022/aril-ui-number.mjs.map +1 -1
  252. package/fesm2022/aril-ui-operation-types-dialog.mjs +3 -3
  253. package/fesm2022/aril-ui-operation-types-dialog.mjs.map +1 -1
  254. package/fesm2022/aril-ui-overlayPanel.mjs +4 -4
  255. package/fesm2022/aril-ui-overlayPanel.mjs.map +1 -1
  256. package/fesm2022/aril-ui-panel.mjs +4 -4
  257. package/fesm2022/aril-ui-panel.mjs.map +1 -1
  258. package/fesm2022/aril-ui-password.mjs +3 -3
  259. package/fesm2022/aril-ui-password.mjs.map +1 -1
  260. package/fesm2022/aril-ui-pdf-viewer.mjs +3 -3
  261. package/fesm2022/aril-ui-pdf-viewer.mjs.map +1 -1
  262. package/fesm2022/aril-ui-progressbar.mjs +3 -3
  263. package/fesm2022/aril-ui-progressbar.mjs.map +1 -1
  264. package/fesm2022/aril-ui-radioButton.mjs +3 -3
  265. package/fesm2022/aril-ui-radioButton.mjs.map +1 -1
  266. package/fesm2022/aril-ui-relativeDateSelector.mjs +4 -4
  267. package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -1
  268. package/fesm2022/aril-ui-selectBox.mjs +5 -5
  269. package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
  270. package/fesm2022/aril-ui-switch.mjs +3 -3
  271. package/fesm2022/aril-ui-switch.mjs.map +1 -1
  272. package/fesm2022/aril-ui-table-expand.mjs +14 -14
  273. package/fesm2022/aril-ui-table-expand.mjs.map +1 -1
  274. package/fesm2022/aril-ui-table.mjs +15 -15
  275. package/fesm2022/aril-ui-table.mjs.map +1 -1
  276. package/fesm2022/aril-ui-tag.mjs +3 -3
  277. package/fesm2022/aril-ui-tag.mjs.map +1 -1
  278. package/fesm2022/aril-ui-tagBox.mjs +5 -5
  279. package/fesm2022/aril-ui-tagBox.mjs.map +1 -1
  280. package/fesm2022/aril-ui-text.mjs +3 -3
  281. package/fesm2022/aril-ui-text.mjs.map +1 -1
  282. package/fesm2022/aril-ui-textArea.mjs +3 -3
  283. package/fesm2022/aril-ui-textArea.mjs.map +1 -1
  284. package/fesm2022/aril-ui-toggle-button.mjs +4 -4
  285. package/fesm2022/aril-ui-toggle-button.mjs.map +1 -1
  286. package/fesm2022/aril-ui-tooltip.mjs +3 -3
  287. package/fesm2022/aril-ui-tooltip.mjs.map +1 -1
  288. package/fesm2022/aril-ui-translate-input.mjs +6 -6
  289. package/fesm2022/aril-ui-translate-input.mjs.map +1 -1
  290. package/fesm2022/aril-ui-tree.mjs +4 -4
  291. package/fesm2022/aril-ui-tree.mjs.map +1 -1
  292. package/fesm2022/aril-ui-treeSelect.mjs +4 -4
  293. package/fesm2022/aril-ui-treeSelect.mjs.map +1 -1
  294. package/fesm2022/aril-ui-treeTable.mjs +4 -4
  295. package/fesm2022/aril-ui-treeTable.mjs.map +1 -1
  296. package/fesm2022/aril-ui-value.mjs +5 -5
  297. package/fesm2022/aril-ui-value.mjs.map +1 -1
  298. package/fesm2022/aril-util-activity.mjs +208 -0
  299. package/fesm2022/aril-util-activity.mjs.map +1 -0
  300. package/fesm2022/aril-util-block.mjs +6 -6
  301. package/fesm2022/aril-util-block.mjs.map +1 -1
  302. package/fesm2022/aril-util-directives.mjs +10 -10
  303. package/fesm2022/aril-util-directives.mjs.map +1 -1
  304. package/fesm2022/aril-util-lib.mjs +3 -3
  305. package/fesm2022/aril-util-lib.mjs.map +1 -1
  306. package/fesm2022/aril-util-pipes.mjs +18 -18
  307. package/fesm2022/aril-util-pipes.mjs.map +1 -1
  308. package/fesm2022/aril-util-primitive-extensions.mjs.map +1 -1
  309. package/fesm2022/aril-util-pub-sub.mjs +3 -3
  310. package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
  311. package/fesm2022/aril-util-sync-active-tab-route.mjs +4 -4
  312. package/fesm2022/aril-util-sync-active-tab-route.mjs.map +1 -1
  313. package/fesm2022/aril-util-unwrap.mjs +3 -3
  314. package/fesm2022/aril-util-unwrap.mjs.map +1 -1
  315. package/fesm2022/aril.mjs +13 -10
  316. package/fesm2022/aril.mjs.map +1 -1
  317. package/package.json +233 -227
  318. package/theme/layout/app/favorite-pages/favorite-pages-sidebar.component.d.ts +16 -0
  319. package/theme/layout/app/history/history-sidebar.component.d.ts +16 -0
  320. package/theme/layout/app/notifications/notifications-sidebar.component.d.ts +16 -0
  321. package/theme/layout/app/site-map/site-map-sidebar.component.d.ts +16 -0
  322. package/theme/layout/app/topbar/app.topbar.component.d.ts +5 -0
  323. package/theme/layout/app/topbar/app.topbar.component.html +3 -0
  324. package/theme/layout/app/topbar/app.topbar.component.scss +31 -0
  325. package/theme/layout/app/topbar/app.topbar.component.ts +14 -1
  326. package/ui/autoComplete/src/auto-complete.component.d.ts +8 -8
  327. package/ui/badge/src/badge.component.d.ts +9 -9
  328. package/ui/button/src/button.component.d.ts +14 -12
  329. package/ui/button/src/split-button.component.d.ts +1 -1
  330. package/ui/calendar/src/calendar.component.d.ts +22 -22
  331. package/ui/charts/src/amCharts/column/column-chart.component.d.ts +4 -4
  332. package/ui/charts/src/amCharts/line/line-chart.component.d.ts +5 -5
  333. package/ui/charts/src/amCharts/pie/pie-chart.component.d.ts +4 -4
  334. package/ui/charts/src/highCharts/area/area-chart.component.d.ts +3 -3
  335. package/ui/charts/src/highCharts/bar/bar-chart.component.d.ts +7 -7
  336. package/ui/charts/src/highCharts/column/column-chart.component.d.ts +9 -9
  337. package/ui/charts/src/highCharts/gauge/solid-gauge.component.d.ts +3 -3
  338. package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.d.ts +4 -4
  339. package/ui/charts/src/highCharts/line/line-chart-datetime-axis.component.d.ts +5 -5
  340. package/ui/charts/src/highCharts/line/line-chart-series.component.d.ts +4 -4
  341. package/ui/charts/src/highCharts/line/line-chart.component.d.ts +4 -4
  342. package/ui/charts/src/highCharts/pie/pie-chart.component.d.ts +7 -7
  343. package/ui/checkbox/src/check-box.component.d.ts +3 -3
  344. package/ui/checkbox/src/tri-state-checkbox.component.d.ts +2 -2
  345. package/ui/chip/src/chip.component.d.ts +7 -7
  346. package/ui/collapse-reorder-list/src/collapse-reorder-list.component.d.ts +4 -4
  347. package/ui/dxEditor/src/dx-editor.component.d.ts +5 -5
  348. package/ui/dxField/src/dx-field.component.d.ts +5 -5
  349. package/ui/editor/src/aril-editor.component.d.ts +3 -3
  350. package/ui/field/src/field.component.d.ts +9 -9
  351. package/ui/fileUpload/src/file-upload.component.d.ts +14 -14
  352. package/ui/form/src/form-submit-button.component.d.ts +1 -1
  353. package/ui/form/src/form.component.d.ts +1 -1
  354. package/ui/img-viewer/src/img-viewer.component.d.ts +1 -1
  355. package/ui/lib/src/form/form-error-message.directive.d.ts +1 -1
  356. package/ui/mask/src/mask.component.d.ts +6 -6
  357. package/ui/multiSelect/src/multi-select.component.d.ts +13 -13
  358. package/ui/number/src/number.component.d.ts +15 -15
  359. package/ui/overlayPanel/src/overlay-panel.component.d.ts +1 -1
  360. package/ui/panel/src/panel.component.d.ts +6 -6
  361. package/ui/password/src/password.component.d.ts +4 -4
  362. package/ui/pdf-viewer/src/pdf-viewer.component.d.ts +12 -12
  363. package/ui/progressbar/src/progressbar.component.d.ts +3 -3
  364. package/ui/radioButton/src/radio-button.component.d.ts +3 -3
  365. package/ui/selectBox/src/select-box.component.d.ts +10 -10
  366. package/ui/switch/src/switch.component.d.ts +1 -1
  367. package/ui/table/src/export-overlay-panel.component.d.ts +2 -2
  368. package/ui/table/src/table-column.component.d.ts +11 -11
  369. package/ui/table/src/table.component.d.ts +35 -35
  370. package/ui/table-expand/src/table-column.component.d.ts +6 -6
  371. package/ui/table-expand/src/table.component.d.ts +20 -20
  372. package/ui/tag/src/tag.component.d.ts +4 -6
  373. package/ui/tagBox/src/tag-box.component.d.ts +7 -7
  374. package/ui/text/src/text.component.d.ts +5 -5
  375. package/ui/textArea/src/text-area.component.d.ts +5 -5
  376. package/ui/toggle-button/src/toggle-button.component.d.ts +1 -1
  377. package/ui/tooltip/src/tooltip-component.d.ts +8 -8
  378. package/ui/translate-input/src/aril-translate-input.component.d.ts +2 -2
  379. package/ui/tree/src/tree.component.d.ts +8 -8
  380. package/ui/treeSelect/src/treeSelect.component.d.ts +12 -12
  381. package/ui/treeTable/src/tree-table.component.d.ts +5 -5
  382. package/ui/value/src/value.component.d.ts +15 -15
  383. package/ui-business/assetPicker/src/asset-picker.component.d.ts +11 -11
  384. package/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.d.ts +3 -6
  385. package/ui-business/enumPicker/src/enum-picker.component.d.ts +23 -23
  386. package/ui-business/image-viewer/src/aril-image-viewer.component.d.ts +8 -8
  387. package/ui-business/multiple-ref-value/src/multiple-ref-value.component.d.ts +2 -5
  388. package/ui-business/ref-value/src/ref-value.component.d.ts +5 -5
  389. package/ui-business/rolePicker/src/role-picker.component.d.ts +6 -6
  390. package/ui-business/trace-drawer/src/trace-drawer.component.d.ts +8 -8
  391. package/ui-business/trace-id/src/trace-id.component.d.ts +6 -6
  392. package/ui-business/userPicker/src/user-picker.component.d.ts +3 -3
  393. package/util/activity/index.d.ts +3 -0
  394. package/util/activity/src/activity.constants.d.ts +3 -0
  395. package/util/activity/src/activity.service.d.ts +29 -0
  396. package/util/activity/src/activity.types.d.ts +13 -0
  397. package/util/block/src/block.d.ts +4 -4
  398. package/util/lib/src/types.d.ts +16 -0
@@ -23,13 +23,13 @@ export class TraceIdComponent {
23
23
  return;
24
24
  this.clickEvent.emit(this.traceId());
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TraceIdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: TraceIdComponent, isStandalone: true, selector: "aril-trace-id", inputs: { traceId: { classPropertyName: "traceId", publicName: "traceId", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, iconLeft: { classPropertyName: "iconLeft", publicName: "iconLeft", isSignal: true, isRequired: false, transformFunction: null }, iconRight: { classPropertyName: "iconRight", publicName: "iconRight", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickEvent: "clickEvent" }, ngImport: i0, template: "<button\r\n\ttype=\"button\"\r\n\tclass=\"aril-trace-id\"\r\n\t[class.aril-trace-id--md]=\"size() === 'md'\"\r\n\t[class.aril-trace-id--disabled]=\"disabled()\"\r\n\t[attr.aria-label]=\"traceId()\"\r\n\t[title]=\"traceId()\"\r\n\t(click)=\"onClick($event)\">\r\n\t<i class=\"pi {{ iconLeft() }}\"></i>\r\n\t<span class=\"aril-trace-id__text\">{{ displayText() }}</span>\r\n\t<i class=\"pi {{ iconRight() }}\"></i>\r\n</button>\r\n", styles: [".aril-trace-id{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;font-size:.9rem;line-height:1.2;color:var(--primary-color, #1890ff);background:var(--primary-50, rgba(24, 144, 255, .08));border:1px solid transparent;border-radius:4px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.aril-trace-id:hover{background:var(--primary-100, rgba(24, 144, 255, .15));border-color:var(--primary-200, rgba(24, 144, 255, .3))}.aril-trace-id:focus-visible{outline:2px solid var(--primary-color, #1890ff);outline-offset:1px}.aril-trace-id--md{padding:.35rem .75rem;font-size:1rem}.aril-trace-id--disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.aril-trace-id .pi{font-size:.85rem}.aril-trace-id__text{white-space:nowrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraceIdComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: TraceIdComponent, isStandalone: true, selector: "aril-trace-id", inputs: { traceId: { classPropertyName: "traceId", publicName: "traceId", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, iconLeft: { classPropertyName: "iconLeft", publicName: "iconLeft", isSignal: true, isRequired: false, transformFunction: null }, iconRight: { classPropertyName: "iconRight", publicName: "iconRight", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickEvent: "clickEvent" }, ngImport: i0, template: "<button\r\n\ttype=\"button\"\r\n\tclass=\"aril-trace-id\"\r\n\t[class.aril-trace-id--md]=\"size() === 'md'\"\r\n\t[class.aril-trace-id--disabled]=\"disabled()\"\r\n\t[attr.aria-label]=\"traceId()\"\r\n\t[title]=\"traceId()\"\r\n\t(click)=\"onClick($event)\">\r\n\t<i class=\"pi {{ iconLeft() }}\"></i>\r\n\t<span class=\"aril-trace-id__text\">{{ displayText() }}</span>\r\n\t<i class=\"pi {{ iconRight() }}\"></i>\r\n</button>\r\n", styles: [".aril-trace-id{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;font-size:.9rem;line-height:1.2;color:var(--primary-color, #1890ff);background:var(--primary-50, rgba(24, 144, 255, .08));border:1px solid transparent;border-radius:4px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.aril-trace-id:hover{background:var(--primary-100, rgba(24, 144, 255, .15));border-color:var(--primary-200, rgba(24, 144, 255, .3))}.aril-trace-id:focus-visible{outline:2px solid var(--primary-color, #1890ff);outline-offset:1px}.aril-trace-id--md{padding:.35rem .75rem;font-size:1rem}.aril-trace-id--disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.aril-trace-id .pi{font-size:.85rem}.aril-trace-id__text{white-space:nowrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TraceIdComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TraceIdComponent, decorators: [{
30
30
  type: Component,
31
31
  args: [{ standalone: true, selector: 'aril-trace-id', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n\ttype=\"button\"\r\n\tclass=\"aril-trace-id\"\r\n\t[class.aril-trace-id--md]=\"size() === 'md'\"\r\n\t[class.aril-trace-id--disabled]=\"disabled()\"\r\n\t[attr.aria-label]=\"traceId()\"\r\n\t[title]=\"traceId()\"\r\n\t(click)=\"onClick($event)\">\r\n\t<i class=\"pi {{ iconLeft() }}\"></i>\r\n\t<span class=\"aril-trace-id__text\">{{ displayText() }}</span>\r\n\t<i class=\"pi {{ iconRight() }}\"></i>\r\n</button>\r\n", styles: [".aril-trace-id{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;font-size:.9rem;line-height:1.2;color:var(--primary-color, #1890ff);background:var(--primary-50, rgba(24, 144, 255, .08));border:1px solid transparent;border-radius:4px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.aril-trace-id:hover{background:var(--primary-100, rgba(24, 144, 255, .15));border-color:var(--primary-200, rgba(24, 144, 255, .3))}.aril-trace-id:focus-visible{outline:2px solid var(--primary-color, #1890ff);outline-offset:1px}.aril-trace-id--md{padding:.35rem .75rem;font-size:1rem}.aril-trace-id--disabled{cursor:not-allowed;opacity:.6;pointer-events:none}.aril-trace-id .pi{font-size:.85rem}.aril-trace-id__text{white-space:nowrap}\n"] }]
32
32
  }], propDecorators: { clickEvent: [{
33
33
  type: Output
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UtaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS1idXNpbmVzcy90cmFjZS1pZC9zcmMvdHJhY2UtaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS1idXNpbmVzcy90cmFjZS1pZC9zcmMvdHJhY2UtaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBWTFHLE1BQU0sT0FBTyxnQkFBZ0I7SUFSN0I7UUFTQyxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ25DLFVBQUssR0FBRyxLQUFLLEVBQXNCLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtBQUssQ0FBUyxZQUFZLENBQUMsQ0FBQztRQUN2QyxjQUFTLEdBQUcsS0FBSyxDQUFTLGtCQUFrQixDQUFDLENBQUM7UUFDOUMsU0FBSSxHQUFHLEtBQUssQ0FBTyxJQUFJLENBQUMsQ0FBQztRQUN6QixhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXZCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRS9CLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxNQUFNO2dCQUFFLE9BQU8sTUFBTSxDQUFDO1lBQzFCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7S0FPSDtJQUxVLE9BQU8sQ0FBQyxLQUFpQjtRQUNsQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDOzhHQXJCVyxnQkFBZ0I7a0dBQWhCLGdCQUFnQiw0MkJDWjdCLGdiQVlBOzsyRkRBYSxnQkFBZ0I7a0JBUjVCLFNBQVM7aUNBQ0csSUFBSSxZQUNOLGVBQWUsV0FHaEIsRUFBRSxtQkFDTSx1QkFBdUIsQ0FBQyxNQUFNOzhCQVVyQyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxudHlwZSBTaXplID0gJ3NtJyB8ICdtZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC10cmFjZS1pZCcsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3RyYWNlLWlkLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi90cmFjZS1pZC5jb21wb25lbnQuc2NzcyddLFxyXG5cdGltcG9ydHM6IFtdLFxyXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFjZUlkQ29tcG9uZW50IHtcclxuXHR0cmFjZUlkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG5cdGxhYmVsID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xyXG5cdGljb25MZWZ0ID0gaW5wdXQ8c3RyaW5nPigncGktc2l0ZW1hcCcpO1xyXG5cdGljb25SaWdodCA9IGlucHV0PHN0cmluZz4oJ3BpLWNoZXZyb24tcmlnaHQnKTtcclxuXHRzaXplID0gaW5wdXQ8U2l6ZT4oJ3NtJyk7XHJcblx0ZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdEBPdXRwdXQoKSBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG5cdHByb3RlY3RlZCByZWFkb25seSBkaXNwbGF5VGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGNvbnN0IGN1c3RvbSA9IHRoaXMubGFiZWwoKTtcclxuXHRcdGlmIChjdXN0b20pIHJldHVybiBjdXN0b207XHJcblx0XHRjb25zdCBpZCA9IHRoaXMudHJhY2VJZCgpID8/ICcnO1xyXG5cdFx0cmV0dXJuIGlkLmxlbmd0aCA+IDEwID8gaWQuc2xpY2UoMCwgOCkgKyAn4oCmJyA6IGlkO1xyXG5cdH0pO1xyXG5cclxuXHRwcm90ZWN0ZWQgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHRpZiAodGhpcy5kaXNhYmxlZCgpKSByZXR1cm47XHJcblx0XHR0aGlzLmNsaWNrRXZlbnQuZW1pdCh0aGlzLnRyYWNlSWQoKSk7XHJcblx0fVxyXG59XHJcbiIsIjxidXR0b25cclxuXHR0eXBlPVwiYnV0dG9uXCJcclxuXHRjbGFzcz1cImFyaWwtdHJhY2UtaWRcIlxyXG5cdFtjbGFzcy5hcmlsLXRyYWNlLWlkLS1tZF09XCJzaXplKCkgPT09ICdtZCdcIlxyXG5cdFtjbGFzcy5hcmlsLXRyYWNlLWlkLS1kaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuXHRbYXR0ci5hcmlhLWxhYmVsXT1cInRyYWNlSWQoKVwiXHJcblx0W3RpdGxlXT1cInRyYWNlSWQoKVwiXHJcblx0KGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiPlxyXG5cdDxpIGNsYXNzPVwicGkge3sgaWNvbkxlZnQoKSB9fVwiPjwvaT5cclxuXHQ8c3BhbiBjbGFzcz1cImFyaWwtdHJhY2UtaWRfX3RleHRcIj57eyBkaXNwbGF5VGV4dCgpIH19PC9zcGFuPlxyXG5cdDxpIGNsYXNzPVwicGkge3sgaWNvblJpZ2h0KCkgfX1cIj48L2k+XHJcbjwvYnV0dG9uPlxyXG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UtaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS1idXNpbmVzcy90cmFjZS1pZC9zcmMvdHJhY2UtaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS1idXNpbmVzcy90cmFjZS1pZC9zcmMvdHJhY2UtaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBWTFHLE1BQU0sT0FBTyxnQkFBZ0I7SUFSN0I7UUFTQyxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ25DLFVBQUssR0FBRyxLQUFLLEVBQXNCLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtBQUssQ0FBUyxZQUFZLENBQUMsQ0FBQztRQUN2QyxjQUFTLEdBQUcsS0FBSyxDQUFTLGtCQUFrQixDQUFDLENBQUM7UUFDOUMsU0FBSSxHQUFHLEtBQUssQ0FBTyxJQUFJLENBQUMsQ0FBQztRQUN6QixhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXZCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRS9CLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxNQUFNO2dCQUFFLE9BQU8sTUFBTSxDQUFDO1lBQzFCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7S0FPSDtJQUxVLE9BQU8sQ0FBQyxLQUFpQjtRQUNsQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDOytHQXJCVyxnQkFBZ0I7bUdBQWhCLGdCQUFnQiw0MkJDWjdCLGdiQVlBOzs0RkRBYSxnQkFBZ0I7a0JBUjVCLFNBQVM7aUNBQ0csSUFBSSxZQUNOLGVBQWUsV0FHaEIsRUFBRSxtQkFDTSx1QkFBdUIsQ0FBQyxNQUFNOzhCQVVyQyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxudHlwZSBTaXplID0gJ3NtJyB8ICdtZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC10cmFjZS1pZCcsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3RyYWNlLWlkLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi90cmFjZS1pZC5jb21wb25lbnQuc2NzcyddLFxyXG5cdGltcG9ydHM6IFtdLFxyXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFjZUlkQ29tcG9uZW50IHtcclxuXHR0cmFjZUlkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG5cdGxhYmVsID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xyXG5cdGljb25MZWZ0ID0gaW5wdXQ8c3RyaW5nPigncGktc2l0ZW1hcCcpO1xyXG5cdGljb25SaWdodCA9IGlucHV0PHN0cmluZz4oJ3BpLWNoZXZyb24tcmlnaHQnKTtcclxuXHRzaXplID0gaW5wdXQ8U2l6ZT4oJ3NtJyk7XHJcblx0ZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdEBPdXRwdXQoKSBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG5cdHByb3RlY3RlZCByZWFkb25seSBkaXNwbGF5VGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGNvbnN0IGN1c3RvbSA9IHRoaXMubGFiZWwoKTtcclxuXHRcdGlmIChjdXN0b20pIHJldHVybiBjdXN0b207XHJcblx0XHRjb25zdCBpZCA9IHRoaXMudHJhY2VJZCgpID8/ICcnO1xyXG5cdFx0cmV0dXJuIGlkLmxlbmd0aCA+IDEwID8gaWQuc2xpY2UoMCwgOCkgKyAn4oCmJyA6IGlkO1xyXG5cdH0pO1xyXG5cclxuXHRwcm90ZWN0ZWQgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHRpZiAodGhpcy5kaXNhYmxlZCgpKSByZXR1cm47XHJcblx0XHR0aGlzLmNsaWNrRXZlbnQuZW1pdCh0aGlzLnRyYWNlSWQoKSk7XHJcblx0fVxyXG59XHJcbiIsIjxidXR0b25cclxuXHR0eXBlPVwiYnV0dG9uXCJcclxuXHRjbGFzcz1cImFyaWwtdHJhY2UtaWRcIlxyXG5cdFtjbGFzcy5hcmlsLXRyYWNlLWlkLS1tZF09XCJzaXplKCkgPT09ICdtZCdcIlxyXG5cdFtjbGFzcy5hcmlsLXRyYWNlLWlkLS1kaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcclxuXHRbYXR0ci5hcmlhLWxhYmVsXT1cInRyYWNlSWQoKVwiXHJcblx0W3RpdGxlXT1cInRyYWNlSWQoKVwiXHJcblx0KGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiPlxyXG5cdDxpIGNsYXNzPVwicGkge3sgaWNvbkxlZnQoKSB9fVwiPjwvaT5cclxuXHQ8c3BhbiBjbGFzcz1cImFyaWwtdHJhY2UtaWRfX3RleHRcIj57eyBkaXNwbGF5VGV4dCgpIH19PC9zcGFuPlxyXG5cdDxpIGNsYXNzPVwicGkge3sgaWNvblJpZ2h0KCkgfX1cIj48L2k+XHJcbjwvYnV0dG9uPlxyXG4iXX0=
@@ -33,11 +33,11 @@ export class UserPickerComponent extends BaseInputComponent {
33
33
  });
34
34
  this.filteredSelectionItems = newFilteredGroupSuggestions;
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: UserPickerComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: UserPickerComponent, isStandalone: true, selector: "aril-user-picker[ngModel], aril-user-picker[formControl], aril-user-picker[formControlName]", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, forceSelection: { classPropertyName: "forceSelection", publicName: "forceSelection", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, hostDirectives: [{ directive: i2.ValueAccessorDirective }], ngImport: i0, template: "<p-autoComplete\r\n\toptionLabel=\"text\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[multiple]=\"multiple()\"\r\n\t[forceSelection]=\"forceSelection()\"\r\n\t[delay]=\"400\"\r\n\t[suggestions]=\"filteredSelectionItems\"\r\n\t(completeMethod)=\"search($event)\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t[autoHighlight]=\"true\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\tappendTo=\"body\"\r\n\t>\r\n\t<ng-template let-item pTemplate=\"item\">\r\n\t\t<div>\r\n\t\t\t<p><strong>{{ item.key }}</strong></p>\r\n\t\t\t<span class=\"opacity-50\">{{ item?.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-autoComplete>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i4.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UserPickerComponent, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: UserPickerComponent, isStandalone: true, selector: "aril-user-picker[ngModel], aril-user-picker[formControl], aril-user-picker[formControlName]", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, forceSelection: { classPropertyName: "forceSelection", publicName: "forceSelection", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, hostDirectives: [{ directive: i2.ValueAccessorDirective }], ngImport: i0, template: "<p-autoComplete\r\n\toptionLabel=\"text\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[multiple]=\"multiple()\"\r\n\t[forceSelection]=\"forceSelection()\"\r\n\t[delay]=\"400\"\r\n\t[suggestions]=\"filteredSelectionItems\"\r\n\t(completeMethod)=\"search($event)\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t[autoHighlight]=\"true\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\tappendTo=\"body\"\r\n\t>\r\n\t<ng-template let-item pTemplate=\"item\">\r\n\t\t<div>\r\n\t\t\t<p><strong>{{ item.key }}</strong></p>\r\n\t\t\t<span class=\"opacity-50\">{{ item?.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-autoComplete>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AutoCompleteModule }, { kind: "component", type: i4.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: UserPickerComponent, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UserPickerComponent, decorators: [{
40
40
  type: Component,
41
41
  args: [{ standalone: true, selector: 'aril-user-picker[ngModel], aril-user-picker[formControl], aril-user-picker[formControlName]', imports: [ReactiveFormsModule, AutoCompleteModule], hostDirectives: [ValueAccessorDirective], template: "<p-autoComplete\r\n\toptionLabel=\"text\"\r\n\t[placeholder]=\"placeholder()\"\r\n\t[multiple]=\"multiple()\"\r\n\t[forceSelection]=\"forceSelection()\"\r\n\t[delay]=\"400\"\r\n\t[suggestions]=\"filteredSelectionItems\"\r\n\t(completeMethod)=\"search($event)\"\r\n\t[formControl]=\"ngControl.control\"\r\n\t[autoHighlight]=\"true\"\r\n\t(ngModelChange)=\"ngControl.viewToModelUpdate($event)\"\r\n\tappendTo=\"body\"\r\n\t>\r\n\t<ng-template let-item pTemplate=\"item\">\r\n\t\t<div>\r\n\t\t\t<p><strong>{{ item.key }}</strong></p>\r\n\t\t\t<span class=\"opacity-50\">{{ item?.text }}</span>\r\n\t\t</div>\r\n\t</ng-template>\r\n</p-autoComplete>" }]
42
42
  }], ctorParameters: () => [{ type: i1.HttpClient }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS1idXNpbmVzcy91c2VyUGlja2VyL3NyYy91c2VyLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpLWJ1c2luZXNzL3VzZXJQaWNrZXIvc3JjL3VzZXItcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUcsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHekUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBUzdDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFTMUQsWUFBb0IsSUFBZ0I7UUFDbkMsS0FBSyxFQUFFLENBQUM7UUFEVyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBUnBDLGdCQUFXLEdBQUcsS0FBSyxDQUFTLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFHakMsWUFBTyxHQUFHLE1BQU0sQ0FBZ0IsV0FBVyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdFLG9CQUFlLEdBQUcsTUFBTSxDQUFTLGdDQUFnQyxDQUFDLENBQUM7SUFJbkUsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBVTtRQUN0QixNQUFNLFNBQVMsR0FBc0IsTUFBTSxjQUFjLENBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUN6RSxDQUFDO1FBRUYsTUFBTSwyQkFBMkIsR0FBcUIsRUFBRSxDQUFDO1FBRXpELFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFxQixFQUFFLEVBQUU7WUFDdkMsMkJBQTJCLENBQUMsSUFBSSxDQUFDO2dCQUNoQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ2xCLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUTtnQkFDMUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO2FBQ1gsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsMkJBQTJCLENBQUM7SUFDM0QsQ0FBQzs4R0E3QlcsbUJBQW1CO2tHQUFuQixtQkFBbUIsb3BCQ3JCaEMsdW9CQW1CaUIsMkNERE4sbUJBQW1CLHlUQUFFLGtCQUFrQjs7MkZBR3JDLG1CQUFtQjtrQkFQL0IsU0FBUztpQ0FDRyxJQUFJLFlBQ04sNkZBQTZGLFdBRTlGLENBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsa0JBQ2xDLENBQUMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7ICBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XHJcblxyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCwgVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJ2FyaWwvdWkvbGliJztcclxuXHJcbmltcG9ydCB7IFN1Z2dlc3Rpb25zRFRPLCBVc2VyUmVzcG9uc2VEVE8gfSBmcm9tICcuL2ludGVyZmFjZSc7XHJcbmltcG9ydCB7IEFwcHMgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FyaWwtdXNlci1waWNrZXJbbmdNb2RlbF0sIGFyaWwtdXNlci1waWNrZXJbZm9ybUNvbnRyb2xdLCBhcmlsLXVzZXItcGlja2VyW2Zvcm1Db250cm9sTmFtZV0nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi91c2VyLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIEF1dG9Db21wbGV0ZU1vZHVsZV0sXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlclBpY2tlckNvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudCB7XHJcblx0cGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCdBcmFtYS4uLicpO1xyXG5cdGZvcmNlU2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdG11bHRpcGxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHRmaWx0ZXJlZFNlbGVjdGlvbkl0ZW1zITogU3VnZ2VzdGlvbnNEVE9bXTtcclxuXHRiYXNlVXJsID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KEFQSV9DT05GSUdTLmdldEV4dGVybmFsQXBwRW5kcG9pbnQoQXBwcy5NVykpO1xyXG5cdHVzZXJFbmRQb2ludFVybCA9IHNpZ25hbDxzdHJpbmc+KCcvdXNlci1tYW5hZ2VtZW50L3VzZXJzL3NlYXJjaC8nKTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgc2VhcmNoKGV2ZW50OiBhbnkpIHtcclxuXHRcdGNvbnN0IHVzZXJHcm91cDogVXNlclJlc3BvbnNlRFRPW10gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0dGhpcy5odHRwLmdldDxhbnk+KHRoaXMuYmFzZVVybCgpICsgdGhpcy51c2VyRW5kUG9pbnRVcmwoKSArIGV2ZW50LnF1ZXJ5KVxyXG5cdFx0KTtcclxuXHJcblx0XHRjb25zdCBuZXdGaWx0ZXJlZEdyb3VwU3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25zRFRPW10gPSBbXTtcclxuXHJcblx0XHR1c2VyR3JvdXAubWFwKChpdGVtOiBVc2VyUmVzcG9uc2VEVE8pID0+IHtcclxuXHRcdFx0bmV3RmlsdGVyZWRHcm91cFN1Z2dlc3Rpb25zLnB1c2goe1xyXG5cdFx0XHRcdGtleTogaXRlbS51c2VybmFtZSxcclxuXHRcdFx0XHR0ZXh0OiBpdGVtLmZpcnN0TmFtZSArICcgJyArIGl0ZW0ubGFzdE5hbWUsXHJcblx0XHRcdFx0aWQ6IGl0ZW0uaWRcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLmZpbHRlcmVkU2VsZWN0aW9uSXRlbXMgPSBuZXdGaWx0ZXJlZEdyb3VwU3VnZ2VzdGlvbnM7XHJcblx0fVxyXG59IiwiPHAtYXV0b0NvbXBsZXRlXHJcblx0b3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuXHRbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXHJcblx0W211bHRpcGxlXT1cIm11bHRpcGxlKClcIlxyXG5cdFtmb3JjZVNlbGVjdGlvbl09XCJmb3JjZVNlbGVjdGlvbigpXCJcclxuXHRbZGVsYXldPVwiNDAwXCJcclxuXHRbc3VnZ2VzdGlvbnNdPVwiZmlsdGVyZWRTZWxlY3Rpb25JdGVtc1wiXHJcblx0KGNvbXBsZXRlTWV0aG9kKT1cInNlYXJjaCgkZXZlbnQpXCJcclxuXHRbZm9ybUNvbnRyb2xdPVwibmdDb250cm9sLmNvbnRyb2xcIlxyXG5cdFthdXRvSGlnaGxpZ2h0XT1cInRydWVcIlxyXG5cdChuZ01vZGVsQ2hhbmdlKT1cIm5nQ29udHJvbC52aWV3VG9Nb2RlbFVwZGF0ZSgkZXZlbnQpXCJcclxuXHRhcHBlbmRUbz1cImJvZHlcIlxyXG5cdD5cclxuXHQ8bmctdGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG5cdFx0PGRpdj5cclxuXHRcdFx0PHA+PHN0cm9uZz57eyBpdGVtLmtleSB9fTwvc3Ryb25nPjwvcD5cclxuXHRcdFx0PHNwYW4gY2xhc3M9XCJvcGFjaXR5LTUwXCI+e3sgaXRlbT8udGV4dCB9fTwvc3Bhbj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcbjwvcC1hdXRvQ29tcGxldGU+Il19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS1idXNpbmVzcy91c2VyUGlja2VyL3NyYy91c2VyLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpLWJ1c2luZXNzL3VzZXJQaWNrZXIvc3JjL3VzZXItcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUcsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHekUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBUzdDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFTMUQsWUFBb0IsSUFBZ0I7UUFDbkMsS0FBSyxFQUFFLENBQUM7UUFEVyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBUnBDLGdCQUFXLEdBQUcsS0FBSyxDQUFTLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFHakMsWUFBTyxHQUFHLE1BQU0sQ0FBZ0IsV0FBVyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdFLG9CQUFlLEdBQUcsTUFBTSxDQUFTLGdDQUFnQyxDQUFDLENBQUM7SUFJbkUsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBVTtRQUN0QixNQUFNLFNBQVMsR0FBc0IsTUFBTSxjQUFjLENBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUN6RSxDQUFDO1FBRUYsTUFBTSwyQkFBMkIsR0FBcUIsRUFBRSxDQUFDO1FBRXpELFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFxQixFQUFFLEVBQUU7WUFDdkMsMkJBQTJCLENBQUMsSUFBSSxDQUFDO2dCQUNoQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ2xCLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUTtnQkFDMUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO2FBQ1gsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsMkJBQTJCLENBQUM7SUFDM0QsQ0FBQzsrR0E3QlcsbUJBQW1CO21HQUFuQixtQkFBbUIsb3BCQ3JCaEMsdW9CQW1CaUIsMkNERE4sbUJBQW1CLHlUQUFFLGtCQUFrQjs7NEZBR3JDLG1CQUFtQjtrQkFQL0IsU0FBUztpQ0FDRyxJQUFJLFlBQ04sNkZBQTZGLFdBRTlGLENBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsa0JBQ2xDLENBQUMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7ICBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XHJcblxyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCwgVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJ2FyaWwvdWkvbGliJztcclxuXHJcbmltcG9ydCB7IFN1Z2dlc3Rpb25zRFRPLCBVc2VyUmVzcG9uc2VEVE8gfSBmcm9tICcuL2ludGVyZmFjZSc7XHJcbmltcG9ydCB7IEFwcHMgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzZWxlY3RvcjogJ2FyaWwtdXNlci1waWNrZXJbbmdNb2RlbF0sIGFyaWwtdXNlci1waWNrZXJbZm9ybUNvbnRyb2xdLCBhcmlsLXVzZXItcGlja2VyW2Zvcm1Db250cm9sTmFtZV0nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi91c2VyLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIEF1dG9Db21wbGV0ZU1vZHVsZV0sXHJcblx0aG9zdERpcmVjdGl2ZXM6IFtWYWx1ZUFjY2Vzc29yRGlyZWN0aXZlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlclBpY2tlckNvbXBvbmVudCBleHRlbmRzIEJhc2VJbnB1dENvbXBvbmVudCB7XHJcblx0cGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCdBcmFtYS4uLicpO1xyXG5cdGZvcmNlU2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdG11bHRpcGxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHRmaWx0ZXJlZFNlbGVjdGlvbkl0ZW1zITogU3VnZ2VzdGlvbnNEVE9bXTtcclxuXHRiYXNlVXJsID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KEFQSV9DT05GSUdTLmdldEV4dGVybmFsQXBwRW5kcG9pbnQoQXBwcy5NVykpO1xyXG5cdHVzZXJFbmRQb2ludFVybCA9IHNpZ25hbDxzdHJpbmc+KCcvdXNlci1tYW5hZ2VtZW50L3VzZXJzL3NlYXJjaC8nKTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgc2VhcmNoKGV2ZW50OiBhbnkpIHtcclxuXHRcdGNvbnN0IHVzZXJHcm91cDogVXNlclJlc3BvbnNlRFRPW10gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0dGhpcy5odHRwLmdldDxhbnk+KHRoaXMuYmFzZVVybCgpICsgdGhpcy51c2VyRW5kUG9pbnRVcmwoKSArIGV2ZW50LnF1ZXJ5KVxyXG5cdFx0KTtcclxuXHJcblx0XHRjb25zdCBuZXdGaWx0ZXJlZEdyb3VwU3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25zRFRPW10gPSBbXTtcclxuXHJcblx0XHR1c2VyR3JvdXAubWFwKChpdGVtOiBVc2VyUmVzcG9uc2VEVE8pID0+IHtcclxuXHRcdFx0bmV3RmlsdGVyZWRHcm91cFN1Z2dlc3Rpb25zLnB1c2goe1xyXG5cdFx0XHRcdGtleTogaXRlbS51c2VybmFtZSxcclxuXHRcdFx0XHR0ZXh0OiBpdGVtLmZpcnN0TmFtZSArICcgJyArIGl0ZW0ubGFzdE5hbWUsXHJcblx0XHRcdFx0aWQ6IGl0ZW0uaWRcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLmZpbHRlcmVkU2VsZWN0aW9uSXRlbXMgPSBuZXdGaWx0ZXJlZEdyb3VwU3VnZ2VzdGlvbnM7XHJcblx0fVxyXG59IiwiPHAtYXV0b0NvbXBsZXRlXHJcblx0b3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuXHRbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXHJcblx0W211bHRpcGxlXT1cIm11bHRpcGxlKClcIlxyXG5cdFtmb3JjZVNlbGVjdGlvbl09XCJmb3JjZVNlbGVjdGlvbigpXCJcclxuXHRbZGVsYXldPVwiNDAwXCJcclxuXHRbc3VnZ2VzdGlvbnNdPVwiZmlsdGVyZWRTZWxlY3Rpb25JdGVtc1wiXHJcblx0KGNvbXBsZXRlTWV0aG9kKT1cInNlYXJjaCgkZXZlbnQpXCJcclxuXHRbZm9ybUNvbnRyb2xdPVwibmdDb250cm9sLmNvbnRyb2xcIlxyXG5cdFthdXRvSGlnaGxpZ2h0XT1cInRydWVcIlxyXG5cdChuZ01vZGVsQ2hhbmdlKT1cIm5nQ29udHJvbC52aWV3VG9Nb2RlbFVwZGF0ZSgkZXZlbnQpXCJcclxuXHRhcHBlbmRUbz1cImJvZHlcIlxyXG5cdD5cclxuXHQ8bmctdGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG5cdFx0PGRpdj5cclxuXHRcdFx0PHA+PHN0cm9uZz57eyBpdGVtLmtleSB9fTwvc3Ryb25nPjwvcD5cclxuXHRcdFx0PHNwYW4gY2xhc3M9XCJvcGFjaXR5LTUwXCI+e3sgaXRlbT8udGV4dCB9fTwvc3Bhbj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcbjwvcC1hdXRvQ29tcGxldGU+Il19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJpbC11dGlsLWFjdGl2aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91dGlsL2FjdGl2aXR5L2FyaWwtdXRpbC1hY3Rpdml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './src/activity.service';
2
+ export * from './src/activity.types';
3
+ export * from './src/activity.constants';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3V0aWwvYWN0aXZpdHkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9hY3Rpdml0eS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvYWN0aXZpdHkudHlwZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hY3Rpdml0eS5jb25zdGFudHMnO1xyXG4iXX0=
@@ -0,0 +1,4 @@
1
+ export const ACTIVITY_ENDPOINT_PATH = 'analytics/track';
2
+ export const ACTIVITY_SESSION_MARKER_PREFIX = 'aril.activity.session:';
3
+ export const LOGGER_SESSION_HEADER = 'x-aril-logger-session-id';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91dGlsL2FjdGl2aXR5L3NyYy9hY3Rpdml0eS5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsaUJBQWlCLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsd0JBQXdCLENBQUM7QUFDdkUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUNUSVZJVFlfRU5EUE9JTlRfUEFUSCA9ICdhbmFseXRpY3MvdHJhY2snO1xyXG5leHBvcnQgY29uc3QgQUNUSVZJVFlfU0VTU0lPTl9NQVJLRVJfUFJFRklYID0gJ2FyaWwuYWN0aXZpdHkuc2Vzc2lvbjonO1xyXG5leHBvcnQgY29uc3QgTE9HR0VSX1NFU1NJT05fSEVBREVSID0gJ3gtYXJpbC1sb2dnZXItc2Vzc2lvbi1pZCc7XHJcbiJdfQ==
@@ -0,0 +1,198 @@
1
+ import { Location } from '@angular/common';
2
+ import { Injectable, inject } from '@angular/core';
3
+ import { NavigationEnd, Router } from '@angular/router';
4
+ import { KeycloakEventType, KeycloakService } from 'keycloak-angular';
5
+ import { filter } from 'rxjs/operators';
6
+ import { API_CONFIGS } from 'aril/boot/config/api';
7
+ import { Apps } from 'aril/boot/config/apps';
8
+ import { ACTIVITY_ENDPOINT_PATH, ACTIVITY_SESSION_MARKER_PREFIX, LOGGER_SESSION_HEADER } from './activity.constants';
9
+ import * as i0 from "@angular/core";
10
+ export class ActivityService {
11
+ constructor() {
12
+ this.keycloak = inject(KeycloakService);
13
+ this.router = inject(Router);
14
+ this.location = inject(Location);
15
+ this.sessionId = null;
16
+ this.username = null;
17
+ this.previousPath = null;
18
+ this.started = false;
19
+ }
20
+ getSessionId() {
21
+ if (this.sessionId)
22
+ return this.sessionId;
23
+ const fresh = this.readSessionIdFromKeycloak();
24
+ if (fresh)
25
+ this.sessionId = fresh;
26
+ return fresh;
27
+ }
28
+ start(options = {}) {
29
+ if (this.started)
30
+ return;
31
+ this.started = true;
32
+ this.captureSessionContext();
33
+ this.subscribeKeycloakRefresh();
34
+ this.location.onUrlChange(() => this.maybeEmitPageView(this.location.path()));
35
+ if (options.shellMode) {
36
+ this.subscribeLifecycleEvents();
37
+ this.subscribeRouterEvents();
38
+ this.handleSessionStart();
39
+ }
40
+ }
41
+ track(event, properties = {}, type = 'CUSTOM') {
42
+ if (!this.started)
43
+ return;
44
+ this.send({ type, event, properties });
45
+ }
46
+ readSessionIdFromKeycloak() {
47
+ const kc = this.keycloak.getKeycloakInstance();
48
+ return kc?.sessionId ?? kc?.tokenParsed?.session_state ?? kc?.tokenParsed?.sid ?? null;
49
+ }
50
+ captureSessionContext() {
51
+ this.sessionId = this.readSessionIdFromKeycloak();
52
+ this.username = this.keycloak.getUsername() ?? null;
53
+ }
54
+ subscribeKeycloakRefresh() {
55
+ this.keycloak.keycloakEvents$.subscribe((event) => {
56
+ if (event.type === KeycloakEventType.OnAuthRefreshSuccess) {
57
+ this.captureSessionContext();
58
+ }
59
+ });
60
+ }
61
+ subscribeLifecycleEvents() {
62
+ this.keycloak.keycloakEvents$.subscribe((event) => {
63
+ if (event.type === KeycloakEventType.OnAuthLogout) {
64
+ this.sendSessionEnd('logout');
65
+ }
66
+ else if (event.type === KeycloakEventType.OnAuthRefreshError) {
67
+ this.sendSessionEnd('refresh_failed');
68
+ }
69
+ });
70
+ }
71
+ subscribeRouterEvents() {
72
+ this.router.events.pipe(filter((e) => e instanceof NavigationEnd)).subscribe((event) => {
73
+ this.maybeEmitPageView(event.urlAfterRedirects);
74
+ });
75
+ }
76
+ maybeEmitPageView(currentUrl) {
77
+ if (currentUrl === this.previousPath)
78
+ return;
79
+ const slot = globalThis;
80
+ const lastUrl = slot['__arilActivityLastPageUrl'];
81
+ const lastAt = slot['__arilActivityLastPageAt'];
82
+ if (lastUrl === currentUrl && lastAt && Date.now() - lastAt < 1000) {
83
+ this.previousPath = currentUrl;
84
+ return;
85
+ }
86
+ const previous = this.previousPath;
87
+ this.previousPath = currentUrl;
88
+ slot['__arilActivityLastPageUrl'] = currentUrl;
89
+ slot['__arilActivityLastPageAt'] = Date.now();
90
+ this.send({
91
+ type: 'PAGE_VIEW',
92
+ event: '',
93
+ page: currentUrl,
94
+ referrer: previous ?? undefined,
95
+ properties: {}
96
+ });
97
+ }
98
+ handleSessionStart() {
99
+ if (!this.sessionId)
100
+ return;
101
+ const currentKey = `${ACTIVITY_SESSION_MARKER_PREFIX}${this.sessionId}`;
102
+ let alreadyMarked = false;
103
+ try {
104
+ alreadyMarked = !!localStorage.getItem(currentKey);
105
+ this.purgeStaleSessionMarkers(currentKey);
106
+ }
107
+ catch {
108
+ /* swallow */
109
+ }
110
+ if (alreadyMarked)
111
+ return;
112
+ try {
113
+ localStorage.setItem(currentKey, Date.now().toString());
114
+ }
115
+ catch {
116
+ /* swallow */
117
+ }
118
+ this.send({
119
+ type: 'SESSION_START',
120
+ event: 'login',
121
+ properties: { userAgent: navigator.userAgent }
122
+ });
123
+ }
124
+ purgeStaleSessionMarkers(keepKey) {
125
+ const stale = [];
126
+ for (let i = 0; i < localStorage.length; i++) {
127
+ const key = localStorage.key(i);
128
+ if (key && key !== keepKey && key.startsWith(ACTIVITY_SESSION_MARKER_PREFIX)) {
129
+ stale.push(key);
130
+ }
131
+ }
132
+ stale.forEach((k) => localStorage.removeItem(k));
133
+ }
134
+ sendSessionEnd(reason) {
135
+ if (!this.sessionId)
136
+ return;
137
+ const markerKey = `${ACTIVITY_SESSION_MARKER_PREFIX}${this.sessionId}`;
138
+ let durationMs = 0;
139
+ try {
140
+ const loginTimestamp = parseInt(localStorage.getItem(markerKey) ?? '0', 10);
141
+ durationMs = loginTimestamp ? Date.now() - loginTimestamp : 0;
142
+ localStorage.removeItem(markerKey);
143
+ }
144
+ catch {
145
+ /* swallow */
146
+ }
147
+ this.send({
148
+ type: 'SESSION_END',
149
+ event: reason,
150
+ properties: { durationMs }
151
+ });
152
+ }
153
+ toAbsoluteUrl(routerPath) {
154
+ if (routerPath.startsWith('http://') || routerPath.startsWith('https://'))
155
+ return routerPath;
156
+ return `${window.location.origin}/#${routerPath}`;
157
+ }
158
+ send(partial) {
159
+ if (!this.sessionId)
160
+ return;
161
+ const baseUrl = API_CONFIGS.getExternalAppEndpoint(Apps.EVENT_GATEWAY);
162
+ if (!baseUrl)
163
+ return;
164
+ const payload = {
165
+ type: partial.type,
166
+ sessionId: this.sessionId,
167
+ username: this.username ?? '',
168
+ event: partial.event,
169
+ page: this.toAbsoluteUrl(partial.page ?? this.location.path()),
170
+ ip: '',
171
+ referrer: partial.referrer ? this.toAbsoluteUrl(partial.referrer) : `${window.location.origin}/#`,
172
+ traceId: '',
173
+ clientTimestamp: Date.now(),
174
+ properties: partial.properties
175
+ };
176
+ const url = `${baseUrl.replace(/\/$/, '')}/${ACTIVITY_ENDPOINT_PATH}`;
177
+ this.keycloak
178
+ .getToken()
179
+ .then((token) => fetch(url, {
180
+ method: 'POST',
181
+ keepalive: true,
182
+ headers: {
183
+ 'Content-Type': 'application/json',
184
+ [LOGGER_SESSION_HEADER]: this.sessionId,
185
+ ...(token ? { Authorization: `Bearer ${token}` } : {})
186
+ },
187
+ body: JSON.stringify(payload)
188
+ }))
189
+ .catch(() => undefined);
190
+ }
191
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActivityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
192
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActivityService, providedIn: 'root' }); }
193
+ }
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ActivityService, decorators: [{
195
+ type: Injectable,
196
+ args: [{ providedIn: 'root' }]
197
+ }] });
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdXRpbC9hY3Rpdml0eS9zcmMvYWN0aXZpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0MsT0FBTyxFQUNOLHNCQUFzQixFQUN0Qiw4QkFBOEIsRUFDOUIscUJBQXFCLEVBQ3JCLE1BQU0sc0JBQXNCLENBQUM7O0FBSTlCLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRWtCLGFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXJDLGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBQ2hDLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBQy9CLGlCQUFZLEdBQWtCLElBQUksQ0FBQztRQUNuQyxZQUFPLEdBQUcsS0FBSyxDQUFDO0tBOEx4QjtJQTVMQSxZQUFZO1FBQ1gsSUFBSSxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMx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QUFDLENBQUMsRUFBRSxDQUFDO2FBQ3REO1lBQ0QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1NBQzdCLENBQUMsQ0FDRjthQUNBLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQixDQUFDOytHQXJNVyxlQUFlO21IQUFmLGVBQWUsY0FERixNQUFNOzs0RkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgS2V5Y2xvYWtFdmVudFR5cGUsIEtleWNsb2FrU2VydmljZSB9IGZyb20gJ2tleWNsb2FrLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBBUElfQ09ORklHUyB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBpJztcclxuaW1wb3J0IHsgQXBwcyB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBwcyc7XHJcblxyXG5pbXBvcnQge1xyXG5cdEFDVElWSVRZX0VORFBPSU5UX1BBVEgsXHJcblx0QUNUSVZJVFlfU0VTU0lPTl9NQVJLRVJfUFJFRklYLFxyXG5cdExPR0dFUl9TRVNTSU9OX0hFQURFUlxyXG59IGZyb20gJy4vYWN0aXZpdHkuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQWN0aXZpdHlFdmVudCwgQWN0aXZpdHlFdmVudFR5cGUgfSBmcm9tICcuL2FjdGl2aXR5LnR5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eVNlcnZpY2Uge1xyXG5cdHByaXZhdGUgcmVhZG9ubHkga2V5Y2xvYWsgPSBpbmplY3QoS2V5Y2xvYWtTZXJ2aWNlKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb24gPSBpbmplY3QoTG9jYXRpb24pO1xyXG5cclxuXHRwcml2YXRlIHNlc3Npb25JZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblx0cHJpdmF0ZSB1c2VybmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblx0cHJpdmF0ZSBwcmV2aW91c1BhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cdHByaXZhdGUgc3RhcnRlZCA9IGZhbHNlO1xyXG5cclxuXHRnZXRTZXNzaW9uSWQoKTogc3RyaW5nIHwgbnVsbCB7XHJcblx0XHRpZiAodGhpcy5zZXNzaW9uSWQpIHJldHVybiB0aGlzLnNlc3Npb25JZDtcclxuXHRcdGNvbnN0IGZyZXNoID0gdGhpcy5yZWFkU2Vzc2lvbklkRnJvbUtleWNsb2FrKCk7XHJcblx0XHRpZiAoZnJlc2gpIHRoaXMuc2Vzc2lvbklkID0gZnJlc2g7XHJcblx0XHRyZXR1cm4gZnJlc2g7XHJcblx0fVxyXG5cclxuXHRzdGFydChvcHRpb25zOiB7IHNoZWxsTW9kZT86IGJvb2xlYW4gfSA9IHt9KTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5zdGFydGVkKSByZXR1cm47XHJcblx0XHR0aGlzLnN0YXJ0ZWQgPSB0cnVlO1xyXG5cclxuXHRcdHRoaXMuY2FwdHVyZVNlc3Npb25Db250ZXh0KCk7XHJcblx0XHR0aGlzLnN1YnNjcmliZUtleWNsb2FrUmVmcmVzaCgpO1xyXG5cdFx0dGhpcy5sb2NhdGlvbi5vblVybENoYW5nZSgoKSA9PiB0aGlzLm1heWJlRW1pdFBhZ2VWaWV3KHRoaXMubG9jYXRpb24ucGF0aCgpKSk7XHJcblxyXG5cdFx0aWYgKG9wdGlvbnMuc2hlbGxNb2RlKSB7XHJcblx0XHRcdHRoaXMuc3Vic2NyaWJlTGlmZWN5Y2xlRXZlbnRzKCk7XHJcblx0XHRcdHRoaXMuc3Vic2NyaWJlUm91dGVyRXZlbnRzKCk7XHJcblx0XHRcdHRoaXMuaGFuZGxlU2Vzc2lvblN0YXJ0KCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR0cmFjayhldmVudDogc3RyaW5nLCBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LCB0eXBlOiBBY3Rpdml0eUV2ZW50VHlwZSA9ICdDVVNUT00nKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuc3RhcnRlZCkgcmV0dXJuO1xyXG5cdFx0dGhpcy5zZW5kKHsgdHlwZSwgZXZlbnQsIHByb3BlcnRpZXMgfSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHJlYWRTZXNzaW9uSWRGcm9tS2V5Y2xvYWsoKTogc3RyaW5nIHwgbnVsbCB7XHJcblx0XHRjb25zdCBrYyA9IHRoaXMua2V5Y2xvYWsuZ2V0S2V5Y2xvYWtJbnN0YW5jZSgpIGFzXHJcblx0XHRcdHwgeyBzZXNzaW9uSWQ/OiBzdHJpbmc7IHRva2VuUGFyc2VkPzogeyBzZXNzaW9uX3N0YXRlPzogc3RyaW5nOyBzaWQ/OiBzdHJpbmcgfSB9XHJcblx0XHRcdHwgdW5kZWZpbmVkO1xyXG5cdFx0cmV0dXJuIGtjPy5zZXNzaW9uSWQgPz8ga2M/LnRva2VuUGFyc2VkPy5zZXNzaW9uX3N0YXRlID8/IGtjPy50b2tlblBhcnNlZD8uc2lkID8/IG51bGw7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNhcHR1cmVTZXNzaW9uQ29udGV4dCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2Vzc2lvbklkID0gdGhpcy5yZWFkU2Vzc2lvbklkRnJvbUtleWNsb2FrKCk7XHJcblx0XHR0aGlzLnVzZXJuYW1lID0gdGhpcy5rZXljbG9hay5nZXRVc2VybmFtZSgpID8/IG51bGw7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHN1YnNjcmliZUtleWNsb2FrUmVmcmVzaCgpOiB2b2lkIHtcclxuXHRcdHRoaXMua2V5Y2xvYWsua2V5Y2xvYWtFdmVudHMkLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuXHRcdFx0aWYgKGV2ZW50LnR5cGUgPT09IEtleWNsb2FrRXZlbnRUeXBlLk9uQXV0aFJlZnJlc2hTdWNjZXNzKSB7XHJcblx0XHRcdFx0dGhpcy5jYXB0dXJlU2Vzc2lvbkNvbnRleHQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHN1YnNjcmliZUxpZmVjeWNsZUV2ZW50cygpOiB2b2lkIHtcclxuXHRcdHRoaXMua2V5Y2xvYWsua2V5Y2xvYWtFdmVudHMkLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuXHRcdFx0aWYgKGV2ZW50LnR5cGUgPT09IEtleWNsb2FrRXZlbnRUeXBlLk9uQXV0aExvZ291dCkge1xyXG5cdFx0XHRcdHRoaXMuc2VuZFNlc3Npb25FbmQoJ2xvZ291dCcpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09IEtleWNsb2FrRXZlbnRUeXBlLk9uQXV0aFJlZnJlc2hFcnJvcikge1xyXG5cdFx0XHRcdHRoaXMuc2VuZFNlc3Npb25FbmQoJ3JlZnJlc2hfZmFpbGVkJyk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzdWJzY3JpYmVSb3V0ZXJFdmVudHMoKTogdm9pZCB7XHJcblx0XHR0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoKGUpOiBlIGlzIE5hdmlnYXRpb25FbmQgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcblx0XHRcdHRoaXMubWF5YmVFbWl0UGFnZVZpZXcoZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHMpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIG1heWJlRW1pdFBhZ2VWaWV3KGN1cnJlbnRVcmw6IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0aWYgKGN1cnJlbnRVcmwgPT09IHRoaXMucHJldmlvdXNQYXRoKSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3Qgc2xvdCA9IGdsb2JhbFRoaXMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XHJcblx0XHRjb25zdCBsYXN0VXJsID0gc2xvdFsnX19hcmlsQWN0aXZpdHlMYXN0UGFnZVVybCddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHRcdGNvbnN0IGxhc3RBdCA9IHNsb3RbJ19fYXJpbEFjdGl2aXR5TGFzdFBhZ2VBdCddIGFzIG51bWJlciB8IHVuZGVmaW5lZDtcclxuXHRcdGlmIChsYXN0VXJsID09PSBjdXJyZW50VXJsICYmIGxhc3RBdCAmJiBEYXRlLm5vdygpIC0gbGFzdEF0IDwgMTAwMCkge1xyXG5cdFx0XHR0aGlzLnByZXZpb3VzUGF0aCA9IGN1cnJlbnRVcmw7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBwcmV2aW91cyA9IHRoaXMucHJldmlvdXNQYXRoO1xyXG5cdFx0dGhpcy5wcmV2aW91c1BhdGggPSBjdXJyZW50VXJsO1xyXG5cdFx0c2xvdFsnX19hcmlsQWN0aXZpdHlMYXN0UGFnZVVybCddID0gY3VycmVudFVybDtcclxuXHRcdHNsb3RbJ19fYXJpbEFjdGl2aXR5TGFzdFBhZ2VBdCddID0gRGF0ZS5ub3coKTtcclxuXHJcblx0XHR0aGlzLnNlbmQoe1xyXG5cdFx0XHR0eXBlOiAnUEFHRV9WSUVXJyxcclxuXHRcdFx0ZXZlbnQ6ICcnLFxyXG5cdFx0XHRwYWdlOiBjdXJyZW50VXJsLFxyXG5cdFx0XHRyZWZlcnJlcjogcHJldmlvdXMgPz8gdW5kZWZpbmVkLFxyXG5cdFx0XHRwcm9wZXJ0aWVzOiB7fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGhhbmRsZVNlc3Npb25TdGFydCgpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5zZXNzaW9uSWQpIHJldHVybjtcclxuXHRcdGNvbnN0IGN1cnJlbnRLZXkgPSBgJHtBQ1RJVklUWV9TRVNTSU9OX01BUktFUl9QUkVGSVh9JHt0aGlzLnNlc3Npb25JZH1gO1xyXG5cdFx0bGV0IGFscmVhZHlNYXJrZWQgPSBmYWxzZTtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGFscmVhZHlNYXJrZWQgPSAhIWxvY2FsU3RvcmFnZS5nZXRJdGVtKGN1cnJlbnRLZXkpO1xyXG5cdFx0XHR0aGlzLnB1cmdlU3RhbGVTZXNzaW9uTWFya2VycyhjdXJyZW50S2V5KTtcclxuXHRcdH0gY2F0Y2gge1xyXG5cdFx0XHQvKiBzd2FsbG93ICovXHJcblx0XHR9XHJcblx0XHRpZiAoYWxyZWFkeU1hcmtlZCkgcmV0dXJuO1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0bG9jYWxTdG9yYWdlLnNldEl0ZW0oY3VycmVudEtleSwgRGF0ZS5ub3coKS50b1N0cmluZygpKTtcclxuXHRcdH0gY2F0Y2gge1xyXG5cdFx0XHQvKiBzd2FsbG93ICovXHJcblx0XHR9XHJcblx0XHR0aGlzLnNlbmQoe1xyXG5cdFx0XHR0eXBlOiAnU0VTU0lPTl9TVEFSVCcsXHJcblx0XHRcdGV2ZW50OiAnbG9naW4nLFxyXG5cdFx0XHRwcm9wZXJ0aWVzOiB7IHVzZXJBZ2VudDogbmF2aWdhdG9yLnVzZXJBZ2VudCB9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcHVyZ2VTdGFsZVNlc3Npb25NYXJrZXJzKGtlZXBLZXk6IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0Y29uc3Qgc3RhbGU6IHN0cmluZ1tdID0gW107XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGxvY2FsU3RvcmFnZS5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRjb25zdCBrZXkgPSBsb2NhbFN0b3JhZ2Uua2V5KGkpO1xyXG5cdFx0XHRpZiAoa2V5ICYmIGtleSAhPT0ga2VlcEtleSAmJiBrZXkuc3RhcnRzV2l0aChBQ1RJVklUWV9TRVNTSU9OX01BUktFUl9QUkVGSVgpKSB7XHJcblx0XHRcdFx0c3RhbGUucHVzaChrZXkpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRzdGFsZS5mb3JFYWNoKChrKSA9PiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrKSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNlbmRTZXNzaW9uRW5kKHJlYXNvbjogJ2xvZ291dCcgfCAncmVmcmVzaF9mYWlsZWQnKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuc2Vzc2lvbklkKSByZXR1cm47XHJcblx0XHRjb25zdCBtYXJrZXJLZXkgPSBgJHtBQ1RJVklUWV9TRVNTSU9OX01BUktFUl9QUkVGSVh9JHt0aGlzLnNlc3Npb25JZH1gO1xyXG5cdFx0bGV0IGR1cmF0aW9uTXMgPSAwO1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgbG9naW5UaW1lc3RhbXAgPSBwYXJzZUludChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShtYXJrZXJLZXkpID8/ICcwJywgMTApO1xyXG5cdFx0XHRkdXJhdGlvbk1zID0gbG9naW5UaW1lc3RhbXAgPyBEYXRlLm5vdygpIC0gbG9naW5UaW1lc3RhbXAgOiAwO1xyXG5cdFx0XHRsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShtYXJrZXJLZXkpO1xyXG5cdFx0fSBjYXRjaCB7XHJcblx0XHRcdC8qIHN3YWxsb3cgKi9cclxuXHRcdH1cclxuXHRcdHRoaXMuc2VuZCh7XHJcblx0XHRcdHR5cGU6ICdTRVNTSU9OX0VORCcsXHJcblx0XHRcdGV2ZW50OiByZWFzb24sXHJcblx0XHRcdHByb3BlcnRpZXM6IHsgZHVyYXRpb25NcyB9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgdG9BYnNvbHV0ZVVybChyb3V0ZXJQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xyXG5cdFx0aWYgKHJvdXRlclBhdGguc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8IHJvdXRlclBhdGguc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkgcmV0dXJuIHJvdXRlclBhdGg7XHJcblx0XHRyZXR1cm4gYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vIyR7cm91dGVyUGF0aH1gO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzZW5kKHBhcnRpYWw6IHtcclxuXHRcdHR5cGU6IEFjdGl2aXR5RXZlbnRUeXBlO1xyXG5cdFx0ZXZlbnQ6IHN0cmluZztcclxuXHRcdHBhZ2U/OiBzdHJpbmc7XHJcblx0XHRyZWZlcnJlcj86IHN0cmluZztcclxuXHRcdHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xyXG5cdH0pOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5zZXNzaW9uSWQpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBiYXNlVXJsID0gQVBJX0NPTkZJR1MuZ2V0RXh0ZXJuYWxBcHBFbmRwb2ludChBcHBzLkVWRU5UX0dBVEVXQVkpO1xyXG5cdFx0aWYgKCFiYXNlVXJsKSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgcGF5bG9hZDogQWN0aXZpdHlFdmVudCA9IHtcclxuXHRcdFx0dHlwZTogcGFydGlhbC50eXBlLFxyXG5cdFx0XHRzZXNzaW9uSWQ6IHRoaXMuc2Vzc2lvbklkLFxyXG5cdFx0XHR1c2VybmFtZTogdGhpcy51c2VybmFtZSA/PyAnJyxcclxuXHRcdFx0ZXZlbnQ6IHBhcnRpYWwuZXZlbnQsXHJcblx0XHRcdHBhZ2U6IHRoaXMudG9BYnNvbHV0ZVVybChwYXJ0aWFsLnBhZ2UgPz8gdGhpcy5sb2NhdGlvbi5wYXRoKCkpLFxyXG5cdFx0XHRpcDogJycsXHJcblx0XHRcdHJlZmVycmVyOiBwYXJ0aWFsLnJlZmVycmVyID8gdGhpcy50b0Fic29sdXRlVXJsKHBhcnRpYWwucmVmZXJyZXIpIDogYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vI2AsXHJcblx0XHRcdHRyYWNlSWQ6ICcnLFxyXG5cdFx0XHRjbGllbnRUaW1lc3RhbXA6IERhdGUubm93KCksXHJcblx0XHRcdHByb3BlcnRpZXM6IHBhcnRpYWwucHJvcGVydGllc1xyXG5cdFx0fTtcclxuXHJcblx0XHRjb25zdCB1cmwgPSBgJHtiYXNlVXJsLnJlcGxhY2UoL1xcLyQvLCAnJyl9LyR7QUNUSVZJVFlfRU5EUE9JTlRfUEFUSH1gO1xyXG5cclxuXHRcdHRoaXMua2V5Y2xvYWtcclxuXHRcdFx0LmdldFRva2VuKClcclxuXHRcdFx0LnRoZW4oKHRva2VuKSA9PlxyXG5cdFx0XHRcdGZldGNoKHVybCwge1xyXG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXHJcblx0XHRcdFx0XHRrZWVwYWxpdmU6IHRydWUsXHJcblx0XHRcdFx0XHRoZWFkZXJzOiB7XHJcblx0XHRcdFx0XHRcdCdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcblx0XHRcdFx0XHRcdFtMT0dHRVJfU0VTU0lPTl9IRUFERVJdOiB0aGlzLnNlc3Npb25JZCEsXHJcblx0XHRcdFx0XHRcdC4uLih0b2tlbiA/IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAgfSA6IHt9KVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGJvZHk6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KVxyXG5cdFx0XHQuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcclxuXHR9XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3V0aWwvYWN0aXZpdHkvc3JjL2FjdGl2aXR5LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBY3Rpdml0eUV2ZW50VHlwZSA9ICdTRVNTSU9OX1NUQVJUJyB8ICdTRVNTSU9OX0VORCcgfCAnUEFHRV9WSUVXJyB8ICdCVVRUT05fQ0xJQ0snIHwgJ0NVU1RPTSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2aXR5RXZlbnQge1xyXG5cdHR5cGU6IEFjdGl2aXR5RXZlbnRUeXBlO1xyXG5cdHNlc3Npb25JZDogc3RyaW5nO1xyXG5cdHVzZXJuYW1lOiBzdHJpbmc7XHJcblx0ZXZlbnQ6IHN0cmluZztcclxuXHRwYWdlOiBzdHJpbmc7XHJcblx0aXA6IHN0cmluZztcclxuXHRyZWZlcnJlcjogc3RyaW5nO1xyXG5cdHRyYWNlSWQ6IHN0cmluZztcclxuXHRjbGllbnRUaW1lc3RhbXA/OiBudW1iZXI7XHJcblx0cHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XHJcbn1cclxuIl19
@@ -27,10 +27,10 @@ export class Block {
27
27
  nativeElement = nativeElement.children[0];
28
28
  return nativeElement;
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: Block, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.1.2", type: Block, isStandalone: true, selector: "[arilBlock]", inputs: { arilBlock: { classPropertyName: "arilBlock", publicName: "arilBlock", isSignal: true, isRequired: true, transformFunction: null }, blockOptions: { classPropertyName: "blockOptions", publicName: "blockOptions", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: Block, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.12", type: Block, isStandalone: true, selector: "[arilBlock]", inputs: { arilBlock: { classPropertyName: "arilBlock", publicName: "arilBlock", isSignal: true, isRequired: true, transformFunction: null }, blockOptions: { classPropertyName: "blockOptions", publicName: "blockOptions", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: Block, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: Block, decorators: [{
34
34
  type: Directive,
35
35
  args: [{
36
36
  standalone: true,
@@ -51,14 +51,14 @@ export class BlockPage {
51
51
  }
52
52
  });
53
53
  }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BlockPage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
55
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.1.2", type: BlockPage, isStandalone: true, selector: "[arilBlockPage]", inputs: { arilBlockPage: { classPropertyName: "arilBlockPage", publicName: "arilBlockPage", isSignal: true, isRequired: true, transformFunction: null }, blockOptions: { classPropertyName: "blockOptions", publicName: "blockOptions", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BlockPage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
55
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.12", type: BlockPage, isStandalone: true, selector: "[arilBlockPage]", inputs: { arilBlockPage: { classPropertyName: "arilBlockPage", publicName: "arilBlockPage", isSignal: true, isRequired: true, transformFunction: null }, blockOptions: { classPropertyName: "blockOptions", publicName: "blockOptions", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BlockPage, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BlockPage, decorators: [{
58
58
  type: Directive,
59
59
  args: [{
60
60
  standalone: true,
61
61
  selector: '[arilBlockPage]'
62
62
  }]
63
63
  }], ctorParameters: () => [] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3V0aWwvYmxvY2svc3JjL2Jsb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWM1RixNQUFNLE9BQU8sS0FBSztJQUNqQixZQUFvQixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBWXZDLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFXLENBQUM7UUFDdEMsaUJBQVksR0FBRyxLQUFLLENBQWUsRUFBRSxDQUFDLENBQUM7UUFHdkMsV0FBTSxHQUFHLE1BQU0sQ0FBYyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBZnhELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO2dCQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO29CQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0QixDQUFDO3FCQUFNLENBQUM7b0JBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQztZQUNGLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFRRCxlQUFlO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQW1CO1FBQzVCLElBQUksYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDMUMsT0FBTyxhQUFhLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVztZQUFFLGFBQWEsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlGLE9BQU8sYUFBYSxDQUFDO0lBQ3RCLENBQUM7OEdBNUJXLEtBQUs7a0dBQUwsS0FBSzs7MkZBQUwsS0FBSztrQkFKakIsU0FBUzttQkFBQztvQkFDVixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGFBQWE7aUJBQ3ZCOztBQW9DRCxNQUFNLE9BQU8sU0FBUztJQUNyQjtRQVlBLGtCQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO1FBQzFDLGlCQUFZLEdBQUcsS0FBSyxDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBWnRDLE1BQU0sT0FBTyxHQUFHLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFFbEUsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBWFcsU0FBUztrR0FBVCxTQUFTOzsyRkFBVCxTQUFTO2tCQUpyQixTQUFTO21CQUFDO29CQUNWLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsaUJBQWlCO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZWZmZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5kZWNsYXJlIGNvbnN0IEtUQmxvY2tVSTogYW55O1xyXG5cclxuaW50ZXJmYWNlIEJsb2NrT3B0aW9ucyB7XHJcblx0ekluZGV4PzogbnVtYmVyO1xyXG5cdG92ZXJsYXlDbGFzcz86IHN0cmluZztcclxuXHRtZXNzYWdlPzogc3RyaW5nO1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnW2FyaWxCbG9ja10nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCbG9jayBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMudGFyZ2V0KCkpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5hcmlsQmxvY2soKSkge1xyXG5cdFx0XHRcdFx0dGhpcy5ibG9ja1VJLmJsb2NrKCk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuYmxvY2tVSS5yZWxlYXNlKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGFyaWxCbG9jayA9IGlucHV0LnJlcXVpcmVkPGJvb2xlYW4+KCk7XHJcblx0YmxvY2tPcHRpb25zID0gaW5wdXQ8QmxvY2tPcHRpb25zPih7fSk7XHJcblxyXG5cdGJsb2NrVUk6IHR5cGVvZiBLVEJsb2NrVUk7XHJcblx0dGFyZ2V0ID0gc2lnbmFsPEhUTUxFbGVtZW50Pih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHRcdHRoaXMudGFyZ2V0LnNldCh0aGlzLmdldFRhcmdldCh0aGlzLmVsZW1lbnQpKTtcclxuXHRcdHRoaXMuYmxvY2tVSSA9IG5ldyBLVEJsb2NrVUkodGhpcy50YXJnZXQoKSwgdGhpcy5ibG9ja09wdGlvbnMoKSk7XHJcblx0fVxyXG5cclxuXHRnZXRUYXJnZXQoZWxlbWVudDogRWxlbWVudFJlZik6IEhUTUxFbGVtZW50IHtcclxuXHRcdGxldCBuYXRpdmVFbGVtZW50ID0gZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG5cdFx0d2hpbGUgKG5hdGl2ZUVsZW1lbnQgJiYgIW5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpIG5hdGl2ZUVsZW1lbnQgPSBuYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdO1xyXG5cdFx0cmV0dXJuIG5hdGl2ZUVsZW1lbnQ7XHJcblx0fVxyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnW2FyaWxCbG9ja1BhZ2VdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQmxvY2tQYWdlIHtcclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdGNvbnN0IGJsb2NrVUkgPSBuZXcgS1RCbG9ja1VJKGRvY3VtZW50LmJvZHksIHRoaXMuYmxvY2tPcHRpb25zKCkpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmFyaWxCbG9ja1BhZ2UoKSkge1xyXG5cdFx0XHRcdGJsb2NrVUkuYmxvY2soKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRibG9ja1VJLnJlbGVhc2UoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRhcmlsQmxvY2tQYWdlID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcclxuXHRibG9ja09wdGlvbnMgPSBpbnB1dDxCbG9ja09wdGlvbnM+KHt9KTtcclxufVxyXG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3V0aWwvYmxvY2svc3JjL2Jsb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWM1RixNQUFNLE9BQU8sS0FBSztJQUNqQixZQUFvQixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBWXZDLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFXLENBQUM7UUFDdEMsaUJBQVksR0FBRyxLQUFLLENBQWUsRUFBRSxDQUFDLENBQUM7UUFHdkMsV0FBTSxHQUFHLE1BQU0sQ0FBYyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBZnhELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO2dCQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO29CQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0QixDQUFDO3FCQUFNLENBQUM7b0JBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQztZQUNGLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFRRCxlQUFlO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQW1CO1FBQzVCLElBQUksYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDMUMsT0FBTyxhQUFhLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVztZQUFFLGFBQWEsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlGLE9BQU8sYUFBYSxDQUFDO0lBQ3RCLENBQUM7K0dBNUJXLEtBQUs7bUdBQUwsS0FBSzs7NEZBQUwsS0FBSztrQkFKakIsU0FBUzttQkFBQztvQkFDVixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGFBQWE7aUJBQ3ZCOztBQW9DRCxNQUFNLE9BQU8sU0FBUztJQUNyQjtRQVlBLGtCQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO1FBQzFDLGlCQUFZLEdBQUcsS0FBSyxDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBWnRDLE1BQU0sT0FBTyxHQUFHLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFFbEUsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7K0dBWFcsU0FBUzttR0FBVCxTQUFTOzs0RkFBVCxTQUFTO2tCQUpyQixTQUFTO21CQUFDO29CQUNWLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsaUJBQWlCO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZWZmZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5kZWNsYXJlIGNvbnN0IEtUQmxvY2tVSTogYW55O1xyXG5cclxuaW50ZXJmYWNlIEJsb2NrT3B0aW9ucyB7XHJcblx0ekluZGV4PzogbnVtYmVyO1xyXG5cdG92ZXJsYXlDbGFzcz86IHN0cmluZztcclxuXHRtZXNzYWdlPzogc3RyaW5nO1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnW2FyaWxCbG9ja10nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCbG9jayBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMudGFyZ2V0KCkpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5hcmlsQmxvY2soKSkge1xyXG5cdFx0XHRcdFx0dGhpcy5ibG9ja1VJLmJsb2NrKCk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuYmxvY2tVSS5yZWxlYXNlKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGFyaWxCbG9jayA9IGlucHV0LnJlcXVpcmVkPGJvb2xlYW4+KCk7XHJcblx0YmxvY2tPcHRpb25zID0gaW5wdXQ8QmxvY2tPcHRpb25zPih7fSk7XHJcblxyXG5cdGJsb2NrVUk6IHR5cGVvZiBLVEJsb2NrVUk7XHJcblx0dGFyZ2V0ID0gc2lnbmFsPEhUTUxFbGVtZW50Pih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHRcdHRoaXMudGFyZ2V0LnNldCh0aGlzLmdldFRhcmdldCh0aGlzLmVsZW1lbnQpKTtcclxuXHRcdHRoaXMuYmxvY2tVSSA9IG5ldyBLVEJsb2NrVUkodGhpcy50YXJnZXQoKSwgdGhpcy5ibG9ja09wdGlvbnMoKSk7XHJcblx0fVxyXG5cclxuXHRnZXRUYXJnZXQoZWxlbWVudDogRWxlbWVudFJlZik6IEhUTUxFbGVtZW50IHtcclxuXHRcdGxldCBuYXRpdmVFbGVtZW50ID0gZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG5cdFx0d2hpbGUgKG5hdGl2ZUVsZW1lbnQgJiYgIW5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGgpIG5hdGl2ZUVsZW1lbnQgPSBuYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdO1xyXG5cdFx0cmV0dXJuIG5hdGl2ZUVsZW1lbnQ7XHJcblx0fVxyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnW2FyaWxCbG9ja1BhZ2VdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQmxvY2tQYWdlIHtcclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdGNvbnN0IGJsb2NrVUkgPSBuZXcgS1RCbG9ja1VJKGRvY3VtZW50LmJvZHksIHRoaXMuYmxvY2tPcHRpb25zKCkpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmFyaWxCbG9ja1BhZ2UoKSkge1xyXG5cdFx0XHRcdGJsb2NrVUkuYmxvY2soKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRibG9ja1VJLnJlbGVhc2UoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRhcmlsQmxvY2tQYWdlID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcclxuXHRibG9ja09wdGlvbnMgPSBpbnB1dDxCbG9ja09wdGlvbnM+KHt9KTtcclxufVxyXG4iXX0=
@@ -284,10 +284,10 @@ export class DetailPageCustomizationDirective {
284
284
  this.detailComponent.mdInfoPluginProps.generalMenu = signal(mergedMenu);
285
285
  }
286
286
  }
287
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DetailPageCustomizationDirective, deps: [{ token: DETAIL_COMPONENT }], target: i0.ɵɵFactoryTarget.Directive }); }
288
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: DetailPageCustomizationDirective, isStandalone: true, ngImport: i0 }); }
287
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DetailPageCustomizationDirective, deps: [{ token: DETAIL_COMPONENT }], target: i0.ɵɵFactoryTarget.Directive }); }
288
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DetailPageCustomizationDirective, isStandalone: true, ngImport: i0 }); }
289
289
  }
290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DetailPageCustomizationDirective, decorators: [{
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DetailPageCustomizationDirective, decorators: [{
291
291
  type: Directive,
292
292
  args: [{
293
293
  standalone: true
@@ -296,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
296
296
  type: Inject,
297
297
  args: [DETAIL_COMPONENT]
298
298
  }] }] });
299
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLXBhZ2UtY3VzdG9taXphdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3V0aWwvZGlyZWN0aXZlcy9zcmMvZGV0YWlsLXBhZ2UtY3VzdG9taXphdGlvbi9kZXRhaWwtcGFnZS1jdXN0b21pemF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUl6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFMUMsT0FBTyxFQUNOLGdCQUFnQixFQUloQixxQkFBcUIsRUFFckIsTUFBTSxVQUFVLENBQUM7O0FBS2xCLE1BQU0sT0FBTyxnQ0FBZ0M7SUF1RDVDLFlBQXVELGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXREdEUsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxvQkFBb0I7UUFDbkUscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFN0QsK0RBQStEO1FBQ3ZELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQyxtQkFBYyxHQUFHLEdBQTZCLEVBQUU7WUFDdkQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxD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dCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBicmlkZ2UgfSBmcm9tICdhcmlsL2Jvb3QvYnJpZGdlJztcclxuXHJcbmltcG9ydCB7XHJcblx0REVUQUlMX0NPTVBPTkVOVCxcclxuXHREZXRhaWxDb21wb25lbnQsXHJcblx0RGV0YWlsQ29uZmlnLFxyXG5cdERldGFpbENvbmZpZ01lbnVJdGVtLFxyXG5cdFBMVUdJTl9ESUFMT0dfU0VSVklDRSxcclxuXHRUYWJDb25maWdcclxufSBmcm9tICcuL21vZGVscyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZXRhaWxQYWdlQ3VzdG9taXphdGlvbkRpcmVjdGl2ZSB7XHJcblx0cHJpdmF0ZSByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcblx0cHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoUExVR0lOX0RJQUxPR19TRVJWSUNFKTsgLy8gVXNlIHRva2VuIGluc3RlYWRcclxuXHRwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XHJcblxyXG5cdC8vIEludGVybmFsIHNpZ25hbCB0byB0cmFjayB3aGVuIFRhYlZpZXcgYW5kIHRoZSBtZW51IGFyZSByZWFkeVxyXG5cdHByaXZhdGUgdmlld3NJbml0aWFsaXplZCA9IHNpZ25hbChmYWxzZSk7XHJcblx0cHJpdmF0ZSBjb25maWc6IERldGFpbENvbmZpZyB8IHVuZGVmaW5lZDtcclxuXHRwcml2YXRlIGdldFJvdXRlQ29uZmlnID0gKCk6IERldGFpbENvbmZpZyB8IHVuZGVmaW5lZCA9PiB7XHJcblx0XHRjb25zdCBjb25maWdzID0gYnJpZGdlLnJvdXRlQ29uZmlncygpO1xyXG5cdFx0aWYgKCFjb25maWdzKSByZXR1cm4gdW5kZWZpbmVkO1xyXG5cclxuXHRcdGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmwuc3BsaXQoJz8nKVswXTtcclxuXHJcblx0XHRsZXQgYmVzdE1hdGNoOiB7IHBhdGg6IHN0cmluZzsgY29udGVudDogc3RyaW5nOyB2ZXJzaW9uOiBudW1iZXIgfSB8IHVuZGVmaW5lZDtcclxuXHJcblx0XHRmb3IgKGNvbnN0IGNvbmZpZyBvZiBjb25maWdzKSB7XHJcblx0XHRcdGlmICghY29uZmlnLnBhdGgpIGNvbnRpbnVlO1xyXG5cclxuXHRcdFx0Y29uc3QgdXJsVG9DaGVjayA9IGNvbmZpZy5wYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IGNvbmZpZy5wYXRoIDogYC8ke2NvbmZpZy5wYXRofWA7XHJcblxyXG5cdFx0XHRpZiAoY3VycmVudFVybC5zdGFydHNXaXRoKHVybFRvQ2hlY2spKSB7XHJcblx0XHRcdFx0YmVzdE1hdGNoID0gY29uZmlnO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFiZXN0TWF0Y2gpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIEpTT04ucGFyc2UoYmVzdE1hdGNoLmNvbnRlbnQpIGFzIERldGFpbENvbmZpZztcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBhcnNlIHJvdXRlIGNvbmZpZyBjb250ZW50OicsIGUpO1xyXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgZ2V0UHJvY2Vzc2VkVGFiczogU2lnbmFsPFRhYkNvbmZpZ1tdPiA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGlmICghdGhpcy5jb25maWc/LnRhYnMpIHJldHVybiBbXTtcclxuXHJcblx0XHRjb25zdCBhY3RpdmVMYW5nID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKTtcclxuXHJcblx0XHRyZXR1cm4gdGhpcy5jb25maWcudGFic1xyXG5cdFx0XHQuZmlsdGVyKCh0YWIpID0+IHRhYi52aXNpYmxlICE9PSBmYWxzZSlcclxuXHRcdFx0Lm1hcCgodGFiKSA9PiAoe1xyXG5cdFx0XHRcdGlkOiB0YWIuaWQgPz8gbnVsbCxcclxuXHRcdFx0XHRpY29uOiB0YWIuaWNvbixcclxuXHRcdFx0XHRoZWFkZXI6IHRhYi5sYWJlbCA/IHRhYi5sYWJlbFthY3RpdmVMYW5nXSA6ICcnLFxyXG5cdFx0XHRcdHZpc2libGU6IHRhYi52aXNpYmxlLFxyXG5cdFx0XHRcdHBvc2l0aW9uOiB0YWIucG9zaXRpb24sXHJcblx0XHRcdFx0Y29tcG9uZW50czogdGFiLmNvbXBvbmVudHMgfHwgW11cclxuXHRcdFx0fSkpO1xyXG5cdH0pO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihASW5qZWN0KERFVEFJTF9DT01QT05FTlQpIHByaXZhdGUgcmVhZG9ubHkgZGV0YWlsQ29tcG9uZW50OiBEZXRhaWxDb21wb25lbnQpIHtcclxuXHRcdHRoaXMuY29uZmlnID0gdGhpcy5nZXRSb3V0ZUNvbmZpZygpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQob25DbGVhbnVwKSA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMudmlld3NJbml0aWFsaXplZCgpKSByZXR1cm47XHJcblxyXG5cdFx0XHRcdC8vIFBvbGwgZXZlcnkgYW5pbWF0aW9uIGZyYW1lIHVudGlsIGJvdGggVGFiVmlldyBhbmQgdGhlIG1lbnUgaXMgcmVhZHlcclxuXHRcdFx0XHQvLyBUaGUgbWVudSBjYW4gYmUgZGlyZWN0bHkgZGVmaW5lZCBpbiB0aGUgY29tcG9uZW50IGZyb20gaW5pdCBzdGVwLCBvciBiZSBidWlsdCBkeW5hbWljYWxseSBhZnRlciB3YWl0aW5nIGZvciBhIG5ldHdvcmsgcmVzcG9uc2UuIFNvIHdlIG11c3Qgd2FpdCBmb3IgaXQgdG8gYmUgcmVhZHkuXHJcblx0XHRcdFx0Y29uc3QgY2hlY2tWaWV3cyA9ICgpID0+IHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Py50YWJzICYmIHRoaXMuZGV0YWlsQ29tcG9uZW50Lm1kSW5mb1BsdWdpblByb3BzPy5nZW5lcmFsTWVudSgpPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy52aWV3c0luaXRpYWxpemVkLnNldCh0cnVlKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5vblZpZXdzUmVhZHkoKTtcclxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoIXRoaXMudmlld3NJbml0aWFsaXplZCgpKSB7XHJcblx0XHRcdFx0XHRcdGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2hlY2tWaWV3cyk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0bGV0IGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2hlY2tWaWV3cyk7XHJcblxyXG5cdFx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XHJcblx0XHRcdFx0XHRjYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZUlkKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBvblZpZXdzUmVhZHkoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuY29uZmlnKSByZXR1cm47XHJcblxyXG5cdFx0Ly8gc3RlcCAxIC0gaGlkZSB0YWJzIGJhc2VkIG9uIGNvbmZpZ1xyXG5cdFx0aWYgKHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXc/LnRhYnMpIHtcclxuXHRcdFx0dGhpcy51cGRhdGVUYWJWaXNpYmlsaXR5KCk7XHJcblx0XHR9XHJcblx0XHQvLyBzdGVwIDIgLSBhcHBlbmQgY29uZmlnIHRhYnMgdG8gdGhlIHN0YXRpYyB0YWJzIChvbmx5IG5ldyBvbmVzLCBub3QgdGhvc2UgbWF0Y2hpbmcgc3RhdGljIHRhYnMpXHJcblx0XHRjb25zdCBhbGxDb25maWdUYWJzID0gdGhpcy5nZXRQcm9jZXNzZWRUYWJzKCk7XHJcblxyXG5cdFx0Ly8gR2V0IElEcyBvZiBleGlzdGluZyBzdGF0aWMgdGFic1xyXG5cdFx0Y29uc3Qgc3RhdGljVGFiSWRzID0gbmV3IFNldDxzdHJpbmcgfCBudW1iZXIgfCBudWxsPigpO1xyXG5cdFx0aWYgKHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXc/LnRhYnMpIHtcclxuXHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy50YWJzLmZvckVhY2goKHRhYlBhbmVsKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgdGFiSWQgPSB0YWJQYW5lbD8uZWw/Lm5hdGl2ZUVsZW1lbnQ/LmlkO1xyXG5cdFx0XHRcdGlmICh0YWJJZCkge1xyXG5cdFx0XHRcdFx0c3RhdGljVGFiSWRzLmFkZCh0YWJJZCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBGaWx0ZXIgb3V0IGNvbmZpZyB0YWJzIHRoYXQgYXJlIG1lYW50IHRvICpyZW9yZGVyKiBleGlzdGluZyBzdGF0aWMgdGFicy5cclxuXHRcdC8vIEFueSB0YWIgd2hvc2UgaWQgbWF0Y2hlcyBhbiBleGlzdGluZyBzdGF0aWMgdGFiIGlkIGlzIGNvbnNpZGVyZWQgYSBcInJlb3JkZXJcIlxyXG5cdFx0Ly8gaW5zdHJ1Y3Rpb247IGV2ZXJ5dGhpbmcgZWxzZSAoaWQgPT09IG51bGwgT1IgYW4gaWQgdGhhdCBkb2Vzbid0IGV4aXN0IHlldClcclxuXHRcdC8vIGlzIHRyZWF0ZWQgYXMgYSBicmFuZCBuZXcgdGFiLlxyXG5cdFx0Y29uc3QgbmV3Q29uZmlnVGFicyA9IGFsbENvbmZpZ1RhYnMuZmlsdGVyKCh0YWIpID0+IHtcclxuXHRcdFx0Ly8gbmV3IHRhYiB3aGVuIGlkIGlzIG51bGwvdW5kZWZpbmVkXHJcblx0XHRcdGlmICghdGFiLmlkKSByZXR1cm4gdHJ1ZTtcclxuXHJcblx0XHRcdC8vIG5ldyB0YWIgd2hlbiBpZCBpcyBwcm92aWRlZCBidXQgZG9lc24ndCBtYXRjaCBhbnkgc3RhdGljIHRhYiBpZFxyXG5cdFx0XHRyZXR1cm4gIXN0YXRpY1RhYklkcy5oYXModGFiLmlkKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdGlmIChuZXdDb25maWdUYWJzLmxlbmd0aCA+IDAgJiYgdGhpcy5kZXRhaWxDb21wb25lbnQuY29uZmlnVGFicykge1xyXG5cdFx0XHQodGhpcy5kZXRhaWxDb21wb25lbnQuY29uZmlnVGFicyBhcyBhbnkpLnNldChuZXdDb25maWdUYWJzKTtcclxuXHRcdH0gZWxzZSBpZiAobmV3Q29uZmlnVGFicy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYnMgPSBuZXdDb25maWdUYWJzO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIHVzaW5nIHNldFRpbWVvdXQgdG8gZW5zdXJlIHRhYlZpZXcgaXMgcmVhZHkgYXMgd2Ugd2FudCB0byB3b3JrIGRpcmVjdGx5IHdpdGggdGhlIGdlbmVyYXRlZCBlbGVtZW50c1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdC8vIHN0ZXAgMyAtIHJlb3JkZXIgdGFic1xyXG5cdFx0XHR0aGlzLnJlb3JkZXJUYWJzQnlQb3NpdGlvbigpO1xyXG5cdFx0XHQvLyBzdGVwIDQgLSBhY3RpdmF0ZSB0YWIgZnJvbSBVUkwgaWYgc3BlY2lmaWVkXHJcblx0XHRcdHRoaXMuYWN0aXZhdGVUYWJGcm9tVXJsKCk7XHJcblx0XHRcdC8vIHN0ZXAgNSAtIHVwZGF0ZSB0aGUgbWVudVxyXG5cdFx0XHRpZiAodGhpcy5jb25maWc/Lm1lbnUpIHtcclxuXHRcdFx0XHR0aGlzLnVwZGF0ZU1lbnUodGhpcy5jb25maWcubWVudSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSB1cGRhdGVUYWJWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmNvbmZpZz8udGFicykgcmV0dXJuO1xyXG5cclxuXHRcdC8vIEZpbmQgdGFicyBpbiBjb25maWcgdGhhdCBoYXZlIHZpc2libGU6IGZhbHNlXHJcblx0XHRjb25zdCBoaWRkZW5UYWJQb3NpdGlvbnMgPSB0aGlzLmNvbmZpZy50YWJzLmZpbHRlcigodGFiKSA9PiB0YWIudmlzaWJsZSA9PT0gZmFsc2UpLm1hcCgodGFiKSA9PiB0YWIucG9zaXRpb24pO1xyXG5cclxuXHRcdGhpZGRlblRhYlBvc2l0aW9ucy5mb3JFYWNoKChwb3NpdGlvbikgPT4ge1xyXG5cdFx0XHR0aGlzLmhpZGVUYWJCeVBvc2l0aW9uKHBvc2l0aW9uLCB0cnVlKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGlkZVRhYkJ5UG9zaXRpb24ocG9zaXRpb246IG51bWJlciwgaGlkZSA9IHRydWUpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldz8udGFicykgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHBhbmVsVG9IaWRlID0gdGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy50YWJzW3Bvc2l0aW9uXTtcclxuXHRcdGNvbnN0IHRhYlRvSGlkZSA9IHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcubGlzdD8uY2hpbGRyZW5bcG9zaXRpb25dIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuXHRcdGlmICh0YWJUb0hpZGUgJiYgcGFuZWxUb0hpZGUpIHtcclxuXHRcdFx0cGFuZWxUb0hpZGUuZWwubmF0aXZlRWxlbWVudC5oaWRkZW4gPSBoaWRlO1xyXG5cdFx0XHR0YWJUb0hpZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlb3JkZXIgdGFicyBiYXNlZCBvbiBjb25maWcgcG9zaXRpb25zXHJcblx0ICogSXRlcmF0ZXMgb3ZlciB2aXNpYmxlIGNvbmZpZyB0YWJzIGFuZCByZWFycmFuZ2VzIGJvdGggc3RhdGljIGFuZCBjb25maWcgdGFic1xyXG5cdCAqL1xyXG5cdHByaXZhdGUgcmVvcmRlclRhYnNCeVBvc2l0aW9uKCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Py50YWJzIHx8ICF0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Py5saXN0KSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgY29uZmlnVGFicyA9IHRoaXMuZ2V0UHJvY2Vzc2VkVGFicygpO1xyXG5cdFx0Y29uc3QgYWxsVGFicyA9IHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcudGFicztcclxuXHRcdGNvbnN0IG5hdkxpc3QgPSB0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Lmxpc3Q7XHJcblxyXG5cdFx0Y29uc3QgY29uZmlnVGFiTWFwID0gbmV3IE1hcDxzdHJpbmcgfCBudW1iZXIgfCBudWxsLCBUYWJDb25maWc+KCk7XHJcblx0XHRjb25maWdUYWJzLmZvckVhY2goKHRhYikgPT4ge1xyXG5cdFx0XHQvLyBPbmx5IHRyZWF0IHRhYnMgdGhhdCBib3RoOlxyXG5cdFx0XHQvLyAtIGhhdmUgYW4gaWRcclxuXHRcdFx0Ly8gLSBhbmQgaGF2ZSBhbiBleHBsaWNpdCBwb3NpdGlvblxyXG5cdFx0XHQvLyBhcyBcInJlb3JkZXIgaW5zdHJ1Y3Rpb25zXCIgZm9yIGV4aXN0aW5nIHN0YXRpYyB0YWJzLlxyXG5cdFx0XHQvLyBUYWJzIHdpdGhvdXQgYSBwb3NpdGlvbiAoZXZlbiBpZiB0aGV5IGhhdmUgYW4gaWQpIGFyZSBjb25zaWRlcmVkXHJcblx0XHRcdC8vIHJlZ3VsYXIvbmV3IHRhYnMgYW5kIHNob3VsZCBrZWVwIHRoZWlyIG5hdHVyYWwgb3JkZXIuXHJcblx0XHRcdGlmICh0YWIuaWQgJiYgdGFiLnBvc2l0aW9uKSB7XHJcblx0XHRcdFx0Y29uZmlnVGFiTWFwLnNldCh0YWIuaWQsIHRhYik7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIHNlcGFyYXRlIHN0YXRpYyBmcm9tIGNvbmZpZyB0YWJzXHJcblx0XHRjb25zdCBzdGF0aWNUYWJzOiBBcnJheTx7IHRhYjogYW55OyBpbmRleDogbnVtYmVyOyBpZDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB9PiA9IFtdO1xyXG5cdFx0Y29uc3QgY29uZmlnVGFiSW5zdGFuY2VzOiBBcnJheTx7IHRhYjogYW55OyBpbmRleDogbnVtYmVyOyBjb25maWc6IFRhYkNvbmZpZyB9PiA9IFtdO1xyXG5cclxuXHRcdGFsbFRhYnMuZm9yRWFjaCgodGFiUGFuZWwsIGluZGV4KSA9PiB7XHJcblx0XHRcdGNvbnN0IHRhYklkID0gdGFiUGFuZWw/LmVsPy5uYXRpdmVFbGVtZW50Py5pZCB8fCBudWxsO1xyXG5cdFx0XHRjb25zdCBjb25maWdUYWIgPSB0YWJJZCA/IGNvbmZpZ1RhYk1hcC5nZXQodGFiSWQpIDogbnVsbDtcclxuXHJcblx0XHRcdGlmIChjb25maWdUYWIpIHtcclxuXHRcdFx0XHRjb25maWdUYWJJbnN0YW5jZXMucHVzaCh7IHRhYjogdGFiUGFuZWwsIGluZGV4LCBjb25maWc6IGNvbmZpZ1RhYiB9KTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRzdGF0aWNUYWJzLnB1c2goeyB0YWI6IHRhYlBhbmVsLCBpbmRleCwgaWQ6IHRhYklkIH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRjb25zdCBwb3NpdGlvbk1hcCA9IG5ldyBNYXA8bnVtYmVyLCB7IHRhYjogYW55OyBpc0NvbmZpZzogYm9vbGVhbjsgaWQ6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfT4oKTtcclxuXHJcblx0XHQvLyBwbGFjZSBjb25maWcgdGFicyBhdCB0aGVpciBzcGVjaWZpZWQgcG9zaXRpb25zXHJcblx0XHRjb25maWdUYWJJbnN0YW5jZXMuZm9yRWFjaCgoeyB0YWIsIGNvbmZpZyB9KSA9PiB7XHJcblx0XHRcdGlmIChjb25maWcucG9zaXRpb24gIT09IHVuZGVmaW5lZCAmJiBjb25maWcucG9zaXRpb24gIT09IG51bGwpIHtcclxuXHRcdFx0XHRwb3NpdGlvbk1hcC5zZXQoY29uZmlnLnBvc2l0aW9uLCB7IHRhYiwgaXNDb25maWc6IHRydWUsIGlkOiBjb25maWcuaWQgfSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIHBsYWNlIHN0YXRpYyB0YWJzIGF0IGF2YWlsYWJsZSBwb3NpdGlvbnMgKG1haW50YWluaW5nIHJlbGF0aXZlIG9yZGVyKVxyXG5cdFx0bGV0IHN0YXRpY0luZGV4ID0gMDtcclxuXHRcdGxldCBjdXJyZW50UG9zaXRpb24gPSAwO1xyXG5cclxuXHRcdHdoaWxlIChzdGF0aWNJbmRleCA8IHN0YXRpY1RhYnMubGVuZ3RoKSB7XHJcblx0XHRcdHdoaWxlIChwb3NpdGlvbk1hcC5oYXMoY3VycmVudFBvc2l0aW9uKSkge1xyXG5cdFx0XHRcdGN1cnJlbnRQb3NpdGlvbisrO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBwbGFjZSBzdGF0aWMgdGFiIGF0IHRoaXMgcG9zaXRpb25cclxuXHRcdFx0Y29uc3Qgc3RhdGljVGFiID0gc3RhdGljVGFic1tzdGF0aWNJbmRleF07XHJcblx0XHRcdHBvc2l0aW9uTWFwLnNldChjdXJyZW50UG9zaXRpb24sIHsgdGFiOiBzdGF0aWNUYWIudGFiLCBpc0NvbmZpZzogZmFsc2UsIGlkOiBzdGF0aWNUYWIuaWQgfSk7XHJcblx0XHRcdHN0YXRpY0luZGV4Kys7XHJcblx0XHRcdGN1cnJlbnRQb3NpdGlvbisrO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIGJ1aWxkIG9yZGVyZWQgYXJyYXlcclxuXHRcdGNvbnN0IHNvcnRlZFBvc2l0aW9ucyA9IEFycmF5LmZyb20ocG9zaXRpb25NYXAua2V5cygpKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XHJcblx0XHRjb25zdCByZW9yZGVyZWRUYWJzOiBhbnlbXSA9IFtdO1xyXG5cdFx0Y29uc3QgcmVvcmRlcmVkSGVhZGVyczogSFRNTEVsZW1lbnRbXSA9IFtdO1xyXG5cclxuXHRcdHNvcnRlZFBvc2l0aW9ucy5mb3JFYWNoKChwb3NpdGlvbikgPT4ge1xyXG5cdFx0XHRjb25zdCB0YWJJbmZvID0gcG9zaXRpb25NYXAuZ2V0KHBvc2l0aW9uKSE7XHJcblx0XHRcdHJlb3JkZXJlZFRhYnMucHVzaCh0YWJJbmZvLnRhYik7XHJcblxyXG5cdFx0XHRjb25zdCBvcmlnaW5hbEluZGV4ID0gYWxsVGFicy5pbmRleE9mKHRhYkluZm8udGFiKTtcclxuXHRcdFx0aWYgKG9yaWdpbmFsSW5kZXggIT09IC0xICYmIG5hdkxpc3QuY2hpbGRyZW5bb3JpZ2luYWxJbmRleF0pIHtcclxuXHRcdFx0XHRyZW9yZGVyZWRIZWFkZXJzLnB1c2gobmF2TGlzdC5jaGlsZHJlbltvcmlnaW5hbEluZGV4XSBhcyBIVE1MRWxlbWVudCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIHJlb3JkZXIgdGFicyBhcnJheVxyXG5cdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy50YWJzLmxlbmd0aCA9IDA7XHJcblx0XHRyZW9yZGVyZWRUYWJzLmZvckVhY2goKHRhYikgPT4gdGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldyEudGFicy5wdXNoKHRhYikpO1xyXG5cclxuXHRcdC8vIHJlb3JkZXIgZG9tIGhlYWRlcnNcclxuXHRcdHJlb3JkZXJlZEhlYWRlcnMuZm9yRWFjaCgoaGVhZGVyLCBuZXdJbmRleCkgPT4ge1xyXG5cdFx0XHRjb25zdCB0YXJnZXRIZWFkZXIgPSBuYXZMaXN0LmNoaWxkcmVuW25ld0luZGV4XTtcclxuXHRcdFx0aWYgKHRhcmdldEhlYWRlciAmJiB0YXJnZXRIZWFkZXIgIT09IGhlYWRlcikge1xyXG5cdFx0XHRcdG5hdkxpc3QuaW5zZXJ0QmVmb3JlKGhlYWRlciwgdGFyZ2V0SGVhZGVyKTtcclxuXHRcdFx0fSBlbHNlIGlmICghdGFyZ2V0SGVhZGVyKSB7XHJcblx0XHRcdFx0bmF2TGlzdC5hcHBlbmRDaGlsZChoZWFkZXIpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHQvLyByZW9yZGVyIGRvbSBwYW5lbHNcclxuXHRcdGNvbnN0IHBhbmVsc0NvbnRhaW5lciA9IGFsbFRhYnNbMF0/LmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtcclxuXHRcdGlmIChwYW5lbHNDb250YWluZXIpIHtcclxuXHRcdFx0cmVvcmRlcmVkVGFicy5mb3JFYWNoKCh0YWJQYW5lbCwgbmV3SW5kZXgpID0+IHtcclxuXHRcdFx0XHRjb25zdCB0YXJnZXRQYW5lbCA9IHBhbmVsc0NvbnRhaW5lci5jaGlsZHJlbltuZXdJbmRleF07XHJcblx0XHRcdFx0aWYgKHRhcmdldFBhbmVsICYmIHRhcmdldFBhbmVsICE9PSB0YWJQYW5lbC5lbC5uYXRpdmVFbGVtZW50KSB7XHJcblx0XHRcdFx0XHRwYW5lbHNDb250YWluZXIuaW5zZXJ0QmVmb3JlKHRhYlBhbmVsLmVsLm5hdGl2ZUVsZW1lbnQsIHRhcmdldFBhbmVsKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKCF0YXJnZXRQYW5lbCkge1xyXG5cdFx0XHRcdFx0cGFuZWxzQ29udGFpbmVyLmFwcGVuZENoaWxkKHRhYlBhbmVsLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcuY2QpIHtcclxuXHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYWN0aXZhdGVUYWJGcm9tVXJsKCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3KSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgYWN0aXZlVGFiUGFyYW0gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdhY3RpdmVUYWInKTtcclxuXHRcdGlmIChhY3RpdmVUYWJQYXJhbSkge1xyXG5cdFx0XHRjb25zdCBhY3RpdmVUYWJJbmRleCA9IE51bWJlcihhY3RpdmVUYWJQYXJhbSk7XHJcblxyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0IWlzTmFOKGFjdGl2ZVRhYkluZGV4KSAmJlxyXG5cdFx0XHRcdGFjdGl2ZVRhYkluZGV4ID49IDAgJiZcclxuXHRcdFx0XHR0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3LnRhYnMgJiZcclxuXHRcdFx0XHRhY3RpdmVUYWJJbmRleCA8IHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcudGFicy5sZW5ndGhcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy5hY3RpdmVJbmRleCA9IGFjdGl2ZVRhYkluZGV4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHVwZGF0ZU1lbnUobWVudUNvbmZpZzogRGV0YWlsQ29uZmlnTWVudUl0ZW1bXSkge1xyXG5cdFx0Y29uc3QgY29udGV4dCA9IHtcclxuXHRcdFx0cm91dGVyOiB0aGlzLnJvdXRlcixcclxuXHRcdFx0cm91dGU6IHRoaXMucm91dGUsXHJcblx0XHRcdGRpYWxvZ1NlcnZpY2U6IHRoaXMuZGlhbG9nU2VydmljZSxcclxuXHRcdFx0Y29tcG9uZW50OiB0aGlzLmRldGFpbENvbXBvbmVudFxyXG5cdFx0fTtcclxuXHJcblx0XHRjb25zdCBhY3RpdmVMYW5nID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKTtcclxuXHRcdGNvbnN0IGR5bmFtaWNNZW51OiBNZW51SXRlbVtdID0gbWVudUNvbmZpZy5tYXAoKG0pID0+ICh7XHJcblx0XHRcdGxhYmVsOiBtLmxhYmVsW2FjdGl2ZUxhbmddID8/ICcnLFxyXG5cdFx0XHRpY29uOiBtLmljb24sXHJcblx0XHRcdGNvbW1hbmQ6IChfZXZlbnQ6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGNvbW1hbmRGbiA9IG5ldyBGdW5jdGlvbignY3R4JywgbS5jb21tYW5kKTtcclxuXHRcdFx0XHRjb21tYW5kRm4oY29udGV4dCkoY29udGV4dCk7XHJcblx0XHRcdH1cclxuXHRcdH0pKTtcclxuXHJcblx0XHQvLyBVcGRhdGUgdGhlIGV4aXN0aW5nIHNpZ25hbCBpbnN0ZWFkIG9mIHJlcGxhY2luZyBpdCB0byBlbnN1cmUgY2hhbmdlXHJcblx0XHQvLyBkZXRlY3Rpb24gcGlja3MgdXAgdGhlIG1lbnUgdXBkYXRlIGFmdGVyIGJyb3dzZXIgYmFjayBuYXZpZ2F0aW9uLlxyXG5cdFx0Y29uc3QgZ2VuZXJhbE1lbnVTaWduYWwgPSB0aGlzLmRldGFpbENvbXBvbmVudC5tZEluZm9QbHVnaW5Qcm9wcy5nZW5lcmFsTWVudSBhcyBhbnk7XHJcblx0XHRjb25zdCBleGlzdGluZ01lbnU6IE1lbnVJdGVtW10gPSBnZW5lcmFsTWVudVNpZ25hbCgpO1xyXG5cclxuXHRcdC8vIEF2b2lkIGR1cGxpY2F0aW5nIHByZXZpb3VzbHkgYWRkZWQgZHluYW1pYyBpdGVtcyAoaWRlbnRpZmllZCBieSBsYWJlbC9pY29uIG1hdGNoKVxyXG5cdFx0Y29uc3QgbWVyZ2VkTWVudSA9IFtcclxuXHRcdFx0Li4uZXhpc3RpbmdNZW51LmZpbHRlcigoaXRlbSkgPT4gIWR5bmFtaWNNZW51LnNvbWUoKGR5bikgPT4gZHluLmxhYmVsID09PSBpdGVtLmxhYmVsICYmIGR5bi5pY29uID09PSBpdGVtLmljb24pKSxcclxuXHRcdFx0Li4uZHluYW1pY01lbnVcclxuXHRcdF07XHJcblxyXG5cdFx0aWYgKGdlbmVyYWxNZW51U2lnbmFsPy5zZXQpIHtcclxuXHRcdFx0Z2VuZXJhbE1lbnVTaWduYWwuc2V0KG1lcmdlZE1lbnUpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQubWRJbmZvUGx1Z2luUHJvcHMuZ2VuZXJhbE1lbnUgPSBzaWduYWwobWVyZ2VkTWVudSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLXBhZ2UtY3VzdG9taXphdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3V0aWwvZGlyZWN0aXZlcy9zcmMvZGV0YWlsLXBhZ2UtY3VzdG9taXphdGlvbi9kZXRhaWwtcGFnZS1jdXN0b21pemF0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUl6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFMUMsT0FBTyxFQUNOLGdCQUFnQixFQUloQixxQkFBcUIsRUFFckIsTUFBTSxVQUFVLENBQUM7O0FBS2xCLE1BQU0sT0FBTyxnQ0FBZ0M7SUF1RDVDLFlBQXVELGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXREdEUsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxvQkFBb0I7UUFDbkUscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFN0QsK0RBQStEO1FBQ3ZELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQyxtQkFBYyxHQUFHLEdBQTZCLEVBQUU7WUFDdkQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxD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dCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBicmlkZ2UgfSBmcm9tICdhcmlsL2Jvb3QvYnJpZGdlJztcclxuXHJcbmltcG9ydCB7XHJcblx0REVUQUlMX0NPTVBPTkVOVCxcclxuXHREZXRhaWxDb21wb25lbnQsXHJcblx0RGV0YWlsQ29uZmlnLFxyXG5cdERldGFpbENvbmZpZ01lbnVJdGVtLFxyXG5cdFBMVUdJTl9ESUFMT0dfU0VSVklDRSxcclxuXHRUYWJDb25maWdcclxufSBmcm9tICcuL21vZGVscyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZXRhaWxQYWdlQ3VzdG9taXphdGlvbkRpcmVjdGl2ZSB7XHJcblx0cHJpdmF0ZSByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcblx0cHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoUExVR0lOX0RJQUxPR19TRVJWSUNFKTsgLy8gVXNlIHRva2VuIGluc3RlYWRcclxuXHRwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XHJcblxyXG5cdC8vIEludGVybmFsIHNpZ25hbCB0byB0cmFjayB3aGVuIFRhYlZpZXcgYW5kIHRoZSBtZW51IGFyZSByZWFkeVxyXG5cdHByaXZhdGUgdmlld3NJbml0aWFsaXplZCA9IHNpZ25hbChmYWxzZSk7XHJcblx0cHJpdmF0ZSBjb25maWc6IERldGFpbENvbmZpZyB8IHVuZGVmaW5lZDtcclxuXHRwcml2YXRlIGdldFJvdXRlQ29uZmlnID0gKCk6IERldGFpbENvbmZpZyB8IHVuZGVmaW5lZCA9PiB7XHJcblx0XHRjb25zdCBjb25maWdzID0gYnJpZGdlLnJvdXRlQ29uZmlncygpO1xyXG5cdFx0aWYgKCFjb25maWdzKSByZXR1cm4gdW5kZWZpbmVkO1xyXG5cclxuXHRcdGNvbnN0IGN1cnJlbnRVcmwgPSB0aGlzLnJvdXRlci51cmwuc3BsaXQoJz8nKVswXTtcclxuXHJcblx0XHRsZXQgYmVzdE1hdGNoOiB7IHBhdGg6IHN0cmluZzsgY29udGVudDogc3RyaW5nOyB2ZXJzaW9uOiBudW1iZXIgfSB8IHVuZGVmaW5lZDtcclxuXHJcblx0XHRmb3IgKGNvbnN0IGNvbmZpZyBvZiBjb25maWdzKSB7XHJcblx0XHRcdGlmICghY29uZmlnLnBhdGgpIGNvbnRpbnVlO1xyXG5cclxuXHRcdFx0Y29uc3QgdXJsVG9DaGVjayA9IGNvbmZpZy5wYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IGNvbmZpZy5wYXRoIDogYC8ke2NvbmZpZy5wYXRofWA7XHJcblxyXG5cdFx0XHRpZiAoY3VycmVudFVybC5zdGFydHNXaXRoKHVybFRvQ2hlY2spKSB7XHJcblx0XHRcdFx0YmVzdE1hdGNoID0gY29uZmlnO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFiZXN0TWF0Y2gpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIEpTT04ucGFyc2UoYmVzdE1hdGNoLmNvbnRlbnQpIGFzIERldGFpbENvbmZpZztcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBhcnNlIHJvdXRlIGNvbmZpZyBjb250ZW50OicsIGUpO1xyXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgZ2V0UHJvY2Vzc2VkVGFiczogU2lnbmFsPFRhYkNvbmZpZ1tdPiA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGlmICghdGhpcy5jb25maWc/LnRhYnMpIHJldHVybiBbXTtcclxuXHJcblx0XHRjb25zdCBhY3RpdmVMYW5nID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKTtcclxuXHJcblx0XHRyZXR1cm4gdGhpcy5jb25maWcudGFic1xyXG5cdFx0XHQuZmlsdGVyKCh0YWIpID0+IHRhYi52aXNpYmxlICE9PSBmYWxzZSlcclxuXHRcdFx0Lm1hcCgodGFiKSA9PiAoe1xyXG5cdFx0XHRcdGlkOiB0YWIuaWQgPz8gbnVsbCxcclxuXHRcdFx0XHRpY29uOiB0YWIuaWNvbixcclxuXHRcdFx0XHRoZWFkZXI6IHRhYi5sYWJlbCA/IHRhYi5sYWJlbFthY3RpdmVMYW5nXSA6ICcnLFxyXG5cdFx0XHRcdHZpc2libGU6IHRhYi52aXNpYmxlLFxyXG5cdFx0XHRcdHBvc2l0aW9uOiB0YWIucG9zaXRpb24sXHJcblx0XHRcdFx0Y29tcG9uZW50czogdGFiLmNvbXBvbmVudHMgfHwgW11cclxuXHRcdFx0fSkpO1xyXG5cdH0pO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihASW5qZWN0KERFVEFJTF9DT01QT05FTlQpIHByaXZhdGUgcmVhZG9ubHkgZGV0YWlsQ29tcG9uZW50OiBEZXRhaWxDb21wb25lbnQpIHtcclxuXHRcdHRoaXMuY29uZmlnID0gdGhpcy5nZXRSb3V0ZUNvbmZpZygpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQob25DbGVhbnVwKSA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMudmlld3NJbml0aWFsaXplZCgpKSByZXR1cm47XHJcblxyXG5cdFx0XHRcdC8vIFBvbGwgZXZlcnkgYW5pbWF0aW9uIGZyYW1lIHVudGlsIGJvdGggVGFiVmlldyBhbmQgdGhlIG1lbnUgaXMgcmVhZHlcclxuXHRcdFx0XHQvLyBUaGUgbWVudSBjYW4gYmUgZGlyZWN0bHkgZGVmaW5lZCBpbiB0aGUgY29tcG9uZW50IGZyb20gaW5pdCBzdGVwLCBvciBiZSBidWlsdCBkeW5hbWljYWxseSBhZnRlciB3YWl0aW5nIGZvciBhIG5ldHdvcmsgcmVzcG9uc2UuIFNvIHdlIG11c3Qgd2FpdCBmb3IgaXQgdG8gYmUgcmVhZHkuXHJcblx0XHRcdFx0Y29uc3QgY2hlY2tWaWV3cyA9ICgpID0+IHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Py50YWJzICYmIHRoaXMuZGV0YWlsQ29tcG9uZW50Lm1kSW5mb1BsdWdpblByb3BzPy5nZW5lcmFsTWVudSgpPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy52aWV3c0luaXRpYWxpemVkLnNldCh0cnVlKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5vblZpZXdzUmVhZHkoKTtcclxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoIXRoaXMudmlld3NJbml0aWFsaXplZCgpKSB7XHJcblx0XHRcdFx0XHRcdGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2hlY2tWaWV3cyk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0bGV0IGZyYW1lSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2hlY2tWaWV3cyk7XHJcblxyXG5cdFx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XHJcblx0XHRcdFx0XHRjYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZUlkKTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBvblZpZXdzUmVhZHkoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuY29uZmlnKSByZXR1cm47XHJcblxyXG5cdFx0Ly8gc3RlcCAxIC0gaGlkZSB0YWJzIGJhc2VkIG9uIGNvbmZpZ1xyXG5cdFx0aWYgKHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXc/LnRhYnMpIHtcclxuXHRcdFx0dGhpcy51cGRhdGVUYWJWaXNpYmlsaXR5KCk7XHJcblx0XHR9XHJcblx0XHQvLyBzdGVwIDIgLSBhcHBlbmQgY29uZmlnIHRhYnMgdG8gdGhlIHN0YXRpYyB0YWJzIChvbmx5IG5ldyBvbmVzLCBub3QgdGhvc2UgbWF0Y2hpbmcgc3RhdGljIHRhYnMpXHJcblx0XHRjb25zdCBhbGxDb25maWdUYWJzID0gdGhpcy5nZXRQcm9jZXNzZWRUYWJzKCk7XHJcblxyXG5cdFx0Ly8gR2V0IElEcyBvZiBleGlzdGluZyBzdGF0aWMgdGFic1xyXG5cdFx0Y29uc3Qgc3RhdGljVGFiSWRzID0gbmV3IFNldDxzdHJpbmcgfCBudW1iZXIgfCBudWxsPigpO1xyXG5cdFx0aWYgKHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXc/LnRhYnMpIHtcclxuXHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy50YWJzLmZvckVhY2goKHRhYlBhbmVsKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgdGFiSWQgPSB0YWJQYW5lbD8uZWw/Lm5hdGl2ZUVsZW1lbnQ/LmlkO1xyXG5cdFx0XHRcdGlmICh0YWJJZCkge1xyXG5cdFx0XHRcdFx0c3RhdGljVGFiSWRzLmFkZCh0YWJJZCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBGaWx0ZXIgb3V0IGNvbmZpZyB0YWJzIHRoYXQgYXJlIG1lYW50IHRvICpyZW9yZGVyKiBleGlzdGluZyBzdGF0aWMgdGFicy5cclxuXHRcdC8vIEFueSB0YWIgd2hvc2UgaWQgbWF0Y2hlcyBhbiBleGlzdGluZyBzdGF0aWMgdGFiIGlkIGlzIGNvbnNpZGVyZWQgYSBcInJlb3JkZXJcIlxyXG5cdFx0Ly8gaW5zdHJ1Y3Rpb247IGV2ZXJ5dGhpbmcgZWxzZSAoaWQgPT09IG51bGwgT1IgYW4gaWQgdGhhdCBkb2Vzbid0IGV4aXN0IHlldClcclxuXHRcdC8vIGlzIHRyZWF0ZWQgYXMgYSBicmFuZCBuZXcgdGFiLlxyXG5cdFx0Y29uc3QgbmV3Q29uZmlnVGFicyA9IGFsbENvbmZpZ1RhYnMuZmlsdGVyKCh0YWIpID0+IHtcclxuXHRcdFx0Ly8gbmV3IHRhYiB3aGVuIGlkIGlzIG51bGwvdW5kZWZpbmVkXHJcblx0XHRcdGlmICghdGFiLmlkKSByZXR1cm4gdHJ1ZTtcclxuXHJcblx0XHRcdC8vIG5ldyB0YWIgd2hlbiBpZCBpcyBwcm92aWRlZCBidXQgZG9lc24ndCBtYXRjaCBhbnkgc3RhdGljIHRhYiBpZFxyXG5cdFx0XHRyZXR1cm4gIXN0YXRpY1RhYklkcy5oYXModGFiLmlkKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdGlmIChuZXdDb25maWdUYWJzLmxlbmd0aCA+IDAgJiYgdGhpcy5kZXRhaWxDb21wb25lbnQuY29uZmlnVGFicykge1xyXG5cdFx0XHQodGhpcy5kZXRhaWxDb21wb25lbnQuY29uZmlnVGFicyBhcyBhbnkpLnNldChuZXdDb25maWdUYWJzKTtcclxuXHRcdH0gZWxzZSBpZiAobmV3Q29uZmlnVGFicy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYnMgPSBuZXdDb25maWdUYWJzO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIHVzaW5nIHNldFRpbWVvdXQgdG8gZW5zdXJlIHRhYlZpZXcgaXMgcmVhZHkgYXMgd2Ugd2FudCB0byB3b3JrIGRpcmVjdGx5IHdpdGggdGhlIGdlbmVyYXRlZCBlbGVtZW50c1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdC8vIHN0ZXAgMyAtIHJlb3JkZXIgdGFic1xyXG5cdFx0XHR0aGlzLnJlb3JkZXJUYWJzQnlQb3NpdGlvbigpO1xyXG5cdFx0XHQvLyBzdGVwIDQgLSBhY3RpdmF0ZSB0YWIgZnJvbSBVUkwgaWYgc3BlY2lmaWVkXHJcblx0XHRcdHRoaXMuYWN0aXZhdGVUYWJGcm9tVXJsKCk7XHJcblx0XHRcdC8vIHN0ZXAgNSAtIHVwZGF0ZSB0aGUgbWVudVxyXG5cdFx0XHRpZiAodGhpcy5jb25maWc/Lm1lbnUpIHtcclxuXHRcdFx0XHR0aGlzLnVwZGF0ZU1lbnUodGhpcy5jb25maWcubWVudSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSB1cGRhdGVUYWJWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmNvbmZpZz8udGFicykgcmV0dXJuO1xyXG5cclxuXHRcdC8vIEZpbmQgdGFicyBpbiBjb25maWcgdGhhdCBoYXZlIHZpc2libGU6IGZhbHNlXHJcblx0XHRjb25zdCBoaWRkZW5UYWJQb3NpdGlvbnMgPSB0aGlzLmNvbmZpZy50YWJzLmZpbHRlcigodGFiKSA9PiB0YWIudmlzaWJsZSA9PT0gZmFsc2UpLm1hcCgodGFiKSA9PiB0YWIucG9zaXRpb24pO1xyXG5cclxuXHRcdGhpZGRlblRhYlBvc2l0aW9ucy5mb3JFYWNoKChwb3NpdGlvbikgPT4ge1xyXG5cdFx0XHR0aGlzLmhpZGVUYWJCeVBvc2l0aW9uKHBvc2l0aW9uLCB0cnVlKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGlkZVRhYkJ5UG9zaXRpb24ocG9zaXRpb246IG51bWJlciwgaGlkZSA9IHRydWUpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldz8udGFicykgcmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHBhbmVsVG9IaWRlID0gdGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy50YWJzW3Bvc2l0aW9uXTtcclxuXHRcdGNvbnN0IHRhYlRvSGlkZSA9IHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcubGlzdD8uY2hpbGRyZW5bcG9zaXRpb25dIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuXHRcdGlmICh0YWJUb0hpZGUgJiYgcGFuZWxUb0hpZGUpIHtcclxuXHRcdFx0cGFuZWxUb0hpZGUuZWwubmF0aXZlRWxlbWVudC5oaWRkZW4gPSBoaWRlO1xyXG5cdFx0XHR0YWJUb0hpZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlb3JkZXIgdGFicyBiYXNlZCBvbiBjb25maWcgcG9zaXRpb25zXHJcblx0ICogSXRlcmF0ZXMgb3ZlciB2aXNpYmxlIGNvbmZpZyB0YWJzIGFuZCByZWFycmFuZ2VzIGJvdGggc3RhdGljIGFuZCBjb25maWcgdGFic1xyXG5cdCAqL1xyXG5cdHByaXZhdGUgcmVvcmRlclRhYnNCeVBvc2l0aW9uKCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Py50YWJzIHx8ICF0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Py5saXN0KSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgY29uZmlnVGFicyA9IHRoaXMuZ2V0UHJvY2Vzc2VkVGFicygpO1xyXG5cdFx0Y29uc3QgYWxsVGFicyA9IHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcudGFicztcclxuXHRcdGNvbnN0IG5hdkxpc3QgPSB0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3Lmxpc3Q7XHJcblxyXG5cdFx0Y29uc3QgY29uZmlnVGFiTWFwID0gbmV3IE1hcDxzdHJpbmcgfCBudW1iZXIgfCBudWxsLCBUYWJDb25maWc+KCk7XHJcblx0XHRjb25maWdUYWJzLmZvckVhY2goKHRhYikgPT4ge1xyXG5cdFx0XHQvLyBPbmx5IHRyZWF0IHRhYnMgdGhhdCBib3RoOlxyXG5cdFx0XHQvLyAtIGhhdmUgYW4gaWRcclxuXHRcdFx0Ly8gLSBhbmQgaGF2ZSBhbiBleHBsaWNpdCBwb3NpdGlvblxyXG5cdFx0XHQvLyBhcyBcInJlb3JkZXIgaW5zdHJ1Y3Rpb25zXCIgZm9yIGV4aXN0aW5nIHN0YXRpYyB0YWJzLlxyXG5cdFx0XHQvLyBUYWJzIHdpdGhvdXQgYSBwb3NpdGlvbiAoZXZlbiBpZiB0aGV5IGhhdmUgYW4gaWQpIGFyZSBjb25zaWRlcmVkXHJcblx0XHRcdC8vIHJlZ3VsYXIvbmV3IHRhYnMgYW5kIHNob3VsZCBrZWVwIHRoZWlyIG5hdHVyYWwgb3JkZXIuXHJcblx0XHRcdGlmICh0YWIuaWQgJiYgdGFiLnBvc2l0aW9uKSB7XHJcblx0XHRcdFx0Y29uZmlnVGFiTWFwLnNldCh0YWIuaWQsIHRhYik7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIHNlcGFyYXRlIHN0YXRpYyBmcm9tIGNvbmZpZyB0YWJzXHJcblx0XHRjb25zdCBzdGF0aWNUYWJzOiBBcnJheTx7IHRhYjogYW55OyBpbmRleDogbnVtYmVyOyBpZDogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB9PiA9IFtdO1xyXG5cdFx0Y29uc3QgY29uZmlnVGFiSW5zdGFuY2VzOiBBcnJheTx7IHRhYjogYW55OyBpbmRleDogbnVtYmVyOyBjb25maWc6IFRhYkNvbmZpZyB9PiA9IFtdO1xyXG5cclxuXHRcdGFsbFRhYnMuZm9yRWFjaCgodGFiUGFuZWwsIGluZGV4KSA9PiB7XHJcblx0XHRcdGNvbnN0IHRhYklkID0gdGFiUGFuZWw/LmVsPy5uYXRpdmVFbGVtZW50Py5pZCB8fCBudWxsO1xyXG5cdFx0XHRjb25zdCBjb25maWdUYWIgPSB0YWJJZCA/IGNvbmZpZ1RhYk1hcC5nZXQodGFiSWQpIDogbnVsbDtcclxuXHJcblx0XHRcdGlmIChjb25maWdUYWIpIHtcclxuXHRcdFx0XHRjb25maWdUYWJJbnN0YW5jZXMucHVzaCh7IHRhYjogdGFiUGFuZWwsIGluZGV4LCBjb25maWc6IGNvbmZpZ1RhYiB9KTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRzdGF0aWNUYWJzLnB1c2goeyB0YWI6IHRhYlBhbmVsLCBpbmRleCwgaWQ6IHRhYklkIH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRjb25zdCBwb3NpdGlvbk1hcCA9IG5ldyBNYXA8bnVtYmVyLCB7IHRhYjogYW55OyBpc0NvbmZpZzogYm9vbGVhbjsgaWQ6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfT4oKTtcclxuXHJcblx0XHQvLyBwbGFjZSBjb25maWcgdGFicyBhdCB0aGVpciBzcGVjaWZpZWQgcG9zaXRpb25zXHJcblx0XHRjb25maWdUYWJJbnN0YW5jZXMuZm9yRWFjaCgoeyB0YWIsIGNvbmZpZyB9KSA9PiB7XHJcblx0XHRcdGlmIChjb25maWcucG9zaXRpb24gIT09IHVuZGVmaW5lZCAmJiBjb25maWcucG9zaXRpb24gIT09IG51bGwpIHtcclxuXHRcdFx0XHRwb3NpdGlvbk1hcC5zZXQoY29uZmlnLnBvc2l0aW9uLCB7IHRhYiwgaXNDb25maWc6IHRydWUsIGlkOiBjb25maWcuaWQgfSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIHBsYWNlIHN0YXRpYyB0YWJzIGF0IGF2YWlsYWJsZSBwb3NpdGlvbnMgKG1haW50YWluaW5nIHJlbGF0aXZlIG9yZGVyKVxyXG5cdFx0bGV0IHN0YXRpY0luZGV4ID0gMDtcclxuXHRcdGxldCBjdXJyZW50UG9zaXRpb24gPSAwO1xyXG5cclxuXHRcdHdoaWxlIChzdGF0aWNJbmRleCA8IHN0YXRpY1RhYnMubGVuZ3RoKSB7XHJcblx0XHRcdHdoaWxlIChwb3NpdGlvbk1hcC5oYXMoY3VycmVudFBvc2l0aW9uKSkge1xyXG5cdFx0XHRcdGN1cnJlbnRQb3NpdGlvbisrO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBwbGFjZSBzdGF0aWMgdGFiIGF0IHRoaXMgcG9zaXRpb25cclxuXHRcdFx0Y29uc3Qgc3RhdGljVGFiID0gc3RhdGljVGFic1tzdGF0aWNJbmRleF07XHJcblx0XHRcdHBvc2l0aW9uTWFwLnNldChjdXJyZW50UG9zaXRpb24sIHsgdGFiOiBzdGF0aWNUYWIudGFiLCBpc0NvbmZpZzogZmFsc2UsIGlkOiBzdGF0aWNUYWIuaWQgfSk7XHJcblx0XHRcdHN0YXRpY0luZGV4Kys7XHJcblx0XHRcdGN1cnJlbnRQb3NpdGlvbisrO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIGJ1aWxkIG9yZGVyZWQgYXJyYXlcclxuXHRcdGNvbnN0IHNvcnRlZFBvc2l0aW9ucyA9IEFycmF5LmZyb20ocG9zaXRpb25NYXAua2V5cygpKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XHJcblx0XHRjb25zdCByZW9yZGVyZWRUYWJzOiBhbnlbXSA9IFtdO1xyXG5cdFx0Y29uc3QgcmVvcmRlcmVkSGVhZGVyczogSFRNTEVsZW1lbnRbXSA9IFtdO1xyXG5cclxuXHRcdHNvcnRlZFBvc2l0aW9ucy5mb3JFYWNoKChwb3NpdGlvbikgPT4ge1xyXG5cdFx0XHRjb25zdCB0YWJJbmZvID0gcG9zaXRpb25NYXAuZ2V0KHBvc2l0aW9uKSE7XHJcblx0XHRcdHJlb3JkZXJlZFRhYnMucHVzaCh0YWJJbmZvLnRhYik7XHJcblxyXG5cdFx0XHRjb25zdCBvcmlnaW5hbEluZGV4ID0gYWxsVGFicy5pbmRleE9mKHRhYkluZm8udGFiKTtcclxuXHRcdFx0aWYgKG9yaWdpbmFsSW5kZXggIT09IC0xICYmIG5hdkxpc3QuY2hpbGRyZW5bb3JpZ2luYWxJbmRleF0pIHtcclxuXHRcdFx0XHRyZW9yZGVyZWRIZWFkZXJzLnB1c2gobmF2TGlzdC5jaGlsZHJlbltvcmlnaW5hbEluZGV4XSBhcyBIVE1MRWxlbWVudCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIHJlb3JkZXIgdGFicyBhcnJheVxyXG5cdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy50YWJzLmxlbmd0aCA9IDA7XHJcblx0XHRyZW9yZGVyZWRUYWJzLmZvckVhY2goKHRhYikgPT4gdGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldyEudGFicy5wdXNoKHRhYikpO1xyXG5cclxuXHRcdC8vIHJlb3JkZXIgZG9tIGhlYWRlcnNcclxuXHRcdHJlb3JkZXJlZEhlYWRlcnMuZm9yRWFjaCgoaGVhZGVyLCBuZXdJbmRleCkgPT4ge1xyXG5cdFx0XHRjb25zdCB0YXJnZXRIZWFkZXIgPSBuYXZMaXN0LmNoaWxkcmVuW25ld0luZGV4XTtcclxuXHRcdFx0aWYgKHRhcmdldEhlYWRlciAmJiB0YXJnZXRIZWFkZXIgIT09IGhlYWRlcikge1xyXG5cdFx0XHRcdG5hdkxpc3QuaW5zZXJ0QmVmb3JlKGhlYWRlciwgdGFyZ2V0SGVhZGVyKTtcclxuXHRcdFx0fSBlbHNlIGlmICghdGFyZ2V0SGVhZGVyKSB7XHJcblx0XHRcdFx0bmF2TGlzdC5hcHBlbmRDaGlsZChoZWFkZXIpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHQvLyByZW9yZGVyIGRvbSBwYW5lbHNcclxuXHRcdGNvbnN0IHBhbmVsc0NvbnRhaW5lciA9IGFsbFRhYnNbMF0/LmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtcclxuXHRcdGlmIChwYW5lbHNDb250YWluZXIpIHtcclxuXHRcdFx0cmVvcmRlcmVkVGFicy5mb3JFYWNoKCh0YWJQYW5lbCwgbmV3SW5kZXgpID0+IHtcclxuXHRcdFx0XHRjb25zdCB0YXJnZXRQYW5lbCA9IHBhbmVsc0NvbnRhaW5lci5jaGlsZHJlbltuZXdJbmRleF07XHJcblx0XHRcdFx0aWYgKHRhcmdldFBhbmVsICYmIHRhcmdldFBhbmVsICE9PSB0YWJQYW5lbC5lbC5uYXRpdmVFbGVtZW50KSB7XHJcblx0XHRcdFx0XHRwYW5lbHNDb250YWluZXIuaW5zZXJ0QmVmb3JlKHRhYlBhbmVsLmVsLm5hdGl2ZUVsZW1lbnQsIHRhcmdldFBhbmVsKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKCF0YXJnZXRQYW5lbCkge1xyXG5cdFx0XHRcdFx0cGFuZWxzQ29udGFpbmVyLmFwcGVuZENoaWxkKHRhYlBhbmVsLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcuY2QpIHtcclxuXHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYWN0aXZhdGVUYWJGcm9tVXJsKCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3KSByZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgYWN0aXZlVGFiUGFyYW0gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdhY3RpdmVUYWInKTtcclxuXHRcdGlmIChhY3RpdmVUYWJQYXJhbSkge1xyXG5cdFx0XHRjb25zdCBhY3RpdmVUYWJJbmRleCA9IE51bWJlcihhY3RpdmVUYWJQYXJhbSk7XHJcblxyXG5cdFx0XHRpZiAoXHJcblx0XHRcdFx0IWlzTmFOKGFjdGl2ZVRhYkluZGV4KSAmJlxyXG5cdFx0XHRcdGFjdGl2ZVRhYkluZGV4ID49IDAgJiZcclxuXHRcdFx0XHR0aGlzLmRldGFpbENvbXBvbmVudC50YWJWaWV3LnRhYnMgJiZcclxuXHRcdFx0XHRhY3RpdmVUYWJJbmRleCA8IHRoaXMuZGV0YWlsQ29tcG9uZW50LnRhYlZpZXcudGFicy5sZW5ndGhcclxuXHRcdFx0KSB7XHJcblx0XHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQudGFiVmlldy5hY3RpdmVJbmRleCA9IGFjdGl2ZVRhYkluZGV4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHVwZGF0ZU1lbnUobWVudUNvbmZpZzogRGV0YWlsQ29uZmlnTWVudUl0ZW1bXSkge1xyXG5cdFx0Y29uc3QgY29udGV4dCA9IHtcclxuXHRcdFx0cm91dGVyOiB0aGlzLnJvdXRlcixcclxuXHRcdFx0cm91dGU6IHRoaXMucm91dGUsXHJcblx0XHRcdGRpYWxvZ1NlcnZpY2U6IHRoaXMuZGlhbG9nU2VydmljZSxcclxuXHRcdFx0Y29tcG9uZW50OiB0aGlzLmRldGFpbENvbXBvbmVudFxyXG5cdFx0fTtcclxuXHJcblx0XHRjb25zdCBhY3RpdmVMYW5nID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKTtcclxuXHRcdGNvbnN0IGR5bmFtaWNNZW51OiBNZW51SXRlbVtdID0gbWVudUNvbmZpZy5tYXAoKG0pID0+ICh7XHJcblx0XHRcdGxhYmVsOiBtLmxhYmVsW2FjdGl2ZUxhbmddID8/ICcnLFxyXG5cdFx0XHRpY29uOiBtLmljb24sXHJcblx0XHRcdGNvbW1hbmQ6IChfZXZlbnQ6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGNvbW1hbmRGbiA9IG5ldyBGdW5jdGlvbignY3R4JywgbS5jb21tYW5kKTtcclxuXHRcdFx0XHRjb21tYW5kRm4oY29udGV4dCkoY29udGV4dCk7XHJcblx0XHRcdH1cclxuXHRcdH0pKTtcclxuXHJcblx0XHQvLyBVcGRhdGUgdGhlIGV4aXN0aW5nIHNpZ25hbCBpbnN0ZWFkIG9mIHJlcGxhY2luZyBpdCB0byBlbnN1cmUgY2hhbmdlXHJcblx0XHQvLyBkZXRlY3Rpb24gcGlja3MgdXAgdGhlIG1lbnUgdXBkYXRlIGFmdGVyIGJyb3dzZXIgYmFjayBuYXZpZ2F0aW9uLlxyXG5cdFx0Y29uc3QgZ2VuZXJhbE1lbnVTaWduYWwgPSB0aGlzLmRldGFpbENvbXBvbmVudC5tZEluZm9QbHVnaW5Qcm9wcy5nZW5lcmFsTWVudSBhcyBhbnk7XHJcblx0XHRjb25zdCBleGlzdGluZ01lbnU6IE1lbnVJdGVtW10gPSBnZW5lcmFsTWVudVNpZ25hbCgpO1xyXG5cclxuXHRcdC8vIEF2b2lkIGR1cGxpY2F0aW5nIHByZXZpb3VzbHkgYWRkZWQgZHluYW1pYyBpdGVtcyAoaWRlbnRpZmllZCBieSBsYWJlbC9pY29uIG1hdGNoKVxyXG5cdFx0Y29uc3QgbWVyZ2VkTWVudSA9IFtcclxuXHRcdFx0Li4uZXhpc3RpbmdNZW51LmZpbHRlcigoaXRlbSkgPT4gIWR5bmFtaWNNZW51LnNvbWUoKGR5bikgPT4gZHluLmxhYmVsID09PSBpdGVtLmxhYmVsICYmIGR5bi5pY29uID09PSBpdGVtLmljb24pKSxcclxuXHRcdFx0Li4uZHluYW1pY01lbnVcclxuXHRcdF07XHJcblxyXG5cdFx0aWYgKGdlbmVyYWxNZW51U2lnbmFsPy5zZXQpIHtcclxuXHRcdFx0Z2VuZXJhbE1lbnVTaWduYWwuc2V0KG1lcmdlZE1lbnUpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5kZXRhaWxDb21wb25lbnQubWRJbmZvUGx1Z2luUHJvcHMuZ2VuZXJhbE1lbnUgPSBzaWduYWwobWVyZ2VkTWVudSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==