ngx-techlify-core 18.87.0 → 18.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/esm2022/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +9 -10
  2. package/esm2022/lib/access-control-config/access-control-config.component.mjs +6 -7
  3. package/esm2022/lib/access-control-config/access-control-config.module.mjs +8 -40
  4. package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list.component.mjs +7 -8
  5. package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list.module.mjs +8 -43
  6. package/esm2022/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.component.mjs +9 -10
  7. package/esm2022/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.module.mjs +5 -46
  8. package/esm2022/lib/app-admin/app-admin-home/app-admin-home.component.mjs +2 -2
  9. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +8 -16
  10. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +9 -9
  11. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.module.mjs +8 -31
  12. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +6 -6
  13. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +8 -24
  14. package/esm2022/lib/audit-log/audit-log-view/audit-log-view.module.mjs +8 -12
  15. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +8 -12
  16. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +1 -1
  17. package/esm2022/lib/base-model/techlify-list/techlify-list.component.mjs +42 -4
  18. package/esm2022/lib/change-password/change-password.component.mjs +4 -5
  19. package/esm2022/lib/change-password/change-password.module.mjs +5 -24
  20. package/esm2022/lib/column-selector/column-selector/column-selector.component.mjs +7 -8
  21. package/esm2022/lib/column-selector/column-selector.module.mjs +5 -53
  22. package/esm2022/lib/core/core.module.mjs +1 -1
  23. package/esm2022/lib/data-table/data-table.component.mjs +11 -13
  24. package/esm2022/lib/data-table/data-table.module.mjs +5 -17
  25. package/esm2022/lib/document-viewer/document-viewer.component.mjs +5 -6
  26. package/esm2022/lib/document-viewer/document-viewer.module.mjs +1 -5
  27. package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.mjs +5 -17
  28. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +5 -6
  29. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.mjs +5 -21
  30. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +13 -14
  31. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.mjs +5 -21
  32. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +5 -6
  33. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.mjs +5 -21
  34. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +13 -14
  35. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.mjs +5 -21
  36. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +4 -5
  37. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.mjs +5 -21
  38. package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +8 -8
  39. package/esm2022/lib/entity-files/entity-file-list/entity-file-list.component.mjs +19 -19
  40. package/esm2022/lib/entity-files/entity-file-list-widget/entity-file-list-widget.component.mjs +2 -4
  41. package/esm2022/lib/entity-files/entity-file-list.module.mjs +1 -13
  42. package/esm2022/lib/entity-files/entity-file.service.mjs +3 -3
  43. package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.mjs +21 -8
  44. package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.mjs +5 -21
  45. package/esm2022/lib/file-dropper/file-dropper.component.mjs +4 -6
  46. package/esm2022/lib/file-dropper/file-dropper.module.mjs +1 -5
  47. package/esm2022/lib/forgot-password/forgot-password.component.mjs +1 -1
  48. package/esm2022/lib/forgot-password/forgot-password.module.mjs +5 -13
  49. package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.component.mjs +3 -4
  50. package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.module.mjs +5 -17
  51. package/esm2022/lib/import-csv/field-mapping/field-mapping.component.mjs +5 -5
  52. package/esm2022/lib/import-csv/import-csv.component.mjs +20 -19
  53. package/esm2022/lib/import-csv/import-csv.module.mjs +8 -38
  54. package/esm2022/lib/import-csv/import-history-list/import-history-list.component.mjs +3 -3
  55. package/esm2022/lib/import-csv/import-success/import-success.component.mjs +5 -5
  56. package/esm2022/lib/ip-address-selector/ip-address-selector.module.mjs +5 -29
  57. package/esm2022/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +7 -8
  58. package/esm2022/lib/locked-date/locked-date-form/locked-date-form.component.mjs +1 -1
  59. package/esm2022/lib/locked-date/locked-date.module.mjs +5 -32
  60. package/esm2022/lib/locked-date/locked-dates-list/locked-date-list.component.mjs +3 -3
  61. package/esm2022/lib/login/login-form-fields/login-form-fields.component.mjs +5 -8
  62. package/esm2022/lib/login/login.module.mjs +5 -29
  63. package/esm2022/lib/login-history-for-user/login-history-for-user.component.mjs +5 -6
  64. package/esm2022/lib/login-history-for-user/login-history-for-user.module.mjs +8 -28
  65. package/esm2022/lib/material.module.mjs +7 -3
  66. package/esm2022/lib/note/comment-form/comment-form.component.mjs +4 -8
  67. package/esm2022/lib/note/note-comment-list/note-comment-list.component.mjs +3 -4
  68. package/esm2022/lib/note/note-list/note-list.component.mjs +17 -18
  69. package/esm2022/lib/note/note.module.mjs +3 -7
  70. package/esm2022/lib/number-input-button/number-input-button/number-input-button.component.mjs +7 -7
  71. package/esm2022/lib/number-input-button/number-input-button.module.mjs +5 -13
  72. package/esm2022/lib/number-selector/number-selector.component.mjs +4 -6
  73. package/esm2022/lib/ordinal-pipe/ordinal-pipe.mjs +30 -0
  74. package/esm2022/lib/pdf-button/pdf-button.component.mjs +3 -3
  75. package/esm2022/lib/pdf-button/pdf-button.module.mjs +5 -13
  76. package/esm2022/lib/phone-number-selector/phone-number-selector.component.mjs +4 -4
  77. package/esm2022/lib/profile/profile-edit.component.mjs +1 -1
  78. package/esm2022/lib/profile/profile.module.mjs +5 -13
  79. package/esm2022/lib/read-more/read-more.module.mjs +3 -7
  80. package/esm2022/lib/reset-password/reset-password.component.mjs +4 -4
  81. package/esm2022/lib/reset-password/reset-password.module.mjs +5 -24
  82. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +3 -3
  83. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.mjs +5 -17
  84. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +3 -3
  85. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.mjs +5 -13
  86. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +4 -4
  87. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.mjs +5 -17
  88. package/esm2022/lib/restrictors/restrictors-form/restrictors-form.component.mjs +9 -10
  89. package/esm2022/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +6 -7
  90. package/esm2022/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +12 -13
  91. package/esm2022/lib/restrictors/restrictors.module.mjs +8 -60
  92. package/esm2022/lib/role/permission/permission.module.mjs +8 -23
  93. package/esm2022/lib/role/permission/permissions-management.component.mjs +6 -6
  94. package/esm2022/lib/role/role-form.component.mjs +1 -1
  95. package/esm2022/lib/role/role-list/role-list.component.mjs +8 -8
  96. package/esm2022/lib/role/role-view/role-view.module.mjs +8 -27
  97. package/esm2022/lib/role/role.module.mjs +8 -30
  98. package/esm2022/lib/searchable-selector/searchable-selector.component.mjs +6 -6
  99. package/esm2022/lib/searchable-selector/searchable-selector.module.mjs +1 -5
  100. package/esm2022/lib/shared.module.mjs +27 -3
  101. package/esm2022/lib/signup/signup.component.mjs +1 -1
  102. package/esm2022/lib/signup/signup.module.mjs +5 -13
  103. package/esm2022/lib/subscription/subscription-form/subscription-form.component.mjs +3 -4
  104. package/esm2022/lib/subscription/subscription-form/subscription-form.module.mjs +8 -24
  105. package/esm2022/lib/subscription/subscription-listing/subscription-listing.component.mjs +18 -19
  106. package/esm2022/lib/subscription/subscription-listing/subscription-listing.module.mjs +8 -35
  107. package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.component.mjs +15 -16
  108. package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.module.mjs +8 -32
  109. package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.component.mjs +5 -6
  110. package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.module.mjs +8 -16
  111. package/esm2022/lib/tag/techlify-tagger-tag-form/techlify-tagger-tag-form.component.mjs +12 -26
  112. package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +4 -4
  113. package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +5 -21
  114. package/esm2022/lib/tag/techlify-tagger-tag-list/techlify-tagger-tag-list.component.mjs +19 -37
  115. package/esm2022/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +1 -1
  116. package/esm2022/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +5 -29
  117. package/esm2022/lib/techlify-app-selector/techlify-app-selector.component.mjs +5 -6
  118. package/esm2022/lib/techlify-app-selector/techlify-app-selector.module.mjs +6 -13
  119. package/esm2022/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.mjs +11 -22
  120. package/esm2022/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +1 -1
  121. package/esm2022/lib/techlify-feature/techlify-feature-listing.component.mjs +9 -10
  122. package/esm2022/lib/techlify-feature/techlify-feature.module.mjs +7 -30
  123. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +3 -4
  124. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.mjs +5 -17
  125. package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +4 -5
  126. package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.module.mjs +5 -17
  127. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +10 -11
  128. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs +5 -29
  129. package/esm2022/lib/techlify-update/techlify-update.module.mjs +7 -31
  130. package/esm2022/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +10 -11
  131. package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.mjs +7 -8
  132. package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.mjs +5 -17
  133. package/esm2022/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +3 -4
  134. package/esm2022/lib/techlify-update/update-notifier/update-notifier.module.mjs +8 -20
  135. package/esm2022/lib/techlify-update/update-view/update-view.component.mjs +3 -4
  136. package/esm2022/lib/techlify-update/update-view/update-view.module.mjs +5 -13
  137. package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.component.mjs +7 -9
  138. package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.module.mjs +7 -15
  139. package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.component.mjs +3 -4
  140. package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.module.mjs +5 -24
  141. package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.mjs +6 -18
  142. package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.mjs +4 -5
  143. package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.mjs +8 -32
  144. package/esm2022/lib/timeline-filter/timeline-filter.component.mjs +10 -11
  145. package/esm2022/lib/timeline-filter/timeline-filter.module.mjs +1 -5
  146. package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.module.mjs +1 -5
  147. package/esm2022/lib/user/user-enable-button-component/user-enable-button.module.mjs +5 -17
  148. package/esm2022/lib/user/user-explore.component.mjs +3 -4
  149. package/esm2022/lib/user/user-form/user-form.component.mjs +11 -15
  150. package/esm2022/lib/user/user-list/user-list.component.mjs +10 -21
  151. package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.module.mjs +5 -13
  152. package/esm2022/lib/user/user.module.mjs +1 -9
  153. package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.mjs +5 -13
  154. package/esm2022/lib/user-clients-list/user-clients-list.module.mjs +5 -13
  155. package/esm2022/lib/user-selector/user-selector.component.mjs +3 -3
  156. package/esm2022/lib/user-selector/user-selector.module.mjs +5 -17
  157. package/esm2022/lib/utility/date-utils.service.mjs +23 -1
  158. package/esm2022/lib/utility/utility.module.mjs +5 -9
  159. package/esm2022/public-api.mjs +3 -1
  160. package/fesm2022/ngx-techlify-core.mjs +1047 -1799
  161. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  162. package/lib/access-control-config/access-control-config.module.d.ts +3 -11
  163. package/lib/app-admin/admin-role/admin-role-list/admin-role-list.module.d.ts +3 -11
  164. package/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.module.d.ts +2 -10
  165. package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +2 -4
  166. package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +3 -9
  167. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +2 -6
  168. package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +2 -3
  169. package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +2 -3
  170. package/lib/base-model/techlify-list/techlify-list.component.d.ts +20 -0
  171. package/lib/change-password/change-password.module.d.ts +3 -7
  172. package/lib/column-selector/column-selector.module.d.ts +2 -12
  173. package/lib/data-table/data-table.module.d.ts +2 -5
  174. package/lib/document-viewer/document-viewer.module.d.ts +3 -4
  175. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts +3 -6
  176. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts +4 -8
  177. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts +4 -8
  178. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts +4 -8
  179. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts +5 -9
  180. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts +3 -7
  181. package/lib/entity-files/entity-file-list.module.d.ts +5 -8
  182. package/lib/entity-files/entity-file.service.d.ts +1 -1
  183. package/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.d.ts +3 -1
  184. package/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.d.ts +2 -6
  185. package/lib/file-dropper/file-dropper.module.d.ts +2 -3
  186. package/lib/forgot-password/forgot-password.module.d.ts +3 -5
  187. package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.module.d.ts +3 -6
  188. package/lib/import-csv/import-csv.component.d.ts +3 -3
  189. package/lib/import-csv/import-csv.module.d.ts +3 -9
  190. package/lib/ip-address-selector/ip-address-selector.module.d.ts +2 -8
  191. package/lib/locked-date/locked-date.module.d.ts +2 -9
  192. package/lib/login/login.module.d.ts +4 -10
  193. package/lib/login-history-for-user/login-history-for-user.module.d.ts +2 -7
  194. package/lib/material.module.d.ts +25 -24
  195. package/lib/note/note.module.d.ts +3 -4
  196. package/lib/number-input-button/number-input-button.module.d.ts +2 -4
  197. package/lib/ordinal-pipe/ordinal-pipe.d.ts +7 -0
  198. package/lib/pdf-button/pdf-button.module.d.ts +2 -4
  199. package/lib/profile/profile.module.d.ts +3 -5
  200. package/lib/read-more/read-more.module.d.ts +1 -2
  201. package/lib/reset-password/reset-password.module.d.ts +4 -8
  202. package/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.d.ts +2 -5
  203. package/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.d.ts +2 -4
  204. package/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.d.ts +2 -5
  205. package/lib/restrictors/restrictors.module.d.ts +6 -19
  206. package/lib/role/permission/permission.module.d.ts +2 -5
  207. package/lib/role/role-view/role-view.module.d.ts +2 -6
  208. package/lib/role/role.module.d.ts +2 -7
  209. package/lib/searchable-selector/searchable-selector.module.d.ts +3 -4
  210. package/lib/shared.module.d.ts +14 -8
  211. package/lib/signup/signup.module.d.ts +3 -5
  212. package/lib/subscription/subscription-form/subscription-form.module.d.ts +2 -6
  213. package/lib/subscription/subscription-listing/subscription-listing.module.d.ts +3 -9
  214. package/lib/subscription/subscription-package-listing/subscription-package-listing.module.d.ts +2 -8
  215. package/lib/subscription/subscription-package-view/subscription-package-view.module.d.ts +2 -4
  216. package/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts +2 -6
  217. package/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts +2 -8
  218. package/lib/techlify-app-selector/techlify-app-selector.module.d.ts +4 -5
  219. package/lib/techlify-feature/techlify-feature.module.d.ts +4 -9
  220. package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.d.ts +3 -6
  221. package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts +3 -6
  222. package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts +3 -9
  223. package/lib/techlify-update/techlify-update.module.d.ts +4 -10
  224. package/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.d.ts +2 -5
  225. package/lib/techlify-update/update-notifier/update-notifier.module.d.ts +3 -6
  226. package/lib/techlify-update/update-view/update-view.module.d.ts +2 -4
  227. package/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.module.d.ts +2 -4
  228. package/lib/techlify-view/techlify-view-form/techlify-view-form.module.d.ts +2 -6
  229. package/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.d.ts +3 -6
  230. package/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.d.ts +2 -8
  231. package/lib/timeline-filter/timeline-filter.module.d.ts +10 -11
  232. package/lib/user/app-admin-user-view/app-admin-user-view.module.d.ts +6 -7
  233. package/lib/user/user-enable-button-component/user-enable-button.module.d.ts +2 -5
  234. package/lib/user/user-sessions/user-sessions/user-sessions.module.d.ts +2 -4
  235. package/lib/user/user.module.d.ts +7 -9
  236. package/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.d.ts +2 -4
  237. package/lib/user-clients-list/user-clients-list.module.d.ts +3 -5
  238. package/lib/user-selector/user-selector.module.d.ts +2 -4
  239. package/lib/utility/date-utils.service.d.ts +13 -0
  240. package/lib/utility/utility.module.d.ts +2 -3
  241. package/package.json +2 -1
  242. package/public-api.d.ts +1 -0
