ngx-techlify-core 18.45.0 → 18.46.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 (297) hide show
  1. package/esm2022/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +3 -3
  2. package/esm2022/lib/access-control-config/access-control-config-routing.module.mjs +4 -4
  3. package/esm2022/lib/access-control-config/access-control-config.component.mjs +3 -3
  4. package/esm2022/lib/access-control-config/access-control-config.module.mjs +4 -4
  5. package/esm2022/lib/access-control-config/access-control-config.service.mjs +3 -3
  6. package/esm2022/lib/action-popup/action-popup.component.mjs +8 -9
  7. package/esm2022/lib/action-popup/action-popup.module.mjs +5 -9
  8. package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list-routing.module.mjs +4 -4
  9. package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list.component.mjs +3 -3
  10. package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list.module.mjs +4 -4
  11. package/esm2022/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.component.mjs +3 -3
  12. package/esm2022/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.module.mjs +4 -4
  13. package/esm2022/lib/app-admin/admin-role/admin-role.service.mjs +3 -3
  14. package/esm2022/lib/app-admin/app-admin-home/app-admin-home.component.mjs +3 -3
  15. package/esm2022/lib/app-admin/app-admin-routing.module.mjs +4 -4
  16. package/esm2022/lib/app-admin/app-admin.module.mjs +4 -4
  17. package/esm2022/lib/app-admin/tenant/tenant-list-widget/tenant-list-widget.component.mjs +3 -3
  18. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.mjs +4 -4
  19. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.component.mjs +3 -3
  20. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +4 -4
  21. package/esm2022/lib/audit-log/audit-log-list/audit-log-list-routing.module.mjs +4 -4
  22. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +3 -3
  23. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.module.mjs +4 -4
  24. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.mjs +4 -4
  25. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +3 -3
  26. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +4 -4
  27. package/esm2022/lib/audit-log/audit-log-routing.module.mjs +4 -4
  28. package/esm2022/lib/audit-log/audit-log-view/audit-log-view-routing.module.mjs +4 -4
  29. package/esm2022/lib/audit-log/audit-log-view/audit-log-view.component.mjs +3 -3
  30. package/esm2022/lib/audit-log/audit-log-view/audit-log-view.module.mjs +4 -4
  31. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.mjs +4 -4
  32. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +3 -3
  33. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +4 -4
  34. package/esm2022/lib/audit-log/audit-log.module.mjs +4 -4
  35. package/esm2022/lib/audit-log/audit-log.service.mjs +3 -3
  36. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.mjs +4 -4
  37. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +3 -3
  38. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +4 -4
  39. package/esm2022/lib/base-model/techlify-form-component.class.mjs +3 -3
  40. package/esm2022/lib/base-model/techlify-listing-component.class.mjs +3 -3
  41. package/esm2022/lib/change-password/change-password-routing.module.mjs +4 -4
  42. package/esm2022/lib/change-password/change-password.component.mjs +3 -3
  43. package/esm2022/lib/change-password/change-password.module.mjs +4 -4
  44. package/esm2022/lib/column-selector/column-selector/column-selector.component.mjs +3 -3
  45. package/esm2022/lib/column-selector/column-selector.module.mjs +4 -4
  46. package/esm2022/lib/company-information/client.service.mjs +3 -3
  47. package/esm2022/lib/company-information/company-info-display/company-info-display.component.mjs +3 -3
  48. package/esm2022/lib/company-information/company-information/company-information.component.mjs +3 -3
  49. package/esm2022/lib/company-information/tenant-form-button/tenant-form-button.component.mjs +3 -3
  50. package/esm2022/lib/core/alert.service.mjs +3 -3
  51. package/esm2022/lib/core/api-prefix.interceptor.mjs +3 -3
  52. package/esm2022/lib/core/authentication.guard.mjs +3 -3
  53. package/esm2022/lib/core/authentication.service.mjs +3 -3
  54. package/esm2022/lib/core/cache.interceptor.mjs +3 -3
  55. package/esm2022/lib/core/config.service.mjs +3 -3
  56. package/esm2022/lib/core/core.module.mjs +4 -4
  57. package/esm2022/lib/core/credentials.service.mjs +3 -3
  58. package/esm2022/lib/core/dataManager.service.mjs +3 -3
  59. package/esm2022/lib/core/environment.service.mjs +3 -3
  60. package/esm2022/lib/core/error-handler.interceptor.mjs +3 -3
  61. package/esm2022/lib/core/error-handler.service.mjs +3 -3
  62. package/esm2022/lib/core/filter.service.mjs +3 -3
  63. package/esm2022/lib/core/form-validator.service.mjs +3 -3
  64. package/esm2022/lib/core/header.interceptor.mjs +3 -3
  65. package/esm2022/lib/core/http-cache.service.mjs +3 -3
  66. package/esm2022/lib/core/http.service.mjs +3 -3
  67. package/esm2022/lib/core/route-reusable-strategy.mjs +3 -3
  68. package/esm2022/lib/core/snack/snack.component.mjs +6 -6
  69. package/esm2022/lib/core/snack/snack.module.mjs +4 -4
  70. package/esm2022/lib/core/storage.service.mjs +3 -3
  71. package/esm2022/lib/core/token.interceptor.mjs +3 -3
  72. package/esm2022/lib/custom-icon/custom-icon-registry.service.mjs +3 -3
  73. package/esm2022/lib/custom-icon/custom-icon.component.mjs +3 -3
  74. package/esm2022/lib/custom-icon/custom-icon.module.mjs +4 -4
  75. package/esm2022/lib/data-table/data-table.component.mjs +3 -3
  76. package/esm2022/lib/data-table/data-table.module.mjs +4 -4
  77. package/esm2022/lib/delete-button/techlify-delete-button.component.mjs +68 -0
  78. package/esm2022/lib/document-viewer/document-viewer.component.mjs +3 -3
  79. package/esm2022/lib/document-viewer/document-viewer.module.mjs +4 -4
  80. package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.mjs +4 -4
  81. package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.mjs +3 -3
  82. package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.mjs +4 -4
  83. package/esm2022/lib/email-subscription/email-subscription-routing.module.mjs +4 -4
  84. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.mjs +4 -4
  85. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +3 -3
  86. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.mjs +4 -4
  87. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.mjs +4 -4
  88. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +3 -3
  89. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.mjs +4 -4
  90. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.mjs +4 -4
  91. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type.module.mjs +4 -4
  92. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.mjs +4 -4
  93. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +3 -3
  94. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.mjs +4 -4
  95. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.mjs +4 -4
  96. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +3 -3
  97. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.mjs +4 -4
  98. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.mjs +4 -4
  99. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +3 -3
  100. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.mjs +4 -4
  101. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.mjs +4 -4
  102. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user.module.mjs +4 -4
  103. package/esm2022/lib/email-subscription/email-subscription.module.mjs +4 -4
  104. package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +3 -3
  105. package/esm2022/lib/entity-files/entity-file.service.mjs +3 -3
  106. package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +3 -3
  107. package/esm2022/lib/entity-files/entity-files-view-all.module.mjs +4 -4
  108. package/esm2022/lib/export-excel/export-excel-button/export-excel-button.component.mjs +3 -3
  109. package/esm2022/lib/export-excel/export-excel.module.mjs +4 -4
  110. package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.mjs +3 -3
  111. package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.mjs +4 -4
  112. package/esm2022/lib/file-dropper/file-dropper.component.mjs +3 -3
  113. package/esm2022/lib/file-dropper/file-dropper.module.mjs +4 -4
  114. package/esm2022/lib/file-upload-button/file-upload-button.component.mjs +3 -3
  115. package/esm2022/lib/forgot-password/forgot-password-routing.module.mjs +4 -4
  116. package/esm2022/lib/forgot-password/forgot-password.component.mjs +3 -3
  117. package/esm2022/lib/forgot-password/forgot-password.module.mjs +4 -4
  118. package/esm2022/lib/image-preview/image-preview.component.mjs +3 -3
  119. package/esm2022/lib/import-csv/data-import/data-import.component.mjs +3 -3
  120. package/esm2022/lib/import-csv/failed-items-list/failed-items-list.component.mjs +3 -3
  121. package/esm2022/lib/import-csv/field-mapping/field-mapping.component.mjs +3 -3
  122. package/esm2022/lib/import-csv/import-csv.component.mjs +3 -3
  123. package/esm2022/lib/import-csv/import-csv.module.mjs +4 -4
  124. package/esm2022/lib/import-csv/import-history-list/import-history-list.component.mjs +3 -3
  125. package/esm2022/lib/import-csv/import-success/import-success.component.mjs +3 -3
  126. package/esm2022/lib/ip-address-selector/ip-address-selector.module.mjs +4 -4
  127. package/esm2022/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +3 -3
  128. package/esm2022/lib/loader/loader.component.mjs +3 -3
  129. package/esm2022/lib/loader/loader.module.mjs +4 -4
  130. package/esm2022/lib/login/login-form-fields/login-form-fields.component.mjs +3 -3
  131. package/esm2022/lib/login/login-routing.module.mjs +4 -4
  132. package/esm2022/lib/login/login.component.mjs +3 -3
  133. package/esm2022/lib/login/login.module.mjs +4 -4
  134. package/esm2022/lib/login-history-for-user/login-history-for-user-routing.module.mjs +4 -4
  135. package/esm2022/lib/login-history-for-user/login-history-for-user.component.mjs +3 -3
  136. package/esm2022/lib/login-history-for-user/login-history-for-user.module.mjs +4 -4
  137. package/esm2022/lib/material.module.mjs +4 -4
  138. package/esm2022/lib/ngx-techlify-users/ngx-techlify-users-routing.module.mjs +4 -4
  139. package/esm2022/lib/ngx-techlify-users/ngx-techlify-users.module.mjs +4 -4
  140. package/esm2022/lib/note/comment-form/comment-form.component.mjs +3 -3
  141. package/esm2022/lib/note/note-form/note-form.component.mjs +3 -3
  142. package/esm2022/lib/note/note-list/note-list.component.mjs +3 -3
  143. package/esm2022/lib/note/note.module.mjs +4 -4
  144. package/esm2022/lib/note/note.service.mjs +3 -3
  145. package/esm2022/lib/number-input-button/number-input-button/number-input-button.component.mjs +3 -3
  146. package/esm2022/lib/number-input-button/number-input-button.module.mjs +4 -4
  147. package/esm2022/lib/password-requirement-check/password-check.service.mjs +3 -3
  148. package/esm2022/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.mjs +3 -3
  149. package/esm2022/lib/password-requirement-check/password-requirement-check.module.mjs +4 -4
  150. package/esm2022/lib/pdf-button/pdf-button.component.mjs +3 -3
  151. package/esm2022/lib/pdf-button/pdf-button.module.mjs +4 -4
  152. package/esm2022/lib/pipes/wrap.pipe.mjs +3 -3
  153. package/esm2022/lib/profile/profile-edit.component.mjs +3 -3
  154. package/esm2022/lib/profile/profile-routing.module.mjs +4 -4
  155. package/esm2022/lib/profile/profile.module.mjs +4 -4
  156. package/esm2022/lib/read-more/read-more.component.mjs +3 -3
  157. package/esm2022/lib/read-more/read-more.module.mjs +4 -4
  158. package/esm2022/lib/request-helper/request-helper.service.mjs +3 -3
  159. package/esm2022/lib/reset-password/reset-password-routing.module.mjs +4 -4
  160. package/esm2022/lib/reset-password/reset-password.component.mjs +3 -3
  161. package/esm2022/lib/reset-password/reset-password.module.mjs +4 -4
  162. package/esm2022/lib/reset-password/reset-password.service.mjs +3 -3
  163. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +3 -3
  164. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.mjs +4 -4
  165. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level.service.mjs +3 -3
  166. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +3 -3
  167. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.mjs +4 -4
  168. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status.service.mjs +3 -3
  169. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +3 -3
  170. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.mjs +4 -4
  171. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type.service.mjs +3 -3
  172. package/esm2022/lib/restrictors/restrictor.service.mjs +3 -3
  173. package/esm2022/lib/restrictors/restrictors-form/restrictors-form.component.mjs +3 -3
  174. package/esm2022/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +3 -3
  175. package/esm2022/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +3 -3
  176. package/esm2022/lib/restrictors/restrictors-routing.module.mjs +4 -4
  177. package/esm2022/lib/restrictors/restrictors.module.mjs +4 -4
  178. package/esm2022/lib/role/permission/permission.module.mjs +4 -4
  179. package/esm2022/lib/role/permission/permission.routes.mjs +4 -4
  180. package/esm2022/lib/role/permission/permissions-management.component.mjs +3 -3
  181. package/esm2022/lib/role/role-form-button.component.mjs +3 -3
  182. package/esm2022/lib/role/role-form.component.mjs +3 -3
  183. package/esm2022/lib/role/role-view/role-view-routing.module.mjs +4 -4
  184. package/esm2022/lib/role/role-view/role-view.component.mjs +3 -3
  185. package/esm2022/lib/role/role-view/role-view.module.mjs +4 -4
  186. package/esm2022/lib/role/role.module.mjs +4 -4
  187. package/esm2022/lib/role/role.routes.mjs +4 -4
  188. package/esm2022/lib/role/role.service.mjs +3 -3
  189. package/esm2022/lib/role/roles-view-all.component.mjs +3 -3
  190. package/esm2022/lib/searchable-selector/searchable-selector.component.mjs +3 -3
  191. package/esm2022/lib/searchable-selector/searchable-selector.module.mjs +4 -4
  192. package/esm2022/lib/signup/signup-routing.module.mjs +4 -4
  193. package/esm2022/lib/signup/signup.component.mjs +3 -3
  194. package/esm2022/lib/signup/signup.module.mjs +4 -4
  195. package/esm2022/lib/subscription/subscription-form/subscription-form-routing.module.mjs +4 -4
  196. package/esm2022/lib/subscription/subscription-form/subscription-form.component.mjs +3 -3
  197. package/esm2022/lib/subscription/subscription-form/subscription-form.module.mjs +4 -4
  198. package/esm2022/lib/subscription/subscription-listing/subscription-listing-routing.module.mjs +4 -4
  199. package/esm2022/lib/subscription/subscription-listing/subscription-listing.component.mjs +3 -3
  200. package/esm2022/lib/subscription/subscription-listing/subscription-listing.module.mjs +4 -4
  201. package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing-routing.module.mjs +4 -4
  202. package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.component.mjs +3 -3
  203. package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.module.mjs +4 -4
  204. package/esm2022/lib/subscription/subscription-package-view/subscription-package-view-routing.module.mjs +4 -4
  205. package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.component.mjs +3 -3
  206. package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.module.mjs +4 -4
  207. package/esm2022/lib/subscription/subscription-package.service.mjs +3 -3
  208. package/esm2022/lib/subscription/subscription.service.mjs +3 -3
  209. package/esm2022/lib/subscription/techlify-subscription-directive.module.mjs +4 -4
  210. package/esm2022/lib/subscription/techlify-subscription.directive.mjs +3 -3
  211. package/esm2022/lib/techlify-app-selector/techlify-app-selector.component.mjs +3 -3
  212. package/esm2022/lib/techlify-app-selector/techlify-app-selector.module.mjs +4 -4
  213. package/esm2022/lib/techlify-company-switcher/techlify-company-switcher/techlify-company-switcher.component.mjs +3 -3
  214. package/esm2022/lib/techlify-company-switcher/techlify-company-switcher.module.mjs +4 -4
  215. package/esm2022/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +3 -3
  216. package/esm2022/lib/techlify-feature/techlify-feature-directive.module.mjs +4 -4
  217. package/esm2022/lib/techlify-feature/techlify-feature-enabled.directive.mjs +3 -3
  218. package/esm2022/lib/techlify-feature/techlify-feature-listing.component.mjs +3 -3
  219. package/esm2022/lib/techlify-feature/techlify-feature.module.mjs +4 -4
  220. package/esm2022/lib/techlify-feature/techlify-feature.service.mjs +3 -3
  221. package/esm2022/lib/techlify-icon/techlify-icon.component.mjs +3 -3
  222. package/esm2022/lib/techlify-icon/techlify-icon.module.mjs +4 -4
  223. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user-routing.module.mjs +4 -4
  224. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +3 -3
  225. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.mjs +4 -4
  226. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-subscription.service.mjs +3 -3
  227. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-type.service.mjs +3 -3
  228. package/esm2022/lib/techlify-notifications/techlify-notification-routing.module.mjs +4 -4
  229. package/esm2022/lib/techlify-notifications/techlify-notification.module.mjs +4 -4
  230. package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +3 -3
  231. package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +4 -4
  232. package/esm2022/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +3 -3
  233. package/esm2022/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +4 -4
  234. package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +3 -3
  235. package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.module.mjs +4 -4
  236. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.mjs +4 -4
  237. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +3 -3
  238. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs +4 -4
  239. package/esm2022/lib/techlify-update/techlify-update-routing.module.mjs +4 -4
  240. package/esm2022/lib/techlify-update/techlify-update.module.mjs +4 -4
  241. package/esm2022/lib/techlify-update/techlify-update.service.mjs +3 -3
  242. package/esm2022/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +3 -3
  243. package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.mjs +3 -3
  244. package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.mjs +4 -4
  245. package/esm2022/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +3 -3
  246. package/esm2022/lib/techlify-update/update-notifier/update-notifier.component.mjs +3 -3
  247. package/esm2022/lib/techlify-update/update-notifier/update-notifier.module.mjs +4 -4
  248. package/esm2022/lib/techlify-update/update-view/update-view.component.mjs +3 -3
  249. package/esm2022/lib/techlify-update/update-view/update-view.module.mjs +4 -4
  250. package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button-routing.module.mjs +4 -4
  251. package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.component.mjs +3 -3
  252. package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.mjs +4 -4
  253. package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list-routing.module.mjs +4 -4
  254. package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.mjs +3 -3
  255. package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.mjs +4 -4
  256. package/esm2022/lib/timeline-activity/timeline-activity.service.mjs +3 -3
  257. package/esm2022/lib/timeline-filter/timeline-filter-routing.module.mjs +4 -4
  258. package/esm2022/lib/timeline-filter/timeline-filter.component.mjs +3 -3
  259. package/esm2022/lib/timeline-filter/timeline-filter.module.mjs +4 -4
  260. package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.component.mjs +3 -3
  261. package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.module.mjs +4 -4
  262. package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.routes.mjs +4 -4
  263. package/esm2022/lib/user/current-user.service.mjs +3 -3
  264. package/esm2022/lib/user/user-enable-button-component/user-enable-button.component.mjs +3 -3
  265. package/esm2022/lib/user/user-enable-button-component/user-enable-button.module.mjs +4 -4
  266. package/esm2022/lib/user/user-explore.component.mjs +3 -3
  267. package/esm2022/lib/user/user-form.component.mjs +3 -3
  268. package/esm2022/lib/user/user-sessions/user-session.service.mjs +3 -3
  269. package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.component.mjs +3 -3
  270. package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.module.mjs +4 -4
  271. package/esm2022/lib/user/user-view.component.mjs +3 -3
  272. package/esm2022/lib/user/user.module.mjs +4 -4
  273. package/esm2022/lib/user/user.routes.mjs +4 -4
  274. package/esm2022/lib/user/user.service.mjs +3 -3
  275. package/esm2022/lib/user/users-view-all.component.mjs +3 -3
  276. package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.component.mjs +3 -3
  277. package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.mjs +4 -4
  278. package/esm2022/lib/user-clients-list/user-client.service.mjs +3 -3
  279. package/esm2022/lib/user-clients-list/user-clients-list.component.mjs +3 -3
  280. package/esm2022/lib/user-clients-list/user-clients-list.module.mjs +4 -4
  281. package/esm2022/lib/user-config/user-config.service.mjs +3 -3
  282. package/esm2022/lib/user-menu/user-menu.component.mjs +3 -3
  283. package/esm2022/lib/user-menu/user-menu.module.mjs +4 -4
  284. package/esm2022/lib/user-selector/user-data.service.mjs +3 -3
  285. package/esm2022/lib/user-selector/user-selector.component.mjs +3 -3
  286. package/esm2022/lib/user-selector/user-selector.module.mjs +4 -4
  287. package/esm2022/lib/utility/date-utils.service.mjs +3 -3
  288. package/esm2022/lib/utility/num-items-selector.component.mjs +3 -3
  289. package/esm2022/lib/utility/number-selector.component.mjs +3 -3
  290. package/esm2022/lib/utility/utility.module.mjs +4 -4
  291. package/esm2022/public-api.mjs +2 -1
  292. package/fesm2022/ngx-techlify-core.mjs +1065 -1009
  293. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  294. package/lib/action-popup/action-popup.module.d.ts +3 -4
  295. package/lib/delete-button/techlify-delete-button.component.d.ts +23 -0
  296. package/package.json +1 -1
  297. package/public-api.d.ts +1 -0
