ngx-techlify-core 11.5.0 → 14.2.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 (658) hide show
  1. package/README.md +24 -24
  2. package/esm2020/lib/action-popup/action-popup.component.mjs +34 -0
  3. package/{esm2015/lib/action-popup/action-popup.model.js → esm2020/lib/action-popup/action-popup.model.mjs} +3 -3
  4. package/esm2020/lib/action-popup/action-popup.module.mjs +32 -0
  5. package/{esm2015/lib/action-popup/index.js → esm2020/lib/action-popup/index.mjs} +3 -3
  6. package/esm2020/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.mjs +18 -0
  7. package/esm2020/lib/audit-log/audit-log-for-model/audit-log-for-model.component.mjs +51 -0
  8. package/esm2020/lib/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +40 -0
  9. package/esm2020/lib/audit-log/audit-log-list/audit-log-list-routing.module.mjs +18 -0
  10. package/esm2020/lib/audit-log/audit-log-list/audit-log-list.component.mjs +139 -0
  11. package/esm2020/lib/audit-log/audit-log-list/audit-log-list.module.mjs +48 -0
  12. package/esm2020/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.mjs +18 -0
  13. package/esm2020/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +74 -0
  14. package/esm2020/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +40 -0
  15. package/esm2020/lib/audit-log/audit-log-routing.module.mjs +25 -0
  16. package/esm2020/lib/audit-log/audit-log-view/audit-log-view-routing.module.mjs +18 -0
  17. package/esm2020/lib/audit-log/audit-log-view/audit-log-view.component.mjs +51 -0
  18. package/esm2020/lib/audit-log/audit-log-view/audit-log-view.module.mjs +32 -0
  19. package/esm2020/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.mjs +18 -0
  20. package/esm2020/lib/audit-log/audit-log-view-model/audit-log-view-model.component.mjs +56 -0
  21. package/esm2020/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +32 -0
  22. package/esm2020/lib/audit-log/audit-log.module.mjs +31 -0
  23. package/esm2020/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.mjs +18 -0
  24. package/esm2020/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +37 -0
  25. package/esm2020/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +32 -0
  26. package/{esm2015/lib/base-model/index.js → esm2020/lib/base-model/index.mjs} +4 -4
  27. package/esm2020/lib/base-model/techlify-form-component.class.mjs +49 -0
  28. package/esm2020/lib/base-model/techlify-listing-component.class.mjs +41 -0
  29. package/esm2020/lib/base-model/techlify-service.class.mjs +64 -0
  30. package/esm2020/lib/core/alert.service.mjs +38 -0
  31. package/esm2020/lib/core/api-prefix.interceptor.mjs +26 -0
  32. package/esm2020/lib/core/authentication.guard.mjs +35 -0
  33. package/esm2020/lib/core/authentication.service.mjs +54 -0
  34. package/esm2020/lib/core/cache.interceptor.mjs +58 -0
  35. package/esm2020/lib/core/config.service.mjs +45 -0
  36. package/esm2020/lib/core/core.module.mjs +63 -0
  37. package/esm2020/lib/core/credentials.service.mjs +79 -0
  38. package/esm2020/lib/core/dataManager.service.mjs +119 -0
  39. package/esm2020/lib/core/error-handler.interceptor.mjs +48 -0
  40. package/esm2020/lib/core/error-handler.service.mjs +55 -0
  41. package/esm2020/lib/core/filter.service.mjs +37 -0
  42. package/esm2020/lib/core/form-validator.service.mjs +24 -0
  43. package/esm2020/lib/core/header.interceptor.mjs +24 -0
  44. package/esm2020/lib/core/http-cache.service.mjs +107 -0
  45. package/esm2020/lib/core/http.service.mjs +84 -0
  46. package/{esm2015/lib/core/index.js → esm2020/lib/core/index.mjs} +22 -21
  47. package/{esm2015/lib/core/logger.service.js → esm2020/lib/core/logger.service.mjs} +100 -100
  48. package/esm2020/lib/core/route-reusable-strategy.mjs +36 -0
  49. package/esm2020/lib/core/snack/snack.component.mjs +33 -0
  50. package/esm2020/lib/core/snack/snack.module.mjs +36 -0
  51. package/esm2020/lib/core/storage.service.mjs +38 -0
  52. package/esm2020/lib/core/techlify-config.model.mjs +28 -0
  53. package/esm2020/lib/core/token.interceptor.mjs +28 -0
  54. package/esm2020/lib/data-table/data-table.component.mjs +208 -0
  55. package/esm2020/lib/data-table/data-table.model.mjs +11 -0
  56. package/esm2020/lib/data-table/data-table.module.mjs +36 -0
  57. package/{esm2015/lib/data-table/index.js → esm2020/lib/data-table/index.mjs} +3 -3
  58. package/{esm2015/lib/date-validator.js → esm2020/lib/date-validator.mjs} +10 -10
  59. package/esm2020/lib/document-viewer/document-viewer.component.mjs +65 -0
  60. package/esm2020/lib/document-viewer/document-viewer.module.mjs +36 -0
  61. package/{esm2015/lib/document-viewer/index.js → esm2020/lib/document-viewer/index.mjs} +3 -3
  62. package/{esm2015/lib/document-viewer/viewer-config.model.js → esm2020/lib/document-viewer/viewer-config.model.mjs} +3 -3
  63. package/esm2020/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.mjs +32 -0
  64. package/esm2020/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.mjs +76 -0
  65. package/esm2020/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.mjs +36 -0
  66. package/{esm2015/lib/email-subscription/email-subscription-for-user/index.js → esm2020/lib/email-subscription/email-subscription-for-user/index.mjs} +2 -2
  67. package/esm2020/lib/email-subscription/email-subscription-routing.module.mjs +18 -0
  68. package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.mjs +18 -0
  69. package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +105 -0
  70. package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.mjs +44 -0
  71. package/{esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.js → esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.mjs} +2 -2
  72. package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.mjs +34 -0
  73. package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +161 -0
  74. package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.mjs +44 -0
  75. package/{esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.js → esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.mjs} +1 -1
  76. package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.mjs +18 -0
  77. package/esm2020/lib/email-subscription/email-subscription-type/email-subscription-type.module.mjs +22 -0
  78. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.mjs +18 -0
  79. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +101 -0
  80. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.mjs +43 -0
  81. package/{esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.js → esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.mjs} +2 -2
  82. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.mjs +34 -0
  83. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +165 -0
  84. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.mjs +48 -0
  85. package/{esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.js → esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.mjs} +2 -2
  86. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.mjs +18 -0
  87. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +52 -0
  88. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.mjs +40 -0
  89. package/{esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.js → esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.mjs} +2 -2
  90. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.mjs +18 -0
  91. package/esm2020/lib/email-subscription/email-subscription-user/email-subscription-user.module.mjs +22 -0
  92. package/esm2020/lib/email-subscription/email-subscription.module.mjs +22 -0
  93. package/esm2020/lib/entity-files/entity-file-form/entity-file-form.component.mjs +144 -0
  94. package/esm2020/lib/entity-files/entity-file.service.mjs +43 -0
  95. package/esm2020/lib/entity-files/entity-files-view-all.component.mjs +320 -0
  96. package/esm2020/lib/entity-files/entity-files-view-all.module.mjs +66 -0
  97. package/{esm2015/lib/entity-files/index.js → esm2020/lib/entity-files/index.mjs} +3 -3
  98. package/esm2020/lib/export-excel/export-excel-button/export-excel-button.component.mjs +32 -0
  99. package/esm2020/lib/export-excel/export-excel.module.mjs +24 -0
  100. package/esm2020/lib/file-dropper/file-dropper.component.mjs +125 -0
  101. package/{esm2015/lib/file-dropper/file-dropper.model.js → esm2020/lib/file-dropper/file-dropper.model.mjs} +3 -3
  102. package/esm2020/lib/file-dropper/file-dropper.module.mjs +30 -0
  103. package/{esm2015/lib/file-dropper/index.js → esm2020/lib/file-dropper/index.mjs} +3 -3
  104. package/esm2020/lib/import-csv/data-import/data-import.component.mjs +18 -0
  105. package/esm2020/lib/import-csv/failed-items-list/failed-items-list.component.mjs +35 -0
  106. package/esm2020/lib/import-csv/field-mapping/field-mapping.component.mjs +153 -0
  107. package/esm2020/lib/import-csv/import-csv-config.mjs +2 -0
  108. package/esm2020/lib/import-csv/import-csv.component.mjs +198 -0
  109. package/esm2020/lib/import-csv/import-csv.module.mjs +74 -0
  110. package/esm2020/lib/import-csv/import-history-list/import-history-list.component.mjs +71 -0
  111. package/esm2020/lib/import-csv/import-success/import-success.component.mjs +24 -0
  112. package/{esm2015/lib/loader/index.js → esm2020/lib/loader/index.mjs} +2 -2
  113. package/esm2020/lib/loader/loader.component.mjs +23 -0
  114. package/esm2020/lib/loader/loader.module.mjs +28 -0
  115. package/esm2020/lib/login-history-for-user/login-history-for-user-routing.module.mjs +26 -0
  116. package/esm2020/lib/login-history-for-user/login-history-for-user.component.mjs +92 -0
  117. package/esm2020/lib/login-history-for-user/login-history-for-user.module.mjs +44 -0
  118. package/esm2020/lib/material.module.mjs +115 -0
  119. package/esm2020/lib/note/comment-form/comment-form.component.mjs +77 -0
  120. package/{esm2015/lib/note/index.js → esm2020/lib/note/index.mjs} +4 -4
  121. package/esm2020/lib/note/note-form/note-form.component.mjs +79 -0
  122. package/esm2020/lib/note/note-list/note-list.component.mjs +148 -0
  123. package/esm2020/lib/note/note.module.mjs +54 -0
  124. package/esm2020/lib/note/note.service.mjs +29 -0
  125. package/esm2020/lib/read-more/read-more.component.mjs +43 -0
  126. package/esm2020/lib/read-more/read-more.module.mjs +30 -0
  127. package/esm2020/lib/request-helper/request-helper.service.mjs +106 -0
  128. package/{esm2015/lib/searchable-selector/index.js → esm2020/lib/searchable-selector/index.mjs} +3 -3
  129. package/esm2020/lib/searchable-selector/mat-select-infinite-scroll.directive.mjs +84 -0
  130. package/esm2020/lib/searchable-selector/searchable-selector.component.mjs +350 -0
  131. package/esm2020/lib/searchable-selector/searchable-selector.module.mjs +41 -0
  132. package/esm2020/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +24 -0
  133. package/esm2020/lib/techlify-feature/techlify-feature-enabled.directive.mjs +73 -0
  134. package/esm2020/lib/techlify-feature/techlify-feature-listing.component.mjs +172 -0
  135. package/esm2020/lib/techlify-feature/techlify-feature.module.mjs +48 -0
  136. package/{esm2015/lib/techlify-feature/techlify-feature.routing.js → esm2020/lib/techlify-feature/techlify-feature.routing.mjs} +12 -12
  137. package/esm2020/lib/techlify-feature/techlify-feature.service.mjs +26 -0
  138. package/{esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.js → esm2020/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.mjs} +15 -15
  139. package/esm2020/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +285 -0
  140. package/esm2020/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +38 -0
  141. package/esm2020/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +180 -0
  142. package/esm2020/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +46 -0
  143. package/esm2020/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +114 -0
  144. package/esm2020/lib/techlify-update/techlify-update-form/techlify-update-form.module.mjs +38 -0
  145. package/esm2020/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.mjs +28 -0
  146. package/esm2020/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +144 -0
  147. package/esm2020/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs +47 -0
  148. package/esm2020/lib/techlify-update/techlify-update-routing.module.mjs +28 -0
  149. package/esm2020/lib/techlify-update/techlify-update.module.mjs +51 -0
  150. package/esm2020/lib/techlify-update/techlify-update.service.mjs +41 -0
  151. package/esm2020/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +162 -0
  152. package/esm2020/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +77 -0
  153. package/esm2020/lib/techlify-update/update-notifier/update-notifier.component.mjs +53 -0
  154. package/esm2020/lib/techlify-update/update-notifier/update-notifier.module.mjs +39 -0
  155. package/esm2020/lib/techlify-update/update-view/update-view.component.mjs +38 -0
  156. package/esm2020/lib/techlify-update/update-view/update-view.module.mjs +30 -0
  157. package/esm2020/lib/timeline-filter/calculate-timeline.mjs +101 -0
  158. package/{esm2015/lib/timeline-filter/index.js → esm2020/lib/timeline-filter/index.mjs} +4 -4
  159. package/esm2020/lib/timeline-filter/timeline-filter-routing.module.mjs +18 -0
  160. package/esm2020/lib/timeline-filter/timeline-filter.component.mjs +237 -0
  161. package/esm2020/lib/timeline-filter/timeline-filter.module.mjs +60 -0
  162. package/{esm2015/lib/timeline-filter/timeline.model.js → esm2020/lib/timeline-filter/timeline.model.mjs} +18 -18
  163. package/{esm2015/lib/utility/date-utils.service.js → esm2020/lib/utility/date-utils.service.mjs} +50 -48
  164. package/{esm2015/lib/utility/index.js → esm2020/lib/utility/index.mjs} +4 -4
  165. package/esm2020/lib/utility/num-items-selector.component.mjs +31 -0
  166. package/esm2020/lib/utility/number-selector.component.mjs +42 -0
  167. package/esm2020/lib/utility/utility.module.mjs +28 -0
  168. package/esm2020/ngx-techlify-core.mjs +5 -0
  169. package/esm2020/public-api.mjs +97 -0
  170. package/fesm2015/ngx-techlify-core.mjs +7890 -0
  171. package/fesm2015/ngx-techlify-core.mjs.map +1 -0
  172. package/fesm2020/ngx-techlify-core.mjs +7795 -0
  173. package/fesm2020/ngx-techlify-core.mjs.map +1 -0
  174. package/index.d.ts +6 -0
  175. package/lib/action-popup/action-popup.component.d.ts +18 -14
  176. package/lib/action-popup/action-popup.component.d.ts.map +1 -0
  177. package/lib/action-popup/action-popup.model.d.ts +6 -5
  178. package/lib/action-popup/action-popup.model.d.ts.map +1 -0
  179. package/lib/action-popup/action-popup.module.d.ts +11 -2
  180. package/lib/action-popup/action-popup.module.d.ts.map +1 -0
  181. package/lib/action-popup/index.d.ts +3 -2
  182. package/lib/action-popup/index.d.ts.map +1 -0
  183. package/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.d.ts +8 -2
  184. package/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.d.ts.map +1 -0
  185. package/lib/audit-log/audit-log-for-model/audit-log-for-model.component.d.ts +16 -12
  186. package/lib/audit-log/audit-log-for-model/audit-log-for-model.component.d.ts.map +1 -0
  187. package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +14 -2
  188. package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts.map +1 -0
  189. package/lib/audit-log/audit-log-list/audit-log-list-routing.module.d.ts +8 -2
  190. package/lib/audit-log/audit-log-list/audit-log-list-routing.module.d.ts.map +1 -0
  191. package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +36 -32
  192. package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts.map +1 -0
  193. package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +16 -2
  194. package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts.map +1 -0
  195. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.d.ts +8 -2
  196. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.d.ts.map +1 -0
  197. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +23 -19
  198. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts.map +1 -0
  199. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +14 -2
  200. package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts.map +1 -0
  201. package/lib/audit-log/audit-log-routing.module.d.ts +8 -2
  202. package/lib/audit-log/audit-log-routing.module.d.ts.map +1 -0
  203. package/lib/audit-log/audit-log-view/audit-log-view-routing.module.d.ts +8 -2
  204. package/lib/audit-log/audit-log-view/audit-log-view-routing.module.d.ts.map +1 -0
  205. package/lib/audit-log/audit-log-view/audit-log-view.component.d.ts +21 -17
  206. package/lib/audit-log/audit-log-view/audit-log-view.component.d.ts.map +1 -0
  207. package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +12 -2
  208. package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts.map +1 -0
  209. package/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.d.ts +8 -2
  210. package/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.d.ts.map +1 -0
  211. package/lib/audit-log/audit-log-view-model/audit-log-view-model.component.d.ts +19 -15
  212. package/lib/audit-log/audit-log-view-model/audit-log-view-model.component.d.ts.map +1 -0
  213. package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +12 -2
  214. package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts.map +1 -0
  215. package/lib/audit-log/audit-log.module.d.ts +11 -2
  216. package/lib/audit-log/audit-log.module.d.ts.map +1 -0
  217. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.d.ts +8 -2
  218. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.d.ts.map +1 -0
  219. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.d.ts +15 -11
  220. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.d.ts.map +1 -0
  221. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.d.ts +12 -2
  222. package/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.d.ts.map +1 -0
  223. package/lib/base-model/index.d.ts +4 -3
  224. package/lib/base-model/index.d.ts.map +1 -0
  225. package/lib/base-model/techlify-form-component.class.d.ts +44 -43
  226. package/lib/base-model/techlify-form-component.class.d.ts.map +1 -0
  227. package/lib/base-model/techlify-listing-component.class.d.ts +48 -47
  228. package/lib/base-model/techlify-listing-component.class.d.ts.map +1 -0
  229. package/lib/base-model/techlify-service.class.d.ts +53 -52
  230. package/lib/base-model/techlify-service.class.d.ts.map +1 -0
  231. package/lib/core/alert.service.d.ts +16 -12
  232. package/lib/core/alert.service.d.ts.map +1 -0
  233. package/lib/core/api-prefix.interceptor.d.ts +15 -11
  234. package/lib/core/api-prefix.interceptor.d.ts.map +1 -0
  235. package/lib/core/authentication.guard.d.ts +14 -10
  236. package/lib/core/authentication.guard.d.ts.map +1 -0
  237. package/lib/core/authentication.service.d.ts +27 -23
  238. package/lib/core/authentication.service.d.ts.map +1 -0
  239. package/lib/core/cache.interceptor.d.ts +25 -21
  240. package/lib/core/cache.interceptor.d.ts.map +1 -0
  241. package/lib/core/config.service.d.ts +23 -19
  242. package/lib/core/config.service.d.ts.map +1 -0
  243. package/lib/core/core.module.d.ts +12 -3
  244. package/lib/core/core.module.d.ts.map +1 -0
  245. package/lib/core/credentials.service.d.ts +40 -36
  246. package/lib/core/credentials.service.d.ts.map +1 -0
  247. package/lib/core/dataManager.service.d.ts +74 -70
  248. package/lib/core/dataManager.service.d.ts.map +1 -0
  249. package/lib/core/error-handler.interceptor.d.ts +18 -14
  250. package/lib/core/error-handler.interceptor.d.ts.map +1 -0
  251. package/lib/core/error-handler.service.d.ts +18 -14
  252. package/lib/core/error-handler.service.d.ts.map +1 -0
  253. package/lib/core/filter.service.d.ts +12 -0
  254. package/lib/core/filter.service.d.ts.map +1 -0
  255. package/lib/core/form-validator.service.d.ts +12 -8
  256. package/lib/core/form-validator.service.d.ts.map +1 -0
  257. package/lib/core/header.interceptor.d.ts +12 -8
  258. package/lib/core/header.interceptor.d.ts.map +1 -0
  259. package/lib/core/http-cache.service.d.ts +58 -54
  260. package/lib/core/http-cache.service.d.ts.map +1 -0
  261. package/lib/core/http.service.d.ts +60 -56
  262. package/lib/core/http.service.d.ts.map +1 -0
  263. package/lib/core/index.d.ts +22 -20
  264. package/lib/core/index.d.ts.map +1 -0
  265. package/lib/core/logger.service.d.ts +86 -85
  266. package/lib/core/logger.service.d.ts.map +1 -0
  267. package/lib/core/route-reusable-strategy.d.ts +17 -13
  268. package/lib/core/route-reusable-strategy.d.ts.map +1 -0
  269. package/lib/core/snack/snack.component.d.ts +14 -8
  270. package/lib/core/snack/snack.component.d.ts.map +1 -0
  271. package/lib/core/snack/snack.module.d.ts +11 -2
  272. package/lib/core/snack/snack.module.d.ts.map +1 -0
  273. package/lib/core/storage.service.d.ts +19 -15
  274. package/lib/core/storage.service.d.ts.map +1 -0
  275. package/lib/core/techlify-config.model.d.ts +19 -18
  276. package/lib/core/techlify-config.model.d.ts.map +1 -0
  277. package/lib/core/token.interceptor.d.ts +15 -11
  278. package/lib/core/token.interceptor.d.ts.map +1 -0
  279. package/lib/data-table/data-table.component.d.ts +64 -60
  280. package/lib/data-table/data-table.component.d.ts.map +1 -0
  281. package/lib/data-table/data-table.model.d.ts +47 -46
  282. package/lib/data-table/data-table.model.d.ts.map +1 -0
  283. package/lib/data-table/data-table.module.d.ts +12 -2
  284. package/lib/data-table/data-table.module.d.ts.map +1 -0
  285. package/lib/data-table/index.d.ts +3 -2
  286. package/lib/data-table/index.d.ts.map +1 -0
  287. package/lib/date-validator.d.ts +2 -1
  288. package/lib/date-validator.d.ts.map +1 -0
  289. package/lib/document-viewer/document-viewer.component.d.ts +20 -16
  290. package/lib/document-viewer/document-viewer.component.d.ts.map +1 -0
  291. package/lib/document-viewer/document-viewer.module.d.ts +12 -2
  292. package/lib/document-viewer/document-viewer.module.d.ts.map +1 -0
  293. package/lib/document-viewer/index.d.ts +3 -2
  294. package/lib/document-viewer/index.d.ts.map +1 -0
  295. package/lib/document-viewer/viewer-config.model.d.ts +6 -5
  296. package/lib/document-viewer/viewer-config.model.d.ts.map +1 -0
  297. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.d.ts +13 -7
  298. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.d.ts.map +1 -0
  299. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.d.ts +21 -17
  300. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.d.ts.map +1 -0
  301. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts +13 -2
  302. package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts.map +1 -0
  303. package/lib/email-subscription/email-subscription-for-user/index.d.ts +2 -1
  304. package/lib/email-subscription/email-subscription-for-user/index.d.ts.map +1 -0
  305. package/lib/email-subscription/email-subscription-routing.module.d.ts +8 -2
  306. package/lib/email-subscription/email-subscription-routing.module.d.ts.map +1 -0
  307. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.d.ts +8 -2
  308. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.d.ts.map +1 -0
  309. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.d.ts +36 -32
  310. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.d.ts.map +1 -0
  311. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts +15 -2
  312. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts.map +1 -0
  313. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.d.ts +2 -1
  314. package/lib/email-subscription/email-subscription-type/email-subscription-type-form/index.d.ts.map +1 -0
  315. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.d.ts +15 -9
  316. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.d.ts.map +1 -0
  317. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.d.ts +34 -30
  318. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.d.ts.map +1 -0
  319. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts +15 -2
  320. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts.map +1 -0
  321. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.d.ts +2 -1
  322. package/lib/email-subscription/email-subscription-type/email-subscription-type-list/index.d.ts.map +1 -0
  323. package/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.d.ts +8 -2
  324. package/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.d.ts.map +1 -0
  325. package/lib/email-subscription/email-subscription-type/email-subscription-type.module.d.ts +9 -2
  326. package/lib/email-subscription/email-subscription-type/email-subscription-type.module.d.ts.map +1 -0
  327. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.d.ts +8 -2
  328. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.d.ts.map +1 -0
  329. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.d.ts +36 -32
  330. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.d.ts.map +1 -0
  331. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts +15 -2
  332. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts.map +1 -0
  333. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.d.ts +2 -1
  334. package/lib/email-subscription/email-subscription-user/email-subscription-user-form/index.d.ts.map +1 -0
  335. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.d.ts +15 -9
  336. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.d.ts.map +1 -0
  337. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.d.ts +36 -32
  338. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.d.ts.map +1 -0
  339. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts +16 -2
  340. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts.map +1 -0
  341. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.d.ts +2 -1
  342. package/lib/email-subscription/email-subscription-user/email-subscription-user-list/index.d.ts.map +1 -0
  343. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.d.ts +8 -2
  344. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.d.ts.map +1 -0
  345. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.d.ts +17 -13
  346. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.d.ts.map +1 -0
  347. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts +14 -2
  348. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts.map +1 -0
  349. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.d.ts +2 -1
  350. package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/index.d.ts.map +1 -0
  351. package/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.d.ts +8 -2
  352. package/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.d.ts.map +1 -0
  353. package/lib/email-subscription/email-subscription-user/email-subscription-user.module.d.ts +9 -2
  354. package/lib/email-subscription/email-subscription-user/email-subscription-user.module.d.ts.map +1 -0
  355. package/lib/email-subscription/email-subscription.module.d.ts +9 -2
  356. package/lib/email-subscription/email-subscription.module.d.ts.map +1 -0
  357. package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts +42 -38
  358. package/lib/entity-files/entity-file-form/entity-file-form.component.d.ts.map +1 -0
  359. package/lib/entity-files/entity-file.service.d.ts +15 -11
  360. package/lib/entity-files/entity-file.service.d.ts.map +1 -0
  361. package/lib/entity-files/entity-files-view-all.component.d.ts +69 -65
  362. package/lib/entity-files/entity-files-view-all.component.d.ts.map +1 -0
  363. package/lib/entity-files/entity-files-view-all.module.d.ts +20 -2
  364. package/lib/entity-files/entity-files-view-all.module.d.ts.map +1 -0
  365. package/lib/entity-files/index.d.ts +3 -2
  366. package/lib/entity-files/index.d.ts.map +1 -0
  367. package/lib/export-excel/export-excel-button/export-excel-button.component.d.ts +12 -8
  368. package/lib/export-excel/export-excel-button/export-excel-button.component.d.ts.map +1 -0
  369. package/lib/export-excel/export-excel.module.d.ts +10 -2
  370. package/lib/export-excel/export-excel.module.d.ts.map +1 -0
  371. package/lib/file-dropper/file-dropper.component.d.ts +37 -33
  372. package/lib/file-dropper/file-dropper.component.d.ts.map +1 -0
  373. package/lib/file-dropper/file-dropper.model.d.ts +11 -10
  374. package/lib/file-dropper/file-dropper.model.d.ts.map +1 -0
  375. package/lib/file-dropper/file-dropper.module.d.ts +11 -2
  376. package/lib/file-dropper/file-dropper.module.d.ts.map +1 -0
  377. package/lib/file-dropper/index.d.ts +3 -2
  378. package/lib/file-dropper/index.d.ts.map +1 -0
  379. package/lib/import-csv/data-import/data-import.component.d.ts +10 -6
  380. package/lib/import-csv/data-import/data-import.component.d.ts.map +1 -0
  381. package/lib/import-csv/failed-items-list/failed-items-list.component.d.ts +16 -12
  382. package/lib/import-csv/failed-items-list/failed-items-list.component.d.ts.map +1 -0
  383. package/lib/import-csv/field-mapping/field-mapping.component.d.ts +38 -34
  384. package/lib/import-csv/field-mapping/field-mapping.component.d.ts.map +1 -0
  385. package/lib/import-csv/import-csv-config.d.ts +18 -17
  386. package/lib/import-csv/import-csv-config.d.ts.map +1 -0
  387. package/lib/import-csv/import-csv.component.d.ts +37 -33
  388. package/lib/import-csv/import-csv.component.d.ts.map +1 -0
  389. package/lib/import-csv/import-csv.module.d.ts +21 -2
  390. package/lib/import-csv/import-csv.module.d.ts.map +1 -0
  391. package/lib/import-csv/import-history-list/import-history-list.component.d.ts +25 -21
  392. package/lib/import-csv/import-history-list/import-history-list.component.d.ts.map +1 -0
  393. package/lib/import-csv/import-success/import-success.component.d.ts +12 -8
  394. package/lib/import-csv/import-success/import-success.component.d.ts.map +1 -0
  395. package/lib/loader/index.d.ts +2 -1
  396. package/lib/loader/index.d.ts.map +1 -0
  397. package/lib/loader/loader.component.d.ts +12 -8
  398. package/lib/loader/loader.component.d.ts.map +1 -0
  399. package/lib/loader/loader.module.d.ts +10 -2
  400. package/lib/loader/loader.module.d.ts.map +1 -0
  401. package/lib/login-history-for-user/login-history-for-user-routing.module.d.ts +8 -2
  402. package/lib/login-history-for-user/login-history-for-user-routing.module.d.ts.map +1 -0
  403. package/lib/login-history-for-user/login-history-for-user.component.d.ts +27 -23
  404. package/lib/login-history-for-user/login-history-for-user.component.d.ts.map +1 -0
  405. package/lib/login-history-for-user/login-history-for-user.module.d.ts +15 -2
  406. package/lib/login-history-for-user/login-history-for-user.module.d.ts.map +1 -0
  407. package/lib/material.module.d.ts +27 -2
  408. package/lib/material.module.d.ts.map +1 -0
  409. package/lib/note/comment-form/comment-form.component.d.ts +26 -22
  410. package/lib/note/comment-form/comment-form.component.d.ts.map +1 -0
  411. package/lib/note/index.d.ts +4 -3
  412. package/lib/note/index.d.ts.map +1 -0
  413. package/lib/note/note-form/note-form.component.d.ts +31 -27
  414. package/lib/note/note-form/note-form.component.d.ts.map +1 -0
  415. package/lib/note/note-list/note-list.component.d.ts +32 -28
  416. package/lib/note/note-list/note-list.component.d.ts.map +1 -0
  417. package/lib/note/note.module.d.ts +17 -2
  418. package/lib/note/note.module.d.ts.map +1 -0
  419. package/lib/note/note.service.d.ts +13 -9
  420. package/lib/note/note.service.d.ts.map +1 -0
  421. package/lib/read-more/read-more.component.d.ts +16 -12
  422. package/lib/read-more/read-more.component.d.ts.map +1 -0
  423. package/lib/read-more/read-more.module.d.ts +11 -2
  424. package/lib/read-more/read-more.module.d.ts.map +1 -0
  425. package/lib/request-helper/request-helper.service.d.ts +41 -0
  426. package/lib/request-helper/request-helper.service.d.ts.map +1 -0
  427. package/lib/searchable-selector/index.d.ts +3 -2
  428. package/lib/searchable-selector/index.d.ts.map +1 -0
  429. package/lib/searchable-selector/mat-select-infinite-scroll.directive.d.ts +27 -23
  430. package/lib/searchable-selector/mat-select-infinite-scroll.directive.d.ts.map +1 -0
  431. package/lib/searchable-selector/searchable-selector.component.d.ts +85 -81
  432. package/lib/searchable-selector/searchable-selector.component.d.ts.map +1 -0
  433. package/lib/searchable-selector/searchable-selector.module.d.ts +13 -2
  434. package/lib/searchable-selector/searchable-selector.module.d.ts.map +1 -0
  435. package/lib/techlify-feature/on-off-switch/on-off-switch.component.d.ts +13 -9
  436. package/lib/techlify-feature/on-off-switch/on-off-switch.component.d.ts.map +1 -0
  437. package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts +21 -17
  438. package/lib/techlify-feature/techlify-feature-enabled.directive.d.ts.map +1 -0
  439. package/lib/techlify-feature/techlify-feature-listing.component.d.ts +41 -37
  440. package/lib/techlify-feature/techlify-feature-listing.component.d.ts.map +1 -0
  441. package/lib/techlify-feature/techlify-feature.module.d.ts +17 -2
  442. package/lib/techlify-feature/techlify-feature.module.d.ts.map +1 -0
  443. package/lib/techlify-feature/techlify-feature.routing.d.ts +3 -2
  444. package/lib/techlify-feature/techlify-feature.routing.d.ts.map +1 -0
  445. package/lib/techlify-feature/techlify-feature.service.d.ts +12 -8
  446. package/lib/techlify-feature/techlify-feature.service.d.ts.map +1 -0
  447. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.d.ts +13 -12
  448. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-config.model.d.ts.map +1 -0
  449. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.d.ts +80 -76
  450. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.d.ts.map +1 -0
  451. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts +13 -2
  452. package/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts.map +1 -0
  453. package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.d.ts +62 -58
  454. package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.d.ts.map +1 -0
  455. package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts +15 -2
  456. package/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts.map +1 -0
  457. package/lib/techlify-update/techlify-update-form/techlify-update-form.component.d.ts +34 -30
  458. package/lib/techlify-update/techlify-update-form/techlify-update-form.component.d.ts.map +1 -0
  459. package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts +13 -2
  460. package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts.map +1 -0
  461. package/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.d.ts +8 -2
  462. package/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.d.ts.map +1 -0
  463. package/lib/techlify-update/techlify-update-history/techlify-update-history.component.d.ts +35 -31
  464. package/lib/techlify-update/techlify-update-history/techlify-update-history.component.d.ts.map +1 -0
  465. package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts +16 -2
  466. package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts.map +1 -0
  467. package/lib/techlify-update/techlify-update-routing.module.d.ts +8 -2
  468. package/lib/techlify-update/techlify-update-routing.module.d.ts.map +1 -0
  469. package/lib/techlify-update/techlify-update.module.d.ts +17 -2
  470. package/lib/techlify-update/techlify-update.module.d.ts.map +1 -0
  471. package/lib/techlify-update/techlify-update.service.d.ts +17 -13
  472. package/lib/techlify-update/techlify-update.service.d.ts.map +1 -0
  473. package/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.d.ts +35 -31
  474. package/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.d.ts.map +1 -0
  475. package/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.d.ts +29 -25
  476. package/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.d.ts.map +1 -0
  477. package/lib/techlify-update/update-notifier/update-notifier.component.d.ts +20 -16
  478. package/lib/techlify-update/update-notifier/update-notifier.component.d.ts.map +1 -0
  479. package/lib/techlify-update/update-notifier/update-notifier.module.d.ts +14 -2
  480. package/lib/techlify-update/update-notifier/update-notifier.module.d.ts.map +1 -0
  481. package/lib/techlify-update/update-view/update-view.component.d.ts +18 -14
  482. package/lib/techlify-update/update-view/update-view.component.d.ts.map +1 -0
  483. package/lib/techlify-update/update-view/update-view.module.d.ts +11 -2
  484. package/lib/techlify-update/update-view/update-view.module.d.ts.map +1 -0
  485. package/lib/timeline-filter/calculate-timeline.d.ts +7 -6
  486. package/lib/timeline-filter/calculate-timeline.d.ts.map +1 -0
  487. package/lib/timeline-filter/index.d.ts +4 -3
  488. package/lib/timeline-filter/index.d.ts.map +1 -0
  489. package/lib/timeline-filter/timeline-filter-routing.module.d.ts +8 -2
  490. package/lib/timeline-filter/timeline-filter-routing.module.d.ts.map +1 -0
  491. package/lib/timeline-filter/timeline-filter.component.d.ts +66 -61
  492. package/lib/timeline-filter/timeline-filter.component.d.ts.map +1 -0
  493. package/lib/timeline-filter/timeline-filter.module.d.ts +19 -2
  494. package/lib/timeline-filter/timeline-filter.module.d.ts.map +1 -0
  495. package/lib/timeline-filter/timeline.model.d.ts +18 -17
  496. package/lib/timeline-filter/timeline.model.d.ts.map +1 -0
  497. package/lib/utility/date-utils.service.d.ts +25 -21
  498. package/lib/utility/date-utils.service.d.ts.map +1 -0
  499. package/lib/utility/index.d.ts +4 -3
  500. package/lib/utility/index.d.ts.map +1 -0
  501. package/lib/utility/num-items-selector.component.d.ts +20 -16
  502. package/lib/utility/num-items-selector.component.d.ts.map +1 -0
  503. package/lib/utility/number-selector.component.d.ts +24 -20
  504. package/lib/utility/number-selector.component.d.ts.map +1 -0
  505. package/lib/utility/utility.module.d.ts +11 -2
  506. package/lib/utility/utility.module.d.ts.map +1 -0
  507. package/ngx-techlify-core.d.ts.map +1 -0
  508. package/package.json +21 -9
  509. package/public-api.d.ts +94 -92
  510. package/public-api.d.ts.map +1 -0
  511. package/src/lib/timeline-filter/README.md +60 -0
  512. package/bundles/ngx-techlify-core.umd.js +0 -8449
  513. package/bundles/ngx-techlify-core.umd.js.map +0 -1
  514. package/bundles/ngx-techlify-core.umd.min.js +0 -2
  515. package/bundles/ngx-techlify-core.umd.min.js.map +0 -1
  516. package/esm2015/lib/action-popup/action-popup.component.js +0 -32
  517. package/esm2015/lib/action-popup/action-popup.module.js +0 -26
  518. package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model-routing.module.js +0 -12
  519. package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model.component.js +0 -49
  520. package/esm2015/lib/audit-log/audit-log-for-model/audit-log-for-model.module.js +0 -25
  521. package/esm2015/lib/audit-log/audit-log-list/audit-log-list-routing.module.js +0 -12
  522. package/esm2015/lib/audit-log/audit-log-list/audit-log-list.component.js +0 -132
  523. package/esm2015/lib/audit-log/audit-log-list/audit-log-list.module.js +0 -29
  524. package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter-routing.module.js +0 -12
  525. package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.js +0 -67
  526. package/esm2015/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.js +0 -25
  527. package/esm2015/lib/audit-log/audit-log-routing.module.js +0 -19
  528. package/esm2015/lib/audit-log/audit-log-view/audit-log-view-routing.module.js +0 -12
  529. package/esm2015/lib/audit-log/audit-log-view/audit-log-view.component.js +0 -60
  530. package/esm2015/lib/audit-log/audit-log-view/audit-log-view.module.js +0 -21
  531. package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model-routing.module.js +0 -12
  532. package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model.component.js +0 -57
  533. package/esm2015/lib/audit-log/audit-log-view-model/audit-log-view-model.module.js +0 -21
  534. package/esm2015/lib/audit-log/audit-log.module.js +0 -20
  535. package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model-routing.module.js +0 -12
  536. package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.js +0 -35
  537. package/esm2015/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.js +0 -21
  538. package/esm2015/lib/base-model/techlify-form-component.class.js +0 -51
  539. package/esm2015/lib/base-model/techlify-listing-component.class.js +0 -41
  540. package/esm2015/lib/base-model/techlify-service.class.js +0 -64
  541. package/esm2015/lib/core/alert.service.js +0 -40
  542. package/esm2015/lib/core/api-prefix.interceptor.js +0 -28
  543. package/esm2015/lib/core/authentication.guard.js +0 -39
  544. package/esm2015/lib/core/authentication.service.js +0 -59
  545. package/esm2015/lib/core/cache.interceptor.js +0 -60
  546. package/esm2015/lib/core/config.service.js +0 -47
  547. package/esm2015/lib/core/core.module.js +0 -42
  548. package/esm2015/lib/core/credentials.service.js +0 -84
  549. package/esm2015/lib/core/dataManager.service.js +0 -121
  550. package/esm2015/lib/core/error-handler.interceptor.js +0 -53
  551. package/esm2015/lib/core/error-handler.service.js +0 -60
  552. package/esm2015/lib/core/form-validator.service.js +0 -23
  553. package/esm2015/lib/core/header.interceptor.js +0 -22
  554. package/esm2015/lib/core/http-cache.service.js +0 -110
  555. package/esm2015/lib/core/http.service.js +0 -82
  556. package/esm2015/lib/core/route-reusable-strategy.js +0 -35
  557. package/esm2015/lib/core/snack/snack.component.js +0 -33
  558. package/esm2015/lib/core/snack/snack.module.js +0 -25
  559. package/esm2015/lib/core/storage.service.js +0 -37
  560. package/esm2015/lib/core/techlify-config.model.js +0 -28
  561. package/esm2015/lib/core/token.interceptor.js +0 -30
  562. package/esm2015/lib/data-table/data-table.component.js +0 -190
  563. package/esm2015/lib/data-table/data-table.model.js +0 -11
  564. package/esm2015/lib/data-table/data-table.module.js +0 -25
  565. package/esm2015/lib/document-viewer/document-viewer.component.js +0 -58
  566. package/esm2015/lib/document-viewer/document-viewer.module.js +0 -25
  567. package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user-routing.module.js +0 -26
  568. package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.component.js +0 -72
  569. package/esm2015/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.js +0 -23
  570. package/esm2015/lib/email-subscription/email-subscription-routing.module.js +0 -12
  571. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form-routing.module.js +0 -12
  572. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.js +0 -102
  573. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.js +0 -28
  574. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list-routing.module.js +0 -28
  575. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.js +0 -153
  576. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.js +0 -27
  577. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type-routing.module.js +0 -12
  578. package/esm2015/lib/email-subscription/email-subscription-type/email-subscription-type.module.js +0 -15
  579. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form-routing.module.js +0 -12
  580. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.js +0 -99
  581. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.js +0 -27
  582. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list-routing.module.js +0 -28
  583. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.js +0 -155
  584. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.js +0 -29
  585. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter-routing.module.js +0 -12
  586. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.js +0 -50
  587. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.js +0 -25
  588. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user-routing.module.js +0 -12
  589. package/esm2015/lib/email-subscription/email-subscription-user/email-subscription-user.module.js +0 -15
  590. package/esm2015/lib/email-subscription/email-subscription.module.js +0 -15
  591. package/esm2015/lib/entity-files/entity-file-form/entity-file-form.component.js +0 -147
  592. package/esm2015/lib/entity-files/entity-file.service.js +0 -45
  593. package/esm2015/lib/entity-files/entity-files-view-all.component.js +0 -304
  594. package/esm2015/lib/entity-files/entity-files-view-all.module.js +0 -40
  595. package/esm2015/lib/export-excel/export-excel-button/export-excel-button.component.js +0 -32
  596. package/esm2015/lib/export-excel/export-excel.module.js +0 -17
  597. package/esm2015/lib/file-dropper/file-dropper.component.js +0 -122
  598. package/esm2015/lib/file-dropper/file-dropper.module.js +0 -21
  599. package/esm2015/lib/import-csv/data-import/data-import.component.js +0 -18
  600. package/esm2015/lib/import-csv/failed-items-list/failed-items-list.component.js +0 -33
  601. package/esm2015/lib/import-csv/field-mapping/field-mapping.component.js +0 -148
  602. package/esm2015/lib/import-csv/import-csv-config.js +0 -2
  603. package/esm2015/lib/import-csv/import-csv.component.js +0 -196
  604. package/esm2015/lib/import-csv/import-csv.module.js +0 -46
  605. package/esm2015/lib/import-csv/import-history-list/import-history-list.component.js +0 -71
  606. package/esm2015/lib/import-csv/import-success/import-success.component.js +0 -19
  607. package/esm2015/lib/loader/loader.component.js +0 -22
  608. package/esm2015/lib/loader/loader.module.js +0 -21
  609. package/esm2015/lib/login-history-for-user/login-history-for-user-routing.module.js +0 -20
  610. package/esm2015/lib/login-history-for-user/login-history-for-user.component.js +0 -88
  611. package/esm2015/lib/login-history-for-user/login-history-for-user.module.js +0 -27
  612. package/esm2015/lib/material.module.js +0 -62
  613. package/esm2015/lib/note/comment-form/comment-form.component.js +0 -73
  614. package/esm2015/lib/note/note-form/note-form.component.js +0 -81
  615. package/esm2015/lib/note/note-list/note-list.component.js +0 -151
  616. package/esm2015/lib/note/note.module.js +0 -36
  617. package/esm2015/lib/note/note.service.js +0 -31
  618. package/esm2015/lib/read-more/read-more.component.js +0 -43
  619. package/esm2015/lib/read-more/read-more.module.js +0 -21
  620. package/esm2015/lib/searchable-selector/mat-select-infinite-scroll.directive.js +0 -81
  621. package/esm2015/lib/searchable-selector/searchable-selector.component.js +0 -307
  622. package/esm2015/lib/searchable-selector/searchable-selector.module.js +0 -28
  623. package/esm2015/lib/techlify-feature/on-off-switch/on-off-switch.component.js +0 -27
  624. package/esm2015/lib/techlify-feature/techlify-feature-enabled.directive.js +0 -78
  625. package/esm2015/lib/techlify-feature/techlify-feature-listing.component.js +0 -177
  626. package/esm2015/lib/techlify-feature/techlify-feature.module.js +0 -30
  627. package/esm2015/lib/techlify-feature/techlify-feature.service.js +0 -28
  628. package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.js +0 -269
  629. package/esm2015/lib/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.js +0 -25
  630. package/esm2015/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.js +0 -168
  631. package/esm2015/lib/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.js +0 -29
  632. package/esm2015/lib/techlify-update/techlify-update-form/techlify-update-form.component.js +0 -114
  633. package/esm2015/lib/techlify-update/techlify-update-form/techlify-update-form.module.js +0 -28
  634. package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history-routing.module.js +0 -22
  635. package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history.component.js +0 -143
  636. package/esm2015/lib/techlify-update/techlify-update-history/techlify-update-history.module.js +0 -28
  637. package/esm2015/lib/techlify-update/techlify-update-routing.module.js +0 -22
  638. package/esm2015/lib/techlify-update/techlify-update.module.js +0 -30
  639. package/esm2015/lib/techlify-update/techlify-update.service.js +0 -43
  640. package/esm2015/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.js +0 -161
  641. package/esm2015/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.js +0 -82
  642. package/esm2015/lib/techlify-update/update-notifier/update-notifier.component.js +0 -62
  643. package/esm2015/lib/techlify-update/update-notifier/update-notifier.module.js +0 -29
  644. package/esm2015/lib/techlify-update/update-view/update-view.component.js +0 -36
  645. package/esm2015/lib/techlify-update/update-view/update-view.module.js +0 -24
  646. package/esm2015/lib/timeline-filter/calculate-timeline.js +0 -102
  647. package/esm2015/lib/timeline-filter/timeline-filter-routing.module.js +0 -12
  648. package/esm2015/lib/timeline-filter/timeline-filter.component.js +0 -213
  649. package/esm2015/lib/timeline-filter/timeline-filter.module.js +0 -23
  650. package/esm2015/lib/utility/num-items-selector.component.js +0 -30
  651. package/esm2015/lib/utility/number-selector.component.js +0 -38
  652. package/esm2015/lib/utility/utility.module.js +0 -21
  653. package/esm2015/ngx-techlify-core.js +0 -60
  654. package/esm2015/public-api.js +0 -96
  655. package/fesm2015/ngx-techlify-core.js +0 -7150
  656. package/fesm2015/ngx-techlify-core.js.map +0 -1
  657. package/ngx-techlify-core.d.ts +0 -59
  658. package/ngx-techlify-core.metadata.json +0 -1