@@ -1,35 +1,26 @@
1
1
  import { Component } from '@angular/core';
2
- import { ReactiveFormsModule } from '@angular/forms';
3
- import { CommonModule } from '@angular/common';
4
2
  import { TechlifyTaggerTagFormComponent } from '../techlify-tagger-tag-form/techlify-tagger-tag-form.component';
5
3
  import { RouterModule } from '@angular/router';
6
- import { SearchableSelectorModule } from '../../searchable-selector/searchable-selector.module';
7
- import { TechlifyDeleteButtonComponent } from '../../delete-button/techlify-delete-button.component';
8
4
  import { AuditLogForModelModule } from '../../audit-log/audit-log-for-model/audit-log-for-model.module';
9
- import { FlexLayoutModule } from '@angular/flex-layout';
10
- import { MaterialModule } from '../../material.module';
11
- import { InfiniteScrollModule } from 'ngx-infinite-scroll';
12
- import { MatProgressBarModule } from '@angular/material/progress-bar';
13
- import { TechlifyIconModule } from '../../techlify-icon/techlify-icon.module';
14
5
  import { TechlifyListComponent } from '../../base-model';
15
- import { NgxPermissionsModule } from 'ngx-permissions';
6
+ import { SharedModule } from '../../shared.module';
16
7
  import * as i0 from "@angular/core";
17
8
  import * as i1 from "../tag.service";
18
9
  import * as i2 from "@angular/forms";
19
10
  import * as i3 from "@angular/common";