@@ -90,10 +90,10 @@ export class RestrictorsFormComponent {
90
90
  redirectBack() {
91
91
  this.location.back();
92
92
  }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.Location }, { token: i3.RequestHelperService }, { token: i4.AlertService }, { token: i5.RestrictorService }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RestrictorsFormComponent, selector: "techlify-restrictors-form", inputs: { restrictor: "restrictor" }, ngImport: i0, template: "<div fxLayout fxLayoutAlign=\"center\" class=\"mb-0\">\n <h3>Restrictor Form</h3>\n</div>\n\n<form [formGroup]=\"form\"\n fxLayout=\"row wrap\" fxLayoutAlign=\"start\" fxLayoutGap=\"10px\"\n (submit)=\"save()\">\n\n <techlify-restrictor-type-selector formControlName=\"type_id\"\n fxFlex=\"calc(100% - 10px)\"></techlify-restrictor-type-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Date</mat-label>\n <input formControlName=\"start_date\" matInput [matDatepicker]=\"startDatePicker\" (focus)=\"startDatePicker.open()\">\n <mat-datepicker #startDatePicker></mat-datepicker>\n <mat-hint>From what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Time</mat-label>\n <input formControlName=\"start_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Date</mat-label>\n <input formControlName=\"end_date\" matInput [matDatepicker]=\"endDatePicker\" (focus)=\"endDatePicker.open()\">\n <mat-datepicker #endDatePicker></mat-datepicker>\n <mat-hint>Up to what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Time</mat-label>\n <input formControlName=\"end_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <techlify-ip-range-selector fxFlex=\"calc(100% - 10px)\"\n label=\"IP Address Range (IP & Subnet Field)\"\n formControlName=\"ip_range\"\n *ngIf=\"form.value?.type_id === 2\"\n class=\"mt-2 mb-3\"></techlify-ip-range-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\">\n <techlify-restrictor-level-selector fxFlex=\"calc(50% - 10px)\"\n formControlName=\"level_id\"></techlify-restrictor-level-selector>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\" *ngIf=\"form.value?.level_id\">\n <mat-label>Object</mat-label>\n <mat-select *ngIf=\"form.value?.level_id === 1\" formControlName=\"restricted_object_id\">\n <mat-option [value]=\"2\">Client Admin</mat-option>\n <mat-option [value]=\"3\">Client User</mat-option>\n </mat-select>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 2\"\n apiUrl=\"api/roles\"\n titleField=\"label\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 3\"\n apiUrl=\"api/users\"\n titleField=\"name\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n </mat-form-field>\n </div>\n\n <mat-form-field fxFlex=\"calc(100% - 10px)\" class=\"mt-2\">\n <mat-label>Notes</mat-label>\n <textarea matInput formControlName=\"notes\"></textarea>\n </mat-form-field>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\">\n <button [disabled]=\"isSaving\" type=\"submit\" mat-raised-button color=\"primary\">Save</button>\n <button [disabled]=\"isSaving\" (click)=\"redirectBack()\" type=\"button\" mat-flat-button>Cancel</button>\n </div>\n\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i8.RestrictorTypeSelectorComponent, selector: "techlify-restrictor-type-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "directive", type: i9.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: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i11.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i14.IpRangeSelectorComponent, selector: "techlify-ip-range-selector", inputs: ["label"] }, { kind: "component", type: i15.RestrictorLevelSelectorComponent, selector: "techlify-restrictor-level-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: i16.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }] }); }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.Location }, { token: i3.RequestHelperService }, { token: i4.AlertService }, { token: i5.RestrictorService }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
94
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RestrictorsFormComponent, selector: "techlify-restrictors-form", inputs: { restrictor: "restrictor" }, ngImport: i0, template: "<div fxLayout fxLayoutAlign=\"center\" class=\"mb-0\">\n <h3>Restrictor Form</h3>\n</div>\n\n<form [formGroup]=\"form\"\n fxLayout=\"row wrap\" fxLayoutAlign=\"start\" fxLayoutGap=\"10px\"\n (submit)=\"save()\">\n\n <techlify-restrictor-type-selector formControlName=\"type_id\"\n fxFlex=\"calc(100% - 10px)\"></techlify-restrictor-type-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Date</mat-label>\n <input formControlName=\"start_date\" matInput [matDatepicker]=\"startDatePicker\" (focus)=\"startDatePicker.open()\">\n <mat-datepicker #startDatePicker></mat-datepicker>\n <mat-hint>From what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Time</mat-label>\n <input formControlName=\"start_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Date</mat-label>\n <input formControlName=\"end_date\" matInput [matDatepicker]=\"endDatePicker\" (focus)=\"endDatePicker.open()\">\n <mat-datepicker #endDatePicker></mat-datepicker>\n <mat-hint>Up to what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Time</mat-label>\n <input formControlName=\"end_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <techlify-ip-range-selector fxFlex=\"calc(100% - 10px)\"\n label=\"IP Address Range (IP & Subnet Field)\"\n formControlName=\"ip_range\"\n *ngIf=\"form.value?.type_id === 2\"\n class=\"mt-2 mb-3\"></techlify-ip-range-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\">\n <techlify-restrictor-level-selector fxFlex=\"calc(50% - 10px)\"\n formControlName=\"level_id\"></techlify-restrictor-level-selector>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\" *ngIf=\"form.value?.level_id\">\n <mat-label>Object</mat-label>\n <mat-select *ngIf=\"form.value?.level_id === 1\" formControlName=\"restricted_object_id\">\n <mat-option [value]=\"2\">Client Admin</mat-option>\n <mat-option [value]=\"3\">Client User</mat-option>\n </mat-select>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 2\"\n apiUrl=\"api/roles\"\n titleField=\"label\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 3\"\n apiUrl=\"api/users\"\n titleField=\"name\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n </mat-form-field>\n </div>\n\n <mat-form-field fxFlex=\"calc(100% - 10px)\" class=\"mt-2\">\n <mat-label>Notes</mat-label>\n <textarea matInput formControlName=\"notes\"></textarea>\n </mat-form-field>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\">\n <button [disabled]=\"isSaving\" type=\"submit\" mat-raised-button color=\"primary\">Save</button>\n <button [disabled]=\"isSaving\" (click)=\"redirectBack()\" type=\"button\" mat-flat-button>Cancel</button>\n </div>\n\n</form>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i8.RestrictorTypeSelectorComponent, selector: "techlify-restrictor-type-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "directive", type: i9.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: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i11.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i14.IpRangeSelectorComponent, selector: "techlify-ip-range-selector", inputs: ["label"] }, { kind: "component", type: i15.RestrictorLevelSelectorComponent, selector: "techlify-restrictor-level-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: i16.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }] }); }
95
95
  }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsFormComponent, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsFormComponent, decorators: [{
97
97
  type: Component,
98
98
  args: [{ selector: 'techlify-restrictors-form', template: "<div fxLayout fxLayoutAlign=\"center\" class=\"mb-0\">\n <h3>Restrictor Form</h3>\n</div>\n\n<form [formGroup]=\"form\"\n fxLayout=\"row wrap\" fxLayoutAlign=\"start\" fxLayoutGap=\"10px\"\n (submit)=\"save()\">\n\n <techlify-restrictor-type-selector formControlName=\"type_id\"\n fxFlex=\"calc(100% - 10px)\"></techlify-restrictor-type-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Date</mat-label>\n <input formControlName=\"start_date\" matInput [matDatepicker]=\"startDatePicker\" (focus)=\"startDatePicker.open()\">\n <mat-datepicker #startDatePicker></mat-datepicker>\n <mat-hint>From what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>Start Time</mat-label>\n <input formControlName=\"start_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\"\n *ngIf=\"form.value?.type_id === 1\">\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Date</mat-label>\n <input formControlName=\"end_date\" matInput [matDatepicker]=\"endDatePicker\" (focus)=\"endDatePicker.open()\">\n <mat-datepicker #endDatePicker></mat-datepicker>\n <mat-hint>Up to what time should we allow user access.</mat-hint>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\">\n <mat-label>End Time</mat-label>\n <input formControlName=\"end_time\" matInput type=\"time\">\n </mat-form-field>\n </div>\n\n <techlify-ip-range-selector fxFlex=\"calc(100% - 10px)\"\n label=\"IP Address Range (IP & Subnet Field)\"\n formControlName=\"ip_range\"\n *ngIf=\"form.value?.type_id === 2\"\n class=\"mt-2 mb-3\"></techlify-ip-range-selector>\n\n <div fxLayout fxLayoutGap=\"10px\" fxFlex=\"calc(100% - 10px)\"\n class=\"mt-2\">\n <techlify-restrictor-level-selector fxFlex=\"calc(50% - 10px)\"\n formControlName=\"level_id\"></techlify-restrictor-level-selector>\n\n <mat-form-field fxFlex=\"calc(50% - 10px)\" *ngIf=\"form.value?.level_id\">\n <mat-label>Object</mat-label>\n <mat-select *ngIf=\"form.value?.level_id === 1\" formControlName=\"restricted_object_id\">\n <mat-option [value]=\"2\">Client Admin</mat-option>\n <mat-option [value]=\"3\">Client User</mat-option>\n </mat-select>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 2\"\n apiUrl=\"api/roles\"\n titleField=\"label\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n <app-searchable-selector *ngIf=\"form.value?.level_id === 3\"\n apiUrl=\"api/users\"\n titleField=\"name\"\n formControlName=\"restricted_object_id\"></app-searchable-selector>\n </mat-form-field>\n </div>\n\n <mat-form-field fxFlex=\"calc(100% - 10px)\" class=\"mt-2\">\n <mat-label>Notes</mat-label>\n <textarea matInput formControlName=\"notes\"></textarea>\n </mat-form-field>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\">\n <button [disabled]=\"isSaving\" type=\"submit\" mat-raised-button color=\"primary\">Save</button>\n <button [disabled]=\"isSaving\" (click)=\"redirectBack()\" type=\"button\" mat-flat-button>Cancel</button>\n </div>\n\n</form>\n" }]
99
99
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.Location }, { type: i3.RequestHelperService }, { type: i4.AlertService }, { type: i5.RestrictorService }, { type: i2.DatePipe }], propDecorators: { restrictor: [{
@@ -34,10 +34,10 @@ export class RestrictorsFormPageComponent {
34
34
  error: () => this.isWorking = false
35
35
  });
36
36
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsFormPageComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.RestrictorService }], target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RestrictorsFormPageComponent, selector: "lib-restrictors-form-page", ngImport: i0, template: "<div fxLayout fxLayoutAlign=\"start center\">\n <mat-card fxFlex=\"50%\" fxFlexOffset=\"25%\">\n <mat-card-content>\n <techlify-restrictors-form *ngIf=\"!isWorking else progressBarTemplate\"\n [restrictor]=\"restrictor\"></techlify-restrictors-form>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #progressBarTemplate>\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexOffsetDirective, selector: " [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md], [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md], [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm], [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]", inputs: ["fxFlexOffset", "fxFlexOffset.xs", "fxFlexOffset.sm", "fxFlexOffset.md", "fxFlexOffset.lg", "fxFlexOffset.xl", "fxFlexOffset.lt-sm", "fxFlexOffset.lt-md", "fxFlexOffset.lt-lg", "fxFlexOffset.lt-xl", "fxFlexOffset.gt-xs", "fxFlexOffset.gt-sm", "fxFlexOffset.gt-md", "fxFlexOffset.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i7.RestrictorsFormComponent, selector: "techlify-restrictors-form", inputs: ["restrictor"] }] }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsFormPageComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.RestrictorService }], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RestrictorsFormPageComponent, selector: "lib-restrictors-form-page", ngImport: i0, template: "<div fxLayout fxLayoutAlign=\"start center\">\n <mat-card fxFlex=\"50%\" fxFlexOffset=\"25%\">\n <mat-card-content>\n <techlify-restrictors-form *ngIf=\"!isWorking else progressBarTemplate\"\n [restrictor]=\"restrictor\"></techlify-restrictors-form>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #progressBarTemplate>\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexOffsetDirective, selector: " [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md], [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md], [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm], [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]", inputs: ["fxFlexOffset", "fxFlexOffset.xs", "fxFlexOffset.sm", "fxFlexOffset.md", "fxFlexOffset.lg", "fxFlexOffset.xl", "fxFlexOffset.lt-sm", "fxFlexOffset.lt-md", "fxFlexOffset.lt-lg", "fxFlexOffset.lt-xl", "fxFlexOffset.gt-xs", "fxFlexOffset.gt-sm", "fxFlexOffset.gt-md", "fxFlexOffset.gt-lg"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i7.RestrictorsFormComponent, selector: "techlify-restrictors-form", inputs: ["restrictor"] }] }); }
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsFormPageComponent, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsFormPageComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{ selector: 'lib-restrictors-form-page', template: "<div fxLayout fxLayoutAlign=\"start center\">\n <mat-card fxFlex=\"50%\" fxFlexOffset=\"25%\">\n <mat-card-content>\n <techlify-restrictors-form *ngIf=\"!isWorking else progressBarTemplate\"\n [restrictor]=\"restrictor\"></techlify-restrictors-form>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #progressBarTemplate>\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n</ng-template>\n" }]
43
43
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.RestrictorService }] });
@@ -133,10 +133,10 @@ export class RestrictorsListPageComponent {
133
133
  return restrictor?.restrictable?.name;
134
134
  }
