ngx-techlify-core 18.88.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 (235) 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 +6 -6
  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/pdf-button/pdf-button.component.mjs +3 -3
  74. package/esm2022/lib/pdf-button/pdf-button.module.mjs +5 -13
  75. package/esm2022/lib/phone-number-selector/phone-number-selector.component.mjs +4 -4
  76. package/esm2022/lib/profile/profile-edit.component.mjs +1 -1
  77. package/esm2022/lib/profile/profile.module.mjs +5 -13
  78. package/esm2022/lib/read-more/read-more.module.mjs +3 -7
  79. package/esm2022/lib/reset-password/reset-password.component.mjs +4 -4
  80. package/esm2022/lib/reset-password/reset-password.module.mjs +5 -24
  81. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +3 -3
  82. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.mjs +5 -17
  83. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +3 -3
  84. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.mjs +5 -13
  85. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +4 -4
  86. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.mjs +5 -17
  87. package/esm2022/lib/restrictors/restrictors-form/restrictors-form.component.mjs +9 -10
  88. package/esm2022/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +6 -7
  89. package/esm2022/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +12 -13
  90. package/esm2022/lib/restrictors/restrictors.module.mjs +8 -60
  91. package/esm2022/lib/role/permission/permission.module.mjs +8 -23
  92. package/esm2022/lib/role/permission/permissions-management.component.mjs +6 -6
  93. package/esm2022/lib/role/role-form.component.mjs +1 -1
  94. package/esm2022/lib/role/role-list/role-list.component.mjs +8 -8
  95. package/esm2022/lib/role/role-view/role-view.module.mjs +8 -27
  96. package/esm2022/lib/role/role.module.mjs +8 -30
  97. package/esm2022/lib/searchable-selector/searchable-selector.component.mjs +6 -6
  98. package/esm2022/lib/searchable-selector/searchable-selector.module.mjs +1 -5
  99. package/esm2022/lib/shared.module.mjs +27 -3
  100. package/esm2022/lib/signup/signup.component.mjs +1 -1
  101. package/esm2022/lib/signup/signup.module.mjs +5 -13
  102. package/esm2022/lib/subscription/subscription-form/subscription-form.component.mjs +3 -4
  103. package/esm2022/lib/subscription/subscription-form/subscription-form.module.mjs +8 -24
  104. package/esm2022/lib/subscription/subscription-listing/subscription-listing.component.mjs +18 -19
  105. package/esm2022/lib/subscription/subscription-listing/subscription-listing.module.mjs +8 -35
  106. package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.component.mjs +15 -16
  107. package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.module.mjs +8 -32
  108. package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.component.mjs +5 -6
  109. package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.module.mjs +8 -16
  110. package/esm2022/lib/tag/techlify-tagger-tag-form/techlify-tagger-tag-form.component.mjs +12 -26
  111. package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +4 -4
  112. package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +5 -21
  113. package/esm2022/lib/tag/techlify-tagger-tag-list/techlify-tagger-tag-list.component.mjs +19 -37
  114. package/esm2022/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +1 -1
  115. package/esm2022/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +5 -29
  116. package/esm2022/lib/techlify-app-selector/techlify-app-selector.component.mjs +5 -6
  117. package/esm2022/lib/techlify-app-selector/techlify-app-selector.module.mjs +6 -13
  118. package/esm2022/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.mjs +11 -22
  119. package/esm2022/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +1 -1
  120. package/esm2022/lib/techlify-feature/techlify-feature-listing.component.mjs +9 -10
  121. package/esm2022/lib/techlify-feature/techlify-feature.module.mjs +7 -30
  122. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +3 -4
  123. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.mjs +5 -17
  124. package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +4 -5
  125. package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.module.mjs +5 -17
  126. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +10 -11
  127. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs +5 -29
  128. package/esm2022/lib/techlify-update/techlify-update.module.mjs +7 -31
  129. package/esm2022/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +10 -11
  130. package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.mjs +7 -8
  131. package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.mjs +5 -17
  132. package/esm2022/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +3 -4
  133. package/esm2022/lib/techlify-update/update-notifier/update-notifier.module.mjs +8 -20
  134. package/esm2022/lib/techlify-update/update-view/update-view.component.mjs +3 -4
  135. package/esm2022/lib/techlify-update/update-view/update-view.module.mjs +5 -13
  136. package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.component.mjs +7 -9
  137. package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.module.mjs +7 -15
  138. package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.component.mjs +3 -4
  139. package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.module.mjs +5 -24
  140. package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.mjs +6 -18
  141. package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.mjs +4 -5
  142. package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.mjs +8 -32
  143. package/esm2022/lib/timeline-filter/timeline-filter.component.mjs +10 -11
  144. package/esm2022/lib/timeline-filter/timeline-filter.module.mjs +1 -5
  145. package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.module.mjs +1 -5
  146. package/esm2022/lib/user/user-enable-button-component/user-enable-button.module.mjs +5 -17
  147. package/esm2022/lib/user/user-explore.component.mjs +3 -4
  148. package/esm2022/lib/user/user-form/user-form.component.mjs +11 -15
  149. package/esm2022/lib/user/user-list/user-list.component.mjs +10 -21
  150. package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.module.mjs +5 -13
  151. package/esm2022/lib/user/user.module.mjs +1 -9
  152. package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.mjs +5 -13
  153. package/esm2022/lib/user-clients-list/user-clients-list.module.mjs +5 -13
  154. package/esm2022/lib/user-selector/user-selector.component.mjs +3 -3
  155. package/esm2022/lib/user-selector/user-selector.module.mjs +5 -17
  156. package/esm2022/lib/utility/utility.module.mjs +5 -9
  157. package/fesm2022/ngx-techlify-core.mjs +993 -1795
  158. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  159. package/lib/access-control-config/access-control-config.module.d.ts +3 -11
  160. package/lib/app-admin/admin-role/admin-role-list/admin-role-list.module.d.ts +3 -11
  161. package/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.module.d.ts +2 -10
  162. package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +2 -4
  163. package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +3 -9
  164. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +2 -6
  165. package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +2 -3
  166. package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +2 -3
  167. package/lib/base-model/techlify-list/techlify-list.component.d.ts +20 -0
  168. package/lib/change-password/change-password.module.d.ts +3 -7
  169. package/lib/column-selector/column-selector.module.d.ts +2 -12
  170. package/lib/data-table/data-table.module.d.ts +2 -5
  171. package/lib/document-viewer/document-viewer.module.d.ts +3 -4
  172. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts +3 -6
  173. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts +4 -8
  174. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts +4 -8
  175. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts +4 -8
  176. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts +5 -9
  177. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts +3 -7
  178. package/lib/entity-files/entity-file-list.module.d.ts +5 -8
  179. package/lib/entity-files/entity-file.service.d.ts +1 -1
  180. package/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.d.ts +3 -1
  181. package/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.d.ts +2 -6
  182. package/lib/file-dropper/file-dropper.module.d.ts +2 -3
  183. package/lib/forgot-password/forgot-password.module.d.ts +3 -5
  184. package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.module.d.ts +3 -6
  185. package/lib/import-csv/import-csv.module.d.ts +3 -9
  186. package/lib/ip-address-selector/ip-address-selector.module.d.ts +2 -8
  187. package/lib/locked-date/locked-date.module.d.ts +2 -9
  188. package/lib/login/login.module.d.ts +4 -10
  189. package/lib/login-history-for-user/login-history-for-user.module.d.ts +2 -7
  190. package/lib/material.module.d.ts +25 -24
  191. package/lib/note/note.module.d.ts +3 -4
  192. package/lib/number-input-button/number-input-button.module.d.ts +2 -4
  193. package/lib/pdf-button/pdf-button.module.d.ts +2 -4
  194. package/lib/profile/profile.module.d.ts +3 -5
  195. package/lib/read-more/read-more.module.d.ts +1 -2
  196. package/lib/reset-password/reset-password.module.d.ts +4 -8
  197. package/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.d.ts +2 -5
  198. package/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.d.ts +2 -4
  199. package/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.d.ts +2 -5
  200. package/lib/restrictors/restrictors.module.d.ts +6 -19
  201. package/lib/role/permission/permission.module.d.ts +2 -5
  202. package/lib/role/role-view/role-view.module.d.ts +2 -6
  203. package/lib/role/role.module.d.ts +2 -7
  204. package/lib/searchable-selector/searchable-selector.module.d.ts +3 -4
  205. package/lib/shared.module.d.ts +14 -8
  206. package/lib/signup/signup.module.d.ts +3 -5
  207. package/lib/subscription/subscription-form/subscription-form.module.d.ts +2 -6
  208. package/lib/subscription/subscription-listing/subscription-listing.module.d.ts +3 -9
  209. package/lib/subscription/subscription-package-listing/subscription-package-listing.module.d.ts +2 -8
  210. package/lib/subscription/subscription-package-view/subscription-package-view.module.d.ts +2 -4
  211. package/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts +2 -6
  212. package/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts +2 -8
  213. package/lib/techlify-app-selector/techlify-app-selector.module.d.ts +4 -5
  214. package/lib/techlify-feature/techlify-feature.module.d.ts +4 -9
  215. package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.d.ts +3 -6
  216. package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts +3 -6
  217. package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts +3 -9
  218. package/lib/techlify-update/techlify-update.module.d.ts +4 -10
  219. package/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.d.ts +2 -5
  220. package/lib/techlify-update/update-notifier/update-notifier.module.d.ts +3 -6
  221. package/lib/techlify-update/update-view/update-view.module.d.ts +2 -4
  222. package/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.module.d.ts +2 -4
  223. package/lib/techlify-view/techlify-view-form/techlify-view-form.module.d.ts +2 -6
  224. package/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.d.ts +3 -6
  225. package/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.d.ts +2 -8
  226. package/lib/timeline-filter/timeline-filter.module.d.ts +10 -11
  227. package/lib/user/app-admin-user-view/app-admin-user-view.module.d.ts +6 -7
  228. package/lib/user/user-enable-button-component/user-enable-button.module.d.ts +2 -5
  229. package/lib/user/user-sessions/user-sessions/user-sessions.module.d.ts +2 -4
  230. package/lib/user/user.module.d.ts +7 -9
  231. package/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.d.ts +2 -4
  232. package/lib/user-clients-list/user-clients-list.module.d.ts +3 -5
  233. package/lib/user-selector/user-selector.module.d.ts +2 -4
  234. package/lib/utility/utility.module.d.ts +2 -3
  235. package/package.json +2 -1
@@ -1,6 +1,4 @@
1
1
  import { Component, Input, Output, EventEmitter } from "@angular/core";
2
- import { FlexLayoutModule } from "@angular/flex-layout";
3
- import { ReadMoreModule } from "../../read-more/read-more.module";
4
2
  import { SharedModule } from "../../shared.module";
5
3
  import * as i0 from "@angular/core";
6
4
  import * as i1 from "@angular/forms";
@@ -10,9 +8,7 @@ import * as i4 from "@angular/material/button";
10
8
  import * as i5 from "@angular/material/form-field";
11
9
  import * as i6 from "@angular/material/icon";
12
10
  import * as i7 from "@angular/material/input";
