@trudb/tru-common-lib 0.0.725 → 0.0.728

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 (404) hide show
  1. package/{esm2020 → esm2022}/lib/assets/tru-icon-module.mjs +32 -32
  2. package/{esm2020 → esm2022}/lib/assets/tru-search-icon-module.mjs +36 -36
  3. package/{esm2020 → esm2022}/lib/base-classes/tru-component-config-base.mjs +3 -3
  4. package/{esm2020 → esm2022}/lib/base-classes/tru-control-component-config-base.mjs +3 -3
  5. package/{esm2020 → esm2022}/lib/base-classes/tru-edit-control-base.mjs +17 -17
  6. package/esm2022/lib/base-classes/tru-edit-control-config-base.mjs +6 -0
  7. package/{esm2020 → esm2022}/lib/base-classes/tru-edit-parent-control-config-base.mjs +3 -3
  8. package/{esm2020 → esm2022}/lib/base-classes/tru-edit-pkey-control-config-base.mjs +3 -3
  9. package/esm2022/lib/base-classes/tru-entity-base.mjs +14 -0
  10. package/esm2022/lib/base-classes/tru-list-control-config-base.mjs +6 -0
  11. package/{esm2020 → esm2022}/lib/base-classes/tru-property-config-base.mjs +14 -15
  12. package/{esm2020 → esm2022}/lib/base-classes/tru-search-config-base.mjs +3 -3
  13. package/esm2022/lib/base-classes/tru-search-control-base.mjs +45 -0
  14. package/esm2022/lib/base-classes/tru-search-control-config-base.mjs +5 -0
  15. package/esm2022/lib/base-classes/tru-search-control-range-base.mjs +45 -0
  16. package/esm2022/lib/base-classes/tru-table-config-base.mjs +12 -0
  17. package/{esm2020 → esm2022}/lib/base-views/detail/tru-detail-view-base-module.mjs +19 -19
  18. package/esm2022/lib/base-views/detail/tru-detail-view-base.mjs +83 -0
  19. package/esm2022/lib/base-views/search/services/tru-search-view-control-event-handler.mjs +25 -0
  20. package/esm2022/lib/base-views/search/services/tru-search-view-event-handler.mjs +25 -0
  21. package/{esm2020 → esm2022}/lib/base-views/search/tru-search-view-base-module.mjs +19 -19
  22. package/esm2022/lib/base-views/search/tru-search-view-base.mjs +68 -0
  23. package/{esm2020 → esm2022}/lib/base-views/search-result/tru-search-result-view-base-module.mjs +19 -19
  24. package/esm2022/lib/base-views/search-result/tru-search-result-view-base.mjs +54 -0
  25. package/{esm2020 → esm2022}/lib/classes/tru-choice.mjs +2 -2
  26. package/esm2022/lib/classes/tru-context-filter-choice.mjs +11 -0
  27. package/esm2022/lib/classes/tru-context-filter.mjs +16 -0
  28. package/esm2022/lib/classes/tru-data-change-parser.mjs +287 -0
  29. package/esm2022/lib/classes/tru-data-change.mjs +5 -0
  30. package/{esm2020 → esm2022}/lib/classes/tru-formula-eval.mjs +156 -156
  31. package/esm2022/lib/classes/tru-merge-data-set.mjs +11 -0
  32. package/esm2022/lib/classes/tru-merge-data.mjs +20 -0
  33. package/{esm2020 → esm2022}/lib/classes/tru-name-value.mjs +2 -2
  34. package/esm2022/lib/classes/tru-predicate.mjs +47 -0
  35. package/{esm2020 → esm2022}/lib/classes/tru-property-config-cloud-file.mjs +4 -4
  36. package/esm2022/lib/classes/tru-property-config-date.mjs +7 -0
  37. package/esm2022/lib/classes/tru-property-config-decimal.mjs +9 -0
  38. package/{esm2020 → esm2022}/lib/classes/tru-property-config-file.mjs +6 -8
  39. package/esm2022/lib/classes/tru-property-config-foreign-key.mjs +8 -0
  40. package/esm2022/lib/classes/tru-property-config-integer.mjs +7 -0
  41. package/esm2022/lib/classes/tru-property-config-password.mjs +6 -0
  42. package/esm2022/lib/classes/tru-property-config-percentage.mjs +7 -0
  43. package/esm2022/lib/classes/tru-property-config-scientific.mjs +7 -0
  44. package/{esm2020 → esm2022}/lib/classes/tru-property-config-text-choices.mjs +6 -8
  45. package/{esm2020 → esm2022}/lib/classes/tru-property-config-text.mjs +8 -10
  46. package/{esm2020 → esm2022}/lib/classes/tru-property-config-usa-address.mjs +6 -8
  47. package/{esm2020 → esm2022}/lib/classes/tru-property-config-zip-code.mjs +6 -8
  48. package/esm2022/lib/classes/tru-query-predicate-manager.mjs +49 -0
  49. package/{esm2020 → esm2022}/lib/components/confirm-dialog/tru-confirm-dialog-module.mjs +20 -20
  50. package/esm2022/lib/components/confirm-dialog/tru-confirm-dialog.mjs +59 -0
  51. package/{esm2020 → esm2022}/lib/components/data-grid/classes/tru-data-grid-config.mjs +1 -1
  52. package/{esm2020 → esm2022}/lib/components/data-grid/enums/tru-data-grid-types.mjs +6 -6
  53. package/esm2022/lib/components/data-grid/overlays/tru-data-grid-loading-overlay/tru-data-grid-loading-overlay.mjs +40 -0
  54. package/esm2022/lib/components/data-grid/overlays/tru-data-grid-no-rows-overlay/tru-data-grid-no-rows-overlay.mjs +27 -0
  55. package/esm2022/lib/components/data-grid/tru-data-grid-module.mjs +67 -0
  56. package/esm2022/lib/components/data-grid/tru-data-grid.mjs +382 -0
  57. package/{esm2020 → esm2022}/lib/components/desktop/classes/tru-desktop-title.mjs +2 -2
  58. package/esm2022/lib/components/desktop/classes/tru-desktop-view-config.mjs +21 -0
  59. package/{esm2020 → esm2022}/lib/components/desktop/directives/resizable/tru-desktop-resizable-module.mjs +19 -19
  60. package/esm2022/lib/components/desktop/directives/resizable/tru-desktop-resizable.mjs +122 -0
  61. package/{esm2020 → esm2022}/lib/components/desktop/menubar/tru-desktop-menubar-module.mjs +56 -56
  62. package/esm2022/lib/components/desktop/menubar/tru-desktop-menubar.mjs +36 -0
  63. package/esm2022/lib/components/desktop/services/tru-desktop-manager.mjs +86 -0
  64. package/esm2022/lib/components/desktop/services/tru-desktop-service.mjs +108 -0
  65. package/esm2022/lib/components/desktop/services/tru-window-action-event-handler.mjs +25 -0
  66. package/esm2022/lib/components/desktop/services/tru-window-event-args.mjs +24 -0
  67. package/esm2022/lib/components/desktop/services/tru-window-event-handler.mjs +42 -0
  68. package/{esm2020 → esm2022}/lib/components/desktop/statusbar/tru-desktop-statusbar-module.mjs +19 -19
  69. package/esm2022/lib/components/desktop/statusbar/tru-desktop-statusbar.mjs +20 -0
  70. package/{esm2020 → esm2022}/lib/components/desktop/taskbar/tru-desktop-taskbar-module.mjs +21 -21
  71. package/esm2022/lib/components/desktop/taskbar/tru-desktop-taskbar.mjs +41 -0
  72. package/{esm2020 → esm2022}/lib/components/desktop/tru-desktop-module.mjs +72 -72
  73. package/esm2022/lib/components/desktop/tru-desktop.mjs +737 -0
  74. package/{esm2020 → esm2022}/lib/components/desktop/view/tru-desktop-view-module.mjs +19 -19
  75. package/esm2022/lib/components/desktop/view/tru-desktop-view.mjs +29 -0
  76. package/{esm2020 → esm2022}/lib/components/desktop/viewport/tru-desktop-viewport-module.mjs +20 -20
  77. package/esm2022/lib/components/desktop/viewport/tru-desktop-viewport.mjs +117 -0
  78. package/{esm2020 → esm2022}/lib/components/desktop/window/tru-desktop-window-module.mjs +58 -58
  79. package/esm2022/lib/components/desktop/window/tru-desktop-window.mjs +467 -0
  80. package/{esm2020 → esm2022}/lib/components/export-dialog/tru-export-dialog-module.mjs +20 -20
  81. package/esm2022/lib/components/export-dialog/tru-export-dialog.mjs +61 -0
  82. package/{esm2020 → esm2022}/lib/components/layout/column/tru-column-module.mjs +19 -19
  83. package/{esm2020 → esm2022}/lib/components/layout/column/tru-column.mjs +12 -12
  84. package/{esm2020 → esm2022}/lib/components/layout/form/tru-form-module.mjs +19 -19
  85. package/esm2022/lib/components/layout/form/tru-form.mjs +35 -0
  86. package/{esm2020 → esm2022}/lib/components/layout/group-box/tru-group-box-module.mjs +19 -19
  87. package/{esm2020 → esm2022}/lib/components/layout/group-box/tru-group-box.mjs +12 -12
  88. package/{esm2020 → esm2022}/lib/components/layout/row/tru-row-module.mjs +19 -19
  89. package/{esm2020 → esm2022}/lib/components/layout/row/tru-row.mjs +12 -12
  90. package/{esm2020 → esm2022}/lib/components/login/classes/tru-auth-config.mjs +7 -7
  91. package/esm2022/lib/components/login/classes/tru-auth-jwt-strategy.mjs +63 -0
  92. package/{esm2020 → esm2022}/lib/components/login/classes/tru-auth-login-request.mjs +5 -3
  93. package/{esm2020 → esm2022}/lib/components/login/classes/tru-auth-logout-request.mjs +4 -3
  94. package/esm2022/lib/components/login/classes/tru-auth-session-strategy.mjs +21 -0
  95. package/{esm2020 → esm2022}/lib/components/login/classes/tru-auth-strategy-provider.mjs +19 -19
  96. package/{esm2020 → esm2022}/lib/components/login/classes/tru-auth-token.mjs +11 -8
  97. package/{esm2020 → esm2022}/lib/components/login/classes/tru-auth-user-request.mjs +4 -3
  98. package/esm2022/lib/components/login/services/tru-auth-cache.mjs +20 -0
  99. package/esm2022/lib/components/login/services/tru-auth-interceptor.mjs +46 -0
  100. package/esm2022/lib/components/login/services/tru-auth.mjs +87 -0
  101. package/esm2022/lib/components/login/tru-login-module.mjs +46 -0
  102. package/esm2022/lib/components/login/tru-login.mjs +59 -0
  103. package/{esm2020 → esm2022}/lib/components/password-dialog/tru-password-dialog-module.mjs +20 -20
  104. package/esm2022/lib/components/password-dialog/tru-password-dialog.mjs +53 -0
  105. package/{esm2020 → esm2022}/lib/components/toolbar/button/tru-toolbar-button-module.mjs +32 -32
  106. package/esm2022/lib/components/toolbar/button/tru-toolbar-button.mjs +40 -0
  107. package/{esm2020 → esm2022}/lib/components/toolbar/classes/tru-toolbar-dropdown-option.mjs +1 -1
  108. package/{esm2020 → esm2022}/lib/components/toolbar/context-filter/tru-toolbar-context-filter-module.mjs +44 -44
  109. package/esm2022/lib/components/toolbar/context-filter/tru-toolbar-context-filter.mjs +26 -0
  110. package/{esm2020 → esm2022}/lib/components/toolbar/dropdown/tru-toolbar-dropdown-module.mjs +36 -36
  111. package/esm2022/lib/components/toolbar/dropdown/tru-toolbar-dropdown.mjs +45 -0
  112. package/{esm2020 → esm2022}/lib/components/toolbar/menu/menu-button/tru-toolbar-menu-button-module.mjs +19 -19
  113. package/esm2022/lib/components/toolbar/menu/menu-button/tru-toolbar-menu-button.mjs +17 -0
  114. package/{esm2020 → esm2022}/lib/components/toolbar/menu/menu-item/tru-toolbar-menu-item-module.mjs +19 -19
  115. package/esm2022/lib/components/toolbar/menu/menu-item/tru-toolbar-menu-item.mjs +26 -0
  116. package/{esm2020 → esm2022}/lib/components/toolbar/menu/tru-toolbar-menu-module.mjs +32 -32
  117. package/esm2022/lib/components/toolbar/menu/tru-toolbar-menu.mjs +33 -0
  118. package/{esm2020 → esm2022}/lib/components/toolbar/separator/tru-toolbar-separator-module.mjs +19 -19
  119. package/{esm2020 → esm2022}/lib/components/toolbar/separator/tru-toolbar-separator.mjs +12 -12
  120. package/{esm2020 → esm2022}/lib/components/toolbar/text/tru-toolbar-text-module.mjs +32 -32
  121. package/esm2022/lib/components/toolbar/text/tru-toolbar-text.mjs +27 -0
  122. package/{esm2020 → esm2022}/lib/components/toolbar/tru-toolbar-module.mjs +73 -73
  123. package/{esm2020 → esm2022}/lib/components/toolbar/tru-toolbar.mjs +20 -21
  124. package/{esm2020 → esm2022}/lib/components/toolbar/user-profile/tru-toolbar-user-profile-module.mjs +36 -36
  125. package/esm2022/lib/components/toolbar/user-profile/tru-toolbar-user-profile.mjs +38 -0
  126. package/esm2022/lib/components/validation-dialog/tru-validation-dialog-config.mjs +25 -0
  127. package/{esm2020 → esm2022}/lib/components/validation-dialog/tru-validation-dialog-module.mjs +19 -19
  128. package/esm2022/lib/components/validation-dialog/tru-validation-dialog.mjs +83 -0
  129. package/{esm2020 → esm2022}/lib/directives/breeze-validator/tru-breeze-validator-module.mjs +19 -19
  130. package/esm2022/lib/directives/breeze-validator/tru-breeze-validator.mjs +107 -0
  131. package/{esm2020 → esm2022}/lib/directives/search-panel-position-manager/tru-search-panel-position-manager-module.mjs +19 -19
  132. package/esm2022/lib/directives/search-panel-position-manager/tru-search-panel-position-manager.mjs +155 -0
  133. package/{esm2020 → esm2022}/lib/directives/select-panel/tru-mat-select-panel-module.mjs +19 -19
  134. package/esm2022/lib/directives/select-panel/tru-mat-select-panel.mjs +69 -0
  135. package/{esm2020 → esm2022}/lib/interfaces/tru-value.mjs +1 -1
  136. package/{esm2020 → esm2022}/lib/material.module.mjs +192 -192
  137. package/esm2022/lib/services/tru-app-environment.mjs +113 -0
  138. package/esm2022/lib/services/tru-breeze-context-factory.mjs +84 -0
  139. package/esm2022/lib/services/tru-breeze-metadata-provider.mjs +21 -0
  140. package/esm2022/lib/services/tru-component-lookup.mjs +23 -0
  141. package/esm2022/lib/services/tru-connection-hub.mjs +52 -0
  142. package/esm2022/lib/services/tru-context-filters.mjs +28 -0
  143. package/esm2022/lib/services/tru-data-context.mjs +263 -0
  144. package/esm2022/lib/services/tru-entity-accessor.mjs +292 -0
  145. package/esm2022/lib/services/tru-model-property-lookup.mjs +21 -0
  146. package/{esm2020 → esm2022}/lib/services/tru-predicate-map.mjs +11 -11
  147. package/esm2022/lib/services/tru-search-result-view-manager.mjs +18 -0
  148. package/esm2022/lib/services/tru-sort.mjs +113 -0
  149. package/esm2022/lib/services/tru-table-registry.mjs +15 -0
  150. package/esm2022/lib/services/tru-text-manager.mjs +148 -0
  151. package/esm2022/lib/services/tru-ui-notification.mjs +107 -0
  152. package/esm2022/lib/services/tru-user.mjs +62 -0
  153. package/esm2022/lib/services/tru-util.mjs +76 -0
  154. package/{esm2020 → esm2022}/lib/tru-common-module.mjs +16 -16
  155. package/{esm2020 → esm2022}/public-api.mjs +144 -144
  156. package/{esm2020 → esm2022}/trudb-tru-common-lib.mjs +4 -4
  157. package/fesm2022/trudb-tru-common-lib.mjs +6932 -0
  158. package/fesm2022/trudb-tru-common-lib.mjs.map +1 -0
  159. package/index.d.ts +5 -5
  160. package/lib/assets/tru-icon-module.d.ts +11 -11
  161. package/lib/assets/tru-search-icon-module.d.ts +11 -11
  162. package/lib/base-classes/tru-component-config-base.d.ts +3 -3
  163. package/lib/base-classes/tru-control-component-config-base.d.ts +20 -20
  164. package/lib/base-classes/tru-edit-control-base.d.ts +10 -10
  165. package/lib/base-classes/tru-edit-control-config-base.d.ts +21 -21
  166. package/lib/base-classes/tru-edit-parent-control-config-base.d.ts +9 -9
  167. package/lib/base-classes/tru-edit-pkey-control-config-base.d.ts +11 -11
  168. package/lib/base-classes/tru-entity-base.d.ts +14 -14
  169. package/lib/base-classes/tru-list-control-config-base.d.ts +21 -21
  170. package/lib/base-classes/tru-property-config-base.d.ts +13 -13
  171. package/lib/base-classes/tru-search-config-base.d.ts +9 -9
  172. package/lib/base-classes/tru-search-control-base.d.ts +21 -21
  173. package/lib/base-classes/tru-search-control-config-base.d.ts +13 -13
  174. package/lib/base-classes/tru-search-control-range-base.d.ts +25 -25
  175. package/lib/base-classes/tru-table-config-base.d.ts +11 -11
  176. package/lib/base-views/detail/tru-detail-view-base-module.d.ts +9 -9
  177. package/lib/base-views/detail/tru-detail-view-base.d.ts +32 -32
  178. package/lib/base-views/search/services/tru-search-view-control-event-handler.d.ts +12 -12
  179. package/lib/base-views/search/services/tru-search-view-event-handler.d.ts +11 -11
  180. package/lib/base-views/search/tru-search-view-base-module.d.ts +9 -9
  181. package/lib/base-views/search/tru-search-view-base.d.ts +36 -36
  182. package/lib/base-views/search-result/tru-search-result-view-base-module.d.ts +9 -9
  183. package/lib/base-views/search-result/tru-search-result-view-base.d.ts +25 -25
  184. package/lib/classes/tru-choice.d.ts +8 -8
  185. package/lib/classes/tru-context-filter-choice.d.ts +6 -6
  186. package/lib/classes/tru-context-filter.d.ts +10 -10
  187. package/lib/classes/tru-data-change-parser.d.ts +33 -33
  188. package/lib/classes/tru-data-change.d.ts +4 -4
  189. package/lib/classes/tru-formula-eval.d.ts +31 -31
  190. package/lib/classes/tru-merge-data-set.d.ts +7 -7
  191. package/lib/classes/tru-merge-data.d.ts +9 -9
  192. package/lib/classes/tru-name-value.d.ts +9 -9
  193. package/lib/classes/tru-predicate.d.ts +8 -8
  194. package/lib/classes/tru-property-config-cloud-file.d.ts +4 -4
  195. package/lib/classes/tru-property-config-date.d.ts +6 -6
  196. package/lib/classes/tru-property-config-decimal.d.ts +8 -8
  197. package/lib/classes/tru-property-config-file.d.ts +5 -5
  198. package/lib/classes/tru-property-config-foreign-key.d.ts +7 -7
  199. package/lib/classes/tru-property-config-integer.d.ts +6 -6
  200. package/lib/classes/tru-property-config-password.d.ts +5 -5
  201. package/lib/classes/tru-property-config-percentage.d.ts +6 -6
  202. package/lib/classes/tru-property-config-scientific.d.ts +6 -6
  203. package/lib/classes/tru-property-config-text-choices.d.ts +5 -5
  204. package/lib/classes/tru-property-config-text.d.ts +7 -7
  205. package/lib/classes/tru-property-config-usa-address.d.ts +5 -5
  206. package/lib/classes/tru-property-config-zip-code.d.ts +5 -5
  207. package/lib/classes/tru-query-predicate-manager.d.ts +26 -26
  208. package/lib/components/confirm-dialog/tru-confirm-dialog-module.d.ts +10 -10
  209. package/lib/components/confirm-dialog/tru-confirm-dialog.d.ts +28 -28
  210. package/lib/components/data-grid/classes/tru-data-grid-config.d.ts +7 -7
  211. package/lib/components/data-grid/enums/tru-data-grid-types.d.ts +5 -5
  212. package/lib/components/data-grid/overlays/tru-data-grid-loading-overlay/tru-data-grid-loading-overlay.d.ts +13 -13
  213. package/lib/components/data-grid/overlays/tru-data-grid-no-rows-overlay/tru-data-grid-no-rows-overlay.d.ts +13 -13
  214. package/lib/components/data-grid/tru-data-grid-module.d.ts +15 -15
  215. package/lib/components/data-grid/tru-data-grid.d.ts +67 -67
  216. package/lib/components/desktop/classes/tru-desktop-title.d.ts +4 -4
  217. package/lib/components/desktop/classes/tru-desktop-view-config.d.ts +16 -16
  218. package/lib/components/desktop/directives/resizable/tru-desktop-resizable-module.d.ts +9 -9
  219. package/lib/components/desktop/directives/resizable/tru-desktop-resizable.d.ts +32 -32
  220. package/lib/components/desktop/menubar/tru-desktop-menubar-module.d.ts +17 -17
  221. package/lib/components/desktop/menubar/tru-desktop-menubar.d.ts +15 -15
  222. package/lib/components/desktop/services/tru-desktop-manager.d.ts +33 -33
  223. package/lib/components/desktop/services/tru-desktop-service.d.ts +95 -95
  224. package/lib/components/desktop/services/tru-window-action-event-handler.d.ts +12 -12
  225. package/lib/components/desktop/services/tru-window-event-args.d.ts +17 -17
  226. package/lib/components/desktop/services/tru-window-event-handler.d.ts +20 -20
  227. package/lib/components/desktop/statusbar/tru-desktop-statusbar-module.d.ts +9 -9
  228. package/lib/components/desktop/statusbar/tru-desktop-statusbar.d.ts +10 -10
  229. package/lib/components/desktop/taskbar/tru-desktop-taskbar-module.d.ts +11 -11
  230. package/lib/components/desktop/taskbar/tru-desktop-taskbar.d.ts +15 -15
  231. package/lib/components/desktop/tru-desktop-module.d.ts +20 -20
  232. package/lib/components/desktop/tru-desktop.d.ts +337 -337
  233. package/lib/components/desktop/view/tru-desktop-view-module.d.ts +9 -9
  234. package/lib/components/desktop/view/tru-desktop-view.d.ts +14 -14
  235. package/lib/components/desktop/viewport/tru-desktop-viewport-module.d.ts +10 -10
  236. package/lib/components/desktop/viewport/tru-desktop-viewport.d.ts +48 -48
  237. package/lib/components/desktop/window/tru-desktop-window-module.d.ts +17 -17
  238. package/lib/components/desktop/window/tru-desktop-window.d.ts +189 -189
  239. package/lib/components/export-dialog/tru-export-dialog-module.d.ts +10 -10
  240. package/lib/components/export-dialog/tru-export-dialog.d.ts +26 -26
  241. package/lib/components/layout/column/tru-column-module.d.ts +9 -9
  242. package/lib/components/layout/column/tru-column.d.ts +6 -6
  243. package/lib/components/layout/form/tru-form-module.d.ts +9 -9
  244. package/lib/components/layout/form/tru-form.d.ts +10 -10
  245. package/lib/components/layout/group-box/tru-group-box-module.d.ts +9 -9
  246. package/lib/components/layout/group-box/tru-group-box.d.ts +6 -6
  247. package/lib/components/layout/row/tru-row-module.d.ts +9 -9
  248. package/lib/components/layout/row/tru-row.d.ts +6 -6
  249. package/lib/components/login/classes/tru-auth-config.d.ts +16 -16
  250. package/lib/components/login/classes/tru-auth-jwt-strategy.d.ts +15 -15
  251. package/lib/components/login/classes/tru-auth-login-request.d.ts +4 -4
  252. package/lib/components/login/classes/tru-auth-logout-request.d.ts +3 -3
  253. package/lib/components/login/classes/tru-auth-session-strategy.d.ts +13 -13
  254. package/lib/components/login/classes/tru-auth-strategy-provider.d.ts +9 -9
  255. package/lib/components/login/classes/tru-auth-token.d.ts +6 -6
  256. package/lib/components/login/classes/tru-auth-user-request.d.ts +3 -3
  257. package/lib/components/login/services/tru-auth-cache.d.ts +11 -11
  258. package/lib/components/login/services/tru-auth-interceptor.d.ts +16 -16
  259. package/lib/components/login/services/tru-auth.d.ts +29 -29
  260. package/lib/components/login/tru-login-module.d.ts +11 -11
  261. package/lib/components/login/tru-login.d.ts +21 -21
  262. package/lib/components/password-dialog/tru-password-dialog-module.d.ts +10 -10
  263. package/lib/components/password-dialog/tru-password-dialog.d.ts +24 -23
  264. package/lib/components/toolbar/button/tru-toolbar-button-module.d.ts +11 -11
  265. package/lib/components/toolbar/button/tru-toolbar-button.d.ts +16 -16
  266. package/lib/components/toolbar/classes/tru-toolbar-dropdown-option.d.ts +4 -4
  267. package/lib/components/toolbar/context-filter/tru-toolbar-context-filter-module.d.ts +14 -14
  268. package/lib/components/toolbar/context-filter/tru-toolbar-context-filter.d.ts +13 -13
  269. package/lib/components/toolbar/dropdown/tru-toolbar-dropdown-module.d.ts +12 -12
  270. package/lib/components/toolbar/dropdown/tru-toolbar-dropdown.d.ts +18 -18
  271. package/lib/components/toolbar/menu/menu-button/tru-toolbar-menu-button-module.d.ts +9 -9
  272. package/lib/components/toolbar/menu/menu-button/tru-toolbar-menu-button.d.ts +7 -7
  273. package/lib/components/toolbar/menu/menu-item/tru-toolbar-menu-item-module.d.ts +9 -9
  274. package/lib/components/toolbar/menu/menu-item/tru-toolbar-menu-item.d.ts +8 -8
  275. package/lib/components/toolbar/menu/tru-toolbar-menu-module.d.ts +11 -11
  276. package/lib/components/toolbar/menu/tru-toolbar-menu.d.ts +10 -10
  277. package/lib/components/toolbar/separator/tru-toolbar-separator-module.d.ts +9 -9
  278. package/lib/components/toolbar/separator/tru-toolbar-separator.d.ts +6 -6
  279. package/lib/components/toolbar/text/tru-toolbar-text-module.d.ts +11 -11
  280. package/lib/components/toolbar/text/tru-toolbar-text.d.ts +12 -12
  281. package/lib/components/toolbar/tru-toolbar-module.d.ts +16 -16
  282. package/lib/components/toolbar/tru-toolbar.d.ts +9 -9
  283. package/lib/components/toolbar/user-profile/tru-toolbar-user-profile-module.d.ts +12 -12
  284. package/lib/components/toolbar/user-profile/tru-toolbar-user-profile.d.ts +17 -17
  285. package/lib/components/validation-dialog/tru-validation-dialog-config.d.ts +13 -13
  286. package/lib/components/validation-dialog/tru-validation-dialog-module.d.ts +9 -9
  287. package/lib/components/validation-dialog/tru-validation-dialog.d.ts +20 -20
  288. package/lib/directives/breeze-validator/tru-breeze-validator-module.d.ts +9 -9
  289. package/lib/directives/breeze-validator/tru-breeze-validator.d.ts +27 -27
  290. package/lib/directives/search-panel-position-manager/tru-search-panel-position-manager-module.d.ts +9 -9
  291. package/lib/directives/search-panel-position-manager/tru-search-panel-position-manager.d.ts +40 -40
  292. package/lib/directives/select-panel/tru-mat-select-panel-module.d.ts +9 -9
  293. package/lib/directives/select-panel/tru-mat-select-panel.d.ts +17 -17
  294. package/lib/interfaces/tru-value.d.ts +6 -6
  295. package/lib/material.module.d.ts +50 -50
  296. package/lib/services/tru-app-environment.d.ts +57 -57
  297. package/lib/services/tru-breeze-context-factory.d.ts +32 -32
  298. package/lib/services/tru-breeze-metadata-provider.d.ts +9 -9
  299. package/lib/services/tru-component-lookup.d.ts +9 -9
  300. package/lib/services/tru-connection-hub.d.ts +18 -18
  301. package/lib/services/tru-context-filters.d.ts +10 -10
  302. package/lib/services/tru-data-context.d.ts +42 -42
  303. package/lib/services/tru-entity-accessor.d.ts +46 -46
  304. package/lib/services/tru-model-property-lookup.d.ts +10 -10
  305. package/lib/services/tru-predicate-map.d.ts +6 -6
  306. package/lib/services/tru-search-result-view-manager.d.ts +10 -10
  307. package/lib/services/tru-sort.d.ts +56 -56
  308. package/lib/services/tru-table-registry.d.ts +8 -8
  309. package/lib/services/tru-text-manager.d.ts +68 -68
  310. package/lib/services/tru-ui-notification.d.ts +36 -36
  311. package/lib/services/tru-user.d.ts +29 -29
  312. package/lib/services/tru-util.d.ts +14 -14
  313. package/lib/tru-common-module.d.ts +6 -6
  314. package/package.json +5 -11
  315. package/public-api.d.ts +117 -117
  316. package/esm2020/lib/base-classes/tru-edit-control-config-base.mjs +0 -4
  317. package/esm2020/lib/base-classes/tru-entity-base.mjs +0 -13
  318. package/esm2020/lib/base-classes/tru-list-control-config-base.mjs +0 -4
  319. package/esm2020/lib/base-classes/tru-search-control-base.mjs +0 -47
  320. package/esm2020/lib/base-classes/tru-search-control-config-base.mjs +0 -4
  321. package/esm2020/lib/base-classes/tru-search-control-range-base.mjs +0 -47
  322. package/esm2020/lib/base-classes/tru-table-config-base.mjs +0 -13
  323. package/esm2020/lib/base-views/detail/tru-detail-view-base.mjs +0 -76
  324. package/esm2020/lib/base-views/search/services/tru-search-view-control-event-handler.mjs +0 -27
  325. package/esm2020/lib/base-views/search/services/tru-search-view-event-handler.mjs +0 -27
  326. package/esm2020/lib/base-views/search/tru-search-view-base.mjs +0 -63
  327. package/esm2020/lib/base-views/search-result/tru-search-result-view-base.mjs +0 -51
  328. package/esm2020/lib/classes/tru-context-filter-choice.mjs +0 -8
  329. package/esm2020/lib/classes/tru-context-filter.mjs +0 -16
  330. package/esm2020/lib/classes/tru-data-change-parser.mjs +0 -277
  331. package/esm2020/lib/classes/tru-data-change.mjs +0 -7
  332. package/esm2020/lib/classes/tru-merge-data-set.mjs +0 -12
  333. package/esm2020/lib/classes/tru-merge-data.mjs +0 -17
  334. package/esm2020/lib/classes/tru-predicate.mjs +0 -47
  335. package/esm2020/lib/classes/tru-property-config-date.mjs +0 -9
  336. package/esm2020/lib/classes/tru-property-config-decimal.mjs +0 -11
  337. package/esm2020/lib/classes/tru-property-config-foreign-key.mjs +0 -10
  338. package/esm2020/lib/classes/tru-property-config-integer.mjs +0 -9
  339. package/esm2020/lib/classes/tru-property-config-password.mjs +0 -8
  340. package/esm2020/lib/classes/tru-property-config-percentage.mjs +0 -9
  341. package/esm2020/lib/classes/tru-property-config-scientific.mjs +0 -9
  342. package/esm2020/lib/classes/tru-query-predicate-manager.mjs +0 -49
  343. package/esm2020/lib/components/confirm-dialog/tru-confirm-dialog.mjs +0 -45
  344. package/esm2020/lib/components/data-grid/overlays/tru-data-grid-loading-overlay/tru-data-grid-loading-overlay.mjs +0 -39
  345. package/esm2020/lib/components/data-grid/overlays/tru-data-grid-no-rows-overlay/tru-data-grid-no-rows-overlay.mjs +0 -26
  346. package/esm2020/lib/components/data-grid/tru-data-grid-module.mjs +0 -67
  347. package/esm2020/lib/components/data-grid/tru-data-grid.mjs +0 -370
  348. package/esm2020/lib/components/desktop/classes/tru-desktop-view-config.mjs +0 -21
  349. package/esm2020/lib/components/desktop/directives/resizable/tru-desktop-resizable.mjs +0 -109
  350. package/esm2020/lib/components/desktop/menubar/tru-desktop-menubar.mjs +0 -34
  351. package/esm2020/lib/components/desktop/services/tru-desktop-manager.mjs +0 -84
  352. package/esm2020/lib/components/desktop/services/tru-desktop-service.mjs +0 -116
  353. package/esm2020/lib/components/desktop/services/tru-window-action-event-handler.mjs +0 -27
  354. package/esm2020/lib/components/desktop/services/tru-window-event-args.mjs +0 -26
  355. package/esm2020/lib/components/desktop/services/tru-window-event-handler.mjs +0 -44
  356. package/esm2020/lib/components/desktop/statusbar/tru-desktop-statusbar.mjs +0 -18
  357. package/esm2020/lib/components/desktop/taskbar/tru-desktop-taskbar.mjs +0 -40
  358. package/esm2020/lib/components/desktop/tru-desktop.mjs +0 -731
  359. package/esm2020/lib/components/desktop/view/tru-desktop-view.mjs +0 -25
  360. package/esm2020/lib/components/desktop/viewport/tru-desktop-viewport.mjs +0 -113
  361. package/esm2020/lib/components/desktop/window/tru-desktop-window.mjs +0 -457
  362. package/esm2020/lib/components/export-dialog/tru-export-dialog.mjs +0 -57
  363. package/esm2020/lib/components/layout/form/tru-form.mjs +0 -34
  364. package/esm2020/lib/components/login/classes/tru-auth-jwt-strategy.mjs +0 -65
  365. package/esm2020/lib/components/login/classes/tru-auth-session-strategy.mjs +0 -19
  366. package/esm2020/lib/components/login/services/tru-auth-cache.mjs +0 -22
  367. package/esm2020/lib/components/login/services/tru-auth-interceptor.mjs +0 -43
  368. package/esm2020/lib/components/login/services/tru-auth.mjs +0 -81
  369. package/esm2020/lib/components/login/tru-login-module.mjs +0 -46
  370. package/esm2020/lib/components/login/tru-login.mjs +0 -58
  371. package/esm2020/lib/components/password-dialog/tru-password-dialog.mjs +0 -44
  372. package/esm2020/lib/components/toolbar/button/tru-toolbar-button.mjs +0 -41
  373. package/esm2020/lib/components/toolbar/context-filter/tru-toolbar-context-filter.mjs +0 -24
  374. package/esm2020/lib/components/toolbar/dropdown/tru-toolbar-dropdown.mjs +0 -43
  375. package/esm2020/lib/components/toolbar/menu/menu-button/tru-toolbar-menu-button.mjs +0 -16
  376. package/esm2020/lib/components/toolbar/menu/menu-item/tru-toolbar-menu-item.mjs +0 -26
  377. package/esm2020/lib/components/toolbar/menu/tru-toolbar-menu.mjs +0 -33
  378. package/esm2020/lib/components/toolbar/text/tru-toolbar-text.mjs +0 -28
  379. package/esm2020/lib/components/toolbar/user-profile/tru-toolbar-user-profile.mjs +0 -35
  380. package/esm2020/lib/components/validation-dialog/tru-validation-dialog-config.mjs +0 -21
  381. package/esm2020/lib/components/validation-dialog/tru-validation-dialog.mjs +0 -79
  382. package/esm2020/lib/directives/breeze-validator/tru-breeze-validator.mjs +0 -100
  383. package/esm2020/lib/directives/search-panel-position-manager/tru-search-panel-position-manager.mjs +0 -151
  384. package/esm2020/lib/directives/select-panel/tru-mat-select-panel.mjs +0 -66
  385. package/esm2020/lib/services/tru-app-environment.mjs +0 -94
  386. package/esm2020/lib/services/tru-breeze-context-factory.mjs +0 -79
  387. package/esm2020/lib/services/tru-breeze-metadata-provider.mjs +0 -22
  388. package/esm2020/lib/services/tru-component-lookup.mjs +0 -25
  389. package/esm2020/lib/services/tru-connection-hub.mjs +0 -48
  390. package/esm2020/lib/services/tru-context-filters.mjs +0 -29
  391. package/esm2020/lib/services/tru-data-context.mjs +0 -258
  392. package/esm2020/lib/services/tru-entity-accessor.mjs +0 -287
  393. package/esm2020/lib/services/tru-model-property-lookup.mjs +0 -22
  394. package/esm2020/lib/services/tru-search-result-view-manager.mjs +0 -17
  395. package/esm2020/lib/services/tru-sort.mjs +0 -114
  396. package/esm2020/lib/services/tru-table-registry.mjs +0 -16
  397. package/esm2020/lib/services/tru-text-manager.mjs +0 -134
  398. package/esm2020/lib/services/tru-ui-notification.mjs +0 -103
  399. package/esm2020/lib/services/tru-user.mjs +0 -63
  400. package/esm2020/lib/services/tru-util.mjs +0 -77
  401. package/fesm2015/trudb-tru-common-lib.mjs +0 -6799
  402. package/fesm2015/trudb-tru-common-lib.mjs.map +0 -1
  403. package/fesm2020/trudb-tru-common-lib.mjs +0 -6776
  404. package/fesm2020/trudb-tru-common-lib.mjs.map +0 -1