135
135
  }
136
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsListPageComponent, deps: [{ token: i1.FormBuilder }, { token: i2.RequestHelperService }, { token: i3.ActivatedRoute }, { token: i4.RestrictorService }, { token: i5.UserConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
137
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RestrictorsListPageComponent, selector: "lib-restrictors-list-page", ngImport: i0, template: "<div fxLayout fxLayoutAlign=\"center\" fxLayoutGap=\"10px\">\n <h4 class=\"mb-0\">Restrictors</h4>\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"['create']\">add</mat-icon>\n</div>\n<p class=\"text-center text-secondary\">\n These are the configurations for restrictions that we are adding to users' access of this app.\n</p>\n\n<mat-card class=\"mt-2\">\n <mat-card-content>\n <form [formGroup]=\"filterForm\" fxLayout fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\">\n <techlify-restrictor-type-selector formControlName=\"type_ids\"\n [multiple]=\"true\"></techlify-restrictor-type-selector>\n <techlify-restrictor-level-selector formControlName=\"level_ids\"\n [multiple]=\"true\"></techlify-restrictor-level-selector>\n <techlify-restrictor-status-selector formControlName=\"status_ids\"\n [multiple]=\"true\"></techlify-restrictor-status-selector>\n </form>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" matSort (matSortChange)=\"onSortChange($event)\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\"\n [fromRoot]=\"true\" (scrolled)=\"onScroll()\">\n\n <!-- No Column -->\n <ng-container matColumnDef=\"No\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"created_at\"> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index;\"> {{ i + 1 }} </td>\n </ng-container>\n\n <!-- Type Column -->\n <ng-container matColumnDef=\"Type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"type_id\"> Type </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.type?.title }} </td>\n </ng-container>\n\n <!-- Level Column -->\n <ng-container matColumnDef=\"Level\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"level_id\"> Level </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.level?.title}} </td>\n </ng-container>\n\n <!-- Entity Column -->\n <ng-container matColumnDef=\"Entity\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"restricted_object_id\"> Entity </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ getRestrictableTypeValue(element) }}\n </td>\n </ng-container>\n\n <!-- Data Column -->\n <ng-container matColumnDef=\"Data\">\n <th mat-header-cell *matHeaderCellDef> Data </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\" *ngIf=\"element?.data?.ip_range\">\n IP Range: {{ element?.data?.ip_range }}\n </p>\n <p class=\"mb-0\" *ngIf=\"element?.data?.start_time\">\n Start time: {{ element?.data?.start_time | date: 'short' }}\n </p>\n <p class=\"mb-0\" *ngIf=\"element?.data?.end_time\">\n End time: {{ element?.data?.end_time | date: 'short' }}\n </p>\n </td>\n </ng-container>\n\n <!-- Status Column -->\n <ng-container matColumnDef=\"Status\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"status_id\"> Status </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.status?.title }}</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\">\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"[element?.id, 'edit']\">edit</mat-icon>\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 *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n\n </mat-card-content>\n</mat-card>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i9.RestrictorTypeSelectorComponent, selector: "techlify-restrictor-type-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.RestrictorLevelSelectorComponent, selector: "techlify-restrictor-level-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.RestrictorStatusSelectorComponent, selector: "techlify-restrictor-status-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i14.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i15.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i15.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i16.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }] }); }
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsListPageComponent, deps: [{ token: i1.FormBuilder }, { token: i2.RequestHelperService }, { token: i3.ActivatedRoute }, { token: i4.RestrictorService }, { token: i5.UserConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RestrictorsListPageComponent, selector: "lib-restrictors-list-page", ngImport: i0, template: "<div fxLayout fxLayoutAlign=\"center\" fxLayoutGap=\"10px\">\n <h4 class=\"mb-0\">Restrictors</h4>\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"['create']\">add</mat-icon>\n</div>\n<p class=\"text-center text-secondary\">\n These are the configurations for restrictions that we are adding to users' access of this app.\n</p>\n\n<mat-card class=\"mt-2\">\n <mat-card-content>\n <form [formGroup]=\"filterForm\" fxLayout fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\">\n <techlify-restrictor-type-selector formControlName=\"type_ids\"\n [multiple]=\"true\"></techlify-restrictor-type-selector>\n <techlify-restrictor-level-selector formControlName=\"level_ids\"\n [multiple]=\"true\"></techlify-restrictor-level-selector>\n <techlify-restrictor-status-selector formControlName=\"status_ids\"\n [multiple]=\"true\"></techlify-restrictor-status-selector>\n </form>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" matSort (matSortChange)=\"onSortChange($event)\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\"\n [fromRoot]=\"true\" (scrolled)=\"onScroll()\">\n\n <!-- No Column -->\n <ng-container matColumnDef=\"No\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"created_at\"> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index;\"> {{ i + 1 }} </td>\n </ng-container>\n\n <!-- Type Column -->\n <ng-container matColumnDef=\"Type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"type_id\"> Type </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.type?.title }} </td>\n </ng-container>\n\n <!-- Level Column -->\n <ng-container matColumnDef=\"Level\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"level_id\"> Level </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.level?.title}} </td>\n </ng-container>\n\n <!-- Entity Column -->\n <ng-container matColumnDef=\"Entity\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"restricted_object_id\"> Entity </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ getRestrictableTypeValue(element) }}\n </td>\n </ng-container>\n\n <!-- Data Column -->\n <ng-container matColumnDef=\"Data\">\n <th mat-header-cell *matHeaderCellDef> Data </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\" *ngIf=\"element?.data?.ip_range\">\n IP Range: {{ element?.data?.ip_range }}\n </p>\n <p class=\"mb-0\" *ngIf=\"element?.data?.start_time\">\n Start time: {{ element?.data?.start_time | date: 'short' }}\n </p>\n <p class=\"mb-0\" *ngIf=\"element?.data?.end_time\">\n End time: {{ element?.data?.end_time | date: 'short' }}\n </p>\n </td>\n </ng-container>\n\n <!-- Status Column -->\n <ng-container matColumnDef=\"Status\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"status_id\"> Status </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.status?.title }}</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\">\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"[element?.id, 'edit']\">edit</mat-icon>\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 *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n\n </mat-card-content>\n</mat-card>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i9.RestrictorTypeSelectorComponent, selector: "techlify-restrictor-type-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i10.RestrictorLevelSelectorComponent, selector: "techlify-restrictor-level-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: i11.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i12.RestrictorStatusSelectorComponent, selector: "techlify-restrictor-status-selector", inputs: ["label", "multiple", "showLabel"] }, { kind: "component", type: i13.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i13.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i14.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i15.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i15.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i16.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }] }); }
138
138
  }
139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsListPageComponent, decorators: [{
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsListPageComponent, decorators: [{
140
140
  type: Component,
141
141
  args: [{ selector: 'lib-restrictors-list-page', template: "<div fxLayout fxLayoutAlign=\"center\" fxLayoutGap=\"10px\">\n <h4 class=\"mb-0\">Restrictors</h4>\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"['create']\">add</mat-icon>\n</div>\n<p class=\"text-center text-secondary\">\n These are the configurations for restrictions that we are adding to users' access of this app.\n</p>\n\n<mat-card class=\"mt-2\">\n <mat-card-content>\n <form [formGroup]=\"filterForm\" fxLayout fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\">\n <techlify-restrictor-type-selector formControlName=\"type_ids\"\n [multiple]=\"true\"></techlify-restrictor-type-selector>\n <techlify-restrictor-level-selector formControlName=\"level_ids\"\n [multiple]=\"true\"></techlify-restrictor-level-selector>\n <techlify-restrictor-status-selector formControlName=\"status_ids\"\n [multiple]=\"true\"></techlify-restrictor-status-selector>\n </form>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" class=\"w-100\" matSort (matSortChange)=\"onSortChange($event)\" infiniteScroll\n [infiniteScrollDistance]=\"2\" [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\"\n [fromRoot]=\"true\" (scrolled)=\"onScroll()\">\n\n <!-- No Column -->\n <ng-container matColumnDef=\"No\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"created_at\"> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index;\"> {{ i + 1 }} </td>\n </ng-container>\n\n <!-- Type Column -->\n <ng-container matColumnDef=\"Type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"type_id\"> Type </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.type?.title }} </td>\n </ng-container>\n\n <!-- Level Column -->\n <ng-container matColumnDef=\"Level\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"level_id\"> Level </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.level?.title}} </td>\n </ng-container>\n\n <!-- Entity Column -->\n <ng-container matColumnDef=\"Entity\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"restricted_object_id\"> Entity </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ getRestrictableTypeValue(element) }}\n </td>\n </ng-container>\n\n <!-- Data Column -->\n <ng-container matColumnDef=\"Data\">\n <th mat-header-cell *matHeaderCellDef> Data </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\" *ngIf=\"element?.data?.ip_range\">\n IP Range: {{ element?.data?.ip_range }}\n </p>\n <p class=\"mb-0\" *ngIf=\"element?.data?.start_time\">\n Start time: {{ element?.data?.start_time | date: 'short' }}\n </p>\n <p class=\"mb-0\" *ngIf=\"element?.data?.end_time\">\n End time: {{ element?.data?.end_time | date: 'short' }}\n </p>\n </td>\n </ng-container>\n\n <!-- Status Column -->\n <ng-container matColumnDef=\"Status\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header=\"status_id\"> Status </th>\n <td mat-cell *matCellDef=\"let element\"> {{ element?.status?.title }}</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\">\n <mat-icon class=\"cursor-pointer\" [routerLink]=\"[element?.id, 'edit']\">edit</mat-icon>\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 *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n\n </mat-card-content>\n</mat-card>" }]
142
142
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.RequestHelperService }, { type: i3.ActivatedRoute }, { type: i4.RestrictorService }, { type: i5.UserConfigService }] });
@@ -28,11 +28,11 @@ const routes = [
28
28
  }
29
29
  ];
30
30
  export class RestrictorsRoutingModule {
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
32
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
33
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
32
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
33
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
34
34
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsRoutingModule, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsRoutingModule, decorators: [{
36
36
  type: NgModule,
37
37
  args: [{
38
38
  imports: [RouterModule.forChild(routes)],
@@ -23,8 +23,8 @@ import { MatSortModule } from '@angular/material/sort';
23
23
  import { InfiniteScrollModule } from 'ngx-infinite-scroll';
24
24
  import * as i0 from "@angular/core";
25
25
  export class RestrictorsModule {
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
27
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsModule, declarations: [RestrictorsListPageComponent,
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
27
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsModule, declarations: [RestrictorsListPageComponent,
28
28
  RestrictorsFormPageComponent,
29
29
  RestrictorsFormComponent], imports: [CommonModule,
30
30
  RestrictorsRoutingModule,
@@ -45,7 +45,7 @@ export class RestrictorsModule {
45
45
  MatProgressBarModule,
46
46
  MatSortModule,
47
47
  InfiniteScrollModule] }); }
48
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsModule, imports: [CommonModule,
48
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsModule, imports: [CommonModule,
49
49
  RestrictorsRoutingModule,
50
50
  MatButtonModule,
51
51
  FlexModule,
@@ -65,7 +65,7 @@ export class RestrictorsModule {
65
65
  MatSortModule,
66
66
  InfiniteScrollModule] }); }
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RestrictorsModule, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RestrictorsModule, decorators: [{
69
69
  type: NgModule,
70
70
  args: [{
71
71
  declarations: [
@@ -9,21 +9,21 @@ import { FlexLayoutModule } from '@angular/flex-layout';
9
9
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
10
10
  import * as i0 from "@angular/core";
11
11
  export class PermissionModule {
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PermissionModule, declarations: [PermissionsManagementComponent], imports: [CommonModule,
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: PermissionModule, declarations: [PermissionsManagementComponent], imports: [CommonModule,
14
14
  PermissionRoutingProvider,
15
15
  FlexLayoutModule,
16
16
  MaterialModule,
17
17
  FormsModule,
18
18
  ReactiveFormsModule], exports: [PermissionsManagementComponent] }); }
19
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionModule, imports: [CommonModule,
19
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionModule, imports: [CommonModule,
20
20
  PermissionRoutingProvider,
21
21
  FlexLayoutModule,
22
22
  MaterialModule,
23
23
  FormsModule,
24
24
  ReactiveFormsModule] }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionModule, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionModule, decorators: [{
27
27
  type: NgModule,
28
28
  args: [{
29
29
  imports: [
@@ -12,11 +12,11 @@ const routes = [
12
12
  { path: '**', redirectTo: '', pathMatch: 'full' },
13
13
  ];
14
14
  export class PermissionRoutingProvider {
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, imports: [i1.RouterModule], exports: [RouterModule] }); }
17
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, imports: [RouterModule.forChild(routes), RouterModule] }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionRoutingProvider, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: PermissionRoutingProvider, imports: [i1.RouterModule], exports: [RouterModule] }); }
17
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionRoutingProvider, imports: [RouterModule.forChild(routes), RouterModule] }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionRoutingProvider, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionRoutingProvider, decorators: [{
20
20
  type: NgModule,
21
21
  args: [{
22
22
  imports: [RouterModule.forChild(routes)],
@@ -112,10 +112,10 @@ export class PermissionsManagementComponent {
112
112
  });
113
113
  }
114
114
  }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsManagementComponent, deps: [{ token: i1.HttpService }, { token: i1.AlertService }, { token: i2.ActivatedRoute }, { token: i1.CredentialsService }, { token: i1.ErrorHandlerService }, { token: i3.UserConfigService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PermissionsManagementComponent, selector: "role-permissions-management", inputs: { clientId: "clientId" }, ngImport: i0, template: "<div class=\"d-flex flex-column justify-content-start gap-3\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"m-0 fw-bold\">\n Manage Role Permissions\n </h3>\n <button *ngIf=\"!config.permissionConfig.disableUsers\" [routerLink]=\"['../users']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"icon fas fa-users\"></i> Users\n </button>\n <button *ngIf=\"!config.permissionConfig.disableRoles\" [routerLink]=\"['../roles']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"fas fa-user-md\"></i> Manage Roles\n </button>\n </div>\n <form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2\">\n <mat-form-field appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input autocomplete=\"off\" formControlName=\"search\" matInput placeholder=\"Search Permissions\" type=\"text\" />\n <button (click)=\"filterForm.get('search').setValue('')\" *ngIf=\"filterForm.get('search').value\" mat-icon-button\n matSuffix type=\"button\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"roles\" appearance=\"outline\" class=\"ml-2\">\n <mat-label>Show Roles</mat-label>\n <mat-select formControlName='role_ids' multiple>\n <mat-option *ngFor=\"let role of roles\" [value]=\"role?.id\">\n {{ role.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card class=\"mt-2\">\n <mat-card-content class=\"p-0\">\n <form>\n <table aria-describedby=\"Role Permissions\" class=\"table table-sm table-bordered table-condensed table-striped\">\n <thead>\n <tr>\n <th>Permissions</th>\n <ng-container *ngFor=\"let role of roles\">\n <th *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center\">\n {{ role.label }}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let permission of filteredPermissions\">\n <td>\n {{ permission.label }}\n </td>\n <ng-container *ngFor=\"let role of roles\">\n <td *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center align-middle\">\n <div class=\"d-flex justify-content-center align-items-center h-100\">\n <input (change)=\"updateRolePermission(role, permission)\"\n [checked]=\"role.hasPermission(permission.slug)\"\n [disabled]=\"isDisabled(role?.client_id == null, role.is_editable)\"\n name=\"{{role.id}}[{{permission?.label}}]\" type=\"checkbox\" />\n </div>\n </td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n </form>\n </mat-card-content>\n </mat-card>\n</div>", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.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: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i12.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionsManagementComponent, deps: [{ token: i1.HttpService }, { token: i1.AlertService }, { token: i2.ActivatedRoute }, { token: i1.CredentialsService }, { token: i1.ErrorHandlerService }, { token: i3.UserConfigService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PermissionsManagementComponent, selector: "role-permissions-management", inputs: { clientId: "clientId" }, ngImport: i0, template: "<div class=\"d-flex flex-column justify-content-start gap-3\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"m-0 fw-bold\">\n Manage Role Permissions\n </h3>\n <button *ngIf=\"!config.permissionConfig.disableUsers\" [routerLink]=\"['../users']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"icon fas fa-users\"></i> Users\n </button>\n <button *ngIf=\"!config.permissionConfig.disableRoles\" [routerLink]=\"['../roles']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"fas fa-user-md\"></i> Manage Roles\n </button>\n </div>\n <form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2\">\n <mat-form-field appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input autocomplete=\"off\" formControlName=\"search\" matInput placeholder=\"Search Permissions\" type=\"text\" />\n <button (click)=\"filterForm.get('search').setValue('')\" *ngIf=\"filterForm.get('search').value\" mat-icon-button\n matSuffix type=\"button\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"roles\" appearance=\"outline\" class=\"ml-2\">\n <mat-label>Show Roles</mat-label>\n <mat-select formControlName='role_ids' multiple>\n <mat-option *ngFor=\"let role of roles\" [value]=\"role?.id\">\n {{ role.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card class=\"mt-2\">\n <mat-card-content class=\"p-0\">\n <form>\n <table aria-describedby=\"Role Permissions\" class=\"table table-sm table-bordered table-condensed table-striped\">\n <thead>\n <tr>\n <th>Permissions</th>\n <ng-container *ngFor=\"let role of roles\">\n <th *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center\">\n {{ role.label }}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let permission of filteredPermissions\">\n <td>\n {{ permission.label }}\n </td>\n <ng-container *ngFor=\"let role of roles\">\n <td *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center align-middle\">\n <div class=\"d-flex justify-content-center align-items-center h-100\">\n <input (change)=\"updateRolePermission(role, permission)\"\n [checked]=\"role.hasPermission(permission.slug)\"\n [disabled]=\"isDisabled(role?.client_id == null, role.is_editable)\"\n name=\"{{role.id}}[{{permission?.label}}]\" type=\"checkbox\" />\n </div>\n </td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n </form>\n </mat-card-content>\n </mat-card>\n</div>", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.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: "component", type: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i12.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
117
117
  }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PermissionsManagementComponent, decorators: [{
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionsManagementComponent, decorators: [{
119
119
  type: Component,
120
120
  args: [{ selector: 'role-permissions-management', template: "<div class=\"d-flex flex-column justify-content-start gap-3\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\">\n <h3 class=\"m-0 fw-bold\">\n Manage Role Permissions\n </h3>\n <button *ngIf=\"!config.permissionConfig.disableUsers\" [routerLink]=\"['../users']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"icon fas fa-users\"></i> Users\n </button>\n <button *ngIf=\"!config.permissionConfig.disableRoles\" [routerLink]=\"['../roles']\" class=\"ml-1\"\n mat-raised-button>\n <i class=\"fas fa-user-md\"></i> Manage Roles\n </button>\n </div>\n <form [formGroup]=\"filterForm\" class=\"d-flex justify-content-end align-items-center gap-2\">\n <mat-form-field appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input autocomplete=\"off\" formControlName=\"search\" matInput placeholder=\"Search Permissions\" type=\"text\" />\n <button (click)=\"filterForm.get('search').setValue('')\" *ngIf=\"filterForm.get('search').value\" mat-icon-button\n matSuffix type=\"button\">\n <mat-icon>clear</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-form-field *ngIf=\"roles\" appearance=\"outline\" class=\"ml-2\">\n <mat-label>Show Roles</mat-label>\n <mat-select formControlName='role_ids' multiple>\n <mat-option *ngFor=\"let role of roles\" [value]=\"role?.id\">\n {{ role.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card class=\"mt-2\">\n <mat-card-content class=\"p-0\">\n <form>\n <table aria-describedby=\"Role Permissions\" class=\"table table-sm table-bordered table-condensed table-striped\">\n <thead>\n <tr>\n <th>Permissions</th>\n <ng-container *ngFor=\"let role of roles\">\n <th *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center\">\n {{ role.label }}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let permission of filteredPermissions\">\n <td>\n {{ permission.label }}\n </td>\n <ng-container *ngFor=\"let role of roles\">\n <td *ngIf=\"filterForm.get('role_ids').value.includes(role.id)\" class=\"text-center align-middle\">\n <div class=\"d-flex justify-content-center align-items-center h-100\">\n <input (change)=\"updateRolePermission(role, permission)\"\n [checked]=\"role.hasPermission(permission.slug)\"\n [disabled]=\"isDisabled(role?.client_id == null, role.is_editable)\"\n name=\"{{role.id}}[{{permission?.label}}]\" type=\"checkbox\" />\n </div>\n </td>\n </ng-container>\n </tr>\n </tbody>\n </table>\n </form>\n </mat-card-content>\n </mat-card>\n</div>" }]
121
121
  }], ctorParameters: () => [{ type: i1.HttpService }, { type: i1.AlertService }, { type: i2.ActivatedRoute }, { type: i1.CredentialsService }, { type: i1.ErrorHandlerService }, { type: i3.UserConfigService }, { type: i4.FormBuilder }], propDecorators: { clientId: [{
@@ -22,10 +22,10 @@ export class RoleFormButtonComponent {
22
22
  }
23
23
  });
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleFormButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RoleFormButtonComponent, selector: "app-role-form-button", inputs: { config: "config", clientId: "clientId", isUpdate: "isUpdate", role: "role" }, outputs: { success: "success" }, ngImport: i0, template: "<mat-icon class=\"cursor-pointer text-dark\" (click)=\"openForm()\">\n {{ isUpdate ? 'edit' : 'add' }}\n</mat-icon>\n", dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleFormButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RoleFormButtonComponent, selector: "app-role-form-button", inputs: { config: "config", clientId: "clientId", isUpdate: "isUpdate", role: "role" }, outputs: { success: "success" }, ngImport: i0, template: "<mat-icon class=\"cursor-pointer text-dark\" (click)=\"openForm()\">\n {{ isUpdate ? 'edit' : 'add' }}\n</mat-icon>\n", dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleFormButtonComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleFormButtonComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{ selector: 'app-role-form-button', template: "<mat-icon class=\"cursor-pointer text-dark\" (click)=\"openForm()\">\n {{ isUpdate ? 'edit' : 'add' }}\n</mat-icon>\n" }]
31
31
  }], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { config: [{
@@ -69,10 +69,10 @@ export class RoleFormComponent {
69
69
  getErrorMessage(field) {
70
70
  return this.formValidatorService.getErrorMessage(field, this.roleForm, errorMessages);
71
71
  }
72
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleFormComponent, deps: [{ token: i1.AlertService }, { token: i1.CredentialsService }, { token: i2.UntypedFormBuilder }, { token: i1.FormValidatorService }, { token: i3.UserConfigService }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i5.RoleService }], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RoleFormComponent, selector: "role-form", ngImport: i0, template: "<form [formGroup]=\"roleForm\" (ngSubmit)=\"save()\" class=\"p-3\">\n <div fxLayout=\"column\">\n <div mat-dialog-title class=\"text-center\">\n <div>Role Form</div>\n </div>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"label\" placeholder=\"Role\" type=\"text\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('label')\">{{getErrorMessage('label')}}</mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <textarea matInput placeholder=\"Description\" formControlName=\"description\"></textarea>\n </mat-form-field>\n\n <ng-container *ngIf=\"isAdminUser && roleForm.get('client_id').value\">\n <mat-checkbox formControlName=\"is_editable\"> Is Editable</mat-checkbox>\n </ng-container>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button mat-button class=\"mt-2\" type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" class=\"mt-2\" type=\"submit\">\n Save\n </button>\n </div>\n </div>\n</form>", dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.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: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.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: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleFormComponent, deps: [{ token: i1.AlertService }, { token: i1.CredentialsService }, { token: i2.UntypedFormBuilder }, { token: i1.FormValidatorService }, { token: i3.UserConfigService }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i5.RoleService }], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RoleFormComponent, selector: "role-form", ngImport: i0, template: "<form [formGroup]=\"roleForm\" (ngSubmit)=\"save()\" class=\"p-3\">\n <div fxLayout=\"column\">\n <div mat-dialog-title class=\"text-center\">\n <div>Role Form</div>\n </div>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"label\" placeholder=\"Role\" type=\"text\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('label')\">{{getErrorMessage('label')}}</mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <textarea matInput placeholder=\"Description\" formControlName=\"description\"></textarea>\n </mat-form-field>\n\n <ng-container *ngIf=\"isAdminUser && roleForm.get('client_id').value\">\n <mat-checkbox formControlName=\"is_editable\"> Is Editable</mat-checkbox>\n </ng-container>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button mat-button class=\"mt-2\" type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" class=\"mt-2\" type=\"submit\">\n Save\n </button>\n </div>\n </div>\n</form>", dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.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: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.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: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
74
74
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleFormComponent, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleFormComponent, decorators: [{
76
76
  type: Component,
77
77
  args: [{ selector: 'role-form', template: "<form [formGroup]=\"roleForm\" (ngSubmit)=\"save()\" class=\"p-3\">\n <div fxLayout=\"column\">\n <div mat-dialog-title class=\"text-center\">\n <div>Role Form</div>\n </div>\n <mat-form-field fxFlex=\"100%\">\n <input matInput formControlName=\"label\" placeholder=\"Role\" type=\"text\" autocomplete=\"off\" required />\n <mat-error *ngIf=\"isFieldValid('label')\">{{getErrorMessage('label')}}</mat-error>\n </mat-form-field>\n <mat-form-field fxFlex=\"100%\">\n <textarea matInput placeholder=\"Description\" formControlName=\"description\"></textarea>\n </mat-form-field>\n\n <ng-container *ngIf=\"isAdminUser && roleForm.get('client_id').value\">\n <mat-checkbox formControlName=\"is_editable\"> Is Editable</mat-checkbox>\n </ng-container>\n\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button mat-button class=\"mt-2\" type=\"button\" (click)=\"dialogRef.close()\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" class=\"mt-2\" type=\"submit\">\n Save\n </button>\n </div>\n </div>\n</form>" }]
78
78
  }], ctorParameters: () => [{ type: i1.AlertService }, { type: i1.CredentialsService }, { type: i2.UntypedFormBuilder }, { type: i1.FormValidatorService }, { type: i3.UserConfigService }, { type: i4.MatDialogRef }, { type: undefined, decorators: [{
@@ -12,11 +12,11 @@ const routes = [
12
12
  },
13
13
  ];
14
14
  export class RoleViewRoutingModule {
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoleViewRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
17
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleViewRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: RoleViewRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
17
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleViewRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewRoutingModule, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleViewRoutingModule, decorators: [{
20
20
  type: NgModule,
21
21
  args: [{
22
22
  imports: [RouterModule.forChild(routes)],
@@ -29,10 +29,10 @@ export class RoleViewComponent {
29
29
  this.errorHandler.handleError(error);
30
30
  }
31
31
  }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewComponent, deps: [{ token: i1.HttpService }, { token: i1.ErrorHandlerService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RoleViewComponent, selector: "app-role-view", ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\" class=\"p-4\">\n <h3 fxLayoutAlign=\"center\" class=\"pb-4\">Role View</h3>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Basic Info.</mat-card-title>\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <div>\n <span class=\"font-weight-bold\">Role:</span> {{role?.label}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Description:</span> {{role?.description}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Is App Role:</span> {{(role?.client_id == null) ? 'Yes' : 'No'}}\n </div>\n <div>\n <span class=\"font-weight-bold\"># Users:</span> {{role?.role_users_count}}\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Permissions ({{role?.permissions.length}})</mat-card-title>\n <mat-card-content style=\"height:400px;overflow-y: scroll;\">\n <div fxLayout=\"column wrap\">\n <div *ngFor=\"let permission of role?.permissions;let i=index;\">\n {{i+1}}. {{permission.label}}\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] }); }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleViewComponent, deps: [{ token: i1.HttpService }, { token: i1.ErrorHandlerService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RoleViewComponent, selector: "app-role-view", ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\" class=\"p-4\">\n <h3 fxLayoutAlign=\"center\" class=\"pb-4\">Role View</h3>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Basic Info.</mat-card-title>\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <div>\n <span class=\"font-weight-bold\">Role:</span> {{role?.label}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Description:</span> {{role?.description}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Is App Role:</span> {{(role?.client_id == null) ? 'Yes' : 'No'}}\n </div>\n <div>\n <span class=\"font-weight-bold\"># Users:</span> {{role?.role_users_count}}\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Permissions ({{role?.permissions.length}})</mat-card-title>\n <mat-card-content style=\"height:400px;overflow-y: scroll;\">\n <div fxLayout=\"column wrap\">\n <div *ngFor=\"let permission of role?.permissions;let i=index;\">\n {{i+1}}. {{permission.label}}\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] }); }
34
34
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewComponent, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleViewComponent, decorators: [{
36
36
  type: Component,
37
37
  args: [{ selector: 'app-role-view', template: "<div fxLayout=\"column\" fxLayoutGap=\"1rem\" class=\"p-4\">\n <h3 fxLayoutAlign=\"center\" class=\"pb-4\">Role View</h3>\n <div fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Basic Info.</mat-card-title>\n <mat-card-content fxLayout=\"column wrap\" fxLayoutGap=\"1rem\">\n <div>\n <span class=\"font-weight-bold\">Role:</span> {{role?.label}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Description:</span> {{role?.description}}\n </div>\n <div>\n <span class=\"font-weight-bold\">Is App Role:</span> {{(role?.client_id == null) ? 'Yes' : 'No'}}\n </div>\n <div>\n <span class=\"font-weight-bold\"># Users:</span> {{role?.role_users_count}}\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n <div fxFlex.lt-md=\"100%\" fxFlex=\"0 1 calc(50%-1rem)\">\n <mat-card fxFlex=\"100%\">\n <mat-card-title>Permissions ({{role?.permissions.length}})</mat-card-title>\n <mat-card-content style=\"height:400px;overflow-y: scroll;\">\n <div fxLayout=\"column wrap\">\n <div *ngFor=\"let permission of role?.permissions;let i=index;\">\n {{i+1}}. {{permission.label}}\n </div>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </div>\n</div>" }]
38
38
  }], ctorParameters: () => [{ type: i1.HttpService }, { type: i1.ErrorHandlerService }, { type: i2.ActivatedRoute }] });
@@ -8,15 +8,15 @@ import { MaterialModule } from '../../material.module';
8
8
  import { RoleViewComponent } from './role-view.component';
9
9
  import * as i0 from "@angular/core";
10
10
  export class RoleViewModule {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoleViewModule, declarations: [RoleViewComponent], imports: [CommonModule,
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: RoleViewModule, declarations: [RoleViewComponent], imports: [CommonModule,
13
13
  RoleViewRoutingModule,
14
14
  MaterialModule,
15
15
  FlexLayoutModule,
16
16
  FormsModule,
17
17
  ReactiveFormsModule,
18
18
  InfiniteScrollModule], exports: [RoleViewComponent] }); }
19
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewModule, imports: [CommonModule,
19
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleViewModule, imports: [CommonModule,
20
20
  RoleViewRoutingModule,
21
21
  MaterialModule,
22
22
  FlexLayoutModule,
@@ -24,7 +24,7 @@ export class RoleViewModule {
24
24
  ReactiveFormsModule,
25
25
  InfiniteScrollModule] }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleViewModule, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleViewModule, decorators: [{
28
28
  type: NgModule,
29
29
  args: [{
30
30
  imports: [
@@ -13,8 +13,8 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
13
13
  import { RoleFormButtonComponent } from './role-form-button.component';
14
14
  import * as i0 from "@angular/core";
15
15
  export class RoleModule {
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoleModule, declarations: [RoleFormComponent,
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: RoleModule, declarations: [RoleFormComponent,
18
18
  RolesViewAllComponent,
19
19
  RoleFormButtonComponent], imports: [CommonModule,
20
20
  RoleRoutingProvider,
@@ -26,7 +26,7 @@ export class RoleModule {
26
26
  MatProgressBarModule], exports: [RolesViewAllComponent,
27
27
  RoleFormButtonComponent,
28
28
  RoleFormComponent] }); }
29
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleModule, imports: [CommonModule,
29
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleModule, imports: [CommonModule,
30
30
  RoleRoutingProvider,
31
31
  MaterialModule,
32
32
  FlexLayoutModule,
@@ -35,7 +35,7 @@ export class RoleModule {
35
35
  InfiniteScrollModule,
36
36
  MatProgressBarModule] }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleModule, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RoleModule, decorators: [{
39
39
  type: NgModule,
40
40
  args: [{
41
41
  imports: [