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
@@ -1,251 +0,0 @@
1
- import { Component, Input, input, signal } from '@angular/core';
2
- import { EntityFileFormComponent } from '../entity-file-form/entity-file-form.component';
3
- import { TechlifyTaggerTagFormConfigModel } from "../../tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model";
4
- import { TechlifyListComponent } from '../../base-model';
5
- import { FormConfigurationUtilityService } from '../../form-configuration/form-configuration-utility.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../entity-file.service";
8
- import * as i2 from "../../core/alert.service";
9
- import * as i3 from "@angular/forms";
10
- import * as i4 from "../../core/error-handler.service";
11
- import * as i5 from "ngx-permissions";
12
- import * as i6 from "../../form-configuration/form-configuration-form.service";
13
- import * as i7 from "@angular/common";
14
- import * as i8 from "../../document-viewer/document-viewer.component";
15
- import * as i9 from "../../file-dropper/file-dropper.component";
16
- import * as i10 from "ngx-infinite-scroll";
17
- import * as i11 from "@angular/material/button";
18
- import * as i12 from "@angular/material/checkbox";
19
- import * as i13 from "@angular/material/dialog";
20
- import * as i14 from "@angular/material/form-field";
21
- import * as i15 from "@angular/material/icon";
22
- import * as i16 from "@angular/material/input";
23
- import * as i17 from "@angular/material/sort";
24
- import * as i18 from "@angular/material/table";
25
- import * as i19 from "@angular/material/card";
26
- import * as i20 from "@angular/material/progress-bar";
27
- import * as i21 from "../../read-more/read-more.component";
28
- import * as i22 from "../../delete-button/techlify-delete-button.component";
29
- import * as i23 from "../../timeline-filter/timeline-filter.component";
30
- import * as i24 from "../../form-button/techlify-form-button.component";
31
- import * as i25 from "../../tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component";
32
- import * as i26 from "../../pipes/wrap.pipe";
33
- import * as i27 from "../../pipes/file-size.pipe";
34
- /**
35
- * We are using both app-entity-file-list and app-entity-files-view-all
36
- * to ensure backward compatibility with older projects `ngx-techlify-documents, ngx-techlify-checksheets`
37
- * etc. `app-entity-files-view-all` will be removed by `v18.80.0`
38
- */
39
- export class EntityFileListComponent extends TechlifyListComponent {
40
- set isFilterPatchFromRoute(value) {
41
- this._isFilterPatchFromRoute = value;
42
- }
43
- get isFilterPatchFromRoute() {
44
- return this._isFilterPatchFromRoute;
45
- }
46
- constructor(service, alertService, fb, errorHandler, permissionsService, formConfigService) {
47
- super(service);
48
- this.service = service;
49
- this.alertService = alertService;
50
- this.fb = fb;
51
- this.errorHandler = errorHandler;
52
- this.permissionsService = permissionsService;
53
- this.formConfigService = formConfigService;
54
- this.viewOnly = false;
55
- this.allowMultipleFiles = false;
56
- this.allowBulkUpdate = false;
57
- this.viewMode = 'list';
58
- this.fileDropperHeight = '500px';
59
- this.isShowDragDropSection = true;
60
- this.defaultFilters = input();
61
- /**
62
- * Should we allow tagging entity-files?
63
- */
64
- this.useTechlifyTags = false;
65
- this.techlifyTagCategories = [];
66
- this.techlifyTagConfig = new TechlifyTaggerTagFormConfigModel();
67
- this.entityFileForm = signal(EntityFileFormComponent);
68
- this.formData = {};
69
- this.title = "File";
70
- this.displayedColumns = [
71
- 'index',
72
- 'title',
73
- 'expires_on',
74
- 'details',
75
- 'file_size',
76
- 'uploaded_on',
77
- ];
78
- this.isShowCreateAction = true;
79
- this.isShowUpdateAction = true;
80
- this.isShowDeleteAction = true;
81
- this.isShowReadAction = true;
82
- this.formConfigurationUtilityService = new FormConfigurationUtilityService();
83
- this.filterFormConfiguration = {
84
- tag_ids: { multiple: true }
85
- };
86
- this.filterForm = this.fb.group({
87
- title: [""],
88
- tag_ids: [[]],
89
- period_id: [''],
90
- expires_on_from: [''],
91
- expires_on_to: ['']
92
- });
93
- this.updateRowForm = this.fb.group({
94
- title: [''],
95
- details: [''],
96
- tag_ids: [''],
97
- });
98
- }
99
- async ngOnInit() {
100
- /**
101
- * The reason we are setting permissions this way is because the user can pass what permissions are to be used
102
- * when manipulating the files/documents. If they are a client admin we will skip this
103
- */
104
- if (!await this.permissionsService.hasPermission('client_admin')) {
105
- this.isShowCreateAction = this.permission?.create ? await this.permissionsService.hasPermission(this.permission.create) : true;
106
- this.isShowUpdateAction = this.permission?.update ? await this.permissionsService.hasPermission(this.permission.update) : true;
107
- this.isShowReadAction = this.permission?.read ? await this.permissionsService.hasPermission(this.permission.read) : true;
108
- this.isShowDeleteAction = this.permission?.delete ? await this.permissionsService.hasPermission(this.permission.delete) : true;
109
- }
110
- this.formData = {
111
- entity: {
112
- entity_type: this.entityType,
113
- entity_id: this.entityId
114
- },
115
- hideTitleAndDetails: this.hideTitleAndDetails,
116
- useTechlifyTags: this.useTechlifyTags,
117
- techlifyTagCategories: this.techlifyTagCategories,
118
- techlifyTagConfig: this.techlifyTagConfig,
119
- };
120
- // File dropper config
121
- this.fileConfig = {
122
- fileId: "entityDashboardDropper",
123
- containerId: "entityDashboardDropperContainer",
124
- styles: {
125
- height: this.fileDropperHeight
126
- },
127
- multiple: this.allowMultipleFiles,
128
- acceptFile: "*",
129
- maxSize: 10,
130
- acceptFileText: "All Files"
131
- };
132
- this.viewerConfig = {
133
- imageStyle: {
134
- height: '200px',
135
- width: '200px'
136
- },
137
- viewerStyle: {
138
- height: ' 160px',
139
- width: '200px'
140
- },
141
- hideRemove: true
142
- };
143
- if (this.hideTitleAndDetails) {
144
- this.displayedColumns = this.displayedColumns.filter(x => (x !== 'details') && (x !== 'title'));
145
- }
146
- if (!this.viewOnly) {
147
- this.displayedColumns.push('actions');
148
- }
149
- if (this.allowBulkUpdate) {
150
- this.displayedColumns.push('select');
151
- }
152
- this.formConfigurationUtilityService.initialize(this.formConfigService, 'entity-file').subscribe({
153
- next: () => {
154
- if (!this.formConfigurationUtilityService.getFieldEnabled('expires_on')) {
155
- this.displayedColumns = this.displayedColumns.filter(x => x !== 'expires_on');
156
- }
157
- }
158
- });
159
- const defaultFilters = this.defaultFilters();
160
- if (defaultFilters) {
161
- this.filterForm.patchValue(defaultFilters, { emitEvent: false });
162
- }
163
- if (this.isFilterPatchFromRoute) {
164
- this.patchFiltersFromRoute();
165
- }
166
- this.listenFilterChanges();
167
- this.loadData();
168
- }
169
- loadData() {
170
- this.filters = {
171
- ...this.requestHelperService?.convertToFormData(JSON.parse(JSON.stringify(this.filterForm.value))),
172
- entity_type: this.entityType,
173
- entity_id: this.entityId,
174
- with: 'creator,tags',
175
- page: this.page,
176
- per_page: this.perPage
177
- };
178
- super.loadData(this.filters);
179
- }
180
- async fileChanged(event) {
181
- const files = event;
182
- if (files.length > 0) {
183
- for (const file of files) {
184
- await this.service.uploadEntityFile(file, {
185
- entity_type: this.entityType,
186
- entity_id: this.entityId,
187
- });
188
- }
189
- this.reload();
190
- this.alertService.addAlert('Files uploaded successfully!', 'success');
191
- }
192
- }
193
- async bulkUpdate(fieldName) {
194
- const data = this.updateRowForm.value;
195
- this.isWorking = true;
196
- data.field_name = fieldName;
197
- data.document_ids = this.selectedModelIds;
198
- try {
199
- await this.service.bulkUpdate(data).then(() => {
200
- this.alertService.addAlert("Successfully updated", "success");
201
- this.isWorking = false;
202
- this.reload();
203
- });
204
- }
205
- catch (error) {
206
- this.errorHandler.handleError(error);
207
- this.isWorking = false;
208
- }
209
- }
210
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityFileListComponent, deps: [{ token: i1.EntityFileService }, { token: i2.AlertService }, { token: i3.UntypedFormBuilder }, { token: i4.ErrorHandlerService }, { token: i5.NgxPermissionsService }, { token: i6.FormConfigurationFormService }], target: i0.ɵɵFactoryTarget.Component }); }
211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: EntityFileListComponent, selector: "app-entity-file-list, app-entity-files-view-all", inputs: { entityId: { classPropertyName: "entityId", publicName: "entityId", isSignal: false, isRequired: false, transformFunction: null }, entityType: { classPropertyName: "entityType", publicName: "entityType", isSignal: false, isRequired: false, transformFunction: null }, viewOnly: { classPropertyName: "viewOnly", publicName: "viewOnly", isSignal: false, isRequired: false, transformFunction: null }, removeSearch: { classPropertyName: "removeSearch", publicName: "removeSearch", isSignal: false, isRequired: false, transformFunction: null }, hideTitleAndDetails: { classPropertyName: "hideTitleAndDetails", publicName: "hideTitleAndDetails", isSignal: false, isRequired: false, transformFunction: null }, displayMode: { classPropertyName: "displayMode", publicName: "displayMode", isSignal: false, isRequired: false, transformFunction: null }, allowMultipleFiles: { classPropertyName: "allowMultipleFiles", publicName: "allowMultipleFiles", isSignal: false, isRequired: false, transformFunction: null }, allowBulkUpdate: { classPropertyName: "allowBulkUpdate", publicName: "allowBulkUpdate", isSignal: false, isRequired: false, transformFunction: null }, viewMode: { classPropertyName: "viewMode", publicName: "viewMode", isSignal: false, isRequired: false, transformFunction: null }, fileDropperHeight: { classPropertyName: "fileDropperHeight", publicName: "fileDropperHeight", isSignal: false, isRequired: false, transformFunction: null }, isShowDragDropSection: { classPropertyName: "isShowDragDropSection", publicName: "isShowDragDropSection", isSignal: false, isRequired: false, transformFunction: null }, defaultFilters: { classPropertyName: "defaultFilters", publicName: "defaultFilters", isSignal: true, isRequired: false, transformFunction: null }, isFilterPatchFromRoute: { classPropertyName: "isFilterPatchFromRoute", publicName: "isFilterPatchFromRoute", isSignal: false, isRequired: false, transformFunction: null }, useTechlifyTags: { classPropertyName: "useTechlifyTags", publicName: "useTechlifyTags", isSignal: false, isRequired: false, transformFunction: null }, techlifyTagCategories: { classPropertyName: "techlifyTagCategories", publicName: "techlifyTagCategories", isSignal: false, isRequired: false, transformFunction: null }, techlifyTagConfig: { classPropertyName: "techlifyTagConfig", publicName: "techlifyTagConfig", isSignal: false, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: false, isRequired: false, transformFunction: null }, permission: { classPropertyName: "permission", publicName: "permission", isSignal: false, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"viewMode === 'list'\">\n <div *ngIf=\"this.selectedModelIds.length\" class=\"d-none d-md-flex flex-column\">\n <mat-card class=\"update_card\" *ngIf=\"this.selectedModelIds.length\">\n <mat-card-header>\n <mat-card-title>\n <div mat-dialog-title class=\"mt-2 ml-2 text-center\">\n <div>Update Selected Rows</div>\n </div>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"d-flex flex-column\">\n <form [formGroup]=\"updateRowForm\">\n <div class=\"d-flex flex-column\">\n\n <mat-form-field class=\"w-100 px-1\">\n <input matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\" />\n <button *ngIf=\"updateRowForm.get('title').value || updateRowForm.get('title').value===0\" matSuffix\n mat-icon-button style=\"color:red\" (click)=\"updateRowForm.get('title').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n <button matSuffix mat-icon-button type=\"button\" style=\"color:green\" *ngIf=\"(updateRowForm.get('title').value || updateRowForm.get('title').value===0)\n && updateRowForm.get('title').valid\" (click)=\"bulkUpdate('title')\">\n <mat-icon>done</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field class=\"w-100 px-1\">\n <textarea matInput formControlName=\"details\" placeholder=\"Details\" autocomplete=\"off\"></textarea>\n <button *ngIf=\"updateRowForm.get('details').value || updateRowForm.get('details').value===0\" matSuffix\n mat-icon-button style=\"color:red\" (click)=\"updateRowForm.get('details').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n <button matSuffix mat-icon-button type=\"button\" style=\"color:green\" *ngIf=\"(updateRowForm.get('details').value || updateRowForm.get('details').value===0)\n && updateRowForm.get('details').valid\" (click)=\"bulkUpdate('details')\">\n <mat-icon>done</mat-icon>\n </button>\n </mat-form-field>\n\n <ng-container *ngIf=\"useTechlifyTags\">\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <app-techlify-tagger-tag-form-field modelType=\"entity-file\" formControlName=\"tag_ids\"\n placeholder=\"Enter new tag\">\n </app-techlify-tagger-tag-form-field>\n <button *ngIf=\"updateRowForm.get('tag_ids').value || updateRowForm.get('tag_ids').value===0\" matSuffix\n mat-icon-button style=\"color:red\" (click)=\"updateRowForm.get('tag_ids').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n <button matSuffix mat-icon-button type=\"button\" style=\"color:green\" *ngIf=\"(updateRowForm.get('tag_ids').value || updateRowForm.get('tag_ids').value===0)\n && updateRowForm.get('tag_ids').valid\" (click)=\"bulkUpdate('tag_ids')\">\n <mat-icon>done</mat-icon>\n </button>\n </mat-form-field>\n </ng-container>\n </div>\n </form>\n </mat-card-content>\n </mat-card>\n\n </div>\n\n <div>\n <div class=\"mat-typography\" *ngIf=\"!displayMode\">\n <div class=\"d-flex flex-row gap-3\">\n <div class=\"d-flex flex-column gap-2 flex-grow-1\">\n <mat-card>\n <mat-card-content>\n <div class=\"d-flex gap-2 align-items-center\">\n <mat-icon>\n description\n </mat-icon>\n <h3 class=\"font-weight-bold mb-0\">\n {{title}}s\n </h3>\n <app-techlify-form-button class=\"ms-2\" *ngIf=\"!viewOnly && isShowCreateAction && entityId\"\n [component]=\"entityFileForm()\" [data]=\"formData\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n <span class=\"flex-grow-1\"></span>\n <form [formGroup]=\"filterForm\" class=\"d-flex gap-2\">\n <mat-form-field *ngIf=\"!removeSearch\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input type=\"text\" matInput formControlName=\"title\" placeholder=\"Search\" name=\"title\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterForm.get('title').value\" matSuffix mat-icon-button\n (click)=\"resetFilter('title')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <ng-container *ngIf=\"useTechlifyTags\">\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <app-techlify-tagger-tag-form-field [categories]=\"techlifyTagCategories\" formControlName=\"tag_ids\"\n placeholder=\"Select Tags\" [config]=\"techlifyTagConfig\"></app-techlify-tagger-tag-form-field>\n </mat-form-field>\n </ng-container>\n\n <app-timeline-filter class=\"fl-sm\" formControlName='period_id' labelText=\"Expires On\"\n dateFrom=\"expires_on_from\" dateTo=\"expires_on_to\" [form]=\"filterForm\"></app-timeline-filter>\n </form>\n </div>\n </mat-card-content>\n <mat-card-content class=\"entity-file-card p-0\" *ngIf=\"entityId\">\n <ng-container *ngTemplateOutlet=\"tableView\"></ng-container>\n </mat-card-content>\n </mat-card>\n\n <mat-card *ngIf=\"!entityId\">\n <mat-card-content class=\"entity-file-card p-0\">\n <ng-container *ngTemplateOutlet=\"tableView\"></ng-container>\n </mat-card-content>\n </mat-card>\n </div>\n <ng-container *ngIf=\"isShowDragDropSection && entityId\">\n <section style=\"flex: 0 1 30%;\" *ngIf=\"!this.selectedModelIds.length && !viewOnly && isShowCreateAction\">\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\">\n </app-file-dropper>\n </section>\n </ng-container>\n </div>\n </div>\n </div>\n\n <ng-template #tableView>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" matSort multiTemplateDataRows infiniteScroll\n [infiniteScrollDistance]=\"1.5\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\">\n\n <!-- Select Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef style=\"width:30px\">\n <mat-checkbox name=\"employee\" [(ngModel)]=\"isAllSelected\" (change)=\"selectAll()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let element\" style=\"width:30px\">\n <mat-checkbox name=\"employee[{{element?.id}}]\" (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"element.is_selected\" (change)=\"isSelectionModified($event, element)\"\n [disabled]=\"!models.length\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element.title}}\n <ng-container *ngIf=\"useTechlifyTags\">\n <br>\n <small class=\"badge badge-secondary mr-1\" *ngFor=\"let tag of element?.tags\">{{tag?.title}}</small>\n </ng-container>\n\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"expires_on\">\n <th mat-header-cell *matHeaderCellDef> Expires On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.expires_on | date:'mediumDate'}}\n </td>\n </ng-container>\n\n <!-- Details Column -->\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-read-more [text]=\"element.details\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <!-- File size Column -->\n <ng-container matColumnDef=\"file_size\">\n <th mat-header-cell *matHeaderCellDef> File Size </th>\n <td mat-cell *matCellDef=\"let element\">\n <span *ngIf=\"element?.file_size\"> {{ element.file_size | fileSize }} </span>\n </td>\n </ng-container>\n\n <!-- Uploaded On Column -->\n <ng-container matColumnDef=\"uploaded_on\">\n <th mat-header-cell *matHeaderCellDef> Uploaded On </th>\n <td mat-cell *matCellDef=\"let element\">\n <div>\n {{element.created_at | date: 'mediumDate'}}\n </div>\n <div class=\"text-muted\" *ngIf=\"element.creator\">\n By {{element.creator?.name}}\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"text-muted\">\n <div class=\"d-flex flex-row gap-2 text-secondary align-items-center\">\n <a href=\"{{element.url}}\" target=\"_blank\" class=\"text-decoration-none text-muted clickable\">\n <mat-icon>download</mat-icon>\n </a>\n <app-techlify-form-button *ngIf=\"!viewOnly && isShowUpdateAction\" [component]=\"entityFileForm()\"\n [model]=\"element\" [data]=\"formData\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button *ngIf=\"!viewOnly && isShowDeleteAction\" [model]=\"element\" [service]=\"service\"\n message=\"Are you sure to proceed delete the file {{element.title}}\"\n (deleted)=\"modelsDeletedById(element)\">\n </app-techlify-delete-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </ng-template>\n\n <div class=\"d-flex flex-wrap gap-3 mat-typography p-4\" *ngIf=\"displayMode\">\n <div *ngFor=\"let efile of models\">\n <app-document-viewer [file]=\"efile.file\" [fileUrl]=\"efile.url\" [config]=\"this.viewerConfig\" [disableEdit]=\"true\">\n </app-document-viewer>\n <a href=\"{{efile.url}}\" target=\"_blank\">\n <button mat-button type=\"button\">View</button>\n </a>\n </div>\n </div>\n</div>\n\n<mat-card *ngIf=\"viewMode === 'timeline'\">\n <mat-card-content>\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <mat-icon>\n description\n </mat-icon>\n <h3 class=\"font-weight-bold mb-0\">\n {{title}}s\n </h3>\n <app-techlify-form-button *ngIf=\"!viewOnly && isShowCreateAction\" [component]=\"entityFileForm()\" [data]=\"formData\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n </div>\n </mat-card-content>\n <mat-card-content *ngIf=\"!this.selectedModelIds.length && !viewOnly && isShowCreateAction\" class=\"mt-3\">\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\">\n </app-file-dropper>\n </mat-card-content>\n\n <mat-card-content class=\"mt-3\">\n <div *ngFor=\"let entityFile of models\" class=\"d-flex flex-column gap-0\">\n <div class=\"d-flex flex-column gap-0\">\n <div class=\"d-flex justify-content-between align-items-center gap-1\">\n <p class=\"mb-0 fw-bold text-wrap\">{{ entityFile?.title | wrap:20 }}</p>\n <span class=\"badge bg-dark\" *ngFor=\"let tag of entityFile?.tags\">\n {{ tag?.title }}\n </span>\n <small class=\"text-dark\">{{ entityFile.file_size | fileSize }}</small>\n </div>\n </div>\n <app-read-more [text]=\"entityFile?.details\" [maxLength]=\"50\"></app-read-more>\n <div class=\"d-flex justify-content-between gap-2\">\n <small class=\"text-secondary\" style=\"max-width: 70%\">\n <i>Uploaded By {{ entityFile?.creator?.name }} {{ entityFile?.created_at | date: 'mediumDate'}}</i>\n </small>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <a href=\"{{entityFile?.url}}\" target=\"_blank\" class=\"text-decoration-none text-secondary mt-2\">\n <mat-icon>download</mat-icon>\n </a>\n <app-techlify-form-button class=\"text-secondary\" *ngIf=\"!viewOnly && isShowUpdateAction\"\n [component]=\"entityFileForm()\" [model]=\"entityFile\" [data]=\"formData\"\n (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button *ngIf=\"!viewOnly && isShowDeleteAction\" class='text-secondary ms-1'\n [model]=\"entityFile\" [service]=\"service\"\n message=\"Are you sure to proceed delete the file {{entityFile.title}}\"\n (deleted)=\"modelsDeletedById(entityFile)\">\n </app-techlify-delete-button>\n </div>\n </div>\n <hr style=\"margin: 0.5rem 0\">\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>", styles: ["th.mat-header-cell,td.mat-cell,td.mat-footer-cell{padding:2px}.entity-file-card{overflow-x:auto}.clickable:hover{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i8.DocumentViewerComponent, selector: "app-document-viewer", inputs: ["config", "file", "fileUrl", "disableEdit"], outputs: ["remove"] }, { kind: "component", type: i9.FileDropperComponent, selector: "app-file-dropper", inputs: ["fileArray", "config", "styles"], outputs: ["fileChanged"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i11.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i11.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i13.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: i14.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i14.MatLabel, selector: "mat-label" }, { kind: "directive", type: i14.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i15.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i16.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i17.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i18.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i18.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i18.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i18.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i18.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i18.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i18.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i18.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i18.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i18.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i19.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i19.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i19.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i19.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i20.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i21.ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }, { kind: "component", type: i22.TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted", "loading"] }, { kind: "component", type: i23.TimelineFilterComponent, selector: "app-timeline-filter", inputs: ["defaultValue", "required", "disabled", "value", "timelines", "dateFrom", "dateTo", "appearance", "showClearButton", "form", "labelText"], outputs: ["selectionChange"] }, { kind: "component", type: i24.TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }, { kind: "component", type: i25.TechlifyTaggerTagFormFieldComponent, selector: "app-techlify-tagger-tag-form-field", inputs: ["config", "modelType", "modelId", "allTags", "categories", "defaultCreateCategory", "required", "disabled", "value", "placeholder"] }, { kind: "pipe", type: i7.DatePipe, name: "date" }, { kind: "pipe", type: i26.WrapPipe, name: "wrap" }, { kind: "pipe", type: i27.FileSizePipe, name: "fileSize" }] }); }
212
- }
213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityFileListComponent, decorators: [{
214
- type: Component,
215
- args: [{ selector: 'app-entity-file-list, app-entity-files-view-all', template: "<div *ngIf=\"viewMode === 'list'\">\n <div *ngIf=\"this.selectedModelIds.length\" class=\"d-none d-md-flex flex-column\">\n <mat-card class=\"update_card\" *ngIf=\"this.selectedModelIds.length\">\n <mat-card-header>\n <mat-card-title>\n <div mat-dialog-title class=\"mt-2 ml-2 text-center\">\n <div>Update Selected Rows</div>\n </div>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content class=\"d-flex flex-column\">\n <form [formGroup]=\"updateRowForm\">\n <div class=\"d-flex flex-column\">\n\n <mat-form-field class=\"w-100 px-1\">\n <input matInput formControlName=\"title\" placeholder=\"Title\" autocomplete=\"off\" />\n <button *ngIf=\"updateRowForm.get('title').value || updateRowForm.get('title').value===0\" matSuffix\n mat-icon-button style=\"color:red\" (click)=\"updateRowForm.get('title').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n <button matSuffix mat-icon-button type=\"button\" style=\"color:green\" *ngIf=\"(updateRowForm.get('title').value || updateRowForm.get('title').value===0)\n && updateRowForm.get('title').valid\" (click)=\"bulkUpdate('title')\">\n <mat-icon>done</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field class=\"w-100 px-1\">\n <textarea matInput formControlName=\"details\" placeholder=\"Details\" autocomplete=\"off\"></textarea>\n <button *ngIf=\"updateRowForm.get('details').value || updateRowForm.get('details').value===0\" matSuffix\n mat-icon-button style=\"color:red\" (click)=\"updateRowForm.get('details').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n <button matSuffix mat-icon-button type=\"button\" style=\"color:green\" *ngIf=\"(updateRowForm.get('details').value || updateRowForm.get('details').value===0)\n && updateRowForm.get('details').valid\" (click)=\"bulkUpdate('details')\">\n <mat-icon>done</mat-icon>\n </button>\n </mat-form-field>\n\n <ng-container *ngIf=\"useTechlifyTags\">\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <app-techlify-tagger-tag-form-field modelType=\"entity-file\" formControlName=\"tag_ids\"\n placeholder=\"Enter new tag\">\n </app-techlify-tagger-tag-form-field>\n <button *ngIf=\"updateRowForm.get('tag_ids').value || updateRowForm.get('tag_ids').value===0\" matSuffix\n mat-icon-button style=\"color:red\" (click)=\"updateRowForm.get('tag_ids').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n <button matSuffix mat-icon-button type=\"button\" style=\"color:green\" *ngIf=\"(updateRowForm.get('tag_ids').value || updateRowForm.get('tag_ids').value===0)\n && updateRowForm.get('tag_ids').valid\" (click)=\"bulkUpdate('tag_ids')\">\n <mat-icon>done</mat-icon>\n </button>\n </mat-form-field>\n </ng-container>\n </div>\n </form>\n </mat-card-content>\n </mat-card>\n\n </div>\n\n <div>\n <div class=\"mat-typography\" *ngIf=\"!displayMode\">\n <div class=\"d-flex flex-row gap-3\">\n <div class=\"d-flex flex-column gap-2 flex-grow-1\">\n <mat-card>\n <mat-card-content>\n <div class=\"d-flex gap-2 align-items-center\">\n <mat-icon>\n description\n </mat-icon>\n <h3 class=\"font-weight-bold mb-0\">\n {{title}}s\n </h3>\n <app-techlify-form-button class=\"ms-2\" *ngIf=\"!viewOnly && isShowCreateAction && entityId\"\n [component]=\"entityFileForm()\" [data]=\"formData\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n <span class=\"flex-grow-1\"></span>\n <form [formGroup]=\"filterForm\" class=\"d-flex gap-2\">\n <mat-form-field *ngIf=\"!removeSearch\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input type=\"text\" matInput formControlName=\"title\" placeholder=\"Search\" name=\"title\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterForm.get('title').value\" matSuffix mat-icon-button\n (click)=\"resetFilter('title')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <ng-container *ngIf=\"useTechlifyTags\">\n <mat-form-field>\n <mat-label>Tag</mat-label>\n <app-techlify-tagger-tag-form-field [categories]=\"techlifyTagCategories\" formControlName=\"tag_ids\"\n placeholder=\"Select Tags\" [config]=\"techlifyTagConfig\"></app-techlify-tagger-tag-form-field>\n </mat-form-field>\n </ng-container>\n\n <app-timeline-filter class=\"fl-sm\" formControlName='period_id' labelText=\"Expires On\"\n dateFrom=\"expires_on_from\" dateTo=\"expires_on_to\" [form]=\"filterForm\"></app-timeline-filter>\n </form>\n </div>\n </mat-card-content>\n <mat-card-content class=\"entity-file-card p-0\" *ngIf=\"entityId\">\n <ng-container *ngTemplateOutlet=\"tableView\"></ng-container>\n </mat-card-content>\n </mat-card>\n\n <mat-card *ngIf=\"!entityId\">\n <mat-card-content class=\"entity-file-card p-0\">\n <ng-container *ngTemplateOutlet=\"tableView\"></ng-container>\n </mat-card-content>\n </mat-card>\n </div>\n <ng-container *ngIf=\"isShowDragDropSection && entityId\">\n <section style=\"flex: 0 1 30%;\" *ngIf=\"!this.selectedModelIds.length && !viewOnly && isShowCreateAction\">\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\">\n </app-file-dropper>\n </section>\n </ng-container>\n </div>\n </div>\n </div>\n\n <ng-template #tableView>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" matSort multiTemplateDataRows infiniteScroll\n [infiniteScrollDistance]=\"1.5\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\">\n\n <!-- Select Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef style=\"width:30px\">\n <mat-checkbox name=\"employee\" [(ngModel)]=\"isAllSelected\" (change)=\"selectAll()\">\n </mat-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let element\" style=\"width:30px\">\n <mat-checkbox name=\"employee[{{element?.id}}]\" (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"element.is_selected\" (change)=\"isSelectionModified($event, element)\"\n [disabled]=\"!models.length\">\n </mat-checkbox>\n </td>\n </ng-container>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element.title}}\n <ng-container *ngIf=\"useTechlifyTags\">\n <br>\n <small class=\"badge badge-secondary mr-1\" *ngFor=\"let tag of element?.tags\">{{tag?.title}}</small>\n </ng-container>\n\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"expires_on\">\n <th mat-header-cell *matHeaderCellDef> Expires On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.expires_on | date:'mediumDate'}}\n </td>\n </ng-container>\n\n <!-- Details Column -->\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-read-more [text]=\"element.details\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <!-- File size Column -->\n <ng-container matColumnDef=\"file_size\">\n <th mat-header-cell *matHeaderCellDef> File Size </th>\n <td mat-cell *matCellDef=\"let element\">\n <span *ngIf=\"element?.file_size\"> {{ element.file_size | fileSize }} </span>\n </td>\n </ng-container>\n\n <!-- Uploaded On Column -->\n <ng-container matColumnDef=\"uploaded_on\">\n <th mat-header-cell *matHeaderCellDef> Uploaded On </th>\n <td mat-cell *matCellDef=\"let element\">\n <div>\n {{element.created_at | date: 'mediumDate'}}\n </div>\n <div class=\"text-muted\" *ngIf=\"element.creator\">\n By {{element.creator?.name}}\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"text-muted\">\n <div class=\"d-flex flex-row gap-2 text-secondary align-items-center\">\n <a href=\"{{element.url}}\" target=\"_blank\" class=\"text-decoration-none text-muted clickable\">\n <mat-icon>download</mat-icon>\n </a>\n <app-techlify-form-button *ngIf=\"!viewOnly && isShowUpdateAction\" [component]=\"entityFileForm()\"\n [model]=\"element\" [data]=\"formData\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button *ngIf=\"!viewOnly && isShowDeleteAction\" [model]=\"element\" [service]=\"service\"\n message=\"Are you sure to proceed delete the file {{element.title}}\"\n (deleted)=\"modelsDeletedById(element)\">\n </app-techlify-delete-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </ng-template>\n\n <div class=\"d-flex flex-wrap gap-3 mat-typography p-4\" *ngIf=\"displayMode\">\n <div *ngFor=\"let efile of models\">\n <app-document-viewer [file]=\"efile.file\" [fileUrl]=\"efile.url\" [config]=\"this.viewerConfig\" [disableEdit]=\"true\">\n </app-document-viewer>\n <a href=\"{{efile.url}}\" target=\"_blank\">\n <button mat-button type=\"button\">View</button>\n </a>\n </div>\n </div>\n</div>\n\n<mat-card *ngIf=\"viewMode === 'timeline'\">\n <mat-card-content>\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <mat-icon>\n description\n </mat-icon>\n <h3 class=\"font-weight-bold mb-0\">\n {{title}}s\n </h3>\n <app-techlify-form-button *ngIf=\"!viewOnly && isShowCreateAction\" [component]=\"entityFileForm()\" [data]=\"formData\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n </div>\n </mat-card-content>\n <mat-card-content *ngIf=\"!this.selectedModelIds.length && !viewOnly && isShowCreateAction\" class=\"mt-3\">\n <app-file-dropper [config]=\"fileConfig\" (fileChanged)=\"fileChanged($event)\">\n </app-file-dropper>\n </mat-card-content>\n\n <mat-card-content class=\"mt-3\">\n <div *ngFor=\"let entityFile of models\" class=\"d-flex flex-column gap-0\">\n <div class=\"d-flex flex-column gap-0\">\n <div class=\"d-flex justify-content-between align-items-center gap-1\">\n <p class=\"mb-0 fw-bold text-wrap\">{{ entityFile?.title | wrap:20 }}</p>\n <span class=\"badge bg-dark\" *ngFor=\"let tag of entityFile?.tags\">\n {{ tag?.title }}\n </span>\n <small class=\"text-dark\">{{ entityFile.file_size | fileSize }}</small>\n </div>\n </div>\n <app-read-more [text]=\"entityFile?.details\" [maxLength]=\"50\"></app-read-more>\n <div class=\"d-flex justify-content-between gap-2\">\n <small class=\"text-secondary\" style=\"max-width: 70%\">\n <i>Uploaded By {{ entityFile?.creator?.name }} {{ entityFile?.created_at | date: 'mediumDate'}}</i>\n </small>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <a href=\"{{entityFile?.url}}\" target=\"_blank\" class=\"text-decoration-none text-secondary mt-2\">\n <mat-icon>download</mat-icon>\n </a>\n <app-techlify-form-button class=\"text-secondary\" *ngIf=\"!viewOnly && isShowUpdateAction\"\n [component]=\"entityFileForm()\" [model]=\"entityFile\" [data]=\"formData\"\n (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button *ngIf=\"!viewOnly && isShowDeleteAction\" class='text-secondary ms-1'\n [model]=\"entityFile\" [service]=\"service\"\n message=\"Are you sure to proceed delete the file {{entityFile.title}}\"\n (deleted)=\"modelsDeletedById(entityFile)\">\n </app-techlify-delete-button>\n </div>\n </div>\n <hr style=\"margin: 0.5rem 0\">\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>", styles: ["th.mat-header-cell,td.mat-cell,td.mat-footer-cell{padding:2px}.entity-file-card{overflow-x:auto}.clickable:hover{cursor:pointer}\n"] }]
216
- }], ctorParameters: () => [{ type: i1.EntityFileService }, { type: i2.AlertService }, { type: i3.UntypedFormBuilder }, { type: i4.ErrorHandlerService }, { type: i5.NgxPermissionsService }, { type: i6.FormConfigurationFormService }], propDecorators: { entityId: [{
217
- type: Input
218
- }], entityType: [{
219
- type: Input
220
- }], viewOnly: [{
221
- type: Input
222
- }], removeSearch: [{
223
- type: Input
224
- }], hideTitleAndDetails: [{
225
- type: Input
226
- }], displayMode: [{
227
- type: Input
228
- }], allowMultipleFiles: [{
229
- type: Input
230
- }], allowBulkUpdate: [{
231
- type: Input
232
- }], viewMode: [{
233
- type: Input
234
- }], fileDropperHeight: [{
235
- type: Input
236
- }], isShowDragDropSection: [{
237
- type: Input
238
- }], isFilterPatchFromRoute: [{
239
- type: Input
240
- }], useTechlifyTags: [{
241
- type: Input
242
- }], techlifyTagCategories: [{
243
- type: Input
244
- }], techlifyTagConfig: [{
245
- type: Input
246
- }], title: [{
247
- type: Input
248
- }], permission: [{
249
- type: Input
250
- }] } });
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWZpbGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2VudGl0eS1maWxlcy9lbnRpdHktZmlsZS1saXN0L2VudGl0eS1maWxlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9lbnRpdHktZmlsZXMvZW50aXR5LWZpbGUtbGlzdC9lbnRpdHktZmlsZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFPekYsT0FBTyxFQUNMLGdDQUFnQyxFQUNqQyxNQUFNLGdGQUFnRixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3pELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5Rzs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHFCQUFxQjtJQWNoRSxJQUFzQixzQkFBc0IsQ0FBQyxLQUFjO1FBQ3pELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUNELElBQWEsc0JBQXNCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3RDLENBQUM7SUFpQ0QsWUFDa0IsT0FBMEIsRUFDbEMsWUFBMEIsRUFDMUIsRUFBc0IsRUFDdEIsWUFBaUMsRUFDakMsa0JBQXlDLEVBQ3pDLGlCQUErQztRQUV2RCxLQUFLLENBQUMsT0FB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O2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUdnQixzQkFBc0I7c0JBQTNDLEtBQUs7Z0JBVUcsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFlRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnRpdHlGaWxlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2VudGl0eS1maWxlLWZvcm0vZW50aXR5LWZpbGUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW50aXR5RmlsZVNlcnZpY2UgfSBmcm9tICcuLi9lbnRpdHktZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBWaWV3ZXJDb25maWcgfSBmcm9tICcuLi8uLi9kb2N1bWVudC12aWV3ZXIvdmlld2VyLWNvbmZpZy5tb2RlbCc7XG5pbXBvcnQgeyBGaWxlRHJvcHBlckNvbmZpZyB9IGZyb20gJy4uLy4uL2ZpbGUtZHJvcHBlcic7XG5pbXBvcnQgeyBFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgVGVjaGxpZnlUYWdnZXJUYWdGb3JtQ29uZmlnTW9kZWxcbn0gZnJvbSBcIi4uLy4uL3RhZy90ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tZmllbGQvdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWNvbmZpZy5tb2RlbFwiO1xuaW1wb3J0IHsgVGVjaGxpZnlMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQgeyBOZ3hQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICduZ3gtcGVybWlzc2lvbnMnO1xuaW1wb3J0IHsgRm9ybUNvbmZpZ3VyYXRpb25Gb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL2Zvcm0tY29uZmlndXJhdGlvbi9mb3JtLWNvbmZpZ3VyYXRpb24tZm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1Db25maWd1cmF0aW9uVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9mb3JtLWNvbmZpZ3VyYXRpb24vZm9ybS1jb25maWd1cmF0aW9uLXV0aWxpdHkuc2VydmljZSc7XG5cbi8qKlxuICogV2UgYXJlIHVzaW5nIGJvdGggYXBwLWVudGl0eS1maWxlLWxpc3QgYW5kIGFwcC1lbnRpdHktZmlsZXMtdmlldy1hbGwgXG4gKiB0byBlbnN1cmUgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHByb2plY3RzIGBuZ3gtdGVjaGxpZnktZG9jdW1lbnRzLCBuZ3gtdGVjaGxpZnktY2hlY2tzaGVldHNgXG4gKiBldGMuIGBhcHAtZW50aXR5LWZpbGVzLXZpZXctYWxsYCB3aWxsIGJlIHJlbW92ZWQgYnkgYHYxOC44MC4wYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZW50aXR5LWZpbGUtbGlzdCwgYXBwLWVudGl0eS1maWxlcy12aWV3LWFsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktZmlsZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW50aXR5LWZpbGUtbGlzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVudGl0eUZpbGVMaXN0Q29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZW50aXR5SWQ6IG51bWJlcjtcbiAgQElucHV0KCkgZW50aXR5VHlwZTogc3RyaW5nO1xuICBASW5wdXQoKSB2aWV3T25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZW1vdmVTZWFyY2g6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhpZGVUaXRsZUFuZERldGFpbHM6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRpc3BsYXlNb2RlOiBib29sZWFuO1xuICBASW5wdXQoKSBhbGxvd011bHRpcGxlRmlsZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYWxsb3dCdWxrVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHZpZXdNb2RlOiAnbGlzdCcgfCAndGltZWxpbmUnID0gJ2xpc3QnO1xuICBASW5wdXQoKSBmaWxlRHJvcHBlckhlaWdodCA9ICc1MDBweCc7XG4gIEBJbnB1dCgpIGlzU2hvd0RyYWdEcm9wU2VjdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIGRlZmF1bHRGaWx0ZXJzID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgYW55Pj4oKTtcblxuICBASW5wdXQoKSBvdmVycmlkZSBzZXQgaXNGaWx0ZXJQYXRjaEZyb21Sb3V0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzRmlsdGVyUGF0Y2hGcm9tUm91dGUgPSB2YWx1ZTtcbiAgfVxuICBvdmVycmlkZSBnZXQgaXNGaWx0ZXJQYXRjaEZyb21Sb3V0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNGaWx0ZXJQYXRjaEZyb21Sb3V0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG91bGQgd2UgYWxsb3cgdGFnZ2luZyBlbnRpdHktZmlsZXM/XG4gICAqL1xuICBASW5wdXQoKSB1c2VUZWNobGlmeVRhZ3MgPSBmYWxzZTtcbiAgQElucHV0KCkgdGVjaGxpZnlUYWdDYXRlZ29yaWVzOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSB0ZWNobGlmeVRhZ0NvbmZpZzogVGVjaGxpZnlUYWdnZXJUYWdGb3JtQ29uZmlnTW9kZWwgPSBuZXcgVGVjaGxpZnlUYWdnZXJUYWdGb3JtQ29uZmlnTW9kZWwoKTtcblxuXG4gIGVudGl0eUZpbGVGb3JtID0gc2lnbmFsKEVudGl0eUZpbGVGb3JtQ29tcG9uZW50KTtcbiAgZm9ybURhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICB2aWV3ZXJDb25maWc6IFZpZXdlckNvbmZpZztcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9IFwiRmlsZVwiO1xuICBkaXNwbGF5ZWRDb2x1bW5zID0gW1xuICAgICdpbmRleCcsXG4gICAgJ3RpdGxlJyxcbiAgICAnZXhwaXJlc19vbicsXG4gICAgJ2RldGFpbHMnLFxuICAgICdmaWxlX3NpemUnLFxuICAgICd1cGxvYWRlZF9vbicsXG4gIF07XG4gIGZpbGVDb25maWc6IEZpbGVEcm9wcGVyQ29uZmlnO1xuICB1cGRhdGVSb3dGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBpc1Nob3dDcmVhdGVBY3Rpb246IGJvb2xlYW4gPSB0cnVlO1xuICBpc1Nob3dVcGRhdGVBY3Rpb246IGJvb2xlYW4gPSB0cnVlO1xuICBpc1Nob3dEZWxldGVBY3Rpb246IGJvb2xlYW4gPSB0cnVlO1xuICBpc1Nob3dSZWFkQWN0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcGVybWlzc2lvbjogeyBjcmVhdGU6IHN0cmluZywgdXBkYXRlOiBzdHJpbmcsIGRlbGV0ZTogc3RyaW5nLCByZWFkOiBzdHJpbmcgfTtcblxuICBwdWJsaWMgZm9ybUNvbmZpZ3VyYXRpb25VdGlsaXR5U2VydmljZTogRm9ybUNvbmZpZ3VyYXRpb25VdGlsaXR5U2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2VydmljZTogRW50aXR5RmlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBlcnJvckhhbmRsZXI6IEVycm9ySGFuZGxlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uc1NlcnZpY2U6IE5neFBlcm1pc3Npb25zU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1Db25maWdTZXJ2aWNlOiBGb3JtQ29uZmlndXJhdGlvbkZvcm1TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKHNlcnZpY2UpO1xuICAgIHRoaXMuZm9ybUNvbmZpZ3VyYXRpb25VdGlsaXR5U2VydmljZSA9IG5ldyBGb3JtQ29uZmlndXJhdGlvblV0aWxpdHlTZXJ2aWNlKCk7XG4gICAgdGhpcy5maWx0ZXJGb3JtQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgIHRhZ19pZHM6IHsgbXVsdGlwbGU6IHRydWUgfVxuICAgIH07XG4gICAgdGhpcy5maWx0ZXJGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB0aXRsZTogW1wiXCJdLFxuICAgICAgdGFnX2lkczogW1tdXSxcbiAgICAgIHBlcmlvZF9pZDogWycnXSxcbiAgICAgIGV4cGlyZXNfb25fZnJvbTogWycnXSxcbiAgICAgIGV4cGlyZXNfb25fdG86IFsnJ11cbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlUm93Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgdGl0bGU6IFsnJ10sXG4gICAgICBkZXRhaWxzOiBbJyddLFxuICAgICAgdGFnX2lkczogWycnXSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuXG4gICAgLyoqXG4gICAgICogVGhlIHJlYXNvbiB3ZSBhcmUgc2V0dGluZyBwZXJtaXNzaW9ucyB0aGlzIHdheSBpcyBiZWNhdXNlIHRoZSB1c2VyIGNhbiBwYXNzIHdoYXQgcGVybWlzc2lvbnMgYXJlIHRvIGJlIHVzZWRcbiAgICAgKiB3aGVuIG1hbmlwdWxhdGluZyB0aGUgZmlsZXMvZG9jdW1lbnRzLiBJZiB0aGV5IGFyZSBhIGNsaWVudCBhZG1pbiB3ZSB3aWxsIHNraXAgdGhpc1xuICAgICAqL1xuICAgIGlmICghYXdhaXQgdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuaGFzUGVybWlzc2lvbignY2xpZW50X2FkbWluJykpIHtcbiAgICAgIHRoaXMuaXNTaG93Q3JlYXRlQWN0aW9uID0gdGhpcy5wZXJtaXNzaW9uPy5jcmVhdGUgPyBhd2FpdCB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5oYXNQZXJtaXNzaW9uKHRoaXMucGVybWlzc2lvbi5jcmVhdGUpIDogdHJ1ZTtcbiAgICAgIHRoaXMuaXNTaG93VXBkYXRlQWN0aW9uID0gdGhpcy5wZXJtaXNzaW9uPy51cGRhdGUgPyBhd2FpdCB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5oYXNQZXJtaXNzaW9uKHRoaXMucGVybWlzc2lvbi51cGRhdGUpIDogdHJ1ZTtcbiAgICAgIHRoaXMuaXNTaG93UmVhZEFjdGlvbiA9IHRoaXMucGVybWlzc2lvbj8ucmVhZCA/IGF3YWl0IHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmhhc1Blcm1pc3Npb24odGhpcy5wZXJtaXNzaW9uLnJlYWQpIDogdHJ1ZTtcbiAgICAgIHRoaXMuaXNTaG93RGVsZXRlQWN0aW9uID0gdGhpcy5wZXJtaXNzaW9uPy5kZWxldGUgPyBhd2FpdCB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5oYXNQZXJtaXNzaW9uKHRoaXMucGVybWlzc2lvbi5kZWxldGUpIDogdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm1EYXRhID0ge1xuICAgICAgZW50aXR5OiB7XG4gICAgICAgIGVudGl0eV90eXBlOiB0aGlzLmVudGl0eVR5cGUsXG4gICAgICAgIGVudGl0eV9pZDogdGhpcy5lbnRpdHlJZFxuICAgICAgfSxcbiAgICAgIGhpZGVUaXRsZUFuZERldGFpbHM6IHRoaXMuaGlkZVRpdGxlQW5kRGV0YWlscyxcbiAgICAgIHVzZVRlY2hsaWZ5VGFnczogdGhpcy51c2VUZWNobGlmeVRhZ3MsXG4gICAgICB0ZWNobGlmeVRhZ0NhdGVnb3JpZXM6IHRoaXMudGVjaGxpZnlUYWdDYXRlZ29yaWVzLFxuICAgICAgdGVjaGxpZnlUYWdDb25maWc6IHRoaXMudGVjaGxpZnlUYWdDb25maWcsXG4gICAgfTtcblxuICAgIC8vIEZpbGUgZHJvcHBlciBjb25maWdcbiAgICB0aGlzLmZpbGVDb25maWcgPSB7XG4gICAgICBmaWxlSWQ6IFwiZW50aXR5RGFzaGJvYXJkRHJvcHBlclwiLFxuICAgICAgY29udGFpbmVySWQ6IFwiZW50aXR5RGFzaGJvYXJkRHJvcHBlckNvbnRhaW5lclwiLFxuICAgICAgc3R5bGVzOiB7XG4gICAgICAgIGhlaWdodDogdGhpcy5maWxlRHJvcHBlckhlaWdodFxuICAgICAgfSxcbiAgICAgIG11bHRpcGxlOiB0aGlzLmFsbG93TXVsdGlwbGVGaWxlcyxcbiAgICAgIGFjY2VwdEZpbGU6IFwiKlwiLFxuICAgICAgbWF4U2l6ZTogMTAsXG4gICAgICBhY2NlcHRGaWxlVGV4dDogXCJBbGwgRmlsZXNcIlxuICAgIH07XG5cbiAgICB0aGlzLnZpZXdlckNvbmZpZyA9IHtcbiAgICAgIGltYWdlU3R5bGU6IHtcbiAgICAgICAgaGVpZ2h0OiAnMjAwcHgnLFxuICAgICAgICB3aWR0aDogJzIwMHB4J1xuICAgICAgfSxcbiAgICAgIHZpZXdlclN0eWxlOiB7XG4gICAgICAgIGhlaWdodDogJyAxNjBweCcsXG4gICAgICAgIHdpZHRoOiAnMjAwcHgnXG4gICAgICB9LFxuICAgICAgaGlkZVJlbW92ZTogdHJ1ZVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5oaWRlVGl0bGVBbmREZXRhaWxzKSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMuZmlsdGVyKHggPT4gKHggIT09ICdkZXRhaWxzJykgJiYgKHggIT09ICd0aXRsZScpKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnZpZXdPbmx5KSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaCgnYWN0aW9ucycpO1xuICAgIH1cbiAgICBpZiAodGhpcy5hbGxvd0J1bGtVcGRhdGUpIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKCdzZWxlY3QnKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm1Db25maWd1cmF0aW9uVXRpbGl0eVNlcnZpY2UuaW5pdGlhbGl6ZSh0aGlzLmZvcm1Db25maWdTZXJ2aWNlLCAnZW50aXR5LWZpbGUnKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUNvbmZpZ3VyYXRpb25VdGlsaXR5U2VydmljZS5nZXRGaWVsZEVuYWJsZWQoJ2V4cGlyZXNfb24nKSkge1xuICAgICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuZGlzcGxheWVkQ29sdW1ucy5maWx0ZXIoeCA9PiB4ICE9PSAnZXhwaXJlc19vbicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBkZWZhdWx0RmlsdGVycyA9IHRoaXMuZGVmYXVsdEZpbHRlcnMoKTtcbiAgICBpZiAoZGVmYXVsdEZpbHRlcnMpIHtcbiAgICAgIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKGRlZmF1bHRGaWx0ZXJzLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRmlsdGVyUGF0Y2hGcm9tUm91dGUpIHtcbiAgICAgIHRoaXMucGF0Y2hGaWx0ZXJzRnJvbVJvdXRlKCk7XG4gICAgfVxuICAgIHRoaXMubGlzdGVuRmlsdGVyQ2hhbmdlcygpO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVycyA9IHtcbiAgICAgIC4uLnRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2U/LmNvbnZlcnRUb0Zvcm1EYXRhKFxuICAgICAgICBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyRm9ybS52YWx1ZSkpXG4gICAgICApLFxuICAgICAgZW50aXR5X3R5cGU6IHRoaXMuZW50aXR5VHlwZSxcbiAgICAgIGVudGl0eV9pZDogdGhpcy5lbnRpdHlJZCxcbiAgICAgIHdpdGg6ICdjcmVhdG9yLHRhZ3MnLFxuICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgcGVyX3BhZ2U6IHRoaXMucGVyUGFnZVxuICAgIH07XG4gICAgc3VwZXIubG9hZERhdGEodGhpcy5maWx0ZXJzKTtcbiAgfVxuXG4gIGFzeW5jIGZpbGVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmaWxlczogYW55W10gPSBldmVudDtcbiAgICBpZiAoZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGxvYWRFbnRpdHlGaWxlKFxuICAgICAgICAgIGZpbGUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZW50aXR5X3R5cGU6IHRoaXMuZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGVudGl0eV9pZDogdGhpcy5lbnRpdHlJZCxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ0ZpbGVzIHVwbG9hZGVkIHN1Y2Nlc3NmdWxseSEnLCAnc3VjY2VzcycpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGJ1bGtVcGRhdGUoZmllbGROYW1lOiBhbnkpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy51cGRhdGVSb3dGb3JtLnZhbHVlO1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICBkYXRhLmZpZWxkX25hbWUgPSBmaWVsZE5hbWU7XG4gICAgZGF0YS5kb2N1bWVudF9pZHMgPSB0aGlzLnNlbGVjdGVkTW9kZWxJZHM7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmJ1bGtVcGRhdGUoZGF0YSkudGhlbihcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KFwiU3VjY2Vzc2Z1bGx5IHVwZGF0ZWRcIiwgXCJzdWNjZXNzXCIpO1xuICAgICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cInZpZXdNb2RlID09PSAnbGlzdCdcIj5cbiAgPGRpdiAqbmdJZj1cInRoaXMuc2VsZWN0ZWRNb2RlbElkcy5sZW5ndGhcIiBjbGFzcz1cImQtbm9uZSBkLW1kLWZsZXggZmxleC1jb2x1bW5cIj5cbiAgICA8bWF0LWNhcmQgY2xhc3M9XCJ1cGRhdGVfY2FyZFwiICpuZ0lmPVwidGhpcy5zZWxlY3RlZE1vZGVsSWRzLmxlbmd0aFwiPlxuICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgPG1hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgIDxkaXYgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cIm10LTIgbWwtMiB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdj5VcGRhdGUgU2VsZWN0ZWQgUm93czwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxuICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XG4gICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiPlxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInVwZGF0ZVJvd0Zvcm1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XG5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwIHB4LTFcIj5cbiAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCIgcGxhY2Vob2xkZXI9XCJUaXRsZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIC8+XG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJ1cGRhdGVSb3dGb3JtLmdldCgndGl0bGUnKS52YWx1ZSB8fCB1cGRhdGVSb3dGb3JtLmdldCgndGl0bGUnKS52YWx1ZT09PTBcIiBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b24gc3R5bGU9XCJjb2xvcjpyZWRcIiAoY2xpY2spPVwidXBkYXRlUm93Rm9ybS5nZXQoJ3RpdGxlJykuc2V0VmFsdWUoJycpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgc3R5bGU9XCJjb2xvcjpncmVlblwiICpuZ0lmPVwiKHVwZGF0ZVJvd0Zvcm0uZ2V0KCd0aXRsZScpLnZhbHVlIHx8IHVwZGF0ZVJvd0Zvcm0uZ2V0KCd0aXRsZScpLnZhbHVlPT09MClcbiAgICAgICAgICAgICAgICAmJiB1cGRhdGVSb3dGb3JtLmdldCgndGl0bGUnKS52YWxpZFwiIChjbGljayk9XCJidWxrVXBkYXRlKCd0aXRsZScpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmRvbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwIHB4LTFcIj5cbiAgICAgICAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImRldGFpbHNcIiBwbGFjZWhvbGRlcj1cIkRldGFpbHNcIiBhdXRvY29tcGxldGU9XCJvZmZcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidXBkYXRlUm93Rm9ybS5nZXQoJ2RldGFpbHMnKS52YWx1ZSB8fCB1cGRhdGVSb3dGb3JtLmdldCgnZGV0YWlscycpLnZhbHVlPT09MFwiIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvbiBzdHlsZT1cImNvbG9yOnJlZFwiIChjbGljayk9XCJ1cGRhdGVSb3dGb3JtLmdldCgnZGV0YWlscycpLnNldFZhbHVlKCcnKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiIHN0eWxlPVwiY29sb3I6Z3JlZW5cIiAqbmdJZj1cIih1cGRhdGVSb3dGb3JtLmdldCgnZGV0YWlscycpLnZhbHVlIHx8IHVwZGF0ZVJvd0Zvcm0uZ2V0KCdkZXRhaWxzJykudmFsdWU9PT0wKVxuICAgICAgICAgICAgICAgICYmIHVwZGF0ZVJvd0Zvcm0uZ2V0KCdkZXRhaWxzJykudmFsaWRcIiAoY2xpY2spPVwiYnVsa1VwZGF0ZSgnZGV0YWlscycpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmRvbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VUZWNobGlmeVRhZ3NcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGFnPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tZmllbGQgbW9kZWxUeXBlPVwiZW50aXR5LWZpbGVcIiBmb3JtQ29udHJvbE5hbWU9XCJ0YWdfaWRzXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgbmV3IHRhZ1wiPlxuICAgICAgICAgICAgICAgIDwvYXBwLXRlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidXBkYXRlUm93Rm9ybS5nZXQoJ3RhZ19pZHMnKS52YWx1ZSB8fCB1cGRhdGVSb3dGb3JtLmdldCgndGFnX2lkcycpLnZhbHVlPT09MFwiIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uIHN0eWxlPVwiY29sb3I6cmVkXCIgKGNsaWNrKT1cInVwZGF0ZVJvd0Zvcm0uZ2V0KCd0YWdfaWRzJykuc2V0VmFsdWUoJycpXCI+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgc3R5bGU9XCJjb2xvcjpncmVlblwiICpuZ0lmPVwiKHVwZGF0ZVJvd0Zvcm0uZ2V0KCd0YWdfaWRzJykudmFsdWUgfHwgdXBkYXRlUm93Rm9ybS5nZXQoJ3RhZ19pZHMnKS52YWx1ZT09PTApXG4gICAgICAgICAgICAgICAgICAmJiB1cGRhdGVSb3dGb3JtLmdldCgndGFnX2lkcycpLnZhbGlkXCIgKGNsaWNrKT1cImJ1bGtVcGRhdGUoJ3RhZ19pZHMnKVwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmRvbmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8L21hdC1jYXJkPlxuXG4gIDwvZGl2PlxuXG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCIgKm5nSWY9XCIhZGlzcGxheU1vZGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgZ2FwLTNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBmbGV4LWdyb3ctMVwiPlxuICAgICAgICAgIDxtYXQtY2FyZD5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJmb250LXdlaWdodC1ib2xkIG1iLTBcIj5cbiAgICAgICAgICAgICAgICAgIHt7dGl0bGV9fXNcbiAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgIDxhcHAtdGVjaGxpZnktZm9ybS1idXR0b24gY2xhc3M9XCJtcy0yXCIgKm5nSWY9XCIhdmlld09ubHkgJiYgaXNTaG93Q3JlYXRlQWN0aW9uICYmIGVudGl0eUlkXCJcbiAgICAgICAgICAgICAgICAgIFtjb21wb25lbnRdPVwiZW50aXR5RmlsZUZvcm0oKVwiIFtkYXRhXT1cImZvcm1EYXRhXCJcbiAgICAgICAgICAgICAgICAgIChzYXZlZCk9XCJtb2RlbENyZWF0ZWQoJGV2ZW50KVwiPjwvYXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmxleC1ncm93LTFcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCIgY2xhc3M9XCJkLWZsZXggZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIiFyZW1vdmVTZWFyY2hcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlNlYXJjaDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIgbmFtZT1cInRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZmlsdGVyRm9ybS5nZXQoJ3RpdGxlJykudmFsdWVcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0RmlsdGVyKCd0aXRsZScpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlVGVjaGxpZnlUYWdzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlRhZzwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxhcHAtdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkIFtjYXRlZ29yaWVzXT1cInRlY2hsaWZ5VGFnQ2F0ZWdvcmllc1wiIGZvcm1Db250cm9sTmFtZT1cInRhZ19pZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVGFnc1wiIFtjb25maWddPVwidGVjaGxpZnlUYWdDb25maWdcIj48L2FwcC10ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgPGFwcC10aW1lbGluZS1maWx0ZXIgY2xhc3M9XCJmbC1zbVwiIGZvcm1Db250cm9sTmFtZT0ncGVyaW9kX2lkJyBsYWJlbFRleHQ9XCJFeHBpcmVzIE9uXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZyb209XCJleHBpcmVzX29uX2Zyb21cIiBkYXRlVG89XCJleHBpcmVzX29uX3RvXCIgW2Zvcm1dPVwiZmlsdGVyRm9ybVwiPjwvYXBwLXRpbWVsaW5lLWZpbHRlcj5cbiAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJlbnRpdHktZmlsZS1jYXJkIHAtMFwiICpuZ0lmPVwiZW50aXR5SWRcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlVmlld1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgIDwvbWF0LWNhcmQ+XG5cbiAgICAgICAgICA8bWF0LWNhcmQgKm5nSWY9XCIhZW50aXR5SWRcIj5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiZW50aXR5LWZpbGUtY2FyZCBwLTBcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhYmxlVmlld1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaG93RHJhZ0Ryb3BTZWN0aW9uICYmIGVudGl0eUlkXCI+XG4gICAgICAgICAgPHNlY3Rpb24gc3R5bGU9XCJmbGV4OiAwIDEgMzAlO1wiICpuZ0lmPVwiIXRoaXMuc2VsZWN0ZWRNb2RlbElkcy5sZW5ndGggJiYgIXZpZXdPbmx5ICYmIGlzU2hvd0NyZWF0ZUFjdGlvblwiPlxuICAgICAgICAgICAgPGFwcC1maWxlLWRyb3BwZXIgW2NvbmZpZ109XCJmaWxlQ29uZmlnXCIgKGZpbGVDaGFuZ2VkKT1cImZpbGVDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvYXBwLWZpbGUtZHJvcHBlcj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxuZy10ZW1wbGF0ZSAjdGFibGVWaWV3PlxuICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwibW9kZWxzXCIgY2xhc3M9XCJ3LTEwMFwiIG1hdFNvcnQgbXVsdGlUZW1wbGF0ZURhdGFSb3dzIGluZmluaXRlU2Nyb2xsXG4gICAgICBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIxLjVcIiBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiIChzY3JvbGxlZCk9XCJvblNjcm9sbCgpXCI+XG5cbiAgICAgIDwhLS0gU2VsZWN0IENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0XCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgc3R5bGU9XCJ3aWR0aDozMHB4XCI+XG4gICAgICAgICAgPG1hdC1jaGVja2JveCBuYW1lPVwiZW1wbG95ZWVcIiBbKG5nTW9kZWwpXT1cImlzQWxsU2VsZWN0ZWRcIiAoY2hhbmdlKT1cInNlbGVjdEFsbCgpXCI+XG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCIgc3R5bGU9XCJ3aWR0aDozMHB4XCI+XG4gICAgICAgICAgPG1hdC1jaGVja2JveCBuYW1lPVwiZW1wbG95ZWVbe3tlbGVtZW50Py5pZH19XVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlbGVtZW50LmlzX3NlbGVjdGVkXCIgKGNoYW5nZSk9XCJpc1NlbGVjdGlvbk1vZGlmaWVkKCRldmVudCwgZWxlbWVudClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFtb2RlbHMubGVuZ3RoXCI+XG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBJbmRleCBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+ICMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gZGF0YUluZGV4XCI+IHt7IGkrMSB9fSA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gVGl0bGUgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ0aXRsZVwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBUaXRsZSA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgIHt7ZWxlbWVudC50aXRsZX19XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZVRlY2hsaWZ5VGFnc1wiPlxuICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiYmFkZ2UgYmFkZ2Utc2Vjb25kYXJ5IG1yLTFcIiAqbmdGb3I9XCJsZXQgdGFnIG9mIGVsZW1lbnQ/LnRhZ3NcIj57e3RhZz8udGl0bGV9fTwvc21hbGw+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImV4cGlyZXNfb25cIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gRXhwaXJlcyBPbiA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgIHt7ZWxlbWVudD8uZXhwaXJlc19vbiB8IGRhdGU6J21lZGl1bURhdGUnfX1cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIERldGFpbHMgQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJkZXRhaWxzXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IERldGFpbHMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICA8YXBwLXJlYWQtbW9yZSBbdGV4dF09XCJlbGVtZW50LmRldGFpbHNcIiBbbWF4TGVuZ3RoXT1cIjUwXCI+PC9hcHAtcmVhZC1tb3JlPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gRmlsZSBzaXplIENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZmlsZV9zaXplXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEZpbGUgU2l6ZSA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZWxlbWVudD8uZmlsZV9zaXplXCI+IHt7IGVsZW1lbnQuZmlsZV9zaXplIHwgZmlsZVNpemUgfX0gPC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gVXBsb2FkZWQgT24gQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ1cGxvYWRlZF9vblwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBVcGxvYWRlZCBPbiA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7e2VsZW1lbnQuY3JlYXRlZF9hdCB8IGRhdGU6ICdtZWRpdW1EYXRlJ319XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbXV0ZWRcIiAqbmdJZj1cImVsZW1lbnQuY3JlYXRvclwiPlxuICAgICAgICAgICAgQnkge3tlbGVtZW50LmNyZWF0b3I/Lm5hbWV9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gQWN0aW9ucyBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQWN0aW9ucyA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIGNsYXNzPVwidGV4dC1tdXRlZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgZ2FwLTIgdGV4dC1zZWNvbmRhcnkgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICA8YSBocmVmPVwie3tlbGVtZW50LnVybH19XCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tbm9uZSB0ZXh0LW11dGVkIGNsaWNrYWJsZVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24+ZG93bmxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbiAqbmdJZj1cIiF2aWV3T25seSAmJiBpc1Nob3dVcGRhdGVBY3Rpb25cIiBbY29tcG9uZW50XT1cImVudGl0eUZpbGVGb3JtKClcIlxuICAgICAgICAgICAgICBbbW9kZWxdPVwiZWxlbWVudFwiIFtkYXRhXT1cImZvcm1EYXRhXCIgKHNhdmVkKT1cIm1vZGVsc1VwZGF0ZWRCeUlkKCRldmVudClcIj48L2FwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbj5cbiAgICAgICAgICAgIDxhcHAtdGVjaGxpZnktZGVsZXRlLWJ1dHRvbiAqbmdJZj1cIiF2aWV3T25seSAmJiBpc1Nob3dEZWxldGVBY3Rpb25cIiBbbW9kZWxdPVwiZWxlbWVudFwiIFtzZXJ2aWNlXT1cInNlcnZpY2VcIlxuICAgICAgICAgICAgICBtZXNzYWdlPVwiQXJlIHlvdSBzdXJlIHRvIHByb2NlZWQgZGVsZXRlIHRoZSBmaWxlIHt7ZWxlbWVudC50aXRsZX19XCJcbiAgICAgICAgICAgICAgKGRlbGV0ZWQpPVwibW9kZWxzRGVsZXRlZEJ5SWQoZWxlbWVudClcIj5cbiAgICAgICAgICAgIDwvYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgPC90YWJsZT5cblxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgKm5nSWY9XCJpc1dvcmtpbmdcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXAgZ2FwLTMgbWF0LXR5cG9ncmFwaHkgcC00XCIgKm5nSWY9XCJkaXNwbGF5TW9kZVwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGVmaWxlIG9mIG1vZGVsc1wiPlxuICAgICAgPGFwcC1kb2N1bWVudC12aWV3ZXIgW2ZpbGVdPVwiZWZpbGUuZmlsZVwiIFtmaWxlVXJsXT1cImVmaWxlLnVybFwiIFtjb25maWddPVwidGhpcy52aWV3ZXJDb25maWdcIiBbZGlzYWJsZUVkaXRdPVwidHJ1ZVwiPlxuICAgICAgPC9hcHAtZG9jdW1lbnQtdmlld2VyPlxuICAgICAgPGEgaHJlZj1cInt7ZWZpbGUudXJsfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIj5WaWV3PC9idXR0b24+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxtYXQtY2FyZCAqbmdJZj1cInZpZXdNb2RlID09PSAndGltZWxpbmUnXCI+XG4gIDxtYXQtY2FyZC1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgPG1hdC1pY29uPlxuICAgICAgICBkZXNjcmlwdGlvblxuICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDxoMyBjbGFzcz1cImZvbnQtd2VpZ2h0LWJvbGQgbWItMFwiPlxuICAgICAgICB7e3RpdGxlfX1zXG4gICAgICA8L2gzPlxuICAgICAgPGFwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbiAqbmdJZj1cIiF2aWV3T25seSAmJiBpc1Nob3dDcmVhdGVBY3Rpb25cIiBbY29tcG9uZW50XT1cImVudGl0eUZpbGVGb3JtKClcIiBbZGF0YV09XCJmb3JtRGF0YVwiXG4gICAgICAgIChzYXZlZCk9XCJtb2RlbENyZWF0ZWQoJGV2ZW50KVwiPjwvYXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDxtYXQtY2FyZC1jb250ZW50ICpuZ0lmPVwiIXRoaXMuc2VsZWN0ZWRNb2RlbElkcy5sZW5ndGggJiYgIXZpZXdPbmx5ICYmIGlzU2hvd0NyZWF0ZUFjdGlvblwiIGNsYXNzPVwibXQtM1wiPlxuICAgIDxhcHAtZmlsZS1kcm9wcGVyIFtjb25maWddPVwiZmlsZUNvbmZpZ1wiIChmaWxlQ2hhbmdlZCk9XCJmaWxlQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgPC9hcHAtZmlsZS1kcm9wcGVyPlxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG5cbiAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJtdC0zXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgZW50aXR5RmlsZSBvZiBtb2RlbHNcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgICAgIDxwIGNsYXNzPVwibWItMCBmdy1ib2xkIHRleHQtd3JhcFwiPnt7IGVudGl0eUZpbGU/LnRpdGxlIHwgd3JhcDoyMCB9fTwvcD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJnLWRhcmtcIiAqbmdGb3I9XCJsZXQgdGFnIG9mIGVudGl0eUZpbGU/LnRhZ3NcIj5cbiAgICAgICAgICAgIHt7IHRhZz8udGl0bGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC1kYXJrXCI+e3sgZW50aXR5RmlsZS5maWxlX3NpemUgfCBmaWxlU2l6ZSB9fTwvc21hbGw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YXBwLXJlYWQtbW9yZSBbdGV4dF09XCJlbnRpdHlGaWxlPy5kZXRhaWxzXCIgW21heExlbmd0aF09XCI1MFwiPjwvYXBwLXJlYWQtbW9yZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gZ2FwLTJcIj5cbiAgICAgICAgPHNtYWxsIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIiBzdHlsZT1cIm1heC13aWR0aDogNzAlXCI+XG4gICAgICAgICAgPGk+VXBsb2FkZWQgQnkge3sgZW50aXR5RmlsZT8uY3JlYXRvcj8ubmFtZSB9fSB7eyBlbnRpdHlGaWxlPy5jcmVhdGVkX2F0IHwgZGF0ZTogJ21lZGl1bURhdGUnfX08L2k+XG4gICAgICAgIDwvc21hbGw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgICA8YSBocmVmPVwie3tlbnRpdHlGaWxlPy51cmx9fVwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLW5vbmUgdGV4dC1zZWNvbmRhcnkgbXQtMlwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmRvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgPGFwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCIgKm5nSWY9XCIhdmlld09ubHkgJiYgaXNTaG93VXBkYXRlQWN0aW9uXCJcbiAgICAgICAgICAgIFtjb21wb25lbnRdPVwiZW50aXR5RmlsZUZvcm0oKVwiIFttb2RlbF09XCJlbnRpdHlGaWxlXCIgW2RhdGFdPVwiZm9ybURhdGFcIlxuICAgICAgICAgICAgKHNhdmVkKT1cIm1vZGVsc1VwZGF0ZWRCeUlkKCRldmVudClcIj48L2FwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbj5cbiAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24gKm5nSWY9XCIhdmlld09ubHkgJiYgaXNTaG93RGVsZXRlQWN0aW9uXCIgY2xhc3M9J3RleHQtc2Vjb25kYXJ5IG1zLTEnXG4gICAgICAgICAgICBbbW9kZWxdPVwiZW50aXR5RmlsZVwiIFtzZXJ2aWNlXT1cInNlcnZpY2VcIlxuICAgICAgICAgICAgbWVzc2FnZT1cIkFyZSB5b3Ugc3VyZSB0byBwcm9jZWVkIGRlbGV0ZSB0aGUgZmlsZSB7e2VudGl0eUZpbGUudGl0bGV9fVwiXG4gICAgICAgICAgICAoZGVsZXRlZCk9XCJtb2RlbHNEZWxldGVkQnlJZChlbnRpdHlGaWxlKVwiPlxuICAgICAgICAgIDwvYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8aHIgc3R5bGU9XCJtYXJnaW46IDAuNXJlbSAwXCI+XG4gICAgPC9kaXY+XG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdJZj1cImlzV29ya2luZ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD4iXX0=
@@ -1,33 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { SharedModule } from '../../shared.module';
3
- import { EntityFileListComponent } from '../entity-file-list/entity-file-list.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "ngx-infinite-scroll";
7
- import * as i3 from "@angular/material/table";
8
- import * as i4 from "@angular/material/card";
9
- import * as i5 from "@angular/material/progress-bar";
10
- import * as i6 from "../../read-more/read-more.component";
11
- export class EntityFileListWidgetComponent extends EntityFileListComponent {
12
- constructor() {
13
- super(...arguments);
14
- this.displayedColumns = [
15
- 'index',
16
- 'title',
17
- 'expires_on',
18
- 'details',
19
- ];
20
- }
21
- async ngOnInit() {
22
- await super.ngOnInit();
23
- }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityFileListWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EntityFileListWidgetComponent, isStandalone: true, selector: "app-entity-file-list-widget", usesInheritance: true, ngImport: i0, template: "<mat-card class=\"w-100 h-100 d-flex flex-column p-2\">\n <div class=\"d-flex gap-2 align-items-center\">\n <h6 class=\"font-weight-bold mb-0\">\n {{title}}s\n </h6>\n </div>\n\n <mat-card-content class=\"entity-file-card p-0 flex-grow-1 overflow-auto\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"1.5\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element.title}}\n <ng-container *ngIf=\"useTechlifyTags\">\n <br>\n <small class=\"badge badge-secondary mr-1\" *ngFor=\"let tag of element?.tags\">{{tag?.title}}</small>\n </ng-container>\n </td>\n </ng-container>\n\n <!-- Expires On Column -->\n <ng-container matColumnDef=\"expires_on\">\n <th mat-header-cell *matHeaderCellDef> Expires On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.expires_on | date:'mediumDate'}}\n </td>\n </ng-container>\n\n <!-- Details Column -->\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-read-more [text]=\"element.details\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i6.ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] }); }
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityFileListWidgetComponent, decorators: [{
28
- type: Component,
29
- args: [{ selector: 'app-entity-file-list-widget', standalone: true, imports: [
30
- SharedModule,
31
- ], template: "<mat-card class=\"w-100 h-100 d-flex flex-column p-2\">\n <div class=\"d-flex gap-2 align-items-center\">\n <h6 class=\"font-weight-bold mb-0\">\n {{title}}s\n </h6>\n </div>\n\n <mat-card-content class=\"entity-file-card p-0 flex-grow-1 overflow-auto\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"1.5\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef> Title </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element.title}}\n <ng-container *ngIf=\"useTechlifyTags\">\n <br>\n <small class=\"badge badge-secondary mr-1\" *ngFor=\"let tag of element?.tags\">{{tag?.title}}</small>\n </ng-container>\n </td>\n </ng-container>\n\n <!-- Expires On Column -->\n <ng-container matColumnDef=\"expires_on\">\n <th mat-header-cell *matHeaderCellDef> Expires On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.expires_on | date:'mediumDate'}}\n </td>\n </ng-container>\n\n <!-- Details Column -->\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n <app-read-more [text]=\"element.details\" [maxLength]=\"50\"></app-read-more>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>" }]
32
- }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWZpbGUtbGlzdC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9lbnRpdHktZmlsZXMvZW50aXR5LWZpbGUtbGlzdC13aWRnZXQvZW50aXR5LWZpbGUtbGlzdC13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9lbnRpdHktZmlsZXMvZW50aXR5LWZpbGUtbGlzdC13aWRnZXQvZW50aXR5LWZpbGUtbGlzdC13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7Ozs7O0FBV3pGLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSx1QkFBdUI7SUFUMUU7O1FBVVcscUJBQWdCLEdBQUc7WUFDMUIsT0FBTztZQUNQLE9BQU87WUFDUCxZQUFZO1lBQ1osU0FBUztTQUNWLENBQUM7S0FLSDtJQUhVLEtBQUssQ0FBQyxRQUFRO1FBQ3JCLE1BQU0sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBVlUsNkJBQTZCO21HQUE3Qiw2QkFBNkIsOEdDYjFDLHVnRUFtRFcseUREM0NQLFlBQVk7OzRGQUtILDZCQUE2QjtrQkFUekMsU0FBUzsrQkFDRSw2QkFBNkIsY0FDM0IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBFbnRpdHlGaWxlTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL2VudGl0eS1maWxlLWxpc3QvZW50aXR5LWZpbGUtbGlzdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZW50aXR5LWZpbGUtbGlzdC13aWRnZXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgU2hhcmVkTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWZpbGUtbGlzdC13aWRnZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZW50aXR5LWZpbGUtbGlzdC13aWRnZXQuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEVudGl0eUZpbGVMaXN0V2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgRW50aXR5RmlsZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBvdmVycmlkZSBkaXNwbGF5ZWRDb2x1bW5zID0gW1xuICAgICdpbmRleCcsXG4gICAgJ3RpdGxlJyxcbiAgICAnZXhwaXJlc19vbicsXG4gICAgJ2RldGFpbHMnLFxuICBdO1xuXG4gIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cbn1cbiIsIjxtYXQtY2FyZCBjbGFzcz1cInctMTAwIGgtMTAwIGQtZmxleCBmbGV4LWNvbHVtbiBwLTJcIj5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8aDYgY2xhc3M9XCJmb250LXdlaWdodC1ib2xkIG1iLTBcIj5cbiAgICAgIHt7dGl0bGV9fXNcbiAgICA8L2g2PlxuICA8L2Rpdj5cblxuICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImVudGl0eS1maWxlLWNhcmQgcC0wIGZsZXgtZ3Jvdy0xIG92ZXJmbG93LWF1dG9cIj5cbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cIm1vZGVsc1wiIGNsYXNzPVwidy0xMDBcIiBpbmZpbml0ZVNjcm9sbCBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIxLjVcIlxuICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIiAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiPlxuXG4gICAgICA8IS0tIEluZGV4IENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBkYXRhSW5kZXhcIj4ge3sgaSsxIH19IDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBUaXRsZSBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInRpdGxlXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFRpdGxlIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAge3tlbGVtZW50LnRpdGxlfX1cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlVGVjaGxpZnlUYWdzXCI+XG4gICAgICAgICAgICA8YnI+XG4gICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJiYWRnZSBiYWRnZS1zZWNvbmRhcnkgbXItMVwiICpuZ0Zvcj1cImxldCB0YWcgb2YgZWxlbWVudD8udGFnc1wiPnt7dGFnPy50aXRsZX19PC9zbWFsbD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIEV4cGlyZXMgT24gQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJleHBpcmVzX29uXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEV4cGlyZXMgT24gPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICB7e2VsZW1lbnQ/LmV4cGlyZXNfb24gfCBkYXRlOidtZWRpdW1EYXRlJ319XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBEZXRhaWxzIENvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZGV0YWlsc1wiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBEZXRhaWxzIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgPGFwcC1yZWFkLW1vcmUgW3RleHRdPVwiZWxlbWVudC5kZXRhaWxzXCIgW21heExlbmd0aF09XCI1MFwiPjwvYXBwLXJlYWQtbW9yZT5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgICA8L3RhYmxlPlxuXG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdJZj1cImlzV29ya2luZ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD4iXX0=
@@ -1,43 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { EntityFileFormComponent } from './entity-file-form/entity-file-form.component';
3
- import { EntityFileListComponent } from './entity-file-list/entity-file-list.component';
4
- import { EntityFileListWidgetComponent } from './entity-file-list-widget/entity-file-list-widget.component';
5
- import { TechlifyTaggerTagFormFieldModule } from '../tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module';
6
- import { WrapPipe } from '../pipes/wrap.pipe';
7
- import { FileSizePipe } from '../pipes/file-size.pipe';
8
- import { SharedModule } from '../shared.module';
9
- import * as i0 from "@angular/core";
10
- export class EntityFileListModule {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityFileListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: EntityFileListModule, declarations: [EntityFileFormComponent,
13
- EntityFileListComponent], imports: [SharedModule,
14
- TechlifyTaggerTagFormFieldModule,
15
- WrapPipe,
16
- FileSizePipe,
17
- EntityFileListWidgetComponent], exports: [EntityFileListComponent,
18
- EntityFileListWidgetComponent] }); }
19
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityFileListModule, imports: [SharedModule,
20
- TechlifyTaggerTagFormFieldModule,
21
- EntityFileListWidgetComponent] }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityFileListModule, decorators: [{
24
- type: NgModule,
25
- args: [{
26
- declarations: [
27
- EntityFileFormComponent,
28
- EntityFileListComponent
29
- ],
30
- imports: [
31
- SharedModule,
32
- TechlifyTaggerTagFormFieldModule,
33
- WrapPipe,
34
- FileSizePipe,
35
- EntityFileListWidgetComponent,
36
- ],
37
- exports: [
38
- EntityFileListComponent,
39
- EntityFileListWidgetComponent
40
- ]
41
- }]
42
- }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWZpbGUtbGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2VudGl0eS1maWxlcy9lbnRpdHktZmlsZS1saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzVHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQW9CaEQsTUFBTSxPQUFPLG9CQUFvQjsrR0FBcEIsb0JBQW9CO2dIQUFwQixvQkFBb0IsaUJBZnpCLHVCQUF1QjtZQUN2Qix1QkFBdUIsYUFHdkIsWUFBWTtZQUNaLGdDQUFnQztZQUNoQyxRQUFRO1lBQ1IsWUFBWTtZQUNaLDZCQUE2QixhQUc3Qix1QkFBdUI7WUFDdkIsNkJBQTZCO2dIQUd4QixvQkFBb0IsWUFYekIsWUFBWTtZQUNaLGdDQUFnQztZQUdoQyw2QkFBNkI7OzRGQU94QixvQkFBb0I7a0JBakJoQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVix1QkFBdUI7d0JBQ3ZCLHVCQUF1QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0NBQWdDO3dCQUNoQyxRQUFRO3dCQUNSLFlBQVk7d0JBQ1osNkJBQTZCO3FCQUNoQztvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsdUJBQXVCO3dCQUN2Qiw2QkFBNkI7cUJBQ2hDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudGl0eUZpbGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9lbnRpdHktZmlsZS1mb3JtL2VudGl0eS1maWxlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEVudGl0eUZpbGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9lbnRpdHktZmlsZS1saXN0L2VudGl0eS1maWxlLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEVudGl0eUZpbGVMaXN0V2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi9lbnRpdHktZmlsZS1saXN0LXdpZGdldC9lbnRpdHktZmlsZS1saXN0LXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVjaGxpZnlUYWdnZXJUYWdGb3JtRmllbGRNb2R1bGUgfSBmcm9tICcuLi90YWcvdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC5tb2R1bGUnO1xuaW1wb3J0IHsgV3JhcFBpcGUgfSBmcm9tICcuLi9waXBlcy93cmFwLnBpcGUnO1xuaW1wb3J0IHsgRmlsZVNpemVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvZmlsZS1zaXplLnBpcGUnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkLm1vZHVsZSc7XG5cblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgRW50aXR5RmlsZUZvcm1Db21wb25lbnQsXG4gICAgICAgIEVudGl0eUZpbGVMaXN0Q29tcG9uZW50XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcbiAgICAgICAgVGVjaGxpZnlUYWdnZXJUYWdGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIFdyYXBQaXBlLFxuICAgICAgICBGaWxlU2l6ZVBpcGUsXG4gICAgICAgIEVudGl0eUZpbGVMaXN0V2lkZ2V0Q29tcG9uZW50LFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBFbnRpdHlGaWxlTGlzdENvbXBvbmVudCxcbiAgICAgICAgRW50aXR5RmlsZUxpc3RXaWRnZXRDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEVudGl0eUZpbGVMaXN0TW9kdWxlIHsgfVxuIl19
@@ -1,37 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { TechlifyService } from "../base-model";
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../core/http.service";
5
- export class EntityFileService extends TechlifyService {
6
- constructor(http) {
7
- super(http, 'entity-files');
8
- this.http = http;
9
- }
10
- uploadEntityFile(file, params, url = "api/entity-files-upload") {
11
- const formData = new FormData();
12
- formData.append("fileData", file, file.name);
13
- if (params?.entity_id) {
14
- formData.append('entity_id', params.entity_id);
15
- }
16
- if (params?.entity_type) {
17
- formData.append('entity_type', params.entity_type);
18
- }
19
- params?.disk ? formData.append('disk', params.disk) : null;
20
- params?.sub_path ? formData.append('sub_path', params.sub_path) : null;
21
- return this.http
22
- .skipHeader()
23
- .post(url, formData).toPromise();
24
- }
25
- bulkUpdate(model) {
26
- return this.http.put(`api/entity-files-batch`, model).toPromise();
27
- }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityFileService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityFileService, providedIn: 'root' }); }
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityFileService, decorators: [{
32
- type: Injectable,
33
- args: [{
34
- providedIn: 'root'
35
- }]
36
- }], ctorParameters: () => [{ type: i1.HttpService }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWZpbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvZW50aXR5LWZpbGVzL2VudGl0eS1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLaEQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGVBQWU7SUFFcEQsWUFBc0IsSUFBaUI7UUFDckMsS0FBSyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztRQURSLFNBQUksR0FBSixJQUFJLENBQWE7SUFFdkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVUsRUFBRSxNQUFZLEVBQUUsTUFBYyx5QkFBeUI7UUFDaEYsTUFBTSxRQUFRLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMxQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDeEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFFRCxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzRCxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUV2RSxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsVUFBVSxFQUFFO2FBQ1osSUFBSSxDQUNILEdBQUcsRUFDSCxRQUFRLENBQ1QsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3BFLENBQUM7K0dBN0JVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHR0cC5zZXJ2aWNlJztcbmltcG9ydCB7IFRlY2hsaWZ5U2VydmljZSB9IGZyb20gXCIuLi9iYXNlLW1vZGVsXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVudGl0eUZpbGVTZXJ2aWNlIGV4dGVuZHMgVGVjaGxpZnlTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cFNlcnZpY2UpIHtcbiAgICBzdXBlcihodHRwLCAnZW50aXR5LWZpbGVzJyk7XG4gIH1cblxuICB1cGxvYWRFbnRpdHlGaWxlKGZpbGU6IEZpbGUsIHBhcmFtcz86IGFueSwgdXJsOiBzdHJpbmcgPSBcImFwaS9lbnRpdHktZmlsZXMtdXBsb2FkXCIpIHtcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoXCJmaWxlRGF0YVwiLCBmaWxlLCBmaWxlLm5hbWUpO1xuICAgIGlmIChwYXJhbXM/LmVudGl0eV9pZCkge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdlbnRpdHlfaWQnLCBwYXJhbXMuZW50aXR5X2lkKTtcbiAgICB9XG4gICAgaWYgKHBhcmFtcz8uZW50aXR5X3R5cGUpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZW50aXR5X3R5cGUnLCBwYXJhbXMuZW50aXR5X3R5cGUpO1xuICAgIH1cblxuICAgIHBhcmFtcz8uZGlzayA/IGZvcm1EYXRhLmFwcGVuZCgnZGlzaycsIHBhcmFtcy5kaXNrKSA6IG51bGw7XG4gICAgcGFyYW1zPy5zdWJfcGF0aCA/IGZvcm1EYXRhLmFwcGVuZCgnc3ViX3BhdGgnLCBwYXJhbXMuc3ViX3BhdGgpIDogbnVsbDtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5za2lwSGVhZGVyKClcbiAgICAgIC5wb3N0KFxuICAgICAgICB1cmwsXG4gICAgICAgIGZvcm1EYXRhLFxuICAgICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGJ1bGtVcGRhdGUobW9kZWwpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgYXBpL2VudGl0eS1maWxlcy1iYXRjaGAsIG1vZGVsKS50b1Byb21pc2UoKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- export * from './entity-file-list/entity-file-list.component';
2
- export * from './entity-file-list-widget/entity-file-list-widget.component';
3
- export * from './entity-file-form/entity-file-form.component';
4
- export * from './entity-file.service';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2VudGl0eS1maWxlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnRpdHktZmlsZS1saXN0L2VudGl0eS1maWxlLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LWZpbGUtbGlzdC13aWRnZXQvZW50aXR5LWZpbGUtbGlzdC13aWRnZXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LWZpbGUtZm9ybS9lbnRpdHktZmlsZS1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2VudGl0eS1maWxlLnNlcnZpY2UnO1xuIl19