@@ -0,0 +1,148 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as _ from 'underscore';
3
+ import * as i0 from "@angular/core";
4
+ export class TruTextManager {
5
+ msgModifierKeyLabel;
6
+ msgConfirmExitWithChangesPending;
7
+ msgDeleteSuccessful;
8
+ msgSaveSuccessful;
9
+ msgNoChangesToSave;
10
+ msgSaveInProgress;
11
+ msgInvalidData;
12
+ msgDirtyPreventsReadOnly;
13
+ msgDirtyPreventsNavigate;
14
+ msgDirtyPreventsClose;
15
+ msgDirtyPreventsDeleteExistingRecord;
16
+ msgNoDeleteAccess;
17
+ msgCannotDeleteNewAndExistingRecords;
18
+ msgDeleteReferencingRecordsFirst;
19
+ constructor() {
20
+ this.msgModifierKeyLabel = this.isMac() ? 'Cmd' : 'Ctrl';
21
+ this.msgConfirmExitWithChangesPending = 'You have unsaved changes that will be lost.';
22
+ this.msgDeleteSuccessful = 'Delete succeeded';
23
+ this.msgSaveSuccessful = 'Save succeeded';
24
+ this.msgNoChangesToSave = 'No changes to save';
25
+ this.msgSaveInProgress = 'Save in progress';
26
+ this.msgInvalidData = 'Invalid data';
27
+ this.msgDirtyPreventsReadOnly = 'Save or revert before disabling editing';
28
+ this.msgDirtyPreventsNavigate = 'Save or revert before navigating';
29
+ this.msgDirtyPreventsClose = 'Save or revert before closing window';
30
+ this.msgDirtyPreventsDeleteExistingRecord = 'Save or revert before deleting';
31
+ this.msgNoDeleteAccess = 'Contact administrator about delete access';
32
+ this.msgCannotDeleteNewAndExistingRecords = 'Delete new or existing records - but not both';
33
+ this.msgDeleteReferencingRecordsFirst = 'Delete all referencing records first';
34
+ }
35
+ /**
36
+ * If text.length exceeds length, then returns a string that is the first length chars
37
+ * of text plus suffix. Otherwise, returns text.
38
+ * @param {string} text
39
+ * @param {number} length
40
+ * @param {string} suffix
41
+ * @return {string}
42
+ */
43
+ truncate = (text, length, suffix) => {
44
+ return text.length > length ? text.substr(0, length) + suffix : text.toString();
45
+ };
46
+ isMac = () => {
47
+ return navigator.platform.toUpperCase().indexOf('MAC') >= 0;
48
+ };
49
+ /**
50
+ * Formats the text to use for the window title.
51
+ * @param {string} text
52
+ * @return {string} - Window title.
53
+ */
54
+ formatWindowTitle = (text) => {
55
+ return this.truncate(text, 60, '...');
56
+ };
57
+ /**
58
+ * Returns a message indicating that an entity or entities were deleted in another view.
59
+ * @param {string} entityTypeLabel - Description of the entity type.
60
+ * @param [{string}] entityTypePluralLabel - Description of more than one of the entity type.
61
+ * @param [{number}] count - Number of entities.
62
+ */
63
+ fmtEntityDeletedInOtherView = (entityTypeLabel, entityTypePluralLabel, count) => {
64
+ if (!count || count === 1)
65
+ return entityTypeLabel + ' deleted in another view';
66
+ return count + ' ' + entityTypePluralLabel + ' deleted in another view';
67
+ };
68
+ /**
69
+ * Returns a message used to confirm deletion of an entity or entities.
70
+ * @param {string} entityTypeLabel - Description of the entity type.
71
+ * @param [{string}] entityTypePluralLabel - Description of more than one of the entity type.
72
+ * @param [{number}] count - Number of entities.
73
+ */
74
+ fmtDeleteConfirmation = (entityTypeLabel, entityTypePluralLabel = null, count = null) => {
75
+ if (count === null)
76
+ return 'Are you sure you want to delete this ' + entityTypeLabel + '?';
77
+ if (count === 1)
78
+ return 'Are you sure you want to delete 1 ' + entityTypeLabel + '?';
79
+ return 'Are you sure you want to delete ' + count + ' ' + entityTypePluralLabel + '?';
80
+ };
81
+ /**
82
+ * Returns a message formatted from an error object.
83
+ * @param {error|string} error
84
+ * @returns {string}
85
+ */
86
+ fmtErrorToShow = (error) => {
87
+ if (typeof error === 'string')
88
+ error = new Error(error);
89
+ var lines = [];
90
+ lines.push(error.message);
91
+ var exception = error.detail;
92
+ while (exception) {
93
+ var message = exception.ExceptionMessage;
94
+ if (!_.contains(lines, message))
95
+ lines.push(message);
96
+ exception = exception.InnerException;
97
+ }
98
+ if (error.entityErrors) {
99
+ error.entityErrors.forEach((entityError) => {
100
+ lines.push('Entity <' + entityError.propertyName + '>: ' + entityError.errorMessage);
101
+ });
102
+ }
103
+ if (error.stack)
104
+ lines.push(error.stack);
105
+ var text = lines.join('\r\n\r\n');
106
+ if (!text)
107
+ text = _.map(error, (value, key) => { return key + ': ' + value; }).join('\r\n');
108
+ return text;
109
+ };
110
+ /**
111
+ * Returns a message formatted from an exception object.
112
+ * @param {object} exception
113
+ * @returns {string}
114
+ */
115
+ fmtExceptionToShow = (exception) => {
116
+ var lines = [];
117
+ while (exception) {
118
+ var message = exception.Message;
119
+ if (!_.contains(lines, message))
120
+ lines.push(message);
121
+ exception = exception.InnerException;
122
+ }
123
+ return lines.join('\r\n\r\n');
124
+ };
125
+ /**
126
+ * Returns a message for a data error type.
127
+ * @param {string} typeName
128
+ * @returns {string}
129
+ */
130
+ fmtDataError = (typeName) => {
131
+ if (typeName.indexOf('OptimisticLockViolation') >= 0)
132
+ return 'The record was edited already, by another user. Please reload and attempt your edit again.';
133
+ if (typeName.indexOf('DataConstraintViolation') >= 0)
134
+ return 'Foreign key constraint violation';
135
+ if (typeName.indexOf('DuplicateKeyError') >= 0)
136
+ return 'Duplicate key error';
137
+ return typeName;
138
+ };
139
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruTextManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
140
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruTextManager, providedIn: 'root' });
141
+ }
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruTextManager, decorators: [{
143
+ type: Injectable,
144
+ args: [{
145
+ providedIn: 'root',
146
+ }]
147
+ }], ctorParameters: () => [] });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXRleHQtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvdHJ1LXRleHQtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sWUFBWSxDQUFDOztBQUtoQyxNQUFNLE9BQU8sY0FBYztJQUNoQixtQkFBbUIsQ0FBUztJQUM1QixnQ0FBZ0MsQ0FBUztJQUN6QyxtQkFBbUIsQ0FBUztJQUM1QixpQkFBaUIsQ0FBUztJQUMxQixrQkFBa0IsQ0FBUztJQUMzQixpQkFBaUIsQ0FBUztJQUMxQixjQUFjLENBQVM7SUFDdkIsd0JBQXdCLENBQVM7SUFDakMsd0JBQXdCLENBQVM7SUFDakMscUJBQXFCLENBQVM7SUFDOUIsb0NBQW9DLENBQVM7SUFDN0MsaUJBQWlCLENBQVM7SUFDMUIsb0NBQW9DLENBQVM7SUFDN0MsZ0NBQWdDLENBQVM7SUFFbEQ7UUFDRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN6RCxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsNkNBQTZDLENBQUM7UUFDdEYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDO1FBQzlDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsb0JBQW9CLENBQUM7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyx5Q0FBeUMsQ0FBQztRQUMxRSxJ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WUFDbEQsT0FBTyw2RkFBNkYsQ0FBQztRQUN2RyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDO1lBQ2xELE9BQU8sa0NBQWtDLENBQUM7UUFDNUMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztZQUM1QyxPQUFPLHFCQUFxQixDQUFDO1FBQy9CLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsQ0FBQTt1R0FsSlUsY0FBYzsyR0FBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAndW5kZXJzY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1VGV4dE1hbmFnZXIge1xyXG4gIHJlYWRvbmx5IG1zZ01vZGlmaWVyS2V5TGFiZWw6IHN0cmluZztcclxuICByZWFkb25seSBtc2dDb25maXJtRXhpdFdpdGhDaGFuZ2VzUGVuZGluZzogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0RlbGV0ZVN1Y2Nlc3NmdWw6IHN0cmluZztcclxuICByZWFkb25seSBtc2dTYXZlU3VjY2Vzc2Z1bDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ05vQ2hhbmdlc1RvU2F2ZTogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ1NhdmVJblByb2dyZXNzOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbXNnSW52YWxpZERhdGE6IHN0cmluZztcclxuICByZWFkb25seSBtc2dEaXJ0eVByZXZlbnRzUmVhZE9ubHk6IHN0cmluZztcclxuICByZWFkb25seSBtc2dEaXJ0eVByZXZlbnRzTmF2aWdhdGU6IHN0cmluZztcclxuICByZWFkb25seSBtc2dEaXJ0eVByZXZlbnRzQ2xvc2U6IHN0cmluZztcclxuICByZWFkb25seSBtc2dEaXJ0eVByZXZlbnRzRGVsZXRlRXhpc3RpbmdSZWNvcmQ6IHN0cmluZztcclxuICByZWFkb25seSBtc2dOb0RlbGV0ZUFjY2Vzczogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0Nhbm5vdERlbGV0ZU5ld0FuZEV4aXN0aW5nUmVjb3Jkczogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IG1zZ0RlbGV0ZVJlZmVyZW5jaW5nUmVjb3Jkc0ZpcnN0OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5tc2dNb2RpZmllcktleUxhYmVsID0gdGhpcy5pc01hYygpID8gJ0NtZCcgOiAnQ3RybCc7XHJcbiAgICB0aGlzLm1zZ0NvbmZpcm1FeGl0V2l0aENoYW5nZXNQZW5kaW5nID0gJ1lvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcyB0aGF0IHdpbGwgYmUgbG9zdC4nO1xyXG4gICAgdGhpcy5tc2dEZWxldGVTdWNjZXNzZnVsID0gJ0RlbGV0ZSBzdWNjZWVkZWQnO1xyXG4gICAgdGhpcy5tc2dTYXZlU3VjY2Vzc2Z1bCA9ICdTYXZlIHN1Y2NlZWRlZCc7XHJcbiAgICB0aGlzLm1zZ05vQ2hhbmdlc1RvU2F2ZSA9ICdObyBjaGFuZ2VzIHRvIHNhdmUnO1xyXG4gICAgdGhpcy5tc2dTYXZlSW5Qcm9ncmVzcyA9ICdTYXZlIGluIHByb2dyZXNzJztcclxuICAgIHRoaXMubXNnSW52YWxpZERhdGEgPSAnSW52YWxpZCBkYXRhJztcclxuICAgIHRoaXMubXNnRGlydHlQcmV2ZW50c1JlYWRPbmx5ID0gJ1NhdmUgb3IgcmV2ZXJ0IGJlZm9yZSBkaXNhYmxpbmcgZWRpdGluZyc7XHJcbiAgICB0aGlzLm1zZ0RpcnR5UHJldmVudHNOYXZpZ2F0ZSA9ICdTYXZlIG9yIHJldmVydCBiZWZvcmUgbmF2aWdhdGluZyc7XHJcbiAgICB0aGlzLm1zZ0RpcnR5UHJldmVudHNDbG9zZSA9ICdTYXZlIG9yIHJldmVydCBiZWZvcmUgY2xvc2luZyB3aW5kb3cnO1xyXG4gICAgdGhpcy5tc2dEaXJ0eVByZXZlbnRzRGVsZXRlRXhpc3RpbmdSZWNvcmQgPSAnU2F2ZSBvciByZXZlcnQgYmVmb3JlIGRlbGV0aW5nJztcclxuICAgIHRoaXMubXNnTm9EZWxldGVBY2Nlc3MgPSAnQ29udGFjdCBhZG1pbmlzdHJhdG9yIGFib3V0IGRlbGV0ZSBhY2Nlc3MnO1xyXG4gICAgdGhpcy5tc2dDYW5ub3REZWxldGVOZXdBbmRFeGlzdGluZ1JlY29yZHMgPSAnRGVsZXRlIG5ldyBvciBleGlzdGluZyByZWNvcmRzIC0gYnV0IG5vdCBib3RoJztcclxuICAgIHRoaXMubXNnRGVsZXRlUmVmZXJlbmNpbmdSZWNvcmRzRmlyc3QgPSAnRGVsZXRlIGFsbCByZWZlcmVuY2luZyByZWNvcmRzIGZpcnN0JztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogSWYgdGV4dC5sZW5ndGggZXhjZWVkcyBsZW5ndGgsIHRoZW4gcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHRoZSBmaXJzdCBsZW5ndGggY2hhcnMgXHJcbiAgKiBvZiB0ZXh0IHBsdXMgc3VmZml4LiAgT3RoZXJ3aXNlLCByZXR1cm5zIHRleHQuXHJcbiAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dFxyXG4gICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aFxyXG4gICogQHBhcmFtIHtzdHJpbmd9IHN1ZmZpeFxyXG4gICogQHJldHVybiB7c3RyaW5nfVxyXG4gICovXHJcbiAgcHJpdmF0ZSB0cnVuY2F0ZSA9ICh0ZXh0OiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyLCBzdWZmaXg6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgICByZXR1cm4gdGV4dC5sZW5ndGggPiBsZW5ndGggPyB0ZXh0LnN1YnN0cigwLCBsZW5ndGgpICsgc3VmZml4IDogdGV4dC50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgaXNNYWMgPSAoKTogYm9vbGVhbiA9PiB7XHJcbiAgICByZXR1cm4gbmF2aWdhdG9yLnBsYXRmb3JtLnRvVXBwZXJDYXNlKCkuaW5kZXhPZignTUFDJykgPj0gMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdHMgdGhlIHRleHQgdG8gdXNlIGZvciB0aGUgd2luZG93IHRpdGxlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XHJcbiAgICogQHJldHVybiB7c3RyaW5nfSAtIFdpbmRvdyB0aXRsZS5cclxuICAgKi9cclxuICBmb3JtYXRXaW5kb3dUaXRsZSA9ICh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJ1bmNhdGUodGV4dCwgNjAsICcuLi4nKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogUmV0dXJucyBhIG1lc3NhZ2UgaW5kaWNhdGluZyB0aGF0IGFuIGVudGl0eSBvciBlbnRpdGllcyB3ZXJlIGRlbGV0ZWQgaW4gYW5vdGhlciB2aWV3LiBcclxuICAqIEBwYXJhbSB7c3RyaW5nfSBlbnRpdHlUeXBlTGFiZWwgLSBEZXNjcmlwdGlvbiBvZiB0aGUgZW50aXR5IHR5cGUuXHJcbiAgKiBAcGFyYW0gW3tzdHJpbmd9XSBlbnRpdHlUeXBlUGx1cmFsTGFiZWwgLSBEZXNjcmlwdGlvbiBvZiBtb3JlIHRoYW4gb25lIG9mIHRoZSBlbnRpdHkgdHlwZS5cclxuICAqIEBwYXJhbSBbe251bWJlcn1dIGNvdW50IC0gTnVtYmVyIG9mIGVudGl0aWVzLlxyXG4gICovXHJcbiAgZm10RW50aXR5RGVsZXRlZEluT3RoZXJWaWV3ID0gKGVudGl0eVR5cGVMYWJlbDogc3RyaW5nLCBlbnRpdHlUeXBlUGx1cmFsTGFiZWw6IHN0cmluZywgY291bnQ6IG51bWJlcik6IHN0cmluZyA9PiB7XHJcbiAgICBpZiAoIWNvdW50IHx8IGNvdW50ID09PSAxKVxyXG4gICAgICByZXR1cm4gZW50aXR5VHlwZUxhYmVsICsgJyBkZWxldGVkIGluIGFub3RoZXIgdmlldyc7XHJcbiAgICByZXR1cm4gY291bnQgKyAnICcgKyBlbnRpdHlUeXBlUGx1cmFsTGFiZWwgKyAnIGRlbGV0ZWQgaW4gYW5vdGhlciB2aWV3JztcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgbWVzc2FnZSB1c2VkIHRvIGNvbmZpcm0gZGVsZXRpb24gb2YgYW4gZW50aXR5IG9yIGVudGl0aWVzLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBlbnRpdHlUeXBlTGFiZWwgLSBEZXNjcmlwdGlvbiBvZiB0aGUgZW50aXR5IHR5cGUuXHJcbiAgICogQHBhcmFtIFt7c3RyaW5nfV0gZW50aXR5VHlwZVBsdXJhbExhYmVsIC0gRGVzY3JpcHRpb24gb2YgbW9yZSB0aGFuIG9uZSBvZiB0aGUgZW50aXR5IHR5cGUuXHJcbiAgICogQHBhcmFtIFt7bnVtYmVyfV0gY291bnQgLSBOdW1iZXIgb2YgZW50aXRpZXMuXHJcbiAgICovXHJcbiAgZm10RGVsZXRlQ29uZmlybWF0aW9uID0gKFxyXG4gICAgZW50aXR5VHlwZUxhYmVsOiBzdHJpbmcsXHJcbiAgICBlbnRpdHlUeXBlUGx1cmFsTGFiZWw6IHN0cmluZyB8IG51bGwgPSBudWxsLFxyXG4gICAgY291bnQ6IG51bWJlciB8IG51bGwgPSBudWxsKTogc3RyaW5nID0+IHtcclxuICAgIGlmIChjb3VudCA9PT0gbnVsbClcclxuICAgICAgcmV0dXJuICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgJyArIGVudGl0eVR5cGVMYWJlbCArICc/JztcclxuICAgIGlmIChjb3VudCA9PT0gMSlcclxuICAgICAgcmV0dXJuICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIDEgJyArIGVudGl0eVR5cGVMYWJlbCArICc/JztcclxuICAgIHJldHVybiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSAnICsgY291bnQgKyAnICcgKyBlbnRpdHlUeXBlUGx1cmFsTGFiZWwgKyAnPyc7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhIG1lc3NhZ2UgZm9ybWF0dGVkIGZyb20gYW4gZXJyb3Igb2JqZWN0LlxyXG4gICAqIEBwYXJhbSB7ZXJyb3J8c3RyaW5nfSBlcnJvciBcclxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxyXG4gICAqL1xyXG4gIGZtdEVycm9yVG9TaG93ID0gKGVycm9yOiBhbnkpOiBzdHJpbmcgPT4ge1xyXG4gICAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpXHJcbiAgICAgIGVycm9yID0gbmV3IEVycm9yKGVycm9yKTtcclxuICAgIHZhciBsaW5lcyA9IFtdO1xyXG4gICAgbGluZXMucHVzaChlcnJvci5tZXNzYWdlKTtcclxuICAgIHZhciBleGNlcHRpb24gPSBlcnJvci5kZXRhaWw7XHJcbiAgICB3aGlsZSAoZXhjZXB0aW9uKSB7XHJcbiAgICAgIHZhciBtZXNzYWdlID0gZXhjZXB0aW9uLkV4Y2VwdGlvbk1lc3NhZ2U7XHJcbiAgICAgIGlmICghXy5jb250YWlucyhsaW5lcywgbWVzc2FnZSkpXHJcbiAgICAgICAgbGluZXMucHVzaChtZXNzYWdlKTtcclxuICAgICAgZXhjZXB0aW9uID0gZXhjZXB0aW9uLklubmVyRXhjZXB0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKGVycm9yLmVudGl0eUVycm9ycykge1xyXG4gICAgICBlcnJvci5lbnRpdHlFcnJvcnMuZm9yRWFjaCgoZW50aXR5RXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIGxpbmVzLnB1c2goJ0VudGl0eSA8JyArIGVudGl0eUVycm9yLnByb3BlcnR5TmFtZSArICc+OiAnICsgZW50aXR5RXJyb3IuZXJyb3JNZXNzYWdlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoZXJyb3Iuc3RhY2spXHJcbiAgICAgIGxpbmVzLnB1c2goZXJyb3Iuc3RhY2spO1xyXG4gICAgdmFyIHRleHQgPSBsaW5lcy5qb2luKCdcXHJcXG5cXHJcXG4nKTtcclxuICAgIGlmICghdGV4dClcclxuICAgICAgdGV4dCA9IF8ubWFwKGVycm9yLCAodmFsdWU6IHN0cmluZywga2V5OiBzdHJpbmcpID0+IHsgcmV0dXJuIGtleSArICc6ICcgKyB2YWx1ZSB9KS5qb2luKCdcXHJcXG4nKTtcclxuICAgIHJldHVybiB0ZXh0O1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBtZXNzYWdlIGZvcm1hdHRlZCBmcm9tIGFuIGV4Y2VwdGlvbiBvYmplY3QuXHJcbiAgICogQHBhcmFtIHtvYmplY3R9IGV4Y2VwdGlvblxyXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XHJcbiAgICovXHJcbiAgZm10RXhjZXB0aW9uVG9TaG93ID0gKGV4Y2VwdGlvbjogYW55KTogc3RyaW5nID0+IHtcclxuICAgIHZhciBsaW5lcyA9IFtdO1xyXG4gICAgd2hpbGUgKGV4Y2VwdGlvbikge1xyXG4gICAgICB2YXIgbWVzc2FnZSA9IGV4Y2VwdGlvbi5NZXNzYWdlO1xyXG4gICAgICBpZiAoIV8uY29udGFpbnMobGluZXMsIG1lc3NhZ2UpKVxyXG4gICAgICAgIGxpbmVzLnB1c2gobWVzc2FnZSk7XHJcbiAgICAgIGV4Y2VwdGlvbiA9IGV4Y2VwdGlvbi5Jbm5lckV4Y2VwdGlvbjtcclxuICAgIH1cclxuICAgIHJldHVybiBsaW5lcy5qb2luKCdcXHJcXG5cXHJcXG4nKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgbWVzc2FnZSBmb3IgYSBkYXRhIGVycm9yIHR5cGUuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGVOYW1lIFxyXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFxyXG4gICAqL1xyXG4gIGZtdERhdGFFcnJvciA9ICh0eXBlTmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuICAgIGlmICh0eXBlTmFtZS5pbmRleE9mKCdPcHRpbWlzdGljTG9ja1Zpb2xhdGlvbicpID49IDApXHJcbiAgICAgIHJldHVybiAnVGhlIHJlY29yZCB3YXMgZWRpdGVkIGFscmVhZHksIGJ5IGFub3RoZXIgdXNlci4gIFBsZWFzZSByZWxvYWQgYW5kIGF0dGVtcHQgeW91ciBlZGl0IGFnYWluLic7XHJcbiAgICBpZiAodHlwZU5hbWUuaW5kZXhPZignRGF0YUNvbnN0cmFpbnRWaW9sYXRpb24nKSA+PSAwKVxyXG4gICAgICByZXR1cm4gJ0ZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdmlvbGF0aW9uJztcclxuICAgIGlmICh0eXBlTmFtZS5pbmRleE9mKCdEdXBsaWNhdGVLZXlFcnJvcicpID49IDApXHJcbiAgICAgIHJldHVybiAnRHVwbGljYXRlIGtleSBlcnJvcic7XHJcbiAgICByZXR1cm4gdHlwZU5hbWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,107 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TruConfirmDialog, TruConfirmDialogConfig } from '../components/confirm-dialog/tru-confirm-dialog';
3
+ import { TruExportDialog, TruExportDialogConfig } from '../components/export-dialog/tru-export-dialog';
4
+ import { TruPasswordDialog } from '../components/password-dialog/tru-password-dialog';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "ngx-toastr";
7
+ import * as i2 from "@angular/material/dialog";
8
+ export class TruUiNotification {
9
+ toastr;
10
+ dialog;
11
+ _toastr;
12
+ _dialog;
13
+ constructor(toastr, dialog) {
14
+ this.toastr = toastr;
15
+ this.dialog = dialog;
16
+ this._toastr = toastr;
17
+ this._dialog = dialog;
18
+ }
19
+ showMessage = (popup, log, prefix, message, detail = null) => {
20
+ popup(message);
21
+ message = prefix + ': ' + message;
22
+ if (detail)
23
+ message += '\r\n' + detail;
24
+ this.log(message);
25
+ };
26
+ /**
27
+ * Shows as toast and logs to server an error message and optional detail information.
28
+ * @param {string} message - Displayed as toast.
29
+ * @param {string} [detail] - Logged to console.
30
+ */
31
+ error = (message, detail = null) => {
32
+ this.showMessage((message) => this._toastr.error(message), this.log, 'Error', message, detail);
33
+ };
34
+ /**
35
+ * Same as error() but for info message.
36
+ */
37
+ info = (message, detail = null) => {
38
+ this.showMessage((message) => this._toastr.info(message), this.log, 'Info', message, detail);
39
+ };
40
+ /**
41
+ * Same as error() but for success message.
42
+ */
43
+ success = (message, detail = null) => {
44
+ this.showMessage((message) => this._toastr.success(message), this.log, 'Success', message, detail);
45
+ };
46
+ /**
47
+ * Same as error() but for warning message.
48
+ */
49
+ warning = (message, detail = null) => {
50
+ this.showMessage((message) => this._toastr.warning(message), this.log, 'Warning', message, detail);
51
+ };
52
+ log = (message) => {
53
+ var console = window.console;
54
+ !!console && console.log && console.log.apply && console.log.apply(console, [message]);
55
+ };
56
+ showErrorDialog = (title, message) => {
57
+ };
58
+ showExportDialog = () => {
59
+ return new Promise((resolve, reject) => {
60
+ let dialogConfig = new TruExportDialogConfig('Export');
61
+ let dialogRef = this._dialog.open(TruExportDialog, {
62
+ disableClose: true,
63
+ minWidth: "200px",
64
+ maxWidth: "400px",
65
+ data: dialogConfig
66
+ });
67
+ dialogRef.afterClosed().subscribe(dialogResult => {
68
+ resolve(dialogResult);
69
+ });
70
+ });
71
+ };
72
+ confirm = (title, message, displayCancelButton = true, displayConfirmButton = true, cancelButtonName = 'Cancel', confirmButtonName = 'Ok') => {
73
+ return new Promise((resolve, reject) => {
74
+ let dialogConfig = new TruConfirmDialogConfig(title, message, displayCancelButton, displayConfirmButton, cancelButtonName, confirmButtonName);
75
+ let dialogRef = this._dialog.open(TruConfirmDialog, {
76
+ disableClose: true,
77
+ minWidth: "200px",
78
+ maxWidth: "400px",
79
+ data: dialogConfig
80
+ });
81
+ dialogRef.afterClosed().subscribe(dialogResult => {
82
+ resolve(dialogResult);
83
+ });
84
+ });
85
+ };
86
+ changePassword = () => {
87
+ return new Promise((resolve, reject) => {
88
+ let dialogRef = this._dialog.open(TruPasswordDialog, {
89
+ disableClose: true,
90
+ minWidth: "400px",
91
+ maxWidth: "400px"
92
+ });
93
+ dialogRef.afterClosed().subscribe(dialogResult => {
94
+ resolve(dialogResult);
95
+ });
96
+ });
97
+ };
98
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruUiNotification, deps: [{ token: i1.ToastrService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
99
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruUiNotification, providedIn: 'root' });
100
+ }
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruUiNotification, decorators: [{
102
+ type: Injectable,
103
+ args: [{
104
+ providedIn: 'root',
105
+ }]
106
+ }], ctorParameters: () => [{ type: i1.ToastrService }, { type: i2.MatDialog }] });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXVpLW5vdGlmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RydS1jb21tb24tbGliL3NyYy9saWIvc2VydmljZXMvdHJ1LXVpLW5vdGlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7OztBQUt0RixNQUFNLE9BQU8saUJBQWlCO0lBS2xCO0lBQ0E7SUFMRixPQUFPLENBQWdCO0lBQ3ZCLE9BQU8sQ0FBWTtJQUUzQixZQUNVLE1BQXFCLEVBQ3JCLE1BQWlCO1FBRGpCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVyxHQUFHLENBQUMsS0FBVSxFQUFFLEdBQThCLEVBQUUsTUFBYyxFQUFFLE9BQWUsRUFBRSxTQUErQixJQUFJLEVBQUUsRUFBRTtRQUNqSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixPQUFPLEdBQUcsTUFBTSxHQUFHLElBQUksR0FBRyxPQUFPLENBQUM7UUFDbEMsSUFBSSxNQUFNO1lBQ1IsT0FBTyxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQixDQUFDLENBQUM7SUFFRjs7OztNQUlFO0lBQ0YsS0FBSyxHQUFH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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgVHJ1Q29uZmlybURpYWxvZywgVHJ1Q29uZmlybURpYWxvZ0NvbmZpZyB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29uZmlybS1kaWFsb2cvdHJ1LWNvbmZpcm0tZGlhbG9nJztcclxuaW1wb3J0IHsgVHJ1RXhwb3J0RGlhbG9nLCBUcnVFeHBvcnREaWFsb2dDb25maWcgfSBmcm9tICcuLi9jb21wb25lbnRzL2V4cG9ydC1kaWFsb2cvdHJ1LWV4cG9ydC1kaWFsb2cnO1xyXG5pbXBvcnQgeyBUcnVQYXNzd29yZERpYWxvZyB9IGZyb20gJy4uL2NvbXBvbmVudHMvcGFzc3dvcmQtZGlhbG9nL3RydS1wYXNzd29yZC1kaWFsb2cnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydVVpTm90aWZpY2F0aW9uIHtcclxuICBwcml2YXRlIF90b2FzdHI6IFRvYXN0clNlcnZpY2U7XHJcbiAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2c7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcbiAgICB0aGlzLl90b2FzdHIgPSB0b2FzdHI7XHJcbiAgICB0aGlzLl9kaWFsb2cgPSBkaWFsb2c7XHJcbiAgfVxyXG5cclxuICBzaG93TWVzc2FnZSA9IChwb3B1cDogYW55LCBsb2c6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQsIHByZWZpeDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGRldGFpbDogQXJyYXk8c3RyaW5nPiB8IG51bGwgPSBudWxsKSA9PiB7XHJcbiAgICBwb3B1cChtZXNzYWdlKTtcclxuICAgIG1lc3NhZ2UgPSBwcmVmaXggKyAnOiAnICsgbWVzc2FnZTtcclxuICAgIGlmIChkZXRhaWwpXHJcbiAgICAgIG1lc3NhZ2UgKz0gJ1xcclxcbicgKyBkZXRhaWw7XHJcbiAgICB0aGlzLmxvZyhtZXNzYWdlKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAqIFNob3dzIGFzIHRvYXN0IGFuZCBsb2dzIHRvIHNlcnZlciBhbiBlcnJvciBtZXNzYWdlIGFuZCBvcHRpb25hbCBkZXRhaWwgaW5mb3JtYXRpb24uXHJcbiAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIERpc3BsYXllZCBhcyB0b2FzdC5cclxuICAqIEBwYXJhbSB7c3RyaW5nfSBbZGV0YWlsXSAtIExvZ2dlZCB0byBjb25zb2xlLlxyXG4gICovXHJcbiAgZXJyb3IgPSAobWVzc2FnZTogc3RyaW5nLCBkZXRhaWw6IEFycmF5PHN0cmluZz4gfCBudWxsID0gbnVsbCkgPT4ge1xyXG4gICAgdGhpcy5zaG93TWVzc2FnZSgobWVzc2FnZTogc3RyaW5nKSA9PiB0aGlzLl90b2FzdHIuZXJyb3IobWVzc2FnZSksIHRoaXMubG9nLCAnRXJyb3InLCBtZXNzYWdlLCBkZXRhaWwpO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAgKiBTYW1lIGFzIGVycm9yKCkgYnV0IGZvciBpbmZvIG1lc3NhZ2UuXHJcbiAgICAqL1xyXG4gIGluZm8gPSAobWVzc2FnZTogc3RyaW5nLCBkZXRhaWw6IEFycmF5PHN0cmluZz4gfCBudWxsID0gbnVsbCkgPT4ge1xyXG4gICAgdGhpcy5zaG93TWVzc2FnZSgobWVzc2FnZTogc3RyaW5nKSA9PiB0aGlzLl90b2FzdHIuaW5mbyhtZXNzYWdlKSwgdGhpcy5sb2csICdJbmZvJywgbWVzc2FnZSwgZGV0YWlsKTtcclxuICB9O1xyXG5cclxuICAvKipcclxuICAgKiBTYW1lIGFzIGVycm9yKCkgYnV0IGZvciBzdWNjZXNzIG1lc3NhZ2UuXHJcbiAgICovXHJcbiAgc3VjY2VzcyA9IChtZXNzYWdlOiBzdHJpbmcsIGRldGFpbDogQXJyYXk8c3RyaW5nPiB8IG51bGwgPSBudWxsKSA9PiB7XHJcbiAgICB0aGlzLnNob3dNZXNzYWdlKChtZXNzYWdlOiBzdHJpbmcpID0+IHRoaXMuX3RvYXN0ci5zdWNjZXNzKG1lc3NhZ2UpLCB0aGlzLmxvZywgJ1N1Y2Nlc3MnLCBtZXNzYWdlLCBkZXRhaWwpO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhbWUgYXMgZXJyb3IoKSBidXQgZm9yIHdhcm5pbmcgbWVzc2FnZS5cclxuICAgKi9cclxuICB3YXJuaW5nID0gKG1lc3NhZ2U6IHN0cmluZywgZGV0YWlsOiBBcnJheTxzdHJpbmc+IHwgbnVsbCA9IG51bGwpID0+IHtcclxuICAgIHRoaXMuc2hvd01lc3NhZ2UoKG1lc3NhZ2U6IHN0cmluZykgPT4gdGhpcy5fdG9hc3RyLndhcm5pbmcobWVzc2FnZSksIHRoaXMubG9nLCAnV2FybmluZycsIG1lc3NhZ2UsIGRldGFpbCk7XHJcbiAgfTtcclxuXHJcbiAgbG9nID0gKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xyXG4gICAgdmFyIGNvbnNvbGUgPSB3aW5kb3cuY29uc29sZTtcclxuICAgICEhY29uc29sZSAmJiBjb25zb2xlLmxvZyAmJiBjb25zb2xlLmxvZy5hcHBseSAmJiBjb25zb2xlLmxvZy5hcHBseShjb25zb2xlLCBbbWVzc2FnZV0pO1xyXG4gIH1cclxuXHJcbiAgc2hvd0Vycm9yRGlhbG9nID0gKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykgPT4ge1xyXG5cclxuICB9O1xyXG5cclxuICBzaG93RXhwb3J0RGlhbG9nID0gKCk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgbGV0IGRpYWxvZ0NvbmZpZyA9IG5ldyBUcnVFeHBvcnREaWFsb2dDb25maWcoJ0V4cG9ydCcpO1xyXG4gICAgICBsZXQgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nLm9wZW4oVHJ1RXhwb3J0RGlhbG9nLCB7XHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgIG1pbldpZHRoOiBcIjIwMHB4XCIsXHJcbiAgICAgICAgbWF4V2lkdGg6IFwiNDAwcHhcIixcclxuICAgICAgICBkYXRhOiBkaWFsb2dDb25maWdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoZGlhbG9nUmVzdWx0ID0+IHtcclxuICAgICAgICByZXNvbHZlKGRpYWxvZ1Jlc3VsdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgY29uZmlybSA9IChcclxuICAgIHRpdGxlOiBzdHJpbmcsXHJcbiAgICBtZXNzYWdlOiBzdHJpbmcsXHJcbiAgICBkaXNwbGF5Q2FuY2VsQnV0dG9uOiBib29sZWFuID0gdHJ1ZSxcclxuICAgIGRpc3BsYXlDb25maXJtQnV0dG9uOiBib29sZWFuID0gdHJ1ZSxcclxuICAgIGNhbmNlbEJ1dHRvbk5hbWU6IHN0cmluZyA9ICdDYW5jZWwnLFxyXG4gICAgY29uZmlybUJ1dHRvbk5hbWU6IHN0cmluZyA9ICdPaycpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIGxldCBkaWFsb2dDb25maWcgPSBuZXcgVHJ1Q29uZmlybURpYWxvZ0NvbmZpZyhcclxuICAgICAgICB0aXRsZSxcclxuICAgICAgICBtZXNzYWdlLFxyXG4gICAgICAgIGRpc3BsYXlDYW5jZWxCdXR0b24sXHJcbiAgICAgICAgZGlzcGxheUNvbmZpcm1CdXR0b24sXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uTmFtZSxcclxuICAgICAgICBjb25maXJtQnV0dG9uTmFtZSk7XHJcbiAgICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2cub3BlbihUcnVDb25maXJtRGlhbG9nLCB7XHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgIG1pbldpZHRoOiBcIjIwMHB4XCIsXHJcbiAgICAgICAgbWF4V2lkdGg6IFwiNDAwcHhcIixcclxuICAgICAgICBkYXRhOiBkaWFsb2dDb25maWdcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoZGlhbG9nUmVzdWx0ID0+IHtcclxuICAgICAgICByZXNvbHZlKGRpYWxvZ1Jlc3VsdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgY2hhbmdlUGFzc3dvcmQgPSAoKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBsZXQgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nLm9wZW4oVHJ1UGFzc3dvcmREaWFsb2csIHtcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgbWluV2lkdGg6IFwiNDAwcHhcIixcclxuICAgICAgICBtYXhXaWR0aDogXCI0MDBweFwiXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGRpYWxvZ1Jlc3VsdCA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShkaWFsb2dSZXN1bHQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,62 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as _ from 'underscore';
3
+ import * as i0 from "@angular/core";
4
+ export class TruUser {
5
+ _ref = -1;
6
+ _username = null;
7
+ _firstName = null;
8
+ _lastName = null;
9
+ _email = null;
10
+ _roles = null;
11
+ constructor() { }
12
+ get activeUserRef() {
13
+ if (this._ref < 0)
14
+ throw new Error('Inavlid User.');
15
+ return this._ref;
16
+ }
17
+ get username() {
18
+ return this._username;
19
+ }
20
+ get firstName() {
21
+ return this._firstName;
22
+ }
23
+ get lastName() {
24
+ return this._lastName;
25
+ }
26
+ get email() {
27
+ return this._email;
28
+ }
29
+ get roles() {
30
+ return this._roles;
31
+ }
32
+ hasRoles = (roles) => {
33
+ if (this._roles === null)
34
+ return true;
35
+ return _.intersection(roles, this._roles).length > 0;
36
+ };
37
+ create = (user) => {
38
+ this._ref = user.activeUserRef;
39
+ this._username = user.username;
40
+ this._firstName = user.firstName;
41
+ this._lastName = user.lastName;
42
+ this._email = user.email;
43
+ this._roles = user.roles;
44
+ };
45
+ destroy = () => {
46
+ this._ref = -1;
47
+ this._username = null;
48
+ this._firstName = null;
49
+ this._lastName = null;
50
+ this._email = null;
51
+ this._roles = null;
52
+ };
53
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruUser, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
54
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruUser, providedIn: 'root' });
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruUser, decorators: [{
57
+ type: Injectable,
58
+ args: [{
59
+ providedIn: 'root',
60
+ }]
61
+ }], ctorParameters: () => [] });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXVzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL3RydS11c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLENBQUMsTUFBTSxZQUFZLENBQUM7O0FBS2hDLE1BQU0sT0FBTyxPQUFPO0lBQ1YsSUFBSSxHQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLFNBQVMsR0FBa0IsSUFBSSxDQUFDO0lBQ2hDLFVBQVUsR0FBa0IsSUFBSSxDQUFDO0lBQ2pDLFNBQVMsR0FBa0IsSUFBSSxDQUFDO0lBQ2hDLE1BQU0sR0FBa0IsSUFBSSxDQUFDO0lBQzdCLE1BQU0sR0FBb0IsSUFBSSxDQUFDO0lBRXZDLGdCQUFlLENBQUM7SUFFaEIsSUFBSSxhQUFhO1FBQ2YsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVEsR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFO1FBQzdCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDLENBQUM7SUFFRixNQUFNLEdBQUcsQ0FBQyxJQUFjLEVBQVEsRUFBRTtRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDLENBQUE7SUFFRCxPQUFPLEdBQUcsR0FBUyxFQUFFO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDLENBQUE7dUdBMURVLE9BQU87MkdBQVAsT0FBTyxjQUZOLE1BQU07OzJGQUVQLE9BQU87a0JBSG5CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ3VuZGVyc2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydVVzZXIgaW1wbGVtZW50cyBJVHJ1VXNlciB7XHJcbiAgcHJpdmF0ZSBfcmVmOiBudW1iZXIgPSAtMTtcclxuICBwcml2YXRlIF91c2VybmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfZmlyc3ROYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9sYXN0TmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfZW1haWw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX3JvbGVzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIGdldCBhY3RpdmVVc2VyUmVmKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy5fcmVmIDwgMClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmF2bGlkIFVzZXIuJyk7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVmO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJuYW1lKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX3VzZXJuYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpcnN0TmFtZSgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9maXJzdE5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXQgbGFzdE5hbWUoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFzdE5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXQgZW1haWwoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW1haWw7XHJcbiAgfVxyXG5cclxuICBnZXQgcm9sZXMoKTogc3RyaW5nW10gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9yb2xlcztcclxuICB9XHJcblxyXG4gIGhhc1JvbGVzID0gKHJvbGVzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgaWYgKHRoaXMuX3JvbGVzID09PSBudWxsKVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIHJldHVybiBfLmludGVyc2VjdGlvbihyb2xlcywgdGhpcy5fcm9sZXMpLmxlbmd0aCA+IDA7IFxyXG4gIH07XHJcblxyXG4gIGNyZWF0ZSA9ICh1c2VyOiBJVHJ1VXNlcik6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy5fcmVmID0gdXNlci5hY3RpdmVVc2VyUmVmO1xyXG4gICAgdGhpcy5fdXNlcm5hbWUgPSB1c2VyLnVzZXJuYW1lO1xyXG4gICAgdGhpcy5fZmlyc3ROYW1lID0gdXNlci5maXJzdE5hbWU7XHJcbiAgICB0aGlzLl9sYXN0TmFtZSA9IHVzZXIubGFzdE5hbWU7XHJcbiAgICB0aGlzLl9lbWFpbCA9IHVzZXIuZW1haWw7XHJcbiAgICB0aGlzLl9yb2xlcyA9IHVzZXIucm9sZXM7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95ID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy5fcmVmID0gLTE7XHJcbiAgICB0aGlzLl91c2VybmFtZSA9IG51bGw7XHJcbiAgICB0aGlzLl9maXJzdE5hbWUgPSBudWxsO1xyXG4gICAgdGhpcy5fbGFzdE5hbWUgPSBudWxsO1xyXG4gICAgdGhpcy5fZW1haWwgPSBudWxsO1xyXG4gICAgdGhpcy5fcm9sZXMgPSBudWxsO1xyXG4gIH0gXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRydVVzZXIge1xyXG4gIGFjdGl2ZVVzZXJSZWY6IG51bWJlcjtcclxuICB1c2VybmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBmaXJzdE5hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgbGFzdE5hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgZW1haWw6IHN0cmluZyB8IG51bGw7XHJcbiAgcm9sZXM6IHN0cmluZ1tdIHwgbnVsbDtcclxufVxyXG4iXX0=
@@ -0,0 +1,76 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TruUtil {
4
+ constructor() { }
5
+ tryParseInt = (str, defaultValue) => {
6
+ var retValue = defaultValue;
7
+ if (str !== null) {
8
+ if (str.length > 0) {
9
+ if (!isNaN(str)) {
10
+ retValue = parseInt(str);
11
+ }
12
+ }
13
+ }
14
+ return retValue;
15
+ };
16
+ tryParseBool(value, defaultValue) {
17
+ return (value == 'true' || value == 'false' || value === true || value === false) && JSON.parse(value) || defaultValue;
18
+ }
19
+ findClosestAncestorByClass = (element, cssSelector) => {
20
+ let firstChar = cssSelector.charAt(0);
21
+ for (; element; element = element.parentNode) {
22
+ if (firstChar === '.') {
23
+ if (element.classList && element.classList.contains(cssSelector.substr(1))) {
24
+ return element;
25
+ }
26
+ }
27
+ }
28
+ return null;
29
+ };
30
+ isNumeric = (n) => {
31
+ return !isNaN(parseFloat(n)) && isFinite(n);
32
+ };
33
+ removeNonNumericCharactersFromStr = (value) => {
34
+ return value.replace(/[^0-9]/g, '');
35
+ };
36
+ isDate = (date) => {
37
+ if (Object.prototype.toString.call(date) === '[object Date]') {
38
+ if (isNaN(date.getTime())) {
39
+ return false;
40
+ }
41
+ else {
42
+ return true;
43
+ }
44
+ }
45
+ else {
46
+ return false;
47
+ }
48
+ };
49
+ isValidDate = (value) => {
50
+ return !isNaN(Date.parse(value));
51
+ };
52
+ rulesEval = (styles) => {
53
+ let defaultStyles = {
54
+ 'backgroundColor': '#ffffff',
55
+ 'color': '#000000',
56
+ 'font-style': 'normal',
57
+ 'text-decoration': 'unset'
58
+ };
59
+ if (styles === null)
60
+ return defaultStyles;
61
+ if (Object.entries(styles).length !== 0) {
62
+ Object.assign(defaultStyles, styles);
63
+ return defaultStyles;
64
+ }
65
+ return defaultStyles;
66
+ };
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruUtil, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
68
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruUtil, providedIn: 'root' });
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruUtil, decorators: [{
71
+ type: Injectable,
72
+ args: [{
73
+ providedIn: 'root',
74
+ }]
75
+ }], ctorParameters: () => [] });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL3RydS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXZELE1BQU0sT0FBTyxPQUFPO0lBRWxCLGdCQUFnQixDQUFDO0lBRWpCLFdBQVcsR0FBRyxDQUFDLEdBQVEsRUFBRSxZQUFpQixFQUFFLEVBQUU7UUFDNUMsSUFBSSxRQUFRLEdBQUcsWUFBWSxDQUFDO1FBQzVCLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtZQUNoQixJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNmLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzFCO2FBQ0Y7U0FDRjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQUVGLFlBQVksQ0FBQyxLQUFVLEVBQUUsWUFBaUI7UUFDeEMsT0FBTyxDQUFDLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLE9BQU8sSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQztJQUN6SCxDQUFDO0lBRUQsMEJBQTBCLEdBQUcsQ0FBQyxPQUFZLEVBQUUsV0FBbUIsRUFBRSxFQUFFO1FBQ2pFLElBQUksU0FBUyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsT0FBTyxPQUFPLEVBQUUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDNUMsSUFBSSxTQUFTLEtBQUssR0FBRyxFQUFFO2dCQUNyQixJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUMxRSxPQUFPLE9BQU8sQ0FBQztpQkFDaEI7YUFDRjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRixTQUFTLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRTtRQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUE7SUFFRCxpQ0FBaUMsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO1FBQ3BELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFBO0lBRUQsTUFBTSxHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7UUFDdEIsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssZUFBZSxFQUFFO1lBQzVELElBQUksS0FBSyxDQUFFLElBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFO2dCQUNuQyxPQUFPLEtBQUssQ0FBQzthQUNkO2lCQUNJO2dCQUNILE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjthQUNJO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUMsQ0FBQztJQUVGLFdBQVcsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO1FBQzlCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQTtJQUVELFNBQVMsR0FBRyxDQUFDLE1BQXFCLEVBQVUsRUFBRTtRQUM1QyxJQUFJLGFBQWEsR0FBRztZQUNsQixpQkFBaUIsRUFBRSxTQUFTO1lBQzVCLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLFlBQVksRUFBRSxRQUFRO1lBQ3RCLGlCQUFpQixFQUFFLE9BQU87U0FDM0IsQ0FBQTtRQUNELElBQUksTUFBTSxLQUFLLElBQUk7WUFDakIsT0FBTyxhQUFhLENBQUM7UUFDdkIsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDckMsT0FBTyxhQUFhLENBQUM7U0FDdEI7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDLENBQUE7dUdBeEVVLE9BQU87MkdBQVAsT0FBTyxjQUZOLE1BQU07OzJGQUVQLE9BQU87a0JBSG5CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJ1VXRpbCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIHRyeVBhcnNlSW50ID0gKHN0cjogYW55LCBkZWZhdWx0VmFsdWU6IGFueSkgPT4ge1xyXG4gICAgdmFyIHJldFZhbHVlID0gZGVmYXVsdFZhbHVlO1xyXG4gICAgaWYgKHN0ciAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAoc3RyLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAoIWlzTmFOKHN0cikpIHtcclxuICAgICAgICAgIHJldFZhbHVlID0gcGFyc2VJbnQoc3RyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXRWYWx1ZTtcclxuICB9O1xyXG5cclxuICB0cnlQYXJzZUJvb2wodmFsdWU6IGFueSwgZGVmYXVsdFZhbHVlOiBhbnkpIHtcclxuICAgIHJldHVybiAodmFsdWUgPT0gJ3RydWUnIHx8IHZhbHVlID09ICdmYWxzZScgfHwgdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IGZhbHNlKSAmJiBKU09OLnBhcnNlKHZhbHVlKSB8fCBkZWZhdWx0VmFsdWU7XHJcbiAgfVxyXG5cclxuICBmaW5kQ2xvc2VzdEFuY2VzdG9yQnlDbGFzcyA9IChlbGVtZW50OiBhbnksIGNzc1NlbGVjdG9yOiBzdHJpbmcpID0+IHtcclxuICAgIGxldCBmaXJzdENoYXIgPSBjc3NTZWxlY3Rvci5jaGFyQXQoMCk7XHJcbiAgICBmb3IgKDsgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50Tm9kZSkge1xyXG4gICAgICBpZiAoZmlyc3RDaGFyID09PSAnLicpIHtcclxuICAgICAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QgJiYgZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoY3NzU2VsZWN0b3Iuc3Vic3RyKDEpKSkge1xyXG4gICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9O1xyXG5cclxuICBpc051bWVyaWMgPSAobjogYW55KSA9PiB7XHJcbiAgICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobikpICYmIGlzRmluaXRlKG4pO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTm9uTnVtZXJpY0NoYXJhY3RlcnNGcm9tU3RyID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bXjAtOV0vZywgJycpO1xyXG4gIH1cclxuXHJcbiAgaXNEYXRlID0gKGRhdGU6IERhdGUpID0+IHtcclxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZGF0ZSkgPT09ICdbb2JqZWN0IERhdGVdJykge1xyXG4gICAgICBpZiAoaXNOYU4oKGRhdGUgYXMgRGF0ZSkuZ2V0VGltZSgpKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBpc1ZhbGlkRGF0ZSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICByZXR1cm4gIWlzTmFOKERhdGUucGFyc2UodmFsdWUpKTtcclxuICB9XHJcblxyXG4gIHJ1bGVzRXZhbCA9IChzdHlsZXM6IG9iamVjdCB8IG51bGwpOiBvYmplY3QgPT4ge1xyXG4gICAgbGV0IGRlZmF1bHRTdHlsZXMgPSB7XHJcbiAgICAgICdiYWNrZ3JvdW5kQ29sb3InOiAnI2ZmZmZmZicsXHJcbiAgICAgICdjb2xvcic6ICcjMDAwMDAwJyxcclxuICAgICAgJ2ZvbnQtc3R5bGUnOiAnbm9ybWFsJyxcclxuICAgICAgJ3RleHQtZGVjb3JhdGlvbic6ICd1bnNldCdcclxuICAgIH1cclxuICAgIGlmIChzdHlsZXMgPT09IG51bGwpXHJcbiAgICAgIHJldHVybiBkZWZhdWx0U3R5bGVzO1xyXG4gICAgaWYgKE9iamVjdC5lbnRyaWVzKHN0eWxlcykubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24oZGVmYXVsdFN0eWxlcywgc3R5bGVzKTtcclxuICAgICAgcmV0dXJuIGRlZmF1bHRTdHlsZXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGVmYXVsdFN0eWxlcztcclxuICB9XHJcbn1cclxuIl19
@@ -1,16 +1,16 @@
1
- import { NgModule } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class TruCommonModule {
4
- }
5
- TruCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
- TruCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: TruCommonModule });
7
- TruCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruCommonModule });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruCommonModule, decorators: [{
9
- type: NgModule,
10
- args: [{
11
- declarations: [],
12
- imports: [],
13
- exports: []
14
- }]
15
- }] });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNvbW1vbi1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL3RydS1jb21tb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUXpDLE1BQU0sT0FBTyxlQUFlOzs0R0FBZixlQUFlOzZHQUFmLGVBQWU7NkdBQWYsZUFBZTsyRkFBZixlQUFlO2tCQUwzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi9tYXRlcmlhbC5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtdLFxyXG4gIGV4cG9ydHM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVDb21tb25Nb2R1bGUgeyB9XHJcbiJdfQ==
1
+ import { NgModule } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TruCommonModule {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: TruCommonModule });
6
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruCommonModule });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: TruCommonModule, decorators: [{
9
+ type: NgModule,
10
+ args: [{
11
+ declarations: [],
12
+ imports: [],
13
+ exports: []
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWNvbW1vbi1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL3RydS1jb21tb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUXpDLE1BQU0sT0FBTyxlQUFlO3VHQUFmLGVBQWU7d0dBQWYsZUFBZTt3R0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQUwzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi9tYXRlcmlhbC5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtdLFxyXG4gIGV4cG9ydHM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVDb21tb25Nb2R1bGUgeyB9XHJcbiJdfQ==