@agorapulse/ui-components 0.0.3 → 1.0.0-SNAPSHOT-YOUTUBE.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/add-comment/add-comment.component.d.ts +21 -0
  2. package/add-comment/index.d.ts +5 -0
  3. package/add-comment/public_api.d.ts +1 -0
  4. package/autocomplete/autocomplete.component.d.ts +40 -0
  5. package/autocomplete/index.d.ts +5 -0
  6. package/autocomplete/public_api.d.ts +1 -0
  7. package/avatar/avatar.component.d.ts +48 -0
  8. package/avatar/index.d.ts +5 -0
  9. package/avatar/public_api.d.ts +1 -0
  10. package/badge/badge.component.d.ts +7 -0
  11. package/badge/index.d.ts +5 -0
  12. package/badge/public_api.d.ts +1 -0
  13. package/button/button.component.d.ts +49 -0
  14. package/button/index.d.ts +5 -0
  15. package/button/public_api.d.ts +1 -0
  16. package/checkbox/checkbox.component.d.ts +51 -0
  17. package/checkbox/index.d.ts +5 -0
  18. package/checkbox/public_api.d.ts +1 -0
  19. package/confirm-modal/confirm-modal.component.d.ts +20 -0
  20. package/confirm-modal/index.d.ts +5 -0
  21. package/confirm-modal/public_api.d.ts +2 -0
  22. package/counter/counter.component.d.ts +17 -0
  23. package/counter/index.d.ts +5 -0
  24. package/counter/public_api.d.ts +1 -0
  25. package/datepicker/datepicker.component.d.ts +84 -0
  26. package/datepicker/index.d.ts +5 -0
  27. package/datepicker/public_api.d.ts +1 -0
  28. package/{src/lib/directives → directives}/autosize-textarea.directive.d.ts +3 -0
  29. package/directives/base-button.directive.d.ts +13 -0
  30. package/directives/default-image.directive.d.ts +8 -0
  31. package/{src/lib/directives → directives}/ellipsis.directive.d.ts +3 -1
  32. package/directives/equal-validator.directive.d.ts +13 -0
  33. package/{src/lib/directives → directives}/frozen-gif.directive.d.ts +6 -3
  34. package/directives/index.d.ts +5 -0
  35. package/directives/multi-style-text.directive.d.ts +16 -0
  36. package/directives/public_api.d.ts +7 -0
  37. package/dot-stepper/dot-stepper.component.d.ts +20 -0
  38. package/dot-stepper/index.d.ts +5 -0
  39. package/dot-stepper/public_api.d.ts +1 -0
  40. package/esm2022/add-comment/add-comment.component.mjs +72 -0
  41. package/esm2022/add-comment/agorapulse-ui-components-add-comment.mjs +5 -0
  42. package/esm2022/add-comment/public_api.mjs +2 -0
  43. package/esm2022/agorapulse-ui-components.mjs +5 -0
  44. package/esm2022/autocomplete/agorapulse-ui-components-autocomplete.mjs +5 -0
  45. package/esm2022/autocomplete/autocomplete.component.mjs +127 -0
  46. package/esm2022/autocomplete/public_api.mjs +2 -0
  47. package/esm2022/avatar/agorapulse-ui-components-avatar.mjs +5 -0
  48. package/esm2022/avatar/avatar.component.mjs +228 -0
  49. package/esm2022/avatar/public_api.mjs +2 -0
  50. package/esm2022/badge/agorapulse-ui-components-badge.mjs +5 -0
  51. package/esm2022/badge/badge.component.mjs +17 -0
  52. package/esm2022/badge/public_api.mjs +2 -0
  53. package/esm2022/button/agorapulse-ui-components-button.mjs +5 -0
  54. package/esm2022/button/button.component.mjs +111 -0
  55. package/esm2022/button/public_api.mjs +2 -0
  56. package/esm2022/checkbox/agorapulse-ui-components-checkbox.mjs +5 -0
  57. package/esm2022/checkbox/checkbox.component.mjs +177 -0
  58. package/esm2022/checkbox/public_api.mjs +2 -0
  59. package/esm2022/confirm-modal/agorapulse-ui-components-confirm-modal.mjs +5 -0
  60. package/esm2022/confirm-modal/confirm-modal-texts.model.mjs +2 -0
  61. package/esm2022/confirm-modal/confirm-modal.component.mjs +61 -0
  62. package/esm2022/confirm-modal/public_api.mjs +3 -0
  63. package/esm2022/counter/agorapulse-ui-components-counter.mjs +5 -0
  64. package/esm2022/counter/counter.component.mjs +59 -0
  65. package/esm2022/counter/public_api.mjs +2 -0
  66. package/esm2022/datepicker/agorapulse-ui-components-datepicker.mjs +5 -0
  67. package/esm2022/datepicker/datepicker.component.mjs +270 -0
  68. package/esm2022/datepicker/public_api.mjs +2 -0
  69. package/esm2022/directives/agorapulse-ui-components-directives.mjs +5 -0
  70. package/esm2022/directives/autosize-textarea.directive.mjs +45 -0
  71. package/esm2022/directives/base-button.directive.mjs +47 -0
  72. package/esm2022/directives/default-image.directive.mjs +37 -0
  73. package/esm2022/directives/ellipsis.directive.mjs +90 -0
  74. package/esm2022/directives/equal-validator.directive.mjs +73 -0
  75. package/esm2022/directives/frozen-gif.directive.mjs +125 -0
  76. package/esm2022/directives/multi-style-text.directive.mjs +61 -0
  77. package/esm2022/directives/public_api.mjs +8 -0
  78. package/esm2022/dot-stepper/agorapulse-ui-components-dot-stepper.mjs +5 -0
  79. package/esm2022/dot-stepper/dot-stepper.component.mjs +46 -0
  80. package/esm2022/dot-stepper/public_api.mjs +2 -0
  81. package/esm2022/form-field/agorapulse-ui-components-form-field.mjs +5 -0
  82. package/esm2022/form-field/form-field.component.mjs +11 -0
  83. package/esm2022/form-field/public_api.mjs +2 -0
  84. package/esm2022/form-message/agorapulse-ui-components-form-message.mjs +5 -0
  85. package/esm2022/form-message/form-message.component.mjs +34 -0
  86. package/esm2022/form-message/public_api.mjs +2 -0
  87. package/esm2022/icon-button/agorapulse-ui-components-icon-button.mjs +5 -0
  88. package/esm2022/icon-button/icon-button.component.mjs +124 -0
  89. package/esm2022/icon-button/public_api.mjs +2 -0
  90. package/esm2022/index.mjs +48 -0
  91. package/esm2022/infobox/agorapulse-ui-components-infobox.mjs +5 -0
  92. package/esm2022/infobox/infobox.component.mjs +78 -0
  93. package/esm2022/infobox/public_api.mjs +2 -0
  94. package/esm2022/input/agorapulse-ui-components-input.mjs +5 -0
  95. package/esm2022/input/input.directive.mjs +19 -0
  96. package/esm2022/input/public_api.mjs +2 -0
  97. package/esm2022/input-group/agorapulse-ui-components-input-group.mjs +5 -0
  98. package/esm2022/input-group/input-group.component.mjs +14 -0
  99. package/esm2022/input-group/input-prefix/input-prefix.component.mjs +11 -0
  100. package/esm2022/input-group/public_api.mjs +3 -0
  101. package/esm2022/input-search/agorapulse-ui-components-input-search.mjs +5 -0
  102. package/esm2022/input-search/input-search.component.mjs +77 -0
  103. package/esm2022/input-search/public_api.mjs +2 -0
  104. package/esm2022/labels/agorapulse-ui-components-labels.mjs +5 -0
  105. package/esm2022/labels/label-list.component.mjs +108 -0
  106. package/esm2022/labels/label.component.mjs +56 -0
  107. package/esm2022/labels/public_api.mjs +3 -0
  108. package/esm2022/labels-selector/agorapulse-ui-components-labels-selector.mjs +5 -0
  109. package/esm2022/labels-selector/labels-selector.component.mjs +122 -0
  110. package/esm2022/labels-selector/public_api.mjs +2 -0
  111. package/esm2022/legacy/input/agorapulse-ui-components-legacy-input.mjs +5 -0
  112. package/esm2022/legacy/input/input.component.mjs +189 -0
  113. package/esm2022/legacy/input/public_api.mjs +2 -0
  114. package/esm2022/legacy/select/agorapulse-ui-components-legacy-select.mjs +5 -0
  115. package/esm2022/legacy/select/public_api.mjs +2 -0
  116. package/esm2022/legacy/select/select.component.mjs +451 -0
  117. package/esm2022/legacy/textarea/agorapulse-ui-components-legacy-textarea.mjs +5 -0
  118. package/esm2022/legacy/textarea/public_api.mjs +2 -0
  119. package/esm2022/legacy/textarea/textarea.component.mjs +154 -0
  120. package/esm2022/media-display-overlay/agorapulse-ui-components-media-display-overlay.mjs +5 -0
  121. package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +122 -0
  122. package/esm2022/media-display-overlay/public_api.mjs +2 -0
  123. package/esm2022/modal/agorapulse-ui-components-modal.mjs +5 -0
  124. package/esm2022/modal/modal.component.mjs +116 -0
  125. package/esm2022/modal/public_api.mjs +2 -0
  126. package/esm2022/neo-datepicker/agorapulse-ui-components-neo-datepicker.mjs +5 -0
  127. package/esm2022/neo-datepicker/day-detail.model.mjs +2 -0
  128. package/esm2022/neo-datepicker/day-disabled.pipe.mjs +21 -0
  129. package/esm2022/neo-datepicker/neo-datepicker.component.mjs +241 -0
  130. package/esm2022/neo-datepicker/public_api.mjs +4 -0
  131. package/esm2022/notification/agorapulse-ui-components-notification.mjs +5 -0
  132. package/esm2022/notification/notification.component.mjs +15 -0
  133. package/esm2022/notification/public_api.mjs +2 -0
  134. package/esm2022/paginator/agorapulse-ui-components-paginator.mjs +5 -0
  135. package/esm2022/paginator/paginator-button/paginator-button.component.mjs +51 -0
  136. package/esm2022/paginator/paginator.component.mjs +116 -0
  137. package/esm2022/paginator/public_api.mjs +3 -0
  138. package/esm2022/password-input/agorapulse-ui-components-password-input.mjs +5 -0
  139. package/esm2022/password-input/password-input.component.mjs +78 -0
  140. package/esm2022/password-input/public_api.mjs +2 -0
  141. package/esm2022/phone-number-input/agorapulse-ui-components-phone-number-input.mjs +5 -0
  142. package/esm2022/phone-number-input/phone-number-input.component.mjs +181 -0
  143. package/esm2022/phone-number-input/public_api.mjs +2 -0
  144. package/esm2022/popmenu/agorapulse-ui-components-popmenu.mjs +5 -0
  145. package/esm2022/popmenu/options.mjs +17 -0
  146. package/esm2022/popmenu/popmenu-options.interface.mjs +2 -0
  147. package/esm2022/popmenu/popmenu-options.service.mjs +7 -0
  148. package/esm2022/popmenu/popmenu.component.mjs +383 -0
  149. package/esm2022/popmenu/popmenu.directive.mjs +292 -0
  150. package/esm2022/popmenu/popmenu.module.mjs +29 -0
  151. package/esm2022/popmenu/public_api.mjs +5 -0
  152. package/esm2022/radio/agorapulse-ui-components-radio.mjs +5 -0
  153. package/esm2022/radio/public_api.mjs +2 -0
  154. package/esm2022/radio/radio.component.mjs +320 -0
  155. package/esm2022/range-slider/agorapulse-ui-components-range-slider.mjs +5 -0
  156. package/esm2022/range-slider/public_api.mjs +2 -0
  157. package/esm2022/range-slider/range-slider.component.mjs +155 -0
  158. package/esm2022/select/agorapulse-ui-components-select.mjs +5 -0
  159. package/esm2022/select/ap-select.module.mjs +78 -0
  160. package/esm2022/select/dropdown-group-item/dropdown-group-item.component.mjs +51 -0
  161. package/esm2022/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.mjs +75 -0
  162. package/esm2022/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.mjs +79 -0
  163. package/esm2022/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.mjs +59 -0
  164. package/esm2022/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.mjs +60 -0
  165. package/esm2022/select/dropdown-search-form/dropdown-search-form.component.mjs +104 -0
  166. package/esm2022/select/public_api.mjs +13 -0
  167. package/esm2022/select/select-base.directive.mjs +69 -0
  168. package/esm2022/select/select-label-multiple/select-label-multiple.component.mjs +95 -0
  169. package/esm2022/select/select-label-single/select-label-single.component.mjs +33 -0
  170. package/esm2022/select/select-multiple.directive.mjs +35 -0
  171. package/esm2022/select/select-single.directive.mjs +34 -0
  172. package/esm2022/slide-toggle/agorapulse-ui-components-slide-toggle.mjs +5 -0
  173. package/esm2022/slide-toggle/public_api.mjs +2 -0
  174. package/esm2022/slide-toggle/slide-toggle.component.mjs +66 -0
  175. package/esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs +5 -0
  176. package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +92 -0
  177. package/esm2022/snackbars-thread/model/snackbars-thread.model.mjs +44 -0
  178. package/esm2022/snackbars-thread/public_api.mjs +4 -0
  179. package/esm2022/snackbars-thread/service/snackbars-thread.service.mjs +47 -0
  180. package/esm2022/snackbars-thread/utils/const/snackbars-thread.const.mjs +13 -0
  181. package/esm2022/social-button/agorapulse-ui-components-social-button.mjs +5 -0
  182. package/esm2022/social-button/public_api.mjs +2 -0
  183. package/esm2022/social-button/social-button.component.mjs +152 -0
  184. package/esm2022/split-button/agorapulse-ui-components-split-button.mjs +5 -0
  185. package/esm2022/split-button/public_api.mjs +2 -0
  186. package/esm2022/split-button/split-button.component.mjs +128 -0
  187. package/esm2022/src/lib/agorapulse-ui-components.module.mjs +200 -0
  188. package/esm2022/status/agorapulse-ui-components-status.mjs +5 -0
  189. package/esm2022/status/public_api.mjs +2 -0
  190. package/esm2022/status/status.component.mjs +21 -0
  191. package/esm2022/status-card/agorapulse-ui-components-status-card.mjs +5 -0
  192. package/esm2022/status-card/public_api.mjs +2 -0
  193. package/esm2022/status-card/status-card.component.mjs +24 -0
  194. package/esm2022/stepper/agorapulse-ui-components-stepper.mjs +5 -0
  195. package/esm2022/stepper/public_api.mjs +3 -0
  196. package/esm2022/stepper/step.model.mjs +2 -0
  197. package/esm2022/stepper/stepper.component.mjs +38 -0
  198. package/esm2022/tag/agorapulse-ui-components-tag.mjs +5 -0
  199. package/esm2022/tag/public_api.mjs +2 -0
  200. package/esm2022/tag/tag.component.mjs +35 -0
  201. package/esm2022/text-measurement/agorapulse-ui-components-text-measurement.mjs +5 -0
  202. package/esm2022/text-measurement/public_api.mjs +2 -0
  203. package/esm2022/text-measurement/text-measurement.service.mjs +29 -0
  204. package/esm2022/textarea/agorapulse-ui-components-textarea.mjs +5 -0
  205. package/esm2022/textarea/public_api.mjs +2 -0
  206. package/esm2022/textarea/textarea.directive.mjs +37 -0
  207. package/esm2022/toggle/agorapulse-ui-components-toggle.mjs +5 -0
  208. package/esm2022/toggle/public_api.mjs +2 -0
  209. package/esm2022/toggle/toggle.component.mjs +208 -0
  210. package/esm2022/tooltip/agorapulse-ui-components-tooltip.mjs +5 -0
  211. package/esm2022/tooltip/public_api.mjs +2 -0
  212. package/esm2022/tooltip/tooltip.directive.mjs +401 -0
  213. package/esm2022/tooltip/tooltip.service.mjs +29 -0
  214. package/fesm2022/agorapulse-ui-components-add-comment.mjs +79 -0
  215. package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -0
  216. package/fesm2022/agorapulse-ui-components-autocomplete.mjs +134 -0
  217. package/fesm2022/agorapulse-ui-components-autocomplete.mjs.map +1 -0
  218. package/fesm2022/agorapulse-ui-components-avatar.mjs +235 -0
  219. package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -0
  220. package/fesm2022/agorapulse-ui-components-badge.mjs +24 -0
  221. package/fesm2022/agorapulse-ui-components-badge.mjs.map +1 -0
  222. package/fesm2022/agorapulse-ui-components-button.mjs +118 -0
  223. package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -0
  224. package/fesm2022/agorapulse-ui-components-checkbox.mjs +184 -0
  225. package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -0
  226. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs +68 -0
  227. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs.map +1 -0
  228. package/fesm2022/agorapulse-ui-components-counter.mjs +66 -0
  229. package/fesm2022/agorapulse-ui-components-counter.mjs.map +1 -0
  230. package/fesm2022/agorapulse-ui-components-datepicker.mjs +277 -0
  231. package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -0
  232. package/fesm2022/agorapulse-ui-components-directives.mjs +473 -0
  233. package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -0
  234. package/fesm2022/agorapulse-ui-components-dot-stepper.mjs +53 -0
  235. package/fesm2022/agorapulse-ui-components-dot-stepper.mjs.map +1 -0
  236. package/fesm2022/agorapulse-ui-components-form-field.mjs +18 -0
  237. package/fesm2022/agorapulse-ui-components-form-field.mjs.map +1 -0
  238. package/fesm2022/agorapulse-ui-components-form-message.mjs +41 -0
  239. package/fesm2022/agorapulse-ui-components-form-message.mjs.map +1 -0
  240. package/fesm2022/agorapulse-ui-components-icon-button.mjs +131 -0
  241. package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -0
  242. package/fesm2022/agorapulse-ui-components-infobox.mjs +85 -0
  243. package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -0
  244. package/fesm2022/agorapulse-ui-components-input-group.mjs +30 -0
  245. package/fesm2022/agorapulse-ui-components-input-group.mjs.map +1 -0
  246. package/fesm2022/agorapulse-ui-components-input-search.mjs +84 -0
  247. package/fesm2022/agorapulse-ui-components-input-search.mjs.map +1 -0
  248. package/fesm2022/agorapulse-ui-components-input.mjs +26 -0
  249. package/fesm2022/agorapulse-ui-components-input.mjs.map +1 -0
  250. package/fesm2022/agorapulse-ui-components-labels-selector.mjs +129 -0
  251. package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -0
  252. package/fesm2022/agorapulse-ui-components-labels.mjs +168 -0
  253. package/fesm2022/agorapulse-ui-components-labels.mjs.map +1 -0
  254. package/fesm2022/agorapulse-ui-components-legacy-input.mjs +196 -0
  255. package/fesm2022/agorapulse-ui-components-legacy-input.mjs.map +1 -0
  256. package/fesm2022/agorapulse-ui-components-legacy-select.mjs +458 -0
  257. package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -0
  258. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs +161 -0
  259. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs.map +1 -0
  260. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +129 -0
  261. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -0
  262. package/fesm2022/agorapulse-ui-components-modal.mjs +123 -0
  263. package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -0
  264. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +266 -0
  265. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -0
  266. package/fesm2022/agorapulse-ui-components-notification.mjs +22 -0
  267. package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -0
  268. package/fesm2022/agorapulse-ui-components-paginator.mjs +171 -0
  269. package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -0
  270. package/fesm2022/agorapulse-ui-components-password-input.mjs +85 -0
  271. package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -0
  272. package/fesm2022/agorapulse-ui-components-phone-number-input.mjs +188 -0
  273. package/fesm2022/agorapulse-ui-components-phone-number-input.mjs.map +1 -0
  274. package/fesm2022/agorapulse-ui-components-popmenu.mjs +724 -0
  275. package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -0
  276. package/fesm2022/agorapulse-ui-components-radio.mjs +327 -0
  277. package/fesm2022/agorapulse-ui-components-radio.mjs.map +1 -0
  278. package/fesm2022/agorapulse-ui-components-range-slider.mjs +162 -0
  279. package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -0
  280. package/fesm2022/agorapulse-ui-components-select.mjs +717 -0
  281. package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -0
  282. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +73 -0
  283. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -0
  284. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +199 -0
  285. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -0
  286. package/fesm2022/agorapulse-ui-components-social-button.mjs +158 -0
  287. package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -0
  288. package/fesm2022/agorapulse-ui-components-split-button.mjs +135 -0
  289. package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -0
  290. package/fesm2022/agorapulse-ui-components-status-card.mjs +31 -0
  291. package/fesm2022/agorapulse-ui-components-status-card.mjs.map +1 -0
  292. package/fesm2022/agorapulse-ui-components-status.mjs +28 -0
  293. package/fesm2022/agorapulse-ui-components-status.mjs.map +1 -0
  294. package/fesm2022/agorapulse-ui-components-stepper.mjs +45 -0
  295. package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -0
  296. package/fesm2022/agorapulse-ui-components-tag.mjs +42 -0
  297. package/fesm2022/agorapulse-ui-components-tag.mjs.map +1 -0
  298. package/fesm2022/agorapulse-ui-components-text-measurement.mjs +36 -0
  299. package/fesm2022/agorapulse-ui-components-text-measurement.mjs.map +1 -0
  300. package/fesm2022/agorapulse-ui-components-textarea.mjs +44 -0
  301. package/fesm2022/agorapulse-ui-components-textarea.mjs.map +1 -0
  302. package/fesm2022/agorapulse-ui-components-toggle.mjs +215 -0
  303. package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -0
  304. package/fesm2022/agorapulse-ui-components-tooltip.mjs +434 -0
  305. package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -0
  306. package/fesm2022/agorapulse-ui-components.mjs +247 -0
  307. package/fesm2022/agorapulse-ui-components.mjs.map +1 -0
  308. package/form-field/form-field.component.d.ts +5 -0
  309. package/form-field/index.d.ts +5 -0
  310. package/form-field/public_api.d.ts +1 -0
  311. package/form-message/form-message.component.d.ts +12 -0
  312. package/form-message/index.d.ts +5 -0
  313. package/form-message/public_api.d.ts +1 -0
  314. package/icon-button/icon-button.component.d.ts +39 -0
  315. package/icon-button/index.d.ts +5 -0
  316. package/icon-button/public_api.d.ts +1 -0
  317. package/index.d.ts +41 -53
  318. package/infobox/index.d.ts +5 -0
  319. package/infobox/infobox.component.d.ts +32 -0
  320. package/infobox/public_api.d.ts +1 -0
  321. package/input/index.d.ts +5 -0
  322. package/input/input.directive.d.ts +7 -0
  323. package/input/public_api.d.ts +1 -0
  324. package/input-group/index.d.ts +5 -0
  325. package/input-group/input-group.component.d.ts +6 -0
  326. package/input-group/input-prefix/input-prefix.component.d.ts +5 -0
  327. package/input-group/public_api.d.ts +2 -0
  328. package/input-search/index.d.ts +5 -0
  329. package/input-search/input-search.component.d.ts +32 -0
  330. package/input-search/public_api.d.ts +1 -0
  331. package/labels/index.d.ts +5 -0
  332. package/labels/label-list.component.d.ts +34 -0
  333. package/labels/label.component.d.ts +23 -0
  334. package/labels/public_api.d.ts +2 -0
  335. package/labels-selector/index.d.ts +5 -0
  336. package/labels-selector/labels-selector.component.d.ts +42 -0
  337. package/labels-selector/public_api.d.ts +1 -0
  338. package/legacy/input/index.d.ts +5 -0
  339. package/legacy/input/input.component.d.ts +64 -0
  340. package/legacy/input/public_api.d.ts +1 -0
  341. package/legacy/select/index.d.ts +5 -0
  342. package/legacy/select/public_api.d.ts +1 -0
  343. package/legacy/select/select.component.d.ts +122 -0
  344. package/legacy/textarea/index.d.ts +5 -0
  345. package/legacy/textarea/public_api.d.ts +1 -0
  346. package/legacy/textarea/textarea.component.d.ts +53 -0
  347. package/media-display-overlay/index.d.ts +5 -0
  348. package/media-display-overlay/media-display-overlay-dialog.component.d.ts +42 -0
  349. package/media-display-overlay/public_api.d.ts +1 -0
  350. package/modal/index.d.ts +5 -0
  351. package/modal/modal.component.d.ts +54 -0
  352. package/modal/public_api.d.ts +1 -0
  353. package/neo-datepicker/day-detail.model.d.ts +9 -0
  354. package/neo-datepicker/day-disabled.pipe.d.ts +8 -0
  355. package/neo-datepicker/index.d.ts +5 -0
  356. package/neo-datepicker/neo-datepicker.component.d.ts +61 -0
  357. package/neo-datepicker/public_api.d.ts +3 -0
  358. package/notification/index.d.ts +5 -0
  359. package/notification/notification.component.d.ts +6 -0
  360. package/notification/public_api.d.ts +1 -0
  361. package/package.json +303 -20
  362. package/paginator/index.d.ts +5 -0
  363. package/paginator/paginator-button/paginator-button.component.d.ts +17 -0
  364. package/paginator/paginator.component.d.ts +38 -0
  365. package/paginator/public_api.d.ts +2 -0
  366. package/password-input/index.d.ts +5 -0
  367. package/password-input/password-input.component.d.ts +33 -0
  368. package/password-input/public_api.d.ts +1 -0
  369. package/phone-number-input/index.d.ts +5 -0
  370. package/phone-number-input/phone-number-input.component.d.ts +48 -0
  371. package/phone-number-input/public_api.d.ts +1 -0
  372. package/popmenu/index.d.ts +5 -0
  373. package/{src/lib/popmenu → popmenu}/options.d.ts +1 -0
  374. package/popmenu/popmenu-options.interface.d.ts +48 -0
  375. package/{src/lib/popmenu → popmenu}/popmenu.component.d.ts +17 -9
  376. package/popmenu/popmenu.directive.d.ts +84 -0
  377. package/popmenu/popmenu.module.d.ts +11 -0
  378. package/popmenu/public_api.d.ts +4 -0
  379. package/radio/index.d.ts +5 -0
  380. package/radio/public_api.d.ts +1 -0
  381. package/radio/radio.component.d.ts +77 -0
  382. package/range-slider/index.d.ts +5 -0
  383. package/range-slider/public_api.d.ts +1 -0
  384. package/range-slider/range-slider.component.d.ts +35 -0
  385. package/select/ap-select.module.d.ts +17 -0
  386. package/select/dropdown-group-item/dropdown-group-item.component.d.ts +16 -0
  387. package/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.d.ts +25 -0
  388. package/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.d.ts +26 -0
  389. package/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.d.ts +20 -0
  390. package/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.d.ts +20 -0
  391. package/select/dropdown-search-form/dropdown-search-form.component.d.ts +32 -0
  392. package/select/index.d.ts +5 -0
  393. package/select/public_api.d.ts +12 -0
  394. package/select/select-base.directive.d.ts +18 -0
  395. package/select/select-label-multiple/select-label-multiple.component.d.ts +27 -0
  396. package/select/select-label-single/select-label-single.component.d.ts +12 -0
  397. package/select/select-multiple.directive.d.ts +10 -0
  398. package/select/select-single.directive.d.ts +10 -0
  399. package/slide-toggle/index.d.ts +5 -0
  400. package/slide-toggle/public_api.d.ts +1 -0
  401. package/{src/lib/slide-toggle → slide-toggle}/slide-toggle.component.d.ts +4 -0
  402. package/snackbars-thread/component/snackbars-thread.component.d.ts +24 -0
  403. package/snackbars-thread/index.d.ts +5 -0
  404. package/{src/lib/snackbars-thread → snackbars-thread}/model/snackbars-thread.model.d.ts +10 -6
  405. package/snackbars-thread/public_api.d.ts +3 -0
  406. package/snackbars-thread/service/snackbars-thread.service.d.ts +15 -0
  407. package/{src/lib/snackbars-thread → snackbars-thread}/utils/const/snackbars-thread.const.d.ts +2 -4
  408. package/social-button/index.d.ts +5 -0
  409. package/social-button/public_api.d.ts +1 -0
  410. package/social-button/social-button.component.d.ts +32 -0
  411. package/split-button/index.d.ts +5 -0
  412. package/split-button/public_api.d.ts +1 -0
  413. package/split-button/split-button.component.d.ts +43 -0
  414. package/src/lib/agorapulse-ui-components.module.d.ts +27 -0
  415. package/status/index.d.ts +5 -0
  416. package/status/public_api.d.ts +1 -0
  417. package/status/status.component.d.ts +9 -0
  418. package/status-card/index.d.ts +5 -0
  419. package/status-card/public_api.d.ts +1 -0
  420. package/status-card/status-card.component.d.ts +13 -0
  421. package/stepper/index.d.ts +5 -0
  422. package/stepper/public_api.d.ts +2 -0
  423. package/{src/lib/stepper → stepper}/step.model.d.ts +1 -0
  424. package/stepper/stepper.component.d.ts +16 -0
  425. package/tag/index.d.ts +5 -0
  426. package/tag/public_api.d.ts +1 -0
  427. package/tag/tag.component.d.ts +18 -0
  428. package/text-measurement/index.d.ts +5 -0
  429. package/text-measurement/public_api.d.ts +1 -0
  430. package/text-measurement/text-measurement.service.d.ts +8 -0
  431. package/textarea/index.d.ts +5 -0
  432. package/textarea/public_api.d.ts +1 -0
  433. package/textarea/textarea.directive.d.ts +11 -0
  434. package/toggle/index.d.ts +5 -0
  435. package/toggle/public_api.d.ts +1 -0
  436. package/toggle/toggle.component.d.ts +52 -0
  437. package/tooltip/index.d.ts +5 -0
  438. package/tooltip/public_api.d.ts +1 -0
  439. package/tooltip/tooltip.directive.d.ts +59 -0
  440. package/tooltip/tooltip.service.d.ts +11 -0
  441. package/agorapulse-ui-components-0.0.3.tgz +0 -0
  442. package/agorapulse-ui-components.d.ts +0 -9
  443. package/agorapulse-ui-components.metadata.json +0 -1
  444. package/bundles/agorapulse-ui-components.umd.js +0 -4448
  445. package/bundles/agorapulse-ui-components.umd.js.map +0 -1
  446. package/esm2015/agorapulse-ui-components.js +0 -10
  447. package/esm2015/index.js +0 -57
  448. package/esm2015/src/lib/add-comment/add-comment.component.js +0 -54
  449. package/esm2015/src/lib/agorapulse-ui-components.module.js +0 -279
  450. package/esm2015/src/lib/avatar/avatar.component.js +0 -82
  451. package/esm2015/src/lib/confirm-modal/confirm-modal-texts.model.js +0 -2
  452. package/esm2015/src/lib/confirm-modal/confirm-modal.component.js +0 -59
  453. package/esm2015/src/lib/datepicker/datepicker.component.js +0 -213
  454. package/esm2015/src/lib/directives/autosize-textarea.directive.js +0 -43
  455. package/esm2015/src/lib/directives/default-image.directive.js +0 -25
  456. package/esm2015/src/lib/directives/ellipsis.directive.js +0 -82
  457. package/esm2015/src/lib/directives/equal-validator.directive.js +0 -53
  458. package/esm2015/src/lib/directives/frozen-gif.directive.js +0 -113
  459. package/esm2015/src/lib/directives/multi-style-text.directive.js +0 -103
  460. package/esm2015/src/lib/directives/truncate-tooltip.directive.js +0 -36
  461. package/esm2015/src/lib/dots-stepper/dots-stepper.component.js +0 -41
  462. package/esm2015/src/lib/edit-tag-modal/edit-tags-modal.component.js +0 -129
  463. package/esm2015/src/lib/edit-tag-modal/model/edit-tags-modal.model.js +0 -2
  464. package/esm2015/src/lib/feature-onboarding/feature-onboarding.component.js +0 -35
  465. package/esm2015/src/lib/image-carousel/image-carousel.component.js +0 -143
  466. package/esm2015/src/lib/lead-modal/lead-info.model.js +0 -2
  467. package/esm2015/src/lib/lead-modal/lead-modal.component.js +0 -47
  468. package/esm2015/src/lib/media-display-overlay/media-display-overlay-dialog.component.js +0 -87
  469. package/esm2015/src/lib/modal/modal.component.js +0 -88
  470. package/esm2015/src/lib/notification/notification.component.js +0 -18
  471. package/esm2015/src/lib/overlay/overlay-dialog-service.component.js +0 -62
  472. package/esm2015/src/lib/overlay/overlay-dialog.component.js +0 -33
  473. package/esm2015/src/lib/overlay-in-div/overlay-in-div.component.js +0 -23
  474. package/esm2015/src/lib/paginator/paginator-button/paginator-button.component.js +0 -22
  475. package/esm2015/src/lib/paginator/paginator.component.js +0 -47
  476. package/esm2015/src/lib/password-input/password-input.component.js +0 -65
  477. package/esm2015/src/lib/password-strength-bar/password-strength-bar.component.js +0 -82
  478. package/esm2015/src/lib/password-strength-display-bar/password-strength-display-bar.component.js +0 -41
  479. package/esm2015/src/lib/phone-number-input/phone-number-input.component.js +0 -123
  480. package/esm2015/src/lib/places/place-list.component.js +0 -12
  481. package/esm2015/src/lib/places/place.component.js +0 -15
  482. package/esm2015/src/lib/popmenu/options.js +0 -16
  483. package/esm2015/src/lib/popmenu/popmenu-options.interface.js +0 -2
  484. package/esm2015/src/lib/popmenu/popmenu-options.service.js +0 -7
  485. package/esm2015/src/lib/popmenu/popmenu.component.js +0 -322
  486. package/esm2015/src/lib/popmenu/popmenu.directive.js +0 -215
  487. package/esm2015/src/lib/popmenu/popmenu.module.js +0 -38
  488. package/esm2015/src/lib/slide-toggle/slide-toggle.component.js +0 -59
  489. package/esm2015/src/lib/snackbar/snackbar.component.js +0 -22
  490. package/esm2015/src/lib/snackbars-thread/component/snackbars-thread.component.js +0 -50
  491. package/esm2015/src/lib/snackbars-thread/model/snackbars-thread.model.js +0 -41
  492. package/esm2015/src/lib/snackbars-thread/service/snackbars-thread.service.js +0 -44
  493. package/esm2015/src/lib/snackbars-thread/utils/const/snackbars-thread.const.js +0 -13
  494. package/esm2015/src/lib/splashscreen/splashscreen.component.js +0 -37
  495. package/esm2015/src/lib/star-rating/star-rating.component.js +0 -38
  496. package/esm2015/src/lib/stepper/step.model.js +0 -2
  497. package/esm2015/src/lib/stepper/stepper.component.js +0 -37
  498. package/esm2015/src/lib/tags/tag-list.component.js +0 -12
  499. package/esm2015/src/lib/tags/tag.component.js +0 -20
  500. package/esm2015/src/lib/tags-selector/tags-selector.component.js +0 -73
  501. package/esm2015/src/lib/timepicker/timepicker.component.js +0 -375
  502. package/esm2015/src/lib/tooltip-neo/tooltip-neo.component.js +0 -46
  503. package/esm2015/src/lib/tooltip-neo/tooltip-neo.const.js +0 -67
  504. package/esm2015/src/lib/tooltip-neo/tooltip-neo.directive.js +0 -107
  505. package/esm2015/src/lib/tooltip-neo/tooltip-neo.model.js +0 -2
  506. package/esm2015/src/lib/tooltip-neo/tooltip-neo.service.js +0 -15
  507. package/esm2015/src/lib/try-popup/try-popup-texts.model.js +0 -2
  508. package/esm2015/src/lib/try-popup/try-popup.component.js +0 -33
  509. package/fesm2015/agorapulse-ui-components.js +0 -3805
  510. package/fesm2015/agorapulse-ui-components.js.map +0 -1
  511. package/src/lib/add-comment/add-comment.component.d.ts +0 -17
  512. package/src/lib/avatar/avatar.component.d.ts +0 -23
  513. package/src/lib/confirm-modal/confirm-modal.component.d.ts +0 -17
  514. package/src/lib/datepicker/datepicker.component.d.ts +0 -69
  515. package/src/lib/directives/default-image.directive.d.ts +0 -5
  516. package/src/lib/directives/equal-validator.directive.d.ts +0 -10
  517. package/src/lib/directives/multi-style-text.directive.d.ts +0 -15
  518. package/src/lib/directives/truncate-tooltip.directive.d.ts +0 -13
  519. package/src/lib/dots-stepper/dots-stepper.component.d.ts +0 -13
  520. package/src/lib/edit-tag-modal/edit-tags-modal.component.d.ts +0 -29
  521. package/src/lib/edit-tag-modal/model/edit-tags-modal.model.d.ts +0 -21
  522. package/src/lib/feature-onboarding/feature-onboarding.component.d.ts +0 -15
  523. package/src/lib/image-carousel/image-carousel.component.d.ts +0 -45
  524. package/src/lib/lead-modal/lead-info.model.d.ts +0 -7
  525. package/src/lib/lead-modal/lead-modal.component.d.ts +0 -28
  526. package/src/lib/media-display-overlay/media-display-overlay-dialog.component.d.ts +0 -28
  527. package/src/lib/modal/modal.component.d.ts +0 -47
  528. package/src/lib/notification/notification.component.d.ts +0 -3
  529. package/src/lib/overlay/overlay-dialog-service.component.d.ts +0 -20
  530. package/src/lib/overlay/overlay-dialog.component.d.ts +0 -17
  531. package/src/lib/overlay-in-div/overlay-in-div.component.d.ts +0 -8
  532. package/src/lib/paginator/paginator-button/paginator-button.component.d.ts +0 -6
  533. package/src/lib/paginator/paginator.component.d.ts +0 -14
  534. package/src/lib/password-input/password-input.component.d.ts +0 -28
  535. package/src/lib/password-strength-bar/password-strength-bar.component.d.ts +0 -21
  536. package/src/lib/password-strength-display-bar/password-strength-display-bar.component.d.ts +0 -14
  537. package/src/lib/phone-number-input/phone-number-input.component.d.ts +0 -42
  538. package/src/lib/places/place-list.component.d.ts +0 -2
  539. package/src/lib/places/place.component.d.ts +0 -3
  540. package/src/lib/popmenu/popmenu-options.interface.d.ts +0 -24
  541. package/src/lib/popmenu/popmenu.directive.d.ts +0 -69
  542. package/src/lib/popmenu/popmenu.module.d.ts +0 -5
  543. package/src/lib/snackbar/snackbar.component.d.ts +0 -6
  544. package/src/lib/snackbars-thread/component/snackbars-thread.component.d.ts +0 -18
  545. package/src/lib/snackbars-thread/service/snackbars-thread.service.d.ts +0 -12
  546. package/src/lib/splashscreen/splashscreen.component.d.ts +0 -15
  547. package/src/lib/star-rating/star-rating.component.d.ts +0 -10
  548. package/src/lib/stepper/stepper.component.d.ts +0 -14
  549. package/src/lib/tags/tag-list.component.d.ts +0 -2
  550. package/src/lib/tags/tag.component.d.ts +0 -4
  551. package/src/lib/tags-selector/tags-selector.component.d.ts +0 -29
  552. package/src/lib/timepicker/timepicker.component.d.ts +0 -68
  553. package/src/lib/tooltip-neo/tooltip-neo.component.d.ts +0 -12
  554. package/src/lib/tooltip-neo/tooltip-neo.const.d.ts +0 -4
  555. package/src/lib/tooltip-neo/tooltip-neo.directive.d.ts +0 -29
  556. package/src/lib/tooltip-neo/tooltip-neo.model.d.ts +0 -12
  557. package/src/lib/tooltip-neo/tooltip-neo.service.d.ts +0 -4
  558. package/src/lib/try-popup/try-popup-texts.model.d.ts +0 -4
  559. package/src/lib/try-popup/try-popup.component.d.ts +0 -12
  560. /package/{src/lib/confirm-modal → confirm-modal}/confirm-modal-texts.model.d.ts +0 -0
  561. /package/{src/lib/popmenu → popmenu}/popmenu-options.service.d.ts +0 -0
