@energycap/components 0.42.4-esbuild.20250131-1219 → 0.42.4-esbuild.20250131-1256

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 (324) hide show
  1. package/esm2022/energycap-components.mjs +5 -0
  2. package/esm2022/lib/components.module.mjs +423 -0
  3. package/esm2022/lib/controls/banner/banner.component.mjs +109 -0
  4. package/esm2022/lib/controls/button/button.component.mjs +106 -0
  5. package/esm2022/lib/controls/button/copy-button-base.directive.mjs +67 -0
  6. package/esm2022/lib/controls/button/copy-button.directive.mjs +28 -0
  7. package/esm2022/lib/controls/button/copy-table-button.directive.mjs +43 -0
  8. package/esm2022/lib/controls/calendar/calendar-item.component.mjs +91 -0
  9. package/esm2022/lib/controls/calendar/calendar.component.mjs +248 -0
  10. package/esm2022/lib/controls/calendar/calendar.types.mjs +2 -0
  11. package/esm2022/lib/controls/checkbox/checkbox.component.mjs +140 -0
  12. package/esm2022/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -0
  13. package/esm2022/lib/controls/combobox/combobox.component.mjs +879 -0
  14. package/esm2022/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +57 -0
  15. package/esm2022/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +62 -0
  16. package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +100 -0
  17. package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +101 -0
  18. package/esm2022/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +76 -0
  19. package/esm2022/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +79 -0
  20. package/esm2022/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +210 -0
  21. package/esm2022/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +81 -0
  22. package/esm2022/lib/controls/date-input/date-input.component.mjs +464 -0
  23. package/esm2022/lib/controls/date-input/date-input.types.mjs +44 -0
  24. package/esm2022/lib/controls/dropdown/dropdown.component.mjs +243 -0
  25. package/esm2022/lib/controls/file-upload/file-upload.component.mjs +261 -0
  26. package/esm2022/lib/controls/form-control/form-control.component.mjs +98 -0
  27. package/esm2022/lib/controls/form-control-base.mjs +151 -0
  28. package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +136 -0
  29. package/esm2022/lib/controls/form-group/form-group.component.mjs +261 -0
  30. package/esm2022/lib/controls/help-popover/help-popover.component.mjs +31 -0
  31. package/esm2022/lib/controls/item-picker/item-picker.component.mjs +329 -0
  32. package/esm2022/lib/controls/link-button/link-button.component.mjs +11 -0
  33. package/esm2022/lib/controls/menu/menu.component.mjs +485 -0
  34. package/esm2022/lib/controls/navigation/link-item.mjs +2 -0
  35. package/esm2022/lib/controls/navigation/nav-group.mjs +39 -0
  36. package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
  37. package/esm2022/lib/controls/navigation/nav-item.mjs +2 -0
  38. package/esm2022/lib/controls/numericbox/numericbox.component.mjs +372 -0
  39. package/esm2022/lib/controls/popover/popover.component.mjs +117 -0
  40. package/esm2022/lib/controls/radio-button/radio-button-option.mjs +3 -0
  41. package/esm2022/lib/controls/radio-button/radio-button.component.mjs +82 -0
  42. package/esm2022/lib/controls/select/select.component.mjs +88 -0
  43. package/esm2022/lib/controls/tabs/tabs.component.mjs +47 -0
  44. package/esm2022/lib/controls/textbox/textbox.component.mjs +155 -0
  45. package/esm2022/lib/core/cache.service.mjs +105 -0
  46. package/esm2022/lib/core/custom-validators.mjs +29 -0
  47. package/esm2022/lib/core/date-time-helper.mjs +228 -0
  48. package/esm2022/lib/core/error.service.mjs +61 -0
  49. package/esm2022/lib/core/router-helper.service.mjs +111 -0
  50. package/esm2022/lib/core/scroll.service.mjs +89 -0
  51. package/esm2022/lib/core/telemetry-tracker.service.mjs +16 -0
  52. package/esm2022/lib/core/telemetry.service.mjs +38 -0
  53. package/esm2022/lib/core/validation-message.service.mjs +185 -0
  54. package/esm2022/lib/core/validation-patterns.mjs +31 -0
  55. package/esm2022/lib/core/window.service.mjs +186 -0
  56. package/esm2022/lib/display/app-bar/app-bar.component.mjs +46 -0
  57. package/esm2022/lib/display/avatar/avatar.component.mjs +67 -0
  58. package/esm2022/lib/display/avatar/avatar.service.mjs +64 -0
  59. package/esm2022/lib/display/confirm/confirm.component.mjs +168 -0
  60. package/esm2022/lib/display/dialog/dialog-content.mjs +2 -0
  61. package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
  62. package/esm2022/lib/display/dialog/dialog-types.mjs +77 -0
  63. package/esm2022/lib/display/dialog/dialog.component.mjs +281 -0
  64. package/esm2022/lib/display/dialog/dialog.service.mjs +71 -0
  65. package/esm2022/lib/display/help/help-types.mjs +2 -0
  66. package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +111 -0
  67. package/esm2022/lib/display/hierarchy/hierarchy-mocks.spec.mjs +54 -0
  68. package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +61 -0
  69. package/esm2022/lib/display/item-display/item-display.component.mjs +81 -0
  70. package/esm2022/lib/display/json-display/json-display.component.mjs +47 -0
  71. package/esm2022/lib/display/resizable/resizable-base.mjs +120 -0
  72. package/esm2022/lib/display/resizable/resizable.component.mjs +57 -0
  73. package/esm2022/lib/display/spinner/spinner.component.mjs +12 -0
  74. package/esm2022/lib/display/splash/splash.component.mjs +42 -0
  75. package/esm2022/lib/display/splash/splash.service.mjs +35 -0
  76. package/esm2022/lib/display/table/resizable-column.component.mjs +20 -0
  77. package/esm2022/lib/display/table/resizable-table.directive.mjs +227 -0
  78. package/esm2022/lib/display/table/searchable-table.component.mjs +342 -0
  79. package/esm2022/lib/display/table/table-detail-row.component.mjs +28 -0
  80. package/esm2022/lib/display/table/table-locked-column.component.mjs +58 -0
  81. package/esm2022/lib/display/table/table-master-header-row.component.mjs +14 -0
  82. package/esm2022/lib/display/table/table-master-row.component.mjs +163 -0
  83. package/esm2022/lib/display/table/table-pagination.component.mjs +155 -0
  84. package/esm2022/lib/display/table/table-selectable-row.component.mjs +235 -0
  85. package/esm2022/lib/display/table/table.component.mjs +249 -0
  86. package/esm2022/lib/display/tags/tag.mjs +18 -0
  87. package/esm2022/lib/display/tags/tags.component.mjs +77 -0
  88. package/esm2022/lib/display/toast/toast/toast.component.mjs +77 -0
  89. package/esm2022/lib/display/toast/toast-types.mjs +8 -0
  90. package/esm2022/lib/display/toast/toast.service.mjs +35 -0
  91. package/esm2022/lib/display/toast/toaster/toaster.component.mjs +114 -0
  92. package/esm2022/lib/display/tooltip/tooltip.component.mjs +28 -0
  93. package/esm2022/lib/display/tooltip/tooltip.service.mjs +78 -0
  94. package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +173 -0
  95. package/esm2022/lib/display/tour/tour-types.mjs +34 -0
  96. package/esm2022/lib/display/tour/tour.component.mjs +398 -0
  97. package/esm2022/lib/display/tour/tour.service.mjs +75 -0
  98. package/esm2022/lib/display/tree/tree.component.mjs +135 -0
  99. package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +58 -0
  100. package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -0
  101. package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -0
  102. package/esm2022/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +100 -0
  103. package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +166 -0
  104. package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +50 -0
  105. package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -0
  106. package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +62 -0
  107. package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +48 -0
  108. package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +41 -0
  109. package/esm2022/lib/shared/display.mjs +6 -0
  110. package/esm2022/lib/shared/form-group.helper.mjs +67 -0
  111. package/esm2022/lib/shared/json-helper.mjs +19 -0
  112. package/esm2022/lib/shared/lodash-helper.mjs +52 -0
  113. package/esm2022/lib/shared/page/page-base/page-base.component.mjs +387 -0
  114. package/esm2022/lib/shared/page/page-statuses.mjs +23 -0
  115. package/esm2022/lib/shared/page/page-title/page-title.component.mjs +23 -0
  116. package/esm2022/lib/shared/page/page-view/page-view.component.mjs +147 -0
  117. package/esm2022/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +17 -0
  118. package/esm2022/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +17 -0
  119. package/esm2022/lib/shared/testing/page-base-component-test-helper.spec.mjs +38 -0
  120. package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +98 -0
  121. package/esm2022/lib/shared/testing/public-mocks.spec.mjs +148 -0
  122. package/esm2022/lib/shared/testing/spy-factory.spec.mjs +40 -0
  123. package/esm2022/lib/shared/testing/translation-mocks.spec.mjs +57 -0
  124. package/esm2022/lib/shared/user-preference.service.mjs +17 -0
  125. package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
  126. package/esm2022/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -0
  127. package/esm2022/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -0
  128. package/esm2022/public-api.mjs +117 -0
  129. package/fesm2022/energycap-components.mjs +13219 -0
  130. package/fesm2022/energycap-components.mjs.map +1 -0
  131. package/index.d.ts +5 -0
  132. package/lib/components.module.d.ts +92 -0
  133. package/lib/controls/banner/banner.component.d.ts +50 -0
  134. package/lib/controls/button/button.component.d.ts +78 -0
  135. package/lib/controls/button/copy-button-base.directive.d.ts +20 -0
  136. package/lib/controls/button/copy-button.directive.d.ts +14 -0
  137. package/lib/controls/button/copy-table-button.directive.d.ts +19 -0
  138. package/lib/controls/calendar/calendar-item.component.d.ts +22 -0
  139. package/lib/controls/calendar/calendar.component.d.ts +52 -0
  140. package/lib/controls/calendar/calendar.types.d.ts +11 -0
  141. package/lib/controls/checkbox/checkbox.component.d.ts +65 -0
  142. package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +25 -0
  143. package/lib/controls/combobox/combobox.component.d.ts +418 -0
  144. package/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.d.ts +42 -0
  145. package/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.d.ts +21 -0
  146. package/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.d.ts +21 -0
  147. package/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.d.ts +21 -0
  148. package/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.d.ts +18 -0
  149. package/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.d.ts +18 -0
  150. package/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.d.ts +21 -0
  151. package/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.d.ts +20 -0
  152. package/lib/controls/date-input/date-input.component.d.ts +115 -0
  153. package/lib/controls/date-input/date-input.types.d.ts +62 -0
  154. package/lib/controls/dropdown/dropdown.component.d.ts +161 -0
  155. package/lib/controls/file-upload/file-upload.component.d.ts +124 -0
  156. package/lib/controls/form-control/form-control.component.d.ts +28 -0
  157. package/lib/controls/form-control-base.d.ts +110 -0
  158. package/lib/controls/form-control-label/form-control-label.component.d.ts +73 -0
  159. package/lib/controls/form-group/form-group.component.d.ts +105 -0
  160. package/lib/controls/help-popover/help-popover.component.d.ts +11 -0
  161. package/lib/controls/item-picker/item-picker.component.d.ts +164 -0
  162. package/lib/controls/link-button/link-button.component.d.ts +5 -0
  163. package/lib/controls/menu/menu.component.d.ts +255 -0
  164. package/lib/controls/navigation/link-item.d.ts +32 -0
  165. package/lib/controls/navigation/nav-group.d.ts +18 -0
  166. package/lib/controls/navigation/nav-item-active.directive.d.ts +42 -0
  167. package/lib/controls/navigation/nav-item.d.ts +31 -0
  168. package/lib/controls/numericbox/numericbox.component.d.ts +148 -0
  169. package/lib/controls/popover/popover.component.d.ts +51 -0
  170. package/lib/controls/radio-button/radio-button-option.d.ts +19 -0
  171. package/lib/controls/radio-button/radio-button.component.d.ts +53 -0
  172. package/lib/controls/select/select.component.d.ts +44 -0
  173. package/lib/controls/tabs/tabs.component.d.ts +30 -0
  174. package/lib/controls/textbox/textbox.component.d.ts +107 -0
  175. package/lib/core/cache.service.d.ts +33 -0
  176. package/lib/core/custom-validators.d.ts +20 -0
  177. package/lib/core/date-time-helper.d.ts +101 -0
  178. package/lib/core/error.service.d.ts +20 -0
  179. package/lib/core/router-helper.service.d.ts +48 -0
  180. package/lib/core/scroll.service.d.ts +36 -0
  181. package/lib/core/telemetry-tracker.service.d.ts +13 -0
  182. package/lib/core/telemetry.service.d.ts +31 -0
  183. package/lib/core/validation-message.service.d.ts +26 -0
  184. package/lib/core/validation-patterns.d.ts +22 -0
  185. package/lib/core/window.service.d.ts +116 -0
  186. package/lib/display/app-bar/app-bar.component.d.ts +20 -0
  187. package/lib/display/avatar/avatar.component.d.ts +35 -0
  188. package/lib/display/avatar/avatar.service.d.ts +24 -0
  189. package/lib/display/confirm/confirm.component.d.ts +123 -0
  190. package/lib/display/dialog/dialog-content.d.ts +19 -0
  191. package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +32 -0
  192. package/lib/display/dialog/dialog-types.d.ts +130 -0
  193. package/lib/display/dialog/dialog.component.d.ts +120 -0
  194. package/lib/display/dialog/dialog.service.d.ts +48 -0
  195. package/lib/display/help/help-types.d.ts +33 -0
  196. package/lib/display/hierarchy/hierarchy-base.d.ts +97 -0
  197. package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +53 -0
  198. package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +34 -0
  199. package/lib/display/item-display/item-display.component.d.ts +43 -0
  200. package/lib/display/json-display/json-display.component.d.ts +16 -0
  201. package/lib/display/resizable/resizable-base.d.ts +67 -0
  202. package/lib/display/resizable/resizable.component.d.ts +31 -0
  203. package/lib/display/spinner/spinner.component.d.ts +5 -0
  204. package/lib/display/splash/splash.component.d.ts +16 -0
  205. package/lib/display/splash/splash.service.d.ts +22 -0
  206. package/lib/display/table/resizable-column.component.d.ts +10 -0
  207. package/lib/display/table/resizable-table.directive.d.ts +93 -0
  208. package/lib/display/table/searchable-table.component.d.ts +206 -0
  209. package/lib/display/table/table-detail-row.component.d.ts +8 -0
  210. package/lib/display/table/table-locked-column.component.d.ts +20 -0
  211. package/lib/display/table/table-master-header-row.component.d.ts +9 -0
  212. package/lib/display/table/table-master-row.component.d.ts +113 -0
  213. package/lib/display/table/table-pagination.component.d.ts +91 -0
  214. package/lib/display/table/table-selectable-row.component.d.ts +102 -0
  215. package/lib/display/table/table.component.d.ts +121 -0
  216. package/lib/display/tags/tag.d.ts +18 -0
  217. package/lib/display/tags/tags.component.d.ts +48 -0
  218. package/lib/display/toast/toast/toast.component.d.ts +23 -0
  219. package/lib/display/toast/toast-types.d.ts +24 -0
  220. package/lib/display/toast/toast.service.d.ts +20 -0
  221. package/lib/display/toast/toaster/toaster.component.d.ts +35 -0
  222. package/lib/display/tooltip/tooltip.component.d.ts +70 -0
  223. package/lib/display/tooltip/tooltip.service.d.ts +16 -0
  224. package/lib/display/tooltip-directive/tooltip.directive.d.ts +44 -0
  225. package/lib/display/tour/tour-types.d.ts +70 -0
  226. package/lib/display/tour/tour.component.d.ts +147 -0
  227. package/lib/display/tour/tour.service.d.ts +38 -0
  228. package/lib/display/tree/tree.component.d.ts +75 -0
  229. package/lib/display/view-overlay/view-overlay.component.d.ts +38 -0
  230. package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +14 -0
  231. package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +60 -0
  232. package/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.d.ts +23 -0
  233. package/lib/shared/directives/popup/popup-container.directive.d.ts +101 -0
  234. package/lib/shared/display/pipes/date-display.pipe.d.ts +21 -0
  235. package/lib/shared/display/pipes/highlight-text.pipe.d.ts +9 -0
  236. package/lib/shared/display/pipes/relative-date.pipe.d.ts +36 -0
  237. package/lib/shared/display/pipes/row-count.pipe.d.ts +23 -0
  238. package/lib/shared/display/pipes/time-display.pipe.d.ts +18 -0
  239. package/lib/shared/display.d.ts +42 -0
  240. package/lib/shared/form-group.helper.d.ts +31 -0
  241. package/lib/shared/json-helper.d.ts +7 -0
  242. package/lib/shared/lodash-helper.d.ts +18 -0
  243. package/lib/shared/page/page-base/page-base.component.d.ts +259 -0
  244. package/lib/shared/page/page-statuses.d.ts +13 -0
  245. package/lib/shared/page/page-title/page-title.component.d.ts +9 -0
  246. package/lib/shared/page/page-view/page-view.component.d.ts +102 -0
  247. package/lib/shared/testing/copy-button-base-test-injector-factory.spec.d.ts +4 -0
  248. package/lib/shared/testing/hierarchy-base-test-injector-factory.spec.d.ts +4 -0
  249. package/lib/shared/testing/page-base-component-test-helper.spec.d.ts +30 -0
  250. package/lib/shared/testing/page-base-component-test-injector-factory.spec.d.ts +28 -0
  251. package/lib/shared/testing/public-mocks.spec.d.ts +90 -0
  252. package/lib/shared/testing/spy-factory.spec.d.ts +27 -0
  253. package/lib/shared/testing/translation-mocks.spec.d.ts +30 -0
  254. package/lib/shared/user-preference.service.d.ts +13 -0
  255. package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +134 -0
  256. package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +27 -0
  257. package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +10 -0
  258. package/package.json +1 -5
  259. package/public-api.d.ts +113 -0
  260. package/schematics/collection.json +10 -0
  261. package/schematics/rxjs-7-upgrade/index.d.ts +3 -0
  262. package/schematics/rxjs-7-upgrade/index.js +68 -0
  263. package/schematics/rxjs-7-upgrade/index.js.map +1 -0
  264. package/schematics/rxjs-7-upgrade/schema.d.ts +4 -0
  265. package/schematics/rxjs-7-upgrade/schema.js +3 -0
  266. package/schematics/rxjs-7-upgrade/schema.js.map +1 -0
  267. package/schematics/rxjs-7-upgrade/schema.json +14 -0
  268. package/schematics/utilities/typescript.d.ts +7 -0
  269. package/schematics/utilities/typescript.js +42 -0
  270. package/schematics/utilities/typescript.js.map +1 -0
  271. package/schematics/utilities/workspace.d.ts +8 -0
  272. package/schematics/utilities/workspace.js +72 -0
  273. package/schematics/utilities/workspace.js.map +1 -0
  274. package/src/assets/images/email-icon.png +0 -0
  275. package/src/assets/images/email-logo.png +0 -0
  276. package/src/assets/images/favicon-ech.svg +7 -0
  277. package/src/assets/images/favicon-esa.svg +6 -0
  278. package/src/assets/images/favicon-eum.svg +6 -0
  279. package/src/assets/images/favicon.svg +5 -0
  280. package/src/assets/images/icon-carbonhub.svg +10 -0
  281. package/src/assets/images/icon-eum.svg +5 -0
  282. package/src/assets/images/icon-ucp.svg +5 -0
  283. package/src/assets/images/icon-wattics.svg +5 -0
  284. package/src/assets/images/icon.svg +4 -0
  285. package/src/assets/images/logo.svg +3 -0
  286. package/src/assets/images/splash.gif +0 -0
  287. package/src/assets/locales/en_US.json +59 -0
  288. package/src/assets/scripts/unsupported-browser.js +17 -0
  289. package/src/styles/_base.scss +38 -0
  290. package/src/styles/_colors.scss +96 -0
  291. package/src/styles/_core.scss +4 -0
  292. package/src/styles/_functions.scss +114 -0
  293. package/src/styles/_global-variables.scss +232 -0
  294. package/src/styles/_icons.scss +24 -0
  295. package/src/styles/bootstrap/_grid.scss +34 -0
  296. package/src/styles/bootstrap/_reboot.scss +323 -0
  297. package/src/styles/components/_card.scss +21 -0
  298. package/src/styles/components/_link-icons.scss +38 -0
  299. package/src/styles/components/_splash.scss +57 -0
  300. package/src/styles/components/_unsupported-browsers.scss +24 -0
  301. package/src/styles/email/_email-base.scss +228 -0
  302. package/src/styles/email/email.scss +43 -0
  303. package/src/styles/index.scss +27 -0
  304. package/src/styles/mixins/_animations.scss +18 -0
  305. package/src/styles/mixins/_button-base.scss +185 -0
  306. package/src/styles/mixins/_card-base.scss +40 -0
  307. package/src/styles/mixins/_common.scss +52 -0
  308. package/src/styles/mixins/_dialog-base.scss +96 -0
  309. package/src/styles/mixins/_form-control-base.scss +641 -0
  310. package/src/styles/mixins/_login.scss +74 -0
  311. package/src/styles/mixins/_menu-base.scss +153 -0
  312. package/src/styles/mixins/_overlay-base.scss +33 -0
  313. package/src/styles/mixins/_resizable-base.scss +57 -0
  314. package/src/styles/mixins/_spinner-base.scss +34 -0
  315. package/src/styles/mixins/_table-base.scss +298 -0
  316. package/src/styles/mixins/_tabs-base.scss +110 -0
  317. package/src/styles/mixins/_tags-base.scss +116 -0
  318. package/src/styles/mixins/_text.scss +89 -0
  319. package/src/styles/mixins.scss +15 -0
  320. package/src/styles/utilities/_borders.scss +30 -0
  321. package/src/styles/utilities/_common.scss +49 -0
  322. package/src/styles/utilities/_layout.scss +116 -0
  323. package/src/styles/utilities/_spacing.scss +65 -0
  324. package/src/styles/utilities/_text.scss +139 -0
@@ -0,0 +1,166 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Directive, EventEmitter, Inject, Input } from '@angular/core';
3
+ import Popper from 'popper.js';
4
+ import { fromEvent } from "rxjs";
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Primitive directive that popups a container using PopperJS
8
+ *
9
+ * @export
10
+ */
11
+ export class PopupContainerDirective {
12
+ /**
13
+ * Global reference to the currently displayed popup; only
14
+ * one popup directive can be in `show` state at a given time.
15
+ *
16
+ * @memberof PopupContainerDirective
17
+ */
18
+ static { this.GlobalPopupRef = undefined; }
19
+ /**
20
+ * Creates an instance of PopupContainerDirective.
21
+ * @param templateRef Reference to the popup template
22
+ * @param viewContainer Reference to the view container
23
+ * @param document Reference to Document
24
+ * @memberof PopupContainerDirective
25
+ */
26
+ constructor(templateRef, viewContainer, document, renderer) {
27
+ this.templateRef = templateRef;
28
+ this.viewContainer = viewContainer;
29
+ this.document = document;
30
+ this.renderer = renderer;
31
+ /**
32
+ * Emit the {@link PopupStatus} when it changes
33
+ */
34
+ this.popperStatusChange = new EventEmitter();
35
+ }
36
+ /**
37
+ * Angular onInit lifecycle hook
38
+ * @see https://angular.io/guide/lifecycle-hooks
39
+ */
40
+ ngOnInit() {
41
+ this.templateViewRef = this.viewContainer.createEmbeddedView(this.templateRef);
42
+ }
43
+ /**
44
+ * Angular onDestroy lifecycle hook. Close and delete references. Unsubscribe observables
45
+ * @see https://angular.io/guide/lifecycle-hooks
46
+ */
47
+ ngOnDestroy() {
48
+ this.hide();
49
+ }
50
+ /**
51
+ * Displays the templateRef as a popup
52
+ *
53
+ * @memberof PopupContainerDirective
54
+ */
55
+ show() {
56
+ if (PopupContainerDirective.GlobalPopupRef) {
57
+ if (PopupContainerDirective.GlobalPopupRef != this) {
58
+ PopupContainerDirective.GlobalPopupRef.hide();
59
+ PopupContainerDirective.GlobalPopupRef = undefined;
60
+ }
61
+ }
62
+ if (!this.globalCloseSubscription) {
63
+ this.globalCloseSubscription = fromEvent(this.document.body, "click").subscribe((event) => {
64
+ this.hide();
65
+ });
66
+ }
67
+ if (!this.popperRef) {
68
+ // Add the popper template as an embedded view since PopperJS
69
+ // manipulates DOM elements.
70
+ this.popupViewRef = this.viewContainer.createEmbeddedView(this.popup);
71
+ // Since popper needs real DOM elements, grab the first non-comment
72
+ // DOM element to use as our anchor.
73
+ let anchorElement = this.popupViewRef.rootNodes.find(elem => { return elem.nodeName !== "#text"; });
74
+ // Use the parents elements as our DOM elements to Popper
75
+ this.popperRef = new Popper(this.templateViewRef.rootNodes[0], anchorElement, this.popperOptions);
76
+ PopupContainerDirective.GlobalPopupRef = this;
77
+ this.popperStatusChange.emit('visible');
78
+ }
79
+ }
80
+ /**
81
+ * Hides the templateRef
82
+ *
83
+ * @memberof PopupContainerDirective
84
+ */
85
+ hide() {
86
+ if (this.globalCloseSubscription) {
87
+ this.globalCloseSubscription.unsubscribe();
88
+ this.globalCloseSubscription = undefined;
89
+ }
90
+ if (this.popperRef && this.popupViewRef) {
91
+ this.popupViewRef.destroy();
92
+ this.popperRef.destroy();
93
+ this.popperRef = undefined;
94
+ this.popperStatusChange.emit('hidden');
95
+ }
96
+ }
97
+ /**
98
+ * Updates the popup container position
99
+ */
100
+ update() {
101
+ if (this.popperRef) {
102
+ this.popperRef.update();
103
+ }
104
+ }
105
+ fixPosition(minWidthNone, appendToBody = false) {
106
+ // @ts-ignore
107
+ if (this.popperRef && this.popperRef['reference'] && this.popperRef['popper']) {
108
+ // @ts-ignore
109
+ let popupEl = this.popperRef['popper'];
110
+ // Reset width style previously assigned because the content may have
111
+ // changed and the auto width would be different
112
+ this.renderer.removeStyle(popupEl, 'width');
113
+ this.renderer.setStyle(popupEl, 'position', 'fixed');
114
+ if (appendToBody) {
115
+ const bodyEl = this.document.querySelector('body');
116
+ const popupParent = this.renderer.parentNode(popupEl);
117
+ if (popupParent !== bodyEl) {
118
+ this.renderer.appendChild(bodyEl, popupEl);
119
+ }
120
+ }
121
+ // @ts-ignore
122
+ let toggleEl = this.popperRef['reference'];
123
+ let width = popupEl.offsetWidth;
124
+ let boundaries = popupEl.getBoundingClientRect();
125
+ let left = boundaries.left;
126
+ let coords = toggleEl.getBoundingClientRect();
127
+ // Set the top of our menu to the bottom of the toggle element
128
+ let top = coords.bottom;
129
+ if (this.popperOptions && this.popperOptions.placement) {
130
+ if (this.popperOptions.placement === 'bottom-start' || this.popperOptions.placement === 'top-start') {
131
+ left = coords.left;
132
+ }
133
+ else {
134
+ left = coords.right - ((minWidthNone || width > coords.width) ? width : coords.width);
135
+ }
136
+ }
137
+ // if it won't fit (with 10px space before hitting the window edge), flip it
138
+ if (boundaries.height + top + 10 > window.innerHeight) {
139
+ top = coords.top - boundaries.height;
140
+ }
141
+ this.renderer.setStyle(popupEl, 'transform', 'none');
142
+ this.renderer.setStyle(popupEl, 'left', left + 'px');
143
+ this.renderer.setStyle(popupEl, 'top', top + 'px');
144
+ this.renderer.setStyle(popupEl, 'width', width + 'px');
145
+ if (!minWidthNone) {
146
+ this.renderer.setStyle(popupEl, 'min-width', coords.width + 'px');
147
+ }
148
+ }
149
+ }
150
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PopupContainerDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: DOCUMENT }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
151
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: PopupContainerDirective, selector: "[ecPopup]", inputs: { popup: ["ecPopup", "popup"], popperOptions: ["options", "popperOptions"] }, ngImport: i0 }); }
152
+ }
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PopupContainerDirective, decorators: [{
154
+ type: Directive,
155
+ args: [{ selector: '[ecPopup]' }]
156
+ }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
157
+ type: Inject,
158
+ args: [DOCUMENT]
159
+ }] }, { type: i0.Renderer2 }], propDecorators: { popup: [{
160
+ type: Input,
161
+ args: ['ecPopup']
162
+ }], popperOptions: [{
163
+ type: Input,
164
+ args: ['options']
165
+ }] } });
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtY29udGFpbmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9wb3B1cC9wb3B1cC1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFtQixZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBK0QsTUFBTSxlQUFlLENBQUM7QUFDckosT0FBTyxNQUFNLE1BQU0sV0FBVyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDOztBQUsvQzs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQUVoQzs7Ozs7T0FLRzthQUNXLG1CQUFjLEdBQTZCLFNBQVMsQUFBdEMsQ0FBdUM7SUE2Q25FOzs7Ozs7T0FNRztJQUNILFlBQ1ksV0FBNkIsRUFDN0IsYUFBK0IsRUFDYixRQUFhLEVBQy9CLFFBQW1CO1FBSG5CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDYixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBQy9CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFxQi9COztXQUVHO1FBQ0ksdUJBQWtCLEdBQThCLElBQUksWUFBWSxFQUFlLENBQUM7SUF2QnBGLENBQUM7SUFFSjs7O09BR0c7SUFDSCxRQUFRO1FBQ0osSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBR0Q7OztPQUdHO0lBQ0gsV0FBVztRQUNQLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBU0Q7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QWpESyxLQUFLO3NCQUE3QixLQUFLO3VCQUFDLFNBQVM7Z0JBT1MsYUFBYTtzQkFBckMsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVtYmVkZGVkVmlld1JlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgUG9wcGVyIGZyb20gJ3BvcHBlci5qcyc7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbmV4cG9ydCB0eXBlIFBvcHVwUGxhY2VtZW50ID0gJ3RvcCcgfCAncmlnaHQnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAndG9wLXN0YXJ0JyB8ICd0b3AtZW5kJyB8ICdib3R0b20tc3RhcnQnIHwgJ2JvdHRvbS1lbmQnO1xyXG5leHBvcnQgdHlwZSBQb3B1cFN0YXR1cyA9ICd2aXNpYmxlJyB8ICdoaWRkZW4nO1xyXG5cclxuLyoqXHJcbiAqIFByaW1pdGl2ZSBkaXJlY3RpdmUgdGhhdCBwb3B1cHMgYSBjb250YWluZXIgdXNpbmcgUG9wcGVySlNcclxuICpcclxuICogQGV4cG9ydFxyXG4gKi9cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2VjUG9wdXBdJyB9KVxyXG5leHBvcnQgY2xhc3MgUG9wdXBDb250YWluZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqICBHbG9iYWwgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIHBvcHVwOyBvbmx5XHJcbiAgICAgKiAgb25lIHBvcHVwIGRpcmVjdGl2ZSBjYW4gYmUgaW4gYHNob3dgIHN0YXRlIGF0IGEgZ2l2ZW4gdGltZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWVtYmVyb2YgUG9wdXBDb250YWluZXJEaXJlY3RpdmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBHbG9iYWxQb3B1cFJlZj86IFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGVtcGxhdGVSZWYgb2YgY29udGFpbmVyIHRvIHBvcHVwXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoJ2VjUG9wdXAnKSBwdWJsaWMgcG9wdXAhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9wcGVyIG9wdGlvbnNcclxuICAgICAqXHJcbiAgICAgKiBAbWVtYmVyb2YgUG9wdXBDb250YWluZXJEaXJlY3RpdmVcclxuICAgICAqL1xyXG4gICAgQElucHV0KCdvcHRpb25zJykgcHVibGljIHBvcHBlck9wdGlvbnM/OiBQb3BwZXIuUG9wcGVyT3B0aW9ucztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBsYXRlIFZpZXcgUmVmZXJlbmNlXHJcbiAgICAgKlxyXG4gICAgICogQG1lbWJlcm9mIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgdGVtcGxhdGVWaWV3UmVmITogRW1iZWRkZWRWaWV3UmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3B1cCBWaWV3IFJlZmVyZW5jZSAoY29udGFpbmVyKVxyXG4gICAgICpcclxuICAgICAqIEBtZW1iZXJvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHBvcHVwVmlld1JlZj86IEVtYmVkZGVkVmlld1JlZjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUG9wcGVyIFJlZmVyZW5jZVxyXG4gICAgICpcclxuICAgICAqIEBtZW1iZXJvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHBvcHBlclJlZj86IFBvcHBlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENsb3NlLXRvLWNsaWNrIFN1YnNjcmlwdGlvbi4gVGhpcyBhbGxvd3MgdXMgdG8gY2xvc2UgdGhlIG1lbnUgd2hlbiB5b3UgY2xpY2sgb24gdGhlIGJvZHkuXHJcbiAgICAgKiBXZSBhdHRhY2ggaXQgd2hlbiB0aGUgbWVudSBpcyBvcGVuIGFuZCBkZXRhY2ggaXQgb24gY2xvc2UsIHRvIGxpbWl0IHRoZSBsaWZldGltZSBvZiB0aGUgY2xpY2sgaGFuZGxlclxyXG4gICAgICogd2hpY2ggaGVscHMgd2l0aCBwZXJmb3JtYW5jZSBvbiBhIHBhZ2Ugd2l0aCBtYW55IHBvcHVwIGNvbnRhaW5lcnNcclxuICAgICAqXHJcbiAgICAgKiBAbWVtYmVyb2YgUG9wdXBDb250YWluZXJEaXJlY3RpdmVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnbG9iYWxDbG9zZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgUG9wdXBDb250YWluZXJEaXJlY3RpdmUuXHJcbiAgICAgKiBAcGFyYW0gdGVtcGxhdGVSZWYgUmVmZXJlbmNlIHRvIHRoZSBwb3B1cCB0ZW1wbGF0ZVxyXG4gICAgICogQHBhcmFtIHZpZXdDb250YWluZXIgUmVmZXJlbmNlIHRvIHRoZSB2aWV3IGNvbnRhaW5lclxyXG4gICAgICogQHBhcmFtIGRvY3VtZW50IFJlZmVyZW5jZSB0byBEb2N1bWVudFxyXG4gICAgICogQG1lbWJlcm9mIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcclxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcclxuICAgICkge31cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuZ3VsYXIgb25Jbml0IGxpZmVjeWNsZSBob29rXHJcbiAgICAgKiBAc2VlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9saWZlY3ljbGUtaG9va3NcclxuICAgICAqL1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZVZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuZ3VsYXIgb25EZXN0cm95IGxpZmVjeWNsZSBob29rLiBDbG9zZSBhbmQgZGVsZXRlIHJlZmVyZW5jZXMuIFVuc3Vic2NyaWJlIG9ic2VydmFibGVzXHJcbiAgICAgKiBAc2VlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9saWZlY3ljbGUtaG9va3NcclxuICAgICAqL1xyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW1pdCB0aGUge0BsaW5rIFBvcHVwU3RhdHVzfSB3aGVuIGl0IGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBvcHBlclN0YXR1c0NoYW5nZTogRXZlbnRFbWl0dGVyPFBvcHVwU3RhdHVzPiA9IG5ldyBFdmVudEVtaXR0ZXI8UG9wdXBTdGF0dXM+KCk7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGlzcGxheXMgdGhlIHRlbXBsYXRlUmVmIGFzIGEgcG9wdXBcclxuICAgICAqXHJcbiAgICAgKiBAbWVtYmVyb2YgUG9wdXBDb250YWluZXJEaXJlY3RpdmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNob3coKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlLkdsb2JhbFBvcHVwUmVmKSB7XHJcbiAgICAgICAgICAgIGlmIChQb3B1cENvbnRhaW5lckRpcmVjdGl2ZS5HbG9iYWxQb3B1cFJlZiAhPSB0aGlzKSB7XHJcbiAgICAgICAgICAgICAgICBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZS5HbG9iYWxQb3B1cFJlZi5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZS5HbG9iYWxQb3B1cFJlZiA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuZ2xvYmFsQ2xvc2VTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5nbG9iYWxDbG9zZVN1YnNjcmlwdGlvbiA9IGZyb21FdmVudCh0aGlzLmRvY3VtZW50LmJvZHksIFwiY2xpY2tcIikuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnBvcHBlclJlZikge1xyXG4gICAgICAgICAgICAvLyBBZGQgdGhlIHBvcHBlciB0ZW1wbGF0ZSBhcyBhbiBlbWJlZGRlZCB2aWV3IHNpbmNlIFBvcHBlckpTXHJcbiAgICAgICAgICAgIC8vIG1hbmlwdWxhdGVzIERPTSBlbGVtZW50cy5cclxuICAgICAgICAgICAgdGhpcy5wb3B1cFZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMucG9wdXApO1xyXG5cclxuICAgICAgICAgICAgLy8gU2luY2UgcG9wcGVyIG5lZWRzIHJlYWwgRE9NIGVsZW1lbnRzLCBncmFiIHRoZSBmaXJzdCBub24tY29tbWVudFxyXG4gICAgICAgICAgICAvLyBET00gZWxlbWVudCB0byB1c2UgYXMgb3VyIGFuY2hvci5cclxuICAgICAgICAgICAgbGV0IGFuY2hvckVsZW1lbnQgPSAodGhpcy5wb3B1cFZpZXdSZWYucm9vdE5vZGVzIGFzIGFueVtdKS5maW5kKGVsZW0gPT4geyByZXR1cm4gZWxlbS5ub2RlTmFtZSAhPT0gXCIjdGV4dFwiIH0pO1xyXG5cclxuXHJcbiAgICAgICAgICAgIC8vIFVzZSB0aGUgcGFyZW50cyBlbGVtZW50cyBhcyBvdXIgRE9NIGVsZW1lbnRzIHRvIFBvcHBlclxyXG4gICAgICAgICAgICB0aGlzLnBvcHBlclJlZiA9IG5ldyBQb3BwZXIoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlVmlld1JlZi5yb290Tm9kZXNbMF0sXHJcbiAgICAgICAgICAgICAgICBhbmNob3JFbGVtZW50LFxyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3BwZXJPcHRpb25zKTtcclxuXHJcblxyXG4gICAgICAgICAgICBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZS5HbG9iYWxQb3B1cFJlZiA9IHRoaXM7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnBvcHBlclN0YXR1c0NoYW5nZS5lbWl0KCd2aXNpYmxlJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhpZGVzIHRoZSB0ZW1wbGF0ZVJlZlxyXG4gICAgICpcclxuICAgICAqIEBtZW1iZXJvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5nbG9iYWxDbG9zZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmdsb2JhbENsb3NlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsQ2xvc2VTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5wb3BwZXJSZWYgJiYgdGhpcy5wb3B1cFZpZXdSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5wb3B1cFZpZXdSZWYuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB0aGlzLnBvcHBlclJlZi5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMucG9wcGVyUmVmID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLnBvcHBlclN0YXR1c0NoYW5nZS5lbWl0KCdoaWRkZW4nKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHRoZSBwb3B1cCBjb250YWluZXIgcG9zaXRpb25cclxuICAgICAqL1xyXG4gICAgcHVibGljIHVwZGF0ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5wb3BwZXJSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy5wb3BwZXJSZWYudXBkYXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBmaXhQb3NpdGlvbihtaW5XaWR0aE5vbmU/OmJvb2xlYW4sIGFwcGVuZFRvQm9keT1mYWxzZSApOnZvaWQge1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICBpZih0aGlzLnBvcHBlclJlZiAmJiB0aGlzLnBvcHBlclJlZlsncmVmZXJlbmNlJ10gJiYgdGhpcy5wb3BwZXJSZWZbJ3BvcHBlciddKSB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgbGV0IHBvcHVwRWwgPSB0aGlzLnBvcHBlclJlZlsncG9wcGVyJ107XHJcblxyXG4gICAgICAgICAgICAvLyBSZXNldCB3aWR0aCBzdHlsZSBwcmV2aW91c2x5IGFzc2lnbmVkIGJlY2F1c2UgdGhlIGNvbnRlbnQgbWF5IGhhdmVcclxuICAgICAgICAgICAgLy8gY2hhbmdlZCBhbmQgdGhlIGF1dG8gd2lkdGggd291bGQgYmUgZGlmZmVyZW50XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUocG9wdXBFbCwgJ3dpZHRoJyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHBvcHVwRWwsICdwb3NpdGlvbicsICdmaXhlZCcpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGFwcGVuZFRvQm9keSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYm9keUVsID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5Jyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwb3B1cFBhcmVudCA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZShwb3B1cEVsKTtcclxuICAgICAgICAgICAgICAgIGlmIChwb3B1cFBhcmVudCAhPT0gYm9keUVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChib2R5RWwsIHBvcHVwRWwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIGxldCB0b2dnbGVFbCA9IHRoaXMucG9wcGVyUmVmWydyZWZlcmVuY2UnXTtcclxuICAgICAgICAgICAgbGV0IHdpZHRoID0gcG9wdXBFbC5vZmZzZXRXaWR0aDtcclxuICAgICAgICAgICAgbGV0IGJvdW5kYXJpZXMgPSBwb3B1cEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICBsZXQgbGVmdDpudW1iZXIgPSBib3VuZGFyaWVzLmxlZnQ7XHJcbiAgICAgICAgICAgIGxldCBjb29yZHMgPSB0b2dnbGVFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIFNldCB0aGUgdG9wIG9mIG91ciBtZW51IHRvIHRoZSBib3R0b20gb2YgdGhlIHRvZ2dsZSBlbGVtZW50XHJcbiAgICAgICAgICAgIGxldCB0b3A6bnVtYmVyID0gY29vcmRzLmJvdHRvbTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBvcHBlck9wdGlvbnMgJiYgdGhpcy5wb3BwZXJPcHRpb25zLnBsYWNlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucG9wcGVyT3B0aW9ucy5wbGFjZW1lbnQgPT09ICdib3R0b20tc3RhcnQnIHx8IHRoaXMucG9wcGVyT3B0aW9ucy5wbGFjZW1lbnQgPT09ICd0b3Atc3RhcnQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IGNvb3Jkcy5sZWZ0O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gY29vcmRzLnJpZ2h0IC0gKChtaW5XaWR0aE5vbmUgfHwgd2lkdGggPiBjb29yZHMud2lkdGgpID8gd2lkdGggOiBjb29yZHMud2lkdGgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBpZiBpdCB3b24ndCBmaXQgKHdpdGggMTBweCBzcGFjZSBiZWZvcmUgaGl0dGluZyB0aGUgd2luZG93IGVkZ2UpLCBmbGlwIGl0XHJcbiAgICAgICAgICAgIGlmIChib3VuZGFyaWVzLmhlaWdodCArIHRvcCArIDEwID4gd2luZG93LmlubmVySGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICB0b3AgPSBjb29yZHMudG9wIC0gYm91bmRhcmllcy5oZWlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wdXBFbCwgJ3RyYW5zZm9ybScsICdub25lJyk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wdXBFbCwgJ2xlZnQnLCBsZWZ0ICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wdXBFbCwgJ3RvcCcsIHRvcCArICdweCcpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHBvcHVwRWwsICd3aWR0aCcsIHdpZHRoICsgJ3B4Jyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIW1pbldpZHRoTm9uZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShwb3B1cEVsLCAnbWluLXdpZHRoJywgY29vcmRzLndpZHRoICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,50 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { DateTimeHelper } from '../../../core/date-time-helper';
3
+ import moment from 'moment';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../user-preference.service";
6
+ /**
7
+ * Format a date to the user's preference for display
8
+ */
9
+ export class DateDisplayPipe {
10
+ constructor(userPreferenceService) {
11
+ this.userPreferenceService = userPreferenceService;
12
+ this.lastFormatString = 'MM/DD/YYYY';
13
+ }
14
+ /**
15
+ * Format a date for display, accounting for user's display preferences.
16
+ *
17
+ * If {@see date} is null or undefined, or the end of time, returns empty string
18
+ */
19
+ transform(date, showEndOfTime, showTime, showSeconds) {
20
+ let display = '';
21
+ let formatString = '';
22
+ if (date && moment(date).isValid() && (showEndOfTime || !DateTimeHelper.isEndOfTime(date))) {
23
+ // use user-preferred formats
24
+ this.userPreferenceService.getPreferences().subscribe(result => {
25
+ //if preferences exist then format date to users preference
26
+ //otherwise use the last user preference
27
+ if (result.preference) {
28
+ formatString = result.preference.dateFormat;
29
+ if (showTime) {
30
+ let timeFormat = result.preference.timeFormat;
31
+ if (!showSeconds) {
32
+ timeFormat = timeFormat.replace(':ss', '');
33
+ }
34
+ formatString += ` ${timeFormat}`;
35
+ }
36
+ this.lastFormatString = formatString;
37
+ }
38
+ });
39
+ display = moment(date).format(this.lastFormatString);
40
+ }
41
+ return display;
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateDisplayPipe, deps: [{ token: i1.UserPreferenceService }], target: i0.ɵɵFactoryTarget.Pipe }); }
44
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DateDisplayPipe, name: "dateDisplay" }); }
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateDisplayPipe, decorators: [{
47
+ type: Pipe,
48
+ args: [{ name: 'dateDisplay' }]
49
+ }], ctorParameters: () => [{ type: i1.UserPreferenceService }] });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kaXNwbGF5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2Rpc3BsYXkvcGlwZXMvZGF0ZS1kaXNwbGF5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhFLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7O0FBSTVCOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFBb0IscUJBQTRDO1FBQTVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFFeEQscUJBQWdCLEdBQVcsWUFBWSxDQUFDO0lBRm9CLENBQUM7SUFJckU7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxJQUFrQixFQUFFLGFBQXVCLEVBQUUsUUFBa0IsRUFBRSxXQUFxQjtRQUM5RixJQUFJLE9BQU8sR0FBVyxFQUFFLENBQUM7UUFDekIsSUFBSSxZQUFZLEdBQVcsRUFBRSxDQUFDO1FBRTlCLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRTNGLDZCQUE2QjtZQUM3QixJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUU3RCw0REFBNEQ7Z0JBQzVELHdDQUF3QztnQkFDeEMsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ3RCLFlBQVksR0FBRyxNQUFNLENBQUMsVUFBVyxDQUFDLFVBQVcsQ0FBQztvQkFDOUMsSUFBSSxRQUFRLEVBQUUsQ0FBQzt3QkFDYixJQUFJLFVBQVUsR0FBVyxNQUFNLENBQUMsVUFBVyxDQUFDLFVBQVcsQ0FBQzt3QkFDeEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDOzRCQUNqQixVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQzdDLENBQUM7d0JBQ0QsWUFBWSxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQ25DLENBQUM7b0JBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQztnQkFDdkMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7K0dBckNVLGVBQWU7NkdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVUaW1lSGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9kYXRlLXRpbWUtaGVscGVyJztcclxuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci1wcmVmZXJlbmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcblxyXG5leHBvcnQgdHlwZSBEYXRlRGlzcGxheSA9IERhdGUgfCBtb21lbnQuTW9tZW50IHwgc3RyaW5nIHwgbnVsbDtcclxuXHJcbi8qKlxyXG4gKiBGb3JtYXQgYSBkYXRlIHRvIHRoZSB1c2VyJ3MgcHJlZmVyZW5jZSBmb3IgZGlzcGxheVxyXG4gKi9cclxuQFBpcGUoe25hbWU6ICdkYXRlRGlzcGxheSd9KVxyXG5leHBvcnQgY2xhc3MgRGF0ZURpc3BsYXlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlclByZWZlcmVuY2VTZXJ2aWNlOiBVc2VyUHJlZmVyZW5jZVNlcnZpY2UpIHsgfVxyXG5cclxuICBwcml2YXRlIGxhc3RGb3JtYXRTdHJpbmc6IHN0cmluZyA9ICdNTS9ERC9ZWVlZJztcclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybWF0IGEgZGF0ZSBmb3IgZGlzcGxheSwgYWNjb3VudGluZyBmb3IgdXNlcidzIGRpc3BsYXkgcHJlZmVyZW5jZXMuXHJcbiAgICogXHJcbiAgICogSWYge0BzZWUgZGF0ZX0gaXMgbnVsbCBvciB1bmRlZmluZWQsIG9yIHRoZSBlbmQgb2YgdGltZSwgcmV0dXJucyBlbXB0eSBzdHJpbmdcclxuICAgKi9cclxuICB0cmFuc2Zvcm0oZGF0ZT86IERhdGVEaXNwbGF5LCBzaG93RW5kT2ZUaW1lPzogYm9vbGVhbiwgc2hvd1RpbWU/OiBib29sZWFuLCBzaG93U2Vjb25kcz86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgbGV0IGRpc3BsYXk6IHN0cmluZyA9ICcnO1xyXG4gICAgbGV0IGZvcm1hdFN0cmluZzogc3RyaW5nID0gJyc7XHJcbiAgICBcclxuICAgIGlmIChkYXRlICYmIG1vbWVudChkYXRlKS5pc1ZhbGlkKCkgJiYgKHNob3dFbmRPZlRpbWUgfHwgIURhdGVUaW1lSGVscGVyLmlzRW5kT2ZUaW1lKGRhdGUpKSkge1xyXG5cclxuICAgICAgLy8gdXNlIHVzZXItcHJlZmVycmVkIGZvcm1hdHNcclxuICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2UuZ2V0UHJlZmVyZW5jZXMoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuXHJcbiAgICAgICAgLy9pZiBwcmVmZXJlbmNlcyBleGlzdCB0aGVuIGZvcm1hdCBkYXRlIHRvIHVzZXJzIHByZWZlcmVuY2UgXHJcbiAgICAgICAgLy9vdGhlcndpc2UgdXNlIHRoZSBsYXN0IHVzZXIgcHJlZmVyZW5jZVxyXG4gICAgICAgIGlmIChyZXN1bHQucHJlZmVyZW5jZSkge1xyXG4gICAgICAgICAgZm9ybWF0U3RyaW5nID0gcmVzdWx0LnByZWZlcmVuY2UhLmRhdGVGb3JtYXQhO1xyXG4gICAgICAgICAgaWYgKHNob3dUaW1lKSB7XHJcbiAgICAgICAgICAgIGxldCB0aW1lRm9ybWF0OiBzdHJpbmcgPSByZXN1bHQucHJlZmVyZW5jZSEudGltZUZvcm1hdCE7XHJcbiAgICAgICAgICAgIGlmICghc2hvd1NlY29uZHMpIHtcclxuICAgICAgICAgICAgICB0aW1lRm9ybWF0ID0gdGltZUZvcm1hdC5yZXBsYWNlKCc6c3MnLCAnJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZm9ybWF0U3RyaW5nICs9IGAgJHt0aW1lRm9ybWF0fWA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmxhc3RGb3JtYXRTdHJpbmcgPSBmb3JtYXRTdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgZGlzcGxheSA9IG1vbWVudChkYXRlKS5mb3JtYXQodGhpcy5sYXN0Rm9ybWF0U3RyaW5nKTtcclxuICAgIH1cclxuICAgIHJldHVybiBkaXNwbGF5O1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,30 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class HighlightTextPipe {
4
+ transform(value, searchText) {
5
+ let transformedValue = '';
6
+ if (value && searchText) {
7
+ const regex = new RegExp(this.escapeRegex(searchText), 'gi');
8
+ transformedValue = value.replace(regex, this.strongWrap);
9
+ }
10
+ else {
11
+ transformedValue = value;
12
+ }
13
+ return transformedValue;
14
+ }
15
+ strongWrap(match) {
16
+ return `<strong class="text-highlight">${match}</strong>`;
17
+ }
18
+ escapeRegex(value) {
19
+ return value.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HighlightTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
22
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: HighlightTextPipe, name: "highlightText" }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HighlightTextPipe, decorators: [{
25
+ type: Pipe,
26
+ args: [{
27
+ name: 'highlightText'
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LXRleHQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvZGlzcGxheS9waXBlcy9oaWdobGlnaHQtdGV4dC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLFNBQVMsQ0FBQyxLQUFhLEVBQUUsVUFBa0I7UUFDekMsSUFBSSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxLQUFLLElBQUksVUFBVSxFQUFFLENBQUM7WUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3RCxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0QsQ0FBQzthQUFNLENBQUM7WUFDTixnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQztRQUVELE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFhO1FBQzlCLE9BQU8sa0NBQWtDLEtBQUssV0FBVyxDQUFDO0lBQzVELENBQUM7SUFFTyxXQUFXLENBQUMsS0FBYTtRQUMvQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekQsQ0FBQzsrR0FwQlUsaUJBQWlCOzZHQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSDdCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGVBQWU7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdoaWdobGlnaHRUZXh0J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSGlnaGxpZ2h0VGV4dFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcsIHNlYXJjaFRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgdHJhbnNmb3JtZWRWYWx1ZSA9ICcnO1xyXG4gICAgaWYgKHZhbHVlICYmIHNlYXJjaFRleHQpIHtcclxuICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHRoaXMuZXNjYXBlUmVnZXgoc2VhcmNoVGV4dCksICdnaScpO1xyXG4gICAgICB0cmFuc2Zvcm1lZFZhbHVlID0gdmFsdWUucmVwbGFjZShyZWdleCwgdGhpcy5zdHJvbmdXcmFwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRyYW5zZm9ybWVkVmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJhbnNmb3JtZWRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3Ryb25nV3JhcChtYXRjaDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gYDxzdHJvbmcgY2xhc3M9XCJ0ZXh0LWhpZ2hsaWdodFwiPiR7bWF0Y2h9PC9zdHJvbmc+YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXNjYXBlUmVnZXgodmFsdWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,62 @@
1
+ import { Pipe } from '@angular/core';
2
+ import moment from 'moment';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./date-display.pipe";
5
+ import * as i2 from "./time-display.pipe";
6
+ import * as i3 from "@ngx-translate/core";
7
+ export class RelativeDatePipe {
8
+ constructor(dateDisplayPipe, timeDisplayPipe, translateService) {
9
+ this.dateDisplayPipe = dateDisplayPipe;
10
+ this.timeDisplayPipe = timeDisplayPipe;
11
+ this.translateService = translateService;
12
+ }
13
+ /**
14
+ * If dateOnly is true, returns timeSelected formatted according to the user's date preference.
15
+ * If dateOnly is true and showTimeForToday is false and timeSelected is today, returns 'today' or todayLabel
16
+ * If dateOnly and showTimeForToday is true and timeSelected is today, returns timeSelected formatted according to the user's time preference.
17
+ * If dateOnly is false, returns timeSelected formatted according to the user's time preference.
18
+ * If dateOnly is false and timeSelected is not today/yesterday, returns timeSelected formatted according to the user's date plus time preference.
19
+ * If any of todayLabel, yesterdayLabel is supplied, use the supplied label.
20
+ */
21
+ transform(timeSelected, options) {
22
+ const selected = moment(timeSelected);
23
+ const today = moment();
24
+ const yesterday = moment().subtract(1, 'day');
25
+ const timeDisplay = options?.dateOnly ? `` : ` ${this.timeDisplayPipe.transform(timeSelected)}`;
26
+ let displayValue = null;
27
+ let prefixValue = '';
28
+ if (selected.isSame(today, 'day') && !options?.showTimeForToday) {
29
+ displayValue = this.translateService.instant(options?.todayLabel ? options?.todayLabel : 'today');
30
+ prefixValue = options?.todayPrefix ?? '';
31
+ }
32
+ else if (selected.isSame(today, 'day') && options?.showTimeForToday && !timeDisplay) {
33
+ displayValue = this.timeDisplayPipe.transform(timeSelected);
34
+ prefixValue = options?.todayTimePrefix ?? '';
35
+ }
36
+ else if (selected.isSame(yesterday, 'day')) {
37
+ displayValue = this.translateService.instant(options?.yesterdayLabel ? options?.yesterdayLabel : 'yesterday');
38
+ prefixValue = options?.yesterdayPrefix ?? '';
39
+ }
40
+ else {
41
+ displayValue = this.dateDisplayPipe.transform(timeSelected);
42
+ }
43
+ // If we have a default prefix and no specific ones were set earlier apply the default prefix
44
+ if (options?.defaultPrefix && prefixValue === '') {
45
+ prefixValue = options.defaultPrefix;
46
+ }
47
+ // Add a space after our prefix if defined
48
+ if (prefixValue !== '') {
49
+ prefixValue = `${prefixValue} `;
50
+ }
51
+ return `${prefixValue}${displayValue}${timeDisplay}`;
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RelativeDatePipe, deps: [{ token: i1.DateDisplayPipe }, { token: i2.TimeDisplayPipe }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
54
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: RelativeDatePipe, name: "relativeDate" }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RelativeDatePipe, decorators: [{
57
+ type: Pipe,
58
+ args: [{
59
+ name: 'relativeDate'
60
+ }]
61
+ }], ctorParameters: () => [{ type: i1.DateDisplayPipe }, { type: i2.TimeDisplayPipe }, { type: i3.TranslateService }] });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpdmUtZGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC9kaXNwbGF5L3BpcGVzL3JlbGF0aXZlLWRhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7O0FBMEI1QixNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQ1UsZUFBZ0MsRUFDaEMsZUFBZ0MsRUFDaEMsZ0JBQWtDO1FBRmxDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUN4QyxDQUFDO0lBRUw7Ozs7Ozs7T0FPRztJQUNILFNBQVMsQ0FDUCxZQUFvQixFQUNwQixPQUE2QjtRQUU3QixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDdkIsTUFBTSxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QyxNQUFNLFdBQVcsR0FBRyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUVoRyxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBRXJCLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztZQUNoRSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsRyxXQUFXLEdBQUcsT0FBTyxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDM0MsQ0FBQzthQUFNLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksT0FBTyxFQUFFLGdCQUFnQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEYsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVELFdBQVcsR0FBRyxPQUFPLEVBQUUsZUFBZSxJQUFJLEVBQUUsQ0FBQTtRQUM5QyxDQUFDO2FBQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlHLFdBQVcsR0FBRyxPQUFPLEVBQUUsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUMvQyxDQUFDO2FBQU0sQ0FBQztZQUNOLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsNkZBQTZGO1FBQzdGLElBQUksT0FBTyxFQUFFLGFBQWEsSUFBSSxXQUFXLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDakQsV0FBVyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDdEMsQ0FBQztRQUVELDBDQUEwQztRQUMxQyxJQUFJLFdBQVcsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN2QixXQUFXLEdBQUcsR0FBRyxXQUFXLEdBQUcsQ0FBQztRQUNsQyxDQUFDO1FBRUQsT0FBTyxHQUFHLFdBQVcsR0FBRyxZQUFZLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDdkQsQ0FBQzsrR0FwRFUsZ0JBQWdCOzZHQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBSDVCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgRGF0ZURpc3BsYXlQaXBlIH0gZnJvbSAnLi9kYXRlLWRpc3BsYXkucGlwZSc7XHJcbmltcG9ydCB7IFRpbWVEaXNwbGF5UGlwZSB9IGZyb20gJy4vdGltZS1kaXNwbGF5LnBpcGUnO1xyXG5cclxuZXhwb3J0IHR5cGUgUmVsYXRpdmVEYXRlT3B0aW9ucyA9IHtcclxuICBkYXRlT25seT86IGJvb2xlYW4sIFxyXG4gIHNob3dUaW1lRm9yVG9kYXk/IDogYm9vbGVhbixcclxuICB0b2RheUxhYmVsPzogc3RyaW5nLCBcclxuICB5ZXN0ZXJkYXlMYWJlbD86IHN0cmluZywgXHJcblxyXG4gIC8qKiBQcmVmaXggZm9yIHdoZW4gc2hvd2luZyB0b2RheSBhcyB0aW1lIGZvciB0aGUgdmFsdWUgKi9cclxuICB0b2RheVRpbWVQcmVmaXg/OiBzdHJpbmcsXHJcblxyXG4gIC8qKiBQcmVmaXggZm9yIHdoZW4gZGlzcGxheWluZyBcInRvZGF5XCIgYXMgdGhlIHZhbHVlICovXHJcbiAgdG9kYXlQcmVmaXg/OiBzdHJpbmcsXHJcblxyXG4gIC8qKiBQcmVmaXggZm9yIHdoZW4gZGlzcGxheWluZyBcInllc3RlcmRheVwiIGFzIHRoZSB2YWx1ZSAqL1xyXG4gIHllc3RlcmRheVByZWZpeD86IHN0cmluZyxcclxuXHJcbiAgLyoqIERlZmF1bHQgcHJlZml4LiBXaWxsIGJlIGFwcGxpZWQgdG8gYWxsIGRpc3BsYXkgb3B0aW9ucyBpZiBkZWZpbmVkIGFuZCBvdGhlcnMgYXJlIG5vdCAqL1xyXG4gIGRlZmF1bHRQcmVmaXg/OiBzdHJpbmdcclxufVxyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdyZWxhdGl2ZURhdGUnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWxhdGl2ZURhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRlRGlzcGxheVBpcGU6IERhdGVEaXNwbGF5UGlwZSwgXHJcbiAgICBwcml2YXRlIHRpbWVEaXNwbGF5UGlwZTogVGltZURpc3BsYXlQaXBlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogSWYgZGF0ZU9ubHkgaXMgdHJ1ZSwgcmV0dXJucyB0aW1lU2VsZWN0ZWQgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgdXNlcidzIGRhdGUgcHJlZmVyZW5jZS5cclxuICAgKiBJZiBkYXRlT25seSBpcyB0cnVlIGFuZCBzaG93VGltZUZvclRvZGF5IGlzIGZhbHNlIGFuZCB0aW1lU2VsZWN0ZWQgaXMgdG9kYXksIHJldHVybnMgJ3RvZGF5JyBvciB0b2RheUxhYmVsXHJcbiAgICogSWYgZGF0ZU9ubHkgYW5kIHNob3dUaW1lRm9yVG9kYXkgaXMgdHJ1ZSBhbmQgdGltZVNlbGVjdGVkIGlzIHRvZGF5LCByZXR1cm5zIHRpbWVTZWxlY3RlZCBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSB1c2VyJ3MgdGltZSBwcmVmZXJlbmNlLlxyXG4gICAqIElmIGRhdGVPbmx5IGlzIGZhbHNlLCByZXR1cm5zIHRpbWVTZWxlY3RlZCBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSB1c2VyJ3MgdGltZSBwcmVmZXJlbmNlLlxyXG4gICAqIElmIGRhdGVPbmx5IGlzIGZhbHNlIGFuZCB0aW1lU2VsZWN0ZWQgaXMgbm90IHRvZGF5L3llc3RlcmRheSwgcmV0dXJucyB0aW1lU2VsZWN0ZWQgZm9ybWF0dGVkIGFjY29yZGluZyB0byB0aGUgdXNlcidzIGRhdGUgcGx1cyB0aW1lIHByZWZlcmVuY2UuXHJcbiAgICogSWYgYW55IG9mIHRvZGF5TGFiZWwsIHllc3RlcmRheUxhYmVsIGlzIHN1cHBsaWVkLCB1c2UgdGhlIHN1cHBsaWVkIGxhYmVsLlxyXG4gICAqL1xyXG4gIHRyYW5zZm9ybShcclxuICAgIHRpbWVTZWxlY3RlZDogc3RyaW5nLCBcclxuICAgIG9wdGlvbnM/OiBSZWxhdGl2ZURhdGVPcHRpb25zXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkID0gbW9tZW50KHRpbWVTZWxlY3RlZCk7XHJcbiAgICBjb25zdCB0b2RheSA9IG1vbWVudCgpO1xyXG4gICAgY29uc3QgeWVzdGVyZGF5ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ2RheScpO1xyXG4gICAgY29uc3QgdGltZURpc3BsYXkgPSBvcHRpb25zPy5kYXRlT25seSA/IGBgIDogYCAke3RoaXMudGltZURpc3BsYXlQaXBlLnRyYW5zZm9ybSh0aW1lU2VsZWN0ZWQpfWA7XHJcblxyXG4gICAgbGV0IGRpc3BsYXlWYWx1ZSA9IG51bGw7XHJcbiAgICBsZXQgcHJlZml4VmFsdWUgPSAnJztcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWQuaXNTYW1lKHRvZGF5LCAnZGF5JykgJiYgIW9wdGlvbnM/LnNob3dUaW1lRm9yVG9kYXkpIHtcclxuICAgICAgZGlzcGxheVZhbHVlID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQob3B0aW9ucz8udG9kYXlMYWJlbCA/IG9wdGlvbnM/LnRvZGF5TGFiZWwgOiAndG9kYXknKTtcclxuICAgICAgcHJlZml4VmFsdWUgPSBvcHRpb25zPy50b2RheVByZWZpeCA/PyAnJztcclxuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWQuaXNTYW1lKHRvZGF5LCAnZGF5JykgJiYgb3B0aW9ucz8uc2hvd1RpbWVGb3JUb2RheSAmJiAhdGltZURpc3BsYXkpIHtcclxuICAgICAgZGlzcGxheVZhbHVlID0gdGhpcy50aW1lRGlzcGxheVBpcGUudHJhbnNmb3JtKHRpbWVTZWxlY3RlZCk7XHJcbiAgICAgIHByZWZpeFZhbHVlID0gb3B0aW9ucz8udG9kYXlUaW1lUHJlZml4ID8/ICcnXHJcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGVkLmlzU2FtZSh5ZXN0ZXJkYXksICdkYXknKSkge1xyXG4gICAgICBkaXNwbGF5VmFsdWUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChvcHRpb25zPy55ZXN0ZXJkYXlMYWJlbCA/IG9wdGlvbnM/Lnllc3RlcmRheUxhYmVsIDogJ3llc3RlcmRheScpO1xyXG4gICAgICBwcmVmaXhWYWx1ZSA9IG9wdGlvbnM/Lnllc3RlcmRheVByZWZpeCA/PyAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRpc3BsYXlWYWx1ZSA9IHRoaXMuZGF0ZURpc3BsYXlQaXBlLnRyYW5zZm9ybSh0aW1lU2VsZWN0ZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHdlIGhhdmUgYSBkZWZhdWx0IHByZWZpeCBhbmQgbm8gc3BlY2lmaWMgb25lcyB3ZXJlIHNldCBlYXJsaWVyIGFwcGx5IHRoZSBkZWZhdWx0IHByZWZpeFxyXG4gICAgaWYgKG9wdGlvbnM/LmRlZmF1bHRQcmVmaXggJiYgcHJlZml4VmFsdWUgPT09ICcnKSB7XHJcbiAgICAgIHByZWZpeFZhbHVlID0gb3B0aW9ucy5kZWZhdWx0UHJlZml4O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEFkZCBhIHNwYWNlIGFmdGVyIG91ciBwcmVmaXggaWYgZGVmaW5lZFxyXG4gICAgaWYgKHByZWZpeFZhbHVlICE9PSAnJykge1xyXG4gICAgICBwcmVmaXhWYWx1ZSA9IGAke3ByZWZpeFZhbHVlfSBgO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZXR1cm4gYCR7cHJlZml4VmFsdWV9JHtkaXNwbGF5VmFsdWV9JHt0aW1lRGlzcGxheX1gO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,48 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@ngx-translate/core";
4
+ export class RowCountPipe {
5
+ constructor(translateService) {
6
+ this.translateService = translateService;
7
+ }
8
+ /**
9
+ * Get the formatted row count for the results.
10
+ *
11
+ * Provide maxItemCount if the normal row count is needed.
12
+ * Provide pagingInfo if the paged row count is needed.
13
+ */
14
+ //Note that totalPagedItemCount is not necessarily equal to pagingInfo.pageSize since the last page could have less than pageSize rows.
15
+ transform(results, objectType, maxItemCount, pagingInfo) {
16
+ let translated = this.translateService.instant(objectType || 'results');
17
+ if (maxItemCount !== undefined) {
18
+ return this.getResultsCount(results, translated, maxItemCount);
19
+ }
20
+ else if (pagingInfo) {
21
+ return this.getPagedResultsCount(results, translated, pagingInfo);
22
+ }
23
+ return '';
24
+ }
25
+ getResultsCount(results, objectType, maxItemCount) {
26
+ // If the filtered results count of rows is greater than the maximum number
27
+ // of results we want to show, we have already pared the results down,
28
+ // so tell user we are displaying the first `maxItemCount` results out of the total
29
+ // count of filtered results.
30
+ if (results.totalItems > maxItemCount) {
31
+ return `${maxItemCount} ${this.translateService.instant('of')} ${results.totalItems}`;
32
+ }
33
+ return `${results.totalItems} ${objectType}`;
34
+ }
35
+ getPagedResultsCount(results, objectType, pagingInfo) {
36
+ let prefix = `${pagingInfo.skip + 1}` + (results.totalItems > 1 ? `-${pagingInfo.skip + results.totalItems} ` : ' ');
37
+ return prefix + `${this.translateService.instant('of')} ${results.totalItemsBeforePaging} ${objectType}`;
38
+ }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RowCountPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
40
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: RowCountPipe, name: "rowCount" }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RowCountPipe, decorators: [{
43
+ type: Pipe,
44
+ args: [{
45
+ name: 'rowCount'
46
+ }]
47
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWNvdW50LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2Rpc3BsYXkvcGlwZXMvcm93LWNvdW50LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQVlwRCxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFMUQ7Ozs7O09BS0c7SUFDSCx1SUFBdUk7SUFDdkksU0FBUyxDQUFDLE9BQXFCLEVBQUUsVUFBa0IsRUFBRSxZQUFxQixFQUFFLFVBQXVCO1FBQ2pHLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQ3hFLElBQUcsWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pFLENBQUM7YUFBTSxJQUFHLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUdPLGVBQWUsQ0FBQyxPQUFxQixFQUFFLFVBQWtCLEVBQUUsWUFBb0I7UUFDckYsMkVBQTJFO1FBQzNFLHNFQUFzRTtRQUN0RSxtRkFBbUY7UUFDbkYsNkJBQTZCO1FBQzdCLElBQUksT0FBTyxDQUFDLFVBQVUsR0FBRyxZQUFZLEVBQUUsQ0FBQztZQUN0QyxPQUFPLEdBQUcsWUFBWSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hGLENBQUM7UUFDRCxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRU8sb0JBQW9CLENBQUMsT0FBcUIsRUFBRSxVQUFrQixFQUFFLFVBQXNCO1FBQzVGLElBQUksTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNySCxPQUFPLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLHNCQUFzQixJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQzNHLENBQUM7K0dBcENVLFlBQVk7NkdBQVosWUFBWTs7NEZBQVosWUFBWTtrQkFIeEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsVUFBVTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgUGFnaW5nSW5mbyB9IGZyb20gJy4uLy4uLy4uL2Rpc3BsYXkvdGFibGUvdGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IHR5cGUgUm93Q291bnRJbmZvID0geyBcclxuICB0b3RhbEl0ZW1zOiBudW1iZXIsXHJcbiAgdG90YWxJdGVtc0JlZm9yZVBhZ2luZz86IG51bWJlcixcclxufVxyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdyb3dDb3VudCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFJvd0NvdW50UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgZm9ybWF0dGVkIHJvdyBjb3VudCBmb3IgdGhlIHJlc3VsdHMuXHJcbiAgICogXHJcbiAgICogUHJvdmlkZSBtYXhJdGVtQ291bnQgaWYgdGhlIG5vcm1hbCByb3cgY291bnQgaXMgbmVlZGVkLlxyXG4gICAqIFByb3ZpZGUgcGFnaW5nSW5mbyBpZiB0aGUgcGFnZWQgcm93IGNvdW50IGlzIG5lZWRlZC5cclxuICAgKi9cclxuICAvL05vdGUgdGhhdCB0b3RhbFBhZ2VkSXRlbUNvdW50IGlzIG5vdCBuZWNlc3NhcmlseSBlcXVhbCB0byBwYWdpbmdJbmZvLnBhZ2VTaXplIHNpbmNlIHRoZSBsYXN0IHBhZ2UgY291bGQgaGF2ZSBsZXNzIHRoYW4gcGFnZVNpemUgcm93cy5cclxuICB0cmFuc2Zvcm0ocmVzdWx0czogUm93Q291bnRJbmZvLCBvYmplY3RUeXBlOiBzdHJpbmcsIG1heEl0ZW1Db3VudD86IG51bWJlciwgcGFnaW5nSW5mbz86IFBhZ2luZ0luZm8pOiBzdHJpbmcge1xyXG4gICAgbGV0IHRyYW5zbGF0ZWQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChvYmplY3RUeXBlIHx8ICdyZXN1bHRzJyk7XHJcbiAgICBpZihtYXhJdGVtQ291bnQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRSZXN1bHRzQ291bnQocmVzdWx0cywgdHJhbnNsYXRlZCwgbWF4SXRlbUNvdW50KTtcclxuICAgIH0gZWxzZSBpZihwYWdpbmdJbmZvKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldFBhZ2VkUmVzdWx0c0NvdW50KHJlc3VsdHMsIHRyYW5zbGF0ZWQsIHBhZ2luZ0luZm8pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgZ2V0UmVzdWx0c0NvdW50KHJlc3VsdHM6IFJvd0NvdW50SW5mbywgb2JqZWN0VHlwZTogc3RyaW5nLCBtYXhJdGVtQ291bnQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAvLyBJZiB0aGUgZmlsdGVyZWQgcmVzdWx0cyBjb3VudCBvZiByb3dzIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSBudW1iZXJcclxuICAgIC8vIG9mIHJlc3VsdHMgd2Ugd2FudCB0byBzaG93LCB3ZSBoYXZlIGFscmVhZHkgcGFyZWQgdGhlIHJlc3VsdHMgZG93bixcclxuICAgIC8vIHNvIHRlbGwgdXNlciB3ZSBhcmUgZGlzcGxheWluZyB0aGUgZmlyc3QgYG1heEl0ZW1Db3VudGAgcmVzdWx0cyBvdXQgb2YgdGhlIHRvdGFsXHJcbiAgICAvLyBjb3VudCBvZiBmaWx0ZXJlZCByZXN1bHRzLlxyXG4gICAgaWYgKHJlc3VsdHMudG90YWxJdGVtcyA+IG1heEl0ZW1Db3VudCkge1xyXG4gICAgICByZXR1cm4gYCR7bWF4SXRlbUNvdW50fSAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdvZicpfSAke3Jlc3VsdHMudG90YWxJdGVtc31gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3Jlc3VsdHMudG90YWxJdGVtc30gJHtvYmplY3RUeXBlfWA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBhZ2VkUmVzdWx0c0NvdW50KHJlc3VsdHM6IFJvd0NvdW50SW5mbywgb2JqZWN0VHlwZTogc3RyaW5nLCBwYWdpbmdJbmZvOiBQYWdpbmdJbmZvKTogc3RyaW5nIHtcclxuICAgIGxldCBwcmVmaXggPSBgJHtwYWdpbmdJbmZvLnNraXAgKyAxfWAgKyAocmVzdWx0cy50b3RhbEl0ZW1zID4gMSA/IGAtJHtwYWdpbmdJbmZvLnNraXAgKyByZXN1bHRzLnRvdGFsSXRlbXN9IGAgOiAnICcpO1xyXG4gICAgcmV0dXJuIHByZWZpeCArIGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdvZicpfSAke3Jlc3VsdHMudG90YWxJdGVtc0JlZm9yZVBhZ2luZ30gJHtvYmplY3RUeXBlfWA7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Pipe } from '@angular/core';
2
+ import moment from 'moment';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../user-preference.service";
5
+ /**
6
+ * Format a time to the user's preference for display
7
+ */
8
+ export class TimeDisplayPipe {
9
+ constructor(userPreferenceService) {
10
+ this.userPreferenceService = userPreferenceService;
11
+ this.lastFormatString = 'HH:mm:ss';
12
+ }
13
+ /**
14
+ * Format a time for display, accounting for user's display preferences.
15
+ */
16
+ transform(time, showSeconds) {
17
+ let display = '';
18
+ let formatString = '';
19
+ // use user-preferred formats
20
+ this.userPreferenceService.getPreferences().subscribe(result => {
21
+ //if preferences exist then format time to users preference
22
+ //otherwise use the last user preference
23
+ if (result.preference) {
24
+ formatString = result.preference.timeFormat;
25
+ if (!showSeconds) {
26
+ formatString = formatString.replace(':ss', '');
27
+ }
28
+ this.lastFormatString = formatString;
29
+ }
30
+ });
31
+ display = moment(time).format(this.lastFormatString);
32
+ return display;
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimeDisplayPipe, deps: [{ token: i1.UserPreferenceService }], target: i0.ɵɵFactoryTarget.Pipe }); }
35
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: TimeDisplayPipe, name: "timeDisplay" }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimeDisplayPipe, decorators: [{
38
+ type: Pipe,
39
+ args: [{ name: 'timeDisplay' }]
40
+ }], ctorParameters: () => [{ type: i1.UserPreferenceService }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1kaXNwbGF5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2Rpc3BsYXkvcGlwZXMvdGltZS1kaXNwbGF5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7QUFHNUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUFvQixxQkFBNEM7UUFBNUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUV4RCxxQkFBZ0IsR0FBVyxVQUFVLENBQUM7SUFGc0IsQ0FBQztJQUlyRTs7T0FFRztJQUNILFNBQVMsQ0FBQyxJQUFrQixFQUFFLFdBQXFCO1FBQ2pELElBQUksT0FBTyxHQUFXLEVBQUUsQ0FBQztRQUN6QixJQUFJLFlBQVksR0FBVyxFQUFFLENBQUM7UUFFOUIsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDN0QsNERBQTREO1lBQzVELHdDQUF3QztZQUN4QyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDdEIsWUFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFXLENBQUMsVUFBVyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ2pCLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDakQsQ0FBQztnQkFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7K0dBM0JVLGVBQWU7NkdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVzZXJQcmVmZXJlbmNlU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItcHJlZmVyZW5jZS5zZXJ2aWNlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBEYXRlRGlzcGxheSB9IGZyb20gJy4vZGF0ZS1kaXNwbGF5LnBpcGUnO1xyXG5cclxuLyoqXHJcbiAqIEZvcm1hdCBhIHRpbWUgdG8gdGhlIHVzZXIncyBwcmVmZXJlbmNlIGZvciBkaXNwbGF5XHJcbiAqL1xyXG5AUGlwZSh7bmFtZTogJ3RpbWVEaXNwbGF5J30pXHJcbmV4cG9ydCBjbGFzcyBUaW1lRGlzcGxheVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1c2VyUHJlZmVyZW5jZVNlcnZpY2U6IFVzZXJQcmVmZXJlbmNlU2VydmljZSkgeyB9XHJcblxyXG4gIHByaXZhdGUgbGFzdEZvcm1hdFN0cmluZzogc3RyaW5nID0gJ0hIOm1tOnNzJztcclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybWF0IGEgdGltZSBmb3IgZGlzcGxheSwgYWNjb3VudGluZyBmb3IgdXNlcidzIGRpc3BsYXkgcHJlZmVyZW5jZXMuXHJcbiAgICovXHJcbiAgdHJhbnNmb3JtKHRpbWU/OiBEYXRlRGlzcGxheSwgc2hvd1NlY29uZHM/OiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIGxldCBkaXNwbGF5OiBzdHJpbmcgPSAnJztcclxuICAgIGxldCBmb3JtYXRTdHJpbmc6IHN0cmluZyA9ICcnO1xyXG4gICAgXHJcbiAgICAvLyB1c2UgdXNlci1wcmVmZXJyZWQgZm9ybWF0c1xyXG4gICAgdGhpcy51c2VyUHJlZmVyZW5jZVNlcnZpY2UuZ2V0UHJlZmVyZW5jZXMoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgLy9pZiBwcmVmZXJlbmNlcyBleGlzdCB0aGVuIGZvcm1hdCB0aW1lIHRvIHVzZXJzIHByZWZlcmVuY2UgXHJcbiAgICAgIC8vb3RoZXJ3aXNlIHVzZSB0aGUgbGFzdCB1c2VyIHByZWZlcmVuY2VcclxuICAgICAgaWYgKHJlc3VsdC5wcmVmZXJlbmNlKSB7XHJcbiAgICAgICAgZm9ybWF0U3RyaW5nID0gcmVzdWx0LnByZWZlcmVuY2UhLnRpbWVGb3JtYXQhO1xyXG4gICAgICAgIGlmICghc2hvd1NlY29uZHMpIHtcclxuICAgICAgICAgIGZvcm1hdFN0cmluZyA9IGZvcm1hdFN0cmluZy5yZXBsYWNlKCc6c3MnLCAnJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdEZvcm1hdFN0cmluZyA9IGZvcm1hdFN0cmluZztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBkaXNwbGF5ID0gbW9tZW50KHRpbWUpLmZvcm1hdCh0aGlzLmxhc3RGb3JtYXRTdHJpbmcpO1xyXG4gICAgcmV0dXJuIGRpc3BsYXk7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ /** Common unicode strings */
2
+ export class UnicodeStrings {
3
+ /** Equivalent of &ndash; */
4
+ static { this.ndash = '\u2013'; }
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvZGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSw2QkFBNkI7QUFDN0IsTUFBTSxPQUFPLGNBQWM7SUFFdkIsNEJBQTRCO2FBQ2QsVUFBSyxHQUFXLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdkl0ZW0gfSBmcm9tICcuLi9jb250cm9scy9uYXZpZ2F0aW9uL25hdi1pdGVtJztcclxuXHJcblxyXG4vKipcclxuICogVGhlIHN0YXR1cyBvZiBhbnkgY29tcG9uZW50IHRoYXQgZGlzcGxheXMgY29udGVudFxyXG4gKi9cclxuZXhwb3J0IHR5cGUgVmlld1N0YXR1cyA9ICdwZW5kaW5nJyB8ICdoYXNEYXRhJyB8ICdub0RhdGEnIHwgJ2Vycm9yJztcclxuXHJcbi8qKiBDb21tb24gdW5pY29kZSBzdHJpbmdzICovXHJcbmV4cG9ydCBjbGFzcyBVbmljb2RlU3RyaW5ncyB7XHJcblxyXG4gICAgLyoqIEVxdWl2YWxlbnQgb2YgJm5kYXNoOyAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBuZGFzaDogc3RyaW5nID0gJ1xcdTIwMTMnO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFRoZSBEaXNwbGF5IGludGVyZmFjZSBkZWZpbmVzIGNvbW1vbiBwcm9wZXJ0aWVzIGZvciBhbnkgY29tcG9uZW50IHRoYXQgd291bGRcclxuICogZGlzcGxheSBjb250ZW50XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERpc3BsYXlTdGF0dXMge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHN0YXR1cyBvZiB0aGUgZGlzcGxheVxyXG4gICAgICovXHJcbiAgICBzdGF0dXM6IFZpZXdTdGF0dXM7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW4gb3B0aW9uYWwgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gc3RhdHVzIGlzIG5vdCAnaGFzRGF0YSdcclxuICAgICAqL1xyXG4gICAgbWVzc2FnZT86IHN0cmluZztcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcHJvcGVydGllcyBvZiBhbiBhY3Rpb24gYnV0dG9uIHRoYXQgY2FuIGJlIHNob3duIHdoZW4gc3RhdHVzIGlzIG5vdCAnaGFzRGF0YSdcclxuICAgICAqIEBkZXByZWNhdGVkIERlcHJlY2F0ZWQgZHVlIHRvIG5vRGF0YVRlbXBsYXRlIGJlaW5nIHByZWZlcmVkXHJcbiAgICAgKi9cclxuICAgIGFjdGlvbj86IE5hdkl0ZW07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZW1wbGF0ZSB0byBzaG93IHdoZW4gdGhlIHN0YXR1cyBpcyBub0RhdGFcclxuICAgICAqL1xyXG4gICAgbm9EYXRhVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFzayAobm90IHJlbW92ZSkgdGhlIHRyYW5zY2x1ZGVkIGNvbnRlbnQgZnJvbSB0aGUgZG9tIHdoaWxlIG5vdCBoYXNEYXRhIHN0YXR1cy5cclxuICAgICAqL1xyXG4gICAgZGlzcGxheUFzTWFzaz86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqIFxyXG4gICAgICogQWRkaXRpb25hbCBjc3MgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgLm92ZXJsYXkgZWxlbWVudCBcclxuICAgICAqL1xyXG4gICAgb3ZlcmxheUNsYXNzTGlzdD86IHN0cmluZztcclxufVxyXG4iXX0=
@@ -0,0 +1,67 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Helper for Form Groups
6
+ */
7
+ export class FormGroupHelper {
8
+ /**
9
+ * Call patchValue on the formGroup with only the properties
10
+ * that actually have values in updates. This method will ignore
11
+ * any value that is either null or undefined
12
+ */
13
+ patchValueSafely(formGroup, updates) {
14
+ let safeUpdates = {};
15
+ Object.keys(updates).forEach(function (propName) {
16
+ let rawValue = updates[propName];
17
+ if (rawValue !== null && rawValue !== undefined) {
18
+ safeUpdates[propName] = rawValue;
19
+ }
20
+ });
21
+ formGroup.patchValue(safeUpdates);
22
+ }
23
+ /**
24
+ * Get an id for the form controls input
25
+ */
26
+ getInputId(id) {
27
+ return id + '_input';
28
+ }
29
+ /**
30
+ * Takes in a control and returns a function that sets the control's required validator based on
31
+ * whether the value provided is empty or not. Adds the required validator if the value provided is
32
+ * not empty, otherwise removes the required validator. Useful for dynamically setting the requiredness
33
+ * of a control based on whether another control has a value or not.
34
+ *
35
+ * @param control
36
+ * @param keepValidators - Array of Validators to leave configured on the control. Any existing
37
+ * validators on the control will be lost if this is left empty.
38
+ * @param isZeroEmpty - If true, a numeric zero will be considered an empty value. Default is false.
39
+ */
40
+ setRequiredFn(control, keepValidators = [], isZeroEmpty = false) {
41
+ return (value) => {
42
+ let validators = [...keepValidators];
43
+ // If the value is not empty, add the required validator.
44
+ if (value || (!isZeroEmpty ? value === 0 : false)) {
45
+ validators.push(Validators.required);
46
+ }
47
+ if (validators.length > 0) {
48
+ control.setValidators(validators);
49
+ }
50
+ else {
51
+ control.clearValidators();
52
+ }
53
+ // Recalculating the value is required when changing the validators, otherwise
54
+ // the validator won't take effect until the value is changed in the control.
55
+ control.updateValueAndValidity({ emitEvent: false });
56
+ };
57
+ }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormGroupHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
59
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormGroupHelper, providedIn: 'root' }); }
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormGroupHelper, decorators: [{
62
+ type: Injectable,
63
+ args: [{
64
+ providedIn: 'root'
65
+ }]
66
+ }] });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2Zvcm0tZ3JvdXAuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFrRCxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFNUY7O0dBRUc7QUFJSCxNQUFNLE9BQU8sZUFBZTtJQUV4Qjs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUMsU0FBMkIsRUFBRSxPQUFZO1FBQzdELElBQUksV0FBVyxHQUF5QixFQUFFLENBQUM7UUFDM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxRQUFRO1lBQzNDLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVqQyxJQUFHLFFBQVEsS0FBSyxJQUFJLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBQyxDQUFDO2dCQUM1QyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDO1lBQ3JDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEVBQVU7UUFDeEIsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksYUFBYSxDQUFDLE9BQXdCLEVBQUUsaUJBQWdDLEVBQUUsRUFBRSxjQUF1QixLQUFLO1FBQzNHLE9BQU8sQ0FBQyxLQUE4QixFQUFFLEVBQUU7WUFDdEMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDO1lBRXJDLHlEQUF5RDtZQUN6RCxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNoRCxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBRUQsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN4QixPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDOUIsQ0FBQztZQUNELDhFQUE4RTtZQUM5RSw2RUFBNkU7WUFDN0UsT0FBTyxDQUFDLHNCQUFzQixDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFBO0lBQ0wsQ0FBQzsrR0F2RFEsZUFBZTttSEFBZixlQUFlLGNBRlosTUFBTTs7NEZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKipcclxuICogSGVscGVyIGZvciBGb3JtIEdyb3Vwc1xyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtR3JvdXBIZWxwZXIge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbCBwYXRjaFZhbHVlIG9uIHRoZSBmb3JtR3JvdXAgd2l0aCBvbmx5IHRoZSBwcm9wZXJ0aWVzXHJcbiAgICAgKiB0aGF0IGFjdHVhbGx5IGhhdmUgdmFsdWVzIGluIHVwZGF0ZXMuIFRoaXMgbWV0aG9kIHdpbGwgaWdub3JlXHJcbiAgICAgKiBhbnkgdmFsdWUgdGhhdCBpcyBlaXRoZXIgbnVsbCBvciB1bmRlZmluZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBhdGNoVmFsdWVTYWZlbHkoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwLCB1cGRhdGVzOiBhbnkpe1xyXG4gICAgICAgIGxldCBzYWZlVXBkYXRlczogeyBbazogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVzKS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wTmFtZSkge1xyXG4gICAgICAgICAgICBsZXQgcmF3VmFsdWUgPSB1cGRhdGVzW3Byb3BOYW1lXTtcclxuXHJcbiAgICAgICAgICAgIGlmKHJhd1ZhbHVlICE9PSBudWxsICYmIHJhd1ZhbHVlICE9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAgICAgc2FmZVVwZGF0ZXNbcHJvcE5hbWVdID0gcmF3VmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBmb3JtR3JvdXAucGF0Y2hWYWx1ZShzYWZlVXBkYXRlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgYW4gaWQgZm9yIHRoZSBmb3JtIGNvbnRyb2xzIGlucHV0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRJbnB1dElkKGlkOiBzdHJpbmcpOnN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGlkICsgJ19pbnB1dCc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUYWtlcyBpbiBhIGNvbnRyb2wgYW5kIHJldHVybnMgYSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGNvbnRyb2wncyByZXF1aXJlZCB2YWxpZGF0b3IgYmFzZWQgb25cclxuICAgICAqIHdoZXRoZXIgdGhlIHZhbHVlIHByb3ZpZGVkIGlzIGVtcHR5IG9yIG5vdC4gQWRkcyB0aGUgcmVxdWlyZWQgdmFsaWRhdG9yIGlmIHRoZSB2YWx1ZSBwcm92aWRlZCBpc1xyXG4gICAgICogbm90IGVtcHR5LCBvdGhlcndpc2UgcmVtb3ZlcyB0aGUgcmVxdWlyZWQgdmFsaWRhdG9yLiBVc2VmdWwgZm9yIGR5bmFtaWNhbGx5IHNldHRpbmcgdGhlIHJlcXVpcmVkbmVzc1xyXG4gICAgICogb2YgYSBjb250cm9sIGJhc2VkIG9uIHdoZXRoZXIgYW5vdGhlciBjb250cm9sIGhhcyBhIHZhbHVlIG9yIG5vdC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xcclxuICAgICAqIEBwYXJhbSBrZWVwVmFsaWRhdG9ycyAtIEFycmF5IG9mIFZhbGlkYXRvcnMgdG8gbGVhdmUgY29uZmlndXJlZCBvbiB0aGUgY29udHJvbC4gQW55IGV4aXN0aW5nXHJcbiAgICAgKiB2YWxpZGF0b3JzIG9uIHRoZSBjb250cm9sIHdpbGwgYmUgbG9zdCBpZiB0aGlzIGlzIGxlZnQgZW1wdHkuXHJcbiAgICAgKiBAcGFyYW0gaXNaZXJvRW1wdHkgLSBJZiB0cnVlLCBhIG51bWVyaWMgemVybyB3aWxsIGJlIGNvbnNpZGVyZWQgYW4gZW1wdHkgdmFsdWUuIERlZmF1bHQgaXMgZmFsc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRSZXF1aXJlZEZuKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwga2VlcFZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXSwgaXNaZXJvRW1wdHk6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiAodmFsdWU/OiBudW1iZXIgfCBzdHJpbmcgfCBudWxsKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCB2YWxpZGF0b3JzID0gWy4uLmtlZXBWYWxpZGF0b3JzXTtcclxuXHJcbiAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBub3QgZW1wdHksIGFkZCB0aGUgcmVxdWlyZWQgdmFsaWRhdG9yLlxyXG4gICAgICAgICAgICBpZiAodmFsdWUgfHwgKCFpc1plcm9FbXB0eSA/IHZhbHVlID09PSAwIDogZmFsc2UpKSB7XHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh2YWxpZGF0b3JzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gUmVjYWxjdWxhdGluZyB0aGUgdmFsdWUgaXMgcmVxdWlyZWQgd2hlbiBjaGFuZ2luZyB0aGUgdmFsaWRhdG9ycywgb3RoZXJ3aXNlXHJcbiAgICAgICAgICAgIC8vIHRoZSB2YWxpZGF0b3Igd29uJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIHZhbHVlIGlzIGNoYW5nZWQgaW4gdGhlIGNvbnRyb2wuXHJcbiAgICAgICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,19 @@
1
+ export class JsonHelper {
2
+ /**
3
+ * Parse given JSON text into an object.
4
+ * Returns undefined if text cannot be parsed as JSON.
5
+ */
6
+ static tryParseJSON(text) {
7
+ if (!text) {
8
+ return undefined;
9
+ }
10
+ try {
11
+ const result = JSON.parse(text);
12
+ return result;
13
+ }
14
+ catch (err) {
15
+ return undefined;
16
+ }
17
+ }
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2pzb24taGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBRXJCOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBK0I7UUFDeEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEpzb25IZWxwZXIge1xyXG5cclxuICAvKipcclxuICAgKiBQYXJzZSBnaXZlbiBKU09OIHRleHQgaW50byBhbiBvYmplY3QuXHJcbiAgICogUmV0dXJucyB1bmRlZmluZWQgaWYgdGV4dCBjYW5ub3QgYmUgcGFyc2VkIGFzIEpTT04uXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyB0cnlQYXJzZUpTT04odGV4dDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHVua25vd24gfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKCF0ZXh0KSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZSh0ZXh0KTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==