@agorapulse/ui-components 14.0.5 → 14.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/{src/lib/add-comment → add-comment}/add-comment.component.d.ts +1 -1
  2. package/add-comment/index.d.ts +5 -0
  3. package/add-comment/public_api.d.ts +1 -0
  4. package/agorapulse-ui-components-14.1.0.tgz +0 -0
  5. package/{src/lib/avatar → avatar}/avatar.component.d.ts +1 -1
  6. package/avatar/index.d.ts +5 -0
  7. package/avatar/public_api.d.ts +1 -0
  8. package/{src/lib/confirm-modal → confirm-modal}/confirm-modal-texts.model.d.ts +0 -0
  9. package/{src/lib/confirm-modal → confirm-modal}/confirm-modal.component.d.ts +2 -2
  10. package/confirm-modal/index.d.ts +5 -0
  11. package/confirm-modal/public_api.d.ts +2 -0
  12. package/{src/lib/datepicker → datepicker}/datepicker.component.d.ts +2 -2
  13. package/datepicker/index.d.ts +5 -0
  14. package/datepicker/public_api.d.ts +1 -0
  15. package/{src/lib/directives → directives}/autosize-textarea.directive.d.ts +1 -1
  16. package/{src/lib/directives → directives}/default-image.directive.d.ts +1 -1
  17. package/{src/lib/directives → directives}/ellipsis.directive.d.ts +1 -1
  18. package/{src/lib/directives → directives}/equal-validator.directive.d.ts +1 -1
  19. package/{src/lib/directives → directives}/frozen-gif.directive.d.ts +1 -1
  20. package/directives/index.d.ts +5 -0
  21. package/{src/lib/directives → directives}/multi-style-text.directive.d.ts +1 -1
  22. package/directives/public_api.d.ts +7 -0
  23. package/{src/lib/directives → directives}/truncate-tooltip.directive.d.ts +4 -4
  24. package/directives/truncate-tooltip.model.d.ts +5 -0
  25. package/{src/lib/dots-stepper → dots-stepper}/dots-stepper.component.d.ts +1 -1
  26. package/dots-stepper/index.d.ts +5 -0
  27. package/dots-stepper/public_api.d.ts +1 -0
  28. package/esm2020/add-comment/add-comment.component.mjs +70 -0
  29. package/esm2020/add-comment/agorapulse-ui-components-add-comment.mjs +5 -0
  30. package/esm2020/add-comment/public_api.mjs +2 -0
  31. package/esm2020/avatar/agorapulse-ui-components-avatar.mjs +5 -0
  32. package/esm2020/avatar/avatar.component.mjs +138 -0
  33. package/esm2020/avatar/public_api.mjs +2 -0
  34. package/esm2020/confirm-modal/agorapulse-ui-components-confirm-modal.mjs +5 -0
  35. package/esm2020/confirm-modal/confirm-modal-texts.model.mjs +2 -0
  36. package/esm2020/confirm-modal/confirm-modal.component.mjs +61 -0
  37. package/esm2020/confirm-modal/public_api.mjs +3 -0
  38. package/esm2020/datepicker/agorapulse-ui-components-datepicker.mjs +5 -0
  39. package/esm2020/datepicker/datepicker.component.mjs +225 -0
  40. package/esm2020/datepicker/public_api.mjs +2 -0
  41. package/esm2020/directives/agorapulse-ui-components-directives.mjs +5 -0
  42. package/esm2020/directives/autosize-textarea.directive.mjs +44 -0
  43. package/esm2020/directives/default-image.directive.mjs +32 -0
  44. package/esm2020/directives/ellipsis.directive.mjs +86 -0
  45. package/esm2020/directives/equal-validator.directive.mjs +66 -0
  46. package/esm2020/directives/frozen-gif.directive.mjs +116 -0
  47. package/esm2020/directives/multi-style-text.directive.mjs +136 -0
  48. package/esm2020/directives/public_api.mjs +8 -0
  49. package/esm2020/directives/truncate-tooltip.directive.mjs +41 -0
  50. package/esm2020/directives/truncate-tooltip.model.mjs +2 -0
  51. package/esm2020/dots-stepper/agorapulse-ui-components-dots-stepper.mjs +5 -0
  52. package/esm2020/dots-stepper/dots-stepper.component.mjs +43 -0
  53. package/esm2020/dots-stepper/public_api.mjs +2 -0
  54. package/esm2020/index.mjs +27 -33
  55. package/esm2020/infobox/agorapulse-ui-components-infobox.mjs +5 -0
  56. package/esm2020/infobox/infobox.component.mjs +30 -0
  57. package/esm2020/infobox/public_api.mjs +2 -0
  58. package/esm2020/labels/agorapulse-ui-components-labels.mjs +5 -0
  59. package/esm2020/labels/label-list.component.mjs +101 -0
  60. package/esm2020/labels/label.component.mjs +56 -0
  61. package/esm2020/labels/public_api.mjs +3 -0
  62. package/esm2020/labels-selector/agorapulse-ui-components-labels-selector.mjs +5 -0
  63. package/esm2020/labels-selector/labels-selector.component.mjs +95 -0
  64. package/esm2020/labels-selector/public_api.mjs +2 -0
  65. package/esm2020/media-display-overlay/agorapulse-ui-components-media-display-overlay.mjs +5 -0
  66. package/esm2020/media-display-overlay/media-display-overlay-dialog.component.mjs +88 -0
  67. package/esm2020/media-display-overlay/public_api.mjs +2 -0
  68. package/esm2020/modal/agorapulse-ui-components-modal.mjs +5 -0
  69. package/esm2020/modal/modal.component.mjs +99 -0
  70. package/esm2020/modal/public_api.mjs +2 -0
  71. package/esm2020/notification/agorapulse-ui-components-notification.mjs +5 -0
  72. package/esm2020/notification/notification.component.mjs +17 -0
  73. package/esm2020/notification/public_api.mjs +2 -0
  74. package/esm2020/paginator/agorapulse-ui-components-paginator.mjs +5 -0
  75. package/esm2020/paginator/paginator-button/paginator-button.component.mjs +24 -0
  76. package/esm2020/paginator/paginator.component.mjs +56 -0
  77. package/esm2020/paginator/public_api.mjs +3 -0
  78. package/esm2020/password-input/agorapulse-ui-components-password-input.mjs +5 -0
  79. package/esm2020/password-input/password-input.component.mjs +70 -0
  80. package/esm2020/password-input/public_api.mjs +2 -0
  81. package/esm2020/popmenu/agorapulse-ui-components-popmenu.mjs +5 -0
  82. package/esm2020/popmenu/options.mjs +17 -0
  83. package/esm2020/popmenu/popmenu-options.interface.mjs +2 -0
  84. package/esm2020/popmenu/popmenu-options.service.mjs +7 -0
  85. package/esm2020/popmenu/popmenu.component.mjs +368 -0
  86. package/esm2020/popmenu/popmenu.directive.mjs +241 -0
  87. package/esm2020/popmenu/popmenu.module.mjs +35 -0
  88. package/esm2020/{src/lib/popmenu/index.mjs → popmenu/public_api.mjs} +1 -1
  89. package/esm2020/slide-toggle/agorapulse-ui-components-slide-toggle.mjs +5 -0
  90. package/esm2020/slide-toggle/public_api.mjs +2 -0
  91. package/esm2020/slide-toggle/slide-toggle.component.mjs +65 -0
  92. package/esm2020/snackbar/agorapulse-ui-components-snackbar.mjs +5 -0
  93. package/esm2020/snackbar/public_api.mjs +2 -0
  94. package/esm2020/snackbar/snackbar.component.mjs +22 -0
  95. package/esm2020/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs +5 -0
  96. package/esm2020/snackbars-thread/component/snackbars-thread.component.mjs +71 -0
  97. package/esm2020/snackbars-thread/model/snackbars-thread.model.mjs +41 -0
  98. package/esm2020/snackbars-thread/public_api.mjs +4 -0
  99. package/esm2020/snackbars-thread/service/snackbars-thread.service.mjs +41 -0
  100. package/esm2020/snackbars-thread/utils/const/snackbars-thread.const.mjs +13 -0
  101. package/esm2020/src/lib/agorapulse-ui-components.module.mjs +60 -87
  102. package/esm2020/stepper/agorapulse-ui-components-stepper.mjs +5 -0
  103. package/esm2020/stepper/public_api.mjs +3 -0
  104. package/esm2020/stepper/step.model.mjs +2 -0
  105. package/esm2020/stepper/stepper.component.mjs +37 -0
  106. package/esm2020/text-measurement/agorapulse-ui-components-text-measurement.mjs +5 -0
  107. package/esm2020/text-measurement/public_api.mjs +2 -0
  108. package/esm2020/text-measurement/text-measurement.service.mjs +28 -0
  109. package/esm2020/tooltip-neo/agorapulse-ui-components-tooltip-neo.mjs +5 -0
  110. package/esm2020/tooltip-neo/public_api.mjs +4 -0
  111. package/esm2020/tooltip-neo/tooltip-neo.component.mjs +44 -0
  112. package/esm2020/tooltip-neo/tooltip-neo.const.mjs +67 -0
  113. package/esm2020/tooltip-neo/tooltip-neo.directive.mjs +156 -0
  114. package/esm2020/tooltip-neo/tooltip-neo.model.mjs +2 -0
  115. package/esm2020/{src/lib/tooltip-neo → tooltip-neo}/tooltip-neo.service.mjs +1 -1
  116. package/fesm2015/agorapulse-ui-components-add-comment.mjs +77 -0
  117. package/fesm2015/agorapulse-ui-components-add-comment.mjs.map +1 -0
  118. package/fesm2015/agorapulse-ui-components-avatar.mjs +146 -0
  119. package/fesm2015/agorapulse-ui-components-avatar.mjs.map +1 -0
  120. package/fesm2015/agorapulse-ui-components-confirm-modal.mjs +68 -0
  121. package/fesm2015/agorapulse-ui-components-confirm-modal.mjs.map +1 -0
  122. package/fesm2015/agorapulse-ui-components-datepicker.mjs +235 -0
  123. package/fesm2015/agorapulse-ui-components-datepicker.mjs.map +1 -0
  124. package/fesm2015/agorapulse-ui-components-directives.mjs +514 -0
  125. package/fesm2015/agorapulse-ui-components-directives.mjs.map +1 -0
  126. package/fesm2015/agorapulse-ui-components-dots-stepper.mjs +50 -0
  127. package/fesm2015/agorapulse-ui-components-dots-stepper.mjs.map +1 -0
  128. package/fesm2015/agorapulse-ui-components-infobox.mjs +37 -0
  129. package/fesm2015/agorapulse-ui-components-infobox.mjs.map +1 -0
  130. package/fesm2015/agorapulse-ui-components-labels-selector.mjs +103 -0
  131. package/fesm2015/agorapulse-ui-components-labels-selector.mjs.map +1 -0
  132. package/fesm2015/agorapulse-ui-components-labels.mjs +160 -0
  133. package/fesm2015/agorapulse-ui-components-labels.mjs.map +1 -0
  134. package/fesm2015/agorapulse-ui-components-media-display-overlay.mjs +97 -0
  135. package/fesm2015/agorapulse-ui-components-media-display-overlay.mjs.map +1 -0
  136. package/fesm2015/agorapulse-ui-components-modal.mjs +106 -0
  137. package/fesm2015/agorapulse-ui-components-modal.mjs.map +1 -0
  138. package/fesm2015/agorapulse-ui-components-notification.mjs +24 -0
  139. package/fesm2015/agorapulse-ui-components-notification.mjs.map +1 -0
  140. package/fesm2015/agorapulse-ui-components-paginator.mjs +82 -0
  141. package/fesm2015/agorapulse-ui-components-paginator.mjs.map +1 -0
  142. package/fesm2015/agorapulse-ui-components-password-input.mjs +77 -0
  143. package/fesm2015/agorapulse-ui-components-password-input.mjs.map +1 -0
  144. package/fesm2015/agorapulse-ui-components-popmenu.mjs +666 -0
  145. package/fesm2015/agorapulse-ui-components-popmenu.mjs.map +1 -0
  146. package/fesm2015/agorapulse-ui-components-slide-toggle.mjs +72 -0
  147. package/fesm2015/agorapulse-ui-components-slide-toggle.mjs.map +1 -0
  148. package/fesm2015/agorapulse-ui-components-snackbar.mjs +31 -0
  149. package/fesm2015/agorapulse-ui-components-snackbar.mjs.map +1 -0
  150. package/fesm2015/agorapulse-ui-components-snackbars-thread.mjs +169 -0
  151. package/fesm2015/agorapulse-ui-components-snackbars-thread.mjs.map +1 -0
  152. package/fesm2015/agorapulse-ui-components-stepper.mjs +45 -0
  153. package/fesm2015/agorapulse-ui-components-stepper.mjs.map +1 -0
  154. package/fesm2015/agorapulse-ui-components-text-measurement.mjs +35 -0
  155. package/fesm2015/agorapulse-ui-components-text-measurement.mjs.map +1 -0
  156. package/fesm2015/agorapulse-ui-components-tooltip-neo.mjs +283 -0
  157. package/fesm2015/agorapulse-ui-components-tooltip-neo.mjs.map +1 -0
  158. package/fesm2015/agorapulse-ui-components.mjs +82 -2824
  159. package/fesm2015/agorapulse-ui-components.mjs.map +1 -1
  160. package/fesm2020/agorapulse-ui-components-add-comment.mjs +77 -0
  161. package/fesm2020/agorapulse-ui-components-add-comment.mjs.map +1 -0
  162. package/fesm2020/agorapulse-ui-components-avatar.mjs +145 -0
  163. package/fesm2020/agorapulse-ui-components-avatar.mjs.map +1 -0
  164. package/fesm2020/agorapulse-ui-components-confirm-modal.mjs +68 -0
  165. package/fesm2020/agorapulse-ui-components-confirm-modal.mjs.map +1 -0
  166. package/fesm2020/agorapulse-ui-components-datepicker.mjs +232 -0
  167. package/fesm2020/agorapulse-ui-components-datepicker.mjs.map +1 -0
  168. package/fesm2020/agorapulse-ui-components-directives.mjs +515 -0
  169. package/fesm2020/agorapulse-ui-components-directives.mjs.map +1 -0
  170. package/fesm2020/agorapulse-ui-components-dots-stepper.mjs +50 -0
  171. package/fesm2020/agorapulse-ui-components-dots-stepper.mjs.map +1 -0
  172. package/fesm2020/agorapulse-ui-components-infobox.mjs +37 -0
  173. package/fesm2020/agorapulse-ui-components-infobox.mjs.map +1 -0
  174. package/fesm2020/agorapulse-ui-components-labels-selector.mjs +102 -0
  175. package/fesm2020/agorapulse-ui-components-labels-selector.mjs.map +1 -0
  176. package/fesm2020/agorapulse-ui-components-labels.mjs +160 -0
  177. package/fesm2020/agorapulse-ui-components-labels.mjs.map +1 -0
  178. package/fesm2020/agorapulse-ui-components-media-display-overlay.mjs +95 -0
  179. package/fesm2020/agorapulse-ui-components-media-display-overlay.mjs.map +1 -0
  180. package/fesm2020/agorapulse-ui-components-modal.mjs +106 -0
  181. package/fesm2020/agorapulse-ui-components-modal.mjs.map +1 -0
  182. package/fesm2020/agorapulse-ui-components-notification.mjs +24 -0
  183. package/fesm2020/agorapulse-ui-components-notification.mjs.map +1 -0
  184. package/fesm2020/agorapulse-ui-components-paginator.mjs +82 -0
  185. package/fesm2020/agorapulse-ui-components-paginator.mjs.map +1 -0
  186. package/fesm2020/agorapulse-ui-components-password-input.mjs +77 -0
  187. package/fesm2020/agorapulse-ui-components-password-input.mjs.map +1 -0
  188. package/fesm2020/agorapulse-ui-components-popmenu.mjs +664 -0
  189. package/fesm2020/agorapulse-ui-components-popmenu.mjs.map +1 -0
  190. package/fesm2020/agorapulse-ui-components-slide-toggle.mjs +72 -0
  191. package/fesm2020/agorapulse-ui-components-slide-toggle.mjs.map +1 -0
  192. package/fesm2020/agorapulse-ui-components-snackbar.mjs +29 -0
  193. package/fesm2020/agorapulse-ui-components-snackbar.mjs.map +1 -0
  194. package/fesm2020/agorapulse-ui-components-snackbars-thread.mjs +169 -0
  195. package/fesm2020/agorapulse-ui-components-snackbars-thread.mjs.map +1 -0
  196. package/fesm2020/agorapulse-ui-components-stepper.mjs +44 -0
  197. package/fesm2020/agorapulse-ui-components-stepper.mjs.map +1 -0
  198. package/fesm2020/agorapulse-ui-components-text-measurement.mjs +35 -0
  199. package/fesm2020/agorapulse-ui-components-text-measurement.mjs.map +1 -0
  200. package/fesm2020/agorapulse-ui-components-tooltip-neo.mjs +282 -0
  201. package/fesm2020/agorapulse-ui-components-tooltip-neo.mjs.map +1 -0
  202. package/fesm2020/agorapulse-ui-components.mjs +79 -2807
  203. package/fesm2020/agorapulse-ui-components.mjs.map +1 -1
  204. package/index.d.ts +28 -34
  205. package/infobox/index.d.ts +5 -0
  206. package/{src/lib/infobox → infobox}/infobox.component.d.ts +1 -1
  207. package/infobox/public_api.d.ts +1 -0
  208. package/labels/index.d.ts +5 -0
  209. package/{src/lib/labels → labels}/label-list.component.d.ts +2 -2
  210. package/{src/lib/labels → labels}/label.component.d.ts +2 -2
  211. package/labels/public_api.d.ts +2 -0
  212. package/labels-selector/index.d.ts +5 -0
  213. package/{src/lib/labels-selector → labels-selector}/labels-selector.component.d.ts +2 -2
  214. package/labels-selector/public_api.d.ts +1 -0
  215. package/media-display-overlay/index.d.ts +5 -0
  216. package/{src/lib/media-display-overlay → media-display-overlay}/media-display-overlay-dialog.component.d.ts +1 -1
  217. package/media-display-overlay/public_api.d.ts +1 -0
  218. package/modal/index.d.ts +5 -0
  219. package/{src/lib/modal → modal}/modal.component.d.ts +3 -4
  220. package/modal/public_api.d.ts +1 -0
  221. package/notification/index.d.ts +5 -0
  222. package/{src/lib/notification → notification}/notification.component.d.ts +1 -1
  223. package/notification/public_api.d.ts +1 -0
  224. package/package.json +169 -1
  225. package/paginator/index.d.ts +5 -0
  226. package/{src/lib/paginator → paginator}/paginator-button/paginator-button.component.d.ts +1 -1
  227. package/{src/lib/paginator → paginator}/paginator.component.d.ts +1 -1
  228. package/paginator/public_api.d.ts +2 -0
  229. package/password-input/index.d.ts +5 -0
  230. package/{src/lib/password-input → password-input}/password-input.component.d.ts +1 -1
  231. package/password-input/public_api.d.ts +1 -0
  232. package/popmenu/index.d.ts +5 -0
  233. package/{src/lib/popmenu → popmenu}/options.d.ts +0 -0
  234. package/{src/lib/popmenu → popmenu}/popmenu-options.interface.d.ts +0 -0
  235. package/{src/lib/popmenu → popmenu}/popmenu-options.service.d.ts +0 -0
  236. package/{src/lib/popmenu → popmenu}/popmenu.component.d.ts +1 -1
  237. package/{src/lib/popmenu → popmenu}/popmenu.directive.d.ts +1 -1
  238. package/{src/lib/popmenu → popmenu}/popmenu.module.d.ts +1 -4
  239. package/{src/lib/popmenu/index.d.ts → popmenu/public_api.d.ts} +0 -0
  240. package/slide-toggle/index.d.ts +5 -0
  241. package/slide-toggle/public_api.d.ts +1 -0
  242. package/{src/lib/slide-toggle → slide-toggle}/slide-toggle.component.d.ts +1 -1
  243. package/snackbar/index.d.ts +5 -0
  244. package/snackbar/public_api.d.ts +1 -0
  245. package/{src/lib/snackbar → snackbar}/snackbar.component.d.ts +1 -1
  246. package/{src/lib/snackbars-thread → snackbars-thread}/component/snackbars-thread.component.d.ts +1 -1
  247. package/snackbars-thread/index.d.ts +5 -0
  248. package/{src/lib/snackbars-thread → snackbars-thread}/model/snackbars-thread.model.d.ts +1 -1
  249. package/snackbars-thread/public_api.d.ts +3 -0
  250. package/{src/lib/snackbars-thread → snackbars-thread}/service/snackbars-thread.service.d.ts +0 -0
  251. package/{src/lib/snackbars-thread → snackbars-thread}/utils/const/snackbars-thread.const.d.ts +0 -0
  252. package/src/lib/agorapulse-ui-components.module.d.ts +24 -38
  253. package/stepper/index.d.ts +5 -0
  254. package/stepper/public_api.d.ts +2 -0
  255. package/{src/lib/stepper → stepper}/step.model.d.ts +0 -0
  256. package/{src/lib/stepper → stepper}/stepper.component.d.ts +1 -1
  257. package/text-measurement/index.d.ts +5 -0
  258. package/text-measurement/public_api.d.ts +1 -0
  259. package/{src/lib/text-measurement → text-measurement}/text-measurement.service.d.ts +0 -0
  260. package/tooltip-neo/index.d.ts +5 -0
  261. package/tooltip-neo/public_api.d.ts +3 -0
  262. package/{src/lib/tooltip-neo → tooltip-neo}/tooltip-neo.component.d.ts +1 -1
  263. package/{src/lib/tooltip-neo → tooltip-neo}/tooltip-neo.const.d.ts +0 -0
  264. package/{src/lib/tooltip-neo → tooltip-neo}/tooltip-neo.directive.d.ts +2 -2
  265. package/{src/lib/tooltip-neo → tooltip-neo}/tooltip-neo.model.d.ts +0 -0
  266. package/{src/lib/tooltip-neo → tooltip-neo}/tooltip-neo.service.d.ts +0 -0
  267. package/agorapulse-ui-components-14.0.5.tgz +0 -0
  268. package/esm2020/src/lib/add-comment/add-comment.component.mjs +0 -64
  269. package/esm2020/src/lib/avatar/avatar.component.mjs +0 -137
  270. package/esm2020/src/lib/confirm-modal/confirm-modal-texts.model.mjs +0 -2
  271. package/esm2020/src/lib/confirm-modal/confirm-modal.component.mjs +0 -61
  272. package/esm2020/src/lib/datepicker/datepicker.component.mjs +0 -219
  273. package/esm2020/src/lib/directives/autosize-textarea.directive.mjs +0 -43
  274. package/esm2020/src/lib/directives/default-image.directive.mjs +0 -31
  275. package/esm2020/src/lib/directives/ellipsis.directive.mjs +0 -85
  276. package/esm2020/src/lib/directives/equal-validator.directive.mjs +0 -65
  277. package/esm2020/src/lib/directives/frozen-gif.directive.mjs +0 -115
  278. package/esm2020/src/lib/directives/multi-style-text.directive.mjs +0 -135
  279. package/esm2020/src/lib/directives/truncate-tooltip.directive.mjs +0 -33
  280. package/esm2020/src/lib/dots-stepper/dots-stepper.component.mjs +0 -43
  281. package/esm2020/src/lib/infobox/infobox.component.mjs +0 -24
  282. package/esm2020/src/lib/labels/label-list.component.mjs +0 -98
  283. package/esm2020/src/lib/labels/label.component.mjs +0 -53
  284. package/esm2020/src/lib/labels-selector/labels-selector.component.mjs +0 -92
  285. package/esm2020/src/lib/media-display-overlay/media-display-overlay-dialog.component.mjs +0 -87
  286. package/esm2020/src/lib/modal/modal.component.mjs +0 -96
  287. package/esm2020/src/lib/notification/notification.component.mjs +0 -17
  288. package/esm2020/src/lib/paginator/paginator-button/paginator-button.component.mjs +0 -23
  289. package/esm2020/src/lib/paginator/paginator.component.mjs +0 -54
  290. package/esm2020/src/lib/password-input/password-input.component.mjs +0 -69
  291. package/esm2020/src/lib/popmenu/options.mjs +0 -17
  292. package/esm2020/src/lib/popmenu/popmenu-options.interface.mjs +0 -2
  293. package/esm2020/src/lib/popmenu/popmenu-options.service.mjs +0 -7
  294. package/esm2020/src/lib/popmenu/popmenu.component.mjs +0 -357
  295. package/esm2020/src/lib/popmenu/popmenu.directive.mjs +0 -240
  296. package/esm2020/src/lib/popmenu/popmenu.module.mjs +0 -47
  297. package/esm2020/src/lib/slide-toggle/slide-toggle.component.mjs +0 -67
  298. package/esm2020/src/lib/snackbar/snackbar.component.mjs +0 -21
  299. package/esm2020/src/lib/snackbars-thread/component/snackbars-thread.component.mjs +0 -70
  300. package/esm2020/src/lib/snackbars-thread/model/snackbars-thread.model.mjs +0 -41
  301. package/esm2020/src/lib/snackbars-thread/service/snackbars-thread.service.mjs +0 -41
  302. package/esm2020/src/lib/snackbars-thread/utils/const/snackbars-thread.const.mjs +0 -13
  303. package/esm2020/src/lib/stepper/step.model.mjs +0 -2
  304. package/esm2020/src/lib/stepper/stepper.component.mjs +0 -36
  305. package/esm2020/src/lib/text-measurement/text-measurement.service.mjs +0 -28
  306. package/esm2020/src/lib/tooltip-neo/tooltip-neo.component.mjs +0 -44
  307. package/esm2020/src/lib/tooltip-neo/tooltip-neo.const.mjs +0 -67
  308. package/esm2020/src/lib/tooltip-neo/tooltip-neo.directive.mjs +0 -137
  309. package/esm2020/src/lib/tooltip-neo/tooltip-neo.model.mjs +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agorapulse-ui-components-datepicker.mjs","sources":["../../../libs/ui-components/datepicker/src/datepicker.component.ts","../../../libs/ui-components/datepicker/src/datepicker.component.html","../../../libs/ui-components/datepicker/src/agorapulse-ui-components-datepicker.ts"],"sourcesContent":["import {AgorapulseUiSymbolModule} from '@agorapulse/ui-symbol';\nimport {NgIf} from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport moment, {Moment} from 'moment';\nimport {DaterangepickerComponent, NgxDaterangepickerMd} from 'ngx-daterangepicker-material';\n\nexport enum DatepickerMode {\n Single = 'Single',\n Multiple = 'Multiple',\n Range = 'Range',\n}\n\nexport interface Period {\n startDate: Moment;\n endDate: Moment;\n}\n\nexport interface I18nDatePicker {\n ranges: {\n yesterday: string;\n lastWeek: string;\n last30Days: string;\n lastMonth: string;\n thisMonth: string;\n }\n}\n\nenum SideEnum {\n left = \"left\",\n right = \"right\"\n}\n\n// TODO fix css for range mode (more lateral padding)\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-datepicker',\n templateUrl: './datepicker.component.html',\n standalone: true,\n imports: [AgorapulseUiSymbolModule, NgIf, NgxDaterangepickerMd],\n styleUrls: ['./datepicker.component.scss'],\n})\nexport class DatepickerComponent implements OnInit, OnChanges, AfterViewInit {\n @ViewChild('datepickerRef') datepickerRef: DaterangepickerComponent;\n\n @Input() firstDayOfWeek: string;\n @Input() i18n: I18nDatePicker = {\n ranges: {\n yesterday: 'Yesterday',\n lastWeek: 'Last Week',\n last30Days: 'Last 30 days',\n lastMonth: 'Previous month',\n thisMonth: 'This Month',\n },\n };\n @Input() locale;\n @Input() maxDate: Moment;\n @Input() minDate: Moment;\n @Input() mode: DatepickerMode;\n @Input() selectedDate: Moment;\n @Input() selectedDates: Moment[] = [];\n @Input() selectedPeriod: Period = {startDate: null, endDate: null};\n @Input() showRanges: boolean;\n\n @Output() dateSelected = new EventEmitter<any>();\n @Output() periodSelected = new EventEmitter<Period>();\n\n DatepickerMode = DatepickerMode;\n doubleCalendarWidth = 528; // 231px calendar table * 2 = 462 (+ 16px x-padding * 4 = 64)\n localeConfig: {\n customRangeLabel: string;\n daysOfWeek: string[];\n monthNames: string[];\n firstDay: number;\n };\n ranges: {[period: string]: [Moment, Moment]} = {};\n rangePickerWidth = 150;\n width: number;\n pageSet = false;\n\n constructor(public changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnInit() {\n this.initRanges();\n this.initDatePickerLocale();\n }\n\n ngOnChanges(changes) {\n this.setWidth();\n if (this.datepickerRef) {\n setTimeout(() => {\n this.datepickerRef.updateCalendars();\n this.changeDetectorRef.detectChanges();\n }, 100);\n }\n if (changes.selectedPeriod?.currentValue && this.datepickerRef) {\n if (this.selectedPeriod.startDate === null && this.selectedPeriod.endDate === null) {\n this.datepickerRef.clear();\n } else {\n this.datepickerRef.setStartDate(this.selectedPeriod.startDate);\n this.datepickerRef.setEndDate(this.selectedPeriod.endDate);\n }\n }\n if (changes.mode?.currentValue === DatepickerMode.Single && this.datepickerRef) {\n this.setCalendarCurrentPage();\n }\n }\n ngAfterViewInit(): void {\n if (this.datepickerRef) {\n setTimeout(() => {\n this.datepickerRef.updateCalendars();\n this.setCalendarCurrentPage();\n }, 100);\n }\n }\n\n initDatePickerLocale() {\n if (this.locale) {\n moment.locale(this.locale);\n }\n let firstDayOfWeekIndex: number;\n if (this.firstDayOfWeek === 'sunday') {\n firstDayOfWeekIndex = 0;\n } else if (this.firstDayOfWeek === 'monday') {\n firstDayOfWeekIndex = 1;\n } else {\n firstDayOfWeekIndex = moment.localeData().firstDayOfWeek();\n }\n this.localeConfig = {\n customRangeLabel: 'custom',\n daysOfWeek: moment.weekdaysMin(),\n monthNames: moment.months(),\n firstDay: firstDayOfWeekIndex,\n };\n }\n\n initRanges() {\n this.ranges[this.i18n.ranges.yesterday] = [moment().subtract(1, 'days'), moment().subtract(1, 'days')];\n this.ranges[this.i18n.ranges.lastWeek] = [moment().subtract(7, 'days'), moment().subtract(1, 'days')];\n this.ranges[this.i18n.ranges.last30Days] = [moment().subtract(30, 'days'), moment().subtract(1, 'days')];\n this.ranges[this.i18n.ranges.lastMonth] = [\n moment().subtract(1, 'month').startOf('month'),\n moment().subtract(1, 'month').endOf('month'),\n ];\n this.ranges[this.i18n.ranges.thisMonth] = [moment().startOf('month'), moment().endOf('month')];\n }\n\n isCustomDate = (date: any) => {\n const classes: string[] = [];\n if (this.mode === DatepickerMode.Multiple) {\n classes.push(this.isSelected(date) ? 'active' : 'force-inactive');\n } else if (this.mode === DatepickerMode.Single) {\n classes.push(this.selectedDate && this.selectedDate.isSame(date, 'day') ? 'active' : 'force-inactive');\n } else if (this.mode === DatepickerMode.Range) {\n classes.push('range-picker-mode');\n // Workaround to fix the auto-active today date when no date is selected\n if (moment().isSame(date, 'day') && !this.selectedPeriod?.startDate && !this.selectedPeriod?.endDate) {\n classes.push('force-inactive');\n }\n }\n return classes;\n };\n\n private isSelected(date: any) {\n return this.selectedDates && this.selectedDates.some(selectedDate => selectedDate.isSame(date, 'day'));\n }\n\n onStartDateChanged(event: any) {\n const date = event.startDate;\n if (this.mode !== DatepickerMode.Range) {\n this.selectedDate = date;\n this.datepickerRef.setEndDate(date);\n if (this.pageSet) {\n this.pageSet = false;\n } else {\n this.dateSelected.emit(date.clone());\n if (this.mode === DatepickerMode.Multiple) {\n this.selectedDates.push(date);\n }\n }\n if (this.datepickerRef) {\n this.datepickerRef.updateCalendars();\n }\n }\n }\n\n onDatesUpdated(event: any) {\n if (this.mode === DatepickerMode.Range) {\n this.periodSelected.emit({\n startDate: event.startDate?.clone(),\n endDate: event.endDate?.clone(),\n });\n }\n if (this.datepickerRef) {\n this.datepickerRef.updateCalendars();\n }\n }\n\n onNextMonth() {\n this.datepickerRef.leftCalendar.month = this.datepickerRef.leftCalendar.month.add(1, 'months').clone();\n this.datepickerRef.rightCalendar.month = this.datepickerRef.rightCalendar.month.add(1, 'months').clone();\n this.datepickerRef.clickNext(SideEnum.left);\n this.datepickerRef.clickNext(SideEnum.right);\n }\n\n onPreviousMonth() {\n this.datepickerRef.leftCalendar.month = this.datepickerRef.leftCalendar.month.subtract(1, 'months').clone();\n this.datepickerRef.rightCalendar.month = this.datepickerRef.rightCalendar.month.subtract(1, 'months').clone();\n this.datepickerRef.clickPrev(SideEnum.left);\n this.datepickerRef.clickPrev(SideEnum.right);\n }\n\n /**\n * Ugly hack used here to open the calendar on the right day if they are selected dates\n * * https://github.com/fetrarij/ngx-daterangepicker-material/issues/139\n */\n setCalendarCurrentPage(): void {\n const selectedFirstDate = this.selectedDates.length > 0 ? this.selectedDates[0] : this.selectedDate;\n if (selectedFirstDate && selectedFirstDate.isValid() && this.mode !== DatepickerMode.Range) {\n const endDate = selectedFirstDate.clone();\n endDate.add(1, 'month');\n this.pageSet = true;\n this.datepickerRef.setStartDate(selectedFirstDate);\n this.datepickerRef.setEndDate(endDate);\n this.datepickerRef.updateView();\n }\n this.changeDetectorRef.detectChanges();\n }\n\n setWidth() {\n this.width =\n this.showRanges && this.mode === DatepickerMode.Range\n ? this.doubleCalendarWidth + this.rangePickerWidth\n : this.doubleCalendarWidth;\n }\n}\n","<div class=\"custom-calendar\" [style.width]=\"width + 'px'\">\n <div class=\"custom-header\">\n <div class=\"month-header\"\n *ngIf=\"this.datepickerRef.leftCalendar.month\">\n <div class=\"month-arrow-button\" (click)=\"onPreviousMonth()\">\n <ap-symbol\n [symbolId]=\"'arrow-left-1'\"\n [color]=\"'#858FA1'\"\n [size]=\"'14'\"></ap-symbol>\n </div>\n <div class=\"month-label\">\n {{ this.datepickerRef.leftCalendar.month.locale(locale).format('MMMM YYYY') }}\n </div>\n </div>\n <div class=\"month-header\"\n *ngIf=\"this.datepickerRef.rightCalendar.month\">\n <div class=\"month-label\">\n {{ this.datepickerRef.rightCalendar.month.locale(locale).format('MMMM YYYY') }}\n </div>\n <div class=\"month-arrow-button\" (click)=\"onNextMonth()\">\n <ap-symbol\n [symbolId]=\"'arrow-right-1'\"\n [color]=\"'#858FA1'\"\n [size]=\"'14'\"></ap-symbol>\n </div>\n </div>\n <div class=\"header-filler\" *ngIf=\"showRanges && mode === DatepickerMode.Range\">\n </div>\n </div>\n <ngx-daterangepicker-material\n #datepickerRef\n [class.hide-ranges]=\"!showRanges\"\n [alwaysShowCalendars]=\"true\"\n [autoApply]=\"true\"\n [customRangeDirection]=\"true\"\n [isCustomDate]=\"$any(isCustomDate)\"\n [locale]=\"localeConfig\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [ranges]=\"showRanges && mode === DatepickerMode.Range ? ranges : null\"\n (datesUpdated)=\"onDatesUpdated($event)\"\n (startDateChanged)=\"onStartDateChanged($event)\">\n </ngx-daterangepicker-material>\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,514 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, HostListener, Input, EventEmitter, Output, forwardRef, Attribute } from '@angular/core';
3
+ import { NG_VALIDATORS } from '@angular/forms';
4
+ import { fromEvent } from 'rxjs';
5
+ import * as i1 from '@agorapulse/ui-components/tooltip-neo';
6
+
7
+ /**
8
+ * expand textarea to fit content. Doesn't shrink.
9
+ */
10
+ class AutosizeTextareaDirective {
11
+ constructor(element) {
12
+ this.element = element;
13
+ }
14
+ onInput() {
15
+ this.resize();
16
+ }
17
+ ngAfterContentChecked() {
18
+ this.resize();
19
+ }
20
+ resize() {
21
+ const style = this.element.nativeElement.style;
22
+ const scrollHeight = this.element.nativeElement.scrollHeight;
23
+ const actualHeight = this.element.nativeElement.offsetHeight;
24
+ if (AutosizeTextareaDirective.maxHeight < scrollHeight) {
25
+ // we arrived at the max
26
+ style.overflow = 'auto';
27
+ style.height = `${AutosizeTextareaDirective.maxHeight}px`;
28
+ }
29
+ else if (actualHeight < scrollHeight) {
30
+ style.overflow = 'hidden';
31
+ style.height = `${scrollHeight}px`;
32
+ }
33
+ }
34
+ }
35
+ AutosizeTextareaDirective.maxHeight = 200;
36
+ AutosizeTextareaDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: AutosizeTextareaDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
37
+ AutosizeTextareaDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: AutosizeTextareaDirective, isStandalone: true, selector: "textarea[apAutosize]", host: { listeners: { "input": "onInput()" } }, ngImport: i0 });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: AutosizeTextareaDirective, decorators: [{
39
+ type: Directive,
40
+ args: [{
41
+ selector: 'textarea[apAutosize]',
42
+ standalone: true
43
+ }]
44
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { onInput: [{
45
+ type: HostListener,
46
+ args: ['input']
47
+ }] } });
48
+
49
+ class DefaultImageDirective {
50
+ updateUrl() {
51
+ if (this.default) {
52
+ this.src = this.default;
53
+ }
54
+ else {
55
+ this.src = 'assets/lib-ui-components/img/default-avatar.png';
56
+ }
57
+ }
58
+ }
59
+ DefaultImageDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DefaultImageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
60
+ DefaultImageDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: DefaultImageDirective, isStandalone: true, selector: "img[default]", inputs: { src: "src", default: "default" }, host: { listeners: { "error": "updateUrl()" }, properties: { "src": "src" } }, ngImport: i0 });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DefaultImageDirective, decorators: [{
62
+ type: Directive,
63
+ args: [{
64
+ // eslint-disable-next-line @angular-eslint/directive-selector
65
+ selector: 'img[default]',
66
+ standalone: true,
67
+ // eslint-disable-next-line @angular-eslint/no-host-metadata-property
68
+ host: {
69
+ '(error)': 'updateUrl()',
70
+ '[src]': 'src'
71
+ }
72
+ }]
73
+ }], propDecorators: { src: [{
74
+ type: Input
75
+ }], default: [{
76
+ type: Input
77
+ }] } });
78
+
79
+ /**
80
+ * Removes excess text from element until it fits in elements
81
+ * and appends a ellipsis symbol to end of text. This requires that
82
+ * the elements height be fixed
83
+ *
84
+ * @example
85
+ * ```html
86
+ * <p apEllipsis>Ullamco esse laborum</p>
87
+ * ```
88
+ *
89
+ */
90
+ class EllipsisDirective {
91
+ constructor(el) {
92
+ this.el = el;
93
+ this.apEllipsisClip = false;
94
+ this.apEllipsisChar = '...';
95
+ this.apEllipsisClickable = false;
96
+ this.apEllipsisRemovedElementsCount = new EventEmitter();
97
+ this.apEllipsisRemovedText = new EventEmitter();
98
+ }
99
+ get hasOverflow() {
100
+ const el = this.el.nativeElement;
101
+ return (el.scrollHeight > el.offsetHeight) || (el.scrollWidth > el.offsetWidth);
102
+ }
103
+ ngAfterContentChecked() {
104
+ this.clipText();
105
+ }
106
+ clipText() {
107
+ const el = this.el.nativeElement;
108
+ let text = el.innerText;
109
+ let removedText = '';
110
+ if (this.apEllipsisIndex > -1) {
111
+ removedText = text.substring(this.apEllipsisIndex, text.length - 1) + removedText;
112
+ text = text.substring(0, this.apEllipsisIndex);
113
+ el.innerText = `${text}${this.apEllipsisChar}`;
114
+ if (this.apEllipsisClickable) {
115
+ el.addEventListener('click', () => {
116
+ el.innerText = `${text}${removedText}`;
117
+ });
118
+ }
119
+ }
120
+ else {
121
+ while (this.hasOverflow && text.length > 0) {
122
+ removedText = text[text.length - 1] + removedText;
123
+ text = text.substring(0, text.length - 1);
124
+ el.innerText = `${text}${this.apEllipsisChar}`;
125
+ }
126
+ }
127
+ if (this.apEllipsisSeparator) {
128
+ const removedElementsCount = removedText.split(this.apEllipsisSeparator)
129
+ .filter(element => !!element && element.length > 0).length;
130
+ if (removedElementsCount > 0) {
131
+ this.apEllipsisRemovedElementsCount.emit(removedElementsCount);
132
+ }
133
+ }
134
+ if (removedText && removedText.length > 0) {
135
+ this.apEllipsisRemovedText.emit(removedText);
136
+ }
137
+ }
138
+ }
139
+ EllipsisDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: EllipsisDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
140
+ EllipsisDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: EllipsisDirective, isStandalone: true, selector: "[apEllipsis]", inputs: { apEllipsisSeparator: "apEllipsisSeparator", apEllipsisClip: "apEllipsisClip", apEllipsisIndex: "apEllipsisIndex", apEllipsisChar: "apEllipsisChar", apEllipsisClickable: "apEllipsisClickable" }, outputs: { apEllipsisRemovedElementsCount: "apEllipsisRemovedElementsCount", apEllipsisRemovedText: "apEllipsisRemovedText" }, ngImport: i0 });
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: EllipsisDirective, decorators: [{
142
+ type: Directive,
143
+ args: [{
144
+ selector: '[apEllipsis]',
145
+ standalone: true,
146
+ }]
147
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { apEllipsisSeparator: [{
148
+ type: Input
149
+ }], apEllipsisClip: [{
150
+ type: Input
151
+ }], apEllipsisIndex: [{
152
+ type: Input
153
+ }], apEllipsisChar: [{
154
+ type: Input
155
+ }], apEllipsisClickable: [{
156
+ type: Input
157
+ }], apEllipsisRemovedElementsCount: [{
158
+ type: Output
159
+ }], apEllipsisRemovedText: [{
160
+ type: Output
161
+ }] } });
162
+
163
+ // Based on https://scotch.io/tutorials/how-to-implement-a-custom-validator-directive-confirm-password-in-angular-2
164
+ class EqualValidatorDirective {
165
+ constructor(validateEqual, validateEqualReference) {
166
+ this.validateEqual = validateEqual;
167
+ this.validateEqualReference = validateEqualReference;
168
+ }
169
+ validate(self) {
170
+ const other = self.root.get(this.validateEqual);
171
+ if (other) {
172
+ if (this.isReference()) {
173
+ if (self.value === other.value) {
174
+ delete other.errors['validateEqual'];
175
+ if (!Object.keys(other.errors).length) {
176
+ other.setErrors(null);
177
+ }
178
+ }
179
+ else {
180
+ other.setErrors({ validateEqual: false });
181
+ }
182
+ }
183
+ else if (self.value !== other.value) {
184
+ return { validateEqual: false };
185
+ }
186
+ }
187
+ return null;
188
+ }
189
+ isReference() {
190
+ if (!this.validateEqualReference) {
191
+ return false;
192
+ }
193
+ return this.validateEqualReference === 'true';
194
+ }
195
+ }
196
+ EqualValidatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: EqualValidatorDirective, deps: [{ token: 'validateEqual', attribute: true }, { token: 'validateEqualReference', attribute: true }], target: i0.ɵɵFactoryTarget.Directive });
197
+ EqualValidatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: EqualValidatorDirective, isStandalone: true, selector: "[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]", providers: [
198
+ {
199
+ provide: NG_VALIDATORS,
200
+ useExisting: forwardRef(() => EqualValidatorDirective),
201
+ multi: true
202
+ }
203
+ ], ngImport: i0 });
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: EqualValidatorDirective, decorators: [{
205
+ type: Directive,
206
+ args: [{
207
+ // eslint-disable-next-line @angular-eslint/directive-selector
208
+ selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',
209
+ providers: [
210
+ {
211
+ provide: NG_VALIDATORS,
212
+ useExisting: forwardRef(() => EqualValidatorDirective),
213
+ multi: true
214
+ }
215
+ ],
216
+ standalone: true,
217
+ }]
218
+ }], ctorParameters: function () {
219
+ return [{ type: undefined, decorators: [{
220
+ type: Attribute,
221
+ args: ['validateEqual']
222
+ }] }, { type: undefined, decorators: [{
223
+ type: Attribute,
224
+ args: ['validateEqualReference']
225
+ }] }];
226
+ } });
227
+
228
+ class GifService {
229
+ static isGif(src) {
230
+ return src && src.split('?')[0].endsWith('.gif');
231
+ }
232
+ }
233
+ /**
234
+ * If the image is a GIF then replace the img element by a canvas containing a frozen gif.
235
+ * Note 1: if the image is displayed under a condition, the condition must be applied on the parent of the image, so the
236
+ * new canvas element will have the same condition.
237
+ * Note 2: the image must not have the properties "display" and "visibility" in its style. Since they are used to frozen
238
+ * the GIF. You need to apply this properties on the parent element.
239
+ * Note 3: If the GIF is frozen, all the event are propagated to the image. However, all events are dispatched
240
+ * with an Event instance. Ex: click event is not dispatched with a MouseEvent instance.
241
+ */
242
+ class FrozenGifDirective {
243
+ constructor(elementRef) {
244
+ this.elementRef = elementRef;
245
+ this.apFrozen = true;
246
+ // Add all the events that need to be propagated.
247
+ this.apGifEvents = ['click'];
248
+ const element = this.elementRef.nativeElement;
249
+ if (!(element instanceof HTMLImageElement)) {
250
+ return;
251
+ }
252
+ this.element = element;
253
+ }
254
+ ngOnChanges(changes) {
255
+ let freeze = false;
256
+ if (changes.src) {
257
+ freeze = true;
258
+ }
259
+ if (changes.frozen) {
260
+ if (changes.frozen.currentValue) {
261
+ freeze = true;
262
+ }
263
+ else {
264
+ this.unfreeze();
265
+ }
266
+ }
267
+ if (freeze) {
268
+ this.freeze();
269
+ }
270
+ }
271
+ freeze() {
272
+ if (!GifService.isGif(this.src) || !this.apFrozen) {
273
+ this.unfreeze();
274
+ return;
275
+ }
276
+ // hack to avoid displaying the GIF before replacing it by the canvas
277
+ this.element.style.visibility = 'hidden';
278
+ this.element.addEventListener('load', () => this.addCanvas());
279
+ }
280
+ addCanvas() {
281
+ if (this.canvas) {
282
+ this.canvas.remove();
283
+ }
284
+ this.canvas = document.createElement('canvas');
285
+ this.canvas.width = this.element.width;
286
+ this.canvas.height = this.element.height;
287
+ this.canvas.getContext('2d').drawImage(this.element, 0, 0, this.canvas.width, this.canvas.height);
288
+ for (let i = 0; i < this.element.attributes.length; i++) {
289
+ const attr = this.element.attributes[i];
290
+ if (attr.name === 'id') { // avoid two elements with the same id
291
+ this.canvas.setAttribute('id', attr.value + '_frozenGif');
292
+ }
293
+ else if (attr.name === 'style' && attr.value.includes('visibility: hidden;') || attr.value.includes('display: none;')) {
294
+ // remove the added 'visibility: hidden' and 'display: none'
295
+ const styleValue = attr.value;
296
+ this.canvas.setAttribute('style', styleValue.replace('visibility: hidden;', '').replace('display: none;', ''));
297
+ }
298
+ else if (attr.name !== '"') { // test for invalid attributes
299
+ this.canvas.setAttribute(attr.name, attr.value);
300
+ }
301
+ }
302
+ this.addEvents();
303
+ this.element.parentNode.insertBefore(this.canvas, this.element);
304
+ this.element.style.display = 'none';
305
+ }
306
+ addEvents() {
307
+ this.apGifEvents.forEach((eventName) => {
308
+ this.canvas.addEventListener(eventName, (ev) => this.element.dispatchEvent(
309
+ // wm: find a way to dispatch the right event type
310
+ new Event(ev.type, ev)));
311
+ });
312
+ }
313
+ unfreeze() {
314
+ if (this.canvas) {
315
+ this.canvas.remove();
316
+ this.canvas = null;
317
+ }
318
+ this.element.style.visibility = 'inherit';
319
+ this.element.style.display = 'inherit';
320
+ }
321
+ }
322
+ FrozenGifDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FrozenGifDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
323
+ FrozenGifDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: FrozenGifDirective, isStandalone: true, selector: "img[apFrozenGif]", inputs: { src: "src", apFrozen: "apFrozen", apGifEvents: "apGifEvents" }, host: { properties: { "src": "src" } }, usesOnChanges: true, ngImport: i0 });
324
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FrozenGifDirective, decorators: [{
325
+ type: Directive,
326
+ args: [{
327
+ selector: 'img[apFrozenGif]',
328
+ // eslint-disable-next-line @angular-eslint/no-host-metadata-property
329
+ host: {
330
+ '[src]': 'src'
331
+ },
332
+ standalone: true,
333
+ }]
334
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { src: [{
335
+ type: Input
336
+ }], apFrozen: [{
337
+ type: Input
338
+ }], apGifEvents: [{
339
+ type: Input
340
+ }] } });
341
+
342
+ const PART_START = '<ng-container data-mst="';
343
+ const PARSE_MIDDLE = '">';
344
+ const PARSE_END = '</ng-container>';
345
+ const DATA_SEPARATOR = ',';
346
+ const OPTIONAL_EVENTS_SEPARATOR = ';';
347
+ /**
348
+ * This directive aims to parse simple string to extract some specific tags and to turn them into SPAN with styling classes attributes and optional event listening.
349
+ * The specific tags must this schema: <ng-container data-mst="STYLING-CLASSES">TEXT</ng-container>.
350
+ * Example: 'Lorem <ng-container data-mst="my-style">ipsum</ng-container> dolor sit amet'.
351
+ */
352
+ class MultiStyleTextDirective {
353
+ constructor(elRef, renderer) {
354
+ this.elRef = elRef;
355
+ this.renderer = renderer;
356
+ this.childrenCreated = [];
357
+ this.partEvent = new EventEmitter();
358
+ }
359
+ set multiStyleText(fullText) {
360
+ // First remove previously added children (on update).
361
+ for (const child of this.childrenCreated) {
362
+ this.renderer.removeChild(this.elRef.nativeElement, child);
363
+ }
364
+ if (fullText && fullText.length > 0) {
365
+ MultiStyleTextDirective.parse(fullText).forEach((part) => {
366
+ if (part.clazz || part.clickName) {
367
+ // Parsed item with styling classes and/or event listening.
368
+ const span = this.renderer.createElement('span');
369
+ const text = this.renderer.createText(part.content);
370
+ this.renderer.appendChild(span, text);
371
+ if (part.clazz) {
372
+ part.clazz.forEach(clazz => this.renderer.addClass(span, clazz));
373
+ }
374
+ if (part.clickName) {
375
+ this.renderer.listen(span, 'click', () => this.partEvent.emit(part.clickName));
376
+ }
377
+ this.renderer.appendChild(this.elRef.nativeElement, span);
378
+ this.childrenCreated.push(span);
379
+ }
380
+ else {
381
+ // Specific of part without styling classes (could be used to get event listening only)
382
+ const text = this.renderer.createText(part.content);
383
+ this.renderer.appendChild(this.elRef.nativeElement, text);
384
+ this.childrenCreated.push(text);
385
+ }
386
+ });
387
+ }
388
+ }
389
+ static parse(toParse) {
390
+ const parts = [];
391
+ let startIndex = toParse.indexOf(PART_START);
392
+ while (startIndex >= 0) {
393
+ if (startIndex > 0) {
394
+ // Optional text before first parsed part.
395
+ parts.push({ content: toParse.substring(0, startIndex) });
396
+ }
397
+ const elem = this.cutFirstGroup(toParse.substring(startIndex));
398
+ if (elem === 'invalid') {
399
+ return [];
400
+ }
401
+ else if (elem) {
402
+ parts.push({
403
+ content: elem.content,
404
+ clazz: elem.classes,
405
+ clickName: elem.clickName
406
+ });
407
+ toParse = elem.rest;
408
+ startIndex = toParse.indexOf(PART_START);
409
+ }
410
+ else {
411
+ parts.push({ content: toParse });
412
+ }
413
+ }
414
+ // Very end
415
+ if (toParse.length > 0) {
416
+ parts.push({ content: toParse });
417
+ }
418
+ return parts;
419
+ }
420
+ static cutFirstGroup(toCut) {
421
+ if (!toCut.startsWith(PART_START)) {
422
+ // String doesn't start with expected parser start.
423
+ return null;
424
+ }
425
+ const afterParserStart = toCut.substring(PART_START.length);
426
+ let index = afterParserStart.indexOf(PARSE_MIDDLE);
427
+ if (index <= 0) {
428
+ console.error('Not able to parse invalid string: ' + toCut);
429
+ return 'invalid';
430
+ }
431
+ const data = afterParserStart.substring(0, index);
432
+ let classes;
433
+ let clickName;
434
+ const eventsPartSeparatorIndex = data.indexOf(OPTIONAL_EVENTS_SEPARATOR);
435
+ if (eventsPartSeparatorIndex > 0) {
436
+ // Case the data contains events part with dedicated separator
437
+ classes = data.substring(0, eventsPartSeparatorIndex);
438
+ clickName = data.substring(eventsPartSeparatorIndex + 1);
439
+ }
440
+ else {
441
+ // Otherwise, only design classes are provided
442
+ classes = data;
443
+ clickName = undefined;
444
+ }
445
+ let rest = afterParserStart.substring(index + PARSE_MIDDLE.length);
446
+ index = rest.indexOf(PARSE_END);
447
+ if (index <= 0) {
448
+ console.error('Not able to parse invalid string: ' + toCut);
449
+ return 'invalid';
450
+ }
451
+ const content = rest.substring(0, index);
452
+ rest = rest.substring(index + PARSE_END.length);
453
+ return {
454
+ content,
455
+ classes: classes.split(DATA_SEPARATOR),
456
+ clickName,
457
+ rest
458
+ };
459
+ }
460
+ }
461
+ MultiStyleTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MultiStyleTextDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
462
+ MultiStyleTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: MultiStyleTextDirective, isStandalone: true, selector: "[multiStyleText]", inputs: { multiStyleText: "multiStyleText" }, outputs: { partEvent: "partEvent" }, ngImport: i0 });
463
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MultiStyleTextDirective, decorators: [{
464
+ type: Directive,
465
+ args: [{
466
+ // eslint-disable-next-line @angular-eslint/directive-selector
467
+ selector: '[multiStyleText]',
468
+ standalone: true,
469
+ }]
470
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { multiStyleText: [{
471
+ type: Input
472
+ }], partEvent: [{
473
+ type: Output
474
+ }] } });
475
+
476
+ // Angular
477
+ class TruncateTooltipDirective {
478
+ constructor(tooltipNeo, elementRef) {
479
+ this.tooltipNeo = tooltipNeo;
480
+ this.elementRef = elementRef;
481
+ }
482
+ updateTruncateState() {
483
+ const element = this.elementRef.nativeElement;
484
+ const truncated = element.scrollWidth > element.clientWidth;
485
+ let defaultTooltip = '';
486
+ // In case a default tooltip content exists, even not truncated, the tooltip stay displayed
487
+ if (typeof (this.truncateTooltip) === 'object' && this.truncateTooltip.defaultContent) {
488
+ defaultTooltip = Object.assign(Object.assign({}, this.truncateTooltip), { content: this.truncateTooltip.defaultContent });
489
+ }
490
+ this.tooltipNeo.apTooltipNeo = truncated ? this.truncateTooltip : defaultTooltip;
491
+ }
492
+ ngOnInit() {
493
+ this.elementRefMouseOver$ = fromEvent(this.elementRef.nativeElement, 'mouseover')
494
+ .subscribe(() => this.updateTruncateState());
495
+ }
496
+ ngOnDestroy() {
497
+ this.elementRefMouseOver$.unsubscribe();
498
+ }
499
+ }
500
+ TruncateTooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TruncateTooltipDirective, deps: [{ token: i1.TooltipNeoDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
501
+ TruncateTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: TruncateTooltipDirective, isStandalone: true, selector: "[apTooltipNeo][truncateTooltip]", inputs: { truncateTooltip: "truncateTooltip" }, ngImport: i0 });
502
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TruncateTooltipDirective, decorators: [{
503
+ type: Directive,
504
+ args: [{ selector: '[apTooltipNeo][truncateTooltip]', standalone: true, }]
505
+ }], ctorParameters: function () { return [{ type: i1.TooltipNeoDirective }, { type: i0.ElementRef }]; }, propDecorators: { truncateTooltip: [{
506
+ type: Input
507
+ }] } });
508
+
509
+ /**
510
+ * Generated bundle index. Do not edit.
511
+ */
512
+
513
+ export { AutosizeTextareaDirective, DefaultImageDirective, EllipsisDirective, EqualValidatorDirective, FrozenGifDirective, GifService, MultiStyleTextDirective, TruncateTooltipDirective };
514
+ //# sourceMappingURL=agorapulse-ui-components-directives.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agorapulse-ui-components-directives.mjs","sources":["../../../libs/ui-components/directives/src/autosize-textarea.directive.ts","../../../libs/ui-components/directives/src/default-image.directive.ts","../../../libs/ui-components/directives/src/ellipsis.directive.ts","../../../libs/ui-components/directives/src/equal-validator.directive.ts","../../../libs/ui-components/directives/src/frozen-gif.directive.ts","../../../libs/ui-components/directives/src/multi-style-text.directive.ts","../../../libs/ui-components/directives/src/truncate-tooltip.directive.ts","../../../libs/ui-components/directives/src/agorapulse-ui-components-directives.ts"],"sourcesContent":["import { AfterContentChecked, Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: 'textarea[apAutosize]',\n standalone: true\n})\n/**\n * expand textarea to fit content. Doesn't shrink.\n */\nexport class AutosizeTextareaDirective implements AfterContentChecked {\n\n static maxHeight: number = 200;\n\n constructor(public element: ElementRef) {}\n\n @HostListener('input')\n public onInput() {\n this.resize();\n }\n\n public ngAfterContentChecked() {\n this.resize();\n }\n\n public resize() {\n const style = this.element.nativeElement.style;\n const scrollHeight = this.element.nativeElement.scrollHeight;\n const actualHeight = this.element.nativeElement.offsetHeight;\n if (AutosizeTextareaDirective.maxHeight < scrollHeight) {\n // we arrived at the max\n style.overflow = 'auto';\n style.height = `${AutosizeTextareaDirective.maxHeight}px`;\n } else if (actualHeight < scrollHeight) {\n style.overflow = 'hidden';\n style.height = `${scrollHeight}px`;\n }\n }\n\n}\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'img[default]',\n standalone: true,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '(error)': 'updateUrl()',\n '[src]': 'src'\n }\n})\nexport class DefaultImageDirective {\n @Input() src: string;\n @Input() default: string;\n\n updateUrl() {\n if (this.default) {\n this.src = this.default;\n } else {\n this.src = 'assets/lib-ui-components/img/default-avatar.png';\n }\n }\n}\n","import {AfterContentChecked, Directive, ElementRef, EventEmitter, Input, Output,} from '@angular/core';\n\n/**\n * Removes excess text from element until it fits in elements\n * and appends a ellipsis symbol to end of text. This requires that\n * the elements height be fixed\n *\n * @example\n * ```html\n * <p apEllipsis>Ullamco esse laborum</p>\n * ```\n *\n */\n@Directive({\n selector: '[apEllipsis]',\n standalone: true,\n})\nexport class EllipsisDirective implements AfterContentChecked {\n\n @Input() apEllipsisSeparator: string;\n @Input() apEllipsisClip: boolean = false;\n @Input() apEllipsisIndex: number;\n @Input() apEllipsisChar: string = '...';\n @Input() apEllipsisClickable: boolean = false;\n\n @Output() apEllipsisRemovedElementsCount = new EventEmitter<number>();\n @Output() apEllipsisRemovedText = new EventEmitter<string>();\n\n private get hasOverflow(): boolean {\n const el: HTMLElement = this.el.nativeElement;\n return (el.scrollHeight > el.offsetHeight) || (el.scrollWidth > el.offsetWidth);\n }\n\n constructor(private el: ElementRef) { }\n\n ngAfterContentChecked() {\n this.clipText();\n }\n\n private clipText(): void {\n const el: HTMLElement = this.el.nativeElement;\n let text = el.innerText;\n let removedText = '';\n if (this.apEllipsisIndex > -1) {\n removedText = text.substring(this.apEllipsisIndex, text.length - 1) + removedText;\n text = text.substring(0, this.apEllipsisIndex);\n el.innerText = `${text}${this.apEllipsisChar}`;\n\n if (this.apEllipsisClickable) {\n el.addEventListener('click', () => {\n el.innerText = `${text}${removedText}`;\n });\n }\n } else {\n while (this.hasOverflow && text.length > 0) {\n removedText = text[text.length - 1] + removedText;\n text = text.substring(0, text.length - 1);\n el.innerText = `${text}${this.apEllipsisChar}`;\n }\n }\n\n if (this.apEllipsisSeparator) {\n const removedElementsCount = removedText.split(this.apEllipsisSeparator)\n .filter(element => !!element && element.length > 0).length;\n if (removedElementsCount > 0) {\n this.apEllipsisRemovedElementsCount.emit(removedElementsCount);\n }\n }\n if (removedText && removedText.length > 0) {\n this.apEllipsisRemovedText.emit(removedText);\n }\n }\n}\n","// Based on https://scotch.io/tutorials/how-to-implement-a-custom-validator-directive-confirm-password-in-angular-2\nimport { Directive, forwardRef, Attribute } from '@angular/core';\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EqualValidatorDirective),\n multi: true\n }\n ],\n standalone: true,\n})\nexport class EqualValidatorDirective implements Validator {\n\n constructor(@Attribute('validateEqual') public validateEqual: string,\n @Attribute('validateEqualReference') public validateEqualReference: string) {}\n\n validate(self: AbstractControl): { [key: string]: any } {\n const other = self.root.get(this.validateEqual);\n if (other) {\n if (this.isReference()) {\n if (self.value === other.value) {\n delete other.errors['validateEqual'];\n if (!Object.keys(other.errors).length) {\n other.setErrors(null);\n }\n } else {\n other.setErrors({ validateEqual: false });\n }\n } else if (self.value !== other.value) {\n return { validateEqual: false };\n }\n }\n return null;\n }\n\n private isReference(): boolean {\n if (!this.validateEqualReference) {\n return false;\n }\n return this.validateEqualReference === 'true';\n }\n\n}\n","import {Directive, ElementRef, HostBinding, Input, OnChanges} from '@angular/core';\n\nexport class GifService {\n static isGif(src: string) {\n return src && src.split('?')[0].endsWith('.gif');\n }\n}\n\n/**\n * If the image is a GIF then replace the img element by a canvas containing a frozen gif.\n * Note 1: if the image is displayed under a condition, the condition must be applied on the parent of the image, so the\n * new canvas element will have the same condition.\n * Note 2: the image must not have the properties \"display\" and \"visibility\" in its style. Since they are used to frozen\n * the GIF. You need to apply this properties on the parent element.\n * Note 3: If the GIF is frozen, all the event are propagated to the image. However, all events are dispatched\n * with an Event instance. Ex: click event is not dispatched with a MouseEvent instance.\n */\n\n@Directive({\n selector: 'img[apFrozenGif]',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[src]': 'src'\n },\n standalone: true,\n})\nexport class FrozenGifDirective implements OnChanges {\n @Input() src: string;\n @Input() apFrozen = true;\n // Add all the events that need to be propagated.\n @Input() apGifEvents: string[] = ['click'];\n\n private readonly element: HTMLImageElement;\n private canvas: HTMLCanvasElement;\n\n constructor(private elementRef: ElementRef) {\n const element = this.elementRef.nativeElement;\n if (!(element instanceof HTMLImageElement)) {\n return;\n }\n\n this.element = element;\n }\n\n ngOnChanges(changes: any): void {\n let freeze = false;\n if (changes.src) {\n freeze = true;\n }\n if (changes.frozen) {\n if (changes.frozen.currentValue) {\n freeze = true;\n } else {\n this.unfreeze();\n }\n }\n\n if (freeze) {\n this.freeze();\n }\n\n }\n\n private freeze() {\n if (!GifService.isGif(this.src) || !this.apFrozen) {\n this.unfreeze();\n return;\n }\n\n // hack to avoid displaying the GIF before replacing it by the canvas\n this.element.style.visibility = 'hidden';\n this.element.addEventListener('load', () => this.addCanvas());\n }\n\n private addCanvas() {\n if (this.canvas) {\n this.canvas.remove();\n }\n\n this.canvas = document.createElement('canvas');\n this.canvas.width = this.element.width;\n this.canvas.height = this.element.height;\n this.canvas.getContext('2d').drawImage(this.element, 0, 0, this.canvas.width, this.canvas.height);\n for (let i = 0; i < this.element.attributes.length; i++) {\n const attr = this.element.attributes[i];\n if (attr.name === 'id') { // avoid two elements with the same id\n this.canvas.setAttribute('id', attr.value + '_frozenGif');\n } else if (attr.name === 'style' && attr.value.includes('visibility: hidden;') || attr.value.includes('display: none;')) {\n // remove the added 'visibility: hidden' and 'display: none'\n const styleValue = attr.value;\n this.canvas.setAttribute('style', styleValue.replace('visibility: hidden;', '').replace('display: none;', ''));\n } else if (attr.name !== '\"') { // test for invalid attributes\n this.canvas.setAttribute(attr.name, attr.value);\n }\n }\n\n this.addEvents();\n\n this.element.parentNode.insertBefore(this.canvas, this.element);\n this.element.style.display = 'none';\n }\n\n private addEvents() {\n this.apGifEvents.forEach((eventName: string) => {\n this.canvas.addEventListener(eventName, (ev: Event) => this.element.dispatchEvent(\n // wm: find a way to dispatch the right event type\n new Event(ev.type, ev)\n ));\n });\n }\n\n private unfreeze() {\n if (this.canvas) {\n this.canvas.remove();\n this.canvas = null;\n }\n this.element.style.visibility = 'inherit';\n this.element.style.display = 'inherit';\n }\n}\n","import {Directive, Input, Renderer2, ElementRef, Output, EventEmitter} from '@angular/core';\n\nconst PART_START = '<ng-container data-mst=\"';\nconst PARSE_MIDDLE = '\">';\nconst PARSE_END = '</ng-container>';\nconst DATA_SEPARATOR = ',';\nconst OPTIONAL_EVENTS_SEPARATOR = ';';\n\ninterface Part {\n content: string;\n clazz?: string[]; // Not defined on sterile text\n clickName?: string; // Not defined on sterile text\n}\n\n/**\n * This directive aims to parse simple string to extract some specific tags and to turn them into SPAN with styling classes attributes and optional event listening.\n * The specific tags must this schema: <ng-container data-mst=\"STYLING-CLASSES\">TEXT</ng-container>.\n * Example: 'Lorem <ng-container data-mst=\"my-style\">ipsum</ng-container> dolor sit amet'.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[multiStyleText]',\n standalone: true,\n})\nexport class MultiStyleTextDirective {\n\n private childrenCreated: any[] = [];\n\n @Input() set multiStyleText(fullText: string) {\n // First remove previously added children (on update).\n for (const child of this.childrenCreated) {\n this.renderer.removeChild(this.elRef.nativeElement, child);\n }\n\n if (fullText && fullText.length > 0) {\n MultiStyleTextDirective.parse(fullText).forEach((part: Part) => {\n if (part.clazz || part.clickName) {\n // Parsed item with styling classes and/or event listening.\n const span = this.renderer.createElement('span');\n const text = this.renderer.createText(part.content);\n this.renderer.appendChild(span, text);\n if (part.clazz) {\n part.clazz.forEach(clazz => this.renderer.addClass(span, clazz));\n }\n if (part.clickName) {\n this.renderer.listen(span, 'click', () => this.partEvent.emit(part.clickName));\n }\n this.renderer.appendChild(this.elRef.nativeElement, span);\n this.childrenCreated.push(span);\n } else {\n // Specific of part without styling classes (could be used to get event listening only)\n const text = this.renderer.createText(part.content);\n this.renderer.appendChild(this.elRef.nativeElement, text);\n this.childrenCreated.push(text);\n }\n });\n }\n }\n\n @Output() partEvent = new EventEmitter<string>();\n\n public constructor(\n private elRef: ElementRef,\n private renderer: Renderer2\n ) {\n }\n\n private static parse(toParse: string): Part[] {\n const parts: Part[] = [];\n let startIndex = toParse.indexOf(PART_START);\n while (startIndex >= 0) {\n if (startIndex > 0) {\n // Optional text before first parsed part.\n parts.push({content: toParse.substring(0, startIndex)});\n }\n const elem = this.cutFirstGroup(toParse.substring(startIndex));\n if (elem === 'invalid') {\n return [];\n } else if (elem) {\n parts.push({\n content: elem.content,\n clazz: elem.classes,\n clickName: elem.clickName\n });\n toParse = elem.rest;\n startIndex = toParse.indexOf(PART_START);\n } else {\n parts.push({content: toParse});\n }\n }\n // Very end\n if (toParse.length > 0) {\n parts.push({content: toParse});\n }\n return parts;\n }\n\n private static cutFirstGroup(toCut: string): {content: string, classes: string[], clickName: string, rest: string} | 'invalid' | null {\n if (!toCut.startsWith(PART_START)) {\n // String doesn't start with expected parser start.\n return null;\n }\n\n const afterParserStart = toCut.substring(PART_START.length);\n let index = afterParserStart.indexOf(PARSE_MIDDLE);\n if (index <= 0) {\n console.error('Not able to parse invalid string: ' + toCut);\n return 'invalid';\n }\n const data = afterParserStart.substring(0, index);\n let classes;\n let clickName;\n const eventsPartSeparatorIndex = data.indexOf(OPTIONAL_EVENTS_SEPARATOR);\n if (eventsPartSeparatorIndex > 0) {\n // Case the data contains events part with dedicated separator\n classes = data.substring(0, eventsPartSeparatorIndex);\n clickName = data.substring(eventsPartSeparatorIndex + 1);\n } else {\n // Otherwise, only design classes are provided\n classes = data;\n clickName = undefined;\n }\n let rest = afterParserStart.substring(index + PARSE_MIDDLE.length);\n index = rest.indexOf(PARSE_END);\n if (index <= 0) {\n console.error('Not able to parse invalid string: ' + toCut);\n return 'invalid';\n }\n const content = rest.substring(0, index);\n rest = rest.substring(index + PARSE_END.length);\n\n return {\n content,\n classes: classes.split(DATA_SEPARATOR),\n clickName,\n rest\n };\n }\n}\n","// Agorapulse\nimport {TooltipNeoDirective, TooltipNeoParams} from '@agorapulse/ui-components/tooltip-neo';\n// Angular\nimport {Directive, ElementRef, Input, OnDestroy, OnInit} from '@angular/core';\n// Third-parties\nimport {fromEvent, Subscription} from 'rxjs';\nimport {TruncateTooltipNeoParams} from './truncate-tooltip.model';\n\n@Directive({selector: '[apTooltipNeo][truncateTooltip]', standalone: true,})\nexport class TruncateTooltipDirective implements OnInit, OnDestroy {\n\n @Input() truncateTooltip: string | TruncateTooltipNeoParams;\n\n private elementRefMouseOver$: Subscription;\n\n constructor(\n private tooltipNeo: TooltipNeoDirective,\n private elementRef: ElementRef<HTMLElement>\n ) {\n }\n\n private updateTruncateState(): void {\n const element = this.elementRef.nativeElement;\n const truncated = element.scrollWidth > element.clientWidth;\n\n let defaultTooltip: string | TooltipNeoParams = '';\n // In case a default tooltip content exists, even not truncated, the tooltip stay displayed\n if (typeof(this.truncateTooltip) === 'object' && this.truncateTooltip.defaultContent) {\n defaultTooltip = {\n ...this.truncateTooltip,\n content: this.truncateTooltip.defaultContent\n }\n }\n this.tooltipNeo.apTooltipNeo = truncated ? this.truncateTooltip : defaultTooltip;\n\n }\n\n ngOnInit(): void {\n this.elementRefMouseOver$ = fromEvent(this.elementRef.nativeElement, 'mouseover')\n .subscribe(() => this.updateTruncateState());\n }\n\n ngOnDestroy(): void {\n this.elementRefMouseOver$.unsubscribe();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}