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 @@
1
+ {"version":3,"file":"ngx-techlify-core-shared.module-DROe5GRx.mjs","names":["i1","i2","i3.ActionPopup","i1","i1","i1","i2","i3","i4","i1.TechlifyConfig","i1.AlertService","i2.TechlifyConfig","log","catchError","i1.ConfigService","i2.ErrorHandlerService","i3.AlertService","log","i1.ConfigService","i1.HttpCacheService","i1.ConfigService","i1.ConfigService","i1.CredentialsService","i1","i1.AlertService","i2","i3","i1","i2","i3","i1","i1","i1.CustomIconRegistryService","i1","i2.CustomIconComponent","i1","i2","i1","i2.CredentialsService","i1.HttpService","i2.StorageService","switchMap","map","catchError","i1.CredentialsService","i2.HttpService","i3.CurrentUserService","i1","finalize","i1","i2.AlertService","i2.ErrorHandlerService","i3.TechlifyIconComponent","debounceTime","distinctUntilChanged","i2","i6","i7","i9.TechlifyIconComponent","i1","i2.TechlifyIconComponent","i1","i2","i3.TechlifyIconComponent","i1","debounceTime","distinctUntilChanged","startWith","switchMap","finalize","i3.HttpService","i4","i5","i7","i8","i9","i11"],"sources":["../../../projects/ngx-techlify-core/src/lib/action-popup/action-popup.model.ts","../../../projects/ngx-techlify-core/src/lib/action-popup/action-popup.component.ts","../../../projects/ngx-techlify-core/src/lib/action-popup/action-popup.component.html","../../../projects/ngx-techlify-core/src/lib/core/snack/snack.component.ts","../../../projects/ngx-techlify-core/src/lib/core/snack/success-snack.html","../../../projects/ngx-techlify-core/src/lib/core/snack/error-snack.html","../../../projects/ngx-techlify-core/src/lib/core/alert.service.ts","../../../projects/ngx-techlify-core/src/lib/core/form-validator.service.ts","../../../projects/ngx-techlify-core/src/lib/core/environment.service.ts","../../../projects/ngx-techlify-core/src/lib/document-viewer/document-viewer.component.ts","../../../projects/ngx-techlify-core/src/lib/document-viewer/document-viewer.component.html","../../../projects/ngx-techlify-core/src/lib/core/logger.service.ts","../../../projects/ngx-techlify-core/src/lib/core/techlify-config.model.ts","../../../projects/ngx-techlify-core/src/lib/core/config.service.ts","../../../projects/ngx-techlify-core/src/lib/core/error-handler.service.ts","../../../projects/ngx-techlify-core/src/lib/core/error-handler.interceptor.ts","../../../projects/ngx-techlify-core/src/lib/core/http-cache.service.ts","../../../projects/ngx-techlify-core/src/lib/core/cache.interceptor.ts","../../../projects/ngx-techlify-core/src/lib/core/api-prefix.interceptor.ts","../../../projects/ngx-techlify-core/src/lib/core/credentials.service.ts","../../../projects/ngx-techlify-core/src/lib/core/token.interceptor.ts","../../../projects/ngx-techlify-core/src/lib/core/header.interceptor.ts","../../../projects/ngx-techlify-core/src/lib/core/http.service.ts","../../../projects/ngx-techlify-core/src/lib/file-dropper/file-dropper.component.ts","../../../projects/ngx-techlify-core/src/lib/file-dropper/file-dropper.component.html","../../../projects/ngx-techlify-core/src/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.component.ts","../../../projects/ngx-techlify-core/src/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.component.html","../../../projects/ngx-techlify-core/src/lib/read-more/read-more.component.ts","../../../projects/ngx-techlify-core/src/lib/read-more/read-more.component.html","../../../projects/ngx-techlify-core/src/lib/material.module.ts","../../../projects/ngx-techlify-core/src/lib/custom-icon/custom-icons.registry.ts","../../../projects/ngx-techlify-core/src/lib/custom-icon/custom-icon-registry.service.ts","../../../projects/ngx-techlify-core/src/lib/custom-icon/custom-icon.component.ts","../../../projects/ngx-techlify-core/src/lib/custom-icon/custom-icon.component.html","../../../projects/ngx-techlify-core/src/lib/techlify-icon/techlify-icon.component.ts","../../../projects/ngx-techlify-core/src/lib/techlify-icon/techlify-icon.component.html","../../../projects/ngx-techlify-core/src/lib/custom-icon/custom-icon.module.ts","../../../projects/ngx-techlify-core/src/lib/techlify-icon/techlify-icon.module.ts","../../../projects/ngx-techlify-core/src/lib/core/snack/snack.module.ts","../../../projects/ngx-techlify-core/src/lib/core/app-update.service.ts","../../../projects/ngx-techlify-core/src/lib/core/authentication.guard.ts","../../../projects/ngx-techlify-core/src/lib/user/user.model.ts","../../../projects/ngx-techlify-core/src/lib/core/storage.service.ts","../../../projects/ngx-techlify-core/src/lib/user/current-user.service.ts","../../../projects/ngx-techlify-core/src/lib/core/authentication.service.ts","../../../projects/ngx-techlify-core/src/lib/core/route-reusable-strategy.ts","../../../projects/ngx-techlify-core/src/lib/core/filter.service.ts","../../../projects/ngx-techlify-core/src/lib/delete-button/techlify-delete-button.component.ts","../../../projects/ngx-techlify-core/src/lib/delete-button/techlify-delete-button.component.html","../../../projects/ngx-techlify-core/src/lib/timeline-filter/timeline.model.ts","../../../projects/ngx-techlify-core/src/lib/timeline-filter/calculate-timeline.ts","../../../projects/ngx-techlify-core/src/lib/timeline-filter/timeline-filter.component.ts","../../../projects/ngx-techlify-core/src/lib/timeline-filter/timeline-filter.component.html","../../../projects/ngx-techlify-core/src/lib/form-button/techlify-form-button.component.ts","../../../projects/ngx-techlify-core/src/lib/form-button/techlify-form-button.component.html","../../../projects/ngx-techlify-core/src/lib/action-popup/action-popup.module.ts","../../../projects/ngx-techlify-core/src/lib/document-viewer/document-viewer.module.ts","../../../projects/ngx-techlify-core/src/lib/export-excel/export-excel-button/export-excel-button.component.ts","../../../projects/ngx-techlify-core/src/lib/export-excel/export-excel-button/export-excel-button.component.html","../../../projects/ngx-techlify-core/src/lib/export-excel/export-excel.module.ts","../../../projects/ngx-techlify-core/src/lib/file-dropper/file-dropper.module.ts","../../../projects/ngx-techlify-core/src/lib/read-more/read-more.module.ts","../../../projects/ngx-techlify-core/src/lib/timeline-filter/timeline-filter-routing.module.ts","../../../projects/ngx-techlify-core/src/lib/timeline-filter/timeline-filter.module.ts","../../../projects/ngx-techlify-core/src/lib/searchable-selector/searchable-selector.component.ts","../../../projects/ngx-techlify-core/src/lib/searchable-selector/searchable-selector.component.html","../../../projects/ngx-techlify-core/src/lib/searchable-selector/searchable-selector.module.ts","../../../projects/ngx-techlify-core/src/lib/form-configuration/form-configuration-for-form/form-configuration-for-form.module.ts","../../../projects/ngx-techlify-core/src/lib/shared.module.ts"],"sourcesContent":["export class ActionPopup {\n name: string;\n title: string;\n message: string;\n}","import { Component, OnInit, Inject, ChangeDetectionStrategy } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ActionPopup } from './action-popup.model';\n\n@Component({\n selector: 'app-action-popup',\n templateUrl: './action-popup.component.html',\n styleUrls: ['./action-popup.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class ActionPopupComponent implements OnInit {\n\n constructor(\n public dialogRef: MatDialogRef<ActionPopupComponent>,\n @Inject(MAT_DIALOG_DATA) public data: ActionPopup,\n ) { }\n\n ngOnInit() {\n }\n\n /**Method to close dialog box */\n closeDialog() {\n this.dialogRef.close();\n }\n\n /**Method to close dialog box with the data given from parent component\n */\n confirm() {\n this.dialogRef.close(this.data);\n }\n\n}\n","<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>","import { Component, Inject, ChangeDetectionStrategy } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\n\n@Component({\n selector: 'snack-bar-component-example-snack',\n templateUrl: 'success-snack.html',\n styleUrls: ['./snack.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class SuccessSnackComponent {\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) { }\n}\n@Component({\n selector: 'snack-bar-component-example-snack',\n templateUrl: 'error-snack.html',\n styleUrls: ['./snack.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class ErrorSnackComponent {\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) { }\n}\n","<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>","<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>","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ErrorSnackComponent, SuccessSnackComponent } from './snack/snack.component';\r\n\r\n/**\r\n * Service used to manage alerts in the entire system frontend\r\n * \r\n * @author Gokula Prasanna\r\n * @since 20210131\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AlertService {\r\n\r\n constructor(public snackBar: MatSnackBar) { }\r\n\r\n addAlert(message: string, alertType: string, duration = 3) {\r\n if (alertType == \"success\") {\r\n this.snackBar.openFromComponent(SuccessSnackComponent, {\r\n duration: 1000 * duration,\r\n data: message\r\n });\r\n }\r\n else {\r\n this.snackBar.openFromComponent(ErrorSnackComponent, {\r\n duration: 1000 * duration,\r\n data: message\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormValidatorService {\n\n constructor() { }\n\n /**Method to evaluate form fields*/\n isFieldValid(field: string, formGroup: UntypedFormGroup | any, firstAttempt?: boolean) {\n return (!formGroup.get(field).valid && formGroup.get(field).touched) ||\n (!formGroup.get(field).valid && formGroup.get(field).untouched && firstAttempt);\n }\n\n /**Method to find error in form fields*/\n getErrorMessage(field: string, formGroup: UntypedFormGroup | any, errorMessages: any, errorField?: string) {\n const error = Object.keys(formGroup.get(field)?.errors ?? {});\n return (error.length > 0) ? (errorMessages[errorField || field][error[0]] ? errorMessages[errorField || field][error[0]] : '') : '';\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EnvironmentService {\n\n private environment: any = {};\n\n init(environment: any) {\n this.environment = environment;\n }\n\n get() {\n return this.environment;\n }\n\n}\n","import { Component, OnInit, Input, EventEmitter, Output, ChangeDetectionStrategy } from '@angular/core';\nimport { ViewerConfig } from './viewer-config.model';\n\n@Component({\n selector: 'app-document-viewer',\n templateUrl: './document-viewer.component.html',\n styleUrls: ['./document-viewer.component.css'],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class DocumentViewerComponent implements OnInit {\n\n\n @Input() config!: ViewerConfig;\n\n @Input() file!: any;\n\n @Input() fileUrl!: any;\n\n @Input() disableEdit: boolean;\n\n @Output() remove = new EventEmitter();\n viewerType: any;\n\n constructor() { }\n\n ngOnInit(): void {\n this.initData();\n }\n\n removeFile() {\n this.remove.emit();\n }\n\n initData() {\n if (this.file) {\n var ext = this.getFileExtension(this.file);\n if (ext === 'ppt' || ext === 'pptx' || ext === 'doc' || ext === 'docx' || ext === 'xls' || ext === 'xlsx') {\n this.viewerType = \"office\";\n }\n else if (ext === 'jpg' || ext === 'jpeg' || ext === 'png' || ext === 'gif') {\n this.viewerType = \"image\";\n }\n else if (ext === 'pdf') {\n this.viewerType = \"pdf\";\n }\n else {\n this.viewerType = null;\n }\n }\n }\n\n get fileName() {\n if (this.file) {\n let nameArray = this.file.split('/');\n if (nameArray.length === 2) {\n return nameArray[1];\n }\n return nameArray[0];\n }\n return '';\n }\n\n getFileExtension(file: any) {\n return file.split('.').pop();\n }\n\n}\n","<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>","/**\n * Simple logger system with the possibility of registering custom outputs.\n *\n * 4 different log levels are provided, with corresponding methods:\n * - debug : for debug information\n * - info : for informative status of the application (success, ...)\n * - warning : for non-critical errors that do not prevent normal application behavior\n * - error : for critical errors that prevent normal application behavior\n *\n * Example usage:\n * ```\n * import { Logger } from 'app/core/logger.service';\n *\n * const log = new Logger('myFile');\n * ...\n * log.debug('something happened');\n * ```\n *\n * To disable debug and info logs in production, add this snippet to your root component:\n * ```\n * export class AppComponent implements OnInit {\n * ngOnInit() {\n * if (environment.production) {\n * Logger.enableProductionMode();\n * }\n * ...\n * }\n * }\n *\n * If you want to process logs through other outputs than console, you can add LogOutput functions to Logger.outputs.\n */\n\n/**\n * The possible log levels.\n * LogLevel.Off is never emitted and only used with Logger.level property to disable logs.\n */\nexport enum LogLevel {\n Off = 0,\n Error,\n Warning,\n Info,\n Debug\n}\n\n/**\n * Log output handler function.\n */\nexport type LogOutput = (source: string | undefined, level: LogLevel, ...objects: any[]) => void;\n\nexport class Logger {\n\n /**\n * Current logging level.\n * Set it to LogLevel.Off to disable logs completely.\n */\n static level = LogLevel.Debug;\n\n /**\n * Additional log outputs.\n */\n static outputs: LogOutput[] = [];\n\n /**\n * Enables production mode.\n * Sets logging level to LogLevel.Warning.\n */\n static enableProductionMode() {\n Logger.level = LogLevel.Warning;\n }\n\n constructor(private source?: string) { }\n\n /**\n * Logs messages or objects with the debug level.\n * Works the same as console.log().\n */\n debug(...objects: any[]) {\n this.log(console.log, LogLevel.Debug, objects);\n }\n\n /**\n * Logs messages or objects with the info level.\n * Works the same as console.log().\n */\n info(...objects: any[]) {\n this.log(console.info, LogLevel.Info, objects);\n }\n\n /**\n * Logs messages or objects with the warning level.\n * Works the same as console.log().\n */\n warn(...objects: any[]) {\n this.log(console.warn, LogLevel.Warning, objects);\n }\n\n /**\n * Logs messages or objects with the error level.\n * Works the same as console.log().\n */\n error(...objects: any[]) {\n this.log(console.error, LogLevel.Error, objects);\n }\n\n private log(func: (...args: any[]) => void, level: LogLevel, objects: any[]) {\n if (level <= Logger.level) {\n const log = this.source ? ['[' + this.source + ']'].concat(objects) : objects;\n func.apply(console, log);\n Logger.outputs.forEach(output => output.apply(output, [this.source, level, ...objects]));\n }\n }\n\n}\n","/**\n * Class that stores the configuration data\n *\n * @author Joshua Kissoon\n * @since 20180724\n */\nexport class TechlifyConfig {\n projectKey: string = '';\n environment: string = '';\n authClientSecret: string = '';\n authGrantType: string = '';\n apiUrl: string = '';\n rawConfigs: any;\n storage: Storage;\n isLogoutWhileApiGetsFailed: boolean = false;\n\n constructor(data: any) {\n this.loadFromMap(data);\n }\n\n loadFromMap(data: any) {\n this.projectKey = data.projectKey;\n this.environment = data.environment;\n this.authClientSecret = data.authClientSecret;\n this.authGrantType = data.authGrantType;\n this.apiUrl = data.apiUrl;\n this.storage = data?.storage;\n this.rawConfigs = data;\n this.isLogoutWhileApiGetsFailed = data?.isLogoutWhileApiGetsFailed;\n }\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { TechlifyConfig } from \"./techlify-config.model\";\n\n/**\n * Service that provides settings for all other services\n *\n * @author Joshua Kissoon\n * @since 20170709\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigService {\n\n public static BASE_CREDENTIALS = \"credentials\";\n\n private config: TechlifyConfig;\n\n constructor(config: TechlifyConfig) {\n this.config = config;\n }\n\n getConfigsRaw() {\n return this.config.rawConfigs;\n }\n\n getProjectKey() {\n return this.config.projectKey;\n }\n\n getApiUrl() {\n return this.config.apiUrl;\n }\n\n getAuthClientSecret() {\n return this.config.authClientSecret;\n }\n\n getStorage() {\n return this.config.storage ? this.config.storage : localStorage;\n }\n\n getAuthGrantType() {\n return this.config.authGrantType;\n }\n\n getCredentialsKey() {\n return this.config.projectKey + \"_\" + ConfigService.BASE_CREDENTIALS;\n }\n\n}\n","import { TechlifyConfig } from './techlify-config.model';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { AlertService } from \"./alert.service\";\r\n\r\n\r\n/**\r\n * Service used to handle errors from the request\r\n *\r\n * @author Joshua Kissoon\r\n * @since 20171202\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorHandlerService {\r\n\r\n constructor(private alerter: AlertService,\r\n private config: TechlifyConfig,\r\n ) {\r\n }\r\n\r\n handleError(errorResponse: any, msg: string = '') {\r\n // 1 - Create empty array to store errors\r\n const errors = [];\r\n\r\n // 2 - check if the error object is present in the response\r\n if (errorResponse?.error) {\r\n\r\n // 3 - Check for Laravel form validation error messages object\r\n if (errorResponse?.error?.errors) {\r\n\r\n // 4 - For each error property (which is a form field)\r\n for (const property in errorResponse.error.errors) {\r\n\r\n if (errorResponse.error.errors?.hasOwnProperty(property)) {\r\n\r\n // 5 - Extract it's array of errors\r\n const propertyErrors: Array<string> = errorResponse?.error?.errors[property];\r\n\r\n // 6 - Push all errors in the array to the errors array\r\n propertyErrors.forEach(error => errors.push(error));\r\n }\r\n\r\n }\r\n }\r\n\r\n if (errors.length === 0) {\r\n // 7 - Push the main error message to the array of errors if there is no validation error\r\n errors.push(errorResponse.error.message ? errorResponse.error.message : errorResponse.error?.error);\r\n }\r\n }\r\n var errMessage = errors.length ? errors[0] : msg;\r\n this.alerter.addAlert(\"Error: \" + errMessage, \"warning\");\r\n\r\n if (errorResponse.status == 401) {\r\n //Unauthenticated from server.\r\n this.clearStorage();\r\n }\r\n\r\n if (errorResponse.status == 403 && this.config.isLogoutWhileApiGetsFailed && !this.isAuthURL(errorResponse?.url)) {\r\n //Unauthorised from server.\r\n this.clearStorage();\r\n }\r\n }\r\n\r\n //We can't use authservice here, because of circular dependency with http service -> error-handler service\r\n clearStorage() {\r\n sessionStorage.clear();\r\n localStorage.clear();\r\n location.reload();\r\n }\r\n\r\n isAuthURL(urlStr: string) {\r\n const url = new URL(urlStr);\r\n return url.pathname == '/public/oauth/token';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpErrorResponse } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { Logger } from './logger.service';\nimport { ConfigService } from './config.service';\nimport { ErrorHandlerService } from './error-handler.service';\nimport { AlertService } from './alert.service';\n\nconst log = new Logger('ErrorHandlerInterceptor');\n\n/**\n * Adds a default error handler to all requests.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorHandlerInterceptor implements HttpInterceptor {\n\n constructor(private configService: ConfigService,\n private errorHandler: ErrorHandlerService,\n private alertService: AlertService) { }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n return next.handle(request).pipe(catchError(error => this.handleError(error)));\n }\n\n // Customize the default error handler here if needed\n private handleError(error: HttpErrorResponse): Observable<HttpEvent<any>> {\n if (this.checkNoNetworkConnection(error)) {\n this.alertService.addAlert('Internet connection not available, try later', 'warning');\n return throwError(error);\n }\n try {\n this.errorHandler.handleError(error, 'Unexpected Server Error, try later or contact service team');\n } catch (e) {\n console.log(\"Unable to handle server error\", e);\n }\n return throwError(error);\n }\n\n /**\n * Helper function to check if an error is likely due to a network connection issue.\n *\n * @param error The error object to check.\n * @returns `true` if it's likely a network error, `false` otherwise.\n */\n checkNoNetworkConnection(error: any): boolean {\n return (\n error instanceof HttpErrorResponse\n && !error.headers.keys().length\n && !error.ok\n && !error.status\n && !error.error.loaded\n && !error.error.total\n )\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpResponse } from '@angular/common/http';\nimport { ConfigService } from './config.service';\nimport { Logger } from './logger.service';\n\nconst log = new Logger('HttpCacheService');\n\n\nexport interface HttpCacheEntry {\n lastUpdated: Date;\n data: HttpResponse<any>;\n}\n\n/**\n * Provides a cache facility for HTTP requests with configurable persistence policy.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class HttpCacheService {\n\n private cachedData: { [key: string]: HttpCacheEntry; } = {};\n private storage: Storage | any | null;\n private cachePersistenceKey: String | any;\n\n constructor(private configService: ConfigService) {\n this.storage = this.configService.getStorage();\n this.cachePersistenceKey = this.configService.getProjectKey() + '_HTTP_CACHE';\n this.loadCacheData();\n }\n\n /**\n * Sets the cache data for the specified request.\n * @param {!string} url The request URL.\n * @param {ResponseOptions} data The received data.\n * @param {Date=} lastUpdated The cache last update, current date is used if not specified.\n */\n setCacheData(url: string, data: HttpResponse<any>, lastUpdated?: Date) {\n this.cachedData[url] = {\n lastUpdated: lastUpdated || new Date(),\n data: data\n };\n log.debug(`Cache set for key: \"${url}\"`);\n this.saveCacheData();\n }\n\n /**\n * Gets the cached data for the specified request.\n * @param {!string} url The request URL.\n * @return {?ResponseOptions} The cached data or null if no cached data exists for this request.\n */\n getCacheData(url: string): HttpResponse<any> | null {\n const cacheEntry = this.cachedData[url];\n\n if (cacheEntry) {\n log.debug(`Cache hit for key: \"${url}\"`);\n return cacheEntry.data;\n }\n\n return null;\n }\n\n /**\n * Gets the cached entry for the specified request.\n * @param {!string} url The request URL.\n * @return {?HttpCacheEntry} The cache entry or null if no cache entry exists for this request.\n */\n getHttpCacheEntry(url: string): HttpCacheEntry | null {\n return this.cachedData[url] || null;\n }\n\n /**\n * Clears the cached entry (if exists) for the specified request.\n * @param {!string} url The request URL.\n */\n clearCache(url: string): void {\n delete this.cachedData[url];\n log.debug(`Cache cleared for key: \"${url}\"`);\n this.saveCacheData();\n }\n\n /**\n * Cleans cache entries older than the specified date.\n * @param {date=} expirationDate The cache expiration date. If no date is specified, all cache is cleared.\n */\n cleanCache(expirationDate?: Date) {\n if (expirationDate) {\n Object(this.cachedData).keys.forEach((key: string) => {\n if (expirationDate >= this.cachedData[key]?.lastUpdated) {\n delete this.cachedData[key];\n }\n });\n } else {\n this.cachedData = {};\n }\n this.saveCacheData();\n }\n\n /**\n * Sets the cache persistence policy.\n * Note that changing the cache persistence will also clear the cache from its previous storage.\n * @param {'local'|'session'=} persistence How the cache should be persisted, it can be either local or session\n * storage, or if no value is provided it will be only in-memory (default).\n */\n setPersistence(persistence?: 'local' | 'session') {\n this.cleanCache();\n this.storage = persistence === 'local' ? localStorage : persistence === 'session' ? sessionStorage : null;\n this.loadCacheData();\n }\n\n private saveCacheData() {\n if (this.storage) {\n this.storage[this.cachePersistenceKey] = JSON.stringify(this.cachedData);\n }\n }\n\n private loadCacheData() {\n const data = this.storage ? this.storage[this.cachePersistenceKey] : null;\n this.cachedData = data ? JSON.parse(data) : {};\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { HttpCacheService } from './http-cache.service';\nimport { Observable, Subscriber } from 'rxjs';\n\n/**\n * Caches HTTP requests.\n * Use ExtendedHttpClient fluent API to configure caching for each request.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class CacheInterceptor implements HttpInterceptor {\n\n private forceUpdate = false;\n\n constructor(private httpCacheService: HttpCacheService) { }\n\n /**\n * Configures interceptor options\n * @param {{update: boolean}} options If update option is enabled, forces request to be made and updates cache entry.\n * @return {CacheInterceptor} The configured instance.\n */\n configure(options?: { update?: boolean } | null): CacheInterceptor {\n const instance = new CacheInterceptor(this.httpCacheService);\n if (options && options.update) {\n instance.forceUpdate = true;\n }\n return instance;\n }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (request.method !== 'GET') {\n return next.handle(request);\n }\n\n return new Observable((subscriber: Subscriber<HttpEvent<any>>) => {\n const cachedData = this.forceUpdate ? null : this.httpCacheService.getCacheData(request.urlWithParams);\n if (cachedData !== null) {\n // Create new response to avoid side-effects\n subscriber.next(new HttpResponse(cachedData as Object));\n subscriber.complete();\n } else {\n next.handle(request)\n .subscribe(\n event => {\n if (event instanceof HttpResponse) {\n this.httpCacheService.setCacheData(request.urlWithParams, event);\n }\n subscriber.next(event);\n },\n error => subscriber.error(error),\n () => subscriber.complete()\n );\n }\n });\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { ConfigService } from './config.service';\n\n/**\n * Prefixes all requests not starting with `http[s]` with `environment.serverUrl`.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiPrefixInterceptor implements HttpInterceptor {\n\n constructor(private configService: ConfigService) { }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (!/^(http|https):/i.test(request.url)) {\n request = request.clone({ url: this.configService.getApiUrl() + request.url });\n }\n return next.handle(request);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigService } from './config.service';\n\nexport interface Credentials {\n // Customize received credentials here\n user: any;\n token: any;\n}\n\n/**\n * Provides storage for authentication credentials.\n * The Credentials interface should be replaced with proper implementation.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class CredentialsService {\n\n private _credentials: Credentials | null = null;\n\n constructor(private configService: ConfigService) {\n }\n\n /**\n * Checks is the user is authenticated.\n * @return True if the user is authenticated.\n */\n get isAuthenticated(): boolean {\n const token = this.credentials?.token?.access_token;\n const expiration = this.credentials?.token?.expires_in;\n\n if (!token || !expiration) {\n return false;\n }\n \n return Date.now() <= parseInt(expiration);\n }\n\n /**\n * Gets the user credentials.\n * @return The user credentials or null if the user is not authenticated.\n */\n get credentials(): Credentials | null {\n if (!this._credentials) {\n this._credentials = JSON.parse(sessionStorage.getItem(this.configService.getCredentialsKey()) || localStorage.getItem(this.configService.getCredentialsKey()));\n }\n return this._credentials;\n }\n\n /**\n * Sets the user credentials.\n * The credentials may be persisted across sessions by setting the `remember` parameter to true.\n * Otherwise, the credentials are only persisted for the current session.\n * @param credentials The user credentials.\n * @param remember True to remember credentials across sessions.\n */\n setCredentials(credentials?: Credentials, remember?: boolean) {\n this._credentials = credentials || null;\n\n if (credentials) {\n (remember ? localStorage : sessionStorage).setItem(this.configService.getCredentialsKey(), JSON.stringify(credentials));\n } else {\n sessionStorage.clear();\n localStorage.clear();\n this._credentials = null;\n }\n }\n\n getAccessToken(): string | null {\n const expiration = this.credentials?.token?.expires_in || '';\n const token = this.credentials?.token?.access_token || '';\n\n if (!token || !expiration) {\n return null;\n }\n\n if (Date.now() > parseInt(expiration)) {\n this.setCredentials();\n return null;\n }\n\n return token;\n }\n\n getExpiration(): string {\n return this.credentials?.token?.expires_in || '';\n }\n\n getRefreshToken(): string {\n return this.credentials?.token?.refresh_token || '';\n }\n\n refresh(): CredentialsService {\n this._credentials = null;\n return this;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CredentialsService } from './credentials.service';\n\n\n/**\n * Prefixes all requests not starting with `http[s]` with `environment.serverUrl`.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class TokenInterceptor implements HttpInterceptor {\n\n constructor(private credentials: CredentialsService) { }\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n request = request.clone({\n setHeaders: {\n Authorization: `Bearer ${this.credentials.getAccessToken() || ''}`\n }\n });\n return next.handle(request);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n\n/**\n * Prefixes all requests not starting with `http[s]` with `environment.serverUrl`.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class HeaderInterceptor implements HttpInterceptor {\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n request = request.clone({\n setHeaders: {\n 'Content-Type': request.headers.get('Content-Type') || 'application/json',\n }\n });\n return next.handle(request);\n }\n}\n","import { Inject, Injectable, InjectionToken, Injector, Optional } from '@angular/core';\nimport { HttpClient, HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\nimport { ErrorHandlerInterceptor } from './error-handler.interceptor';\nimport { CacheInterceptor } from './cache.interceptor';\nimport { ApiPrefixInterceptor } from './api-prefix.interceptor';\nimport { TokenInterceptor } from './token.interceptor';\nimport { HeaderInterceptor } from './header.interceptor';\n\n\n// Augment HttpClient with the added configuration methods from HttpService, to allow in-place replacement of\n// HttpClient with HttpService using dependency injection\nexport interface HttpCustomClient {\n\n /**\n * Enables caching for this request.\n * @param {boolean} forceUpdate Forces request to be made and updates cache entry.\n * @return {HttpCustomClient} The new instance.\n */\n cache(forceUpdate?: boolean): HttpCustomClient;\n\n /**\n * Skips default error handler for this request.\n * @return {HttpCustomClient} The new instance.\n */\n skipErrorHandler(): HttpCustomClient;\n\n /**\n * Skips default API Prefix for this request.\n * @return {HttpCustomClient} The new instance.\n */\n skipApiPrefix(): HttpCustomClient;\n\n\n /**\n * Skips default Token Interceptor for this request.\n * @return {HttpCustomClient} The new instance.\n */\n skipToken(): HttpCustomClient;\n\n /**\n* Skips default Header Interceptor for this request.\n* @return {HttpCustomClient} The new instance.\n*/\n skipHeader(): HttpCustomClient;\n\n}\n\n\n// From @angular/common/http/src/interceptor: allows to chain interceptors\nclass HttpInterceptorHandler implements HttpHandler {\n\n constructor(private next: HttpHandler, private interceptor: HttpInterceptor) { }\n\n handle(request: HttpRequest<any>): Observable<HttpEvent<any>> {\n return this.interceptor.intercept(request, this.next);\n }\n\n}\n\n/**\n * Allows to override default dynamic interceptors that can be disabled with the HttpService extension.\n * Except for very specific needs, you should better configure these interceptors directly in the constructor below\n * for better readability.\n *\n * For static interceptors that should always be enabled (like ApiPrefixInterceptor), use the standard\n * HTTP_INTERCEPTORS token.\n */\nexport const HTTP_DYNAMIC_INTERCEPTORS = new InjectionToken<HttpInterceptor>('HTTP_DYNAMIC_INTERCEPTORS');\n\n/**\n * Extends HttpClient with per request configuration using dynamic interceptors.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class HttpService extends HttpClient implements HttpCustomClient {\n\n constructor(private httpHandler: HttpHandler,\n private injector: Injector,\n @Optional() @Inject(HTTP_DYNAMIC_INTERCEPTORS) private interceptors: HttpInterceptor[] = []) {\n super(httpHandler);\n\n if (!this.interceptors) {\n // Configure default interceptors that can be disabled here\n this.interceptors = [this.injector.get(ApiPrefixInterceptor), this.injector.get(HeaderInterceptor), this.injector.get(TokenInterceptor), this.injector.get(ErrorHandlerInterceptor)];\n }\n }\n\n cache(forceUpdate?: boolean): HttpService {\n const cacheInterceptor = this.injector.get(CacheInterceptor).configure({ update: forceUpdate });\n return this.addInterceptor(cacheInterceptor);\n }\n\n skipErrorHandler(): HttpService {\n return this.removeInterceptor(ErrorHandlerInterceptor);\n }\n\n skipApiPrefix(): HttpService {\n return this.removeInterceptor(ApiPrefixInterceptor);\n }\n\n skipToken(): HttpService {\n return this.removeInterceptor(TokenInterceptor);\n }\n\n skipHeader(): HttpService {\n return this.removeInterceptor(HeaderInterceptor);\n }\n\n // Override the original method to wire interceptors when triggering the request.\n request(method?: any, url?: any, options?: any): any {\n const handler = this.interceptors.reduceRight(\n (next, interceptor) => new HttpInterceptorHandler(next, interceptor),\n this.httpHandler\n );\n return new HttpClient(handler).request(method, url, options);\n }\n\n private removeInterceptor(interceptorType: Function): HttpService {\n return new HttpService(\n this.httpHandler,\n this.injector,\n this.interceptors.filter(i => !(i instanceof interceptorType))\n );\n }\n\n private addInterceptor(interceptor: HttpInterceptor): HttpService {\n return new HttpService(\n this.httpHandler,\n this.injector,\n this.interceptors.concat([interceptor])\n );\n }\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectionStrategy } from \"@angular/core\";\nimport { AlertService } from \"../core/alert.service\";\nimport { FileDropperConfig } from './file-dropper.model';\n\n\n@Component({\n selector: \"app-file-dropper\",\n templateUrl: \"./file-dropper.component.html\",\n styleUrls: [\"./file-dropper.component.scss\"],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class FileDropperComponent implements OnInit {\n @Input() fileArray: any[] = [];\n\n @Input() config: FileDropperConfig;\n\n @Output() fileChanged: any = new EventEmitter();\n\n border = \"1px dashed #989898\";\n\n @Input() styles: any;\n\n isSingleMode: boolean;\n\n constructor(private alertService: AlertService) { }\n\n /**Life cycle hook method */\n ngOnInit() {\n this.isSingleMode = !Boolean(this.config.multiple);\n }\n\n /**Method for dragging event */\n dragEnter(event: any) {\n event.target.style.background = this.config.dragColor || \"#c0c0c0\";\n\n event.target.style.border = \"1px dashed black\";\n\n event.preventDefault();\n }\n\n /**Method for drag over event */\n dragOver(event: any) {\n event.preventDefault();\n }\n\n /**Method for drag leave event */\n dragLeave(event: any) {\n event.target.style.background = \"\";\n event.target.style.border = this.border;\n\n event.preventDefault();\n }\n\n /**Method for drop event */\n dropEvent(event: any) {\n event.target.style.background = \"\";\n event.target.style.border = this.border;\n const droppedFiles: FileList = event.dataTransfer.files;\n if (droppedFiles.length > 0) {\n const fileArray = Array.from(droppedFiles);\n this.addFiles(fileArray);\n }\n event.preventDefault();\n }\n\n /**Method to list files selected */\n onFileChange(event: any) {\n if (event.target.files && event.target.files.length) {\n const fileArray = Array.from(event.target.files);\n this.addFiles(fileArray);\n const fileInput = document.getElementById(\n this.config.fileId\n ) as HTMLInputElement;\n fileInput.value = \"\";\n }\n }\n\n /**Method to add files in the array */\n addFiles(fileArray: any) {\n if (!this.isSingleMode) {\n fileArray.forEach((file: any) => {\n this.fileArray = this.fileArray.filter(\n (item: any) => item.name !== file.name\n );\n if (this.fileSizeAllowed(file)) {\n this.fileArray.push(file);\n }\n });\n\n this.fileArray.sort(this.sortFiles);\n this.fileChanged.emit(this.fileArray);\n } else {\n // Single Mode\n if (this.fileArray.length === 0) {\n if (this.fileSizeAllowed(fileArray[0])) {\n this.fileArray.push(fileArray[0]);\n this.fileArray.sort(this.sortFiles);\n this.fileChanged.emit(this.fileArray);\n }\n }\n }\n //Reset the file array\n this.fileArray = [];\n }\n\n /**Method to sort the files in asc */\n sortFiles(a: any, b: any) {\n const nameA = a.name.toUpperCase();\n const nameB = b.name.toUpperCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n\n return 0;\n }\n\n /**Method tp validate the file size */\n fileSizeAllowed(file: any): boolean {\n if (!Boolean(this.config.maxSize)) {\n return true;\n } else if (file.size / (1024 * 1024) < this.config.maxSize) {\n return true;\n } else {\n this.alertService.addAlert(\n `The size of the file exceeds the limit ${this.config.maxSize} MB, kindly upload a file with size ${this.config.maxSize} MB or below`,\n \"warn\"\n );\n return false;\n }\n }\n\n /**Method invokes when the drop box is clicked to upload the file */\n clickEvent(event: any) {\n if (!(this.isSingleMode && this.fileArray.length > 0)) {\n document.getElementById(this.config.fileId).click();\n }\n event.preventDefault();\n }\n}\n","<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","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-form-configuration-for-form',\n templateUrl: './form-configuration-for-form.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false,\n})\nexport class FormConfigurationForFormComponent {\n\n @Input() formCode: string;\n\n constructor(\n private router: Router,\n ) {\n }\n\n openForm() {\n this.router.navigate(['/form-configuration-field-form', this.formCode]);\n }\n}\n","<mat-icon role='button' matTooltip=\"Form Configuration\" (click)=\"openForm()\">settings</mat-icon>","import { Component, OnInit, Input, ChangeDetectionStrategy } from \"@angular/core\";\n\n@Component({\n selector: \"app-read-more\",\n templateUrl: \"./read-more.component.html\",\n styleUrls: [\"./read-more.component.scss\"],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class ReadMoreComponent implements OnInit {\n @Input() text: string;\n @Input() maxLength: number = 100;\n currentText: string;\n hideToggle: boolean = true;\n\n isCollapsed: boolean = true;\n\n constructor() {}\n\n ngOnInit() {\n this.determineView();\n }\n\n toggleView() {\n this.isCollapsed = !this.isCollapsed;\n this.determineView();\n }\n\n determineView() {\n if (!this.text || this.text.length <= this.maxLength) {\n this.currentText = this.text;\n this.isCollapsed = false;\n this.hideToggle = true;\n return;\n }\n this.hideToggle = false;\n if (this.isCollapsed == true) {\n this.currentText = this.text.substring(0, this.maxLength) + \"...\";\n } else if (this.isCollapsed == false) {\n this.currentText = this.text;\n }\n }\n}\n","<div [innerHTML]=\"currentText\"></div>\n<a href=\"javascript:;\" *ngIf=\"!hideToggle\" class=\"primary-color hoverable\" (click)=\"toggleView()\">Read\n {{ isCollapsed ? \"more\" : \"less\" }}</a>","import { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\n/*\n * This module imports and re-exports all Angular Material modules for convenience,\n * so only 1 module import is needed in your feature modules.\n * See https://material.angular.io/guide/getting-started#step-3-import-the-component-modules.\n *\n * To optimize your production builds, you should only import the components used in your app.\n */\n\nimport { NgModule } from \"@angular/core\";\nimport {\n MatLineModule,\n MatNativeDateModule,\n MatOptionModule,\n MatPseudoCheckboxModule,\n MatRippleModule\n} from \"@angular/material/core\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatDividerModule } from \"@angular/material/divider\";\nimport { MatChipsModule } from \"@angular/material/chips\";\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatListModule } from '@angular/material/list'\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatTabsModule } from '@angular/material/tabs';\n\n\n@NgModule({\n exports: [\n MatAutocompleteModule,\n MatButtonModule,\n MatCheckboxModule,\n MatDialogModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatLineModule,\n MatMenuModule,\n MatNativeDateModule,\n MatOptionModule,\n MatProgressSpinnerModule,\n MatPseudoCheckboxModule,\n MatRippleModule,\n MatSelectModule,\n MatSortModule,\n MatTableModule,\n MatCardModule,\n MatDividerModule,\n MatChipsModule,\n MatDatepickerModule,\n MatListModule,\n MatTooltipModule,\n MatButtonToggleModule,\n MatSidenavModule,\n MatProgressBarModule,\n MatSlideToggleModule,\n MatTabsModule\n ]\n})\nexport class MaterialModule { }\n","/**\n * Registry file to maintain the custom icons SVGs\n */\n\nexport const CUSTOM_ICONS: Record<string, string> = {\n 'batch-add': `\n<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_8645_35194)\">\n <path d=\"M22.498 15.243H17.6766V20.0645H16.0695V15.243H11.248V13.6359H16.0695V8.81445H17.6766V13.6359H22.498V15.243Z\"\n fill=\"black\" stroke=\"black\" stroke-width=\"0.75\" stroke-linejoin=\"round\"/>\n <path d=\"M13.748 11.493H8.92662V16.3145H7.31948V11.493H2.49805V9.88588H7.31948V5.06445H8.92662V9.88588H13.748V11.493Z\"\n fill=\"black\" stroke=\"black\" stroke-width=\"0.75\" stroke-linejoin=\"round\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_8645_35194\">\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.498047 0.0644531)\"/>\n </clipPath>\n </defs>\n</svg>\n `,\n 'unapprove': `\n<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g transform=\"scale(0.025)\">\n <path\n 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\"\n fill=\"currentColor\"\n transform=\"translate(0,960)\"\n />\n </g>\n</svg>`,\n 'gra': `\n<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\">\n<rect width=\"30\" height=\"30\" fill=\"url(#pattern0_1076_92)\"/>\n<defs>\n<pattern id=\"pattern0_1076_92\" patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n<use xlink:href=\"#image0_1076_92\" transform=\"scale(0.00666667)\"/>\n</pattern>\n<image id=\"image0_1076_92\" width=\"150\" height=\"150\" preserveAspectRatio=\"none\" xlink:href=\"data:image/png;base64,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\"/>\n</defs>\n</svg>\n`\n};\n","import { Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { CUSTOM_ICONS } from './custom-icons.registry';\n\n@Injectable({ providedIn: 'root' })\nexport class CustomIconRegistryService {\n private icons = new Map<string, SafeHtml>();\n\n constructor(private sanitizer: DomSanitizer) {\n Object.entries(CUSTOM_ICONS).forEach(([name, svg]) => {\n this.icons.set(name, this.sanitizer.bypassSecurityTrustHtml(svg));\n });\n }\n\n getIcon(name: string): SafeHtml | undefined {\n return this.icons.get(name);\n }\n}","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { CustomIconRegistryService } from './custom-icon-registry.service';\n\n@Component({\n selector: 'app-custom-icon',\n templateUrl: './custom-icon.component.html',\n styleUrl: './custom-icon.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\n/**\n * Custom font-awesome icon implementation.\n * Supports all font awesome sizing classes.\n */\nexport class CustomIconComponent {\n\n @Input() name!: string;\n svgIcon: any;\n\n constructor(private registry: CustomIconRegistryService) { }\n\n ngOnChanges() {\n this.svgIcon = this.registry.getIcon(this.name);\n }\n}\n","<span class=\"fa\" [innerHTML]=\"svgIcon\"></span>","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'app-techlify-icon',\n templateUrl: './techlify-icon.component.html',\n styleUrls: ['./techlify-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class TechlifyIconComponent {\n @Input() name: string = '';\n @Input() size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n get iconClass(): string[] {\n const baseClass = this.iconMap[this.name] || 'fa fa-question-circle';\n const sizeClass = this.sizeMap[this.size] || '';\n return [baseClass, sizeClass];\n }\n\n //Custom icon list\n customIconList: string[] = [\n 'batch-add',\n 'unapprove',\n 'gra'\n ];\n\n //Method to check custom icons\n isCustomIcon(name: string): boolean {\n return this.customIconList.includes(name);\n }\n\n // Map logical names to CSS classes\n private iconMap: Record<string, string> = {\n add: 'fas fa-plus',\n view: 'fas fa-eye',\n edit: 'fas fa-pen',\n delete: 'fas fa-trash',\n import: 'fas fa-file-import',\n export: 'fas fa-file-excel',\n print: 'fas fa-print',\n pdf: 'fas fa-file-pdf',\n history: 'fas fa-clock',\n copy: 'fas fa-copy',\n activate: 'fas fa-check-circle',\n deactivate: 'fas fa-stop-circle',\n email: 'far fa-envelope',\n approve: 'fas fa-check',\n reject: 'fas fa-times',\n calendar: 'fas fa-calendar',\n table: 'fas fa-table',\n multi_calendar: 'fas fa-calendar-alt',\n link: 'fas fa-link',\n link_external: 'fas fa-arrow-up fa-rotate-by rotate-45-deg',\n reset: 'fas fa-redo',\n phone: 'fas fa-phone',\n location: 'fas fa-map-marker-alt',\n unlink: 'fas fa-unlink',\n disable_user: 'fas fa-user-slash',\n swap: 'fas fa-retweet',\n apps: 'fas fa-th',\n user: 'fas fa-user-circle',\n search: 'fas fa-search',\n close: 'fas fa-times'\n };\n\n // Map size input to CSS classes\n private sizeMap: Record<string, string> = {\n xs: 'fa-xs',\n sm: 'fa-sm',\n md: 'fa-md',\n lg: 'fa-lg',\n xl: 'fa-2x'\n };\n}","<!-- 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>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CustomIconComponent } from './custom-icon.component';\n\n\n\n@NgModule({\n declarations: [CustomIconComponent],\n imports: [\n CommonModule,\n ],\n exports: [CustomIconComponent]\n})\nexport class CustomIconModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TechlifyIconComponent } from './techlify-icon.component';\nimport { CustomIconModule } from '../custom-icon/custom-icon.module';\n\n@NgModule({\n imports: [\n CommonModule,\n CustomIconModule\n ],\n declarations: [TechlifyIconComponent],\n exports: [TechlifyIconComponent]\n})\nexport class TechlifyIconModule { }\n","import { NgModule } from '@angular/core';\nimport { SuccessSnackComponent, ErrorSnackComponent } from './snack.component';\nimport { CommonModule } from '@angular/common';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [\n SuccessSnackComponent,\n ErrorSnackComponent\n ],\n imports: [\n CommonModule,\n MatSnackBarModule,\n MatIconModule\n ],\n exports: [\n SuccessSnackComponent,\n ErrorSnackComponent,\n ]\n})\nexport class SnackModule { }\n","import { Injectable } from '@angular/core';\nimport { SwUpdate } from '@angular/service-worker';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\n/**\n * Watches for new app deployments via the Angular service worker and prompts\n * the user to reload. Checks are event-driven only (VERSION_READY push, tab\n * becoming visible again) - a periodic polling interval was reviewed and\n * rejected, so don't reintroduce one.\n *\n * Consuming apps must register the service worker themselves\n * (ServiceWorkerModule.register('ngsw-worker.js', ...)) and call init() once,\n * e.g. from AppComponent.ngOnInit().\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AppUpdateService {\n\n constructor(\n private swUpdate: SwUpdate,\n private snackBar: MatSnackBar\n ) { }\n\n init() {\n if (!this.swUpdate.isEnabled) {\n return;\n }\n\n this.promptOnVersionReady();\n this.reloadOnUnrecoverableState();\n this.checkForUpdatesWhenTabBecomesVisible();\n }\n\n private promptOnVersionReady() {\n this.swUpdate.versionUpdates.subscribe(event => {\n if (event.type === 'VERSION_READY') {\n this.promptReload();\n }\n });\n }\n\n private reloadOnUnrecoverableState() {\n this.swUpdate.unrecoverable.subscribe(() => {\n alert('An error occurred loading the latest version of the app. It will now reload to recover.');\n document.location.reload();\n });\n }\n\n private checkForUpdatesWhenTabBecomesVisible() {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n this.swUpdate.checkForUpdate();\n }\n });\n }\n\n private promptReload() {\n const snackBarRef = this.snackBar.open('A new version of the app is available.', 'Reload', {\n horizontalPosition: 'right',\n verticalPosition: 'top',\n });\n snackBarRef.onAction().subscribe(() => document.location.reload());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { CredentialsService } from './credentials.service';\nimport { Logger } from './logger.service';\n\nconst log = new Logger('AuthenticationGuard');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticationGuard {\n\n constructor(private router: Router,\n private credentialsService: CredentialsService) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n return this.isUserAuthenticated(route, state);\n }\n\n canLoad(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n return this.isUserAuthenticated(route, state);\n }\n\n isUserAuthenticated(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.credentialsService.isAuthenticated) {\n return true;\n }\n\n log.debug('Not authenticated, redirecting and adding redirect url...');\n this.router.navigate(['/login'], { queryParams: { redirect: state.url }, replaceUrl: true });\n return false;\n }\n\n}\n","/**\n * Class representation of a user\n *\n * @author Joshua Kissoon\n * @since 20170709\n */\nexport class User {\n id: number;\n name: string;\n email: string;\n password: string;\n status_id: string;\n user_type_id: number;\n is_temporary_password: boolean;\n client_id: number;\n roles: any[];\n permissions: any[];\n type: any;\n selected: boolean;\n client: any;\n temporarily_invited: boolean;\n short_name: string;\n avatar_color: string;\n signature: string;\n signature_url: string;\n user_client: any;\n clients: any[];\n\n constructor() {\n this.id = 0;\n this.client = {};\n this.roles = [];\n }\n\n loadFromMap(data: any) {\n this.id = data.id;\n this.email = data.email;\n this.name = data.name;\n this.status_id = data.status_id;\n this.user_type_id = data.user_type_id;\n this.client_id = data.client_id;\n this.is_temporary_password = data.is_temporary_password;\n this.roles = (data.roles == null) ? [] : data.roles;\n this.permissions = (data.permissions == null) ? [] : data.permissions;\n this.type = (data.type == null) ? [] : data.type;\n this.client = data.client;\n this.signature = data.signature;\n this.signature_url = data.signature_url;\n this.user_client = data?.user_client;\n this.clients = data?.clients;\n }\n}\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\n/**\r\n * Service used to manage Local Storage\r\n * \r\n * @author Joshua Kissoon\r\n * @since 20190623\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n private storageSub = new Subject<any>();\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n watch(): Observable<any> {\r\n return this.storageSub.asObservable();\r\n }\r\n\r\n setItem(key: string, data: any) {\r\n localStorage.setItem(key, data);\r\n this.storageSub.next({ key: key, value: data });\r\n }\r\n\r\n getItem(key: string) {\r\n return localStorage.getItem(key);\r\n }\r\n\r\n removeItem(key: string) {\r\n const data = this.getItem(key);\r\n localStorage.removeItem(key);\r\n this.storageSub.next({ key: key, value: data });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { Subject, Observable, of, map, BehaviorSubject } from 'rxjs';\n\nimport { User } from './user.model';\nimport { StorageService } from '../core/storage.service';\nimport { HttpService } from '../core/http.service';\n\n/**\n * Service that manages information about the current user\n *\n * @author Joshua Kissoon\n * @since 20170817\n */\n@Injectable({ providedIn: 'root' })\nexport class CurrentUserService {\n private user: User;\n private data: any;\n\n /**Deprecated stop using for new projects */\n private userSub = new Subject<User>();\n // Track the auth status of the user.\n private isLoggedIn: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor(private http: HttpService, private storage: StorageService) { }\n\n /**\n * Get the login status of the user.\n */\n getAuthStatus(): Observable<boolean> {\n return this.isLoggedIn.asObservable();\n }\n\n /**\n * Update the login status of the user.\n *\n * @param val The next value of the isLoggedIn.\n */\n updateAuthStatus(val: boolean): void {\n this.isLoggedIn.next(val);\n }\n\n /**\n * Returns an user if present, otherwise a empty user\n * @returns {User} user\n */\n getUser(): any {\n if (this.user) {\n return this.user;\n }\n this.user = new User();\n const userFromStorage = JSON.parse(this.storage.getItem('currentUser'));\n if (userFromStorage) {\n this.user.loadFromMap(userFromStorage);\n }\n return this.user;\n }\n\n /**\n * @deprecated Don't use for new projects, use getUserObservable() instead\n * @returns {Observable<User>} Observable of user once changed.\n */\n watch(): Observable<any> {\n return this.userSub.asObservable();\n }\n\n /**\n * Loads the current logged in user\n * @deprecated use getUserObservable() instead\n * @param reload whether to fetch new data from server\n * @returns {Promise<User>} promise of user\n */\n getCurrentUser(reload = false): any {\n let promise;\n if (undefined !== this.data && !reload) {\n promise = new Promise((resolve, reject) => {\n resolve(this.data);\n });\n\n return promise;\n }\n promise = this.http.get('api/user/current').toPromise();\n\n promise.then(\n res => {\n this.user = new User();\n this.data = res;\n this.user.loadFromMap(res.user);\n this.storage.setItem('currentUser', JSON.stringify(res.user));\n this.userSub.next(this.user);\n }\n );\n\n return promise;\n }\n\n /**\n * Used to update the current user data\n * @param {any} userData data that needs to be updated to current user\n */\n updateCurrentUser(userData: any): any {\n this.user = new User();\n this.data = userData;\n this.user.loadFromMap(userData);\n this.storage.setItem('currentUser', JSON.stringify(userData));\n this.userSub.next(this.user);\n }\n\n /**\n * @param {number} id Id of role\n * @returns {boolean} true if role is present\n */\n hasRole(id: number): boolean {\n if (this.user.roles == null) {\n return false;\n }\n return (this.user.roles || []).some(role => role.id == id);\n }\n\n /**\n * @param {number} id Id of permission\n * @returns {boolean} true if permission is present\n */\n hasPermission(slug: string): boolean {\n if (!this.user) {\n return false;\n }\n if (this.user.user_type_id == 1) {\n return true;\n }\n else {\n if (this.user.permissions == null) {\n return false;\n }\n return (this.user.permissions || []).some(permission => permission.slug == slug);\n }\n }\n\n /**\n * Returns the observable of user\n * @param {boolean} reload - whether to reload the entire user again\n * @returns {Observable<User>} Observable of user.\n */\n getUserObservable(reload: boolean = false): Observable<User> {\n if (this.user && !reload) {\n return of(this.user);\n }\n return this.http.get('api/user/current')\n .pipe(\n map((res: any) => {\n this.user = new User();\n this.data = res;\n this.user.loadFromMap(res.user);\n this.storage.setItem('currentUser', JSON.stringify(res.user));\n return this.user;\n })\n );\n }\n\n /**\n * @returns {any} Returns the raw user data\n */\n getUserData(): any {\n return this.data;\n }\n}\n","\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport {catchError, map, switchMap} from 'rxjs/operators';\nimport { Credentials, CredentialsService } from './credentials.service';\nimport { HttpService } from './http.service';\nimport { CurrentUserService } from '../user/current-user.service';\n\n/**\n * Provides a base for authentication workflow.\n * The login/logout methods should be replaced with proper implementation.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthenticationService {\n\n constructor(\n private credentialsService: CredentialsService,\n private http: HttpService,\n private currentUserService: CurrentUserService\n ) { }\n\n /**\n * Authenticates the user.\n * @param context The login parameters.\n * @return The user credentials.\n */\n login(context: any): Observable<Credentials> {\n const data = {} as Credentials;\n return this.http\n .skipToken()\n .post('oauth/token', context)\n .pipe(\n switchMap((tokenInfo: any) => {\n tokenInfo.expires_in = Date.now() + (tokenInfo.expires_in * 1000);\n data.token = tokenInfo;\n data.user = {};\n this.credentialsService.setCredentials(data, context.remember);\n // Update the auth status of the user.\n this.currentUserService.updateAuthStatus(true);\n return this.http.get('api/user/current')\n .pipe(\n map((res: any) => {\n data.user = res?.user;\n this.credentialsService.setCredentials(data, context.remember);\n return data;\n }),\n );\n }),\n );\n }\n\n /**\n * Logs out the user and clear credentials.\n * @return True if the user was logged out successfully.\n */\n logout(): Observable<boolean> {\n return this.http.post('api/user/logout', {}).pipe(\n map(() => {\n // On successful logout, update auth status and clear credentials\n this.currentUserService.updateAuthStatus(false);\n this.credentialsService.setCredentials();\n return true;\n }),\n catchError(() => {\n // On error, return false\n return of(false);\n })\n );\n }\n}\n","import { ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy } from '@angular/router';\nimport { Injectable } from '@angular/core';\n\n/**\n * A route strategy allowing for explicit route reuse.\n * Used as a workaround for https://github.com/angular/angular/issues/18374\n * To reuse a given route, add `data: { reuse: true }` to the route definition.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class RouteReusableStrategy extends RouteReuseStrategy {\n\n public shouldDetach(route: ActivatedRouteSnapshot): boolean {\n return false;\n }\n\n public store(route: ActivatedRouteSnapshot, detachedTree: DetachedRouteHandle | null): void { }\n\n public shouldAttach(route: ActivatedRouteSnapshot): boolean {\n return false;\n }\n\n public retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\n return null;\n }\n\n public shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\n // Reuse the route if the RouteConfig is the same, or if both routes use the\n // same component, because the latter can have different RouteConfigs.\n return future.routeConfig === curr.routeConfig ||\n Boolean(future.routeConfig?.component &&\n future.routeConfig?.component === curr.routeConfig?.component);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\n/**\n * @deprecated by release 18.20\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class FilterService {\n\n filters: any;\n\n constructor(private router: Router) { }\n\n applyFilterToRoute(url, filter) {\n this.router.navigate([filter],\n {\n relativeTo: url,\n replaceUrl: true\n }\n )\n }\n\n getFiltersFromRoute(url, filterFormGroup) {\n url.params.subscribe(\n params => {\n for (var filter in params) {\n if (params[filter]) {\n\n for (let [key, value] of Object.entries(filterFormGroup)) {\n if (key === filter) {\n filterFormGroup[key] = params[filter];\n }\n }\n\n }\n\n }\n }\n );\n return filterFormGroup;\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, input, OnInit, output, ChangeDetectionStrategy } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { finalize } from 'rxjs/operators';\nimport { MaterialModule } from '../material.module';\nimport { TechlifyIconModule } from '../techlify-icon/techlify-icon.module';\nimport { ActionPopupComponent } from '../action-popup';\nimport { TechlifyService } from '../base-model';\nimport { AlertService, ErrorHandlerService } from '../core';\n\ninterface DeleteButtonData {\n title: string;\n type: string;\n}\n\n@Component({\n selector: 'app-techlify-delete-button',\n templateUrl: './techlify-delete-button.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [\n CommonModule,\n MaterialModule,\n TechlifyIconModule\n ]\n})\n\nexport class TechlifyDeleteButtonComponent {\n\n data = input<DeleteButtonData>({\n title: 'Delete Record',\n type: ''\n });\n model = input.required<any>();\n message = input<string>();\n service = input.required<TechlifyService>();\n\n deleted = output<boolean>();\n //Emits true while the delete request is in progress, so the parent can show its own progress indicator\n loading = output<boolean>();\n\n constructor(\n private dialog: MatDialog,\n protected alertService: AlertService,\n protected errorHandler: ErrorHandlerService\n ) { }\n\n open() {\n let message = this.message();\n const data = this.data();\n\n if (!message && data?.title) {\n message = `Deleting this ${data.type || 'model'} <strong>${data.title}</strong> cannot be undone. <br> Are you sure you want to continue?`;\n } else if (!message) {\n message = 'Are you sure you want to delete this model?';\n }\n\n this.dialog.open(ActionPopupComponent, {\n data: {\n title: 'Delete',\n message: message,\n }\n }).afterClosed().subscribe((result) => {\n if (!result) {\n return;\n }\n\n if (!this.service()) {\n console.error('Service not provided');\n return;\n }\n\n this.loading.emit(true);\n this.service().delete(this.model())\n .pipe(finalize(() => this.loading.emit(false)))\n .subscribe({\n next: (response: any) => {\n this.alertService.addAlert('Successfully Deleted', 'success');\n this.deleted.emit(response.item);\n },\n error: (error) => {\n this.errorHandler.handleError(error);\n }\n });\n\n })\n }\n\n}\n","<app-techlify-icon role='button' name='delete' (click)=\"open()\"></app-techlify-icon>","export class Timeline {\n public static CUSTOM: number = 1;\n public static TODAY: number = 2;\n public static YESTERDAY: number = 3;\n public static THIS_WEEK: number = 4;\n public static LAST_WEEK: number = 5;\n public static THIS_MONTH: number = 6;\n public static LAST_MONTH: number = 7;\n public static THIS_QUARTER: number = 8;\n public static LAST_QUARTER: number = 9;\n public static THIS_YEAR: number = 10;\n public static LAST_YEAR: number = 11;\n public static ALL: number = 12;\n public static TOMMOROW: number = 13;\n public static NEXT_WEEK: number = 14;\n public static NEXT_MONTH: number = 15;\n}\n","import moment from 'moment';\nimport { Timeline } from './timeline.model';\n\n\nexport interface TimelineValue {\n date_from: Date;\n date_to: Date;\n show_custom_field: boolean;\n}\nexport function calculateTimeline(value: number, dateFrom?: string, dateTo?: string): any {\n const date = new Date();\n const data: any = {\n date_from: date,\n date_to: date,\n show_custom_field: false\n };\n switch (value) {\n case Timeline.CUSTOM: { // Custom\n data.show_custom_field = true;\n data.date_from = dateFrom ? moment(dateFrom).toISOString() : '';\n data.date_to = dateTo ? moment(dateTo).toISOString() : '';\n break;\n }\n case Timeline.TODAY: { // Today\n const now = moment();\n data.date_from = now.startOf('day').toISOString();\n data.date_to = now.endOf('day').toISOString();\n break;\n }\n case Timeline.YESTERDAY: { // Yesterday\n const now = moment().subtract(1, 'day');\n data.date_from = now.startOf('day').toISOString();\n data.date_to = now.endOf('day').toISOString();\n break;\n }\n case Timeline.THIS_WEEK: { // This Week\n const now = moment();\n data.date_from = now.startOf('isoWeek').toISOString();\n data.date_to = now.endOf('isoWeek').toISOString();\n break;\n }\n case Timeline.LAST_WEEK: { // Last Week\n const now = moment().subtract(1, 'week');\n data.date_from = now.startOf('isoWeek').toISOString();\n data.date_to = now.endOf('isoWeek').toISOString();\n break;\n }\n case Timeline.THIS_MONTH: { // This Month\n const now = moment();\n data.date_from = now.startOf('month').toISOString();\n data.date_to = now.endOf('month').toISOString();\n break;\n }\n case Timeline.LAST_MONTH: { // Last Month\n const now = moment().subtract(1, 'month');\n data.date_from = now.startOf('month').toISOString();\n data.date_to = now.endOf('month').toISOString();\n break;\n }\n case Timeline.THIS_QUARTER: { // This Quarter\n const now = moment();\n data.date_from = now.startOf('quarter').toISOString();\n data.date_to = now.endOf('quarter').toISOString();\n break;\n }\n case Timeline.LAST_QUARTER: { // Last Quarter\n const now = moment().subtract(1, 'quarter');\n data.date_from = now.startOf('quarter').toISOString();\n data.date_to = now.endOf('quarter').toISOString();\n break;\n }\n case Timeline.THIS_YEAR: { // This Year\n const now = moment();\n data.date_from = now.startOf('year').toISOString();\n data.date_to = now.endOf('year').toISOString();\n break;\n }\n case Timeline.LAST_YEAR: { // Last Year\n const now = moment().subtract(1, 'year');\n data.date_from = now.startOf('year').toISOString();\n data.date_to = now.endOf('year').toISOString();\n break;\n }\n case Timeline.TOMMOROW: {\n const now = moment().add(1, 'day');\n data.date_from = now.startOf('day').toISOString();\n data.date_to = now.endOf('day').toISOString();\n break;\n }\n case Timeline.NEXT_WEEK: {\n const now = moment().add(1, 'week');\n data.date_from = now.startOf('isoWeek').toISOString();\n data.date_to = now.endOf('isoWeek').toISOString();\n break;\n }\n case Timeline.NEXT_MONTH: {\n const now = moment().add(1, 'month');\n data.date_from = now.startOf('month').toISOString();\n data.date_to = now.endOf('month').toISOString();\n break;\n }\n default: { // All\n data.date_from = '';\n data.date_to = '';\n break;\n }\n }\n return data;\n}\n","/* tslint:disable:radix */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, EventEmitter, Input, OnInit, Optional, Output, Self, ViewChild, ChangeDetectionStrategy } from '@angular/core';\nimport {\n ControlValueAccessor,\n UntypedFormBuilder,\n UntypedFormGroup,\n NgControl,\n Validators\n} from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { calculateTimeline } from './calculate-timeline';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { Timeline } from './timeline.model';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { DatePipe } from '@angular/common';\n\n@UntilDestroy()\n@Component({\n selector: 'app-timeline-filter',\n templateUrl: './timeline-filter.component.html',\n styleUrls: ['./timeline-filter.component.scss'],\n providers: [\n DatePipe,\n {\n provide: MatFormFieldControl,\n useExisting: TimelineFilterComponent\n }\n ],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class TimelineFilterComponent implements OnInit, ControlValueAccessor {\n isInitialised: boolean = false;\n isCustomDatePatching: boolean;\n @Input() set defaultValue(value: any) {\n this.value = value;\n }\n\n get empty() {\n const { value: { select_value } } = this.selectorForm;\n return !select_value;\n }\n\n get shouldLabelFloat() { return this.focused || !this.empty; }\n\n @Input()\n get required(): boolean { return this._required; }\n set required(value: boolean) {\n this.selectorForm?.get('select_value')?.setValidators(Validators.required);\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this._disabled\n ? this.selectorForm.disable({ emitEvent: false })\n : this.selectorForm.enable({ emitEvent: false });\n this.stateChanges.next();\n }\n\n @Input()\n get value(): any {\n if (this.selectorForm.valid) {\n return this.selectorForm.value.select_value;\n }\n return '';\n }\n set value(data: any) {\n this.selectorForm.patchValue({ select_value: parseInt(data) || '' }, { emitEvent: false });\n this.stateChanges.next();\n //If the selection is custom, validate if date is selected\n if (this.value == Timeline.CUSTOM) {\n if (this.isInitialised) {\n //If initialised already, open the calendar\n this.openCalendar();\n } else {\n //Apply default ranges from form if exist\n this.applyRange((this.getFieldValue(this.dateFrom) ?? null), (this.getFieldValue(this.dateTo) ?? null));\n }\n } else {\n this.changeTimeline(parseInt(data) || '');\n }\n this.isInitialised = true;\n }\n static nextId = 0;\n\n @ViewChild('picker') picker: MatDatepicker<any>;\n @Input() timelines: any[] = [\n { value: Timeline.CUSTOM, viewValue: 'Custom' },\n { value: Timeline.TODAY, viewValue: 'Today' },\n { value: Timeline.YESTERDAY, viewValue: 'Yesterday' },\n { value: Timeline.TOMMOROW, viewValue: 'Tomorrow' },\n { value: Timeline.THIS_WEEK, viewValue: 'This Week' },\n { value: Timeline.LAST_WEEK, viewValue: 'Last Week' },\n { value: Timeline.NEXT_WEEK, viewValue: 'Next Week' },\n { value: Timeline.THIS_MONTH, viewValue: 'This Month' },\n { value: Timeline.LAST_MONTH, viewValue: 'Last Month' },\n { value: Timeline.NEXT_MONTH, viewValue: 'Next Month' },\n { value: Timeline.THIS_QUARTER, viewValue: 'This Quarter' },\n { value: Timeline.LAST_QUARTER, viewValue: 'Last Quarter' },\n { value: Timeline.THIS_YEAR, viewValue: 'This Year' },\n { value: Timeline.LAST_YEAR, viewValue: 'Last Year' },\n { value: Timeline.ALL, viewValue: 'All dates' },\n ];\n @Input() dateFrom = 'date_from';\n @Input() dateTo = 'date_to';\n @Input() appearance: any = 'fill';\n @Input() showClearButton = false;\n @Input() form: UntypedFormGroup;\n @Input() labelText = 'Select Timeline';\n @Output() selectionChange = new EventEmitter();\n\n selectorForm: UntypedFormGroup;\n stateChanges = new Subject<void>();\n controlType = 'timeline-filter';\n id = `timeline-filter-${TimelineFilterComponent.nextId++}`;\n describedBy = '';\n focused = false;\n private _required = false;\n private _disabled = false;\n onChange: any = () => { };\n onTouched: any = () => { };\n\n //Custom range\n selectedRangeLabel = '';\n\n get timelineValue() {\n return this.selectorForm.get('select_value');\n }\n\n get isCustomSelected() {\n return this.value == Timeline.CUSTOM;\n }\n\n get customDateFrom() {\n return this.selectorForm.get('custom_date_from');\n }\n\n get customDateTo() {\n return this.selectorForm.get('custom_date_to');\n }\n\n constructor(\n formBuilder: UntypedFormBuilder,\n @Optional() @Self() public ngControl: NgControl,\n private datePipe: DatePipe,\n ) {\n this.selectorForm = formBuilder.group({\n select_value: [''],\n custom_date_from: [''],\n custom_date_to: [''],\n });\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit(): void {\n this.timelineValue.valueChanges.\n pipe(\n debounceTime(100),\n distinctUntilChanged(),\n untilDestroyed(this)\n ).subscribe(value => this.value = value);\n\n //Listen only to custom date to, since it is range selector it always safe to listen date to\n this.customDateTo.valueChanges.pipe(\n distinctUntilChanged(),\n untilDestroyed(this)\n ).subscribe(val => {\n if (val && !this.isCustomDatePatching) {\n this.applyRange();\n }\n });\n }\n\n resetFieldValue(field: string) {\n this.form?.get(field)?.setValue('');\n }\n\n getFieldValue(field: string) {\n return this.form?.get(field)?.value;\n }\n\n setFieldValue(field: string, value: any, emitEvent: boolean = true) {\n this.form?.get(field)?.setValue(value, { emitEvent: emitEvent });\n }\n\n /**\n * @param emitEvent Whether to notify the bound form/CVA of the change (default true, a genuine\n * selection). Pass false for a silent, display-only recompute - see writeValue.\n */\n changeTimeline(value: any, emitEvent: boolean = true): void {\n value = parseInt(value);\n this.selectedRangeLabel = '';\n const timeline = calculateTimeline(value, this.dateFrom, this.dateTo);\n if (timeline) {\n this.setCustomDates('', '');\n this.setFieldValue(this.dateFrom, this.datePipe.transform(timeline.date_from, 'yyyy-MM-dd'), emitEvent);\n this.setFieldValue(this.dateTo, this.datePipe.transform(timeline.date_to, 'yyyy-MM-dd'), emitEvent);\n }\n if (emitEvent) {\n this.onChange(this.value);\n this.selectionChange.emit(timeline);\n }\n }\n\n openCalendar() {\n this.picker.open();\n }\n\n /**\n * @param emitEvent Whether to notify the change (default true, a genuine\n * selection). Pass false for a silent recompute\n */\n applyRange(defaultFrom?: any, defaultTo?: any, emitEvent: boolean = true): void {\n const from = defaultFrom ?? this.selectorForm.get('custom_date_from')?.value;\n const to = defaultTo ?? this.selectorForm.get('custom_date_to')?.value;\n if (from && to) {\n this.selectedRangeLabel = `<b>${this.datePipe.transform(from, 'yyyy-MM-dd')}</b>:<b>${this.datePipe.transform(to, 'yyyy-MM-dd')}</b`;\n this.setFieldValue(this.dateFrom, this.datePipe.transform(from, 'yyyy-MM-dd'), emitEvent);\n this.setFieldValue(this.dateTo, this.datePipe.transform(to, 'yyyy-MM-dd'), emitEvent);\n if (emitEvent) {\n this.onChange(this.value);\n this.selectionChange.emit(this.value);\n }\n this.setCustomDates(from, to);\n }\n }\n\n setCustomDates(from: any, to: any) {\n // update form fields silently\n this.isCustomDatePatching = true;\n this.selectorForm.get('custom_date_from')?.setValue(from, { emitEvent: false });\n this.selectorForm.get('custom_date_to')?.setValue(to, { emitEvent: false });\n this.isCustomDatePatching = false;\n }\n\n setDescribedByIds(ids: string[]) {\n this.describedBy = ids.join(' ');\n }\n\n onContainerClick(event: MouseEvent) {\n event.stopPropagation();\n }\n\n /**\n * Computes the change cycle only when there is a change in selection\n */\n writeValue(data: any): void {\n this.selectorForm.patchValue({ select_value: parseInt(data) || '' }, { emitEvent: false });\n this.stateChanges.next();\n if (this.isCustomSelected) {\n this.applyRange((this.getFieldValue(this.dateFrom) ?? null), (this.getFieldValue(this.dateTo) ?? null), false);\n } else {\n const value = parseInt(data) || '';\n const timeline = calculateTimeline(value || 0);\n const computedFrom = this.datePipe.transform(timeline.date_from, 'yyyy-MM-dd');\n const computedTo = this.datePipe.transform(timeline.date_to, 'yyyy-MM-dd');\n const hasDrifted = (computedFrom ?? '') !== (this.getFieldValue(this.dateFrom) ?? '')\n || (computedTo ?? '') !== (this.getFieldValue(this.dateTo) ?? '');\n this.changeTimeline(value, hasDrifted);\n }\n this.isInitialised = true;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n }\n\n}\n","<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>","import { CommonModule } from '@angular/common';\r\nimport { Component, input, output, Type, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MaterialModule } from '../material.module';\r\nimport { TechlifyIconModule } from '../techlify-icon/techlify-icon.module';\r\n\r\n@Component({\r\n selector: 'app-techlify-form-button',\r\n templateUrl: './techlify-form-button.component.html',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.Eager,\r\n imports: [\r\n CommonModule,\r\n MaterialModule,\r\n TechlifyIconModule\r\n ]\r\n})\r\nexport class TechlifyFormButtonComponent {\r\n\r\n component = input.required<Type<any>>();\r\n model = input<any>();\r\n data = input<Record<string, any>>({});\r\n width = input<string>('700px');\r\n\r\n saved = output<any>();\r\n\r\n constructor(private matDialog: MatDialog) { }\r\n\r\n open() {\r\n const ref = this.matDialog.open(this.component(), {\r\n width: this.width(),\r\n data: { model: this.model(), ...this.data() }\r\n });\r\n\r\n ref.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.saved.emit(result);\r\n }\r\n });\r\n }\r\n}\r\n","<app-techlify-icon role=\"button\" [name]=\"model() ? 'edit' : 'add'\" (click)=\"open()\"></app-techlify-icon>\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ActionPopupComponent } from './action-popup.component';\nimport { MaterialModule } from '../material.module';\n\n@NgModule({\n imports: [\n CommonModule,\n MaterialModule\n ],\n declarations: [\n ActionPopupComponent\n ],\n exports: [\n ActionPopupComponent\n ]\n})\nexport class ActionPopupModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DocumentViewerComponent } from './document-viewer.component';\nimport { NgxDocViewerModule } from 'ngx-doc-viewer';\nimport { MaterialModule } from '../material.module';\n\n@NgModule({\n imports: [\n CommonModule,\n NgxDocViewerModule,\n MaterialModule\n ],\n declarations: [\n DocumentViewerComponent\n ],\n exports: [\n DocumentViewerComponent\n ]\n})\nexport class DocumentViewerModule { }\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport * as XLSX from 'xlsx';\n\n@Component({\n selector: 'app-export-excel-button',\n templateUrl: './export-excel-button.component.html',\n styleUrls: ['./export-excel-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class ExportExcelButtonComponent implements OnInit {\n @Input() isCSV: boolean = false;\n @Input() iconName: string = 'export';\n @Input() fileName: string = 'Export_Data';\n @Input() data: any[] = [];\n @Input() tableId: string;\n @Input() isParseNumeric: boolean = false;\n @Output() isExportingToExcel: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n isWorking: boolean = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n exportToExcel() {\n this.isWorking = true;\n this.isExportingToExcel.emit(true);\n setTimeout(() => {\n //If there is JSON data, then export it from data\n if (this.data?.length > 0) {\n this.convertJSONToExcel();\n } else if (this.tableId) {\n // If there is valid table id, try exporting from HTML table\n this.convertTableToExcel();\n }\n this.isExportingToExcel.emit(false);\n this.isWorking = false;\n }, 1000);\n\n\n }\n\n //Generate Excel with JSON data.\n convertJSONToExcel() {\n const ws = XLSX.utils.json_to_sheet(this.data);\n /* generate workbook and add the worksheet */\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\n if (this.isCSV) {\n XLSX.writeFile(wb, `${this.fileName}.csv`, { bookType: 'csv' });\n } else {\n XLSX.writeFile(wb, `${this.fileName}.xlsx`);\n }\n }\n\n //Fetches the data from table ID and gererate EXCEL.\n convertTableToExcel() {\n let element = document.getElementById(this.tableId);\n let ws: XLSX.WorkSheet = XLSX.utils.table_to_sheet(element, { raw: true });\n //Check if parse numeric is enabled and not a CSV file to apply the numeric parse\n if (this.isParseNumeric && !this.isCSV) {\n this.parseNumeric(ws);\n }\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\n if (this.isCSV) {\n XLSX.writeFile(wb, `${this.fileName}.csv`, { bookType: 'csv' });\n } else {\n XLSX.writeFile(wb, `${this.fileName}.xlsx`);\n }\n }\n\n //Try to parse the numeric values\n parseNumeric(ws: XLSX.WorkSheet) {\n // Convert numeric-looking strings to numbers\n Object.keys(ws).forEach(key => {\n //If value starts with '!', then it is metadata, so skip it\n if (key.startsWith('!')) {\n return;\n }\n const cell = ws[key];\n //If value is empty, then skip it\n if (!cell) {\n return;\n };\n //If cell value is a string\n if (cell.t === 's') {\n //Try converting the cell value to integer\n const value = Number(cell.v);\n if (!isNaN(value)) {\n //If value is valid number, then add meta data about the type\n cell.v = value;\n cell.t = 'n';\n }\n }\n });\n }\n\n}\n","<app-techlify-icon class=\"clickable d-print-none\" *ngIf=\"!isWorking\" [name]=\"iconName\" (click)=\"exportToExcel()\"\n matTooltip=\"Excel Export\">\n</app-techlify-icon>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ExportExcelButtonComponent } from './export-excel-button/export-excel-button.component';\nimport { MaterialModule } from '../material.module';\nimport { TechlifyIconModule } from '../techlify-icon/techlify-icon.module';\n\n\n\n@NgModule({\n declarations: [ExportExcelButtonComponent],\n imports: [\n CommonModule,\n MaterialModule,\n TechlifyIconModule\n ],\n exports: [ExportExcelButtonComponent]\n})\nexport class ExportExcelModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileDropperComponent } from './file-dropper.component';\nimport { MaterialModule } from '../material.module';\n\n@NgModule({\n imports: [\n CommonModule,\n MaterialModule\n ],\n declarations: [\n FileDropperComponent\n ],\n exports: [FileDropperComponent]\n})\nexport class FileDropperModule { }\n","import { MaterialModule } from '../material.module';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReadMoreComponent } from './read-more.component';\n\n@NgModule({\n declarations: [ReadMoreComponent],\n imports: [\n CommonModule,\n MaterialModule,\n ],\n exports: [\n ReadMoreComponent\n ]\n})\nexport class ReadMoreModule { }","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class TimelineFilterRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TimelineFilterRoutingModule } from './timeline-filter-routing.module';\nimport { TimelineFilterComponent } from './timeline-filter.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatNativeDateModule } from \"@angular/material/core\";\nimport { TechlifyIconModule } from '../techlify-icon/techlify-icon.module';\n\n@NgModule({\n declarations: [TimelineFilterComponent],\n imports: [\n CommonModule,\n TimelineFilterRoutingModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatSelectModule,\n MatButtonModule,\n MatIconModule,\n MatInputModule,\n MatDatepickerModule,\n MatNativeDateModule,\n TechlifyIconModule\n ],\n exports: [TimelineFilterComponent]\n})\nexport class TimelineFilterModule { }\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n Output,\n EventEmitter,\n TemplateRef,\n ViewChild,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, ControlValueAccessor, NgControl, Validators } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { Subject, of, from, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, startWith, switchMap, finalize } from 'rxjs/operators';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { HttpService } from '../core/http.service';\n\n@Component({\n selector: 'app-searchable-selector',\n templateUrl: './searchable-selector.component.html',\n styleUrls: ['./searchable-selector.component.scss'],\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: SearchableSelectorComponent\n }\n ],\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: false\n})\nexport class SearchableSelectorComponent implements ControlValueAccessor, OnInit, OnDestroy {\n @ViewChild('searchInput') searchInput: ElementRef;\n\n @Input() valueField: string = 'id';\n @Input() titleField: string = 'title';\n @Input() subtitleField: string;\n @Input() apiUrl!: string;\n @Input() multiple: boolean = false;\n @Input() selectedValue: any;\n @Output() selectedValueChange = new EventEmitter();\n @Input() enableSearch: boolean = true;\n @Input() add: boolean = false;\n @Input() addConfig: any;\n @Input() edit: boolean = false;\n @Input() editConfig: any;\n @Input() sort: boolean = true;\n @Input() sortBy: string;\n @Input() searchField: string;\n @Input() itemComponent: ComponentType<unknown> | TemplateRef<unknown>;\n @Input() items: any[] = [];\n @Input() apiDataProperty: string = 'data';\n @Input() cache: boolean = false;\n @Input() perPage: number = 50;\n @Input() inDataSearch: boolean = false;\n @Input() panelWidth: string = '';\n @Output() selectionChange = new EventEmitter();\n @Output() itemsChange = new EventEmitter();\n @Input() focusSearchOnOpen = false;\n @Output() isItemsEmpty = new EventEmitter<boolean>();\n\n /**\n * If this is set to true, if there is a pre-selected entity, \n * the entity that is populated will be emitted when it is set\n */\n @Input() isEmitInitialEvent: boolean = false;\n\n isLoading: boolean = false;\n onChange: any = () => { };\n onTouched: any = () => { };\n static nextId = 0;\n selectorForm: UntypedFormGroup;\n stateChanges = new Subject<void>();\n focused = false;\n controlType = 'searchable-selctor';\n id = `searchable-selctor-${SearchableSelectorComponent.nextId++}`;\n describedBy = '';\n filters: any;\n cachedItems: any[] = [];\n private subscriptions: Subscription = new Subscription();\n\n get empty() {\n const { value: { select_value } } = this.selectorForm;\n return !select_value;\n }\n\n get shouldLabelFloat() { return this.focused || !this.empty; }\n\n @Input()\n get required(): boolean { return this._required; }\n set required(value: boolean) {\n this.selectorForm.get('select_value').setValidators(Validators.required);\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n private _required = false;\n\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this._disabled\n ? this.selectorForm.disable({ emitEvent: false })\n : this.selectorForm.enable({ emitEvent: false });\n this.stateChanges.next();\n }\n private _disabled = false;\n\n @Input()\n get value(): any {\n return this.selectorForm.get('select_value')?.value || '';\n }\n set value(data: any) {\n this.selectorForm.patchValue({ select_value: data || '' });\n this.stateChanges.next();\n }\n\n constructor(\n formBuilder: UntypedFormBuilder,\n private _focusMonitor: FocusMonitor,\n private http: HttpService,\n private _elementRef: ElementRef<HTMLElement>,\n private dialog: MatDialog,\n @Optional() @Self() public ngControl: NgControl) {\n\n this.selectorForm = formBuilder.group({\n select_value: [null],\n search: ''\n });\n\n this.subscriptions.add(\n _focusMonitor.monitor(_elementRef, true).subscribe(origin => {\n if (this.focused && !origin) {\n this.onTouched();\n }\n this.focused = !!origin;\n this.stateChanges.next();\n })\n );\n\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n openedChange(opened: boolean) {\n if (this.dataItems.length === 0 && this.selectorForm.get('search').value) {\n this.selectorForm.get('search').setValue('');\n }\n\n if (opened && this.enableSearch && this.focusSearchOnOpen) {\n // Focus the search input field\n setTimeout(() => this.searchInput.nativeElement.focus(), 0);\n }\n }\n\n get dataItems(): any[] {\n let items: any[] = [];\n if (this.multiple && this.selectedValue && (this.selectedValue.length > 0))\n items = [...this.selectedValue, ...this.items];\n else if ((!this.multiple) && this.selectedValue)\n items = [this.selectedValue, ...this.items];\n else\n items = this.items;\n items = items.filter((v, i, a) => a.findIndex(v => v[this.valueField] === a[i][this.valueField]) === i);\n //Emit the items to any child component\n this.itemsChange.emit(items);\n return items;\n }\n\n ngOnInit() {\n this.subscriptions.add(\n this.selectorForm.get('search').valueChanges\n .pipe(\n debounceTime(500),\n distinctUntilChanged(),\n ).subscribe(value => {\n if (this.enableSearch)\n this.search(value);\n })\n );\n\n this.filters = {\n per_page: this.perPage,\n search: '',\n page: 1,\n lastPage: 1\n }\n if (this.sort) {\n this.filters.sort_by = this.sortBy || `${this.titleField}|asc`;\n }\n\n //Fetch Items only if it is not present, can be used in places where we load many entries.\n if (this.items.length === 0) {\n this.fetchItemList();\n }\n }\n\n fetchItemList() {\n this.isLoading = true;\n let request = this.http.get(this.apiUrl, { params: this.filters })\n if (this.cache) {\n request = this.http.cache().get(this.apiUrl, { params: this.filters })\n }\n this.subscriptions.add(\n of().pipe(\n startWith(true),\n switchMap((_) => from(request)),\n finalize(() => this.isLoading = false),\n ).subscribe((result: any) => {\n this.items = this.items.concat(result[this.apiDataProperty]);\n if (this.items.length == 0 && (!this.filters?.search)) {\n //If there is no items and search is empty, then we emit items empty event.\n this.isItemsEmpty.emit(true);\n }\n if (this.cache) {\n this.cachedItems = this.items;\n }\n this.filters.page = result?.current_page || 1;\n this.filters.lastPage = result?.last_page || 1;\n\n /**\n * If we are required to emit the selected entity when it is initially set, \n * let's go ahead and emit it.\n **/\n if (this.isEmitInitialEvent && this.value) {\n this._handleInput();\n //Once the initial event is emitted, reset back to avoid continuous events\n this.isEmitInitialEvent = false;\n }\n })\n );\n }\n\n setDescribedByIds(ids: string[]) {\n this.describedBy = ids.join(' ');\n }\n\n onContainerClick(event: MouseEvent) {\n event.stopPropagation();\n }\n\n writeValue(data: any): void {\n this.value = data;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n getPropertyValue(ele: any, keyString: string) {\n keyString = keyString.replace(/\\[(\\w+)\\]/g, \".$1\"); // convert indexes to properties\n keyString = keyString.replace(/^\\./, \"\"); // strip a leading dot\n const keyList = keyString.split(\".\");\n for (let i = 0, n = keyList.length; i < n; ++i) {\n const key = keyList[i];\n if (ele && key in ele) {\n ele = ele[key];\n } else {\n return;\n }\n }\n return ele;\n }\n\n _handleInput(): void {\n //Trigger on change only when initial event is false, to avoid double loading\n if (!this.isEmitInitialEvent) {\n this.onChange(this.value);\n }\n if (this.multiple)\n this.selectedValue = (this.value as [] || []).map(x => this.dataItems.find(y => y[this.valueField] === x));\n else\n this.selectedValue = this.dataItems.find(x => x[this.valueField] === this.value);\n this.selectedValueChange.emit(this.selectedValue);\n this.selectionChange.emit(this.value);\n }\n\n get errorState(): boolean {\n return (this.ngControl && this.ngControl.invalid && (this.ngControl.touched || this.ngControl.dirty));\n }\n\n static ngAcceptInputType_disabled: boolean | string | null | undefined;\n static ngAcceptInputType_required: boolean | string | null | undefined;\n\n onScroll() {\n if (!this.isLoading && this.filters.lastPage > this.filters.page) {\n this.filters.page += 1;\n this.fetchItemList();\n }\n }\n\n reloadData() {\n this.items = [];\n this.filters.page = 1;\n this.filters.lastPage = 1;\n this.fetchItemList();\n }\n\n search(event: any) {\n if (this.searchField) {\n this.filters[this.searchField] = event;\n } else {\n this.filters.search = event;\n }\n // we need search field to search in data\n if (this.inDataSearch && this.searchField) {\n this.filterItems(event);\n } else {\n this.reloadData();\n }\n }\n\n filterItems(event: string) {\n if (event) {\n this.items = this.cachedItems.filter((value: any) => {\n return (value[this.searchField] as string).toLowerCase().search(event.toLowerCase()) != -1\n })\n } else {\n this.items = this.cachedItems;\n }\n }\n\n addItem(event: any) {\n const dialogRef = this.dialog.open(this.itemComponent, {\n width: '400px',\n autoFocus: false,\n data: {},\n ...this.addConfig\n });\n\n dialogRef.afterClosed().subscribe((model: any) => {\n if (model) {\n this.items.push(model);\n this.selectorForm.get('select_value').setValue(model[this.valueField]);\n this._handleInput();\n }\n });\n event.stopPropagation();\n }\n\n editItem(event: any) {\n const dialogRef = this.dialog.open(this.itemComponent, {\n width: '400px',\n autoFocus: false,\n data: {\n item: this.selectedValue\n },\n ...this.editConfig\n });\n\n dialogRef.afterClosed().subscribe((result: any) => {\n if (result) {\n this.items = this.items.filter(x => x[this.valueField] !== this.selectedValue[this.valueField]);\n this.items.push(result.item);\n this.selectedValue = null;\n this.selectorForm.get('select_value').setValue(result.item[this.valueField]);\n this._handleInput();\n }\n });\n event.stopPropagation();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n this._focusMonitor.stopMonitoring(this._elementRef);\n this.subscriptions.unsubscribe();\n }\n}\n","<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>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SearchableSelectorComponent } from './searchable-selector.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MaterialModule } from '../material.module';\nimport { MatProgressBar } from '@angular/material/progress-bar';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MaterialModule,\n MatProgressBar,\n ],\n declarations: [\n SearchableSelectorComponent,\n ],\n exports: [\n SearchableSelectorComponent,\n ]\n})\nexport class SearchableSelectorModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MaterialModule } from '../../material.module';\nimport { FormConfigurationForFormComponent } from './form-configuration-for-form.component';\n\n@NgModule({\n declarations: [FormConfigurationForFormComponent],\n imports: [\n CommonModule,\n RouterModule,\n MaterialModule\n ],\n exports: [FormConfigurationForFormComponent]\n})\nexport class FormConfigurationForFormModule { }\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { InfiniteScrollDirective } from \"ngx-infinite-scroll\";\nimport { NgxPermissionsModule } from \"ngx-permissions\";\nimport { MaterialModule } from \"./material.module\";\nimport { ActionPopupModule } from './action-popup/action-popup.module';\nimport { TechlifyDeleteButtonComponent } from './delete-button/techlify-delete-button.component';\nimport { DocumentViewerModule } from './document-viewer/document-viewer.module';\nimport { ExportExcelModule } from './export-excel/export-excel.module';\nimport { FileDropperModule } from './file-dropper/file-dropper.module';\nimport { TechlifyFormButtonComponent } from './form-button/techlify-form-button.component';\nimport { ReadMoreModule } from './read-more/read-more.module';\nimport { TechlifyIconModule } from './techlify-icon/techlify-icon.module';\nimport { TimelineFilterModule } from './timeline-filter/timeline-filter.module';\nimport { SearchableSelectorModule } from './searchable-selector/searchable-selector.module';\nimport { FormConfigurationForFormModule } from './form-configuration/form-configuration-for-form/form-configuration-for-form.module';\n\n@NgModule({\n imports: [\n InfiniteScrollDirective,\n TechlifyDeleteButtonComponent,\n TechlifyFormButtonComponent,\n ],\n exports: [\n ActionPopupModule,\n CommonModule,\n DocumentViewerModule,\n ExportExcelModule,\n FileDropperModule,\n FormConfigurationForFormModule,\n FormsModule,\n InfiniteScrollDirective,\n MaterialModule,\n NgxPermissionsModule,\n ReactiveFormsModule,\n ReadMoreModule,\n SearchableSelectorModule,\n TechlifyDeleteButtonComponent,\n TimelineFilterModule,\n TechlifyFormButtonComponent,\n TechlifyIconModule,\n ]\n})\nexport class SharedModule { }"],"mappings":"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"}