@@ -0,0 +1,90 @@
1
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Removes excess text from element until it fits in elements
5
+ * and appends a ellipsis symbol to end of text. This requires that
6
+ * the elements height be fixed
7
+ *
8
+ * @example
9
+ * ```html
10
+ * <p apEllipsis>Ullamco esse laborum</p>
11
+ * ```
12
+ *
13
+ */
14
+ export class EllipsisDirective {
15
+ el;
16
+ apEllipsisSeparator = '';
17
+ apEllipsisClip = false;
18
+ apEllipsisIndex = -2;
19
+ apEllipsisChar = '...';
20
+ apEllipsisClickable = false;
21
+ apEllipsisRemovedElementsCount = new EventEmitter();
22
+ apEllipsisRemovedText = new EventEmitter();
23
+ get hasOverflow() {
24
+ const el = this.el.nativeElement;
25
+ return el.scrollHeight > el.offsetHeight || el.scrollWidth > el.offsetWidth;
26
+ }
27
+ constructor(el) {
28
+ this.el = el;
29
+ }
30
+ ngAfterContentChecked() {
31
+ this.clipText();
32
+ }
33
+ clipText() {
34
+ const el = this.el.nativeElement;
35
+ let text = el.innerText;
36
+ let removedText = '';
37
+ if (this.apEllipsisIndex > -1) {
38
+ removedText = text.substring(this.apEllipsisIndex, text.length - 1) + removedText;
39
+ text = text.substring(0, this.apEllipsisIndex);
40
+ el.innerText = `${text}${this.apEllipsisChar}`;
41
+ if (this.apEllipsisClickable) {
42
+ el.addEventListener('click', () => {
43
+ el.innerText = `${text}${removedText}`;
44
+ });
45
+ }
46
+ }
47
+ else {
48
+ while (this.hasOverflow && text.length > 0) {
49
+ removedText = text[text.length - 1] + removedText;
50
+ text = text.substring(0, text.length - 1);
51
+ el.innerText = `${text}${this.apEllipsisChar}`;
52
+ }
53
+ }
54
+ if (this.apEllipsisSeparator) {
55
+ const removedElementsCount = removedText
56
+ .split(this.apEllipsisSeparator)
57
+ .filter(element => !!element && element.length > 0).length;
58
+ if (removedElementsCount > 0) {
59
+ this.apEllipsisRemovedElementsCount.emit(removedElementsCount);
60
+ }
61
+ }
62
+ if (removedText && removedText.length > 0) {
63
+ this.apEllipsisRemovedText.emit(removedText);
64
+ }
65
+ }
66
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EllipsisDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
67
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: EllipsisDirective, isStandalone: true, selector: "[apEllipsis]", inputs: { apEllipsisSeparator: "apEllipsisSeparator", apEllipsisClip: "apEllipsisClip", apEllipsisIndex: "apEllipsisIndex", apEllipsisChar: "apEllipsisChar", apEllipsisClickable: "apEllipsisClickable" }, outputs: { apEllipsisRemovedElementsCount: "apEllipsisRemovedElementsCount", apEllipsisRemovedText: "apEllipsisRemovedText" }, ngImport: i0 });
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EllipsisDirective, decorators: [{
70
+ type: Directive,
71
+ args: [{
72
+ selector: '[apEllipsis]',
73
+ standalone: true,
74
+ }]
75
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { apEllipsisSeparator: [{
76
+ type: Input
77
+ }], apEllipsisClip: [{
78
+ type: Input
79
+ }], apEllipsisIndex: [{
80
+ type: Input
81
+ }], apEllipsisChar: [{
82
+ type: Input
83
+ }], apEllipsisClickable: [{
84
+ type: Input
85
+ }], apEllipsisRemovedElementsCount: [{
86
+ type: Output
87
+ }], apEllipsisRemovedText: [{
88
+ type: Output
89
+ }] } });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2RpcmVjdGl2ZXMvc3JjL2VsbGlwc2lzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFeEc7Ozs7Ozs7Ozs7R0FVRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFlTjtJQWRYLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztJQUN6QixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyQixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUUzQiw4QkFBOEIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQzVELHFCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFN0QsSUFBWSxXQUFXO1FBQ25CLE1BQU0sRUFBRSxHQUFnQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDaEYsQ0FBQztJQUVELFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUV0QyxxQkFBcUI7UUFDakIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxRQUFRO1FBQ1osTUFBTSxFQUFFLEdBQWdCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQzlDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDeEIsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVCLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUM7WUFDbEYsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUMvQyxFQUFFLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUUvQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMzQixFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDOUIsRUFBRSxDQUFDLFNBQVMsR0FBRyxHQUFHLElBQUksR0FBRyxXQUFXLEVBQUUsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztnQkFDbEQsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25ELENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixNQUFNLG9CQUFvQixHQUFHLFdBQVc7aUJBQ25DLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7aUJBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDL0QsSUFBSSxvQkFBb0IsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ25FLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDTCxDQUFDO3VHQXREUSxpQkFBaUI7MkZBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7aUJBQ25COytFQUVZLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUksOEJBQThCO3NCQUF2QyxNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudENoZWNrZWQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogUmVtb3ZlcyBleGNlc3MgdGV4dCBmcm9tIGVsZW1lbnQgdW50aWwgaXQgZml0cyBpbiBlbGVtZW50c1xuICogYW5kIGFwcGVuZHMgYSBlbGxpcHNpcyBzeW1ib2wgdG8gZW5kIG9mIHRleHQuIFRoaXMgcmVxdWlyZXMgdGhhdFxuICogdGhlIGVsZW1lbnRzIGhlaWdodCBiZSBmaXhlZFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8cCBhcEVsbGlwc2lzPlVsbGFtY28gZXNzZSBsYWJvcnVtPC9wPlxuICogYGBgXG4gKlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1thcEVsbGlwc2lzXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRWxsaXBzaXNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgICBASW5wdXQoKSBhcEVsbGlwc2lzU2VwYXJhdG9yID0gJyc7XG4gICAgQElucHV0KCkgYXBFbGxpcHNpc0NsaXAgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhcEVsbGlwc2lzSW5kZXggPSAtMjtcbiAgICBASW5wdXQoKSBhcEVsbGlwc2lzQ2hhciA9ICcuLi4nO1xuICAgIEBJbnB1dCgpIGFwRWxsaXBzaXNDbGlja2FibGUgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBhcEVsbGlwc2lzUmVtb3ZlZEVsZW1lbnRzQ291bnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgYXBFbGxpcHNpc1JlbW92ZWRUZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBwcml2YXRlIGdldCBoYXNPdmVyZmxvdygpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICByZXR1cm4gZWwuc2Nyb2xsSGVpZ2h0ID4gZWwub2Zmc2V0SGVpZ2h0IHx8IGVsLnNjcm9sbFdpZHRoID4gZWwub2Zmc2V0V2lkdGg7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICAgIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICAgICAgdGhpcy5jbGlwVGV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xpcFRleHQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgbGV0IHRleHQgPSBlbC5pbm5lclRleHQ7XG4gICAgICAgIGxldCByZW1vdmVkVGV4dCA9ICcnO1xuICAgICAgICBpZiAodGhpcy5hcEVsbGlwc2lzSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgcmVtb3ZlZFRleHQgPSB0ZXh0LnN1YnN0cmluZyh0aGlzLmFwRWxsaXBzaXNJbmRleCwgdGV4dC5sZW5ndGggLSAxKSArIHJlbW92ZWRUZXh0O1xuICAgICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIHRoaXMuYXBFbGxpcHNpc0luZGV4KTtcbiAgICAgICAgICAgIGVsLmlubmVyVGV4dCA9IGAke3RleHR9JHt0aGlzLmFwRWxsaXBzaXNDaGFyfWA7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmFwRWxsaXBzaXNDbGlja2FibGUpIHtcbiAgICAgICAgICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZWwuaW5uZXJUZXh0ID0gYCR7dGV4dH0ke3JlbW92ZWRUZXh0fWA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5oYXNPdmVyZmxvdyAmJiB0ZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZW1vdmVkVGV4dCA9IHRleHRbdGV4dC5sZW5ndGggLSAxXSArIHJlbW92ZWRUZXh0O1xuICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygwLCB0ZXh0Lmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgIGVsLmlubmVyVGV4dCA9IGAke3RleHR9JHt0aGlzLmFwRWxsaXBzaXNDaGFyfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hcEVsbGlwc2lzU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBjb25zdCByZW1vdmVkRWxlbWVudHNDb3VudCA9IHJlbW92ZWRUZXh0XG4gICAgICAgICAgICAgICAgLnNwbGl0KHRoaXMuYXBFbGxpcHNpc1NlcGFyYXRvcilcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGVsZW1lbnQgPT4gISFlbGVtZW50ICYmIGVsZW1lbnQubGVuZ3RoID4gMCkubGVuZ3RoO1xuICAgICAgICAgICAgaWYgKHJlbW92ZWRFbGVtZW50c0NvdW50ID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBFbGxpcHNpc1JlbW92ZWRFbGVtZW50c0NvdW50LmVtaXQocmVtb3ZlZEVsZW1lbnRzQ291bnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZW1vdmVkVGV4dCAmJiByZW1vdmVkVGV4dC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmFwRWxsaXBzaXNSZW1vdmVkVGV4dC5lbWl0KHJlbW92ZWRUZXh0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,73 @@
1
+ // Based on https://scotch.io/tutorials/how-to-implement-a-custom-validator-directive-confirm-password-in-angular-2
2
+ import { Attribute, Directive, forwardRef } from '@angular/core';
3
+ import { NG_VALIDATORS } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ export class EqualValidatorDirective {
6
+ validateEqual;
7
+ validateEqualReference;
8
+ constructor(validateEqual, validateEqualReference) {
9
+ this.validateEqual = validateEqual;
10
+ this.validateEqualReference = validateEqualReference;
11
+ }
12
+ validate(self) {
13
+ const other = self.root.get(this.validateEqual);
14
+ if (other) {
15
+ if (this.isReference()) {
16
+ if (self.value === other.value) {
17
+ if (other.errors) {
18
+ delete other.errors['validateEqual'];
19
+ if (!Object.keys(other.errors).length) {
20
+ other.setErrors(null);
21
+ }
22
+ }
23
+ else {
24
+ other.setErrors(null);
25
+ }
26
+ }
27
+ else {
28
+ other.setErrors({ validateEqual: false });
29
+ }
30
+ }
31
+ else if (self.value !== other.value) {
32
+ return { validateEqual: false };
33
+ }
34
+ }
35
+ return null;
36
+ }
37
+ isReference() {
38
+ if (!this.validateEqualReference) {
39
+ return false;
40
+ }
41
+ return this.validateEqualReference === 'true';
42
+ }
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EqualValidatorDirective, deps: [{ token: 'validateEqual', attribute: true }, { token: 'validateEqualReference', attribute: true }], target: i0.ɵɵFactoryTarget.Directive });
44
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: EqualValidatorDirective, isStandalone: true, selector: "[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]", providers: [
45
+ {
46
+ provide: NG_VALIDATORS,
47
+ useExisting: forwardRef(() => EqualValidatorDirective),
48
+ multi: true,
49
+ },
50
+ ], ngImport: i0 });
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EqualValidatorDirective, decorators: [{
53
+ type: Directive,
54
+ args: [{
55
+ // eslint-disable-next-line @angular-eslint/directive-selector
56
+ selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',
57
+ providers: [
58
+ {
59
+ provide: NG_VALIDATORS,
60
+ useExisting: forwardRef(() => EqualValidatorDirective),
61
+ multi: true,
62
+ },
63
+ ],
64
+ standalone: true,
65
+ }]
66
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
67
+ type: Attribute,
68
+ args: ['validateEqual']
69
+ }] }, { type: undefined, decorators: [{
70
+ type: Attribute,
71
+ args: ['validateEqualReference']
72
+ }] }] });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kaXJlY3RpdmVzL3NyYy9lcXVhbC12YWxpZGF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1IQUFtSDtBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFtQixhQUFhLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFjM0UsTUFBTSxPQUFPLHVCQUF1QjtJQUVPO0lBQ1M7SUFGaEQsWUFDdUMsYUFBcUIsRUFDWixzQkFBOEI7UUFEdkMsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDWiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVE7SUFDM0UsQ0FBQztJQUVKLFFBQVEsQ0FBQyxJQUFxQjtRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzdCLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNmLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQzt3QkFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDOzRCQUNwQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUMxQixDQUFDO29CQUNMLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQixDQUFDO2dCQUNMLENBQUM7cUJBQU0sQ0FBQztvQkFDSixLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQzlDLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDcEMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUMvQixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEtBQUssTUFBTSxDQUFDO0lBQ2xELENBQUM7dUdBbENRLHVCQUF1QixrQkFFakIsZUFBZSw4QkFDZix3QkFBd0I7MkZBSDlCLHVCQUF1QixxSUFUckI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKOzsyRkFHUSx1QkFBdUI7a0JBWm5DLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsd0ZBQXdGO29CQUNsRyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQUdRLFNBQVM7MkJBQUMsZUFBZTs7MEJBQ3pCLFNBQVM7MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQmFzZWQgb24gaHR0cHM6Ly9zY290Y2guaW8vdHV0b3JpYWxzL2hvdy10by1pbXBsZW1lbnQtYS1jdXN0b20tdmFsaWRhdG9yLWRpcmVjdGl2ZS1jb25maXJtLXBhc3N3b3JkLWluLWFuZ3VsYXItMlxuaW1wb3J0IHsgQXR0cmlidXRlLCBEaXJlY3RpdmUsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW3ZhbGlkYXRlRXF1YWxdW2Zvcm1Db250cm9sTmFtZV0sW3ZhbGlkYXRlRXF1YWxdW2Zvcm1Db250cm9sXSxbdmFsaWRhdGVFcXVhbF1bbmdNb2RlbF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRXF1YWxWYWxpZGF0b3JEaXJlY3RpdmUpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFcXVhbFZhbGlkYXRvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3ZhbGlkYXRlRXF1YWwnKSBwdWJsaWMgdmFsaWRhdGVFcXVhbDogc3RyaW5nLFxuICAgICAgICBAQXR0cmlidXRlKCd2YWxpZGF0ZUVxdWFsUmVmZXJlbmNlJykgcHVibGljIHZhbGlkYXRlRXF1YWxSZWZlcmVuY2U6IHN0cmluZ1xuICAgICkge31cblxuICAgIHZhbGlkYXRlKHNlbGY6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcbiAgICAgICAgY29uc3Qgb3RoZXIgPSBzZWxmLnJvb3QuZ2V0KHRoaXMudmFsaWRhdGVFcXVhbCk7XG4gICAgICAgIGlmIChvdGhlcikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNSZWZlcmVuY2UoKSkge1xuICAgICAgICAgICAgICAgIGlmIChzZWxmLnZhbHVlID09PSBvdGhlci52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXIuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgb3RoZXIuZXJyb3JzWyd2YWxpZGF0ZUVxdWFsJ107XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKG90aGVyLmVycm9ycykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgb3RoZXIuc2V0RXJyb3JzKHsgdmFsaWRhdGVFcXVhbDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChzZWxmLnZhbHVlICE9PSBvdGhlci52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbGlkYXRlRXF1YWw6IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1JlZmVyZW5jZSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRXF1YWxSZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUVxdWFsUmVmZXJlbmNlID09PSAndHJ1ZSc7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,125 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GifService {
4
+ static isGif(src) {
5
+ return src && src.split('?')[0].endsWith('.gif');
6
+ }
7
+ }
8
+ /**
9
+ * If the image is a GIF then replace the img element by a canvas containing a frozen gif.
10
+ * Note 1: if the image is displayed under a condition, the condition must be applied on the parent of the image, so the
11
+ * new canvas element will have the same condition.
12
+ * Note 2: the image must not have the properties "display" and "visibility" in its style. Since they are used to frozen
13
+ * the GIF. You need to apply this properties on the parent element.
14
+ * Note 3: If the GIF is frozen, all the event are propagated to the image. However, all events are dispatched
15
+ * with an Event instance. Ex: click event is not dispatched with a MouseEvent instance.
16
+ */
17
+ export class FrozenGifDirective {
18
+ elementRef;
19
+ src = '';
20
+ apFrozen = true;
21
+ // Add all the events that need to be propagated.
22
+ apGifEvents = ['click'];
23
+ element;
24
+ canvas = null;
25
+ constructor(elementRef) {
26
+ this.elementRef = elementRef;
27
+ const element = this.elementRef.nativeElement;
28
+ if (!(element instanceof HTMLImageElement)) {
29
+ return;
30
+ }
31
+ this.element = element;
32
+ }
33
+ ngOnChanges(changes) {
34
+ let freeze = false;
35
+ if (changes.src) {
36
+ freeze = true;
37
+ }
38
+ if (changes.frozen) {
39
+ if (changes.frozen.currentValue) {
40
+ freeze = true;
41
+ }
42
+ else {
43
+ this.unfreeze();
44
+ }
45
+ }
46
+ if (freeze) {
47
+ this.freeze();
48
+ }
49
+ }
50
+ freeze() {
51
+ if (!GifService.isGif(this.src) || !this.apFrozen) {
52
+ this.unfreeze();
53
+ return;
54
+ }
55
+ // hack to avoid displaying the GIF before replacing it by the canvas
56
+ this.element.style.visibility = 'hidden';
57
+ this.element.addEventListener('load', () => this.addCanvas());
58
+ }
59
+ addCanvas() {
60
+ if (this.canvas) {
61
+ this.canvas.remove();
62
+ }
63
+ this.canvas = document.createElement('canvas');
64
+ this.canvas.width = this.element.width;
65
+ this.canvas.height = this.element.height;
66
+ this.canvas.getContext('2d')?.drawImage(this.element, 0, 0, this.canvas.width, this.canvas.height);
67
+ for (let i = 0; i < this.element.attributes.length; i++) {
68
+ const attr = this.element.attributes[i];
69
+ if (attr.name === 'id') {
70
+ // avoid two elements with the same id
71
+ this.canvas.setAttribute('id', attr.value + '_frozenGif');
72
+ }
73
+ else if ((attr.name === 'style' && attr.value.includes('visibility: hidden;')) || attr.value.includes('display: none;')) {
74
+ // remove the added 'visibility: hidden' and 'display: none'
75
+ const styleValue = attr.value;
76
+ this.canvas.setAttribute('style', styleValue.replace('visibility: hidden;', '').replace('display: none;', ''));
77
+ }
78
+ else if (attr.name !== '"') {
79
+ // test for invalid attributes
80
+ this.canvas.setAttribute(attr.name, attr.value);
81
+ }
82
+ }
83
+ this.addEvents();
84
+ this.element.parentNode?.insertBefore(this.canvas, this.element);
85
+ this.element.style.display = 'none';
86
+ }
87
+ addEvents() {
88
+ this.apGifEvents.forEach((eventName) => {
89
+ this.canvas?.addEventListener(eventName, (ev) => this.element.dispatchEvent(
90
+ // wm: find a way to dispatch the right event type
91
+ new Event(ev.type, ev)));
92
+ });
93
+ }
94
+ unfreeze() {
95
+ if (this.canvas) {
96
+ this.canvas.remove();
97
+ this.canvas = null;
98
+ }
99
+ this.element.style.visibility = 'inherit';
100
+ this.element.style.display = 'inherit';
101
+ }
102
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FrozenGifDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
103
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: FrozenGifDirective, isStandalone: true, selector: "img[apFrozenGif]", inputs: { src: "src", apFrozen: "apFrozen", apGifEvents: "apGifEvents" }, host: { properties: { "src": "src" } }, usesOnChanges: true, ngImport: i0 });
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FrozenGifDirective, decorators: [{
106
+ type: Directive,
107
+ args: [{
108
+ selector: 'img[apFrozenGif]',
109
+ // eslint-disable-next-line @angular-eslint/no-host-metadata-property
110
+ host: {
111
+ '[src]': 'src',
112
+ },
113
+ standalone: true,
114
+ }]
115
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { src: [{
116
+ type: Input,
117
+ args: [{
118
+ required: true,
119
+ }]
120
+ }], apFrozen: [{
121
+ type: Input
122
+ }], apGifEvents: [{
123
+ type: Input
124
+ }] } });
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvemVuLWdpZi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvZnJvemVuLWdpZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBRXhFLE1BQU0sT0FBTyxVQUFVO0lBQ25CLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBVztRQUNwQixPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0o7QUFFRDs7Ozs7Ozs7R0FRRztBQVVILE1BQU0sT0FBTyxrQkFBa0I7SUFZUDtJQVJwQixHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ0EsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixpREFBaUQ7SUFDeEMsV0FBVyxHQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFMUIsT0FBTyxDQUFvQjtJQUNwQyxNQUFNLEdBQTZCLElBQUksQ0FBQztJQUVoRCxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzlDLElBQUksQ0FBQyxDQUFDLE9BQU8sWUFBWSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQVk7UUFDcEIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNsQixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM5QixNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0lBRU8sTUFBTTtRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNYLENBQUM7UUFFRCxxRUFBcUU7UUFDckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN6QixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNyQixzQ0FBc0M7Z0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDO1lBQzlELENBQUM7aUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hILDREQUE0RDtnQkFDNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkgsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQzNCLDhCQUE4QjtnQkFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEMsQ0FBQztJQUVPLFNBQVM7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUFFLENBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTtZQUN0QixrREFBa0Q7WUFDbEQsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FDekIsQ0FDSixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sUUFBUTtRQUNaLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO0lBQzNDLENBQUM7dUdBbEdRLGtCQUFrQjsyRkFBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQVI5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLHFFQUFxRTtvQkFDckUsSUFBSSxFQUFFO3dCQUNGLE9BQU8sRUFBRSxLQUFLO3FCQUNqQjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7K0VBS0csR0FBRztzQkFIRixLQUFLO3VCQUFDO3dCQUNILFFBQVEsRUFBRSxJQUFJO3FCQUNqQjtnQkFFUSxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEdpZlNlcnZpY2Uge1xuICAgIHN0YXRpYyBpc0dpZihzcmM6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gc3JjICYmIHNyYy5zcGxpdCgnPycpWzBdLmVuZHNXaXRoKCcuZ2lmJyk7XG4gICAgfVxufVxuXG4vKipcbiAqIElmIHRoZSBpbWFnZSBpcyBhIEdJRiB0aGVuIHJlcGxhY2UgdGhlIGltZyBlbGVtZW50IGJ5IGEgY2FudmFzIGNvbnRhaW5pbmcgYSBmcm96ZW4gZ2lmLlxuICogTm90ZSAxOiBpZiB0aGUgaW1hZ2UgaXMgZGlzcGxheWVkIHVuZGVyIGEgY29uZGl0aW9uLCB0aGUgY29uZGl0aW9uIG11c3QgYmUgYXBwbGllZCBvbiB0aGUgcGFyZW50IG9mIHRoZSBpbWFnZSwgc28gdGhlXG4gKiBuZXcgY2FudmFzIGVsZW1lbnQgd2lsbCBoYXZlIHRoZSBzYW1lIGNvbmRpdGlvbi5cbiAqIE5vdGUgMjogdGhlIGltYWdlIG11c3Qgbm90IGhhdmUgdGhlIHByb3BlcnRpZXMgXCJkaXNwbGF5XCIgYW5kIFwidmlzaWJpbGl0eVwiIGluIGl0cyBzdHlsZS4gU2luY2UgdGhleSBhcmUgdXNlZCB0byBmcm96ZW5cbiAqIHRoZSBHSUYuIFlvdSBuZWVkIHRvIGFwcGx5IHRoaXMgcHJvcGVydGllcyBvbiB0aGUgcGFyZW50IGVsZW1lbnQuXG4gKiBOb3RlIDM6IElmIHRoZSBHSUYgaXMgZnJvemVuLCBhbGwgdGhlIGV2ZW50IGFyZSBwcm9wYWdhdGVkIHRvIHRoZSBpbWFnZS4gSG93ZXZlciwgYWxsIGV2ZW50cyBhcmUgZGlzcGF0Y2hlZFxuICogd2l0aCBhbiBFdmVudCBpbnN0YW5jZS4gRXg6IGNsaWNrIGV2ZW50IGlzIG5vdCBkaXNwYXRjaGVkIHdpdGggYSBNb3VzZUV2ZW50IGluc3RhbmNlLlxuICovXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW1nW2FwRnJvemVuR2lmXScsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG4gICAgaG9zdDoge1xuICAgICAgICAnW3NyY10nOiAnc3JjJyxcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEZyb3plbkdpZkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KHtcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSlcbiAgICBzcmMgPSAnJztcbiAgICBASW5wdXQoKSBhcEZyb3plbiA9IHRydWU7XG4gICAgLy8gQWRkIGFsbCB0aGUgZXZlbnRzIHRoYXQgbmVlZCB0byBiZSBwcm9wYWdhdGVkLlxuICAgIEBJbnB1dCgpIGFwR2lmRXZlbnRzOiBzdHJpbmdbXSA9IFsnY2xpY2snXTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCE6IEhUTUxJbWFnZUVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoIShlbGVtZW50IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIGxldCBmcmVlemUgPSBmYWxzZTtcbiAgICAgICAgaWYgKGNoYW5nZXMuc3JjKSB7XG4gICAgICAgICAgICBmcmVlemUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLmZyb3plbikge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMuZnJvemVuLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGZyZWV6ZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudW5mcmVlemUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmcmVlemUpIHtcbiAgICAgICAgICAgIHRoaXMuZnJlZXplKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGZyZWV6ZSgpIHtcbiAgICAgICAgaWYgKCFHaWZTZXJ2aWNlLmlzR2lmKHRoaXMuc3JjKSB8fCAhdGhpcy5hcEZyb3plbikge1xuICAgICAgICAgICAgdGhpcy51bmZyZWV6ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaGFjayB0byBhdm9pZCBkaXNwbGF5aW5nIHRoZSBHSUYgYmVmb3JlIHJlcGxhY2luZyBpdCBieSB0aGUgY2FudmFzXG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4gdGhpcy5hZGRDYW52YXMoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRDYW52YXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmNhbnZhcykge1xuICAgICAgICAgICAgdGhpcy5jYW52YXMucmVtb3ZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICB0aGlzLmNhbnZhcy53aWR0aCA9IHRoaXMuZWxlbWVudC53aWR0aDtcbiAgICAgICAgdGhpcy5jYW52YXMuaGVpZ2h0ID0gdGhpcy5lbGVtZW50LmhlaWdodDtcbiAgICAgICAgdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKT8uZHJhd0ltYWdlKHRoaXMuZWxlbWVudCwgMCwgMCwgdGhpcy5jYW52YXMud2lkdGgsIHRoaXMuY2FudmFzLmhlaWdodCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbGVtZW50LmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHIgPSB0aGlzLmVsZW1lbnQuYXR0cmlidXRlc1tpXTtcbiAgICAgICAgICAgIGlmIChhdHRyLm5hbWUgPT09ICdpZCcpIHtcbiAgICAgICAgICAgICAgICAvLyBhdm9pZCB0d28gZWxlbWVudHMgd2l0aCB0aGUgc2FtZSBpZFxuICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzLnNldEF0dHJpYnV0ZSgnaWQnLCBhdHRyLnZhbHVlICsgJ19mcm96ZW5HaWYnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKGF0dHIubmFtZSA9PT0gJ3N0eWxlJyAmJiBhdHRyLnZhbHVlLmluY2x1ZGVzKCd2aXNpYmlsaXR5OiBoaWRkZW47JykpIHx8IGF0dHIudmFsdWUuaW5jbHVkZXMoJ2Rpc3BsYXk6IG5vbmU7JykpIHtcbiAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGhlIGFkZGVkICd2aXNpYmlsaXR5OiBoaWRkZW4nIGFuZCAnZGlzcGxheTogbm9uZSdcbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZVZhbHVlID0gYXR0ci52YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbnZhcy5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgc3R5bGVWYWx1ZS5yZXBsYWNlKCd2aXNpYmlsaXR5OiBoaWRkZW47JywgJycpLnJlcGxhY2UoJ2Rpc3BsYXk6IG5vbmU7JywgJycpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0ci5uYW1lICE9PSAnXCInKSB7XG4gICAgICAgICAgICAgICAgLy8gdGVzdCBmb3IgaW52YWxpZCBhdHRyaWJ1dGVzXG4gICAgICAgICAgICAgICAgdGhpcy5jYW52YXMuc2V0QXR0cmlidXRlKGF0dHIubmFtZSwgYXR0ci52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFkZEV2ZW50cygpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudC5wYXJlbnROb2RlPy5pbnNlcnRCZWZvcmUodGhpcy5jYW52YXMsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRXZlbnRzKCkge1xuICAgICAgICB0aGlzLmFwR2lmRXZlbnRzLmZvckVhY2goKGV2ZW50TmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhbnZhcz8uYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIChldjogRXZlbnQpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgIC8vIHdtOiBmaW5kIGEgd2F5IHRvIGRpc3BhdGNoIHRoZSByaWdodCBldmVudCB0eXBlXG4gICAgICAgICAgICAgICAgICAgIG5ldyBFdmVudChldi50eXBlLCBldilcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVuZnJlZXplKCkge1xuICAgICAgICBpZiAodGhpcy5jYW52YXMpIHtcbiAgICAgICAgICAgIHRoaXMuY2FudmFzLnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5jYW52YXMgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ2luaGVyaXQnO1xuICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdpbmhlcml0JztcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,61 @@
1
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
+ import DOMPurify from 'dompurify';
3
+ import * as i0 from "@angular/core";
4
+ const DATA_MST = 'data-mst';
5
+ /**
6
+ * This directive aims to parse simple string to extract some specific tags and to turn them into SPAN with styling classes attributes and optional event listening.
7
+ * The specific tags must this schema: <ng-container data-mst="STYLING-CLASSES">TEXT</ng-container>.
8
+ * Example: 'Lorem <ng-container data-mst="my-style">ipsum</ng-container> dolor sit amet'.
9
+ */
10
+ export class MultiStyleTextDirective {
11
+ elRef;
12
+ renderer;
13
+ set multiStyleText(fullText) {
14
+ // First remove previously added children (on update).
15
+ this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', '');
16
+ if (!fullText || fullText.length <= 0) {
17
+ return;
18
+ }
19
+ this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', DOMPurify.sanitize(fullText.replace(/ng-container/g, 'span')));
20
+ Array.from(this.elRef.nativeElement.children).forEach((childNode) => {
21
+ if (childNode.nodeType == 1 && childNode.tagName.toLowerCase() === 'span') {
22
+ // Node.ELEMENT_NODE
23
+ const span = this.renderer.createElement('span');
24
+ span.innerHTML = childNode.innerHTML;
25
+ this.elRef.nativeElement.replaceChild(span, childNode);
26
+ const mstValue = childNode.getAttribute(DATA_MST);
27
+ if (mstValue) {
28
+ const mstContents = mstValue.split(';');
29
+ // Bind click events
30
+ if (mstContents[1]) {
31
+ this.renderer.listen(span, 'click', () => this.partEvent.emit(mstContents[1]));
32
+ }
33
+ // Add classes
34
+ if (mstContents[0] && mstContents[0].length > 0) {
35
+ this.renderer.setAttribute(span, 'class', mstContents[0].replace(',', ' '));
36
+ }
37
+ }
38
+ }
39
+ });
40
+ }
41
+ partEvent = new EventEmitter();
42
+ constructor(elRef, renderer) {
43
+ this.elRef = elRef;
44
+ this.renderer = renderer;
45
+ }
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MultiStyleTextDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
47
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: MultiStyleTextDirective, isStandalone: true, selector: "[multiStyleText]", inputs: { multiStyleText: "multiStyleText" }, outputs: { partEvent: "partEvent" }, ngImport: i0 });
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: MultiStyleTextDirective, decorators: [{
50
+ type: Directive,
51
+ args: [{
52
+ // eslint-disable-next-line @angular-eslint/directive-selector
53
+ selector: '[multiStyleText]',
54
+ standalone: true,
55
+ }]
56
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { multiStyleText: [{
57
+ type: Input
58
+ }], partEvent: [{
59
+ type: Output
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvbXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7O0FBRWxDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQztBQUU1Qjs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjtJQXFDcEI7SUFDQTtJQXJDWixJQUFhLGNBQWMsQ0FBQyxRQUFnQjtRQUN4QyxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQWtCLEVBQUUsRUFBRTtZQUN6RSxJQUFJLFNBQVMsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ3hFLG9CQUFvQjtnQkFFcEIsTUFBTSxJQUFJLEdBQWdCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBRXZELE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2xELElBQUksUUFBUSxFQUFFLENBQUM7b0JBQ1gsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEMsb0JBQW9CO29CQUNwQixJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ25GLENBQUM7b0JBQ0QsY0FBYztvQkFDZCxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ2hGLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUVqRCxZQUNZLEtBQThCLEVBQzlCLFFBQW1CO1FBRG5CLFVBQUssR0FBTCxLQUFLLENBQXlCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVc7SUFDNUIsQ0FBQzt1R0F2Q0ssdUJBQXVCOzJGQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7dUdBRWdCLGNBQWM7c0JBQTFCLEtBQUs7Z0JBaUNJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgRE9NUHVyaWZ5IGZyb20gJ2RvbXB1cmlmeSc7XG5cbmNvbnN0IERBVEFfTVNUID0gJ2RhdGEtbXN0JztcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBhaW1zIHRvIHBhcnNlIHNpbXBsZSBzdHJpbmcgdG8gZXh0cmFjdCBzb21lIHNwZWNpZmljIHRhZ3MgYW5kIHRvIHR1cm4gdGhlbSBpbnRvIFNQQU4gd2l0aCBzdHlsaW5nIGNsYXNzZXMgYXR0cmlidXRlcyBhbmQgb3B0aW9uYWwgZXZlbnQgbGlzdGVuaW5nLlxuICogVGhlIHNwZWNpZmljIHRhZ3MgbXVzdCB0aGlzIHNjaGVtYTogPG5nLWNvbnRhaW5lciBkYXRhLW1zdD1cIlNUWUxJTkctQ0xBU1NFU1wiPlRFWFQ8L25nLWNvbnRhaW5lcj4uXG4gKiBFeGFtcGxlOiAnTG9yZW0gPG5nLWNvbnRhaW5lciBkYXRhLW1zdD1cIm15LXN0eWxlXCI+aXBzdW08L25nLWNvbnRhaW5lcj4gZG9sb3Igc2l0IGFtZXQnLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW211bHRpU3R5bGVUZXh0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTdHlsZVRleHREaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpIHNldCBtdWx0aVN0eWxlVGV4dChmdWxsVGV4dDogc3RyaW5nKSB7XG4gICAgICAgIC8vIEZpcnN0IHJlbW92ZSBwcmV2aW91c2x5IGFkZGVkIGNoaWxkcmVuIChvbiB1cGRhdGUpLlxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2lubmVySFRNTCcsICcnKTtcbiAgICAgICAgaWYgKCFmdWxsVGV4dCB8fCBmdWxsVGV4dC5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsICdpbm5lckhUTUwnLCBET01QdXJpZnkuc2FuaXRpemUoZnVsbFRleHQucmVwbGFjZSgvbmctY29udGFpbmVyL2csICdzcGFuJykpKTtcblxuICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlbikuZm9yRWFjaCgoY2hpbGROb2RlOiBFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGROb2RlLm5vZGVUeXBlID09IDEgJiYgY2hpbGROb2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3NwYW4nKSB7XG4gICAgICAgICAgICAgICAgLy8gTm9kZS5FTEVNRU5UX05PREVcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW46IEhUTUxFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSBjaGlsZE5vZGUuaW5uZXJIVE1MO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5yZXBsYWNlQ2hpbGQoc3BhbiwgY2hpbGROb2RlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1zdFZhbHVlID0gY2hpbGROb2RlLmdldEF0dHJpYnV0ZShEQVRBX01TVCk7XG4gICAgICAgICAgICAgICAgaWYgKG1zdFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1zdENvbnRlbnRzID0gbXN0VmFsdWUuc3BsaXQoJzsnKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQmluZCBjbGljayBldmVudHNcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1zdENvbnRlbnRzWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihzcGFuLCAnY2xpY2snLCAoKSA9PiB0aGlzLnBhcnRFdmVudC5lbWl0KG1zdENvbnRlbnRzWzFdKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1zdENvbnRlbnRzWzBdICYmIG1zdENvbnRlbnRzWzBdLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHNwYW4sICdjbGFzcycsIG1zdENvbnRlbnRzWzBdLnJlcGxhY2UoJywnLCAnICcpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHBhcnRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7fVxufVxuIl19
@@ -0,0 +1,8 @@
1
+ export * from './autosize-textarea.directive';
2
+ export * from './base-button.directive';
3
+ export * from './default-image.directive';
4
+ export * from './ellipsis.directive';
5
+ export * from './equal-validator.directive';
6
+ export * from './frozen-gif.directive';
7
+ export * from './multi-style-text.directive';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kaXJlY3RpdmVzL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG9zaXplLXRleHRhcmVhLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtYnV0dG9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtaW1hZ2UuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZWxsaXBzaXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zyb3plbi1naWYuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLWRvdC1zdGVwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2RvdC1zdGVwcGVyL3NyYy9hZ29yYXB1bHNlLXVpLWNvbXBvbmVudHMtZG90LXN0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,46 @@
1
+ import { NgClass } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, booleanAttribute } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class DotStepperComponent {
5
+ interactive = true;
6
+ index = 0;
7
+ items = [];
8
+ dotClick = new EventEmitter();
9
+ currentItem = undefined;
10
+ ngOnChanges() {
11
+ this.currentItem = this.items[this.index];
12
+ }
13
+ /**
14
+ * On dot click
15
+ * @param event Dom click event
16
+ * @param item Item clicked
17
+ * @param index Index of the item clicked
18
+ */
19
+ onDotClick(event, item, index) {
20
+ event.stopPropagation();
21
+ if (!this.interactive) {
22
+ return;
23
+ }
24
+ this.currentItem = item;
25
+ this.index = index;
26
+ this.dotClick.emit(this.index);
27
+ }
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DotStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: DotStepperComponent, isStandalone: true, selector: "ap-dot-stepper", inputs: { interactive: ["interactive", "interactive", booleanAttribute], index: "index", items: "items" }, outputs: { dotClick: "dotClick" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"dots\">\n @for (item of items; track item; let i = $index) {\n <div\n class=\"dot\"\n tabindex=\"-1\"\n [ngClass]=\"{\n active: item === currentItem,\n disabled: !interactive\n }\"\n (click)=\"onDotClick($event, item, i)\"\n (keydown)=\"onDotClick($event, item, i)\"></div>\n }\n</div>\n", styles: [".dots{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;gap:var(--comp-dot-stepper-spacing);place-content:stretch center;width:100%}.dots .dot{position:relative;transition:all .2s ease-in-out;border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--comp-dot-stepper-dot-inactive-border-color);border-radius:50%;height:var(--comp-dot-stepper-dot-size);width:var(--comp-dot-stepper-dot-size);cursor:pointer}.dots .dot:hover{border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--ref-color-electric-blue-60);background:var(--comp-dot-stepper-dot-inactive-focused-background-color)}.dots .dot:focus{background:var(--comp-dot-stepper-dot-inactive-hovered-background-color)}.dots .dot:focus:after{content:\"\";width:calc(var(--comp-dot-stepper-dot-size) + var(--comp-dot-stepper-dot-inactive-border-width));height:calc(var(--comp-dot-stepper-dot-size) + var(--comp-dot-stepper-dot-inactive-border-width));top:calc(-1 * (var(--comp-dot-stepper-dot-inactive-border-width) * 2 + 1px));left:calc(-1 * (var(--comp-dot-stepper-dot-inactive-border-width) * 2 + 1px));position:absolute;border-radius:50%;border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--ref-color-electric-blue-100)}.dots .dot.active{background:var(--comp-dot-stepper-dot-active-background-color);border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--ref-color-electric-blue-150);cursor:initial}.dots .dot.disabled{cursor:initial;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DotStepperComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-dot-stepper', standalone: true, imports: [NgClass], template: "<div\n class=\"dots\">\n @for (item of items; track item; let i = $index) {\n <div\n class=\"dot\"\n tabindex=\"-1\"\n [ngClass]=\"{\n active: item === currentItem,\n disabled: !interactive\n }\"\n (click)=\"onDotClick($event, item, i)\"\n (keydown)=\"onDotClick($event, item, i)\"></div>\n }\n</div>\n", styles: [".dots{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;gap:var(--comp-dot-stepper-spacing);place-content:stretch center;width:100%}.dots .dot{position:relative;transition:all .2s ease-in-out;border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--comp-dot-stepper-dot-inactive-border-color);border-radius:50%;height:var(--comp-dot-stepper-dot-size);width:var(--comp-dot-stepper-dot-size);cursor:pointer}.dots .dot:hover{border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--ref-color-electric-blue-60);background:var(--comp-dot-stepper-dot-inactive-focused-background-color)}.dots .dot:focus{background:var(--comp-dot-stepper-dot-inactive-hovered-background-color)}.dots .dot:focus:after{content:\"\";width:calc(var(--comp-dot-stepper-dot-size) + var(--comp-dot-stepper-dot-inactive-border-width));height:calc(var(--comp-dot-stepper-dot-size) + var(--comp-dot-stepper-dot-inactive-border-width));top:calc(-1 * (var(--comp-dot-stepper-dot-inactive-border-width) * 2 + 1px));left:calc(-1 * (var(--comp-dot-stepper-dot-inactive-border-width) * 2 + 1px));position:absolute;border-radius:50%;border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--ref-color-electric-blue-100)}.dots .dot.active{background:var(--comp-dot-stepper-dot-active-background-color);border:var(--comp-dot-stepper-dot-inactive-border-width) solid var(--ref-color-electric-blue-150);cursor:initial}.dots .dot.disabled{cursor:initial;pointer-events:none}\n"] }]
34
+ }], propDecorators: { interactive: [{
35
+ type: Input,
36
+ args: [{
37
+ transform: booleanAttribute,
38
+ }]
39
+ }], index: [{
40
+ type: Input
41
+ }], items: [{
42
+ type: Input
43
+ }], dotClick: [{
44
+ type: Output
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2RvdC1zdGVwcGVyL3NyYy9kb3Qtc3RlcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZG90LXN0ZXBwZXIvc3JjL2RvdC1zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVU3SCxNQUFNLE9BQU8sbUJBQW1CO0lBSXpCLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDYixLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsS0FBSyxHQUFRLEVBQUUsQ0FBQztJQUNmLFFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUV0RSxXQUFXLEdBQWtCLFNBQVMsQ0FBQztJQUV2QyxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsS0FBWSxFQUFFLElBQU8sRUFBRSxLQUFhO1FBQzNDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7dUdBN0JRLG1CQUFtQjsyRkFBbkIsbUJBQW1CLHdHQUdiLGdCQUFnQixxSENkbkMsZ2FBY0EsMmdERE5jLE9BQU87OzJGQUdSLG1CQUFtQjtrQkFSL0IsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLGdCQUFnQixjQUNkLElBQUksV0FFUCxDQUFDLE9BQU8sQ0FBQzs4QkFPZixXQUFXO3NCQUZiLEtBQUs7dUJBQUM7d0JBQ0gsU0FBUyxFQUFFLGdCQUFnQjtxQkFDOUI7Z0JBQ1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwLWRvdC1zdGVwcGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb3Qtc3RlcHBlci5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW05nQ2xhc3NdLFxuICAgIHN0eWxlVXJsczogWycuL2RvdC1zdGVwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERvdFN0ZXBwZXJDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KHtcbiAgICAgICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICAgIH0pIGludGVyYWN0aXZlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBpbmRleCA9IDA7XG4gICAgQElucHV0KCkgaXRlbXM6IFRbXSA9IFtdO1xuICAgIEBPdXRwdXQoKSBkb3RDbGljazogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIGN1cnJlbnRJdGVtOiBUIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW0gPSB0aGlzLml0ZW1zW3RoaXMuaW5kZXhdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9uIGRvdCBjbGlja1xuICAgICAqIEBwYXJhbSBldmVudCBEb20gY2xpY2sgZXZlbnRcbiAgICAgKiBAcGFyYW0gaXRlbSBJdGVtIGNsaWNrZWRcbiAgICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIGl0ZW0gY2xpY2tlZFxuICAgICAqL1xuICAgIG9uRG90Q2xpY2soZXZlbnQ6IEV2ZW50LCBpdGVtOiBULCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAoIXRoaXMuaW50ZXJhY3RpdmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtID0gaXRlbTtcbiAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmRvdENsaWNrLmVtaXQodGhpcy5pbmRleCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZG90c1wiPlxuICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrIGl0ZW07IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZG90XCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgIGFjdGl2ZTogaXRlbSA9PT0gY3VycmVudEl0ZW0sXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICFpbnRlcmFjdGl2ZVxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Eb3RDbGljaygkZXZlbnQsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uRG90Q2xpY2soJGV2ZW50LCBpdGVtLCBpKVwiPjwvZGl2PlxuICAgIH1cbjwvZGl2PlxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './dot-stepper.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kb3Qtc3RlcHBlci9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kb3Qtc3RlcHBlci5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLWZvcm0tZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZm9ybS1maWVsZC9zcmMvYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLWZvcm0tZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,11 @@
1
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FormFieldComponent {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormFieldComponent, isStandalone: true, selector: "ap-form-field", ngImport: i0, template: "<div class=\"ap-form-field\">\n <ng-content select=\"label\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"ap-form-message\"></ng-content>\n</div>\n", styles: ["ap-form-field{display:block}.ap-form-field{display:inline-flex;flex-direction:column;gap:var(--comp-input-spacing-horizontal);width:100%}.ap-form-field label{display:flex;flex-direction:column;gap:var(--comp-forms-label-spacing-vertical);font-size:var(--comp-forms-label-size);font-weight:var(--comp-forms-label-font-weight);line-height:var(--comp-forms-label-line-height);font-family:var(--comp-forms-label-font-family);color:var(--comp-forms-label-text-color)}.ap-form-field label .description{font-size:var(--comp-forms-label-description-text-size);font-weight:var(--comp-forms-label-description-text-font-weight);line-height:var(--comp-forms-label-description-text-line-height);font-family:var(--comp-forms-label-description-text-font-family);color:var(--comp-forms-label-description-text-color)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormFieldComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'ap-form-field', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"ap-form-field\">\n <ng-content select=\"label\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"ap-form-message\"></ng-content>\n</div>\n", styles: ["ap-form-field{display:block}.ap-form-field{display:inline-flex;flex-direction:column;gap:var(--comp-input-spacing-horizontal);width:100%}.ap-form-field label{display:flex;flex-direction:column;gap:var(--comp-forms-label-spacing-vertical);font-size:var(--comp-forms-label-size);font-weight:var(--comp-forms-label-font-weight);line-height:var(--comp-forms-label-line-height);font-family:var(--comp-forms-label-font-family);color:var(--comp-forms-label-text-color)}.ap-form-field label .description{font-size:var(--comp-forms-label-description-text-size);font-weight:var(--comp-forms-label-description-text-font-weight);line-height:var(--comp-forms-label-description-text-line-height);font-family:var(--comp-forms-label-description-text-font-family);color:var(--comp-forms-label-description-text-color)}\n"] }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZm9ybS1maWVsZC9zcmMvZm9ybS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZm9ybS1maWVsZC9zcmMvZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVV0RixNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQix5RUNWL0Isa0xBS0E7OzJGREthLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDSSxlQUFlLGNBR2IsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1mb3JtLWZpZWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkQ29tcG9uZW50IHt9XG4iLCI8ZGl2IGNsYXNzPVwiYXAtZm9ybS1maWVsZFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImxhYmVsXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhcC1mb3JtLW1lc3NhZ2VcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './form-field.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9mb3JtLWZpZWxkL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLWZvcm0tbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9mb3JtLW1lc3NhZ2Uvc3JjL2Fnb3JhcHVsc2UtdWktY29tcG9uZW50cy1mb3JtLW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { SymbolComponent, SymbolRegistry, apErrorFill, apRoundedCheckFill } from '@agorapulse/ui-symbol';
2
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, computed, inject, signal } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class FormMessageComponent {
5
+ set messageType(messageType) {
6
+ this.messageTypeSignal.set(messageType);
7
+ }
8
+ message;
9
+ messageTypeSignal = signal('error');
10
+ symbolIdSignal = computed(() => {
11
+ return this.messageTypeSignal() === 'error' ? 'error_fill' : 'rounded-check_fill';
12
+ });
13
+ symbolRegistry = inject(SymbolRegistry);
14
+ constructor() {
15
+ this.symbolRegistry.registerSymbols([apErrorFill, apRoundedCheckFill]);
16
+ }
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: FormMessageComponent, isStandalone: true, selector: "ap-form-message", inputs: { messageType: "messageType", message: "message" }, host: { properties: { "class.error": "messageTypeSignal() === 'error'", "class.success": "messageTypeSignal() === 'success'" }, classAttribute: "ap-form-message" }, ngImport: i0, template: "<ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolIdSignal()\" />\n<span>\n {{ message }}\n</span>\n", styles: [".ap-form-message{font-size:var(--comp-forms-status-text-size);font-weight:var(--comp-forms-status-text-font-weight);line-height:var(--comp-forms-status-text-line-height);font-family:var(--comp-forms-status-text-font-family);margin:0;display:flex;align-items:center;gap:var(--ref-spacing-xxxs)}.ap-form-message.error{color:var(--comp-forms-status-text-error-color)}.ap-form-message.error ap-symbol{color:var(--comp-forms-status-icon-error-color)}.ap-form-message.success{color:var(--comp-forms-status-text-success-color)}.ap-form-message.success ap-symbol{color:var(--ref-color-green-150)}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["color", "symbolId", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormMessageComponent, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'ap-form-message', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [SymbolComponent], host: {
23
+ class: 'ap-form-message',
24
+ '[class.error]': "messageTypeSignal() === 'error'",
25
+ '[class.success]': "messageTypeSignal() === 'success'",
26
+ }, template: "<ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolIdSignal()\" />\n<span>\n {{ message }}\n</span>\n", styles: [".ap-form-message{font-size:var(--comp-forms-status-text-size);font-weight:var(--comp-forms-status-text-font-weight);line-height:var(--comp-forms-status-text-line-height);font-family:var(--comp-forms-status-text-font-family);margin:0;display:flex;align-items:center;gap:var(--ref-spacing-xxxs)}.ap-form-message.error{color:var(--comp-forms-status-text-error-color)}.ap-form-message.error ap-symbol{color:var(--comp-forms-status-icon-error-color)}.ap-form-message.success{color:var(--comp-forms-status-text-success-color)}.ap-form-message.success ap-symbol{color:var(--ref-color-green-150)}\n"] }]
27
+ }], ctorParameters: () => [], propDecorators: { messageType: [{
28
+ type: Input,
29
+ args: [{ required: true }]
30
+ }], message: [{
31
+ type: Input,
32
+ args: [{ required: true }]
33
+ }] } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9mb3JtLW1lc3NhZ2Uvc3JjL2Zvcm0tbWVzc2FnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZm9ybS1tZXNzYWdlL3NyYy9mb3JtLW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBa0J2SCxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLElBQ0ksV0FBVyxDQUFDLFdBQXdCO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUdELE9BQU8sQ0FBVTtJQUVqQixpQkFBaUIsR0FBRyxNQUFNLENBQWMsT0FBTyxDQUFDLENBQUM7SUFFakQsY0FBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDM0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7SUFDdEYsQ0FBQyxDQUFDLENBQUM7SUFFSyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRWhEO1FBQ0ksSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7dUdBbkJRLG9CQUFvQjsyRkFBcEIsb0JBQW9CLDRTQ25CakMsMkdBTUEsd29CRE1jLGVBQWU7OzJGQU9oQixvQkFBb0I7a0JBZGhDLFNBQVM7K0JBQ0ksaUJBQWlCLGNBR2YsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCLENBQUMsZUFBZSxDQUFDLFFBQ3BCO3dCQUNGLEtBQUssRUFBRSxpQkFBaUI7d0JBQ3hCLGVBQWUsRUFBRSxpQ0FBaUM7d0JBQ2xELGlCQUFpQixFQUFFLG1DQUFtQztxQkFDekQ7d0RBSUcsV0FBVztzQkFEZCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFNekIsT0FBTztzQkFETixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN5bWJvbENvbXBvbmVudCwgU3ltYm9sUmVnaXN0cnksIGFwRXJyb3JGaWxsLCBhcFJvdW5kZWRDaGVja0ZpbGwgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgTWVzc2FnZVR5cGUgPSAnZXJyb3InIHwgJ3N1Y2Nlc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwLWZvcm0tbWVzc2FnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tbWVzc2FnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS1tZXNzYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGltcG9ydHM6IFtTeW1ib2xDb21wb25lbnRdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdhcC1mb3JtLW1lc3NhZ2UnLFxuICAgICAgICAnW2NsYXNzLmVycm9yXSc6IFwibWVzc2FnZVR5cGVTaWduYWwoKSA9PT0gJ2Vycm9yJ1wiLFxuICAgICAgICAnW2NsYXNzLnN1Y2Nlc3NdJzogXCJtZXNzYWdlVHlwZVNpZ25hbCgpID09PSAnc3VjY2VzcydcIixcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtTWVzc2FnZUNvbXBvbmVudCB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBzZXQgbWVzc2FnZVR5cGUobWVzc2FnZVR5cGU6IE1lc3NhZ2VUeXBlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVR5cGVTaWduYWwuc2V0KG1lc3NhZ2VUeXBlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIG1lc3NhZ2UhOiBzdHJpbmc7XG5cbiAgICBtZXNzYWdlVHlwZVNpZ25hbCA9IHNpZ25hbDxNZXNzYWdlVHlwZT4oJ2Vycm9yJyk7XG5cbiAgICBzeW1ib2xJZFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZVR5cGVTaWduYWwoKSA9PT0gJ2Vycm9yJyA/ICdlcnJvcl9maWxsJyA6ICdyb3VuZGVkLWNoZWNrX2ZpbGwnO1xuICAgIH0pO1xuXG4gICAgcHJpdmF0ZSBzeW1ib2xSZWdpc3RyeSA9IGluamVjdChTeW1ib2xSZWdpc3RyeSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoW2FwRXJyb3JGaWxsLCBhcFJvdW5kZWRDaGVja0ZpbGxdKTtcbiAgICB9XG59XG4iLCI8YXAtc3ltYm9sXG4gICAgc2l6ZT1cInNtXCJcbiAgICBbc3ltYm9sSWRdPVwic3ltYm9sSWRTaWduYWwoKVwiIC8+XG48c3Bhbj5cbiAgICB7eyBtZXNzYWdlIH19XG48L3NwYW4+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './form-message.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9mb3JtLW1lc3NhZ2Uvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9ybS1tZXNzYWdlLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLWljb24tYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2ljb24tYnV0dG9uL3NyYy9hZ29yYXB1bHNlLXVpLWNvbXBvbmVudHMtaWNvbi1idXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==