20
- import * as i4 from "../../searchable-selector/searchable-selector.component";
21
- import * as i5 from "../../audit-log/audit-log-for-model/audit-log-for-model.component";
22
- import * as i6 from "@angular/flex-layout/flex";
23
- import * as i7 from "@angular/material/button";
24
- import * as i8 from "@angular/material/form-field";
25
- import * as i9 from "@angular/material/icon";
26
- import * as i10 from "@angular/material/input";
27
- import * as i11 from "@angular/material/sort";
28
- import * as i12 from "@angular/material/table";
29
- import * as i13 from "@angular/material/card";
30
- import * as i14 from "@angular/material/progress-bar";
31
- import * as i15 from "ngx-infinite-scroll";
32
- import * as i16 from "ngx-permissions";
11
+ import * as i4 from "ngx-infinite-scroll";
12
+ import * as i5 from "@angular/material/button";
13
+ import * as i6 from "@angular/material/form-field";
14
+ import * as i7 from "@angular/material/icon";
15
+ import * as i8 from "@angular/material/input";
16
+ import * as i9 from "@angular/material/sort";
17
+ import * as i10 from "@angular/material/table";
18
+ import * as i11 from "@angular/material/card";
19
+ import * as i12 from "@angular/material/progress-bar";
20
+ import * as i13 from "ngx-permissions";
21
+ import * as i14 from "../../searchable-selector/searchable-selector.component";
22
+ import * as i15 from "../../delete-button/techlify-delete-button.component";
23
+ import * as i16 from "../../audit-log/audit-log-for-model/audit-log-for-model.component";
33
24
  export class TechlifyTaggerTagListComponent extends TechlifyListComponent {
34
25
  constructor(tagService, fb) {
35
26
  super(tagService);
@@ -52,24 +43,15 @@ export class TechlifyTaggerTagListComponent extends TechlifyListComponent {
52
43
  this.listenFilterChanges();
53
44
  }
54
45
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagListComponent, deps: [{ token: i1.TagService }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyTaggerTagListComponent, isStandalone: true, selector: "app-techlify-tagger-tag-list", usesInheritance: true, ngImport: i0, template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutGap=\"0.5rem\" fxLayoutAlign=\"start center\">\n <div fxLayout fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">Tags</h5>\n <app-techlify-tagger-tag-form (success)=\"modelCreated($event)\" *ngxPermissionsOnly=\"['tag.create']\"\n class=\"ms-2\"></app-techlify-tagger-tag-form>\n </div>\n <span fxFlex></span>\n <div>\n <form [formGroup]=\"filterForm\" fxLayout=\"row\" fxLayoutGap=\"0.3rem\">\n <mat-form-field appearance=\"outline\" class=\"fl-md\">\n <mat-label>Search Tags</mat-label>\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Search records\" name=\"search\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterForm.get('search').value\" matSuffix mat-icon-button\n (click)=\"filterForm.get('search').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field class='fl-sm'>\n <mat-label>Category</mat-label>\n <app-searchable-selector formControlName=\"category_ids\" apiUrl=\"api/techlify-tagger-categories\"\n [multiple]=\"true\">\n </app-searchable-selector>\n <button *ngIf=\"filterForm.get('category_ids').value\" matSuffix mat-icon-button\n (click)=\"filterForm.get('category_ids').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n </div>\n </mat-card>\n <mat-card appearance=\"outlined\" class=\"mt-2 p-0\">\n <table mat-table matSort [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" (matSortChange)=\"sortColumn($event)\">\n\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index\"> {{ i+1}} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.title}}\n <div *ngIf=\"element?.description\" class=\"text-secondary\">\n <small>{{element?.description}}</small>\n </div>\n </td>\n </ng-container>\n\n <!-- Category Column -->\n <ng-container matColumnDef=\"category\">\n <th mat-header-cell *matHeaderCellDef> Category </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.category?.title}}\n <div *ngIf=\"element?.category?.description\" class=\"text-secondary\">\n <small>{{element?.category?.description}}</small>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"tagged_count\">\n <th mat-header-cell *matHeaderCellDef> Tagged </th>\n <td mat-cell *matCellDef=\"let element\">\n <span *ngIf=\"element?.tagged_count\">{{element.tagged_count}}\n records\n </span>\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n <div>{{element.creator?.name}} </div>\n <div><small class=\"text-muted\">on {{element.created_at | date: 'mediumDate'}} </small></div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\" class=\"text-secondary\">\n <app-audit-log-for-model modelType=\"TechlifyTaggerTag\" [modelId]=\"element?.id\" logView=\"all\"\n [isIconView]=\"true\">\n </app-audit-log-for-model>\n\n <app-techlify-tagger-tag-form (success)=\"modelsUpdatedById($event)\" [tagInfo]=\"element\"\n *ngxPermissionsOnly=\"['tag.update']\" class=\"ms-1\"></app-techlify-tagger-tag-form>\n\n <ng-container *ngIf=\"!element?.tagged_count\">\n <app-techlify-delete-button *ngxPermissionsOnly=\"['tag.delete']\" class='text-secondary ms-1'\n [model]=\"element\" [service]=\"tagService\"\n message=\"Deleting this tag cannot be undone. Are you sure you want to continue?\"\n (deleted)=\"modelsDeletedById(element)\">\n </app-techlify-delete-button>\n </ng-container>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </mat-card>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"this.isWorking\"></mat-progress-bar>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "component", type: TechlifyTaggerTagFormComponent, selector: "app-techlify-tagger-tag-form", inputs: ["tagInfo"] }, { kind: "ngmodule", type: SearchableSelectorModule }, { kind: "component", type: i4.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "isEmitInitialEvent", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange", "isItemsEmpty"] }, { kind: "component", type: TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }, { kind: "ngmodule", type: AuditLogForModelModule }, { kind: "component", type: i5.AuditLogForModelComponent, selector: "app-audit-log-for-model", inputs: ["isIconView", "modelType", "modelId", "logView"] }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: FlexLayoutModule }, { 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: "directive", type: i6.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: i6.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: i6.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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MaterialModule }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i11.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i11.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i12.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i12.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i12.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i12.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i12.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i12.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i12.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i12.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i12.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i12.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i13.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i14.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: InfiniteScrollModule }, { kind: "directive", type: i15.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "ngmodule", type: TechlifyIconModule }, { kind: "ngmodule", type: NgxPermissionsModule }, { kind: "directive", type: i16.NgxPermissionsDirective, selector: "[ngxPermissionsOnly],[ngxPermissionsExcept]", inputs: ["ngxPermissionsOnly", "ngxPermissionsOnlyThen", "ngxPermissionsOnlyElse", "ngxPermissionsExcept", "ngxPermissionsExceptElse", "ngxPermissionsExceptThen", "ngxPermissionsThen", "ngxPermissionsElse", "ngxPermissionsOnlyAuthorisedStrategy", "ngxPermissionsOnlyUnauthorisedStrategy", "ngxPermissionsExceptUnauthorisedStrategy", "ngxPermissionsExceptAuthorisedStrategy", "ngxPermissionsUnauthorisedStrategy", "ngxPermissionsAuthorisedStrategy"], outputs: ["permissionsAuthorized", "permissionsUnauthorized"] }] }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyTaggerTagListComponent, isStandalone: true, selector: "app-techlify-tagger-tag-list", usesInheritance: true, ngImport: i0, template: "<div class=\"m-2 d-flex flex-column\">\n <mat-card appearance=\"outlined\" class=\"d-flex gap-2 justify-content-start align-items-center\">\n <div class=\"d-flex justify-content-start align-items-center\">\n <h5 class=\"m-0\">Tags</h5>\n <app-techlify-tagger-tag-form (success)=\"modelCreated($event)\" *ngxPermissionsOnly=\"['tag.create']\"\n class=\"ms-2\"></app-techlify-tagger-tag-form>\n </div>\n <span class=\"flex-fill\"></span>\n <div>\n <form [formGroup]=\"filterForm\" class=\"d-flex gap-2\">\n <mat-form-field appearance=\"outline\" class=\"fl-md\">\n <mat-label>Search Tags</mat-label>\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Search records\" name=\"search\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterForm.get('search').value\" matSuffix mat-icon-button\n (click)=\"filterForm.get('search').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field class='fl-sm'>\n <mat-label>Category</mat-label>\n <app-searchable-selector formControlName=\"category_ids\" apiUrl=\"api/techlify-tagger-categories\"\n [multiple]=\"true\">\n </app-searchable-selector>\n <button *ngIf=\"filterForm.get('category_ids').value\" matSuffix mat-icon-button\n (click)=\"filterForm.get('category_ids').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n </div>\n </mat-card>\n <mat-card appearance=\"outlined\" class=\"mt-2 p-0\">\n <table mat-table matSort [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" (matSortChange)=\"sortColumn($event)\">\n\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index\"> {{ i+1}} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.title}}\n <div *ngIf=\"element?.description\" class=\"text-secondary\">\n <small>{{element?.description}}</small>\n </div>\n </td>\n </ng-container>\n\n <!-- Category Column -->\n <ng-container matColumnDef=\"category\">\n <th mat-header-cell *matHeaderCellDef> Category </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.category?.title}}\n <div *ngIf=\"element?.category?.description\" class=\"text-secondary\">\n <small>{{element?.category?.description}}</small>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"tagged_count\">\n <th mat-header-cell *matHeaderCellDef> Tagged </th>\n <td mat-cell *matCellDef=\"let element\">\n <span *ngIf=\"element?.tagged_count\">{{element.tagged_count}}\n records\n </span>\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n <div>{{element.creator?.name}} </div>\n <div><small class=\"text-muted\">on {{element.created_at | date: 'mediumDate'}} </small></div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\" class=\"text-secondary\">\n <app-audit-log-for-model modelType=\"TechlifyTaggerTag\" [modelId]=\"element?.id\" logView=\"all\"\n [isIconView]=\"true\">\n </app-audit-log-for-model>\n\n <app-techlify-tagger-tag-form (success)=\"modelsUpdatedById($event)\" [tagInfo]=\"element\"\n *ngxPermissionsOnly=\"['tag.update']\" class=\"ms-1\"></app-techlify-tagger-tag-form>\n\n <ng-container *ngIf=\"!element?.tagged_count\">\n <app-techlify-delete-button *ngxPermissionsOnly=\"['tag.delete']\" class='text-secondary ms-1'\n [model]=\"element\" [service]=\"tagService\"\n message=\"Deleting this tag cannot be undone. Are you sure you want to continue?\"\n (deleted)=\"modelsDeletedById(element)\">\n </app-techlify-delete-button>\n </ng-container>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </mat-card>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"this.isWorking\"></mat-progress-bar>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: "directive", type: i9.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i9.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i10.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i10.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i12.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i13.NgxPermissionsDirective, selector: "[ngxPermissionsOnly],[ngxPermissionsExcept]", inputs: ["ngxPermissionsOnly", "ngxPermissionsOnlyThen", "ngxPermissionsOnlyElse", "ngxPermissionsExcept", "ngxPermissionsExceptElse", "ngxPermissionsExceptThen", "ngxPermissionsThen", "ngxPermissionsElse", "ngxPermissionsOnlyAuthorisedStrategy", "ngxPermissionsOnlyUnauthorisedStrategy", "ngxPermissionsExceptUnauthorisedStrategy", "ngxPermissionsExceptAuthorisedStrategy", "ngxPermissionsUnauthorisedStrategy", "ngxPermissionsAuthorisedStrategy"], outputs: ["permissionsAuthorized", "permissionsUnauthorized"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i14.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "isEmitInitialEvent", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange", "isItemsEmpty"] }, { kind: "component", type: i15.TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "component", type: TechlifyTaggerTagFormComponent, selector: "app-techlify-tagger-tag-form", inputs: ["tagInfo"] }, { kind: "ngmodule", type: AuditLogForModelModule }, { kind: "component", type: i16.AuditLogForModelComponent, selector: "app-audit-log-for-model", inputs: ["isIconView", "modelType", "modelId", "logView"] }, { kind: "ngmodule", type: RouterModule }] }); }
56
47
  }
57
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagListComponent, decorators: [{
58
49
  type: Component,
59
50
  args: [{ selector: 'app-techlify-tagger-tag-list', standalone: true, imports: [
60
- CommonModule,
51
+ SharedModule,
61
52
  TechlifyTaggerTagFormComponent,
62
- SearchableSelectorModule,
63
- TechlifyDeleteButtonComponent,
64
53
  AuditLogForModelModule,
65
- RouterModule,
66
- FlexLayoutModule,
67
- ReactiveFormsModule,
68
- MaterialModule,
69
- InfiniteScrollModule,
70
- MatProgressBarModule,
71
- TechlifyIconModule,
72
- NgxPermissionsModule
73
- ], template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayout fxLayoutGap=\"0.5rem\" fxLayoutAlign=\"start center\">\n <div fxLayout fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">Tags</h5>\n <app-techlify-tagger-tag-form (success)=\"modelCreated($event)\" *ngxPermissionsOnly=\"['tag.create']\"\n class=\"ms-2\"></app-techlify-tagger-tag-form>\n </div>\n <span fxFlex></span>\n <div>\n <form [formGroup]=\"filterForm\" fxLayout=\"row\" fxLayoutGap=\"0.3rem\">\n <mat-form-field appearance=\"outline\" class=\"fl-md\">\n <mat-label>Search Tags</mat-label>\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Search records\" name=\"search\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterForm.get('search').value\" matSuffix mat-icon-button\n (click)=\"filterForm.get('search').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field class='fl-sm'>\n <mat-label>Category</mat-label>\n <app-searchable-selector formControlName=\"category_ids\" apiUrl=\"api/techlify-tagger-categories\"\n [multiple]=\"true\">\n </app-searchable-selector>\n <button *ngIf=\"filterForm.get('category_ids').value\" matSuffix mat-icon-button\n (click)=\"filterForm.get('category_ids').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n </div>\n </mat-card>\n <mat-card appearance=\"outlined\" class=\"mt-2 p-0\">\n <table mat-table matSort [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" (matSortChange)=\"sortColumn($event)\">\n\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index\"> {{ i+1}} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.title}}\n <div *ngIf=\"element?.description\" class=\"text-secondary\">\n <small>{{element?.description}}</small>\n </div>\n </td>\n </ng-container>\n\n <!-- Category Column -->\n <ng-container matColumnDef=\"category\">\n <th mat-header-cell *matHeaderCellDef> Category </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.category?.title}}\n <div *ngIf=\"element?.category?.description\" class=\"text-secondary\">\n <small>{{element?.category?.description}}</small>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"tagged_count\">\n <th mat-header-cell *matHeaderCellDef> Tagged </th>\n <td mat-cell *matCellDef=\"let element\">\n <span *ngIf=\"element?.tagged_count\">{{element.tagged_count}}\n records\n </span>\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n <div>{{element.creator?.name}} </div>\n <div><small class=\"text-muted\">on {{element.created_at | date: 'mediumDate'}} </small></div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\" class=\"text-secondary\">\n <app-audit-log-for-model modelType=\"TechlifyTaggerTag\" [modelId]=\"element?.id\" logView=\"all\"\n [isIconView]=\"true\">\n </app-audit-log-for-model>\n\n <app-techlify-tagger-tag-form (success)=\"modelsUpdatedById($event)\" [tagInfo]=\"element\"\n *ngxPermissionsOnly=\"['tag.update']\" class=\"ms-1\"></app-techlify-tagger-tag-form>\n\n <ng-container *ngIf=\"!element?.tagged_count\">\n <app-techlify-delete-button *ngxPermissionsOnly=\"['tag.delete']\" class='text-secondary ms-1'\n [model]=\"element\" [service]=\"tagService\"\n message=\"Deleting this tag cannot be undone. Are you sure you want to continue?\"\n (deleted)=\"modelsDeletedById(element)\">\n </app-techlify-delete-button>\n </ng-container>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </mat-card>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"this.isWorking\"></mat-progress-bar>\n</div>" }]
54
+ RouterModule
55
+ ], template: "<div class=\"m-2 d-flex flex-column\">\n <mat-card appearance=\"outlined\" class=\"d-flex gap-2 justify-content-start align-items-center\">\n <div class=\"d-flex justify-content-start align-items-center\">\n <h5 class=\"m-0\">Tags</h5>\n <app-techlify-tagger-tag-form (success)=\"modelCreated($event)\" *ngxPermissionsOnly=\"['tag.create']\"\n class=\"ms-2\"></app-techlify-tagger-tag-form>\n </div>\n <span class=\"flex-fill\"></span>\n <div>\n <form [formGroup]=\"filterForm\" class=\"d-flex gap-2\">\n <mat-form-field appearance=\"outline\" class=\"fl-md\">\n <mat-label>Search Tags</mat-label>\n <input type=\"text\" matInput formControlName=\"search\" placeholder=\"Search records\" name=\"search\"\n autocomplete=\"off\" />\n <button *ngIf=\"filterForm.get('search').value\" matSuffix mat-icon-button\n (click)=\"filterForm.get('search').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-form-field class='fl-sm'>\n <mat-label>Category</mat-label>\n <app-searchable-selector formControlName=\"category_ids\" apiUrl=\"api/techlify-tagger-categories\"\n [multiple]=\"true\">\n </app-searchable-selector>\n <button *ngIf=\"filterForm.get('category_ids').value\" matSuffix mat-icon-button\n (click)=\"filterForm.get('category_ids').setValue('')\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n </form>\n </div>\n </mat-card>\n <mat-card appearance=\"outlined\" class=\"mt-2 p-0\">\n <table mat-table matSort [dataSource]=\"models\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" (matSortChange)=\"sortColumn($event)\">\n\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index\"> {{ i+1}} </td>\n </ng-container>\n\n <!-- Title Column -->\n <ng-container matColumnDef=\"title\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.title}}\n <div *ngIf=\"element?.description\" class=\"text-secondary\">\n <small>{{element?.description}}</small>\n </div>\n </td>\n </ng-container>\n\n <!-- Category Column -->\n <ng-container matColumnDef=\"category\">\n <th mat-header-cell *matHeaderCellDef> Category </th>\n <td mat-cell *matCellDef=\"let element\"> {{element.category?.title}}\n <div *ngIf=\"element?.category?.description\" class=\"text-secondary\">\n <small>{{element?.category?.description}}</small>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"tagged_count\">\n <th mat-header-cell *matHeaderCellDef> Tagged </th>\n <td mat-cell *matCellDef=\"let element\">\n <span *ngIf=\"element?.tagged_count\">{{element.tagged_count}}\n records\n </span>\n </td>\n </ng-container>\n\n <!-- Creator Column -->\n <ng-container matColumnDef=\"creator\">\n <th mat-header-cell *matHeaderCellDef> Creator </th>\n <td mat-cell *matCellDef=\"let element\">\n <div>{{element.creator?.name}} </div>\n <div><small class=\"text-muted\">on {{element.created_at | date: 'mediumDate'}} </small></div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\" class=\"text-secondary\">\n <app-audit-log-for-model modelType=\"TechlifyTaggerTag\" [modelId]=\"element?.id\" logView=\"all\"\n [isIconView]=\"true\">\n </app-audit-log-for-model>\n\n <app-techlify-tagger-tag-form (success)=\"modelsUpdatedById($event)\" [tagInfo]=\"element\"\n *ngxPermissionsOnly=\"['tag.update']\" class=\"ms-1\"></app-techlify-tagger-tag-form>\n\n <ng-container *ngIf=\"!element?.tagged_count\">\n <app-techlify-delete-button *ngxPermissionsOnly=\"['tag.delete']\" class='text-secondary ms-1'\n [model]=\"element\" [service]=\"tagService\"\n message=\"Deleting this tag cannot be undone. Are you sure you want to continue?\"\n (deleted)=\"modelsDeletedById(element)\">\n </app-techlify-delete-button>\n </ng-container>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </mat-card>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"this.isWorking\"></mat-progress-bar>\n</div>" }]
74
56
  }], ctorParameters: () => [{ type: i1.TagService }, { type: i2.UntypedFormBuilder }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGFnL3RlY2hsaWZ5LXRhZ2dlci10YWctbGlzdC90ZWNobGlmeS10YWdnZXItdGFnLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90YWcvdGVjaGxpZnktdGFnZ2VyLXRhZy1saXN0L3RlY2hsaWZ5LXRhZ2dlci10YWctbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDaEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUJ2RCxNQUFNLE9BQU8sOEJBQStCLFNBQVEscUJBQXFCO0lBUXZFLFlBQ1MsVUFBc0IsRUFDckIsRUFBc0I7UUFFOUIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBSFgsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQVJoQyxxQkFBZ0IsR0FBYSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEcscURBQXFEO1FBQ3JELDRCQUF1QixHQUFRO1lBQzdCLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7U0FDakMsQ0FBQztRQVFBLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDOUIsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ1osT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO1lBQ3RCLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsUUFBUTtRQUNOLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDOytHQTFCVSw4QkFBOEI7bUdBQTlCLDhCQUE4QiwrR0N0QzNDLG1yTEEwR00seUREbkZGLFlBQVksc0xBQ1osOEJBQThCLDZGQUM5Qix3QkFBd0IseWpCQUN4Qiw2QkFBNkIsNklBQzdCLHNCQUFzQix5TEFDdEIsWUFBWSw4QkFDWixnQkFBZ0IsZzFFQUNoQixtQkFBbUIsNDhCQUNuQixjQUFjLDJzRkFDZCxvQkFBb0IsbWFBQ3BCLG9CQUFvQiw4QkFDcEIsa0JBQWtCLDhCQUNsQixvQkFBb0I7OzRGQUdYLDhCQUE4QjtrQkFyQjFDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLDhCQUE4Qjt3QkFDOUIsd0JBQXdCO3dCQUN4Qiw2QkFBNkI7d0JBQzdCLHNCQUFzQjt3QkFDdEIsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixvQkFBb0I7cUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRhZ1NlcnZpY2UgfSBmcm9tICcuLi90YWcuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGVjaGxpZnlUYWdnZXJUYWdGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSB9IGZyb20gJy4uLy4uL3NlYXJjaGFibGUtc2VsZWN0b3Ivc2VhcmNoYWJsZS1zZWxlY3Rvci5tb2R1bGUnO1xuaW1wb3J0IHsgVGVjaGxpZnlEZWxldGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9kZWxldGUtYnV0dG9uL3RlY2hsaWZ5LWRlbGV0ZS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEF1ZGl0TG9nRm9yTW9kZWxNb2R1bGUgfSBmcm9tICcuLi8uLi9hdWRpdC1sb2cvYXVkaXQtbG9nLWZvci1tb2RlbC9hdWRpdC1sb2ctZm9yLW1vZGVsLm1vZHVsZSc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi8uLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxNb2R1bGUgfSBmcm9tICduZ3gtaW5maW5pdGUtc2Nyb2xsJztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IFRlY2hsaWZ5SWNvbk1vZHVsZSB9IGZyb20gJy4uLy4uL3RlY2hsaWZ5LWljb24vdGVjaGxpZnktaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHsgVGVjaGxpZnlMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQgeyBOZ3hQZXJtaXNzaW9uc01vZHVsZSB9IGZyb20gJ25neC1wZXJtaXNzaW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZWNobGlmeS10YWdnZXItdGFnLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVjaGxpZnktdGFnZ2VyLXRhZy1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGVjaGxpZnktdGFnZ2VyLXRhZy1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVGVjaGxpZnlUYWdnZXJUYWdGb3JtQ29tcG9uZW50LFxuICAgIFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSxcbiAgICBUZWNobGlmeURlbGV0ZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBBdWRpdExvZ0Zvck1vZGVsTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgSW5maW5pdGVTY3JvbGxNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgVGVjaGxpZnlJY29uTW9kdWxlLFxuICAgIE5neFBlcm1pc3Npb25zTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlUYWdnZXJUYWdMaXN0Q29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFsnaW5kZXgnLCAndGl0bGUnLCAnY2F0ZWdvcnknLCAndGFnZ2VkX2NvdW50JywgJ2NyZWF0b3InLCAnYWN0aW9ucyddO1xuICAvL05vIGNvbmZpZ3VyYXRpb24gbmVlZGVkLCB3ZSBhcmUgdXNpbmcganVzdCAnc2VhcmNoJ1xuICBmaWx0ZXJGb3JtQ29uZmlndXJhdGlvbjogYW55ID0ge1xuICAgIGNhdGVnb3J5X2lkczogeyBtdWx0aXBsZTogdHJ1ZSB9XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRhZ1NlcnZpY2U6IFRhZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICApIHtcbiAgICBzdXBlcih0YWdTZXJ2aWNlKTtcblxuICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgc2VhcmNoOiBbJyddLFxuICAgICAgc29ydF9ieTogWyd0aXRsZXxhc2MnXSxcbiAgICAgIGNhdGVnb3J5X2lkczogWycnXVxuICAgIH0pO1xuICB9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhdGNoRmlsdGVyc0Zyb21Sb3V0ZSgpO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB0aGlzLmxpc3RlbkZpbHRlckNoYW5nZXMoKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJtLTJcIj5cbiAgICA8bWF0LWNhcmQgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCIgZnhMYXlvdXQgZnhMYXlvdXRHYXA9XCIwLjVyZW1cIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgPGg1IGNsYXNzPVwibS0wXCI+VGFnczwvaDU+XG4gICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LXRhZ2dlci10YWctZm9ybSAoc3VjY2Vzcyk9XCJtb2RlbENyZWF0ZWQoJGV2ZW50KVwiICpuZ3hQZXJtaXNzaW9uc09ubHk9XCJbJ3RhZy5jcmVhdGUnXVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0yXCI+PC9hcHAtdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gZnhGbGV4Pjwvc3Bhbj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIwLjNyZW1cIj5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImZsLW1kXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+U2VhcmNoIFRhZ3M8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggcmVjb3Jkc1wiIG5hbWU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImZpbHRlckZvcm0uZ2V0KCdzZWFyY2gnKS52YWx1ZVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJmaWx0ZXJGb3JtLmdldCgnc2VhcmNoJykuc2V0VmFsdWUoJycpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz0nZmwtc20nPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkNhdGVnb3J5PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtc2VhcmNoYWJsZS1zZWxlY3RvciBmb3JtQ29udHJvbE5hbWU9XCJjYXRlZ29yeV9pZHNcIiBhcGlVcmw9XCJhcGkvdGVjaGxpZnktdGFnZ2VyLWNhdGVnb3JpZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9hcHAtc2VhcmNoYWJsZS1zZWxlY3Rvcj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImZpbHRlckZvcm0uZ2V0KCdjYXRlZ29yeV9pZHMnKS52YWx1ZVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJmaWx0ZXJGb3JtLmdldCgnY2F0ZWdvcnlfaWRzJykuc2V0VmFsdWUoJycpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L21hdC1jYXJkPlxuICAgIDxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIiBjbGFzcz1cIm10LTIgcC0wXCI+XG4gICAgICAgIDx0YWJsZSBtYXQtdGFibGUgbWF0U29ydCBbZGF0YVNvdXJjZV09XCJtb2RlbHNcIiBjbGFzcz1cInctMTAwXCIgaW5maW5pdGVTY3JvbGwgW2luZmluaXRlU2Nyb2xsRGlzdGFuY2VdPVwiMlwiXG4gICAgICAgICAgICBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiIChzY3JvbGxlZCk9XCJvblNjcm9sbCgpXCIgKG1hdFNvcnRDaGFuZ2UpPVwic29ydENvbHVtbigkZXZlbnQpXCI+XG5cblxuICAgICAgICAgICAgPCEtLSBJbmRleCBDb2x1bW4gLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XG4gICAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCI+IHt7IGkrMX19IDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBUaXRsZSBDb2x1bW4gLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXIgZGlzYWJsZUNsZWFyPiBUaXRsZSA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC50aXRsZX19XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlbGVtZW50Py5kZXNjcmlwdGlvblwiIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbD57e2VsZW1lbnQ/LmRlc2NyaXB0aW9ufX08L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0gQ2F0ZWdvcnkgQ29sdW1uIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjYXRlZ29yeVwiPlxuICAgICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IENhdGVnb3J5IDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmNhdGVnb3J5Py50aXRsZX19XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlbGVtZW50Py5jYXRlZ29yeT8uZGVzY3JpcHRpb25cIiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c21hbGw+e3tlbGVtZW50Py5jYXRlZ29yeT8uZGVzY3JpcHRpb259fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ0YWdnZWRfY291bnRcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBUYWdnZWQgPC90aD5cbiAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImVsZW1lbnQ/LnRhZ2dlZF9jb3VudFwiPnt7ZWxlbWVudC50YWdnZWRfY291bnR9fVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3Jkc1xuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIENyZWF0b3IgQ29sdW1uIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjcmVhdG9yXCI+XG4gICAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQ3JlYXRvciA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3tlbGVtZW50LmNyZWF0b3I/Lm5hbWV9fSA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj48c21hbGwgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+b24ge3tlbGVtZW50LmNyZWF0ZWRfYXQgfCBkYXRlOiAnbWVkaXVtRGF0ZSd9fSA8L3NtYWxsPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBBY3Rpb25zIENvbHVtbiAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEFjdGlvbnMgPC90aD5cbiAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBkYXRhSW5kZXhcIiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtYXVkaXQtbG9nLWZvci1tb2RlbCBtb2RlbFR5cGU9XCJUZWNobGlmeVRhZ2dlclRhZ1wiIFttb2RlbElkXT1cImVsZW1lbnQ/LmlkXCIgbG9nVmlldz1cImFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNJY29uVmlld109XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvYXBwLWF1ZGl0LWxvZy1mb3ItbW9kZWw+XG5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS10YWdnZXItdGFnLWZvcm0gKHN1Y2Nlc3MpPVwibW9kZWxzVXBkYXRlZEJ5SWQoJGV2ZW50KVwiIFt0YWdJbmZvXT1cImVsZW1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5neFBlcm1pc3Npb25zT25seT1cIlsndGFnLnVwZGF0ZSddXCIgY2xhc3M9XCJtcy0xXCI+PC9hcHAtdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZWxlbWVudD8udGFnZ2VkX2NvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24gKm5neFBlcm1pc3Npb25zT25seT1cIlsndGFnLmRlbGV0ZSddXCIgY2xhc3M9J3RleHQtc2Vjb25kYXJ5IG1zLTEnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImVsZW1lbnRcIiBbc2VydmljZV09XCJ0YWdTZXJ2aWNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPVwiRGVsZXRpbmcgdGhpcyB0YWcgY2Fubm90IGJlIHVuZG9uZS4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbnRpbnVlP1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZWQpPVwibW9kZWxzRGVsZXRlZEJ5SWQoZWxlbWVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgICAgICA8L3RhYmxlPlxuICAgIDwvbWF0LWNhcmQ+XG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdJZj1cInRoaXMuaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuPC9kaXY+Il19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGFnL3RlY2hsaWZ5LXRhZ2dlci10YWctbGlzdC90ZWNobGlmeS10YWdnZXItdGFnLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi90YWcvdGVjaGxpZnktdGFnZ2VyLXRhZy1saXN0L3RlY2hsaWZ5LXRhZ2dlci10YWctbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR2xELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWNuRCxNQUFNLE9BQU8sOEJBQStCLFNBQVEscUJBQXFCO0lBUXZFLFlBQ1MsVUFBc0IsRUFDckIsRUFBc0I7UUFFOUIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBSFgsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQVJoQyxxQkFBZ0IsR0FBYSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEcscURBQXFEO1FBQ3JELDRCQUF1QixHQUFRO1lBQzdCLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7U0FDakMsQ0FBQztRQVFBLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDOUIsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ1osT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO1lBQ3RCLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsUUFBUTtRQUNOLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDOytHQTFCVSw4QkFBOEI7bUdBQTlCLDhCQUE4QiwrR0NyQjNDLGlzTEEwR00seUREM0ZGLFlBQVksZzlLQUNaLDhCQUE4Qiw2RkFDOUIsc0JBQXNCLDBMQUN0QixZQUFZOzs0RkFHSCw4QkFBOEI7a0JBWjFDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLDhCQUE4Qjt3QkFDOUIsc0JBQXNCO3dCQUN0QixZQUFZO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRhZ1NlcnZpY2UgfSBmcm9tICcuLi90YWcuc2VydmljZSc7XG5pbXBvcnQgeyBUZWNobGlmeVRhZ2dlclRhZ0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi90ZWNobGlmeS10YWdnZXItdGFnLWZvcm0vdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXVkaXRMb2dGb3JNb2RlbE1vZHVsZSB9IGZyb20gJy4uLy4uL2F1ZGl0LWxvZy9hdWRpdC1sb2ctZm9yLW1vZGVsL2F1ZGl0LWxvZy1mb3ItbW9kZWwubW9kdWxlJztcbmltcG9ydCB7IFRlY2hsaWZ5TGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtbW9kZWwnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkLm1vZHVsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZWNobGlmeS10YWdnZXItdGFnLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVjaGxpZnktdGFnZ2VyLXRhZy1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGVjaGxpZnktdGFnZ2VyLXRhZy1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgVGVjaGxpZnlUYWdnZXJUYWdGb3JtQ29tcG9uZW50LFxuICAgIEF1ZGl0TG9nRm9yTW9kZWxNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlUYWdnZXJUYWdMaXN0Q29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFsnaW5kZXgnLCAndGl0bGUnLCAnY2F0ZWdvcnknLCAndGFnZ2VkX2NvdW50JywgJ2NyZWF0b3InLCAnYWN0aW9ucyddO1xuICAvL05vIGNvbmZpZ3VyYXRpb24gbmVlZGVkLCB3ZSBhcmUgdXNpbmcganVzdCAnc2VhcmNoJ1xuICBmaWx0ZXJGb3JtQ29uZmlndXJhdGlvbjogYW55ID0ge1xuICAgIGNhdGVnb3J5X2lkczogeyBtdWx0aXBsZTogdHJ1ZSB9XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRhZ1NlcnZpY2U6IFRhZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICApIHtcbiAgICBzdXBlcih0YWdTZXJ2aWNlKTtcblxuICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgc2VhcmNoOiBbJyddLFxuICAgICAgc29ydF9ieTogWyd0aXRsZXxhc2MnXSxcbiAgICAgIGNhdGVnb3J5X2lkczogWycnXVxuICAgIH0pO1xuICB9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhdGNoRmlsdGVyc0Zyb21Sb3V0ZSgpO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB0aGlzLmxpc3RlbkZpbHRlckNoYW5nZXMoKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwibS0yIGQtZmxleCBmbGV4LWNvbHVtblwiPlxuICAgIDxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIiBjbGFzcz1cImQtZmxleCBnYXAtMiBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGg1IGNsYXNzPVwibS0wXCI+VGFnczwvaDU+XG4gICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LXRhZ2dlci10YWctZm9ybSAoc3VjY2Vzcyk9XCJtb2RlbENyZWF0ZWQoJGV2ZW50KVwiICpuZ3hQZXJtaXNzaW9uc09ubHk9XCJbJ3RhZy5jcmVhdGUnXVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtcy0yXCI+PC9hcHAtdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4LWZpbGxcIj48L3NwYW4+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwiZmwtbWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5TZWFyY2ggVGFnczwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCByZWNvcmRzXCIgbmFtZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZmlsdGVyRm9ybS5nZXQoJ3NlYXJjaCcpLnZhbHVlXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbHRlckZvcm0uZ2V0KCdzZWFyY2gnKS5zZXRWYWx1ZSgnJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPSdmbC1zbSc+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q2F0ZWdvcnk8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1zZWFyY2hhYmxlLXNlbGVjdG9yIGZvcm1Db250cm9sTmFtZT1cImNhdGVnb3J5X2lkc1wiIGFwaVVybD1cImFwaS90ZWNobGlmeS10YWdnZXItY2F0ZWdvcmllc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZmlsdGVyRm9ybS5nZXQoJ2NhdGVnb3J5X2lkcycpLnZhbHVlXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbHRlckZvcm0uZ2V0KCdjYXRlZ29yeV9pZHMnKS5zZXRWYWx1ZSgnJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQ+XG4gICAgPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwibXQtMiBwLTBcIj5cbiAgICAgICAgPHRhYmxlIG1hdC10YWJsZSBtYXRTb3J0IFtkYXRhU291cmNlXT1cIm1vZGVsc1wiIGNsYXNzPVwidy0xMDBcIiBpbmZpbml0ZVNjcm9sbCBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIyXCJcbiAgICAgICAgICAgIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCIgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIiAobWF0U29ydENoYW5nZSk9XCJzb3J0Q29sdW1uKCRldmVudClcIj5cblxuXG4gICAgICAgICAgICA8IS0tIEluZGV4IENvbHVtbiAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gaW5kZXhcIj4ge3sgaSsxfX0gPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIFRpdGxlIENvbHVtbiAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlciBkaXNhYmxlQ2xlYXI+IFRpdGxlIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVsZW1lbnQ/LmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsPnt7ZWxlbWVudD8uZGVzY3JpcHRpb259fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBDYXRlZ29yeSBDb2x1bW4gLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNhdGVnb3J5XCI+XG4gICAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQ2F0ZWdvcnkgPC90aD5cbiAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQuY2F0ZWdvcnk/LnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVsZW1lbnQ/LmNhdGVnb3J5Py5kZXNjcmlwdGlvblwiIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbD57e2VsZW1lbnQ/LmNhdGVnb3J5Py5kZXNjcmlwdGlvbn19PC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInRhZ2dlZF9jb3VudFwiPlxuICAgICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFRhZ2dlZCA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZWxlbWVudD8udGFnZ2VkX2NvdW50XCI+e3tlbGVtZW50LnRhZ2dlZF9jb3VudH19XG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRzXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDwhLS0gQ3JlYXRvciBDb2x1bW4gLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNyZWF0b3JcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBDcmVhdG9yIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj57e2VsZW1lbnQuY3JlYXRvcj8ubmFtZX19IDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PjxzbWFsbCBjbGFzcz1cInRleHQtbXV0ZWRcIj5vbiB7e2VsZW1lbnQuY3JlYXRlZF9hdCB8IGRhdGU6ICdtZWRpdW1EYXRlJ319IDwvc21hbGw+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8IS0tIEFjdGlvbnMgQ29sdW1uIC0tPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQWN0aW9ucyA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGRhdGFJbmRleFwiIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1hdWRpdC1sb2ctZm9yLW1vZGVsIG1vZGVsVHlwZT1cIlRlY2hsaWZ5VGFnZ2VyVGFnXCIgW21vZGVsSWRdPVwiZWxlbWVudD8uaWRcIiBsb2dWaWV3PVwiYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc0ljb25WaWV3XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9hcHAtYXVkaXQtbG9nLWZvci1tb2RlbD5cblxuICAgICAgICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LXRhZ2dlci10YWctZm9ybSAoc3VjY2Vzcyk9XCJtb2RlbHNVcGRhdGVkQnlJZCgkZXZlbnQpXCIgW3RhZ0luZm9dPVwiZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmd4UGVybWlzc2lvbnNPbmx5PVwiWyd0YWcudXBkYXRlJ11cIiBjbGFzcz1cIm1zLTFcIj48L2FwcC10ZWNobGlmeS10YWdnZXItdGFnLWZvcm0+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFlbGVtZW50Py50YWdnZWRfY291bnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtdGVjaGxpZnktZGVsZXRlLWJ1dHRvbiAqbmd4UGVybWlzc2lvbnNPbmx5PVwiWyd0YWcuZGVsZXRlJ11cIiBjbGFzcz0ndGV4dC1zZWNvbmRhcnkgbXMtMSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiZWxlbWVudFwiIFtzZXJ2aWNlXT1cInRhZ1NlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9XCJEZWxldGluZyB0aGlzIHRhZyBjYW5ub3QgYmUgdW5kb25lLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlZCk9XCJtb2RlbHNEZWxldGVkQnlJZChlbGVtZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hcHAtdGVjaGxpZnktZGVsZXRlLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgICAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgICAgIDwvdGFibGU+XG4gICAgPC9tYXQtY2FyZD5cbiAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwidGhpcy5pc1dvcmtpbmdcIj48L21hdC1wcm9ncmVzcy1iYXI+XG48L2Rpdj4iXX0=
@@ -141,7 +141,7 @@ let TechlifyTaggerTagSelectorComponent = class TechlifyTaggerTagSelectorComponen
141
141
  this._focusMonitor.stopMonitoring(this._elementRef);
142
142
  }