13
- import * as i8 from "@angular/flex-layout/flex";
14
- import * as i9 from "@angular/flex-layout/extended";
15
- import * as i10 from "../../read-more/read-more.component";
11
+ import * as i8 from "../../read-more/read-more.component";
16
12
  export class CommentFormComponent {
17
13
  set commentData(data) {
18
14
  this.view = !!data;
@@ -67,14 +63,14 @@ export class CommentFormComponent {
67
63
  }
68
64
  ngOnDestroy() { }
69
65
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommentFormComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.CredentialsService }], target: i0.ɵɵFactoryTarget.Component }); }
70
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CommentFormComponent, isStandalone: true, selector: "app-comment-form", inputs: { commentData: "commentData" }, outputs: { action: "action" }, ngImport: i0, template: "<form (ngSubmit)=\"submit()\" [formGroup]=\"commentFormGroup\">\n <div fxLayout=\"column\" class=\"my-2\" [ngClass]=\"{ 'border border-primary shadow rounded ': view}\">\n <div *ngIf=\"!view\" fxLayout=\"column\">\n <mat-form-field appearance=\"outline\" style=\"background-color:white;\">\n <mat-label>Comment</mat-label>\n <textarea matInput rows=\"5\" placeholder=\"Add a comment...\" formControlName=\"note\" autocomplete=\"off\"></textarea>\n </mat-form-field>\n\n <div fxLayout fxLayoutGap=\"1rem\" class=\"mt-2\">\n <span fxFlex></span>\n <button *ngIf=\"_commentData\" mat-button type=\"button\" (click)=\"view = !view\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" type=\"submit\">\n {{ _commentData ? \"Update\" : \"Post comment\" }}\n </button>\n </div>\n </div>\n\n <div fxLayout=\"column\" *ngIf=\"view\" class=\"p-2 m-2\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\".5rem\">\n <div fxFlex=\"20%\" fxLayoutAlign=\"start\">\n <button mat-icon-button type=\"button\" style=\"color:grey\">\n <mat-icon style=\"font-size:60px\">account_circle</mat-icon>\n </button>\n </div>\n <div fxFlex=\"75%\">\n <div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div class=\"font-weight-bold\">{{ _commentData?.creator?.name }}</div>\n <div class=\"text-muted\">{{ _commentData.updated_at | date:'medium' }}</div>\n </div>\n </div>\n </div>\n <app-read-more class=\"mt-2\" [text]=\"_commentData.note\"></app-read-more>\n <div fxLayout class=\"mt-1\" fxLayoutGap=\"1rem\" *ngIf=\"isLoggedIn && currentUser.id === _commentData.creator_id\">\n <a href=\"javascript:;\" (click)=\"editComment()\">\n Edit\n </a>\n <a href=\"javascript:;\" (click)=\"deleteComment()\">\n Delete\n </a>\n </div>\n </div>\n </div>\n</form>", styles: [":host ::ng-deep .mat-form-field-wrapper{padding-bottom:0!important;margin:0!important}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.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: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i8.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: i8.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: i8.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: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "ngmodule", type: ReadMoreModule }, { kind: "component", type: i10.ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }] }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CommentFormComponent, isStandalone: true, selector: "app-comment-form", inputs: { commentData: "commentData" }, outputs: { action: "action" }, ngImport: i0, template: "<form (ngSubmit)=\"submit()\" [formGroup]=\"commentFormGroup\">\n <div class=\"my-2 d-flex flex-column\" [ngClass]=\"{ 'border border-primary shadow rounded ': view}\">\n <div *ngIf=\"!view\" class=\"d-flex flex-column\">\n <mat-form-field appearance=\"outline\" style=\"background-color:white;\">\n <mat-label>Comment</mat-label>\n <textarea matInput rows=\"5\" placeholder=\"Add a comment...\" formControlName=\"note\" autocomplete=\"off\"></textarea>\n </mat-form-field>\n\n <div class=\"mt-2 d-flex gap-3\">\n <span class=\"flex-fill\"></span>\n <button *ngIf=\"_commentData\" mat-button type=\"button\" (click)=\"view = !view\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" type=\"submit\">\n {{ _commentData ? \"Update\" : \"Post comment\" }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"view\" class=\"p-2 m-2 d-flex flex-column\">\n <div class=\"row g-2\">\n <div class=\"col-2 d-flex justify-content-start\">\n <button mat-icon-button type=\"button\" style=\"color:grey\">\n <mat-icon style=\"font-size:60px\">account_circle</mat-icon>\n </button>\n </div>\n <div class=\"col-9\">\n <div class=\"d-flex flex-column gap-2\">\n <div class=\"font-weight-bold\">{{ _commentData?.creator?.name }}</div>\n <div class=\"text-muted\">{{ _commentData.updated_at | date:'medium' }}</div>\n </div>\n </div>\n </div>\n <app-read-more class=\"mt-2\" [text]=\"_commentData.note\"></app-read-more>\n <div class=\"mt-1 d-flex gap-3\" *ngIf=\"isLoggedIn && currentUser.id === _commentData.creator_id\">\n <a href=\"javascript:;\" (click)=\"editComment()\">\n Edit\n </a>\n <a href=\"javascript:;\" (click)=\"deleteComment()\">\n Delete\n </a>\n </div>\n </div>\n </div>\n</form>", styles: [":host ::ng-deep .mat-form-field-wrapper{padding-bottom:0!important;margin:0!important}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.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: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
71
67
  }
72
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommentFormComponent, decorators: [{
73
69
  type: Component,
74
- args: [{ selector: "app-comment-form", standalone: true, imports: [SharedModule, FlexLayoutModule, ReadMoreModule], template: "<form (ngSubmit)=\"submit()\" [formGroup]=\"commentFormGroup\">\n <div fxLayout=\"column\" class=\"my-2\" [ngClass]=\"{ 'border border-primary shadow rounded ': view}\">\n <div *ngIf=\"!view\" fxLayout=\"column\">\n <mat-form-field appearance=\"outline\" style=\"background-color:white;\">\n <mat-label>Comment</mat-label>\n <textarea matInput rows=\"5\" placeholder=\"Add a comment...\" formControlName=\"note\" autocomplete=\"off\"></textarea>\n </mat-form-field>\n\n <div fxLayout fxLayoutGap=\"1rem\" class=\"mt-2\">\n <span fxFlex></span>\n <button *ngIf=\"_commentData\" mat-button type=\"button\" (click)=\"view = !view\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" type=\"submit\">\n {{ _commentData ? \"Update\" : \"Post comment\" }}\n </button>\n </div>\n </div>\n\n <div fxLayout=\"column\" *ngIf=\"view\" class=\"p-2 m-2\">\n <div fxLayout=\"row wrap\" fxLayoutGap=\".5rem\">\n <div fxFlex=\"20%\" fxLayoutAlign=\"start\">\n <button mat-icon-button type=\"button\" style=\"color:grey\">\n <mat-icon style=\"font-size:60px\">account_circle</mat-icon>\n </button>\n </div>\n <div fxFlex=\"75%\">\n <div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div class=\"font-weight-bold\">{{ _commentData?.creator?.name }}</div>\n <div class=\"text-muted\">{{ _commentData.updated_at | date:'medium' }}</div>\n </div>\n </div>\n </div>\n <app-read-more class=\"mt-2\" [text]=\"_commentData.note\"></app-read-more>\n <div fxLayout class=\"mt-1\" fxLayoutGap=\"1rem\" *ngIf=\"isLoggedIn && currentUser.id === _commentData.creator_id\">\n <a href=\"javascript:;\" (click)=\"editComment()\">\n Edit\n </a>\n <a href=\"javascript:;\" (click)=\"deleteComment()\">\n Delete\n </a>\n </div>\n </div>\n </div>\n</form>", styles: [":host ::ng-deep .mat-form-field-wrapper{padding-bottom:0!important;margin:0!important}\n"] }]
70
+ args: [{ selector: "app-comment-form", standalone: true, imports: [SharedModule], template: "<form (ngSubmit)=\"submit()\" [formGroup]=\"commentFormGroup\">\n <div class=\"my-2 d-flex flex-column\" [ngClass]=\"{ 'border border-primary shadow rounded ': view}\">\n <div *ngIf=\"!view\" class=\"d-flex flex-column\">\n <mat-form-field appearance=\"outline\" style=\"background-color:white;\">\n <mat-label>Comment</mat-label>\n <textarea matInput rows=\"5\" placeholder=\"Add a comment...\" formControlName=\"note\" autocomplete=\"off\"></textarea>\n </mat-form-field>\n\n <div class=\"mt-2 d-flex gap-3\">\n <span class=\"flex-fill\"></span>\n <button *ngIf=\"_commentData\" mat-button type=\"button\" (click)=\"view = !view\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" type=\"submit\">\n {{ _commentData ? \"Update\" : \"Post comment\" }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"view\" class=\"p-2 m-2 d-flex flex-column\">\n <div class=\"row g-2\">\n <div class=\"col-2 d-flex justify-content-start\">\n <button mat-icon-button type=\"button\" style=\"color:grey\">\n <mat-icon style=\"font-size:60px\">account_circle</mat-icon>\n </button>\n </div>\n <div class=\"col-9\">\n <div class=\"d-flex flex-column gap-2\">\n <div class=\"font-weight-bold\">{{ _commentData?.creator?.name }}</div>\n <div class=\"text-muted\">{{ _commentData.updated_at | date:'medium' }}</div>\n </div>\n </div>\n </div>\n <app-read-more class=\"mt-2\" [text]=\"_commentData.note\"></app-read-more>\n <div class=\"mt-1 d-flex gap-3\" *ngIf=\"isLoggedIn && currentUser.id === _commentData.creator_id\">\n <a href=\"javascript:;\" (click)=\"editComment()\">\n Edit\n </a>\n <a href=\"javascript:;\" (click)=\"deleteComment()\">\n Delete\n </a>\n </div>\n </div>\n </div>\n</form>", styles: [":host ::ng-deep .mat-form-field-wrapper{padding-bottom:0!important;margin:0!important}\n"] }]
75
71
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.CredentialsService }], propDecorators: { commentData: [{
76
72
  type: Input
77
73
  }], action: [{
78
74
  type: Output
79
75
  }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9jb21tZW50LWZvcm0vY29tbWVudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9jb21tZW50LWZvcm0vY29tbWVudC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBU25ELE1BQU0sT0FBTyxvQkFBb0I7SUFLL0IsSUFBYSxXQUFXLENBQUMsSUFBUztRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBSUQsWUFBb0IsRUFBc0IsRUFDaEMsaUJBQXFDO1FBRDNCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBb0I7UUFIckMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLcEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRLEtBQUssQ0FBQztJQUVkLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUNqRCxDQUFDO0lBRU8sVUFBVTtRQUNoQiwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3BDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNSLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNWLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQixnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM1QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDekIsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFdBQVcsS0FBSyxDQUFDOytHQWxFTixvQkFBb0I7bUdBQXBCLG9CQUFvQixtSkNyQmpDLHE5REE0Q08saUpEM0JLLFlBQVksd3RFQUFFLGdCQUFnQixtMUZBQUUsY0FBYzs7NEZBSTdDLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsQ0FBQzt3SEFTNUMsV0FBVztzQkFBdkIsS0FBSztnQkFNSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPbkRlc3Ryb3lcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZmxleC1sYXlvdXRcIjtcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQnVpbGRlciB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQ3JlZGVudGlhbHNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvY3JlZGVudGlhbHMuc2VydmljZVwiO1xuaW1wb3J0IHsgUmVhZE1vcmVNb2R1bGUgfSBmcm9tIFwiLi4vLi4vcmVhZC1tb3JlL3JlYWQtbW9yZS5tb2R1bGVcIjtcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQubW9kdWxlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtY29tbWVudC1mb3JtXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtTaGFyZWRNb2R1bGUsIEZsZXhMYXlvdXRNb2R1bGUsIFJlYWRNb3JlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9jb21tZW50LWZvcm0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2NvbW1lbnQtZm9ybS5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBDb21tZW50Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY29tbWVudEZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cDtcbiAgdmlldzogYm9vbGVhbjtcbiAgX2NvbW1lbnREYXRhOiBhbnk7XG5cbiAgQElucHV0KCkgc2V0IGNvbW1lbnREYXRhKGRhdGE6IGFueSkge1xuICAgIHRoaXMudmlldyA9ICEhZGF0YTtcbiAgICB0aGlzLl9jb21tZW50RGF0YSA9IGRhdGE7XG4gICAgdGhpcy5jb21tZW50Rm9ybUdyb3VwLnBhdGNoVmFsdWUoZGF0YSk7XG4gIH1cblxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGNyZWRlbnRpYWxTZXJ2aWNlOiBDcmVkZW50aWFsc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIGdldCBpc0xvZ2dlZEluKCkge1xuICAgIHJldHVybiB0aGlzLmNyZWRlbnRpYWxTZXJ2aWNlLmlzQXV0aGVudGljYXRlZDtcbiAgfVxuXG4gIGdldCBjdXJyZW50VXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVkZW50aWFsU2VydmljZS5jcmVkZW50aWFscy51c2VyO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIC8vVE9ETzogRmluaWFsaXplIGFuZCBhZGQgbW9yZSB2YWxpZGF0aW9ucy5cbiAgICB0aGlzLmNvbW1lbnRGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGlkOiBbXCJcIl0sXG4gICAgICBub3RlOiBbXCJcIl0sXG4gICAgICBtb2RlbF90eXBlOiBbXCJcIl0sXG4gICAgICByZWxhdGVkX21vZGVsX2lkOiBbXCJcIl0sXG4gICAgfSk7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuY29tbWVudEZvcm1Hcm91cC5nZXQoXCJub3RlXCIpLnZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5fY29tbWVudERhdGEpIHtcbiAgICAgICAgdGhpcy52aWV3ID0gIXRoaXMudmlldztcbiAgICAgIH1cbiAgICAgIHRoaXMuYWN0aW9uLmVtaXQoeyB0eXBlOiBcInNhdmVcIiwgdmFsdWU6IHRoaXMuY29tbWVudEZvcm1Hcm91cC52YWx1ZSB9KTtcbiAgICAgIHRoaXMuY29tbWVudEZvcm1Hcm91cC5yZXNldCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb21tZW50Rm9ybUdyb3VwLmdldChcImlkXCIpLnZhbHVlKSB7XG4gICAgICB0aGlzLmRlbGV0ZUNvbW1lbnQoKTtcbiAgICB9XG4gIH1cblxuICBoaWRlRWRpdCgpIHtcbiAgICBpZiAodGhpcy5jb21tZW50Rm9ybUdyb3VwLmdldChcImlkXCIpLnZhbHVlKSB7XG4gICAgICB0aGlzLnZpZXcgPSAhdGhpcy52aWV3O1xuICAgIH1cbiAgfVxuXG4gIGVkaXRDb21tZW50KCkge1xuICAgIHRoaXMudmlldyA9ICF0aGlzLnZpZXc7XG4gICAgdGhpcy5jb21tZW50Rm9ybUdyb3VwLnBhdGNoVmFsdWUodGhpcy5fY29tbWVudERhdGEpO1xuICB9XG5cbiAgZGVsZXRlQ29tbWVudCgpIHtcbiAgICB0aGlzLmFjdGlvbi5lbWl0KHsgdHlwZTogXCJkZWxldGVcIiwgdmFsdWU6IHRoaXMuY29tbWVudEZvcm1Hcm91cC52YWx1ZSB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkgeyB9XG59XG4iLCI8Zm9ybSAobmdTdWJtaXQpPVwic3VibWl0KClcIiBbZm9ybUdyb3VwXT1cImNvbW1lbnRGb3JtR3JvdXBcIj5cbiAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwibXktMlwiIFtuZ0NsYXNzXT1cInsgJ2JvcmRlciBib3JkZXItcHJpbWFyeSBzaGFkb3cgcm91bmRlZCAnOiB2aWV3fVwiPlxuICAgIDxkaXYgKm5nSWY9XCIhdmlld1wiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6d2hpdGU7XCI+XG4gICAgICAgIDxtYXQtbGFiZWw+Q29tbWVudDwvbWF0LWxhYmVsPlxuICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgcm93cz1cIjVcIiBwbGFjZWhvbGRlcj1cIkFkZCBhIGNvbW1lbnQuLi5cIiBmb3JtQ29udHJvbE5hbWU9XCJub3RlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+PC90ZXh0YXJlYT5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxkaXYgZnhMYXlvdXQgZnhMYXlvdXRHYXA9XCIxcmVtXCIgY2xhc3M9XCJtdC0yXCI+XG4gICAgICAgIDxzcGFuIGZ4RmxleD48L3NwYW4+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJfY29tbWVudERhdGFcIiBtYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidmlldyA9ICF2aWV3XCI+XG4gICAgICAgICAgQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgICB7eyBfY29tbWVudERhdGEgPyBcIlVwZGF0ZVwiIDogXCJQb3N0IGNvbW1lbnRcIiB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiICpuZ0lmPVwidmlld1wiIGNsYXNzPVwicC0yIG0tMlwiPlxuICAgICAgPGRpdiBmeExheW91dD1cInJvdyB3cmFwXCIgZnhMYXlvdXRHYXA9XCIuNXJlbVwiPlxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjIwJVwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBzdHlsZT1cImNvbG9yOmdyZXlcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTo2MHB4XCI+YWNjb3VudF9jaXJjbGU8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBmeEZsZXg9XCI3NSVcIj5cbiAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIuNXJlbVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtd2VpZ2h0LWJvbGRcIj57eyBfY29tbWVudERhdGE/LmNyZWF0b3I/Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+e3sgX2NvbW1lbnREYXRhLnVwZGF0ZWRfYXQgfCBkYXRlOidtZWRpdW0nIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YXBwLXJlYWQtbW9yZSBjbGFzcz1cIm10LTJcIiBbdGV4dF09XCJfY29tbWVudERhdGEubm90ZVwiPjwvYXBwLXJlYWQtbW9yZT5cbiAgICAgIDxkaXYgZnhMYXlvdXQgY2xhc3M9XCJtdC0xXCIgZnhMYXlvdXRHYXA9XCIxcmVtXCIgKm5nSWY9XCJpc0xvZ2dlZEluICYmIGN1cnJlbnRVc2VyLmlkID09PSBfY29tbWVudERhdGEuY3JlYXRvcl9pZFwiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgKGNsaWNrKT1cImVkaXRDb21tZW50KClcIj5cbiAgICAgICAgICBFZGl0XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJkZWxldGVDb21tZW50KClcIj5cbiAgICAgICAgICBEZWxldGVcbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9jb21tZW50LWZvcm0vY29tbWVudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9jb21tZW50LWZvcm0vY29tbWVudC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0FBU25ELE1BQU0sT0FBTyxvQkFBb0I7SUFLL0IsSUFBYSxXQUFXLENBQUMsSUFBUztRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBSUQsWUFBb0IsRUFBc0IsRUFDaEMsaUJBQXFDO1FBRDNCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBb0I7UUFIckMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLcEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRLEtBQUssQ0FBQztJQUVkLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUNqRCxDQUFDO0lBRU8sVUFBVTtRQUNoQiwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3BDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNSLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNWLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQixnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM1QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDekIsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFdBQVcsS0FBSyxDQUFDOytHQWxFTixvQkFBb0I7bUdBQXBCLG9CQUFvQixtSkNuQmpDLDY2REE0Q08saUpEN0JLLFlBQVk7OzRGQUlYLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDO3dIQVNWLFdBQVc7c0JBQXZCLEtBQUs7Z0JBTUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25EZXN0cm95XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IENyZWRlbnRpYWxzU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2NyZWRlbnRpYWxzLnNlcnZpY2VcIjtcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQubW9kdWxlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtY29tbWVudC1mb3JtXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtTaGFyZWRNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbW1lbnQtZm9ybS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vY29tbWVudC1mb3JtLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIENvbW1lbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjb21tZW50Rm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwO1xuICB2aWV3OiBib29sZWFuO1xuICBfY29tbWVudERhdGE6IGFueTtcblxuICBASW5wdXQoKSBzZXQgY29tbWVudERhdGEoZGF0YTogYW55KSB7XG4gICAgdGhpcy52aWV3ID0gISFkYXRhO1xuICAgIHRoaXMuX2NvbW1lbnREYXRhID0gZGF0YTtcbiAgICB0aGlzLmNvbW1lbnRGb3JtR3JvdXAucGF0Y2hWYWx1ZShkYXRhKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY3JlZGVudGlhbFNlcnZpY2U6IENyZWRlbnRpYWxzU2VydmljZVxuICApIHtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkgeyB9XG5cbiAgZ2V0IGlzTG9nZ2VkSW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlZGVudGlhbFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRVc2VyKCkge1xuICAgIHJldHVybiB0aGlzLmNyZWRlbnRpYWxTZXJ2aWNlLmNyZWRlbnRpYWxzLnVzZXI7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZvcm0oKSB7XG4gICAgLy9UT0RPOiBGaW5pYWxpemUgYW5kIGFkZCBtb3JlIHZhbGlkYXRpb25zLlxuICAgIHRoaXMuY29tbWVudEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgaWQ6IFtcIlwiXSxcbiAgICAgIG5vdGU6IFtcIlwiXSxcbiAgICAgIG1vZGVsX3R5cGU6IFtcIlwiXSxcbiAgICAgIHJlbGF0ZWRfbW9kZWxfaWQ6IFtcIlwiXSxcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5jb21tZW50Rm9ybUdyb3VwLmdldChcIm5vdGVcIikudmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLl9jb21tZW50RGF0YSkge1xuICAgICAgICB0aGlzLnZpZXcgPSAhdGhpcy52aWV3O1xuICAgICAgfVxuICAgICAgdGhpcy5hY3Rpb24uZW1pdCh7IHR5cGU6IFwic2F2ZVwiLCB2YWx1ZTogdGhpcy5jb21tZW50Rm9ybUdyb3VwLnZhbHVlIH0pO1xuICAgICAgdGhpcy5jb21tZW50Rm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbW1lbnRGb3JtR3JvdXAuZ2V0KFwiaWRcIikudmFsdWUpIHtcbiAgICAgIHRoaXMuZGVsZXRlQ29tbWVudCgpO1xuICAgIH1cbiAgfVxuXG4gIGhpZGVFZGl0KCkge1xuICAgIGlmICh0aGlzLmNvbW1lbnRGb3JtR3JvdXAuZ2V0KFwiaWRcIikudmFsdWUpIHtcbiAgICAgIHRoaXMudmlldyA9ICF0aGlzLnZpZXc7XG4gICAgfVxuICB9XG5cbiAgZWRpdENvbW1lbnQoKSB7XG4gICAgdGhpcy52aWV3ID0gIXRoaXMudmlldztcbiAgICB0aGlzLmNvbW1lbnRGb3JtR3JvdXAucGF0Y2hWYWx1ZSh0aGlzLl9jb21tZW50RGF0YSk7XG4gIH1cblxuICBkZWxldGVDb21tZW50KCkge1xuICAgIHRoaXMuYWN0aW9uLmVtaXQoeyB0eXBlOiBcImRlbGV0ZVwiLCB2YWx1ZTogdGhpcy5jb21tZW50Rm9ybUdyb3VwLnZhbHVlIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7IH1cbn1cbiIsIjxmb3JtIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiIFtmb3JtR3JvdXBdPVwiY29tbWVudEZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwibXktMiBkLWZsZXggZmxleC1jb2x1bW5cIiBbbmdDbGFzc109XCJ7ICdib3JkZXIgYm9yZGVyLXByaW1hcnkgc2hhZG93IHJvdW5kZWQgJzogdmlld31cIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIXZpZXdcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1wiPlxuICAgICAgICA8bWF0LWxhYmVsPkNvbW1lbnQ8L21hdC1sYWJlbD5cbiAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IHJvd3M9XCI1XCIgcGxhY2Vob2xkZXI9XCJBZGQgYSBjb21tZW50Li4uXCIgZm9ybUNvbnRyb2xOYW1lPVwibm90ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPjwvdGV4dGFyZWE+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMiBkLWZsZXggZ2FwLTNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4LWZpbGxcIj48L3NwYW4+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJfY29tbWVudERhdGFcIiBtYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidmlldyA9ICF2aWV3XCI+XG4gICAgICAgICAgQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgICB7eyBfY29tbWVudERhdGEgPyBcIlVwZGF0ZVwiIDogXCJQb3N0IGNvbW1lbnRcIiB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cInZpZXdcIiBjbGFzcz1cInAtMiBtLTIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGctMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydFwiPlxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBzdHlsZT1cImNvbG9yOmdyZXlcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTo2MHB4XCI+YWNjb3VudF9jaXJjbGU8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtd2VpZ2h0LWJvbGRcIj57eyBfY29tbWVudERhdGE/LmNyZWF0b3I/Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+e3sgX2NvbW1lbnREYXRhLnVwZGF0ZWRfYXQgfCBkYXRlOidtZWRpdW0nIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YXBwLXJlYWQtbW9yZSBjbGFzcz1cIm10LTJcIiBbdGV4dF09XCJfY29tbWVudERhdGEubm90ZVwiPjwvYXBwLXJlYWQtbW9yZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0xIGQtZmxleCBnYXAtM1wiICpuZ0lmPVwiaXNMb2dnZWRJbiAmJiBjdXJyZW50VXNlci5pZCA9PT0gX2NvbW1lbnREYXRhLmNyZWF0b3JfaWRcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJlZGl0Q29tbWVudCgpXCI+XG4gICAgICAgICAgRWRpdFxuICAgICAgICA8L2E+XG4gICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwiZGVsZXRlQ29tbWVudCgpXCI+XG4gICAgICAgICAgRGVsZXRlXG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZm9ybT4iXX0=
@@ -1,7 +1,6 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { finalize } from 'rxjs/operators';
3
3
  import { ActionPopupComponent } from '../../action-popup';
4
- import { ActionPopupModule } from '../../action-popup/action-popup.module';
5
4
  import { TechlifyListComponent } from '../../base-model';
6
5
  import { CommentFormComponent } from '../comment-form/comment-form.component';
7
6
  import { SharedModule } from '../../shared.module';
@@ -88,11 +87,11 @@ export class NoteCommentListComponent extends TechlifyListComponent {
88
87
  });
89
88
  }
90
89
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteCommentListComponent, deps: [{ token: i1.NoteService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
91
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NoteCommentListComponent, isStandalone: true, selector: "app-note-comment-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", labelText: "labelText" }, usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-column gap-3\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n </div>\n\n <div class=\"w-100 scroll-container jumbotron\" infiniteScroll [infiniteScrollDistance]=\"1\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <app-comment-form [commentData]=\"comment\" (action)=\"commentAction($event)\"\n *ngFor=\"let comment of models\"></app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "ngmodule", type: ActionPopupModule }, { kind: "component", type: CommentFormComponent, selector: "app-comment-form", inputs: ["commentData"], outputs: ["action"] }] }); }
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NoteCommentListComponent, isStandalone: true, selector: "app-note-comment-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", labelText: "labelText" }, usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-column gap-3\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n </div>\n\n <div class=\"w-100 scroll-container jumbotron\" infiniteScroll [infiniteScrollDistance]=\"1\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <app-comment-form [commentData]=\"comment\" (action)=\"commentAction($event)\"\n *ngFor=\"let comment of models\"></app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: CommentFormComponent, selector: "app-comment-form", inputs: ["commentData"], outputs: ["action"] }] }); }
92
91
  }
