ngx-techlify-core 16.3.1 → 18.0.0-alpha.2

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 (268) hide show
  1. package/esm2022/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +5 -13
  2. package/esm2022/lib/access-control-config/access-control-config-routing.module.mjs +5 -5
  3. package/esm2022/lib/access-control-config/access-control-config.component.mjs +20 -26
  4. package/esm2022/lib/access-control-config/access-control-config.model.mjs +1 -14
  5. package/esm2022/lib/access-control-config/access-control-config.module.mjs +7 -7
  6. package/esm2022/lib/access-control-config/access-control-config.service.mjs +5 -6
  7. package/esm2022/lib/action-popup/action-popup.component.mjs +6 -8
  8. package/esm2022/lib/action-popup/action-popup.model.mjs +1 -4
  9. package/esm2022/lib/action-popup/action-popup.module.mjs +7 -7
  10. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.mjs +5 -5
  11. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.component.mjs +6 -9
  12. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +7 -7
  13. package/esm2022/lib/audit-log/audit-log-list/audit-log-list-routing.module.mjs +5 -5
  14. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +20 -30
  15. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.module.mjs +7 -7
  16. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.mjs +5 -5
  17. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +6 -10
  18. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +7 -7
  19. package/esm2022/lib/audit-log/audit-log-routing.module.mjs +5 -5
  20. package/esm2022/lib/audit-log/audit-log-view/audit-log-view-routing.module.mjs +5 -5
  21. package/esm2022/lib/audit-log/audit-log-view/audit-log-view.component.mjs +7 -11
  22. package/esm2022/lib/audit-log/audit-log-view/audit-log-view.module.mjs +7 -7
  23. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.mjs +5 -5
  24. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +8 -12
  25. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +7 -7
  26. package/esm2022/lib/audit-log/audit-log.module.mjs +7 -7
  27. package/esm2022/lib/audit-log/audit-log.service.mjs +5 -5
  28. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.mjs +5 -5
  29. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +6 -9
  30. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +7 -7
  31. package/esm2022/lib/base-model/techlify-form-component.class.mjs +1 -4
  32. package/esm2022/lib/base-model/techlify-listing-component.class.mjs +10 -9
  33. package/esm2022/lib/base-model/techlify-service.class.mjs +2 -3
  34. package/esm2022/lib/change-password/change-password-routing.module.mjs +5 -5
  35. package/esm2022/lib/change-password/change-password.component.mjs +8 -17
  36. package/esm2022/lib/change-password/change-password.module.mjs +7 -7
  37. package/esm2022/lib/column-selector/column-selector/column-selector.component.mjs +16 -15
  38. package/esm2022/lib/column-selector/column-selector.module.mjs +7 -7
  39. package/esm2022/lib/core/alert.service.mjs +5 -6
  40. package/esm2022/lib/core/api-prefix.interceptor.mjs +5 -6
  41. package/esm2022/lib/core/authentication.guard.mjs +5 -7
  42. package/esm2022/lib/core/authentication.service.mjs +5 -8
  43. package/esm2022/lib/core/cache.interceptor.mjs +6 -7
  44. package/esm2022/lib/core/config.service.mjs +6 -7
  45. package/esm2022/lib/core/core.module.mjs +19 -26
  46. package/esm2022/lib/core/credentials.service.mjs +6 -7
  47. package/esm2022/lib/core/dataManager.service.mjs +5 -6
  48. package/esm2022/lib/core/error-handler.interceptor.mjs +5 -8
  49. package/esm2022/lib/core/error-handler.service.mjs +5 -7
  50. package/esm2022/lib/core/filter.service.mjs +5 -7
  51. package/esm2022/lib/core/form-validator.service.mjs +5 -5
  52. package/esm2022/lib/core/header.interceptor.mjs +4 -4
  53. package/esm2022/lib/core/http-cache.service.mjs +6 -9
  54. package/esm2022/lib/core/http.service.mjs +6 -11
  55. package/esm2022/lib/core/logger.service.mjs +3 -4
  56. package/esm2022/lib/core/route-reusable-strategy.mjs +4 -4
  57. package/esm2022/lib/core/snack/snack.component.mjs +11 -13
  58. package/esm2022/lib/core/snack/snack.module.mjs +7 -7
  59. package/esm2022/lib/core/storage.service.mjs +6 -6
  60. package/esm2022/lib/core/techlify-config.model.mjs +7 -9
  61. package/esm2022/lib/core/token.interceptor.mjs +5 -6
  62. package/esm2022/lib/data-table/data-table.component.mjs +16 -22
  63. package/esm2022/lib/data-table/data-table.model.mjs +1 -36
  64. package/esm2022/lib/data-table/data-table.module.mjs +7 -7
  65. package/esm2022/lib/date-validator.mjs +1 -1
  66. package/esm2022/lib/document-viewer/document-viewer.component.mjs +8 -12
  67. package/esm2022/lib/document-viewer/document-viewer.module.mjs +7 -7
  68. package/esm2022/lib/document-viewer/viewer-config.model.mjs +1 -4
  69. package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.mjs +5 -5
  70. package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.mjs +12 -13
  71. package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.mjs +7 -7
  72. package/esm2022/lib/email-subscription/email-subscription-routing.module.mjs +5 -5
  73. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.mjs +5 -5
  74. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +6 -19
  75. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.mjs +7 -7
  76. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.mjs +5 -5
  77. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +23 -26
  78. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.mjs +7 -7
  79. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.mjs +5 -5
  80. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type.module.mjs +7 -7
  81. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.mjs +5 -5
  82. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +6 -19
  83. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.mjs +7 -7
  84. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.mjs +5 -5
  85. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +19 -23
  86. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.mjs +7 -7
  87. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.mjs +5 -5
  88. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +6 -8
  89. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.mjs +7 -7
  90. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.mjs +5 -5
  91. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user.module.mjs +7 -7
  92. package/esm2022/lib/email-subscription/email-subscription.module.mjs +7 -7
  93. package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +13 -26
  94. package/esm2022/lib/entity-files/entity-file.service.mjs +5 -6
  95. package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +36 -54
  96. package/esm2022/lib/entity-files/entity-files-view-all.module.mjs +7 -7
  97. package/esm2022/lib/export-excel/export-excel-button/export-excel-button.component.mjs +9 -8
  98. package/esm2022/lib/export-excel/export-excel.module.mjs +7 -7
  99. package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.mjs +14 -16
  100. package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.mjs +7 -7
  101. package/esm2022/lib/file-dropper/file-dropper.component.mjs +8 -12
  102. package/esm2022/lib/file-dropper/file-dropper.model.mjs +1 -9
  103. package/esm2022/lib/file-dropper/file-dropper.module.mjs +7 -7
  104. package/esm2022/lib/forgot-password/forgot-password-routing.module.mjs +5 -5
  105. package/esm2022/lib/forgot-password/forgot-password.component.mjs +6 -18
  106. package/esm2022/lib/forgot-password/forgot-password.module.mjs +7 -7
  107. package/esm2022/lib/import-csv/data-import/data-import.component.mjs +5 -6
  108. package/esm2022/lib/import-csv/failed-items-list/failed-items-list.component.mjs +6 -9
  109. package/esm2022/lib/import-csv/field-mapping/field-mapping.component.mjs +9 -16
  110. package/esm2022/lib/import-csv/import-csv.component.mjs +57 -65
  111. package/esm2022/lib/import-csv/import-csv.module.mjs +7 -7
  112. package/esm2022/lib/import-csv/import-history-list/import-history-list.component.mjs +14 -18
  113. package/esm2022/lib/import-csv/import-success/import-success.component.mjs +5 -7
  114. package/esm2022/lib/ip-address-selector/ip-address-selector.module.mjs +7 -7
  115. package/esm2022/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +48 -47
  116. package/esm2022/lib/loader/loader.component.mjs +9 -9
  117. package/esm2022/lib/loader/loader.module.mjs +7 -7
  118. package/esm2022/lib/login/login-routing.module.mjs +5 -5
  119. package/esm2022/lib/login/login.component.mjs +6 -24
  120. package/esm2022/lib/login/login.module.mjs +7 -7
  121. package/esm2022/lib/login-history-for-user/login-history-for-user-routing.module.mjs +5 -5
  122. package/esm2022/lib/login-history-for-user/login-history-for-user.component.mjs +11 -15
  123. package/esm2022/lib/login-history-for-user/login-history-for-user.module.mjs +7 -7
  124. package/esm2022/lib/material.module.mjs +7 -7
  125. package/esm2022/lib/ngx-techlify-users/ngx-techlify-users-routing.module.mjs +5 -5
  126. package/esm2022/lib/ngx-techlify-users/ngx-techlify-users.module.mjs +7 -7
  127. package/esm2022/lib/note/comment-form/comment-form.component.mjs +6 -11
  128. package/esm2022/lib/note/note-form/note-form.component.mjs +6 -15
  129. package/esm2022/lib/note/note-list/note-list.component.mjs +13 -18
  130. package/esm2022/lib/note/note.module.mjs +7 -7
  131. package/esm2022/lib/note/note.service.mjs +5 -6
  132. package/esm2022/lib/number-input-button/number-input-button/number-input-button.component.mjs +24 -24
  133. package/esm2022/lib/number-input-button/number-input-button.module.mjs +7 -7
  134. package/esm2022/lib/password-requirement-check/password-check.service.mjs +5 -5
  135. package/esm2022/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.mjs +7 -10
  136. package/esm2022/lib/password-requirement-check/password-requirement-check.module.mjs +5 -5
  137. package/esm2022/lib/profile/profile-edit.component.mjs +6 -15
  138. package/esm2022/lib/profile/profile-routing.module.mjs +5 -5
  139. package/esm2022/lib/profile/profile.module.mjs +7 -7
  140. package/esm2022/lib/read-more/read-more.component.mjs +10 -11
  141. package/esm2022/lib/read-more/read-more.module.mjs +7 -7
  142. package/esm2022/lib/request-helper/request-helper.service.mjs +5 -7
  143. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +15 -17
  144. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.mjs +7 -7
  145. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level.service.mjs +5 -6
  146. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +15 -17
  147. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.mjs +7 -7
  148. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status.service.mjs +5 -6
  149. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +15 -17
  150. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.mjs +7 -7
  151. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type.service.mjs +5 -6
  152. package/esm2022/lib/restrictors/restrictor.service.mjs +5 -6
  153. package/esm2022/lib/restrictors/restrictors-form/restrictors-form.component.mjs +5 -14
  154. package/esm2022/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +5 -10
  155. package/esm2022/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +17 -26
  156. package/esm2022/lib/restrictors/restrictors-routing.module.mjs +5 -5
  157. package/esm2022/lib/restrictors/restrictors.module.mjs +7 -7
  158. package/esm2022/lib/role/permission/permission.model.mjs +1 -4
  159. package/esm2022/lib/role/permission/permission.module.mjs +7 -7
  160. package/esm2022/lib/role/permission/permission.routes.mjs +5 -5
  161. package/esm2022/lib/role/permission/permissions-management.component.mjs +5 -18
  162. package/esm2022/lib/role/role-form.component.mjs +10 -20
  163. package/esm2022/lib/role/role-view/role-view.component.mjs +5 -10
  164. package/esm2022/lib/role/role.model.mjs +2 -12
  165. package/esm2022/lib/role/role.module.mjs +7 -7
  166. package/esm2022/lib/role/role.routes.mjs +5 -5
  167. package/esm2022/lib/role/role.service.mjs +5 -6
  168. package/esm2022/lib/role/roles-view-all.component.mjs +18 -27
  169. package/esm2022/lib/searchable-selector/searchable-selector.component.mjs +40 -55
  170. package/esm2022/lib/searchable-selector/searchable-selector.module.mjs +7 -7
  171. package/esm2022/lib/signup/signup-routing.module.mjs +5 -5
  172. package/esm2022/lib/signup/signup.component.mjs +6 -15
  173. package/esm2022/lib/signup/signup.module.mjs +7 -7
  174. package/esm2022/lib/techlify-company-switcher/techlify-company-switcher/techlify-company-switcher.component.mjs +6 -11
  175. package/esm2022/lib/techlify-company-switcher/techlify-company-switcher.module.mjs +7 -7
  176. package/esm2022/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +5 -8
  177. package/esm2022/lib/techlify-feature/techlify-feature-enabled.directive.mjs +6 -12
  178. package/esm2022/lib/techlify-feature/techlify-feature-listing.component.mjs +15 -25
  179. package/esm2022/lib/techlify-feature/techlify-feature.module.mjs +7 -7
  180. package/esm2022/lib/techlify-feature/techlify-feature.service.mjs +5 -6
  181. package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier-routing.module.mjs +5 -5
  182. package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.mjs +13 -19
  183. package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.module.mjs +7 -7
  184. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user-routing.module.mjs +5 -5
  185. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +13 -17
  186. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.mjs +7 -7
  187. package/esm2022/lib/techlify-notifications/techlify-notification-routing.module.mjs +5 -5
  188. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard-routing.module.mjs +5 -5
  189. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.component.mjs +20 -27
  190. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.module.mjs +7 -7
  191. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form-routing.module.mjs +5 -5
  192. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.component.mjs +8 -22
  193. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.module.mjs +7 -7
  194. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list-routing.module.mjs +5 -5
  195. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.component.mjs +22 -28
  196. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.module.mjs +7 -7
  197. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter-routing.module.mjs +5 -5
  198. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component.mjs +10 -13
  199. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.module.mjs +7 -7
  200. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-routing.module.mjs +5 -5
  201. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber.module.mjs +7 -7
  202. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscription-entity.model.mjs +4 -4
  203. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form-routing.module.mjs +5 -5
  204. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.component.mjs +6 -18
  205. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.module.mjs +7 -7
  206. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list-routing.module.mjs +5 -5
  207. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.component.mjs +24 -29
  208. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.module.mjs +7 -7
  209. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-routing.module.mjs +5 -5
  210. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type.module.mjs +7 -7
  211. package/esm2022/lib/techlify-notifications/techlify-notification-user-status.model.mjs +3 -3
  212. package/esm2022/lib/techlify-notifications/techlify-notification.module.mjs +7 -7
  213. package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.mjs +1 -10
  214. package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +21 -34
  215. package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +7 -7
  216. package/esm2022/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +25 -33
  217. package/esm2022/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +7 -7
  218. package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +12 -20
  219. package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.module.mjs +7 -7
  220. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.mjs +5 -5
  221. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +20 -26
  222. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs +7 -7
  223. package/esm2022/lib/techlify-update/techlify-update-routing.module.mjs +5 -5
  224. package/esm2022/lib/techlify-update/techlify-update.module.mjs +7 -7
  225. package/esm2022/lib/techlify-update/techlify-update.service.mjs +5 -6
  226. package/esm2022/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +20 -26
  227. package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.mjs +8 -11
  228. package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.mjs +7 -7
  229. package/esm2022/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +8 -16
  230. package/esm2022/lib/techlify-update/update-notifier/update-notifier.component.mjs +6 -10
  231. package/esm2022/lib/techlify-update/update-notifier/update-notifier.module.mjs +7 -7
  232. package/esm2022/lib/techlify-update/update-view/update-view.component.mjs +6 -11
  233. package/esm2022/lib/techlify-update/update-view/update-view.module.mjs +7 -7
  234. package/esm2022/lib/timeline-filter/calculate-timeline.mjs +1 -1
  235. package/esm2022/lib/timeline-filter/timeline-filter-routing.module.mjs +5 -5
  236. package/esm2022/lib/timeline-filter/timeline-filter.component.mjs +46 -55
  237. package/esm2022/lib/timeline-filter/timeline-filter.module.mjs +7 -7
  238. package/esm2022/lib/timeline-filter/timeline.model.mjs +16 -16
  239. package/esm2022/lib/user/current-user.service.mjs +9 -13
  240. package/esm2022/lib/user/user-enable-button-component/user-enable-button.component.mjs +6 -12
  241. package/esm2022/lib/user/user-explore.component.mjs +8 -13
  242. package/esm2022/lib/user/user-form.component.mjs +17 -32
  243. package/esm2022/lib/user/user-sessions/user-session.service.mjs +5 -5
  244. package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.component.mjs +10 -12
  245. package/esm2022/lib/user/user-view.component.mjs +6 -14
  246. package/esm2022/lib/user/user.model.mjs +1 -21
  247. package/esm2022/lib/user/user.module.mjs +7 -7
  248. package/esm2022/lib/user/user.routes.mjs +5 -5
  249. package/esm2022/lib/user/user.service.mjs +5 -6
  250. package/esm2022/lib/user/users-view-all.component.mjs +21 -35
  251. package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.component.mjs +7 -13
  252. package/esm2022/lib/user-clients-list/user-client.service.mjs +5 -5
  253. package/esm2022/lib/user-clients-list/user-clients-list.component.mjs +12 -14
  254. package/esm2022/lib/user-config/user-config.model.mjs +1 -32
  255. package/esm2022/lib/user-config/user-config.service.mjs +27 -30
  256. package/esm2022/lib/user-selector/user-data.service.mjs +5 -7
  257. package/esm2022/lib/user-selector/user-selector.component.mjs +8 -17
  258. package/esm2022/lib/user-selector/user-selector.module.mjs +7 -7
  259. package/esm2022/lib/utility/date-utils.service.mjs +4 -4
  260. package/esm2022/lib/utility/num-items-selector.component.mjs +5 -7
  261. package/esm2022/lib/utility/number-selector.component.mjs +6 -10
  262. package/esm2022/lib/utility/utility.module.mjs +7 -7
  263. package/fesm2022/ngx-techlify-core.mjs +1879 -2616
  264. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  265. package/lib/core/authentication.guard.d.ts +2 -2
  266. package/lib/core/core.module.d.ts +3 -4
  267. package/lib/searchable-selector/searchable-selector.component.d.ts +2 -1
  268. package/package.json +17 -17
@@ -21,14 +21,6 @@ const errorMessages = {
21
21
  },
22
22
  };
23
23
  export class AccessControlConfigFormComponent {
24
- fb;
25
- formValidatorService;
26
- alertService;
27
- accessControlConfigService;
28
- location;
29
- configForm;
30
- isWorking;
31
- isSaving;
32
24
  constructor(fb, formValidatorService, alertService, accessControlConfigService, location) {
33
25
  this.fb = fb;
34
26
  this.formValidatorService = formValidatorService;
@@ -125,11 +117,11 @@ export class AccessControlConfigFormComponent {
125
117
  redirectBack() {
126
118
  this.location.back();
127
119
  }
128
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigFormComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.FormValidatorService }, { token: i2.AlertService }, { token: i3.AccessControlConfigService }, { token: i4.Location }], target: i0.ɵɵFactoryTarget.Component });
129
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccessControlConfigFormComponent, selector: "app-access-control-config-form", ngImport: i0, template: "<mat-card fxLayout=\"row\" fxLayoutAlign=\"center\" fxFlexOffset=\"25%\" fxFlex=\"50%\">\n <mat-card-content>\n <form [formGroup]=\"configForm\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div class=\"text-center\">\n <h2>\n Access Control Configuration\n </h2>\n </div>\n <div class=\"alert alert-warning\" role=\"alert\">\n Be careful with these configurations as they affect all users in your entire app.\n </div>\n <div *ngIf=\"!isWorking\" fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Max Failed Login Attempts\n </mat-label>\n <input matInput formControlName=\"max_failed_consecutive_login_attempts\"\n placeholder=\"Max Failed Login Attempts\"\n autocomplete=\"off\"\n type=\"number\"\n min=\"0\"\n required />\n <mat-hint>After how many failed login attempts should this user\u2019s account be locked?</mat-hint>\n <mat-error *ngIf=\"isFieldValid('max_failed_consecutive_login_attempts')\">\n {{getErrorMessage('max_failed_consecutive_login_attempts')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Block x most recent passwords\n </mat-label>\n <input matInput\n formControlName=\"max_old_passwords_block\"\n placeholder=\"Block x most recent passwords\"\n type=\"number\"\n min=\"0\"\n autocomplete=\"off\"\n required />\n <mat-hint>\n How many recent passwords should the system block the user from reusing?\n Example: The user cannot reuse any of his/her last 3 passwords.\n </mat-hint>\n <mat-error *ngIf=\"isFieldValid('max_old_passwords_block')\">\n {{getErrorMessage('max_old_passwords_block')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Minimum Password Length\n </mat-label>\n <input matInput\n formControlName=\"min_password_length\"\n placeholder=\"Minimum Password Length\"\n type=\"number\"\n min=\"1\"\n autocomplete=\"off\" />\n <mat-hint>\n What is the minimum length of a user\u2019s password?\n </mat-hint>\n <mat-error *ngIf=\"isFieldValid('min_password_length')\">\n {{getErrorMessage('min_password_length')}}\n </mat-error>\n </mat-form-field>\n\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Track Old Passwords?</p>\n <div>\n <mat-button-toggle-group formControlName=\"is_track_old_passwords\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should our software track old passwords to ensure users do not reuse old passwords?\n </mat-hint>\n </div>\n </div>\n </div>\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Number </p>\n <div>\n <mat-button-toggle-group formControlName=\"is_password_require_number\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a number in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Symbol </p>\n <div>\n <mat-button-toggle-group formControlName=\"is_password_require_symbol\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a symbol in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Capital Letter </p>\n <div>\n <mat-button-toggle-group formControlName=\"is_password_require_capital_letter\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a capital letter in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n </div>\n <div class=\"mt-3 mb-3\">\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </div>\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button [disabled]=\"isSaving\" mat-flat-button type=\"button\" (click)=\"redirectBack()\">\n Cancel\n </button>\n <button [disabled]=\"isSaving\"\n mat-raised-button type=\"submit\" color=\"primary\">\n {{ isSaving ? 'Saving...' : 'Save' }}\n </button>\n </div>\n </div>\n </form>\n </mat-card-content>\n</mat-card>\n", styles: [".custom-hint{font-size:10.5px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { 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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { 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: "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.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: 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"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], 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.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i8.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: i9.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i9.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i10.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i10.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigFormComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.FormValidatorService }, { token: i2.AlertService }, { token: i3.AccessControlConfigService }, { token: i4.Location }], target: i0.ɵɵFactoryTarget.Component }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AccessControlConfigFormComponent, selector: "app-access-control-config-form", ngImport: i0, template: "<mat-card fxLayout=\"row\" fxLayoutAlign=\"center\" fxFlexOffset=\"25%\" fxFlex=\"50%\">\n <mat-card-content>\n <form [formGroup]=\"configForm\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div class=\"text-center\">\n <h2>\n Access Control Configuration\n </h2>\n </div>\n <div class=\"alert alert-warning\" role=\"alert\">\n Be careful with these configurations as they affect all users in your entire app.\n </div>\n <div *ngIf=\"!isWorking\" fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Max Failed Login Attempts\n </mat-label>\n <input matInput formControlName=\"max_failed_consecutive_login_attempts\"\n placeholder=\"Max Failed Login Attempts\"\n autocomplete=\"off\"\n type=\"number\"\n min=\"0\"\n required />\n <mat-hint>After how many failed login attempts should this user\u2019s account be locked?</mat-hint>\n <mat-error *ngIf=\"isFieldValid('max_failed_consecutive_login_attempts')\">\n {{getErrorMessage('max_failed_consecutive_login_attempts')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Block x most recent passwords\n </mat-label>\n <input matInput\n formControlName=\"max_old_passwords_block\"\n placeholder=\"Block x most recent passwords\"\n type=\"number\"\n min=\"0\"\n autocomplete=\"off\"\n required />\n <mat-hint>\n How many recent passwords should the system block the user from reusing?\n Example: The user cannot reuse any of his/her last 3 passwords.\n </mat-hint>\n <mat-error *ngIf=\"isFieldValid('max_old_passwords_block')\">\n {{getErrorMessage('max_old_passwords_block')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Minimum Password Length\n </mat-label>\n <input matInput\n formControlName=\"min_password_length\"\n placeholder=\"Minimum Password Length\"\n type=\"number\"\n min=\"1\"\n autocomplete=\"off\" />\n <mat-hint>\n What is the minimum length of a user\u2019s password?\n </mat-hint>\n <mat-error *ngIf=\"isFieldValid('min_password_length')\">\n {{getErrorMessage('min_password_length')}}\n </mat-error>\n </mat-form-field>\n\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Track Old Passwords?</p>\n <div>\n <mat-button-toggle-group formControlName=\"is_track_old_passwords\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should our software track old passwords to ensure users do not reuse old passwords?\n </mat-hint>\n </div>\n </div>\n </div>\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Number </p>\n <div>\n <mat-button-toggle-group formControlName=\"is_password_require_number\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a number in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Symbol </p>\n <div>\n <mat-button-toggle-group formControlName=\"is_password_require_symbol\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a symbol in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Capital Letter </p>\n <div>\n <mat-button-toggle-group formControlName=\"is_password_require_capital_letter\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a capital letter in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n </div>\n <div class=\"mt-3 mb-3\">\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </div>\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button [disabled]=\"isSaving\" mat-flat-button type=\"button\" (click)=\"redirectBack()\">\n Cancel\n </button>\n <button [disabled]=\"isSaving\"\n mat-raised-button type=\"submit\" color=\"primary\">\n {{ isSaving ? 'Saving...' : 'Save' }}\n </button>\n </div>\n </div>\n </form>\n </mat-card-content>\n</mat-card>\n", styles: [".custom-hint{font-size:10.5px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { 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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { 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: "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.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: 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"] }, { 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: 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.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i8.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: i9.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i9.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i10.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i10.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] }); }
130
122
  }
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigFormComponent, decorators: [{
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigFormComponent, decorators: [{
132
124
  type: Component,
133
125
  args: [{ selector: 'app-access-control-config-form', template: "<mat-card fxLayout=\"row\" fxLayoutAlign=\"center\" fxFlexOffset=\"25%\" fxFlex=\"50%\">\n <mat-card-content>\n <form [formGroup]=\"configForm\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div class=\"text-center\">\n <h2>\n Access Control Configuration\n </h2>\n </div>\n <div class=\"alert alert-warning\" role=\"alert\">\n Be careful with these configurations as they affect all users in your entire app.\n </div>\n <div *ngIf=\"!isWorking\" fxLayout=\"row wrap\" fxLayoutGap=\"1rem grid\">\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Max Failed Login Attempts\n </mat-label>\n <input matInput formControlName=\"max_failed_consecutive_login_attempts\"\n placeholder=\"Max Failed Login Attempts\"\n autocomplete=\"off\"\n type=\"number\"\n min=\"0\"\n required />\n <mat-hint>After how many failed login attempts should this user\u2019s account be locked?</mat-hint>\n <mat-error *ngIf=\"isFieldValid('max_failed_consecutive_login_attempts')\">\n {{getErrorMessage('max_failed_consecutive_login_attempts')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Block x most recent passwords\n </mat-label>\n <input matInput\n formControlName=\"max_old_passwords_block\"\n placeholder=\"Block x most recent passwords\"\n type=\"number\"\n min=\"0\"\n autocomplete=\"off\"\n required />\n <mat-hint>\n How many recent passwords should the system block the user from reusing?\n Example: The user cannot reuse any of his/her last 3 passwords.\n </mat-hint>\n <mat-error *ngIf=\"isFieldValid('max_old_passwords_block')\">\n {{getErrorMessage('max_old_passwords_block')}}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field fxFlex=\"100%\">\n <mat-label>\n Minimum Password Length\n </mat-label>\n <input matInput\n formControlName=\"min_password_length\"\n placeholder=\"Minimum Password Length\"\n type=\"number\"\n min=\"1\"\n autocomplete=\"off\" />\n <mat-hint>\n What is the minimum length of a user\u2019s password?\n </mat-hint>\n <mat-error *ngIf=\"isFieldValid('min_password_length')\">\n {{getErrorMessage('min_password_length')}}\n </mat-error>\n </mat-form-field>\n\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Track Old Passwords?</p>\n <div>\n <mat-button-toggle-group formControlName=\"is_track_old_passwords\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should our software track old passwords to ensure users do not reuse old passwords?\n </mat-hint>\n </div>\n </div>\n </div>\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Number </p>\n <div>\n <mat-button-toggle-group formControlName=\"is_password_require_number\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a number in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Symbol </p>\n <div>\n <mat-button-toggle-group formControlName=\"is_password_require_symbol\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a symbol in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n <div fxFlex=\"0 1 calc(50%-1rem)\">\n <div fxLayout=\"column\">\n <p class=\"text-secondary mb-0\"> Password Require Capital Letter </p>\n <div>\n <mat-button-toggle-group formControlName=\"is_password_require_capital_letter\" class=\"status\" name=\"status\">\n <mat-button-toggle [value]=\"true\">\n Yes\n </mat-button-toggle>\n <mat-button-toggle [value]=\"false\">\n No\n </mat-button-toggle>\n </mat-button-toggle-group>\n <br>\n <mat-hint class=\"custom-hint\">\n Should the system force a user to have a capital letter in his/her password?\n </mat-hint>\n </div>\n </div>\n </div>\n </div>\n <div class=\"mt-3 mb-3\">\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </div>\n <div fxFlex=\"100%\" fxLayout fxLayoutAlign=\"end\" fxLayoutGap=\"1rem\">\n <button [disabled]=\"isSaving\" mat-flat-button type=\"button\" (click)=\"redirectBack()\">\n Cancel\n </button>\n <button [disabled]=\"isSaving\"\n mat-raised-button type=\"submit\" color=\"primary\">\n {{ isSaving ? 'Saving...' : 'Save' }}\n </button>\n </div>\n </div>\n </form>\n </mat-card-content>\n</mat-card>\n", styles: [".custom-hint{font-size:10.5px}\n"] }]
134
- }], ctorParameters: function () { return [{ type: i1.UntypedFormBuilder }, { type: i2.FormValidatorService }, { type: i2.AlertService }, { type: i3.AccessControlConfigService }, { type: i4.Location }]; } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hY2Nlc3MtY29udHJvbC1jb25maWcvYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0vYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hY2Nlc3MtY29udHJvbC1jb25maWcvYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0vYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFNbEQsTUFBTSxhQUFhLEdBQVE7SUFDekIscUNBQXFDLEVBQUU7UUFDckMsUUFBUSxFQUFFLDhEQUE4RDtLQUN6RTtJQUNELHVCQUF1QixFQUFFO1FBQ3ZCLFFBQVEsRUFBRSxnREFBZ0Q7S0FDM0Q7Q0FDRixDQUFDO0FBT0YsTUFBTSxPQUFPLGdDQUFnQztJQU9qQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBVFYsVUFBVSxDQUFtQjtJQUM3QixTQUFTLENBQVU7SUFDbkIsUUFBUSxDQUFVO0lBRWxCLFlBQ1UsRUFBc0IsRUFDdEIsb0JBQTBDLEVBQzFDLFlBQTBCLEVBQzFCLDBCQUFzRCxFQUN0RCxRQUFrQjtRQUpsQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FB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Q0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDaEQsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFRLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixNQUFNLElBQUksR0FBUSxRQUFRLEVBQUUsSUFBSSxDQUFDO2dCQUNqQyxtQkFBbUI7Z0JBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO29CQUNwQixJQUFJLENBQUMscUNBQXFDLEdBQUcsQ0FBQyxDQUFDO29CQUMvQyxJQUFJLENBQUMsdUJBQXVCLEdBQUksQ0FBQyxDQUFDO29CQUNsQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO2lCQUM5QjtnQkFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSztTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO3dHQXBIVSxnQ0FBZ0M7NEZBQWhDLGdDQUFnQyxzRUN2QjdDLG0wTkFpS0E7OzRGRDFJYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6Y29tcG9uZW50LXNlbGVjdG9yICovXG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL2FjY2Vzcy1jb250cm9sLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBGb3JtVmFsaWRhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHtMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IGVycm9yTWVzc2FnZXM6IGFueSA9IHtcbiAgbWF4X2ZhaWxlZF9jb25zZWN1dGl2ZV9sb2dpbl9hdHRlbXB0czoge1xuICAgIHJlcXVpcmVkOiAnVGhlIG1heCBmYWlsZWQgY29uc2VjdXRpdmUgbG9naW4gYXR0ZW1wdHMgZmllbGQgaXMgcmVxdWlyZWQuJyxcbiAgfSxcbiAgbWF4X29sZF9wYXNzd29yZHNfYmxvY2s6IHtcbiAgICByZXF1aXJlZDogJ1RoZSBtYXggb2xkIHBhc3N3b3JkcyBibG9jayBmaWVsZCBpcyByZXF1aXJlZC4nLFxuICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFjY2Vzcy1jb250cm9sLWNvbmZpZy1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY2Vzcy1jb250cm9sLWNvbmZpZy1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBY2Nlc3NDb250cm9sQ29uZmlnRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uZmlnRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgaXNXb3JraW5nOiBib29sZWFuO1xuICBpc1NhdmluZzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBmb3JtVmFsaWRhdG9yU2VydmljZTogRm9ybVZhbGlkYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGFjY2Vzc0NvbnRyb2xDb25maWdTZXJ2aWNlOiBBY2Nlc3NDb250cm9sQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvblxuICApIHtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIGZvcm0gaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWdGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBpZDogWycnXSxcbiAgICAgIGNsaWVudF9pZDogWycnXSxcbiAgICAgIG1heF9mYWlsZWRfY29uc2VjdXRpdmVfbG9naW5fYXR0ZW1wdHM6IFs1LCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGlzX3RyYWNrX29sZF9wYXNzd29yZHM6IFtmYWxzZV0sXG4gICAgICBtYXhfb2xkX3Bhc3N3b3Jkc19ibG9jazogWzIsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgaXNfcGFzc3dvcmRfcmVxdWlyZV9udW1iZXI6IFtmYWxzZV0sXG4gICAgICBpc19wYXNzd29yZF9yZXF1aXJlX3N5bWJvbDogW2ZhbHNlXSxcbiAgICAgIGlzX3Bhc3N3b3JkX3JlcXVpcmVfY2FwaXRhbF9sZXR0ZXI6IFtmYWxzZV0sXG4gICAgICBtaW5fcGFzc3dvcmRfbGVuZ3RoOiBbNV0sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBmZXRjaCB0aGUgYWNjZXNzIGNvbnRyb2wgY29uZmlnIGZvciBjbGllbnRcbiAgICB0aGlzLmZldGNoQWNjZXNzQ29udHJvbENvbmZpZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgdGhlIGFjY2VzcyBjb250cm9sIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBzdWJtaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnRm9ybS5pbnZhbGlkKSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnUGxlYXNlIGNoZWNrIHRoZSBmb3JtIGZvciBlcnJvcnMuJywgJ2Vycm9yJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YTogYW55ID0geyAuLi50aGlzLmNvbmZpZ0Zvcm0udmFsdWUgfTtcbiAgICBsZXQgc3Vic2NyaXB0aW9uOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWdTZXJ2aWNlLnN0b3JlKGRhdGEpO1xuICAgIGlmIChkYXRhPy5jbGllbnRfaWQpIHtcbiAgICAgIHN1YnNjcmlwdGlvbiA9IHRoaXMuYWNjZXNzQ29udHJvbENvbmZpZ1NlcnZpY2UudXBkYXRlKGRhdGEpO1xuICAgIH1cbiAgICB0aGlzLmlzU2F2aW5nID0gdHJ1ZTtcbiAgICBzdWJzY3JpcHRpb24uc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaXNTYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgLy8gdXBkYXRlIHRoZSBmb3JtIHdpdGggcmVzcG9uc2UuXG4gICAgICAgIHRoaXMuY29uZmlnRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAuLi5yZXNwb25zZT8uaXRlbVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydChcbiAgICAgICAgICAnQ29uZmlndXJhdGlvbiBzYXZlZCBzdWNjZXNzZnVsbHknLFxuICAgICAgICAgICdzdWNjZXNzJ1xuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB0aGlzLmlzU2F2aW5nID0gZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIHJlc2V0RmllbGRWYWx1ZShmaWVsZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWdGb3JtLmdldChmaWVsZCkuc2V0VmFsdWUoJycpO1xuICB9XG5cbiAgZ2V0RmllbGRWYWx1ZShmaWVsZDogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWdGb3JtLmdldChmaWVsZCkudmFsdWU7XG4gIH1cblxuICBpc0ZpZWxkVmFsaWQoZmllbGQ6IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVZhbGlkYXRvclNlcnZpY2UuaXNGaWVsZFZhbGlkKGZpZWxkLCB0aGlzLmNvbmZpZ0Zvcm0pO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKGZpZWxkOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmZvcm1WYWxpZGF0b3JTZXJ2aWNlLmdldEVycm9yTWVzc2FnZShmaWVsZCwgdGhpcy5jb25maWdGb3JtLCBlcnJvck1lc3NhZ2VzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBhY2Nlc3MgY29udHJvbCBjb25maWcgYW5kIHVwZGF0ZSB0aGUgZm9ybS5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZmV0Y2hBY2Nlc3NDb250cm9sQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWdTZXJ2aWNlLmluZGV4KCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGRhdGE6IGFueSA9IHJlc3BvbnNlPy5kYXRhO1xuICAgICAgICAvLyBzZXQgdGhlIGRlZmF1bHRzXG4gICAgICAgIGlmICghZGF0YT8uY2xpZW50X2lkKSB7XG4gICAgICAgICAgZGF0YS5tYXhfZmFpbGVkX2NvbnNlY3V0aXZlX2xvZ2luX2F0dGVtcHRzID0gNTtcbiAgICAgICAgICBkYXRhLm1heF9vbGRfcGFzc3dvcmRzX2Jsb2NrID0gIDI7XG4gICAgICAgICAgZGF0YS5taW5fcGFzc3dvcmRfbGVuZ3RoID0gNTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbmZpZ0Zvcm0ucGF0Y2hWYWx1ZShkYXRhKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gdGhpcy5pc1dvcmtpbmcgPSBmYWxzZVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZGlyZWN0IGJhY2sgdG8gbGFzdCBwYWdlLlxuICAgKi9cbiAgcmVkaXJlY3RCYWNrKCk6IHZvaWQge1xuICAgIHRoaXMubG9jYXRpb24uYmFjaygpO1xuICB9XG59XG4iLCI8bWF0LWNhcmQgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyXCIgZnhGbGV4T2Zmc2V0PVwiMjUlXCIgZnhGbGV4PVwiNTAlXCI+XG4gIDxtYXQtY2FyZC1jb250ZW50PlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiY29uZmlnRm9ybVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiPlxuICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPGgyPlxuICAgICAgICAgICAgQWNjZXNzIENvbnRyb2wgQ29uZmlndXJhdGlvblxuICAgICAgICAgIDwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtd2FybmluZ1wiIHJvbGU9XCJhbGVydFwiPlxuICAgICAgICAgIEJlIGNhcmVmdWwgd2l0aCB0aGVzZSBjb25maWd1cmF0aW9ucyBhcyB0aGV5IGFmZmVjdCBhbGwgdXNlcnMgaW4geW91ciBlbnRpcmUgYXBwLlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1dvcmtpbmdcIiBmeExheW91dD1cInJvdyB3cmFwXCIgZnhMYXlvdXRHYXA9XCIxcmVtIGdyaWRcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgZnhGbGV4PVwiMTAwJVwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgTWF4IEZhaWxlZCBMb2dpbiBBdHRlbXB0c1xuICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibWF4X2ZhaWxlZF9jb25zZWN1dGl2ZV9sb2dpbl9hdHRlbXB0c1wiXG4gICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJNYXggRmFpbGVkIExvZ2luIEF0dGVtcHRzXCJcbiAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICA8bWF0LWhpbnQ+QWZ0ZXIgaG93IG1hbnkgZmFpbGVkIGxvZ2luIGF0dGVtcHRzIHNob3VsZCB0aGlzIHVzZXLigJlzIGFjY291bnQgYmUgbG9ja2VkPzwvbWF0LWhpbnQ+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiaXNGaWVsZFZhbGlkKCdtYXhfZmFpbGVkX2NvbnNlY3V0aXZlX2xvZ2luX2F0dGVtcHRzJylcIj5cbiAgICAgICAgICAgICAge3tnZXRFcnJvck1lc3NhZ2UoJ21heF9mYWlsZWRfY29uc2VjdXRpdmVfbG9naW5fYXR0ZW1wdHMnKX19XG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgIEJsb2NrIHggbW9zdCByZWNlbnQgcGFzc3dvcmRzXG4gICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1heF9vbGRfcGFzc3dvcmRzX2Jsb2NrXCJcbiAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkJsb2NrIHggbW9zdCByZWNlbnQgcGFzc3dvcmRzXCJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICA8bWF0LWhpbnQ+XG4gICAgICAgICAgICAgIEhvdyBtYW55IHJlY2VudCBwYXNzd29yZHMgc2hvdWxkIHRoZSBzeXN0ZW0gYmxvY2sgdGhlIHVzZXIgZnJvbSByZXVzaW5nP1xuICAgICAgICAgICAgICBFeGFtcGxlOiAgVGhlIHVzZXIgY2Fubm90IHJldXNlIGFueSBvZiBoaXMvaGVyIGxhc3QgMyBwYXNzd29yZHMuXG4gICAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgnbWF4X29sZF9wYXNzd29yZHNfYmxvY2snKVwiPlxuICAgICAgICAgICAgICB7e2dldEVycm9yTWVzc2FnZSgnbWF4X29sZF9wYXNzd29yZHNfYmxvY2snKX19XG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgIE1pbmltdW0gUGFzc3dvcmQgTGVuZ3RoXG4gICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1pbl9wYXNzd29yZF9sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTWluaW11bSBQYXNzd29yZCBMZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgIG1pbj1cIjFcIlxuICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIC8+XG4gICAgICAgICAgICA8bWF0LWhpbnQ+XG4gICAgICAgICAgICAgIFdoYXQgaXMgdGhlIG1pbmltdW0gbGVuZ3RoIG9mIGEgdXNlcuKAmXMgcGFzc3dvcmQ/XG4gICAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgnbWluX3Bhc3N3b3JkX2xlbmd0aCcpXCI+XG4gICAgICAgICAgICAgIHt7Z2V0RXJyb3JNZXNzYWdlKCdtaW5fcGFzc3dvcmRfbGVuZ3RoJyl9fVxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMCAxIGNhbGMoNTAlLTFyZW0pXCI+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgbWItMFwiPiBUcmFjayBPbGQgUGFzc3dvcmRzPzwvcD5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwiaXNfdHJhY2tfb2xkX3Bhc3N3b3Jkc1wiIGNsYXNzPVwic3RhdHVzXCIgbmFtZT1cInN0YXR1c1wiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIFllc1xuICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgTm9cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICAgICAgICAgICAgICA8YnI+XG4gICAgICAgICAgICAgICAgPG1hdC1oaW50IGNsYXNzPVwiY3VzdG9tLWhpbnRcIj5cbiAgICAgICAgICAgICAgICAgIFNob3VsZCBvdXIgc29mdHdhcmUgdHJhY2sgb2xkIHBhc3N3b3JkcyB0byBlbnN1cmUgdXNlcnMgZG8gbm90IHJldXNlIG9sZCBwYXNzd29yZHM/XG4gICAgICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjAgMSBjYWxjKDUwJS0xcmVtKVwiPlxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTBcIj4gUGFzc3dvcmQgUmVxdWlyZSBOdW1iZXIgPC9wPlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJpc19wYXNzd29yZF9yZXF1aXJlX251bWJlclwiIGNsYXNzPVwic3RhdHVzXCIgbmFtZT1cInN0YXR1c1wiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIFllc1xuICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgTm9cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICAgICAgICAgICAgICA8YnI+XG4gICAgICAgICAgICAgICAgPG1hdC1oaW50IGNsYXNzPVwiY3VzdG9tLWhpbnRcIj5cbiAgICAgICAgICAgICAgICAgIFNob3VsZCB0aGUgc3lzdGVtIGZvcmNlIGEgdXNlciB0byBoYXZlIGEgbnVtYmVyIGluIGhpcy9oZXIgcGFzc3dvcmQ/XG4gICAgICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMCAxIGNhbGMoNTAlLTFyZW0pXCI+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgbWItMFwiPiBQYXNzd29yZCBSZXF1aXJlIFN5bWJvbCA8L3A+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cImlzX3Bhc3N3b3JkX3JlcXVpcmVfc3ltYm9sXCIgY2xhc3M9XCJzdGF0dXNcIiBuYW1lPVwic3RhdHVzXCI+XG4gICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgW3ZhbHVlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgWWVzXG4gICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICBOb1xuICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuICAgICAgICAgICAgICAgIDxicj5cbiAgICAgICAgICAgICAgICA8bWF0LWhpbnQgY2xhc3M9XCJjdXN0b20taGludFwiPlxuICAgICAgICAgICAgICAgICAgU2hvdWxkIHRoZSBzeXN0ZW0gZm9yY2UgYSB1c2VyIHRvIGhhdmUgYSBzeW1ib2wgaW4gaGlzL2hlciBwYXNzd29yZD9cbiAgICAgICAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMCAxIGNhbGMoNTAlLTFyZW0pXCI+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgbWItMFwiPiBQYXNzd29yZCBSZXF1aXJlIENhcGl0YWwgTGV0dGVyIDwvcD5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwiaXNfcGFzc3dvcmRfcmVxdWlyZV9jYXBpdGFsX2xldHRlclwiIGNsYXNzPVwic3RhdHVzXCIgbmFtZT1cInN0YXR1c1wiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIFllc1xuICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgTm9cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICAgICAgICAgICAgICA8YnI+XG4gICAgICAgICAgICAgICAgPG1hdC1oaW50IGNsYXNzPVwiY3VzdG9tLWhpbnRcIj5cbiAgICAgICAgICAgICAgICAgIFNob3VsZCB0aGUgc3lzdGVtIGZvcmNlIGEgdXNlciB0byBoYXZlIGEgY2FwaXRhbCBsZXR0ZXIgaW4gaGlzL2hlciBwYXNzd29yZD9cbiAgICAgICAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgbWItM1wiPlxuICAgICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwiaXNXb3JraW5nXCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjEwMCVcIiBmeExheW91dCBmeExheW91dEFsaWduPVwiZW5kXCIgZnhMYXlvdXRHYXA9XCIxcmVtXCI+XG4gICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNTYXZpbmdcIiBtYXQtZmxhdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZWRpcmVjdEJhY2soKVwiPlxuICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNTYXZpbmdcIlxuICAgICAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cInN1Ym1pdFwiIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgICAge3sgaXNTYXZpbmcgPyAnU2F2aW5nLi4uJyA6ICdTYXZlJyB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbiJdfQ==
126
+ }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.FormValidatorService }, { type: i2.AlertService }, { type: i3.AccessControlConfigService }, { type: i4.Location }] });
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hY2Nlc3MtY29udHJvbC1jb25maWcvYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0vYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hY2Nlc3MtY29udHJvbC1jb25maWcvYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0vYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFNbEQsTUFBTSxhQUFhLEdBQVE7SUFDekIscUNBQXFDLEVBQUU7UUFDckMsUUFBUSxFQUFFLDhEQUE4RDtLQUN6RTtJQUNELHVCQUF1QixFQUFFO1FBQ3ZCLFFBQVEsRUFBRSxnREFBZ0Q7S0FDM0Q7Q0FDRixDQUFDO0FBT0YsTUFBTSxPQUFPLGdDQUFnQztJQU0zQyxZQUNVLEVBQXNCLEVBQ3RCLG9CQUEwQyxFQUMxQyxZQUEwQixFQUMxQiwwQkFBc0QsRUFDdEQsUUFBa0I7UUFKbEIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQ3RELGFBQVEsR0FBUixRQUFRLENBQVU7UUFFMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFF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QUFLLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDaEQsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFRLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixNQUFNLElBQUksR0FBUSxRQUFRLEVBQUUsSUFBSSxDQUFDO2dCQUNqQyxtQkFBbUI7Z0JBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxxQ0FBcUMsR0FBRyxDQUFDLENBQUM7b0JBQy9DLElBQUksQ0FBQyx1QkFBdUIsR0FBSSxDQUFDLENBQUM7b0JBQ2xDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUs7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQzsrR0FwSFUsZ0NBQWdDO21HQUFoQyxnQ0FBZ0Msc0VDdkI3QyxtME5BaUtBOzs0RkQxSWEsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOmNvbXBvbmVudC1zZWxlY3RvciAqL1xuaW1wb3J0IHsgQWNjZXNzQ29udHJvbENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9hY2Nlc3MtY29udHJvbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgRm9ybVZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7TG9jYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5jb25zdCBlcnJvck1lc3NhZ2VzOiBhbnkgPSB7XG4gIG1heF9mYWlsZWRfY29uc2VjdXRpdmVfbG9naW5fYXR0ZW1wdHM6IHtcbiAgICByZXF1aXJlZDogJ1RoZSBtYXggZmFpbGVkIGNvbnNlY3V0aXZlIGxvZ2luIGF0dGVtcHRzIGZpZWxkIGlzIHJlcXVpcmVkLicsXG4gIH0sXG4gIG1heF9vbGRfcGFzc3dvcmRzX2Jsb2NrOiB7XG4gICAgcmVxdWlyZWQ6ICdUaGUgbWF4IG9sZCBwYXNzd29yZHMgYmxvY2sgZmllbGQgaXMgcmVxdWlyZWQuJyxcbiAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hY2Nlc3MtY29udHJvbC1jb25maWctZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2Nlc3MtY29udHJvbC1jb25maWctZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjY2Vzcy1jb250cm9sLWNvbmZpZy1mb3JtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29udHJvbENvbmZpZ0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbmZpZ0Zvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIGlzV29ya2luZzogYm9vbGVhbjtcbiAgaXNTYXZpbmc6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY2Nlc3NDb250cm9sQ29uZmlnU2VydmljZTogQWNjZXNzQ29udHJvbENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb25cbiAgKSB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBmb3JtIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgaWQ6IFsnJ10sXG4gICAgICBjbGllbnRfaWQ6IFsnJ10sXG4gICAgICBtYXhfZmFpbGVkX2NvbnNlY3V0aXZlX2xvZ2luX2F0dGVtcHRzOiBbNSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBpc190cmFja19vbGRfcGFzc3dvcmRzOiBbZmFsc2VdLFxuICAgICAgbWF4X29sZF9wYXNzd29yZHNfYmxvY2s6IFsyLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGlzX3Bhc3N3b3JkX3JlcXVpcmVfbnVtYmVyOiBbZmFsc2VdLFxuICAgICAgaXNfcGFzc3dvcmRfcmVxdWlyZV9zeW1ib2w6IFtmYWxzZV0sXG4gICAgICBpc19wYXNzd29yZF9yZXF1aXJlX2NhcGl0YWxfbGV0dGVyOiBbZmFsc2VdLFxuICAgICAgbWluX3Bhc3N3b3JkX2xlbmd0aDogWzVdLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gZmV0Y2ggdGhlIGFjY2VzcyBjb250cm9sIGNvbmZpZyBmb3IgY2xpZW50XG4gICAgdGhpcy5mZXRjaEFjY2Vzc0NvbnRyb2xDb25maWcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIHRoZSBhY2Nlc3MgY29udHJvbCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgc3VibWl0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbmZpZ0Zvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1BsZWFzZSBjaGVjayB0aGUgZm9ybSBmb3IgZXJyb3JzLicsICdlcnJvcicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGE6IGFueSA9IHsgLi4udGhpcy5jb25maWdGb3JtLnZhbHVlIH07XG4gICAgbGV0IHN1YnNjcmlwdGlvbjogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnU2VydmljZS5zdG9yZShkYXRhKTtcbiAgICBpZiAoZGF0YT8uY2xpZW50X2lkKSB7XG4gICAgICBzdWJzY3JpcHRpb24gPSB0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWdTZXJ2aWNlLnVwZGF0ZShkYXRhKTtcbiAgICB9XG4gICAgdGhpcy5pc1NhdmluZyA9IHRydWU7XG4gICAgc3Vic2NyaXB0aW9uLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzU2F2aW5nID0gZmFsc2U7XG4gICAgICAgIC8vIHVwZGF0ZSB0aGUgZm9ybSB3aXRoIHJlc3BvbnNlLlxuICAgICAgICB0aGlzLmNvbmZpZ0Zvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgLi4ucmVzcG9uc2U/Lml0ZW1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoXG4gICAgICAgICAgJ0NvbmZpZ3VyYXRpb24gc2F2ZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgICAgICAnc3VjY2VzcydcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4gdGhpcy5pc1NhdmluZyA9IGZhbHNlXG4gICAgfSk7XG4gIH1cblxuICByZXNldEZpZWxkVmFsdWUoZmllbGQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnRm9ybS5nZXQoZmllbGQpLnNldFZhbHVlKCcnKTtcbiAgfVxuXG4gIGdldEZpZWxkVmFsdWUoZmllbGQ6IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnRm9ybS5nZXQoZmllbGQpLnZhbHVlO1xuICB9XG5cbiAgaXNGaWVsZFZhbGlkKGZpZWxkOiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmZvcm1WYWxpZGF0b3JTZXJ2aWNlLmlzRmllbGRWYWxpZChmaWVsZCwgdGhpcy5jb25maWdGb3JtKTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZShmaWVsZDogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtVmFsaWRhdG9yU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoZmllbGQsIHRoaXMuY29uZmlnRm9ybSwgZXJyb3JNZXNzYWdlcyk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2ggYWNjZXNzIGNvbnRyb2wgY29uZmlnIGFuZCB1cGRhdGUgdGhlIGZvcm0uXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGZldGNoQWNjZXNzQ29udHJvbENvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnU2VydmljZS5pbmRleCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgICBjb25zdCBkYXRhOiBhbnkgPSByZXNwb25zZT8uZGF0YTtcbiAgICAgICAgLy8gc2V0IHRoZSBkZWZhdWx0c1xuICAgICAgICBpZiAoIWRhdGE/LmNsaWVudF9pZCkge1xuICAgICAgICAgIGRhdGEubWF4X2ZhaWxlZF9jb25zZWN1dGl2ZV9sb2dpbl9hdHRlbXB0cyA9IDU7XG4gICAgICAgICAgZGF0YS5tYXhfb2xkX3Bhc3N3b3Jkc19ibG9jayA9ICAyO1xuICAgICAgICAgIGRhdGEubWluX3Bhc3N3b3JkX2xlbmd0aCA9IDU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb25maWdGb3JtLnBhdGNoVmFsdWUoZGF0YSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHRoaXMuaXNXb3JraW5nID0gZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWRpcmVjdCBiYWNrIHRvIGxhc3QgcGFnZS5cbiAgICovXG4gIHJlZGlyZWN0QmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgfVxufVxuIiwiPG1hdC1jYXJkIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlclwiIGZ4RmxleE9mZnNldD1cIjI1JVwiIGZ4RmxleD1cIjUwJVwiPlxuICA8bWF0LWNhcmQtY29udGVudD5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNvbmZpZ0Zvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0KClcIj5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxoMj5cbiAgICAgICAgICAgIEFjY2VzcyBDb250cm9sIENvbmZpZ3VyYXRpb25cbiAgICAgICAgICA8L2gyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXdhcm5pbmdcIiByb2xlPVwiYWxlcnRcIj5cbiAgICAgICAgICBCZSBjYXJlZnVsIHdpdGggdGhlc2UgY29uZmlndXJhdGlvbnMgYXMgdGhleSBhZmZlY3QgYWxsIHVzZXJzIGluIHlvdXIgZW50aXJlIGFwcC5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhaXNXb3JraW5nXCIgZnhMYXlvdXQ9XCJyb3cgd3JhcFwiIGZ4TGF5b3V0R2FwPVwiMXJlbSBncmlkXCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmxleD1cIjEwMCVcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgIE1heCBGYWlsZWQgTG9naW4gQXR0ZW1wdHNcbiAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm1heF9mYWlsZWRfY29uc2VjdXRpdmVfbG9naW5fYXR0ZW1wdHNcIlxuICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTWF4IEZhaWxlZCBMb2dpbiBBdHRlbXB0c1wiXG4gICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICBtaW49XCIwXCJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZCAvPlxuICAgICAgICAgICAgPG1hdC1oaW50PkFmdGVyIGhvdyBtYW55IGZhaWxlZCBsb2dpbiBhdHRlbXB0cyBzaG91bGQgdGhpcyB1c2Vy4oCZcyBhY2NvdW50IGJlIGxvY2tlZD88L21hdC1oaW50PlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImlzRmllbGRWYWxpZCgnbWF4X2ZhaWxlZF9jb25zZWN1dGl2ZV9sb2dpbl9hdHRlbXB0cycpXCI+XG4gICAgICAgICAgICAgIHt7Z2V0RXJyb3JNZXNzYWdlKCdtYXhfZmFpbGVkX2NvbnNlY3V0aXZlX2xvZ2luX2F0dGVtcHRzJyl9fVxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIxMDAlXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICBCbG9jayB4IG1vc3QgcmVjZW50IHBhc3N3b3Jkc1xuICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtYXhfb2xkX3Bhc3N3b3Jkc19ibG9ja1wiXG4gICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJCbG9jayB4IG1vc3QgcmVjZW50IHBhc3N3b3Jkc1wiXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgbWluPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZCAvPlxuICAgICAgICAgICAgPG1hdC1oaW50PlxuICAgICAgICAgICAgICBIb3cgbWFueSByZWNlbnQgcGFzc3dvcmRzIHNob3VsZCB0aGUgc3lzdGVtIGJsb2NrIHRoZSB1c2VyIGZyb20gcmV1c2luZz9cbiAgICAgICAgICAgICAgRXhhbXBsZTogIFRoZSB1c2VyIGNhbm5vdCByZXVzZSBhbnkgb2YgaGlzL2hlciBsYXN0IDMgcGFzc3dvcmRzLlxuICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ21heF9vbGRfcGFzc3dvcmRzX2Jsb2NrJylcIj5cbiAgICAgICAgICAgICAge3tnZXRFcnJvck1lc3NhZ2UoJ21heF9vbGRfcGFzc3dvcmRzX2Jsb2NrJyl9fVxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIxMDAlXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICBNaW5pbXVtIFBhc3N3b3JkIExlbmd0aFxuICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtaW5fcGFzc3dvcmRfbGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk1pbmltdW0gUGFzc3dvcmQgTGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICBtaW49XCIxXCJcbiAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIiAvPlxuICAgICAgICAgICAgPG1hdC1oaW50PlxuICAgICAgICAgICAgICBXaGF0IGlzIHRoZSBtaW5pbXVtIGxlbmd0aCBvZiBhIHVzZXLigJlzIHBhc3N3b3JkP1xuICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ21pbl9wYXNzd29yZF9sZW5ndGgnKVwiPlxuICAgICAgICAgICAgICB7e2dldEVycm9yTWVzc2FnZSgnbWluX3Bhc3N3b3JkX2xlbmd0aCcpfX1cbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjAgMSBjYWxjKDUwJS0xcmVtKVwiPlxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTBcIj4gVHJhY2sgT2xkIFBhc3N3b3Jkcz88L3A+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cImlzX3RyYWNrX29sZF9wYXNzd29yZHNcIiBjbGFzcz1cInN0YXR1c1wiIG5hbWU9XCJzdGF0dXNcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICBZZXNcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgW3ZhbHVlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIE5vXG4gICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgICAgIDxtYXQtaGludCBjbGFzcz1cImN1c3RvbS1oaW50XCI+XG4gICAgICAgICAgICAgICAgICBTaG91bGQgb3VyIHNvZnR3YXJlIHRyYWNrIG9sZCBwYXNzd29yZHMgdG8gZW5zdXJlIHVzZXJzIGRvIG5vdCByZXVzZSBvbGQgcGFzc3dvcmRzP1xuICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBmeEZsZXg9XCIwIDEgY2FsYyg1MCUtMXJlbSlcIj5cbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBtYi0wXCI+IFBhc3N3b3JkIFJlcXVpcmUgTnVtYmVyIDwvcD5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwiaXNfcGFzc3dvcmRfcmVxdWlyZV9udW1iZXJcIiBjbGFzcz1cInN0YXR1c1wiIG5hbWU9XCJzdGF0dXNcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICBZZXNcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgW3ZhbHVlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIE5vXG4gICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgICAgIDxtYXQtaGludCBjbGFzcz1cImN1c3RvbS1oaW50XCI+XG4gICAgICAgICAgICAgICAgICBTaG91bGQgdGhlIHN5c3RlbSBmb3JjZSBhIHVzZXIgdG8gaGF2ZSBhIG51bWJlciBpbiBoaXMvaGVyIHBhc3N3b3JkP1xuICAgICAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjAgMSBjYWxjKDUwJS0xcmVtKVwiPlxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTBcIj4gUGFzc3dvcmQgUmVxdWlyZSBTeW1ib2wgPC9wPlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJpc19wYXNzd29yZF9yZXF1aXJlX3N5bWJvbFwiIGNsYXNzPVwic3RhdHVzXCIgbmFtZT1cInN0YXR1c1wiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIFllc1xuICAgICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgTm9cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICAgICAgICAgICAgICA8YnI+XG4gICAgICAgICAgICAgICAgPG1hdC1oaW50IGNsYXNzPVwiY3VzdG9tLWhpbnRcIj5cbiAgICAgICAgICAgICAgICAgIFNob3VsZCB0aGUgc3lzdGVtIGZvcmNlIGEgdXNlciB0byBoYXZlIGEgc3ltYm9sIGluIGhpcy9oZXIgcGFzc3dvcmQ/XG4gICAgICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjAgMSBjYWxjKDUwJS0xcmVtKVwiPlxuICAgICAgICAgICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG1iLTBcIj4gUGFzc3dvcmQgUmVxdWlyZSBDYXBpdGFsIExldHRlciA8L3A+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cImlzX3Bhc3N3b3JkX3JlcXVpcmVfY2FwaXRhbF9sZXR0ZXJcIiBjbGFzcz1cInN0YXR1c1wiIG5hbWU9XCJzdGF0dXNcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSBbdmFsdWVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICBZZXNcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgW3ZhbHVlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIE5vXG4gICAgICAgICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgICAgICAgICAgICAgPGJyPlxuICAgICAgICAgICAgICAgIDxtYXQtaGludCBjbGFzcz1cImN1c3RvbS1oaW50XCI+XG4gICAgICAgICAgICAgICAgICBTaG91bGQgdGhlIHN5c3RlbSBmb3JjZSBhIHVzZXIgdG8gaGF2ZSBhIGNhcGl0YWwgbGV0dGVyIGluIGhpcy9oZXIgcGFzc3dvcmQ/XG4gICAgICAgICAgICAgICAgPC9tYXQtaGludD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIG1iLTNcIj5cbiAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cImlzV29ya2luZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBmeEZsZXg9XCIxMDAlXCIgZnhMYXlvdXQgZnhMYXlvdXRBbGlnbj1cImVuZFwiIGZ4TGF5b3V0R2FwPVwiMXJlbVwiPlxuICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImlzU2F2aW5nXCIgbWF0LWZsYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmVkaXJlY3RCYWNrKClcIj5cbiAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImlzU2F2aW5nXCJcbiAgICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgIHt7IGlzU2F2aW5nID8gJ1NhdmluZy4uLicgOiAnU2F2ZScgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIDwvbWF0LWNhcmQtY29udGVudD5cbjwvbWF0LWNhcmQ+XG4iXX0=
@@ -17,15 +17,15 @@ const routes = [
17
17
  }