143
143
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: i2.HttpService }, { token: MAT_FORM_FIELD, optional: true }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
144
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyTaggerTagSelectorComponent, selector: "app-techlify-tagger-tag-selector", inputs: { categories: "categories", multiple: "multiple", enableSearch: "enableSearch", showAllTags: "showAllTags", useSelectButtonStyle: "useSelectButtonStyle", required: "required", disabled: "disabled", value: "value", placeholder: "placeholder" }, providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagSelectorComponent }], ngImport: i0, template: "<app-searchable-selector *ngIf=\"apiUrl && !useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [apiUrl]=\"apiUrl\"\n [enableSearch]=\"enableSearch\" [multiple]=\"multiple\" (selectionChange)=\"selectionChange($event)\">\n</app-searchable-selector>\n\n<mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n *ngIf=\"apiUrl && useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [multiple]=\"multiple\"\n (change)=\"selectionChange($event.value)\">\n <mat-button-toggle *ngFor=\"let tag of tags\" [value]=\"tag.id\">{{tag.title}}</mat-button-toggle>\n</mat-button-toggle-group>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i5.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "isEmitInitialEvent", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange", "isItemsEmpty"] }] }); }
144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyTaggerTagSelectorComponent, selector: "app-techlify-tagger-tag-selector", inputs: { categories: "categories", multiple: "multiple", enableSearch: "enableSearch", showAllTags: "showAllTags", useSelectButtonStyle: "useSelectButtonStyle", required: "required", disabled: "disabled", value: "value", placeholder: "placeholder" }, providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagSelectorComponent }], ngImport: i0, template: "<app-searchable-selector *ngIf=\"apiUrl && !useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [apiUrl]=\"apiUrl\"\n [enableSearch]=\"enableSearch\" [multiple]=\"multiple\" (selectionChange)=\"selectionChange($event)\">\n</app-searchable-selector>\n\n<mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n *ngIf=\"apiUrl && useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [multiple]=\"multiple\"\n (change)=\"selectionChange($event.value)\">\n <mat-button-toggle *ngFor=\"let tag of tags\" [value]=\"tag.id\">{{tag.title}}</mat-button-toggle>\n</mat-button-toggle-group>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i5.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "subtitleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "panelWidth", "focusSearchOnOpen", "isEmitInitialEvent", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange", "isItemsEmpty"] }] }); }
145
145
  };
