ngx-techlify-core 19.0.0 → 22.3.0

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 (790) hide show
  1. package/fesm2022/ngx-techlify-core-base-model-oCILHkdE.mjs +677 -0
  2. package/fesm2022/ngx-techlify-core-base-model-oCILHkdE.mjs.map +1 -0
  3. package/fesm2022/ngx-techlify-core-shared.module-DROe5GRx.mjs +4842 -0
  4. package/fesm2022/ngx-techlify-core-shared.module-DROe5GRx.mjs.map +1 -0
  5. package/fesm2022/ngx-techlify-core-user-config.service-DW5EgXhL.mjs +133 -0
  6. package/fesm2022/ngx-techlify-core-user-config.service-DW5EgXhL.mjs.map +1 -0
  7. package/fesm2022/ngx-techlify-core-user-sessions.module-BRmDpYG3.mjs +2135 -0
  8. package/fesm2022/ngx-techlify-core-user-sessions.module-BRmDpYG3.mjs.map +1 -0
  9. package/fesm2022/ngx-techlify-core.mjs +32477 -16273
  10. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  11. package/package.json +19 -19
  12. package/styles/_index.scss +1 -1
  13. package/styles/style.scss +2 -2
  14. package/types/ngx-techlify-core.d.ts +6429 -0
  15. package/esm2022/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +0 -126
  16. package/esm2022/lib/access-control-config/access-control-config-routing.module.mjs +0 -31
  17. package/esm2022/lib/access-control-config/access-control-config.component.mjs +0 -128
  18. package/esm2022/lib/access-control-config/access-control-config.model.mjs +0 -21
  19. package/esm2022/lib/access-control-config/access-control-config.module.mjs +0 -28
  20. package/esm2022/lib/access-control-config/access-control-config.service.mjs +0 -37
  21. package/esm2022/lib/action-popup/action-popup.component.mjs +0 -33
  22. package/esm2022/lib/action-popup/action-popup.model.mjs +0 -3
  23. package/esm2022/lib/action-popup/action-popup.module.mjs +0 -28
  24. package/esm2022/lib/action-popup/index.mjs +0 -3
  25. package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list-routing.module.mjs +0 -26
  26. package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list.component.mjs +0 -115
  27. package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list.module.mjs +0 -33
  28. package/esm2022/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.component.mjs +0 -87
  29. package/esm2022/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.module.mjs +0 -22
  30. package/esm2022/lib/app-admin/admin-role/admin-role.service.mjs +0 -24
  31. package/esm2022/lib/app-admin/app-admin-home/app-admin-home.component.mjs +0 -17
  32. package/esm2022/lib/app-admin/app-admin-routing.module.mjs +0 -29
  33. package/esm2022/lib/app-admin/app-admin.module.mjs +0 -22
  34. package/esm2022/lib/app-admin/tenant/tenant-list-widget/tenant-list-widget.component.mjs +0 -56
  35. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.mjs +0 -18
  36. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.component.mjs +0 -61
  37. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +0 -32
  38. package/esm2022/lib/audit-log/audit-log-list/audit-log-list-routing.module.mjs +0 -18
  39. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +0 -149
  40. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.module.mjs +0 -28
  41. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.mjs +0 -18
  42. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +0 -56
  43. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +0 -24
  44. package/esm2022/lib/audit-log/audit-log-routing.module.mjs +0 -25
  45. package/esm2022/lib/audit-log/audit-log-view/audit-log-view-routing.module.mjs +0 -18
  46. package/esm2022/lib/audit-log/audit-log-view/audit-log-view.component.mjs +0 -53
  47. package/esm2022/lib/audit-log/audit-log-view/audit-log-view.module.mjs +0 -24
  48. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.mjs +0 -18
  49. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +0 -55
  50. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +0 -24
  51. package/esm2022/lib/audit-log/audit-log.module.mjs +0 -31
  52. package/esm2022/lib/audit-log/audit-log.service.mjs +0 -18
  53. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.mjs +0 -18
  54. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +0 -23
  55. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +0 -28
  56. package/esm2022/lib/base-model/index.mjs +0 -8
  57. package/esm2022/lib/base-model/techlify-form/contract/techlify-form.contract.mjs +0 -191
  58. package/esm2022/lib/base-model/techlify-form/techlify-form.component.mjs +0 -134
  59. package/esm2022/lib/base-model/techlify-list/contract/techlify-list.contract.mjs +0 -69
  60. package/esm2022/lib/base-model/techlify-list/techlify-list.component.mjs +0 -331
  61. package/esm2022/lib/base-model/techlify-service.mjs +0 -68
  62. package/esm2022/lib/base-model/techlify-show/contract/techlify-show.contract.mjs +0 -84
  63. package/esm2022/lib/base-model/techlify-show/techlify-show.component.mjs +0 -120
  64. package/esm2022/lib/change-password/change-password-routing.module.mjs +0 -24
  65. package/esm2022/lib/change-password/change-password.component.mjs +0 -86
  66. package/esm2022/lib/change-password/change-password.module.mjs +0 -29
  67. package/esm2022/lib/column-selector/column-config.model.mjs +0 -3
  68. package/esm2022/lib/column-selector/column-selector/column-selector.component.mjs +0 -108
  69. package/esm2022/lib/column-selector/column-selector.module.mjs +0 -24
  70. package/esm2022/lib/column-selector/index.mjs +0 -4
  71. package/esm2022/lib/company-information/client.service.mjs +0 -19
  72. package/esm2022/lib/company-information/company-info-display/company-info-display.component.mjs +0 -44
  73. package/esm2022/lib/company-information/company-information/company-information.component.mjs +0 -120
  74. package/esm2022/lib/company-information/tenant-form-button/tenant-form-button.component.mjs +0 -36
  75. package/esm2022/lib/core/alert.service.mjs +0 -38
  76. package/esm2022/lib/core/api-prefix.interceptor.mjs +0 -26
  77. package/esm2022/lib/core/app-update.service.mjs +0 -64
  78. package/esm2022/lib/core/authentication.guard.mjs +0 -35
  79. package/esm2022/lib/core/authentication.service.mjs +0 -67
  80. package/esm2022/lib/core/cache.interceptor.mjs +0 -58
  81. package/esm2022/lib/core/config.service.mjs +0 -45
  82. package/esm2022/lib/core/core.module.mjs +0 -56
  83. package/esm2022/lib/core/credentials.service.mjs +0 -84
  84. package/esm2022/lib/core/environment.service.mjs +0 -22
  85. package/esm2022/lib/core/error-handler.interceptor.mjs +0 -60
  86. package/esm2022/lib/core/error-handler.service.mjs +0 -68
  87. package/esm2022/lib/core/filter.service.mjs +0 -40
  88. package/esm2022/lib/core/form-validator.service.mjs +0 -24
  89. package/esm2022/lib/core/header.interceptor.mjs +0 -24
  90. package/esm2022/lib/core/http-cache.service.mjs +0 -107
  91. package/esm2022/lib/core/http.service.mjs +0 -84
  92. package/esm2022/lib/core/index.mjs +0 -23
  93. package/esm2022/lib/core/logger.service.mjs +0 -100
  94. package/esm2022/lib/core/route-reusable-strategy.mjs +0 -36
  95. package/esm2022/lib/core/snack/snack.component.mjs +0 -33
  96. package/esm2022/lib/core/snack/snack.module.mjs +0 -36
  97. package/esm2022/lib/core/storage.service.mjs +0 -38
  98. package/esm2022/lib/core/techlify-config.model.mjs +0 -28
  99. package/esm2022/lib/core/token.interceptor.mjs +0 -28
  100. package/esm2022/lib/custom-icon/custom-icon-registry.service.mjs +0 -23
  101. package/esm2022/lib/custom-icon/custom-icon.component.mjs +0 -24
  102. package/esm2022/lib/custom-icon/custom-icon.module.mjs +0 -20
  103. package/esm2022/lib/custom-icon/custom-icons.registry.mjs +0 -42
  104. package/esm2022/lib/data-table/data-table.component.mjs +0 -203
  105. package/esm2022/lib/data-table/data-table.model.mjs +0 -11
  106. package/esm2022/lib/data-table/data-table.module.mjs +0 -24
  107. package/esm2022/lib/data-table/index.mjs +0 -3
  108. package/esm2022/lib/delete-button/techlify-delete-button.component.mjs +0 -74
  109. package/esm2022/lib/detail-layout/techlify-detail-layout.component.mjs +0 -11
  110. package/esm2022/lib/document-viewer/document-viewer.component.mjs +0 -64
  111. package/esm2022/lib/document-viewer/document-viewer.module.mjs +0 -32
  112. package/esm2022/lib/document-viewer/index.mjs +0 -3
  113. package/esm2022/lib/document-viewer/viewer-config.model.mjs +0 -3
  114. package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.mjs +0 -32
  115. package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.mjs +0 -73
  116. package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.mjs +0 -24
  117. package/esm2022/lib/email-subscription/email-subscription-for-user/index.mjs +0 -2
  118. package/esm2022/lib/email-subscription/email-subscription-routing.module.mjs +0 -18
  119. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.mjs +0 -18
  120. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +0 -104
  121. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.mjs +0 -28
  122. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.mjs +0 -2
  123. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.mjs +0 -34
  124. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +0 -160
  125. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.mjs +0 -28
  126. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.mjs +0 -2
  127. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.mjs +0 -18
  128. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type.module.mjs +0 -22
  129. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.mjs +0 -18
  130. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +0 -100
  131. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.mjs +0 -27
  132. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.mjs +0 -2
  133. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.mjs +0 -34
  134. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +0 -164
  135. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.mjs +0 -32
  136. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.mjs +0 -2
  137. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.mjs +0 -18
  138. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +0 -51
  139. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.mjs +0 -24
  140. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.mjs +0 -2
  141. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.mjs +0 -18
  142. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user.module.mjs +0 -22
  143. package/esm2022/lib/email-subscription/email-subscription.module.mjs +0 -22
  144. package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +0 -160
  145. package/esm2022/lib/entity-files/entity-file-list/entity-file-list.component.mjs +0 -251
  146. package/esm2022/lib/entity-files/entity-file-list-widget/entity-file-list-widget.component.mjs +0 -33
  147. package/esm2022/lib/entity-files/entity-file-list.module.mjs +0 -43
  148. package/esm2022/lib/entity-files/entity-file.service.mjs +0 -37
  149. package/esm2022/lib/entity-files/index.mjs +0 -5
  150. package/esm2022/lib/export-excel/export-excel-button/export-excel-button.component.mjs +0 -112
  151. package/esm2022/lib/export-excel/export-excel.module.mjs +0 -28
  152. package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.mjs +0 -103
  153. package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.mjs +0 -24
  154. package/esm2022/lib/file-dropper/file-dropper.component.mjs +0 -125
  155. package/esm2022/lib/file-dropper/file-dropper.model.mjs +0 -3
  156. package/esm2022/lib/file-dropper/file-dropper.module.mjs +0 -26
  157. package/esm2022/lib/file-dropper/index.mjs +0 -3
  158. package/esm2022/lib/file-upload-button/file-upload-button.component.mjs +0 -47
  159. package/esm2022/lib/forgot-password/forgot-password-routing.module.mjs +0 -22
  160. package/esm2022/lib/forgot-password/forgot-password.component.mjs +0 -69
  161. package/esm2022/lib/forgot-password/forgot-password.module.mjs +0 -26
  162. package/esm2022/lib/forgot-password/index.mjs +0 -3
  163. package/esm2022/lib/form-button/techlify-form-button.component.mjs +0 -39
  164. package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form-routing.module.mjs +0 -29
  165. package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.component.mjs +0 -43
  166. package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.module.mjs +0 -24
  167. package/esm2022/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.component.mjs +0 -22
  168. package/esm2022/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.module.mjs +0 -28
  169. package/esm2022/lib/form-configuration/form-configuration-form-field.service.mjs +0 -18
  170. package/esm2022/lib/form-configuration/form-configuration-form.service.mjs +0 -18
  171. package/esm2022/lib/form-configuration/form-configuration-utility.service.mjs +0 -37
  172. package/esm2022/lib/image-preview/image-preview.component.mjs +0 -26
  173. package/esm2022/lib/import-csv/data-import/data-import.component.mjs +0 -17
  174. package/esm2022/lib/import-csv/failed-items-list/failed-items-list.component.mjs +0 -34
  175. package/esm2022/lib/import-csv/field-mapping/field-mapping.component.mjs +0 -152
  176. package/esm2022/lib/import-csv/import-csv-config.mjs +0 -2
  177. package/esm2022/lib/import-csv/import-csv.component.mjs +0 -209
  178. package/esm2022/lib/import-csv/import-csv.module.mjs +0 -44
  179. package/esm2022/lib/import-csv/import-history-list/import-history-list.component.mjs +0 -70
  180. package/esm2022/lib/import-csv/import-success/import-success.component.mjs +0 -23
  181. package/esm2022/lib/ip-address-selector/ip-address-selector.module.mjs +0 -24
  182. package/esm2022/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +0 -108
  183. package/esm2022/lib/loader/index.mjs +0 -2
  184. package/esm2022/lib/loader/loader.component.mjs +0 -23
  185. package/esm2022/lib/loader/loader.module.mjs +0 -28
  186. package/esm2022/lib/local-date-parser.mjs +0 -6
  187. package/esm2022/lib/locked-date/index.mjs +0 -6
  188. package/esm2022/lib/locked-date/locked-date-form/locked-date-form.component.mjs +0 -72
  189. package/esm2022/lib/locked-date/locked-date-lock-unlock-button/locked-date-lock-unlock-button.component.mjs +0 -35
  190. package/esm2022/lib/locked-date/locked-date.model.mjs +0 -3
  191. package/esm2022/lib/locked-date/locked-date.module.mjs +0 -34
  192. package/esm2022/lib/locked-date/locked-date.service.mjs +0 -25
  193. package/esm2022/lib/locked-date/locked-dates-list/locked-date-list.component.mjs +0 -62
  194. package/esm2022/lib/login/index.mjs +0 -3
  195. package/esm2022/lib/login/login-form-fields/login-form-fields.component.mjs +0 -152
  196. package/esm2022/lib/login/login-routing.module.mjs +0 -23
  197. package/esm2022/lib/login/login.component.mjs +0 -88
  198. package/esm2022/lib/login/login.module.mjs +0 -33
  199. package/esm2022/lib/login-history-for-user/login-history-for-user-routing.module.mjs +0 -26
  200. package/esm2022/lib/login-history-for-user/login-history-for-user.component.mjs +0 -91
  201. package/esm2022/lib/login-history-for-user/login-history-for-user.module.mjs +0 -24
  202. package/esm2022/lib/material.module.mjs +0 -128
  203. package/esm2022/lib/ngx-techlify-users/ngx-techlify-users-routing.module.mjs +0 -43
  204. package/esm2022/lib/ngx-techlify-users/ngx-techlify-users.module.mjs +0 -22
  205. package/esm2022/lib/note/comment-form/comment-form.component.mjs +0 -76
  206. package/esm2022/lib/note/index.mjs +0 -5
  207. package/esm2022/lib/note/note-comment-list/note-comment-list.component.mjs +0 -102
  208. package/esm2022/lib/note/note-form/note-form.component.mjs +0 -63
  209. package/esm2022/lib/note/note-list/note-list.component.mjs +0 -111
  210. package/esm2022/lib/note/note.module.mjs +0 -30
  211. package/esm2022/lib/note/note.service.mjs +0 -18
  212. package/esm2022/lib/number-input-button/index.mjs +0 -3
  213. package/esm2022/lib/number-input-button/number-input-button/number-input-button.component.mjs +0 -104
  214. package/esm2022/lib/number-input-button/number-input-button.module.mjs +0 -24
  215. package/esm2022/lib/number-selector/number-selector.component.mjs +0 -116
  216. package/esm2022/lib/ordinal-pipe/ordinal-pipe.mjs +0 -30
  217. package/esm2022/lib/password-requirement-check/password-check-result.mjs +0 -2
  218. package/esm2022/lib/password-requirement-check/password-check.service.mjs +0 -43
  219. package/esm2022/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.mjs +0 -56
  220. package/esm2022/lib/password-requirement-check/password-requirement-check.module.mjs +0 -24
  221. package/esm2022/lib/pdf-button/pdf-button.component.mjs +0 -35
  222. package/esm2022/lib/pdf-button/pdf-button.module.mjs +0 -23
  223. package/esm2022/lib/phone-number-selector/country.service.mjs +0 -31
  224. package/esm2022/lib/phone-number-selector/phone-number-selector.component.mjs +0 -172
  225. package/esm2022/lib/pipes/file-size.pipe.mjs +0 -21
  226. package/esm2022/lib/pipes/wrap.pipe.mjs +0 -20
  227. package/esm2022/lib/profile/index.mjs +0 -3
  228. package/esm2022/lib/profile/profile-edit.component.mjs +0 -75
  229. package/esm2022/lib/profile/profile-routing.module.mjs +0 -23
  230. package/esm2022/lib/profile/profile.module.mjs +0 -28
  231. package/esm2022/lib/read-more/read-more.component.mjs +0 -43
  232. package/esm2022/lib/read-more/read-more.module.mjs +0 -26
  233. package/esm2022/lib/request-helper/request-helper.service.mjs +0 -131
  234. package/esm2022/lib/reset-password/index.mjs +0 -4
  235. package/esm2022/lib/reset-password/reset-password-routing.module.mjs +0 -22
  236. package/esm2022/lib/reset-password/reset-password.component.mjs +0 -89
  237. package/esm2022/lib/reset-password/reset-password.module.mjs +0 -30
  238. package/esm2022/lib/reset-password/reset-password.service.mjs +0 -25
  239. package/esm2022/lib/restrictors/index.mjs +0 -4
  240. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +0 -91
  241. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.mjs +0 -24
  242. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level.service.mjs +0 -19
  243. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +0 -91
  244. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.mjs +0 -24
  245. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status.service.mjs +0 -19
  246. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +0 -92
  247. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.mjs +0 -24
  248. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type.service.mjs +0 -19
  249. package/esm2022/lib/restrictors/restrictor.service.mjs +0 -19
  250. package/esm2022/lib/restrictors/restrictors-form/restrictors-form.component.mjs +0 -101
  251. package/esm2022/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +0 -43
  252. package/esm2022/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +0 -141
  253. package/esm2022/lib/restrictors/restrictors-routing.module.mjs +0 -42
  254. package/esm2022/lib/restrictors/restrictors.module.mjs +0 -47
  255. package/esm2022/lib/role/index.mjs +0 -10
  256. package/esm2022/lib/role/permission/permission.model.mjs +0 -9
  257. package/esm2022/lib/role/permission/permission.module.mjs +0 -30
  258. package/esm2022/lib/role/permission/permission.routes.mjs +0 -26
  259. package/esm2022/lib/role/permission/permissions-management.component.mjs +0 -127
  260. package/esm2022/lib/role/role-form-button.component.mjs +0 -44
  261. package/esm2022/lib/role/role-form.component.mjs +0 -82
  262. package/esm2022/lib/role/role-list/role-list.component.mjs +0 -120
  263. package/esm2022/lib/role/role-view/role-view-routing.module.mjs +0 -26
  264. package/esm2022/lib/role/role-view/role-view.component.mjs +0 -38
  265. package/esm2022/lib/role/role-view/role-view.module.mjs +0 -28
  266. package/esm2022/lib/role/role.model.mjs +0 -56
  267. package/esm2022/lib/role/role.module.mjs +0 -38
  268. package/esm2022/lib/role/role.routes.mjs +0 -31
  269. package/esm2022/lib/role/role.service.mjs +0 -23
  270. package/esm2022/lib/searchable-selector/index.mjs +0 -2
  271. package/esm2022/lib/searchable-selector/searchable-selector.component.mjs +0 -384
  272. package/esm2022/lib/searchable-selector/searchable-selector.module.mjs +0 -36
  273. package/esm2022/lib/shared.module.mjs +0 -85
  274. package/esm2022/lib/signup/index.mjs +0 -3
  275. package/esm2022/lib/signup/signup-routing.module.mjs +0 -22
  276. package/esm2022/lib/signup/signup.component.mjs +0 -78
  277. package/esm2022/lib/signup/signup.module.mjs +0 -26
  278. package/esm2022/lib/subscription/subscription-form/subscription-form-routing.module.mjs +0 -18
  279. package/esm2022/lib/subscription/subscription-form/subscription-form.component.mjs +0 -148
  280. package/esm2022/lib/subscription/subscription-form/subscription-form.module.mjs +0 -26
  281. package/esm2022/lib/subscription/subscription-listing/subscription-listing-routing.module.mjs +0 -26
  282. package/esm2022/lib/subscription/subscription-listing/subscription-listing.component.mjs +0 -128
  283. package/esm2022/lib/subscription/subscription-listing/subscription-listing.module.mjs +0 -30
  284. package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing-routing.module.mjs +0 -26
  285. package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.component.mjs +0 -116
  286. package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.module.mjs +0 -25
  287. package/esm2022/lib/subscription/subscription-package-view/subscription-package-view-routing.module.mjs +0 -26
  288. package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.component.mjs +0 -38
  289. package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.module.mjs +0 -29
  290. package/esm2022/lib/subscription/subscription-package.service.mjs +0 -21
  291. package/esm2022/lib/subscription/subscription-status.enum.mjs +0 -6
  292. package/esm2022/lib/subscription/subscription.service.mjs +0 -40
  293. package/esm2022/lib/subscription/techlify-subscription-directive.module.mjs +0 -20
  294. package/esm2022/lib/subscription/techlify-subscription.directive.mjs +0 -33
  295. package/esm2022/lib/tag/tag.service.mjs +0 -18
  296. package/esm2022/lib/tag/techlify-tagger-tag-form/techlify-tagger-tag-form.component.mjs +0 -71
  297. package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.mjs +0 -15
  298. package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +0 -266
  299. package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +0 -22
  300. package/esm2022/lib/tag/techlify-tagger-tag-list/techlify-tagger-tag-list.component.mjs +0 -57
  301. package/esm2022/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +0 -181
  302. package/esm2022/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +0 -22
  303. package/esm2022/lib/techlify-app-selector/techlify-app-selector.component.mjs +0 -50
  304. package/esm2022/lib/techlify-app-selector/techlify-app-selector.module.mjs +0 -28
  305. package/esm2022/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.mjs +0 -185
  306. package/esm2022/lib/techlify-company-switcher/index.mjs +0 -3
  307. package/esm2022/lib/techlify-company-switcher/techlify-company-switcher/techlify-company-switcher.component.mjs +0 -70
  308. package/esm2022/lib/techlify-company-switcher/techlify-company-switcher.module.mjs +0 -32
  309. package/esm2022/lib/techlify-currency-pipe/techlify-currency-pipe.directive.mjs +0 -27
  310. package/esm2022/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +0 -24
  311. package/esm2022/lib/techlify-feature/techlify-feature-directive.module.mjs +0 -20
  312. package/esm2022/lib/techlify-feature/techlify-feature-enabled.directive.mjs +0 -32
  313. package/esm2022/lib/techlify-feature/techlify-feature-listing.component.mjs +0 -141
  314. package/esm2022/lib/techlify-feature/techlify-feature.module.mjs +0 -28
  315. package/esm2022/lib/techlify-feature/techlify-feature.routing.mjs +0 -12
  316. package/esm2022/lib/techlify-feature/techlify-feature.service.mjs +0 -43
  317. package/esm2022/lib/techlify-icon/techlify-icon.component.mjs +0 -77
  318. package/esm2022/lib/techlify-icon/techlify-icon.module.mjs +0 -24
  319. package/esm2022/lib/techlify-notifications/index.mjs +0 -9
  320. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user-routing.module.mjs +0 -26
  321. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +0 -52
  322. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.mjs +0 -26
  323. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-subscription.service.mjs +0 -18
  324. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-type.service.mjs +0 -18
  325. package/esm2022/lib/techlify-notifications/techlify-notification-routing.module.mjs +0 -18
  326. package/esm2022/lib/techlify-notifications/techlify-notification.module.mjs +0 -22
  327. package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +0 -115
  328. package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.module.mjs +0 -26
  329. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.mjs +0 -28
  330. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +0 -143
  331. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs +0 -23
  332. package/esm2022/lib/techlify-update/techlify-update-routing.module.mjs +0 -28
  333. package/esm2022/lib/techlify-update/techlify-update.module.mjs +0 -27
  334. package/esm2022/lib/techlify-update/techlify-update.service.mjs +0 -41
  335. package/esm2022/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +0 -160
  336. package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.mjs +0 -58
  337. package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.mjs +0 -22
  338. package/esm2022/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +0 -76
  339. package/esm2022/lib/techlify-update/update-notifier/update-notifier.component.mjs +0 -53
  340. package/esm2022/lib/techlify-update/update-notifier/update-notifier.module.mjs +0 -27
  341. package/esm2022/lib/techlify-update/update-view/update-view.component.mjs +0 -37
  342. package/esm2022/lib/techlify-update/update-view/update-view.module.mjs +0 -22
  343. package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.component.mjs +0 -90
  344. package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.module.mjs +0 -24
  345. package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view.service.mjs +0 -18
  346. package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.component.mjs +0 -95
  347. package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.module.mjs +0 -20
  348. package/esm2022/lib/techlify-view/techlify-view.service.mjs +0 -18
  349. package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button-routing.module.mjs +0 -18
  350. package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.component.mjs +0 -42
  351. package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.mjs +0 -28
  352. package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list-routing.module.mjs +0 -18
  353. package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.mjs +0 -87
  354. package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.mjs +0 -24
  355. package/esm2022/lib/timeline-activity/timeline-activity.service.mjs +0 -18
  356. package/esm2022/lib/timeline-filter/calculate-timeline.mjs +0 -103
  357. package/esm2022/lib/timeline-filter/index.mjs +0 -4
  358. package/esm2022/lib/timeline-filter/timeline-filter-routing.module.mjs +0 -18
  359. package/esm2022/lib/timeline-filter/timeline-filter.component.mjs +0 -290
  360. package/esm2022/lib/timeline-filter/timeline-filter.module.mjs +0 -60
  361. package/esm2022/lib/timeline-filter/timeline.model.mjs +0 -18
  362. package/esm2022/lib/user/app-admin-user-list/app-admin-user-list.component.mjs +0 -155
  363. package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.component.mjs +0 -52
  364. package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.module.mjs +0 -44
  365. package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.routes.mjs +0 -22
  366. package/esm2022/lib/user/current-user.service.mjs +0 -152
  367. package/esm2022/lib/user/index.mjs +0 -14
  368. package/esm2022/lib/user/user-enable-button-component/user-enable-button.component.mjs +0 -93
  369. package/esm2022/lib/user/user-enable-button-component/user-enable-button.module.mjs +0 -20
  370. package/esm2022/lib/user/user-explore.component.mjs +0 -49
  371. package/esm2022/lib/user/user-form/user-form.component.mjs +0 -200
  372. package/esm2022/lib/user/user-list/user-list.component.mjs +0 -145
  373. package/esm2022/lib/user/user-sessions/user-session.service.mjs +0 -18
  374. package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.component.mjs +0 -47
  375. package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.module.mjs +0 -20
  376. package/esm2022/lib/user/user-type.enum.mjs +0 -7
  377. package/esm2022/lib/user/user-view.component.mjs +0 -58
  378. package/esm2022/lib/user/user.model.mjs +0 -31
  379. package/esm2022/lib/user/user.module.mjs +0 -68
  380. package/esm2022/lib/user/user.routes.mjs +0 -30
  381. package/esm2022/lib/user/user.service.mjs +0 -42
  382. package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.component.mjs +0 -53
  383. package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.mjs +0 -20
  384. package/esm2022/lib/user-clients-list/user-clients-list.component.mjs +0 -50
  385. package/esm2022/lib/user-clients-list/user-clients-list.module.mjs +0 -24
  386. package/esm2022/lib/user-clients-list/user-tenant.service.mjs +0 -24
  387. package/esm2022/lib/user-config/index.mjs +0 -3
  388. package/esm2022/lib/user-config/user-config.model.mjs +0 -50
  389. package/esm2022/lib/user-config/user-config.service.mjs +0 -65
  390. package/esm2022/lib/user-menu/user-menu.component.mjs +0 -39
  391. package/esm2022/lib/user-menu/user-menu.module.mjs +0 -28
  392. package/esm2022/lib/user-selector/index.mjs +0 -3
  393. package/esm2022/lib/user-selector/user-data.service.mjs +0 -35
  394. package/esm2022/lib/user-selector/user-selector.component.mjs +0 -86
  395. package/esm2022/lib/user-selector/user-selector.module.mjs +0 -26
  396. package/esm2022/lib/utility/date-utils.service.mjs +0 -89
  397. package/esm2022/lib/utility/index.mjs +0 -3
  398. package/esm2022/lib/utility/num-items-selector.component.mjs +0 -31
  399. package/esm2022/lib/utility/utility.module.mjs +0 -22
  400. package/esm2022/lib/validators/date.validator.mjs +0 -31
  401. package/esm2022/ngx-techlify-core.mjs +0 -5
  402. package/esm2022/public-api.mjs +0 -232
  403. package/index.d.ts +0 -5
  404. package/lib/access-control-config/access-control-config-form/access-control-config-form.component.d.ts +0 -44
  405. package/lib/access-control-config/access-control-config-routing.module.d.ts +0 -7
  406. package/lib/access-control-config/access-control-config.component.d.ts +0 -30
  407. package/lib/access-control-config/access-control-config.model.d.ts +0 -17
  408. package/lib/access-control-config/access-control-config.module.d.ts +0 -10
  409. package/lib/access-control-config/access-control-config.service.d.ts +0 -15
  410. package/lib/action-popup/action-popup.component.d.ts +0 -17
  411. package/lib/action-popup/action-popup.model.d.ts +0 -5
  412. package/lib/action-popup/action-popup.module.d.ts +0 -9
  413. package/lib/action-popup/index.d.ts +0 -2
  414. package/lib/app-admin/admin-role/admin-role-list/admin-role-list-routing.module.d.ts +0 -7
  415. package/lib/app-admin/admin-role/admin-role-list/admin-role-list.component.d.ts +0 -29
  416. package/lib/app-admin/admin-role/admin-role-list/admin-role-list.module.d.ts +0 -11
  417. package/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.component.d.ts +0 -28
  418. package/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.module.d.ts +0 -8
  419. package/lib/app-admin/admin-role/admin-role.service.d.ts +0 -11
  420. package/lib/app-admin/app-admin-home/app-admin-home.component.d.ts +0 -5
  421. package/lib/app-admin/app-admin-routing.module.d.ts +0 -7
  422. package/lib/app-admin/app-admin.module.d.ts +0 -8
  423. package/lib/app-admin/tenant/tenant-list-widget/tenant-list-widget.component.d.ts +0 -13
  424. package/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.d.ts +0 -7
  425. package/lib/audit-log/audit-log-for-model/audit-log-for-model.component.d.ts +0 -20
  426. package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +0 -11
  427. package/lib/audit-log/audit-log-list/audit-log-list-routing.module.d.ts +0 -7
  428. package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +0 -33
  429. package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +0 -10
  430. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.d.ts +0 -7
  431. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +0 -20
  432. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +0 -9
  433. package/lib/audit-log/audit-log-routing.module.d.ts +0 -7
  434. package/lib/audit-log/audit-log-view/audit-log-view-routing.module.d.ts +0 -7
  435. package/lib/audit-log/audit-log-view/audit-log-view.component.d.ts +0 -20
  436. package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +0 -9
  437. package/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.d.ts +0 -7
  438. package/lib/audit-log/audit-log-view-model/audit-log-view-model.component.d.ts +0 -18
  439. package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +0 -9
  440. package/lib/audit-log/audit-log.module.d.ts +0 -10
  441. package/lib/audit-log/audit-log.service.d.ts +0 -8
  442. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.d.ts +0 -7
  443. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.d.ts +0 -12
  444. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.d.ts +0 -10
  445. package/lib/base-model/index.d.ts +0 -7
  446. package/lib/base-model/techlify-form/contract/techlify-form.contract.d.ts +0 -18
  447. package/lib/base-model/techlify-form/techlify-form.component.d.ts +0 -69
  448. package/lib/base-model/techlify-list/contract/techlify-list.contract.d.ts +0 -9
  449. package/lib/base-model/techlify-list/techlify-list.component.d.ts +0 -175
  450. package/lib/base-model/techlify-service.d.ts +0 -54
  451. package/lib/base-model/techlify-show/contract/techlify-show.contract.d.ts +0 -17
  452. package/lib/base-model/techlify-show/techlify-show.component.d.ts +0 -71
  453. package/lib/change-password/change-password-routing.module.d.ts +0 -7
  454. package/lib/change-password/change-password.component.d.ts +0 -27
  455. package/lib/change-password/change-password.module.d.ts +0 -10
  456. package/lib/column-selector/column-config.model.d.ts +0 -7
  457. package/lib/column-selector/column-selector/column-selector.component.d.ts +0 -27
  458. package/lib/column-selector/column-selector.module.d.ts +0 -8
  459. package/lib/column-selector/index.d.ts +0 -3
  460. package/lib/company-information/client.service.d.ts +0 -9
  461. package/lib/company-information/company-info-display/company-info-display.component.d.ts +0 -16
  462. package/lib/company-information/company-information/company-information.component.d.ts +0 -27
  463. package/lib/company-information/tenant-form-button/tenant-form-button.component.d.ts +0 -14
  464. package/lib/core/alert.service.d.ts +0 -15
  465. package/lib/core/api-prefix.interceptor.d.ts +0 -14
  466. package/lib/core/app-update.service.d.ts +0 -25
  467. package/lib/core/authentication.guard.d.ts +0 -13
  468. package/lib/core/authentication.service.d.ts +0 -28
  469. package/lib/core/cache.interceptor.d.ts +0 -24
  470. package/lib/core/config.service.d.ts +0 -22
  471. package/lib/core/core.module.d.ts +0 -10
  472. package/lib/core/credentials.service.d.ts +0 -39
  473. package/lib/core/environment.service.d.ts +0 -8
  474. package/lib/core/error-handler.interceptor.d.ts +0 -26
  475. package/lib/core/error-handler.service.d.ts +0 -19
  476. package/lib/core/filter.service.d.ts +0 -14
  477. package/lib/core/form-validator.service.d.ts +0 -11
  478. package/lib/core/header.interceptor.d.ts +0 -11
  479. package/lib/core/http-cache.service.d.ts +0 -57
  480. package/lib/core/http.service.d.ts +0 -59
  481. package/lib/core/index.d.ts +0 -22
  482. package/lib/core/logger.service.d.ts +0 -85
  483. package/lib/core/route-reusable-strategy.d.ts +0 -16
  484. package/lib/core/snack/snack.component.d.ts +0 -13
  485. package/lib/core/snack/snack.module.d.ts +0 -10
  486. package/lib/core/storage.service.d.ts +0 -18
  487. package/lib/core/techlify-config.model.d.ts +0 -18
  488. package/lib/core/token.interceptor.d.ts +0 -14
  489. package/lib/custom-icon/custom-icon-registry.service.d.ts +0 -10
  490. package/lib/custom-icon/custom-icon.component.d.ts +0 -11
  491. package/lib/custom-icon/custom-icon.module.d.ts +0 -8
  492. package/lib/custom-icon/custom-icons.registry.d.ts +0 -4
  493. package/lib/data-table/data-table.component.d.ts +0 -61
  494. package/lib/data-table/data-table.model.d.ts +0 -46
  495. package/lib/data-table/data-table.module.d.ts +0 -8
  496. package/lib/data-table/index.d.ts +0 -2
  497. package/lib/delete-button/techlify-delete-button.component.d.ts +0 -24
  498. package/lib/detail-layout/techlify-detail-layout.component.d.ts +0 -5
  499. package/lib/document-viewer/document-viewer.component.d.ts +0 -19
  500. package/lib/document-viewer/document-viewer.module.d.ts +0 -10
  501. package/lib/document-viewer/index.d.ts +0 -2
  502. package/lib/document-viewer/viewer-config.model.d.ts +0 -5
  503. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.d.ts +0 -12
  504. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.d.ts +0 -19
  505. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts +0 -9
  506. package/lib/email-subscription/email-subscription-for-user/index.d.ts +0 -1
  507. package/lib/email-subscription/email-subscription-routing.module.d.ts +0 -7
  508. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.d.ts +0 -7
  509. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.d.ts +0 -35
  510. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts +0 -10
  511. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.d.ts +0 -1
  512. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.d.ts +0 -14
  513. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.d.ts +0 -32
  514. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts +0 -10
  515. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.d.ts +0 -1
  516. package/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.d.ts +0 -7
  517. package/lib/email-subscription/email-subscription-type/email-subscription-type.module.d.ts +0 -8
  518. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.d.ts +0 -7
  519. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.d.ts +0 -35
  520. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts +0 -10
  521. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.d.ts +0 -1
  522. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.d.ts +0 -14
  523. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.d.ts +0 -34
  524. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts +0 -11
  525. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.d.ts +0 -1
  526. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.d.ts +0 -7
  527. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.d.ts +0 -16
  528. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts +0 -9
  529. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.d.ts +0 -1
  530. package/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.d.ts +0 -7
  531. package/lib/email-subscription/email-subscription-user/email-subscription-user.module.d.ts +0 -8
  532. package/lib/email-subscription/email-subscription.module.d.ts +0 -8
  533. package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts +0 -42
  534. package/lib/entity-files/entity-file-list/entity-file-list.component.d.ts +0 -72
  535. package/lib/entity-files/entity-file-list-widget/entity-file-list-widget.component.d.ts +0 -9
  536. package/lib/entity-files/entity-file-list.module.d.ts +0 -13
  537. package/lib/entity-files/entity-file.service.d.ts +0 -11
  538. package/lib/entity-files/index.d.ts +0 -4
  539. package/lib/export-excel/export-excel-button/export-excel-button.component.d.ts +0 -21
  540. package/lib/export-excel/export-excel.module.d.ts +0 -10
  541. package/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.d.ts +0 -31
  542. package/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.d.ts +0 -8
  543. package/lib/file-dropper/file-dropper.component.d.ts +0 -36
  544. package/lib/file-dropper/file-dropper.model.d.ts +0 -10
  545. package/lib/file-dropper/file-dropper.module.d.ts +0 -9
  546. package/lib/file-dropper/index.d.ts +0 -2
  547. package/lib/file-upload-button/file-upload-button.component.d.ts +0 -20
  548. package/lib/forgot-password/forgot-password-routing.module.d.ts +0 -7
  549. package/lib/forgot-password/forgot-password.component.d.ts +0 -34
  550. package/lib/forgot-password/forgot-password.module.d.ts +0 -9
  551. package/lib/forgot-password/index.d.ts +0 -2
  552. package/lib/form-button/techlify-form-button.component.d.ts +0 -15
  553. package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form-routing.module.d.ts +0 -7
  554. package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.component.d.ts +0 -18
  555. package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.module.d.ts +0 -9
  556. package/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.component.d.ts +0 -10
  557. package/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.module.d.ts +0 -10
  558. package/lib/form-configuration/form-configuration-form-field.service.d.ts +0 -8
  559. package/lib/form-configuration/form-configuration-form.service.d.ts +0 -8
  560. package/lib/form-configuration/form-configuration-utility.service.d.ts +0 -18
  561. package/lib/image-preview/image-preview.component.d.ts +0 -9
  562. package/lib/import-csv/data-import/data-import.component.d.ts +0 -9
  563. package/lib/import-csv/failed-items-list/failed-items-list.component.d.ts +0 -15
  564. package/lib/import-csv/field-mapping/field-mapping.component.d.ts +0 -37
  565. package/lib/import-csv/import-csv-config.d.ts +0 -18
  566. package/lib/import-csv/import-csv.component.d.ts +0 -38
  567. package/lib/import-csv/import-csv.module.d.ts +0 -14
  568. package/lib/import-csv/import-history-list/import-history-list.component.d.ts +0 -23
  569. package/lib/import-csv/import-success/import-success.component.d.ts +0 -11
  570. package/lib/ip-address-selector/ip-address-selector.module.d.ts +0 -8
  571. package/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.d.ts +0 -28
  572. package/lib/loader/index.d.ts +0 -1
  573. package/lib/loader/loader.component.d.ts +0 -11
  574. package/lib/loader/loader.module.d.ts +0 -9
  575. package/lib/local-date-parser.d.ts +0 -1
  576. package/lib/locked-date/index.d.ts +0 -5
  577. package/lib/locked-date/locked-date-form/locked-date-form.component.d.ts +0 -24
  578. package/lib/locked-date/locked-date-lock-unlock-button/locked-date-lock-unlock-button.component.d.ts +0 -13
  579. package/lib/locked-date/locked-date.model.d.ts +0 -10
  580. package/lib/locked-date/locked-date.module.d.ts +0 -10
  581. package/lib/locked-date/locked-date.service.d.ts +0 -11
  582. package/lib/locked-date/locked-dates-list/locked-date-list.component.d.ts +0 -19
  583. package/lib/login/index.d.ts +0 -2
  584. package/lib/login/login-form-fields/login-form-fields.component.d.ts +0 -41
  585. package/lib/login/login-routing.module.d.ts +0 -7
  586. package/lib/login/login.component.d.ts +0 -36
  587. package/lib/login/login.module.d.ts +0 -10
  588. package/lib/login-history-for-user/login-history-for-user-routing.module.d.ts +0 -7
  589. package/lib/login-history-for-user/login-history-for-user.component.d.ts +0 -25
  590. package/lib/login-history-for-user/login-history-for-user.module.d.ts +0 -9
  591. package/lib/material.module.d.ts +0 -30
  592. package/lib/ngx-techlify-users/ngx-techlify-users-routing.module.d.ts +0 -7
  593. package/lib/ngx-techlify-users/ngx-techlify-users.module.d.ts +0 -8
  594. package/lib/note/comment-form/comment-form.component.d.ts +0 -25
  595. package/lib/note/index.d.ts +0 -4
  596. package/lib/note/note-comment-list/note-comment-list.component.d.ts +0 -33
  597. package/lib/note/note-form/note-form.component.d.ts +0 -29
  598. package/lib/note/note-list/note-list.component.d.ts +0 -30
  599. package/lib/note/note.module.d.ts +0 -9
  600. package/lib/note/note.service.d.ts +0 -8
  601. package/lib/number-input-button/index.d.ts +0 -2
  602. package/lib/number-input-button/number-input-button/number-input-button.component.d.ts +0 -32
  603. package/lib/number-input-button/number-input-button.module.d.ts +0 -8
  604. package/lib/number-selector/number-selector.component.d.ts +0 -44
  605. package/lib/ordinal-pipe/ordinal-pipe.d.ts +0 -7
  606. package/lib/password-requirement-check/password-check-result.d.ts +0 -7
  607. package/lib/password-requirement-check/password-check.service.d.ts +0 -15
  608. package/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.d.ts +0 -23
  609. package/lib/password-requirement-check/password-requirement-check.module.d.ts +0 -8
  610. package/lib/pdf-button/pdf-button.component.d.ts +0 -11
  611. package/lib/pdf-button/pdf-button.module.d.ts +0 -8
  612. package/lib/phone-number-selector/country.service.d.ts +0 -12
  613. package/lib/phone-number-selector/phone-number-selector.component.d.ts +0 -47
  614. package/lib/pipes/file-size.pipe.d.ts +0 -7
  615. package/lib/pipes/wrap.pipe.d.ts +0 -7
  616. package/lib/profile/index.d.ts +0 -2
  617. package/lib/profile/profile-edit.component.d.ts +0 -33
  618. package/lib/profile/profile-routing.module.d.ts +0 -7
  619. package/lib/profile/profile.module.d.ts +0 -9
  620. package/lib/read-more/read-more.component.d.ts +0 -15
  621. package/lib/read-more/read-more.module.d.ts +0 -9
  622. package/lib/request-helper/request-helper.service.d.ts +0 -59
  623. package/lib/reset-password/index.d.ts +0 -3
  624. package/lib/reset-password/reset-password-routing.module.d.ts +0 -7
  625. package/lib/reset-password/reset-password.component.d.ts +0 -28
  626. package/lib/reset-password/reset-password.module.d.ts +0 -10
  627. package/lib/reset-password/reset-password.service.d.ts +0 -11
  628. package/lib/restrictors/index.d.ts +0 -3
  629. package/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.d.ts +0 -34
  630. package/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.d.ts +0 -8
  631. package/lib/restrictors/restrictor-level-selector/restrictor-level.service.d.ts +0 -9
  632. package/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.d.ts +0 -34
  633. package/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.d.ts +0 -8
  634. package/lib/restrictors/restrictor-status-selector/restrictor-status.service.d.ts +0 -9
  635. package/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.d.ts +0 -34
  636. package/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.d.ts +0 -8
  637. package/lib/restrictors/restrictor-type-selector/restrictor-type.service.d.ts +0 -9
  638. package/lib/restrictors/restrictor.service.d.ts +0 -9
  639. package/lib/restrictors/restrictors-form/restrictors-form.component.d.ts +0 -30
  640. package/lib/restrictors/restrictors-form-page/restrictors-form-page.component.d.ts +0 -21
  641. package/lib/restrictors/restrictors-list-page/restrictors-list-page.component.d.ts +0 -50
  642. package/lib/restrictors/restrictors-routing.module.d.ts +0 -7
  643. package/lib/restrictors/restrictors.module.d.ts +0 -15
  644. package/lib/role/index.d.ts +0 -9
  645. package/lib/role/permission/permission.model.d.ts +0 -11
  646. package/lib/role/permission/permission.module.d.ts +0 -9
  647. package/lib/role/permission/permission.routes.d.ts +0 -7
  648. package/lib/role/permission/permissions-management.component.d.ts +0 -41
  649. package/lib/role/role-form-button.component.d.ts +0 -16
  650. package/lib/role/role-form.component.d.ts +0 -32
  651. package/lib/role/role-list/role-list.component.d.ts +0 -33
  652. package/lib/role/role-view/role-view-routing.module.d.ts +0 -7
  653. package/lib/role/role-view/role-view.component.d.ts +0 -16
  654. package/lib/role/role-view/role-view.module.d.ts +0 -9
  655. package/lib/role/role.model.d.ts +0 -29
  656. package/lib/role/role.module.d.ts +0 -11
  657. package/lib/role/role.routes.d.ts +0 -7
  658. package/lib/role/role.service.d.ts +0 -10
  659. package/lib/searchable-selector/index.d.ts +0 -1
  660. package/lib/searchable-selector/searchable-selector.component.d.ts +0 -95
  661. package/lib/searchable-selector/searchable-selector.module.d.ts +0 -11
  662. package/lib/shared.module.d.ts +0 -22
  663. package/lib/signup/index.d.ts +0 -2
  664. package/lib/signup/signup-routing.module.d.ts +0 -7
  665. package/lib/signup/signup.component.d.ts +0 -29
  666. package/lib/signup/signup.module.d.ts +0 -9
  667. package/lib/subscription/subscription-form/subscription-form-routing.module.d.ts +0 -7
  668. package/lib/subscription/subscription-form/subscription-form.component.d.ts +0 -31
  669. package/lib/subscription/subscription-form/subscription-form.module.d.ts +0 -9
  670. package/lib/subscription/subscription-listing/subscription-listing-routing.module.d.ts +0 -7
  671. package/lib/subscription/subscription-listing/subscription-listing.component.d.ts +0 -25
  672. package/lib/subscription/subscription-listing/subscription-listing.module.d.ts +0 -10
  673. package/lib/subscription/subscription-package-listing/subscription-package-listing-routing.module.d.ts +0 -7
  674. package/lib/subscription/subscription-package-listing/subscription-package-listing.component.d.ts +0 -28
  675. package/lib/subscription/subscription-package-listing/subscription-package-listing.module.d.ts +0 -9
  676. package/lib/subscription/subscription-package-view/subscription-package-view-routing.module.d.ts +0 -7
  677. package/lib/subscription/subscription-package-view/subscription-package-view.component.d.ts +0 -15
  678. package/lib/subscription/subscription-package-view/subscription-package-view.module.d.ts +0 -10
  679. package/lib/subscription/subscription-package.service.d.ts +0 -9
  680. package/lib/subscription/subscription-status.enum.d.ts +0 -4
  681. package/lib/subscription/subscription.service.d.ts +0 -12
  682. package/lib/subscription/techlify-subscription-directive.module.d.ts +0 -8
  683. package/lib/subscription/techlify-subscription.directive.d.ts +0 -14
  684. package/lib/tag/tag.service.d.ts +0 -8
  685. package/lib/tag/techlify-tagger-tag-form/techlify-tagger-tag-form.component.d.ts +0 -22
  686. package/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.d.ts +0 -12
  687. package/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.d.ts +0 -74
  688. package/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts +0 -8
  689. package/lib/tag/techlify-tagger-tag-list/techlify-tagger-tag-list.component.d.ts +0 -15
  690. package/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.d.ts +0 -61
  691. package/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts +0 -8
  692. package/lib/techlify-app-selector/techlify-app-selector.component.d.ts +0 -13
  693. package/lib/techlify-app-selector/techlify-app-selector.module.d.ts +0 -10
  694. package/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.d.ts +0 -50
  695. package/lib/techlify-company-switcher/index.d.ts +0 -2
  696. package/lib/techlify-company-switcher/techlify-company-switcher/techlify-company-switcher.component.d.ts +0 -28
  697. package/lib/techlify-company-switcher/techlify-company-switcher.module.d.ts +0 -10
  698. package/lib/techlify-currency-pipe/techlify-currency-pipe.directive.d.ts +0 -8
  699. package/lib/techlify-feature/on-off-switch/on-off-switch.component.d.ts +0 -12
  700. package/lib/techlify-feature/techlify-feature-directive.module.d.ts +0 -8
  701. package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts +0 -13
  702. package/lib/techlify-feature/techlify-feature-listing.component.d.ts +0 -32
  703. package/lib/techlify-feature/techlify-feature.module.d.ts +0 -11
  704. package/lib/techlify-feature/techlify-feature.routing.d.ts +0 -2
  705. package/lib/techlify-feature/techlify-feature.service.d.ts +0 -13
  706. package/lib/techlify-icon/techlify-icon.component.d.ts +0 -12
  707. package/lib/techlify-icon/techlify-icon.module.d.ts +0 -9
  708. package/lib/techlify-notifications/index.d.ts +0 -5
  709. package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user-routing.module.d.ts +0 -7
  710. package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.d.ts +0 -17
  711. package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.d.ts +0 -9
  712. package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-subscription.service.d.ts +0 -8
  713. package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-type.service.d.ts +0 -8
  714. package/lib/techlify-notifications/techlify-notification-routing.module.d.ts +0 -7
  715. package/lib/techlify-notifications/techlify-notification.module.d.ts +0 -8
  716. package/lib/techlify-update/techlify-update-form/techlify-update-form.component.d.ts +0 -33
  717. package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts +0 -9
  718. package/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.d.ts +0 -7
  719. package/lib/techlify-update/techlify-update-history/techlify-update-history.component.d.ts +0 -34
  720. package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts +0 -9
  721. package/lib/techlify-update/techlify-update-routing.module.d.ts +0 -7
  722. package/lib/techlify-update/techlify-update.module.d.ts +0 -10
  723. package/lib/techlify-update/techlify-update.service.d.ts +0 -16
  724. package/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.d.ts +0 -33
  725. package/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.d.ts +0 -20
  726. package/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.d.ts +0 -8
  727. package/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.d.ts +0 -28
  728. package/lib/techlify-update/update-notifier/update-notifier.component.d.ts +0 -19
  729. package/lib/techlify-update/update-notifier/update-notifier.module.d.ts +0 -10
  730. package/lib/techlify-update/update-view/update-view.component.d.ts +0 -17
  731. package/lib/techlify-update/update-view/update-view.module.d.ts +0 -8
  732. package/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.component.d.ts +0 -23
  733. package/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.module.d.ts +0 -9
  734. package/lib/techlify-view/my-techlify-view-listing/my-techlify-view.service.d.ts +0 -8
  735. package/lib/techlify-view/techlify-view-form/techlify-view-form.component.d.ts +0 -30
  736. package/lib/techlify-view/techlify-view-form/techlify-view-form.module.d.ts +0 -8
  737. package/lib/techlify-view/techlify-view.service.d.ts +0 -8
  738. package/lib/timeline-activity/timeline-activity-button/timeline-activity-button-routing.module.d.ts +0 -7
  739. package/lib/timeline-activity/timeline-activity-button/timeline-activity-button.component.d.ts +0 -17
  740. package/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.d.ts +0 -10
  741. package/lib/timeline-activity/timeline-activity-list/timeline-activity-list-routing.module.d.ts +0 -7
  742. package/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.d.ts +0 -24
  743. package/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.d.ts +0 -9
  744. package/lib/timeline-activity/timeline-activity.service.d.ts +0 -8
  745. package/lib/timeline-filter/calculate-timeline.d.ts +0 -6
  746. package/lib/timeline-filter/index.d.ts +0 -3
  747. package/lib/timeline-filter/timeline-filter-routing.module.d.ts +0 -7
  748. package/lib/timeline-filter/timeline-filter.component.d.ts +0 -75
  749. package/lib/timeline-filter/timeline-filter.module.d.ts +0 -18
  750. package/lib/timeline-filter/timeline.model.d.ts +0 -17
  751. package/lib/user/app-admin-user-list/app-admin-user-list.component.d.ts +0 -40
  752. package/lib/user/app-admin-user-view/app-admin-user-view.component.d.ts +0 -26
  753. package/lib/user/app-admin-user-view/app-admin-user-view.module.d.ts +0 -13
  754. package/lib/user/app-admin-user-view/app-admin-user-view.routes.d.ts +0 -7
  755. package/lib/user/current-user.service.d.ts +0 -75
  756. package/lib/user/index.d.ts +0 -13
  757. package/lib/user/user-enable-button-component/user-enable-button.component.d.ts +0 -23
  758. package/lib/user/user-enable-button-component/user-enable-button.module.d.ts +0 -8
  759. package/lib/user/user-explore.component.d.ts +0 -26
  760. package/lib/user/user-form/user-form.component.d.ts +0 -43
  761. package/lib/user/user-list/user-list.component.d.ts +0 -38
  762. package/lib/user/user-sessions/user-session.service.d.ts +0 -8
  763. package/lib/user/user-sessions/user-sessions/user-sessions.component.d.ts +0 -15
  764. package/lib/user/user-sessions/user-sessions/user-sessions.module.d.ts +0 -8
  765. package/lib/user/user-type.enum.d.ts +0 -5
  766. package/lib/user/user-view.component.d.ts +0 -32
  767. package/lib/user/user.model.d.ts +0 -30
  768. package/lib/user/user.module.d.ts +0 -16
  769. package/lib/user/user.routes.d.ts +0 -7
  770. package/lib/user/user.service.d.ts +0 -15
  771. package/lib/user-client-enable-disable-button/user-client-enable-disable-button.component.d.ts +0 -22
  772. package/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.d.ts +0 -8
  773. package/lib/user-clients-list/user-clients-list.component.d.ts +0 -15
  774. package/lib/user-clients-list/user-clients-list.module.d.ts +0 -9
  775. package/lib/user-clients-list/user-tenant.service.d.ts +0 -11
  776. package/lib/user-config/index.d.ts +0 -2
  777. package/lib/user-config/user-config.model.d.ts +0 -50
  778. package/lib/user-config/user-config.service.d.ts +0 -14
  779. package/lib/user-menu/user-menu.component.d.ts +0 -17
  780. package/lib/user-menu/user-menu.module.d.ts +0 -13
  781. package/lib/user-selector/index.d.ts +0 -2
  782. package/lib/user-selector/user-data.service.d.ts +0 -16
  783. package/lib/user-selector/user-selector.component.d.ts +0 -28
  784. package/lib/user-selector/user-selector.module.d.ts +0 -8
  785. package/lib/utility/date-utils.service.d.ts +0 -38
  786. package/lib/utility/index.d.ts +0 -2
  787. package/lib/utility/num-items-selector.component.d.ts +0 -19
  788. package/lib/utility/utility.module.d.ts +0 -8
  789. package/lib/validators/date.validator.d.ts +0 -6
  790. package/public-api.d.ts +0 -212
