@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,139 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatInputModule } from '@angular/material/input';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
+ import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
7
+ import { MatSort, MatSortModule } from '@angular/material/sort';
8
+ import { MatTableDataSource, MatTableModule } from '@angular/material/table';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../../_messages/progress-spinner.service";
11
+ import * as i2 from "../../../_helpers/utils";
12
+ import * as i3 from "@angular/common";
13
+ import * as i4 from "@angular/material/form-field";
14
+ import * as i5 from "@angular/material/icon";
15
+ import * as i6 from "@angular/material/input";
16
+ import * as i7 from "@angular/material/table";
17
+ import * as i8 from "@angular/material/sort";
18
+ import * as i9 from "@angular/material/paginator";
19
+ export class RepeatingStructuresComponent {
20
+ constructor(psService, utils) {
21
+ this.psService = psService;
22
+ this.utils = utils;
23
+ this.displayedColumns$ = Array();
24
+ }
25
+ ngOnInit() {
26
+ const componentConfig = this.pConn$.getRawMetadata().config || { fields: [] };
27
+ this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
28
+ this.fields$ = this.initializeColumns(componentConfig.fields);
29
+ const refList = this.configProps$.referenceList;
30
+ // @ts-ignore - second parameter pageReference for getValue method should be optional
31
+ const tableDataResults = JSON.parse(JSON.stringify(this.pConn$.getValue(refList)));
32
+ // update elements like date format
33
+ const updatedRefList = this.updateData(tableDataResults, this.fields$);
34
+ this.repeatList$ = new MatTableDataSource(updatedRefList);
35
+ this.displayedColumns$ = this.getDisplayColumns(this.fields$);
36
+ this.repeatList$.paginator = this.paginator;
37
+ }
38
+ ngAfterViewInit() {
39
+ // paginator has to exist for this to work,
40
+ // so called after init (paginator drawn)
41
+ this.repeatList$.paginator = this.paginator;
42
+ this.repeatList$.sort = this.sort;
43
+ }
44
+ applySearch(event) {
45
+ const filterValue = event.target.value;
46
+ this.repeatList$.filter = filterValue.trim().toLowerCase();
47
+ if (this.repeatList$.paginator) {
48
+ this.repeatList$.paginator.firstPage();
49
+ }
50
+ }
51
+ rowClick(row) {
52
+ // eslint-disable-next-line sonarjs/no-small-switch
53
+ switch (this.configProps$.rowClickAction) {
54
+ case 'openAssignment':
55
+ this.psService.sendMessage(true);
56
+ this.openAssignment(row);
57
+ break;
58
+ default:
59
+ break;
60
+ }
61
+ }
62
+ updateData(listData, fieldData) {
63
+ const returnList = new Array();
64
+ listData.forEach(row => {
65
+ // copy
66
+ const rowData = JSON.parse(JSON.stringify(listData[row]));
67
+ for (let fieldIndex = 0; fieldIndex < fieldData.length; fieldIndex++) {
68
+ if (fieldData[fieldIndex].type == 'date') {
69
+ const fieldName = fieldData[fieldIndex].name;
70
+ const formattedDate = rowData[fieldName];
71
+ // format date
72
+ // formattedDate = formattedDate.replace("GMT", "+0000");
73
+ this.utils.generateDateTime(formattedDate, 'MMMM D, YYYY h:mm:ss A');
74
+ // update
75
+ rowData[fieldName] = formattedDate;
76
+ }
77
+ }
78
+ returnList.push(rowData);
79
+ });
80
+ return returnList;
81
+ }
82
+ openAssignment(row) {
83
+ const { pxRefObjectClass, pzInsKey } = row;
84
+ const sTarget = this.pConn$.getContainerName();
85
+ const options = { containerName: sTarget };
86
+ this.pConn$
87
+ .getActionsApi()
88
+ .openAssignment(pzInsKey, pxRefObjectClass, options)
89
+ .then(() => { });
90
+ }
91
+ initializeData(data) {
92
+ data.forEach((item, idx) => {
93
+ item.__original_index = idx;
94
+ item.__level = 1;
95
+ });
96
+ return data;
97
+ }
98
+ getType(field) {
99
+ const { config = {}, type } = field;
100
+ const { formatType } = config;
101
+ if (formatType === 'datetime' || formatType === 'date') {
102
+ // currently cosmos has only support for date ... it also need to support dateTime
103
+ return 'date';
104
+ }
105
+ return type.toLowerCase();
106
+ }
107
+ initializeColumns(fields = []) {
108
+ return fields.map((field, originalColIndex) => ({
109
+ ...field,
110
+ type: this.getType(field),
111
+ name: field.config.value.substring(4),
112
+ label: field.config.label.substring(3),
113
+ id: originalColIndex,
114
+ groupingEnabled: true,
115
+ grouped: false,
116
+ minWidth: 50,
117
+ cellRenderer: this.getType(field) === 'text' ? null : field.type,
118
+ filter: true
119
+ }));
120
+ }
121
+ getDisplayColumns(fields = []) {
122
+ return fields.map((field) => field.name);
123
+ }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RepeatingStructuresComponent, deps: [{ token: i1.ProgressSpinnerService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
125
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RepeatingStructuresComponent, isStandalone: true, selector: "app-repeating-structures", inputs: { pConn$: "pConn$" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<div>\n <mat-form-field class=\"psdk-search\">\n <mat-label\n ><mat-icon class=\"psdk-icon-search\" style=\"transform: scale(1.2); width: 2rem; vertical-align: sub\" svgIcon=\"magnify\" mastListIcon></mat-icon>\n Search</mat-label\n >\n <input matInput (keyup)=\"applySearch($event)\" placeholder=\"\" />\n </mat-form-field>\n\n <table mat-table [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ dCol.label }}</th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.name] }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\" (click)=\"rowClick(row)\"></tr>\n </table>\n\n <mat-paginator [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n</div>\n", styles: ["table{width:100%}.mat-mdc-row .mat-mdc-cell{text-align:left}.psdk-search{padding-left:.625rem}.psdk-icon-search{vertical-align:sub;padding:0rem .125rem;min-width:unset}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i7.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i7.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i7.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i7.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i7.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i7.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i7.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i7.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i7.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i7.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i8.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i8.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i9.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }] }); }
126
+ }
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RepeatingStructuresComponent, decorators: [{
128
+ type: Component,
129
+ args: [{ selector: 'app-repeating-structures', standalone: true, imports: [CommonModule, MatFormFieldModule, MatIconModule, MatInputModule, MatTableModule, MatSortModule, MatPaginatorModule], template: "<div>\n <mat-form-field class=\"psdk-search\">\n <mat-label\n ><mat-icon class=\"psdk-icon-search\" style=\"transform: scale(1.2); width: 2rem; vertical-align: sub\" svgIcon=\"magnify\" mastListIcon></mat-icon>\n Search</mat-label\n >\n <input matInput (keyup)=\"applySearch($event)\" placeholder=\"\" />\n </mat-form-field>\n\n <table mat-table [dataSource]=\"repeatList$\" matSort>\n <ng-container *ngFor=\"let dCol of fields$\" [matColumnDef]=\"dCol.name\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ dCol.label }}</th>\n <td mat-cell *matCellDef=\"let element\">{{ element[dCol.name] }}</td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns$\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns$\" (click)=\"rowClick(row)\"></tr>\n </table>\n\n <mat-paginator [pageSizeOptions]=\"[10, 20, 50, 100, 500]\" showFirstLastButtons></mat-paginator>\n</div>\n", styles: ["table{width:100%}.mat-mdc-row .mat-mdc-cell{text-align:left}.psdk-search{padding-left:.625rem}.psdk-icon-search{vertical-align:sub;padding:0rem .125rem;min-width:unset}\n"] }]
130
+ }], ctorParameters: function () { return [{ type: i1.ProgressSpinnerService }, { type: i2.Utils }]; }, propDecorators: { paginator: [{
131
+ type: ViewChild,
132
+ args: [MatPaginator]
133
+ }], sort: [{
134
+ type: ViewChild,
135
+ args: [MatSort]
136
+ }], pConn$: [{
137
+ type: Input
138
+ }] } });
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0aW5nLXN0cnVjdHVyZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1zZGstY29tcG9uZW50cy9zcmMvbGliL19jb21wb25lbnRzL3RlbXBsYXRlL3JlcGVhdGluZy1zdHJ1Y3R1cmVzL3JlcGVhdGluZy1zdHJ1Y3R1cmVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9yZXBlYXRpbmctc3RydWN0dXJlcy9yZXBlYXRpbmctc3RydWN0dXJlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFnQjdFLE1BQU0sT0FBTyw0QkFBNEI7SUFVdkMsWUFDVSxTQUFpQyxFQUNqQyxLQUFZO1FBRFosY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDakMsVUFBSyxHQUFMLEtBQUssQ0FBTztR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NUIsNEJBQTRCLDZKQUM1QixZQUFZLHVFQUNaLE9BQU8sZ0RDekJwQixxOEJBcUJBLG1PREFZLFlBQVksMkpBQUUsa0JBQWtCLDBTQUFFLGFBQWEsbUxBQUUsY0FBYywwV0FBRSxjQUFjLGdoQ0FBRSxhQUFhLGlkQUFFLGtCQUFrQjs7NEZBRWpILDRCQUE0QjtrQkFQeEMsU0FBUzsrQkFDRSwwQkFBMEIsY0FHeEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQztpSUFHcEcsU0FBUztzQkFBakMsU0FBUzt1QkFBQyxZQUFZO2dCQUNILElBQUk7c0JBQXZCLFNBQVM7dUJBQUMsT0FBTztnQkFDVCxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IsIE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBNYXRTb3J0LCBNYXRTb3J0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UsIE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NTcGlubmVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXNzYWdlcy9wcm9ncmVzcy1zcGlubmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9faGVscGVycy91dGlscyc7XG5cbmludGVyZmFjZSBSZXBlYXRpbmdTdHJ1Y3R1cmVzUHJvcHMge1xuICByZWZlcmVuY2VMaXN0PzogYW55W107XG4gIHJvd0NsaWNrQWN0aW9uPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcmVwZWF0aW5nLXN0cnVjdHVyZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVwZWF0aW5nLXN0cnVjdHVyZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXBlYXRpbmctc3RydWN0dXJlcy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdElucHV0TW9kdWxlLCBNYXRUYWJsZU1vZHVsZSwgTWF0U29ydE1vZHVsZSwgTWF0UGFnaW5hdG9yTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBSZXBlYXRpbmdTdHJ1Y3R1cmVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7XG4gIEBJbnB1dCgpIHBDb25uJDogdHlwZW9mIFBDb25uZWN0O1xuXG4gIGNvbmZpZ1Byb3BzJDogUmVwZWF0aW5nU3RydWN0dXJlc1Byb3BzO1xuICByZXBlYXRMaXN0JDogTWF0VGFibGVEYXRhU291cmNlPGFueT47XG4gIGZpZWxkcyQ6IGFueVtdO1xuICBkaXNwbGF5ZWRDb2x1bW5zJCA9IEFycmF5PHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBzU2VydmljZTogUHJvZ3Jlc3NTcGlubmVyU2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9uZW50Q29uZmlnID0gKHRoaXMucENvbm4kLmdldFJhd01ldGFkYXRhKCkgYXMgYW55KS5jb25maWcgfHwgeyBmaWVsZHM6IFtdIH07XG4gICAgdGhpcy5jb25maWdQcm9wcyQgPSB0aGlzLnBDb25uJC5yZXNvbHZlQ29uZmlnUHJvcHModGhpcy5wQ29ubiQuZ2V0Q29uZmlnUHJvcHMoKSk7XG4gICAgdGhpcy5maWVsZHMkID0gdGhpcy5pbml0aWFsaXplQ29sdW1ucyhjb21wb25lbnRDb25maWcuZmllbGRzKTtcblxuICAgIGNvbnN0IHJlZkxpc3QgPSB0aGlzLmNvbmZpZ1Byb3BzJC5yZWZlcmVuY2VMaXN0O1xuICAgIC8vIEB0cy1pZ25vcmUgLSBzZWNvbmQgcGFyYW1ldGVyIHBhZ2VSZWZlcmVuY2UgZm9yIGdldFZhbHVlIG1ldGhvZCBzaG91bGQgYmUgb3B0aW9uYWxcbiAgICBjb25zdCB0YWJsZURhdGFSZXN1bHRzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnBDb25uJC5nZXRWYWx1ZShyZWZMaXN0KSkpO1xuXG4gICAgLy8gdXBkYXRlIGVsZW1lbnRzIGxpa2UgZGF0ZSBmb3JtYXRcbiAgICBjb25zdCB1cGRhdGVkUmVmTGlzdCA9IHRoaXMudXBkYXRlRGF0YSh0YWJsZURhdGFSZXN1bHRzLCB0aGlzLmZpZWxkcyQpO1xuXG4gICAgdGhpcy5yZXBlYXRMaXN0JCA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UodXBkYXRlZFJlZkxpc3QpO1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyQgPSB0aGlzLmdldERpc3BsYXlDb2x1bW5zKHRoaXMuZmllbGRzJCk7XG4gICAgdGhpcy5yZXBlYXRMaXN0JC5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBwYWdpbmF0b3IgaGFzIHRvIGV4aXN0IGZvciB0aGlzIHRvIHdvcmssXG4gICAgLy8gc28gY2FsbGVkIGFmdGVyIGluaXQgKHBhZ2luYXRvciBkcmF3bilcbiAgICB0aGlzLnJlcGVhdExpc3QkLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuICAgIHRoaXMucmVwZWF0TGlzdCQuc29ydCA9IHRoaXMuc29ydDtcbiAgfVxuXG4gIGFwcGx5U2VhcmNoKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICB0aGlzLnJlcGVhdExpc3QkLmZpbHRlciA9IGZpbHRlclZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKHRoaXMucmVwZWF0TGlzdCQucGFnaW5hdG9yKSB7XG4gICAgICB0aGlzLnJlcGVhdExpc3QkLnBhZ2luYXRvci5maXJzdFBhZ2UoKTtcbiAgICB9XG4gIH1cblxuICByb3dDbGljayhyb3cpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9uby1zbWFsbC1zd2l0Y2hcbiAgICBzd2l0Y2ggKHRoaXMuY29uZmlnUHJvcHMkLnJvd0NsaWNrQWN0aW9uKSB7XG4gICAgICBjYXNlICdvcGVuQXNzaWdubWVudCc6XG4gICAgICAgIHRoaXMucHNTZXJ2aWNlLnNlbmRNZXNzYWdlKHRydWUpO1xuICAgICAgICB0aGlzLm9wZW5Bc3NpZ25tZW50KHJvdyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlRGF0YShsaXN0RGF0YTogYW55W10sIGZpZWxkRGF0YTogYW55W10pOiBhbnlbXSB7XG4gICAgY29uc3QgcmV0dXJuTGlzdDogYW55W10gPSBuZXcgQXJyYXk8YW55PigpO1xuICAgIGxpc3REYXRhLmZvckVhY2gocm93ID0+IHtcbiAgICAgIC8vIGNvcHlcbiAgICAgIGNvbnN0IHJvd0RhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGxpc3REYXRhW3Jvd10pKTtcblxuICAgICAgZm9yIChsZXQgZmllbGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBmaWVsZERhdGEubGVuZ3RoOyBmaWVsZEluZGV4KyspIHtcbiAgICAgICAgaWYgKGZpZWxkRGF0YVtmaWVsZEluZGV4XS50eXBlID09ICdkYXRlJykge1xuICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGZpZWxkRGF0YVtmaWVsZEluZGV4XS5uYW1lO1xuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSByb3dEYXRhW2ZpZWxkTmFtZV07XG5cbiAgICAgICAgICAvLyBmb3JtYXQgZGF0ZVxuICAgICAgICAgIC8vIGZvcm1hdHRlZERhdGUgPSBmb3JtYXR0ZWREYXRlLnJlcGxhY2UoXCJHTVRcIiwgXCIrMDAwMFwiKTtcbiAgICAgICAgICB0aGlzLnV0aWxzLmdlbmVyYXRlRGF0ZVRpbWUoZm9ybWF0dGVkRGF0ZSwgJ01NTU0gRCwgWVlZWSBoOm1tOnNzIEEnKTtcblxuICAgICAgICAgIC8vIHVwZGF0ZVxuICAgICAgICAgIHJvd0RhdGFbZmllbGROYW1lXSA9IGZvcm1hdHRlZERhdGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybkxpc3QucHVzaChyb3dEYXRhKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmV0dXJuTGlzdDtcbiAgfVxuXG4gIG9wZW5Bc3NpZ25tZW50KHJvdykge1xuICAgIGNvbnN0IHsgcHhSZWZPYmplY3RDbGFzcywgcHpJbnNLZXkgfSA9IHJvdztcbiAgICBjb25zdCBzVGFyZ2V0ID0gdGhpcy5wQ29ubiQuZ2V0Q29udGFpbmVyTmFtZSgpO1xuICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IHsgY29udGFpbmVyTmFtZTogc1RhcmdldCB9O1xuICAgIHRoaXMucENvbm4kXG4gICAgICAuZ2V0QWN0aW9uc0FwaSgpXG4gICAgICAub3BlbkFzc2lnbm1lbnQocHpJbnNLZXksIHB4UmVmT2JqZWN0Q2xhc3MsIG9wdGlvbnMpXG4gICAgICAudGhlbigoKSA9PiB7fSk7XG4gIH1cblxuICBpbml0aWFsaXplRGF0YShkYXRhKSB7XG4gICAgZGF0YS5mb3JFYWNoKChpdGVtLCBpZHgpID0+IHtcbiAgICAgIGl0ZW0uX19vcmlnaW5hbF9pbmRleCA9IGlkeDtcbiAgICAgIGl0ZW0uX19sZXZlbCA9IDE7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGdldFR5cGUoZmllbGQpIHtcbiAgICBjb25zdCB7IGNvbmZpZyA9IHt9LCB0eXBlIH0gPSBmaWVsZDtcbiAgICBjb25zdCB7IGZvcm1hdFR5cGUgfSA9IGNvbmZpZztcbiAgICBpZiAoZm9ybWF0VHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBmb3JtYXRUeXBlID09PSAnZGF0ZScpIHtcbiAgICAgIC8vIGN1cnJlbnRseSBjb3Ntb3MgaGFzIG9ubHkgc3VwcG9ydCBmb3IgZGF0ZSAuLi4gaXQgYWxzbyBuZWVkIHRvIHN1cHBvcnQgZGF0ZVRpbWVcbiAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgfVxuICAgIHJldHVybiB0eXBlLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBpbml0aWFsaXplQ29sdW1ucyhmaWVsZHMgPSBbXSkge1xuICAgIHJldHVybiBmaWVsZHMubWFwKChmaWVsZDogYW55LCBvcmlnaW5hbENvbEluZGV4KSA9PiAoe1xuICAgICAgLi4uZmllbGQsXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGUoZmllbGQpLFxuICAgICAgbmFtZTogZmllbGQuY29uZmlnLnZhbHVlLnN1YnN0cmluZyg0KSxcbiAgICAgIGxhYmVsOiBmaWVsZC5jb25maWcubGFiZWwuc3Vic3RyaW5nKDMpLFxuICAgICAgaWQ6IG9yaWdpbmFsQ29sSW5kZXgsXG4gICAgICBncm91cGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICBncm91cGVkOiBmYWxzZSxcbiAgICAgIG1pbldpZHRoOiA1MCxcbiAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5nZXRUeXBlKGZpZWxkKSA9PT0gJ3RleHQnID8gbnVsbCA6IGZpZWxkLnR5cGUsXG4gICAgICBmaWx0ZXI6IHRydWVcbiAgICB9KSk7XG4gIH1cblxuICBnZXREaXNwbGF5Q29sdW1ucyhmaWVsZHM6IGFueVtdID0gW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGZpZWxkcy5tYXAoKGZpZWxkOiBhbnkpID0+IGZpZWxkLm5hbWUpO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJwc2RrLXNlYXJjaFwiPlxuICAgIDxtYXQtbGFiZWxcbiAgICAgID48bWF0LWljb24gY2xhc3M9XCJwc2RrLWljb24tc2VhcmNoXCIgc3R5bGU9XCJ0cmFuc2Zvcm06IHNjYWxlKDEuMik7IHdpZHRoOiAycmVtOyB2ZXJ0aWNhbC1hbGlnbjogc3ViXCIgc3ZnSWNvbj1cIm1hZ25pZnlcIiBtYXN0TGlzdEljb24+PC9tYXQtaWNvbj5cbiAgICAgIFNlYXJjaDwvbWF0LWxhYmVsXG4gICAgPlxuICAgIDxpbnB1dCBtYXRJbnB1dCAoa2V5dXApPVwiYXBwbHlTZWFyY2goJGV2ZW50KVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInJlcGVhdExpc3QkXCIgbWF0U29ydD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkQ29sIG9mIGZpZWxkcyRcIiBbbWF0Q29sdW1uRGVmXT1cImRDb2wubmFtZVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+e3sgZENvbC5sYWJlbCB9fTwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnRbZENvbC5uYW1lXSB9fTwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnMkXCI+PC90cj5cbiAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucyRcIiAoY2xpY2spPVwicm93Q2xpY2socm93KVwiPjwvdHI+XG4gIDwvdGFibGU+XG5cbiAgPG1hdC1wYWdpbmF0b3IgW3BhZ2VTaXplT3B0aW9uc109XCJbMTAsIDIwLCA1MCwgMTAwLCA1MDBdXCIgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM+PC9tYXQtcGFnaW5hdG9yPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,106 @@
1
+ import { Component, Input, forwardRef } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
4
+ import { buildMetaForListView, getContext } from '../simple-table-manual/helpers';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../_bridge/angular-pconnect";
7
+ import * as i2 from "../../../_helpers/utils";
8
+ import * as i3 from "@angular/common";
9
+ export class SimpleTableComponent {
10
+ constructor(angularPConnect, utils) {
11
+ this.angularPConnect = angularPConnect;
12
+ this.utils = utils;
13
+ this.angularPConnectData = {};
14
+ this.bVisible$ = true;
15
+ }
16
+ ngOnInit() {
17
+ // First thing in initialization is registering and subscribing to the AngularPConnect service
18
+ this.angularPConnectData = this.angularPConnect.registerAndSubscribeComponent(this, this.onStateChange);
19
+ // Then, continue on with other initialization
20
+ // call checkAndUpdate when initializing
21
+ this.checkAndUpdate();
22
+ }
23
+ ngOnDestroy() {
24
+ if (this.angularPConnectData.unsubscribeFn) {
25
+ this.angularPConnectData.unsubscribeFn();
26
+ }
27
+ }
28
+ checkAndUpdate() {
29
+ // Should always check the bridge to see if the component should
30
+ // update itself (re-render)
31
+ const bUpdateSelf = this.angularPConnect.shouldComponentUpdate(this);
32
+ // ONLY call updateSelf when the component should update
33
+ if (bUpdateSelf) {
34
+ this.updateSelf();
35
+ }
36
+ }
37
+ // updateSelf
38
+ updateSelf() {
39
+ // moved this from ngOnInit() and call this from there instead...
40
+ this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps());
41
+ if (this.configProps$.visibility != null) {
42
+ // eslint-disable-next-line no-multi-assign
43
+ this.bVisible$ = this.bVisible$ = this.utils.getBooleanValue(this.configProps$.visibility);
44
+ }
45
+ const { multiRecordDisplayAs } = this.configProps$;
46
+ let { contextClass } = this.configProps$;
47
+ if (!contextClass) {
48
+ // @ts-ignore - Property 'getComponentConfig' is private and only accessible within class 'C11nEnv'
49
+ let listName = this.pConn$.getComponentConfig().referenceList;
50
+ listName = PCore.getAnnotationUtils().getPropertyName(listName);
51
+ // @ts-ignore - Property 'getFieldMetadata' is private and only accessible within class 'C11nEnv'
52
+ contextClass = this.pConn$.getFieldMetadata(listName)?.pageClass;
53
+ }
54
+ if (multiRecordDisplayAs === 'fieldGroup') {
55
+ this.fieldGroupProps = { ...this.configProps$, contextClass };
56
+ }
57
+ const { label: labelProp, propertyLabel, displayMode, fieldMetadata, hideLabel, parameters, isDataObject, type, ruleClass, authorContext, name } = this.configProps$;
58
+ const label = labelProp || propertyLabel;
59
+ const propsToUse = { label, ...this.pConn$.getInheritedProps() };
60
+ const isDisplayModeEnabled = displayMode === 'DISPLAY_ONLY';
61
+ if (fieldMetadata && fieldMetadata.type === 'Page List' && fieldMetadata.dataRetrievalType === 'refer') {
62
+ const { children: [{ children: rawFields }], parameters: rawParams } = this.pConn$.getRawMetadata().config;
63
+ if (isDisplayModeEnabled && hideLabel) {
64
+ propsToUse.label = '';
65
+ }
66
+ const metaForListView = buildMetaForListView(fieldMetadata, rawFields, type, ruleClass, name, propsToUse.label, isDataObject, parameters // resolved params
67
+ );
68
+ const metaForPConnect = JSON.parse(JSON.stringify(metaForListView));
69
+ // @ts-ignore - PCore.getMetadataUtils().getPropertyMetadata - An argument for 'currentClassID' was not provided.
70
+ metaForPConnect.config.parameters = rawParams ?? PCore.getMetadataUtils().getPropertyMetadata(name)?.datasource?.parameters;
71
+ const { referenceListStr: referenceList } = getContext(this.pConn$);
72
+ let requiredContextForQueryInDisplayMode = {};
73
+ if (isDisplayModeEnabled) {
74
+ requiredContextForQueryInDisplayMode = {
75
+ referenceList
76
+ };
77
+ }
78
+ const options = {
79
+ context: this.pConn$.getContextName(),
80
+ pageReference: this.pConn$.getPageReference(),
81
+ ...requiredContextForQueryInDisplayMode
82
+ };
83
+ this.refToPConnect = PCore.createPConnect({ meta: metaForPConnect, options }).getPConnect();
84
+ this.listViewProps = {
85
+ ...metaForListView.config,
86
+ displayMode,
87
+ fieldName: authorContext
88
+ };
89
+ }
90
+ }
91
+ // Callback passed when subscribing to store change
92
+ onStateChange() {
93
+ this.checkAndUpdate();
94
+ }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SimpleTableComponent, deps: [{ token: i1.AngularPConnectService }, { token: i2.Utils }], target: i0.ɵɵFactoryTarget.Component }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SimpleTableComponent, isStandalone: true, selector: "app-simple-table", inputs: { pConn$: "pConn$", formGroup$: "formGroup$" }, ngImport: i0, template: "<ng-container *ngIf=\"bVisible$\">\n <div *ngIf=\"fieldGroupProps || listViewProps; else table\">\n <div *ngIf=\"fieldGroupProps\">\n <component-mapper name=\"FieldGroupTemplate\" [props]=\"{ configProps$: fieldGroupProps, pConn$, formGroup$ }\"></component-mapper>\n </div>\n <div *ngIf=\"listViewProps\">\n <component-mapper name=\"ListView\" [props]=\"{ pConn$: refToPConnect, payload: listViewProps }\"></component-mapper>\n </div>\n </div>\n <ng-template #table>\n <component-mapper name=\"SimpleTableManual\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(function () { return CommonModule; }) }, { kind: "directive", type: i0.forwardRef(function () { return i3.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(function () { return ComponentMapperComponent; }), selector: "component-mapper", inputs: ["name", "props", "errorMsg", "outputEvents", "parent"] }] }); }
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SimpleTableComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ selector: 'app-simple-table', standalone: true, imports: [CommonModule, forwardRef(() => ComponentMapperComponent)], template: "<ng-container *ngIf=\"bVisible$\">\n <div *ngIf=\"fieldGroupProps || listViewProps; else table\">\n <div *ngIf=\"fieldGroupProps\">\n <component-mapper name=\"FieldGroupTemplate\" [props]=\"{ configProps$: fieldGroupProps, pConn$, formGroup$ }\"></component-mapper>\n </div>\n <div *ngIf=\"listViewProps\">\n <component-mapper name=\"ListView\" [props]=\"{ pConn$: refToPConnect, payload: listViewProps }\"></component-mapper>\n </div>\n </div>\n <ng-template #table>\n <component-mapper name=\"SimpleTableManual\" [props]=\"{ pConn$, formGroup$ }\"></component-mapper>\n </ng-template>\n</ng-container>\n" }]
101
+ }], ctorParameters: function () { return [{ type: i1.AngularPConnectService }, { type: i2.Utils }]; }, propDecorators: { pConn$: [{
102
+ type: Input
103
+ }], formGroup$: [{
104
+ type: Input
105
+ }] } });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW1wbGUtdGFibGUvc2ltcGxlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDeEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQTJCbEYsTUFBTSxPQUFPLG9CQUFvQjtJQVkvQixZQUNVLGVBQXVDLEVBQ3ZDLEtBQVk7UUFEWixvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDdkMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQVZ0Qix3QkFBbUIsR0FBd0IsRUFBRSxDQUFDO1FBRTlDLGNBQVMsR0FBRyxJQUFJLENBQUM7SUFTZCxDQUFDO0lBRUosUUFBUTtRQUNOLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hHLDhDQUE4QztRQUU5Qyx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lB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QixvQkFBb0Isb0lDakNqQyw0bkJBYUEsNEZEa0JZLFlBQVksaU5BQW1CLHdCQUF3Qjs7NEZBRXRELG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FHaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2lJQUcxRCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgZm9yd2FyZFJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQW5ndWxhclBDb25uZWN0RGF0YSwgQW5ndWxhclBDb25uZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvYW5ndWxhci1wY29ubmVjdCc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uLy4uLy4uL19oZWxwZXJzL3V0aWxzJztcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL19icmlkZ2UvY29tcG9uZW50LW1hcHBlci9jb21wb25lbnQtbWFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBidWlsZE1ldGFGb3JMaXN0VmlldywgZ2V0Q29udGV4dCB9IGZyb20gJy4uL3NpbXBsZS10YWJsZS1tYW51YWwvaGVscGVycyc7XG5cbmludGVyZmFjZSBTaW1wbGVUYWJsZVByb3BzIHtcbiAgLy8gSWYgYW55LCBlbnRlciBhZGRpdGlvbmFsIHByb3BzIHRoYXQgb25seSBleGlzdCBvbiB0aGlzIGNvbXBvbmVudFxuICBtdWx0aVJlY29yZERpc3BsYXlBczogc3RyaW5nO1xuICBjb250ZXh0Q2xhc3M6IGFueTtcbiAgdmlzaWJpbGl0eTogYm9vbGVhbjtcbiAgbGFiZWw6IHN0cmluZztcbiAgcHJvcGVydHlMYWJlbDogc3RyaW5nO1xuICBkaXNwbGF5TW9kZTogc3RyaW5nO1xuICBmaWVsZE1ldGFkYXRhOiBhbnk7XG4gIGhpZGVMYWJlbDogYm9vbGVhbjtcbiAgcGFyYW1ldGVyczogYW55O1xuICBpc0RhdGFPYmplY3Q6IGJvb2xlYW47XG4gIHR5cGU6IHN0cmluZztcbiAgcnVsZUNsYXNzOiBzdHJpbmc7XG4gIGF1dGhvckNvbnRleHQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2ltcGxlLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpbXBsZS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpbXBsZS10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBmb3J3YXJkUmVmKCgpID0+IENvbXBvbmVudE1hcHBlckNvbXBvbmVudCldXG59KVxuZXhwb3J0IGNsYXNzIFNpbXBsZVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwQ29ubiQ6IHR5cGVvZiBQQ29ubmVjdDtcbiAgQElucHV0KCkgZm9ybUdyb3VwJDogRm9ybUdyb3VwO1xuXG4gIGFuZ3VsYXJQQ29ubmVjdERhdGE6IEFuZ3VsYXJQQ29ubmVjdERhdGEgPSB7fTtcblxuICBiVmlzaWJsZSQgPSB0cnVlO1xuICBjb25maWdQcm9wcyQ6IFNpbXBsZVRhYmxlUHJvcHM7XG4gIGZpZWxkR3JvdXBQcm9wczogYW55O1xuICBsaXN0Vmlld1Byb3BzOiBhbnk7XG4gIHJlZlRvUENvbm5lY3Q6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFuZ3VsYXJQQ29ubmVjdDogQW5ndWxhclBDb25uZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxzOiBVdGlsc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gRmlyc3QgdGhpbmcgaW4gaW5pdGlhbGl6YXRpb24gaXMgcmVnaXN0ZXJpbmcgYW5kIHN1YnNjcmliaW5nIHRvIHRoZSBBbmd1bGFyUENvbm5lY3Qgc2VydmljZVxuICAgIHRoaXMuYW5ndWxhclBDb25uZWN0RGF0YSA9IHRoaXMuYW5ndWxhclBDb25uZWN0LnJlZ2lzdGVyQW5kU3Vic2NyaWJlQ29tcG9uZW50KHRoaXMsIHRoaXMub25TdGF0ZUNoYW5nZSk7XG4gICAgLy8gVGhlbiwgY29udGludWUgb24gd2l0aCBvdGhlciBpbml0aWFsaXphdGlvblxuXG4gICAgLy8gY2FsbCBjaGVja0FuZFVwZGF0ZSB3aGVuIGluaXRpYWxpemluZ1xuICAgIHRoaXMuY2hlY2tBbmRVcGRhdGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFuZ3VsYXJQQ29ubmVjdERhdGEudW5zdWJzY3JpYmVGbikge1xuICAgICAgdGhpcy5hbmd1bGFyUENvbm5lY3REYXRhLnVuc3Vic2NyaWJlRm4oKTtcbiAgICB9XG4gIH1cblxuICBjaGVja0FuZFVwZGF0ZSgpIHtcbiAgICAvLyBTaG91bGQgYWx3YXlzIGNoZWNrIHRoZSBicmlkZ2UgdG8gc2VlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkXG4gICAgLy8gdXBkYXRlIGl0c2VsZiAocmUtcmVuZGVyKVxuICAgIGNvbnN0IGJVcGRhdGVTZWxmID0gdGhpcy5hbmd1bGFyUENvbm5lY3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKHRoaXMpO1xuXG4gICAgLy8gT05MWSBjYWxsIHVwZGF0ZVNlbGYgd2hlbiB0aGUgY29tcG9uZW50IHNob3VsZCB1cGRhdGVcbiAgICBpZiAoYlVwZGF0ZVNlbGYpIHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHVwZGF0ZVNlbGZcbiAgdXBkYXRlU2VsZigpOiB2b2lkIHtcbiAgICAvLyBtb3ZlZCB0aGlzIGZyb20gbmdPbkluaXQoKSBhbmQgY2FsbCB0aGlzIGZyb20gdGhlcmUgaW5zdGVhZC4uLlxuICAgIHRoaXMuY29uZmlnUHJvcHMkID0gdGhpcy5wQ29ubiQucmVzb2x2ZUNvbmZpZ1Byb3BzKHRoaXMucENvbm4kLmdldENvbmZpZ1Byb3BzKCkpIGFzIFNpbXBsZVRhYmxlUHJvcHM7XG5cbiAgICBpZiAodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSAhPSBudWxsKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbXVsdGktYXNzaWduXG4gICAgICB0aGlzLmJWaXNpYmxlJCA9IHRoaXMuYlZpc2libGUkID0gdGhpcy51dGlscy5nZXRCb29sZWFuVmFsdWUodGhpcy5jb25maWdQcm9wcyQudmlzaWJpbGl0eSk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBtdWx0aVJlY29yZERpc3BsYXlBcyB9ID0gdGhpcy5jb25maWdQcm9wcyQ7XG4gICAgbGV0IHsgY29udGV4dENsYXNzIH0gPSB0aGlzLmNvbmZpZ1Byb3BzJDtcbiAgICBpZiAoIWNvbnRleHRDbGFzcykge1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIFByb3BlcnR5ICdnZXRDb21wb25lbnRDb25maWcnIGlzIHByaXZhdGUgYW5kIG9ubHkgYWNjZXNzaWJsZSB3aXRoaW4gY2xhc3MgJ0MxMW5FbnYnXG4gICAgICBsZXQgbGlzdE5hbWUgPSB0aGlzLnBDb25uJC5nZXRDb21wb25lbnRDb25maWcoKS5yZWZlcmVuY2VMaXN0O1xuICAgICAgbGlzdE5hbWUgPSBQQ29yZS5nZXRBbm5vdGF0aW9uVXRpbHMoKS5nZXRQcm9wZXJ0eU5hbWUobGlzdE5hbWUpO1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIFByb3BlcnR5ICdnZXRGaWVsZE1ldGFkYXRhJyBpcyBwcml2YXRlIGFuZCBvbmx5IGFjY2Vzc2libGUgd2l0aGluIGNsYXNzICdDMTFuRW52J1xuICAgICAgY29udGV4dENsYXNzID0gdGhpcy5wQ29ubiQuZ2V0RmllbGRNZXRhZGF0YShsaXN0TmFtZSk/LnBhZ2VDbGFzcztcbiAgICB9XG4gICAgaWYgKG11bHRpUmVjb3JkRGlzcGxheUFzID09PSAnZmllbGRHcm91cCcpIHtcbiAgICAgIHRoaXMuZmllbGRHcm91cFByb3BzID0geyAuLi50aGlzLmNvbmZpZ1Byb3BzJCwgY29udGV4dENsYXNzIH07XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgbGFiZWw6IGxhYmVsUHJvcCxcbiAgICAgIHByb3BlcnR5TGFiZWwsXG4gICAgICBkaXNwbGF5TW9kZSxcbiAgICAgIGZpZWxkTWV0YWRhdGEsXG4gICAgICBoaWRlTGFiZWwsXG4gICAgICBwYXJhbWV0ZXJzLFxuICAgICAgaXNEYXRhT2JqZWN0LFxuICAgICAgdHlwZSxcbiAgICAgIHJ1bGVDbGFzcyxcbiAgICAgIGF1dGhvckNvbnRleHQsXG4gICAgICBuYW1lXG4gICAgfSA9IHRoaXMuY29uZmlnUHJvcHMkO1xuXG4gICAgY29uc3QgbGFiZWwgPSBsYWJlbFByb3AgfHwgcHJvcGVydHlMYWJlbDtcblxuICAgIGNvbnN0IHByb3BzVG9Vc2UgPSB7IGxhYmVsLCAuLi50aGlzLnBDb25uJC5nZXRJbmhlcml0ZWRQcm9wcygpIH07XG4gICAgY29uc3QgaXNEaXNwbGF5TW9kZUVuYWJsZWQgPSBkaXNwbGF5TW9kZSA9PT0gJ0RJU1BMQVlfT05MWSc7XG5cbiAgICBpZiAoZmllbGRNZXRhZGF0YSAmJiBmaWVsZE1ldGFkYXRhLnR5cGUgPT09ICdQYWdlIExpc3QnICYmIGZpZWxkTWV0YWRhdGEuZGF0YVJldHJpZXZhbFR5cGUgPT09ICdyZWZlcicpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY2hpbGRyZW46IFt7IGNoaWxkcmVuOiByYXdGaWVsZHMgfV0sXG4gICAgICAgIHBhcmFtZXRlcnM6IHJhd1BhcmFtc1xuICAgICAgfSA9ICh0aGlzLnBDb25uJC5nZXRSYXdNZXRhZGF0YSgpIGFzIGFueSkuY29uZmlnO1xuXG4gICAgICBpZiAoaXNEaXNwbGF5TW9kZUVuYWJsZWQgJiYgaGlkZUxhYmVsKSB7XG4gICAgICAgIHByb3BzVG9Vc2UubGFiZWwgPSAnJztcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWV0YUZvckxpc3RWaWV3ID0gYnVpbGRNZXRhRm9yTGlzdFZpZXcoXG4gICAgICAgIGZpZWxkTWV0YWRhdGEsXG4gICAgICAgIHJhd0ZpZWxkcyxcbiAgICAgICAgdHlwZSxcbiAgICAgICAgcnVsZUNsYXNzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBwcm9wc1RvVXNlLmxhYmVsLFxuICAgICAgICBpc0RhdGFPYmplY3QsXG4gICAgICAgIHBhcmFtZXRlcnMgLy8gcmVzb2x2ZWQgcGFyYW1zXG4gICAgICApO1xuXG4gICAgICBjb25zdCBtZXRhRm9yUENvbm5lY3QgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG1ldGFGb3JMaXN0VmlldykpO1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIFBDb3JlLmdldE1ldGFkYXRhVXRpbHMoKS5nZXRQcm9wZXJ0eU1ldGFkYXRhIC0gQW4gYXJndW1lbnQgZm9yICdjdXJyZW50Q2xhc3NJRCcgd2FzIG5vdCBwcm92aWRlZC5cbiAgICAgIG1ldGFGb3JQQ29ubmVjdC5jb25maWcucGFyYW1ldGVycyA9IHJhd1BhcmFtcyA/PyBQQ29yZS5nZXRNZXRhZGF0YVV0aWxzKCkuZ2V0UHJvcGVydHlNZXRhZGF0YShuYW1lKT8uZGF0YXNvdXJjZT8ucGFyYW1ldGVycztcblxuICAgICAgY29uc3QgeyByZWZlcmVuY2VMaXN0U3RyOiByZWZlcmVuY2VMaXN0IH0gPSBnZXRDb250ZXh0KHRoaXMucENvbm4kKTtcbiAgICAgIGxldCByZXF1aXJlZENvbnRleHRGb3JRdWVyeUluRGlzcGxheU1vZGUgPSB7fTtcbiAgICAgIGlmIChpc0Rpc3BsYXlNb2RlRW5hYmxlZCkge1xuICAgICAgICByZXF1aXJlZENvbnRleHRGb3JRdWVyeUluRGlzcGxheU1vZGUgPSB7XG4gICAgICAgICAgcmVmZXJlbmNlTGlzdFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgY29udGV4dDogdGhpcy5wQ29ubiQuZ2V0Q29udGV4dE5hbWUoKSxcbiAgICAgICAgcGFnZVJlZmVyZW5jZTogdGhpcy5wQ29ubiQuZ2V0UGFnZVJlZmVyZW5jZSgpLFxuICAgICAgICAuLi5yZXF1aXJlZENvbnRleHRGb3JRdWVyeUluRGlzcGxheU1vZGVcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucmVmVG9QQ29ubmVjdCA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KHsgbWV0YTogbWV0YUZvclBDb25uZWN0LCBvcHRpb25zIH0pLmdldFBDb25uZWN0KCk7XG5cbiAgICAgIHRoaXMubGlzdFZpZXdQcm9wcyA9IHtcbiAgICAgICAgLi4ubWV0YUZvckxpc3RWaWV3LmNvbmZpZyxcbiAgICAgICAgZGlzcGxheU1vZGUsXG4gICAgICAgIGZpZWxkTmFtZTogYXV0aG9yQ29udGV4dFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBDYWxsYmFjayBwYXNzZWQgd2hlbiBzdWJzY3JpYmluZyB0byBzdG9yZSBjaGFuZ2VcbiAgb25TdGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNoZWNrQW5kVXBkYXRlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJiVmlzaWJsZSRcIj5cbiAgPGRpdiAqbmdJZj1cImZpZWxkR3JvdXBQcm9wcyB8fCBsaXN0Vmlld1Byb3BzOyBlbHNlIHRhYmxlXCI+XG4gICAgPGRpdiAqbmdJZj1cImZpZWxkR3JvdXBQcm9wc1wiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIkZpZWxkR3JvdXBUZW1wbGF0ZVwiIFtwcm9wc109XCJ7IGNvbmZpZ1Byb3BzJDogZmllbGRHcm91cFByb3BzLCBwQ29ubiQsIGZvcm1Hcm91cCQgfVwiPjwvY29tcG9uZW50LW1hcHBlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibGlzdFZpZXdQcm9wc1wiPlxuICAgICAgPGNvbXBvbmVudC1tYXBwZXIgbmFtZT1cIkxpc3RWaWV3XCIgW3Byb3BzXT1cInsgcENvbm4kOiByZWZUb1BDb25uZWN0LCBwYXlsb2FkOiBsaXN0Vmlld1Byb3BzIH1cIj48L2NvbXBvbmVudC1tYXBwZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI3RhYmxlPlxuICAgIDxjb21wb25lbnQtbWFwcGVyIG5hbWU9XCJTaW1wbGVUYWJsZU1hbnVhbFwiIFtwcm9wc109XCJ7IHBDb25uJCwgZm9ybUdyb3VwJCB9XCI+PC9jb21wb25lbnQtbWFwcGVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,270 @@
1
+ import { getSeconds } from '../../../_helpers/common';
2
+ export const TABLE_CELL = 'SdkRenderer';
3
+ export const DELETE_ICON = 'DeleteIcon';
4
+ // BUG-615253: Workaround for autosize in table with lazy loading components
5
+ /* istanbul ignore next */
6
+ function getFieldWidth(field, label) {
7
+ let width;
8
+ switch (field.type) {
9
+ case 'Time':
10
+ width = 150;
11
+ break;
12
+ case 'Date':
13
+ width = 160;
14
+ break;
15
+ case 'DateTime':
16
+ width = 205;
17
+ break;
18
+ case 'AutoComplete':
19
+ case 'TextArea':
20
+ width = 190;
21
+ break;
22
+ case 'Currency':
23
+ case 'TextInput':
24
+ width = 182;
25
+ break;
26
+ case 'Checkbox':
27
+ // eslint-disable-next-line no-case-declarations
28
+ const text = document.createElement('span');
29
+ document.body.appendChild(text);
30
+ text.style.fontSize = '13px';
31
+ text.style.position = 'absolute';
32
+ text.innerHTML = label;
33
+ width = Math.ceil(text.clientWidth) + 30;
34
+ document.body.removeChild(text);
35
+ break;
36
+ default:
37
+ width = 180;
38
+ }
39
+ return width;
40
+ }
41
+ export const getContext = thePConn => {
42
+ const contextName = thePConn.getContextName();
43
+ const pageReference = thePConn.getPageReference();
44
+ // 8.7 change = referenceList may now be in top-level of state props,
45
+ // not always in config of state props
46
+ let { referenceList } = thePConn.getStateProps()?.config || thePConn.getStateProps();
47
+ const pageReferenceForRows = referenceList.startsWith('.') ? `${pageReference}.${referenceList.substring(1)}` : referenceList;
48
+ // removing "caseInfo.content" prefix to avoid setting it as a target while preparing pageInstructions
49
+ referenceList = pageReferenceForRows.replace(PCore.getConstants().CASE_INFO.CASE_INFO_CONTENT, '');
50
+ return {
51
+ contextName,
52
+ referenceListStr: referenceList,
53
+ pageReferenceForRows
54
+ };
55
+ };
56
+ export const populateRowKey = rawData => {
57
+ return rawData.map((row, index) => {
58
+ return { ...row, index };
59
+ });
60
+ };
61
+ export const getApiContext = (processedData, pConnect, reorderCB) => {
62
+ return {
63
+ fetchData: () => {
64
+ return new Promise(resolve => {
65
+ resolve({
66
+ data: processedData,
67
+ filteredRecordCount: processedData.length,
68
+ totalRecordCount: processedData.length
69
+ });
70
+ });
71
+ },
72
+ fetchPersonalizations: () => {
73
+ return Promise.resolve({});
74
+ },
75
+ applyRowReorder: (sourceKey, destinationKey) => {
76
+ // indexes are keys for simple table so, it should work.
77
+ reorderCB();
78
+ return Promise.resolve(pConnect.getListActions().reorder(parseInt(sourceKey, 10), parseInt(destinationKey, 10)));
79
+ }
80
+ };
81
+ };
82
+ export const buildMetaForListView = (fieldMetadata, fields, type, ruleClass, name, propertyLabel, isDataObject, parameters) => {
83
+ return {
84
+ name,
85
+ config: {
86
+ type,
87
+ referenceList: fieldMetadata.datasource.name,
88
+ parameters: parameters ?? fieldMetadata.datasource.parameters,
89
+ personalization: false,
90
+ isDataObject,
91
+ grouping: true,
92
+ globalSearch: true,
93
+ reorderFields: true,
94
+ toggleFieldVisibility: true,
95
+ title: propertyLabel,
96
+ personalizationId: '' /* TODO */,
97
+ template: 'ListView',
98
+ presets: [
99
+ {
100
+ name: 'presets',
101
+ template: 'Table',
102
+ config: {},
103
+ children: [
104
+ {
105
+ name: 'Columns',
106
+ type: 'Region',
107
+ children: fields
108
+ }
109
+ ],
110
+ label: propertyLabel,
111
+ id: 'P_' /* TODO */
112
+ }
113
+ ],
114
+ ruleClass
115
+ }
116
+ };
117
+ };
118
+ export const buildFieldsForTable = (configFields, fields, showDeleteButton) => {
119
+ const fieldDefs = configFields?.map((field, index) => {
120
+ return {
121
+ type: 'text',
122
+ label: fields[index].config.label || fields[index].config.caption,
123
+ fillAvailableSpace: !!field.config.fillAvailableSpace,
124
+ id: index,
125
+ name: field.config.value.substr(4),
126
+ cellRenderer: TABLE_CELL,
127
+ sort: false,
128
+ noContextMenu: true,
129
+ showMenu: false,
130
+ meta: {
131
+ ...field
132
+ },
133
+ // BUG-615253: Workaround for autosize in table with lazy loading components
134
+ width: getFieldWidth(field, fields[index].config.label)
135
+ };
136
+ });
137
+ // ONLY add DELETE_ICON to fields when the table is requested as EDITABLE
138
+ if (showDeleteButton) {
139
+ fieldDefs.push({
140
+ type: 'text',
141
+ label: '',
142
+ name: DELETE_ICON,
143
+ id: fieldDefs.length,
144
+ cellRenderer: DELETE_ICON,
145
+ sort: false,
146
+ noContextMenu: true,
147
+ showMenu: false,
148
+ // BUG-615253: Workaround for autosize in table with lazy loading components
149
+ width: 46
150
+ });
151
+ }
152
+ return fieldDefs;
153
+ };
154
+ export const createMetaForTable = (fields, renderMode) => {
155
+ return {
156
+ height: {
157
+ minHeight: 'auto',
158
+ fitHeightToElement: 'fitHeightToElement',
159
+ deltaAdjustment: 'deltaAdjustment',
160
+ autoSize: true
161
+ },
162
+ fieldDefs: fields,
163
+ itemKey: 'index',
164
+ grouping: false,
165
+ reorderFields: false,
166
+ reorderItems: renderMode === 'Editable',
167
+ dragHandle: renderMode === 'Editable',
168
+ globalSearch: false,
169
+ personalization: false,
170
+ toggleFieldVisibility: false,
171
+ toolbar: false,
172
+ footer: false,
173
+ filterExpression: null,
174
+ editing: false,
175
+ timezone: PCore.getEnvironmentInfo().getTimeZone()
176
+ };
177
+ };
178
+ export const filterDataByDate = (item, filterObj) => {
179
+ let bKeep;
180
+ let value = item[filterObj.ref] != null ?? item[filterObj.ref] != '' ? getSeconds(item[filterObj.ref]) : null;
181
+ let filterValue = filterObj.containsFilterValue != null && filterObj.containsFilterValue != '' ? getSeconds(filterObj.containsFilterValue) : null;
182
+ switch (filterObj.containsFilter) {
183
+ case 'notequal':
184
+ // becasue filterValue is in minutes, need to have a range of less than 60 secons
185
+ if (value != null && filterValue != null) {
186
+ // get rid of millisecons
187
+ value /= 1000;
188
+ filterValue /= 1000;
189
+ const diff = value - filterValue;
190
+ if (diff >= 0 && diff < 60) {
191
+ bKeep = false;
192
+ }
193
+ }
194
+ break;
195
+ case 'after':
196
+ if (value < filterValue) {
197
+ bKeep = false;
198
+ }
199
+ break;
200
+ case 'before':
201
+ if (value > filterValue) {
202
+ bKeep = false;
203
+ }
204
+ break;
205
+ case 'null':
206
+ if (value != null) {
207
+ bKeep = false;
208
+ }
209
+ break;
210
+ case 'notnull':
211
+ if (value == null) {
212
+ bKeep = false;
213
+ }
214
+ break;
215
+ default:
216
+ break;
217
+ }
218
+ return bKeep;
219
+ };
220
+ export const filterDataByCommonFields = (item, filterObj) => {
221
+ let bKeep;
222
+ const value = item[filterObj.ref].toLowerCase();
223
+ const filterValue = filterObj.containsFilterValue.toLowerCase();
224
+ switch (filterObj.containsFilter) {
225
+ case 'contains':
226
+ if (value.indexOf(filterValue) < 0) {
227
+ bKeep = false;
228
+ }
229
+ break;
230
+ case 'equals':
231
+ if (value != filterValue) {
232
+ bKeep = false;
233
+ }
234
+ break;
235
+ case 'startswith':
236
+ if (value.indexOf(filterValue) != 0) {
237
+ bKeep = false;
238
+ }
239
+ break;
240
+ default:
241
+ break;
242
+ }
243
+ return bKeep;
244
+ };
245
+ /**
246
+ * This method returns a callBack function for Add action.
247
+ * @param {object} pConnect - PConnect object
248
+ * @param {number} index - index of the page list to add
249
+ */
250
+ export const getAddRowCallback = (pConnect, index) => {
251
+ return () => pConnect.getListActions().insert({}, index);
252
+ };
253
+ /**
254
+ * This method creates a PConnect object with proper options for Add and Delete actions
255
+ * @param {string} contextName - contextName
256
+ * @param {string} referenceList - referenceList
257
+ * @param {string} pageReference - pageReference
258
+ */
259
+ export const createPConnect = (contextName, referenceList, pageReference) => {
260
+ const options = {
261
+ context: contextName,
262
+ pageReference,
263
+ referenceList
264
+ };
265
+ // create PConnect object
266
+ const config = { meta: {}, options };
267
+ const { getPConnect } = PCore.createPConnect(config);
268
+ return getPConnect();
269
+ };
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItc2RrLWNvbXBvbmVudHMvc3JjL2xpYi9fY29tcG9uZW50cy90ZW1wbGF0ZS9zaW1wbGUtdGFibGUtbWFudWFsL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUV4Qyw0RUFBNEU7QUFDNUUsMEJBQTBCO0FBQzFCLFNBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLO0lBQ2pDLElBQUksS0FBSyxDQUFDO0lBQ1YsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO1FBQ2xCLEtBQUssTUFBTTtZQUNULEtBQUssR0FBRyxHQUFHLENBQUM7WUFDWixNQUFNO1FBQ1IsS0FBSyxNQUFNO1lBQ1QsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNaLE1BQU07UUFDUixLQUFLLFVBQVU7WUFDYixLQUFLLEdBQUcsR0FBRyxDQUFDO1lBQ1osTUFBTTtRQUNSLEtBQUssY0FBYyxDQUFDO1FBQ3BCLEtBQUssVUFBVTtZQUNiLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDWixNQUFNO1FBQ1IsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxXQUFXO1lBQ2QsS0FBSyxHQUFHLEdBQUcsQ0FBQztZQUNaLE1BQU07UUFDUixLQUFLLFVBQVU7WUFDYixnREFBZ0Q7WUFDaEQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxN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fSBmcm9tICcuLi8uLi8uLi9faGVscGVycy9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgVEFCTEVfQ0VMTCA9ICdTZGtSZW5kZXJlcic7XG5leHBvcnQgY29uc3QgREVMRVRFX0lDT04gPSAnRGVsZXRlSWNvbic7XG5cbi8vIEJVRy02MTUyNTM6IFdvcmthcm91bmQgZm9yIGF1dG9zaXplIGluIHRhYmxlIHdpdGggbGF6eSBsb2FkaW5nIGNvbXBvbmVudHNcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5mdW5jdGlvbiBnZXRGaWVsZFdpZHRoKGZpZWxkLCBsYWJlbCkge1xuICBsZXQgd2lkdGg7XG4gIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgIGNhc2UgJ1RpbWUnOlxuICAgICAgd2lkdGggPSAxNTA7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdEYXRlJzpcbiAgICAgIHdpZHRoID0gMTYwO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnRGF0ZVRpbWUnOlxuICAgICAgd2lkdGggPSAyMDU7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdBdXRvQ29tcGxldGUnOlxuICAgIGNhc2UgJ1RleHRBcmVhJzpcbiAgICAgIHdpZHRoID0gMTkwO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnQ3VycmVuY3knOlxuICAgIGNhc2UgJ1RleHRJbnB1dCc6XG4gICAgICB3aWR0aCA9IDE4MjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ0NoZWNrYm94JzpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jYXNlLWRlY2xhcmF0aW9uc1xuICAgICAgY29uc3QgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dCk7XG4gICAgICB0ZXh0LnN0eWxlLmZvbnRTaXplID0gJzEzcHgnO1xuICAgICAgdGV4dC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICB0ZXh0LmlubmVySFRNTCA9IGxhYmVsO1xuICAgICAgd2lkdGggPSBNYXRoLmNlaWwodGV4dC5jbGllbnRXaWR0aCkgKyAzMDtcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgd2lkdGggPSAxODA7XG4gIH1cbiAgcmV0dXJuIHdpZHRoO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0Q29udGV4dCA9IHRoZVBDb25uID0+IHtcbiAgY29uc3QgY29udGV4dE5hbWUgPSB0aGVQQ29ubi5nZXRDb250ZXh0TmFtZSgpO1xuICBjb25zdCBwYWdlUmVmZXJlbmNlID0gdGhlUENvbm4uZ2V0UGFnZVJlZmVyZW5jZSgpO1xuICAvLyA4LjcgY2hhbmdlID0gcmVmZXJlbmNlTGlzdCBtYXkgbm93IGJlIGluIHRvcC1sZXZlbCBvZiBzdGF0ZSBwcm9wcyxcbiAgLy8gIG5vdCBhbHdheXMgaW4gY29uZmlnIG9mIHN0YXRlIHByb3BzXG4gIGxldCB7IHJlZmVyZW5jZUxpc3QgfSA9IHRoZVBDb25uLmdldFN0YXRlUHJvcHMoKT8uY29uZmlnIHx8IHRoZVBDb25uLmdldFN0YXRlUHJvcHMoKTtcbiAgY29uc3QgcGFnZVJlZmVyZW5jZUZvclJvd3MgPSByZWZlcmVuY2VMaXN0LnN0YXJ0c1dpdGgoJy4nKSA/IGAke3BhZ2VSZWZlcmVuY2V9LiR7cmVmZXJlbmNlTGlzdC5zdWJzdHJpbmcoMSl9YCA6IHJlZmVyZW5jZUxpc3Q7XG5cbiAgLy8gcmVtb3ZpbmcgXCJjYXNlSW5mby5jb250ZW50XCIgcHJlZml4IHRvIGF2b2lkIHNldHRpbmcgaXQgYXMgYSB0YXJnZXQgd2hpbGUgcHJlcGFyaW5nIHBhZ2VJbnN0cnVjdGlvbnNcbiAgcmVmZXJlbmNlTGlzdCA9IHBhZ2VSZWZlcmVuY2VGb3JSb3dzLnJlcGxhY2UoUENvcmUuZ2V0Q29uc3RhbnRzKCkuQ0FTRV9JTkZPLkNBU0VfSU5GT19DT05URU5ULCAnJyk7XG5cbiAgcmV0dXJuIHtcbiAgICBjb250ZXh0TmFtZSxcbiAgICByZWZlcmVuY2VMaXN0U3RyOiByZWZlcmVuY2VMaXN0LFxuICAgIHBhZ2VSZWZlcmVuY2VGb3JSb3dzXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgcG9wdWxhdGVSb3dLZXkgPSByYXdEYXRhID0+IHtcbiAgcmV0dXJuIHJhd0RhdGEubWFwKChyb3csIGluZGV4KSA9PiB7XG4gICAgcmV0dXJuIHsgLi4ucm93LCBpbmRleCB9O1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBcGlDb250ZXh0ID0gKHByb2Nlc3NlZERhdGEsIHBDb25uZWN0LCByZW9yZGVyQ0IpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBmZXRjaERhdGE6ICgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgZGF0YTogcHJvY2Vzc2VkRGF0YSxcbiAgICAgICAgICBmaWx0ZXJlZFJlY29yZENvdW50OiBwcm9jZXNzZWREYXRhLmxlbmd0aCxcbiAgICAgICAgICB0b3RhbFJlY29yZENvdW50OiBwcm9jZXNzZWREYXRhLmxlbmd0aFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZmV0Y2hQZXJzb25hbGl6YXRpb25zOiAoKSA9PiB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9LFxuICAgIGFwcGx5Um93UmVvcmRlcjogKHNvdXJjZUtleSwgZGVzdGluYXRpb25LZXkpID0+IHtcbiAgICAgIC8vIGluZGV4ZXMgYXJlIGtleXMgZm9yIHNpbXBsZSB0YWJsZSBzbywgaXQgc2hvdWxkIHdvcmsuXG4gICAgICByZW9yZGVyQ0IoKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocENvbm5lY3QuZ2V0TGlzdEFjdGlvbnMoKS5yZW9yZGVyKHBhcnNlSW50KHNvdXJjZUtleSwgMTApLCBwYXJzZUludChkZXN0aW5hdGlvbktleSwgMTApKSk7XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkTWV0YUZvckxpc3RWaWV3ID0gKGZpZWxkTWV0YWRhdGEsIGZpZWxkcywgdHlwZSwgcnVsZUNsYXNzLCBuYW1lLCBwcm9wZXJ0eUxhYmVsLCBpc0RhdGFPYmplY3QsIHBhcmFtZXRlcnMpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIGNvbmZpZzoge1xuICAgICAgdHlwZSxcbiAgICAgIHJlZmVyZW5jZUxpc3Q6IGZpZWxkTWV0YWRhdGEuZGF0YXNvdXJjZS5uYW1lLFxuICAgICAgcGFyYW1ldGVyczogcGFyYW1ldGVycyA/PyBmaWVsZE1ldGFkYXRhLmRhdGFzb3VyY2UucGFyYW1ldGVycyxcbiAgICAgIHBlcnNvbmFsaXphdGlvbjogZmFsc2UsXG4gICAgICBpc0RhdGFPYmplY3QsXG4gICAgICBncm91cGluZzogdHJ1ZSxcbiAgICAgIGdsb2JhbFNlYXJjaDogdHJ1ZSxcbiAgICAgIHJlb3JkZXJGaWVsZHM6IHRydWUsXG4gICAgICB0b2dnbGVGaWVsZFZpc2liaWxpdHk6IHRydWUsXG4gICAgICB0aXRsZTogcHJvcGVydHlMYWJlbCxcbiAgICAgIHBlcnNvbmFsaXphdGlvbklkOiAnJyAvKiBUT0RPICovLFxuICAgICAgdGVtcGxhdGU6ICdMaXN0VmlldycsXG4gICAgICBwcmVzZXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAncHJlc2V0cycsXG4gICAgICAgICAgdGVtcGxhdGU6ICdUYWJsZScsXG4gICAgICAgICAgY29uZmlnOiB7fSxcbiAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnQ29sdW1ucycsXG4gICAgICAgICAgICAgIHR5cGU6ICdSZWdpb24nLFxuICAgICAgICAgICAgICBjaGlsZHJlbjogZmllbGRzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICBsYWJlbDogcHJvcGVydHlMYWJlbCxcbiAgICAgICAgICBpZDogJ1BfJyAvKiBUT0RPICovXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBydWxlQ2xhc3NcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRGaWVsZHNGb3JUYWJsZSA9IChjb25maWdGaWVsZHMsIGZpZWxkcywgc2hvd0RlbGV0ZUJ1dHRvbikgPT4ge1xuICBjb25zdCBmaWVsZERlZnMgPSBjb25maWdGaWVsZHM/Lm1hcCgoZmllbGQsIGluZGV4KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGxhYmVsOiBmaWVsZHNbaW5kZXhdLmNvbmZpZy5sYWJlbCB8fCBmaWVsZHNbaW5kZXhdLmNvbmZpZy5jYXB0aW9uLFxuICAgICAgZmlsbEF2YWlsYWJsZVNwYWNlOiAhIWZpZWxkLmNvbmZpZy5maWxsQXZhaWxhYmxlU3BhY2UsXG4gICAgICBpZDogaW5kZXgsXG4gICAgICBuYW1lOiBmaWVsZC5jb25maWcudmFsdWUuc3Vic3RyKDQpLFxuICAgICAgY2VsbFJlbmRlcmVyOiBUQUJMRV9DRUxMLFxuICAgICAgc29ydDogZmFsc2UsXG4gICAgICBub0NvbnRleHRNZW51OiB0cnVlLFxuICAgICAgc2hvd01lbnU6IGZhbHNlLFxuICAgICAgbWV0YToge1xuICAgICAgICAuLi5maWVsZFxuICAgICAgfSxcbiAgICAgIC8vIEJVRy02MTUyNTM6IFdvcmthcm91bmQgZm9yIGF1dG9zaXplIGluIHRhYmxlIHdpdGggbGF6eSBsb2FkaW5nIGNvbXBvbmVudHNcbiAgICAgIHdpZHRoOiBnZXRGaWVsZFdpZHRoKGZpZWxkLCBmaWVsZHNbaW5kZXhdLmNvbmZpZy5sYWJlbClcbiAgICB9O1xuICB9KTtcblxuICAvLyBPTkxZIGFkZCBERUxFVEVfSUNPTiB0byBmaWVsZHMgd2hlbiB0aGUgdGFibGUgaXMgcmVxdWVzdGVkIGFzIEVESVRBQkxFXG4gIGlmIChzaG93RGVsZXRlQnV0dG9uKSB7XG4gICAgZmllbGREZWZzLnB1c2goe1xuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgbGFiZWw6ICcnLFxuICAgICAgbmFtZTogREVMRVRFX0lDT04sXG4gICAgICBpZDogZmllbGREZWZzLmxlbmd0aCxcbiAgICAgIGNlbGxSZW5kZXJlcjogREVMRVRFX0lDT04sXG4gICAgICBzb3J0OiBmYWxzZSxcbiAgICAgIG5vQ29udGV4dE1lbnU6IHRydWUsXG4gICAgICBzaG93TWVudTogZmFsc2UsXG4gICAgICAvLyBCVUctNjE1MjUzOiBXb3JrYXJvdW5kIGZvciBhdXRvc2l6ZSBpbiB0YWJsZSB3aXRoIGxhenkgbG9hZGluZyBjb21wb25lbnRzXG4gICAgICB3aWR0aDogNDZcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBmaWVsZERlZnM7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTWV0YUZvclRhYmxlID0gKGZpZWxkcywgcmVuZGVyTW9kZSkgPT4ge1xuICByZXR1cm4ge1xuICAgIGhlaWdodDoge1xuICAgICAgbWluSGVpZ2h0OiAnYXV0bycsXG4gICAgICBmaXRIZWlnaHRUb0VsZW1lbnQ6ICdmaXRIZWlnaHRUb0VsZW1lbnQnLFxuICAgICAgZGVsdGFBZGp1c3RtZW50OiAnZGVsdGFBZGp1c3RtZW50JyxcbiAgICAgIGF1dG9TaXplOiB0cnVlXG4gICAgfSxcbiAgICBmaWVsZERlZnM6IGZpZWxkcyxcbiAgICBpdGVtS2V5OiAnaW5kZXgnLFxuICAgIGdyb3VwaW5nOiBmYWxzZSxcbiAgICByZW9yZGVyRmllbGRzOiBmYWxzZSxcbiAgICByZW9yZGVySXRlbXM6IHJlbmRlck1vZGUgPT09ICdFZGl0YWJsZScsXG4gICAgZHJhZ0hhbmRsZTogcmVuZGVyTW9kZSA9PT0gJ0VkaXRhYmxlJyxcbiAgICBnbG9iYWxTZWFyY2g6IGZhbHNlLFxuICAgIHBlcnNvbmFsaXphdGlvbjogZmFsc2UsXG4gICAgdG9nZ2xlRmllbGRWaXNpYmlsaXR5OiBmYWxzZSxcbiAgICB0b29sYmFyOiBmYWxzZSxcbiAgICBmb290ZXI6IGZhbHNlLFxuICAgIGZpbHRlckV4cHJlc3Npb246IG51bGwsXG4gICAgZWRpdGluZzogZmFsc2UsXG4gICAgdGltZXpvbmU6IFBDb3JlLmdldEVudmlyb25tZW50SW5mbygpLmdldFRpbWVab25lKClcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJEYXRhQnlEYXRlID0gKGl0ZW0sIGZpbHRlck9iaikgPT4ge1xuICBsZXQgYktlZXA7XG4gIGxldCB2YWx1ZSA9IGl0ZW1bZmlsdGVyT2JqLnJlZl0gIT0gbnVsbCA/PyBpdGVtW2ZpbHRlck9iai5yZWZdICE9ICcnID8gZ2V0U2Vjb25kcyhpdGVtW2ZpbHRlck9iai5yZWZdKSA6IG51bGw7XG4gIGxldCBmaWx0ZXJWYWx1ZSA9IGZpbHRlck9iai5jb250YWluc0ZpbHRlclZhbHVlICE9IG51bGwgJiYgZmlsdGVyT2JqLmNvbnRhaW5zRmlsdGVyVmFsdWUgIT0gJycgPyBnZXRTZWNvbmRzKGZpbHRlck9iai5jb250YWluc0ZpbHRlclZhbHVlKSA6IG51bGw7XG5cbiAgc3dpdGNoIChmaWx0ZXJPYmouY29udGFpbnNGaWx0ZXIpIHtcbiAgICBjYXNlICdub3RlcXVhbCc6XG4gICAgICAvLyBiZWNhc3VlIGZpbHRlclZhbHVlIGlzIGluIG1pbnV0ZXMsIG5lZWQgdG8gaGF2ZSBhIHJhbmdlIG9mIGxlc3MgdGhhbiA2MCBzZWNvbnNcblxuICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgZmlsdGVyVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAvLyBnZXQgcmlkIG9mIG1pbGxpc2Vjb25zXG4gICAgICAgIHZhbHVlIC89IDEwMDA7XG4gICAgICAgIGZpbHRlclZhbHVlIC89IDEwMDA7XG5cbiAgICAgICAgY29uc3QgZGlmZiA9IHZhbHVlIC0gZmlsdGVyVmFsdWU7XG4gICAgICAgIGlmIChkaWZmID49IDAgJiYgZGlmZiA8IDYwKSB7XG4gICAgICAgICAgYktlZXAgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICBjYXNlICdhZnRlcic6XG4gICAgICBpZiAodmFsdWUgPCBmaWx0ZXJWYWx1ZSkge1xuICAgICAgICBiS2VlcCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYmVmb3JlJzpcbiAgICAgIGlmICh2YWx1ZSA+IGZpbHRlclZhbHVlKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdudWxsJzpcbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdub3RudWxsJzpcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gYktlZXA7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyRGF0YUJ5Q29tbW9uRmllbGRzID0gKGl0ZW0sIGZpbHRlck9iaikgPT4ge1xuICBsZXQgYktlZXA7XG4gIGNvbnN0IHZhbHVlID0gaXRlbVtmaWx0ZXJPYmoucmVmXS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBmaWx0ZXJWYWx1ZSA9IGZpbHRlck9iai5jb250YWluc0ZpbHRlclZhbHVlLnRvTG93ZXJDYXNlKCk7XG5cbiAgc3dpdGNoIChmaWx0ZXJPYmouY29udGFpbnNGaWx0ZXIpIHtcbiAgICBjYXNlICdjb250YWlucyc6XG4gICAgICBpZiAodmFsdWUuaW5kZXhPZihmaWx0ZXJWYWx1ZSkgPCAwKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdlcXVhbHMnOlxuICAgICAgaWYgKHZhbHVlICE9IGZpbHRlclZhbHVlKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdzdGFydHN3aXRoJzpcbiAgICAgIGlmICh2YWx1ZS5pbmRleE9mKGZpbHRlclZhbHVlKSAhPSAwKSB7XG4gICAgICAgIGJLZWVwID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gYktlZXA7XG59O1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYSBjYWxsQmFjayBmdW5jdGlvbiBmb3IgQWRkIGFjdGlvbi5cbiAqIEBwYXJhbSB7b2JqZWN0fSBwQ29ubmVjdCAtIFBDb25uZWN0IG9iamVjdFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IC0gaW5kZXggb2YgdGhlIHBhZ2UgbGlzdCB0byBhZGRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFkZFJvd0NhbGxiYWNrID0gKHBDb25uZWN0LCBpbmRleCkgPT4ge1xuICByZXR1cm4gKCkgPT4gcENvbm5lY3QuZ2V0TGlzdEFjdGlvbnMoKS5pbnNlcnQoe30sIGluZGV4KTtcbn07XG5cbi8qKlxuICogVGhpcyBtZXRob2QgY3JlYXRlcyBhIFBDb25uZWN0IG9iamVjdCB3aXRoIHByb3BlciBvcHRpb25zIGZvciBBZGQgYW5kIERlbGV0ZSBhY3Rpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udGV4dE5hbWUgLSBjb250ZXh0TmFtZVxuICogQHBhcmFtIHtzdHJpbmd9IHJlZmVyZW5jZUxpc3QgLSByZWZlcmVuY2VMaXN0XG4gKiBAcGFyYW0ge3N0cmluZ30gcGFnZVJlZmVyZW5jZSAtIHBhZ2VSZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVBDb25uZWN0ID0gKGNvbnRleHROYW1lLCByZWZlcmVuY2VMaXN0LCBwYWdlUmVmZXJlbmNlKSA9PiB7XG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgY29udGV4dDogY29udGV4dE5hbWUsXG4gICAgcGFnZVJlZmVyZW5jZSxcbiAgICByZWZlcmVuY2VMaXN0XG4gIH07XG5cbiAgLy8gY3JlYXRlIFBDb25uZWN0IG9iamVjdFxuICBjb25zdCBjb25maWcgPSB7IG1ldGE6IHt9LCBvcHRpb25zIH07XG4gIGNvbnN0IHsgZ2V0UENvbm5lY3QgfSA9IFBDb3JlLmNyZWF0ZVBDb25uZWN0KGNvbmZpZyk7XG5cbiAgcmV0dXJuIGdldFBDb25uZWN0KCk7XG59O1xuIl19