@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 @@
1
+ {"version":3,"file":"agorapulse-ui-components-add-comment.mjs","sources":["../../../libs/ui-components/add-comment/src/add-comment.component.ts","../../../libs/ui-components/add-comment/src/add-comment.component.html","../../../libs/ui-components/add-comment/src/agorapulse-ui-components-add-comment.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport { ButtonComponent } from '@agorapulse/ui-components/button';\nimport { AutosizeTextareaDirective } from '@agorapulse/ui-components/directives';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, TemplateRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-add-comment',\n templateUrl: './add-comment.component.html',\n styleUrls: ['./add-comment.component.scss'],\n standalone: true,\n imports: [AutosizeTextareaDirective, MatInputModule, NgTemplateOutlet, ButtonComponent],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AddCommentComponent),\n multi: true,\n },\n ],\n})\nexport class AddCommentComponent implements ControlValueAccessor {\n @Input() placeholder = 'Add a comment';\n @Input() customTemplate!: TemplateRef<any>;\n @Input({\n transform: booleanAttribute,\n })\n disable = false;\n\n @Output() action: EventEmitter<string> = new EventEmitter();\n\n _commentValue = '';\n public get commentValue(): string {\n return this._commentValue;\n }\n\n public set commentValue(value: string) {\n this._commentValue = value;\n this.propagateChange(value);\n }\n\n propagateChange: any = () => {};\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n registerOnTouched(fn: any): void {}\n\n setDisabledState(isDisabled: boolean): void {\n this.disable = isDisabled;\n }\n\n writeValue(obj: any): void {\n this._commentValue = obj != undefined ? obj : '';\n this.propagateChange(this._commentValue);\n }\n\n onChange(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this._commentValue = value != undefined ? value : '';\n this.propagateChange(value);\n }\n}\n","<div class=\"add-comment\">\n <textarea\n apAutosize\n dir=\"auto\"\n matInput\n rows=\"1\"\n [placeholder]=\"placeholder\"\n [value]=\"_commentValue\"\n (keyup)=\"onChange($event)\"\n (change)=\"onChange($event)\"></textarea>\n\n <ng-template\n #defaultTemplate\n let-action=\"action\">\n <div class=\"default-template\">\n <ap-button\n name=\"\"\n [config]=\"{\n style: 'stroked',\n color: 'grey'\n }\"\n (click)=\"action.emit('send')\">\n Send\n </ap-button>\n </div>\n </ng-template>\n\n <ng-template\n [ngTemplateOutlet]=\"customTemplate || defaultTemplate\"\n [ngTemplateOutletContext]=\"{\n action: action\n }\" />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ import { AvatarComponent } from '@agorapulse/ui-components/avatar';
2
+ import { FormFieldComponent } from '@agorapulse/ui-components/form-field';
3
+ import { InputDirective } from '@agorapulse/ui-components/input';
4
+ import { InputGroupComponent } from '@agorapulse/ui-components/input-group';
5
+ import { SymbolRegistry, apSearch, SymbolComponent } from '@agorapulse/ui-symbol';
6
+ import * as i2 from '@angular/cdk/overlay';
7
+ import { OverlayModule } from '@angular/cdk/overlay';
8
+ import * as i0 from '@angular/core';
9
+ import { EventEmitter, signal, inject, NgZone, ElementRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, Output } from '@angular/core';
10
+ import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
11
+ import * as i1 from '@angular/forms';
12
+ import { FormsModule } from '@angular/forms';
13
+ import { BehaviorSubject, skip, debounceTime, distinctUntilChanged, tap, filter, switchMap, fromEvent } from 'rxjs';
14
+
15
+ // import { LoaderComponent } from '@agorapulse/ui-animations';
16
+ class AutocompleteComponent {
17
+ placeholder = 'Search...';
18
+ label = '';
19
+ inputId = '';
20
+ loadingText = 'Loading Items';
21
+ notFoundText = 'No result found';
22
+ searchFn;
23
+ trackByFn = (_, item) => item;
24
+ set disabled(value) {
25
+ this.disabledSignal.set(value);
26
+ }
27
+ optionLabel;
28
+ optionCaption;
29
+ optionImageUrl;
30
+ optionValue;
31
+ optionTextTemplate;
32
+ formField;
33
+ selectOption = new EventEmitter();
34
+ disabledSignal = signal(false);
35
+ symbolRegistry = inject(SymbolRegistry);
36
+ searchTerm$ = new BehaviorSubject('');
37
+ searchTermSignal = toSignal(this.searchTerm$);
38
+ showResultsSignal = signal(false);
39
+ resultsLoadingSignal = signal(false);
40
+ searchResultsSignal = toSignal(this.searchTerm$.pipe(skip(1), debounceTime(250), distinctUntilChanged(), tap(() => this.showResultsSignal.set(false)), filter(term => term.length > 0), tap(() => this.showResultsSignal.set(true)), tap(() => this.resultsLoadingSignal.set(true)), switchMap(term => {
41
+ return this.searchFn(term);
42
+ }), tap(() => this.resultsLoadingSignal.set(false))));
43
+ ngZone = inject(NgZone);
44
+ el = inject(ElementRef);
45
+ inputWidthSignal = signal(0);
46
+ constructor() {
47
+ this.symbolRegistry.registerSymbols([apSearch]);
48
+ this.ngZone.runOutsideAngular(() => {
49
+ fromEvent(document, 'click')
50
+ .pipe(takeUntilDestroyed())
51
+ .subscribe(e => {
52
+ const clickedInside = this.el.nativeElement.contains(e.target);
53
+ if (!clickedInside) {
54
+ this.ngZone.run(() => {
55
+ this.resetAutocomplete();
56
+ });
57
+ }
58
+ });
59
+ });
60
+ }
61
+ ngAfterViewInit() {
62
+ this.inputWidthSignal.set(this.formField.nativeElement.offsetWidth);
63
+ }
64
+ onSelectOption(option) {
65
+ if (typeof option !== 'string' && this.optionValue && option[this.optionValue]) {
66
+ this.selectOption.emit(option[this.optionValue]);
67
+ }
68
+ else {
69
+ this.selectOption.emit(option);
70
+ }
71
+ this.resetAutocomplete();
72
+ }
73
+ resetAutocomplete() {
74
+ this.searchTerm$.next('');
75
+ this.showResultsSignal.set(false);
76
+ this.resultsLoadingSignal.set(false);
77
+ }
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: AutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
79
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: AutocompleteComponent, isStandalone: true, selector: "ap-autocomplete", inputs: { placeholder: "placeholder", label: "label", inputId: "inputId", loadingText: "loadingText", notFoundText: "notFoundText", searchFn: "searchFn", trackByFn: "trackByFn", disabled: "disabled", optionLabel: "optionLabel", optionCaption: "optionCaption", optionImageUrl: "optionImageUrl", optionValue: "optionValue", optionTextTemplate: "optionTextTemplate" }, outputs: { selectOption: "selectOption" }, viewQueries: [{ propertyName: "formField", first: true, predicate: ["formField"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"input-autocomplete-wrapper\">\n <ap-form-field\n #formField\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin>\n <label [for]=\"inputId\">\n {{ label }}\n </label>\n <ap-input-group>\n <ap-symbol symbolId=\"search\" />\n <input\n apInput\n [id]=\"inputId\"\n [disabled]=\"disabledSignal()\"\n [placeholder]=\"placeholder\"\n [ngModel]=\"searchTermSignal()\"\n (ngModelChange)=\"searchTerm$.next($event)\" />\n </ap-input-group>\n </ap-form-field>\n <div class=\"search-results-wrapper\">\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayWidth]=\"inputWidthSignal()\"\n [cdkConnectedOverlayOpen]=\"showResultsSignal()\">\n <div class=\"ap-autocomplete-search-results\">\n @if (resultsLoadingSignal()) {\n <div class=\"ap-autocomplete-search-results-loading\">\n <!-- <ap-loader [diameter]=\"30\" /> -->\n <span class=\"search-results-loading-label\">{{ loadingText }}</span>\n </div>\n } @else {\n @if (searchResultsSignal()?.length) {\n @for (option of searchResultsSignal(); track trackByFn($index, option)) {\n <div\n class=\"ap-autocomplete-search-results-item\"\n tabindex=\"0\"\n (keydown.enter)=\"onSelectOption(option)\"\n (click)=\"onSelectOption(option)\">\n @if (!optionTextTemplate) {\n @if (!optionLabel || !option[optionLabel]) {\n <div class=\"option\">\n <span\n class=\"option-item\"\n [title]=\"option\">\n {{ option }}\n </span>\n </div>\n }\n @if (optionLabel && option[optionLabel]) {\n <div\n class=\"option\"\n [class.with-caption]=\"optionLabel && optionCaption && option[optionCaption]\">\n @if (!optionLabel) {\n <span class=\"item\">\n {{ option }}\n </span>\n }\n @if (optionImageUrl) {\n <ap-avatar\n [size]=\"24\"\n [showInitials]=\"true\"\n [username]=\"optionLabel ? option[optionLabel] : option\"\n [profilePicture]=\"option[optionImageUrl]\" />\n }\n @if (optionLabel && option[optionLabel]) {\n <div class=\"texts\">\n <div class=\"first-line\">\n <span\n class=\"label\"\n [title]=\"option[optionLabel]\">\n {{ option[optionLabel] }}\n </span>\n </div>\n @if (optionCaption && option[optionCaption]) {\n <span\n class=\"caption\"\n [title]=\"option[optionCaption]\">\n {{ option[optionCaption] }}\n </span>\n }\n </div>\n }\n </div>\n }\n } @else {\n <ng-container *ngTemplateOutlet=\"optionTextTemplate; context: { option: option }\" />\n }\n </div>\n }\n } @else {\n <div class=\"ap-autocomplete-search-results-not-found\">\n {{ notFoundText }}\n </div>\n }\n }\n </div>\n </ng-template>\n </div>\n</div>\n", styles: ["ap-autocomplete{display:block}ap-autocomplete .input-autocomplete-wrapper{display:flex;flex-direction:column}ap-autocomplete .search-results-wrapper{position:relative}.ap-autocomplete-search-results{width:100%;display:flex;flex-direction:column;border-radius:var(--ref-border-radius-sm);box-shadow:var(--comp-select-shadow);padding:var(--comp-select-padding-vertical) 0;background-color:var(--comp-select-background-color);margin-top:var(--ref-spacing-xxxs);max-height:250px;overflow:auto}.ap-autocomplete-search-results-loading{display:flex;padding:var(--ref-spacing-sm) 0;flex-direction:column;justify-content:center;align-items:center;gap:var(--ref-spacing-xs)}.ap-autocomplete-search-results-loading .search-results-loading-label{font-style:italic;font-size:var(--ref-font-size-sm);color:var(--ref-color-grey-80)}.ap-autocomplete-search-results-not-found{padding:var(--ref-spacing-xs) var(--ref-spacing-sm);font-style:italic;font-size:var(--ref-font-size-sm);color:var(--ref-color-grey-80);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ap-autocomplete-search-results-item{padding:var(--ref-spacing-xxs) var(--ref-spacing-sm)}.ap-autocomplete-search-results-item .option{display:flex;align-items:center;font-size:var(--comp-select-one-line-text-size);font-weight:var(--comp-select-one-line-text-font-weight);color:var(--comp-select-one-line-text-color);line-height:var(--comp-select-one-line-text-line-height);font-family:var(--comp-select-one-line-text-font-family);gap:var(--ref-spacing-xs);min-height:24px}.ap-autocomplete-search-results-item .option .option-item{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ap-autocomplete-search-results-item .option .texts{flex:1;overflow:auto}.ap-autocomplete-search-results-item .option .texts .first-line{display:flex}.ap-autocomplete-search-results-item .option .texts .label{display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}.ap-autocomplete-search-results-item .option.with-caption .texts{display:flex;flex-direction:column}.ap-autocomplete-search-results-item .option.with-caption .texts .label{color:var(--comp-select-two-line-title-text-color);font-size:var(--comp-select-two-line-title-text-size);line-height:var(--comp-select-two-line-title-text-line-height);font-weight:var(--comp-select-two-line-title-text-font-weight)}.ap-autocomplete-search-results-item .option.with-caption .texts .caption{color:var(--comp-select-two-line-caption-text-color);font-size:var(--comp-select-two-line-caption-text-size);line-height:var(--comp-select-two-line-caption-text-line-height);font-weight:var(--comp-select-two-line-caption-text-font-weight);display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}.ap-autocomplete-search-results-item:hover{cursor:pointer;background-color:var(--ref-color-electric-blue-10)}.ap-autocomplete-search-results-item:active{background-color:var(--ref-color-electric-blue-20)}.ap-autocomplete-search-results-item:focus{background-color:var(--ref-color-electric-blue-20)}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["color", "symbolId", "size"] }, { kind: "component", type: FormFieldComponent, selector: "ap-form-field" }, { kind: "component", type: InputGroupComponent, selector: "ap-input-group", inputs: ["symbolPosition"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type:
80
+ // LoaderComponent,
81
+ InputDirective, selector: "[apInput]" }, { kind: "component", type: AvatarComponent, selector: "ap-avatar", inputs: ["alternativeText", "anonymous", "username", "network", "online", "profilePicture", "showInitials", "alt", "rounded", "size"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i2.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i2.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: AutocompleteComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-autocomplete', standalone: true, imports: [
86
+ SymbolComponent,
87
+ FormFieldComponent,
88
+ InputGroupComponent,
89
+ FormsModule,
90
+ // LoaderComponent,
91
+ InputDirective,
92
+ AvatarComponent,
93
+ OverlayModule,
94
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"input-autocomplete-wrapper\">\n <ap-form-field\n #formField\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin>\n <label [for]=\"inputId\">\n {{ label }}\n </label>\n <ap-input-group>\n <ap-symbol symbolId=\"search\" />\n <input\n apInput\n [id]=\"inputId\"\n [disabled]=\"disabledSignal()\"\n [placeholder]=\"placeholder\"\n [ngModel]=\"searchTermSignal()\"\n (ngModelChange)=\"searchTerm$.next($event)\" />\n </ap-input-group>\n </ap-form-field>\n <div class=\"search-results-wrapper\">\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayWidth]=\"inputWidthSignal()\"\n [cdkConnectedOverlayOpen]=\"showResultsSignal()\">\n <div class=\"ap-autocomplete-search-results\">\n @if (resultsLoadingSignal()) {\n <div class=\"ap-autocomplete-search-results-loading\">\n <!-- <ap-loader [diameter]=\"30\" /> -->\n <span class=\"search-results-loading-label\">{{ loadingText }}</span>\n </div>\n } @else {\n @if (searchResultsSignal()?.length) {\n @for (option of searchResultsSignal(); track trackByFn($index, option)) {\n <div\n class=\"ap-autocomplete-search-results-item\"\n tabindex=\"0\"\n (keydown.enter)=\"onSelectOption(option)\"\n (click)=\"onSelectOption(option)\">\n @if (!optionTextTemplate) {\n @if (!optionLabel || !option[optionLabel]) {\n <div class=\"option\">\n <span\n class=\"option-item\"\n [title]=\"option\">\n {{ option }}\n </span>\n </div>\n }\n @if (optionLabel && option[optionLabel]) {\n <div\n class=\"option\"\n [class.with-caption]=\"optionLabel && optionCaption && option[optionCaption]\">\n @if (!optionLabel) {\n <span class=\"item\">\n {{ option }}\n </span>\n }\n @if (optionImageUrl) {\n <ap-avatar\n [size]=\"24\"\n [showInitials]=\"true\"\n [username]=\"optionLabel ? option[optionLabel] : option\"\n [profilePicture]=\"option[optionImageUrl]\" />\n }\n @if (optionLabel && option[optionLabel]) {\n <div class=\"texts\">\n <div class=\"first-line\">\n <span\n class=\"label\"\n [title]=\"option[optionLabel]\">\n {{ option[optionLabel] }}\n </span>\n </div>\n @if (optionCaption && option[optionCaption]) {\n <span\n class=\"caption\"\n [title]=\"option[optionCaption]\">\n {{ option[optionCaption] }}\n </span>\n }\n </div>\n }\n </div>\n }\n } @else {\n <ng-container *ngTemplateOutlet=\"optionTextTemplate; context: { option: option }\" />\n }\n </div>\n }\n } @else {\n <div class=\"ap-autocomplete-search-results-not-found\">\n {{ notFoundText }}\n </div>\n }\n }\n </div>\n </ng-template>\n </div>\n</div>\n", styles: ["ap-autocomplete{display:block}ap-autocomplete .input-autocomplete-wrapper{display:flex;flex-direction:column}ap-autocomplete .search-results-wrapper{position:relative}.ap-autocomplete-search-results{width:100%;display:flex;flex-direction:column;border-radius:var(--ref-border-radius-sm);box-shadow:var(--comp-select-shadow);padding:var(--comp-select-padding-vertical) 0;background-color:var(--comp-select-background-color);margin-top:var(--ref-spacing-xxxs);max-height:250px;overflow:auto}.ap-autocomplete-search-results-loading{display:flex;padding:var(--ref-spacing-sm) 0;flex-direction:column;justify-content:center;align-items:center;gap:var(--ref-spacing-xs)}.ap-autocomplete-search-results-loading .search-results-loading-label{font-style:italic;font-size:var(--ref-font-size-sm);color:var(--ref-color-grey-80)}.ap-autocomplete-search-results-not-found{padding:var(--ref-spacing-xs) var(--ref-spacing-sm);font-style:italic;font-size:var(--ref-font-size-sm);color:var(--ref-color-grey-80);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ap-autocomplete-search-results-item{padding:var(--ref-spacing-xxs) var(--ref-spacing-sm)}.ap-autocomplete-search-results-item .option{display:flex;align-items:center;font-size:var(--comp-select-one-line-text-size);font-weight:var(--comp-select-one-line-text-font-weight);color:var(--comp-select-one-line-text-color);line-height:var(--comp-select-one-line-text-line-height);font-family:var(--comp-select-one-line-text-font-family);gap:var(--ref-spacing-xs);min-height:24px}.ap-autocomplete-search-results-item .option .option-item{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ap-autocomplete-search-results-item .option .texts{flex:1;overflow:auto}.ap-autocomplete-search-results-item .option .texts .first-line{display:flex}.ap-autocomplete-search-results-item .option .texts .label{display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}.ap-autocomplete-search-results-item .option.with-caption .texts{display:flex;flex-direction:column}.ap-autocomplete-search-results-item .option.with-caption .texts .label{color:var(--comp-select-two-line-title-text-color);font-size:var(--comp-select-two-line-title-text-size);line-height:var(--comp-select-two-line-title-text-line-height);font-weight:var(--comp-select-two-line-title-text-font-weight)}.ap-autocomplete-search-results-item .option.with-caption .texts .caption{color:var(--comp-select-two-line-caption-text-color);font-size:var(--comp-select-two-line-caption-text-size);line-height:var(--comp-select-two-line-caption-text-line-height);font-weight:var(--comp-select-two-line-caption-text-font-weight);display:inline-block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%}.ap-autocomplete-search-results-item:hover{cursor:pointer;background-color:var(--ref-color-electric-blue-10)}.ap-autocomplete-search-results-item:active{background-color:var(--ref-color-electric-blue-20)}.ap-autocomplete-search-results-item:focus{background-color:var(--ref-color-electric-blue-20)}\n"] }]
95
+ }], ctorParameters: () => [], propDecorators: { placeholder: [{
96
+ type: Input
97
+ }], label: [{
98
+ type: Input
99
+ }], inputId: [{
100
+ type: Input
101
+ }], loadingText: [{
102
+ type: Input
103
+ }], notFoundText: [{
104
+ type: Input
105
+ }], searchFn: [{
106
+ type: Input,
107
+ args: [{ required: true }]
108
+ }], trackByFn: [{
109
+ type: Input
110
+ }], disabled: [{
111
+ type: Input
112
+ }], optionLabel: [{
113
+ type: Input
114
+ }], optionCaption: [{
115
+ type: Input
116
+ }], optionImageUrl: [{
117
+ type: Input
118
+ }], optionValue: [{
119
+ type: Input
120
+ }], optionTextTemplate: [{
121
+ type: Input
122
+ }], formField: [{
123
+ type: ViewChild,
124
+ args: ['formField', { read: ElementRef }]
125
+ }], selectOption: [{
126
+ type: Output
127
+ }] } });
128
+
129
+ /**
130
+ * Generated bundle index. Do not edit.
131
+ */
132
+
133
+ export { AutocompleteComponent };
134
+ //# sourceMappingURL=agorapulse-ui-components-autocomplete.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agorapulse-ui-components-autocomplete.mjs","sources":["../../../libs/ui-components/autocomplete/src/autocomplete.component.ts","../../../libs/ui-components/autocomplete/src/autocomplete.component.html","../../../libs/ui-components/autocomplete/src/agorapulse-ui-components-autocomplete.ts"],"sourcesContent":["// import { LoaderComponent } from '@agorapulse/ui-animations';\nimport { AvatarComponent } from '@agorapulse/ui-components/avatar';\nimport { FormFieldComponent } from '@agorapulse/ui-components/form-field';\nimport { InputDirective } from '@agorapulse/ui-components/input';\nimport { InputGroupComponent } from '@agorapulse/ui-components/input-group';\nimport { SymbolComponent, SymbolRegistry, apSearch } from '@agorapulse/ui-symbol';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { BehaviorSubject, Observable, debounceTime, distinctUntilChanged, filter, fromEvent, skip, switchMap, tap } from 'rxjs';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-autocomplete',\n styleUrls: ['./autocomplete.component.scss'],\n standalone: true,\n imports: [\n SymbolComponent,\n FormFieldComponent,\n InputGroupComponent,\n FormsModule,\n // LoaderComponent,\n InputDirective,\n AvatarComponent,\n OverlayModule,\n ],\n templateUrl: './autocomplete.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AutocompleteComponent<T extends Record<string, unknown> | string> implements AfterViewInit {\n @Input() placeholder = 'Search...';\n @Input() label = '';\n @Input() inputId = '';\n @Input() loadingText = 'Loading Items';\n @Input() notFoundText = 'No result found';\n @Input({ required: true }) searchFn!: (term: string) => Observable<T[]>;\n @Input() trackByFn: (index: number, item: T) => T | T[keyof T] = (_: number, item: T) => item;\n @Input() set disabled(value: boolean) {\n this.disabledSignal.set(value);\n }\n @Input() optionLabel?: string;\n @Input() optionCaption?: string;\n @Input() optionImageUrl?: string;\n @Input() optionValue?: string;\n @Input() optionTextTemplate?: TemplateRef<{ option: T }>;\n\n @ViewChild('formField', { read: ElementRef }) formField!: ElementRef<FormFieldComponent>;\n\n @Output()\n selectOption: EventEmitter<unknown> = new EventEmitter<unknown>();\n\n readonly disabledSignal = signal(false);\n readonly symbolRegistry: SymbolRegistry = inject(SymbolRegistry);\n readonly searchTerm$ = new BehaviorSubject<string>('');\n readonly searchTermSignal = toSignal(this.searchTerm$);\n readonly showResultsSignal = signal(false);\n readonly resultsLoadingSignal = signal(false);\n readonly searchResultsSignal = toSignal<any[]>(\n this.searchTerm$.pipe(\n skip(1),\n debounceTime(250),\n distinctUntilChanged(),\n tap(() => this.showResultsSignal.set(false)),\n filter(term => term.length > 0),\n tap(() => this.showResultsSignal.set(true)),\n tap(() => this.resultsLoadingSignal.set(true)),\n switchMap(term => {\n return this.searchFn(term);\n }),\n tap(() => this.resultsLoadingSignal.set(false))\n )\n );\n private readonly ngZone = inject(NgZone);\n private readonly el = inject(ElementRef);\n readonly inputWidthSignal = signal(0);\n\n constructor() {\n this.symbolRegistry.registerSymbols([apSearch]);\n this.ngZone.runOutsideAngular(() => {\n fromEvent(document, 'click')\n .pipe(takeUntilDestroyed())\n .subscribe(e => {\n const clickedInside = this.el.nativeElement.contains(e.target);\n if (!clickedInside) {\n this.ngZone.run(() => {\n this.resetAutocomplete();\n });\n }\n });\n });\n }\n\n ngAfterViewInit(): void {\n this.inputWidthSignal.set((this.formField.nativeElement as HTMLElement).offsetWidth);\n }\n\n onSelectOption(option: T) {\n if (typeof option !== 'string' && this.optionValue && option[this.optionValue]) {\n this.selectOption.emit(option[this.optionValue]);\n } else {\n this.selectOption.emit(option);\n }\n this.resetAutocomplete();\n }\n\n private resetAutocomplete() {\n this.searchTerm$.next('');\n this.showResultsSignal.set(false);\n this.resultsLoadingSignal.set(false);\n }\n}\n","<div class=\"input-autocomplete-wrapper\">\n <ap-form-field\n #formField\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin>\n <label [for]=\"inputId\">\n {{ label }}\n </label>\n <ap-input-group>\n <ap-symbol symbolId=\"search\" />\n <input\n apInput\n [id]=\"inputId\"\n [disabled]=\"disabledSignal()\"\n [placeholder]=\"placeholder\"\n [ngModel]=\"searchTermSignal()\"\n (ngModelChange)=\"searchTerm$.next($event)\" />\n </ap-input-group>\n </ap-form-field>\n <div class=\"search-results-wrapper\">\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayWidth]=\"inputWidthSignal()\"\n [cdkConnectedOverlayOpen]=\"showResultsSignal()\">\n <div class=\"ap-autocomplete-search-results\">\n @if (resultsLoadingSignal()) {\n <div class=\"ap-autocomplete-search-results-loading\">\n <!-- <ap-loader [diameter]=\"30\" /> -->\n <span class=\"search-results-loading-label\">{{ loadingText }}</span>\n </div>\n } @else {\n @if (searchResultsSignal()?.length) {\n @for (option of searchResultsSignal(); track trackByFn($index, option)) {\n <div\n class=\"ap-autocomplete-search-results-item\"\n tabindex=\"0\"\n (keydown.enter)=\"onSelectOption(option)\"\n (click)=\"onSelectOption(option)\">\n @if (!optionTextTemplate) {\n @if (!optionLabel || !option[optionLabel]) {\n <div class=\"option\">\n <span\n class=\"option-item\"\n [title]=\"option\">\n {{ option }}\n </span>\n </div>\n }\n @if (optionLabel && option[optionLabel]) {\n <div\n class=\"option\"\n [class.with-caption]=\"optionLabel && optionCaption && option[optionCaption]\">\n @if (!optionLabel) {\n <span class=\"item\">\n {{ option }}\n </span>\n }\n @if (optionImageUrl) {\n <ap-avatar\n [size]=\"24\"\n [showInitials]=\"true\"\n [username]=\"optionLabel ? option[optionLabel] : option\"\n [profilePicture]=\"option[optionImageUrl]\" />\n }\n @if (optionLabel && option[optionLabel]) {\n <div class=\"texts\">\n <div class=\"first-line\">\n <span\n class=\"label\"\n [title]=\"option[optionLabel]\">\n {{ option[optionLabel] }}\n </span>\n </div>\n @if (optionCaption && option[optionCaption]) {\n <span\n class=\"caption\"\n [title]=\"option[optionCaption]\">\n {{ option[optionCaption] }}\n </span>\n }\n </div>\n }\n </div>\n }\n } @else {\n <ng-container *ngTemplateOutlet=\"optionTextTemplate; context: { option: option }\" />\n }\n </div>\n }\n } @else {\n <div class=\"ap-autocomplete-search-results-not-found\">\n {{ notFoundText }}\n </div>\n }\n }\n </div>\n </ng-template>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,235 @@
1
+ import * as i1 from '@agorapulse/ui-symbol';
2
+ import { apSingleNeutral, apShowTheaterMaskHappy, apFacebookOfficial, apLinkedinOfficial, apYoutubeOfficial, apTiktokOfficial, apGoogleMyBusinessOfficial, apPinterestOfficial, apNsThreadsLogo, apXOfficial, apWebBlogs, apWebNews, SymbolComponent } from '@agorapulse/ui-symbol';
3
+ import { NgClass, NgOptimizedImage } from '@angular/common';
4
+ import * as i0 from '@angular/core';
5
+ import { booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, HostBinding } from '@angular/core';
6
+ import { LetDirective } from '@ngrx/component';
7
+ import { BehaviorSubject, Observable, of, map, combineLatest } from 'rxjs';
8
+
9
+ const AVATAR_NETWORK_ARRAY = ['facebook', 'linkedin', 'twitter', 'X', 'youtube', 'googleMyBusiness', 'google', 'instagram', 'threads', 'tiktok', 'pinterest', 'webBlog', 'webNews'];
10
+ const ROUND_BORDER_AVATAR_NETWORK = ['facebook', 'twitter', 'youtube', 'tiktok', 'X', 'pinterest', 'webBlog', 'webNews', 'threads'];
11
+ const onlineIconSizeByAvatarSize = {
12
+ 56: 16,
13
+ 48: 12,
14
+ 40: 12,
15
+ 36: 8,
16
+ 32: 8,
17
+ 24: 6,
18
+ 16: 6,
19
+ };
20
+ const symbolSizeByAvatarSize = {
21
+ 56: 28,
22
+ 48: 24,
23
+ 40: 20,
24
+ 36: 18,
25
+ 32: 16,
26
+ 24: 12,
27
+ 16: 8,
28
+ };
29
+ const networkSizeByAvatarSize = {
30
+ 56: 16,
31
+ 48: 16,
32
+ 40: 16,
33
+ 36: 16,
34
+ 32: 12,
35
+ 24: 12,
36
+ 16: 8,
37
+ };
38
+ const initialSizeByAvatarSize = {
39
+ 56: 28,
40
+ 48: 24,
41
+ 40: 22,
42
+ 36: 18,
43
+ 32: 18,
44
+ 24: 14,
45
+ 16: 10,
46
+ };
47
+ class AvatarComponent {
48
+ symbolRegistry;
49
+ elementRef;
50
+ networkSymbolByNetwork = {
51
+ facebook: 'facebook-official',
52
+ instagram: 'instagram-official',
53
+ X: 'x-official',
54
+ twitter: 'x-official',
55
+ linkedin: 'linkedin-official',
56
+ tiktok: 'tiktok-official',
57
+ youtube: 'youtube-official',
58
+ pinterest: 'pinterest-official',
59
+ threads: 'ns-threads-logo',
60
+ googleMyBusiness: 'google-my-business-official',
61
+ google: 'google-my-business-official',
62
+ webNews: 'web-news',
63
+ webBlog: 'web-blogs',
64
+ };
65
+ size$ = new BehaviorSubject(40);
66
+ profilePicture$ = new BehaviorSubject('');
67
+ network$ = new BehaviorSubject(undefined);
68
+ alternativeText$ = new BehaviorSubject('');
69
+ anonymous$ = new BehaviorSubject(false);
70
+ username$ = new BehaviorSubject('');
71
+ online$ = new BehaviorSubject(false);
72
+ showInitials$ = new BehaviorSubject(false);
73
+ rounded$ = new BehaviorSubject(true);
74
+ set alternativeText(alternativeText) {
75
+ this.alternativeText$.next(alternativeText);
76
+ }
77
+ set anonymous(anonymous) {
78
+ this.anonymous$.next(anonymous);
79
+ }
80
+ set username(username) {
81
+ this.username$.next(username);
82
+ }
83
+ set network(network) {
84
+ this.network$.next(network);
85
+ this.elementRef.nativeElement.style.setProperty('--ap-avatar-network-size', `${networkSizeByAvatarSize[this.size$.value]}px`);
86
+ }
87
+ set online(online) {
88
+ this.online$.next(online);
89
+ }
90
+ set profilePicture(profilePicture) {
91
+ this.profilePicture$.next(profilePicture);
92
+ this.imageError$.next(false);
93
+ }
94
+ set showInitials(showInitials) {
95
+ this.showInitials$.next(showInitials);
96
+ }
97
+ alt = '';
98
+ roundedAvatar = true;
99
+ set rounded(rounded) {
100
+ this.roundedAvatar = rounded;
101
+ this.rounded$.next(rounded);
102
+ }
103
+ // TODO - migrate to signal input and remove size input
104
+ set size(size) {
105
+ this.size$.next(+size);
106
+ this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `${size}px`);
107
+ this.elementRef.nativeElement.style.setProperty('--ap-avatar-symbol-size', `${symbolSizeByAvatarSize[size]}px`);
108
+ this.elementRef.nativeElement.style.setProperty('--ap-avatar-online-icon-size', `${onlineIconSizeByAvatarSize[size]}px`);
109
+ }
110
+ displayProfilePicture$ = new Observable();
111
+ displaySingleNeutralSvg$ = new Observable();
112
+ displayInitials$ = new Observable();
113
+ displayAnonymous$ = new Observable();
114
+ displayNetwork$ = new Observable();
115
+ displayOnline$ = new Observable();
116
+ imageError$ = new BehaviorSubject(false);
117
+ initials$ = new Observable();
118
+ initialsAvailable$ = of(false);
119
+ socialNetwork$ = of(false);
120
+ constructor(symbolRegistry, elementRef) {
121
+ this.symbolRegistry = symbolRegistry;
122
+ this.elementRef = elementRef;
123
+ this.symbolRegistry.registerSymbols([
124
+ apSingleNeutral,
125
+ apShowTheaterMaskHappy,
126
+ apFacebookOfficial,
127
+ apLinkedinOfficial,
128
+ apYoutubeOfficial,
129
+ apTiktokOfficial,
130
+ apGoogleMyBusinessOfficial,
131
+ apPinterestOfficial,
132
+ apNsThreadsLogo,
133
+ apXOfficial,
134
+ apWebBlogs,
135
+ apWebNews,
136
+ ]);
137
+ this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `40px`);
138
+ this.elementRef.nativeElement.style.setProperty('--ap-avatar-symbol-size', `${symbolSizeByAvatarSize[this.size$.value]}px`);
139
+ }
140
+ ngOnInit() {
141
+ this.initialsAvailable$ = this.username$.pipe(map(username => {
142
+ return !!username;
143
+ }));
144
+ this.displayProfilePicture$ = combineLatest([this.profilePicture$, this.anonymous$, this.imageError$, this.showInitials$]).pipe(map(([profilePicture, anonymous, imageError]) => {
145
+ return !!profilePicture && !anonymous && !imageError;
146
+ }));
147
+ this.displayInitials$ = combineLatest([
148
+ this.showInitials$,
149
+ this.anonymous$,
150
+ this.initialsAvailable$,
151
+ this.displayProfilePicture$,
152
+ ]).pipe(map(([showInitials, anonymous, initialsAvailable, displayProfilePicture]) => {
153
+ return showInitials && !anonymous && initialsAvailable && !displayProfilePicture;
154
+ }));
155
+ this.displaySingleNeutralSvg$ = combineLatest([
156
+ this.profilePicture$,
157
+ this.imageError$,
158
+ this.initialsAvailable$,
159
+ this.showInitials$,
160
+ this.anonymous$,
161
+ this.displayInitials$,
162
+ this.displayProfilePicture$,
163
+ ]).pipe(map(([profilePicture, imageError, initialsAvailable, showInitials, anonymous, displayInitials, displayProfilePicture]) => {
164
+ return ((!profilePicture || imageError || !initialsAvailable || (initialsAvailable && !showInitials)) &&
165
+ !anonymous &&
166
+ !displayInitials &&
167
+ !displayProfilePicture);
168
+ }));
169
+ this.displayAnonymous$ = combineLatest([this.anonymous$, this.rounded$]).pipe(map(([anonymous, rounded]) => {
170
+ return anonymous && rounded;
171
+ }));
172
+ this.displayOnline$ = combineLatest([this.online$, this.rounded$]).pipe(map(([online, rounded]) => {
173
+ return online && rounded;
174
+ }));
175
+ this.displayNetwork$ = combineLatest([this.network$, this.rounded$]).pipe(map(([network, rounded]) => {
176
+ return !!network && rounded;
177
+ }));
178
+ this.socialNetwork$ = this.network$.pipe(map(network => {
179
+ if (!network) {
180
+ return false;
181
+ }
182
+ return ROUND_BORDER_AVATAR_NETWORK.indexOf(network) > -1;
183
+ }));
184
+ this.initials$ = combineLatest([this.displayInitials$, this.username$]).pipe(map(([displayInitials, username]) => {
185
+ if ((displayInitials && !username) || !displayInitials) {
186
+ return '';
187
+ }
188
+ this.elementRef.nativeElement.style.setProperty('--ap-avatar-initials-size', `${initialSizeByAvatarSize[this.size$.value]}px`);
189
+ const names = username?.split(' ');
190
+ return `${names[0].charAt(0).toUpperCase()}`;
191
+ }));
192
+ }
193
+ onImageError() {
194
+ this.imageError$.next(true);
195
+ }
196
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: AvatarComponent, deps: [{ token: i1.SymbolRegistry }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
197
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: AvatarComponent, isStandalone: true, selector: "ap-avatar", inputs: { alternativeText: "alternativeText", anonymous: "anonymous", username: "username", network: "network", online: "online", profilePicture: "profilePicture", showInitials: "showInitials", alt: "alt", rounded: ["rounded", "rounded", booleanAttribute], size: "size" }, host: { properties: { "class.rounded-avatar": "this.roundedAvatar" } }, ngImport: i0, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$,\n socialNetwork: socialNetwork$\n } as avatarViewModel\">\n @if (avatarViewModel.displayProfilePicture) {\n <img\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n }\n @if (avatarViewModel.displaySingleNeutralSvg) {\n <div class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\" />\n </div>\n }\n\n @if (avatarViewModel.displayAnonymous) {\n <div class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\" />\n </div>\n }\n @if (avatarViewModel.displayOnline) {\n <div class=\"online\"></div>\n }\n @if (avatarViewModel.displayNetwork) {\n <div\n class=\"network\"\n [class.social-network]=\"avatarViewModel.socialNetwork\"\n [ngClass]=\"avatarViewModel.network\">\n @if (avatarViewModel.network) {\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\" />\n }\n </div>\n }\n\n @if (avatarViewModel.displayInitials) {\n <div class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n }\n</ng-container>\n", styles: ["ap-avatar{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);border-radius:var(--sys-border-radius-sm);background:var(--ref-color-grey-40);box-sizing:border-box;position:relative;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar.rounded-avatar{border-radius:100%}ap-avatar.rounded-avatar img,ap-avatar.rounded-avatar .no-profile-picture,ap-avatar.rounded-avatar .anonymous{border-radius:100%}ap-avatar img{overflow:hidden;border-radius:var(--sys-border-radius-sm);box-sizing:border-box}ap-avatar .no-profile-picture,ap-avatar .anonymous{display:flex;justify-content:center;align-items:center;background:var(--ref-color-grey-40);border-radius:var(--sys-border-radius-sm)}ap-avatar .no-profile-picture ap-symbol,ap-avatar .anonymous ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}ap-avatar .anonymous{margin-top:7%}ap-avatar .online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}ap-avatar .initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}ap-avatar .network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar .network.social-network{border-radius:100%}ap-avatar .network.instagram{border-radius:28%}ap-avatar .network.youtube{bottom:-1px;border-radius:unset;overflow:visible;box-shadow:none}ap-avatar .network.linkedin{border-radius:6%}ap-avatar .network.googleMyBusiness,ap-avatar .network.google{box-shadow:none;border-radius:unset}ap-avatar .network ap-symbol img{border-radius:0;border:none}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["color", "symbolId", "size"] }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
198
+ }
199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: AvatarComponent, decorators: [{
200
+ type: Component,
201
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-avatar', standalone: true, imports: [NgOptimizedImage, SymbolComponent, LetDirective, NgClass], encapsulation: ViewEncapsulation.None, template: "<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$,\n socialNetwork: socialNetwork$\n } as avatarViewModel\">\n @if (avatarViewModel.displayProfilePicture) {\n <img\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n }\n @if (avatarViewModel.displaySingleNeutralSvg) {\n <div class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\" />\n </div>\n }\n\n @if (avatarViewModel.displayAnonymous) {\n <div class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\" />\n </div>\n }\n @if (avatarViewModel.displayOnline) {\n <div class=\"online\"></div>\n }\n @if (avatarViewModel.displayNetwork) {\n <div\n class=\"network\"\n [class.social-network]=\"avatarViewModel.socialNetwork\"\n [ngClass]=\"avatarViewModel.network\">\n @if (avatarViewModel.network) {\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\" />\n }\n </div>\n }\n\n @if (avatarViewModel.displayInitials) {\n <div class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n }\n</ng-container>\n", styles: ["ap-avatar{display:flex;justify-content:center;align-items:center;height:var(--ap-avatar-size);min-height:var(--ap-avatar-size);max-height:var(--ap-avatar-size);width:var(--ap-avatar-size);min-width:var(--ap-avatar-size);max-width:var(--ap-avatar-size);border-radius:var(--sys-border-radius-sm);background:var(--ref-color-grey-40);box-sizing:border-box;position:relative;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar.rounded-avatar{border-radius:100%}ap-avatar.rounded-avatar img,ap-avatar.rounded-avatar .no-profile-picture,ap-avatar.rounded-avatar .anonymous{border-radius:100%}ap-avatar img{overflow:hidden;border-radius:var(--sys-border-radius-sm);box-sizing:border-box}ap-avatar .no-profile-picture,ap-avatar .anonymous{display:flex;justify-content:center;align-items:center;background:var(--ref-color-grey-40);border-radius:var(--sys-border-radius-sm)}ap-avatar .no-profile-picture ap-symbol,ap-avatar .anonymous ap-symbol{color:var(--ref-color-white);width:var(--ap-avatar-symbol-size);min-width:var(--ap-avatar-symbol-size);max-width:var(--ap-avatar-symbol-size);height:var(--ap-avatar-symbol-size);min-height:var(--ap-avatar-symbol-size);max-height:var(--ap-avatar-symbol-size)}ap-avatar .anonymous{margin-top:7%}ap-avatar .online{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-online-icon-size);max-height:var(--ap-avatar-online-icon-size);width:var(--ap-avatar-online-icon-size);min-width:var(--ap-avatar-online-icon-size);max-width:var(--ap-avatar-online-icon-size);border-radius:100%;overflow:hidden;background:var(--ref-color-grey-40);box-sizing:border-box;border:1px solid var(--ref-color-white);bottom:0;right:0;background:var(--ref-color-green-100)}ap-avatar .initials{font-weight:var(--ref-font-weight-bold);font-size:var(--ap-avatar-initials-size);line-height:var(--ref-font-line-height-xl);font-family:Averta;color:var(--ref-color-white)}ap-avatar .network{position:absolute;height:var(--ap-avatar-online-icon-size);min-height:var(--ap-avatar-network-size);max-height:var(--ap-avatar-network-size);width:var(--ap-avatar-network-size);min-width:var(--ap-avatar-network-size);max-width:var(--ap-avatar-network-size);overflow:hidden;box-sizing:border-box;bottom:0;right:0;box-shadow:0 0 0 1px var(--ref-color-grey-10)}ap-avatar .network.social-network{border-radius:100%}ap-avatar .network.instagram{border-radius:28%}ap-avatar .network.youtube{bottom:-1px;border-radius:unset;overflow:visible;box-shadow:none}ap-avatar .network.linkedin{border-radius:6%}ap-avatar .network.googleMyBusiness,ap-avatar .network.google{box-shadow:none;border-radius:unset}ap-avatar .network ap-symbol img{border-radius:0;border:none}\n"] }]
202
+ }], ctorParameters: () => [{ type: i1.SymbolRegistry }, { type: i0.ElementRef }], propDecorators: { alternativeText: [{
203
+ type: Input
204
+ }], anonymous: [{
205
+ type: Input
206
+ }], username: [{
207
+ type: Input
208
+ }], network: [{
209
+ type: Input
210
+ }], online: [{
211
+ type: Input
212
+ }], profilePicture: [{
213
+ type: Input
214
+ }], showInitials: [{
215
+ type: Input
216
+ }], alt: [{
217
+ type: Input
218
+ }], roundedAvatar: [{
219
+ type: HostBinding,
220
+ args: ['class.rounded-avatar']
221
+ }], rounded: [{
222
+ type: Input,
223
+ args: [{
224
+ transform: booleanAttribute,
225
+ }]
226
+ }], size: [{
227
+ type: Input
228
+ }] } });
229
+
230
+ /**
231
+ * Generated bundle index. Do not edit.
232
+ */
233
+
234
+ export { AVATAR_NETWORK_ARRAY, AvatarComponent };
235
+ //# sourceMappingURL=agorapulse-ui-components-avatar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agorapulse-ui-components-avatar.mjs","sources":["../../../libs/ui-components/avatar/src/avatar.component.ts","../../../libs/ui-components/avatar/src/avatar.component.html","../../../libs/ui-components/avatar/src/agorapulse-ui-components-avatar.ts"],"sourcesContent":["import {\n SymbolComponent,\n SymbolRegistry,\n apFacebookOfficial,\n apGoogleMyBusinessOfficial,\n apLinkedinOfficial,\n apPinterestOfficial,\n apNsThreadsLogo,\n apShowTheaterMaskHappy,\n apSingleNeutral,\n apTiktokOfficial,\n apWebBlogs,\n apWebNews,\n apXOfficial,\n apYoutubeOfficial,\n} from '@agorapulse/ui-symbol';\nimport {NgClass, NgOptimizedImage} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n ViewEncapsulation,\n booleanAttribute,\n} from '@angular/core';\nimport { LetDirective } from '@ngrx/component';\nimport { BehaviorSubject, Observable, combineLatest, map, of } from 'rxjs';\n\nexport type AvatarSize = 56 | 48 | 40 | 36 | 32 | 24 | 16;\n\nexport const AVATAR_NETWORK_ARRAY = ['facebook', 'linkedin', 'twitter', 'X', 'youtube', 'googleMyBusiness', 'google', 'instagram', 'threads', 'tiktok', 'pinterest', 'webBlog', 'webNews'];\nconst ROUND_BORDER_AVATAR_NETWORK: typeof AVATAR_NETWORK_ARRAY[number][] = ['facebook', 'twitter', 'youtube', 'tiktok', 'X', 'pinterest', 'webBlog', 'webNews', 'threads'];\nexport type AvatarNetwork = typeof AVATAR_NETWORK_ARRAY[number];\n\nconst onlineIconSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 12,\n 40: 12,\n 36: 8,\n 32: 8,\n 24: 6,\n 16: 6,\n};\n\nconst symbolSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 20,\n 36: 18,\n 32: 16,\n 24: 12,\n 16: 8,\n};\n\nconst networkSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 16,\n 48: 16,\n 40: 16,\n 36: 16,\n 32: 12,\n 24: 12,\n 16: 8,\n};\n\nconst initialSizeByAvatarSize: Record<AvatarSize, number> = {\n 56: 28,\n 48: 24,\n 40: 22,\n 36: 18,\n 32: 18,\n 24: 14,\n 16: 10,\n};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-avatar',\n styleUrls: ['./avatar.component.scss'],\n standalone: true,\n imports: [NgOptimizedImage, SymbolComponent, LetDirective, NgClass],\n templateUrl: './avatar.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AvatarComponent implements OnInit {\n readonly networkSymbolByNetwork: Record<AvatarNetwork, string> = {\n facebook: 'facebook-official',\n instagram: 'instagram-official',\n X: 'x-official',\n twitter: 'x-official',\n linkedin: 'linkedin-official',\n tiktok: 'tiktok-official',\n youtube: 'youtube-official',\n pinterest: 'pinterest-official',\n threads: 'ns-threads-logo',\n googleMyBusiness: 'google-my-business-official',\n google: 'google-my-business-official',\n webNews: 'web-news',\n webBlog: 'web-blogs',\n };\n\n size$: BehaviorSubject<AvatarSize> = new BehaviorSubject<AvatarSize>(40);\n profilePicture$: BehaviorSubject<string | undefined> = new BehaviorSubject<string | undefined>('');\n network$: BehaviorSubject<AvatarNetwork | undefined> = new BehaviorSubject<AvatarNetwork | undefined>(undefined);\n\n private alternativeText$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private anonymous$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private username$: BehaviorSubject<string> = new BehaviorSubject<string>('');\n private online$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private showInitials$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private rounded$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n\n @Input() set alternativeText(alternativeText: string) {\n this.alternativeText$.next(alternativeText);\n }\n\n @Input() set anonymous(anonymous: boolean) {\n this.anonymous$.next(anonymous);\n }\n\n @Input() set username(username: string) {\n this.username$.next(username);\n }\n\n @Input() set network(network: AvatarNetwork | undefined) {\n this.network$.next(network);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-network-size', `${networkSizeByAvatarSize[this.size$.value]}px`);\n }\n\n @Input() set online(online: boolean) {\n this.online$.next(online);\n }\n\n @Input() set profilePicture(profilePicture: string | undefined) {\n this.profilePicture$.next(profilePicture);\n this.imageError$.next(false);\n }\n\n @Input() set showInitials(showInitials: boolean) {\n this.showInitials$.next(showInitials);\n }\n @Input() alt = '';\n\n @HostBinding('class.rounded-avatar')\n roundedAvatar = true;\n\n @Input({\n transform: booleanAttribute,\n })\n set rounded(rounded: boolean) {\n this.roundedAvatar = rounded;\n this.rounded$.next(rounded);\n }\n\n // TODO - migrate to signal input and remove size input\n @Input()\n set size(size: AvatarSize | `${AvatarSize}`) {\n this.size$.next(+size as AvatarSize);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `${size}px`);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-symbol-size', `${symbolSizeByAvatarSize[size]}px`);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-online-icon-size', `${onlineIconSizeByAvatarSize[size]}px`);\n }\n\n displayProfilePicture$: Observable<boolean> = new Observable<boolean>();\n displaySingleNeutralSvg$: Observable<boolean> = new Observable<boolean>();\n displayInitials$: Observable<boolean> = new Observable<boolean>();\n displayAnonymous$: Observable<boolean> = new Observable<boolean>();\n displayNetwork$: Observable<boolean> = new Observable<boolean>();\n displayOnline$: Observable<boolean> = new Observable<boolean>();\n imageError$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n initials$: Observable<string> = new Observable<string>();\n initialsAvailable$: Observable<boolean> = of(false);\n socialNetwork$: Observable<boolean> = of(false);\n\n constructor(\n private symbolRegistry: SymbolRegistry,\n private elementRef: ElementRef\n ) {\n this.symbolRegistry.registerSymbols([\n apSingleNeutral,\n apShowTheaterMaskHappy,\n apFacebookOfficial,\n apLinkedinOfficial,\n apYoutubeOfficial,\n apTiktokOfficial,\n apGoogleMyBusinessOfficial,\n apPinterestOfficial,\n apNsThreadsLogo,\n apXOfficial,\n apWebBlogs,\n apWebNews,\n ]);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-size', `40px`);\n this.elementRef.nativeElement.style.setProperty('--ap-avatar-symbol-size', `${symbolSizeByAvatarSize[this.size$.value]}px`);\n }\n\n ngOnInit(): void {\n this.initialsAvailable$ = this.username$.pipe(\n map(username => {\n return !!username;\n })\n );\n\n this.displayProfilePicture$ = combineLatest([this.profilePicture$, this.anonymous$, this.imageError$, this.showInitials$]).pipe(\n map(([profilePicture, anonymous, imageError]) => {\n return !!profilePicture && !anonymous && !imageError;\n })\n );\n\n this.displayInitials$ = combineLatest([\n this.showInitials$,\n this.anonymous$,\n this.initialsAvailable$,\n this.displayProfilePicture$,\n ]).pipe(\n map(([showInitials, anonymous, initialsAvailable, displayProfilePicture]) => {\n return showInitials && !anonymous && initialsAvailable && !displayProfilePicture;\n })\n );\n\n this.displaySingleNeutralSvg$ = combineLatest([\n this.profilePicture$,\n this.imageError$,\n this.initialsAvailable$,\n this.showInitials$,\n this.anonymous$,\n this.displayInitials$,\n this.displayProfilePicture$,\n ]).pipe(\n map(([profilePicture, imageError, initialsAvailable, showInitials, anonymous, displayInitials, displayProfilePicture]) => {\n return (\n (!profilePicture || imageError || !initialsAvailable || (initialsAvailable && !showInitials)) &&\n !anonymous &&\n !displayInitials &&\n !displayProfilePicture\n );\n })\n );\n\n this.displayAnonymous$ = combineLatest([this.anonymous$, this.rounded$]).pipe(\n map(([anonymous, rounded]) => {\n return anonymous && rounded;\n })\n );\n\n this.displayOnline$ = combineLatest([this.online$, this.rounded$]).pipe(\n map(([online, rounded]) => {\n return online && rounded;\n })\n );\n\n this.displayNetwork$ = combineLatest([this.network$, this.rounded$]).pipe(\n map(([network, rounded]) => {\n return !!network && rounded;\n })\n );\n\n this.socialNetwork$ = this.network$.pipe(map(network => {\n if (!network) {\n return false;\n }\n return ROUND_BORDER_AVATAR_NETWORK.indexOf(network) > -1;\n }));\n\n\n this.initials$ = combineLatest([this.displayInitials$, this.username$]).pipe(\n map(([displayInitials, username]) => {\n if ((displayInitials && !username) || !displayInitials) {\n return '';\n }\n this.elementRef.nativeElement.style.setProperty(\n '--ap-avatar-initials-size',\n `${initialSizeByAvatarSize[this.size$.value]}px`\n );\n const names = username?.split(' ');\n return `${names[0].charAt(0).toUpperCase()}`;\n })\n );\n }\n\n onImageError(): void {\n this.imageError$.next(true);\n }\n}\n","<ng-container\n *ngrxLet=\"{\n displayProfilePicture: displayProfilePicture$,\n displaySingleNeutralSvg: displaySingleNeutralSvg$,\n displayInitials: displayInitials$,\n displayAnonymous: displayAnonymous$,\n displayOnline: displayOnline$,\n displayNetwork: displayNetwork$,\n initials: initials$,\n profilePicture: profilePicture$,\n size: size$,\n network: network$,\n socialNetwork: socialNetwork$\n } as avatarViewModel\">\n @if (avatarViewModel.displayProfilePicture) {\n <img\n [src]=\"avatarViewModel.profilePicture\"\n [width]=\"avatarViewModel.size\"\n [height]=\"avatarViewModel.size\"\n [alt]=\"alt\"\n (error)=\"onImageError()\" />\n }\n @if (avatarViewModel.displaySingleNeutralSvg) {\n <div class=\"no-profile-picture\">\n <ap-symbol symbolId=\"single-neutral\" />\n </div>\n }\n\n @if (avatarViewModel.displayAnonymous) {\n <div class=\"anonymous\">\n <ap-symbol symbolId=\"show-theater-mask-happy\" />\n </div>\n }\n @if (avatarViewModel.displayOnline) {\n <div class=\"online\"></div>\n }\n @if (avatarViewModel.displayNetwork) {\n <div\n class=\"network\"\n [class.social-network]=\"avatarViewModel.socialNetwork\"\n [ngClass]=\"avatarViewModel.network\">\n @if (avatarViewModel.network) {\n <ap-symbol [symbolId]=\"networkSymbolByNetwork[avatarViewModel.network]\" />\n }\n </div>\n }\n\n @if (avatarViewModel.displayInitials) {\n <div class=\"initials\">\n {{ avatarViewModel.initials }}\n </div>\n }\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, HostBinding, Input } from '@angular/core';
3
+
4
+ class BadgeComponent {
5
+ color = 'blue';
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: BadgeComponent, isStandalone: true, selector: "ap-badge", inputs: { color: "color" }, host: { properties: { "class": "this.color" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["ap-badge{display:flex;padding:0 var(--comp-badge-padding-right) 0 var(--comp-badge-padding-left);font-weight:var(--comp-badge-text-style-font-weight);font-family:var(--comp-badge-text-style-font-family);line-height:var(--comp-badge-text-style-line-height);font-size:var(--comp-badge-text-style-size);height:var(--comp-badge-height);max-height:var(--comp-badge-height);border-radius:2px}ap-badge.blue{background-color:var(--comp-badge-blue-background-color);color:var(--comp-badge-blue-color)}ap-badge.orange{text-transform:uppercase;background-color:var(--comp-badge-orange-background-color);color:var(--comp-badge-orange-color)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: BadgeComponent, decorators: [{
10
+ type: Component,
11
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-badge', standalone: true, imports: [], encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\n", styles: ["ap-badge{display:flex;padding:0 var(--comp-badge-padding-right) 0 var(--comp-badge-padding-left);font-weight:var(--comp-badge-text-style-font-weight);font-family:var(--comp-badge-text-style-font-family);line-height:var(--comp-badge-text-style-line-height);font-size:var(--comp-badge-text-style-size);height:var(--comp-badge-height);max-height:var(--comp-badge-height);border-radius:2px}ap-badge.blue{background-color:var(--comp-badge-blue-background-color);color:var(--comp-badge-blue-color)}ap-badge.orange{text-transform:uppercase;background-color:var(--comp-badge-orange-background-color);color:var(--comp-badge-orange-color)}\n"] }]
12
+ }], propDecorators: { color: [{
13
+ type: HostBinding,
14
+ args: ['class']
15
+ }, {
16
+ type: Input
17
+ }] } });
18
+
19
+ /**
20
+ * Generated bundle index. Do not edit.
21
+ */
22
+
23
+ export { BadgeComponent };
24
+ //# sourceMappingURL=agorapulse-ui-components-badge.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agorapulse-ui-components-badge.mjs","sources":["../../../libs/ui-components/badge/src/badge.component.ts","../../../libs/ui-components/badge/src/badge.component.html","../../../libs/ui-components/badge/src/agorapulse-ui-components-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\nexport type BadgeColor = 'blue' | 'orange';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-badge',\n standalone: true,\n templateUrl: './badge.component.html',\n imports: [],\n styleUrls: ['./badge.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class BadgeComponent {\n @HostBinding('class')\n @Input()\n color: BadgeColor = 'blue';\n}\n","<ng-content></ng-content>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;MAaa,cAAc,CAAA;IAGvB,KAAK,GAAe,MAAM,CAAC;uGAHlB,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,iJCb3B,6BACA,EAAA,MAAA,EAAA,CAAA,ynBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDYa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;sCACW,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,UAAU,EAAA,UAAA,EACR,IAAI,EAAA,OAAA,EAEP,EAAE,EAAA,aAAA,EAEI,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,ynBAAA,CAAA,EAAA,CAAA;8BAKrC,KAAK,EAAA,CAAA;sBAFJ,WAAW;uBAAC,OAAO,CAAA;;sBACnB,KAAK;;;AEfV;;AAEG;;;;"}