@@ -0,0 +1,4842 @@
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Injectable, InjectionToken, Input, NgModule, Optional, Output, Self, ViewChild, input, output } from "@angular/core";
3
+ import * as i1$8 from "@angular/material/dialog";
4
+ import { MAT_DIALOG_DATA, MatDialogModule } from "@angular/material/dialog";
5
+ import * as i2$2 from "@angular/material/button";
6
+ import { MatButtonModule } from "@angular/material/button";
7
+ import { BehaviorSubject, Observable, Subject, Subscription, from, map, of, throwError } from "rxjs";
8
+ import * as i1$6 from "@angular/material/snack-bar";
9
+ import { MAT_SNACK_BAR_DATA, MatSnackBarModule } from "@angular/material/snack-bar";
10
+ import * as i1$7 from "@angular/material/icon";
11
+ import { MatIconModule } from "@angular/material/icon";
12
+ import { catchError as catchError$1, debounceTime as debounceTime$1, distinctUntilChanged as distinctUntilChanged$1, finalize as finalize$1, map as map$1, startWith as startWith$1, switchMap as switchMap$1 } from "rxjs/operators";
13
+ import * as i1$2 from "@angular/platform-browser";
14
+ import * as i1$3 from "@angular/router";
15
+ import { RouteReuseStrategy, RouterModule } from "@angular/router";
16
+ import * as i1$5 from "@angular/common";
17
+ import { CommonModule, DatePipe } from "@angular/common";
18
+ import { __decorate } from "tslib";
19
+ import { MatSortModule } from "@angular/material/sort";
20
+ import { UntilDestroy, untilDestroyed } from "@ngneat/until-destroy";
21
+ import { InfiniteScrollDirective } from "ngx-infinite-scroll";
22
+ import { MatCheckboxModule } from "@angular/material/checkbox";
23
+ import { MatMenuModule } from "@angular/material/menu";
24
+ import { MatTableModule } from "@angular/material/table";
25
+ import * as i2$1 from "ngx-doc-viewer";
26
+ import { NgxDocViewerModule } from "ngx-doc-viewer";
27
+ import * as i4$1 from "@angular/material/card";
28
+ import { MatCardModule } from "@angular/material/card";
29
+ import * as i1 from "@angular/forms";
30
+ import { FormsModule, ReactiveFormsModule, Validators } from "@angular/forms";
31
+ import * as i1$4 from "@angular/common/http";
32
+ import { HttpClient, HttpErrorResponse, HttpResponse } from "@angular/common/http";
33
+ import * as i3$1 from "@angular/material/tooltip";
34
+ import { MatTooltipModule } from "@angular/material/tooltip";
35
+ import * as i3 from "@angular/material/form-field";
36
+ import { MatFormFieldControl, MatFormFieldModule } from "@angular/material/form-field";
37
+ import * as i10 from "@angular/material/input";
38
+ import { MatInputModule } from "@angular/material/input";
39
+ import * as i8 from "@angular/material/datepicker";
40
+ import { MatDatepickerModule } from "@angular/material/datepicker";
41
+ import { coerceBooleanProperty } from "@angular/cdk/coercion";
42
+ import * as i2 from "@angular/cdk/a11y";
43
+ import * as i5 from "@angular/material/autocomplete";
44
+ import { MatAutocompleteModule } from "@angular/material/autocomplete";
45
+ import { MatChipsModule } from "@angular/material/chips";
46
+ import { NgxPermissionsModule } from "ngx-permissions";
47
+ import * as i12 from "@angular/material/progress-bar";
48
+ import { MatProgressBar, MatProgressBarModule } from "@angular/material/progress-bar";
49
+ import { MatLineModule, MatNativeDateModule, MatOptionModule, MatPseudoCheckboxModule, MatRippleModule } from "@angular/material/core";
50
+ import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
51
+ import * as i4 from "@angular/material/select";
52
+ import { MatSelectModule } from "@angular/material/select";
53
+ import { MatDividerModule } from "@angular/material/divider";
54
+ import { MatListModule } from "@angular/material/list";
55
+ import { MatButtonToggleModule } from "@angular/material/button-toggle";
56
+ import { MatSidenavModule } from "@angular/material/sidenav";
57
+ import { MatSlideToggleModule } from "@angular/material/slide-toggle";
58
+ import { MatTabsModule } from "@angular/material/tabs";
59
+ import * as i1$1 from "@angular/service-worker";
60
+ import moment from "moment";
61
+ import * as XLSX from "xlsx";
62
+ import * as i6 from "@angular/cdk/scrolling";
63
+ var ActionPopup = class {};
64
+ var ActionPopupComponent = class ActionPopupComponent {
65
+ constructor(dialogRef, data) {
66
+ this.dialogRef = dialogRef;
67
+ this.data = data;
68
+ }
69
+ ngOnInit() {}
70
+ closeDialog() {
71
+ this.dialogRef.close();
72
+ }
73
+ confirm() {
74
+ this.dialogRef.close(this.data);
75
+ }
76
+ static {
77
+ this.ɵfac = i0.ɵɵngDeclareFactory({
78
+ minVersion: "12.0.0",
79
+ version: "22.2.3",
80
+ ngImport: i0,
81
+ type: ActionPopupComponent,
82
+ deps: [{ token: i1$8.MatDialogRef }, { token: MAT_DIALOG_DATA }],
83
+ target: i0.ɵɵFactoryTarget.Component
84
+ });
85
+ }
86
+ static {
87
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
88
+ minVersion: "14.0.0",
89
+ version: "22.2.3",
90
+ type: ActionPopupComponent,
91
+ isStandalone: false,
92
+ selector: "app-action-popup",
93
+ ngImport: i0,
94
+ template: "<div>\n <h5 mat-dialog-title class='text-center'>{{data.title}}</h5>\n <div mat-dialog-content>\n <p [innerHTML]=\"data.message\"></p>\n </div>\n <div mat-dialog-actions class='d-flex justify-content-end'>\n <button mat-button (click)=\"closeDialog()\">Cancel</button>\n <button mat-raised-button color=\"primary\" (click)=\"confirm()\">Proceed</button>\n </div>\n</div>",
95
+ styles: [""],
96
+ dependencies: [
97
+ {
98
+ kind: "component",
99
+ type: i2$2.MatButton,
100
+ selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ",
101
+ inputs: ["matButton"],
102
+ exportAs: ["matButton", "matAnchor"]
103
+ },
104
+ {
105
+ kind: "directive",
106
+ type: i1$8.MatDialogTitle,
107
+ selector: "[mat-dialog-title], [matDialogTitle]",
108
+ inputs: ["id"],
109
+ exportAs: ["matDialogTitle"]
110
+ },
111
+ {
112
+ kind: "directive",
113
+ type: i1$8.MatDialogActions,
114
+ selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]",
115
+ inputs: ["align"]
116
+ },
117
+ {
118
+ kind: "directive",
119
+ type: i1$8.MatDialogContent,
120
+ selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]"
121
+ }
122
+ ],
123
+ changeDetection: i0.ChangeDetectionStrategy.Eager
124
+ });
125
+ }
126
+ };
127
+ i0.ɵɵngDeclareClassMetadata({
128
+ minVersion: "12.0.0",
129
+ version: "22.2.3",
130
+ ngImport: i0,
131
+ type: ActionPopupComponent,
132
+ decorators: [{
133
+ type: Component,
134
+ args: [{
135
+ selector: "app-action-popup",
136
+ changeDetection: ChangeDetectionStrategy.Eager,
137
+ standalone: false,
138
+ template: "<div>\n <h5 mat-dialog-title class='text-center'>{{data.title}}</h5>\n <div mat-dialog-content>\n <p [innerHTML]=\"data.message\"></p>\n </div>\n <div mat-dialog-actions class='d-flex justify-content-end'>\n <button mat-button (click)=\"closeDialog()\">Cancel</button>\n <button mat-raised-button color=\"primary\" (click)=\"confirm()\">Proceed</button>\n </div>\n</div>"
139
+ }]
140
+ }],
141
+ ctorParameters: () => [{ type: i1$8.MatDialogRef }, {
142
+ type: ActionPopup,
143
+ decorators: [{
144
+ type: Inject,
145
+ args: [MAT_DIALOG_DATA]
146
+ }]
147
+ }]
148
+ });
149
+ var SuccessSnackComponent = class SuccessSnackComponent {
150
+ constructor(data) {
151
+ this.data = data;
152
+ }
153
+ static {
154
+ this.ɵfac = i0.ɵɵngDeclareFactory({
155
+ minVersion: "12.0.0",
156
+ version: "22.2.3",
157
+ ngImport: i0,
158
+ type: SuccessSnackComponent,
159
+ deps: [{ token: MAT_SNACK_BAR_DATA }],
160
+ target: i0.ɵɵFactoryTarget.Component
161
+ });
162
+ }
163
+ static {
164
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
165
+ minVersion: "14.0.0",
166
+ version: "22.2.3",
167
+ type: SuccessSnackComponent,
168
+ isStandalone: false,
169
+ selector: "snack-bar-component-example-snack",
170
+ ngImport: i0,
171
+ template: "<div class=\"row-container\">\n <span class=\"icon-column\">\n <mat-icon class=\"success\"> check_circle_outline</mat-icon>\n </span>\n <span class=\"text-column\">\n {{ data }}\n </span>\n</div>",
172
+ styles: [".error{color:#dc3545}.success{color:#28a745}.row-container{display:flex}.icon-column{flex:5%;padding-right:5px}.text-column{flex:95%;text-align:center;color:#fff}\n"],
173
+ dependencies: [{
174
+ kind: "component",
175
+ type: i1$7.MatIcon,
176
+ selector: "mat-icon",
177
+ inputs: [
178
+ "color",
179
+ "inline",
180
+ "svgIcon",
181
+ "fontSet",
182
+ "fontIcon"
183
+ ],
184
+ exportAs: ["matIcon"]
185
+ }],
186
+ changeDetection: i0.ChangeDetectionStrategy.Eager
187
+ });
188
+ }
189
+ };
190
+ i0.ɵɵngDeclareClassMetadata({
191
+ minVersion: "12.0.0",
192
+ version: "22.2.3",
193
+ ngImport: i0,
194
+ type: SuccessSnackComponent,
195
+ decorators: [{
196
+ type: Component,
197
+ args: [{
198
+ selector: "snack-bar-component-example-snack",
199
+ changeDetection: ChangeDetectionStrategy.Eager,
200
+ standalone: false,
201
+ template: "<div class=\"row-container\">\n <span class=\"icon-column\">\n <mat-icon class=\"success\"> check_circle_outline</mat-icon>\n </span>\n <span class=\"text-column\">\n {{ data }}\n </span>\n</div>",
202
+ styles: [".error{color:#dc3545}.success{color:#28a745}.row-container{display:flex}.icon-column{flex:5%;padding-right:5px}.text-column{flex:95%;text-align:center;color:#fff}\n"]
203
+ }]
204
+ }],
205
+ ctorParameters: () => [{
206
+ type: void 0,
207
+ decorators: [{
208
+ type: Inject,
209
+ args: [MAT_SNACK_BAR_DATA]
210
+ }]
211
+ }]
212
+ });
213
+ var ErrorSnackComponent = class ErrorSnackComponent {
214
+ constructor(data) {
215
+ this.data = data;
216
+ }
217
+ static {
218
+ this.ɵfac = i0.ɵɵngDeclareFactory({
219
+ minVersion: "12.0.0",
220
+ version: "22.2.3",
221
+ ngImport: i0,
222
+ type: ErrorSnackComponent,
223
+ deps: [{ token: MAT_SNACK_BAR_DATA }],
224
+ target: i0.ɵɵFactoryTarget.Component
225
+ });
226
+ }
227
+ static {
228
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
229
+ minVersion: "14.0.0",
230
+ version: "22.2.3",
231
+ type: ErrorSnackComponent,
232
+ isStandalone: false,
233
+ selector: "snack-bar-component-example-snack",
234
+ ngImport: i0,
235
+ template: "<div class=\"row-container\">\n <span class=\"icon-column\">\n <mat-icon class=\"error\"> cancel</mat-icon>\n </span>\n <span class=\"text-column\">\n {{ data }}\n </span>\n</div>",
236
+ styles: [".error{color:#dc3545}.success{color:#28a745}.row-container{display:flex}.icon-column{flex:5%;padding-right:5px}.text-column{flex:95%;text-align:center;color:#fff}\n"],
237
+ dependencies: [{
238
+ kind: "component",
239
+ type: i1$7.MatIcon,
240
+ selector: "mat-icon",
241
+ inputs: [
242
+ "color",
243
+ "inline",
244
+ "svgIcon",
245
+ "fontSet",
246
+ "fontIcon"
247
+ ],
248
+ exportAs: ["matIcon"]
249
+ }],
250
+ changeDetection: i0.ChangeDetectionStrategy.Eager
251
+ });
252
+ }
253
+ };
254
+ i0.ɵɵngDeclareClassMetadata({
255
+ minVersion: "12.0.0",
256
+ version: "22.2.3",
257
+ ngImport: i0,
258
+ type: ErrorSnackComponent,
259
+ decorators: [{
260
+ type: Component,
261
+ args: [{
262
+ selector: "snack-bar-component-example-snack",
263
+ changeDetection: ChangeDetectionStrategy.Eager,
264
+ standalone: false,
265
+ template: "<div class=\"row-container\">\n <span class=\"icon-column\">\n <mat-icon class=\"error\"> cancel</mat-icon>\n </span>\n <span class=\"text-column\">\n {{ data }}\n </span>\n</div>",
266
+ styles: [".error{color:#dc3545}.success{color:#28a745}.row-container{display:flex}.icon-column{flex:5%;padding-right:5px}.text-column{flex:95%;text-align:center;color:#fff}\n"]
267
+ }]
268
+ }],
269
+ ctorParameters: () => [{
270
+ type: void 0,
271
+ decorators: [{
272
+ type: Inject,
273
+ args: [MAT_SNACK_BAR_DATA]
274
+ }]
275
+ }]
276
+ });
277
+ var AlertService = class AlertService {
278
+ constructor(snackBar) {
279
+ this.snackBar = snackBar;
280
+ }
281
+ addAlert(message, alertType, duration = 3) {
282
+ if (alertType == "success") this.snackBar.openFromComponent(SuccessSnackComponent, {
283
+ duration: 1e3 * duration,
284
+ data: message
285
+ });
286
+ else this.snackBar.openFromComponent(ErrorSnackComponent, {
287
+ duration: 1e3 * duration,
288
+ data: message
289
+ });
290
+ }
291
+ static {
292
+ this.ɵfac = i0.ɵɵngDeclareFactory({
293
+ minVersion: "12.0.0",
294
+ version: "22.2.3",
295
+ ngImport: i0,
296
+ type: AlertService,
297
+ deps: [{ token: i1$6.MatSnackBar }],
298
+ target: i0.ɵɵFactoryTarget.Injectable
299
+ });
300
+ }
301
+ static {
302
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
303
+ minVersion: "12.0.0",
304
+ version: "22.2.3",
305
+ ngImport: i0,
306
+ type: AlertService,
307
+ providedIn: "root"
308
+ });
309
+ }
310
+ };
311
+ i0.ɵɵngDeclareClassMetadata({
312
+ minVersion: "12.0.0",
313
+ version: "22.2.3",
314
+ ngImport: i0,
315
+ type: AlertService,
316
+ decorators: [{
317
+ type: Injectable,
318
+ args: [{ providedIn: "root" }]
319
+ }],
320
+ ctorParameters: () => [{ type: i1$6.MatSnackBar }]
321
+ });
322
+ var FormValidatorService = class FormValidatorService {
323
+ constructor() {}
324
+ isFieldValid(field, formGroup, firstAttempt) {
325
+ return !formGroup.get(field).valid && formGroup.get(field).touched || !formGroup.get(field).valid && formGroup.get(field).untouched && firstAttempt;
326
+ }
327
+ getErrorMessage(field, formGroup, errorMessages, errorField) {
328
+ const error = Object.keys(formGroup.get(field)?.errors ?? {});
329
+ return error.length > 0 ? errorMessages[errorField || field][error[0]] ? errorMessages[errorField || field][error[0]] : "" : "";
330
+ }
331
+ static {
332
+ this.ɵfac = i0.ɵɵngDeclareFactory({
333
+ minVersion: "12.0.0",
334
+ version: "22.2.3",
335
+ ngImport: i0,
336
+ type: FormValidatorService,
337
+ deps: [],
338
+ target: i0.ɵɵFactoryTarget.Injectable
339
+ });
340
+ }
341
+ static {
342
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
343
+ minVersion: "12.0.0",
344
+ version: "22.2.3",
345
+ ngImport: i0,
346
+ type: FormValidatorService,
347
+ providedIn: "root"
348
+ });
349
+ }
350
+ };
351
+ i0.ɵɵngDeclareClassMetadata({
352
+ minVersion: "12.0.0",
353
+ version: "22.2.3",
354
+ ngImport: i0,
355
+ type: FormValidatorService,
356
+ decorators: [{
357
+ type: Injectable,
358
+ args: [{ providedIn: "root" }]
359
+ }],
360
+ ctorParameters: () => []
361
+ });
362
+ var EnvironmentService = class EnvironmentService {
363
+ constructor() {
364
+ this.environment = {};
365
+ }
366
+ init(environment) {
367
+ this.environment = environment;
368
+ }
369
+ get() {
370
+ return this.environment;
371
+ }
372
+ static {
373
+ this.ɵfac = i0.ɵɵngDeclareFactory({
374
+ minVersion: "12.0.0",
375
+ version: "22.2.3",
376
+ ngImport: i0,
377
+ type: EnvironmentService,
378
+ deps: [],
379
+ target: i0.ɵɵFactoryTarget.Injectable
380
+ });
381
+ }
382
+ static {
383
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
384
+ minVersion: "12.0.0",
385
+ version: "22.2.3",
386
+ ngImport: i0,
387
+ type: EnvironmentService,
388
+ providedIn: "root"
389
+ });
390
+ }
391
+ };
392
+ i0.ɵɵngDeclareClassMetadata({
393
+ minVersion: "12.0.0",
394
+ version: "22.2.3",
395
+ ngImport: i0,
396
+ type: EnvironmentService,
397
+ decorators: [{
398
+ type: Injectable,
399
+ args: [{ providedIn: "root" }]
400
+ }]
401
+ });
402
+ var DocumentViewerComponent = class DocumentViewerComponent {
403
+ constructor() {
404
+ this.remove = new EventEmitter();
405
+ }
406
+ ngOnInit() {
407
+ this.initData();
408
+ }
409
+ removeFile() {
410
+ this.remove.emit();
411
+ }
412
+ initData() {
413
+ if (this.file) {
414
+ var ext = this.getFileExtension(this.file);
415
+ if (ext === "ppt" || ext === "pptx" || ext === "doc" || ext === "docx" || ext === "xls" || ext === "xlsx") this.viewerType = "office";
416
+ else if (ext === "jpg" || ext === "jpeg" || ext === "png" || ext === "gif") this.viewerType = "image";
417
+ else if (ext === "pdf") this.viewerType = "pdf";
418
+ else this.viewerType = null;
419
+ }
420
+ }
421
+ get fileName() {
422
+ if (this.file) {
423
+ let nameArray = this.file.split("/");
424
+ if (nameArray.length === 2) return nameArray[1];
425
+ return nameArray[0];
426
+ }
427
+ return "";
428
+ }
429
+ getFileExtension(file) {
430
+ return file.split(".").pop();
431
+ }
432
+ static {
433
+ this.ɵfac = i0.ɵɵngDeclareFactory({
434
+ minVersion: "12.0.0",
435
+ version: "22.2.3",
436
+ ngImport: i0,
437
+ type: DocumentViewerComponent,
438
+ deps: [],
439
+ target: i0.ɵɵFactoryTarget.Component
440
+ });
441
+ }
442
+ static {
443
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
444
+ minVersion: "14.0.0",
445
+ version: "22.2.3",
446
+ type: DocumentViewerComponent,
447
+ isStandalone: false,
448
+ selector: "app-document-viewer",
449
+ inputs: {
450
+ config: "config",
451
+ file: "file",
452
+ fileUrl: "fileUrl",
453
+ disableEdit: "disableEdit"
454
+ },
455
+ outputs: { remove: "remove" },
456
+ ngImport: i0,
457
+ template: "<mat-card *ngIf=\"viewerType === 'image'\">\n <img [ngStyle]=\"config.imageStyle\" mat-card-image [src]=\"fileUrl\" style=\"object-fit: contain;\" />\n <mat-card-actions>\n <button type=\"button\" mat-raised-button (click)=\"removeFile()\" *ngIf=\"!disableEdit && !config.hideRemove\">\n Remove\n </button>\n </mat-card-actions>\n</mat-card>\n\n<div class=\"mat-elevation-z1 p-4\" *ngIf=\"viewerType !== 'image'\">\n <a [href]=\"fileUrl\" target=\"_blank\">{{fileName}}</a>\n <ngx-doc-viewer [ngStyle]=\"config.viewerStyle\" *ngIf=\"viewerType !== null\" [url]=\"fileUrl\" [viewer]=\"viewerType\">\n </ngx-doc-viewer>\n <div class=\"mt-2\" *ngIf=\"!config.hideRemove\">\n <button type=\"button\" mat-raised-button (click)=\"removeFile()\" *ngIf=\"!disableEdit\">\n Remove\n </button>\n </div>\n</div>",
458
+ styles: [".image-fit{height:100%;width:100%;object-fit:cover}\n"],
459
+ dependencies: [
460
+ {
461
+ kind: "directive",
462
+ type: i1$5.NgIf,
463
+ selector: "[ngIf]",
464
+ inputs: [
465
+ "ngIf",
466
+ "ngIfThen",
467
+ "ngIfElse"
468
+ ]
469
+ },
470
+ {
471
+ kind: "directive",
472
+ type: i1$5.NgStyle,
473
+ selector: "[ngStyle]",
474
+ inputs: ["ngStyle"]
475
+ },
476
+ {
477
+ kind: "component",
478
+ type: i2$1.NgxDocViewerComponent,
479
+ selector: "ngx-doc-viewer",
480
+ inputs: [
481
+ "url",
482
+ "queryParams",
483
+ "viewerUrl",
484
+ "googleCheckInterval",
485
+ "googleMaxChecks",
486
+ "disableContent",
487
+ "googleCheckContentLoaded",
488
+ "viewer",
489
+ "overrideLocalhost"
490
+ ],
491
+ outputs: ["loaded"]
492
+ },
493
+ {
494
+ kind: "component",
495
+ type: i2$2.MatButton,
496
+ selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ",
497
+ inputs: ["matButton"],
498
+ exportAs: ["matButton", "matAnchor"]
499
+ },
500
+ {
501
+ kind: "component",
502
+ type: i4$1.MatCard,
503
+ selector: "mat-card",
504
+ inputs: ["appearance"],
505
+ exportAs: ["matCard"]
506
+ },
507
+ {
508
+ kind: "directive",
509
+ type: i4$1.MatCardActions,
510
+ selector: "mat-card-actions",
511
+ inputs: ["align"],
512
+ exportAs: ["matCardActions"]
513
+ },
514
+ {
515
+ kind: "directive",
516
+ type: i4$1.MatCardImage,
517
+ selector: "[mat-card-image], [matCardImage]"
518
+ }
519
+ ],
520
+ changeDetection: i0.ChangeDetectionStrategy.Eager
521
+ });
522
+ }
523
+ };
524
+ i0.ɵɵngDeclareClassMetadata({
525
+ minVersion: "12.0.0",
526
+ version: "22.2.3",
527
+ ngImport: i0,
528
+ type: DocumentViewerComponent,
529
+ decorators: [{
530
+ type: Component,
531
+ args: [{
532
+ selector: "app-document-viewer",
533
+ changeDetection: ChangeDetectionStrategy.Eager,
534
+ standalone: false,
535
+ template: "<mat-card *ngIf=\"viewerType === 'image'\">\n <img [ngStyle]=\"config.imageStyle\" mat-card-image [src]=\"fileUrl\" style=\"object-fit: contain;\" />\n <mat-card-actions>\n <button type=\"button\" mat-raised-button (click)=\"removeFile()\" *ngIf=\"!disableEdit && !config.hideRemove\">\n Remove\n </button>\n </mat-card-actions>\n</mat-card>\n\n<div class=\"mat-elevation-z1 p-4\" *ngIf=\"viewerType !== 'image'\">\n <a [href]=\"fileUrl\" target=\"_blank\">{{fileName}}</a>\n <ngx-doc-viewer [ngStyle]=\"config.viewerStyle\" *ngIf=\"viewerType !== null\" [url]=\"fileUrl\" [viewer]=\"viewerType\">\n </ngx-doc-viewer>\n <div class=\"mt-2\" *ngIf=\"!config.hideRemove\">\n <button type=\"button\" mat-raised-button (click)=\"removeFile()\" *ngIf=\"!disableEdit\">\n Remove\n </button>\n </div>\n</div>",
536
+ styles: [".image-fit{height:100%;width:100%;object-fit:cover}\n"]
537
+ }]
538
+ }],
539
+ ctorParameters: () => [],
540
+ propDecorators: {
541
+ config: [{ type: Input }],
542
+ file: [{ type: Input }],
543
+ fileUrl: [{ type: Input }],
544
+ disableEdit: [{ type: Input }],
545
+ remove: [{ type: Output }]
546
+ }
547
+ });
548
+ var LogLevel;
549
+ (function(LogLevel) {
550
+ LogLevel[LogLevel["Off"] = 0] = "Off";
551
+ LogLevel[LogLevel["Error"] = 1] = "Error";
552
+ LogLevel[LogLevel["Warning"] = 2] = "Warning";
553
+ LogLevel[LogLevel["Info"] = 3] = "Info";
554
+ LogLevel[LogLevel["Debug"] = 4] = "Debug";
555
+ })(LogLevel || (LogLevel = {}));
556
+ var Logger = class Logger {
557
+ static {
558
+ this.level = LogLevel.Debug;
559
+ }
560
+ static {
561
+ this.outputs = [];
562
+ }
563
+ static enableProductionMode() {
564
+ Logger.level = LogLevel.Warning;
565
+ }
566
+ constructor(source) {
567
+ this.source = source;
568
+ }
569
+ debug(...objects) {
570
+ this.log(console.log, LogLevel.Debug, objects);
571
+ }
572
+ info(...objects) {
573
+ this.log(console.info, LogLevel.Info, objects);
574
+ }
575
+ warn(...objects) {
576
+ this.log(console.warn, LogLevel.Warning, objects);
577
+ }
578
+ error(...objects) {
579
+ this.log(console.error, LogLevel.Error, objects);
580
+ }
581
+ log(func, level, objects) {
582
+ if (level <= Logger.level) {
583
+ const log = this.source ? ["[" + this.source + "]"].concat(objects) : objects;
584
+ func.apply(console, log);
585
+ Logger.outputs.forEach((output) => output.apply(output, [
586
+ this.source,
587
+ level,
588
+ ...objects
589
+ ]));
590
+ }
591
+ }
592
+ };
593
+ var TechlifyConfig = class {
594
+ constructor(data) {
595
+ this.projectKey = "";
596
+ this.environment = "";
597
+ this.authClientSecret = "";
598
+ this.authGrantType = "";
599
+ this.apiUrl = "";
600
+ this.isLogoutWhileApiGetsFailed = false;
601
+ this.loadFromMap(data);
602
+ }
603
+ loadFromMap(data) {
604
+ this.projectKey = data.projectKey;
605
+ this.environment = data.environment;
606
+ this.authClientSecret = data.authClientSecret;
607
+ this.authGrantType = data.authGrantType;
608
+ this.apiUrl = data.apiUrl;
609
+ this.storage = data?.storage;
610
+ this.rawConfigs = data;
611
+ this.isLogoutWhileApiGetsFailed = data?.isLogoutWhileApiGetsFailed;
612
+ }
613
+ };
614
+ var ConfigService = class ConfigService {
615
+ static {
616
+ this.BASE_CREDENTIALS = "credentials";
617
+ }
618
+ constructor(config) {
619
+ this.config = config;
620
+ }
621
+ getConfigsRaw() {
622
+ return this.config.rawConfigs;
623
+ }
624
+ getProjectKey() {
625
+ return this.config.projectKey;
626
+ }
627
+ getApiUrl() {
628
+ return this.config.apiUrl;
629
+ }
630
+ getAuthClientSecret() {
631
+ return this.config.authClientSecret;
632
+ }
633
+ getStorage() {
634
+ return this.config.storage ? this.config.storage : localStorage;
635
+ }
636
+ getAuthGrantType() {
637
+ return this.config.authGrantType;
638
+ }
639
+ getCredentialsKey() {
640
+ return this.config.projectKey + "_" + ConfigService.BASE_CREDENTIALS;
641
+ }
642
+ static {
643
+ this.ɵfac = i0.ɵɵngDeclareFactory({
644
+ minVersion: "12.0.0",
645
+ version: "22.2.3",
646
+ ngImport: i0,
647
+ type: ConfigService,
648
+ deps: [{ token: TechlifyConfig }],
649
+ target: i0.ɵɵFactoryTarget.Injectable
650
+ });
651
+ }
652
+ static {
653
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
654
+ minVersion: "12.0.0",
655
+ version: "22.2.3",
656
+ ngImport: i0,
657
+ type: ConfigService,
658
+ providedIn: "root"
659
+ });
660
+ }
661
+ };
662
+ i0.ɵɵngDeclareClassMetadata({
663
+ minVersion: "12.0.0",
664
+ version: "22.2.3",
665
+ ngImport: i0,
666
+ type: ConfigService,
667
+ decorators: [{
668
+ type: Injectable,
669
+ args: [{ providedIn: "root" }]
670
+ }],
671
+ ctorParameters: () => [{ type: TechlifyConfig }]
672
+ });
673
+ var ErrorHandlerService = class ErrorHandlerService {
674
+ constructor(alerter, config) {
675
+ this.alerter = alerter;
676
+ this.config = config;
677
+ }
678
+ handleError(errorResponse, msg = "") {
679
+ const errors = [];
680
+ if (errorResponse?.error) {
681
+ if (errorResponse?.error?.errors) {
682
+ for (const property in errorResponse.error.errors) if (errorResponse.error.errors?.hasOwnProperty(property)) (errorResponse?.error?.errors[property]).forEach((error) => errors.push(error));
683
+ }
684
+ if (errors.length === 0) errors.push(errorResponse.error.message ? errorResponse.error.message : errorResponse.error?.error);
685
+ }
686
+ var errMessage = errors.length ? errors[0] : msg;
687
+ this.alerter.addAlert("Error: " + errMessage, "warning");
688
+ if (errorResponse.status == 401) this.clearStorage();
689
+ if (errorResponse.status == 403 && this.config.isLogoutWhileApiGetsFailed && !this.isAuthURL(errorResponse?.url)) this.clearStorage();
690
+ }
691
+ clearStorage() {
692
+ sessionStorage.clear();
693
+ localStorage.clear();
694
+ location.reload();
695
+ }
696
+ isAuthURL(urlStr) {
697
+ return new URL(urlStr).pathname == "/public/oauth/token";
698
+ }
699
+ static {
700
+ this.ɵfac = i0.ɵɵngDeclareFactory({
701
+ minVersion: "12.0.0",
702
+ version: "22.2.3",
703
+ ngImport: i0,
704
+ type: ErrorHandlerService,
705
+ deps: [{ token: AlertService }, { token: TechlifyConfig }],
706
+ target: i0.ɵɵFactoryTarget.Injectable
707
+ });
708
+ }
709
+ static {
710
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
711
+ minVersion: "12.0.0",
712
+ version: "22.2.3",
713
+ ngImport: i0,
714
+ type: ErrorHandlerService,
715
+ providedIn: "root"
716
+ });
717
+ }
718
+ };
719
+ i0.ɵɵngDeclareClassMetadata({
720
+ minVersion: "12.0.0",
721
+ version: "22.2.3",
722
+ ngImport: i0,
723
+ type: ErrorHandlerService,
724
+ decorators: [{
725
+ type: Injectable,
726
+ args: [{ providedIn: "root" }]
727
+ }],
728
+ ctorParameters: () => [{ type: AlertService }, { type: TechlifyConfig }]
729
+ });
730
+ new Logger("ErrorHandlerInterceptor");
731
+ var ErrorHandlerInterceptor = class ErrorHandlerInterceptor {
732
+ constructor(configService, errorHandler, alertService) {
733
+ this.configService = configService;
734
+ this.errorHandler = errorHandler;
735
+ this.alertService = alertService;
736
+ }
737
+ intercept(request, next) {
738
+ return next.handle(request).pipe(catchError$1((error) => this.handleError(error)));
739
+ }
740
+ handleError(error) {
741
+ if (this.checkNoNetworkConnection(error)) {
742
+ this.alertService.addAlert("Internet connection not available, try later", "warning");
743
+ return throwError(error);
744
+ }
745
+ try {
746
+ this.errorHandler.handleError(error, "Unexpected Server Error, try later or contact service team");
747
+ } catch (e) {
748
+ console.log("Unable to handle server error", e);
749
+ }
750
+ return throwError(error);
751
+ }
752
+ checkNoNetworkConnection(error) {
753
+ return error instanceof HttpErrorResponse && !error.headers.keys().length && !error.ok && !error.status && !error.error.loaded && !error.error.total;
754
+ }
755
+ static {
756
+ this.ɵfac = i0.ɵɵngDeclareFactory({
757
+ minVersion: "12.0.0",
758
+ version: "22.2.3",
759
+ ngImport: i0,
760
+ type: ErrorHandlerInterceptor,
761
+ deps: [
762
+ { token: ConfigService },
763
+ { token: ErrorHandlerService },
764
+ { token: AlertService }
765
+ ],
766
+ target: i0.ɵɵFactoryTarget.Injectable
767
+ });
768
+ }
769
+ static {
770
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
771
+ minVersion: "12.0.0",
772
+ version: "22.2.3",
773
+ ngImport: i0,
774
+ type: ErrorHandlerInterceptor,
775
+ providedIn: "root"
776
+ });
777
+ }
778
+ };
779
+ i0.ɵɵngDeclareClassMetadata({
780
+ minVersion: "12.0.0",
781
+ version: "22.2.3",
782
+ ngImport: i0,
783
+ type: ErrorHandlerInterceptor,
784
+ decorators: [{
785
+ type: Injectable,
786
+ args: [{ providedIn: "root" }]
787
+ }],
788
+ ctorParameters: () => [
789
+ { type: ConfigService },
790
+ { type: ErrorHandlerService },
791
+ { type: AlertService }
792
+ ]
793
+ });
794
+ const log$1 = new Logger("HttpCacheService");
795
+ var HttpCacheService = class HttpCacheService {
796
+ constructor(configService) {
797
+ this.configService = configService;
798
+ this.cachedData = {};
799
+ this.storage = this.configService.getStorage();
800
+ this.cachePersistenceKey = this.configService.getProjectKey() + "_HTTP_CACHE";
801
+ this.loadCacheData();
802
+ }
803
+ setCacheData(url, data, lastUpdated) {
804
+ this.cachedData[url] = {
805
+ lastUpdated: lastUpdated || /* @__PURE__ */ new Date(),
806
+ data
807
+ };
808
+ log$1.debug(`Cache set for key: "${url}"`);
809
+ this.saveCacheData();
810
+ }
811
+ getCacheData(url) {
812
+ const cacheEntry = this.cachedData[url];
813
+ if (cacheEntry) {
814
+ log$1.debug(`Cache hit for key: "${url}"`);
815
+ return cacheEntry.data;
816
+ }
817
+ return null;
818
+ }
819
+ getHttpCacheEntry(url) {
820
+ return this.cachedData[url] || null;
821
+ }
822
+ clearCache(url) {
823
+ delete this.cachedData[url];
824
+ log$1.debug(`Cache cleared for key: "${url}"`);
825
+ this.saveCacheData();
826
+ }
827
+ cleanCache(expirationDate) {
828
+ if (expirationDate) Object(this.cachedData).keys.forEach((key) => {
829
+ if (expirationDate >= this.cachedData[key]?.lastUpdated) delete this.cachedData[key];
830
+ });
831
+ else this.cachedData = {};
832
+ this.saveCacheData();
833
+ }
834
+ setPersistence(persistence) {
835
+ this.cleanCache();
836
+ this.storage = persistence === "local" ? localStorage : persistence === "session" ? sessionStorage : null;
837
+ this.loadCacheData();
838
+ }
839
+ saveCacheData() {
840
+ if (this.storage) this.storage[this.cachePersistenceKey] = JSON.stringify(this.cachedData);
841
+ }
842
+ loadCacheData() {
843
+ const data = this.storage ? this.storage[this.cachePersistenceKey] : null;
844
+ this.cachedData = data ? JSON.parse(data) : {};
845
+ }
846
+ static {
847
+ this.ɵfac = i0.ɵɵngDeclareFactory({
848
+ minVersion: "12.0.0",
849
+ version: "22.2.3",
850
+ ngImport: i0,
851
+ type: HttpCacheService,
852
+ deps: [{ token: ConfigService }],
853
+ target: i0.ɵɵFactoryTarget.Injectable
854
+ });
855
+ }
856
+ static {
857
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
858
+ minVersion: "12.0.0",
859
+ version: "22.2.3",
860
+ ngImport: i0,
861
+ type: HttpCacheService,
862
+ providedIn: "root"
863
+ });
864
+ }
865
+ };
866
+ i0.ɵɵngDeclareClassMetadata({
867
+ minVersion: "12.0.0",
868
+ version: "22.2.3",
869
+ ngImport: i0,
870
+ type: HttpCacheService,
871
+ decorators: [{
872
+ type: Injectable,
873
+ args: [{ providedIn: "root" }]
874
+ }],
875
+ ctorParameters: () => [{ type: ConfigService }]
876
+ });
877
+ var CacheInterceptor = class CacheInterceptor {
878
+ constructor(httpCacheService) {
879
+ this.httpCacheService = httpCacheService;
880
+ this.forceUpdate = false;
881
+ }
882
+ configure(options) {
883
+ const instance = new CacheInterceptor(this.httpCacheService);
884
+ if (options && options.update) instance.forceUpdate = true;
885
+ return instance;
886
+ }
887
+ intercept(request, next) {
888
+ if (request.method !== "GET") return next.handle(request);
889
+ return new Observable((subscriber) => {
890
+ const cachedData = this.forceUpdate ? null : this.httpCacheService.getCacheData(request.urlWithParams);
891
+ if (cachedData !== null) {
892
+ subscriber.next(new HttpResponse(cachedData));
893
+ subscriber.complete();
894
+ } else next.handle(request).subscribe((event) => {
895
+ if (event instanceof HttpResponse) this.httpCacheService.setCacheData(request.urlWithParams, event);
896
+ subscriber.next(event);
897
+ }, (error) => subscriber.error(error), () => subscriber.complete());
898
+ });
899
+ }
900
+ static {
901
+ this.ɵfac = i0.ɵɵngDeclareFactory({
902
+ minVersion: "12.0.0",
903
+ version: "22.2.3",
904
+ ngImport: i0,
905
+ type: CacheInterceptor,
906
+ deps: [{ token: HttpCacheService }],
907
+ target: i0.ɵɵFactoryTarget.Injectable
908
+ });
909
+ }
910
+ static {
911
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
912
+ minVersion: "12.0.0",
913
+ version: "22.2.3",
914
+ ngImport: i0,
915
+ type: CacheInterceptor,
916
+ providedIn: "root"
917
+ });
918
+ }
919
+ };
920
+ i0.ɵɵngDeclareClassMetadata({
921
+ minVersion: "12.0.0",
922
+ version: "22.2.3",
923
+ ngImport: i0,
924
+ type: CacheInterceptor,
925
+ decorators: [{
926
+ type: Injectable,
927
+ args: [{ providedIn: "root" }]
928
+ }],
929
+ ctorParameters: () => [{ type: HttpCacheService }]
930
+ });
931
+ var ApiPrefixInterceptor = class ApiPrefixInterceptor {
932
+ constructor(configService) {
933
+ this.configService = configService;
934
+ }
935
+ intercept(request, next) {
936
+ if (!/^(http|https):/i.test(request.url)) request = request.clone({ url: this.configService.getApiUrl() + request.url });
937
+ return next.handle(request);
938
+ }
939
+ static {
940
+ this.ɵfac = i0.ɵɵngDeclareFactory({
941
+ minVersion: "12.0.0",
942
+ version: "22.2.3",
943
+ ngImport: i0,
944
+ type: ApiPrefixInterceptor,
945
+ deps: [{ token: ConfigService }],
946
+ target: i0.ɵɵFactoryTarget.Injectable
947
+ });
948
+ }
949
+ static {
950
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
951
+ minVersion: "12.0.0",
952
+ version: "22.2.3",
953
+ ngImport: i0,
954
+ type: ApiPrefixInterceptor,
955
+ providedIn: "root"
956
+ });
957
+ }
958
+ };
959
+ i0.ɵɵngDeclareClassMetadata({
960
+ minVersion: "12.0.0",
961
+ version: "22.2.3",
962
+ ngImport: i0,
963
+ type: ApiPrefixInterceptor,
964
+ decorators: [{
965
+ type: Injectable,
966
+ args: [{ providedIn: "root" }]
967
+ }],
968
+ ctorParameters: () => [{ type: ConfigService }]
969
+ });
970
+ var CredentialsService = class CredentialsService {
971
+ constructor(configService) {
972
+ this.configService = configService;
973
+ this._credentials = null;
974
+ }
975
+ get isAuthenticated() {
976
+ const token = this.credentials?.token?.access_token;
977
+ const expiration = this.credentials?.token?.expires_in;
978
+ if (!token || !expiration) return false;
979
+ return Date.now() <= parseInt(expiration);
980
+ }
981
+ get credentials() {
982
+ if (!this._credentials) this._credentials = JSON.parse(sessionStorage.getItem(this.configService.getCredentialsKey()) || localStorage.getItem(this.configService.getCredentialsKey()));
983
+ return this._credentials;
984
+ }
985
+ setCredentials(credentials, remember) {
986
+ this._credentials = credentials || null;
987
+ if (credentials) (remember ? localStorage : sessionStorage).setItem(this.configService.getCredentialsKey(), JSON.stringify(credentials));
988
+ else {
989
+ sessionStorage.clear();
990
+ localStorage.clear();
991
+ this._credentials = null;
992
+ }
993
+ }
994
+ getAccessToken() {
995
+ const expiration = this.credentials?.token?.expires_in || "";
996
+ const token = this.credentials?.token?.access_token || "";
997
+ if (!token || !expiration) return null;
998
+ if (Date.now() > parseInt(expiration)) {
999
+ this.setCredentials();
1000
+ return null;
1001
+ }
1002
+ return token;
1003
+ }
1004
+ getExpiration() {
1005
+ return this.credentials?.token?.expires_in || "";
1006
+ }
1007
+ getRefreshToken() {
1008
+ return this.credentials?.token?.refresh_token || "";
1009
+ }
1010
+ refresh() {
1011
+ this._credentials = null;
1012
+ return this;
1013
+ }
1014
+ static {
1015
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1016
+ minVersion: "12.0.0",
1017
+ version: "22.2.3",
1018
+ ngImport: i0,
1019
+ type: CredentialsService,
1020
+ deps: [{ token: ConfigService }],
1021
+ target: i0.ɵɵFactoryTarget.Injectable
1022
+ });
1023
+ }
1024
+ static {
1025
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
1026
+ minVersion: "12.0.0",
1027
+ version: "22.2.3",
1028
+ ngImport: i0,
1029
+ type: CredentialsService,
1030
+ providedIn: "root"
1031
+ });
1032
+ }
1033
+ };
1034
+ i0.ɵɵngDeclareClassMetadata({
1035
+ minVersion: "12.0.0",
1036
+ version: "22.2.3",
1037
+ ngImport: i0,
1038
+ type: CredentialsService,
1039
+ decorators: [{
1040
+ type: Injectable,
1041
+ args: [{ providedIn: "root" }]
1042
+ }],
1043
+ ctorParameters: () => [{ type: ConfigService }]
1044
+ });
1045
+ var TokenInterceptor = class TokenInterceptor {
1046
+ constructor(credentials) {
1047
+ this.credentials = credentials;
1048
+ }
1049
+ intercept(request, next) {
1050
+ request = request.clone({ setHeaders: { Authorization: `Bearer ${this.credentials.getAccessToken() || ""}` } });
1051
+ return next.handle(request);
1052
+ }
1053
+ static {
1054
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1055
+ minVersion: "12.0.0",
1056
+ version: "22.2.3",
1057
+ ngImport: i0,
1058
+ type: TokenInterceptor,
1059
+ deps: [{ token: CredentialsService }],
1060
+ target: i0.ɵɵFactoryTarget.Injectable
1061
+ });
1062
+ }
1063
+ static {
1064
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
1065
+ minVersion: "12.0.0",
1066
+ version: "22.2.3",
1067
+ ngImport: i0,
1068
+ type: TokenInterceptor,
1069
+ providedIn: "root"
1070
+ });
1071
+ }
1072
+ };
1073
+ i0.ɵɵngDeclareClassMetadata({
1074
+ minVersion: "12.0.0",
1075
+ version: "22.2.3",
1076
+ ngImport: i0,
1077
+ type: TokenInterceptor,
1078
+ decorators: [{
1079
+ type: Injectable,
1080
+ args: [{ providedIn: "root" }]
1081
+ }],
1082
+ ctorParameters: () => [{ type: CredentialsService }]
1083
+ });
1084
+ var HeaderInterceptor = class HeaderInterceptor {
1085
+ intercept(request, next) {
1086
+ request = request.clone({ setHeaders: { "Content-Type": request.headers.get("Content-Type") || "application/json" } });
1087
+ return next.handle(request);
1088
+ }
1089
+ static {
1090
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1091
+ minVersion: "12.0.0",
1092
+ version: "22.2.3",
1093
+ ngImport: i0,
1094
+ type: HeaderInterceptor,
1095
+ deps: [],
1096
+ target: i0.ɵɵFactoryTarget.Injectable
1097
+ });
1098
+ }
1099
+ static {
1100
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
1101
+ minVersion: "12.0.0",
1102
+ version: "22.2.3",
1103
+ ngImport: i0,
1104
+ type: HeaderInterceptor,
1105
+ providedIn: "root"
1106
+ });
1107
+ }
1108
+ };
1109
+ i0.ɵɵngDeclareClassMetadata({
1110
+ minVersion: "12.0.0",
1111
+ version: "22.2.3",
1112
+ ngImport: i0,
1113
+ type: HeaderInterceptor,
1114
+ decorators: [{
1115
+ type: Injectable,
1116
+ args: [{ providedIn: "root" }]
1117
+ }]
1118
+ });
1119
+ var HttpInterceptorHandler = class {
1120
+ constructor(next, interceptor) {
1121
+ this.next = next;
1122
+ this.interceptor = interceptor;
1123
+ }
1124
+ handle(request) {
1125
+ return this.interceptor.intercept(request, this.next);
1126
+ }
1127
+ };
1128
+ const HTTP_DYNAMIC_INTERCEPTORS = new InjectionToken("HTTP_DYNAMIC_INTERCEPTORS");
1129
+ var HttpService = class HttpService extends HttpClient {
1130
+ constructor(httpHandler, injector, interceptors = []) {
1131
+ super(httpHandler);
1132
+ this.httpHandler = httpHandler;
1133
+ this.injector = injector;
1134
+ this.interceptors = interceptors;
1135
+ if (!this.interceptors) this.interceptors = [
1136
+ this.injector.get(ApiPrefixInterceptor),
1137
+ this.injector.get(HeaderInterceptor),
1138
+ this.injector.get(TokenInterceptor),
1139
+ this.injector.get(ErrorHandlerInterceptor)
1140
+ ];
1141
+ }
1142
+ cache(forceUpdate) {
1143
+ const cacheInterceptor = this.injector.get(CacheInterceptor).configure({ update: forceUpdate });
1144
+ return this.addInterceptor(cacheInterceptor);
1145
+ }
1146
+ skipErrorHandler() {
1147
+ return this.removeInterceptor(ErrorHandlerInterceptor);
1148
+ }
1149
+ skipApiPrefix() {
1150
+ return this.removeInterceptor(ApiPrefixInterceptor);
1151
+ }
1152
+ skipToken() {
1153
+ return this.removeInterceptor(TokenInterceptor);
1154
+ }
1155
+ skipHeader() {
1156
+ return this.removeInterceptor(HeaderInterceptor);
1157
+ }
1158
+ request(method, url, options) {
1159
+ const handler = this.interceptors.reduceRight((next, interceptor) => new HttpInterceptorHandler(next, interceptor), this.httpHandler);
1160
+ return new HttpClient(handler).request(method, url, options);
1161
+ }
1162
+ removeInterceptor(interceptorType) {
1163
+ return new HttpService(this.httpHandler, this.injector, this.interceptors.filter((i) => !(i instanceof interceptorType)));
1164
+ }
1165
+ addInterceptor(interceptor) {
1166
+ return new HttpService(this.httpHandler, this.injector, this.interceptors.concat([interceptor]));
1167
+ }
1168
+ static {
1169
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1170
+ minVersion: "12.0.0",
1171
+ version: "22.2.3",
1172
+ ngImport: i0,
1173
+ type: HttpService,
1174
+ deps: [
1175
+ { token: i1$4.HttpHandler },
1176
+ { token: i0.Injector },
1177
+ {
1178
+ token: HTTP_DYNAMIC_INTERCEPTORS,
1179
+ optional: true
1180
+ }
1181
+ ],
1182
+ target: i0.ɵɵFactoryTarget.Injectable
1183
+ });
1184
+ }
1185
+ static {
1186
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
1187
+ minVersion: "12.0.0",
1188
+ version: "22.2.3",
1189
+ ngImport: i0,
1190
+ type: HttpService,
1191
+ providedIn: "root"
1192
+ });
1193
+ }
1194
+ };
1195
+ i0.ɵɵngDeclareClassMetadata({
1196
+ minVersion: "12.0.0",
1197
+ version: "22.2.3",
1198
+ ngImport: i0,
1199
+ type: HttpService,
1200
+ decorators: [{
1201
+ type: Injectable,
1202
+ args: [{ providedIn: "root" }]
1203
+ }],
1204
+ ctorParameters: () => [
1205
+ { type: i1$4.HttpHandler },
1206
+ { type: i0.Injector },
1207
+ {
1208
+ type: void 0,
1209
+ decorators: [{ type: Optional }, {
1210
+ type: Inject,
1211
+ args: [HTTP_DYNAMIC_INTERCEPTORS]
1212
+ }]
1213
+ }
1214
+ ]
1215
+ });
1216
+ var FileDropperComponent = class FileDropperComponent {
1217
+ constructor(alertService) {
1218
+ this.alertService = alertService;
1219
+ this.fileArray = [];
1220
+ this.fileChanged = new EventEmitter();
1221
+ this.border = "1px dashed #989898";
1222
+ }
1223
+ ngOnInit() {
1224
+ this.isSingleMode = !Boolean(this.config.multiple);
1225
+ }
1226
+ dragEnter(event) {
1227
+ event.target.style.background = this.config.dragColor || "#c0c0c0";
1228
+ event.target.style.border = "1px dashed black";
1229
+ event.preventDefault();
1230
+ }
1231
+ dragOver(event) {
1232
+ event.preventDefault();
1233
+ }
1234
+ dragLeave(event) {
1235
+ event.target.style.background = "";
1236
+ event.target.style.border = this.border;
1237
+ event.preventDefault();
1238
+ }
1239
+ dropEvent(event) {
1240
+ event.target.style.background = "";
1241
+ event.target.style.border = this.border;
1242
+ const droppedFiles = event.dataTransfer.files;
1243
+ if (droppedFiles.length > 0) {
1244
+ const fileArray = Array.from(droppedFiles);
1245
+ this.addFiles(fileArray);
1246
+ }
1247
+ event.preventDefault();
1248
+ }
1249
+ onFileChange(event) {
1250
+ if (event.target.files && event.target.files.length) {
1251
+ const fileArray = Array.from(event.target.files);
1252
+ this.addFiles(fileArray);
1253
+ const fileInput = document.getElementById(this.config.fileId);
1254
+ fileInput.value = "";
1255
+ }
1256
+ }
1257
+ addFiles(fileArray) {
1258
+ if (!this.isSingleMode) {
1259
+ fileArray.forEach((file) => {
1260
+ this.fileArray = this.fileArray.filter((item) => item.name !== file.name);
1261
+ if (this.fileSizeAllowed(file)) this.fileArray.push(file);
1262
+ });
1263
+ this.fileArray.sort(this.sortFiles);
1264
+ this.fileChanged.emit(this.fileArray);
1265
+ } else if (this.fileArray.length === 0) {
1266
+ if (this.fileSizeAllowed(fileArray[0])) {
1267
+ this.fileArray.push(fileArray[0]);
1268
+ this.fileArray.sort(this.sortFiles);
1269
+ this.fileChanged.emit(this.fileArray);
1270
+ }
1271
+ }
1272
+ this.fileArray = [];
1273
+ }
1274
+ sortFiles(a, b) {
1275
+ const nameA = a.name.toUpperCase();
1276
+ const nameB = b.name.toUpperCase();
1277
+ if (nameA < nameB) return -1;
1278
+ if (nameA > nameB) return 1;
1279
+ return 0;
1280
+ }
1281
+ fileSizeAllowed(file) {
1282
+ if (!Boolean(this.config.maxSize)) return true;
1283
+ else if (file.size / 1048576 < this.config.maxSize) return true;
1284
+ else {
1285
+ this.alertService.addAlert(`The size of the file exceeds the limit ${this.config.maxSize} MB, kindly upload a file with size ${this.config.maxSize} MB or below`, "warn");
1286
+ return false;
1287
+ }
1288
+ }
1289
+ clickEvent(event) {
1290
+ if (!(this.isSingleMode && this.fileArray.length > 0)) document.getElementById(this.config.fileId).click();
1291
+ event.preventDefault();
1292
+ }
1293
+ static {
1294
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1295
+ minVersion: "12.0.0",
1296
+ version: "22.2.3",
1297
+ ngImport: i0,
1298
+ type: FileDropperComponent,
1299
+ deps: [{ token: AlertService }],
1300
+ target: i0.ɵɵFactoryTarget.Component
1301
+ });
1302
+ }
1303
+ static {
1304
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
1305
+ minVersion: "14.0.0",
1306
+ version: "22.2.3",
1307
+ type: FileDropperComponent,
1308
+ isStandalone: false,
1309
+ selector: "app-file-dropper",
1310
+ inputs: {
1311
+ fileArray: "fileArray",
1312
+ config: "config",
1313
+ styles: "styles"
1314
+ },
1315
+ outputs: { fileChanged: "fileChanged" },
1316
+ ngImport: i0,
1317
+ template: "<div\n id=\"{{ config.containerId }}\"\n [ngStyle]=\"config.styles\"\n class=\"file-border\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n (dragover)=\"dragOver($event)\"\n (click)=\"clickEvent($event)\"\n (drop)=\"dropEvent($event)\"\n [ngClass]=\"{ 'disable-div': isSingleMode && fileArray.length > 0 }\"\n>\n <div class=\"w-100 h-100 d-flex flex-column justify-content-center align-items-center\">\n <div>\n <span>Drag and drop file</span>\n </div>\n\n <div class=\"mt-2\">\n <span>or</span>\n </div>\n\n <div class=\"mt-2\">\n <button mat-raised-button color=\"primary\" type=\"button\">Browse</button>\n </div>\n\n <div class=\"mt-4\">\n <span>Supported files</span> <span *ngIf=\"config.acceptFileText\" class=\"mr-2\">: {{ config.acceptFileText }}</span>\n </div>\n </div>\n</div>\n<input\n type=\"file\"\n id=\"{{ config.fileId }}\"\n [accept]=\"config.acceptFile\"\n (change)=\"onFileChange($event)\"\n [multiple]=\"config.multiple === true\"\n style=\"display:none\"\n/>\n",
1318
+ styles: [".disable-div{cursor:not-allowed}.file-border{border:1px dashed #989898}\n"],
1319
+ dependencies: [
1320
+ {
1321
+ kind: "directive",
1322
+ type: i1$5.NgClass,
1323
+ selector: "[ngClass]",
1324
+ inputs: ["class", "ngClass"]
1325
+ },
1326
+ {
1327
+ kind: "directive",
1328
+ type: i1$5.NgIf,
1329
+ selector: "[ngIf]",
1330
+ inputs: [
1331
+ "ngIf",
1332
+ "ngIfThen",
1333
+ "ngIfElse"
1334
+ ]
1335
+ },
1336
+ {
1337
+ kind: "directive",
1338
+ type: i1$5.NgStyle,
1339
+ selector: "[ngStyle]",
1340
+ inputs: ["ngStyle"]
1341
+ },
1342
+ {
1343
+ kind: "component",
1344
+ type: i2$2.MatButton,
1345
+ selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ",
1346
+ inputs: ["matButton"],
1347
+ exportAs: ["matButton", "matAnchor"]
1348
+ }
1349
+ ],
1350
+ changeDetection: i0.ChangeDetectionStrategy.Eager
1351
+ });
1352
+ }
1353
+ };
1354
+ i0.ɵɵngDeclareClassMetadata({
1355
+ minVersion: "12.0.0",
1356
+ version: "22.2.3",
1357
+ ngImport: i0,
1358
+ type: FileDropperComponent,
1359
+ decorators: [{
1360
+ type: Component,
1361
+ args: [{
1362
+ selector: "app-file-dropper",
1363
+ changeDetection: ChangeDetectionStrategy.Eager,
1364
+ standalone: false,
1365
+ template: "<div\n id=\"{{ config.containerId }}\"\n [ngStyle]=\"config.styles\"\n class=\"file-border\"\n (dragleave)=\"dragLeave($event)\"\n (dragenter)=\"dragEnter($event)\"\n (dragover)=\"dragOver($event)\"\n (click)=\"clickEvent($event)\"\n (drop)=\"dropEvent($event)\"\n [ngClass]=\"{ 'disable-div': isSingleMode && fileArray.length > 0 }\"\n>\n <div class=\"w-100 h-100 d-flex flex-column justify-content-center align-items-center\">\n <div>\n <span>Drag and drop file</span>\n </div>\n\n <div class=\"mt-2\">\n <span>or</span>\n </div>\n\n <div class=\"mt-2\">\n <button mat-raised-button color=\"primary\" type=\"button\">Browse</button>\n </div>\n\n <div class=\"mt-4\">\n <span>Supported files</span> <span *ngIf=\"config.acceptFileText\" class=\"mr-2\">: {{ config.acceptFileText }}</span>\n </div>\n </div>\n</div>\n<input\n type=\"file\"\n id=\"{{ config.fileId }}\"\n [accept]=\"config.acceptFile\"\n (change)=\"onFileChange($event)\"\n [multiple]=\"config.multiple === true\"\n style=\"display:none\"\n/>\n",
1366
+ styles: [".disable-div{cursor:not-allowed}.file-border{border:1px dashed #989898}\n"]
1367
+ }]
1368
+ }],
1369
+ ctorParameters: () => [{ type: AlertService }],
1370
+ propDecorators: {
1371
+ fileArray: [{ type: Input }],
1372
+ config: [{ type: Input }],
1373
+ fileChanged: [{ type: Output }],
1374
+ styles: [{ type: Input }]
1375
+ }
1376
+ });
1377
+ var FormConfigurationForFormComponent = class FormConfigurationForFormComponent {
1378
+ constructor(router) {
1379
+ this.router = router;
1380
+ }
1381
+ openForm() {
1382
+ this.router.navigate(["/form-configuration-field-form", this.formCode]);
1383
+ }
1384
+ static {
1385
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1386
+ minVersion: "12.0.0",
1387
+ version: "22.2.3",
1388
+ ngImport: i0,
1389
+ type: FormConfigurationForFormComponent,
1390
+ deps: [{ token: i1$3.Router }],
1391
+ target: i0.ɵɵFactoryTarget.Component
1392
+ });
1393
+ }
1394
+ static {
1395
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
1396
+ minVersion: "14.0.0",
1397
+ version: "22.2.3",
1398
+ type: FormConfigurationForFormComponent,
1399
+ isStandalone: false,
1400
+ selector: "app-form-configuration-for-form",
1401
+ inputs: { formCode: "formCode" },
1402
+ ngImport: i0,
1403
+ template: "<mat-icon role='button' matTooltip=\"Form Configuration\" (click)=\"openForm()\">settings</mat-icon>",
1404
+ dependencies: [{
1405
+ kind: "component",
1406
+ type: i1$7.MatIcon,
1407
+ selector: "mat-icon",
1408
+ inputs: [
1409
+ "color",
1410
+ "inline",
1411
+ "svgIcon",
1412
+ "fontSet",
1413
+ "fontIcon"
1414
+ ],
1415
+ exportAs: ["matIcon"]
1416
+ }, {
1417
+ kind: "directive",
1418
+ type: i3$1.MatTooltip,
1419
+ selector: "[matTooltip]",
1420
+ inputs: [
1421
+ "matTooltipPosition",
1422
+ "matTooltipPositionAtOrigin",
1423
+ "matTooltipDisabled",
1424
+ "matTooltipShowDelay",
1425
+ "matTooltipHideDelay",
1426
+ "matTooltipTouchGestures",
1427
+ "matTooltip",
1428
+ "matTooltipClass"
1429
+ ],
1430
+ exportAs: ["matTooltip"]
1431
+ }],
1432
+ changeDetection: i0.ChangeDetectionStrategy.Eager
1433
+ });
1434
+ }
1435
+ };
1436
+ i0.ɵɵngDeclareClassMetadata({
1437
+ minVersion: "12.0.0",
1438
+ version: "22.2.3",
1439
+ ngImport: i0,
1440
+ type: FormConfigurationForFormComponent,
1441
+ decorators: [{
1442
+ type: Component,
1443
+ args: [{
1444
+ selector: "app-form-configuration-for-form",
1445
+ changeDetection: ChangeDetectionStrategy.Eager,
1446
+ standalone: false,
1447
+ template: "<mat-icon role='button' matTooltip=\"Form Configuration\" (click)=\"openForm()\">settings</mat-icon>"
1448
+ }]
1449
+ }],
1450
+ ctorParameters: () => [{ type: i1$3.Router }],
1451
+ propDecorators: { formCode: [{ type: Input }] }
1452
+ });
1453
+ var ReadMoreComponent = class ReadMoreComponent {
1454
+ constructor() {
1455
+ this.maxLength = 100;
1456
+ this.hideToggle = true;
1457
+ this.isCollapsed = true;
1458
+ }
1459
+ ngOnInit() {
1460
+ this.determineView();
1461
+ }
1462
+ toggleView() {
1463
+ this.isCollapsed = !this.isCollapsed;
1464
+ this.determineView();
1465
+ }
1466
+ determineView() {
1467
+ if (!this.text || this.text.length <= this.maxLength) {
1468
+ this.currentText = this.text;
1469
+ this.isCollapsed = false;
1470
+ this.hideToggle = true;
1471
+ return;
1472
+ }
1473
+ this.hideToggle = false;
1474
+ if (this.isCollapsed == true) this.currentText = this.text.substring(0, this.maxLength) + "...";
1475
+ else if (this.isCollapsed == false) this.currentText = this.text;
1476
+ }
1477
+ static {
1478
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1479
+ minVersion: "12.0.0",
1480
+ version: "22.2.3",
1481
+ ngImport: i0,
1482
+ type: ReadMoreComponent,
1483
+ deps: [],
1484
+ target: i0.ɵɵFactoryTarget.Component
1485
+ });
1486
+ }
1487
+ static {
1488
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
1489
+ minVersion: "14.0.0",
1490
+ version: "22.2.3",
1491
+ type: ReadMoreComponent,
1492
+ isStandalone: false,
1493
+ selector: "app-read-more",
1494
+ inputs: {
1495
+ text: "text",
1496
+ maxLength: "maxLength"
1497
+ },
1498
+ ngImport: i0,
1499
+ template: "<div [innerHTML]=\"currentText\"></div>\n<a href=\"javascript:;\" *ngIf=\"!hideToggle\" class=\"primary-color hoverable\" (click)=\"toggleView()\">Read\n {{ isCollapsed ? \"more\" : \"less\" }}</a>",
1500
+ styles: ["div.collapsed{height:250px;overflow:hidden}.primary-color{color:#009fdd!important}\n"],
1501
+ dependencies: [{
1502
+ kind: "directive",
1503
+ type: i1$5.NgIf,
1504
+ selector: "[ngIf]",
1505
+ inputs: [
1506
+ "ngIf",
1507
+ "ngIfThen",
1508
+ "ngIfElse"
1509
+ ]
1510
+ }],
1511
+ changeDetection: i0.ChangeDetectionStrategy.Eager
1512
+ });
1513
+ }
1514
+ };
1515
+ i0.ɵɵngDeclareClassMetadata({
1516
+ minVersion: "12.0.0",
1517
+ version: "22.2.3",
1518
+ ngImport: i0,
1519
+ type: ReadMoreComponent,
1520
+ decorators: [{
1521
+ type: Component,
1522
+ args: [{
1523
+ selector: "app-read-more",
1524
+ changeDetection: ChangeDetectionStrategy.Eager,
1525
+ standalone: false,
1526
+ template: "<div [innerHTML]=\"currentText\"></div>\n<a href=\"javascript:;\" *ngIf=\"!hideToggle\" class=\"primary-color hoverable\" (click)=\"toggleView()\">Read\n {{ isCollapsed ? \"more\" : \"less\" }}</a>",
1527
+ styles: ["div.collapsed{height:250px;overflow:hidden}.primary-color{color:#009fdd!important}\n"]
1528
+ }]
1529
+ }],
1530
+ ctorParameters: () => [],
1531
+ propDecorators: {
1532
+ text: [{ type: Input }],
1533
+ maxLength: [{ type: Input }]
1534
+ }
1535
+ });
1536
+ var MaterialModule = class MaterialModule {
1537
+ static {
1538
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1539
+ minVersion: "12.0.0",
1540
+ version: "22.2.3",
1541
+ ngImport: i0,
1542
+ type: MaterialModule,
1543
+ deps: [],
1544
+ target: i0.ɵɵFactoryTarget.NgModule
1545
+ });
1546
+ }
1547
+ static {
1548
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
1549
+ minVersion: "14.0.0",
1550
+ version: "22.2.3",
1551
+ ngImport: i0,
1552
+ type: MaterialModule,
1553
+ exports: [
1554
+ MatAutocompleteModule,
1555
+ MatButtonModule,
1556
+ MatCheckboxModule,
1557
+ MatDialogModule,
1558
+ MatFormFieldModule,
1559
+ MatIconModule,
1560
+ MatInputModule,
1561
+ MatLineModule,
1562
+ MatMenuModule,
1563
+ MatNativeDateModule,
1564
+ MatOptionModule,
1565
+ MatProgressSpinnerModule,
1566
+ MatPseudoCheckboxModule,
1567
+ MatRippleModule,
1568
+ MatSelectModule,
1569
+ MatSortModule,
1570
+ MatTableModule,
1571
+ MatCardModule,
1572
+ MatDividerModule,
1573
+ MatChipsModule,
1574
+ MatDatepickerModule,
1575
+ MatListModule,
1576
+ MatTooltipModule,
1577
+ MatButtonToggleModule,
1578
+ MatSidenavModule,
1579
+ MatProgressBarModule,
1580
+ MatSlideToggleModule,
1581
+ MatTabsModule
1582
+ ]
1583
+ });
1584
+ }
1585
+ static {
1586
+ this.ɵinj = i0.ɵɵngDeclareInjector({
1587
+ minVersion: "12.0.0",
1588
+ version: "22.2.3",
1589
+ ngImport: i0,
1590
+ type: MaterialModule,
1591
+ imports: [
1592
+ MatAutocompleteModule,
1593
+ MatButtonModule,
1594
+ MatCheckboxModule,
1595
+ MatDialogModule,
1596
+ MatFormFieldModule,
1597
+ MatIconModule,
1598
+ MatInputModule,
1599
+ MatLineModule,
1600
+ MatMenuModule,
1601
+ MatNativeDateModule,
1602
+ MatOptionModule,
1603
+ MatProgressSpinnerModule,
1604
+ MatPseudoCheckboxModule,
1605
+ MatRippleModule,
1606
+ MatSelectModule,
1607
+ MatSortModule,
1608
+ MatTableModule,
1609
+ MatCardModule,
1610
+ MatDividerModule,
1611
+ MatChipsModule,
1612
+ MatDatepickerModule,
1613
+ MatListModule,
1614
+ MatTooltipModule,
1615
+ MatButtonToggleModule,
1616
+ MatSidenavModule,
1617
+ MatProgressBarModule,
1618
+ MatSlideToggleModule,
1619
+ MatTabsModule
1620
+ ]
1621
+ });
1622
+ }
1623
+ };
1624
+ i0.ɵɵngDeclareClassMetadata({
1625
+ minVersion: "12.0.0",
1626
+ version: "22.2.3",
1627
+ ngImport: i0,
1628
+ type: MaterialModule,
1629
+ decorators: [{
1630
+ type: NgModule,
1631
+ args: [{ exports: [
1632
+ MatAutocompleteModule,
1633
+ MatButtonModule,
1634
+ MatCheckboxModule,
1635
+ MatDialogModule,
1636
+ MatFormFieldModule,
1637
+ MatIconModule,
1638
+ MatInputModule,
1639
+ MatLineModule,
1640
+ MatMenuModule,
1641
+ MatNativeDateModule,
1642
+ MatOptionModule,
1643
+ MatProgressSpinnerModule,
1644
+ MatPseudoCheckboxModule,
1645
+ MatRippleModule,
1646
+ MatSelectModule,
1647
+ MatSortModule,
1648
+ MatTableModule,
1649
+ MatCardModule,
1650
+ MatDividerModule,
1651
+ MatChipsModule,
1652
+ MatDatepickerModule,
1653
+ MatListModule,
1654
+ MatTooltipModule,
1655
+ MatButtonToggleModule,
1656
+ MatSidenavModule,
1657
+ MatProgressBarModule,
1658
+ MatSlideToggleModule,
1659
+ MatTabsModule
1660
+ ] }]
1661
+ }]
1662
+ });
1663
+ const CUSTOM_ICONS = {
1664
+ "batch-add": `
1665
+ <svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
1666
+ <g clip-path="url(#clip0_8645_35194)">
1667
+ <path d="M22.498 15.243H17.6766V20.0645H16.0695V15.243H11.248V13.6359H16.0695V8.81445H17.6766V13.6359H22.498V15.243Z"
1668
+ fill="black" stroke="black" stroke-width="0.75" stroke-linejoin="round"/>
1669
+ <path d="M13.748 11.493H8.92662V16.3145H7.31948V11.493H2.49805V9.88588H7.31948V5.06445H8.92662V9.88588H13.748V11.493Z"
1670
+ fill="black" stroke="black" stroke-width="0.75" stroke-linejoin="round"/>
1671
+ </g>
1672
+ <defs>
1673
+ <clipPath id="clip0_8645_35194">
1674
+ <rect width="24" height="24" fill="white" transform="translate(0.498047 0.0644531)"/>
1675
+ </clipPath>
1676
+ </defs>
1677
+ </svg>
1678
+ `,
1679
+ "unapprove": `
1680
+ <svg width="20" height="20" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
1681
+ <g transform="scale(0.025)">
1682
+ <path
1683
+ d="M873-88 609-352 495-238 269-464l56-58 170 170 56-56-414-414 56-58 736 736-56 56ZM269-238 43-464l56-56 170 170 56 56-56 56Zm452-226-56-56 196-196 58 54-198 198ZM607-578l-56-56 86-86 56 56-86 86Z"
1684
+ fill="currentColor"
1685
+ transform="translate(0,960)"
1686
+ />
1687
+ </g>
1688
+ </svg>`,
1689
+ "gra": `
1690
+ <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
1691
+ <rect width="30" height="30" fill="url(#pattern0_1076_92)"/>
1692
+ <defs>
1693
+ <pattern id="pattern0_1076_92" patternContentUnits="objectBoundingBox" width="1" height="1">
1694
+ <use xlink:href="#image0_1076_92" transform="scale(0.00666667)"/>
1695
+ </pattern>
1696
+ <image id="image0_1076_92" width="150" height="150" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/>
1697
+ </defs>
1698
+ </svg>
1699
+ `
1700
+ };
1701
+ var CustomIconRegistryService = class CustomIconRegistryService {
1702
+ constructor(sanitizer) {
1703
+ this.sanitizer = sanitizer;
1704
+ this.icons = /* @__PURE__ */ new Map();
1705
+ Object.entries(CUSTOM_ICONS).forEach(([name, svg]) => {
1706
+ this.icons.set(name, this.sanitizer.bypassSecurityTrustHtml(svg));
1707
+ });
1708
+ }
1709
+ getIcon(name) {
1710
+ return this.icons.get(name);
1711
+ }
1712
+ static {
1713
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1714
+ minVersion: "12.0.0",
1715
+ version: "22.2.3",
1716
+ ngImport: i0,
1717
+ type: CustomIconRegistryService,
1718
+ deps: [{ token: i1$2.DomSanitizer }],
1719
+ target: i0.ɵɵFactoryTarget.Injectable
1720
+ });
1721
+ }
1722
+ static {
1723
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
1724
+ minVersion: "12.0.0",
1725
+ version: "22.2.3",
1726
+ ngImport: i0,
1727
+ type: CustomIconRegistryService,
1728
+ providedIn: "root"
1729
+ });
1730
+ }
1731
+ };
1732
+ i0.ɵɵngDeclareClassMetadata({
1733
+ minVersion: "12.0.0",
1734
+ version: "22.2.3",
1735
+ ngImport: i0,
1736
+ type: CustomIconRegistryService,
1737
+ decorators: [{
1738
+ type: Injectable,
1739
+ args: [{ providedIn: "root" }]
1740
+ }],
1741
+ ctorParameters: () => [{ type: i1$2.DomSanitizer }]
1742
+ });
1743
+ var CustomIconComponent = class CustomIconComponent {
1744
+ constructor(registry) {
1745
+ this.registry = registry;
1746
+ }
1747
+ ngOnChanges() {
1748
+ this.svgIcon = this.registry.getIcon(this.name);
1749
+ }
1750
+ static {
1751
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1752
+ minVersion: "12.0.0",
1753
+ version: "22.2.3",
1754
+ ngImport: i0,
1755
+ type: CustomIconComponent,
1756
+ deps: [{ token: CustomIconRegistryService }],
1757
+ target: i0.ɵɵFactoryTarget.Component
1758
+ });
1759
+ }
1760
+ static {
1761
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
1762
+ minVersion: "14.0.0",
1763
+ version: "22.2.3",
1764
+ type: CustomIconComponent,
1765
+ isStandalone: false,
1766
+ selector: "app-custom-icon",
1767
+ inputs: { name: "name" },
1768
+ usesOnChanges: true,
1769
+ ngImport: i0,
1770
+ template: "<span class=\"fa\" [innerHTML]=\"svgIcon\"></span>",
1771
+ styles: [".fa{display:inline-block;vertical-align:-.125em;line-height:1}.fa svg{width:100%;height:100%;fill:currentColor}\n"],
1772
+ changeDetection: i0.ChangeDetectionStrategy.Eager
1773
+ });
1774
+ }
1775
+ };
1776
+ i0.ɵɵngDeclareClassMetadata({
1777
+ minVersion: "12.0.0",
1778
+ version: "22.2.3",
1779
+ ngImport: i0,
1780
+ type: CustomIconComponent,
1781
+ decorators: [{
1782
+ type: Component,
1783
+ args: [{
1784
+ selector: "app-custom-icon",
1785
+ changeDetection: ChangeDetectionStrategy.Eager,
1786
+ standalone: false,
1787
+ template: "<span class=\"fa\" [innerHTML]=\"svgIcon\"></span>",
1788
+ styles: [".fa{display:inline-block;vertical-align:-.125em;line-height:1}.fa svg{width:100%;height:100%;fill:currentColor}\n"]
1789
+ }]
1790
+ }],
1791
+ ctorParameters: () => [{ type: CustomIconRegistryService }],
1792
+ propDecorators: { name: [{ type: Input }] }
1793
+ });
1794
+ var TechlifyIconComponent = class TechlifyIconComponent {
1795
+ constructor() {
1796
+ this.name = "";
1797
+ this.size = "md";
1798
+ this.customIconList = [
1799
+ "batch-add",
1800
+ "unapprove",
1801
+ "gra"
1802
+ ];
1803
+ this.iconMap = {
1804
+ add: "fas fa-plus",
1805
+ view: "fas fa-eye",
1806
+ edit: "fas fa-pen",
1807
+ delete: "fas fa-trash",
1808
+ import: "fas fa-file-import",
1809
+ export: "fas fa-file-excel",
1810
+ print: "fas fa-print",
1811
+ pdf: "fas fa-file-pdf",
1812
+ history: "fas fa-clock",
1813
+ copy: "fas fa-copy",
1814
+ activate: "fas fa-check-circle",
1815
+ deactivate: "fas fa-stop-circle",
1816
+ email: "far fa-envelope",
1817
+ approve: "fas fa-check",
1818
+ reject: "fas fa-times",
1819
+ calendar: "fas fa-calendar",
1820
+ table: "fas fa-table",
1821
+ multi_calendar: "fas fa-calendar-alt",
1822
+ link: "fas fa-link",
1823
+ link_external: "fas fa-arrow-up fa-rotate-by rotate-45-deg",
1824
+ reset: "fas fa-redo",
1825
+ phone: "fas fa-phone",
1826
+ location: "fas fa-map-marker-alt",
1827
+ unlink: "fas fa-unlink",
1828
+ disable_user: "fas fa-user-slash",
1829
+ swap: "fas fa-retweet",
1830
+ apps: "fas fa-th",
1831
+ user: "fas fa-user-circle",
1832
+ search: "fas fa-search",
1833
+ close: "fas fa-times"
1834
+ };
1835
+ this.sizeMap = {
1836
+ xs: "fa-xs",
1837
+ sm: "fa-sm",
1838
+ md: "fa-md",
1839
+ lg: "fa-lg",
1840
+ xl: "fa-2x"
1841
+ };
1842
+ }
1843
+ get iconClass() {
1844
+ return [this.iconMap[this.name] || "fa fa-question-circle", this.sizeMap[this.size] || ""];
1845
+ }
1846
+ isCustomIcon(name) {
1847
+ return this.customIconList.includes(name);
1848
+ }
1849
+ static {
1850
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1851
+ minVersion: "12.0.0",
1852
+ version: "22.2.3",
1853
+ ngImport: i0,
1854
+ type: TechlifyIconComponent,
1855
+ deps: [],
1856
+ target: i0.ɵɵFactoryTarget.Component
1857
+ });
1858
+ }
1859
+ static {
1860
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
1861
+ minVersion: "14.0.0",
1862
+ version: "22.2.3",
1863
+ type: TechlifyIconComponent,
1864
+ isStandalone: false,
1865
+ selector: "app-techlify-icon",
1866
+ inputs: {
1867
+ name: "name",
1868
+ size: "size"
1869
+ },
1870
+ ngImport: i0,
1871
+ template: "<!-- Custom icon -->\n<ng-container *ngIf=\"isCustomIcon(name); else faIcon\">\n <app-custom-icon [name]=\"name\"></app-custom-icon>\n</ng-container>\n\n<!-- Font Awesome -->\n<ng-template #faIcon>\n <i [ngClass]=\"iconClass\"></i>\n</ng-template>",
1872
+ styles: [".scroll-container{height:400px;overflow:auto}.rotate-45-deg{--fa-rotate-angle: 45deg}\n"],
1873
+ dependencies: [
1874
+ {
1875
+ kind: "directive",
1876
+ type: i1$5.NgClass,
1877
+ selector: "[ngClass]",
1878
+ inputs: ["class", "ngClass"]
1879
+ },
1880
+ {
1881
+ kind: "directive",
1882
+ type: i1$5.NgIf,
1883
+ selector: "[ngIf]",
1884
+ inputs: [
1885
+ "ngIf",
1886
+ "ngIfThen",
1887
+ "ngIfElse"
1888
+ ]
1889
+ },
1890
+ {
1891
+ kind: "component",
1892
+ type: CustomIconComponent,
1893
+ selector: "app-custom-icon",
1894
+ inputs: ["name"]
1895
+ }
1896
+ ],
1897
+ changeDetection: i0.ChangeDetectionStrategy.Eager
1898
+ });
1899
+ }
1900
+ };
1901
+ i0.ɵɵngDeclareClassMetadata({
1902
+ minVersion: "12.0.0",
1903
+ version: "22.2.3",
1904
+ ngImport: i0,
1905
+ type: TechlifyIconComponent,
1906
+ decorators: [{
1907
+ type: Component,
1908
+ args: [{
1909
+ selector: "app-techlify-icon",
1910
+ changeDetection: ChangeDetectionStrategy.Eager,
1911
+ standalone: false,
1912
+ template: "<!-- Custom icon -->\n<ng-container *ngIf=\"isCustomIcon(name); else faIcon\">\n <app-custom-icon [name]=\"name\"></app-custom-icon>\n</ng-container>\n\n<!-- Font Awesome -->\n<ng-template #faIcon>\n <i [ngClass]=\"iconClass\"></i>\n</ng-template>",
1913
+ styles: [".scroll-container{height:400px;overflow:auto}.rotate-45-deg{--fa-rotate-angle: 45deg}\n"]
1914
+ }]
1915
+ }],
1916
+ propDecorators: {
1917
+ name: [{ type: Input }],
1918
+ size: [{ type: Input }]
1919
+ }
1920
+ });
1921
+ var CustomIconModule = class CustomIconModule {
1922
+ static {
1923
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1924
+ minVersion: "12.0.0",
1925
+ version: "22.2.3",
1926
+ ngImport: i0,
1927
+ type: CustomIconModule,
1928
+ deps: [],
1929
+ target: i0.ɵɵFactoryTarget.NgModule
1930
+ });
1931
+ }
1932
+ static {
1933
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
1934
+ minVersion: "14.0.0",
1935
+ version: "22.2.3",
1936
+ ngImport: i0,
1937
+ type: CustomIconModule,
1938
+ declarations: [CustomIconComponent],
1939
+ imports: [CommonModule],
1940
+ exports: [CustomIconComponent]
1941
+ });
1942
+ }
1943
+ static {
1944
+ this.ɵinj = i0.ɵɵngDeclareInjector({
1945
+ minVersion: "12.0.0",
1946
+ version: "22.2.3",
1947
+ ngImport: i0,
1948
+ type: CustomIconModule,
1949
+ imports: [CommonModule]
1950
+ });
1951
+ }
1952
+ };
1953
+ i0.ɵɵngDeclareClassMetadata({
1954
+ minVersion: "12.0.0",
1955
+ version: "22.2.3",
1956
+ ngImport: i0,
1957
+ type: CustomIconModule,
1958
+ decorators: [{
1959
+ type: NgModule,
1960
+ args: [{
1961
+ declarations: [CustomIconComponent],
1962
+ imports: [CommonModule],
1963
+ exports: [CustomIconComponent]
1964
+ }]
1965
+ }]
1966
+ });
1967
+ var TechlifyIconModule = class TechlifyIconModule {
1968
+ static {
1969
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1970
+ minVersion: "12.0.0",
1971
+ version: "22.2.3",
1972
+ ngImport: i0,
1973
+ type: TechlifyIconModule,
1974
+ deps: [],
1975
+ target: i0.ɵɵFactoryTarget.NgModule
1976
+ });
1977
+ }
1978
+ static {
1979
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
1980
+ minVersion: "14.0.0",
1981
+ version: "22.2.3",
1982
+ ngImport: i0,
1983
+ type: TechlifyIconModule,
1984
+ declarations: [TechlifyIconComponent],
1985
+ imports: [CommonModule, CustomIconModule],
1986
+ exports: [TechlifyIconComponent]
1987
+ });
1988
+ }
1989
+ static {
1990
+ this.ɵinj = i0.ɵɵngDeclareInjector({
1991
+ minVersion: "12.0.0",
1992
+ version: "22.2.3",
1993
+ ngImport: i0,
1994
+ type: TechlifyIconModule,
1995
+ imports: [CommonModule, CustomIconModule]
1996
+ });
1997
+ }
1998
+ };
1999
+ i0.ɵɵngDeclareClassMetadata({
2000
+ minVersion: "12.0.0",
2001
+ version: "22.2.3",
2002
+ ngImport: i0,
2003
+ type: TechlifyIconModule,
2004
+ decorators: [{
2005
+ type: NgModule,
2006
+ args: [{
2007
+ imports: [CommonModule, CustomIconModule],
2008
+ declarations: [TechlifyIconComponent],
2009
+ exports: [TechlifyIconComponent]
2010
+ }]
2011
+ }]
2012
+ });
2013
+ var SnackModule = class SnackModule {
2014
+ static {
2015
+ this.ɵfac = i0.ɵɵngDeclareFactory({
2016
+ minVersion: "12.0.0",
2017
+ version: "22.2.3",
2018
+ ngImport: i0,
2019
+ type: SnackModule,
2020
+ deps: [],
2021
+ target: i0.ɵɵFactoryTarget.NgModule
2022
+ });
2023
+ }
2024
+ static {
2025
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
2026
+ minVersion: "14.0.0",
2027
+ version: "22.2.3",
2028
+ ngImport: i0,
2029
+ type: SnackModule,
2030
+ declarations: [SuccessSnackComponent, ErrorSnackComponent],
2031
+ imports: [
2032
+ CommonModule,
2033
+ MatSnackBarModule,
2034
+ MatIconModule
2035
+ ],
2036
+ exports: [SuccessSnackComponent, ErrorSnackComponent]
2037
+ });
2038
+ }
2039
+ static {
2040
+ this.ɵinj = i0.ɵɵngDeclareInjector({
2041
+ minVersion: "12.0.0",
2042
+ version: "22.2.3",
2043
+ ngImport: i0,
2044
+ type: SnackModule,
2045
+ imports: [
2046
+ CommonModule,
2047
+ MatSnackBarModule,
2048
+ MatIconModule
2049
+ ]
2050
+ });
2051
+ }
2052
+ };
2053
+ i0.ɵɵngDeclareClassMetadata({
2054
+ minVersion: "12.0.0",
2055
+ version: "22.2.3",
2056
+ ngImport: i0,
2057
+ type: SnackModule,
2058
+ decorators: [{
2059
+ type: NgModule,
2060
+ args: [{
2061
+ declarations: [SuccessSnackComponent, ErrorSnackComponent],
2062
+ imports: [
2063
+ CommonModule,
2064
+ MatSnackBarModule,
2065
+ MatIconModule
2066
+ ],
2067
+ exports: [SuccessSnackComponent, ErrorSnackComponent]
2068
+ }]
2069
+ }]
2070
+ });
2071
+ var AppUpdateService = class AppUpdateService {
2072
+ constructor(swUpdate, snackBar) {
2073
+ this.swUpdate = swUpdate;
2074
+ this.snackBar = snackBar;
2075
+ }
2076
+ init() {
2077
+ if (!this.swUpdate.isEnabled) return;
2078
+ this.promptOnVersionReady();
2079
+ this.reloadOnUnrecoverableState();
2080
+ this.checkForUpdatesWhenTabBecomesVisible();
2081
+ }
2082
+ promptOnVersionReady() {
2083
+ this.swUpdate.versionUpdates.subscribe((event) => {
2084
+ if (event.type === "VERSION_READY") this.promptReload();
2085
+ });
2086
+ }
2087
+ reloadOnUnrecoverableState() {
2088
+ this.swUpdate.unrecoverable.subscribe(() => {
2089
+ alert("An error occurred loading the latest version of the app. It will now reload to recover.");
2090
+ document.location.reload();
2091
+ });
2092
+ }
2093
+ checkForUpdatesWhenTabBecomesVisible() {
2094
+ document.addEventListener("visibilitychange", () => {
2095
+ if (document.visibilityState === "visible") this.swUpdate.checkForUpdate();
2096
+ });
2097
+ }
2098
+ promptReload() {
2099
+ this.snackBar.open("A new version of the app is available.", "Reload", {
2100
+ horizontalPosition: "right",
2101
+ verticalPosition: "top"
2102
+ }).onAction().subscribe(() => document.location.reload());
2103
+ }
2104
+ static {
2105
+ this.ɵfac = i0.ɵɵngDeclareFactory({
2106
+ minVersion: "12.0.0",
2107
+ version: "22.2.3",
2108
+ ngImport: i0,
2109
+ type: AppUpdateService,
2110
+ deps: [{ token: i1$1.SwUpdate }, { token: i1$6.MatSnackBar }],
2111
+ target: i0.ɵɵFactoryTarget.Injectable
2112
+ });
2113
+ }
2114
+ static {
2115
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
2116
+ minVersion: "12.0.0",
2117
+ version: "22.2.3",
2118
+ ngImport: i0,
2119
+ type: AppUpdateService,
2120
+ providedIn: "root"
2121
+ });
2122
+ }
2123
+ };
2124
+ i0.ɵɵngDeclareClassMetadata({
2125
+ minVersion: "12.0.0",
2126
+ version: "22.2.3",
2127
+ ngImport: i0,
2128
+ type: AppUpdateService,
2129
+ decorators: [{
2130
+ type: Injectable,
2131
+ args: [{ providedIn: "root" }]
2132
+ }],
2133
+ ctorParameters: () => [{ type: i1$1.SwUpdate }, { type: i1$6.MatSnackBar }]
2134
+ });
2135
+ const log = new Logger("AuthenticationGuard");
2136
+ var AuthenticationGuard = class AuthenticationGuard {
2137
+ constructor(router, credentialsService) {
2138
+ this.router = router;
2139
+ this.credentialsService = credentialsService;
2140
+ }
2141
+ canActivate(route, state) {
2142
+ return this.isUserAuthenticated(route, state);
2143
+ }
2144
+ canLoad(route, state) {
2145
+ return this.isUserAuthenticated(route, state);
2146
+ }
2147
+ isUserAuthenticated(route, state) {
2148
+ if (this.credentialsService.isAuthenticated) return true;
2149
+ log.debug("Not authenticated, redirecting and adding redirect url...");
2150
+ this.router.navigate(["/login"], {
2151
+ queryParams: { redirect: state.url },
2152
+ replaceUrl: true
2153
+ });
2154
+ return false;
2155
+ }
2156
+ static {
2157
+ this.ɵfac = i0.ɵɵngDeclareFactory({
2158
+ minVersion: "12.0.0",
2159
+ version: "22.2.3",
2160
+ ngImport: i0,
2161
+ type: AuthenticationGuard,
2162
+ deps: [{ token: i1$3.Router }, { token: CredentialsService }],
2163
+ target: i0.ɵɵFactoryTarget.Injectable
2164
+ });
2165
+ }
2166
+ static {
2167
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
2168
+ minVersion: "12.0.0",
2169
+ version: "22.2.3",
2170
+ ngImport: i0,
2171
+ type: AuthenticationGuard,
2172
+ providedIn: "root"
2173
+ });
2174
+ }
2175
+ };
2176
+ i0.ɵɵngDeclareClassMetadata({
2177
+ minVersion: "12.0.0",
2178
+ version: "22.2.3",
2179
+ ngImport: i0,
2180
+ type: AuthenticationGuard,
2181
+ decorators: [{
2182
+ type: Injectable,
2183
+ args: [{ providedIn: "root" }]
2184
+ }],
2185
+ ctorParameters: () => [{ type: i1$3.Router }, { type: CredentialsService }]
2186
+ });
2187
+ var User = class {
2188
+ constructor() {
2189
+ this.id = 0;
2190
+ this.client = {};
2191
+ this.roles = [];
2192
+ }
2193
+ loadFromMap(data) {
2194
+ this.id = data.id;
2195
+ this.email = data.email;
2196
+ this.name = data.name;
2197
+ this.status_id = data.status_id;
2198
+ this.user_type_id = data.user_type_id;
2199
+ this.client_id = data.client_id;
2200
+ this.is_temporary_password = data.is_temporary_password;
2201
+ this.roles = data.roles == null ? [] : data.roles;
2202
+ this.permissions = data.permissions == null ? [] : data.permissions;
2203
+ this.type = data.type == null ? [] : data.type;
2204
+ this.client = data.client;
2205
+ this.signature = data.signature;
2206
+ this.signature_url = data.signature_url;
2207
+ this.user_client = data?.user_client;
2208
+ this.clients = data?.clients;
2209
+ }
2210
+ };
2211
+ var StorageService = class StorageService {
2212
+ constructor() {
2213
+ this.storageSub = new Subject();
2214
+ }
2215
+ watch() {
2216
+ return this.storageSub.asObservable();
2217
+ }
2218
+ setItem(key, data) {
2219
+ localStorage.setItem(key, data);
2220
+ this.storageSub.next({
2221
+ key,
2222
+ value: data
2223
+ });
2224
+ }
2225
+ getItem(key) {
2226
+ return localStorage.getItem(key);
2227
+ }
2228
+ removeItem(key) {
2229
+ const data = this.getItem(key);
2230
+ localStorage.removeItem(key);
2231
+ this.storageSub.next({
2232
+ key,
2233
+ value: data
2234
+ });
2235
+ }
2236
+ static {
2237
+ this.ɵfac = i0.ɵɵngDeclareFactory({
2238
+ minVersion: "12.0.0",
2239
+ version: "22.2.3",
2240
+ ngImport: i0,
2241
+ type: StorageService,
2242
+ deps: [],
2243
+ target: i0.ɵɵFactoryTarget.Injectable
2244
+ });
2245
+ }
2246
+ static {
2247
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
2248
+ minVersion: "12.0.0",
2249
+ version: "22.2.3",
2250
+ ngImport: i0,
2251
+ type: StorageService,
2252
+ providedIn: "root"
2253
+ });
2254
+ }
2255
+ };
2256
+ i0.ɵɵngDeclareClassMetadata({
2257
+ minVersion: "12.0.0",
2258
+ version: "22.2.3",
2259
+ ngImport: i0,
2260
+ type: StorageService,
2261
+ decorators: [{
2262
+ type: Injectable,
2263
+ args: [{ providedIn: "root" }]
2264
+ }],
2265
+ ctorParameters: () => []
2266
+ });
2267
+ var CurrentUserService = class CurrentUserService {
2268
+ constructor(http, storage) {
2269
+ this.http = http;
2270
+ this.storage = storage;
2271
+ this.userSub = new Subject();
2272
+ this.isLoggedIn = new BehaviorSubject(false);
2273
+ }
2274
+ getAuthStatus() {
2275
+ return this.isLoggedIn.asObservable();
2276
+ }
2277
+ updateAuthStatus(val) {
2278
+ this.isLoggedIn.next(val);
2279
+ }
2280
+ getUser() {
2281
+ if (this.user) return this.user;
2282
+ this.user = new User();
2283
+ const userFromStorage = JSON.parse(this.storage.getItem("currentUser"));
2284
+ if (userFromStorage) this.user.loadFromMap(userFromStorage);
2285
+ return this.user;
2286
+ }
2287
+ watch() {
2288
+ return this.userSub.asObservable();
2289
+ }
2290
+ getCurrentUser(reload = false) {
2291
+ let promise;
2292
+ if (void 0 !== this.data && !reload) {
2293
+ promise = new Promise((resolve, reject) => {
2294
+ resolve(this.data);
2295
+ });
2296
+ return promise;
2297
+ }
2298
+ promise = this.http.get("api/user/current").toPromise();
2299
+ promise.then((res) => {
2300
+ this.user = new User();
2301
+ this.data = res;
2302
+ this.user.loadFromMap(res.user);
2303
+ this.storage.setItem("currentUser", JSON.stringify(res.user));
2304
+ this.userSub.next(this.user);
2305
+ });
2306
+ return promise;
2307
+ }
2308
+ updateCurrentUser(userData) {
2309
+ this.user = new User();
2310
+ this.data = userData;
2311
+ this.user.loadFromMap(userData);
2312
+ this.storage.setItem("currentUser", JSON.stringify(userData));
2313
+ this.userSub.next(this.user);
2314
+ }
2315
+ hasRole(id) {
2316
+ if (this.user.roles == null) return false;
2317
+ return (this.user.roles || []).some((role) => role.id == id);
2318
+ }
2319
+ hasPermission(slug) {
2320
+ if (!this.user) return false;
2321
+ if (this.user.user_type_id == 1) return true;
2322
+ else {
2323
+ if (this.user.permissions == null) return false;
2324
+ return (this.user.permissions || []).some((permission) => permission.slug == slug);
2325
+ }
2326
+ }
2327
+ getUserObservable(reload = false) {
2328
+ if (this.user && !reload) return of(this.user);
2329
+ return this.http.get("api/user/current").pipe(map((res) => {
2330
+ this.user = new User();
2331
+ this.data = res;
2332
+ this.user.loadFromMap(res.user);
2333
+ this.storage.setItem("currentUser", JSON.stringify(res.user));
2334
+ return this.user;
2335
+ }));
2336
+ }
2337
+ getUserData() {
2338
+ return this.data;
2339
+ }
2340
+ static {
2341
+ this.ɵfac = i0.ɵɵngDeclareFactory({
2342
+ minVersion: "12.0.0",
2343
+ version: "22.2.3",
2344
+ ngImport: i0,
2345
+ type: CurrentUserService,
2346
+ deps: [{ token: HttpService }, { token: StorageService }],
2347
+ target: i0.ɵɵFactoryTarget.Injectable
2348
+ });
2349
+ }
2350
+ static {
2351
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
2352
+ minVersion: "12.0.0",
2353
+ version: "22.2.3",
2354
+ ngImport: i0,
2355
+ type: CurrentUserService,
2356
+ providedIn: "root"
2357
+ });
2358
+ }
2359
+ };
2360
+ i0.ɵɵngDeclareClassMetadata({
2361
+ minVersion: "12.0.0",
2362
+ version: "22.2.3",
2363
+ ngImport: i0,
2364
+ type: CurrentUserService,
2365
+ decorators: [{
2366
+ type: Injectable,
2367
+ args: [{ providedIn: "root" }]
2368
+ }],
2369
+ ctorParameters: () => [{ type: HttpService }, { type: StorageService }]
2370
+ });
2371
+ var AuthenticationService = class AuthenticationService {
2372
+ constructor(credentialsService, http, currentUserService) {
2373
+ this.credentialsService = credentialsService;
2374
+ this.http = http;
2375
+ this.currentUserService = currentUserService;
2376
+ }
2377
+ login(context) {
2378
+ const data = {};
2379
+ return this.http.skipToken().post("oauth/token", context).pipe(switchMap$1((tokenInfo) => {
2380
+ tokenInfo.expires_in = Date.now() + tokenInfo.expires_in * 1e3;
2381
+ data.token = tokenInfo;
2382
+ data.user = {};
2383
+ this.credentialsService.setCredentials(data, context.remember);
2384
+ this.currentUserService.updateAuthStatus(true);
2385
+ return this.http.get("api/user/current").pipe(map$1((res) => {
2386
+ data.user = res?.user;
2387
+ this.credentialsService.setCredentials(data, context.remember);
2388
+ return data;
2389
+ }));
2390
+ }));
2391
+ }
2392
+ logout() {
2393
+ return this.http.post("api/user/logout", {}).pipe(map$1(() => {
2394
+ this.currentUserService.updateAuthStatus(false);
2395
+ this.credentialsService.setCredentials();
2396
+ return true;
2397
+ }), catchError$1(() => {
2398
+ return of(false);
2399
+ }));
2400
+ }
2401
+ static {
2402
+ this.ɵfac = i0.ɵɵngDeclareFactory({
2403
+ minVersion: "12.0.0",
2404
+ version: "22.2.3",
2405
+ ngImport: i0,
2406
+ type: AuthenticationService,
2407
+ deps: [
2408
+ { token: CredentialsService },
2409
+ { token: HttpService },
2410
+ { token: CurrentUserService }
2411
+ ],
2412
+ target: i0.ɵɵFactoryTarget.Injectable
2413
+ });
2414
+ }
2415
+ static {
2416
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
2417
+ minVersion: "12.0.0",
2418
+ version: "22.2.3",
2419
+ ngImport: i0,
2420
+ type: AuthenticationService,
2421
+ providedIn: "root"
2422
+ });
2423
+ }
2424
+ };
2425
+ i0.ɵɵngDeclareClassMetadata({
2426
+ minVersion: "12.0.0",
2427
+ version: "22.2.3",
2428
+ ngImport: i0,
2429
+ type: AuthenticationService,
2430
+ decorators: [{
2431
+ type: Injectable,
2432
+ args: [{ providedIn: "root" }]
2433
+ }],
2434
+ ctorParameters: () => [
2435
+ { type: CredentialsService },
2436
+ { type: HttpService },
2437
+ { type: CurrentUserService }
2438
+ ]
2439
+ });
2440
+ var RouteReusableStrategy = class RouteReusableStrategy extends RouteReuseStrategy {
2441
+ shouldDetach(route) {
2442
+ return false;
2443
+ }
2444
+ store(route, detachedTree) {}
2445
+ shouldAttach(route) {
2446
+ return false;
2447
+ }
2448
+ retrieve(route) {
2449
+ return null;
2450
+ }
2451
+ shouldReuseRoute(future, curr) {
2452
+ return future.routeConfig === curr.routeConfig || Boolean(future.routeConfig?.component && future.routeConfig?.component === curr.routeConfig?.component);
2453
+ }
2454
+ static {
2455
+ this.ɵfac = i0.ɵɵngDeclareFactory({
2456
+ minVersion: "12.0.0",
2457
+ version: "22.2.3",
2458
+ ngImport: i0,
2459
+ type: RouteReusableStrategy,
2460
+ deps: null,
2461
+ target: i0.ɵɵFactoryTarget.Injectable
2462
+ });
2463
+ }
2464
+ static {
2465
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
2466
+ minVersion: "12.0.0",
2467
+ version: "22.2.3",
2468
+ ngImport: i0,
2469
+ type: RouteReusableStrategy,
2470
+ providedIn: "root"
2471
+ });
2472
+ }
2473
+ };
2474
+ i0.ɵɵngDeclareClassMetadata({
2475
+ minVersion: "12.0.0",
2476
+ version: "22.2.3",
2477
+ ngImport: i0,
2478
+ type: RouteReusableStrategy,
2479
+ decorators: [{
2480
+ type: Injectable,
2481
+ args: [{ providedIn: "root" }]
2482
+ }]
2483
+ });
2484
+ var FilterService = class FilterService {
2485
+ constructor(router) {
2486
+ this.router = router;
2487
+ }
2488
+ applyFilterToRoute(url, filter) {
2489
+ this.router.navigate([filter], {
2490
+ relativeTo: url,
2491
+ replaceUrl: true
2492
+ });
2493
+ }
2494
+ getFiltersFromRoute(url, filterFormGroup) {
2495
+ url.params.subscribe((params) => {
2496
+ for (var filter in params) if (params[filter]) {
2497
+ for (let [key, value] of Object.entries(filterFormGroup)) if (key === filter) filterFormGroup[key] = params[filter];
2498
+ }
2499
+ });
2500
+ return filterFormGroup;
2501
+ }
2502
+ static {
2503
+ this.ɵfac = i0.ɵɵngDeclareFactory({
2504
+ minVersion: "12.0.0",
2505
+ version: "22.2.3",
2506
+ ngImport: i0,
2507
+ type: FilterService,
2508
+ deps: [{ token: i1$3.Router }],
2509
+ target: i0.ɵɵFactoryTarget.Injectable
2510
+ });
2511
+ }
2512
+ static {
2513
+ this.ɵprov = i0.ɵɵngDeclareInjectable({
2514
+ minVersion: "12.0.0",
2515
+ version: "22.2.3",
2516
+ ngImport: i0,
2517
+ type: FilterService,
2518
+ providedIn: "root"
2519
+ });
2520
+ }
2521
+ };
2522
+ i0.ɵɵngDeclareClassMetadata({
2523
+ minVersion: "12.0.0",
2524
+ version: "22.2.3",
2525
+ ngImport: i0,
2526
+ type: FilterService,
2527
+ decorators: [{
2528
+ type: Injectable,
2529
+ args: [{ providedIn: "root" }]
2530
+ }],
2531
+ ctorParameters: () => [{ type: i1$3.Router }]
2532
+ });
2533
+ var TechlifyDeleteButtonComponent = class TechlifyDeleteButtonComponent {
2534
+ constructor(dialog, alertService, errorHandler) {
2535
+ this.dialog = dialog;
2536
+ this.alertService = alertService;
2537
+ this.errorHandler = errorHandler;
2538
+ this.data = input({
2539
+ title: "Delete Record",
2540
+ type: ""
2541
+ }, ...ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []);
2542
+ this.model = input.required(...ngDevMode ? [{ debugName: "model" }] : /* istanbul ignore next */ []);
2543
+ this.message = input(...ngDevMode ? [void 0, { debugName: "message" }] : /* istanbul ignore next */ []);
2544
+ this.service = input.required(...ngDevMode ? [{ debugName: "service" }] : /* istanbul ignore next */ []);
2545
+ this.deleted = output();
2546
+ this.loading = output();
2547
+ }
2548
+ open() {
2549
+ let message = this.message();
2550
+ const data = this.data();
2551
+ if (!message && data?.title) message = `Deleting this ${data.type || "model"} <strong>${data.title}</strong> cannot be undone. <br> Are you sure you want to continue?`;
2552
+ else if (!message) message = "Are you sure you want to delete this model?";
2553
+ this.dialog.open(ActionPopupComponent, { data: {
2554
+ title: "Delete",
2555
+ message
2556
+ } }).afterClosed().subscribe((result) => {
2557
+ if (!result) return;
2558
+ if (!this.service()) {
2559
+ console.error("Service not provided");
2560
+ return;
2561
+ }
2562
+ this.loading.emit(true);
2563
+ this.service().delete(this.model()).pipe(finalize$1(() => this.loading.emit(false))).subscribe({
2564
+ next: (response) => {
2565
+ this.alertService.addAlert("Successfully Deleted", "success");
2566
+ this.deleted.emit(response.item);
2567
+ },
2568
+ error: (error) => {
2569
+ this.errorHandler.handleError(error);
2570
+ }
2571
+ });
2572
+ });
2573
+ }
2574
+ static {
2575
+ this.ɵfac = i0.ɵɵngDeclareFactory({
2576
+ minVersion: "12.0.0",
2577
+ version: "22.2.3",
2578
+ ngImport: i0,
2579
+ type: TechlifyDeleteButtonComponent,
2580
+ deps: [
2581
+ { token: i1$8.MatDialog },
2582
+ { token: AlertService },
2583
+ { token: ErrorHandlerService }
2584
+ ],
2585
+ target: i0.ɵɵFactoryTarget.Component
2586
+ });
2587
+ }
2588
+ static {
2589
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
2590
+ minVersion: "17.1.0",
2591
+ version: "22.2.3",
2592
+ type: TechlifyDeleteButtonComponent,
2593
+ isStandalone: true,
2594
+ selector: "app-techlify-delete-button",
2595
+ inputs: {
2596
+ data: {
2597
+ classPropertyName: "data",
2598
+ publicName: "data",
2599
+ isSignal: true,
2600
+ isRequired: false,
2601
+ transformFunction: null
2602
+ },
2603
+ model: {
2604
+ classPropertyName: "model",
2605
+ publicName: "model",
2606
+ isSignal: true,
2607
+ isRequired: true,
2608
+ transformFunction: null
2609
+ },
2610
+ message: {
2611
+ classPropertyName: "message",
2612
+ publicName: "message",
2613
+ isSignal: true,
2614
+ isRequired: false,
2615
+ transformFunction: null
2616
+ },
2617
+ service: {
2618
+ classPropertyName: "service",
2619
+ publicName: "service",
2620
+ isSignal: true,
2621
+ isRequired: true,
2622
+ transformFunction: null
2623
+ }
2624
+ },
2625
+ outputs: {
2626
+ deleted: "deleted",
2627
+ loading: "loading"
2628
+ },
2629
+ ngImport: i0,
2630
+ template: "<app-techlify-icon role='button' name='delete' (click)=\"open()\"></app-techlify-icon>",
2631
+ dependencies: [
2632
+ {
2633
+ kind: "ngmodule",
2634
+ type: CommonModule
2635
+ },
2636
+ {
2637
+ kind: "ngmodule",
2638
+ type: MaterialModule
2639
+ },
2640
+ {
2641
+ kind: "ngmodule",
2642
+ type: TechlifyIconModule
2643
+ },
2644
+ {
2645
+ kind: "component",
2646
+ type: TechlifyIconComponent,
2647
+ selector: "app-techlify-icon",
2648
+ inputs: ["name", "size"]
2649
+ }
2650
+ ],
2651
+ changeDetection: i0.ChangeDetectionStrategy.Eager
2652
+ });
2653
+ }
2654
+ };
2655
+ i0.ɵɵngDeclareClassMetadata({
2656
+ minVersion: "12.0.0",
2657
+ version: "22.2.3",
2658
+ ngImport: i0,
2659
+ type: TechlifyDeleteButtonComponent,
2660
+ decorators: [{
2661
+ type: Component,
2662
+ args: [{
2663
+ selector: "app-techlify-delete-button",
2664
+ standalone: true,
2665
+ changeDetection: ChangeDetectionStrategy.Eager,
2666
+ imports: [
2667
+ CommonModule,
2668
+ MaterialModule,
2669
+ TechlifyIconModule
2670
+ ],
2671
+ template: "<app-techlify-icon role='button' name='delete' (click)=\"open()\"></app-techlify-icon>"
2672
+ }]
2673
+ }],
2674
+ ctorParameters: () => [
2675
+ { type: i1$8.MatDialog },
2676
+ { type: AlertService },
2677
+ { type: ErrorHandlerService }
2678
+ ],
2679
+ propDecorators: {
2680
+ data: [{
2681
+ type: i0.Input,
2682
+ args: [{
2683
+ isSignal: true,
2684
+ alias: "data",
2685
+ required: false
2686
+ }]
2687
+ }],
2688
+ model: [{
2689
+ type: i0.Input,
2690
+ args: [{
2691
+ isSignal: true,
2692
+ alias: "model",
2693
+ required: true
2694
+ }]
2695
+ }],
2696
+ message: [{
2697
+ type: i0.Input,
2698
+ args: [{
2699
+ isSignal: true,
2700
+ alias: "message",
2701
+ required: false
2702
+ }]
2703
+ }],
2704
+ service: [{
2705
+ type: i0.Input,
2706
+ args: [{
2707
+ isSignal: true,
2708
+ alias: "service",
2709
+ required: true
2710
+ }]
2711
+ }],
2712
+ deleted: [{
2713
+ type: i0.Output,
2714
+ args: ["deleted"]
2715
+ }],
2716
+ loading: [{
2717
+ type: i0.Output,
2718
+ args: ["loading"]
2719
+ }]
2720
+ }
2721
+ });
2722
+ var Timeline = class {
2723
+ static {
2724
+ this.CUSTOM = 1;
2725
+ }
2726
+ static {
2727
+ this.TODAY = 2;
2728
+ }
2729
+ static {
2730
+ this.YESTERDAY = 3;
2731
+ }
2732
+ static {
2733
+ this.THIS_WEEK = 4;
2734
+ }
2735
+ static {
2736
+ this.LAST_WEEK = 5;
2737
+ }
2738
+ static {
2739
+ this.THIS_MONTH = 6;
2740
+ }
2741
+ static {
2742
+ this.LAST_MONTH = 7;
2743
+ }
2744
+ static {
2745
+ this.THIS_QUARTER = 8;
2746
+ }
2747
+ static {
2748
+ this.LAST_QUARTER = 9;
2749
+ }
2750
+ static {
2751
+ this.THIS_YEAR = 10;
2752
+ }
2753
+ static {
2754
+ this.LAST_YEAR = 11;
2755
+ }
2756
+ static {
2757
+ this.ALL = 12;
2758
+ }
2759
+ static {
2760
+ this.TOMMOROW = 13;
2761
+ }
2762
+ static {
2763
+ this.NEXT_WEEK = 14;
2764
+ }
2765
+ static {
2766
+ this.NEXT_MONTH = 15;
2767
+ }
2768
+ };
2769
+ function calculateTimeline(value, dateFrom, dateTo) {
2770
+ const date = /* @__PURE__ */ new Date();
2771
+ const data = {
2772
+ date_from: date,
2773
+ date_to: date,
2774
+ show_custom_field: false
2775
+ };
2776
+ switch (value) {
2777
+ case Timeline.CUSTOM:
2778
+ data.show_custom_field = true;
2779
+ data.date_from = dateFrom ? moment(dateFrom).toISOString() : "";
2780
+ data.date_to = dateTo ? moment(dateTo).toISOString() : "";
2781
+ break;
2782
+ case Timeline.TODAY: {
2783
+ const now = moment();
2784
+ data.date_from = now.startOf("day").toISOString();
2785
+ data.date_to = now.endOf("day").toISOString();
2786
+ break;
2787
+ }
2788
+ case Timeline.YESTERDAY: {
2789
+ const now = moment().subtract(1, "day");
2790
+ data.date_from = now.startOf("day").toISOString();
2791
+ data.date_to = now.endOf("day").toISOString();
2792
+ break;
2793
+ }
2794
+ case Timeline.THIS_WEEK: {
2795
+ const now = moment();
2796
+ data.date_from = now.startOf("isoWeek").toISOString();
2797
+ data.date_to = now.endOf("isoWeek").toISOString();
2798
+ break;
2799
+ }
2800
+ case Timeline.LAST_WEEK: {
2801
+ const now = moment().subtract(1, "week");
2802
+ data.date_from = now.startOf("isoWeek").toISOString();
2803
+ data.date_to = now.endOf("isoWeek").toISOString();
2804
+ break;
2805
+ }
2806
+ case Timeline.THIS_MONTH: {
2807
+ const now = moment();
2808
+ data.date_from = now.startOf("month").toISOString();
2809
+ data.date_to = now.endOf("month").toISOString();
2810
+ break;
2811
+ }
2812
+ case Timeline.LAST_MONTH: {
2813
+ const now = moment().subtract(1, "month");
2814
+ data.date_from = now.startOf("month").toISOString();
2815
+ data.date_to = now.endOf("month").toISOString();
2816
+ break;
2817
+ }
2818
+ case Timeline.THIS_QUARTER: {
2819
+ const now = moment();
2820
+ data.date_from = now.startOf("quarter").toISOString();
2821
+ data.date_to = now.endOf("quarter").toISOString();
2822
+ break;
2823
+ }
2824
+ case Timeline.LAST_QUARTER: {
2825
+ const now = moment().subtract(1, "quarter");
2826
+ data.date_from = now.startOf("quarter").toISOString();
2827
+ data.date_to = now.endOf("quarter").toISOString();
2828
+ break;
2829
+ }
2830
+ case Timeline.THIS_YEAR: {
2831
+ const now = moment();
2832
+ data.date_from = now.startOf("year").toISOString();
2833
+ data.date_to = now.endOf("year").toISOString();
2834
+ break;
2835
+ }
2836
+ case Timeline.LAST_YEAR: {
2837
+ const now = moment().subtract(1, "year");
2838
+ data.date_from = now.startOf("year").toISOString();
2839
+ data.date_to = now.endOf("year").toISOString();
2840
+ break;
2841
+ }
2842
+ case Timeline.TOMMOROW: {
2843
+ const now = moment().add(1, "day");
2844
+ data.date_from = now.startOf("day").toISOString();
2845
+ data.date_to = now.endOf("day").toISOString();
2846
+ break;
2847
+ }
2848
+ case Timeline.NEXT_WEEK: {
2849
+ const now = moment().add(1, "week");
2850
+ data.date_from = now.startOf("isoWeek").toISOString();
2851
+ data.date_to = now.endOf("isoWeek").toISOString();
2852
+ break;
2853
+ }
2854
+ case Timeline.NEXT_MONTH: {
2855
+ const now = moment().add(1, "month");
2856
+ data.date_from = now.startOf("month").toISOString();
2857
+ data.date_to = now.endOf("month").toISOString();
2858
+ break;
2859
+ }
2860
+ default:
2861
+ data.date_from = "";
2862
+ data.date_to = "";
2863
+ }
2864
+ return data;
2865
+ }
2866
+ var TimelineFilterComponent_1;
2867
+ let TimelineFilterComponent = class TimelineFilterComponent {
2868
+ static {
2869
+ TimelineFilterComponent_1 = this;
2870
+ }
2871
+ set defaultValue(value) {
2872
+ this.value = value;
2873
+ }
2874
+ get empty() {
2875
+ const { value: { select_value } } = this.selectorForm;
2876
+ return !select_value;
2877
+ }
2878
+ get shouldLabelFloat() {
2879
+ return this.focused || !this.empty;
2880
+ }
2881
+ get required() {
2882
+ return this._required;
2883
+ }
2884
+ set required(value) {
2885
+ this.selectorForm?.get("select_value")?.setValidators(Validators.required);
2886
+ this._required = coerceBooleanProperty(value);
2887
+ this.stateChanges.next();
2888
+ }
2889
+ get disabled() {
2890
+ return this._disabled;
2891
+ }
2892
+ set disabled(value) {
2893
+ this._disabled = coerceBooleanProperty(value);
2894
+ this._disabled ? this.selectorForm.disable({ emitEvent: false }) : this.selectorForm.enable({ emitEvent: false });
2895
+ this.stateChanges.next();
2896
+ }
2897
+ get value() {
2898
+ if (this.selectorForm.valid) return this.selectorForm.value.select_value;
2899
+ return "";
2900
+ }
2901
+ set value(data) {
2902
+ this.selectorForm.patchValue({ select_value: parseInt(data) || "" }, { emitEvent: false });
2903
+ this.stateChanges.next();
2904
+ if (this.value == Timeline.CUSTOM) {
2905
+ if (this.isInitialised) this.openCalendar();
2906
+ else this.applyRange(this.getFieldValue(this.dateFrom) ?? null, this.getFieldValue(this.dateTo) ?? null);
2907
+ } else this.changeTimeline(parseInt(data) || "");
2908
+ this.isInitialised = true;
2909
+ }
2910
+ static {
2911
+ this.nextId = 0;
2912
+ }
2913
+ get timelineValue() {
2914
+ return this.selectorForm.get("select_value");
2915
+ }
2916
+ get isCustomSelected() {
2917
+ return this.value == Timeline.CUSTOM;
2918
+ }
2919
+ get customDateFrom() {
2920
+ return this.selectorForm.get("custom_date_from");
2921
+ }
2922
+ get customDateTo() {
2923
+ return this.selectorForm.get("custom_date_to");
2924
+ }
2925
+ constructor(formBuilder, ngControl, datePipe) {
2926
+ this.ngControl = ngControl;
2927
+ this.datePipe = datePipe;
2928
+ this.isInitialised = false;
2929
+ this.timelines = [
2930
+ {
2931
+ value: Timeline.CUSTOM,
2932
+ viewValue: "Custom"
2933
+ },
2934
+ {
2935
+ value: Timeline.TODAY,
2936
+ viewValue: "Today"
2937
+ },
2938
+ {
2939
+ value: Timeline.YESTERDAY,
2940
+ viewValue: "Yesterday"
2941
+ },
2942
+ {
2943
+ value: Timeline.TOMMOROW,
2944
+ viewValue: "Tomorrow"
2945
+ },
2946
+ {
2947
+ value: Timeline.THIS_WEEK,
2948
+ viewValue: "This Week"
2949
+ },
2950
+ {
2951
+ value: Timeline.LAST_WEEK,
2952
+ viewValue: "Last Week"
2953
+ },
2954
+ {
2955
+ value: Timeline.NEXT_WEEK,
2956
+ viewValue: "Next Week"
2957
+ },
2958
+ {
2959
+ value: Timeline.THIS_MONTH,
2960
+ viewValue: "This Month"
2961
+ },
2962
+ {
2963
+ value: Timeline.LAST_MONTH,
2964
+ viewValue: "Last Month"
2965
+ },
2966
+ {
2967
+ value: Timeline.NEXT_MONTH,
2968
+ viewValue: "Next Month"
2969
+ },
2970
+ {
2971
+ value: Timeline.THIS_QUARTER,
2972
+ viewValue: "This Quarter"
2973
+ },
2974
+ {
2975
+ value: Timeline.LAST_QUARTER,
2976
+ viewValue: "Last Quarter"
2977
+ },
2978
+ {
2979
+ value: Timeline.THIS_YEAR,
2980
+ viewValue: "This Year"
2981
+ },
2982
+ {
2983
+ value: Timeline.LAST_YEAR,
2984
+ viewValue: "Last Year"
2985
+ },
2986
+ {
2987
+ value: Timeline.ALL,
2988
+ viewValue: "All dates"
2989
+ }
2990
+ ];
2991
+ this.dateFrom = "date_from";
2992
+ this.dateTo = "date_to";
2993
+ this.appearance = "fill";
2994
+ this.showClearButton = false;
2995
+ this.labelText = "Select Timeline";
2996
+ this.selectionChange = new EventEmitter();
2997
+ this.stateChanges = new Subject();
2998
+ this.controlType = "timeline-filter";
2999
+ this.id = `timeline-filter-${TimelineFilterComponent_1.nextId++}`;
3000
+ this.describedBy = "";
3001
+ this.focused = false;
3002
+ this._required = false;
3003
+ this._disabled = false;
3004
+ this.onChange = () => {};
3005
+ this.onTouched = () => {};
3006
+ this.selectedRangeLabel = "";
3007
+ this.selectorForm = formBuilder.group({
3008
+ select_value: [""],
3009
+ custom_date_from: [""],
3010
+ custom_date_to: [""]
3011
+ });
3012
+ if (this.ngControl != null) this.ngControl.valueAccessor = this;
3013
+ }
3014
+ ngOnInit() {
3015
+ this.timelineValue.valueChanges.pipe(debounceTime$1(100), distinctUntilChanged$1(), untilDestroyed(this)).subscribe((value) => this.value = value);
3016
+ this.customDateTo.valueChanges.pipe(distinctUntilChanged$1(), untilDestroyed(this)).subscribe((val) => {
3017
+ if (val && !this.isCustomDatePatching) this.applyRange();
3018
+ });
3019
+ }
3020
+ resetFieldValue(field) {
3021
+ this.form?.get(field)?.setValue("");
3022
+ }
3023
+ getFieldValue(field) {
3024
+ return this.form?.get(field)?.value;
3025
+ }
3026
+ setFieldValue(field, value, emitEvent = true) {
3027
+ this.form?.get(field)?.setValue(value, { emitEvent });
3028
+ }
3029
+ changeTimeline(value, emitEvent = true) {
3030
+ value = parseInt(value);
3031
+ this.selectedRangeLabel = "";
3032
+ const timeline = calculateTimeline(value, this.dateFrom, this.dateTo);
3033
+ if (timeline) {
3034
+ this.setCustomDates("", "");
3035
+ this.setFieldValue(this.dateFrom, this.datePipe.transform(timeline.date_from, "yyyy-MM-dd"), emitEvent);
3036
+ this.setFieldValue(this.dateTo, this.datePipe.transform(timeline.date_to, "yyyy-MM-dd"), emitEvent);
3037
+ }
3038
+ if (emitEvent) {
3039
+ this.onChange(this.value);
3040
+ this.selectionChange.emit(timeline);
3041
+ }
3042
+ }
3043
+ openCalendar() {
3044
+ this.picker.open();
3045
+ }
3046
+ applyRange(defaultFrom, defaultTo, emitEvent = true) {
3047
+ const from = defaultFrom ?? this.selectorForm.get("custom_date_from")?.value;
3048
+ const to = defaultTo ?? this.selectorForm.get("custom_date_to")?.value;
3049
+ if (from && to) {
3050
+ this.selectedRangeLabel = `<b>${this.datePipe.transform(from, "yyyy-MM-dd")}</b>:<b>${this.datePipe.transform(to, "yyyy-MM-dd")}</b`;
3051
+ this.setFieldValue(this.dateFrom, this.datePipe.transform(from, "yyyy-MM-dd"), emitEvent);
3052
+ this.setFieldValue(this.dateTo, this.datePipe.transform(to, "yyyy-MM-dd"), emitEvent);
3053
+ if (emitEvent) {
3054
+ this.onChange(this.value);
3055
+ this.selectionChange.emit(this.value);
3056
+ }
3057
+ this.setCustomDates(from, to);
3058
+ }
3059
+ }
3060
+ setCustomDates(from, to) {
3061
+ this.isCustomDatePatching = true;
3062
+ this.selectorForm.get("custom_date_from")?.setValue(from, { emitEvent: false });
3063
+ this.selectorForm.get("custom_date_to")?.setValue(to, { emitEvent: false });
3064
+ this.isCustomDatePatching = false;
3065
+ }
3066
+ setDescribedByIds(ids) {
3067
+ this.describedBy = ids.join(" ");
3068
+ }
3069
+ onContainerClick(event) {
3070
+ event.stopPropagation();
3071
+ }
3072
+ writeValue(data) {
3073
+ this.selectorForm.patchValue({ select_value: parseInt(data) || "" }, { emitEvent: false });
3074
+ this.stateChanges.next();
3075
+ if (this.isCustomSelected) this.applyRange(this.getFieldValue(this.dateFrom) ?? null, this.getFieldValue(this.dateTo) ?? null, false);
3076
+ else {
3077
+ const value = parseInt(data) || "";
3078
+ const timeline = calculateTimeline(value || 0);
3079
+ const computedFrom = this.datePipe.transform(timeline.date_from, "yyyy-MM-dd");
3080
+ const computedTo = this.datePipe.transform(timeline.date_to, "yyyy-MM-dd");
3081
+ const hasDrifted = (computedFrom ?? "") !== (this.getFieldValue(this.dateFrom) ?? "") || (computedTo ?? "") !== (this.getFieldValue(this.dateTo) ?? "");
3082
+ this.changeTimeline(value, hasDrifted);
3083
+ }
3084
+ this.isInitialised = true;
3085
+ }
3086
+ registerOnChange(fn) {
3087
+ this.onChange = fn;
3088
+ }
3089
+ registerOnTouched(fn) {
3090
+ this.onTouched = fn;
3091
+ }
3092
+ setDisabledState(isDisabled) {
3093
+ this.disabled = isDisabled;
3094
+ }
3095
+ ngOnDestroy() {
3096
+ this.stateChanges.complete();
3097
+ }
3098
+ static {
3099
+ this.ɵfac = i0.ɵɵngDeclareFactory({
3100
+ minVersion: "12.0.0",
3101
+ version: "22.2.3",
3102
+ ngImport: i0,
3103
+ type: TimelineFilterComponent,
3104
+ deps: [
3105
+ { token: i1.UntypedFormBuilder },
3106
+ {
3107
+ token: i1.NgControl,
3108
+ optional: true,
3109
+ self: true
3110
+ },
3111
+ { token: i1$5.DatePipe }
3112
+ ],
3113
+ target: i0.ɵɵFactoryTarget.Component
3114
+ });
3115
+ }
3116
+ static {
3117
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
3118
+ minVersion: "14.0.0",
3119
+ version: "22.2.3",
3120
+ type: TimelineFilterComponent,
3121
+ isStandalone: false,
3122
+ selector: "app-timeline-filter",
3123
+ inputs: {
3124
+ defaultValue: "defaultValue",
3125
+ required: "required",
3126
+ disabled: "disabled",
3127
+ value: "value",
3128
+ timelines: "timelines",
3129
+ dateFrom: "dateFrom",
3130
+ dateTo: "dateTo",
3131
+ appearance: "appearance",
3132
+ showClearButton: "showClearButton",
3133
+ form: "form",
3134
+ labelText: "labelText"
3135
+ },
3136
+ outputs: { selectionChange: "selectionChange" },
3137
+ providers: [DatePipe, {
3138
+ provide: MatFormFieldControl,
3139
+ useExisting: TimelineFilterComponent
3140
+ }],
3141
+ viewQueries: [{
3142
+ propertyName: "picker",
3143
+ first: true,
3144
+ predicate: ["picker"],
3145
+ descendants: true
3146
+ }],
3147
+ ngImport: i0,
3148
+ template: "<ng-container [formGroup]=\"selectorForm\">\n <mat-form-field [appearance]=\"appearance\" class=\"fl-sm\">\n <mat-label>{{labelText}}</mat-label>\n <mat-select formControlName=\"select_value\">\n <mat-option *ngFor=\"let timeline of timelines\" [value]=\"timeline.value\">\n {{timeline.viewValue}}\n </mat-option>\n </mat-select>\n <button *ngIf=\"showClearButton && timelineValue.value\" matSuffix mat-icon-button\n (click)=\"timelineValue.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-hint *ngIf=\"isCustomSelected && selectedRangeLabel\" (click)=\"openCalendar()\" class=\"clickable d-flex\">\n <span [innerHTML]=\"selectedRangeLabel\" style=\"font-size: 10px;\"></span>\n <app-techlify-icon name=\"edit\" class=\"clickable\" size=\"xs\" style=\"margin-left:2px\"></app-techlify-icon>\n </mat-hint>\n <mat-hint *ngIf=\"isCustomSelected && !selectedRangeLabel\" (click)=\"openCalendar()\" class=\"clickable d-flex\">\n <span style=\"font-size: 10px;\">Select Range</span>\n <app-techlify-icon name=\"edit\" class=\"clickable\" size=\"xs\" style=\"margin-left:2px\"></app-techlify-icon>\n </mat-hint>\n <mat-date-range-input class=\"offscreen-range-input\" [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"custom_date_from\" placeholder=\"From date\" readonly />\n <input matEndDate formControlName=\"custom_date_to\" placeholder=\"To date\" readonly />\n </mat-date-range-input>\n <mat-date-range-picker #picker></mat-date-range-picker>\n </mat-form-field>\n</ng-container>",
3149
+ styles: [".fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.wpx-50{width:50px!important}.wpx-100{width:100px!important}.wpx-120{width:120px!important}.wpx-125{width:125px!important}.wpx-150{width:150px!important}.wpx-200{width:200px!important}.wpx-250{width:250px!important}.min-wpx-200{min-width:200px!important}.max-width-px-115{max-width:115px}.w-description{width:300px!important}.side-panel{width:300px!important;min-width:300px!important;flex-shrink:0!important}.h-250px{height:250px!important}.scroll-y{overflow-y:auto}.flex-basis-0{flex-basis:0}.flex-basis-5{flex-basis:5%}.flex-basis-8{flex-basis:8%}.flex-basis-10{flex-basis:10%}.flex-basis-15{flex-basis:15%}.flex-basis-20{flex-basis:20%}.flex-basis-25{flex-basis:25%}.flex-basis-30{flex-basis:30%}.flex-basis-35{flex-basis:35%}.flex-basis-40{flex-basis:40%}.flex-basis-45{flex-basis:45%}.flex-basis-48{flex-basis:48%}.flex-basis-49{flex-basis:49%}.flex-basis-50{flex-basis:50%}.flex-basis-60{flex-basis:60%}.flex-basis-65{flex-basis:65%}.flex-basis-70{flex-basis:70%}.flex-basis-80{flex-basis:80%}.flex-basis-90{flex-basis:90%}.flex-basis-95{flex-basis:95%}.flex-basis-100{flex-basis:100%}.flex-basis-50-minus-1rem{flex-basis:calc(50% - 1rem)}.flex-basis-50-minus-0-2rem{flex-basis:calc(50% - .2rem)}.flex-basis-20-minus-1rem{flex-basis:calc(20% - 1rem)}.flex-basis-15-minus-1rem{flex-basis:calc(15% - 1rem)}.flex-basis-50-minus-4px{flex-basis:calc(50% - 4px)}@media(min-width:992px){.flex-lg-basis-50{flex-basis:50%}}@media(min-width:1200px){.flex-xl-basis-30{flex-basis:30%}.flex-xl-basis-30-minus-1rem{flex:0 1 calc(30% - 1rem)}}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}button,a,input{outline:none!important}::-webkit-scrollbar{width:.5em}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:gray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#4d4c4c}.icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.mat-icon-xl{height:40px!important;width:40px!important;font-size:40px!important}.mat-icon-20px{font-size:20px!important;height:20px!important;width:20px!important}.mat-small-icon{height:16px!important;width:16px!important;font-size:16px!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.mdc-button__label{letter-spacing:normal!important}.mat-mdc-button .mat-icon{height:24px!important;width:24px!important;font-size:24px!important}.mat-button-toggle-group{height:48px!important;align-items:center}.mat-button-toggle-button{height:48px!important}.mat-button-toggle-label-content{padding:0 8px!important;font-size:14px!important}.mat-mdc-slide-toggle label{margin:0!important}.small-slide-toggle{transform:scale(.8);transform-origin:left center}.fs-8{font-size:8px!important}.fs-12{font-size:12px!important}.fs-13{font-size:13px!important}.fs-16{font-size:16px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.mat-mdc-floating-label{pointer-events:none!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.create-another .mat-mdc-checkbox label{margin:0!important}.create-another .mdc-checkbox{padding:0!important}.create-another .mdc-checkbox__background{position:relative;top:0;left:0}.mat-mdc-form-field.mat-form-field-disabled .mat-mdc-input-element{color:#555!important;-webkit-text-fill-color:#555555!important}.mat-mdc-form-field.mat-form-field-disabled .mat-mdc-select-value{color:#555!important}.mat-mdc-card{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);padding:16px}.mat-mdc-card-content{padding:0!important}.mat-mdc-dialog-surface{padding:24px}.mat-mdc-dialog-title{padding:0!important}.mat-mdc-dialog-title .mat-mdc-dialog-title:before{height:0!important}.mat-mdc-dialog-title *{position:relative;top:-30px!important}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:6px!important}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 8px!important}.mat-column-actions .mat-mdc-icon-button{width:30px!important;height:30px!important;top:6px!important}.mat-column-actions .mat-mdc-icon-button .mat-icon{bottom:9px!important;right:9px!important}.mat-mdc-progress-bar{border-radius:2px}.chip-mini-grey{background-color:#d9d9d9!important;border-radius:3px;display:inline-block;padding:0 6px;font-size:13px}.chip-mini-outline{background-color:#fff!important;border-radius:3px;display:inline-block;padding:0 6px;outline:1px solid #bbb;font-size:13px}.techlify-badge-grey-outlined{background-color:#f2f3f5!important;font-weight:400!important;font-size:12px!important;color:#000!important}.techlify-badge-white-outlined{font-weight:400!important;font-size:12px!important;border-style:solid!important;border-width:thin!important;color:#000!important;border-color:#000!important}.offscreen-range-input{position:absolute;opacity:0;pointer-events:none;display:flex!important}\n"],
3150
+ dependencies: [
3151
+ {
3152
+ kind: "directive",
3153
+ type: i1$5.NgForOf,
3154
+ selector: "[ngFor][ngForOf]",
3155
+ inputs: [
3156
+ "ngForOf",
3157
+ "ngForTrackBy",
3158
+ "ngForTemplate"
3159
+ ]
3160
+ },
3161
+ {
3162
+ kind: "directive",
3163
+ type: i1$5.NgIf,
3164
+ selector: "[ngIf]",
3165
+ inputs: [
3166
+ "ngIf",
3167
+ "ngIfThen",
3168
+ "ngIfElse"
3169
+ ]
3170
+ },
3171
+ {
3172
+ kind: "directive",
3173
+ type: i1.DefaultValueAccessor,
3174
+ selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]"
3175
+ },
3176
+ {
3177
+ kind: "directive",
3178
+ type: i1.NgControlStatus,
3179
+ selector: "[formControlName],[ngModel],[formControl]"
3180
+ },
3181
+ {
3182
+ kind: "directive",
3183
+ type: i1.NgControlStatusGroup,
3184
+ selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]"
3185
+ },
3186
+ {
3187
+ kind: "directive",
3188
+ type: i1.FormGroupDirective,
3189
+ selector: "[formGroup]",
3190
+ inputs: ["formGroup"],
3191
+ outputs: ["ngSubmit"],
3192
+ exportAs: ["ngForm"]
3193
+ },
3194
+ {
3195
+ kind: "directive",
3196
+ type: i1.FormControlName,
3197
+ selector: "[formControlName]",
3198
+ inputs: [
3199
+ "formControlName",
3200
+ "disabled",
3201
+ "ngModel"
3202
+ ],
3203
+ outputs: ["ngModelChange"]
3204
+ },
3205
+ {
3206
+ kind: "component",
3207
+ type: i3.MatFormField,
3208
+ selector: "mat-form-field",
3209
+ inputs: [
3210
+ "hideRequiredMarker",
3211
+ "color",
3212
+ "floatLabel",
3213
+ "appearance",
3214
+ "subscriptSizing",
3215
+ "hintLabel"
3216
+ ],
3217
+ exportAs: ["matFormField"]
3218
+ },
3219
+ {
3220
+ kind: "directive",
3221
+ type: i3.MatLabel,
3222
+ selector: "mat-label"
3223
+ },
3224
+ {
3225
+ kind: "directive",
3226
+ type: i3.MatHint,
3227
+ selector: "mat-hint",
3228
+ inputs: ["align", "id"]
3229
+ },
3230
+ {
3231
+ kind: "directive",
3232
+ type: i3.MatSuffix,
3233
+ selector: "[matSuffix], [matIconSuffix], [matTextSuffix]",
3234
+ inputs: ["matTextSuffix"]
3235
+ },
3236
+ {
3237
+ kind: "component",
3238
+ type: i4.MatSelect,
3239
+ selector: "mat-select",
3240
+ inputs: [
3241
+ "aria-describedby",
3242
+ "panelClass",
3243
+ "disabled",
3244
+ "disableRipple",
3245
+ "tabIndex",
3246
+ "hideSingleSelectionIndicator",
3247
+ "placeholder",
3248
+ "required",
3249
+ "multiple",
3250
+ "disableOptionCentering",
3251
+ "compareWith",
3252
+ "value",
3253
+ "aria-label",
3254
+ "aria-labelledby",
3255
+ "errorStateMatcher",
3256
+ "typeaheadDebounceInterval",
3257
+ "sortComparator",
3258
+ "id",
3259
+ "panelWidth",
3260
+ "canSelectNullableOptions"
3261
+ ],
3262
+ outputs: [
3263
+ "openedChange",
3264
+ "opened",
3265
+ "closed",
3266
+ "selectionChange",
3267
+ "valueChange"
3268
+ ],
3269
+ exportAs: ["matSelect"]
3270
+ },
3271
+ {
3272
+ kind: "component",
3273
+ type: i5.MatOption,
3274
+ selector: "mat-option",
3275
+ inputs: [
3276
+ "value",
3277
+ "id",
3278
+ "disabled"
3279
+ ],
3280
+ outputs: ["onSelectionChange"],
3281
+ exportAs: ["matOption"]
3282
+ },
3283
+ {
3284
+ kind: "component",
3285
+ type: i2$2.MatIconButton,
3286
+ selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]",
3287
+ exportAs: ["matButton", "matAnchor"]
3288
+ },
3289
+ {
3290
+ kind: "component",
3291
+ type: i1$7.MatIcon,
3292
+ selector: "mat-icon",
3293
+ inputs: [
3294
+ "color",
3295
+ "inline",
3296
+ "svgIcon",
3297
+ "fontSet",
3298
+ "fontIcon"
3299
+ ],
3300
+ exportAs: ["matIcon"]
3301
+ },
3302
+ {
3303
+ kind: "component",
3304
+ type: i8.MatDateRangeInput,
3305
+ selector: "mat-date-range-input",
3306
+ inputs: [
3307
+ "rangePicker",
3308
+ "required",
3309
+ "dateFilter",
3310
+ "min",
3311
+ "max",
3312
+ "disabled",
3313
+ "separator",
3314
+ "comparisonStart",
3315
+ "comparisonEnd"
3316
+ ],
3317
+ exportAs: ["matDateRangeInput"]
3318
+ },
3319
+ {
3320
+ kind: "directive",
3321
+ type: i8.MatStartDate,
3322
+ selector: "input[matStartDate]",
3323
+ outputs: ["dateChange", "dateInput"]
3324
+ },
3325
+ {
3326
+ kind: "directive",
3327
+ type: i8.MatEndDate,
3328
+ selector: "input[matEndDate]",
3329
+ outputs: ["dateChange", "dateInput"]
3330
+ },
3331
+ {
3332
+ kind: "component",
3333
+ type: i8.MatDateRangePicker,
3334
+ selector: "mat-date-range-picker",
3335
+ exportAs: ["matDateRangePicker"]
3336
+ },
3337
+ {
3338
+ kind: "component",
3339
+ type: TechlifyIconComponent,
3340
+ selector: "app-techlify-icon",
3341
+ inputs: ["name", "size"]
3342
+ }
3343
+ ],
3344
+ changeDetection: i0.ChangeDetectionStrategy.Eager
3345
+ });
3346
+ }
3347
+ };
3348
+ TimelineFilterComponent = TimelineFilterComponent_1 = __decorate([UntilDestroy()], TimelineFilterComponent);
3349
+ i0.ɵɵngDeclareClassMetadata({
3350
+ minVersion: "12.0.0",
3351
+ version: "22.2.3",
3352
+ ngImport: i0,
3353
+ type: TimelineFilterComponent,
3354
+ decorators: [{
3355
+ type: Component,
3356
+ args: [{
3357
+ selector: "app-timeline-filter",
3358
+ providers: [DatePipe, {
3359
+ provide: MatFormFieldControl,
3360
+ useExisting: TimelineFilterComponent
3361
+ }],
3362
+ changeDetection: ChangeDetectionStrategy.Eager,
3363
+ standalone: false,
3364
+ template: "<ng-container [formGroup]=\"selectorForm\">\n <mat-form-field [appearance]=\"appearance\" class=\"fl-sm\">\n <mat-label>{{labelText}}</mat-label>\n <mat-select formControlName=\"select_value\">\n <mat-option *ngFor=\"let timeline of timelines\" [value]=\"timeline.value\">\n {{timeline.viewValue}}\n </mat-option>\n </mat-select>\n <button *ngIf=\"showClearButton && timelineValue.value\" matSuffix mat-icon-button\n (click)=\"timelineValue.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n <mat-hint *ngIf=\"isCustomSelected && selectedRangeLabel\" (click)=\"openCalendar()\" class=\"clickable d-flex\">\n <span [innerHTML]=\"selectedRangeLabel\" style=\"font-size: 10px;\"></span>\n <app-techlify-icon name=\"edit\" class=\"clickable\" size=\"xs\" style=\"margin-left:2px\"></app-techlify-icon>\n </mat-hint>\n <mat-hint *ngIf=\"isCustomSelected && !selectedRangeLabel\" (click)=\"openCalendar()\" class=\"clickable d-flex\">\n <span style=\"font-size: 10px;\">Select Range</span>\n <app-techlify-icon name=\"edit\" class=\"clickable\" size=\"xs\" style=\"margin-left:2px\"></app-techlify-icon>\n </mat-hint>\n <mat-date-range-input class=\"offscreen-range-input\" [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"custom_date_from\" placeholder=\"From date\" readonly />\n <input matEndDate formControlName=\"custom_date_to\" placeholder=\"To date\" readonly />\n </mat-date-range-input>\n <mat-date-range-picker #picker></mat-date-range-picker>\n </mat-form-field>\n</ng-container>",
3365
+ styles: [".fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.wpx-50{width:50px!important}.wpx-100{width:100px!important}.wpx-120{width:120px!important}.wpx-125{width:125px!important}.wpx-150{width:150px!important}.wpx-200{width:200px!important}.wpx-250{width:250px!important}.min-wpx-200{min-width:200px!important}.max-width-px-115{max-width:115px}.w-description{width:300px!important}.side-panel{width:300px!important;min-width:300px!important;flex-shrink:0!important}.h-250px{height:250px!important}.scroll-y{overflow-y:auto}.flex-basis-0{flex-basis:0}.flex-basis-5{flex-basis:5%}.flex-basis-8{flex-basis:8%}.flex-basis-10{flex-basis:10%}.flex-basis-15{flex-basis:15%}.flex-basis-20{flex-basis:20%}.flex-basis-25{flex-basis:25%}.flex-basis-30{flex-basis:30%}.flex-basis-35{flex-basis:35%}.flex-basis-40{flex-basis:40%}.flex-basis-45{flex-basis:45%}.flex-basis-48{flex-basis:48%}.flex-basis-49{flex-basis:49%}.flex-basis-50{flex-basis:50%}.flex-basis-60{flex-basis:60%}.flex-basis-65{flex-basis:65%}.flex-basis-70{flex-basis:70%}.flex-basis-80{flex-basis:80%}.flex-basis-90{flex-basis:90%}.flex-basis-95{flex-basis:95%}.flex-basis-100{flex-basis:100%}.flex-basis-50-minus-1rem{flex-basis:calc(50% - 1rem)}.flex-basis-50-minus-0-2rem{flex-basis:calc(50% - .2rem)}.flex-basis-20-minus-1rem{flex-basis:calc(20% - 1rem)}.flex-basis-15-minus-1rem{flex-basis:calc(15% - 1rem)}.flex-basis-50-minus-4px{flex-basis:calc(50% - 4px)}@media(min-width:992px){.flex-lg-basis-50{flex-basis:50%}}@media(min-width:1200px){.flex-xl-basis-30{flex-basis:30%}.flex-xl-basis-30-minus-1rem{flex:0 1 calc(30% - 1rem)}}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}button,a,input{outline:none!important}::-webkit-scrollbar{width:.5em}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:gray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#4d4c4c}.icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.mat-icon-xl{height:40px!important;width:40px!important;font-size:40px!important}.mat-icon-20px{font-size:20px!important;height:20px!important;width:20px!important}.mat-small-icon{height:16px!important;width:16px!important;font-size:16px!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.mdc-button__label{letter-spacing:normal!important}.mat-mdc-button .mat-icon{height:24px!important;width:24px!important;font-size:24px!important}.mat-button-toggle-group{height:48px!important;align-items:center}.mat-button-toggle-button{height:48px!important}.mat-button-toggle-label-content{padding:0 8px!important;font-size:14px!important}.mat-mdc-slide-toggle label{margin:0!important}.small-slide-toggle{transform:scale(.8);transform-origin:left center}.fs-8{font-size:8px!important}.fs-12{font-size:12px!important}.fs-13{font-size:13px!important}.fs-16{font-size:16px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.mat-mdc-floating-label{pointer-events:none!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.create-another .mat-mdc-checkbox label{margin:0!important}.create-another .mdc-checkbox{padding:0!important}.create-another .mdc-checkbox__background{position:relative;top:0;left:0}.mat-mdc-form-field.mat-form-field-disabled .mat-mdc-input-element{color:#555!important;-webkit-text-fill-color:#555555!important}.mat-mdc-form-field.mat-form-field-disabled .mat-mdc-select-value{color:#555!important}.mat-mdc-card{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);padding:16px}.mat-mdc-card-content{padding:0!important}.mat-mdc-dialog-surface{padding:24px}.mat-mdc-dialog-title{padding:0!important}.mat-mdc-dialog-title .mat-mdc-dialog-title:before{height:0!important}.mat-mdc-dialog-title *{position:relative;top:-30px!important}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:6px!important}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 8px!important}.mat-column-actions .mat-mdc-icon-button{width:30px!important;height:30px!important;top:6px!important}.mat-column-actions .mat-mdc-icon-button .mat-icon{bottom:9px!important;right:9px!important}.mat-mdc-progress-bar{border-radius:2px}.chip-mini-grey{background-color:#d9d9d9!important;border-radius:3px;display:inline-block;padding:0 6px;font-size:13px}.chip-mini-outline{background-color:#fff!important;border-radius:3px;display:inline-block;padding:0 6px;outline:1px solid #bbb;font-size:13px}.techlify-badge-grey-outlined{background-color:#f2f3f5!important;font-weight:400!important;font-size:12px!important;color:#000!important}.techlify-badge-white-outlined{font-weight:400!important;font-size:12px!important;border-style:solid!important;border-width:thin!important;color:#000!important;border-color:#000!important}.offscreen-range-input{position:absolute;opacity:0;pointer-events:none;display:flex!important}\n"]
3366
+ }]
3367
+ }],
3368
+ ctorParameters: () => [
3369
+ { type: i1.UntypedFormBuilder },
3370
+ {
3371
+ type: i1.NgControl,
3372
+ decorators: [{ type: Optional }, { type: Self }]
3373
+ },
3374
+ { type: i1$5.DatePipe }
3375
+ ],
3376
+ propDecorators: {
3377
+ defaultValue: [{ type: Input }],
3378
+ required: [{ type: Input }],
3379
+ disabled: [{ type: Input }],
3380
+ value: [{ type: Input }],
3381
+ picker: [{
3382
+ type: ViewChild,
3383
+ args: ["picker"]
3384
+ }],
3385
+ timelines: [{ type: Input }],
3386
+ dateFrom: [{ type: Input }],
3387
+ dateTo: [{ type: Input }],
3388
+ appearance: [{ type: Input }],
3389
+ showClearButton: [{ type: Input }],
3390
+ form: [{ type: Input }],
3391
+ labelText: [{ type: Input }],
3392
+ selectionChange: [{ type: Output }]
3393
+ }
3394
+ });
3395
+ var TechlifyFormButtonComponent = class TechlifyFormButtonComponent {
3396
+ constructor(matDialog) {
3397
+ this.matDialog = matDialog;
3398
+ this.component = input.required(...ngDevMode ? [{ debugName: "component" }] : /* istanbul ignore next */ []);
3399
+ this.model = input(...ngDevMode ? [void 0, { debugName: "model" }] : /* istanbul ignore next */ []);
3400
+ this.data = input({}, ...ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []);
3401
+ this.width = input("700px", ...ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []);
3402
+ this.saved = output();
3403
+ }
3404
+ open() {
3405
+ this.matDialog.open(this.component(), {
3406
+ width: this.width(),
3407
+ data: {
3408
+ model: this.model(),
3409
+ ...this.data()
3410
+ }
3411
+ }).afterClosed().subscribe((result) => {
3412
+ if (result) this.saved.emit(result);
3413
+ });
3414
+ }
3415
+ static {
3416
+ this.ɵfac = i0.ɵɵngDeclareFactory({
3417
+ minVersion: "12.0.0",
3418
+ version: "22.2.3",
3419
+ ngImport: i0,
3420
+ type: TechlifyFormButtonComponent,
3421
+ deps: [{ token: i1$8.MatDialog }],
3422
+ target: i0.ɵɵFactoryTarget.Component
3423
+ });
3424
+ }
3425
+ static {
3426
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
3427
+ minVersion: "17.1.0",
3428
+ version: "22.2.3",
3429
+ type: TechlifyFormButtonComponent,
3430
+ isStandalone: true,
3431
+ selector: "app-techlify-form-button",
3432
+ inputs: {
3433
+ component: {
3434
+ classPropertyName: "component",
3435
+ publicName: "component",
3436
+ isSignal: true,
3437
+ isRequired: true,
3438
+ transformFunction: null
3439
+ },
3440
+ model: {
3441
+ classPropertyName: "model",
3442
+ publicName: "model",
3443
+ isSignal: true,
3444
+ isRequired: false,
3445
+ transformFunction: null
3446
+ },
3447
+ data: {
3448
+ classPropertyName: "data",
3449
+ publicName: "data",
3450
+ isSignal: true,
3451
+ isRequired: false,
3452
+ transformFunction: null
3453
+ },
3454
+ width: {
3455
+ classPropertyName: "width",
3456
+ publicName: "width",
3457
+ isSignal: true,
3458
+ isRequired: false,
3459
+ transformFunction: null
3460
+ }
3461
+ },
3462
+ outputs: { saved: "saved" },
3463
+ ngImport: i0,
3464
+ template: "<app-techlify-icon role=\"button\" [name]=\"model() ? 'edit' : 'add'\" (click)=\"open()\"></app-techlify-icon>\r\n",
3465
+ dependencies: [
3466
+ {
3467
+ kind: "ngmodule",
3468
+ type: CommonModule
3469
+ },
3470
+ {
3471
+ kind: "ngmodule",
3472
+ type: MaterialModule
3473
+ },
3474
+ {
3475
+ kind: "ngmodule",
3476
+ type: TechlifyIconModule
3477
+ },
3478
+ {
3479
+ kind: "component",
3480
+ type: TechlifyIconComponent,
3481
+ selector: "app-techlify-icon",
3482
+ inputs: ["name", "size"]
3483
+ }
3484
+ ],
3485
+ changeDetection: i0.ChangeDetectionStrategy.Eager
3486
+ });
3487
+ }
3488
+ };
3489
+ i0.ɵɵngDeclareClassMetadata({
3490
+ minVersion: "12.0.0",
3491
+ version: "22.2.3",
3492
+ ngImport: i0,
3493
+ type: TechlifyFormButtonComponent,
3494
+ decorators: [{
3495
+ type: Component,
3496
+ args: [{
3497
+ selector: "app-techlify-form-button",
3498
+ standalone: true,
3499
+ changeDetection: ChangeDetectionStrategy.Eager,
3500
+ imports: [
3501
+ CommonModule,
3502
+ MaterialModule,
3503
+ TechlifyIconModule
3504
+ ],
3505
+ template: "<app-techlify-icon role=\"button\" [name]=\"model() ? 'edit' : 'add'\" (click)=\"open()\"></app-techlify-icon>\r\n"
3506
+ }]
3507
+ }],
3508
+ ctorParameters: () => [{ type: i1$8.MatDialog }],
3509
+ propDecorators: {
3510
+ component: [{
3511
+ type: i0.Input,
3512
+ args: [{
3513
+ isSignal: true,
3514
+ alias: "component",
3515
+ required: true
3516
+ }]
3517
+ }],
3518
+ model: [{
3519
+ type: i0.Input,
3520
+ args: [{
3521
+ isSignal: true,
3522
+ alias: "model",
3523
+ required: false
3524
+ }]
3525
+ }],
3526
+ data: [{
3527
+ type: i0.Input,
3528
+ args: [{
3529
+ isSignal: true,
3530
+ alias: "data",
3531
+ required: false
3532
+ }]
3533
+ }],
3534
+ width: [{
3535
+ type: i0.Input,
3536
+ args: [{
3537
+ isSignal: true,
3538
+ alias: "width",
3539
+ required: false
3540
+ }]
3541
+ }],
3542
+ saved: [{
3543
+ type: i0.Output,
3544
+ args: ["saved"]
3545
+ }]
3546
+ }
3547
+ });
3548
+ var ActionPopupModule = class ActionPopupModule {
3549
+ static {
3550
+ this.ɵfac = i0.ɵɵngDeclareFactory({
3551
+ minVersion: "12.0.0",
3552
+ version: "22.2.3",
3553
+ ngImport: i0,
3554
+ type: ActionPopupModule,
3555
+ deps: [],
3556
+ target: i0.ɵɵFactoryTarget.NgModule
3557
+ });
3558
+ }
3559
+ static {
3560
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
3561
+ minVersion: "14.0.0",
3562
+ version: "22.2.3",
3563
+ ngImport: i0,
3564
+ type: ActionPopupModule,
3565
+ declarations: [ActionPopupComponent],
3566
+ imports: [CommonModule, MaterialModule],
3567
+ exports: [ActionPopupComponent]
3568
+ });
3569
+ }
3570
+ static {
3571
+ this.ɵinj = i0.ɵɵngDeclareInjector({
3572
+ minVersion: "12.0.0",
3573
+ version: "22.2.3",
3574
+ ngImport: i0,
3575
+ type: ActionPopupModule,
3576
+ imports: [CommonModule, MaterialModule]
3577
+ });
3578
+ }
3579
+ };
3580
+ i0.ɵɵngDeclareClassMetadata({
3581
+ minVersion: "12.0.0",
3582
+ version: "22.2.3",
3583
+ ngImport: i0,
3584
+ type: ActionPopupModule,
3585
+ decorators: [{
3586
+ type: NgModule,
3587
+ args: [{
3588
+ imports: [CommonModule, MaterialModule],
3589
+ declarations: [ActionPopupComponent],
3590
+ exports: [ActionPopupComponent]
3591
+ }]
3592
+ }]
3593
+ });
3594
+ var DocumentViewerModule = class DocumentViewerModule {
3595
+ static {
3596
+ this.ɵfac = i0.ɵɵngDeclareFactory({
3597
+ minVersion: "12.0.0",
3598
+ version: "22.2.3",
3599
+ ngImport: i0,
3600
+ type: DocumentViewerModule,
3601
+ deps: [],
3602
+ target: i0.ɵɵFactoryTarget.NgModule
3603
+ });
3604
+ }
3605
+ static {
3606
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
3607
+ minVersion: "14.0.0",
3608
+ version: "22.2.3",
3609
+ ngImport: i0,
3610
+ type: DocumentViewerModule,
3611
+ declarations: [DocumentViewerComponent],
3612
+ imports: [
3613
+ CommonModule,
3614
+ NgxDocViewerModule,
3615
+ MaterialModule
3616
+ ],
3617
+ exports: [DocumentViewerComponent]
3618
+ });
3619
+ }
3620
+ static {
3621
+ this.ɵinj = i0.ɵɵngDeclareInjector({
3622
+ minVersion: "12.0.0",
3623
+ version: "22.2.3",
3624
+ ngImport: i0,
3625
+ type: DocumentViewerModule,
3626
+ imports: [
3627
+ CommonModule,
3628
+ NgxDocViewerModule,
3629
+ MaterialModule
3630
+ ]
3631
+ });
3632
+ }
3633
+ };
3634
+ i0.ɵɵngDeclareClassMetadata({
3635
+ minVersion: "12.0.0",
3636
+ version: "22.2.3",
3637
+ ngImport: i0,
3638
+ type: DocumentViewerModule,
3639
+ decorators: [{
3640
+ type: NgModule,
3641
+ args: [{
3642
+ imports: [
3643
+ CommonModule,
3644
+ NgxDocViewerModule,
3645
+ MaterialModule
3646
+ ],
3647
+ declarations: [DocumentViewerComponent],
3648
+ exports: [DocumentViewerComponent]
3649
+ }]
3650
+ }]
3651
+ });
3652
+ var ExportExcelButtonComponent = class ExportExcelButtonComponent {
3653
+ constructor() {
3654
+ this.isCSV = false;
3655
+ this.iconName = "export";
3656
+ this.fileName = "Export_Data";
3657
+ this.data = [];
3658
+ this.isParseNumeric = false;
3659
+ this.isExportingToExcel = new EventEmitter();
3660
+ this.isWorking = false;
3661
+ }
3662
+ ngOnInit() {}
3663
+ exportToExcel() {
3664
+ this.isWorking = true;
3665
+ this.isExportingToExcel.emit(true);
3666
+ setTimeout(() => {
3667
+ if (this.data?.length > 0) this.convertJSONToExcel();
3668
+ else if (this.tableId) this.convertTableToExcel();
3669
+ this.isExportingToExcel.emit(false);
3670
+ this.isWorking = false;
3671
+ }, 1e3);
3672
+ }
3673
+ convertJSONToExcel() {
3674
+ const ws = XLSX.utils.json_to_sheet(this.data);
3675
+ const wb = XLSX.utils.book_new();
3676
+ XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
3677
+ if (this.isCSV) XLSX.writeFile(wb, `${this.fileName}.csv`, { bookType: "csv" });
3678
+ else XLSX.writeFile(wb, `${this.fileName}.xlsx`);
3679
+ }
3680
+ convertTableToExcel() {
3681
+ let element = document.getElementById(this.tableId);
3682
+ let ws = XLSX.utils.table_to_sheet(element, { raw: true });
3683
+ if (this.isParseNumeric && !this.isCSV) this.parseNumeric(ws);
3684
+ const wb = XLSX.utils.book_new();
3685
+ XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
3686
+ if (this.isCSV) XLSX.writeFile(wb, `${this.fileName}.csv`, { bookType: "csv" });
3687
+ else XLSX.writeFile(wb, `${this.fileName}.xlsx`);
3688
+ }
3689
+ parseNumeric(ws) {
3690
+ Object.keys(ws).forEach((key) => {
3691
+ if (key.startsWith("!")) return;
3692
+ const cell = ws[key];
3693
+ if (!cell) return;
3694
+ if (cell.t === "s") {
3695
+ const value = Number(cell.v);
3696
+ if (!isNaN(value)) {
3697
+ cell.v = value;
3698
+ cell.t = "n";
3699
+ }
3700
+ }
3701
+ });
3702
+ }
3703
+ static {
3704
+ this.ɵfac = i0.ɵɵngDeclareFactory({
3705
+ minVersion: "12.0.0",
3706
+ version: "22.2.3",
3707
+ ngImport: i0,
3708
+ type: ExportExcelButtonComponent,
3709
+ deps: [],
3710
+ target: i0.ɵɵFactoryTarget.Component
3711
+ });
3712
+ }
3713
+ static {
3714
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
3715
+ minVersion: "14.0.0",
3716
+ version: "22.2.3",
3717
+ type: ExportExcelButtonComponent,
3718
+ isStandalone: false,
3719
+ selector: "app-export-excel-button",
3720
+ inputs: {
3721
+ isCSV: "isCSV",
3722
+ iconName: "iconName",
3723
+ fileName: "fileName",
3724
+ data: "data",
3725
+ tableId: "tableId",
3726
+ isParseNumeric: "isParseNumeric"
3727
+ },
3728
+ outputs: { isExportingToExcel: "isExportingToExcel" },
3729
+ ngImport: i0,
3730
+ template: "<app-techlify-icon class=\"clickable d-print-none\" *ngIf=\"!isWorking\" [name]=\"iconName\" (click)=\"exportToExcel()\"\n matTooltip=\"Excel Export\">\n</app-techlify-icon>",
3731
+ styles: [".fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.wpx-50{width:50px!important}.wpx-100{width:100px!important}.wpx-120{width:120px!important}.wpx-125{width:125px!important}.wpx-150{width:150px!important}.wpx-200{width:200px!important}.wpx-250{width:250px!important}.min-wpx-200{min-width:200px!important}.max-width-px-115{max-width:115px}.w-description{width:300px!important}.side-panel{width:300px!important;min-width:300px!important;flex-shrink:0!important}.h-250px{height:250px!important}.scroll-y{overflow-y:auto}.flex-basis-0{flex-basis:0}.flex-basis-5{flex-basis:5%}.flex-basis-8{flex-basis:8%}.flex-basis-10{flex-basis:10%}.flex-basis-15{flex-basis:15%}.flex-basis-20{flex-basis:20%}.flex-basis-25{flex-basis:25%}.flex-basis-30{flex-basis:30%}.flex-basis-35{flex-basis:35%}.flex-basis-40{flex-basis:40%}.flex-basis-45{flex-basis:45%}.flex-basis-48{flex-basis:48%}.flex-basis-49{flex-basis:49%}.flex-basis-50{flex-basis:50%}.flex-basis-60{flex-basis:60%}.flex-basis-65{flex-basis:65%}.flex-basis-70{flex-basis:70%}.flex-basis-80{flex-basis:80%}.flex-basis-90{flex-basis:90%}.flex-basis-95{flex-basis:95%}.flex-basis-100{flex-basis:100%}.flex-basis-50-minus-1rem{flex-basis:calc(50% - 1rem)}.flex-basis-50-minus-0-2rem{flex-basis:calc(50% - .2rem)}.flex-basis-20-minus-1rem{flex-basis:calc(20% - 1rem)}.flex-basis-15-minus-1rem{flex-basis:calc(15% - 1rem)}.flex-basis-50-minus-4px{flex-basis:calc(50% - 4px)}@media(min-width:992px){.flex-lg-basis-50{flex-basis:50%}}@media(min-width:1200px){.flex-xl-basis-30{flex-basis:30%}.flex-xl-basis-30-minus-1rem{flex:0 1 calc(30% - 1rem)}}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}button,a,input{outline:none!important}::-webkit-scrollbar{width:.5em}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:gray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#4d4c4c}.icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.mat-icon-xl{height:40px!important;width:40px!important;font-size:40px!important}.mat-icon-20px{font-size:20px!important;height:20px!important;width:20px!important}.mat-small-icon{height:16px!important;width:16px!important;font-size:16px!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.mdc-button__label{letter-spacing:normal!important}.mat-mdc-button .mat-icon{height:24px!important;width:24px!important;font-size:24px!important}.mat-button-toggle-group{height:48px!important;align-items:center}.mat-button-toggle-button{height:48px!important}.mat-button-toggle-label-content{padding:0 8px!important;font-size:14px!important}.mat-mdc-slide-toggle label{margin:0!important}.small-slide-toggle{transform:scale(.8);transform-origin:left center}.fs-8{font-size:8px!important}.fs-12{font-size:12px!important}.fs-13{font-size:13px!important}.fs-16{font-size:16px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.mat-mdc-floating-label{pointer-events:none!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.create-another .mat-mdc-checkbox label{margin:0!important}.create-another .mdc-checkbox{padding:0!important}.create-another .mdc-checkbox__background{position:relative;top:0;left:0}.mat-mdc-form-field.mat-form-field-disabled .mat-mdc-input-element{color:#555!important;-webkit-text-fill-color:#555555!important}.mat-mdc-form-field.mat-form-field-disabled .mat-mdc-select-value{color:#555!important}.mat-mdc-card{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);padding:16px}.mat-mdc-card-content{padding:0!important}.mat-mdc-dialog-surface{padding:24px}.mat-mdc-dialog-title{padding:0!important}.mat-mdc-dialog-title .mat-mdc-dialog-title:before{height:0!important}.mat-mdc-dialog-title *{position:relative;top:-30px!important}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:6px!important}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 8px!important}.mat-column-actions .mat-mdc-icon-button{width:30px!important;height:30px!important;top:6px!important}.mat-column-actions .mat-mdc-icon-button .mat-icon{bottom:9px!important;right:9px!important}.mat-mdc-progress-bar{border-radius:2px}.chip-mini-grey{background-color:#d9d9d9!important;border-radius:3px;display:inline-block;padding:0 6px;font-size:13px}.chip-mini-outline{background-color:#fff!important;border-radius:3px;display:inline-block;padding:0 6px;outline:1px solid #bbb;font-size:13px}.techlify-badge-grey-outlined{background-color:#f2f3f5!important;font-weight:400!important;font-size:12px!important;color:#000!important}.techlify-badge-white-outlined{font-weight:400!important;font-size:12px!important;border-style:solid!important;border-width:thin!important;color:#000!important;border-color:#000!important}:host{display:flex;align-content:center}\n"],
3732
+ dependencies: [
3733
+ {
3734
+ kind: "directive",
3735
+ type: i1$5.NgIf,
3736
+ selector: "[ngIf]",
3737
+ inputs: [
3738
+ "ngIf",
3739
+ "ngIfThen",
3740
+ "ngIfElse"
3741
+ ]
3742
+ },
3743
+ {
3744
+ kind: "directive",
3745
+ type: i3$1.MatTooltip,
3746
+ selector: "[matTooltip]",
3747
+ inputs: [
3748
+ "matTooltipPosition",
3749
+ "matTooltipPositionAtOrigin",
3750
+ "matTooltipDisabled",
3751
+ "matTooltipShowDelay",
3752
+ "matTooltipHideDelay",
3753
+ "matTooltipTouchGestures",
3754
+ "matTooltip",
3755
+ "matTooltipClass"
3756
+ ],
3757
+ exportAs: ["matTooltip"]
3758
+ },
3759
+ {
3760
+ kind: "component",
3761
+ type: TechlifyIconComponent,
3762
+ selector: "app-techlify-icon",
3763
+ inputs: ["name", "size"]
3764
+ }
3765
+ ],
3766
+ changeDetection: i0.ChangeDetectionStrategy.Eager
3767
+ });
3768
+ }
3769
+ };
3770
+ i0.ɵɵngDeclareClassMetadata({
3771
+ minVersion: "12.0.0",
3772
+ version: "22.2.3",
3773
+ ngImport: i0,
3774
+ type: ExportExcelButtonComponent,
3775
+ decorators: [{
3776
+ type: Component,
3777
+ args: [{
3778
+ selector: "app-export-excel-button",
3779
+ changeDetection: ChangeDetectionStrategy.Eager,
3780
+ standalone: false,
3781
+ template: "<app-techlify-icon class=\"clickable d-print-none\" *ngIf=\"!isWorking\" [name]=\"iconName\" (click)=\"exportToExcel()\"\n matTooltip=\"Excel Export\">\n</app-techlify-icon>",
3782
+ styles: [".fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.wpx-50{width:50px!important}.wpx-100{width:100px!important}.wpx-120{width:120px!important}.wpx-125{width:125px!important}.wpx-150{width:150px!important}.wpx-200{width:200px!important}.wpx-250{width:250px!important}.min-wpx-200{min-width:200px!important}.max-width-px-115{max-width:115px}.w-description{width:300px!important}.side-panel{width:300px!important;min-width:300px!important;flex-shrink:0!important}.h-250px{height:250px!important}.scroll-y{overflow-y:auto}.flex-basis-0{flex-basis:0}.flex-basis-5{flex-basis:5%}.flex-basis-8{flex-basis:8%}.flex-basis-10{flex-basis:10%}.flex-basis-15{flex-basis:15%}.flex-basis-20{flex-basis:20%}.flex-basis-25{flex-basis:25%}.flex-basis-30{flex-basis:30%}.flex-basis-35{flex-basis:35%}.flex-basis-40{flex-basis:40%}.flex-basis-45{flex-basis:45%}.flex-basis-48{flex-basis:48%}.flex-basis-49{flex-basis:49%}.flex-basis-50{flex-basis:50%}.flex-basis-60{flex-basis:60%}.flex-basis-65{flex-basis:65%}.flex-basis-70{flex-basis:70%}.flex-basis-80{flex-basis:80%}.flex-basis-90{flex-basis:90%}.flex-basis-95{flex-basis:95%}.flex-basis-100{flex-basis:100%}.flex-basis-50-minus-1rem{flex-basis:calc(50% - 1rem)}.flex-basis-50-minus-0-2rem{flex-basis:calc(50% - .2rem)}.flex-basis-20-minus-1rem{flex-basis:calc(20% - 1rem)}.flex-basis-15-minus-1rem{flex-basis:calc(15% - 1rem)}.flex-basis-50-minus-4px{flex-basis:calc(50% - 4px)}@media(min-width:992px){.flex-lg-basis-50{flex-basis:50%}}@media(min-width:1200px){.flex-xl-basis-30{flex-basis:30%}.flex-xl-basis-30-minus-1rem{flex:0 1 calc(30% - 1rem)}}.column-gap-1{column-gap:.25rem!important}.column-gap-2{column-gap:.5rem!important}.column-gap-3{column-gap:1rem!important}.column-gap-4{column-gap:1.5rem!important}.column-gap-5{column-gap:3rem!important}button,a,input{outline:none!important}::-webkit-scrollbar{width:.5em}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:gray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#4d4c4c}.icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.mat-icon-xl{height:40px!important;width:40px!important;font-size:40px!important}.mat-icon-20px{font-size:20px!important;height:20px!important;width:20px!important}.mat-small-icon{height:16px!important;width:16px!important;font-size:16px!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.mdc-button__label{letter-spacing:normal!important}.mat-mdc-button .mat-icon{height:24px!important;width:24px!important;font-size:24px!important}.mat-button-toggle-group{height:48px!important;align-items:center}.mat-button-toggle-button{height:48px!important}.mat-button-toggle-label-content{padding:0 8px!important;font-size:14px!important}.mat-mdc-slide-toggle label{margin:0!important}.small-slide-toggle{transform:scale(.8);transform-origin:left center}.fs-8{font-size:8px!important}.fs-12{font-size:12px!important}.fs-13{font-size:13px!important}.fs-16{font-size:16px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.mat-mdc-floating-label{pointer-events:none!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.create-another .mat-mdc-checkbox label{margin:0!important}.create-another .mdc-checkbox{padding:0!important}.create-another .mdc-checkbox__background{position:relative;top:0;left:0}.mat-mdc-form-field.mat-form-field-disabled .mat-mdc-input-element{color:#555!important;-webkit-text-fill-color:#555555!important}.mat-mdc-form-field.mat-form-field-disabled .mat-mdc-select-value{color:#555!important}.mat-mdc-card{transition:box-shadow .28s cubic-bezier(.4,0,.2,1);padding:16px}.mat-mdc-card-content{padding:0!important}.mat-mdc-dialog-surface{padding:24px}.mat-mdc-dialog-title{padding:0!important}.mat-mdc-dialog-title .mat-mdc-dialog-title:before{height:0!important}.mat-mdc-dialog-title *{position:relative;top:-30px!important}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:6px!important}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 8px!important}.mat-column-actions .mat-mdc-icon-button{width:30px!important;height:30px!important;top:6px!important}.mat-column-actions .mat-mdc-icon-button .mat-icon{bottom:9px!important;right:9px!important}.mat-mdc-progress-bar{border-radius:2px}.chip-mini-grey{background-color:#d9d9d9!important;border-radius:3px;display:inline-block;padding:0 6px;font-size:13px}.chip-mini-outline{background-color:#fff!important;border-radius:3px;display:inline-block;padding:0 6px;outline:1px solid #bbb;font-size:13px}.techlify-badge-grey-outlined{background-color:#f2f3f5!important;font-weight:400!important;font-size:12px!important;color:#000!important}.techlify-badge-white-outlined{font-weight:400!important;font-size:12px!important;border-style:solid!important;border-width:thin!important;color:#000!important;border-color:#000!important}:host{display:flex;align-content:center}\n"]
3783
+ }]
3784
+ }],
3785
+ ctorParameters: () => [],
3786
+ propDecorators: {
3787
+ isCSV: [{ type: Input }],
3788
+ iconName: [{ type: Input }],
3789
+ fileName: [{ type: Input }],
3790
+ data: [{ type: Input }],
3791
+ tableId: [{ type: Input }],
3792
+ isParseNumeric: [{ type: Input }],
3793
+ isExportingToExcel: [{ type: Output }]
3794
+ }
3795
+ });
3796
+ var ExportExcelModule = class ExportExcelModule {
3797
+ static {
3798
+ this.ɵfac = i0.ɵɵngDeclareFactory({
3799
+ minVersion: "12.0.0",
3800
+ version: "22.2.3",
3801
+ ngImport: i0,
3802
+ type: ExportExcelModule,
3803
+ deps: [],
3804
+ target: i0.ɵɵFactoryTarget.NgModule
3805
+ });
3806
+ }
3807
+ static {
3808
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
3809
+ minVersion: "14.0.0",
3810
+ version: "22.2.3",
3811
+ ngImport: i0,
3812
+ type: ExportExcelModule,
3813
+ declarations: [ExportExcelButtonComponent],
3814
+ imports: [
3815
+ CommonModule,
3816
+ MaterialModule,
3817
+ TechlifyIconModule
3818
+ ],
3819
+ exports: [ExportExcelButtonComponent]
3820
+ });
3821
+ }
3822
+ static {
3823
+ this.ɵinj = i0.ɵɵngDeclareInjector({
3824
+ minVersion: "12.0.0",
3825
+ version: "22.2.3",
3826
+ ngImport: i0,
3827
+ type: ExportExcelModule,
3828
+ imports: [
3829
+ CommonModule,
3830
+ MaterialModule,
3831
+ TechlifyIconModule
3832
+ ]
3833
+ });
3834
+ }
3835
+ };
3836
+ i0.ɵɵngDeclareClassMetadata({
3837
+ minVersion: "12.0.0",
3838
+ version: "22.2.3",
3839
+ ngImport: i0,
3840
+ type: ExportExcelModule,
3841
+ decorators: [{
3842
+ type: NgModule,
3843
+ args: [{
3844
+ declarations: [ExportExcelButtonComponent],
3845
+ imports: [
3846
+ CommonModule,
3847
+ MaterialModule,
3848
+ TechlifyIconModule
3849
+ ],
3850
+ exports: [ExportExcelButtonComponent]
3851
+ }]
3852
+ }]
3853
+ });
3854
+ var FileDropperModule = class FileDropperModule {
3855
+ static {
3856
+ this.ɵfac = i0.ɵɵngDeclareFactory({
3857
+ minVersion: "12.0.0",
3858
+ version: "22.2.3",
3859
+ ngImport: i0,
3860
+ type: FileDropperModule,
3861
+ deps: [],
3862
+ target: i0.ɵɵFactoryTarget.NgModule
3863
+ });
3864
+ }
3865
+ static {
3866
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
3867
+ minVersion: "14.0.0",
3868
+ version: "22.2.3",
3869
+ ngImport: i0,
3870
+ type: FileDropperModule,
3871
+ declarations: [FileDropperComponent],
3872
+ imports: [CommonModule, MaterialModule],
3873
+ exports: [FileDropperComponent]
3874
+ });
3875
+ }
3876
+ static {
3877
+ this.ɵinj = i0.ɵɵngDeclareInjector({
3878
+ minVersion: "12.0.0",
3879
+ version: "22.2.3",
3880
+ ngImport: i0,
3881
+ type: FileDropperModule,
3882
+ imports: [CommonModule, MaterialModule]
3883
+ });
3884
+ }
3885
+ };
3886
+ i0.ɵɵngDeclareClassMetadata({
3887
+ minVersion: "12.0.0",
3888
+ version: "22.2.3",
3889
+ ngImport: i0,
3890
+ type: FileDropperModule,
3891
+ decorators: [{
3892
+ type: NgModule,
3893
+ args: [{
3894
+ imports: [CommonModule, MaterialModule],
3895
+ declarations: [FileDropperComponent],
3896
+ exports: [FileDropperComponent]
3897
+ }]
3898
+ }]
3899
+ });
3900
+ var ReadMoreModule = class ReadMoreModule {
3901
+ static {
3902
+ this.ɵfac = i0.ɵɵngDeclareFactory({
3903
+ minVersion: "12.0.0",
3904
+ version: "22.2.3",
3905
+ ngImport: i0,
3906
+ type: ReadMoreModule,
3907
+ deps: [],
3908
+ target: i0.ɵɵFactoryTarget.NgModule
3909
+ });
3910
+ }
3911
+ static {
3912
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
3913
+ minVersion: "14.0.0",
3914
+ version: "22.2.3",
3915
+ ngImport: i0,
3916
+ type: ReadMoreModule,
3917
+ declarations: [ReadMoreComponent],
3918
+ imports: [CommonModule, MaterialModule],
3919
+ exports: [ReadMoreComponent]
3920
+ });
3921
+ }
3922
+ static {
3923
+ this.ɵinj = i0.ɵɵngDeclareInjector({
3924
+ minVersion: "12.0.0",
3925
+ version: "22.2.3",
3926
+ ngImport: i0,
3927
+ type: ReadMoreModule,
3928
+ imports: [CommonModule, MaterialModule]
3929
+ });
3930
+ }
3931
+ };
3932
+ i0.ɵɵngDeclareClassMetadata({
3933
+ minVersion: "12.0.0",
3934
+ version: "22.2.3",
3935
+ ngImport: i0,
3936
+ type: ReadMoreModule,
3937
+ decorators: [{
3938
+ type: NgModule,
3939
+ args: [{
3940
+ declarations: [ReadMoreComponent],
3941
+ imports: [CommonModule, MaterialModule],
3942
+ exports: [ReadMoreComponent]
3943
+ }]
3944
+ }]
3945
+ });
3946
+ const routes = [];
3947
+ var TimelineFilterRoutingModule = class TimelineFilterRoutingModule {
3948
+ static {
3949
+ this.ɵfac = i0.ɵɵngDeclareFactory({
3950
+ minVersion: "12.0.0",
3951
+ version: "22.2.3",
3952
+ ngImport: i0,
3953
+ type: TimelineFilterRoutingModule,
3954
+ deps: [],
3955
+ target: i0.ɵɵFactoryTarget.NgModule
3956
+ });
3957
+ }
3958
+ static {
3959
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
3960
+ minVersion: "14.0.0",
3961
+ version: "22.2.3",
3962
+ ngImport: i0,
3963
+ type: TimelineFilterRoutingModule,
3964
+ imports: [i1$3.RouterModule],
3965
+ exports: [RouterModule]
3966
+ });
3967
+ }
3968
+ static {
3969
+ this.ɵinj = i0.ɵɵngDeclareInjector({
3970
+ minVersion: "12.0.0",
3971
+ version: "22.2.3",
3972
+ ngImport: i0,
3973
+ type: TimelineFilterRoutingModule,
3974
+ imports: [RouterModule.forChild(routes), RouterModule]
3975
+ });
3976
+ }
3977
+ };
3978
+ i0.ɵɵngDeclareClassMetadata({
3979
+ minVersion: "12.0.0",
3980
+ version: "22.2.3",
3981
+ ngImport: i0,
3982
+ type: TimelineFilterRoutingModule,
3983
+ decorators: [{
3984
+ type: NgModule,
3985
+ args: [{
3986
+ imports: [RouterModule.forChild(routes)],
3987
+ exports: [RouterModule]
3988
+ }]
3989
+ }]
3990
+ });
3991
+ var TimelineFilterModule = class TimelineFilterModule {
3992
+ static {
3993
+ this.ɵfac = i0.ɵɵngDeclareFactory({
3994
+ minVersion: "12.0.0",
3995
+ version: "22.2.3",
3996
+ ngImport: i0,
3997
+ type: TimelineFilterModule,
3998
+ deps: [],
3999
+ target: i0.ɵɵFactoryTarget.NgModule
4000
+ });
4001
+ }
4002
+ static {
4003
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
4004
+ minVersion: "14.0.0",
4005
+ version: "22.2.3",
4006
+ ngImport: i0,
4007
+ type: TimelineFilterModule,
4008
+ declarations: [TimelineFilterComponent],
4009
+ imports: [
4010
+ CommonModule,
4011
+ TimelineFilterRoutingModule,
4012
+ ReactiveFormsModule,
4013
+ MatFormFieldModule,
4014
+ MatSelectModule,
4015
+ MatButtonModule,
4016
+ MatIconModule,
4017
+ MatInputModule,
4018
+ MatDatepickerModule,
4019
+ MatNativeDateModule,
4020
+ TechlifyIconModule
4021
+ ],
4022
+ exports: [TimelineFilterComponent]
4023
+ });
4024
+ }
4025
+ static {
4026
+ this.ɵinj = i0.ɵɵngDeclareInjector({
4027
+ minVersion: "12.0.0",
4028
+ version: "22.2.3",
4029
+ ngImport: i0,
4030
+ type: TimelineFilterModule,
4031
+ imports: [
4032
+ CommonModule,
4033
+ TimelineFilterRoutingModule,
4034
+ ReactiveFormsModule,
4035
+ MatFormFieldModule,
4036
+ MatSelectModule,
4037
+ MatButtonModule,
4038
+ MatIconModule,
4039
+ MatInputModule,
4040
+ MatDatepickerModule,
4041
+ MatNativeDateModule,
4042
+ TechlifyIconModule
4043
+ ]
4044
+ });
4045
+ }
4046
+ };
4047
+ i0.ɵɵngDeclareClassMetadata({
4048
+ minVersion: "12.0.0",
4049
+ version: "22.2.3",
4050
+ ngImport: i0,
4051
+ type: TimelineFilterModule,
4052
+ decorators: [{
4053
+ type: NgModule,
4054
+ args: [{
4055
+ declarations: [TimelineFilterComponent],
4056
+ imports: [
4057
+ CommonModule,
4058
+ TimelineFilterRoutingModule,
4059
+ ReactiveFormsModule,
4060
+ MatFormFieldModule,
4061
+ MatSelectModule,
4062
+ MatButtonModule,
4063
+ MatIconModule,
4064
+ MatInputModule,
4065
+ MatDatepickerModule,
4066
+ MatNativeDateModule,
4067
+ TechlifyIconModule
4068
+ ],
4069
+ exports: [TimelineFilterComponent]
4070
+ }]
4071
+ }]
4072
+ });
4073
+ var SearchableSelectorComponent = class SearchableSelectorComponent {
4074
+ static {
4075
+ this.nextId = 0;
4076
+ }
4077
+ get empty() {
4078
+ const { value: { select_value } } = this.selectorForm;
4079
+ return !select_value;
4080
+ }
4081
+ get shouldLabelFloat() {
4082
+ return this.focused || !this.empty;
4083
+ }
4084
+ get required() {
4085
+ return this._required;
4086
+ }
4087
+ set required(value) {
4088
+ this.selectorForm.get("select_value").setValidators(Validators.required);
4089
+ this._required = coerceBooleanProperty(value);
4090
+ this.stateChanges.next();
4091
+ }
4092
+ get disabled() {
4093
+ return this._disabled;
4094
+ }
4095
+ set disabled(value) {
4096
+ this._disabled = coerceBooleanProperty(value);
4097
+ this._disabled ? this.selectorForm.disable({ emitEvent: false }) : this.selectorForm.enable({ emitEvent: false });
4098
+ this.stateChanges.next();
4099
+ }
4100
+ get value() {
4101
+ return this.selectorForm.get("select_value")?.value || "";
4102
+ }
4103
+ set value(data) {
4104
+ this.selectorForm.patchValue({ select_value: data || "" });
4105
+ this.stateChanges.next();
4106
+ }
4107
+ constructor(formBuilder, _focusMonitor, http, _elementRef, dialog, ngControl) {
4108
+ this._focusMonitor = _focusMonitor;
4109
+ this.http = http;
4110
+ this._elementRef = _elementRef;
4111
+ this.dialog = dialog;
4112
+ this.ngControl = ngControl;
4113
+ this.valueField = "id";
4114
+ this.titleField = "title";
4115
+ this.multiple = false;
4116
+ this.selectedValueChange = new EventEmitter();
4117
+ this.enableSearch = true;
4118
+ this.add = false;
4119
+ this.edit = false;
4120
+ this.sort = true;
4121
+ this.items = [];
4122
+ this.apiDataProperty = "data";
4123
+ this.cache = false;
4124
+ this.perPage = 50;
4125
+ this.inDataSearch = false;
4126
+ this.panelWidth = "";
4127
+ this.selectionChange = new EventEmitter();
4128
+ this.itemsChange = new EventEmitter();
4129
+ this.focusSearchOnOpen = false;
4130
+ this.isItemsEmpty = new EventEmitter();
4131
+ this.isEmitInitialEvent = false;
4132
+ this.isLoading = false;
4133
+ this.onChange = () => {};
4134
+ this.onTouched = () => {};
4135
+ this.stateChanges = new Subject();
4136
+ this.focused = false;
4137
+ this.controlType = "searchable-selctor";
4138
+ this.id = `searchable-selctor-${SearchableSelectorComponent.nextId++}`;
4139
+ this.describedBy = "";
4140
+ this.cachedItems = [];
4141
+ this.subscriptions = new Subscription();
4142
+ this._required = false;
4143
+ this._disabled = false;
4144
+ this.selectorForm = formBuilder.group({
4145
+ select_value: [null],
4146
+ search: ""
4147
+ });
4148
+ this.subscriptions.add(_focusMonitor.monitor(_elementRef, true).subscribe((origin) => {
4149
+ if (this.focused && !origin) this.onTouched();
4150
+ this.focused = !!origin;
4151
+ this.stateChanges.next();
4152
+ }));
4153
+ if (this.ngControl != null) this.ngControl.valueAccessor = this;
4154
+ }
4155
+ openedChange(opened) {
4156
+ if (this.dataItems.length === 0 && this.selectorForm.get("search").value) this.selectorForm.get("search").setValue("");
4157
+ if (opened && this.enableSearch && this.focusSearchOnOpen) setTimeout(() => this.searchInput.nativeElement.focus(), 0);
4158
+ }
4159
+ get dataItems() {
4160
+ let items = [];
4161
+ if (this.multiple && this.selectedValue && this.selectedValue.length > 0) items = [...this.selectedValue, ...this.items];
4162
+ else if (!this.multiple && this.selectedValue) items = [this.selectedValue, ...this.items];
4163
+ else items = this.items;
4164
+ items = items.filter((v, i, a) => a.findIndex((v) => v[this.valueField] === a[i][this.valueField]) === i);
4165
+ this.itemsChange.emit(items);
4166
+ return items;
4167
+ }
4168
+ ngOnInit() {
4169
+ this.subscriptions.add(this.selectorForm.get("search").valueChanges.pipe(debounceTime$1(500), distinctUntilChanged$1()).subscribe((value) => {
4170
+ if (this.enableSearch) this.search(value);
4171
+ }));
4172
+ this.filters = {
4173
+ per_page: this.perPage,
4174
+ search: "",
4175
+ page: 1,
4176
+ lastPage: 1
4177
+ };
4178
+ if (this.sort) this.filters.sort_by = this.sortBy || `${this.titleField}|asc`;
4179
+ if (this.items.length === 0) this.fetchItemList();
4180
+ }
4181
+ fetchItemList() {
4182
+ this.isLoading = true;
4183
+ let request = this.http.get(this.apiUrl, { params: this.filters });
4184
+ if (this.cache) request = this.http.cache().get(this.apiUrl, { params: this.filters });
4185
+ this.subscriptions.add(of().pipe(startWith$1(true), switchMap$1((_) => from(request)), finalize$1(() => this.isLoading = false)).subscribe((result) => {
4186
+ this.items = this.items.concat(result[this.apiDataProperty]);
4187
+ if (this.items.length == 0 && !this.filters?.search) this.isItemsEmpty.emit(true);
4188
+ if (this.cache) this.cachedItems = this.items;
4189
+ this.filters.page = result?.current_page || 1;
4190
+ this.filters.lastPage = result?.last_page || 1;
4191
+ if (this.isEmitInitialEvent && this.value) {
4192
+ this._handleInput();
4193
+ this.isEmitInitialEvent = false;
4194
+ }
4195
+ }));
4196
+ }
4197
+ setDescribedByIds(ids) {
4198
+ this.describedBy = ids.join(" ");
4199
+ }
4200
+ onContainerClick(event) {
4201
+ event.stopPropagation();
4202
+ }
4203
+ writeValue(data) {
4204
+ this.value = data;
4205
+ }
4206
+ registerOnChange(fn) {
4207
+ this.onChange = fn;
4208
+ }
4209
+ registerOnTouched(fn) {
4210
+ this.onTouched = fn;
4211
+ }
4212
+ setDisabledState(isDisabled) {
4213
+ this.disabled = isDisabled;
4214
+ }
4215
+ getPropertyValue(ele, keyString) {
4216
+ keyString = keyString.replace(/\[(\w+)\]/g, ".$1");
4217
+ keyString = keyString.replace(/^\./, "");
4218
+ const keyList = keyString.split(".");
4219
+ for (let i = 0, n = keyList.length; i < n; ++i) {
4220
+ const key = keyList[i];
4221
+ if (ele && key in ele) ele = ele[key];
4222
+ else return;
4223
+ }
4224
+ return ele;
4225
+ }
4226
+ _handleInput() {
4227
+ if (!this.isEmitInitialEvent) this.onChange(this.value);
4228
+ if (this.multiple) this.selectedValue = (this.value || []).map((x) => this.dataItems.find((y) => y[this.valueField] === x));
4229
+ else this.selectedValue = this.dataItems.find((x) => x[this.valueField] === this.value);
4230
+ this.selectedValueChange.emit(this.selectedValue);
4231
+ this.selectionChange.emit(this.value);
4232
+ }
4233
+ get errorState() {
4234
+ return this.ngControl && this.ngControl.invalid && (this.ngControl.touched || this.ngControl.dirty);
4235
+ }
4236
+ onScroll() {
4237
+ if (!this.isLoading && this.filters.lastPage > this.filters.page) {
4238
+ this.filters.page += 1;
4239
+ this.fetchItemList();
4240
+ }
4241
+ }
4242
+ reloadData() {
4243
+ this.items = [];
4244
+ this.filters.page = 1;
4245
+ this.filters.lastPage = 1;
4246
+ this.fetchItemList();
4247
+ }
4248
+ search(event) {
4249
+ if (this.searchField) this.filters[this.searchField] = event;
4250
+ else this.filters.search = event;
4251
+ if (this.inDataSearch && this.searchField) this.filterItems(event);
4252
+ else this.reloadData();
4253
+ }
4254
+ filterItems(event) {
4255
+ if (event) this.items = this.cachedItems.filter((value) => {
4256
+ return value[this.searchField].toLowerCase().search(event.toLowerCase()) != -1;
4257
+ });
4258
+ else this.items = this.cachedItems;
4259
+ }
4260
+ addItem(event) {
4261
+ this.dialog.open(this.itemComponent, {
4262
+ width: "400px",
4263
+ autoFocus: false,
4264
+ data: {},
4265
+ ...this.addConfig
4266
+ }).afterClosed().subscribe((model) => {
4267
+ if (model) {
4268
+ this.items.push(model);
4269
+ this.selectorForm.get("select_value").setValue(model[this.valueField]);
4270
+ this._handleInput();
4271
+ }
4272
+ });
4273
+ event.stopPropagation();
4274
+ }
4275
+ editItem(event) {
4276
+ this.dialog.open(this.itemComponent, {
4277
+ width: "400px",
4278
+ autoFocus: false,
4279
+ data: { item: this.selectedValue },
4280
+ ...this.editConfig
4281
+ }).afterClosed().subscribe((result) => {
4282
+ if (result) {
4283
+ this.items = this.items.filter((x) => x[this.valueField] !== this.selectedValue[this.valueField]);
4284
+ this.items.push(result.item);
4285
+ this.selectedValue = null;
4286
+ this.selectorForm.get("select_value").setValue(result.item[this.valueField]);
4287
+ this._handleInput();
4288
+ }
4289
+ });
4290
+ event.stopPropagation();
4291
+ }
4292
+ ngOnDestroy() {
4293
+ this.stateChanges.complete();
4294
+ this._focusMonitor.stopMonitoring(this._elementRef);
4295
+ this.subscriptions.unsubscribe();
4296
+ }
4297
+ static {
4298
+ this.ɵfac = i0.ɵɵngDeclareFactory({
4299
+ minVersion: "12.0.0",
4300
+ version: "22.2.3",
4301
+ ngImport: i0,
4302
+ type: SearchableSelectorComponent,
4303
+ deps: [
4304
+ { token: i1.UntypedFormBuilder },
4305
+ { token: i2.FocusMonitor },
4306
+ { token: HttpService },
4307
+ { token: i0.ElementRef },
4308
+ { token: i1$8.MatDialog },
4309
+ {
4310
+ token: i1.NgControl,
4311
+ optional: true,
4312
+ self: true
4313
+ }
4314
+ ],
4315
+ target: i0.ɵɵFactoryTarget.Component
4316
+ });
4317
+ }
4318
+ static {
4319
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
4320
+ minVersion: "14.0.0",
4321
+ version: "22.2.3",
4322
+ type: SearchableSelectorComponent,
4323
+ isStandalone: false,
4324
+ selector: "app-searchable-selector",
4325
+ inputs: {
4326
+ valueField: "valueField",
4327
+ titleField: "titleField",
4328
+ subtitleField: "subtitleField",
4329
+ apiUrl: "apiUrl",
4330
+ multiple: "multiple",
4331
+ selectedValue: "selectedValue",
4332
+ enableSearch: "enableSearch",
4333
+ add: "add",
4334
+ addConfig: "addConfig",
4335
+ edit: "edit",
4336
+ editConfig: "editConfig",
4337
+ sort: "sort",
4338
+ sortBy: "sortBy",
4339
+ searchField: "searchField",
4340
+ itemComponent: "itemComponent",
4341
+ items: "items",
4342
+ apiDataProperty: "apiDataProperty",
4343
+ cache: "cache",
4344
+ perPage: "perPage",
4345
+ inDataSearch: "inDataSearch",
4346
+ panelWidth: "panelWidth",
4347
+ focusSearchOnOpen: "focusSearchOnOpen",
4348
+ isEmitInitialEvent: "isEmitInitialEvent",
4349
+ required: "required",
4350
+ disabled: "disabled",
4351
+ value: "value"
4352
+ },
4353
+ outputs: {
4354
+ selectedValueChange: "selectedValueChange",
4355
+ selectionChange: "selectionChange",
4356
+ itemsChange: "itemsChange",
4357
+ isItemsEmpty: "isItemsEmpty"
4358
+ },
4359
+ providers: [{
4360
+ provide: MatFormFieldControl,
4361
+ useExisting: SearchableSelectorComponent
4362
+ }],
4363
+ viewQueries: [{
4364
+ propertyName: "searchInput",
4365
+ first: true,
4366
+ predicate: ["searchInput"],
4367
+ descendants: true
4368
+ }],
4369
+ ngImport: i0,
4370
+ template: "<ng-container [formGroup]=\"selectorForm\">\n <div class=\"searchable-selector-container\">\n <!-- Selector and Suffix Icons -->\n <mat-select formControlName=\"select_value\" [multiple]=\"multiple\" [required]=\"required\"\n (selectionChange)=\"this.isEmitInitialEvent = false;_handleInput()\" (openedChange)=\"openedChange($event)\"\n [panelWidth]=\"panelWidth\">\n <!-- Search Field -->\n <mat-form-field *ngIf=\"enableSearch\" class=\"p-1 w-100\">\n <input matInput formControlName=\"search\" placeholder=\"Search...\" (keydown)=\"$event.stopPropagation();\"\n autocomplete=\"off\" #searchInput>\n </mat-form-field>\n\n <!-- Options with Scrollable Container -->\n <div class=\"searchable-selector-scrollable-container\" cdkScrollable (scrollend)=\"onScroll()\">\n <mat-option *ngFor=\"let item of dataItems\" [value]=\"getPropertyValue(item, valueField)\">\n <span>{{ getPropertyValue(item, titleField) }}</span>\n <span *ngIf=\"subtitleField\" class=\"text-secondary\" style=\"font-size: 14px;\">\n - {{ getPropertyValue(item, subtitleField) }}\n </span>\n </mat-option>\n <mat-progress-bar *ngIf=\"isLoading\" color=\"primary\" mode=\"indeterminate\"></mat-progress-bar>\n </div>\n </mat-select>\n\n <!-- Add and Edit Buttons -->\n <mat-icon class=\"cursor-pointer\" *ngIf=\"add\" (click)=\"addItem($event)\">\n add\n </mat-icon>\n <mat-icon class=\"cursor-pointer\" *ngIf=\"edit && selectedValue\" (click)=\"editItem($event)\">\n edit\n </mat-icon>\n </div>\n</ng-container>",
4371
+ styles: [".searchable-selector-container{display:flex;align-items:center}.searchable-selector-container mat-select{flex-grow:1}.searchable-selector-container mat-icon{margin-left:2px}.relative-icon{position:relative;top:-4px}.searchable-selector-scrollable-container{max-height:175px;overflow-y:auto}:host ::ng-deep .mat-mdc-floating-label{pointer-events:none!important}\n"],
4372
+ dependencies: [
4373
+ {
4374
+ kind: "directive",
4375
+ type: i1$5.NgForOf,
4376
+ selector: "[ngFor][ngForOf]",
4377
+ inputs: [
4378
+ "ngForOf",
4379
+ "ngForTrackBy",
4380
+ "ngForTemplate"
4381
+ ]
4382
+ },
4383
+ {
4384
+ kind: "directive",
4385
+ type: i1$5.NgIf,
4386
+ selector: "[ngIf]",
4387
+ inputs: [
4388
+ "ngIf",
4389
+ "ngIfThen",
4390
+ "ngIfElse"
4391
+ ]
4392
+ },
4393
+ {
4394
+ kind: "directive",
4395
+ type: i1.DefaultValueAccessor,
4396
+ selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]"
4397
+ },
4398
+ {
4399
+ kind: "directive",
4400
+ type: i1.NgControlStatus,
4401
+ selector: "[formControlName],[ngModel],[formControl]"
4402
+ },
4403
+ {
4404
+ kind: "directive",
4405
+ type: i1.NgControlStatusGroup,
4406
+ selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]"
4407
+ },
4408
+ {
4409
+ kind: "directive",
4410
+ type: i1.RequiredValidator,
4411
+ selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]",
4412
+ inputs: ["required"]
4413
+ },
4414
+ {
4415
+ kind: "directive",
4416
+ type: i1.FormGroupDirective,
4417
+ selector: "[formGroup]",
4418
+ inputs: ["formGroup"],
4419
+ outputs: ["ngSubmit"],
4420
+ exportAs: ["ngForm"]
4421
+ },
4422
+ {
4423
+ kind: "directive",
4424
+ type: i1.FormControlName,
4425
+ selector: "[formControlName]",
4426
+ inputs: [
4427
+ "formControlName",
4428
+ "disabled",
4429
+ "ngModel"
4430
+ ],
4431
+ outputs: ["ngModelChange"]
4432
+ },
4433
+ {
4434
+ kind: "directive",
4435
+ type: i6.CdkScrollable,
4436
+ selector: "[cdk-scrollable], [cdkScrollable]"
4437
+ },
4438
+ {
4439
+ kind: "component",
4440
+ type: i5.MatOption,
4441
+ selector: "mat-option",
4442
+ inputs: [
4443
+ "value",
4444
+ "id",
4445
+ "disabled"
4446
+ ],
4447
+ outputs: ["onSelectionChange"],
4448
+ exportAs: ["matOption"]
4449
+ },
4450
+ {
4451
+ kind: "component",
4452
+ type: i3.MatFormField,
4453
+ selector: "mat-form-field",
4454
+ inputs: [
4455
+ "hideRequiredMarker",
4456
+ "color",
4457
+ "floatLabel",
4458
+ "appearance",
4459
+ "subscriptSizing",
4460
+ "hintLabel"
4461
+ ],
4462
+ exportAs: ["matFormField"]
4463
+ },
4464
+ {
4465
+ kind: "component",
4466
+ type: i1$7.MatIcon,
4467
+ selector: "mat-icon",
4468
+ inputs: [
4469
+ "color",
4470
+ "inline",
4471
+ "svgIcon",
4472
+ "fontSet",
4473
+ "fontIcon"
4474
+ ],
4475
+ exportAs: ["matIcon"]
4476
+ },
4477
+ {
4478
+ kind: "directive",
4479
+ type: i10.MatInput,
4480
+ selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]",
4481
+ inputs: [
4482
+ "disabled",
4483
+ "id",
4484
+ "placeholder",
4485
+ "name",
4486
+ "required",
4487
+ "type",
4488
+ "errorStateMatcher",
4489
+ "aria-describedby",
4490
+ "value",
4491
+ "readonly",
4492
+ "disabledInteractive"
4493
+ ],
4494
+ exportAs: ["matInput"]
4495
+ },
4496
+ {
4497
+ kind: "component",
4498
+ type: i4.MatSelect,
4499
+ selector: "mat-select",
4500
+ inputs: [
4501
+ "aria-describedby",
4502
+ "panelClass",
4503
+ "disabled",
4504
+ "disableRipple",
4505
+ "tabIndex",
4506
+ "hideSingleSelectionIndicator",
4507
+ "placeholder",
4508
+ "required",
4509
+ "multiple",
4510
+ "disableOptionCentering",
4511
+ "compareWith",
4512
+ "value",
4513
+ "aria-label",
4514
+ "aria-labelledby",
4515
+ "errorStateMatcher",
4516
+ "typeaheadDebounceInterval",
4517
+ "sortComparator",
4518
+ "id",
4519
+ "panelWidth",
4520
+ "canSelectNullableOptions"
4521
+ ],
4522
+ outputs: [
4523
+ "openedChange",
4524
+ "opened",
4525
+ "closed",
4526
+ "selectionChange",
4527
+ "valueChange"
4528
+ ],
4529
+ exportAs: ["matSelect"]
4530
+ },
4531
+ {
4532
+ kind: "component",
4533
+ type: i12.MatProgressBar,
4534
+ selector: "mat-progress-bar",
4535
+ inputs: [
4536
+ "color",
4537
+ "value",
4538
+ "bufferValue",
4539
+ "mode"
4540
+ ],
4541
+ outputs: ["animationEnd"],
4542
+ exportAs: ["matProgressBar"]
4543
+ }
4544
+ ],
4545
+ changeDetection: i0.ChangeDetectionStrategy.Eager
4546
+ });
4547
+ }
4548
+ };
4549
+ i0.ɵɵngDeclareClassMetadata({
4550
+ minVersion: "12.0.0",
4551
+ version: "22.2.3",
4552
+ ngImport: i0,
4553
+ type: SearchableSelectorComponent,
4554
+ decorators: [{
4555
+ type: Component,
4556
+ args: [{
4557
+ selector: "app-searchable-selector",
4558
+ providers: [{
4559
+ provide: MatFormFieldControl,
4560
+ useExisting: SearchableSelectorComponent
4561
+ }],
4562
+ changeDetection: ChangeDetectionStrategy.Eager,
4563
+ standalone: false,
4564
+ template: "<ng-container [formGroup]=\"selectorForm\">\n <div class=\"searchable-selector-container\">\n <!-- Selector and Suffix Icons -->\n <mat-select formControlName=\"select_value\" [multiple]=\"multiple\" [required]=\"required\"\n (selectionChange)=\"this.isEmitInitialEvent = false;_handleInput()\" (openedChange)=\"openedChange($event)\"\n [panelWidth]=\"panelWidth\">\n <!-- Search Field -->\n <mat-form-field *ngIf=\"enableSearch\" class=\"p-1 w-100\">\n <input matInput formControlName=\"search\" placeholder=\"Search...\" (keydown)=\"$event.stopPropagation();\"\n autocomplete=\"off\" #searchInput>\n </mat-form-field>\n\n <!-- Options with Scrollable Container -->\n <div class=\"searchable-selector-scrollable-container\" cdkScrollable (scrollend)=\"onScroll()\">\n <mat-option *ngFor=\"let item of dataItems\" [value]=\"getPropertyValue(item, valueField)\">\n <span>{{ getPropertyValue(item, titleField) }}</span>\n <span *ngIf=\"subtitleField\" class=\"text-secondary\" style=\"font-size: 14px;\">\n - {{ getPropertyValue(item, subtitleField) }}\n </span>\n </mat-option>\n <mat-progress-bar *ngIf=\"isLoading\" color=\"primary\" mode=\"indeterminate\"></mat-progress-bar>\n </div>\n </mat-select>\n\n <!-- Add and Edit Buttons -->\n <mat-icon class=\"cursor-pointer\" *ngIf=\"add\" (click)=\"addItem($event)\">\n add\n </mat-icon>\n <mat-icon class=\"cursor-pointer\" *ngIf=\"edit && selectedValue\" (click)=\"editItem($event)\">\n edit\n </mat-icon>\n </div>\n</ng-container>",
4565
+ styles: [".searchable-selector-container{display:flex;align-items:center}.searchable-selector-container mat-select{flex-grow:1}.searchable-selector-container mat-icon{margin-left:2px}.relative-icon{position:relative;top:-4px}.searchable-selector-scrollable-container{max-height:175px;overflow-y:auto}:host ::ng-deep .mat-mdc-floating-label{pointer-events:none!important}\n"]
4566
+ }]
4567
+ }],
4568
+ ctorParameters: () => [
4569
+ { type: i1.UntypedFormBuilder },
4570
+ { type: i2.FocusMonitor },
4571
+ { type: HttpService },
4572
+ { type: i0.ElementRef },
4573
+ { type: i1$8.MatDialog },
4574
+ {
4575
+ type: i1.NgControl,
4576
+ decorators: [{ type: Optional }, { type: Self }]
4577
+ }
4578
+ ],
4579
+ propDecorators: {
4580
+ searchInput: [{
4581
+ type: ViewChild,
4582
+ args: ["searchInput"]
4583
+ }],
4584
+ valueField: [{ type: Input }],
4585
+ titleField: [{ type: Input }],
4586
+ subtitleField: [{ type: Input }],
4587
+ apiUrl: [{ type: Input }],
4588
+ multiple: [{ type: Input }],
4589
+ selectedValue: [{ type: Input }],
4590
+ selectedValueChange: [{ type: Output }],
4591
+ enableSearch: [{ type: Input }],
4592
+ add: [{ type: Input }],
4593
+ addConfig: [{ type: Input }],
4594
+ edit: [{ type: Input }],
4595
+ editConfig: [{ type: Input }],
4596
+ sort: [{ type: Input }],
4597
+ sortBy: [{ type: Input }],
4598
+ searchField: [{ type: Input }],
4599
+ itemComponent: [{ type: Input }],
4600
+ items: [{ type: Input }],
4601
+ apiDataProperty: [{ type: Input }],
4602
+ cache: [{ type: Input }],
4603
+ perPage: [{ type: Input }],
4604
+ inDataSearch: [{ type: Input }],
4605
+ panelWidth: [{ type: Input }],
4606
+ selectionChange: [{ type: Output }],
4607
+ itemsChange: [{ type: Output }],
4608
+ focusSearchOnOpen: [{ type: Input }],
4609
+ isItemsEmpty: [{ type: Output }],
4610
+ isEmitInitialEvent: [{ type: Input }],
4611
+ required: [{ type: Input }],
4612
+ disabled: [{ type: Input }],
4613
+ value: [{ type: Input }]
4614
+ }
4615
+ });
4616
+ var SearchableSelectorModule = class SearchableSelectorModule {
4617
+ static {
4618
+ this.ɵfac = i0.ɵɵngDeclareFactory({
4619
+ minVersion: "12.0.0",
4620
+ version: "22.2.3",
4621
+ ngImport: i0,
4622
+ type: SearchableSelectorModule,
4623
+ deps: [],
4624
+ target: i0.ɵɵFactoryTarget.NgModule
4625
+ });
4626
+ }
4627
+ static {
4628
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
4629
+ minVersion: "14.0.0",
4630
+ version: "22.2.3",
4631
+ ngImport: i0,
4632
+ type: SearchableSelectorModule,
4633
+ declarations: [SearchableSelectorComponent],
4634
+ imports: [
4635
+ CommonModule,
4636
+ ReactiveFormsModule,
4637
+ MaterialModule,
4638
+ MatProgressBar
4639
+ ],
4640
+ exports: [SearchableSelectorComponent]
4641
+ });
4642
+ }
4643
+ static {
4644
+ this.ɵinj = i0.ɵɵngDeclareInjector({
4645
+ minVersion: "12.0.0",
4646
+ version: "22.2.3",
4647
+ ngImport: i0,
4648
+ type: SearchableSelectorModule,
4649
+ imports: [
4650
+ CommonModule,
4651
+ ReactiveFormsModule,
4652
+ MaterialModule,
4653
+ MatProgressBar
4654
+ ]
4655
+ });
4656
+ }
4657
+ };
4658
+ i0.ɵɵngDeclareClassMetadata({
4659
+ minVersion: "12.0.0",
4660
+ version: "22.2.3",
4661
+ ngImport: i0,
4662
+ type: SearchableSelectorModule,
4663
+ decorators: [{
4664
+ type: NgModule,
4665
+ args: [{
4666
+ imports: [
4667
+ CommonModule,
4668
+ ReactiveFormsModule,
4669
+ MaterialModule,
4670
+ MatProgressBar
4671
+ ],
4672
+ declarations: [SearchableSelectorComponent],
4673
+ exports: [SearchableSelectorComponent]
4674
+ }]
4675
+ }]
4676
+ });
4677
+ var FormConfigurationForFormModule = class FormConfigurationForFormModule {
4678
+ static {
4679
+ this.ɵfac = i0.ɵɵngDeclareFactory({
4680
+ minVersion: "12.0.0",
4681
+ version: "22.2.3",
4682
+ ngImport: i0,
4683
+ type: FormConfigurationForFormModule,
4684
+ deps: [],
4685
+ target: i0.ɵɵFactoryTarget.NgModule
4686
+ });
4687
+ }
4688
+ static {
4689
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
4690
+ minVersion: "14.0.0",
4691
+ version: "22.2.3",
4692
+ ngImport: i0,
4693
+ type: FormConfigurationForFormModule,
4694
+ declarations: [FormConfigurationForFormComponent],
4695
+ imports: [
4696
+ CommonModule,
4697
+ RouterModule,
4698
+ MaterialModule
4699
+ ],
4700
+ exports: [FormConfigurationForFormComponent]
4701
+ });
4702
+ }
4703
+ static {
4704
+ this.ɵinj = i0.ɵɵngDeclareInjector({
4705
+ minVersion: "12.0.0",
4706
+ version: "22.2.3",
4707
+ ngImport: i0,
4708
+ type: FormConfigurationForFormModule,
4709
+ imports: [
4710
+ CommonModule,
4711
+ RouterModule,
4712
+ MaterialModule
4713
+ ]
4714
+ });
4715
+ }
4716
+ };
4717
+ i0.ɵɵngDeclareClassMetadata({
4718
+ minVersion: "12.0.0",
4719
+ version: "22.2.3",
4720
+ ngImport: i0,
4721
+ type: FormConfigurationForFormModule,
4722
+ decorators: [{
4723
+ type: NgModule,
4724
+ args: [{
4725
+ declarations: [FormConfigurationForFormComponent],
4726
+ imports: [
4727
+ CommonModule,
4728
+ RouterModule,
4729
+ MaterialModule
4730
+ ],
4731
+ exports: [FormConfigurationForFormComponent]
4732
+ }]
4733
+ }]
4734
+ });
4735
+ var SharedModule = class SharedModule {
4736
+ static {
4737
+ this.ɵfac = i0.ɵɵngDeclareFactory({
4738
+ minVersion: "12.0.0",
4739
+ version: "22.2.3",
4740
+ ngImport: i0,
4741
+ type: SharedModule,
4742
+ deps: [],
4743
+ target: i0.ɵɵFactoryTarget.NgModule
4744
+ });
4745
+ }
4746
+ static {
4747
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
4748
+ minVersion: "14.0.0",
4749
+ version: "22.2.3",
4750
+ ngImport: i0,
4751
+ type: SharedModule,
4752
+ imports: [
4753
+ InfiniteScrollDirective,
4754
+ TechlifyDeleteButtonComponent,
4755
+ TechlifyFormButtonComponent
4756
+ ],
4757
+ exports: [
4758
+ ActionPopupModule,
4759
+ CommonModule,
4760
+ DocumentViewerModule,
4761
+ ExportExcelModule,
4762
+ FileDropperModule,
4763
+ FormConfigurationForFormModule,
4764
+ FormsModule,
4765
+ InfiniteScrollDirective,
4766
+ MaterialModule,
4767
+ NgxPermissionsModule,
4768
+ ReactiveFormsModule,
4769
+ ReadMoreModule,
4770
+ SearchableSelectorModule,
4771
+ TechlifyDeleteButtonComponent,
4772
+ TimelineFilterModule,
4773
+ TechlifyFormButtonComponent,
4774
+ TechlifyIconModule
4775
+ ]
4776
+ });
4777
+ }
4778
+ static {
4779
+ this.ɵinj = i0.ɵɵngDeclareInjector({
4780
+ minVersion: "12.0.0",
4781
+ version: "22.2.3",
4782
+ ngImport: i0,
4783
+ type: SharedModule,
4784
+ imports: [
4785
+ TechlifyDeleteButtonComponent,
4786
+ TechlifyFormButtonComponent,
4787
+ ActionPopupModule,
4788
+ CommonModule,
4789
+ DocumentViewerModule,
4790
+ ExportExcelModule,
4791
+ FileDropperModule,
4792
+ FormConfigurationForFormModule,
4793
+ FormsModule,
4794
+ MaterialModule,
4795
+ NgxPermissionsModule,
4796
+ ReactiveFormsModule,
4797
+ ReadMoreModule,
4798
+ SearchableSelectorModule,
4799
+ TimelineFilterModule,
4800
+ TechlifyIconModule
4801
+ ]
4802
+ });
4803
+ }
4804
+ };
4805
+ i0.ɵɵngDeclareClassMetadata({
4806
+ minVersion: "12.0.0",
4807
+ version: "22.2.3",
4808
+ ngImport: i0,
4809
+ type: SharedModule,
4810
+ decorators: [{
4811
+ type: NgModule,
4812
+ args: [{
4813
+ imports: [
4814
+ InfiniteScrollDirective,
4815
+ TechlifyDeleteButtonComponent,
4816
+ TechlifyFormButtonComponent
4817
+ ],
4818
+ exports: [
4819
+ ActionPopupModule,
4820
+ CommonModule,
4821
+ DocumentViewerModule,
4822
+ ExportExcelModule,
4823
+ FileDropperModule,
4824
+ FormConfigurationForFormModule,
4825
+ FormsModule,
4826
+ InfiniteScrollDirective,
4827
+ MaterialModule,
4828
+ NgxPermissionsModule,
4829
+ ReactiveFormsModule,
4830
+ ReadMoreModule,
4831
+ SearchableSelectorModule,
4832
+ TechlifyDeleteButtonComponent,
4833
+ TimelineFilterModule,
4834
+ TechlifyFormButtonComponent,
4835
+ TechlifyIconModule
4836
+ ]
4837
+ }]
4838
+ }]
4839
+ });
4840
+ export { ActionPopupComponent as $, MaterialModule as A, HttpCacheService as B, AuthenticationGuard as C, CustomIconModule as D, TechlifyIconModule as E, HttpService as F, LogLevel as G, ErrorHandlerService as H, TokenInterceptor as I, EnvironmentService as J, Logger as K, CredentialsService as L, FormConfigurationForFormComponent as M, FileDropperComponent as N, TechlifyIconComponent as O, HTTP_DYNAMIC_INTERCEPTORS as P, SuccessSnackComponent as Q, ApiPrefixInterceptor as R, User as S, SnackModule as T, ConfigService as U, ErrorHandlerInterceptor as V, TechlifyConfig as W, AlertService as X, FormValidatorService as Y, ErrorSnackComponent as Z, FilterService as _, TimelineFilterModule as a, CurrentUserService as b, ExportExcelModule as c, ActionPopupModule as d, ActionPopup as et, TechlifyFormButtonComponent as f, TechlifyDeleteButtonComponent as g, Timeline as h, SearchableSelectorComponent as i, ReadMoreComponent as j, CustomIconComponent as k, ExportExcelButtonComponent as l, calculateTimeline as m, FormConfigurationForFormModule as n, ReadMoreModule as o, TimelineFilterComponent as p, DocumentViewerComponent as q, SearchableSelectorModule as r, FileDropperModule as s, SharedModule as t, DocumentViewerModule as u, RouteReusableStrategy as v, AppUpdateService as w, StorageService as x, AuthenticationService as y, CacheInterceptor as z };
4841
+
4842
+ //# sourceMappingURL=ngx-techlify-core-shared.module-DROe5GRx.mjs.map