93
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteCommentListComponent, decorators: [{
94
93
  type: Component,
95
- args: [{ selector: 'app-note-comment-list', standalone: true, imports: [SharedModule, ActionPopupModule, CommentFormComponent], template: "<div class=\"d-flex flex-column gap-3\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n </div>\n\n <div class=\"w-100 scroll-container jumbotron\" infiniteScroll [infiniteScrollDistance]=\"1\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <app-comment-form [commentData]=\"comment\" (action)=\"commentAction($event)\"\n *ngFor=\"let comment of models\"></app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n</div>\n" }]
94
+ args: [{ selector: 'app-note-comment-list', standalone: true, imports: [SharedModule, CommentFormComponent], template: "<div class=\"d-flex flex-column gap-3\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n </div>\n\n <div class=\"w-100 scroll-container jumbotron\" infiniteScroll [infiniteScrollDistance]=\"1\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <app-comment-form [commentData]=\"comment\" (action)=\"commentAction($event)\"\n *ngFor=\"let comment of models\"></app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n</div>\n" }]
96
95
  }], ctorParameters: () => [{ type: i1.NoteService }, { type: i2.MatDialog }], propDecorators: { relatedModelId: [{
97
96
  type: Input
98
97
  }], modelType: [{
@@ -100,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
100
99
  }], labelText: [{
101
100
  type: Input
102
101
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1jb21tZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9ub3RlL25vdGUtY29tbWVudC1saXN0L25vdGUtY29tbWVudC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWNvbW1lbnQtbGlzdC9ub3RlLWNvbW1lbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFlLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUFFbkQ7OztHQUdHO0FBT0gsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHFCQUFxQjtJQU1qRSxZQUNZLE9BQW9CLEVBQ3RCLE1BQWlCO1FBRXpCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhMLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUpsQixjQUFTLEdBQUcsU0FBUyxDQUFDO1FBTzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxPQUFP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LENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN0RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQW5GVSx3QkFBd0I7bUdBQXhCLHdCQUF3QixzTUNwQnJDLG1sQkFZQSwyQ0RLWSxZQUFZLCtoQkFBRSxpQkFBaUIsK0JBQUUsb0JBQW9COzs0RkFHcEQsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLENBQUM7d0dBS3ZELGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3Rpb25Qb3B1cCwgQWN0aW9uUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hY3Rpb24tcG9wdXAnO1xuaW1wb3J0IHsgQWN0aW9uUG9wdXBNb2R1bGUgfSBmcm9tICcuLi8uLi9hY3Rpb24tcG9wdXAvYWN0aW9uLXBvcHVwLm1vZHVsZSc7XG5pbXBvcnQgeyBUZWNobGlmeUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLW1vZGVsJztcbmltcG9ydCB7IENvbW1lbnRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbWVudC1mb3JtL2NvbW1lbnQtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90ZVNlcnZpY2UgfSBmcm9tICcuLi9ub3RlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkLm1vZHVsZSc7XG5cbi8qKlxuICogTm90ZXMgcmVuZGVyZWQgYXMgYSBjb21tZW50IHRocmVhZCwgd2hlcmUgZWFjaCBjb21tZW50IGlzIGVkaXRlZCBpbiBwbGFjZVxuICogdGhyb3VnaCBhcHAtY29tbWVudC1mb3JtLiBVc2UgYXBwLW5vdGUtbGlzdCBmb3IgdGhlIHRhYmxlL3RpbWVsaW5lIHZpZXdzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbm90ZS1jb21tZW50LWxpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbU2hhcmVkTW9kdWxlLCBBY3Rpb25Qb3B1cE1vZHVsZSwgQ29tbWVudEZvcm1Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90ZS1jb21tZW50LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBOb3RlQ29tbWVudExpc3RDb21wb25lbnQgZXh0ZW5kcyBUZWNobGlmeUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHJlbGF0ZWRNb2RlbElkICE6IGFueTtcbiAgQElucHV0KCkgbW9kZWxUeXBlICE6IGFueTtcbiAgQElucHV0KCkgbGFiZWxUZXh0ID0gJ0NvbW1lbnQnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBzZXJ2aWNlOiBOb3RlU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXG4gICkge1xuICAgIHN1cGVyKHNlcnZpY2UpO1xuICAgIHRoaXMubGFzdFBhZ2UgPSAwO1xuICAgIHRoaXMuZmlsdGVycyA9IHsgc29ydF9ieTogJ2NyZWF0ZWRfYXR8REVTQycgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVycy5yZWxhdGVkX21vZGVsX2lkID0gdGhpcy5yZWxhdGVkTW9kZWxJZDtcbiAgICB0aGlzLmZpbHRlcnMubW9kZWxfdHlwZSA9IHRoaXMubW9kZWxUeXBlO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21tZW50cyBhcmUgbm90IGZpbHRlcmVkIGZyb20gdGhlIHJvdXRlLCBzbyB0aGUgZmlsdGVycyBhcmUgaGVsZFxuICAgKiBvbiB0aGUgY29tcG9uZW50IHJhdGhlciB0aGFuIGluIGEgZmlsdGVyIGZvcm1cbiAgICovXG4gIG92ZXJyaWRlIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNlcnZpY2UuaW5kZXgoe1xuICAgICAgLi4udGhpcy5maWx0ZXJzLFxuICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgd2l0aDogJ2NyZWF0b3InXG4gICAgfSlcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuaXNXb3JraW5nID0gZmFsc2UpKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscy5jb25jYXQocmVzdWx0Py5kYXRhKTtcbiAgICAgICAgdGhpcy5sYXN0UGFnZSA9IHJlc3VsdD8ubGFzdF9wYWdlO1xuICAgICAgfSk7XG4gIH1cblxuICBjb21tZW50QWN0aW9uKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3NhdmUnKSB7XG4gICAgICBpZiAoZXZlbnQudmFsdWUuaWQpIHtcbiAgICAgICAgdGhpcy5lZGl0Q29tbWVudChldmVudC52YWx1ZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWRkQ29tbWVudChldmVudC52YWx1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGVsZXRlQ29tbWVudChldmVudC52YWx1ZSk7XG4gIH1cblxuICBhZGRDb21tZW50KGNvbW1lbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbW1lbnQucmVsYXRlZF9tb2RlbF9pZCA9IHRoaXMucmVsYXRlZE1vZGVsSWQ7XG4gICAgY29tbWVudC5tb2RlbF90eXBlID0gdGhpcy5tb2RlbFR5cGU7XG4gICAgdGhpcy5zZXJ2aWNlLnN0b3JlKGNvbW1lbnQpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4gdGhpcy5tb2RlbHMgPSBbLi4udGhpcy5tb2RlbHMsIHJlc3VsdD8uaXRlbV0pO1xuICB9XG5cbiAgZWRpdENvbW1lbnQoY29tbWVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZShjb21tZW50KVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHRoaXMubW9kZWxzVXBkYXRlZEJ5SWQocmVzdWx0Py5pdGVtKSk7XG4gIH1cblxuICAvKipcbiAgICogYXBwLWNvbW1lbnQtZm9ybSBoYXMgaXRzIG93biBkZWxldGUgbGluayByYXRoZXIgdGhhblxuICAgKiBhcHAtdGVjaGxpZnktZGVsZXRlLWJ1dHRvbiwgc28gdGhlIGNvbmZpcm1hdGlvbiBpcyBvcGVuZWQgaGVyZVxuICAgKi9cbiAgZGVsZXRlQ29tbWVudChjb21tZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZy5vcGVuKEFjdGlvblBvcHVwQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzQwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdGl0bGU6IGBEZWxldGUgJHt0aGlzLmxhYmVsVGV4dH1gLFxuICAgICAgICBtZXNzYWdlOiBgQXJlIHlvdSBzdXJlIHRvIGRlbGV0ZT9gXG4gICAgICB9IGFzIEFjdGlvblBvcHVwLFxuICAgICAgYXV0b0ZvY3VzOiBmYWxzZVxuICAgIH0pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmRlbGV0ZShjb21tZW50KVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm1vZGVsc0RlbGV0ZWRCeUlkKGNvbW1lbnQpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTNcIj5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxoNSBjbGFzcz1cIm0tMFwiPnt7IGxhYmVsVGV4dCB9fXM8L2g1PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwidy0xMDAgc2Nyb2xsLWNvbnRhaW5lciBqdW1ib3Ryb25cIiBpbmZpbml0ZVNjcm9sbCBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIxXCJcbiAgICBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiIChzY3JvbGxlZCk9XCJvblNjcm9sbCgpXCIgW3Njcm9sbFdpbmRvd109XCJmYWxzZVwiPlxuICAgIDxhcHAtY29tbWVudC1mb3JtIFtjb21tZW50RGF0YV09XCJjb21tZW50XCIgKGFjdGlvbik9XCJjb21tZW50QWN0aW9uKCRldmVudClcIlxuICAgICAgKm5nRm9yPVwibGV0IGNvbW1lbnQgb2YgbW9kZWxzXCI+PC9hcHAtY29tbWVudC1mb3JtPlxuICAgIDxhcHAtY29tbWVudC1mb3JtIChhY3Rpb24pPVwiY29tbWVudEFjdGlvbigkZXZlbnQpXCI+PC9hcHAtY29tbWVudC1mb3JtPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1jb21tZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9ub3RlL25vdGUtY29tbWVudC1saXN0L25vdGUtY29tbWVudC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWNvbW1lbnQtbGlzdC9ub3RlLWNvbW1lbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFlLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUFFbkQ7OztHQUdHO0FBT0gsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHFCQUFxQjtJQU1qRSxZQUNZLE9BQW9CLEVBQ3RCLE1BQWlCO1FBRXpCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhMLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUpsQixjQUFTLEdBQUcsU0FBUyxDQUFDO1FBTzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsUUFBUTtR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QUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQW5GVSx3QkFBd0I7bUdBQXhCLHdCQUF3QixzTUNuQnJDLG1sQkFZQSwyQ0RJWSxZQUFZLGdpQkFBRSxvQkFBb0I7OzRGQUdqQyx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxvQkFBb0IsQ0FBQzt3R0FLcEMsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvblBvcHVwLCBBY3Rpb25Qb3B1cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2FjdGlvbi1wb3B1cCc7XG5pbXBvcnQgeyBUZWNobGlmeUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLW1vZGVsJztcbmltcG9ydCB7IENvbW1lbnRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbWVudC1mb3JtL2NvbW1lbnQtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90ZVNlcnZpY2UgfSBmcm9tICcuLi9ub3RlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkLm1vZHVsZSc7XG5cbi8qKlxuICogTm90ZXMgcmVuZGVyZWQgYXMgYSBjb21tZW50IHRocmVhZCwgd2hlcmUgZWFjaCBjb21tZW50IGlzIGVkaXRlZCBpbiBwbGFjZVxuICogdGhyb3VnaCBhcHAtY29tbWVudC1mb3JtLiBVc2UgYXBwLW5vdGUtbGlzdCBmb3IgdGhlIHRhYmxlL3RpbWVsaW5lIHZpZXdzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbm90ZS1jb21tZW50LWxpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbU2hhcmVkTW9kdWxlLCBDb21tZW50Rm9ybUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RlLWNvbW1lbnQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE5vdGVDb21tZW50TGlzdENvbXBvbmVudCBleHRlbmRzIFRlY2hsaWZ5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcmVsYXRlZE1vZGVsSWQgITogYW55O1xuICBASW5wdXQoKSBtb2RlbFR5cGUgITogYW55O1xuICBASW5wdXQoKSBsYWJlbFRleHQgPSAnQ29tbWVudCc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHNlcnZpY2U6IE5vdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2dcbiAgKSB7XG4gICAgc3VwZXIoc2VydmljZSk7XG4gICAgdGhpcy5sYXN0UGFnZSA9IDA7XG4gICAgdGhpcy5maWx0ZXJzID0geyBzb3J0X2J5OiAnY3JlYXRlZF9hdHxERVNDJyB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJzLnJlbGF0ZWRfbW9kZWxfaWQgPSB0aGlzLnJlbGF0ZWRNb2RlbElkO1xuICAgIHRoaXMuZmlsdGVycy5tb2RlbF90eXBlID0gdGhpcy5tb2RlbFR5cGU7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbW1lbnRzIGFyZSBub3QgZmlsdGVyZWQgZnJvbSB0aGUgcm91dGUsIHNvIHRoZSBmaWx0ZXJzIGFyZSBoZWxkXG4gICAqIG9uIHRoZSBjb21wb25lbnQgcmF0aGVyIHRoYW4gaW4gYSBmaWx0ZXIgZm9ybVxuICAgKi9cbiAgb3ZlcnJpZGUgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIHRoaXMuc2VydmljZS5pbmRleCh7XG4gICAgICAuLi50aGlzLmZpbHRlcnMsXG4gICAgICBwYWdlOiB0aGlzLnBhZ2UsXG4gICAgICB3aXRoOiAnY3JlYXRvcidcbiAgICB9KVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5pc1dvcmtpbmcgPSBmYWxzZSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm1vZGVscyA9IHRoaXMubW9kZWxzLmNvbmNhdChyZXN1bHQ/LmRhdGEpO1xuICAgICAgICB0aGlzLmxhc3RQYWdlID0gcmVzdWx0Py5sYXN0X3BhZ2U7XG4gICAgICB9KTtcbiAgfVxuXG4gIGNvbW1lbnRBY3Rpb24oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChldmVudC50eXBlID09PSAnc2F2ZScpIHtcbiAgICAgIGlmIChldmVudC52YWx1ZS5pZCkge1xuICAgICAgICB0aGlzLmVkaXRDb21tZW50KGV2ZW50LnZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRDb21tZW50KGV2ZW50LnZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kZWxldGVDb21tZW50KGV2ZW50LnZhbHVlKTtcbiAgfVxuXG4gIGFkZENvbW1lbnQoY29tbWVudDogYW55KTogdm9pZCB7XG4gICAgY29tbWVudC5yZWxhdGVkX21vZGVsX2lkID0gdGhpcy5yZWxhdGVkTW9kZWxJZDtcbiAgICBjb21tZW50Lm1vZGVsX3R5cGUgPSB0aGlzLm1vZGVsVHlwZTtcbiAgICB0aGlzLnNlcnZpY2Uuc3RvcmUoY29tbWVudClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB0aGlzLm1vZGVscyA9IFsuLi50aGlzLm1vZGVscywgcmVzdWx0Py5pdGVtXSk7XG4gIH1cblxuICBlZGl0Q29tbWVudChjb21tZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UudXBkYXRlKGNvbW1lbnQpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4gdGhpcy5tb2RlbHNVcGRhdGVkQnlJZChyZXN1bHQ/Lml0ZW0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhcHAtY29tbWVudC1mb3JtIGhhcyBpdHMgb3duIGRlbGV0ZSBsaW5rIHJhdGhlciB0aGFuXG4gICAqIGFwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uLCBzbyB0aGUgY29uZmlybWF0aW9uIGlzIG9wZW5lZCBoZXJlXG4gICAqL1xuICBkZWxldGVDb21tZW50KGNvbW1lbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nLm9wZW4oQWN0aW9uUG9wdXBDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogYERlbGV0ZSAke3RoaXMubGFiZWxUZXh0fWAsXG4gICAgICAgIG1lc3NhZ2U6IGBBcmUgeW91IHN1cmUgdG8gZGVsZXRlP2BcbiAgICAgIH0gYXMgQWN0aW9uUG9wdXAsXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSlcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVsZXRlKGNvbW1lbnQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMubW9kZWxzRGVsZXRlZEJ5SWQoY29tbWVudCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibS0wXCI+e3sgbGFiZWxUZXh0IH19czwvaDU+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ3LTEwMCBzY3JvbGwtY29udGFpbmVyIGp1bWJvdHJvblwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjFcIlxuICAgIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCIgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIiBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCI+XG4gICAgPGFwcC1jb21tZW50LWZvcm0gW2NvbW1lbnREYXRhXT1cImNvbW1lbnRcIiAoYWN0aW9uKT1cImNvbW1lbnRBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAqbmdGb3I9XCJsZXQgY29tbWVudCBvZiBtb2RlbHNcIj48L2FwcC1jb21tZW50LWZvcm0+XG4gICAgPGFwcC1jb21tZW50LWZvcm0gKGFjdGlvbik9XCJjb21tZW50QWN0aW9uKCRldmVudClcIj48L2FwcC1jb21tZW50LWZvcm0+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -5,21 +5,20 @@ import { finalize } from 'rxjs/operators';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../note.service";
7
7
  import * as i2 from "../../core";
8
- import * as i3 from "@angular/flex-layout/flex";
9
- import * as i4 from "@angular/common";
10
- import * as i5 from "@angular/forms";
11
- import * as i6 from "ngx-infinite-scroll";
12
- import * as i7 from "@angular/material/form-field";
13
- import * as i8 from "@angular/material/icon";
14
- import * as i9 from "@angular/material/input";
15
- import * as i10 from "@angular/material/progress-spinner";
16
- import * as i11 from "@angular/material/table";
17
- import * as i12 from "@angular/material/card";
18
- import * as i13 from "@angular/material/divider";
19
- import * as i14 from "@angular/material/progress-bar";
20
- import * as i15 from "../../delete-button/techlify-delete-button.component";
21
- import * as i16 from "../../form-button/techlify-form-button.component";
22
- import * as i17 from "../note-comment-list/note-comment-list.component";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@angular/forms";
10
+ import * as i5 from "ngx-infinite-scroll";
11
+ import * as i6 from "@angular/material/form-field";
12
+ import * as i7 from "@angular/material/icon";
13
+ import * as i8 from "@angular/material/input";
14
+ import * as i9 from "@angular/material/progress-spinner";
15
+ import * as i10 from "@angular/material/table";
16
+ import * as i11 from "@angular/material/card";
17
+ import * as i12 from "@angular/material/divider";
18
+ import * as i13 from "@angular/material/progress-bar";
19
+ import * as i14 from "../../delete-button/techlify-delete-button.component";
20
+ import * as i15 from "../../form-button/techlify-form-button.component";
21
+ import * as i16 from "../note-comment-list/note-comment-list.component";
23
22
  export class NoteListComponent extends TechlifyListComponent {
24
23
  constructor(noteService, alertService) {
25
24
  super(noteService);
@@ -91,11 +90,11 @@ export class NoteListComponent extends TechlifyListComponent {
91
90
  });
92
91
  }
93
92
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteListComponent, deps: [{ token: i1.NoteService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NoteListComponent, selector: "app-note-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", readonly: "readonly", labelText: "labelText", commentsView: "commentsView", viewMode: "viewMode" }, usesInheritance: true, ngImport: i0, template: "<app-note-comment-list *ngIf=\"commentsView\" [relatedModelId]=\"relatedModelId\" [modelType]=\"modelType\"\n [labelText]=\"labelText\"></app-note-comment-list>\n\n<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"!commentsView\">\n\n <ng-container *ngIf=\"viewMode === 'list'\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n <app-techlify-form-button class=\"d-print-none ml-1\" [component]=\"noteForm()\" width=\"400px\"\n [data]=\"{ model_type: modelType, related_model_id: relatedModelId, labelText: labelText }\"\n (saved)=\"modelCreated($event); total = total + 1\"></app-techlify-form-button>\n </div>\n\n <div class=\"w-100 scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\" multiTemplateDataRows>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> #</th>\n <td mat-cell *matCellDef=\"let note; let i = dataIndex\"> {{ i + 1 }}</td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"note\">\n <th mat-header-cell *matHeaderCellDef> {{ labelText }}</th>\n <td mat-cell *matCellDef=\"let note\">\n {{ note?.note }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"d-print-none\"> Actions</th>\n <td mat-cell *matCellDef=\"let note\" class=\"d-print-none text-secondary\">\n <div class=\"d-flex flex-row align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\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-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"viewMode === 'timeline'\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"mb-0\">Notes</h5>\n <span class=\"badge badge-info ml-1\" *ngIf=\"total\">{{ total }}</span>\n </mat-card-content>\n <mat-card-content class=\"mt-2\">\n <form (ngSubmit)=\"saveNote()\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <input [(ngModel)]=\"note\" [ngModelOptions]=\"{standalone: true}\" type=\"text\" matInput\n placeholder=\"Write your notes here...\" [disabled]=\"isSaving\">\n <mat-icon *ngIf=\"!isSaving\" matSuffix class=\"cursor-pointer\" (click)=\"saveNote()\">send</mat-icon>\n <mat-progress-spinner matSuffix mode=\"indeterminate\" diameter=\"20\" *ngIf=\"isSaving\"></mat-progress-spinner>\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-content>\n <div *ngFor=\"let note of models;last as isLast\">\n <div class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex flex-column\">\n <p class=\"mb-0\">{{ note?.creator?.name }}</p>\n <small class=\"text-secondary\">On {{ note?.created_at | date: 'medium' }}</small>\n </div>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <!-- @todo Pass $event once NoteController::destroy returns the deleted item -->\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\n </div>\n <div>{{ note?.note }}</div>\n <mat-divider class=\"my-2\" *ngIf=\"!isLast\"></mat-divider>\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n </ng-container>\n\n</div>\n", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i3.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: i3.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: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.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: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i11.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i11.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i11.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i12.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i12.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i13.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i14.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i15.TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }, { kind: "component", type: i16.TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }, { kind: "component", type: i17.NoteCommentListComponent, selector: "app-note-comment-list", inputs: ["relatedModelId", "modelType", "labelText"] }, { kind: "pipe", type: i4.DatePipe, name: "date" }] }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NoteListComponent, selector: "app-note-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", readonly: "readonly", labelText: "labelText", commentsView: "commentsView", viewMode: "viewMode" }, usesInheritance: true, ngImport: i0, template: "<app-note-comment-list *ngIf=\"commentsView\" [relatedModelId]=\"relatedModelId\" [modelType]=\"modelType\"\n [labelText]=\"labelText\"></app-note-comment-list>\n\n<div class=\"d-flex flex-column gap-4\" *ngIf=\"!commentsView\">\n\n <ng-container *ngIf=\"viewMode === 'list'\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n <app-techlify-form-button class=\"d-print-none ml-1\" [component]=\"noteForm()\" width=\"400px\"\n [data]=\"{ model_type: modelType, related_model_id: relatedModelId, labelText: labelText }\"\n (saved)=\"modelCreated($event); total = total + 1\"></app-techlify-form-button>\n </div>\n\n <div class=\"w-100 scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\" multiTemplateDataRows>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> #</th>\n <td mat-cell *matCellDef=\"let note; let i = dataIndex\"> {{ i + 1 }}</td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"note\">\n <th mat-header-cell *matHeaderCellDef> {{ labelText }}</th>\n <td mat-cell *matCellDef=\"let note\">\n {{ note?.note }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"d-print-none\"> Actions</th>\n <td mat-cell *matCellDef=\"let note\" class=\"d-print-none text-secondary\">\n <div class=\"d-flex flex-row align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\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-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"viewMode === 'timeline'\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"mb-0\">Notes</h5>\n <span class=\"badge badge-info ml-1\" *ngIf=\"total\">{{ total }}</span>\n </mat-card-content>\n <mat-card-content class=\"mt-2\">\n <form (ngSubmit)=\"saveNote()\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <input [(ngModel)]=\"note\" [ngModelOptions]=\"{standalone: true}\" type=\"text\" matInput\n placeholder=\"Write your notes here...\" [disabled]=\"isSaving\">\n <mat-icon *ngIf=\"!isSaving\" matSuffix class=\"cursor-pointer\" (click)=\"saveNote()\">send</mat-icon>\n <mat-progress-spinner matSuffix mode=\"indeterminate\" diameter=\"20\" *ngIf=\"isSaving\"></mat-progress-spinner>\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-content>\n <div *ngFor=\"let note of models;last as isLast\">\n <div class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex flex-column\">\n <p class=\"mb-0\">{{ note?.creator?.name }}</p>\n <small class=\"text-secondary\">On {{ note?.created_at | date: 'medium' }}</small>\n </div>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <!-- @todo Pass $event once NoteController::destroy returns the deleted item -->\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\n </div>\n <div>{{ note?.note }}</div>\n <mat-divider class=\"my-2\" *ngIf=\"!isLast\"></mat-divider>\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n </ng-container>\n\n</div>\n", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.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: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { 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: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { 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: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i12.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i13.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i14.TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }, { kind: "component", type: i15.TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }, { kind: "component", type: i16.NoteCommentListComponent, selector: "app-note-comment-list", inputs: ["relatedModelId", "modelType", "labelText"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
95
94
  }
96
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteListComponent, decorators: [{
97
96
  type: Component,
98
- args: [{ selector: 'app-note-list', template: "<app-note-comment-list *ngIf=\"commentsView\" [relatedModelId]=\"relatedModelId\" [modelType]=\"modelType\"\n [labelText]=\"labelText\"></app-note-comment-list>\n\n<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"!commentsView\">\n\n <ng-container *ngIf=\"viewMode === 'list'\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n <app-techlify-form-button class=\"d-print-none ml-1\" [component]=\"noteForm()\" width=\"400px\"\n [data]=\"{ model_type: modelType, related_model_id: relatedModelId, labelText: labelText }\"\n (saved)=\"modelCreated($event); total = total + 1\"></app-techlify-form-button>\n </div>\n\n <div class=\"w-100 scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\" multiTemplateDataRows>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> #</th>\n <td mat-cell *matCellDef=\"let note; let i = dataIndex\"> {{ i + 1 }}</td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"note\">\n <th mat-header-cell *matHeaderCellDef> {{ labelText }}</th>\n <td mat-cell *matCellDef=\"let note\">\n {{ note?.note }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"d-print-none\"> Actions</th>\n <td mat-cell *matCellDef=\"let note\" class=\"d-print-none text-secondary\">\n <div class=\"d-flex flex-row align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\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-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"viewMode === 'timeline'\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"mb-0\">Notes</h5>\n <span class=\"badge badge-info ml-1\" *ngIf=\"total\">{{ total }}</span>\n </mat-card-content>\n <mat-card-content class=\"mt-2\">\n <form (ngSubmit)=\"saveNote()\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <input [(ngModel)]=\"note\" [ngModelOptions]=\"{standalone: true}\" type=\"text\" matInput\n placeholder=\"Write your notes here...\" [disabled]=\"isSaving\">\n <mat-icon *ngIf=\"!isSaving\" matSuffix class=\"cursor-pointer\" (click)=\"saveNote()\">send</mat-icon>\n <mat-progress-spinner matSuffix mode=\"indeterminate\" diameter=\"20\" *ngIf=\"isSaving\"></mat-progress-spinner>\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-content>\n <div *ngFor=\"let note of models;last as isLast\">\n <div class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex flex-column\">\n <p class=\"mb-0\">{{ note?.creator?.name }}</p>\n <small class=\"text-secondary\">On {{ note?.created_at | date: 'medium' }}</small>\n </div>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <!-- @todo Pass $event once NoteController::destroy returns the deleted item -->\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\n </div>\n <div>{{ note?.note }}</div>\n <mat-divider class=\"my-2\" *ngIf=\"!isLast\"></mat-divider>\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n </ng-container>\n\n</div>\n", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"] }]
97
+ args: [{ selector: 'app-note-list', template: "<app-note-comment-list *ngIf=\"commentsView\" [relatedModelId]=\"relatedModelId\" [modelType]=\"modelType\"\n [labelText]=\"labelText\"></app-note-comment-list>\n\n<div class=\"d-flex flex-column gap-4\" *ngIf=\"!commentsView\">\n\n <ng-container *ngIf=\"viewMode === 'list'\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n <app-techlify-form-button class=\"d-print-none ml-1\" [component]=\"noteForm()\" width=\"400px\"\n [data]=\"{ model_type: modelType, related_model_id: relatedModelId, labelText: labelText }\"\n (saved)=\"modelCreated($event); total = total + 1\"></app-techlify-form-button>\n </div>\n\n <div class=\"w-100 scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\" multiTemplateDataRows>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> #</th>\n <td mat-cell *matCellDef=\"let note; let i = dataIndex\"> {{ i + 1 }}</td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"note\">\n <th mat-header-cell *matHeaderCellDef> {{ labelText }}</th>\n <td mat-cell *matCellDef=\"let note\">\n {{ note?.note }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"d-print-none\"> Actions</th>\n <td mat-cell *matCellDef=\"let note\" class=\"d-print-none text-secondary\">\n <div class=\"d-flex flex-row align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\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-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"viewMode === 'timeline'\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"mb-0\">Notes</h5>\n <span class=\"badge badge-info ml-1\" *ngIf=\"total\">{{ total }}</span>\n </mat-card-content>\n <mat-card-content class=\"mt-2\">\n <form (ngSubmit)=\"saveNote()\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <input [(ngModel)]=\"note\" [ngModelOptions]=\"{standalone: true}\" type=\"text\" matInput\n placeholder=\"Write your notes here...\" [disabled]=\"isSaving\">\n <mat-icon *ngIf=\"!isSaving\" matSuffix class=\"cursor-pointer\" (click)=\"saveNote()\">send</mat-icon>\n <mat-progress-spinner matSuffix mode=\"indeterminate\" diameter=\"20\" *ngIf=\"isSaving\"></mat-progress-spinner>\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-content>\n <div *ngFor=\"let note of models;last as isLast\">\n <div class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex flex-column\">\n <p class=\"mb-0\">{{ note?.creator?.name }}</p>\n <small class=\"text-secondary\">On {{ note?.created_at | date: 'medium' }}</small>\n </div>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <!-- @todo Pass $event once NoteController::destroy returns the deleted item -->\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\n </div>\n <div>{{ note?.note }}</div>\n <mat-divider class=\"my-2\" *ngIf=\"!isLast\"></mat-divider>\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n </ng-container>\n\n</div>\n", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"] }]
99
98
  }], ctorParameters: () => [{ type: i1.NoteService }, { type: i2.AlertService }], propDecorators: { relatedModelId: [{
100
99
  type: Input
101
100
  }], modelType: [{
@@ -109,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
109
108
  }], viewMode: [{
110
109
  type: Input
111
110
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHFCQUFxQjtJQW1CMUQsWUFDWSxXQUF3QixFQUMxQixZQUEwQjtRQUVsQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIVCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpCM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixjQUFTLEdBQUcsTUFBTSxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGFBQVEsR0FBd0IsTUFBTSxDQUFDO1FBRWhELHFCQUFnQixHQUFHO1lBQ2pCLE9BQU87WUFDUCxNQUFNO1lBQ04sU0FBUztTQUNWLENBQUM7UUFDRixhQUFRLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFckMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixVQUFLLEdBQUcsQ0FBQyxD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QUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb3RlU2VydmljZSB9IGZyb20gJy4uL25vdGUuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL25vdGUtZm9ybS9ub3RlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFRlY2hsaWZ5TGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtbW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmVcIjtcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbm90ZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGUtbGlzdC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTm90ZUxpc3RDb21wb25lbnQgZXh0ZW5kcyBUZWNobGlmeUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHJlbGF0ZWRNb2RlbElkICE6IGFueTtcbiAgQElucHV0KCkgbW9kZWxUeXBlICE6IGFueTtcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgbGFiZWxUZXh0ID0gJ05vdGUnO1xuICBASW5wdXQoKSBjb21tZW50c1ZpZXcgPSBmYWxzZTtcbiAgQElucHV0KCkgdmlld01vZGU6ICdsaXN0JyB8ICd0aW1lbGluZScgPSAnbGlzdCc7XG5cbiAgZGlzcGxheWVkQ29sdW1ucyA9IFtcbiAgICAnaW5kZXgnLFxuICAgICdub3RlJyxcbiAgICAnYWN0aW9ucydcbiAgXTtcbiAgbm90ZUZvcm0gPSBzaWduYWwoTm90ZUZvcm1Db21wb25lbnQpO1xuICBub3RlOiBhbnk7XG4gIGlzU2F2aW5nID0gZmFsc2U7XG4gIHRvdGFsID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgbm90ZVNlcnZpY2U6IE5vdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIobm90ZVNlcnZpY2UpO1xuICAgIHRoaXMubGFzdFBhZ2UgPSAwO1xuICAgIHRoaXMuZmlsdGVycyA9IHsgc29ydF9ieTogJ2NyZWF0ZWRfYXR8REVTQycgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vYXBwLW5vdGUtY29tbWVudC1saXN0IGxvYWRzIGl0cyBvd24gbm90ZXNcbiAgICBpZiAodGhpcy5jb21tZW50c1ZpZXcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLmZpbHRlcih4ID0+IHggIT09ICdhY3Rpb25zJyk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVycy5yZWxhdGVkX21vZGVsX2lkID0gdGhpcy5yZWxhdGVkTW9kZWxJZDtcbiAgICB0aGlzLmZpbHRlcnMubW9kZWxfdHlwZSA9IHRoaXMubW9kZWxUeXBlO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLm5vdGVTZXJ2aWNlLmluZGV4KHtcbiAgICAgIC4uLnRoaXMuZmlsdGVycyxcbiAgICAgIHBhZ2U6IHRoaXMucGFnZSxcbiAgICAgIHdpdGg6ICdjcmVhdG9yJ1xuICAgIH0pXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzV29ya2luZyA9IGZhbHNlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubW9kZWxzID0gdGhpcy5tb2RlbHMuY29uY2F0KHJlc3VsdD8uZGF0YSk7XG4gICAgICAgIHRoaXMubGFzdFBhZ2UgPSByZXN1bHQ/Lmxhc3RfcGFnZTtcbiAgICAgICAgdGhpcy50b3RhbCA9IHJlc3VsdD8udG90YWw7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIG5lZWRlZCBoZXJlIGZvciB0aGUgdGltZWxpbmUgdmlld1xuICAgKi9cbiAgc2F2ZU5vdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm5vdGUpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdQbGVhc2UgZW50ZXIgdGhlIG5vdGUnLCAnZXJyb3InKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGF0YTogYW55ID0ge1xuICAgICAgbm90ZTogdGhpcy5ub3RlLFxuICAgICAgbW9kZWxfdHlwZTogdGhpcy5tb2RlbFR5cGUsXG4gICAgICByZWxhdGVkX21vZGVsX2lkOiB0aGlzLnJlbGF0ZWRNb2RlbElkLFxuICAgICAgd2l0aDogJ2NyZWF0b3InLFxuICAgIH07XG4gICAgdGhpcy5pc1NhdmluZyA9IHRydWU7XG4gICAgdGhpcy5ub3RlU2VydmljZS5zdG9yZShkYXRhKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5pc1NhdmluZyA9IGZhbHNlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5tb2RlbENyZWF0ZWQocmVzcG9uc2U/Lml0ZW0pO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnVGhlIG5vdGUgc2F2ZWQgc3VjY2Vzc2Z1bGx5LicsICdzdWNjZXNzJyk7XG4gICAgICAgIHRoaXMubm90ZSA9ICcnO1xuICAgICAgICB0aGlzLnRvdGFsICs9IDE7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGFwcC1ub3RlLWNvbW1lbnQtbGlzdCAqbmdJZj1cImNvbW1lbnRzVmlld1wiIFtyZWxhdGVkTW9kZWxJZF09XCJyZWxhdGVkTW9kZWxJZFwiIFttb2RlbFR5cGVdPVwibW9kZWxUeXBlXCJcbiAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIj48L2FwcC1ub3RlLWNvbW1lbnQtbGlzdD5cblxuPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMS41cmVtXCIgKm5nSWY9XCIhY29tbWVudHNWaWV3XCI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdNb2RlID09PSAnbGlzdCdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGg1IGNsYXNzPVwibS0wXCI+e3sgbGFiZWxUZXh0IH19czwvaDU+XG4gICAgICA8YXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uIGNsYXNzPVwiZC1wcmludC1ub25lIG1sLTFcIiBbY29tcG9uZW50XT1cIm5vdGVGb3JtKClcIiB3aWR0aD1cIjQwMHB4XCJcbiAgICAgICAgW2RhdGFdPVwieyBtb2RlbF90eXBlOiBtb2RlbFR5cGUsIHJlbGF0ZWRfbW9kZWxfaWQ6IHJlbGF0ZWRNb2RlbElkLCBsYWJlbFRleHQ6IGxhYmVsVGV4dCB9XCJcbiAgICAgICAgKHNhdmVkKT1cIm1vZGVsQ3JlYXRlZCgkZXZlbnQpOyB0b3RhbCA9IHRvdGFsICsgMVwiPjwvYXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInctMTAwIHNjcm9sbC1jb250YWluZXJcIiBpbmZpbml0ZVNjcm9sbCBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIxXCIgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIlxuICAgICAgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIiBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCI+XG4gICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cIm1vZGVsc1wiIGNsYXNzPVwidy0xMDBcIiBtdWx0aVRlbXBsYXRlRGF0YVJvd3M+XG5cbiAgICAgICAgPCEtLSBJbmRleCBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgbm90ZTsgbGV0IGkgPSBkYXRhSW5kZXhcIj4ge3sgaSArIDEgfX08L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibm90ZVwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7IGxhYmVsVGV4dCB9fTwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IG5vdGVcIj5cbiAgICAgICAgICAgIHt7IG5vdGU/Lm5vdGUgfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZC1wcmludC1ub25lXCI+IEFjdGlvbnM8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBub3RlXCIgY2xhc3M9XCJkLXByaW50LW5vbmUgdGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XG4gICAgICAgICAgICAgIDxhcHAtdGVjaGxpZnktZm9ybS1idXR0b24gW2NvbXBvbmVudF09XCJub3RlRm9ybSgpXCIgW21vZGVsXT1cIm5vdGVcIiB3aWR0aD1cIjQwMHB4XCJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJ7IGxhYmVsVGV4dDogbGFiZWxUZXh0IH1cIiAoc2F2ZWQpPVwibW9kZWxzVXBkYXRlZEJ5SWQoJGV2ZW50KVwiPjwvYXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uPlxuICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24gW3NlcnZpY2VdPVwibm90ZVNlcnZpY2VcIiBbbW9kZWxdPVwibm90ZVwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwieyB0eXBlOiBsYWJlbFRleHQsIHRpdGxlOiBub3RlPy5ub3RlIH1cIlxuICAgICAgICAgICAgICAgIChkZWxldGVkKT1cIm1vZGVsc0RlbGV0ZWRCeUlkKG5vdGUpOyB0b3RhbCA9IHRvdGFsIC0gMVwiPjwvYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgICAgIDwvdGFibGU+XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlld01vZGUgPT09ICd0aW1lbGluZSdcIj5cbiAgICA8bWF0LWNhcmQ+XG4gICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxoNSBjbGFzcz1cIm1iLTBcIj5Ob3RlczwvaDU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtaW5mbyBtbC0xXCIgKm5nSWY9XCJ0b3RhbFwiPnt7IHRvdGFsIH19PC9zcGFuPlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJtdC0yXCI+XG4gICAgICAgIDxmb3JtIChuZ1N1Ym1pdCk9XCJzYXZlTm90ZSgpXCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibm90ZVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiB0eXBlPVwidGV4dFwiIG1hdElucHV0XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV3JpdGUgeW91ciBub3RlcyBoZXJlLi4uXCIgW2Rpc2FibGVkXT1cImlzU2F2aW5nXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhaXNTYXZpbmdcIiBtYXRTdWZmaXggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzYXZlTm90ZSgpXCI+c2VuZDwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgbWF0U3VmZml4IG1vZGU9XCJpbmRldGVybWluYXRlXCIgZGlhbWV0ZXI9XCIyMFwiICpuZ0lmPVwiaXNTYXZpbmdcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBub3RlIG9mIG1vZGVscztsYXN0IGFzIGlzTGFzdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMFwiPnt7IG5vdGU/LmNyZWF0b3I/Lm5hbWUgfX08L3A+XG4gICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+T24ge3sgbm90ZT8uY3JlYXRlZF9hdCB8IGRhdGU6ICdtZWRpdW0nIH19PC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uIFtjb21wb25lbnRdPVwibm90ZUZvcm0oKVwiIFttb2RlbF09XCJub3RlXCIgd2lkdGg9XCI0MDBweFwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwieyBsYWJlbFRleHQ6IGxhYmVsVGV4dCB9XCIgKHNhdmVkKT1cIm1vZGVsc1VwZGF0ZWRCeUlkKCRldmVudClcIj48L2FwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPCEtLSBAdG9kbyBQYXNzICRldmVudCBvbmNlIE5vdGVDb250cm9sbGVyOjpkZXN0cm95IHJldHVybnMgdGhlIGRlbGV0ZWQgaXRlbSAtLT5cbiAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uIFtzZXJ2aWNlXT1cIm5vdGVTZXJ2aWNlXCIgW21vZGVsXT1cIm5vdGVcIlxuICAgICAgICAgICAgICAgIFtkYXRhXT1cInsgdHlwZTogbGFiZWxUZXh0LCB0aXRsZTogbm90ZT8ubm90ZSB9XCJcbiAgICAgICAgICAgICAgICAoZGVsZXRlZCk9XCJtb2RlbHNEZWxldGVkQnlJZChub3RlKTsgdG90YWwgPSB0b3RhbCAtIDFcIj48L2FwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj57eyBub3RlPy5ub3RlIH19PC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwibXktMlwiICpuZ0lmPVwiIWlzTGFzdFwiPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDwvbWF0LWNhcmQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG48L2Rpdj5cbiJdfQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU8xQyxNQUFNLE9BQU8saUJBQWtCLFNBQVEscUJBQXFCO0lBbUIxRCxZQUNZLFdBQXdCLEVBQzFCLFlBQTBCO1FBRWxDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUhULGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBakIzQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFDbkIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsYUFBUSxHQUF3QixNQUFNLENBQUM7UUFFaEQscUJBQWdCLEdBQUc7WUFDakIsT0FBTztZQUNQLE1BQU07WUFDTixTQUFTO1NBQ1YsQ0FBQztRQUNGLGFBQVEsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVyQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFVBQUssR0FBRyxDQUFDLENB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SztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdGVTZXJ2aWNlIH0gZnJvbSAnLi4vbm90ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vbm90ZS1mb3JtL25vdGUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVjaGxpZnlMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZVwiO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1ub3RlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90ZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm90ZS1saXN0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOb3RlTGlzdENvbXBvbmVudCBleHRlbmRzIFRlY2hsaWZ5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcmVsYXRlZE1vZGVsSWQgITogYW55O1xuICBASW5wdXQoKSBtb2RlbFR5cGUgITogYW55O1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBsYWJlbFRleHQgPSAnTm90ZSc7XG4gIEBJbnB1dCgpIGNvbW1lbnRzVmlldyA9IGZhbHNlO1xuICBASW5wdXQoKSB2aWV3TW9kZTogJ2xpc3QnIHwgJ3RpbWVsaW5lJyA9ICdsaXN0JztcblxuICBkaXNwbGF5ZWRDb2x1bW5zID0gW1xuICAgICdpbmRleCcsXG4gICAgJ25vdGUnLFxuICAgICdhY3Rpb25zJ1xuICBdO1xuICBub3RlRm9ybSA9IHNpZ25hbChOb3RlRm9ybUNvbXBvbmVudCk7XG4gIG5vdGU6IGFueTtcbiAgaXNTYXZpbmcgPSBmYWxzZTtcbiAgdG90YWwgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBub3RlU2VydmljZTogTm90ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxuICApIHtcbiAgICBzdXBlcihub3RlU2VydmljZSk7XG4gICAgdGhpcy5sYXN0UGFnZSA9IDA7XG4gICAgdGhpcy5maWx0ZXJzID0geyBzb3J0X2J5OiAnY3JlYXRlZF9hdHxERVNDJyB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy9hcHAtbm90ZS1jb21tZW50LWxpc3QgbG9hZHMgaXRzIG93biBub3Rlc1xuICAgIGlmICh0aGlzLmNvbW1lbnRzVmlldykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMuZmlsdGVyKHggPT4geCAhPT0gJ2FjdGlvbnMnKTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJzLnJlbGF0ZWRfbW9kZWxfaWQgPSB0aGlzLnJlbGF0ZWRNb2RlbElkO1xuICAgIHRoaXMuZmlsdGVycy5tb2RlbF90eXBlID0gdGhpcy5tb2RlbFR5cGU7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIHRoaXMubm90ZVNlcnZpY2UuaW5kZXgoe1xuICAgICAgLi4udGhpcy5maWx0ZXJzLFxuICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgd2l0aDogJ2NyZWF0b3InXG4gICAgfSlcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuaXNXb3JraW5nID0gZmFsc2UpKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscy5jb25jYXQocmVzdWx0Py5kYXRhKTtcbiAgICAgICAgdGhpcy5sYXN0UGFnZSA9IHJlc3VsdD8ubGFzdF9wYWdlO1xuICAgICAgICB0aGlzLnRvdGFsID0gcmVzdWx0Py50b3RhbDtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgbmVlZGVkIGhlcmUgZm9yIHRoZSB0aW1lbGluZSB2aWV3XG4gICAqL1xuICBzYXZlTm90ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubm90ZSkge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1BsZWFzZSBlbnRlciB0aGUgbm90ZScsICdlcnJvcicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkYXRhOiBhbnkgPSB7XG4gICAgICBub3RlOiB0aGlzLm5vdGUsXG4gICAgICBtb2RlbF90eXBlOiB0aGlzLm1vZGVsVHlwZSxcbiAgICAgIHJlbGF0ZWRfbW9kZWxfaWQ6IHRoaXMucmVsYXRlZE1vZGVsSWQsXG4gICAgICB3aXRoOiAnY3JlYXRvcicsXG4gICAgfTtcbiAgICB0aGlzLmlzU2F2aW5nID0gdHJ1ZTtcbiAgICB0aGlzLm5vdGVTZXJ2aWNlLnN0b3JlKGRhdGEpXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzU2F2aW5nID0gZmFsc2UpKVxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm1vZGVsQ3JlYXRlZChyZXNwb25zZT8uaXRlbSk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdUaGUgbm90ZSBzYXZlZCBzdWNjZXNzZnVsbHkuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgdGhpcy5ub3RlID0gJyc7XG4gICAgICAgIHRoaXMudG90YWwgKz0gMTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8YXBwLW5vdGUtY29tbWVudC1saXN0ICpuZ0lmPVwiY29tbWVudHNWaWV3XCIgW3JlbGF0ZWRNb2RlbElkXT1cInJlbGF0ZWRNb2RlbElkXCIgW21vZGVsVHlwZV09XCJtb2RlbFR5cGVcIlxuICBbbGFiZWxUZXh0XT1cImxhYmVsVGV4dFwiPjwvYXBwLW5vdGUtY29tbWVudC1saXN0PlxuXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC00XCIgKm5nSWY9XCIhY29tbWVudHNWaWV3XCI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdNb2RlID09PSAnbGlzdCdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGg1IGNsYXNzPVwibS0wXCI+e3sgbGFiZWxUZXh0IH19czwvaDU+XG4gICAgICA8YXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uIGNsYXNzPVwiZC1wcmludC1ub25lIG1sLTFcIiBbY29tcG9uZW50XT1cIm5vdGVGb3JtKClcIiB3aWR0aD1cIjQwMHB4XCJcbiAgICAgICAgW2RhdGFdPVwieyBtb2RlbF90eXBlOiBtb2RlbFR5cGUsIHJlbGF0ZWRfbW9kZWxfaWQ6IHJlbGF0ZWRNb2RlbElkLCBsYWJlbFRleHQ6IGxhYmVsVGV4dCB9XCJcbiAgICAgICAgKHNhdmVkKT1cIm1vZGVsQ3JlYXRlZCgkZXZlbnQpOyB0b3RhbCA9IHRvdGFsICsgMVwiPjwvYXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInctMTAwIHNjcm9sbC1jb250YWluZXJcIiBpbmZpbml0ZVNjcm9sbCBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIxXCIgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIlxuICAgICAgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIiBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCI+XG4gICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cIm1vZGVsc1wiIGNsYXNzPVwidy0xMDBcIiBtdWx0aVRlbXBsYXRlRGF0YVJvd3M+XG5cbiAgICAgICAgPCEtLSBJbmRleCBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgbm90ZTsgbGV0IGkgPSBkYXRhSW5kZXhcIj4ge3sgaSArIDEgfX08L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibm90ZVwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7IGxhYmVsVGV4dCB9fTwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IG5vdGVcIj5cbiAgICAgICAgICAgIHt7IG5vdGU/Lm5vdGUgfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZC1wcmludC1ub25lXCI+IEFjdGlvbnM8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBub3RlXCIgY2xhc3M9XCJkLXByaW50LW5vbmUgdGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XG4gICAgICAgICAgICAgIDxhcHAtdGVjaGxpZnktZm9ybS1idXR0b24gW2NvbXBvbmVudF09XCJub3RlRm9ybSgpXCIgW21vZGVsXT1cIm5vdGVcIiB3aWR0aD1cIjQwMHB4XCJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJ7IGxhYmVsVGV4dDogbGFiZWxUZXh0IH1cIiAoc2F2ZWQpPVwibW9kZWxzVXBkYXRlZEJ5SWQoJGV2ZW50KVwiPjwvYXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uPlxuICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24gW3NlcnZpY2VdPVwibm90ZVNlcnZpY2VcIiBbbW9kZWxdPVwibm90ZVwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwieyB0eXBlOiBsYWJlbFRleHQsIHRpdGxlOiBub3RlPy5ub3RlIH1cIlxuICAgICAgICAgICAgICAgIChkZWxldGVkKT1cIm1vZGVsc0RlbGV0ZWRCeUlkKG5vdGUpOyB0b3RhbCA9IHRvdGFsIC0gMVwiPjwvYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgICAgIDwvdGFibGU+XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlld01vZGUgPT09ICd0aW1lbGluZSdcIj5cbiAgICA8bWF0LWNhcmQ+XG4gICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxoNSBjbGFzcz1cIm1iLTBcIj5Ob3RlczwvaDU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtaW5mbyBtbC0xXCIgKm5nSWY9XCJ0b3RhbFwiPnt7IHRvdGFsIH19PC9zcGFuPlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJtdC0yXCI+XG4gICAgICAgIDxmb3JtIChuZ1N1Ym1pdCk9XCJzYXZlTm90ZSgpXCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibm90ZVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiB0eXBlPVwidGV4dFwiIG1hdElucHV0XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV3JpdGUgeW91ciBub3RlcyBoZXJlLi4uXCIgW2Rpc2FibGVkXT1cImlzU2F2aW5nXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhaXNTYXZpbmdcIiBtYXRTdWZmaXggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzYXZlTm90ZSgpXCI+c2VuZDwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgbWF0U3VmZml4IG1vZGU9XCJpbmRldGVybWluYXRlXCIgZGlhbWV0ZXI9XCIyMFwiICpuZ0lmPVwiaXNTYXZpbmdcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBub3RlIG9mIG1vZGVscztsYXN0IGFzIGlzTGFzdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMFwiPnt7IG5vdGU/LmNyZWF0b3I/Lm5hbWUgfX08L3A+XG4gICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+T24ge3sgbm90ZT8uY3JlYXRlZF9hdCB8IGRhdGU6ICdtZWRpdW0nIH19PC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uIFtjb21wb25lbnRdPVwibm90ZUZvcm0oKVwiIFttb2RlbF09XCJub3RlXCIgd2lkdGg9XCI0MDBweFwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwieyBsYWJlbFRleHQ6IGxhYmVsVGV4dCB9XCIgKHNhdmVkKT1cIm1vZGVsc1VwZGF0ZWRCeUlkKCRldmVudClcIj48L2FwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPCEtLSBAdG9kbyBQYXNzICRldmVudCBvbmNlIE5vdGVDb250cm9sbGVyOjpkZXN0cm95IHJldHVybnMgdGhlIGRlbGV0ZWQgaXRlbSAtLT5cbiAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uIFtzZXJ2aWNlXT1cIm5vdGVTZXJ2aWNlXCIgW21vZGVsXT1cIm5vdGVcIlxuICAgICAgICAgICAgICAgIFtkYXRhXT1cInsgdHlwZTogbGFiZWxUZXh0LCB0aXRsZTogbm90ZT8ubm90ZSB9XCJcbiAgICAgICAgICAgICAgICAoZGVsZXRlZCk9XCJtb2RlbHNEZWxldGVkQnlJZChub3RlKTsgdG90YWwgPSB0b3RhbCAtIDFcIj48L2FwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj57eyBub3RlPy5ub3RlIH19PC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwibXktMlwiICpuZ0lmPVwiIWlzTGFzdFwiPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDwvbWF0LWNhcmQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG48L2Rpdj5cbiJdfQ==
@@ -1,17 +1,14 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { FlexLayoutModule } from '@angular/flex-layout';
3
2
  import { NoteCommentListComponent } from './note-comment-list/note-comment-list.component';
4
3
  import { NoteListComponent } from './note-list/note-list.component';
5
4
  import { SharedModule } from '../shared.module';
6
5
  import * as i0 from "@angular/core";
7
6
  export class NoteModule {
8
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NoteModule, declarations: [NoteListComponent], imports: [FlexLayoutModule,
10
- SharedModule,
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NoteModule, declarations: [NoteListComponent], imports: [SharedModule,
11
9
  NoteCommentListComponent], exports: [NoteListComponent,
12
10
  NoteCommentListComponent] }); }
13
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteModule, imports: [FlexLayoutModule,
14
- SharedModule,
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteModule, imports: [SharedModule,
15
12
  NoteCommentListComponent] }); }
16
13
  }
17
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteModule, decorators: [{
@@ -21,7 +18,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
21
18
  NoteListComponent,
22
19
  ],
23
20
  imports: [
24
- FlexLayoutModule,
25
21
  SharedModule,
26
22
  NoteCommentListComponent
27
23
  ],
@@ -31,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
31
27
  ]
32
28
  }]
33
29
  }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL25vdGUvbm90ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBZ0JoRCxNQUFNLE9BQU8sVUFBVTsrR0FBVixVQUFVO2dIQUFWLFVBQVUsaUJBWmYsaUJBQWlCLGFBR2pCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osd0JBQXdCLGFBR3hCLGlCQUFpQjtZQUNqQix3QkFBd0I7Z0hBR25CLFVBQVUsWUFUZixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLHdCQUF3Qjs7NEZBT25CLFVBQVU7a0JBZHRCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLGlCQUFpQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWix3QkFBd0I7cUJBQzNCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxpQkFBaUI7d0JBQ2pCLHdCQUF3QjtxQkFDM0I7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IE5vdGVDb21tZW50TGlzdENvbXBvbmVudCB9IGZyb20gJy4vbm90ZS1jb21tZW50LWxpc3Qvbm90ZS1jb21tZW50LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgTm90ZUxpc3RDb21wb25lbnQsXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcbiAgICAgICAgTm90ZUNvbW1lbnRMaXN0Q29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIE5vdGVMaXN0Q29tcG9uZW50LFxuICAgICAgICBOb3RlQ29tbWVudExpc3RDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5vdGVNb2R1bGUgeyB9XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL25vdGUvbm90ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBZWhELE1BQU0sT0FBTyxVQUFVOytHQUFWLFVBQVU7Z0hBQVYsVUFBVSxpQkFYZixpQkFBaUIsYUFHakIsWUFBWTtZQUNaLHdCQUF3QixhQUd4QixpQkFBaUI7WUFDakIsd0JBQXdCO2dIQUduQixVQUFVLFlBUmYsWUFBWTtZQUNaLHdCQUF3Qjs7NEZBT25CLFVBQVU7a0JBYnRCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLGlCQUFpQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osd0JBQXdCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsaUJBQWlCO3dCQUNqQix3QkFBd0I7cUJBQzNCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdGVDb21tZW50TGlzdENvbXBvbmVudCB9IGZyb20gJy4vbm90ZS1jb21tZW50LWxpc3Qvbm90ZS1jb21tZW50LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgTm90ZUxpc3RDb21wb25lbnQsXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcbiAgICAgICAgTm90ZUNvbW1lbnRMaXN0Q29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIE5vdGVMaXN0Q29tcG9uZW50LFxuICAgICAgICBOb3RlQ29tbWVudExpc3RDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5vdGVNb2R1bGUgeyB9XG4iXX0=
@@ -2,12 +2,12 @@ import { UntypedFormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
2
2
  import { Component, Input, ViewChild } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/material/form-field";
6
- import * as i3 from "@angular/material/icon";
7
- import * as i4 from "@angular/material/input";
8
- import * as i5 from "@angular/material/tooltip";
9
- import * as i6 from "@angular/material/button-toggle";
10
- import * as i7 from "@angular/forms";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@angular/material/form-field";
7
+ import * as i4 from "@angular/material/icon";
8
+ import * as i5 from "@angular/material/input";
9
+ import * as i6 from "@angular/material/tooltip";
10
+ import * as i7 from "@angular/material/button-toggle";
11
11
  // set the default value
12
12
  export const DEFAULT_SELECTED_VALUE = 1;
13
13
  export class NumberInputButtonComponent {
@@ -80,7 +80,7 @@ export class NumberInputButtonComponent {
80
80
  multi: true,
81
81
  useExisting: NumberInputButtonComponent
82
82
  }
83
- ], viewQueries: [{ propertyName: "customInput", first: true, predicate: ["customInput"], descendants: true }], ngImport: i0, template: "<span *ngIf=\"showLabel\" class=\"mr-1\">{{ label }}</span> <br *ngIf=\"showLabel\">\n<mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n [formControl]=\"selectedOption\">\n <mat-button-toggle [matTooltip]=\"option?.hint || ''\" *ngFor=\"let option of options\" [value]=\"option?.value\">\n <span *ngIf=\"option.type =='text'\">{{ option?.title }}</span>\n <mat-icon class=\"small-icon\" *ngIf=\"option.type == 'icon'\">{{option?.title}}</mat-icon>\n </mat-button-toggle>\n</mat-button-toggle-group>\n<mat-form-field class=\"mt-1 w-100\" *ngIf=\"showCustomInput\">\n <mat-label>{{ label }}</mat-label>\n <input type=\"number\" min=\"0\" #customInput matInput [formControl]=\"customValue\">\n</mat-form-field>", styles: [":host ::ng-deep .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:30px;padding:0 12px;font-size:12px}:host ::ng-deep .mat-button-toggle-checked{color:#fff!important}:host ::ng-deep .small-icon{height:18px;width:18px;font-size:18px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.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: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i6.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i6.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: i7.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: i7.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
83
+ ], viewQueries: [{ propertyName: "customInput", first: true, predicate: ["customInput"], descendants: true }], ngImport: i0, template: "<span *ngIf=\"showLabel\" class=\"mr-1\">{{ label }}</span> <br *ngIf=\"showLabel\">\n<mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n [formControl]=\"selectedOption\">\n <mat-button-toggle [matTooltip]=\"option?.hint || ''\" *ngFor=\"let option of options\" [value]=\"option?.value\">\n <span *ngIf=\"option.type =='text'\">{{ option?.title }}</span>\n <mat-icon class=\"small-icon\" *ngIf=\"option.type == 'icon'\">{{option?.title}}</mat-icon>\n </mat-button-toggle>\n</mat-button-toggle-group>\n<mat-form-field class=\"mt-1 w-100\" *ngIf=\"showCustomInput\">\n <mat-label>{{ label }}</mat-label>\n <input type=\"number\" min=\"0\" #customInput matInput [formControl]=\"customValue\">\n</mat-form-field>", styles: [":host ::ng-deep .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:30px;padding:0 12px;font-size:12px}:host ::ng-deep .mat-button-toggle-checked{color:#fff!important}:host ::ng-deep .small-icon{height:18px;width:18px;font-size:18px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.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: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i7.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7.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: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
84
84
  }
85
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonComponent, decorators: [{
86
86
  type: Component,
@@ -1,17 +1,11 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
2
  import { NumberInputButtonComponent } from './number-input-button/number-input-button.component';
4
- import { ReactiveFormsModule } from '@angular/forms';
5
- import { MaterialModule } from '../material.module';
3
+ import { SharedModule } from '../shared.module';
6
4
  import * as i0 from "@angular/core";
7
5
  export class NumberInputButtonModule {
8
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonModule, declarations: [NumberInputButtonComponent], imports: [CommonModule,
10
- MaterialModule,
11
- ReactiveFormsModule], exports: [NumberInputButtonComponent] }); }
12
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonModule, imports: [CommonModule,
13
- MaterialModule,
14
- ReactiveFormsModule] }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonModule, declarations: [NumberInputButtonComponent], imports: [SharedModule], exports: [NumberInputButtonComponent] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonModule, imports: [SharedModule] }); }
15
9
  }