18
18
  ];
19
19
  export class AccessControlConfigRoutingModule {
20
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
22
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
22
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigRoutingModule, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigRoutingModule, decorators: [{
25
25
  type: NgModule,
26
26
  args: [{
27
27
  imports: [RouterModule.forChild(routes)],
28
28
  exports: [RouterModule]
29
29
  }]
30
30
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hY2Nlc3MtY29udHJvbC1jb25maWcvYWNjZXNzLWNvbnRyb2wtY29uZmlnLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQzs7O0FBRW5ILE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsZ0NBQWdDO1FBQzNDLFdBQVcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0tBQ25DO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsSUFBSTtRQUNWLFVBQVUsRUFBRSxFQUFFO1FBQ2QsU0FBUyxFQUFFLE1BQU07S0FDbEI7Q0FDRixDQUFDO0FBS0YsTUFBTSxPQUFPLGdDQUFnQzt3R0FBaEMsZ0NBQWdDO3lHQUFoQyxnQ0FBZ0Msd0NBRmpDLFlBQVk7eUdBRVgsZ0NBQWdDLFlBSGpDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7OzRGQUVYLGdDQUFnQztrQkFKNUMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uR3VhcmQgfSBmcm9tICcuLi9jb3JlJztcbmltcG9ydCB7QWNjZXNzQ29udHJvbENvbmZpZ0Zvcm1Db21wb25lbnR9IGZyb20gJy4vYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0vYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0uY29tcG9uZW50JztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IEFjY2Vzc0NvbnRyb2xDb25maWdGb3JtQ29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aGVudGljYXRpb25HdWFyZF1cbiAgfSxcbiAge1xuICAgIHBhdGg6ICcqKicsXG4gICAgcmVkaXJlY3RUbzogJycsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCdcbiAgfVxuXTtcbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEFjY2Vzc0NvbnRyb2xDb25maWdSb3V0aW5nTW9kdWxlIHsgfVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hY2Nlc3MtY29udHJvbC1jb25maWcvYWNjZXNzLWNvbnRyb2wtY29uZmlnLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQzs7O0FBRW5ILE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsZ0NBQWdDO1FBQzNDLFdBQVcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0tBQ25DO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsSUFBSTtRQUNWLFVBQVUsRUFBRSxFQUFFO1FBQ2QsU0FBUyxFQUFFLE1BQU07S0FDbEI7Q0FDRixDQUFDO0FBS0YsTUFBTSxPQUFPLGdDQUFnQzsrR0FBaEMsZ0NBQWdDO2dIQUFoQyxnQ0FBZ0Msd0NBRmpDLFlBQVk7Z0hBRVgsZ0NBQWdDLFlBSGpDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7OzRGQUVYLGdDQUFnQztrQkFKNUMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uR3VhcmQgfSBmcm9tICcuLi9jb3JlJztcbmltcG9ydCB7QWNjZXNzQ29udHJvbENvbmZpZ0Zvcm1Db21wb25lbnR9IGZyb20gJy4vYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0vYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0uY29tcG9uZW50JztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnJyxcbiAgICBjb21wb25lbnQ6IEFjY2Vzc0NvbnRyb2xDb25maWdGb3JtQ29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aGVudGljYXRpb25HdWFyZF1cbiAgfSxcbiAge1xuICAgIHBhdGg6ICcqKicsXG4gICAgcmVkaXJlY3RUbzogJycsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCdcbiAgfVxuXTtcbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEFjY2Vzc0NvbnRyb2xDb25maWdSb3V0aW5nTW9kdWxlIHsgfVxuIl19
@@ -17,32 +17,26 @@ import * as i7 from "@angular/material/button";
17
17
  import * as i8 from "@angular/material/icon";
18
18
  import * as i9 from "@angular/material/table";
19
19
  let AccessControlConfigComponent = class AccessControlConfigComponent {
20
- dialog;
21
- alertService;
22
- fb;
23
- configService;
24
- configs = [];
25
- displayedColumns = [
26
- 'index',
27
- 'max_failed_consecutive_login_attempts',
28
- 'is_track_old_passwords',
29
- 'max_old_passwords_block',
30
- 'min_password_length',
31
- 'is_password_require_number',
32
- 'is_password_require_symbol',
33
- 'is_password_require_capital_letter',
34
- 'actions'
35
- ];
36
- page = 1;
37
- lastPage;
38
- perPage = 25;
39
- isWorking = false;
40
- filterFormGroup;
41
20
  constructor(dialog, alertService, fb, configService) {
42
21
  this.dialog = dialog;
43
22
  this.alertService = alertService;
44
23
  this.fb = fb;
45
24
  this.configService = configService;
25
+ this.configs = [];
26
+ this.displayedColumns = [
27
+ 'index',
28
+ 'max_failed_consecutive_login_attempts',
29
+ 'is_track_old_passwords',
30
+ 'max_old_passwords_block',
31
+ 'min_password_length',
32
+ 'is_password_require_number',
33
+ 'is_password_require_symbol',
34
+ 'is_password_require_capital_letter',
35
+ 'actions'
36
+ ];
37
+ this.page = 1;
38
+ this.perPage = 25;
39
+ this.isWorking = false;
46
40
  this.filterFormGroup = this.fb.group({
47
41
  search: new UntypedFormControl(''),
48
42
  version: new UntypedFormControl(''),
@@ -123,15 +117,15 @@ let AccessControlConfigComponent = class AccessControlConfigComponent {
123
117
  resetFieldValue(field) {
124
118
  this.filterFormGroup.get(field).setValue('');
125
119
  }
126
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigComponent, deps: [{ token: i1.MatDialog }, { token: i2.AlertService }, { token: i3.UntypedFormBuilder }, { token: i4.AccessControlConfigService }], target: i0.ɵɵFactoryTarget.Component });
127
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccessControlConfigComponent, selector: "app-access-control-config", ngImport: i0, template: "<section class=\"p-4\" fxLayout=\"column\">\n <h3 class=\"primary-color text-center\">\n Access Control Configs\n <button mat-raised-button color=\"primary\" (click)=\"modifyTechlifyUpdate()\" class=\"primary-bg text-white\"\n *ngIf=\"!configs.length\">\n <mat-icon>\n add\n </mat-icon>\n Config\n </button>\n </h3>\n\n <table mat-table [dataSource]=\"configs\" class=\"mat-elevation-z8 w-100\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element;let i=index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"max_failed_consecutive_login_attempts\">\n <th mat-header-cell *matHeaderCellDef>\n Max Failed Login Attempts\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.max_failed_consecutive_login_attempts}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_track_old_passwords\">\n <th mat-header-cell *matHeaderCellDef>\n Track Old Passwords\n </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.is_track_old_passwords ? 'Yes' : 'No'}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"max_old_passwords_block\">\n <th mat-header-cell *matHeaderCellDef>\n Max old password block\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.max_old_passwords_block }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"min_password_length\">\n <th mat-header-cell *matHeaderCellDef>\n Minimum Password Length\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.min_password_length}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_password_require_number\">\n <th mat-header-cell *matHeaderCellDef>\n Password: Require Number\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.is_password_require_number ? 'Yes' : 'No'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_password_require_symbol\">\n <th mat-header-cell *matHeaderCellDef>\n Password: Require Symbol\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.is_password_require_symbol ? 'Yes' : 'No'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_password_require_capital_letter\">\n <th mat-header-cell *matHeaderCellDef>\n Password: Require Capital Letter\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.is_password_require_capital_letter ? 'Yes' : 'No'}}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"secondary-color\">\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"modifyTechlifyUpdate(element)\">\n <mat-icon>edit</mat-icon>\n </button>\n\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"deleteTechlifyUpdate(element)\">\n <mat-icon>delete</mat-icon>\n </button>\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</section>\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.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: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }] });
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigComponent, deps: [{ token: i1.MatDialog }, { token: i2.AlertService }, { token: i3.UntypedFormBuilder }, { token: i4.AccessControlConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AccessControlConfigComponent, selector: "app-access-control-config", ngImport: i0, template: "<section class=\"p-4\" fxLayout=\"column\">\n <h3 class=\"primary-color text-center\">\n Access Control Configs\n <button mat-raised-button color=\"primary\" (click)=\"modifyTechlifyUpdate()\" class=\"primary-bg text-white\"\n *ngIf=\"!configs.length\">\n <mat-icon>\n add\n </mat-icon>\n Config\n </button>\n </h3>\n\n <table mat-table [dataSource]=\"configs\" class=\"mat-elevation-z8 w-100\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element;let i=index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"max_failed_consecutive_login_attempts\">\n <th mat-header-cell *matHeaderCellDef>\n Max Failed Login Attempts\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.max_failed_consecutive_login_attempts}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_track_old_passwords\">\n <th mat-header-cell *matHeaderCellDef>\n Track Old Passwords\n </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.is_track_old_passwords ? 'Yes' : 'No'}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"max_old_passwords_block\">\n <th mat-header-cell *matHeaderCellDef>\n Max old password block\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.max_old_passwords_block }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"min_password_length\">\n <th mat-header-cell *matHeaderCellDef>\n Minimum Password Length\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.min_password_length}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_password_require_number\">\n <th mat-header-cell *matHeaderCellDef>\n Password: Require Number\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.is_password_require_number ? 'Yes' : 'No'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_password_require_symbol\">\n <th mat-header-cell *matHeaderCellDef>\n Password: Require Symbol\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.is_password_require_symbol ? 'Yes' : 'No'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_password_require_capital_letter\">\n <th mat-header-cell *matHeaderCellDef>\n Password: Require Capital Letter\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.is_password_require_capital_letter ? 'Yes' : 'No'}}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"secondary-color\">\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"modifyTechlifyUpdate(element)\">\n <mat-icon>edit</mat-icon>\n </button>\n\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"deleteTechlifyUpdate(element)\">\n <mat-icon>delete</mat-icon>\n </button>\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</section>\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.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: "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: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }] }); }
128
122
  };
129
123
  AccessControlConfigComponent = __decorate([
130
124
  UntilDestroy()
131
125
  ], AccessControlConfigComponent);
132
126
  export { AccessControlConfigComponent };
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigComponent, decorators: [{
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigComponent, decorators: [{
134
128
  type: Component,
135
129
  args: [{ selector: 'app-access-control-config', template: "<section class=\"p-4\" fxLayout=\"column\">\n <h3 class=\"primary-color text-center\">\n Access Control Configs\n <button mat-raised-button color=\"primary\" (click)=\"modifyTechlifyUpdate()\" class=\"primary-bg text-white\"\n *ngIf=\"!configs.length\">\n <mat-icon>\n add\n </mat-icon>\n Config\n </button>\n </h3>\n\n <table mat-table [dataSource]=\"configs\" class=\"mat-elevation-z8 w-100\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element;let i=index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"max_failed_consecutive_login_attempts\">\n <th mat-header-cell *matHeaderCellDef>\n Max Failed Login Attempts\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.max_failed_consecutive_login_attempts}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_track_old_passwords\">\n <th mat-header-cell *matHeaderCellDef>\n Track Old Passwords\n </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.is_track_old_passwords ? 'Yes' : 'No'}} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"max_old_passwords_block\">\n <th mat-header-cell *matHeaderCellDef>\n Max old password block\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.max_old_passwords_block }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"min_password_length\">\n <th mat-header-cell *matHeaderCellDef>\n Minimum Password Length\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.min_password_length}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_password_require_number\">\n <th mat-header-cell *matHeaderCellDef>\n Password: Require Number\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.is_password_require_number ? 'Yes' : 'No'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_password_require_symbol\">\n <th mat-header-cell *matHeaderCellDef>\n Password: Require Symbol\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.is_password_require_symbol ? 'Yes' : 'No'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"is_password_require_capital_letter\">\n <th mat-header-cell *matHeaderCellDef>\n Password: Require Capital Letter\n </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.is_password_require_capital_letter ? 'Yes' : 'No'}}\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\" class=\"secondary-color\">\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"modifyTechlifyUpdate(element)\">\n <mat-icon>edit</mat-icon>\n </button>\n\n <button type=\"button\" class=\"secondary-color\" mat-icon-button (click)=\"deleteTechlifyUpdate(element)\">\n <mat-icon>delete</mat-icon>\n </button>\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</section>\n" }]
136
- }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.AlertService }, { type: i3.UntypedFormBuilder }, { type: i4.AccessControlConfigService }]; } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYWNjZXNzLWNvbnRyb2wtY29uZmlnL2FjY2Vzcy1jb250cm9sLWNvbmZpZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2FjY2Vzcy1jb250cm9sLWNvbmZpZy9hY2Nlc3MtY29udHJvbC1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRXJILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFzQixNQUFNLGdCQUFnQixDQUFDO0FBR3hFLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBZSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQVM3RCxJQUFNLDRCQUE0QixHQUFsQyxNQUFNLDRCQUE0QjtJQW9CN0I7SUFDQTtJQUNBO0lBQ0E7SUF0QlYsT0FBTyxHQUFVLEVBQUUsQ0FBQztJQUNwQixnQkFBZ0IsR0FBYTtRQUMzQixPQUFPO1FBQ1AsdUNBQXVDO1FBQ3ZDLHdCQUF3QjtRQUN4Qix5QkFBeUI7UUFDekIscUJBQXFCO1FBQ3JCLDRCQUE0QjtRQUM1Qiw0QkFBNEI7UUFDNUIsb0NBQW9DO1FBQ3BDLFNBQVM7S0FDVixDQUFDO0lBQ0YsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULFFB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eyBBY2Nlc3NDb250cm9sQ29uZmlnRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0vYWNjZXNzLWNvbnRyb2wtY29uZmlnLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9hY2Nlc3MtY29udHJvbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3kgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3Rpb25Qb3B1cCwgQWN0aW9uUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb24tcG9wdXAnO1xuaW1wb3J0IHtBbGVydFNlcnZpY2V9IGZyb20gJy4uL2NvcmUnO1xuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2FwcC1hY2Nlc3MtY29udHJvbC1jb25maWcnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjZXNzLWNvbnRyb2wtY29uZmlnLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWNjZXNzLWNvbnRyb2wtY29uZmlnLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29udHJvbENvbmZpZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbmZpZ3M6IGFueVtdID0gW107XG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1xuICAgICdpbmRleCcsXG4gICAgJ21heF9mYWlsZWRfY29uc2VjdXRpdmVfbG9naW5fYXR0ZW1wdHMnLFxuICAgICdpc190cmFja19vbGRfcGFzc3dvcmRzJyxcbiAgICAnbWF4X29sZF9wYXNzd29yZHNfYmxvY2snLFxuICAgICdtaW5fcGFzc3dvcmRfbGVuZ3RoJyxcbiAgICAnaXNfcGFzc3dvcmRfcmVxdWlyZV9udW1iZXInLFxuICAgICdpc19wYXNzd29yZF9yZXF1aXJlX3N5bWJvbCcsXG4gICAgJ2lzX3Bhc3N3b3JkX3JlcXVpcmVfY2FwaXRhbF9sZXR0ZXInLFxuICAgICdhY3Rpb25zJ1xuICBdO1xuICBwYWdlID0gMTtcbiAgbGFzdFBhZ2U6IG51bWJlcjtcbiAgcGVyUGFnZSA9IDI1O1xuICBpc1dvcmtpbmcgPSBmYWxzZTtcbiAgZmlsdGVyRm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBBY2Nlc3NDb250cm9sQ29uZmlnU2VydmljZVxuICApIHtcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgc2VhcmNoOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKSxcbiAgICAgIHZlcnNpb246IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpLFxuICAgICAgc29ydF9ieTogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgncmVsZWFzZWRfb258REVTQycpLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIHRoaXMubGlzdGVuQ2hhbmdlcygpO1xuICB9XG5cbiAgbGlzdGVuQ2hhbmdlcygpIHtcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKGNoYW5nZXMgPT4ge1xuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHsgfVxuXG4gIGFzeW5jIGxvYWREYXRhKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgICBjb25zdCBmaWx0ZXJzOiBhbnkgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC52YWx1ZTtcbiAgICAgIGZpbHRlcnMucGVyUGFnZSA9IHRoaXMucGVyUGFnZTtcbiAgICAgIGZpbHRlcnMucGFnZSA9IHRoaXMucGFnZTtcbiAgICAgIGNvbnN0IHJlc3VsdDogYW55ID0gYXdhaXQgdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZ3MoXG4gICAgICAgIGZpbHRlcnNcbiAgICAgICk7XG4gICAgICB0aGlzLmxhc3RQYWdlID0gcmVzdWx0Lmxhc3RfcGFnZSB8fCB0aGlzLnBhZ2U7XG4gICAgICB0aGlzLmNvbmZpZ3MgPSB0aGlzLmNvbmZpZ3MuY29uY2F0KHJlc3VsdC5kYXRhKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1VuYWJsZSB0byBwcm9jZXNzLCB0cnkgbGF0ZXInLCAnd2FybicpO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmVsb2FkKCkge1xuICAgIHRoaXMuY29uZmlncyA9IFtdO1xuICAgIHRoaXMucGFnZSA9IDE7XG4gICAgaWYgKCF0aGlzLmlzV29ya2luZykge1xuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIG1vZGlmeVRlY2hsaWZ5VXBkYXRlKG1vZGVsPzogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBY2Nlc3NDb250cm9sQ29uZmlnRm9ybUNvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc2MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGNvbmZpZ0RldGFpbHM6IG1vZGVsLFxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBkZWxldGVUZWNobGlmeVVwZGF0ZShtb2RlbDogYW55KSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihBY3Rpb25Qb3B1cENvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc0MDBweCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHRpdGxlOiAnRGVsZXRlIFVwZGF0ZScsXG4gICAgICAgIG1lc3NhZ2U6IGBBcmUgeW91IHN1cmUgdG8gZGVsZXRlIHRoaXMgdXBkYXRlP2BcbiAgICAgIH0gYXMgQWN0aW9uUG9wdXAsXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoYXN5bmMgcmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgLy8gQWN0aW9uIGNvbmZpcm1lZFxuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuY29uZmlnU2VydmljZS5kZWxldGVDb25maWcobW9kZWwuaWQpO1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KFxuICAgICAgICAgICAgJ1N1Y2Nlc3NmdWxseSBkZWxldGVkIHRoZSBjb25maWcnLFxuICAgICAgICAgICAgJ3N1Y2Nlc3MnXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdVbmFibGUgdG8gcHJvY2VzcywgdHJ5IGxhdGVyJywgJ3dhcm4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVzZXRGaWVsZFZhbHVlKGZpZWxkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoZmllbGQpLnNldFZhbHVlKCcnKTtcbiAgfVxuXG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cInAtNFwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XG4gIDxoMyBjbGFzcz1cInByaW1hcnktY29sb3IgdGV4dC1jZW50ZXJcIj5cbiAgICBBY2Nlc3MgQ29udHJvbCBDb25maWdzXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwibW9kaWZ5VGVjaGxpZnlVcGRhdGUoKVwiIGNsYXNzPVwicHJpbWFyeS1iZyB0ZXh0LXdoaXRlXCJcbiAgICAgICpuZ0lmPVwiIWNvbmZpZ3MubGVuZ3RoXCI+XG4gICAgICA8bWF0LWljb24+XG4gICAgICAgIGFkZFxuICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIENvbmZpZ1xuICAgIDwvYnV0dG9uPlxuICA8L2gzPlxuXG4gIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiY29uZmlnc1wiIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OCB3LTEwMFwiPlxuXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyA8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7bGV0IGk9aW5kZXhcIj4ge3sgaSsxIH19IDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm1heF9mYWlsZWRfY29uc2VjdXRpdmVfbG9naW5fYXR0ZW1wdHNcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgIE1heCBGYWlsZWQgTG9naW4gQXR0ZW1wdHNcbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICB7e2VsZW1lbnQ/Lm1heF9mYWlsZWRfY29uc2VjdXRpdmVfbG9naW5fYXR0ZW1wdHN9fVxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaXNfdHJhY2tfb2xkX3Bhc3N3b3Jkc1wiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgVHJhY2sgT2xkIFBhc3N3b3Jkc1xuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudD8uaXNfdHJhY2tfb2xkX3Bhc3N3b3JkcyA/ICdZZXMnIDogJ05vJ319IDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm1heF9vbGRfcGFzc3dvcmRzX2Jsb2NrXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICBNYXggb2xkIHBhc3N3b3JkIGJsb2NrXG4gICAgICA8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAge3tlbGVtZW50Py5tYXhfb2xkX3Bhc3N3b3Jkc19ibG9jayB9fVxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibWluX3Bhc3N3b3JkX2xlbmd0aFwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgTWluaW11bSBQYXNzd29yZCBMZW5ndGhcbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICB7e2VsZW1lbnQ/Lm1pbl9wYXNzd29yZF9sZW5ndGh9fVxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaXNfcGFzc3dvcmRfcmVxdWlyZV9udW1iZXJcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgIFBhc3N3b3JkOiBSZXF1aXJlIE51bWJlclxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgIHt7ZWxlbWVudD8uaXNfcGFzc3dvcmRfcmVxdWlyZV9udW1iZXIgPyAnWWVzJyA6ICdObyd9fVxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaXNfcGFzc3dvcmRfcmVxdWlyZV9zeW1ib2xcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgIFBhc3N3b3JkOiBSZXF1aXJlIFN5bWJvbFxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgIHt7ZWxlbWVudD8uaXNfcGFzc3dvcmRfcmVxdWlyZV9zeW1ib2wgPyAnWWVzJyA6ICdObyd9fVxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaXNfcGFzc3dvcmRfcmVxdWlyZV9jYXBpdGFsX2xldHRlclwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgUGFzc3dvcmQ6IFJlcXVpcmUgQ2FwaXRhbCBMZXR0ZXJcbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICB7e2VsZW1lbnQ/LmlzX3Bhc3N3b3JkX3JlcXVpcmVfY2FwaXRhbF9sZXR0ZXIgPyAnWWVzJyA6ICdObyd9fVxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gQWN0aW9ucyBDb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBY3Rpb25zIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIGNsYXNzPVwic2Vjb25kYXJ5LWNvbG9yXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2Vjb25kYXJ5LWNvbG9yXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJtb2RpZnlUZWNobGlmeVVwZGF0ZShlbGVtZW50KVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzZWNvbmRhcnktY29sb3JcIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRlbGV0ZVRlY2hsaWZ5VXBkYXRlKGVsZW1lbnQpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgPC90YWJsZT5cbjwvc2VjdGlvbj5cbiJdfQ==
130
+ }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.AlertService }, { type: i3.UntypedFormBuilder }, { type: i4.AccessControlConfigService }] });
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYWNjZXNzLWNvbnRyb2wtY29uZmlnL2FjY2Vzcy1jb250cm9sLWNvbmZpZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2FjY2Vzcy1jb250cm9sLWNvbmZpZy9hY2Nlc3MtY29udHJvbC1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRXJILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFzQixNQUFNLGdCQUFnQixDQUFDO0FBR3hFLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBZSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQVM3RCxJQUFNLDRCQUE0QixHQUFsQyxNQUFNLDRCQUE0QjtJQW1CdkMsWUFDVSxNQUFpQixFQUNqQixZQUEwQixFQUMxQixFQUFzQixFQUN0QixhQUF5QztRQUh6QyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUE0QjtRQXRCbkQsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUNwQixxQkFBZ0IsR0FBYTtZQUMzQixPQUFPO1lB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b250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0NvbnRyb2xDb25maWdGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9hY2Nlc3MtY29udHJvbC1jb25maWctZm9ybS9hY2Nlc3MtY29udHJvbC1jb25maWctZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWNjZXNzQ29udHJvbENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2FjY2Vzcy1jb250cm9sLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvblBvcHVwLCBBY3Rpb25Qb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL2FjdGlvbi1wb3B1cCc7XG5pbXBvcnQge0FsZXJ0U2VydmljZX0gZnJvbSAnLi4vY29yZSc7XG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYXBwLWFjY2Vzcy1jb250cm9sLWNvbmZpZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2Nlc3MtY29udHJvbC1jb25maWcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY2Nlc3MtY29udHJvbC1jb25maWcuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBY2Nlc3NDb250cm9sQ29uZmlnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uZmlnczogYW55W10gPSBbXTtcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXG4gICAgJ2luZGV4JyxcbiAgICAnbWF4X2ZhaWxlZF9jb25zZWN1dGl2ZV9sb2dpbl9hdHRlbXB0cycsXG4gICAgJ2lzX3RyYWNrX29sZF9wYXNzd29yZHMnLFxuICAgICdtYXhfb2xkX3Bhc3N3b3Jkc19ibG9jaycsXG4gICAgJ21pbl9wYXNzd29yZF9sZW5ndGgnLFxuICAgICdpc19wYXNzd29yZF9yZXF1aXJlX251bWJlcicsXG4gICAgJ2lzX3Bhc3N3b3JkX3JlcXVpcmVfc3ltYm9sJyxcbiAgICAnaXNfcGFzc3dvcmRfcmVxdWlyZV9jYXBpdGFsX2xldHRlcicsXG4gICAgJ2FjdGlvbnMnXG4gIF07XG4gIHBhZ2UgPSAxO1xuICBsYXN0UGFnZTogbnVtYmVyO1xuICBwZXJQYWdlID0gMjU7XG4gIGlzV29ya2luZyA9IGZhbHNlO1xuICBmaWx0ZXJGb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IEFjY2Vzc0NvbnRyb2xDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzZWFyY2g6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpLFxuICAgICAgdmVyc2lvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyksXG4gICAgICBzb3J0X2J5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCdyZWxlYXNlZF9vbnxERVNDJyksXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgdGhpcy5saXN0ZW5DaGFuZ2VzKCk7XG4gIH1cblxuICBsaXN0ZW5DaGFuZ2VzKCkge1xuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSg1MDApLCB1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoY2hhbmdlcyA9PiB7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkgeyB9XG5cbiAgYXN5bmMgbG9hZERhdGEoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IGZpbHRlcnM6IGFueSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLnZhbHVlO1xuICAgICAgZmlsdGVycy5wZXJQYWdlID0gdGhpcy5wZXJQYWdlO1xuICAgICAgZmlsdGVycy5wYWdlID0gdGhpcy5wYWdlO1xuICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSBhd2FpdCB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlncyhcbiAgICAgICAgZmlsdGVyc1xuICAgICAgKTtcbiAgICAgIHRoaXMubGFzdFBhZ2UgPSByZXN1bHQubGFzdF9wYWdlIHx8IHRoaXMucGFnZTtcbiAgICAgIHRoaXMuY29uZmlncyA9IHRoaXMuY29uZmlncy5jb25jYXQocmVzdWx0LmRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnVW5hYmxlIHRvIHByb2Nlc3MsIHRyeSBsYXRlcicsICd3YXJuJyk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZWxvYWQoKSB7XG4gICAgdGhpcy5jb25maWdzID0gW107XG4gICAgdGhpcy5wYWdlID0gMTtcbiAgICBpZiAoIXRoaXMuaXNXb3JraW5nKSB7XG4gICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgbW9kaWZ5VGVjaGxpZnlVcGRhdGUobW9kZWw/OiBhbnkpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFjY2Vzc0NvbnRyb2xDb25maWdGb3JtQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzYwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgY29uZmlnRGV0YWlsczogbW9kZWwsXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZVRlY2hsaWZ5VXBkYXRlKG1vZGVsOiBhbnkpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFjdGlvblBvcHVwQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdGl0bGU6ICdEZWxldGUgVXBkYXRlJyxcbiAgICAgICAgbWVzc2FnZTogYEFyZSB5b3Ugc3VyZSB0byBkZWxldGUgdGhpcyB1cGRhdGU/YFxuICAgICAgfSBhcyBBY3Rpb25Qb3B1cCxcbiAgICAgIGF1dG9Gb2N1czogZmFsc2VcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShhc3luYyByZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAvLyBBY3Rpb24gY29uZmlybWVkXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5jb25maWdTZXJ2aWNlLmRlbGV0ZUNvbmZpZyhtb2RlbC5pZCk7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoXG4gICAgICAgICAgICAnU3VjY2Vzc2Z1bGx5IGRlbGV0ZWQgdGhlIGNvbmZpZycsXG4gICAgICAgICAgICAnc3VjY2VzcydcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1VuYWJsZSB0byBwcm9jZXNzLCB0cnkgbGF0ZXInLCAnd2FybicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXNldEZpZWxkVmFsdWUoZmllbGQ6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChmaWVsZCkuc2V0VmFsdWUoJycpO1xuICB9XG5cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwicC00XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cbiAgPGgzIGNsYXNzPVwicHJpbWFyeS1jb2xvciB0ZXh0LWNlbnRlclwiPlxuICAgIEFjY2VzcyBDb250cm9sIENvbmZpZ3NcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJtb2RpZnlUZWNobGlmeVVwZGF0ZSgpXCIgY2xhc3M9XCJwcmltYXJ5LWJnIHRleHQtd2hpdGVcIlxuICAgICAgKm5nSWY9XCIhY29uZmlncy5sZW5ndGhcIj5cbiAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgYWRkXG4gICAgICA8L21hdC1pY29uPlxuICAgICAgQ29uZmlnXG4gICAgPC9idXR0b24+XG4gIDwvaDM+XG5cbiAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJjb25maWdzXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4IHctMTAwXCI+XG5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDtsZXQgaT1pbmRleFwiPiB7eyBpKzEgfX0gPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibWF4X2ZhaWxlZF9jb25zZWN1dGl2ZV9sb2dpbl9hdHRlbXB0c1wiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgTWF4IEZhaWxlZCBMb2dpbiBBdHRlbXB0c1xuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgIHt7ZWxlbWVudD8ubWF4X2ZhaWxlZF9jb25zZWN1dGl2ZV9sb2dpbl9hdHRlbXB0c319XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpc190cmFja19vbGRfcGFzc3dvcmRzXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICBUcmFjayBPbGQgUGFzc3dvcmRzXG4gICAgICA8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5pc190cmFja19vbGRfcGFzc3dvcmRzID8gJ1llcycgOiAnTm8nfX0gPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibWF4X29sZF9wYXNzd29yZHNfYmxvY2tcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgIE1heCBvbGQgcGFzc3dvcmQgYmxvY2tcbiAgICAgIDwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICB7e2VsZW1lbnQ/Lm1heF9vbGRfcGFzc3dvcmRzX2Jsb2NrIH19XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJtaW5fcGFzc3dvcmRfbGVuZ3RoXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICBNaW5pbXVtIFBhc3N3b3JkIExlbmd0aFxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgIHt7ZWxlbWVudD8ubWluX3Bhc3N3b3JkX2xlbmd0aH19XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpc19wYXNzd29yZF9yZXF1aXJlX251bWJlclwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgUGFzc3dvcmQ6IFJlcXVpcmUgTnVtYmVyXG4gICAgICA8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAge3tlbGVtZW50Py5pc19wYXNzd29yZF9yZXF1aXJlX251bWJlciA/ICdZZXMnIDogJ05vJ319XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpc19wYXNzd29yZF9yZXF1aXJlX3N5bWJvbFwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgUGFzc3dvcmQ6IFJlcXVpcmUgU3ltYm9sXG4gICAgICA8L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAge3tlbGVtZW50Py5pc19wYXNzd29yZF9yZXF1aXJlX3N5bWJvbCA/ICdZZXMnIDogJ05vJ319XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpc19wYXNzd29yZF9yZXF1aXJlX2NhcGl0YWxfbGV0dGVyXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICBQYXNzd29yZDogUmVxdWlyZSBDYXBpdGFsIExldHRlclxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgIHt7ZWxlbWVudD8uaXNfcGFzc3dvcmRfcmVxdWlyZV9jYXBpdGFsX2xldHRlciA/ICdZZXMnIDogJ05vJ319XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBBY3Rpb25zIENvbHVtbiAtLT5cbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEFjdGlvbnMgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCIgY2xhc3M9XCJzZWNvbmRhcnktY29sb3JcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzZWNvbmRhcnktY29sb3JcIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm1vZGlmeVRlY2hsaWZ5VXBkYXRlKGVsZW1lbnQpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNlY29uZGFyeS1jb2xvclwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlVGVjaGxpZnlVcGRhdGUoZWxlbWVudClcIj5cbiAgICAgICAgICA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICA8L3RhYmxlPlxuPC9zZWN0aW9uPlxuIl19
@@ -1,17 +1,4 @@
1
1
  export class AccessControlConfiguration {
2
- id;
3
- clientId;
4
- maxFailedConsecutiveLoginAttempts;
5
- isTrackOldPasswords;
6
- maxOldPasswordsBlock;
7
- minPasswordLength;
8
- isPasswordRequireNumber;
9
- isPasswordRequireSymbol;
10
- isPasswordRequireCapitalLetter;
11
- creatorId;
12
- createdAt;
13
- updatedAt;
14
- deletedAt;
15
2
  constructor(id, clientId, maxFailedConsecutiveLoginAttempts, isTrackOldPasswords, maxOldPasswordsBlock, minPasswordLength, isPasswordRequireNumber, isPasswordRequireSymbol, isPasswordRequireCapitalLetter, creatorId, createdAt, updatedAt, deletedAt) {
16
3
  this.id = id;
17
4
  this.clientId = clientId;
@@ -31,4 +18,4 @@ export class AccessControlConfiguration {
31
18
  return new AccessControlConfiguration(obj.id, obj.client_id, obj.max_failed_consecutive_login_attempts, obj.is_track_old_passwords, obj.max_old_passwords_block, obj.min_password_length, obj.is_password_require_number, obj.is_password_require_symbol, obj.is_password_require_capital_letter, obj.creator_id, obj.created_at, obj.updated_at, obj.deleted_at);
32
19
  }
33
20
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hY2Nlc3MtY29udHJvbC1jb25maWcvYWNjZXNzLWNvbnRyb2wtY29uZmlnLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTywwQkFBMEI7SUFFNUI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFiVCxZQUNTLEVBQVcsRUFDWCxRQUFpQixFQUNqQixpQ0FBaUQsRUFDakQsbUJBQTZCLEVBQzdCLG9CQUE2QixFQUM3QixpQkFBMEIsRUFDMUIsdUJBQWlDLEVBQ2pDLHVCQUFpQyxFQUNqQyw4QkFBd0MsRUFDeEMsU0FBeUIsRUFDekIsU0FBZ0IsRUFDaEIsU0FBZ0IsRUFDaEIsU0FBdUI7UUFadkIsT0FBRSxHQUFGLEVBQUUsQ0FBUztRQUNYLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsc0NBQWlDLEdBQWpDLGlDQUFpQyxDQUFnQjtRQUNqRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQVU7UUFDN0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFTO1FBQzdCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUztRQUMxQiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQVU7UUFDakMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFVO1FBQ2pDLG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBVTtRQUN4QyxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUN6QixjQUFTLEdBQVQsU0FBUyxDQUFPO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQU87UUFDaEIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUM3QixDQUFDO0lBRUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFRO1FBQy9CLE9BQU8sSUFBSSwwQkFBMEIsQ0FDbkMsR0FBRyxDQUFDLEVBQUUsRUFDTixHQUFHLENBQUMsU0FBUyxFQUNiLEdBQUcsQ0FBQyxxQ0FBcUMsRUFDekMsR0FBRyxDQUFDLHNCQUFzQixFQUMxQixHQUFHLENBQUMsdUJBQXVCLEVBQzNCLEdBQUcsQ0FBQyxtQkFBbUIsRUFDdkIsR0FBRyxDQUFDLDBCQUEwQixFQUM5QixHQUFHLENBQUMsMEJBQTBCLEVBQzlCLEdBQUcsQ0FBQyxrQ0FBa0MsRUFDdEMsR0FBRyxDQUFDLFVBQVUsRUFDZCxHQUFHLENBQUMsVUFBVSxFQUNkLEdBQUcsQ0FBQyxVQUFVLEVBQ2QsR0FBRyxDQUFDLFVBQVUsQ0FDZixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEFjY2Vzc0NvbnRyb2xDb25maWd1cmF0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGlkPzogbnVtYmVyLFxuICAgIHB1YmxpYyBjbGllbnRJZD86IG51bWJlcixcbiAgICBwdWJsaWMgbWF4RmFpbGVkQ29uc2VjdXRpdmVMb2dpbkF0dGVtcHRzPzogbnVtYmVyIHwgbnVsbCxcbiAgICBwdWJsaWMgaXNUcmFja09sZFBhc3N3b3Jkcz86IGJvb2xlYW4sXG4gICAgcHVibGljIG1heE9sZFBhc3N3b3Jkc0Jsb2NrPzogbnVtYmVyLFxuICAgIHB1YmxpYyBtaW5QYXNzd29yZExlbmd0aD86IG51bWJlcixcbiAgICBwdWJsaWMgaXNQYXNzd29yZFJlcXVpcmVOdW1iZXI/OiBib29sZWFuLFxuICAgIHB1YmxpYyBpc1Bhc3N3b3JkUmVxdWlyZVN5bWJvbD86IGJvb2xlYW4sXG4gICAgcHVibGljIGlzUGFzc3dvcmRSZXF1aXJlQ2FwaXRhbExldHRlcj86IGJvb2xlYW4sXG4gICAgcHVibGljIGNyZWF0b3JJZD86IG51bWJlciB8IG51bGwsXG4gICAgcHVibGljIGNyZWF0ZWRBdD86IERhdGUsXG4gICAgcHVibGljIHVwZGF0ZWRBdD86IERhdGUsXG4gICAgcHVibGljIGRlbGV0ZWRBdD86IERhdGUgfCBudWxsXG4gICkge31cblxuICBwdWJsaWMgc3RhdGljIGZyb21PYmplY3Qob2JqOiBhbnkpOiBBY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBBY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbihcbiAgICAgIG9iai5pZCxcbiAgICAgIG9iai5jbGllbnRfaWQsXG4gICAgICBvYmoubWF4X2ZhaWxlZF9jb25zZWN1dGl2ZV9sb2dpbl9hdHRlbXB0cyxcbiAgICAgIG9iai5pc190cmFja19vbGRfcGFzc3dvcmRzLFxuICAgICAgb2JqLm1heF9vbGRfcGFzc3dvcmRzX2Jsb2NrLFxuICAgICAgb2JqLm1pbl9wYXNzd29yZF9sZW5ndGgsXG4gICAgICBvYmouaXNfcGFzc3dvcmRfcmVxdWlyZV9udW1iZXIsXG4gICAgICBvYmouaXNfcGFzc3dvcmRfcmVxdWlyZV9zeW1ib2wsXG4gICAgICBvYmouaXNfcGFzc3dvcmRfcmVxdWlyZV9jYXBpdGFsX2xldHRlcixcbiAgICAgIG9iai5jcmVhdG9yX2lkLFxuICAgICAgb2JqLmNyZWF0ZWRfYXQsXG4gICAgICBvYmoudXBkYXRlZF9hdCxcbiAgICAgIG9iai5kZWxldGVkX2F0XG4gICAgKTtcbiAgfVxufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hY2Nlc3MtY29udHJvbC1jb25maWcvYWNjZXNzLWNvbnRyb2wtY29uZmlnLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFDUyxFQUFXLEVBQ1gsUUFBaUIsRUFDakIsaUNBQWlELEVBQ2pELG1CQUE2QixFQUM3QixvQkFBNkIsRUFDN0IsaUJBQTBCLEVBQzFCLHVCQUFpQyxFQUNqQyx1QkFBaUMsRUFDakMsOEJBQXdDLEVBQ3hDLFNBQXlCLEVBQ3pCLFNBQWdCLEVBQ2hCLFNBQWdCLEVBQ2hCLFNBQXVCO1FBWnZCLE9BQUUsR0FBRixFQUFFLENBQVM7UUFDWCxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBZ0I7UUFDakQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFVO1FBQzdCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUztRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQVM7UUFDMUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFVO1FBQ2pDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBVTtRQUNqQyxtQ0FBOEIsR0FBOUIsOEJBQThCLENBQVU7UUFDeEMsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsY0FBUyxHQUFULFNBQVMsQ0FBTztRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFPO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFDN0IsQ0FBQztJQUVHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBUTtRQUMvQixPQUFPLElBQUksMEJBQTBCLENBQ25DLEdBQUcsQ0FBQyxFQUFFLEVBQ04sR0FBRyxDQUFDLFNBQVMsRUFDYixHQUFHLENBQUMscUNBQXFDLEVBQ3pDLEdBQUcsQ0FBQyxzQkFBc0IsRUFDMUIsR0FBRyxDQUFDLHVCQUF1QixFQUMzQixHQUFHLENBQUMsbUJBQW1CLEVBQ3ZCLEdBQUcsQ0FBQywwQkFBMEIsRUFDOUIsR0FBRyxDQUFDLDBCQUEwQixFQUM5QixHQUFHLENBQUMsa0NBQWtDLEVBQ3RDLEdBQUcsQ0FBQyxVQUFVLEVBQ2QsR0FBRyxDQUFDLFVBQVUsRUFDZCxHQUFHLENBQUMsVUFBVSxFQUNkLEdBQUcsQ0FBQyxVQUFVLENBQ2YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBBY2Nlc3NDb250cm9sQ29uZmlndXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpZD86IG51bWJlcixcbiAgICBwdWJsaWMgY2xpZW50SWQ/OiBudW1iZXIsXG4gICAgcHVibGljIG1heEZhaWxlZENvbnNlY3V0aXZlTG9naW5BdHRlbXB0cz86IG51bWJlciB8IG51bGwsXG4gICAgcHVibGljIGlzVHJhY2tPbGRQYXNzd29yZHM/OiBib29sZWFuLFxuICAgIHB1YmxpYyBtYXhPbGRQYXNzd29yZHNCbG9jaz86IG51bWJlcixcbiAgICBwdWJsaWMgbWluUGFzc3dvcmRMZW5ndGg/OiBudW1iZXIsXG4gICAgcHVibGljIGlzUGFzc3dvcmRSZXF1aXJlTnVtYmVyPzogYm9vbGVhbixcbiAgICBwdWJsaWMgaXNQYXNzd29yZFJlcXVpcmVTeW1ib2w/OiBib29sZWFuLFxuICAgIHB1YmxpYyBpc1Bhc3N3b3JkUmVxdWlyZUNhcGl0YWxMZXR0ZXI/OiBib29sZWFuLFxuICAgIHB1YmxpYyBjcmVhdG9ySWQ/OiBudW1iZXIgfCBudWxsLFxuICAgIHB1YmxpYyBjcmVhdGVkQXQ/OiBEYXRlLFxuICAgIHB1YmxpYyB1cGRhdGVkQXQ/OiBEYXRlLFxuICAgIHB1YmxpYyBkZWxldGVkQXQ/OiBEYXRlIHwgbnVsbFxuICApIHt9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tT2JqZWN0KG9iajogYW55KTogQWNjZXNzQ29udHJvbENvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgQWNjZXNzQ29udHJvbENvbmZpZ3VyYXRpb24oXG4gICAgICBvYmouaWQsXG4gICAgICBvYmouY2xpZW50X2lkLFxuICAgICAgb2JqLm1heF9mYWlsZWRfY29uc2VjdXRpdmVfbG9naW5fYXR0ZW1wdHMsXG4gICAgICBvYmouaXNfdHJhY2tfb2xkX3Bhc3N3b3JkcyxcbiAgICAgIG9iai5tYXhfb2xkX3Bhc3N3b3Jkc19ibG9jayxcbiAgICAgIG9iai5taW5fcGFzc3dvcmRfbGVuZ3RoLFxuICAgICAgb2JqLmlzX3Bhc3N3b3JkX3JlcXVpcmVfbnVtYmVyLFxuICAgICAgb2JqLmlzX3Bhc3N3b3JkX3JlcXVpcmVfc3ltYm9sLFxuICAgICAgb2JqLmlzX3Bhc3N3b3JkX3JlcXVpcmVfY2FwaXRhbF9sZXR0ZXIsXG4gICAgICBvYmouY3JlYXRvcl9pZCxcbiAgICAgIG9iai5jcmVhdGVkX2F0LFxuICAgICAgb2JqLnVwZGF0ZWRfYXQsXG4gICAgICBvYmouZGVsZXRlZF9hdFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -13,8 +13,8 @@ import { MatButtonModule } from '@angular/material/button';
13
13
  import { MatProgressBarModule } from '@angular/material/progress-bar';
14
14
  import * as i0 from "@angular/core";
15
15
  export class AccessControlConfigModule {
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigModule, declarations: [AccessControlConfigComponent,
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigModule, declarations: [AccessControlConfigComponent,
18
18
  AccessControlConfigFormComponent], imports: [CommonModule,
19
19
  ReactiveFormsModule,
20
20
  InfiniteScrollModule,
@@ -24,8 +24,8 @@ export class AccessControlConfigModule {
24
24
  MatCardModule,
25
25
  MatButtonToggleModule,
26
26
  MatButtonModule,
27
- MatProgressBarModule] });
28
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigModule, imports: [CommonModule,
27
+ MatProgressBarModule] }); }
28
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigModule, imports: [CommonModule,
29
29
  ReactiveFormsModule,
30
30
  InfiniteScrollModule,
31
31
  FlexLayoutModule,
@@ -34,9 +34,9 @@ export class AccessControlConfigModule {
34
34
  MatCardModule,
35
35
  MatButtonToggleModule,
36
36
  MatButtonModule,
37
- MatProgressBarModule] });
37
+ MatProgressBarModule] }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigModule, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigModule, decorators: [{
40
40
  type: NgModule,
41
41
  args: [{
42
42
  declarations: [
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
57
57
  ]
58
58
  }]
59
59
  }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYWNjZXNzLWNvbnRyb2wtY29uZmlnL2FjY2Vzcy1jb250cm9sLWNvbmZpZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDckgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7O0FBcUJwRSxNQUFNLE9BQU8seUJBQXlCO3dHQUF6Qix5QkFBeUI7eUdBQXpCLHlCQUF5QixpQkFoQmxDLDRCQUE0QjtZQUM1QixnQ0FBZ0MsYUFHaEMsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsZ0JBQWdCO1lBQ2hCLGdDQUFnQztZQUNoQyxjQUFjO1lBQ2QsYUFBYTtZQUNiLHFCQUFxQjtZQUNyQixlQUFlO1lBQ2Ysb0JBQW9CO3lHQUdYLHlCQUF5QixZQVpsQyxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixnQkFBZ0I7WUFDaEIsZ0NBQWdDO1lBQ2hDLGNBQWM7WUFDZCxhQUFhO1lBQ2IscUJBQXFCO1lBQ3JCLGVBQWU7WUFDZixvQkFBb0I7OzRGQUdYLHlCQUF5QjtrQkFsQnJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDRCQUE0Qjt3QkFDNUIsZ0NBQWdDO3FCQUNqQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixnQ0FBZ0M7d0JBQ2hDLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2Ysb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0NvbnRyb2xDb25maWdSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9hY2Nlc3MtY29udHJvbC1jb25maWctcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgQWNjZXNzQ29udHJvbENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vYWNjZXNzLWNvbnRyb2wtY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluZmluaXRlU2Nyb2xsTW9kdWxlIH0gZnJvbSAnbmd4LWluZmluaXRlLXNjcm9sbCc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xDb25maWdGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9hY2Nlc3MtY29udHJvbC1jb25maWctZm9ybS9hY2Nlc3MtY29udHJvbC1jb25maWctZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHtNYXRDYXJkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7TWF0QnV0dG9uVG9nZ2xlTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRQcm9ncmVzc0Jhck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBY2Nlc3NDb250cm9sQ29uZmlnQ29tcG9uZW50LFxuICAgIEFjY2Vzc0NvbnRyb2xDb25maWdGb3JtQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBJbmZpbml0ZVNjcm9sbE1vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIEFjY2Vzc0NvbnRyb2xDb25maWdSb3V0aW5nTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFjY2Vzc0NvbnRyb2xDb25maWdNb2R1bGUgeyB9XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvYWNjZXNzLWNvbnRyb2wtY29uZmlnL2FjY2Vzcy1jb250cm9sLWNvbmZpZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDckgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7O0FBcUJwRSxNQUFNLE9BQU8seUJBQXlCOytHQUF6Qix5QkFBeUI7Z0hBQXpCLHlCQUF5QixpQkFoQmxDLDRCQUE0QjtZQUM1QixnQ0FBZ0MsYUFHaEMsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsZ0JBQWdCO1lBQ2hCLGdDQUFnQztZQUNoQyxjQUFjO1lBQ2QsYUFBYTtZQUNiLHFCQUFxQjtZQUNyQixlQUFlO1lBQ2Ysb0JBQW9CO2dIQUdYLHlCQUF5QixZQVpsQyxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixnQkFBZ0I7WUFDaEIsZ0NBQWdDO1lBQ2hDLGNBQWM7WUFDZCxhQUFhO1lBQ2IscUJBQXFCO1lBQ3JCLGVBQWU7WUFDZixvQkFBb0I7OzRGQUdYLHlCQUF5QjtrQkFsQnJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDRCQUE0Qjt3QkFDNUIsZ0NBQWdDO3FCQUNqQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixnQ0FBZ0M7d0JBQ2hDLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2Ysb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0NvbnRyb2xDb25maWdSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9hY2Nlc3MtY29udHJvbC1jb25maWctcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHsgQWNjZXNzQ29udHJvbENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vYWNjZXNzLWNvbnRyb2wtY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluZmluaXRlU2Nyb2xsTW9kdWxlIH0gZnJvbSAnbmd4LWluZmluaXRlLXNjcm9sbCc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xDb25maWdGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9hY2Nlc3MtY29udHJvbC1jb25maWctZm9ybS9hY2Nlc3MtY29udHJvbC1jb25maWctZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHtNYXRDYXJkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7TWF0QnV0dG9uVG9nZ2xlTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRQcm9ncmVzc0Jhck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBY2Nlc3NDb250cm9sQ29uZmlnQ29tcG9uZW50LFxuICAgIEFjY2Vzc0NvbnRyb2xDb25maWdGb3JtQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBJbmZpbml0ZVNjcm9sbE1vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIEFjY2Vzc0NvbnRyb2xDb25maWdSb3V0aW5nTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIE1hdENhcmRNb2R1bGUsXG4gICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFjY2Vzc0NvbnRyb2xDb25maWdNb2R1bGUgeyB9XG4iXX0=
@@ -3,7 +3,6 @@ import { TechlifyServiceBaseClass } from '../base-model';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../core";
5
5
  export class AccessControlConfigService extends TechlifyServiceBaseClass {
6
- http;
7
6
  constructor(http) {
8
7
  super(http, 'access-control-configs');
9
8
  this.http = http;
@@ -20,13 +19,13 @@ export class AccessControlConfigService extends TechlifyServiceBaseClass {
20
19
  deleteConfig(configId) {
21
20
  return this.http.delete(`api/access-control-configs/${configId}`).toPromise();
22
21
  }
23
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
24
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigService, providedIn: 'root' });
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigService, providedIn: 'root' }); }
25
24
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccessControlConfigService, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccessControlConfigService, decorators: [{
27
26
  type: Injectable,
28
27
  args: [{
29
28
  providedIn: 'root'
30
29
  }]
31
- }], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2FjY2Vzcy1jb250cm9sLWNvbmZpZy9hY2Nlc3MtY29udHJvbC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTXpELE1BQU0sT0FBTywwQkFBMkIsU0FBUSx3QkFBd0I7SUFHN0Q7SUFEVCxZQUNTLElBQWlCO1FBRXhCLEtBQUssQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztRQUYvQixTQUFJLEdBQUosSUFBSSxDQUFhO0lBRzFCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEYsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUUsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsOEJBQThCLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN0RixDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWE7UUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoRixDQUFDO3dHQXRCVSwwQkFBMEI7NEdBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVjaGxpZnlTZXJ2aWNlQmFzZUNsYXNzIH0gZnJvbSAnLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQgeyBIdHRwU2VydmljZSB9IGZyb20gJy4uL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBY2Nlc3NDb250cm9sQ29uZmlnU2VydmljZSBleHRlbmRzIFRlY2hsaWZ5U2VydmljZUJhc2VDbGFzcyB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGh0dHA6IEh0dHBTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGh0dHAsICdhY2Nlc3MtY29udHJvbC1jb25maWdzJyk7XG4gIH1cblxuICBnZXRDb25maWdzKGZpbHRlcnM6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGBhcGkvYWNjZXNzLWNvbnRyb2wtY29uZmlnc2AsIHsgcGFyYW1zOiBmaWx0ZXJzIH0pLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgY3JlYXRlQ29uZmlnKGNvbmZpZzogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGBhcGkvYWNjZXNzLWNvbnRyb2wtY29uZmlnc2AsIGNvbmZpZykudG9Qcm9taXNlKCk7XG4gIH1cblxuICB1cGRhdGVDb25maWcoY29uZmlnOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgYXBpL2FjY2Vzcy1jb250cm9sLWNvbmZpZ3MvJHtjb25maWcuaWR9YCwgY29uZmlnKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGRlbGV0ZUNvbmZpZyhjb25maWdJZDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYGFwaS9hY2Nlc3MtY29udHJvbC1jb25maWdzLyR7Y29uZmlnSWR9YCkudG9Qcm9taXNlKCk7XG4gIH1cbn1cbiJdfQ==
30
+ }], ctorParameters: () => [{ type: i1.HttpService }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2FjY2Vzcy1jb250cm9sLWNvbmZpZy9hY2Nlc3MtY29udHJvbC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTXpELE1BQU0sT0FBTywwQkFBMkIsU0FBUSx3QkFBd0I7SUFFdEUsWUFDUyxJQUFpQjtRQUV4QixLQUFLLENBQUMsSUFBSSxFQUFFLHdCQUF3QixDQUFDLENBQUM7UUFGL0IsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUcxQixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RGLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBVztRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBVztRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLDhCQUE4QixNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEYsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUFhO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsOEJBQThCLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEYsQ0FBQzsrR0F0QlUsMEJBQTBCO21IQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlY2hsaWZ5U2VydmljZUJhc2VDbGFzcyB9IGZyb20gJy4uL2Jhc2UtbW9kZWwnO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29udHJvbENvbmZpZ1NlcnZpY2UgZXh0ZW5kcyBUZWNobGlmeVNlcnZpY2VCYXNlQ2xhc3Mge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBodHRwOiBIdHRwU2VydmljZVxuICApIHtcbiAgICBzdXBlcihodHRwLCAnYWNjZXNzLWNvbnRyb2wtY29uZmlncycpO1xuICB9XG5cbiAgZ2V0Q29uZmlncyhmaWx0ZXJzOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgYXBpL2FjY2Vzcy1jb250cm9sLWNvbmZpZ3NgLCB7IHBhcmFtczogZmlsdGVycyB9KS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGNyZWF0ZUNvbmZpZyhjb25maWc6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgYXBpL2FjY2Vzcy1jb250cm9sLWNvbmZpZ3NgLCBjb25maWcpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgdXBkYXRlQ29uZmlnKGNvbmZpZzogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYGFwaS9hY2Nlc3MtY29udHJvbC1jb25maWdzLyR7Y29uZmlnLmlkfWAsIGNvbmZpZykudG9Qcm9taXNlKCk7XG4gIH1cblxuICBkZWxldGVDb25maWcoY29uZmlnSWQ6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGBhcGkvYWNjZXNzLWNvbnRyb2wtY29uZmlncy8ke2NvbmZpZ0lkfWApLnRvUHJvbWlzZSgpO1xuICB9XG59XG4iXX0=