146
146
  TechlifyTaggerTagSelectorComponent = TechlifyTaggerTagSelectorComponent_1 = __decorate([
147
147
  UntilDestroy()
@@ -1,29 +1,11 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
2
  import { TechlifyTaggerTagSelectorComponent } from './techlify-tagger-tag-selector.component';
4
- import { FlexLayoutModule } from '@angular/flex-layout';
5
- import { ReactiveFormsModule } from '@angular/forms';
6
- import { MatAutocompleteModule } from '@angular/material/autocomplete';
7
- import { MatButtonToggleModule } from '@angular/material/button-toggle';
8
- import { MaterialModule } from '../../material.module';
9
- import { SearchableSelectorModule } from '../../searchable-selector/searchable-selector.module';
3
+ import { SharedModule } from '../../shared.module';
10
4
  import * as i0 from "@angular/core";
11
5
  export class TechlifyTaggerTagSelectorModule {
12
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorModule, declarations: [TechlifyTaggerTagSelectorComponent], imports: [CommonModule,
14
- MaterialModule,
15
- FlexLayoutModule,
16
- MatAutocompleteModule,
17
- ReactiveFormsModule,
18
- SearchableSelectorModule,
19
- MatButtonToggleModule], exports: [TechlifyTaggerTagSelectorComponent] }); }
20
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorModule, imports: [CommonModule,
21
- MaterialModule,
22
- FlexLayoutModule,
23
- MatAutocompleteModule,
24
- ReactiveFormsModule,
25
- SearchableSelectorModule,
26
- MatButtonToggleModule] }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorModule, declarations: [TechlifyTaggerTagSelectorComponent], imports: [SharedModule], exports: [TechlifyTaggerTagSelectorComponent] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorModule, imports: [SharedModule] }); }
27
9
  }
28
10
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyTaggerTagSelectorModule, decorators: [{
29
11
  type: NgModule,
@@ -32,15 +14,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
32
14
  TechlifyTaggerTagSelectorComponent
33
15
  ],
34
16
  imports: [
35
- CommonModule,
36
- MaterialModule,
37
- FlexLayoutModule,
38
- MatAutocompleteModule,
39
- ReactiveFormsModule,
40
- SearchableSelectorModule,
41
- MatButtonToggleModule
17
+ SharedModule
42
18
  ],
43
19
  exports: [TechlifyTaggerTagSelectorComponent]
44
20
  }]
45
21
  }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RhZy90ZWNobGlmeS10YWdnZXItdGFnLXNlbGVjdG9yL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7QUFtQmhHLE1BQU0sT0FBTywrQkFBK0I7K0dBQS9CLCtCQUErQjtnSEFBL0IsK0JBQStCLGlCQWJ4QyxrQ0FBa0MsYUFHbEMsWUFBWTtZQUNaLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIscUJBQXFCLGFBRWIsa0NBQWtDO2dIQUVqQywrQkFBK0IsWUFWeEMsWUFBWTtZQUNaLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIscUJBQXFCOzs0RkFJWiwrQkFBK0I7a0JBZjNDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGtDQUFrQztxQkFDbkM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsa0NBQWtDLENBQUM7aUJBQzlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUZWNobGlmeVRhZ2dlclRhZ1NlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi90ZWNobGlmeS10YWdnZXItdGFnLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vLi4vbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7IFNlYXJjaGFibGVTZWxlY3Rvck1vZHVsZSB9IGZyb20gJy4uLy4uL3NlYXJjaGFibGUtc2VsZWN0b3Ivc2VhcmNoYWJsZS1zZWxlY3Rvci5tb2R1bGUnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVGVjaGxpZnlUYWdnZXJUYWdTZWxlY3RvckNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU2VhcmNoYWJsZVNlbGVjdG9yTW9kdWxlLFxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbVGVjaGxpZnlUYWdnZXJUYWdTZWxlY3RvckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlUYWdnZXJUYWdTZWxlY3Rvck1vZHVsZSB7IH1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RhZy90ZWNobGlmeS10YWdnZXItdGFnLXNlbGVjdG9yL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWFuRCxNQUFNLE9BQU8sK0JBQStCOytHQUEvQiwrQkFBK0I7Z0hBQS9CLCtCQUErQixpQkFQeEMsa0NBQWtDLGFBR2xDLFlBQVksYUFFSixrQ0FBa0M7Z0hBRWpDLCtCQUErQixZQUp4QyxZQUFZOzs0RkFJSCwrQkFBK0I7a0JBVDNDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGtDQUFrQztxQkFDbkM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsa0NBQWtDLENBQUM7aUJBQzlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlY2hsaWZ5VGFnZ2VyVGFnU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uLy4uL3NoYXJlZC5tb2R1bGUnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVGVjaGxpZnlUYWdnZXJUYWdTZWxlY3RvckNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgU2hhcmVkTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtUZWNobGlmeVRhZ2dlclRhZ1NlbGVjdG9yQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBUZWNobGlmeVRhZ2dlclRhZ1NlbGVjdG9yTW9kdWxlIHsgfVxuIl19
@@ -4,9 +4,8 @@ import * as i1 from "../core/environment.service";
4
4
  import * as i2 from "@angular/material/button";
5
5
  import * as i3 from "@angular/material/icon";
6
6
  import * as i4 from "@angular/material/card";
7
- import * as i5 from "@angular/flex-layout/flex";
8
- import * as i6 from "@angular/cdk/overlay";
9
- import * as i7 from "@angular/common";
7
+ import * as i5 from "@angular/cdk/overlay";
8
+ import * as i6 from "@angular/common";
10
9
  export class TechlifyAppSelectorComponent {
11
10
  constructor(environmentService) {
12
11
  this.environmentService = environmentService;
@@ -39,14 +38,14 @@ export class TechlifyAppSelectorComponent {
39
38
  window.open(this.appConfiguration['prod'][app], '_blank').focus();
40
39
  }
41
40
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyAppSelectorComponent, deps: [{ token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyAppSelectorComponent, selector: "app-techlify-app-selector", inputs: { imageHeight: "imageHeight", imageWidth: "imageWidth" }, ngImport: i0, template: "<button mat-icon-button (click)=\"isOpen = !isOpen\" type=\"button\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <mat-icon>apps</mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"isOpen\"\n (overlayOutsideClick)=\"isOpen = false\">\n <mat-card>\n <mat-card-content fxLayout=\"column\">\n <div fxLayoutAlign=\"start center\">\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('techlify-hr')\">\n <img ngSrc=\"https://shared.techlify.com/hr.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">TechlifyHR</div>\n </div>\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('inventory')\">\n <img ngSrc=\"https://shared.techlify.com/inventory.png\" [width]=\"imageWidth\"\n [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Inventory</div>\n </div>\n\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('careers')\">\n <img ngSrc=\"https://shared.techlify.com/careers.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Careers.gy</div>\n </div>\n </div>\n\n <div fxLayoutAlign=\"start center\">\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('books')\">\n <img ngSrc=\"https://shared.techlify.com/books.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Books</div>\n </div>\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('works')\">\n <img ngSrc=\"https://shared.techlify.com/works.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Works</div>\n </div>\n </div>\n\n </mat-card-content>\n </mat-card>\n</ng-template>", styles: [".app-item{padding:10px}.app-item:hover{border-radius:2px;background:#0000001a;cursor:pointer}\n"], dependencies: [{ kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { 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.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: i6.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i6.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i7.NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }] }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TechlifyAppSelectorComponent, selector: "app-techlify-app-selector", inputs: { imageHeight: "imageHeight", imageWidth: "imageWidth" }, ngImport: i0, template: "<button mat-icon-button (click)=\"isOpen = !isOpen\" type=\"button\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <mat-icon>apps</mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"isOpen\"\n (overlayOutsideClick)=\"isOpen = false\">\n <mat-card>\n <mat-card-content class=\"d-flex flex-column\">\n <div class=\"d-flex justify-content-start align-items-center\">\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('techlify-hr')\">\n <img ngSrc=\"https://shared.techlify.com/hr.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">TechlifyHR</div>\n </div>\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('inventory')\">\n <img ngSrc=\"https://shared.techlify.com/inventory.png\" [width]=\"imageWidth\"\n [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Inventory</div>\n </div>\n\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('careers')\">\n <img ngSrc=\"https://shared.techlify.com/careers.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Careers.gy</div>\n </div>\n </div>\n\n <div class=\"d-flex justify-content-start align-items-center\">\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('books')\">\n <img ngSrc=\"https://shared.techlify.com/books.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Books</div>\n </div>\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('works')\">\n <img ngSrc=\"https://shared.techlify.com/works.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Works</div>\n </div>\n </div>\n\n </mat-card-content>\n </mat-card>\n</ng-template>", styles: [".app-item{padding:10px}.app-item:hover{border-radius:2px;background:#0000001a;cursor:pointer}\n"], dependencies: [{ kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i5.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i5.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i6.NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }] }); }
43
42
  }