16
10
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonModule, decorators: [{
17
11
  type: NgModule,
@@ -23,10 +17,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
23
17
  NumberInputButtonComponent
24
18
  ],
25
19
  imports: [
26
- CommonModule,
27
- MaterialModule,
28
- ReactiveFormsModule,
20
+ SharedModule
29
21
  ]
30
22
  }]
31
23
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LWJ1dHRvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL251bWJlci1pbnB1dC1idXR0b24vbnVtYmVyLWlucHV0LWJ1dHRvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9CQUFvQixDQUFDOztBQWVsRCxNQUFNLE9BQU8sdUJBQXVCOytHQUF2Qix1QkFBdUI7Z0hBQXZCLHVCQUF1QixpQkFYaEMsMEJBQTBCLGFBTTFCLFlBQVk7WUFDWixjQUFjO1lBQ2QsbUJBQW1CLGFBTG5CLDBCQUEwQjtnSEFRakIsdUJBQXVCLFlBTGhDLFlBQVk7WUFDWixjQUFjO1lBQ2QsbUJBQW1COzs0RkFHVix1QkFBdUI7a0JBYm5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDBCQUEwQjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDBCQUEwQjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7cUJBQ3BCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOdW1iZXJJbnB1dEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLWlucHV0LWJ1dHRvbi9udW1iZXItaW5wdXQtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0ZXJpYWxNb2R1bGV9IGZyb20gJy4uL21hdGVyaWFsLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE51bWJlcklucHV0QnV0dG9uQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBOdW1iZXJJbnB1dEJ1dHRvbkNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdGVyaWFsTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVySW5wdXRCdXR0b25Nb2R1bGUgeyB9XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LWJ1dHRvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL251bWJlci1pbnB1dC1idXR0b24vbnVtYmVyLWlucHV0LWJ1dHRvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBYWhELE1BQU0sT0FBTyx1QkFBdUI7K0dBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCLGlCQVRoQywwQkFBMEIsYUFNMUIsWUFBWSxhQUhaLDBCQUEwQjtnSEFNakIsdUJBQXVCLFlBSGhDLFlBQVk7OzRGQUdILHVCQUF1QjtrQkFYbkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osMEJBQTBCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMEJBQTBCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdW1iZXJJbnB1dEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLWlucHV0LWJ1dHRvbi9udW1iZXItaW5wdXQtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTnVtYmVySW5wdXRCdXR0b25Db21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE51bWJlcklucHV0QnV0dG9uQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJJbnB1dEJ1dHRvbk1vZHVsZSB7IH1cbiJdfQ==