ngx-techlify-core 15.0.2 → 16.0.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 (473) hide show
  1. package/esm2022/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +135 -0
  2. package/{esm2020 → esm2022}/lib/access-control-config/access-control-config-routing.module.mjs +5 -5
  3. package/esm2022/lib/access-control-config/access-control-config.component.mjs +137 -0
  4. package/esm2022/lib/access-control-config/access-control-config.model.mjs +34 -0
  5. package/{esm2020 → esm2022}/lib/access-control-config/access-control-config.module.mjs +24 -24
  6. package/esm2022/lib/access-control-config/access-control-config.service.mjs +32 -0
  7. package/esm2022/lib/action-popup/action-popup.component.mjs +36 -0
  8. package/{esm2020 → esm2022}/lib/action-popup/action-popup.model.mjs +4 -1
  9. package/{esm2020 → esm2022}/lib/action-popup/action-popup.module.mjs +9 -9
  10. package/{esm2020 → esm2022}/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.mjs +5 -5
  11. package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.component.mjs +54 -0
  12. package/{esm2020 → esm2022}/lib/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +15 -15
  13. package/{esm2020 → esm2022}/lib/audit-log/audit-log-list/audit-log-list-routing.module.mjs +5 -5
  14. package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +146 -0
  15. package/{esm2020 → esm2022}/lib/audit-log/audit-log-list/audit-log-list.module.mjs +19 -19
  16. package/{esm2020 → esm2022}/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.mjs +5 -5
  17. package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +79 -0
  18. package/{esm2020 → esm2022}/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +15 -15
  19. package/{esm2020 → esm2022}/lib/audit-log/audit-log-routing.module.mjs +5 -5
  20. package/{esm2020 → esm2022}/lib/audit-log/audit-log-view/audit-log-view-routing.module.mjs +5 -5
  21. package/esm2022/lib/audit-log/audit-log-view/audit-log-view.component.mjs +55 -0
  22. package/{esm2020 → esm2022}/lib/audit-log/audit-log-view/audit-log-view.module.mjs +11 -11
  23. package/{esm2020 → esm2022}/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.mjs +5 -5
  24. package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +60 -0
  25. package/{esm2020 → esm2022}/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +11 -11
  26. package/{esm2020 → esm2022}/lib/audit-log/audit-log.module.mjs +11 -11
  27. package/{esm2020 → esm2022}/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.mjs +5 -5
  28. package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +40 -0
  29. package/{esm2020 → esm2022}/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +11 -11
  30. package/esm2022/lib/base-model/techlify-form-component.class.mjs +52 -0
  31. package/esm2022/lib/base-model/techlify-listing-component.class.mjs +64 -0
  32. package/esm2022/lib/base-model/techlify-service.class.mjs +69 -0
  33. package/{esm2020 → esm2022}/lib/change-password/change-password-routing.module.mjs +5 -5
  34. package/esm2022/lib/change-password/change-password.component.mjs +96 -0
  35. package/{esm2020 → esm2022}/lib/change-password/change-password.module.mjs +19 -19
  36. package/esm2022/lib/column-selector/column-selector/column-selector.component.mjs +36 -0
  37. package/{esm2020 → esm2022}/lib/column-selector/column-selector.module.mjs +13 -13
  38. package/esm2022/lib/core/alert.service.mjs +39 -0
  39. package/esm2022/lib/core/api-prefix.interceptor.mjs +27 -0
  40. package/esm2022/lib/core/authentication.guard.mjs +37 -0
  41. package/esm2022/lib/core/authentication.service.mjs +65 -0
  42. package/esm2022/lib/core/cache.interceptor.mjs +59 -0
  43. package/esm2022/lib/core/config.service.mjs +46 -0
  44. package/esm2022/lib/core/core.module.mjs +63 -0
  45. package/esm2022/lib/core/credentials.service.mjs +80 -0
  46. package/esm2022/lib/core/dataManager.service.mjs +120 -0
  47. package/esm2022/lib/core/error-handler.interceptor.mjs +50 -0
  48. package/esm2022/lib/core/error-handler.service.mjs +57 -0
  49. package/esm2022/lib/core/filter.service.mjs +39 -0
  50. package/{esm2020 → esm2022}/lib/core/form-validator.service.mjs +4 -4
  51. package/{esm2020 → esm2022}/lib/core/header.interceptor.mjs +4 -4
  52. package/esm2022/lib/core/http-cache.service.mjs +110 -0
  53. package/esm2022/lib/core/http.service.mjs +89 -0
  54. package/esm2022/lib/core/logger.service.mjs +101 -0
  55. package/{esm2020 → esm2022}/lib/core/route-reusable-strategy.mjs +4 -4
  56. package/esm2022/lib/core/snack/snack.component.mjs +35 -0
  57. package/{esm2020 → esm2022}/lib/core/snack/snack.module.mjs +11 -11
  58. package/esm2022/lib/core/storage.service.mjs +38 -0
  59. package/esm2022/lib/core/techlify-config.model.mjs +30 -0
  60. package/esm2022/lib/core/token.interceptor.mjs +29 -0
  61. package/esm2022/lib/data-table/data-table.component.mjs +211 -0
  62. package/esm2022/lib/data-table/data-table.model.mjs +46 -0
  63. package/{esm2020 → esm2022}/lib/data-table/data-table.module.mjs +11 -11
  64. package/esm2022/lib/document-viewer/document-viewer.component.mjs +69 -0
  65. package/{esm2020 → esm2022}/lib/document-viewer/document-viewer.module.mjs +11 -11
  66. package/{esm2020 → esm2022}/lib/document-viewer/viewer-config.model.mjs +4 -1
  67. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.mjs +5 -5
  68. package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.mjs +77 -0
  69. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.mjs +13 -13
  70. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-routing.module.mjs +5 -5
  71. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.mjs +5 -5
  72. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +118 -0
  73. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.mjs +17 -17
  74. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.mjs +5 -5
  75. package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +164 -0
  76. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.mjs +17 -17
  77. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.mjs +5 -5
  78. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type.module.mjs +7 -7
  79. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.mjs +5 -5
  80. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +114 -0
  81. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.mjs +17 -17
  82. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.mjs +5 -5
  83. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +169 -0
  84. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.mjs +19 -19
  85. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.mjs +5 -5
  86. package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +54 -0
  87. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.mjs +15 -15
  88. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.mjs +5 -5
  89. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user.module.mjs +7 -7
  90. package/{esm2020 → esm2022}/lib/email-subscription/email-subscription.module.mjs +7 -7
  91. package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +174 -0
  92. package/esm2022/lib/entity-files/entity-file.service.mjs +37 -0
  93. package/esm2022/lib/entity-files/entity-files-view-all.component.mjs +364 -0
  94. package/{esm2020 → esm2022}/lib/entity-files/entity-files-view-all.module.mjs +29 -29
  95. package/esm2022/lib/export-excel/export-excel-button/export-excel-button.component.mjs +31 -0
  96. package/{esm2020 → esm2022}/lib/export-excel/export-excel.module.mjs +7 -7
  97. package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.mjs +92 -0
  98. package/{esm2020 → esm2022}/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.mjs +13 -13
  99. package/esm2022/lib/file-dropper/file-dropper.component.mjs +129 -0
  100. package/esm2022/lib/file-dropper/file-dropper.model.mjs +11 -0
  101. package/{esm2020 → esm2022}/lib/file-dropper/file-dropper.module.mjs +9 -9
  102. package/{esm2020 → esm2022}/lib/forgot-password/forgot-password-routing.module.mjs +5 -5
  103. package/esm2022/lib/forgot-password/forgot-password.component.mjs +81 -0
  104. package/{esm2020 → esm2022}/lib/forgot-password/forgot-password.module.mjs +11 -11
  105. package/{esm2020 → esm2022}/lib/import-csv/data-import/data-import.component.mjs +5 -4
  106. package/esm2022/lib/import-csv/failed-items-list/failed-items-list.component.mjs +38 -0
  107. package/esm2022/lib/import-csv/field-mapping/field-mapping.component.mjs +160 -0
  108. package/esm2022/lib/import-csv/import-csv.component.mjs +207 -0
  109. package/{esm2020 → esm2022}/lib/import-csv/import-csv.module.mjs +28 -28
  110. package/esm2022/lib/import-csv/import-history-list/import-history-list.component.mjs +75 -0
  111. package/esm2022/lib/import-csv/import-success/import-success.component.mjs +26 -0
  112. package/{esm2020 → esm2022}/lib/ip-address-selector/ip-address-selector.module.mjs +17 -17
  113. package/esm2022/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +108 -0
  114. package/esm2022/lib/loader/loader.component.mjs +23 -0
  115. package/{esm2020 → esm2022}/lib/loader/loader.module.mjs +7 -7
  116. package/{esm2020 → esm2022}/lib/login/login-routing.module.mjs +5 -5
  117. package/esm2022/lib/login/login.component.mjs +170 -0
  118. package/{esm2020 → esm2022}/lib/login/login.module.mjs +19 -19
  119. package/{esm2020 → esm2022}/lib/login-history-for-user/login-history-for-user-routing.module.mjs +5 -5
  120. package/esm2022/lib/login-history-for-user/login-history-for-user.component.mjs +96 -0
  121. package/{esm2020 → esm2022}/lib/login-history-for-user/login-history-for-user.module.mjs +17 -17
  122. package/{esm2020 → esm2022}/lib/material.module.mjs +53 -53
  123. package/{esm2020 → esm2022}/lib/ngx-techlify-users/ngx-techlify-users-routing.module.mjs +5 -5
  124. package/{esm2020 → esm2022}/lib/ngx-techlify-users/ngx-techlify-users.module.mjs +7 -7
  125. package/esm2022/lib/note/comment-form/comment-form.component.mjs +82 -0
  126. package/esm2022/lib/note/note-form/note-form.component.mjs +88 -0
  127. package/esm2022/lib/note/note-list/note-list.component.mjs +153 -0
  128. package/{esm2020 → esm2022}/lib/note/note.module.mjs +19 -19
  129. package/esm2022/lib/note/note.service.mjs +30 -0
  130. package/esm2022/lib/number-input-button/number-input-button/number-input-button.component.mjs +104 -0
  131. package/{esm2020 → esm2022}/lib/number-input-button/number-input-button.module.mjs +9 -9
  132. package/{esm2020 → esm2022}/lib/password-requirement-check/password-check.service.mjs +4 -4
  133. package/esm2022/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.mjs +50 -0
  134. package/{esm2020 → esm2022}/lib/password-requirement-check/password-requirement-check.module.mjs +5 -5
  135. package/esm2022/lib/profile/profile-edit.component.mjs +84 -0
  136. package/{esm2020 → esm2022}/lib/profile/profile-routing.module.mjs +5 -5
  137. package/{esm2020 → esm2022}/lib/profile/profile.module.mjs +11 -11
  138. package/esm2022/lib/read-more/read-more.component.mjs +44 -0
  139. package/{esm2020 → esm2022}/lib/read-more/read-more.module.mjs +9 -9
  140. package/esm2022/lib/request-helper/request-helper.service.mjs +107 -0
  141. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +93 -0
  142. package/{esm2020 → esm2022}/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.mjs +11 -11
  143. package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level.service.mjs +20 -0
  144. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +93 -0
  145. package/{esm2020 → esm2022}/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.mjs +9 -9
  146. package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status.service.mjs +20 -0
  147. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +94 -0
  148. package/{esm2020 → esm2022}/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.mjs +11 -11
  149. package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type.service.mjs +20 -0
  150. package/esm2022/lib/restrictors/restrictor.service.mjs +20 -0
  151. package/esm2022/lib/restrictors/restrictors-form/restrictors-form.component.mjs +111 -0
  152. package/esm2022/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +49 -0
  153. package/esm2022/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +152 -0
  154. package/{esm2020 → esm2022}/lib/restrictors/restrictors-routing.module.mjs +5 -5
  155. package/{esm2020 → esm2022}/lib/restrictors/restrictors.module.mjs +43 -43
  156. package/{esm2020 → esm2022}/lib/role/permission/permission.model.mjs +4 -1
  157. package/{esm2020 → esm2022}/lib/role/permission/permission.module.mjs +15 -15
  158. package/{esm2020 → esm2022}/lib/role/permission/permission.routes.mjs +5 -5
  159. package/esm2022/lib/role/permission/permissions-management.component.mjs +127 -0
  160. package/esm2022/lib/role/role-form.component.mjs +109 -0
  161. package/esm2022/lib/role/role-view/role-view.component.mjs +44 -0
  162. package/esm2022/lib/role/role.model.mjs +66 -0
  163. package/{esm2020 → esm2022}/lib/role/role.module.mjs +21 -21
  164. package/{esm2020 → esm2022}/lib/role/role.routes.mjs +5 -5
  165. package/esm2022/lib/role/role.service.mjs +27 -0
  166. package/esm2022/lib/role/roles-view-all.component.mjs +140 -0
  167. package/esm2022/lib/searchable-selector/searchable-selector.component.mjs +365 -0
  168. package/{esm2020 → esm2022}/lib/searchable-selector/searchable-selector.module.mjs +11 -11
  169. package/{esm2020 → esm2022}/lib/signup/signup-routing.module.mjs +5 -5
  170. package/esm2022/lib/signup/signup.component.mjs +87 -0
  171. package/{esm2020 → esm2022}/lib/signup/signup.module.mjs +11 -11
  172. package/esm2022/lib/techlify-company-switcher/techlify-company-switcher/techlify-company-switcher.component.mjs +73 -0
  173. package/{esm2020 → esm2022}/lib/techlify-company-switcher/techlify-company-switcher.module.mjs +9 -9
  174. package/esm2022/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +27 -0
  175. package/esm2022/lib/techlify-feature/techlify-feature-enabled.directive.mjs +79 -0
  176. package/esm2022/lib/techlify-feature/techlify-feature-listing.component.mjs +179 -0
  177. package/{esm2020 → esm2022}/lib/techlify-feature/techlify-feature.module.mjs +17 -17
  178. package/esm2022/lib/techlify-feature/techlify-feature.service.mjs +27 -0
  179. package/{esm2020 → esm2022}/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier-routing.module.mjs +5 -5
  180. package/esm2022/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.mjs +109 -0
  181. package/{esm2020 → esm2022}/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.module.mjs +15 -15
  182. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user-routing.module.mjs +5 -5
  183. package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +90 -0
  184. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.mjs +13 -13
  185. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-routing.module.mjs +5 -5
  186. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard-routing.module.mjs +5 -5
  187. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.component.mjs +180 -0
  188. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.module.mjs +19 -19
  189. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form-routing.module.mjs +5 -5
  190. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.component.mjs +131 -0
  191. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.module.mjs +17 -17
  192. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list-routing.module.mjs +5 -5
  193. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.component.mjs +186 -0
  194. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.module.mjs +19 -19
  195. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter-routing.module.mjs +5 -5
  196. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component.mjs +72 -0
  197. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.module.mjs +15 -15
  198. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-routing.module.mjs +5 -5
  199. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber.module.mjs +19 -19
  200. package/esm2022/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscription-entity.model.mjs +6 -0
  201. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form-routing.module.mjs +5 -5
  202. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.component.mjs +111 -0
  203. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.module.mjs +19 -19
  204. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list-routing.module.mjs +5 -5
  205. package/esm2022/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.component.mjs +171 -0
  206. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.module.mjs +17 -17
  207. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-routing.module.mjs +5 -5
  208. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-type/techlify-notification-type.module.mjs +17 -17
  209. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification-user-status.model.mjs +3 -3
  210. package/{esm2020 → esm2022}/lib/techlify-notifications/techlify-notification.module.mjs +7 -7
  211. package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.mjs +24 -0
  212. package/esm2022/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +301 -0
  213. package/{esm2020 → esm2022}/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +13 -13
  214. package/esm2022/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +189 -0
  215. package/{esm2020 → esm2022}/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +17 -17
  216. package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +124 -0
  217. package/{esm2020 → esm2022}/lib/techlify-update/techlify-update-form/techlify-update-form.module.mjs +13 -13
  218. package/{esm2020 → esm2022}/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.mjs +5 -5
  219. package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +151 -0
  220. package/{esm2020 → esm2022}/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs +19 -19
  221. package/{esm2020 → esm2022}/lib/techlify-update/techlify-update-routing.module.mjs +5 -5
  222. package/{esm2020 → esm2022}/lib/techlify-update/techlify-update.module.mjs +21 -21
  223. package/esm2022/lib/techlify-update/techlify-update.service.mjs +42 -0
  224. package/esm2022/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +169 -0
  225. package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.mjs +63 -0
  226. package/{esm2020 → esm2022}/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.mjs +11 -11
  227. package/esm2022/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +85 -0
  228. package/esm2022/lib/techlify-update/update-notifier/update-notifier.component.mjs +57 -0
  229. package/{esm2020 → esm2022}/lib/techlify-update/update-notifier/update-notifier.module.mjs +13 -13
  230. package/esm2022/lib/techlify-update/update-view/update-view.component.mjs +43 -0
  231. package/{esm2020 → esm2022}/lib/techlify-update/update-view/update-view.module.mjs +9 -9
  232. package/{esm2020 → esm2022}/lib/timeline-filter/timeline-filter-routing.module.mjs +5 -5
  233. package/esm2022/lib/timeline-filter/timeline-filter.component.mjs +253 -0
  234. package/{esm2020 → esm2022}/lib/timeline-filter/timeline-filter.module.mjs +25 -25
  235. package/esm2022/lib/timeline-filter/timeline.model.mjs +18 -0
  236. package/esm2022/lib/user/current-user.service.mjs +155 -0
  237. package/esm2022/lib/user/user-enable-button-component/user-enable-button.component.mjs +65 -0
  238. package/esm2022/lib/user/user-explore.component.mjs +55 -0
  239. package/esm2022/lib/user/user-form.component.mjs +234 -0
  240. package/esm2022/lib/user/user-view.component.mjs +76 -0
  241. package/esm2022/lib/user/user.model.mjs +49 -0
  242. package/{esm2020 → esm2022}/lib/user/user.module.mjs +42 -42
  243. package/{esm2020 → esm2022}/lib/user/user.routes.mjs +5 -5
  244. package/esm2022/lib/user/user.service.mjs +42 -0
  245. package/esm2022/lib/user/users-view-all.component.mjs +226 -0
  246. package/esm2022/lib/user-config/user-config.model.mjs +81 -0
  247. package/esm2022/lib/user-config/user-config.service.mjs +68 -0
  248. package/esm2022/lib/user-selector/user-data.service.mjs +37 -0
  249. package/esm2022/lib/user-selector/user-selector.component.mjs +100 -0
  250. package/{esm2020 → esm2022}/lib/user-selector/user-selector.module.mjs +11 -11
  251. package/{esm2020 → esm2022}/lib/utility/date-utils.service.mjs +4 -4
  252. package/esm2022/lib/utility/num-items-selector.component.mjs +33 -0
  253. package/esm2022/lib/utility/number-selector.component.mjs +46 -0
  254. package/{esm2020 → esm2022}/lib/utility/utility.module.mjs +7 -7
  255. package/{fesm2020 → fesm2022}/ngx-techlify-core.mjs +3117 -2394
  256. package/{fesm2020 → fesm2022}/ngx-techlify-core.mjs.map +1 -1
  257. package/lib/audit-log/audit-log-for-model/audit-log-for-model.component.d.ts +1 -1
  258. package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +1 -1
  259. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +1 -1
  260. package/lib/column-selector/column-selector/column-selector.component.d.ts +1 -1
  261. package/lib/data-table/data-table.component.d.ts +1 -1
  262. package/lib/document-viewer/document-viewer.component.d.ts +1 -1
  263. package/lib/entity-files/entity-files-view-all.component.d.ts +1 -1
  264. package/lib/export-excel/export-excel-button/export-excel-button.component.d.ts +1 -1
  265. package/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.d.ts +1 -1
  266. package/lib/file-dropper/file-dropper.component.d.ts +1 -1
  267. package/lib/import-csv/data-import/data-import.component.d.ts +1 -1
  268. package/lib/import-csv/failed-items-list/failed-items-list.component.d.ts +1 -1
  269. package/lib/import-csv/field-mapping/field-mapping.component.d.ts +1 -1
  270. package/lib/import-csv/import-csv.component.d.ts +1 -1
  271. package/lib/import-csv/import-history-list/import-history-list.component.d.ts +1 -1
  272. package/lib/import-csv/import-success/import-success.component.d.ts +1 -1
  273. package/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.d.ts +1 -1
  274. package/lib/loader/loader.component.d.ts +1 -1
  275. package/lib/login-history-for-user/login-history-for-user.component.d.ts +1 -1
  276. package/lib/note/comment-form/comment-form.component.d.ts +1 -1
  277. package/lib/note/note-list/note-list.component.d.ts +1 -1
  278. package/lib/number-input-button/number-input-button/number-input-button.component.d.ts +1 -1
  279. package/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.d.ts +1 -1
  280. package/lib/read-more/read-more.component.d.ts +1 -1
  281. package/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.d.ts +1 -1
  282. package/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.d.ts +1 -1
  283. package/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.d.ts +1 -1
  284. package/lib/restrictors/restrictors-form/restrictors-form.component.d.ts +1 -1
  285. package/lib/role/permission/permissions-management.component.d.ts +1 -1
  286. package/lib/role/roles-view-all.component.d.ts +1 -1
  287. package/lib/searchable-selector/searchable-selector.component.d.ts +1 -1
  288. package/lib/techlify-feature/on-off-switch/on-off-switch.component.d.ts +1 -1
  289. package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts +1 -1
  290. package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.d.ts +1 -1
  291. package/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component.d.ts +1 -1
  292. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.d.ts +1 -1
  293. package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.d.ts +1 -1
  294. package/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.d.ts +1 -1
  295. package/lib/techlify-update/update-notifier/update-notifier.component.d.ts +1 -1
  296. package/lib/timeline-filter/timeline-filter.component.d.ts +1 -1
  297. package/lib/user/user-enable-button-component/user-enable-button.component.d.ts +1 -1
  298. package/lib/user/user-form.component.d.ts +1 -1
  299. package/lib/user/users-view-all.component.d.ts +1 -1
  300. package/lib/user-selector/user-selector.component.d.ts +1 -1
  301. package/lib/utility/num-items-selector.component.d.ts +1 -1
  302. package/lib/utility/number-selector.component.d.ts +1 -1
  303. package/package.json +19 -25
  304. package/esm2020/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +0 -127
  305. package/esm2020/lib/access-control-config/access-control-config.component.mjs +0 -131
  306. package/esm2020/lib/access-control-config/access-control-config.model.mjs +0 -21
  307. package/esm2020/lib/access-control-config/access-control-config.service.mjs +0 -31
  308. package/esm2020/lib/action-popup/action-popup.component.mjs +0 -34
  309. package/esm2020/lib/audit-log/audit-log-for-model/audit-log-for-model.component.mjs +0 -51
  310. package/esm2020/lib/audit-log/audit-log-list/audit-log-list.component.mjs +0 -139
  311. package/esm2020/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +0 -74
  312. package/esm2020/lib/audit-log/audit-log-view/audit-log-view.component.mjs +0 -51
  313. package/esm2020/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +0 -56
  314. package/esm2020/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +0 -37
  315. package/esm2020/lib/base-model/techlify-form-component.class.mjs +0 -49
  316. package/esm2020/lib/base-model/techlify-listing-component.class.mjs +0 -65
  317. package/esm2020/lib/base-model/techlify-service.class.mjs +0 -68
  318. package/esm2020/lib/change-password/change-password.component.mjs +0 -87
  319. package/esm2020/lib/column-selector/column-selector/column-selector.component.mjs +0 -37
  320. package/esm2020/lib/core/alert.service.mjs +0 -38
  321. package/esm2020/lib/core/api-prefix.interceptor.mjs +0 -26
  322. package/esm2020/lib/core/authentication.guard.mjs +0 -35
  323. package/esm2020/lib/core/authentication.service.mjs +0 -62
  324. package/esm2020/lib/core/cache.interceptor.mjs +0 -58
  325. package/esm2020/lib/core/config.service.mjs +0 -45
  326. package/esm2020/lib/core/core.module.mjs +0 -63
  327. package/esm2020/lib/core/credentials.service.mjs +0 -79
  328. package/esm2020/lib/core/dataManager.service.mjs +0 -119
  329. package/esm2020/lib/core/error-handler.interceptor.mjs +0 -48
  330. package/esm2020/lib/core/error-handler.service.mjs +0 -55
  331. package/esm2020/lib/core/filter.service.mjs +0 -37
  332. package/esm2020/lib/core/http-cache.service.mjs +0 -107
  333. package/esm2020/lib/core/http.service.mjs +0 -84
  334. package/esm2020/lib/core/logger.service.mjs +0 -100
  335. package/esm2020/lib/core/snack/snack.component.mjs +0 -33
  336. package/esm2020/lib/core/storage.service.mjs +0 -38
  337. package/esm2020/lib/core/techlify-config.model.mjs +0 -28
  338. package/esm2020/lib/core/token.interceptor.mjs +0 -28
  339. package/esm2020/lib/data-table/data-table.component.mjs +0 -204
  340. package/esm2020/lib/data-table/data-table.model.mjs +0 -11
  341. package/esm2020/lib/document-viewer/document-viewer.component.mjs +0 -65
  342. package/esm2020/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.mjs +0 -76
  343. package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +0 -105
  344. package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +0 -161
  345. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +0 -101
  346. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +0 -165
  347. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +0 -52
  348. package/esm2020/lib/entity-files/entity-file-form/entity-file-form.component.mjs +0 -161
  349. package/esm2020/lib/entity-files/entity-file.service.mjs +0 -36
  350. package/esm2020/lib/entity-files/entity-files-view-all.component.mjs +0 -346
  351. package/esm2020/lib/export-excel/export-excel-button/export-excel-button.component.mjs +0 -32
  352. package/esm2020/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.mjs +0 -90
  353. package/esm2020/lib/file-dropper/file-dropper.component.mjs +0 -125
  354. package/esm2020/lib/file-dropper/file-dropper.model.mjs +0 -3
  355. package/esm2020/lib/forgot-password/forgot-password.component.mjs +0 -69
  356. package/esm2020/lib/import-csv/failed-items-list/failed-items-list.component.mjs +0 -35
  357. package/esm2020/lib/import-csv/field-mapping/field-mapping.component.mjs +0 -153
  358. package/esm2020/lib/import-csv/import-csv.component.mjs +0 -199
  359. package/esm2020/lib/import-csv/import-history-list/import-history-list.component.mjs +0 -71
  360. package/esm2020/lib/import-csv/import-success/import-success.component.mjs +0 -24
  361. package/esm2020/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +0 -109
  362. package/esm2020/lib/loader/loader.component.mjs +0 -23
  363. package/esm2020/lib/login/login.component.mjs +0 -153
  364. package/esm2020/lib/login-history-for-user/login-history-for-user.component.mjs +0 -92
  365. package/esm2020/lib/note/comment-form/comment-form.component.mjs +0 -77
  366. package/esm2020/lib/note/note-form/note-form.component.mjs +0 -79
  367. package/esm2020/lib/note/note-list/note-list.component.mjs +0 -148
  368. package/esm2020/lib/note/note.service.mjs +0 -29
  369. package/esm2020/lib/number-input-button/number-input-button/number-input-button.component.mjs +0 -104
  370. package/esm2020/lib/password-requirement-check/password-requirement-check/password-requirement-check.component.mjs +0 -47
  371. package/esm2020/lib/profile/profile-edit.component.mjs +0 -75
  372. package/esm2020/lib/read-more/read-more.component.mjs +0 -43
  373. package/esm2020/lib/request-helper/request-helper.service.mjs +0 -105
  374. package/esm2020/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +0 -91
  375. package/esm2020/lib/restrictors/restrictor-level-selector/restrictor-level.service.mjs +0 -19
  376. package/esm2020/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +0 -91
  377. package/esm2020/lib/restrictors/restrictor-status-selector/restrictor-status.service.mjs +0 -19
  378. package/esm2020/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +0 -92
  379. package/esm2020/lib/restrictors/restrictor-type-selector/restrictor-type.service.mjs +0 -19
  380. package/esm2020/lib/restrictors/restrictor.service.mjs +0 -19
  381. package/esm2020/lib/restrictors/restrictors-form/restrictors-form.component.mjs +0 -102
  382. package/esm2020/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +0 -44
  383. package/esm2020/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +0 -143
  384. package/esm2020/lib/role/permission/permissions-management.component.mjs +0 -114
  385. package/esm2020/lib/role/role-form.component.mjs +0 -99
  386. package/esm2020/lib/role/role-view/role-view.component.mjs +0 -39
  387. package/esm2020/lib/role/role.model.mjs +0 -56
  388. package/esm2020/lib/role/role.service.mjs +0 -26
  389. package/esm2020/lib/role/roles-view-all.component.mjs +0 -131
  390. package/esm2020/lib/searchable-selector/searchable-selector.component.mjs +0 -348
  391. package/esm2020/lib/signup/signup.component.mjs +0 -78
  392. package/esm2020/lib/techlify-company-switcher/techlify-company-switcher/techlify-company-switcher.component.mjs +0 -68
  393. package/esm2020/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +0 -24
  394. package/esm2020/lib/techlify-feature/techlify-feature-enabled.directive.mjs +0 -73
  395. package/esm2020/lib/techlify-feature/techlify-feature-listing.component.mjs +0 -169
  396. package/esm2020/lib/techlify-feature/techlify-feature.service.mjs +0 -26
  397. package/esm2020/lib/techlify-notifications/ngx-techlify-notifier/ngx-techlify-notifier.component.mjs +0 -103
  398. package/esm2020/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +0 -86
  399. package/esm2020/lib/techlify-notifications/techlify-notification-subscriber/techlify-notfication-subscriber-dashboard/techlify-notfication-subscriber-dashboard.component.mjs +0 -173
  400. package/esm2020/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-form/techlify-notification-subscriber-form.component.mjs +0 -117
  401. package/esm2020/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list/techlify-notification-subscriber-list.component.mjs +0 -180
  402. package/esm2020/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscriber-list-filter/techlify-notification-subscriber-list-filter.component.mjs +0 -69
  403. package/esm2020/lib/techlify-notifications/techlify-notification-subscriber/techlify-notification-subscription-entity.model.mjs +0 -6
  404. package/esm2020/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-form/techlify-notification-type-form.component.mjs +0 -99
  405. package/esm2020/lib/techlify-notifications/techlify-notification-type/techlify-notification-type-list/techlify-notification-type-list.component.mjs +0 -166
  406. package/esm2020/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.mjs +0 -15
  407. package/esm2020/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +0 -285
  408. package/esm2020/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +0 -180
  409. package/esm2020/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +0 -116
  410. package/esm2020/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +0 -145
  411. package/esm2020/lib/techlify-update/techlify-update.service.mjs +0 -41
  412. package/esm2020/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +0 -163
  413. package/esm2020/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.mjs +0 -60
  414. package/esm2020/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +0 -77
  415. package/esm2020/lib/techlify-update/update-notifier/update-notifier.component.mjs +0 -53
  416. package/esm2020/lib/techlify-update/update-view/update-view.component.mjs +0 -38
  417. package/esm2020/lib/timeline-filter/timeline-filter.component.mjs +0 -243
  418. package/esm2020/lib/timeline-filter/timeline.model.mjs +0 -18
  419. package/esm2020/lib/user/current-user.service.mjs +0 -151
  420. package/esm2020/lib/user/user-enable-button-component/user-enable-button.component.mjs +0 -59
  421. package/esm2020/lib/user/user-explore.component.mjs +0 -50
  422. package/esm2020/lib/user/user-form.component.mjs +0 -219
  423. package/esm2020/lib/user/user-view.component.mjs +0 -68
  424. package/esm2020/lib/user/user.model.mjs +0 -30
  425. package/esm2020/lib/user/user.service.mjs +0 -41
  426. package/esm2020/lib/user/users-view-all.component.mjs +0 -212
  427. package/esm2020/lib/user-config/user-config.model.mjs +0 -50
  428. package/esm2020/lib/user-config/user-config.service.mjs +0 -65
  429. package/esm2020/lib/user-selector/user-data.service.mjs +0 -35
  430. package/esm2020/lib/user-selector/user-selector.component.mjs +0 -91
  431. package/esm2020/lib/utility/num-items-selector.component.mjs +0 -31
  432. package/esm2020/lib/utility/number-selector.component.mjs +0 -42
  433. package/fesm2015/ngx-techlify-core.mjs +0 -13476
  434. package/fesm2015/ngx-techlify-core.mjs.map +0 -1
  435. /package/{esm2020 → esm2022}/lib/action-popup/index.mjs +0 -0
  436. /package/{esm2020 → esm2022}/lib/base-model/index.mjs +0 -0
  437. /package/{esm2020 → esm2022}/lib/column-selector/index.mjs +0 -0
  438. /package/{esm2020 → esm2022}/lib/core/index.mjs +0 -0
  439. /package/{esm2020 → esm2022}/lib/data-table/index.mjs +0 -0
  440. /package/{esm2020 → esm2022}/lib/date-validator.mjs +0 -0
  441. /package/{esm2020 → esm2022}/lib/document-viewer/index.mjs +0 -0
  442. /package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-for-user/index.mjs +0 -0
  443. /package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.mjs +0 -0
  444. /package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.mjs +0 -0
  445. /package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.mjs +0 -0
  446. /package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.mjs +0 -0
  447. /package/{esm2020 → esm2022}/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.mjs +0 -0
  448. /package/{esm2020 → esm2022}/lib/entity-files/index.mjs +0 -0
  449. /package/{esm2020 → esm2022}/lib/file-dropper/index.mjs +0 -0
  450. /package/{esm2020 → esm2022}/lib/forgot-password/index.mjs +0 -0
  451. /package/{esm2020 → esm2022}/lib/import-csv/import-csv-config.mjs +0 -0
  452. /package/{esm2020 → esm2022}/lib/loader/index.mjs +0 -0
  453. /package/{esm2020 → esm2022}/lib/login/index.mjs +0 -0
  454. /package/{esm2020 → esm2022}/lib/note/index.mjs +0 -0
  455. /package/{esm2020 → esm2022}/lib/number-input-button/index.mjs +0 -0
  456. /package/{esm2020 → esm2022}/lib/password-requirement-check/password-check-result.mjs +0 -0
  457. /package/{esm2020 → esm2022}/lib/profile/index.mjs +0 -0
  458. /package/{esm2020 → esm2022}/lib/restrictors/index.mjs +0 -0
  459. /package/{esm2020 → esm2022}/lib/role/index.mjs +0 -0
  460. /package/{esm2020 → esm2022}/lib/searchable-selector/index.mjs +0 -0
  461. /package/{esm2020 → esm2022}/lib/signup/index.mjs +0 -0
  462. /package/{esm2020 → esm2022}/lib/techlify-company-switcher/index.mjs +0 -0
  463. /package/{esm2020 → esm2022}/lib/techlify-feature/techlify-feature.routing.mjs +0 -0
  464. /package/{esm2020 → esm2022}/lib/techlify-notifications/index.mjs +0 -0
  465. /package/{esm2020 → esm2022}/lib/timeline-filter/calculate-timeline.mjs +0 -0
  466. /package/{esm2020 → esm2022}/lib/timeline-filter/index.mjs +0 -0
  467. /package/{esm2020 → esm2022}/lib/user/index.mjs +0 -0
  468. /package/{esm2020 → esm2022}/lib/user/user-type.enum.mjs +0 -0
  469. /package/{esm2020 → esm2022}/lib/user-config/index.mjs +0 -0
  470. /package/{esm2020 → esm2022}/lib/user-selector/index.mjs +0 -0
  471. /package/{esm2020 → esm2022}/lib/utility/index.mjs +0 -0
  472. /package/{esm2020 → esm2022}/ngx-techlify-core.mjs +0 -0
  473. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -1,77 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/forms";
4
- import * as i2 from "../../core/credentials.service";
5
- import * as i3 from "@angular/common";
6
- import * as i4 from "@angular/flex-layout/flex";
7
- import * as i5 from "@angular/flex-layout/extended";
8
- import * as i6 from "@angular/material/button";
9
- import * as i7 from "@angular/material/form-field";
10
- import * as i8 from "@angular/material/icon";
11
- import * as i9 from "@angular/material/input";
12
- import * as i10 from "../../read-more/read-more.component";
13
- export class CommentFormComponent {
14
- set commentData(data) {
15
- this.view = !!data;
16
- this._commentData = data;
17
- this.commentFormGroup.patchValue(data);
18
- }
19
- constructor(fb, credentialService) {
20
- this.fb = fb;
21
- this.credentialService = credentialService;
22
- this.action = new EventEmitter();
23
- this.createForm();
24
- }
25
- ngOnInit() { }
26
- get isLoggedIn() {
27
- return this.credentialService.isAuthenticated;
28
- }
29
- get currentUser() {
30
- return this.credentialService.credentials.user;
31
- }
32
- createForm() {
33
- //TODO: Finialize and add more validations.
34
- this.commentFormGroup = this.fb.group({
35
- id: [""],
36
- note: [""],
37
- model_type: [""],
38
- related_model_id: [""],
39
- });
40
- }
41
- submit() {
42
- if (this.commentFormGroup.get("note").value) {
43
- if (this._commentData) {
44
- this.view = !this.view;
45
- }
46
- this.action.emit({ type: "save", value: this.commentFormGroup.value });
47
- this.commentFormGroup.reset();
48
- }
49
- else if (this.commentFormGroup.get("id").value) {
50
- this.deleteComment();
51
- }
52
- }
53
- hideEdit() {
54
- if (this.commentFormGroup.get("id").value) {
55
- this.view = !this.view;
56
- }
57
- }
58
- editComment() {
59
- this.view = !this.view;
60
- this.commentFormGroup.patchValue(this._commentData);
61
- }
62
- deleteComment() {
63
- this.action.emit({ type: "delete", value: this.commentFormGroup.value });
64
- }
65
- ngOnDestroy() { }
66
- }
67
- CommentFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentFormComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.CredentialsService }], target: i0.ɵɵFactoryTarget.Component });
68
- CommentFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CommentFormComponent, 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: "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: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.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.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i4.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: i5.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: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "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.ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CommentFormComponent, decorators: [{
70
- type: Component,
71
- args: [{ selector: "app-comment-form", 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"] }]
72
- }], ctorParameters: function () { return [{ type: i1.UntypedFormBuilder }, { type: i2.CredentialsService }]; }, propDecorators: { commentData: [{
73
- type: Input
74
- }], action: [{
75
- type: Output
76
- }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9jb21tZW50LWZvcm0vY29tbWVudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9jb21tZW50LWZvcm0vY29tbWVudC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7OztBQVN2QixNQUFNLE9BQU8sb0JBQW9CO0lBSy9CLElBQWEsV0FBVyxDQUFDLElBQVM7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUlELFlBQW9CLEVBQXNCLEVBQ2hDLGlCQUFxQztRQUQzQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW9CO1FBSHJDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBS3BDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUSxLQUFLLENBQUM7SUFFZCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDakQsQ0FBQztJQUVPLFVBQVU7UUFDaEIsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNwQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDUixJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDVixVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDaEIsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDeEI7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUMvQjthQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDaEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFdBQVcsS0FBSyxDQUFDOztrSEFsRU4sb0JBQW9CO3NHQUFwQixvQkFBb0IsK0hDaEJqQyxxOURBNENPOzRGRDVCTSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCOzBJQVNmLFdBQVc7c0JBQXZCLEtBQUs7Z0JBTUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25EZXN0cm95XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IENyZWRlbnRpYWxzU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2NyZWRlbnRpYWxzLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFwcC1jb21tZW50LWZvcm1cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9jb21tZW50LWZvcm0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2NvbW1lbnQtZm9ybS5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBDb21tZW50Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY29tbWVudEZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cDtcbiAgdmlldzogYm9vbGVhbjtcbiAgX2NvbW1lbnREYXRhOiBhbnk7XG5cbiAgQElucHV0KCkgc2V0IGNvbW1lbnREYXRhKGRhdGE6IGFueSkge1xuICAgIHRoaXMudmlldyA9ICEhZGF0YTtcbiAgICB0aGlzLl9jb21tZW50RGF0YSA9IGRhdGE7XG4gICAgdGhpcy5jb21tZW50Rm9ybUdyb3VwLnBhdGNoVmFsdWUoZGF0YSk7XG4gIH1cblxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGNyZWRlbnRpYWxTZXJ2aWNlOiBDcmVkZW50aWFsc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIGdldCBpc0xvZ2dlZEluKCkge1xuICAgIHJldHVybiB0aGlzLmNyZWRlbnRpYWxTZXJ2aWNlLmlzQXV0aGVudGljYXRlZDtcbiAgfVxuXG4gIGdldCBjdXJyZW50VXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVkZW50aWFsU2VydmljZS5jcmVkZW50aWFscy51c2VyO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIC8vVE9ETzogRmluaWFsaXplIGFuZCBhZGQgbW9yZSB2YWxpZGF0aW9ucy5cbiAgICB0aGlzLmNvbW1lbnRGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGlkOiBbXCJcIl0sXG4gICAgICBub3RlOiBbXCJcIl0sXG4gICAgICBtb2RlbF90eXBlOiBbXCJcIl0sXG4gICAgICByZWxhdGVkX21vZGVsX2lkOiBbXCJcIl0sXG4gICAgfSk7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMuY29tbWVudEZvcm1Hcm91cC5nZXQoXCJub3RlXCIpLnZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5fY29tbWVudERhdGEpIHtcbiAgICAgICAgdGhpcy52aWV3ID0gIXRoaXMudmlldztcbiAgICAgIH1cbiAgICAgIHRoaXMuYWN0aW9uLmVtaXQoeyB0eXBlOiBcInNhdmVcIiwgdmFsdWU6IHRoaXMuY29tbWVudEZvcm1Hcm91cC52YWx1ZSB9KTtcbiAgICAgIHRoaXMuY29tbWVudEZvcm1Hcm91cC5yZXNldCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb21tZW50Rm9ybUdyb3VwLmdldChcImlkXCIpLnZhbHVlKSB7XG4gICAgICB0aGlzLmRlbGV0ZUNvbW1lbnQoKTtcbiAgICB9XG4gIH1cblxuICBoaWRlRWRpdCgpIHtcbiAgICBpZiAodGhpcy5jb21tZW50Rm9ybUdyb3VwLmdldChcImlkXCIpLnZhbHVlKSB7XG4gICAgICB0aGlzLnZpZXcgPSAhdGhpcy52aWV3O1xuICAgIH1cbiAgfVxuXG4gIGVkaXRDb21tZW50KCkge1xuICAgIHRoaXMudmlldyA9ICF0aGlzLnZpZXc7XG4gICAgdGhpcy5jb21tZW50Rm9ybUdyb3VwLnBhdGNoVmFsdWUodGhpcy5fY29tbWVudERhdGEpO1xuICB9XG5cbiAgZGVsZXRlQ29tbWVudCgpIHtcbiAgICB0aGlzLmFjdGlvbi5lbWl0KHsgdHlwZTogXCJkZWxldGVcIiwgdmFsdWU6IHRoaXMuY29tbWVudEZvcm1Hcm91cC52YWx1ZSB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkgeyB9XG59XG4iLCI8Zm9ybSAobmdTdWJtaXQpPVwic3VibWl0KClcIiBbZm9ybUdyb3VwXT1cImNvbW1lbnRGb3JtR3JvdXBcIj5cbiAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwibXktMlwiIFtuZ0NsYXNzXT1cInsgJ2JvcmRlciBib3JkZXItcHJpbWFyeSBzaGFkb3cgcm91bmRlZCAnOiB2aWV3fVwiPlxuICAgIDxkaXYgKm5nSWY9XCIhdmlld1wiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6d2hpdGU7XCI+XG4gICAgICAgIDxtYXQtbGFiZWw+Q29tbWVudDwvbWF0LWxhYmVsPlxuICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgcm93cz1cIjVcIiBwbGFjZWhvbGRlcj1cIkFkZCBhIGNvbW1lbnQuLi5cIiBmb3JtQ29udHJvbE5hbWU9XCJub3RlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+PC90ZXh0YXJlYT5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxkaXYgZnhMYXlvdXQgZnhMYXlvdXRHYXA9XCIxcmVtXCIgY2xhc3M9XCJtdC0yXCI+XG4gICAgICAgIDxzcGFuIGZ4RmxleD48L3NwYW4+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJfY29tbWVudERhdGFcIiBtYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidmlldyA9ICF2aWV3XCI+XG4gICAgICAgICAgQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgICB7eyBfY29tbWVudERhdGEgPyBcIlVwZGF0ZVwiIDogXCJQb3N0IGNvbW1lbnRcIiB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiICpuZ0lmPVwidmlld1wiIGNsYXNzPVwicC0yIG0tMlwiPlxuICAgICAgPGRpdiBmeExheW91dD1cInJvdyB3cmFwXCIgZnhMYXlvdXRHYXA9XCIuNXJlbVwiPlxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjIwJVwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydFwiPlxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBzdHlsZT1cImNvbG9yOmdyZXlcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTo2MHB4XCI+YWNjb3VudF9jaXJjbGU8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBmeEZsZXg9XCI3NSVcIj5cbiAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIuNXJlbVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtd2VpZ2h0LWJvbGRcIj57eyBfY29tbWVudERhdGE/LmNyZWF0b3I/Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+e3sgX2NvbW1lbnREYXRhLnVwZGF0ZWRfYXQgfCBkYXRlOidtZWRpdW0nIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YXBwLXJlYWQtbW9yZSBjbGFzcz1cIm10LTJcIiBbdGV4dF09XCJfY29tbWVudERhdGEubm90ZVwiPjwvYXBwLXJlYWQtbW9yZT5cbiAgICAgIDxkaXYgZnhMYXlvdXQgY2xhc3M9XCJtdC0xXCIgZnhMYXlvdXRHYXA9XCIxcmVtXCIgKm5nSWY9XCJpc0xvZ2dlZEluICYmIGN1cnJlbnRVc2VyLmlkID09PSBfY29tbWVudERhdGEuY3JlYXRvcl9pZFwiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgKGNsaWNrKT1cImVkaXRDb21tZW50KClcIj5cbiAgICAgICAgICBFZGl0XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJkZWxldGVDb21tZW50KClcIj5cbiAgICAgICAgICBEZWxldGVcbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mb3JtPiJdfQ==
@@ -1,79 +0,0 @@
1
- import { Component, Inject } from "@angular/core";
2
- import { Validators } from "@angular/forms";
3
- import { MAT_DIALOG_DATA } from "@angular/material/dialog";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/material/dialog";
6
- import * as i2 from "@angular/forms";
7
- import * as i3 from "../../core/form-validator.service";
8
- import * as i4 from "../../core/alert.service";
9
- import * as i5 from "../note.service";
10
- import * as i6 from "@angular/common";
11
- import * as i7 from "@angular/flex-layout/flex";
12
- import * as i8 from "@angular/material/button";
13
- import * as i9 from "@angular/material/form-field";
14
- import * as i10 from "@angular/material/input";
15
- const errorMessages = {
16
- note: {
17
- required: "Note is required"
18
- }
19
- };
20
- export class NoteFormComponent {
21
- constructor(dialogRef, data, fb, formValidatorService, alertService, noteService) {
22
- this.dialogRef = dialogRef;
23
- this.data = data;
24
- this.fb = fb;
25
- this.formValidatorService = formValidatorService;
26
- this.alertService = alertService;
27
- this.noteService = noteService;
28
- this.createForm();
29
- }
30
- /** Method to create a form **/
31
- createForm() {
32
- //TODO: Finialize and add more validations.
33
- this.noteFormGroup = this.fb.group({
34
- id: [""],
35
- note: ["", Validators.compose([Validators.required])],
36
- model_type: [""],
37
- related_model_id: [""],
38
- });
39
- }
40
- ngOnInit() {
41
- if (this.data.update) {
42
- this.updateMode = true;
43
- }
44
- this.noteFormGroup.patchValue(this.data.note);
45
- }
46
- //Method to trigger login
47
- async submit() {
48
- this.noteFormFirstAttempt = true;
49
- if (this.noteFormGroup.valid) {
50
- const model = this.noteFormGroup.value;
51
- const result = this.updateMode
52
- ? await this.noteService.editNote(model)
53
- : await this.noteService.addNote(model);
54
- this.alertService.addAlert(`${this.data?.labelText} saved successfully`, "success");
55
- this.dialogRef.close(result);
56
- }
57
- }
58
- cancel() {
59
- this.dialogRef.close();
60
- }
61
- /**Method to evaluate form fields*/
62
- isFieldValid(field) {
63
- return this.formValidatorService.isFieldValid(field, this.noteFormGroup, this.noteFormFirstAttempt);
64
- }
65
- /**Method to find error in form fields*/
66
- getErrorMessage(field) {
67
- return this.formValidatorService.getErrorMessage(field, this.noteFormGroup, errorMessages);
68
- }
69
- }
70
- NoteFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NoteFormComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.UntypedFormBuilder }, { token: i3.FormValidatorService }, { token: i4.AlertService }, { token: i5.NoteService }], target: i0.ɵɵFactoryTarget.Component });
71
- NoteFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NoteFormComponent, selector: "app-note-form", ngImport: i0, template: "<form [formGroup]=\"noteFormGroup\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <div>{{data?.labelText}}</div>\n </div>\n\n <div mat-dialog-content fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\">\n <mat-form-field fxFlex=\"100%\">\n <textarea matInput formControlName=\"note\" placeholder=\"{{data?.labelText}}\" autocomplete=\"off\"\n required></textarea>\n <mat-error *ngIf=\"isFieldValid('note')\">{{\n getErrorMessage(\"note\")\n }}</mat-error>\n </mat-form-field>\n\n <div class=\"my-2\" fxLayout=\"row\" fxLayoutGap=\"30px\" fxLayoutAlign=\"end\" fxFlex=\"100%\">\n <button mat-raised-button type=\"button\" (click)=\"cancel()\">\n Cancel\n </button>\n <button mat-raised-button type=\"submit\" color=\"primary\">Save</button>\n </div>\n </div>\n </div>\n </div>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] });
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NoteFormComponent, decorators: [{
73
- type: Component,
74
- args: [{ selector: 'app-note-form', template: "<form [formGroup]=\"noteFormGroup\" (ngSubmit)=\"submit()\">\n <div fxLayout=\"column\" class=\"mat-typography\">\n <div mat-dialog-title class=\"text-center\">\n <div>{{data?.labelText}}</div>\n </div>\n\n <div mat-dialog-content fxLayout=\"column\">\n <div fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\">\n <mat-form-field fxFlex=\"100%\">\n <textarea matInput formControlName=\"note\" placeholder=\"{{data?.labelText}}\" autocomplete=\"off\"\n required></textarea>\n <mat-error *ngIf=\"isFieldValid('note')\">{{\n getErrorMessage(\"note\")\n }}</mat-error>\n </mat-form-field>\n\n <div class=\"my-2\" fxLayout=\"row\" fxLayoutGap=\"30px\" fxLayoutAlign=\"end\" fxFlex=\"100%\">\n <button mat-raised-button type=\"button\" (click)=\"cancel()\">\n Cancel\n </button>\n <button mat-raised-button type=\"submit\" color=\"primary\">Save</button>\n </div>\n </div>\n </div>\n </div>\n</form>" }]
75
- }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
76
- type: Inject,
77
- args: [MAT_DIALOG_DATA]
78
- }] }, { type: i2.UntypedFormBuilder }, { type: i3.FormValidatorService }, { type: i4.AlertService }, { type: i5.NoteService }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWZvcm0vbm90ZS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWZvcm0vbm90ZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBd0MsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBS3pFLE1BQU0sYUFBYSxHQUFRO0lBQ3pCLElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxrQkFBa0I7S0FDN0I7Q0FDRixDQUFDO0FBT0YsTUFBTSxPQUFPLGlCQUFpQjtJQU01QixZQUNTLFNBQTBDLEVBQ2pCLElBQVMsRUFDakMsRUFBc0IsRUFDdEIsb0JBQTBDLEVBQzFDLFlBQTBCLEVBQzFCLFdBQXdCO1FBTHpCLGNBQVMsR0FBVCxTQUFTLENBQWlDO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDakMsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUVoQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELCtCQUErQjtJQUN2QixVQUFVO1FBQ2hCLDJDQUEyQztRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2pDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNSLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDckQsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hCLGdCQUFnQixFQUFFLENBQUMsRUFBRSxDQUFDO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN4QjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELHlCQUF5QjtJQUN6QixLQUFLLENBQUMsTUFBTTtRQUNWLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRTtZQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVTtnQkFDNUIsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUN4QyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUxQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FDeEIsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMscUJBQXFCLEVBQzVDLFNBQVMsQ0FDVixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELG1DQUFtQztJQUNuQyxZQUFZLENBQUMsS0FBYTtRQUN4QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQzNDLEtBQUssRUFDTCxJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsb0JBQW9CLENBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLGVBQWUsQ0FBQyxLQUFhO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FDOUMsS0FBSyxFQUNMLElBQUksQ0FBQyxhQUFhLEVBQ2xCLGFBQWEsQ0FDZCxDQUFDO0lBQ0osQ0FBQzs7K0dBeEVVLGlCQUFpQiw4Q0FRbEIsZUFBZTttR0FSZCxpQkFBaUIscURDbEI5QiwyckNBeUJPOzRGRFBNLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxlQUFlOzswQkFZdEIsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHsgTm90ZVNlcnZpY2UgfSBmcm9tIFwiLi4vbm90ZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybS12YWxpZGF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9hbGVydC5zZXJ2aWNlXCI7XG5cbmNvbnN0IGVycm9yTWVzc2FnZXM6IGFueSA9IHtcbiAgbm90ZToge1xuICAgIHJlcXVpcmVkOiBcIk5vdGUgaXMgcmVxdWlyZWRcIlxuICB9XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbm90ZS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGUtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGUtZm9ybS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTm90ZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHVwZGF0ZU1vZGU6IGJvb2xlYW47XG4gIG5vdGVGb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXA7XG4gIG5vdGVGb3JtRmlyc3RBdHRlbXB0OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxOb3RlRm9ybUNvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZm9ybVZhbGlkYXRvclNlcnZpY2U6IEZvcm1WYWxpZGF0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RlU2VydmljZTogTm90ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cblxuICAvKiogTWV0aG9kIHRvIGNyZWF0ZSBhIGZvcm0gKiovXG4gIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcbiAgICAvL1RPRE86IEZpbmlhbGl6ZSBhbmQgYWRkIG1vcmUgdmFsaWRhdGlvbnMuXG4gICAgdGhpcy5ub3RlRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBpZDogW1wiXCJdLFxuICAgICAgbm90ZTogW1wiXCIsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXSxcbiAgICAgIG1vZGVsX3R5cGU6IFtcIlwiXSxcbiAgICAgIHJlbGF0ZWRfbW9kZWxfaWQ6IFtcIlwiXSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmRhdGEudXBkYXRlKSB7XG4gICAgICB0aGlzLnVwZGF0ZU1vZGUgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLm5vdGVGb3JtR3JvdXAucGF0Y2hWYWx1ZSh0aGlzLmRhdGEubm90ZSk7XG4gIH1cblxuICAvL01ldGhvZCB0byB0cmlnZ2VyIGxvZ2luXG4gIGFzeW5jIHN1Ym1pdCgpIHtcbiAgICB0aGlzLm5vdGVGb3JtRmlyc3RBdHRlbXB0ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5ub3RlRm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICBjb25zdCBtb2RlbCA9IHRoaXMubm90ZUZvcm1Hcm91cC52YWx1ZTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudXBkYXRlTW9kZVxuICAgICAgICA/IGF3YWl0IHRoaXMubm90ZVNlcnZpY2UuZWRpdE5vdGUobW9kZWwpXG4gICAgICAgIDogYXdhaXQgdGhpcy5ub3RlU2VydmljZS5hZGROb3RlKG1vZGVsKTtcblxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoXG4gICAgICAgIGAke3RoaXMuZGF0YT8ubGFiZWxUZXh0fSBzYXZlZCBzdWNjZXNzZnVsbHlgLFxuICAgICAgICBcInN1Y2Nlc3NcIlxuICAgICAgKTtcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJlc3VsdCk7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cblxuICAvKipNZXRob2QgdG8gZXZhbHVhdGUgZm9ybSBmaWVsZHMqL1xuICBpc0ZpZWxkVmFsaWQoZmllbGQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmZvcm1WYWxpZGF0b3JTZXJ2aWNlLmlzRmllbGRWYWxpZChcbiAgICAgIGZpZWxkLFxuICAgICAgdGhpcy5ub3RlRm9ybUdyb3VwLFxuICAgICAgdGhpcy5ub3RlRm9ybUZpcnN0QXR0ZW1wdFxuICAgICk7XG4gIH1cblxuICAvKipNZXRob2QgdG8gZmluZCBlcnJvciBpbiBmb3JtIGZpZWxkcyovXG4gIGdldEVycm9yTWVzc2FnZShmaWVsZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVZhbGlkYXRvclNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlKFxuICAgICAgZmllbGQsXG4gICAgICB0aGlzLm5vdGVGb3JtR3JvdXAsXG4gICAgICBlcnJvck1lc3NhZ2VzXG4gICAgKTtcbiAgfVxuXG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIm5vdGVGb3JtR3JvdXBcIiAobmdTdWJtaXQpPVwic3VibWl0KClcIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxuICAgICAgICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdj57e2RhdGE/LmxhYmVsVGV4dH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGZ4TGF5b3V0PVwiY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93IHdyYXBcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBmeEZsZXg9XCIxMDAlXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJub3RlXCIgcGxhY2Vob2xkZXI9XCJ7e2RhdGE/LmxhYmVsVGV4dH19XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ25vdGUnKVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRFcnJvck1lc3NhZ2UoXCJub3RlXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMlwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIzMHB4XCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiIGZ4RmxleD1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cInN1Ym1pdFwiIGNvbG9yPVwicHJpbWFyeVwiPlNhdmU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZm9ybT4iXX0=
@@ -1,148 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { NoteFormComponent } from '../note-form/note-form.component';
3
- import { ActionPopupComponent } from '../../action-popup/action-popup.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../note.service";
6
- import * as i2 from "@angular/material/dialog";
7
- import * as i3 from "@angular/common";
8
- import * as i4 from "ngx-infinite-scroll";
9
- import * as i5 from "@angular/flex-layout/flex";
10
- import * as i6 from "@angular/material/button";
11
- import * as i7 from "@angular/material/icon";
12
- import * as i8 from "@angular/material/table";
13
- import * as i9 from "../comment-form/comment-form.component";
14
- export class NoteListComponent {
15
- constructor(noteService, dialog) {
16
- this.noteService = noteService;
17
- this.dialog = dialog;
18
- this.readonly = false;
19
- this.labelText = 'Note';
20
- this.commentsView = false;
21
- this.notes = [];
22
- this.displayedColumns = [
23
- 'index',
24
- 'note',
25
- 'actions'
26
- ];
27
- this.page = 1;
28
- this.lastPage = 1;
29
- this.filters = {};
30
- this.filters.sort_by = "created_at|DESC";
31
- }
32
- ngOnInit() {
33
- if (this.readonly) {
34
- this.displayedColumns = this.displayedColumns.filter(x => x !== 'actions');
35
- }
36
- this.filters.related_model_id = this.relatedModelId;
37
- this.filters.model_type = this.modelType;
38
- this.loadData();
39
- }
40
- async loadData() {
41
- const result = await this.noteService.getNotes({ ...this.filters, page: this.page });
42
- this.notes = this.notes.concat(result.data);
43
- this.page = result.current_page;
44
- this.lastPage = result.last_page;
45
- }
46
- addNote() {
47
- const dialogRef = this.dialog.open(NoteFormComponent, {
48
- width: "400px",
49
- data: {
50
- note: { related_model_id: this.relatedModelId, model_type: this.modelType },
51
- labelText: this.labelText,
52
- },
53
- autoFocus: false
54
- });
55
- dialogRef.afterClosed().subscribe(result => {
56
- if (result) {
57
- this.resetScroll();
58
- this.loadData();
59
- }
60
- });
61
- }
62
- editNote(note) {
63
- const dialogRef = this.dialog.open(NoteFormComponent, {
64
- width: "400px",
65
- data: {
66
- note: note,
67
- update: true,
68
- labelText: this.labelText
69
- },
70
- autoFocus: false
71
- });
72
- dialogRef.afterClosed().subscribe(result => {
73
- if (result) {
74
- this.resetScroll();
75
- this.loadData();
76
- }
77
- });
78
- }
79
- async deleteNote(note) {
80
- const dialogRef = this.dialog.open(ActionPopupComponent, {
81
- width: "400px",
82
- data: {
83
- title: `Delete ${this.labelText}`,
84
- message: `Are you sure to delete?`
85
- },
86
- autoFocus: false
87
- });
88
- dialogRef.afterClosed().subscribe(async (result) => {
89
- if (result) {
90
- //Action confirmed
91
- const result = await this.noteService.deleteNote(note);
92
- this.notes = this.notes.filter((item) => item.id !== note.id);
93
- }
94
- });
95
- }
96
- resetScroll() {
97
- this.page = 1;
98
- this.lastPage = 1;
99
- this.notes = [];
100
- }
101
- onScroll() {
102
- if (this.page < this.lastPage) {
103
- this.page += 1;
104
- this.loadData();
105
- }
106
- }
107
- commentAction(event) {
108
- if (event.type === "save") {
109
- if (event.value.id) {
110
- this.editComment(event.value);
111
- return;
112
- }
113
- this.addComment(event.value);
114
- return;
115
- }
116
- this.deleteNote(event.value);
117
- }
118
- async editComment(comment) {
119
- const result = await this.noteService.editNote(comment);
120
- let index = this.notes.findIndex((x) => x.id === comment.id);
121
- if (index !== -1) {
122
- this.notes[index] = result.item;
123
- }
124
- }
125
- async addComment(comment) {
126
- comment.related_model_id = this.relatedModelId;
127
- comment.model_type = this.modelType;
128
- const result = await this.noteService.addNote(comment);
129
- this.notes.push(result.item);
130
- }
131
- }
132
- NoteListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NoteListComponent, deps: [{ token: i1.NoteService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
133
- NoteListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NoteListComponent, selector: "app-note-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", readonly: "readonly", labelText: "labelText", commentsView: "commentsView" }, ngImport: i0, template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" class=\"m-4\" *ngIf=\"!commentsView\">\n\n <div fxLayout fxLayoutAlign=\"center center\" fxLayoutGap=\"1rem\">\n <h3 class=\"m-0 font-weight-bold mr-3\">{{labelText}}s</h3>\n <button class=\"d-print-none\" *ngIf=\"!readonly\" mat-raised-button color=\"primary\" type=\"button\" (click)=\"addNote()\">+\n Add</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]=\"notes\" 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\">\n <button type=\"button\" mat-icon-button (click)=\"editNote(note)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button type=\"button\" mat-icon-button (click)=\"deleteNote(note)\">\n <mat-icon>delete</mat-icon>\n </button>\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 </div>\n\n</div>\n\n<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"commentsView\">\n <div fxLayout fxLayoutAlign=\"center center\" fxLayoutGap=\"1rem\">\n <h3 class=\"m-0 font-weight-bold mr-3\">{{labelText}}s</h3>\n </div>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"start\" fxFlex=\"100%\">\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)\" *ngFor=\"let comment of notes\">\n </app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n </div>\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.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i8.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i8.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i8.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i8.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i8.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i8.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i8.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i8.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i8.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i9.CommentFormComponent, selector: "app-comment-form", inputs: ["commentData"], outputs: ["action"] }] });
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NoteListComponent, decorators: [{
135
- type: Component,
136
- args: [{ selector: 'app-note-list', template: "<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" class=\"m-4\" *ngIf=\"!commentsView\">\n\n <div fxLayout fxLayoutAlign=\"center center\" fxLayoutGap=\"1rem\">\n <h3 class=\"m-0 font-weight-bold mr-3\">{{labelText}}s</h3>\n <button class=\"d-print-none\" *ngIf=\"!readonly\" mat-raised-button color=\"primary\" type=\"button\" (click)=\"addNote()\">+\n Add</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]=\"notes\" 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\">\n <button type=\"button\" mat-icon-button (click)=\"editNote(note)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button type=\"button\" mat-icon-button (click)=\"deleteNote(note)\">\n <mat-icon>delete</mat-icon>\n </button>\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 </div>\n\n</div>\n\n<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"commentsView\">\n <div fxLayout fxLayoutAlign=\"center center\" fxLayoutGap=\"1rem\">\n <h3 class=\"m-0 font-weight-bold mr-3\">{{labelText}}s</h3>\n </div>\n\n <div fxLayout=\"column\" fxLayoutAlign=\"start\" fxFlex=\"100%\">\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)\" *ngFor=\"let comment of notes\">\n </app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n </div>\n</div>\n", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"] }]
137
- }], ctorParameters: function () { return [{ type: i1.NoteService }, { type: i2.MatDialog }]; }, propDecorators: { relatedModelId: [{
138
- type: Input
139
- }], modelType: [{
140
- type: Input
141
- }], readonly: [{
142
- type: Input
143
- }], labelText: [{
144
- type: Input
145
- }], commentsView: [{
146
- type: Input
147
- }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7OztBQVFqRixNQUFNLE9BQU8saUJBQWlCO0lBbUI1QixZQUFvQixXQUF3QixFQUNsQyxNQUFpQjtRQURQLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFoQmxCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsY0FBUyxHQUFXLE1BQU0sQ0FBQztRQUMzQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUV2QyxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBRWxCLHFCQUFnQixHQUFHO1lBQ2pCLE9BQU87WUFDUCxNQUFNO1lBQ04sU0FBUztTQUNWLENBQUM7UUFFRixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUtYLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDO0lBQzNDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUks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QUMsS0FBSyxDQUFDLFNBQVMsQ0FDOUIsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FDaEMsQ0FBQztRQUNGLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQVk7UUFDM0IsT0FBTyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDL0MsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3BDLE1BQU0sTUFBTSxHQUFRLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7OytHQTdJVSxpQkFBaUI7bUdBQWpCLGlCQUFpQix1TUNaOUIsaWdGQTBEQTs0RkQ5Q2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7MEhBTWhCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm90ZVNlcnZpY2UgfSBmcm9tICcuLi9ub3RlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE5vdGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vbm90ZS1mb3JtL25vdGUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWN0aW9uUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hY3Rpb24tcG9wdXAvYWN0aW9uLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25Qb3B1cCB9IGZyb20gJy4uLy4uL2FjdGlvbi1wb3B1cC9hY3Rpb24tcG9wdXAubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbm90ZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGUtbGlzdC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTm90ZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHJlbGF0ZWRNb2RlbElkICE6IGFueTtcbiAgQElucHV0KCkgbW9kZWxUeXBlICE6IGFueTtcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbGFiZWxUZXh0OiBzdHJpbmcgPSAnTm90ZSc7XG4gIEBJbnB1dCgpIGNvbW1lbnRzVmlldzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG5vdGVzOiBhbnlbXSA9IFtdO1xuICBmaWx0ZXJzOiBhbnk7XG4gIGRpc3BsYXllZENvbHVtbnMgPSBbXG4gICAgJ2luZGV4JyxcbiAgICAnbm90ZScsXG4gICAgJ2FjdGlvbnMnXG4gIF07XG5cbiAgcGFnZSA9IDE7XG4gIGxhc3RQYWdlID0gMTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vdGVTZXJ2aWNlOiBOb3RlU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXG4gICkge1xuICAgIHRoaXMuZmlsdGVycyA9IHt9O1xuICAgIHRoaXMuZmlsdGVycy5zb3J0X2J5ID0gXCJjcmVhdGVkX2F0fERFU0NcIjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMuZmlsdGVyKHggPT4geCAhPT0gJ2FjdGlvbnMnKTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJzLnJlbGF0ZWRfbW9kZWxfaWQgPSB0aGlzLnJlbGF0ZWRNb2RlbElkO1xuICAgIHRoaXMuZmlsdGVycy5tb2RlbF90eXBlID0gdGhpcy5tb2RlbFR5cGU7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgYXN5bmMgbG9hZERhdGEoKSB7XG5cbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IGF3YWl0IHRoaXMubm90ZVNlcnZpY2UuZ2V0Tm90ZXMoeyAuLi50aGlzLmZpbHRlcnMsIHBhZ2U6IHRoaXMucGFnZSB9KTtcbiAgICB0aGlzLm5vdGVzID0gdGhpcy5ub3Rlcy5jb25jYXQocmVzdWx0LmRhdGEpO1xuICAgIHRoaXMucGFnZSA9IHJlc3VsdC5jdXJyZW50X3BhZ2U7XG4gICAgdGhpcy5sYXN0UGFnZSA9IHJlc3VsdC5sYXN0X3BhZ2U7XG4gIH1cblxuICBhZGROb3RlKCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTm90ZUZvcm1Db21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiBcIjQwMHB4XCIsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIG5vdGU6IHsgcmVsYXRlZF9tb2RlbF9pZDogdGhpcy5yZWxhdGVkTW9kZWxJZCwgbW9kZWxfdHlwZTogdGhpcy5tb2RlbFR5cGUgfSxcbiAgICAgICAgbGFiZWxUZXh0OiB0aGlzLmxhYmVsVGV4dCxcbiAgICAgIH0sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5yZXNldFNjcm9sbCgpO1xuICAgICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBlZGl0Tm90ZShub3RlOiBhbnkpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKE5vdGVGb3JtQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogXCI0MDBweFwiLFxuICAgICAgZGF0YToge1xuICAgICAgICBub3RlOiBub3RlLFxuICAgICAgICB1cGRhdGU6IHRydWUsXG4gICAgICAgIGxhYmVsVGV4dDogdGhpcy5sYWJlbFRleHRcbiAgICAgIH0sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5yZXNldFNjcm9sbCgpO1xuICAgICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBkZWxldGVOb3RlKG5vdGU6IGFueSkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWN0aW9uUG9wdXBDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiBcIjQwMHB4XCIsXG4gICAgICBkYXRhOiA8QWN0aW9uUG9wdXA+e1xuICAgICAgICB0aXRsZTogYERlbGV0ZSAke3RoaXMubGFiZWxUZXh0fWAsXG4gICAgICAgIG1lc3NhZ2U6IGBBcmUgeW91IHN1cmUgdG8gZGVsZXRlP2BcbiAgICAgIH0sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoYXN5bmMgcmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgLy9BY3Rpb24gY29uZmlybWVkXG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ub3RlU2VydmljZS5kZWxldGVOb3RlKG5vdGUpO1xuICAgICAgICB0aGlzLm5vdGVzID0gdGhpcy5ub3Rlcy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCAhPT0gbm90ZS5pZCk7XG5cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlc2V0U2Nyb2xsKCkge1xuICAgIHRoaXMucGFnZSA9IDE7XG4gICAgdGhpcy5sYXN0UGFnZSA9IDE7XG4gICAgdGhpcy5ub3RlcyA9IFtdO1xuICB9XG5cbiAgb25TY3JvbGwoKSB7XG4gICAgaWYgKHRoaXMucGFnZSA8IHRoaXMubGFzdFBhZ2UpIHtcbiAgICAgIHRoaXMucGFnZSArPSAxO1xuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbW1lbnRBY3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC50eXBlID09PSBcInNhdmVcIikge1xuICAgICAgaWYgKGV2ZW50LnZhbHVlLmlkKSB7XG4gICAgICAgIHRoaXMuZWRpdENvbW1lbnQoZXZlbnQudmFsdWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmFkZENvbW1lbnQoZXZlbnQudmFsdWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRlbGV0ZU5vdGUoZXZlbnQudmFsdWUpO1xuICB9XG5cbiAgYXN5bmMgZWRpdENvbW1lbnQoY29tbWVudDogYW55KSB7XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSBhd2FpdCB0aGlzLm5vdGVTZXJ2aWNlLmVkaXROb3RlKGNvbW1lbnQpO1xuICAgIGxldCBpbmRleCA9IHRoaXMubm90ZXMuZmluZEluZGV4KFxuICAgICAgKHg6IGFueSkgPT4geC5pZCA9PT0gY29tbWVudC5pZFxuICAgICk7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5ub3Rlc1tpbmRleF0gPSByZXN1bHQuaXRlbTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBhZGRDb21tZW50KGNvbW1lbnQ6IGFueSkge1xuICAgIGNvbW1lbnQucmVsYXRlZF9tb2RlbF9pZCA9IHRoaXMucmVsYXRlZE1vZGVsSWQ7XG4gICAgY29tbWVudC5tb2RlbF90eXBlID0gdGhpcy5tb2RlbFR5cGU7XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSBhd2FpdCB0aGlzLm5vdGVTZXJ2aWNlLmFkZE5vdGUoY29tbWVudCk7XG4gICAgdGhpcy5ub3Rlcy5wdXNoKHJlc3VsdC5pdGVtKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIxLjVyZW1cIiBjbGFzcz1cIm0tNFwiICpuZ0lmPVwiIWNvbW1lbnRzVmlld1wiPlxuXG4gIDxkaXYgZnhMYXlvdXQgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeExheW91dEdhcD1cIjFyZW1cIj5cbiAgICA8aDMgY2xhc3M9XCJtLTAgZm9udC13ZWlnaHQtYm9sZCBtci0zXCI+e3tsYWJlbFRleHR9fXM8L2gzPlxuICAgIDxidXR0b24gY2xhc3M9XCJkLXByaW50LW5vbmVcIiAqbmdJZj1cIiFyZWFkb25seVwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiYWRkTm90ZSgpXCI+K1xuICAgICAgQWRkPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ3LTEwMCBzY3JvbGwtY29udGFpbmVyXCIgaW5maW5pdGVTY3JvbGwgW2luZmluaXRlU2Nyb2xsRGlzdGFuY2VdPVwiMVwiIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCJcbiAgICAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiIFtzY3JvbGxXaW5kb3ddPVwiZmFsc2VcIj5cbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cIm5vdGVzXCIgY2xhc3M9XCJ3LTEwMFwiIG11bHRpVGVtcGxhdGVEYXRhUm93cz5cblxuICAgICAgPCEtLSBJbmRleCBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+ICMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IG5vdGU7IGxldCBpID0gZGF0YUluZGV4XCI+IHt7IGkrMSB9fSA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJub3RlXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7bGFiZWxUZXh0fX0gPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IG5vdGVcIj5cbiAgICAgICAgICB7e25vdGU/Lm5vdGV9fVxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uc1wiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZC1wcmludC1ub25lXCI+IEFjdGlvbnMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IG5vdGVcIiBjbGFzcz1cImQtcHJpbnQtbm9uZVwiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZWRpdE5vdGUobm90ZSlcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRlbGV0ZU5vdGUobm90ZSlcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIj48L3RyPlxuICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgICA8L3RhYmxlPlxuICA8L2Rpdj5cblxuPC9kaXY+XG5cbjxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEdhcD1cIjEuNXJlbVwiICpuZ0lmPVwiY29tbWVudHNWaWV3XCI+XG4gIDxkaXYgZnhMYXlvdXQgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeExheW91dEdhcD1cIjFyZW1cIj5cbiAgICA8aDMgY2xhc3M9XCJtLTAgZm9udC13ZWlnaHQtYm9sZCBtci0zXCI+e3tsYWJlbFRleHR9fXM8L2gzPlxuICA8L2Rpdj5cblxuICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0XCIgZnhGbGV4PVwiMTAwJVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBzY3JvbGwtY29udGFpbmVyIGp1bWJvdHJvblwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjFcIlxuICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIiAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiIFtzY3JvbGxXaW5kb3ddPVwiZmFsc2VcIj5cbiAgICAgIDxhcHAtY29tbWVudC1mb3JtIFtjb21tZW50RGF0YV09XCJjb21tZW50XCIgKGFjdGlvbik9XCJjb21tZW50QWN0aW9uKCRldmVudClcIiAqbmdGb3I9XCJsZXQgY29tbWVudCBvZiBub3Rlc1wiPlxuICAgICAgPC9hcHAtY29tbWVudC1mb3JtPlxuICAgICAgPGFwcC1jb21tZW50LWZvcm0gKGFjdGlvbik9XCJjb21tZW50QWN0aW9uKCRldmVudClcIj48L2FwcC1jb21tZW50LWZvcm0+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,29 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../core/http.service";
4
- export class NoteService {
5
- constructor(http) {
6
- this.http = http;
7
- }
8
- getNotes(filterModel) {
9
- return this.http.get('api/notes', { params: filterModel }).toPromise();
10
- }
11
- addNote(note) {
12
- return this.http.post('api/notes', note).toPromise();
13
- }
14
- editNote(note) {
15
- return this.http.put(`api/notes/${note.id}`, note).toPromise();
16
- }
17
- deleteNote(note) {
18
- return this.http.delete(`api/notes/${note.id}`).toPromise();
19
- }
20
- }
21
- NoteService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NoteService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
22
- NoteService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NoteService, providedIn: 'root' });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NoteService, decorators: [{
24
- type: Injectable,
25
- args: [{
26
- providedIn: 'root'
27
- }]
28
- }], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9ub3RlL25vdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLFdBQVc7SUFFdEIsWUFBb0IsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUFJLENBQUM7SUFFMUMsUUFBUSxDQUFDLFdBQWdCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDekUsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFTO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM5RCxDQUFDOzt5R0FsQlUsV0FBVzs2R0FBWCxXQUFXLGNBRlYsTUFBTTs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odHRwLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOb3RlU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwU2VydmljZSkgeyB9XG5cbiAgZ2V0Tm90ZXMoZmlsdGVyTW9kZWw6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KCdhcGkvbm90ZXMnLCB7IHBhcmFtczogZmlsdGVyTW9kZWwgfSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhZGROb3RlKG5vdGU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCgnYXBpL25vdGVzJywgbm90ZSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBlZGl0Tm90ZShub3RlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgYXBpL25vdGVzLyR7bm90ZS5pZH1gLCBub3RlKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIGRlbGV0ZU5vdGUobm90ZTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYGFwaS9ub3Rlcy8ke25vdGUuaWR9YCkudG9Qcm9taXNlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,104 +0,0 @@
1
- import { UntypedFormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
2
- import { Component, Input, ViewChild } from '@angular/core';
3
- import * as i0 from "@angular/core";
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";
11
- // set the default value
12
- export const DEFAULT_SELECTED_VALUE = 1;
13
- export class NumberInputButtonComponent {
14
- constructor() {
15
- this.label = 'Select Value';
16
- this.showLabel = true;
17
- this.showCustomInput = false;
18
- this.options = [
19
- { title: '1', value: 1, type: 'text', hint: '' },
20
- { title: '2', value: 2, type: 'text', hint: '' },
21
- { title: '3', value: 3, type: 'text', hint: '' },
22
- { title: '4', value: 4, type: 'text', hint: '' },
23
- { title: '5', value: 5, type: 'text', hint: '' },
24
- { title: 'help', value: 'custom', type: 'icon', hint: 'Custom' },
25
- ];
26
- this.selectedOption = new UntypedFormControl();
27
- this.customValue = new UntypedFormControl(DEFAULT_SELECTED_VALUE);
28
- this.touched = false;
29
- this.disabled = false;
30
- this.onChange = (value) => { };
31
- this.onTouched = () => { };
32
- }
33
- ngOnInit() {
34
- this.selectedOption.valueChanges.subscribe((value) => {
35
- if (value == 'custom') {
36
- this.showCustomInput = true;
37
- value = DEFAULT_SELECTED_VALUE;
38
- setTimeout(() => {
39
- this.customInput?.nativeElement?.focus();
40
- }, 100);
41
- }
42
- else {
43
- this.showCustomInput = false;
44
- }
45
- this.onChange(value);
46
- this.onTouched();
47
- });
48
- this.customValue.valueChanges.subscribe((value) => {
49
- this.onChange(value);
50
- this.onTouched();
51
- });
52
- }
53
- writeValue(obj) {
54
- const option = this.options.find((option) => {
55
- return option.value === obj;
56
- });
57
- if (!option) {
58
- this.showCustomInput = true;
59
- this.selectedOption.setValue('custom');
60
- this.customValue.setValue(obj);
61
- }
62
- else {
63
- this.showCustomInput = false;
64
- this.selectedOption.setValue(obj);
65
- }
66
- }
67
- registerOnChange(fn) {
68
- this.onChange = fn;
69
- }
70
- registerOnTouched(fn) {
71
- this.onTouched = fn;
72
- }
73
- setDisabledState(isDisabled) {
74
- this.disabled = isDisabled;
75
- }
76
- }
77
- NumberInputButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NumberInputButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
78
- NumberInputButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NumberInputButtonComponent, selector: "app-number-input-button", inputs: { label: "label", appearance: "appearance", showLabel: "showLabel" }, providers: [
79
- {
80
- provide: NG_VALUE_ACCESSOR,
81
- multi: true,
82
- useExisting: NumberInputButtonComponent
83
- }
84
- ], 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 [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>\n", 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]", exportAs: ["matTooltip"] }, { kind: "directive", type: i6.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i6.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], 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"] }] });
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NumberInputButtonComponent, decorators: [{
86
- type: Component,
87
- args: [{ selector: 'app-number-input-button', providers: [
88
- {
89
- provide: NG_VALUE_ACCESSOR,
90
- multi: true,
91
- useExisting: NumberInputButtonComponent
92
- }
93
- ], template: "<span *ngIf=\"showLabel\" class=\"mr-1\">{{ label }}</span> <br *ngIf=\"showLabel\">\n<mat-button-toggle-group [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>\n", 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"] }]
94
- }], propDecorators: { label: [{
95
- type: Input
96
- }], appearance: [{
97
- type: Input
98
- }], showLabel: [{
99
- type: Input
100
- }], customInput: [{
101
- type: ViewChild,
102
- args: ['customInput']
103
- }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL251bWJlci1pbnB1dC1idXR0b24vbnVtYmVyLWlucHV0LWJ1dHRvbi9udW1iZXItaW5wdXQtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbnVtYmVyLWlucHV0LWJ1dHRvbi9udW1iZXItaW5wdXQtYnV0dG9uL251bWJlci1pbnB1dC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNGLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFVLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBUzlFLHdCQUF3QjtBQUN4QixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFleEMsTUFBTSxPQUFPLDBCQUEwQjtJQWJ2QztRQWVXLFVBQUssR0FBRyxjQUFjLENBQUM7UUFFdkIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUcxQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QixZQUFPLEdBQXdCO1lBQzdCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNqRCxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDakQsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVB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Ozt3SEFyRVUsMEJBQTBCOzRHQUExQiwwQkFBMEIsZ0lBUjFCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLDBCQUEwQjtTQUN4QztLQUNGLHNJQ3pCSCx1ckJBV0E7NEZEZ0JhLDBCQUEwQjtrQkFidEMsU0FBUzsrQkFFRSx5QkFBeUIsYUFHeEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyw0QkFBNEI7eUJBQ3hDO3FCQUNGOzhCQUlRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRW9CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIFVudHlwZWRGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkQXBwZWFyYW5jZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBOdW1iZXJJbnB1dE9wdGlvbiB7XG4gIHR5cGU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgdmFsdWU6IGFueTtcbiAgaGludDogc3RyaW5nO1xufVxuXG4vLyBzZXQgdGhlIGRlZmF1bHQgdmFsdWVcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFTEVDVEVEX1ZBTFVFID0gMTtcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdhcHAtbnVtYmVyLWlucHV0LWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9udW1iZXItaW5wdXQtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbnVtYmVyLWlucHV0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IE51bWJlcklucHV0QnV0dG9uQ29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlcklucHV0QnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgQElucHV0KCkgbGFiZWwgPSAnU2VsZWN0IFZhbHVlJztcbiAgQElucHV0KCkgYXBwZWFyYW5jZT86IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XG4gIEBJbnB1dCgpIHNob3dMYWJlbCA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgnY3VzdG9tSW5wdXQnKSBjdXN0b21JbnB1dCE6IEVsZW1lbnRSZWY7XG4gIHNob3dDdXN0b21JbnB1dCA9IGZhbHNlO1xuXG4gIG9wdGlvbnM6IE51bWJlcklucHV0T3B0aW9uW10gPSBbXG4gICAgeyB0aXRsZTogJzEnLCB2YWx1ZTogMSwgdHlwZTogICd0ZXh0JywgaGludDogJycgfSxcbiAgICB7IHRpdGxlOiAnMicsIHZhbHVlOiAyLCB0eXBlOiAgJ3RleHQnLCBoaW50OiAnJyB9LFxuICAgIHsgdGl0bGU6ICczJywgdmFsdWU6IDMsIHR5cGU6ICAndGV4dCcsIGhpbnQ6ICcnIH0sXG4gICAgeyB0aXRsZTogJzQnLCB2YWx1ZTogNCwgdHlwZTogICd0ZXh0JywgaGludDogJycgfSxcbiAgICB7IHRpdGxlOiAnNScsIHZhbHVlOiA1LCB0eXBlOiAgJ3RleHQnLCBoaW50OiAnJyB9LFxuICAgIHsgdGl0bGU6ICdoZWxwJywgdmFsdWU6ICdjdXN0b20nLCB0eXBlOiAgJ2ljb24nLCBoaW50OiAnQ3VzdG9tJ30sXG4gIF07XG4gIHNlbGVjdGVkT3B0aW9uID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuICBjdXN0b21WYWx1ZSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woREVGQVVMVF9TRUxFQ1RFRF9WQUxVRSk7XG4gIHRvdWNoZWQgPSBmYWxzZTtcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbi52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAodmFsdWUgPT0gJ2N1c3RvbScpIHtcbiAgICAgICAgdGhpcy5zaG93Q3VzdG9tSW5wdXQgPSB0cnVlO1xuICAgICAgICB2YWx1ZSA9IERFRkFVTFRfU0VMRUNURURfVkFMVUU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY3VzdG9tSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNob3dDdXN0b21JbnB1dCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH0pO1xuICAgIHRoaXMuY3VzdG9tVmFsdWUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbjogTnVtYmVySW5wdXRPcHRpb24gfCB1bmRlZmluZWQgPSB0aGlzLm9wdGlvbnMuZmluZCgob3B0aW9uOiBOdW1iZXJJbnB1dE9wdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZSA9PT0gb2JqO1xuICAgIH0pO1xuICAgIGlmICghb3B0aW9uKSB7XG4gICAgICB0aGlzLnNob3dDdXN0b21JbnB1dCA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLnNldFZhbHVlKCdjdXN0b20nKTtcbiAgICAgIHRoaXMuY3VzdG9tVmFsdWUuc2V0VmFsdWUob2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93Q3VzdG9tSW5wdXQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24uc2V0VmFsdWUob2JqKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG59XG4iLCI8c3BhbiAqbmdJZj1cInNob3dMYWJlbFwiIGNsYXNzPVwibXItMVwiPnt7IGxhYmVsIH19PC9zcGFuPiA8YnIgKm5nSWY9XCJzaG93TGFiZWxcIj5cbjxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBbZm9ybUNvbnRyb2xdPVwic2VsZWN0ZWRPcHRpb25cIj5cbiAgPG1hdC1idXR0b24tdG9nZ2xlIFttYXRUb29sdGlwXT1cIm9wdGlvbj8uaGludCB8fCAnJ1wiICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb24/LnZhbHVlXCI+XG4gICAgPHNwYW4gKm5nSWY9XCJvcHRpb24udHlwZSA9PSd0ZXh0J1wiPnt7IG9wdGlvbj8udGl0bGUgfX08L3NwYW4+XG4gICAgPG1hdC1pY29uIGNsYXNzPVwic21hbGwtaWNvblwiICpuZ0lmPVwib3B0aW9uLnR5cGUgPT0gJ2ljb24nXCI+e3tvcHRpb24/LnRpdGxlfX08L21hdC1pY29uPlxuICA8L21hdC1idXR0b24tdG9nZ2xlPlxuPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm10LTEgdy0xMDBcIiAqbmdJZj1cInNob3dDdXN0b21JbnB1dFwiPlxuICA8bWF0LWxhYmVsPnt7IGxhYmVsIH19PC9tYXQtbGFiZWw+XG4gIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiICNjdXN0b21JbnB1dCBtYXRJbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3VzdG9tVmFsdWVcIj5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=