44
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyAppSelectorComponent, decorators: [{
45
44
  type: Component,
46
- args: [{ selector: 'app-techlify-app-selector', template: "<button mat-icon-button (click)=\"isOpen = !isOpen\" type=\"button\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <mat-icon>apps</mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"isOpen\"\n (overlayOutsideClick)=\"isOpen = false\">\n <mat-card>\n <mat-card-content fxLayout=\"column\">\n <div fxLayoutAlign=\"start center\">\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('techlify-hr')\">\n <img ngSrc=\"https://shared.techlify.com/hr.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">TechlifyHR</div>\n </div>\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('inventory')\">\n <img ngSrc=\"https://shared.techlify.com/inventory.png\" [width]=\"imageWidth\"\n [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Inventory</div>\n </div>\n\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('careers')\">\n <img ngSrc=\"https://shared.techlify.com/careers.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Careers.gy</div>\n </div>\n </div>\n\n <div fxLayoutAlign=\"start center\">\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('books')\">\n <img ngSrc=\"https://shared.techlify.com/books.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Books</div>\n </div>\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('works')\">\n <img ngSrc=\"https://shared.techlify.com/works.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Works</div>\n </div>\n </div>\n\n </mat-card-content>\n </mat-card>\n</ng-template>", styles: [".app-item{padding:10px}.app-item:hover{border-radius:2px;background:#0000001a;cursor:pointer}\n"] }]
45
+ args: [{ selector: 'app-techlify-app-selector', template: "<button mat-icon-button (click)=\"isOpen = !isOpen\" type=\"button\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <mat-icon>apps</mat-icon>\n</button>\n\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"isOpen\"\n (overlayOutsideClick)=\"isOpen = false\">\n <mat-card>\n <mat-card-content class=\"d-flex flex-column\">\n <div class=\"d-flex justify-content-start align-items-center\">\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('techlify-hr')\">\n <img ngSrc=\"https://shared.techlify.com/hr.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">TechlifyHR</div>\n </div>\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('inventory')\">\n <img ngSrc=\"https://shared.techlify.com/inventory.png\" [width]=\"imageWidth\"\n [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Inventory</div>\n </div>\n\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('careers')\">\n <img ngSrc=\"https://shared.techlify.com/careers.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Careers.gy</div>\n </div>\n </div>\n\n <div class=\"d-flex justify-content-start align-items-center\">\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('books')\">\n <img ngSrc=\"https://shared.techlify.com/books.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Books</div>\n </div>\n <div class=\"d-flex flex-column align-items-center gap-1 app-item\" (click)=\"switchTo('works')\">\n <img ngSrc=\"https://shared.techlify.com/works.png\" [width]=\"imageWidth\" [height]=\"imageHeight\" />\n <div class=\"text-secondary\">Works</div>\n </div>\n </div>\n\n </mat-card-content>\n </mat-card>\n</ng-template>", styles: [".app-item{padding:10px}.app-item:hover{border-radius:2px;background:#0000001a;cursor:pointer}\n"] }]
47
46
  }], ctorParameters: () => [{ type: i1.EnvironmentService }], propDecorators: { imageHeight: [{
48
47
  type: Input
49
48
  }], imageWidth: [{
50
49
  type: Input
51
50
  }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktYXBwLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktYXBwLXNlbGVjdG9yL3RlY2hsaWZ5LWFwcC1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LWFwcC1zZWxlY3Rvci90ZWNobGlmeS1hcHAtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQVFqRCxNQUFNLE9BQU8sNEJBQTRCO0lBdUJ2QyxZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQXJCMUQscUJBQWdCLEdBQVE7WUFDdEIsU0FBUyxFQUFFO2dCQUNULGFBQWEsRUFBRSwwQkFBMEI7Z0JBQ3pDLFdBQVcsRUFBRSxpQ0FBaUM7Z0JBQzlDLFNBQVMsRUFBRSw0QkFBNEI7Z0JBQ3ZDLE9BQU8sRUFBRSw2QkFBNkI7Z0JBQ3RDLE9BQU8sRUFBRSw2QkFBNkI7YUFDdkM7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sYUFBYSxFQUFFLHlCQUF5QjtnQkFDeEMsV0FBVyxFQUFFLGdDQUFnQztnQkFDN0MsU0FBUyxFQUFFLG9CQUFvQjtnQkFDL0IsT0FBTyxFQUFFLDRCQUE0QjtnQkFDckMsT0FBTyxFQUFFLDRCQUE0QjthQUN0QztTQUNGLENBQUM7UUFFRixXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ2YsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsZUFBVSxHQUFXLEVBQUUsQ0FBQztJQUU2QixDQUFDO0lBRS9ELFFBQVEsQ0FBQyxHQUFXO1FBQ2xCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDdEQsSUFBSSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7WUFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckUsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwRSxDQUFDOytHQWhDVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixtSUNSekMsOHVFQXNDYzs7NEZEOUJELDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSwyQkFBMkI7dUZBd0I1QixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2Vudmlyb25tZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVjaGxpZnktYXBwLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlY2hsaWZ5LWFwcC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90ZWNobGlmeS1hcHAtc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIFRlY2hsaWZ5QXBwU2VsZWN0b3JDb21wb25lbnQge1xuXG4gIGFwcENvbmZpZ3VyYXRpb246IGFueSA9IHtcbiAgICAnc3RhZ2luZyc6IHtcbiAgICAgICd0ZWNobGlmeS1ocic6ICdodHRwczovL2hyLnRlY2hub2xvZ3kuZ3knLFxuICAgICAgJ2ludmVudG9yeSc6ICdodHRwczovL2ludmVudG9yeS50ZWNobm9sb2d5Lmd5JyxcbiAgICAgICdjYXJlZXJzJzogJ2h0dHBzOi8vc3RhZ2luZy5jYXJlZXJzLmd5JyxcbiAgICAgICdib29rcyc6ICdodHRwczovL2Jvb2tzLnRlY2hub2xvZ3kuZ3knLFxuICAgICAgJ3dvcmtzJzogJ2h0dHBzOi8vd29ya3MudGVjaG5vbG9neS5neScsXG4gICAgfSxcbiAgICAncHJvZCc6IHtcbiAgICAgICd0ZWNobGlmeS1ocic6ICdodHRwczovL2hyLnRlY2hsaWZ5LmNvbScsXG4gICAgICAnaW52ZW50b3J5JzogJ2h0dHBzOi8vaW52ZW50b3J5LnRlY2hsaWZ5LmNvbScsXG4gICAgICAnY2FyZWVycyc6ICdodHRwczovL2NhcmVlcnMuZ3knLFxuICAgICAgJ2Jvb2tzJzogJ2h0dHBzOi8vYm9va3MudGVjaGxpZnkuY29tJyxcbiAgICAgICd3b3Jrcyc6ICdodHRwczovL3dvcmtzLnRlY2hsaWZ5LmNvbScsXG4gICAgfVxuICB9O1xuXG4gIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpbWFnZUhlaWdodDogbnVtYmVyID0gNzU7XG4gIEBJbnB1dCgpIGltYWdlV2lkdGg6IG51bWJlciA9IDc1O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZW52aXJvbm1lbnRTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2UpIHsgfVxuXG4gIHN3aXRjaFRvKGFwcDogc3RyaW5nKSB7XG4gICAgY29uc3QgZW52ID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0KCkuZW52aXJvbm1lbnQ7XG4gICAgaWYgKGVudiA9PSAnc3RhZ2luZycpIHtcbiAgICAgIHdpbmRvdy5vcGVuKHRoaXMuYXBwQ29uZmlndXJhdGlvblsnc3RhZ2luZyddW2FwcF0sICdfYmxhbmsnKS5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB3aW5kb3cub3Blbih0aGlzLmFwcENvbmZpZ3VyYXRpb25bJ3Byb2QnXVthcHBdLCAnX2JsYW5rJykuZm9jdXMoKTtcbiAgfVxuXG59XG4iLCI8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXNPcGVuID0gIWlzT3BlblwiIHR5cGU9XCJidXR0b25cIiBjZGtPdmVybGF5T3JpZ2luICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiPlxuICAgIDxtYXQtaWNvbj5hcHBzPC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48bmctdGVtcGxhdGUgY2RrQ29ubmVjdGVkT3ZlcmxheSBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCIgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cImlzT3BlblwiXG4gICAgKG92ZXJsYXlPdXRzaWRlQ2xpY2spPVwiaXNPcGVuID0gZmFsc2VcIj5cbiAgICA8bWF0LWNhcmQ+XG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGZ4TGF5b3V0PVwiY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSBhcHAtaXRlbVwiIChjbGljayk9XCJzd2l0Y2hUbygndGVjaGxpZnktaHInKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIG5nU3JjPVwiaHR0cHM6Ly9zaGFyZWQudGVjaGxpZnkuY29tL2hyLnBuZ1wiIFt3aWR0aF09XCJpbWFnZVdpZHRoXCIgW2hlaWdodF09XCJpbWFnZUhlaWdodFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPlRlY2hsaWZ5SFI8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSBhcHAtaXRlbVwiIChjbGljayk9XCJzd2l0Y2hUbygnaW52ZW50b3J5JylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBuZ1NyYz1cImh0dHBzOi8vc2hhcmVkLnRlY2hsaWZ5LmNvbS9pbnZlbnRvcnkucG5nXCIgW3dpZHRoXT1cImltYWdlV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCJpbWFnZUhlaWdodFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPkludmVudG9yeTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEgYXBwLWl0ZW1cIiAoY2xpY2spPVwic3dpdGNoVG8oJ2NhcmVlcnMnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIG5nU3JjPVwiaHR0cHM6Ly9zaGFyZWQudGVjaGxpZnkuY29tL2NhcmVlcnMucG5nXCIgW3dpZHRoXT1cImltYWdlV2lkdGhcIiBbaGVpZ2h0XT1cImltYWdlSGVpZ2h0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+Q2FyZWVycy5neTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIGFwcC1pdGVtXCIgKGNsaWNrKT1cInN3aXRjaFRvKCdib29rcycpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgbmdTcmM9XCJodHRwczovL3NoYXJlZC50ZWNobGlmeS5jb20vYm9va3MucG5nXCIgW3dpZHRoXT1cImltYWdlV2lkdGhcIiBbaGVpZ2h0XT1cImltYWdlSGVpZ2h0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+Qm9va3M8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSBhcHAtaXRlbVwiIChjbGljayk9XCJzd2l0Y2hUbygnd29ya3MnKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIG5nU3JjPVwiaHR0cHM6Ly9zaGFyZWQudGVjaGxpZnkuY29tL3dvcmtzLnBuZ1wiIFt3aWR0aF09XCJpbWFnZVdpZHRoXCIgW2hlaWdodF09XCJpbWFnZUhlaWdodFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPldvcmtzPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPC9tYXQtY2FyZD5cbjwvbmctdGVtcGxhdGU+Il19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktYXBwLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktYXBwLXNlbGVjdG9yL3RlY2hsaWZ5LWFwcC1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LWFwcC1zZWxlY3Rvci90ZWNobGlmeS1hcHAtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBUWpELE1BQU0sT0FBTyw0QkFBNEI7SUF1QnZDLFlBQW9CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBckIxRCxxQkFBZ0IsR0FBUTtZQUN0QixTQUFTLEVBQUU7Z0JBQ1QsYUFBYSxFQUFFLDBCQUEwQjtnQkFDekMsV0FBVyxFQUFFLGlDQUFpQztnQkFDOUMsU0FBUyxFQUFFLDRCQUE0QjtnQkFDdkMsT0FBTyxFQUFFLDZCQUE2QjtnQkFDdEMsT0FBTyxFQUFFLDZCQUE2QjthQUN2QztZQUNELE1BQU0sRUFBRTtnQkFDTixhQUFhLEVBQUUseUJBQXlCO2dCQUN4QyxXQUFXLEVBQUUsZ0NBQWdDO2dCQUM3QyxTQUFTLEVBQUUsb0JBQW9CO2dCQUMvQixPQUFPLEVBQUUsNEJBQTRCO2dCQUNyQyxPQUFPLEVBQUUsNEJBQTRCO2FBQ3RDO1NBQ0YsQ0FBQztRQUVGLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDZixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQVcsRUFBRSxDQUFDO0lBRTZCLENBQUM7SUFFL0QsUUFBUSxDQUFDLEdBQVc7UUFDbEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN0RCxJQUFJLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyRSxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BFLENBQUM7K0dBaENVLDRCQUE0QjttR0FBNUIsNEJBQTRCLG1JQ1J6Qyw2eUVBc0NjOzs0RkQ5QkQsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDJCQUEyQjt1RkF3QjVCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uL2NvcmUvZW52aXJvbm1lbnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10ZWNobGlmeS1hcHAtc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVjaGxpZnktYXBwLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RlY2hsaWZ5LWFwcC1zZWxlY3Rvci5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlBcHBTZWxlY3RvckNvbXBvbmVudCB7XG5cbiAgYXBwQ29uZmlndXJhdGlvbjogYW55ID0ge1xuICAgICdzdGFnaW5nJzoge1xuICAgICAgJ3RlY2hsaWZ5LWhyJzogJ2h0dHBzOi8vaHIudGVjaG5vbG9neS5neScsXG4gICAgICAnaW52ZW50b3J5JzogJ2h0dHBzOi8vaW52ZW50b3J5LnRlY2hub2xvZ3kuZ3knLFxuICAgICAgJ2NhcmVlcnMnOiAnaHR0cHM6Ly9zdGFnaW5nLmNhcmVlcnMuZ3knLFxuICAgICAgJ2Jvb2tzJzogJ2h0dHBzOi8vYm9va3MudGVjaG5vbG9neS5neScsXG4gICAgICAnd29ya3MnOiAnaHR0cHM6Ly93b3Jrcy50ZWNobm9sb2d5Lmd5JyxcbiAgICB9LFxuICAgICdwcm9kJzoge1xuICAgICAgJ3RlY2hsaWZ5LWhyJzogJ2h0dHBzOi8vaHIudGVjaGxpZnkuY29tJyxcbiAgICAgICdpbnZlbnRvcnknOiAnaHR0cHM6Ly9pbnZlbnRvcnkudGVjaGxpZnkuY29tJyxcbiAgICAgICdjYXJlZXJzJzogJ2h0dHBzOi8vY2FyZWVycy5neScsXG4gICAgICAnYm9va3MnOiAnaHR0cHM6Ly9ib29rcy50ZWNobGlmeS5jb20nLFxuICAgICAgJ3dvcmtzJzogJ2h0dHBzOi8vd29ya3MudGVjaGxpZnkuY29tJyxcbiAgICB9XG4gIH07XG5cbiAgaXNPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGltYWdlSGVpZ2h0OiBudW1iZXIgPSA3NTtcbiAgQElucHV0KCkgaW1hZ2VXaWR0aDogbnVtYmVyID0gNzU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSkgeyB9XG5cbiAgc3dpdGNoVG8oYXBwOiBzdHJpbmcpIHtcbiAgICBjb25zdCBlbnYgPSB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXQoKS5lbnZpcm9ubWVudDtcbiAgICBpZiAoZW52ID09ICdzdGFnaW5nJykge1xuICAgICAgd2luZG93Lm9wZW4odGhpcy5hcHBDb25maWd1cmF0aW9uWydzdGFnaW5nJ11bYXBwXSwgJ19ibGFuaycpLmZvY3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHdpbmRvdy5vcGVuKHRoaXMuYXBwQ29uZmlndXJhdGlvblsncHJvZCddW2FwcF0sICdfYmxhbmsnKS5mb2N1cygpO1xuICB9XG5cbn1cbiIsIjxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJpc09wZW4gPSAhaXNPcGVuXCIgdHlwZT1cImJ1dHRvblwiIGNka092ZXJsYXlPcmlnaW4gI3RyaWdnZXI9XCJjZGtPdmVybGF5T3JpZ2luXCI+XG4gICAgPG1hdC1pY29uPmFwcHM8L21hdC1pY29uPlxuPC9idXR0b24+XG5cbjxuZy10ZW1wbGF0ZSBjZGtDb25uZWN0ZWRPdmVybGF5IFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInRyaWdnZXJcIiBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiaXNPcGVuXCJcbiAgICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJpc09wZW4gPSBmYWxzZVwiPlxuICAgIDxtYXQtY2FyZD5cbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIGFwcC1pdGVtXCIgKGNsaWNrKT1cInN3aXRjaFRvKCd0ZWNobGlmeS1ocicpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgbmdTcmM9XCJodHRwczovL3NoYXJlZC50ZWNobGlmeS5jb20vaHIucG5nXCIgW3dpZHRoXT1cImltYWdlV2lkdGhcIiBbaGVpZ2h0XT1cImltYWdlSGVpZ2h0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+VGVjaGxpZnlIUjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIGFwcC1pdGVtXCIgKGNsaWNrKT1cInN3aXRjaFRvKCdpbnZlbnRvcnknKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIG5nU3JjPVwiaHR0cHM6Ly9zaGFyZWQudGVjaGxpZnkuY29tL2ludmVudG9yeS5wbmdcIiBbd2lkdGhdPVwiaW1hZ2VXaWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cImltYWdlSGVpZ2h0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+SW52ZW50b3J5PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMSBhcHAtaXRlbVwiIChjbGljayk9XCJzd2l0Y2hUbygnY2FyZWVycycpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgbmdTcmM9XCJodHRwczovL3NoYXJlZC50ZWNobGlmeS5jb20vY2FyZWVycy5wbmdcIiBbd2lkdGhdPVwiaW1hZ2VXaWR0aFwiIFtoZWlnaHRdPVwiaW1hZ2VIZWlnaHRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj5DYXJlZXJzLmd5PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTEgYXBwLWl0ZW1cIiAoY2xpY2spPVwic3dpdGNoVG8oJ2Jvb2tzJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBuZ1NyYz1cImh0dHBzOi8vc2hhcmVkLnRlY2hsaWZ5LmNvbS9ib29rcy5wbmdcIiBbd2lkdGhdPVwiaW1hZ2VXaWR0aFwiIFtoZWlnaHRdPVwiaW1hZ2VIZWlnaHRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj5Cb29rczwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xIGFwcC1pdGVtXCIgKGNsaWNrKT1cInN3aXRjaFRvKCd3b3JrcycpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgbmdTcmM9XCJodHRwczovL3NoYXJlZC50ZWNobGlmeS5jb20vd29ya3MucG5nXCIgW3dpZHRoXT1cImltYWdlV2lkdGhcIiBbaGVpZ2h0XT1cImltYWdlSGVpZ2h0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+V29ya3M8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8L21hdC1jYXJkPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -1,30 +1,23 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule, NgOptimizedImage } from '@angular/common';
2
+ import { NgOptimizedImage } from '@angular/common';
3
3
  import { TechlifyAppSelectorComponent } from './techlify-app-selector.component';
4
4
  import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
5
- import { MaterialModule } from '../material.module';
6
- import { FlexLayoutModule } from '@angular/flex-layout';
5
+ import { SharedModule } from '../shared.module';
7
6
  import * as i0 from "@angular/core";
8
7
  export class TechlifyAppSelectorModule {
9
8
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyAppSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TechlifyAppSelectorModule, declarations: [TechlifyAppSelectorComponent], imports: [CommonModule,
11
- MaterialModule,
12
- FlexLayoutModule,
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TechlifyAppSelectorModule, declarations: [TechlifyAppSelectorComponent], imports: [SharedModule,
13
10
  CdkOverlayOrigin,
14
11
  CdkConnectedOverlay,
15
12
  NgOptimizedImage], exports: [TechlifyAppSelectorComponent] }); }