@@ -0,0 +1,285 @@
1
+ var TechlifyTaggerTagFormFieldComponent_1;
2
+ import { __decorate } from "tslib";
3
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
+ import { Component, ViewChild, Input, Inject, Optional, Self } from '@angular/core';
5
+ import { UntypedFormControl } from '@angular/forms';
6
+ import { MatFormFieldControl, MAT_FORM_FIELD } from '@angular/material/form-field';
7
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
8
+ import { Subject } from 'rxjs';
9
+ import { debounceTime } from 'rxjs/operators';
10
+ import { TechlifyTaggerTagFormConfigModel } from './techlify-tagger-tag-form-config.model';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/cdk/a11y";
13
+ import * as i2 from "../core/http.service";
14
+ import * as i3 from "@angular/forms";
15
+ import * as i4 from "@angular/common";
16
+ import * as i5 from "@angular/material/icon";
17
+ import * as i6 from "@angular/material/core";
18
+ import * as i7 from "@angular/material/chips";
19
+ import * as i8 from "@angular/material/autocomplete";
20
+ import * as i9 from "@angular/material/form-field";
21
+ let TechlifyTaggerTagFormFieldComponent = TechlifyTaggerTagFormFieldComponent_1 = class TechlifyTaggerTagFormFieldComponent {
22
+ constructor(_focusMonitor, _elementRef, httpService, _formField, ngControl) {
23
+ this._focusMonitor = _focusMonitor;
24
+ this._elementRef = _elementRef;
25
+ this.httpService = httpService;
26
+ this._formField = _formField;
27
+ this.ngControl = ngControl;
28
+ this.stateChanges = new Subject();
29
+ this.focused = false;
30
+ this.controlType = 'techlify-tagger-form-field';
31
+ this.id = `techlify-tagger-form-field-${TechlifyTaggerTagFormFieldComponent_1.nextId++}`;
32
+ this.onChange = (_) => { };
33
+ this.onTouched = () => { };
34
+ this.tagInputCtrl = new UntypedFormControl();
35
+ /**Pass the configuration for Techlify Tagger */
36
+ this.config = new TechlifyTaggerTagFormConfigModel();
37
+ /**Pass the default list of tags */
38
+ this._allTags = [];
39
+ /**Pass the Categories to filter for a model */
40
+ this.categories = [];
41
+ this._required = false;
42
+ this._disabled = false;
43
+ this._value = [];
44
+ this.tagInputCtrl.valueChanges
45
+ .subscribe(filterValue => {
46
+ this.filterString = filterValue;
47
+ });
48
+ //Set Focus Monitor
49
+ _focusMonitor.monitor(_elementRef, true).subscribe(origin => {
50
+ if (this.focused && !origin) {
51
+ this.onTouched();
52
+ }
53
+ this.focused = !!origin;
54
+ this.stateChanges.next();
55
+ });
56
+ if (this.ngControl != null) {
57
+ this.ngControl.valueAccessor = this;
58
+ }
59
+ }
60
+ get allTags() {
61
+ return this._allTags;
62
+ }
63
+ set allTags(value) {
64
+ this._allTags = value;
65
+ }
66
+ get tags() {
67
+ return this.allTags.filter(x => this.value.some(y => y == x.id));
68
+ }
69
+ //Default Getter and Setters for a Form Field Implementation
70
+ get empty() {
71
+ return this.value.length == 0;
72
+ }
73
+ get shouldLabelFloat() {
74
+ return this.focused || !this.empty || this.tagInputCtrl.value;
75
+ }
76
+ get required() {
77
+ return this._required;
78
+ }
79
+ set required(value) {
80
+ this._required = coerceBooleanProperty(value);
81
+ this.stateChanges.next();
82
+ }
83
+ get disabled() {
84
+ return this._disabled;
85
+ }
86
+ set disabled(value) {
87
+ this._disabled = coerceBooleanProperty(value);
88
+ this._disabled ? this.tagInputCtrl.disable() : this.tagInputCtrl.enable();
89
+ this.stateChanges.next();
90
+ }
91
+ get value() {
92
+ return this._value;
93
+ }
94
+ set value(tagIds) {
95
+ this._value = tagIds || [];
96
+ this.stateChanges.next();
97
+ }
98
+ get errorState() {
99
+ return this.tagInputCtrl.dirty && this.required && (this.value.length == 0);
100
+ }
101
+ get placeholder() {
102
+ return this._placeholder;
103
+ }
104
+ set placeholder(value) {
105
+ this._placeholder = value;
106
+ this.stateChanges.next();
107
+ }
108
+ ngOnInit() {
109
+ }
110
+ ngOnChanges(changes) {
111
+ //API to load all tags for the model type
112
+ if (this.allTags.length == 0) {
113
+ this.httpService
114
+ .cache(!this.config.isCacheTags)
115
+ .get(this.config.apiUrl, {
116
+ params: {
117
+ categories: this.categories.join(','),
118
+ perPage: '1000'
119
+ }
120
+ }).pipe(debounceTime(500), untilDestroyed(this)).subscribe((result) => {
121
+ this.allTags = result.data;
122
+ });
123
+ }
124
+ //API to load only the selected tags for the model
125
+ if (this.modelId && this.value.length == 0) {
126
+ //Model Id is passed and no tags are present, so we query db for the avilable tags for the model ID.
127
+ this.httpService
128
+ .cache(!this.config.isCacheTags)
129
+ .get(this.config.apiUrl, {
130
+ params: {
131
+ categories: this.categories.join(','),
132
+ model_type: this.modelType,
133
+ model_id: this.modelId,
134
+ perPage: '1000'
135
+ }
136
+ }).pipe(debounceTime(500), untilDestroyed(this)).subscribe((result) => {
137
+ this.value = (result?.data || []).map((x) => x.id);
138
+ this._handleInput();
139
+ });
140
+ }
141
+ }
142
+ init() {
143
+ if (this.modelId && this.allTags.length == 0) {
144
+ //Model Id is passed and no tags are passed, so we query db for the avilable tags for the model ID.
145
+ this.httpService
146
+ .cache(!this.config.isCacheTags)
147
+ .get(this.config.apiUrl, {
148
+ params: {
149
+ categories: this.categories.join(','),
150
+ model_type: this.modelType,
151
+ model_id: this.modelId
152
+ }
153
+ }).pipe(untilDestroyed(this)).subscribe((result) => {
154
+ this.allTags = result.data;
155
+ });
156
+ }
157
+ }
158
+ get filteredTags() {
159
+ return this._filter();
160
+ }
161
+ setDescribedByIds(ids) {
162
+ // Just a empty implementation for Mat Form Field Interface
163
+ }
164
+ onContainerClick() {
165
+ // Just a empty implementation for Mat Form Field Interface
166
+ }
167
+ async add(event) {
168
+ const value = (event.value || '').trim();
169
+ // Add our tag
170
+ // Validate for single mode
171
+ if (!this.config.isSingle || (this.value.length === 0)) {
172
+ if (value && this.config.isCreateable) {
173
+ const tags = this.allTags;
174
+ let tag = tags.find((item) => item.title.toLowerCase() == value.toLowerCase());
175
+ if (!tag) {
176
+ //No tag present in the list
177
+ try {
178
+ const result = await this.httpService.post(this.config.createApiUrl, {
179
+ title: value,
180
+ description: value,
181
+ category_title: (this.categories.length > 0) ? (this.defaultCreateCategory ? this.defaultCreateCategory : this.categories[0]) : ''
182
+ }).toPromise();
183
+ tag = result.item;
184
+ }
185
+ catch (error) {
186
+ return;
187
+ }
188
+ this.allTags.push(tag);
189
+ }
190
+ else {
191
+ //Optionally clean the existing value, to avoid duplicate
192
+ this.remove(tag);
193
+ }
194
+ this.value.push(tag.id);
195
+ this._handleInput();
196
+ }
197
+ }
198
+ // Clear the input value
199
+ event.chipInput.inputElement.value = '';
200
+ this.tagInputCtrl.setValue(null);
201
+ }
202
+ remove(tag) {
203
+ this.value = this.value.filter(x => x !== tag.id);
204
+ this._handleInput();
205
+ }
206
+ selected(event) {
207
+ // Validate for single mode
208
+ if (!this.config.isSingle || (this.value.length === 0)) {
209
+ //Clean the existing value, to avoid duplicate
210
+ this.remove({ id: event.option.value });
211
+ this.value.push(event.option.value);
212
+ this._handleInput();
213
+ }
214
+ this.tagInput.nativeElement.value = '';
215
+ this.tagInputCtrl.setValue(null);
216
+ }
217
+ _filter() {
218
+ const filterValue = this.filterString ? this.filterString.toString().toLowerCase() : null;
219
+ const availableTags = this.allTags.filter((tag) => !this.value.some((item) => item == tag.id));
220
+ return filterValue ? availableTags.filter((tag) => tag.title.toLowerCase().includes(filterValue)) : availableTags;
221
+ }
222
+ writeValue(tagIds) {
223
+ this.value = tagIds || [];
224
+ }
225
+ registerOnChange(fn) {
226
+ this.onChange = fn;
227
+ }
228
+ registerOnTouched(fn) {
229
+ this.onTouched = fn;
230
+ }
231
+ setDisabledState(isDisabled) {
232
+ this.disabled = isDisabled;
233
+ }
234
+ _handleInput() {
235
+ this.onChange(this.value);
236
+ }
237
+ ngOnDestroy() {
238
+ this.stateChanges.complete();
239
+ this._focusMonitor.stopMonitoring(this._elementRef);
240
+ }
241
+ };
242
+ TechlifyTaggerTagFormFieldComponent.nextId = 0;
243
+ TechlifyTaggerTagFormFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagFormFieldComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: i2.HttpService }, { token: MAT_FORM_FIELD, optional: true }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
244
+ TechlifyTaggerTagFormFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TechlifyTaggerTagFormFieldComponent, selector: "app-techlify-tagger-tag-form-field", inputs: { config: "config", modelType: "modelType", modelId: "modelId", allTags: "allTags", categories: "categories", defaultCreateCategory: "defaultCreateCategory", required: "required", disabled: "disabled", value: "value", placeholder: "placeholder" }, providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagFormFieldComponent_1 }], viewQueries: [{ propertyName: "tagInput", first: true, predicate: ["tagInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-chip-list #chipList aria-label=\"Tag Selection\">\r\n <mat-chip *ngFor=\"let tag of tags\" [selectable]=\"config.selectable\" [removable]=\"config.removable\"\r\n (removed)=\"remove(tag)\">\r\n {{tag.title}}\r\n <button matChipRemove *ngIf=\"config.removable\" class=\"border-0\">\r\n <mat-icon class=\"mat-relative-icon\">cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n <input placeholder=\"{{config.isCreateable? config.placeholder:''}}\" #tagInput [formControl]=\"tagInputCtrl\"\r\n [matAutocomplete]=\"auto\" [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeysCodes\" (matChipInputTokenEnd)=\"add($event)\"\r\n #trigger=\"matAutocompleteTrigger\" (click)=\"trigger.openPanel()\">\r\n</mat-chip-list>\r\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n <mat-option *ngFor=\"let tag of filteredTags\" [value]=\"tag.id\">\r\n {{tag.title}}\r\n </mat-option>\r\n</mat-autocomplete>", styles: [".mat-relative-icon{position:relative;top:-3px;right:7px;font-size:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
245
+ TechlifyTaggerTagFormFieldComponent = TechlifyTaggerTagFormFieldComponent_1 = __decorate([
246
+ UntilDestroy()
247
+ ], TechlifyTaggerTagFormFieldComponent);
248
+ export { TechlifyTaggerTagFormFieldComponent };
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagFormFieldComponent, decorators: [{
250
+ type: Component,
251
+ args: [{ selector: 'app-techlify-tagger-tag-form-field', providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagFormFieldComponent }], template: "<mat-chip-list #chipList aria-label=\"Tag Selection\">\r\n <mat-chip *ngFor=\"let tag of tags\" [selectable]=\"config.selectable\" [removable]=\"config.removable\"\r\n (removed)=\"remove(tag)\">\r\n {{tag.title}}\r\n <button matChipRemove *ngIf=\"config.removable\" class=\"border-0\">\r\n <mat-icon class=\"mat-relative-icon\">cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n <input placeholder=\"{{config.isCreateable? config.placeholder:''}}\" #tagInput [formControl]=\"tagInputCtrl\"\r\n [matAutocomplete]=\"auto\" [matChipInputFor]=\"chipList\"\r\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeysCodes\" (matChipInputTokenEnd)=\"add($event)\"\r\n #trigger=\"matAutocompleteTrigger\" (click)=\"trigger.openPanel()\">\r\n</mat-chip-list>\r\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n <mat-option *ngFor=\"let tag of filteredTags\" [value]=\"tag.id\">\r\n {{tag.title}}\r\n </mat-option>\r\n</mat-autocomplete>", styles: [".mat-relative-icon{position:relative;top:-3px;right:7px;font-size:20px}\n"] }]
252
+ }], ctorParameters: function () { return [{ type: i1.FocusMonitor }, { type: i0.ElementRef }, { type: i2.HttpService }, { type: i9.MatFormField, decorators: [{
253
+ type: Optional
254
+ }, {
255
+ type: Inject,
256
+ args: [MAT_FORM_FIELD]
257
+ }] }, { type: i3.NgControl, decorators: [{
258
+ type: Optional
259
+ }, {
260
+ type: Self
261
+ }] }]; }, propDecorators: { tagInput: [{
262
+ type: ViewChild,
263
+ args: ['tagInput']
264
+ }], config: [{
265
+ type: Input
266
+ }], modelType: [{
267
+ type: Input
268
+ }], modelId: [{
269
+ type: Input
270
+ }], allTags: [{
271
+ type: Input
272
+ }], categories: [{
273
+ type: Input
274
+ }], defaultCreateCategory: [{
275
+ type: Input
276
+ }], required: [{
277
+ type: Input
278
+ }], disabled: [{
279
+ type: Input
280
+ }], value: [{
281
+ type: Input
282
+ }], placeholder: [{
283
+ type: Input
284
+ }] } });
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC90ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQVUsS0FBSyxFQUFhLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUM3SSxPQUFPLEVBQXdCLGtCQUFrQixFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFHckYsT0FBTyxFQUFnQixtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7OztJQVM5RSxtQ0FBbUMsaURBQW5DLG1DQUFtQztJQXFLOUMsWUFDVSxhQUEyQixFQUMzQixXQUFvQyxFQUNwQyxXQUF3QixFQUNXLFVBQXdCLEVBQ3hDLFNBQW9CO1FB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LEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFLRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUVGLENBQUE7QUE3UlEsMENBQU0sR0FBRyxDQUFDLENBQUM7Z0lBRlAsbUNBQW1DLG1HQXlLeEIsY0FBYztvSEF6S3pCLG1DQUFtQyw2VEFGbkMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUscUNBQW1DLEVBQUUsQ0FBQyxxSkNsQmpHLDBoQ0FpQm1CO0FER04sbUNBQW1DO0lBUC9DLFlBQVksRUFBRTtHQU9GLG1DQUFtQyxDQStSL0M7U0EvUlksbUNBQW1DOzJGQUFuQyxtQ0FBbUM7a0JBTi9DLFNBQVM7K0JBQ0Usb0NBQW9DLGFBR25DLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxxQ0FBcUMsRUFBRSxDQUFDOzswQkEySzVGLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsY0FBYzs7MEJBQ2pDLFFBQVE7OzBCQUFJLElBQUk7NENBN0pJLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFHWixNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0YsT0FBTztzQkFEVixLQUFLO2dCQVNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQWdCRixRQUFRO3NCQURYLEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLO2dCQWNGLEtBQUs7c0JBRFIsS0FBSztnQkFjRixXQUFXO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIE9uSW5pdCwgSW5wdXQsIE9uRGVzdHJveSwgSW5qZWN0LCBPcHRpb25hbCwgU2VsZiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUNvbnRyb2wsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdENoaXBJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdEZvcm1GaWVsZENvbnRyb2wsIE1BVF9GT1JNX0ZJRUxEIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h0dHAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlY2hsaWZ5VGFnZ2VyVGFnRm9ybUNvbmZpZ01vZGVsIH0gZnJvbSAnLi90ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tY29uZmlnLm1vZGVsJztcclxuXHJcbkBVbnRpbERlc3Ryb3koKVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tZmllbGQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZWNobGlmeS10YWdnZXItdGFnLWZvcm0tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IFRlY2hsaWZ5VGFnZ2VyVGFnRm9ybUZpZWxkQ29tcG9uZW50IH1dLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlUYWdnZXJUYWdGb3JtRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBNYXRGb3JtRmllbGRDb250cm9sPGFueT4sIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuXHJcbiAgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgY29udHJvbFR5cGUgPSAndGVjaGxpZnktdGFnZ2VyLWZvcm0tZmllbGQnO1xyXG4gIGlkID0gYHRlY2hsaWZ5LXRhZ2dlci1mb3JtLWZpZWxkLSR7VGVjaGxpZnlUYWdnZXJUYWdGb3JtRmllbGRDb21wb25lbnQubmV4dElkKyt9YDtcclxuXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG5cclxuICB0YWdJbnB1dEN0cmwgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgZmlsdGVyU3RyaW5nOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgndGFnSW5wdXQnKSB0YWdJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgLyoqUGFzcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgVGVjaGxpZnkgVGFnZ2VyICovXHJcbiAgQElucHV0KCkgY29uZmlnOiBUZWNobGlmeVRhZ2dlclRhZ0Zvcm1Db25maWdNb2RlbCA9IG5ldyBUZWNobGlmeVRhZ2dlclRhZ0Zvcm1Db25maWdNb2RlbCgpO1xyXG4gIC8qKlBhc3MgdGhlIE1vZGVsIFR5cGUgZm9yIFRlY2hsaWZ5IFRhZ2dlciwgUmVxdWlyZWQgKi9cclxuICBASW5wdXQoKSBtb2RlbFR5cGUhOiBzdHJpbmc7XHJcbiAgLyoqUGFzcyB0aGUgTW9kZWwgSUQgZm9yIFRlY2hsaWZ5IFRhZ2dlciAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsSWQ6IHN0cmluZztcclxuXHJcbiAgLyoqUGFzcyB0aGUgZGVmYXVsdCBsaXN0IG9mIHRhZ3MgKi9cclxuICBwcml2YXRlIF9hbGxUYWdzOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGFsbFRhZ3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWxsVGFncztcclxuICB9XHJcbiAgc2V0IGFsbFRhZ3ModmFsdWUpIHtcclxuICAgIHRoaXMuX2FsbFRhZ3MgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlBhc3MgdGhlIENhdGVnb3JpZXMgdG8gZmlsdGVyIGZvciBhIG1vZGVsICovXHJcbiAgQElucHV0KCkgY2F0ZWdvcmllczogc3RyaW5nW10gPSBbXTtcclxuICAvKipQYXNzIGRlZmF1bHQgY2F0ZWdvcnkgdG8gYmUgdXNlZCBmb3IgYXNzaWduaW5nIHRoZSB0YWdzLCB3aGVuIHdlIGZpbHRlciBieSBtb3JlIHRoYW4gb25lIGNhdGVnb3J5ICovXHJcbiAgQElucHV0KCkgZGVmYXVsdENyZWF0ZUNhdGVnb3J5OiBzdHJpbmc7XHJcblxyXG4gIGdldCB0YWdzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWxsVGFncy5maWx0ZXIoeCA9PiB0aGlzLnZhbHVlLnNvbWUoeSA9PiB5ID09IHguaWQpKTtcclxuICB9XHJcblxyXG4gIC8vRGVmYXVsdCBHZXR0ZXIgYW5kIFNldHRlcnMgZm9yIGEgRm9ybSBGaWVsZCBJbXBsZW1lbnRhdGlvblxyXG4gIGdldCBlbXB0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aCA9PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3VsZExhYmVsRmxvYXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5IHx8IHRoaXMudGFnSW5wdXRDdHJsLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgfVxyXG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA/IHRoaXMudGFnSW5wdXRDdHJsLmRpc2FibGUoKSA6IHRoaXMudGFnSW5wdXRDdHJsLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBfdmFsdWU6IGFueVtdID0gW107XHJcbiAgQElucHV0KClcclxuICBnZXQgdmFsdWUoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICBzZXQgdmFsdWUodGFnSWRzOiBhbnlbXSkge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB0YWdJZHMgfHwgW107XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3JTdGF0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRhZ0lucHV0Q3RybC5kaXJ0eSAmJiB0aGlzLnJlcXVpcmVkICYmICh0aGlzLnZhbHVlLmxlbmd0aCA9PSAwKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG5cclxuICAgIC8vQVBJIHRvIGxvYWQgYWxsIHRhZ3MgZm9yIHRoZSBtb2RlbCB0eXBlXHJcbiAgICBpZiAodGhpcy5hbGxUYWdzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgICAuY2FjaGUoIXRoaXMuY29uZmlnLmlzQ2FjaGVUYWdzKVxyXG4gICAgICAgIC5nZXQodGhpcy5jb25maWcuYXBpVXJsLCB7XHJcbiAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgY2F0ZWdvcmllczogdGhpcy5jYXRlZ29yaWVzLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgcGVyUGFnZTogJzEwMDAnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkucGlwZShcclxuICAgICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxyXG4gICAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcclxuICAgICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxsVGFncyA9IHJlc3VsdC5kYXRhO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQVBJIHRvIGxvYWQgb25seSB0aGUgc2VsZWN0ZWQgdGFncyBmb3IgdGhlIG1vZGVsXHJcbiAgICBpZiAodGhpcy5tb2RlbElkICYmIHRoaXMudmFsdWUubGVuZ3RoID09IDApIHtcclxuICAgICAgLy9Nb2RlbCBJZCBpcyBwYXNzZWQgYW5kIG5vIHRhZ3MgYXJlIHByZXNlbnQsIHNvIHdlIHF1ZXJ5IGRiIGZvciB0aGUgYXZpbGFibGUgdGFncyBmb3IgdGhlIG1vZGVsIElELlxyXG4gICAgICB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgICAgLmNhY2hlKCF0aGlzLmNvbmZpZy5pc0NhY2hlVGFncylcclxuICAgICAgICAuZ2V0KHRoaXMuY29uZmlnLmFwaVVybCwge1xyXG4gICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHRoaXMuY2F0ZWdvcmllcy5qb2luKCcsJyksXHJcbiAgICAgICAgICAgIG1vZGVsX3R5cGU6IHRoaXMubW9kZWxUeXBlLFxyXG4gICAgICAgICAgICBtb2RlbF9pZDogdGhpcy5tb2RlbElkLFxyXG4gICAgICAgICAgICBwZXJQYWdlOiAnMTAwMCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KS5waXBlKFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXHJcbiAgICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxyXG4gICAgICAgICkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9IChyZXN1bHQ/LmRhdGEgfHwgW10pLm1hcCgoeDogYW55KSA9PiB4LmlkKTtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUlucHV0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKHRoaXMubW9kZWxJZCAmJiB0aGlzLmFsbFRhZ3MubGVuZ3RoID09IDApIHtcclxuICAgICAgLy9Nb2RlbCBJZCBpcyBwYXNzZWQgYW5kIG5vIHRhZ3MgYXJlIHBhc3NlZCwgc28gd2UgcXVlcnkgZGIgZm9yIHRoZSBhdmlsYWJsZSB0YWdzIGZvciB0aGUgbW9kZWwgSUQuXHJcbiAgICAgIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgICAuY2FjaGUoIXRoaXMuY29uZmlnLmlzQ2FjaGVUYWdzKVxyXG4gICAgICAgIC5nZXQodGhpcy5jb25maWcuYXBpVXJsLCB7XHJcbiAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgY2F0ZWdvcmllczogdGhpcy5jYXRlZ29yaWVzLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgbW9kZWxfdHlwZTogdGhpcy5tb2RlbFR5cGUsXHJcbiAgICAgICAgICAgIG1vZGVsX2lkOiB0aGlzLm1vZGVsSWRcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KS5waXBlKFxyXG4gICAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcclxuICAgICAgICApLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxsVGFncyA9IHJlc3VsdC5kYXRhO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGZpbHRlcmVkVGFncygpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2ZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0ZPUk1fRklFTEQpIHB1YmxpYyBfZm9ybUZpZWxkOiBNYXRGb3JtRmllbGQsXHJcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCkge1xyXG5cclxuICAgIHRoaXMudGFnSW5wdXRDdHJsLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAuc3Vic2NyaWJlKGZpbHRlclZhbHVlID0+IHtcclxuICAgICAgICB0aGlzLmZpbHRlclN0cmluZyA9IGZpbHRlclZhbHVlO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAvL1NldCBGb2N1cyBNb25pdG9yXHJcbiAgICBfZm9jdXNNb25pdG9yLm1vbml0b3IoX2VsZW1lbnRSZWYsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xyXG4gICAgICBpZiAodGhpcy5mb2N1c2VkICYmICFvcmlnaW4pIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcclxuICAgIC8vIEp1c3QgYSBlbXB0eSBpbXBsZW1lbnRhdGlvbiBmb3IgTWF0IEZvcm0gRmllbGQgSW50ZXJmYWNlXHJcbiAgfVxyXG5cclxuICBvbkNvbnRhaW5lckNsaWNrKCkge1xyXG4gICAgLy8gSnVzdCBhIGVtcHR5IGltcGxlbWVudGF0aW9uIGZvciBNYXQgRm9ybSBGaWVsZCBJbnRlcmZhY2VcclxuICB9XHJcblxyXG5cclxuICBhc3luYyBhZGQoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC52YWx1ZSB8fCAnJykudHJpbSgpO1xyXG4gICAgLy8gQWRkIG91ciB0YWdcclxuICAgIC8vIFZhbGlkYXRlIGZvciBzaW5nbGUgbW9kZVxyXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5pc1NpbmdsZSB8fCAodGhpcy52YWx1ZS5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLmNvbmZpZy5pc0NyZWF0ZWFibGUpIHtcclxuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5hbGxUYWdzO1xyXG4gICAgICAgIGxldCB0YWcgPSB0YWdzLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbS50aXRsZS50b0xvd2VyQ2FzZSgpID09IHZhbHVlLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgIGlmICghdGFnKSB7XHJcbiAgICAgICAgICAvL05vIHRhZyBwcmVzZW50IGluIHRoZSBsaXN0XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IGFueSA9IGF3YWl0IHRoaXMuaHR0cFNlcnZpY2UucG9zdCh0aGlzLmNvbmZpZy5jcmVhdGVBcGlVcmwsIHtcclxuICAgICAgICAgICAgICB0aXRsZTogdmFsdWUsXHJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHZhbHVlLFxyXG4gICAgICAgICAgICAgIGNhdGVnb3J5X3RpdGxlOiAodGhpcy5jYXRlZ29yaWVzLmxlbmd0aCA+IDApID8gKHRoaXMuZGVmYXVsdENyZWF0ZUNhdGVnb3J5ID8gdGhpcy5kZWZhdWx0Q3JlYXRlQ2F0ZWdvcnkgOiB0aGlzLmNhdGVnb3JpZXNbMF0pIDogJydcclxuICAgICAgICAgICAgfSkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHRhZyA9IHJlc3VsdC5pdGVtO1xyXG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5hbGxUYWdzLnB1c2godGFnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy9PcHRpb25hbGx5IGNsZWFuIHRoZSBleGlzdGluZyB2YWx1ZSwgdG8gYXZvaWQgZHVwbGljYXRlXHJcbiAgICAgICAgICB0aGlzLnJlbW92ZSh0YWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnZhbHVlLnB1c2godGFnLmlkKTtcclxuICAgICAgICB0aGlzLl9oYW5kbGVJbnB1dCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2xlYXIgdGhlIGlucHV0IHZhbHVlXHJcbiAgICBldmVudC5jaGlwSW5wdXQuaW5wdXRFbGVtZW50LnZhbHVlID0gJyc7XHJcblxyXG4gICAgdGhpcy50YWdJbnB1dEN0cmwuc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUodGFnOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLmZpbHRlcih4ID0+IHggIT09IHRhZy5pZCk7XHJcbiAgICB0aGlzLl9oYW5kbGVJbnB1dCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIFZhbGlkYXRlIGZvciBzaW5nbGUgbW9kZVxyXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5pc1NpbmdsZSB8fCAodGhpcy52YWx1ZS5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgIC8vQ2xlYW4gdGhlIGV4aXN0aW5nIHZhbHVlLCB0byBhdm9pZCBkdXBsaWNhdGVcclxuICAgICAgdGhpcy5yZW1vdmUoeyBpZDogZXZlbnQub3B0aW9uLnZhbHVlIH0pO1xyXG4gICAgICB0aGlzLnZhbHVlLnB1c2goZXZlbnQub3B0aW9uLnZhbHVlKTtcclxuICAgICAgdGhpcy5faGFuZGxlSW5wdXQoKTtcclxuICAgIH1cclxuICAgIHRoaXMudGFnSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy50YWdJbnB1dEN0cmwuc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWx0ZXIoKTogYW55W10ge1xyXG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0aGlzLmZpbHRlclN0cmluZyA/IHRoaXMuZmlsdGVyU3RyaW5nLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA6IG51bGw7XHJcbiAgICBjb25zdCBhdmFpbGFibGVUYWdzID0gdGhpcy5hbGxUYWdzLmZpbHRlcigodGFnOiBhbnkpID0+ICF0aGlzLnZhbHVlLnNvbWUoKGl0ZW06IGFueSkgPT4gaXRlbSA9PSB0YWcuaWQpKTtcclxuICAgIHJldHVybiBmaWx0ZXJWYWx1ZSA/IGF2YWlsYWJsZVRhZ3MuZmlsdGVyKCh0YWc6IGFueSkgPT4gdGFnLnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKSA6IGF2YWlsYWJsZVRhZ3M7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHRhZ0lkczogYW55W10pOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB0YWdJZHMgfHwgW107XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZUlucHV0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogQm9vbGVhbklucHV0O1xyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bWF0LWNoaXAtbGlzdCAjY2hpcExpc3QgYXJpYS1sYWJlbD1cIlRhZyBTZWxlY3Rpb25cIj5cclxuICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3NcIiBbc2VsZWN0YWJsZV09XCJjb25maWcuc2VsZWN0YWJsZVwiIFtyZW1vdmFibGVdPVwiY29uZmlnLnJlbW92YWJsZVwiXHJcbiAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlKHRhZylcIj5cclxuICAgICAgICB7e3RhZy50aXRsZX19XHJcbiAgICAgICAgPGJ1dHRvbiBtYXRDaGlwUmVtb3ZlICpuZ0lmPVwiY29uZmlnLnJlbW92YWJsZVwiIGNsYXNzPVwiYm9yZGVyLTBcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LXJlbGF0aXZlLWljb25cIj5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9tYXQtY2hpcD5cclxuICAgIDxpbnB1dCBwbGFjZWhvbGRlcj1cInt7Y29uZmlnLmlzQ3JlYXRlYWJsZT8gY29uZmlnLnBsYWNlaG9sZGVyOicnfX1cIiAjdGFnSW5wdXQgW2Zvcm1Db250cm9sXT1cInRhZ0lucHV0Q3RybFwiXHJcbiAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwTGlzdFwiXHJcbiAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cImNvbmZpZy5zZXBhcmF0b3JLZXlzQ29kZXNcIiAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkKCRldmVudClcIlxyXG4gICAgICAgICN0cmlnZ2VyPVwibWF0QXV0b2NvbXBsZXRlVHJpZ2dlclwiIChjbGljayk9XCJ0cmlnZ2VyLm9wZW5QYW5lbCgpXCI+XHJcbjwvbWF0LWNoaXAtbGlzdD5cclxuPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwic2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHRhZyBvZiBmaWx0ZXJlZFRhZ3NcIiBbdmFsdWVdPVwidGFnLmlkXCI+XHJcbiAgICAgICAge3t0YWcudGl0bGV9fVxyXG4gICAgPC9tYXQtb3B0aW9uPlxyXG48L21hdC1hdXRvY29tcGxldGU+Il19
@@ -0,0 +1,38 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { TechlifyTaggerTagFormFieldComponent } from './techlify-tagger-tag-form-field.component';
4
+ import { FlexLayoutModule } from '@angular/flex-layout';
5
+ import { ReactiveFormsModule } from '@angular/forms';
6
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
7
+ import { MaterialModule } from '../material.module';
8
+ import * as i0 from "@angular/core";
9
+ export class TechlifyTaggerTagFormFieldModule {
10
+ }
11
+ TechlifyTaggerTagFormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ TechlifyTaggerTagFormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagFormFieldModule, declarations: [TechlifyTaggerTagFormFieldComponent], imports: [CommonModule,
13
+ MaterialModule,
14
+ FlexLayoutModule,
15
+ MatAutocompleteModule,
16
+ ReactiveFormsModule], exports: [TechlifyTaggerTagFormFieldComponent] });
17
+ TechlifyTaggerTagFormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagFormFieldModule, imports: [CommonModule,
18
+ MaterialModule,
19
+ FlexLayoutModule,
20
+ MatAutocompleteModule,
21
+ ReactiveFormsModule] });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagFormFieldModule, decorators: [{
23
+ type: NgModule,
24
+ args: [{
25
+ declarations: [
26
+ TechlifyTaggerTagFormFieldComponent
27
+ ],
28
+ imports: [
29
+ CommonModule,
30
+ MaterialModule,
31
+ FlexLayoutModule,
32
+ MatAutocompleteModule,
33
+ ReactiveFormsModule
34
+ ],
35
+ exports: [TechlifyTaggerTagFormFieldComponent]
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvdGVjaGxpZnktdGFnZ2VyLXRhZy1mb3JtLWZpZWxkL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQWlCcEQsTUFBTSxPQUFPLGdDQUFnQzs7NkhBQWhDLGdDQUFnQzs4SEFBaEMsZ0NBQWdDLGlCQVh6QyxtQ0FBbUMsYUFHbkMsWUFBWTtRQUNaLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIscUJBQXFCO1FBQ3JCLG1CQUFtQixhQUVYLG1DQUFtQzs4SEFFbEMsZ0NBQWdDLFlBUnpDLFlBQVk7UUFDWixjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixtQkFBbUI7MkZBSVYsZ0NBQWdDO2tCQWI1QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixtQ0FBbUM7cUJBQ3BDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsbUNBQW1DLENBQUM7aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVGVjaGxpZnlUYWdnZXJUYWdGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3RlY2hsaWZ5LXRhZ2dlci10YWctZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uL21hdGVyaWFsLm1vZHVsZSc7XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUZWNobGlmeVRhZ2dlclRhZ0Zvcm1GaWVsZENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0ZXJpYWxNb2R1bGUsXHJcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxyXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1RlY2hsaWZ5VGFnZ2VyVGFnRm9ybUZpZWxkQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlUYWdnZXJUYWdGb3JtRmllbGRNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,180 @@
1
+ var TechlifyTaggerTagSelectorComponent_1;
2
+ import { __decorate } from "tslib";
3
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
+ import { Component, Input, Inject, Optional, Self } from '@angular/core';
5
+ import { UntypedFormControl } from '@angular/forms';
6
+ import { MatFormFieldControl, MAT_FORM_FIELD } from '@angular/material/form-field';
7
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
8
+ import { Subject } from 'rxjs';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/cdk/a11y";
11
+ import * as i2 from "../core/http.service";
12
+ import * as i3 from "@angular/forms";
13
+ import * as i4 from "@angular/common";
14
+ import * as i5 from "@angular/material/button-toggle";
15
+ import * as i6 from "../searchable-selector/searchable-selector.component";
16
+ import * as i7 from "@angular/material/form-field";
17
+ let TechlifyTaggerTagSelectorComponent = TechlifyTaggerTagSelectorComponent_1 = class TechlifyTaggerTagSelectorComponent {
18
+ constructor(_focusMonitor, _elementRef, httpService, _formField, ngControl) {
19
+ this._focusMonitor = _focusMonitor;
20
+ this._elementRef = _elementRef;
21
+ this.httpService = httpService;
22
+ this._formField = _formField;
23
+ this.ngControl = ngControl;
24
+ /**Pass the Categories to filter for a model */
25
+ this.categories = [];
26
+ this.multiple = false;
27
+ this.enableSearch = true;
28
+ this.tagSelectorCtrl = new UntypedFormControl();
29
+ this.showAllTags = false;
30
+ this.useSelectButtonStyle = false;
31
+ this.tags = [];
32
+ this.stateChanges = new Subject();
33
+ this.focused = false;
34
+ this.controlType = 'techlify-tagger-selector';
35
+ this.id = `techlify-tagger-selector-${TechlifyTaggerTagSelectorComponent_1.nextId++}`;
36
+ this.onChange = (_) => { };
37
+ this.onTouched = () => { };
38
+ this._required = false;
39
+ this._disabled = false;
40
+ //Set Focus Monitor
41
+ _focusMonitor.monitor(_elementRef, true).subscribe(origin => {
42
+ if (this.focused && !origin) {
43
+ this.onTouched();
44
+ }
45
+ this.focused = !!origin;
46
+ this.stateChanges.next();
47
+ });
48
+ if (this.ngControl != null) {
49
+ this.ngControl.valueAccessor = this;
50
+ }
51
+ }
52
+ get apiUrl() {
53
+ if (this.showAllTags) {
54
+ return 'api/techlify-tagger-tags';
55
+ }
56
+ else if (this.categories?.length > 0) {
57
+ return 'api/techlify-tagger-tags?categories=' + this.categories.join(',');
58
+ }
59
+ else {
60
+ return '';
61
+ }
62
+ }
63
+ //Default Getter and Setters for a Form Field Implementation
64
+ get empty() {
65
+ return this.value.length == 0;
66
+ }
67
+ get shouldLabelFloat() {
68
+ return this.focused || !this.empty;
69
+ }
70
+ get required() {
71
+ return this._required;
72
+ }
73
+ set required(value) {
74
+ this._required = coerceBooleanProperty(value);
75
+ this.stateChanges.next();
76
+ }
77
+ get disabled() {
78
+ return this._disabled;
79
+ }
80
+ set disabled(value) {
81
+ this._disabled = coerceBooleanProperty(value);
82
+ this._disabled ? this.tagSelectorCtrl.disable() : this.tagSelectorCtrl.enable();
83
+ this.stateChanges.next();
84
+ }
85
+ get value() {
86
+ return this._value;
87
+ }
88
+ set value(val) {
89
+ this._value = val;
90
+ this.tagSelectorCtrl.setValue(val);
91
+ this.stateChanges.next();
92
+ }
93
+ get errorState() {
94
+ return this.tagSelectorCtrl.dirty && this.required && (this.value.length == 0);
95
+ }
96
+ get placeholder() {
97
+ return this._placeholder;
98
+ }
99
+ set placeholder(value) {
100
+ this._placeholder = value;
101
+ this.stateChanges.next();
102
+ }
103
+ ngOnInit() {
104
+ if (this.useSelectButtonStyle) {
105
+ this.httpService.get(this.apiUrl)
106
+ .pipe(untilDestroyed(this))
107
+ .subscribe((res) => {
108
+ this.tags = res.data;
109
+ });
110
+ }
111
+ }
112
+ selectionChange(value) {
113
+ this.value = value;
114
+ this._handleInput();
115
+ }
116
+ setDescribedByIds(ids) {
117
+ // Just a empty implementation for Mat Form Field Interface
118
+ }
119
+ onContainerClick() {
120
+ // Just a empty implementation for Mat Form Field Interface
121
+ }
122
+ writeValue(val) {
123
+ this.value = val;
124
+ }
125
+ registerOnChange(fn) {
126
+ this.onChange = fn;
127
+ }
128
+ registerOnTouched(fn) {
129
+ this.onTouched = fn;
130
+ }
131
+ setDisabledState(isDisabled) {
132
+ this.disabled = isDisabled;
133
+ }
134
+ _handleInput() {
135
+ this.onChange(this.value);
136
+ }
137
+ ngOnDestroy() {
138
+ this.stateChanges.complete();
139
+ this._focusMonitor.stopMonitoring(this._elementRef);
140
+ }
141
+ };
142
+ TechlifyTaggerTagSelectorComponent.nextId = 0;
143
+ TechlifyTaggerTagSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagSelectorComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: i2.HttpService }, { token: MAT_FORM_FIELD, optional: true }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
144
+ TechlifyTaggerTagSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: TechlifyTaggerTagSelectorComponent, selector: "app-techlify-tagger-tag-selector", inputs: { categories: "categories", multiple: "multiple", enableSearch: "enableSearch", showAllTags: "showAllTags", useSelectButtonStyle: "useSelectButtonStyle", required: "required", disabled: "disabled", value: "value", placeholder: "placeholder" }, providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagSelectorComponent_1 }], ngImport: i0, template: "<app-searchable-selector *ngIf=\"apiUrl && !useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [apiUrl]=\"apiUrl\"\r\n [enableSearch]=\"enableSearch\" [multiple]=\"multiple\" (selectionChange)=\"selectionChange($event)\">\r\n</app-searchable-selector>\r\n\r\n<mat-button-toggle-group *ngIf=\"apiUrl && useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [multiple]=\"multiple\"\r\n (change)=\"selectionChange($event.value)\">\r\n <mat-button-toggle *ngFor=\"let tag of tags\" [value]=\"tag.id\">{{tag.title}}</mat-button-toggle>\r\n</mat-button-toggle-group>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i5.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.SearchableSelectorComponent, selector: "app-searchable-selector", inputs: ["valueField", "titleField", "apiUrl", "multiple", "selectedValue", "enableSearch", "add", "addConfig", "edit", "editConfig", "sort", "sortBy", "searchField", "itemComponent", "items", "apiDataProperty", "cache", "perPage", "inDataSearch", "required", "disabled", "value"], outputs: ["selectedValueChange", "selectionChange", "itemsChange"] }] });
145
+ TechlifyTaggerTagSelectorComponent = TechlifyTaggerTagSelectorComponent_1 = __decorate([
146
+ UntilDestroy()
147
+ ], TechlifyTaggerTagSelectorComponent);
148
+ export { TechlifyTaggerTagSelectorComponent };
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: TechlifyTaggerTagSelectorComponent, decorators: [{
150
+ type: Component,
151
+ args: [{ selector: 'app-techlify-tagger-tag-selector', providers: [{ provide: MatFormFieldControl, useExisting: TechlifyTaggerTagSelectorComponent }], template: "<app-searchable-selector *ngIf=\"apiUrl && !useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [apiUrl]=\"apiUrl\"\r\n [enableSearch]=\"enableSearch\" [multiple]=\"multiple\" (selectionChange)=\"selectionChange($event)\">\r\n</app-searchable-selector>\r\n\r\n<mat-button-toggle-group *ngIf=\"apiUrl && useSelectButtonStyle\" [formControl]=\"tagSelectorCtrl\" [multiple]=\"multiple\"\r\n (change)=\"selectionChange($event.value)\">\r\n <mat-button-toggle *ngFor=\"let tag of tags\" [value]=\"tag.id\">{{tag.title}}</mat-button-toggle>\r\n</mat-button-toggle-group>" }]
152
+ }], ctorParameters: function () { return [{ type: i1.FocusMonitor }, { type: i0.ElementRef }, { type: i2.HttpService }, { type: i7.MatFormField, decorators: [{
153
+ type: Optional
154
+ }, {
155
+ type: Inject,
156
+ args: [MAT_FORM_FIELD]
157
+ }] }, { type: i3.NgControl, decorators: [{
158
+ type: Optional
159
+ }, {
160
+ type: Self
161
+ }] }]; }, propDecorators: { categories: [{
162
+ type: Input
163
+ }], multiple: [{
164
+ type: Input
165
+ }], enableSearch: [{
166
+ type: Input
167
+ }], showAllTags: [{
168
+ type: Input
169
+ }], useSelectButtonStyle: [{
170
+ type: Input
171
+ }], required: [{
172
+ type: Input
173
+ }], disabled: [{
174
+ type: Input
175
+ }], value: [{
176
+ type: Input
177
+ }], placeholder: [{
178
+ type: Input
179
+ }] } });
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IvdGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IvdGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFzQixLQUFLLEVBQWEsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUF3QixrQkFBa0IsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7SUFXbEIsa0NBQWtDLGdEQUFsQyxrQ0FBa0M7SUF5RzdDLFlBQ1UsYUFBMkIsRUFDM0IsV0FBb0MsRUFDcEMsV0FBd0IsRUFDVyxVQUF3QixFQUN4QyxTQUFvQjtRQUp2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDVyxlQUFVLEdBQVYsVUFBVSxDQUFjO1FBQ3hDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUE1R2pELCtDQUErQztRQUN0QyxlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBWSxJQUFJLENBQUM7UUFDdEMsb0JBQWUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBRS9DLFNBQUksR0FBVSxFQUFFLENBQUM7UUFHakIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ25DLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsZ0JBQVcsR0FBRywwQkFBMEIsQ0FBQztRQUN6QyxPQUFFLEdBQUcsNEJBQTRCLG9DQUFrQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFFL0UsYUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0IsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQStCZCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBV2xCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFtRHhCLG1CQUFtQjtRQUNuQixhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDMUQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUMzQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDbEI7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQXZHRCxJQUFJLE1BQU07UUFDUixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsT0FBTywwQkFBMEIsQ0FBQTtTQUNsQzthQUNJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sc0NBQXNDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0U7YUFDSTtZQUNILE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDO0lBRUQsNERBQTREO0lBQzVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFHRCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUtELElBQ0ksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsR0FBUTtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUlELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2lCQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMxQixTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFBO1NBQ0w7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUF1QkQsaUJBQWlCLENBQUMsR0FBYTtRQUM3QiwyREFBMkQ7SUFDN0QsQ0FBQztJQUVELGdCQUFnQjtRQUNkLDJEQUEyRDtJQUM3RCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUtELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBRUYsQ0FBQTtBQXRKUSx5Q0FBTSxHQUFHLENBQUMsQ0FBQzsrSEFaUCxrQ0FBa0MsbUdBNkd2QixjQUFjO21IQTdHekIsa0NBQWtDLHVUQUZsQyxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxvQ0FBa0MsRUFBRSxDQUFDLDBCQ2ZoRyxva0JBTzBCO0FEVWIsa0NBQWtDO0lBUDlDLFlBQVksRUFBRTtHQU9GLGtDQUFrQyxDQWtLOUM7U0FsS1ksa0NBQWtDOzJGQUFsQyxrQ0FBa0M7a0JBTjlDLFNBQVM7K0JBQ0Usa0NBQWtDLGFBR2pDLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxvQ0FBb0MsRUFBRSxDQUFDOzswQkErRzNGLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsY0FBYzs7MEJBQ2pDLFFBQVE7OzBCQUFJLElBQUk7NENBM0dWLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQW1DRixRQUFRO3NCQURYLEtBQUs7Z0JBV0YsUUFBUTtzQkFEWCxLQUFLO2dCQWNGLEtBQUs7c0JBRFIsS0FBSztnQkFlRixXQUFXO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIElucHV0LCBPbkRlc3Ryb3ksIEluamVjdCwgT3B0aW9uYWwsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFVudHlwZWRGb3JtQ29udHJvbCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdEZvcm1GaWVsZENvbnRyb2wsIE1BVF9GT1JNX0ZJRUxEIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h0dHAuc2VydmljZSc7XHJcblxyXG5AVW50aWxEZXN0cm95KClcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGVjaGxpZnktdGFnZ2VyLXRhZy1zZWxlY3RvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RlY2hsaWZ5LXRhZ2dlci10YWctc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBUZWNobGlmeVRhZ2dlclRhZ1NlbGVjdG9yQ29tcG9uZW50IH1dLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVjaGxpZnlUYWdnZXJUYWdTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PiwgT25EZXN0cm95IHtcclxuXHJcbiAgLyoqUGFzcyB0aGUgQ2F0ZWdvcmllcyB0byBmaWx0ZXIgZm9yIGEgbW9kZWwgKi9cclxuICBASW5wdXQoKSBjYXRlZ29yaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZW5hYmxlU2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcclxuICB0YWdTZWxlY3RvckN0cmwgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgQElucHV0KCkgc2hvd0FsbFRhZ3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB1c2VTZWxlY3RCdXR0b25TdHlsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICB0YWdzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBzdGF0aWMgbmV4dElkID0gMDtcclxuICBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGZvY3VzZWQgPSBmYWxzZTtcclxuICBjb250cm9sVHlwZSA9ICd0ZWNobGlmeS10YWdnZXItc2VsZWN0b3InO1xyXG4gIGlkID0gYHRlY2hsaWZ5LXRhZ2dlci1zZWxlY3Rvci0ke1RlY2hsaWZ5VGFnZ2VyVGFnU2VsZWN0b3JDb21wb25lbnQubmV4dElkKyt9YDtcclxuXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG5cclxuICBnZXQgYXBpVXJsKCkge1xyXG4gICAgaWYgKHRoaXMuc2hvd0FsbFRhZ3MpIHtcclxuICAgICAgcmV0dXJuICdhcGkvdGVjaGxpZnktdGFnZ2VyLXRhZ3MnXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLmNhdGVnb3JpZXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuICdhcGkvdGVjaGxpZnktdGFnZ2VyLXRhZ3M/Y2F0ZWdvcmllcz0nICsgdGhpcy5jYXRlZ29yaWVzLmpvaW4oJywnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL0RlZmF1bHQgR2V0dGVyIGFuZCBTZXR0ZXJzIGZvciBhIEZvcm0gRmllbGQgSW1wbGVtZW50YXRpb25cclxuICBnZXQgZW1wdHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGggPT0gMDtcclxuICB9XHJcblxyXG4gIGdldCBzaG91bGRMYWJlbEZsb2F0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgfVxyXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPyB0aGlzLnRhZ1NlbGVjdG9yQ3RybC5kaXNhYmxlKCkgOiB0aGlzLnRhZ1NlbGVjdG9yQ3RybC5lbmFibGUoKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcblxyXG4gIHByaXZhdGUgX3ZhbHVlOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbiAgc2V0IHZhbHVlKHZhbDogYW55KSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcclxuICAgIHRoaXMudGFnU2VsZWN0b3JDdHJsLnNldFZhbHVlKHZhbCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZXJyb3JTdGF0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRhZ1NlbGVjdG9yQ3RybC5kaXJ0eSAmJiB0aGlzLnJlcXVpcmVkICYmICh0aGlzLnZhbHVlLmxlbmd0aCA9PSAwKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy51c2VTZWxlY3RCdXR0b25TdHlsZSkge1xyXG4gICAgICB0aGlzLmh0dHBTZXJ2aWNlLmdldCh0aGlzLmFwaVVybClcclxuICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWdzID0gcmVzLmRhdGE7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdGlvbkNoYW5nZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLl9oYW5kbGVJbnB1dCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSBodHRwU2VydmljZTogSHR0cFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9GT1JNX0ZJRUxEKSBwdWJsaWMgX2Zvcm1GaWVsZDogTWF0Rm9ybUZpZWxkLFxyXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wpIHtcclxuXHJcbiAgICAvL1NldCBGb2N1cyBNb25pdG9yXHJcbiAgICBfZm9jdXNNb25pdG9yLm1vbml0b3IoX2VsZW1lbnRSZWYsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xyXG4gICAgICBpZiAodGhpcy5mb2N1c2VkICYmICFvcmlnaW4pIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcclxuICAgIC8vIEp1c3QgYSBlbXB0eSBpbXBsZW1lbnRhdGlvbiBmb3IgTWF0IEZvcm0gRmllbGQgSW50ZXJmYWNlXHJcbiAgfVxyXG5cclxuICBvbkNvbnRhaW5lckNsaWNrKCkge1xyXG4gICAgLy8gSnVzdCBhIGVtcHR5IGltcGxlbWVudGF0aW9uIGZvciBNYXQgRm9ybSBGaWVsZCBJbnRlcmZhY2VcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWw7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgX2hhbmRsZUlucHV0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXF1aXJlZDogQm9vbGVhbklucHV0O1xyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YXBwLXNlYXJjaGFibGUtc2VsZWN0b3IgKm5nSWY9XCJhcGlVcmwgJiYgIXVzZVNlbGVjdEJ1dHRvblN0eWxlXCIgW2Zvcm1Db250cm9sXT1cInRhZ1NlbGVjdG9yQ3RybFwiIFthcGlVcmxdPVwiYXBpVXJsXCJcclxuICAgIFtlbmFibGVTZWFyY2hdPVwiZW5hYmxlU2VhcmNoXCIgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiPlxyXG48L2FwcC1zZWFyY2hhYmxlLXNlbGVjdG9yPlxyXG5cclxuPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwICpuZ0lmPVwiYXBpVXJsICYmIHVzZVNlbGVjdEJ1dHRvblN0eWxlXCIgW2Zvcm1Db250cm9sXT1cInRhZ1NlbGVjdG9yQ3RybFwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXHJcbiAgICAoY2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZSgkZXZlbnQudmFsdWUpXCI+XHJcbiAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKm5nRm9yPVwibGV0IHRhZyBvZiB0YWdzXCIgW3ZhbHVlXT1cInRhZy5pZFwiPnt7dGFnLnRpdGxlfX08L21hdC1idXR0b24tdG9nZ2xlPlxyXG48L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPiJdfQ==