@pega/angular-sdk-components 0.23.1

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 (300) hide show
  1. package/README.md +24 -0
  2. package/_shared/styles.scss +28 -0
  3. package/esm2022/lib/_bridge/angular-pconnect.mjs +416 -0
  4. package/esm2022/lib/_bridge/component-mapper/component-mapper.component.mjs +114 -0
  5. package/esm2022/lib/_bridge/helpers/sdk-pega-component-map.mjs +228 -0
  6. package/esm2022/lib/_bridge/helpers/sdk_component_map.mjs +142 -0
  7. package/esm2022/lib/_components/designSystemExtension/alert/alert.component.mjs +50 -0
  8. package/esm2022/lib/_components/designSystemExtension/alert-banner/alert-banner.component.mjs +29 -0
  9. package/esm2022/lib/_components/designSystemExtension/banner/banner.component.mjs +31 -0
  10. package/esm2022/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.mjs +51 -0
  11. package/esm2022/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.mjs +80 -0
  12. package/esm2022/lib/_components/designSystemExtension/material-details/material-details.component.mjs +37 -0
  13. package/esm2022/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.mjs +31 -0
  14. package/esm2022/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.mjs +36 -0
  15. package/esm2022/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.mjs +25 -0
  16. package/esm2022/lib/_components/designSystemExtension/material-utility/material-utility.component.mjs +28 -0
  17. package/esm2022/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.mjs +42 -0
  18. package/esm2022/lib/_components/designSystemExtension/operator/operator.component.mjs +136 -0
  19. package/esm2022/lib/_components/designSystemExtension/pulse/pulse.component.mjs +33 -0
  20. package/esm2022/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.mjs +93 -0
  21. package/esm2022/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.mjs +18 -0
  22. package/esm2022/lib/_components/field/auto-complete/auto-complete.component.mjs +286 -0
  23. package/esm2022/lib/_components/field/cancel-alert/cancel-alert.component.mjs +98 -0
  24. package/esm2022/lib/_components/field/check-box/check-box.component.mjs +157 -0
  25. package/esm2022/lib/_components/field/currency/currency.component.mjs +160 -0
  26. package/esm2022/lib/_components/field/date/date.component.mjs +219 -0
  27. package/esm2022/lib/_components/field/date-time/date-time.component.mjs +200 -0
  28. package/esm2022/lib/_components/field/decimal/decimal.component.mjs +157 -0
  29. package/esm2022/lib/_components/field/dropdown/dropdown.component.mjs +197 -0
  30. package/esm2022/lib/_components/field/email/email.component.mjs +150 -0
  31. package/esm2022/lib/_components/field/integer/integer.component.mjs +155 -0
  32. package/esm2022/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.mjs +44 -0
  33. package/esm2022/lib/_components/field/percentage/percentage.component.mjs +155 -0
  34. package/esm2022/lib/_components/field/phone/phone.component.mjs +167 -0
  35. package/esm2022/lib/_components/field/radio-buttons/radio-buttons.component.mjs +189 -0
  36. package/esm2022/lib/_components/field/rich-text/rich-text.component.mjs +103 -0
  37. package/esm2022/lib/_components/field/scalar-list/scalar-list.component.mjs +95 -0
  38. package/esm2022/lib/_components/field/semantic-link/semantic-link.component.mjs +57 -0
  39. package/esm2022/lib/_components/field/text/text.component.mjs +138 -0
  40. package/esm2022/lib/_components/field/text-area/text-area.component.mjs +155 -0
  41. package/esm2022/lib/_components/field/text-content/text-content.component.mjs +69 -0
  42. package/esm2022/lib/_components/field/text-input/text-input.component.mjs +152 -0
  43. package/esm2022/lib/_components/field/time/time.component.mjs +151 -0
  44. package/esm2022/lib/_components/field/url/url.component.mjs +150 -0
  45. package/esm2022/lib/_components/field/user-reference/user-reference.component.mjs +175 -0
  46. package/esm2022/lib/_components/infra/Containers/flow-container/flow-container.component.mjs +491 -0
  47. package/esm2022/lib/_components/infra/Containers/flow-container/helpers.mjs +68 -0
  48. package/esm2022/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.mjs +24 -0
  49. package/esm2022/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.mjs +314 -0
  50. package/esm2022/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.mjs +32 -0
  51. package/esm2022/lib/_components/infra/Containers/view-container/view-container.component.mjs +219 -0
  52. package/esm2022/lib/_components/infra/action-buttons/action-buttons.component.mjs +31 -0
  53. package/esm2022/lib/_components/infra/assignment/assignment.component.mjs +387 -0
  54. package/esm2022/lib/_components/infra/assignment-card/assignment-card.component.mjs +47 -0
  55. package/esm2022/lib/_components/infra/dashboard-filter/dashboard-filter.component.mjs +88 -0
  56. package/esm2022/lib/_components/infra/defer-load/defer-load.component.mjs +144 -0
  57. package/esm2022/lib/_components/infra/error-boundary/error-boundary.component.mjs +18 -0
  58. package/esm2022/lib/_components/infra/multi-step/multi-step.component.mjs +80 -0
  59. package/esm2022/lib/_components/infra/navbar/navbar.component.mjs +132 -0
  60. package/esm2022/lib/_components/infra/reference/reference.component.mjs +133 -0
  61. package/esm2022/lib/_components/infra/region/region.component.mjs +33 -0
  62. package/esm2022/lib/_components/infra/root-container/root-container.component.mjs +228 -0
  63. package/esm2022/lib/_components/infra/stages/stages.component.mjs +62 -0
  64. package/esm2022/lib/_components/infra/view/view.component.mjs +173 -0
  65. package/esm2022/lib/_components/template/app-shell/app-shell.component.mjs +140 -0
  66. package/esm2022/lib/_components/template/banner-page/banner-page.component.mjs +43 -0
  67. package/esm2022/lib/_components/template/case-summary/case-summary.component.mjs +72 -0
  68. package/esm2022/lib/_components/template/case-view/case-view.component.mjs +196 -0
  69. package/esm2022/lib/_components/template/confirmation/confirmation.component.mjs +68 -0
  70. package/esm2022/lib/_components/template/data-reference/data-reference.component.mjs +239 -0
  71. package/esm2022/lib/_components/template/default-form/default-form.component.mjs +61 -0
  72. package/esm2022/lib/_components/template/details/details.component.mjs +102 -0
  73. package/esm2022/lib/_components/template/details-narrow-wide/details-narrow-wide.component.mjs +72 -0
  74. package/esm2022/lib/_components/template/details-one-column/details-one-column.component.mjs +71 -0
  75. package/esm2022/lib/_components/template/details-sub-tabs/details-sub-tabs.component.mjs +66 -0
  76. package/esm2022/lib/_components/template/details-three-column/details-three-column.component.mjs +80 -0
  77. package/esm2022/lib/_components/template/details-two-column/details-two-column.component.mjs +77 -0
  78. package/esm2022/lib/_components/template/details-wide-narrow/details-wide-narrow.component.mjs +77 -0
  79. package/esm2022/lib/_components/template/dynamic-tabs/dynamic-tabs.component.mjs +65 -0
  80. package/esm2022/lib/_components/template/field-group-list/field-group-list.component.mjs +23 -0
  81. package/esm2022/lib/_components/template/field-group-template/field-group-template.component.mjs +134 -0
  82. package/esm2022/lib/_components/template/field-value-list/field-value-list.component.mjs +19 -0
  83. package/esm2022/lib/_components/template/inline-dashboard/inline-dashboard.component.mjs +22 -0
  84. package/esm2022/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.mjs +40 -0
  85. package/esm2022/lib/_components/template/list-page/list-page.component.mjs +14 -0
  86. package/esm2022/lib/_components/template/list-view/DefaultViewMeta.mjs +208 -0
  87. package/esm2022/lib/_components/template/list-view/list-view.component.mjs +1198 -0
  88. package/esm2022/lib/_components/template/list-view/listViewHelpers.mjs +61 -0
  89. package/esm2022/lib/_components/template/list-view/utils.mjs +660 -0
  90. package/esm2022/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.mjs +44 -0
  91. package/esm2022/lib/_components/template/narrow-wide-form/narrow-wide-form.component.mjs +30 -0
  92. package/esm2022/lib/_components/template/one-column/one-column.component.mjs +30 -0
  93. package/esm2022/lib/_components/template/one-column-page/one-column-page.component.mjs +16 -0
  94. package/esm2022/lib/_components/template/one-column-tab/one-column-tab.component.mjs +30 -0
  95. package/esm2022/lib/_components/template/page/page.component.mjs +52 -0
  96. package/esm2022/lib/_components/template/promoted-filters/promoted-filters.component.mjs +149 -0
  97. package/esm2022/lib/_components/template/repeating-structures/repeating-structures.component.mjs +139 -0
  98. package/esm2022/lib/_components/template/simple-table/simple-table.component.mjs +106 -0
  99. package/esm2022/lib/_components/template/simple-table-manual/helpers.mjs +270 -0
  100. package/esm2022/lib/_components/template/simple-table-manual/simple-table-manual.component.mjs +760 -0
  101. package/esm2022/lib/_components/template/simple-table-select/simple-table-select.component.mjs +131 -0
  102. package/esm2022/lib/_components/template/single-reference-readonly/single-reference-readonly.component.mjs +16 -0
  103. package/esm2022/lib/_components/template/sub-tabs/sub-tabs.component.mjs +67 -0
  104. package/esm2022/lib/_components/template/three-column/three-column.component.mjs +30 -0
  105. package/esm2022/lib/_components/template/three-column-page/three-column-page.component.mjs +16 -0
  106. package/esm2022/lib/_components/template/two-column/two-column.component.mjs +30 -0
  107. package/esm2022/lib/_components/template/two-column-page/two-column-page.component.mjs +40 -0
  108. package/esm2022/lib/_components/template/two-column-tab/two-column-tab.component.mjs +30 -0
  109. package/esm2022/lib/_components/template/utils.mjs +22 -0
  110. package/esm2022/lib/_components/template/wide-narrow-form/wide-narrow-form.component.mjs +30 -0
  111. package/esm2022/lib/_components/template/wide-narrow-page/wide-narrow-page.component.mjs +53 -0
  112. package/esm2022/lib/_components/template/wss-nav-bar/wss-nav-bar.component.mjs +135 -0
  113. package/esm2022/lib/_components/widget/app-announcement/app-announcement.component.mjs +24 -0
  114. package/esm2022/lib/_components/widget/attachment/attachment.component.mjs +588 -0
  115. package/esm2022/lib/_components/widget/case-history/case-history.component.mjs +81 -0
  116. package/esm2022/lib/_components/widget/feed-container/feed-container.component.mjs +525 -0
  117. package/esm2022/lib/_components/widget/file-utility/file-utility.component.mjs +631 -0
  118. package/esm2022/lib/_components/widget/list-utility/list-utility.component.mjs +57 -0
  119. package/esm2022/lib/_components/widget/quick-create/quick-create.component.mjs +75 -0
  120. package/esm2022/lib/_components/widget/todo/todo.component.mjs +213 -0
  121. package/esm2022/lib/_components/widget/utility/utility.component.mjs +34 -0
  122. package/esm2022/lib/_directives/thousand-seperator.directive.mjs +28 -0
  123. package/esm2022/lib/_helpers/case-utils.mjs +71 -0
  124. package/esm2022/lib/_helpers/common.mjs +20 -0
  125. package/esm2022/lib/_helpers/currency-utils.mjs +57 -0
  126. package/esm2022/lib/_helpers/date-format-utils.mjs +68 -0
  127. package/esm2022/lib/_helpers/event-util.mjs +19 -0
  128. package/esm2022/lib/_helpers/field-group-utils.mjs +47 -0
  129. package/esm2022/lib/_helpers/filter-utils.mjs +106 -0
  130. package/esm2022/lib/_helpers/formatters/currency-map.mjs +903 -0
  131. package/esm2022/lib/_helpers/formatters/format-utils.mjs +68 -0
  132. package/esm2022/lib/_helpers/tab-utils.mjs +59 -0
  133. package/esm2022/lib/_helpers/template-utils.mjs +56 -0
  134. package/esm2022/lib/_helpers/utils.mjs +386 -0
  135. package/esm2022/lib/_helpers/versionHelpers.mjs +12 -0
  136. package/esm2022/lib/_messages/error-messages.service.mjs +31 -0
  137. package/esm2022/lib/_messages/get-login-status.service.mjs +26 -0
  138. package/esm2022/lib/_messages/oauth-response.service.mjs +30 -0
  139. package/esm2022/lib/_messages/progress-spinner.service.mjs +30 -0
  140. package/esm2022/lib/_messages/reset-pconnect.service.mjs +31 -0
  141. package/esm2022/lib/_messages/update-worklist.service.mjs +30 -0
  142. package/esm2022/lib/_services/case.service.mjs +32 -0
  143. package/esm2022/lib/_services/datapage.service.mjs +52 -0
  144. package/esm2022/lib/_services/endpoints.mjs +61 -0
  145. package/esm2022/lib/_services/server-config.service.mjs +52 -0
  146. package/esm2022/lib/_types/PConnProps.interface.mjs +2 -0
  147. package/esm2022/pega-angular-sdk-components.mjs +5 -0
  148. package/esm2022/public-api.mjs +138 -0
  149. package/esm2022/sdk-local-component-map.mjs +9 -0
  150. package/fesm2022/pega-angular-sdk-components.mjs +17380 -0
  151. package/fesm2022/pega-angular-sdk-components.mjs.map +1 -0
  152. package/index.d.ts +5 -0
  153. package/lib/_bridge/angular-pconnect.d.ts +140 -0
  154. package/lib/_bridge/component-mapper/component-mapper.component.d.ts +20 -0
  155. package/lib/_bridge/helpers/sdk-pega-component-map.d.ts +213 -0
  156. package/lib/_bridge/helpers/sdk_component_map.d.ts +3 -0
  157. package/lib/_components/designSystemExtension/alert/alert.component.d.ts +12 -0
  158. package/lib/_components/designSystemExtension/alert-banner/alert-banner.component.d.ts +13 -0
  159. package/lib/_components/designSystemExtension/banner/banner.component.d.ts +15 -0
  160. package/lib/_components/designSystemExtension/case-create-stage/case-create-stage.component.d.ts +20 -0
  161. package/lib/_components/designSystemExtension/material-case-summary/material-case-summary.component.d.ts +18 -0
  162. package/lib/_components/designSystemExtension/material-details/material-details.component.d.ts +15 -0
  163. package/lib/_components/designSystemExtension/material-details-fields/material-details-fields.component.d.ts +12 -0
  164. package/lib/_components/designSystemExtension/material-summary-item/material-summary-item.component.d.ts +15 -0
  165. package/lib/_components/designSystemExtension/material-summary-list/material-summary-list.component.d.ts +9 -0
  166. package/lib/_components/designSystemExtension/material-utility/material-utility.component.d.ts +16 -0
  167. package/lib/_components/designSystemExtension/material-vertical-tabs/material-vertical-tabs.component.d.ts +11 -0
  168. package/lib/_components/designSystemExtension/operator/operator.component.d.ts +25 -0
  169. package/lib/_components/designSystemExtension/pulse/pulse.component.d.ts +16 -0
  170. package/lib/_components/designSystemExtension/rich-text-editor/rich-text-editor.component.d.ts +23 -0
  171. package/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.d.ts +7 -0
  172. package/lib/_components/field/auto-complete/auto-complete.component.d.ts +74 -0
  173. package/lib/_components/field/cancel-alert/cancel-alert.component.d.ts +24 -0
  174. package/lib/_components/field/check-box/check-box.component.d.ts +48 -0
  175. package/lib/_components/field/currency/currency.component.d.ts +50 -0
  176. package/lib/_components/field/date/date.component.d.ts +65 -0
  177. package/lib/_components/field/date-time/date-time.component.d.ts +55 -0
  178. package/lib/_components/field/decimal/decimal.component.d.ts +46 -0
  179. package/lib/_components/field/dropdown/dropdown.component.d.ts +60 -0
  180. package/lib/_components/field/email/email.component.d.ts +44 -0
  181. package/lib/_components/field/integer/integer.component.d.ts +44 -0
  182. package/lib/_components/field/list-view-action-buttons/list-view-action-buttons.component.d.ts +15 -0
  183. package/lib/_components/field/percentage/percentage.component.d.ts +44 -0
  184. package/lib/_components/field/phone/phone.component.d.ts +48 -0
  185. package/lib/_components/field/radio-buttons/radio-buttons.component.d.ts +60 -0
  186. package/lib/_components/field/rich-text/rich-text.component.d.ts +42 -0
  187. package/lib/_components/field/scalar-list/scalar-list.component.d.ts +37 -0
  188. package/lib/_components/field/semantic-link/semantic-link.component.d.ts +30 -0
  189. package/lib/_components/field/text/text.component.d.ts +40 -0
  190. package/lib/_components/field/text-area/text-area.component.d.ts +45 -0
  191. package/lib/_components/field/text-content/text-content.component.d.ts +30 -0
  192. package/lib/_components/field/text-input/text-input.component.d.ts +45 -0
  193. package/lib/_components/field/time/time.component.d.ts +43 -0
  194. package/lib/_components/field/url/url.component.d.ts +43 -0
  195. package/lib/_components/field/user-reference/user-reference.component.d.ts +39 -0
  196. package/lib/_components/infra/Containers/flow-container/flow-container.component.d.ts +85 -0
  197. package/lib/_components/infra/Containers/flow-container/helpers.d.ts +2 -0
  198. package/lib/_components/infra/Containers/hybrid-view-container/hybrid-view-container.component.d.ts +15 -0
  199. package/lib/_components/infra/Containers/modal-view-container/modal-view-container.component.d.ts +71 -0
  200. package/lib/_components/infra/Containers/preview-view-container/preview-view-container.component.d.ts +15 -0
  201. package/lib/_components/infra/Containers/view-container/view-container.component.d.ts +51 -0
  202. package/lib/_components/infra/action-buttons/action-buttons.component.d.ts +12 -0
  203. package/lib/_components/infra/assignment/assignment.component.d.ts +72 -0
  204. package/lib/_components/infra/assignment-card/assignment-card.component.d.ts +18 -0
  205. package/lib/_components/infra/dashboard-filter/dashboard-filter.component.d.ts +20 -0
  206. package/lib/_components/infra/defer-load/defer-load.component.d.ts +46 -0
  207. package/lib/_components/infra/error-boundary/error-boundary.component.d.ts +8 -0
  208. package/lib/_components/infra/multi-step/multi-step.component.d.ts +31 -0
  209. package/lib/_components/infra/navbar/navbar.component.d.ts +51 -0
  210. package/lib/_components/infra/reference/reference.component.d.ts +16 -0
  211. package/lib/_components/infra/region/region.component.d.ts +14 -0
  212. package/lib/_components/infra/root-container/root-container.component.d.ts +35 -0
  213. package/lib/_components/infra/stages/stages.component.d.ts +29 -0
  214. package/lib/_components/infra/view/view.component.d.ts +40 -0
  215. package/lib/_components/template/app-shell/app-shell.component.d.ts +55 -0
  216. package/lib/_components/template/banner-page/banner-page.component.d.ts +27 -0
  217. package/lib/_components/template/case-summary/case-summary.component.d.ts +34 -0
  218. package/lib/_components/template/case-view/case-view.component.d.ts +56 -0
  219. package/lib/_components/template/confirmation/confirmation.component.d.ts +38 -0
  220. package/lib/_components/template/data-reference/data-reference.component.d.ts +41 -0
  221. package/lib/_components/template/default-form/default-form.component.d.ts +21 -0
  222. package/lib/_components/template/details/details.component.d.ts +20 -0
  223. package/lib/_components/template/details-narrow-wide/details-narrow-wide.component.d.ts +21 -0
  224. package/lib/_components/template/details-one-column/details-one-column.component.d.ts +22 -0
  225. package/lib/_components/template/details-sub-tabs/details-sub-tabs.component.d.ts +24 -0
  226. package/lib/_components/template/details-three-column/details-three-column.component.d.ts +25 -0
  227. package/lib/_components/template/details-two-column/details-two-column.component.d.ts +25 -0
  228. package/lib/_components/template/details-wide-narrow/details-wide-narrow.component.d.ts +24 -0
  229. package/lib/_components/template/dynamic-tabs/dynamic-tabs.component.d.ts +20 -0
  230. package/lib/_components/template/field-group-list/field-group-list.component.d.ts +9 -0
  231. package/lib/_components/template/field-group-template/field-group-template.component.d.ts +52 -0
  232. package/lib/_components/template/field-value-list/field-value-list.component.d.ts +8 -0
  233. package/lib/_components/template/inline-dashboard/inline-dashboard.component.d.ts +16 -0
  234. package/lib/_components/template/inline-dashboard-page/inline-dashboard-page.component.d.ts +25 -0
  235. package/lib/_components/template/list-page/list-page.component.d.ts +7 -0
  236. package/lib/_components/template/list-view/DefaultViewMeta.d.ts +1 -0
  237. package/lib/_components/template/list-view/list-view.component.d.ts +157 -0
  238. package/lib/_components/template/list-view/listViewHelpers.d.ts +1 -0
  239. package/lib/_components/template/list-view/utils.d.ts +118 -0
  240. package/lib/_components/template/multi-reference-readonly/multi-reference-readonly.component.d.ts +25 -0
  241. package/lib/_components/template/narrow-wide-form/narrow-wide-form.component.d.ts +14 -0
  242. package/lib/_components/template/one-column/one-column.component.d.ts +14 -0
  243. package/lib/_components/template/one-column-page/one-column-page.component.d.ts +9 -0
  244. package/lib/_components/template/one-column-tab/one-column-tab.component.d.ts +14 -0
  245. package/lib/_components/template/page/page.component.d.ts +25 -0
  246. package/lib/_components/template/promoted-filters/promoted-filters.component.d.ts +35 -0
  247. package/lib/_components/template/repeating-structures/repeating-structures.component.d.ts +37 -0
  248. package/lib/_components/template/simple-table/simple-table.component.d.ts +43 -0
  249. package/lib/_components/template/simple-table-manual/helpers.d.ts +81 -0
  250. package/lib/_components/template/simple-table-manual/simple-table-manual.component.d.ts +159 -0
  251. package/lib/_components/template/simple-table-select/simple-table-select.component.d.ts +32 -0
  252. package/lib/_components/template/single-reference-readonly/single-reference-readonly.component.d.ts +9 -0
  253. package/lib/_components/template/sub-tabs/sub-tabs.component.d.ts +26 -0
  254. package/lib/_components/template/three-column/three-column.component.d.ts +14 -0
  255. package/lib/_components/template/three-column-page/three-column-page.component.d.ts +9 -0
  256. package/lib/_components/template/two-column/two-column.component.d.ts +14 -0
  257. package/lib/_components/template/two-column-page/two-column-page.component.d.ts +17 -0
  258. package/lib/_components/template/two-column-tab/two-column-tab.component.d.ts +14 -0
  259. package/lib/_components/template/utils.d.ts +2 -0
  260. package/lib/_components/template/wide-narrow-form/wide-narrow-form.component.d.ts +14 -0
  261. package/lib/_components/template/wide-narrow-page/wide-narrow-page.component.d.ts +20 -0
  262. package/lib/_components/template/wss-nav-bar/wss-nav-bar.component.d.ts +50 -0
  263. package/lib/_components/widget/app-announcement/app-announcement.component.d.ts +19 -0
  264. package/lib/_components/widget/attachment/attachment.component.d.ts +99 -0
  265. package/lib/_components/widget/case-history/case-history.component.d.ts +24 -0
  266. package/lib/_components/widget/feed-container/feed-container.component.d.ts +49 -0
  267. package/lib/_components/widget/file-utility/file-utility.component.d.ts +150 -0
  268. package/lib/_components/widget/list-utility/list-utility.component.d.ts +23 -0
  269. package/lib/_components/widget/quick-create/quick-create.component.d.ts +29 -0
  270. package/lib/_components/widget/todo/todo.component.d.ts +64 -0
  271. package/lib/_components/widget/utility/utility.component.d.ts +25 -0
  272. package/lib/_directives/thousand-seperator.directive.d.ts +9 -0
  273. package/lib/_helpers/case-utils.d.ts +19 -0
  274. package/lib/_helpers/common.d.ts +3 -0
  275. package/lib/_helpers/currency-utils.d.ts +10 -0
  276. package/lib/_helpers/date-format-utils.d.ts +12 -0
  277. package/lib/_helpers/event-util.d.ts +2 -0
  278. package/lib/_helpers/field-group-utils.d.ts +16 -0
  279. package/lib/_helpers/filter-utils.d.ts +46 -0
  280. package/lib/_helpers/formatters/currency-map.d.ts +1132 -0
  281. package/lib/_helpers/formatters/format-utils.d.ts +8 -0
  282. package/lib/_helpers/tab-utils.d.ts +4 -0
  283. package/lib/_helpers/template-utils.d.ts +16 -0
  284. package/lib/_helpers/utils.d.ts +32 -0
  285. package/lib/_helpers/versionHelpers.d.ts +8 -0
  286. package/lib/_messages/error-messages.service.d.ts +15 -0
  287. package/lib/_messages/get-login-status.service.d.ts +10 -0
  288. package/lib/_messages/oauth-response.service.d.ts +14 -0
  289. package/lib/_messages/progress-spinner.service.d.ts +14 -0
  290. package/lib/_messages/reset-pconnect.service.d.ts +15 -0
  291. package/lib/_messages/update-worklist.service.d.ts +14 -0
  292. package/lib/_services/case.service.d.ts +12 -0
  293. package/lib/_services/datapage.service.d.ts +14 -0
  294. package/lib/_services/endpoints.d.ts +39 -0
  295. package/lib/_services/server-config.service.d.ts +31 -0
  296. package/lib/_types/PConnProps.interface.d.ts +17 -0
  297. package/package.json +28 -0
  298. package/public-api.d.ts +133 -0
  299. package/sdk-local-component-map.d.ts +2 -0
  300. package/sdk-local-component-map.ts +12 -0
@@ -0,0 +1,386 @@
1
+ import { Injectable } from '@angular/core';
2
+ import dayjs from 'dayjs';
3
+ import customParseFormat from 'dayjs/plugin/customParseFormat';
4
+ import localizedFormat from 'dayjs/plugin/localizedFormat';
5
+ import relativeTime from 'dayjs/plugin/relativeTime';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../_services/server-config.service";
8
+ dayjs.extend(customParseFormat);
9
+ dayjs.extend(localizedFormat);
10
+ dayjs.extend(relativeTime);
11
+ export class Utils {
12
+ constructor(scService) {
13
+ this.scService = scService;
14
+ this.lastControlID = 0;
15
+ this.viewContainerCount = 0;
16
+ this.getUserId = user => {
17
+ let userId = '';
18
+ if (typeof user === 'object' && user !== null && user.userId) {
19
+ userId = user.userId;
20
+ }
21
+ else if (typeof user === 'string' && user) {
22
+ userId = user;
23
+ }
24
+ return userId;
25
+ };
26
+ }
27
+ getSDKStaticContentUrl() {
28
+ const sdkConfigServer = this.scService.getSdkConfigServer();
29
+ // NOTE: Needs a trailing slash! So add one if not provided
30
+ if (!sdkConfigServer.sdkContentServerUrl.endsWith('/')) {
31
+ sdkConfigServer.sdkContentServerUrl = `${sdkConfigServer.sdkContentServerUrl}/`;
32
+ }
33
+ return `${sdkConfigServer.sdkContentServerUrl}constellation/`;
34
+ }
35
+ consoleKidDump(pConn, level = 1, kidNum = 1) {
36
+ let sDash = '';
37
+ for (let i = 0; i < level; i++) {
38
+ sDash = sDash.concat('-');
39
+ }
40
+ let cName = 'blank';
41
+ let ctxName = '';
42
+ try {
43
+ cName = pConn.getComponentName();
44
+ ctxName = pConn.getContextName();
45
+ console.log(`${sDash}level ${level} component(${kidNum}):${cName} context:${ctxName}`);
46
+ if (pConn.getConfigProps() != null) {
47
+ console.log(`${sDash}configProps:${JSON.stringify(pConn.getConfigProps())}`);
48
+ }
49
+ if (pConn.getRawMetadata() != null) {
50
+ console.log(`${sDash}rawMetadata:${JSON.stringify(pConn.getRawMetadata())}`);
51
+ }
52
+ if (pConn.hasChildren() && pConn.getChildren() != null) {
53
+ console.log(`${sDash}kidCount:${pConn.getChildren().length}`);
54
+ const kids = pConn.getChildren();
55
+ const kidsKeys = Object.keys(kids);
56
+ for (let i = 0, len = kidsKeys.length; i < len; i++) {
57
+ const index = parseInt(kidsKeys[i], 10) + 1;
58
+ const kid = kids[kidsKeys[i]];
59
+ this.consoleKidDump(kid.getPConnect(), level + 1, index);
60
+ }
61
+ }
62
+ }
63
+ catch (ex) {
64
+ /* empty */
65
+ }
66
+ }
67
+ htmlDecode(sVal) {
68
+ const doc = new DOMParser().parseFromString(sVal, 'text/html');
69
+ return doc.documentElement.textContent;
70
+ }
71
+ getUniqueControlID() {
72
+ const sPrefix = 'control-';
73
+ this.lastControlID++;
74
+ return sPrefix + this.lastControlID.toString();
75
+ }
76
+ getOptionList(configProps, dataObject) {
77
+ const listType = configProps.listType;
78
+ if (listType == null) {
79
+ return [];
80
+ }
81
+ switch (listType.toLowerCase()) {
82
+ case 'associated':
83
+ return this.handleAssociatedList(configProps);
84
+ case 'datapage':
85
+ return this.handleDataPageList(configProps, dataObject);
86
+ default:
87
+ return [];
88
+ }
89
+ }
90
+ handleAssociatedList(configProps) {
91
+ const dataSource = configProps.datasource;
92
+ if (Array.isArray(dataSource)) {
93
+ return dataSource;
94
+ }
95
+ return [];
96
+ }
97
+ handleDataPageList(configProps, dataObject) {
98
+ const dataPage = configProps.datasource;
99
+ if (dataObject[dataPage]) {
100
+ alert('need to handle data page');
101
+ return [];
102
+ }
103
+ let listSourceItems = configProps.listOutput;
104
+ if (typeof dataPage === 'object' && !Array.isArray(listSourceItems)) {
105
+ listSourceItems = dataPage.source ? dataPage.source : [];
106
+ }
107
+ return this.transformListSourceItems(listSourceItems);
108
+ }
109
+ transformListSourceItems(listSourceItems) {
110
+ return (listSourceItems || []).map(item => {
111
+ return { ...item, value: item.text || item.value };
112
+ });
113
+ }
114
+ getInitials(userName) {
115
+ let userInitials = userName;
116
+ if (userName && userName != '') {
117
+ userInitials = userName.charAt(0);
118
+ if (userName.lastIndexOf(' ') > 0) {
119
+ const lastName = userName.substring(userName.lastIndexOf(' ') + 1);
120
+ userInitials += lastName.charAt(0);
121
+ }
122
+ else if (userName.lastIndexOf('.') > 0) {
123
+ const lastName = userName.substring(userName.lastIndexOf('.') + 1);
124
+ userInitials += lastName.charAt(0);
125
+ }
126
+ }
127
+ else {
128
+ userInitials = '';
129
+ }
130
+ return userInitials.toUpperCase();
131
+ }
132
+ getImageSrc(name, serverUrl) {
133
+ let iconName = name.replace('pi-', '').replace('pi ', '').trim();
134
+ if (iconName === 'line-chart') {
135
+ iconName = 'chart-line';
136
+ }
137
+ // return serverUrl.concat("assets/icons/").concat(iconName).concat(".svg");
138
+ return this.getIconPath(serverUrl).concat(iconName).concat('.svg');
139
+ }
140
+ getIconPath(serverUrl) {
141
+ return serverUrl.concat('assets/icons/');
142
+ }
143
+ getBooleanValue(inValue) {
144
+ let bReturn = false;
145
+ if (typeof inValue === 'string') {
146
+ if (inValue.toLowerCase() == 'true') {
147
+ bReturn = true;
148
+ }
149
+ }
150
+ else {
151
+ bReturn = inValue;
152
+ }
153
+ return bReturn;
154
+ }
155
+ generateDate(dateVal, dateFormat) {
156
+ let sReturnDate = dateVal;
157
+ if (dateVal == null || dateVal == '') {
158
+ return dateVal;
159
+ }
160
+ // Commenting out per Vinod note in webc components
161
+ // VRS: Dont think we need the below line. Commenting out for now. (2020.05.20)
162
+ // if date has a ".", then of the format YYYMMDD[T]HHmmss[.]SSS Z, need to change to YYYYMMDD
163
+ // if (dateVal.indexOf(".") >= 0) {
164
+ // dateVal = moment(dateVal.replace("GMT", "+0000"), "YYYYMMDD[T]HHmmss[.]SSS Z").format("YYYYMMDD");
165
+ // sReturnDate = dateVal;
166
+ // }
167
+ switch (dateFormat) {
168
+ case 'Date-Short':
169
+ // 1/1/01
170
+ sReturnDate = dayjs(dateVal).format('M/D/YY');
171
+ break;
172
+ case 'Date-Short-YYYY':
173
+ // 1/1/2001
174
+ sReturnDate = dayjs(dateVal).format('M/D/YYYY');
175
+ break;
176
+ case 'Date-Short-Custom':
177
+ // 01/01/01
178
+ sReturnDate = dayjs(dateVal).format('MM/DD/YY');
179
+ break;
180
+ case 'Date-Short-Custom-YYYY':
181
+ // 01/01/2001
182
+ sReturnDate = dayjs(dateVal).format('L');
183
+ break;
184
+ case 'Date-Long-Custom-YYYY':
185
+ // 05/22/2021
186
+ sReturnDate = dayjs(dateVal).format('MM/DD/YYYY');
187
+ break;
188
+ case 'Date':
189
+ case 'Date-Medium':
190
+ // Jan 1, 2001
191
+ sReturnDate = dayjs(dateVal).format('ll');
192
+ break;
193
+ case 'Date-DayMonthYear-Custom':
194
+ // 01-Jan-2001
195
+ sReturnDate = dayjs(dateVal).format('DD-MMM-YYYY');
196
+ break;
197
+ case 'Date-Full':
198
+ // Monday, January 1, 2001
199
+ sReturnDate = dayjs(dateVal).format('dddd, MMMM D, YYYY');
200
+ break;
201
+ case 'DateTime-Frame':
202
+ case 'DateTime-Frame-Short':
203
+ case 'DateTime-Since':
204
+ // 2 days, 5 hours ago
205
+ sReturnDate = dayjs(dateVal).fromNow();
206
+ break;
207
+ case 'Date-Long':
208
+ // January 1, 2001
209
+ sReturnDate = dayjs(dateVal).format('MMMM D, YYYY');
210
+ break;
211
+ case 'Date-ISO-8601':
212
+ // 2001/01/01 y/m/d
213
+ sReturnDate = dayjs(dateVal).format('YYYY/MM/DD');
214
+ break;
215
+ case 'Date-Gregorian-1':
216
+ // 01 January, 2001
217
+ sReturnDate = dayjs(dateVal).format('DD MMMM, YYYY');
218
+ break;
219
+ case 'Date-Gregorian-2':
220
+ // January 01, 2001
221
+ sReturnDate = dayjs(dateVal).format('MMMM DD, YYYY');
222
+ break;
223
+ case 'Date-Gregorian-3':
224
+ // 2001, January 01
225
+ sReturnDate = dayjs(dateVal).format('YYYY, MMMM DD');
226
+ break;
227
+ case 'DateTime-Custom':
228
+ break;
229
+ default:
230
+ break;
231
+ }
232
+ return sReturnDate;
233
+ }
234
+ generateDateTime(dateTimeVal, dateFormat) {
235
+ let sReturnDate = dateTimeVal;
236
+ if (dateTimeVal == null || dateTimeVal == '') {
237
+ return dateTimeVal;
238
+ }
239
+ dateTimeVal = dateTimeVal.replace('GMT', '+0000');
240
+ switch (dateFormat) {
241
+ case 'DateTime-Short':
242
+ // 1/1/01 1:00 AM
243
+ sReturnDate = dayjs(dateTimeVal).format('M/D/YY h:mm A');
244
+ break;
245
+ case 'DateTime-Short-Custom':
246
+ // 01/01/01 01:00 AM
247
+ sReturnDate = dayjs(dateTimeVal).format('MM/DD/YY hh:mm A');
248
+ break;
249
+ case 'DateTime-Short-YYYY-Custom':
250
+ // 01/01/2001 01:00 AM
251
+ sReturnDate = dayjs(dateTimeVal).format('M/D/YYYY hh:mm A');
252
+ break;
253
+ case 'DateTime-Long-YYYY-Custom':
254
+ // 01/01/01 01:00 AM
255
+ sReturnDate = dayjs(dateTimeVal).format('MM/DD/YYYY, hh:mm A');
256
+ break;
257
+ case 'DateTime-Short-YYYY':
258
+ // 1/1/2001 1:00 AM
259
+ sReturnDate = dayjs(dateTimeVal).format('M/D/YYYY h:mm A');
260
+ break;
261
+ case 'DateTime-Medium':
262
+ // Jan 1, 2001 1:00:00 AM
263
+ sReturnDate = dayjs(dateTimeVal).format('MMM D, YYYY h:mm:ss A');
264
+ break;
265
+ case 'DateTime-Long':
266
+ // January 1, 2001 1:00:00 AM
267
+ sReturnDate = dayjs(dateTimeVal).format('MMMM D, YYYY h:mm:ss A');
268
+ break;
269
+ case 'DateTime-DayMonthYear-Custom':
270
+ // 01-Jan-2001 1:00:00 AM
271
+ sReturnDate = dayjs(dateTimeVal).format('DD-MMM-YYYY h:mm:ss A');
272
+ break;
273
+ case 'DateTime-Full':
274
+ // Monday, January 1, 2001 1:00 AM EDT
275
+ sReturnDate = dayjs(dateTimeVal).format('dddd, MMMM D, YYYY h:mm A z');
276
+ break;
277
+ case 'DateTime-Frame':
278
+ case 'DateTime-Frame-Short':
279
+ case 'DateTime-Since':
280
+ // 2 days, 5 hours ago
281
+ sReturnDate = dayjs(dateTimeVal).fromNow();
282
+ break;
283
+ case 'DateTime-ISO-8601':
284
+ // 2001/01/01 1:00:00 AM y/m/d
285
+ sReturnDate = dayjs(dateTimeVal).format('YYYY/MM/DD h:mm:ss A');
286
+ break;
287
+ case 'DateTime-Gregorian-1':
288
+ // 01 January, 2001 1:00:00 AM
289
+ sReturnDate = dayjs(dateTimeVal).format('DD MMMM, YYYY h:mm:ss A');
290
+ break;
291
+ case 'DateTime-Gregorian-2':
292
+ // January 01, 2001 1:00:00 AM
293
+ sReturnDate = dayjs(dateTimeVal).format('MMMM DD, YYYY h:mm:ss A');
294
+ break;
295
+ case 'DateTime-Gregorian-3':
296
+ // 2001, January 01 1:00:00 AM
297
+ sReturnDate = dayjs(dateTimeVal).format('YYYY, MMMM DD h:mm:ss A');
298
+ break;
299
+ case 'DateTime-Custom':
300
+ break;
301
+ default:
302
+ break;
303
+ }
304
+ return sReturnDate;
305
+ }
306
+ getIconFromFileType(fileType) {
307
+ let icon = 'document-doc';
308
+ if (!fileType)
309
+ return icon;
310
+ if (fileType.startsWith('audio')) {
311
+ icon = 'audio';
312
+ }
313
+ else if (fileType.startsWith('video')) {
314
+ icon = 'video';
315
+ }
316
+ else if (fileType.startsWith('image')) {
317
+ icon = 'picture';
318
+ }
319
+ else if (fileType.includes('pdf')) {
320
+ icon = 'document-pdf';
321
+ }
322
+ else {
323
+ const [, subtype] = fileType.split('/');
324
+ const foundMatch = sources => {
325
+ return sources.some(key => subtype.includes(key));
326
+ };
327
+ if (foundMatch(['excel', 'spreadsheet'])) {
328
+ icon = 'document-xls';
329
+ }
330
+ else if (foundMatch(['zip', 'compressed', 'gzip', 'rar', 'tar'])) {
331
+ icon = 'document-compress';
332
+ }
333
+ }
334
+ return icon;
335
+ }
336
+ getIconForAttachment(attachment) {
337
+ let icon;
338
+ switch (attachment.type) {
339
+ case 'FILE':
340
+ icon = this.getIconFromFileType(attachment.mimeType);
341
+ break;
342
+ case 'URL':
343
+ icon = 'chain';
344
+ break;
345
+ default:
346
+ icon = 'document-doc';
347
+ }
348
+ return icon;
349
+ }
350
+ addViewContainer() {
351
+ if (sessionStorage.getItem('viewContainerCount') == null) {
352
+ sessionStorage.setItem('viewContainerCount', '0');
353
+ }
354
+ let count = parseInt(sessionStorage.getItem('viewContainerCount'), 10);
355
+ count++;
356
+ sessionStorage.setItem('viewContainerCount', count.toString());
357
+ }
358
+ removeViewContainer() {
359
+ return;
360
+ let count = parseInt(sessionStorage.getItem('viewContainerCount'), 10);
361
+ count--;
362
+ sessionStorage.setItem('viewContainerCount', count.toString());
363
+ }
364
+ okToAddContainerToVC() {
365
+ if (sessionStorage.getItem('viewContainerCount') == null) {
366
+ sessionStorage.setItem('viewContainerCount', '0');
367
+ }
368
+ const count = parseInt(sessionStorage.getItem('viewContainerCount'), 10);
369
+ return count === 0;
370
+ }
371
+ static sdkGetAuthHeader() {
372
+ return sessionStorage.getItem('asdk_AH');
373
+ }
374
+ static isEmptyObject(obj) {
375
+ return Object.keys(obj).length === 0;
376
+ }
377
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Utils, deps: [{ token: i1.ServerConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
378
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Utils, providedIn: 'root' }); }
379
+ }
380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Utils, decorators: [{
381
+ type: Injectable,
382
+ args: [{
383
+ providedIn: 'root'
384
+ }]
385
+ }], ctorParameters: function () { return [{ type: i1.ServerConfigService }]; } });
386
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2hlbHBlcnMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLGVBQWUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLFlBQVksTUFBTSwyQkFBMkIsQ0FBQzs7O0FBR3JELEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUNoQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQzlCLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFLM0IsTUFBTSxPQUFPLEtBQUs7SUFLaEIsWUFBb0IsU0FBOEI7UUFBOUIsY0FBUyxHQUFULFNBQVMsQ0FBcUI7UUFKbEQsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFbEIsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBeVl2QixjQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUU7WUFDakIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDNUQsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDdEI7aUJBQU0sSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxFQUFFO2dCQUMzQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ2Y7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7SUEvWW1ELENBQUM7SUFFdEQsc0JBQXNCO1FB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QkFBb0IsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUN4RCxjQUFjLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVuRixPQUFPLEtBQUssS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQVlELE1BQU0sQ0FBQyxnQkFBZ0I7UUFDckIsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBVyxDQUFDO0lBQ3JELENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQVc7UUFDOUIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQzsrR0E1WlUsS0FBSzttSEFBTCxLQUFLLGNBRkosTUFBTTs7NEZBRVAsS0FBSztrQkFIakIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9jdXN0b21QYXJzZUZvcm1hdCc7XG5pbXBvcnQgbG9jYWxpemVkRm9ybWF0IGZyb20gJ2RheWpzL3BsdWdpbi9sb2NhbGl6ZWRGb3JtYXQnO1xuaW1wb3J0IHJlbGF0aXZlVGltZSBmcm9tICdkYXlqcy9wbHVnaW4vcmVsYXRpdmVUaW1lJztcbmltcG9ydCB7IFNlcnZlckNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9fc2VydmljZXMvc2VydmVyLWNvbmZpZy5zZXJ2aWNlJztcblxuZGF5anMuZXh0ZW5kKGN1c3RvbVBhcnNlRm9ybWF0KTtcbmRheWpzLmV4dGVuZChsb2NhbGl6ZWRGb3JtYXQpO1xuZGF5anMuZXh0ZW5kKHJlbGF0aXZlVGltZSk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFV0aWxzIHtcbiAgbGFzdENvbnRyb2xJRCA9IDA7XG5cbiAgdmlld0NvbnRhaW5lckNvdW50ID0gMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNjU2VydmljZTogU2VydmVyQ29uZmlnU2VydmljZSkge31cblxuICBnZXRTREtTdGF0aWNDb250ZW50VXJsKCkge1xuICAgIGNvbnN0IHNka0NvbmZpZ1NlcnZlciA9IHRoaXMuc2NTZXJ2aWNlLmdldFNka0NvbmZpZ1NlcnZlcigpO1xuXG4gICAgLy8gTk9URTogTmVlZHMgYSB0cmFpbGluZyBzbGFzaCEgU28gYWRkIG9uZSBpZiBub3QgcHJvdmlkZWRcbiAgICBpZiAoIXNka0NvbmZpZ1NlcnZlci5zZGtDb250ZW50U2VydmVyVXJsLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgIHNka0NvbmZpZ1NlcnZlci5zZGtDb250ZW50U2VydmVyVXJsID0gYCR7c2RrQ29uZmlnU2VydmVyLnNka0NvbnRlbnRTZXJ2ZXJVcmx9L2A7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3Nka0NvbmZpZ1NlcnZlci5zZGtDb250ZW50U2VydmVyVXJsfWNvbnN0ZWxsYXRpb24vYDtcbiAgfVxuXG4gIGNvbnNvbGVLaWREdW1wKHBDb25uOiBhbnksIGxldmVsOiBudW1iZXIgPSAxLCBraWROdW06IG51bWJlciA9IDEpIHtcbiAgICBsZXQgc0Rhc2ggPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxldmVsOyBpKyspIHtcbiAgICAgIHNEYXNoID0gc0Rhc2guY29uY2F0KCctJyk7XG4gICAgfVxuICAgIGxldCBjTmFtZSA9ICdibGFuayc7XG4gICAgbGV0IGN0eE5hbWUgPSAnJztcbiAgICB0cnkge1xuICAgICAgY05hbWUgPSBwQ29ubi5nZXRDb21wb25lbnROYW1lKCk7XG4gICAgICBjdHhOYW1lID0gcENvbm4uZ2V0Q29udGV4dE5hbWUoKTtcbiAgICAgIGNvbnNvbGUubG9nKGAke3NEYXNofWxldmVsICR7bGV2ZWx9IGNvbXBvbmVudCgke2tpZE51bX0pOiR7Y05hbWV9IGNvbnRleHQ6JHtjdHhOYW1lfWApO1xuICAgICAgaWYgKHBDb25uLmdldENvbmZpZ1Byb3BzKCkgIT0gbnVsbCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgJHtzRGFzaH1jb25maWdQcm9wczoke0pTT04uc3RyaW5naWZ5KHBDb25uLmdldENvbmZpZ1Byb3BzKCkpfWApO1xuICAgICAgfVxuICAgICAgaWYgKHBDb25uLmdldFJhd01ldGFkYXRhKCkgIT0gbnVsbCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgJHtzRGFzaH1yYXdNZXRhZGF0YToke0pTT04uc3RyaW5naWZ5KHBDb25uLmdldFJhd01ldGFkYXRhKCkpfWApO1xuICAgICAgfVxuXG4gICAgICBpZiAocENvbm4uaGFzQ2hpbGRyZW4oKSAmJiBwQ29ubi5nZXRDaGlsZHJlbigpICE9IG51bGwpIHtcbiAgICAgICAgY29uc29sZS5sb2coYCR7c0Rhc2h9a2lkQ291bnQ6JHtwQ29ubi5nZXRDaGlsZHJlbigpLmxlbmd0aH1gKTtcbiAgICAgICAgY29uc3Qga2lkcyA9IHBDb25uLmdldENoaWxkcmVuKCk7XG4gICAgICAgIGNvbnN0IGtpZHNLZXlzID0gT2JqZWN0LmtleXMoa2lkcyk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGtpZHNLZXlzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBwYXJzZUludChraWRzS2V5c1tpXSwgMTApICsgMTtcbiAgICAgICAgICBjb25zdCBraWQgPSBraWRzW2tpZHNLZXlzW2ldXTtcbiAgICAgICAgICB0aGlzLmNvbnNvbGVLaWREdW1wKGtpZC5nZXRQQ29ubmVjdCgpLCBsZXZlbCArIDEsIGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvKiBlbXB0eSAqL1xuICAgIH1cbiAgfVxuXG4gIGh0bWxEZWNvZGUoc1ZhbDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgZG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhzVmFsLCAndGV4dC9odG1sJyk7XG4gICAgcmV0dXJuIGRvYy5kb2N1bWVudEVsZW1lbnQudGV4dENvbnRlbnQ7XG4gIH1cblxuICBnZXRVbmlxdWVDb250cm9sSUQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzUHJlZml4ID0gJ2NvbnRyb2wtJztcblxuICAgIHRoaXMubGFzdENvbnRyb2xJRCsrO1xuXG4gICAgcmV0dXJuIHNQcmVmaXggKyB0aGlzLmxhc3RDb250cm9sSUQudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGdldE9wdGlvbkxpc3QoY29uZmlnUHJvcHM6IGFueSwgZGF0YU9iamVjdDogYW55KTogYW55W10ge1xuICAgIGNvbnN0IGxpc3RUeXBlID0gY29uZmlnUHJvcHMubGlzdFR5cGU7XG5cbiAgICBpZiAobGlzdFR5cGUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHN3aXRjaCAobGlzdFR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSAnYXNzb2NpYXRlZCc6XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUFzc29jaWF0ZWRMaXN0KGNvbmZpZ1Byb3BzKTtcbiAgICAgIGNhc2UgJ2RhdGFwYWdlJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRGF0YVBhZ2VMaXN0KGNvbmZpZ1Byb3BzLCBkYXRhT2JqZWN0KTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVBc3NvY2lhdGVkTGlzdChjb25maWdQcm9wczogYW55KTogYW55W10ge1xuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSBjb25maWdQcm9wcy5kYXRhc291cmNlO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVNvdXJjZSkpIHtcbiAgICAgIHJldHVybiBkYXRhU291cmNlO1xuICAgIH1cblxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGhhbmRsZURhdGFQYWdlTGlzdChjb25maWdQcm9wczogYW55LCBkYXRhT2JqZWN0OiBhbnkpOiBhbnlbXSB7XG4gICAgY29uc3QgZGF0YVBhZ2UgPSBjb25maWdQcm9wcy5kYXRhc291cmNlO1xuXG4gICAgaWYgKGRhdGFPYmplY3RbZGF0YVBhZ2VdKSB7XG4gICAgICBhbGVydCgnbmVlZCB0byBoYW5kbGUgZGF0YSBwYWdlJyk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgbGV0IGxpc3RTb3VyY2VJdGVtcyA9IGNvbmZpZ1Byb3BzLmxpc3RPdXRwdXQ7XG5cbiAgICBpZiAodHlwZW9mIGRhdGFQYWdlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShsaXN0U291cmNlSXRlbXMpKSB7XG4gICAgICBsaXN0U291cmNlSXRlbXMgPSBkYXRhUGFnZS5zb3VyY2UgPyBkYXRhUGFnZS5zb3VyY2UgOiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1MaXN0U291cmNlSXRlbXMobGlzdFNvdXJjZUl0ZW1zKTtcbiAgfVxuXG4gIHRyYW5zZm9ybUxpc3RTb3VyY2VJdGVtcyhsaXN0U291cmNlSXRlbXM6IGFueVtdKTogYW55W10ge1xuICAgIHJldHVybiAobGlzdFNvdXJjZUl0ZW1zIHx8IFtdKS5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4geyAuLi5pdGVtLCB2YWx1ZTogaXRlbS50ZXh0IHx8IGl0ZW0udmFsdWUgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEluaXRpYWxzKHVzZXJOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCB1c2VySW5pdGlhbHMgPSB1c2VyTmFtZTtcblxuICAgIGlmICh1c2VyTmFtZSAmJiB1c2VyTmFtZSAhPSAnJykge1xuICAgICAgdXNlckluaXRpYWxzID0gdXNlck5hbWUuY2hhckF0KDApO1xuXG4gICAgICBpZiAodXNlck5hbWUubGFzdEluZGV4T2YoJyAnKSA+IDApIHtcbiAgICAgICAgY29uc3QgbGFzdE5hbWUgPSB1c2VyTmFtZS5zdWJzdHJpbmcodXNlck5hbWUubGFzdEluZGV4T2YoJyAnKSArIDEpO1xuICAgICAgICB1c2VySW5pdGlhbHMgKz0gbGFzdE5hbWUuY2hhckF0KDApO1xuICAgICAgfSBlbHNlIGlmICh1c2VyTmFtZS5sYXN0SW5kZXhPZignLicpID4gMCkge1xuICAgICAgICBjb25zdCBsYXN0TmFtZSA9IHVzZXJOYW1lLnN1YnN0cmluZyh1c2VyTmFtZS5sYXN0SW5kZXhPZignLicpICsgMSk7XG4gICAgICAgIHVzZXJJbml0aWFscyArPSBsYXN0TmFtZS5jaGFyQXQoMCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHVzZXJJbml0aWFscyA9ICcnO1xuICAgIH1cblxuICAgIHJldHVybiB1c2VySW5pdGlhbHMudG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIGdldEltYWdlU3JjKG5hbWU6IHN0cmluZywgc2VydmVyVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBpY29uTmFtZSA9IG5hbWUucmVwbGFjZSgncGktJywgJycpLnJlcGxhY2UoJ3BpICcsICcnKS50cmltKCk7XG4gICAgaWYgKGljb25OYW1lID09PSAnbGluZS1jaGFydCcpIHtcbiAgICAgIGljb25OYW1lID0gJ2NoYXJ0LWxpbmUnO1xuICAgIH1cblxuICAgIC8vIHJldHVybiBzZXJ2ZXJVcmwuY29uY2F0KFwiYXNzZXRzL2ljb25zL1wiKS5jb25jYXQoaWNvbk5hbWUpLmNvbmNhdChcIi5zdmdcIik7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SWNvblBhdGgoc2VydmVyVXJsKS5jb25jYXQoaWNvbk5hbWUpLmNvbmNhdCgnLnN2ZycpO1xuICB9XG5cbiAgZ2V0SWNvblBhdGgoc2VydmVyVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzZXJ2ZXJVcmwuY29uY2F0KCdhc3NldHMvaWNvbnMvJyk7XG4gIH1cblxuICBnZXRCb29sZWFuVmFsdWUoaW5WYWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgbGV0IGJSZXR1cm4gPSBmYWxzZTtcblxuICAgIGlmICh0eXBlb2YgaW5WYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChpblZhbHVlLnRvTG93ZXJDYXNlKCkgPT0gJ3RydWUnKSB7XG4gICAgICAgIGJSZXR1cm4gPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBiUmV0dXJuID0gaW5WYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gYlJldHVybjtcbiAgfVxuXG4gIGdlbmVyYXRlRGF0ZShkYXRlVmFsLCBkYXRlRm9ybWF0KSB7XG4gICAgbGV0IHNSZXR1cm5EYXRlID0gZGF0ZVZhbDtcblxuICAgIGlmIChkYXRlVmFsID09IG51bGwgfHwgZGF0ZVZhbCA9PSAnJykge1xuICAgICAgcmV0dXJuIGRhdGVWYWw7XG4gICAgfVxuXG4gICAgLy8gQ29tbWVudGluZyBvdXQgcGVyIFZpbm9kIG5vdGUgaW4gd2ViYyBjb21wb25lbnRzXG4gICAgLy8gVlJTOiBEb250IHRoaW5rIHdlIG5lZWQgdGhlIGJlbG93IGxpbmUuICBDb21tZW50aW5nIG91dCBmb3Igbm93LiAoMjAyMC4wNS4yMClcbiAgICAvLyBpZiBkYXRlIGhhcyBhIFwiLlwiLCB0aGVuIG9mIHRoZSBmb3JtYXQgWVlZTU1ERFtUXUhIbW1zc1suXVNTUyBaLCBuZWVkIHRvIGNoYW5nZSB0byBZWVlZTU1ERFxuICAgIC8vIGlmIChkYXRlVmFsLmluZGV4T2YoXCIuXCIpID49IDApIHtcbiAgICAvLyAgIGRhdGVWYWwgPSBtb21lbnQoZGF0ZVZhbC5yZXBsYWNlKFwiR01UXCIsIFwiKzAwMDBcIiksIFwiWVlZWU1NRERbVF1ISG1tc3NbLl1TU1MgWlwiKS5mb3JtYXQoXCJZWVlZTU1ERFwiKTtcbiAgICAvLyAgIHNSZXR1cm5EYXRlID0gZGF0ZVZhbDtcbiAgICAvLyB9XG5cbiAgICBzd2l0Y2ggKGRhdGVGb3JtYXQpIHtcbiAgICAgIGNhc2UgJ0RhdGUtU2hvcnQnOlxuICAgICAgICAvLyAxLzEvMDFcbiAgICAgICAgc1JldHVybkRhdGUgPSBkYXlqcyhkYXRlVmFsKS5mb3JtYXQoJ00vRC9ZWScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RhdGUtU2hvcnQtWVlZWSc6XG4gICAgICAgIC8vIDEvMS8yMDAxXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVZhbCkuZm9ybWF0KCdNL0QvWVlZWScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RhdGUtU2hvcnQtQ3VzdG9tJzpcbiAgICAgICAgLy8gMDEvMDEvMDFcbiAgICAgICAgc1JldHVybkRhdGUgPSBkYXlqcyhkYXRlVmFsKS5mb3JtYXQoJ01NL0REL1lZJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRGF0ZS1TaG9ydC1DdXN0b20tWVlZWSc6XG4gICAgICAgIC8vIDAxLzAxLzIwMDFcbiAgICAgICAgc1JldHVybkRhdGUgPSBkYXlqcyhkYXRlVmFsKS5mb3JtYXQoJ0wnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEYXRlLUxvbmctQ3VzdG9tLVlZWVknOlxuICAgICAgICAvLyAwNS8yMi8yMDIxXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVZhbCkuZm9ybWF0KCdNTS9ERC9ZWVlZJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRGF0ZSc6XG4gICAgICBjYXNlICdEYXRlLU1lZGl1bSc6XG4gICAgICAgIC8vIEphbiAxLCAyMDAxXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVZhbCkuZm9ybWF0KCdsbCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RhdGUtRGF5TW9udGhZZWFyLUN1c3RvbSc6XG4gICAgICAgIC8vIDAxLUphbi0yMDAxXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVZhbCkuZm9ybWF0KCdERC1NTU0tWVlZWScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RhdGUtRnVsbCc6XG4gICAgICAgIC8vIE1vbmRheSwgSmFudWFyeSAxLCAyMDAxXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVZhbCkuZm9ybWF0KCdkZGRkLCBNTU1NIEQsIFlZWVknKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEYXRlVGltZS1GcmFtZSc6XG4gICAgICBjYXNlICdEYXRlVGltZS1GcmFtZS1TaG9ydCc6XG4gICAgICBjYXNlICdEYXRlVGltZS1TaW5jZSc6XG4gICAgICAgIC8vIDIgZGF5cywgNSBob3VycyBhZ29cbiAgICAgICAgc1JldHVybkRhdGUgPSBkYXlqcyhkYXRlVmFsKS5mcm9tTm93KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRGF0ZS1Mb25nJzpcbiAgICAgICAgLy8gSmFudWFyeSAxLCAyMDAxXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVZhbCkuZm9ybWF0KCdNTU1NIEQsIFlZWVknKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEYXRlLUlTTy04NjAxJzpcbiAgICAgICAgLy8gMjAwMS8wMS8wMSB5L20vZFxuICAgICAgICBzUmV0dXJuRGF0ZSA9IGRheWpzKGRhdGVWYWwpLmZvcm1hdCgnWVlZWS9NTS9ERCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RhdGUtR3JlZ29yaWFuLTEnOlxuICAgICAgICAvLyAwMSBKYW51YXJ5LCAyMDAxXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVZhbCkuZm9ybWF0KCdERCBNTU1NLCBZWVlZJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRGF0ZS1HcmVnb3JpYW4tMic6XG4gICAgICAgIC8vIEphbnVhcnkgMDEsIDIwMDFcbiAgICAgICAgc1JldHVybkRhdGUgPSBkYXlqcyhkYXRlVmFsKS5mb3JtYXQoJ01NTU0gREQsIFlZWVknKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEYXRlLUdyZWdvcmlhbi0zJzpcbiAgICAgICAgLy8gMjAwMSwgSmFudWFyeSAwMVxuICAgICAgICBzUmV0dXJuRGF0ZSA9IGRheWpzKGRhdGVWYWwpLmZvcm1hdCgnWVlZWSwgTU1NTSBERCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RhdGVUaW1lLUN1c3RvbSc6XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNSZXR1cm5EYXRlO1xuICB9XG5cbiAgZ2VuZXJhdGVEYXRlVGltZShkYXRlVGltZVZhbCwgZGF0ZUZvcm1hdCkge1xuICAgIGxldCBzUmV0dXJuRGF0ZSA9IGRhdGVUaW1lVmFsO1xuXG4gICAgaWYgKGRhdGVUaW1lVmFsID09IG51bGwgfHwgZGF0ZVRpbWVWYWwgPT0gJycpIHtcbiAgICAgIHJldHVybiBkYXRlVGltZVZhbDtcbiAgICB9XG5cbiAgICBkYXRlVGltZVZhbCA9IGRhdGVUaW1lVmFsLnJlcGxhY2UoJ0dNVCcsICcrMDAwMCcpO1xuXG4gICAgc3dpdGNoIChkYXRlRm9ybWF0KSB7XG4gICAgICBjYXNlICdEYXRlVGltZS1TaG9ydCc6XG4gICAgICAgIC8vIDEvMS8wMSAxOjAwIEFNXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVRpbWVWYWwpLmZvcm1hdCgnTS9EL1lZIGg6bW0gQScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RhdGVUaW1lLVNob3J0LUN1c3RvbSc6XG4gICAgICAgIC8vIDAxLzAxLzAxIDAxOjAwIEFNXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVRpbWVWYWwpLmZvcm1hdCgnTU0vREQvWVkgaGg6bW0gQScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RhdGVUaW1lLVNob3J0LVlZWVktQ3VzdG9tJzpcbiAgICAgICAgLy8gMDEvMDEvMjAwMSAwMTowMCBBTVxuICAgICAgICBzUmV0dXJuRGF0ZSA9IGRheWpzKGRhdGVUaW1lVmFsKS5mb3JtYXQoJ00vRC9ZWVlZIGhoOm1tIEEnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEYXRlVGltZS1Mb25nLVlZWVktQ3VzdG9tJzpcbiAgICAgICAgLy8gMDEvMDEvMDEgMDE6MDAgQU1cbiAgICAgICAgc1JldHVybkRhdGUgPSBkYXlqcyhkYXRlVGltZVZhbCkuZm9ybWF0KCdNTS9ERC9ZWVlZLCBoaDptbSBBJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRGF0ZVRpbWUtU2hvcnQtWVlZWSc6XG4gICAgICAgIC8vIDEvMS8yMDAxIDE6MDAgQU1cbiAgICAgICAgc1JldHVybkRhdGUgPSBkYXlqcyhkYXRlVGltZVZhbCkuZm9ybWF0KCdNL0QvWVlZWSBoOm1tIEEnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEYXRlVGltZS1NZWRpdW0nOlxuICAgICAgICAvLyBKYW4gMSwgMjAwMSAxOjAwOjAwIEFNXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVRpbWVWYWwpLmZvcm1hdCgnTU1NIEQsIFlZWVkgaDptbTpzcyBBJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRGF0ZVRpbWUtTG9uZyc6XG4gICAgICAgIC8vIEphbnVhcnkgMSwgMjAwMSAxOjAwOjAwIEFNXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVRpbWVWYWwpLmZvcm1hdCgnTU1NTSBELCBZWVlZIGg6bW06c3MgQScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RhdGVUaW1lLURheU1vbnRoWWVhci1DdXN0b20nOlxuICAgICAgICAvLyAwMS1KYW4tMjAwMSAxOjAwOjAwIEFNXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVRpbWVWYWwpLmZvcm1hdCgnREQtTU1NLVlZWVkgaDptbTpzcyBBJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRGF0ZVRpbWUtRnVsbCc6XG4gICAgICAgIC8vIE1vbmRheSwgSmFudWFyeSAxLCAyMDAxIDE6MDAgQU0gRURUXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVRpbWVWYWwpLmZvcm1hdCgnZGRkZCwgTU1NTSBELCBZWVlZIGg6bW0gQSB6Jyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRGF0ZVRpbWUtRnJhbWUnOlxuICAgICAgY2FzZSAnRGF0ZVRpbWUtRnJhbWUtU2hvcnQnOlxuICAgICAgY2FzZSAnRGF0ZVRpbWUtU2luY2UnOlxuICAgICAgICAvLyAyIGRheXMsIDUgaG91cnMgYWdvXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVRpbWVWYWwpLmZyb21Ob3coKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEYXRlVGltZS1JU08tODYwMSc6XG4gICAgICAgIC8vIDIwMDEvMDEvMDEgMTowMDowMCBBTSAgICAgeS9tL2RcbiAgICAgICAgc1JldHVybkRhdGUgPSBkYXlqcyhkYXRlVGltZVZhbCkuZm9ybWF0KCdZWVlZL01NL0REIGg6bW06c3MgQScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RhdGVUaW1lLUdyZWdvcmlhbi0xJzpcbiAgICAgICAgLy8gMDEgSmFudWFyeSwgMjAwMSAxOjAwOjAwIEFNXG4gICAgICAgIHNSZXR1cm5EYXRlID0gZGF5anMoZGF0ZVRpbWVWYWwpLmZvcm1hdCgnREQgTU1NTSwgWVlZWSBoOm1tOnNzIEEnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdEYXRlVGltZS1HcmVnb3JpYW4tMic6XG4gICAgICAgIC8vIEphbnVhcnkgMDEsIDIwMDEgMTowMDowMCBBTVxuICAgICAgICBzUmV0dXJuRGF0ZSA9IGRheWpzKGRhdGVUaW1lVmFsKS5mb3JtYXQoJ01NTU0gREQsIFlZWVkgaDptbTpzcyBBJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRGF0ZVRpbWUtR3JlZ29yaWFuLTMnOlxuICAgICAgICAvLyAyMDAxLCBKYW51YXJ5IDAxIDE6MDA6MDAgQU1cbiAgICAgICAgc1JldHVybkRhdGUgPSBkYXlqcyhkYXRlVGltZVZhbCkuZm9ybWF0KCdZWVlZLCBNTU1NIEREIGg6bW06c3MgQScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RhdGVUaW1lLUN1c3RvbSc6XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNSZXR1cm5EYXRlO1xuICB9XG5cbiAgZ2V0SWNvbkZyb21GaWxlVHlwZShmaWxlVHlwZSk6IHN0cmluZyB7XG4gICAgbGV0IGljb24gPSAnZG9jdW1lbnQtZG9jJztcbiAgICBpZiAoIWZpbGVUeXBlKSByZXR1cm4gaWNvbjtcbiAgICBpZiAoZmlsZVR5cGUuc3RhcnRzV2l0aCgnYXVkaW8nKSkge1xuICAgICAgaWNvbiA9ICdhdWRpbyc7XG4gICAgfSBlbHNlIGlmIChmaWxlVHlwZS5zdGFydHNXaXRoKCd2aWRlbycpKSB7XG4gICAgICBpY29uID0gJ3ZpZGVvJztcbiAgICB9IGVsc2UgaWYgKGZpbGVUeXBlLnN0YXJ0c1dpdGgoJ2ltYWdlJykpIHtcbiAgICAgIGljb24gPSAncGljdHVyZSc7XG4gICAgfSBlbHNlIGlmIChmaWxlVHlwZS5pbmNsdWRlcygncGRmJykpIHtcbiAgICAgIGljb24gPSAnZG9jdW1lbnQtcGRmJztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgWywgc3VidHlwZV0gPSBmaWxlVHlwZS5zcGxpdCgnLycpO1xuICAgICAgY29uc3QgZm91bmRNYXRjaCA9IHNvdXJjZXMgPT4ge1xuICAgICAgICByZXR1cm4gc291cmNlcy5zb21lKGtleSA9PiBzdWJ0eXBlLmluY2x1ZGVzKGtleSkpO1xuICAgICAgfTtcblxuICAgICAgaWYgKGZvdW5kTWF0Y2goWydleGNlbCcsICdzcHJlYWRzaGVldCddKSkge1xuICAgICAgICBpY29uID0gJ2RvY3VtZW50LXhscyc7XG4gICAgICB9IGVsc2UgaWYgKGZvdW5kTWF0Y2goWyd6aXAnLCAnY29tcHJlc3NlZCcsICdnemlwJywgJ3JhcicsICd0YXInXSkpIHtcbiAgICAgICAgaWNvbiA9ICdkb2N1bWVudC1jb21wcmVzcyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGljb247XG4gIH1cblxuICBnZXRJY29uRm9yQXR0YWNobWVudChhdHRhY2htZW50KSB7XG4gICAgbGV0IGljb247XG4gICAgc3dpdGNoIChhdHRhY2htZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgJ0ZJTEUnOlxuICAgICAgICBpY29uID0gdGhpcy5nZXRJY29uRnJvbUZpbGVUeXBlKGF0dGFjaG1lbnQubWltZVR5cGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1VSTCc6XG4gICAgICAgIGljb24gPSAnY2hhaW4nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGljb24gPSAnZG9jdW1lbnQtZG9jJztcbiAgICB9XG4gICAgcmV0dXJuIGljb247XG4gIH1cblxuICBhZGRWaWV3Q29udGFpbmVyKCkge1xuICAgIGlmIChzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd2aWV3Q29udGFpbmVyQ291bnQnKSA9PSBudWxsKSB7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd2aWV3Q29udGFpbmVyQ291bnQnLCAnMCcpO1xuICAgIH1cblxuICAgIGxldCBjb3VudCA9IHBhcnNlSW50KHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3ZpZXdDb250YWluZXJDb3VudCcpIGFzIHN0cmluZywgMTApO1xuICAgIGNvdW50Kys7XG5cbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd2aWV3Q29udGFpbmVyQ291bnQnLCBjb3VudC50b1N0cmluZygpKTtcbiAgfVxuXG4gIHJlbW92ZVZpZXdDb250YWluZXIoKSB7XG4gICAgcmV0dXJuO1xuXG4gICAgbGV0IGNvdW50ID0gcGFyc2VJbnQoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndmlld0NvbnRhaW5lckNvdW50JykgYXMgc3RyaW5nLCAxMCk7XG4gICAgY291bnQtLTtcblxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3ZpZXdDb250YWluZXJDb3VudCcsIGNvdW50LnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgb2tUb0FkZENvbnRhaW5lclRvVkMoKTogYm9vbGVhbiB7XG4gICAgaWYgKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3ZpZXdDb250YWluZXJDb3VudCcpID09IG51bGwpIHtcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3ZpZXdDb250YWluZXJDb3VudCcsICcwJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY291bnQgPSBwYXJzZUludChzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd2aWV3Q29udGFpbmVyQ291bnQnKSBhcyBzdHJpbmcsIDEwKTtcblxuICAgIHJldHVybiBjb3VudCA9PT0gMDtcbiAgfVxuXG4gIGdldFVzZXJJZCA9IHVzZXIgPT4ge1xuICAgIGxldCB1c2VySWQgPSAnJztcbiAgICBpZiAodHlwZW9mIHVzZXIgPT09ICdvYmplY3QnICYmIHVzZXIgIT09IG51bGwgJiYgdXNlci51c2VySWQpIHtcbiAgICAgIHVzZXJJZCA9IHVzZXIudXNlcklkO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHVzZXIgPT09ICdzdHJpbmcnICYmIHVzZXIpIHtcbiAgICAgIHVzZXJJZCA9IHVzZXI7XG4gICAgfVxuICAgIHJldHVybiB1c2VySWQ7XG4gIH07XG5cbiAgc3RhdGljIHNka0dldEF1dGhIZWFkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXNka19BSCcpIGFzIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBpc0VtcHR5T2JqZWN0KG9iajogT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09PSAwO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ /**
2
+ * versionHelpers.ts
3
+ *
4
+ * Container helper functions that can identify which version of
5
+ * PCore/PConnect is being run
6
+ */
7
+ export const sdkVersion = '8.7';
8
+ export function compareSdkPCoreVersions() {
9
+ // const theConstellationVersion = PCore.getPCoreVersion();
10
+ console.warn(`Using Constellation version ${PCore.getPCoreVersion()}. Ensure this is the same version as your Infinity server.`);
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbkhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXNkay1jb21wb25lbnRzL3NyYy9saWIvX2hlbHBlcnMvdmVyc2lvbkhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDO0FBRWhDLE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsMkRBQTJEO0lBQzNELE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEtBQUssQ0FBQyxlQUFlLEVBQUUsNERBQTRELENBQUMsQ0FBQztBQUNuSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiB2ZXJzaW9uSGVscGVycy50c1xuICpcbiAqIENvbnRhaW5lciBoZWxwZXIgZnVuY3Rpb25zIHRoYXQgY2FuIGlkZW50aWZ5IHdoaWNoIHZlcnNpb24gb2ZcbiAqIFBDb3JlL1BDb25uZWN0IGlzIGJlaW5nIHJ1blxuICovXG5cbmV4cG9ydCBjb25zdCBzZGtWZXJzaW9uID0gJzguNyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlU2RrUENvcmVWZXJzaW9ucygpIHtcbiAgLy8gY29uc3QgdGhlQ29uc3RlbGxhdGlvblZlcnNpb24gPSBQQ29yZS5nZXRQQ29yZVZlcnNpb24oKTtcbiAgY29uc29sZS53YXJuKGBVc2luZyBDb25zdGVsbGF0aW9uIHZlcnNpb24gJHtQQ29yZS5nZXRQQ29yZVZlcnNpb24oKX0uIEVuc3VyZSB0aGlzIGlzIHRoZSBzYW1lIHZlcnNpb24gYXMgeW91ciBJbmZpbml0eSBzZXJ2ZXIuYCk7XG59XG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class ErrorMessagesService {
5
+ constructor() {
6
+ this.subject = new Subject();
7
+ }
8
+ /**
9
+ *
10
+ * @param sAction - show, dismiss
11
+ * @param sActionMessage - text to displayed, will be queued with others until dismiss
12
+ */
13
+ sendMessage(sAction, sActionMessage) {
14
+ this.subject.next({ action: sAction, actionMessage: sActionMessage });
15
+ }
16
+ clearMessage() {
17
+ this.subject.next();
18
+ }
19
+ getMessage() {
20
+ return this.subject.asObservable();
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorMessagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorMessagesService, providedIn: 'root' }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ErrorMessagesService, decorators: [{
26
+ type: Injectable,
27
+ args: [{
28
+ providedIn: 'root'
29
+ }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbWVzc2FnZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fbWVzc2FnZXMvZXJyb3ItbWVzc2FnZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxvQkFBb0I7SUFIakM7UUFJVSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7S0FrQmhEO0lBaEJDOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsT0FBZSxFQUFFLGNBQXNCO1FBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQzsrR0FsQlUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JNZXNzYWdlc1NlcnZpY2Uge1xuICBwcml2YXRlIHN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkIHwgb2JqZWN0PigpO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gc0FjdGlvbiAtIHNob3csIGRpc21pc3NcbiAgICogQHBhcmFtIHNBY3Rpb25NZXNzYWdlIC0gdGV4dCB0byBkaXNwbGF5ZWQsIHdpbGwgYmUgcXVldWVkIHdpdGggb3RoZXJzIHVudGlsIGRpc21pc3NcbiAgICovXG4gIHNlbmRNZXNzYWdlKHNBY3Rpb246IHN0cmluZywgc0FjdGlvbk1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMuc3ViamVjdC5uZXh0KHsgYWN0aW9uOiBzQWN0aW9uLCBhY3Rpb25NZXNzYWdlOiBzQWN0aW9uTWVzc2FnZSB9KTtcbiAgfVxuXG4gIGNsZWFyTWVzc2FnZSgpIHtcbiAgICB0aGlzLnN1YmplY3QubmV4dCgpO1xuICB9XG5cbiAgZ2V0TWVzc2FnZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class GetLoginStatusService {
5
+ constructor() {
6
+ this.subject = new Subject();
7
+ }
8
+ sendMessage(sLoginStatus) {
9
+ this.subject.next({ loginStatus: sLoginStatus });
10
+ }
11
+ clearMessage() {
12
+ this.subject.next();
13
+ }
14
+ getMessage() {
15
+ return this.subject.asObservable();
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GetLoginStatusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
18
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GetLoginStatusService, providedIn: 'root' }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GetLoginStatusService, decorators: [{
21
+ type: Injectable,
22
+ args: [{
23
+ providedIn: 'root'
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxvZ2luLXN0YXR1cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19tZXNzYWdlcy9nZXQtbG9naW4tc3RhdHVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUszQyxNQUFNLE9BQU8scUJBQXFCO0lBSGxDO1FBSVUsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO0tBYWhEO0lBWEMsV0FBVyxDQUFDLFlBQW9CO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7K0dBYlUscUJBQXFCO21IQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgR2V0TG9naW5TdGF0dXNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZCB8IG9iamVjdD4oKTtcblxuICBzZW5kTWVzc2FnZShzTG9naW5TdGF0dXM6IHN0cmluZykge1xuICAgIHRoaXMuc3ViamVjdC5uZXh0KHsgbG9naW5TdGF0dXM6IHNMb2dpblN0YXR1cyB9KTtcbiAgfVxuXG4gIGNsZWFyTWVzc2FnZSgpIHtcbiAgICB0aGlzLnN1YmplY3QubmV4dCgpO1xuICB9XG5cbiAgZ2V0TWVzc2FnZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class OAuthResponseService {
5
+ constructor() {
6
+ this.subject = new Subject();
7
+ }
8
+ /**
9
+ * Function to pass the OAuth token
10
+ * @param oToken - token
11
+ */
12
+ sendMessage(oToken) {
13
+ this.subject.next({ token: oToken });
14
+ }
15
+ clearMessage() {
16
+ this.subject.next();
17
+ }
18
+ getMessage() {
19
+ return this.subject.asObservable();
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OAuthResponseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
22
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OAuthResponseService, providedIn: 'root' }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OAuthResponseService, decorators: [{
25
+ type: Injectable,
26
+ args: [{
27
+ providedIn: 'root'
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtcmVzcG9uc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fbWVzc2FnZXMvb2F1dGgtcmVzcG9uc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxvQkFBb0I7SUFIakM7UUFJVSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7S0FpQmhEO0lBZkM7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLE1BQVc7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQzsrR0FqQlUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT0F1dGhSZXNwb25zZVNlcnZpY2Uge1xuICBwcml2YXRlIHN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkIHwgb2JqZWN0PigpO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBwYXNzIHRoZSBPQXV0aCB0b2tlblxuICAgKiBAcGFyYW0gb1Rva2VuIC0gdG9rZW5cbiAgICovXG4gIHNlbmRNZXNzYWdlKG9Ub2tlbjogYW55KSB7XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQoeyB0b2tlbjogb1Rva2VuIH0pO1xuICB9XG5cbiAgY2xlYXJNZXNzYWdlKCkge1xuICAgIHRoaXMuc3ViamVjdC5uZXh0KCk7XG4gIH1cblxuICBnZXRNZXNzYWdlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,30 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class ProgressSpinnerService {
5
+ constructor() {
6
+ this.subject = new Subject();
7
+ }
8
+ /**
9
+ * Function to show/hide spinner
10
+ * @param bShow - true: show spinner, false: hide spinner
11
+ */
12
+ sendMessage(bShow) {
13
+ this.subject.next({ show: bShow });
14
+ }
15
+ clearMessage() {
16
+ this.subject.next();
17
+ }
18
+ getMessage() {
19
+ return this.subject.asObservable();
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressSpinnerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
22
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressSpinnerService, providedIn: 'root' }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ProgressSpinnerService, decorators: [{
25
+ type: Injectable,
26
+ args: [{
27
+ providedIn: 'root'
28
+ }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3Mtc3Bpbm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19tZXNzYWdlcy9wcm9ncmVzcy1zcGlubmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUszQyxNQUFNLE9BQU8sc0JBQXNCO0lBSG5DO1FBSVUsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO0tBaUJoRDtJQWZDOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7K0dBakJVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzU3Bpbm5lclNlcnZpY2Uge1xuICBwcml2YXRlIHN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkIHwgb2JqZWN0PigpO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBzaG93L2hpZGUgc3Bpbm5lclxuICAgKiBAcGFyYW0gYlNob3cgLSB0cnVlOiBzaG93IHNwaW5uZXIsIGZhbHNlOiBoaWRlIHNwaW5uZXJcbiAgICovXG4gIHNlbmRNZXNzYWdlKGJTaG93OiBib29sZWFuKSB7XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQoeyBzaG93OiBiU2hvdyB9KTtcbiAgfVxuXG4gIGNsZWFyTWVzc2FnZSgpIHtcbiAgICB0aGlzLnN1YmplY3QubmV4dCgpO1xuICB9XG5cbiAgZ2V0TWVzc2FnZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class ResetPConnectService {
5
+ constructor() {
6
+ this.subject = new Subject();
7
+ }
8
+ /**
9
+ * function to reset pConnect
10
+ * @param bReset - true: reset pconnect, false - do nothing
11
+ * @param sType - what causing the reset, so far (cancel, finishAssignment)
12
+ */
13
+ sendMessage(bReset, sType) {
14
+ this.subject.next({ reset: bReset, type: sType });
15
+ }
16
+ clearMessage() {
17
+ this.subject.next();
18
+ }
19
+ getMessage() {
20
+ return this.subject.asObservable();
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResetPConnectService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResetPConnectService, providedIn: 'root' }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResetPConnectService, decorators: [{
26
+ type: Injectable,
27
+ args: [{
28
+ providedIn: 'root'
29
+ }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtcGNvbm5lY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fbWVzc2FnZXMvcmVzZXQtcGNvbm5lY3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxvQkFBb0I7SUFIakM7UUFJVSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7S0FrQmhEO0lBaEJDOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsTUFBZSxFQUFFLEtBQWE7UUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDOytHQWxCVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZXNldFBDb25uZWN0U2VydmljZSB7XG4gIHByaXZhdGUgc3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQgfCBvYmplY3Q+KCk7XG5cbiAgLyoqXG4gICAqIGZ1bmN0aW9uIHRvIHJlc2V0IHBDb25uZWN0XG4gICAqIEBwYXJhbSBiUmVzZXQgLSB0cnVlOiByZXNldCBwY29ubmVjdCwgZmFsc2UgLSBkbyBub3RoaW5nXG4gICAqIEBwYXJhbSBzVHlwZSAtIHdoYXQgY2F1c2luZyB0aGUgcmVzZXQsIHNvIGZhciAoY2FuY2VsLCBmaW5pc2hBc3NpZ25tZW50KVxuICAgKi9cbiAgc2VuZE1lc3NhZ2UoYlJlc2V0OiBib29sZWFuLCBzVHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zdWJqZWN0Lm5leHQoeyByZXNldDogYlJlc2V0LCB0eXBlOiBzVHlwZSB9KTtcbiAgfVxuXG4gIGNsZWFyTWVzc2FnZSgpIHtcbiAgICB0aGlzLnN1YmplY3QubmV4dCgpO1xuICB9XG5cbiAgZ2V0TWVzc2FnZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbn1cbiJdfQ==