16
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyAppSelectorModule, imports: [CommonModule,
17
- MaterialModule,
18
- FlexLayoutModule] }); }
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyAppSelectorModule, imports: [SharedModule] }); }
19
14
  }
20
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TechlifyAppSelectorModule, decorators: [{
21
16
  type: NgModule,
22
17
  args: [{
23
18
  declarations: [TechlifyAppSelectorComponent],
24
19
  imports: [
25
- CommonModule,
26
- MaterialModule,
27
- FlexLayoutModule,
20
+ SharedModule,
28
21
  CdkOverlayOrigin,
29
22
  CdkConnectedOverlay,
30
23
  NgOptimizedImage
@@ -32,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
32
25
  exports: [TechlifyAppSelectorComponent]
33
26
  }]
34
27
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktYXBwLXNlbGVjdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktYXBwLXNlbGVjdG9yL3RlY2hsaWZ5LWFwcC1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQWN4RCxNQUFNLE9BQU8seUJBQXlCOytHQUF6Qix5QkFBeUI7Z0hBQXpCLHlCQUF5QixpQkFYckIsNEJBQTRCLGFBRXpDLFlBQVk7WUFDWixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsZ0JBQWdCLGFBRVIsNEJBQTRCO2dIQUUzQix5QkFBeUIsWUFUbEMsWUFBWTtZQUNaLGNBQWM7WUFDZCxnQkFBZ0I7OzRGQU9QLHlCQUF5QjtrQkFackMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDNUMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRSxDQUFDLDRCQUE0QixDQUFDO2lCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGVjaGxpZnlBcHBTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vdGVjaGxpZnktYXBwLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZGtDb25uZWN0ZWRPdmVybGF5LCBDZGtPdmVybGF5T3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVGVjaGxpZnlBcHBTZWxlY3RvckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgRmxleExheW91dE1vZHVsZSxcbiAgICBDZGtPdmVybGF5T3JpZ2luLFxuICAgIENka0Nvbm5lY3RlZE92ZXJsYXksXG4gICAgTmdPcHRpbWl6ZWRJbWFnZVxuICBdLFxuICBleHBvcnRzOiBbVGVjaGxpZnlBcHBTZWxlY3RvckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlBcHBTZWxlY3Rvck1vZHVsZSB7IH1cbiJdfQ==
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktYXBwLXNlbGVjdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktYXBwLXNlbGVjdG9yL3RlY2hsaWZ5LWFwcC1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBWWhELE1BQU0sT0FBTyx5QkFBeUI7K0dBQXpCLHlCQUF5QjtnSEFBekIseUJBQXlCLGlCQVRyQiw0QkFBNEIsYUFFekMsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsZ0JBQWdCLGFBRVIsNEJBQTRCO2dIQUUzQix5QkFBeUIsWUFQbEMsWUFBWTs7NEZBT0gseUJBQXlCO2tCQVZyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLDRCQUE0QixDQUFDO29CQUM1QyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztpQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdPcHRpbWl6ZWRJbWFnZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUZWNobGlmeUFwcFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi90ZWNobGlmeS1hcHAtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVGVjaGxpZnlBcHBTZWxlY3RvckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgQ2RrT3ZlcmxheU9yaWdpbixcbiAgICBDZGtDb25uZWN0ZWRPdmVybGF5LFxuICAgIE5nT3B0aW1pemVkSW1hZ2VcbiAgXSxcbiAgZXhwb3J0czogW1RlY2hsaWZ5QXBwU2VsZWN0b3JDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFRlY2hsaWZ5QXBwU2VsZWN0b3JNb2R1bGUgeyB9XG4iXX0=