@agorapulse/ui-components 15.1.31 → 16.0.0-rc.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 (386) hide show
  1. package/add-comment/add-comment.component.d.ts +3 -3
  2. package/agorapulse-ui-components-16.0.0-rc.0.tgz +0 -0
  3. package/avatar/avatar.component.d.ts +1 -1
  4. package/button/button.component.d.ts +2 -2
  5. package/checkbox/checkbox.component.d.ts +4 -4
  6. package/confirm-modal/confirm-modal.component.d.ts +2 -2
  7. package/datepicker/datepicker.component.d.ts +7 -7
  8. package/directives/base-button.directive.d.ts +2 -2
  9. package/directives/default-image.directive.d.ts +1 -1
  10. package/directives/ellipsis.directive.d.ts +1 -1
  11. package/directives/equal-validator.directive.d.ts +1 -1
  12. package/directives/frozen-gif.directive.d.ts +2 -2
  13. package/directives/multi-style-text.directive.d.ts +2 -2
  14. package/directives/truncate-tooltip.directive.d.ts +1 -1
  15. package/dots-stepper/dots-stepper.component.d.ts +6 -6
  16. package/esm2022/add-comment/add-comment.component.mjs +68 -0
  17. package/esm2022/avatar/avatar.component.mjs +209 -0
  18. package/esm2022/button/button.component.mjs +109 -0
  19. package/esm2022/checkbox/checkbox.component.mjs +169 -0
  20. package/esm2022/confirm-modal/confirm-modal.component.mjs +61 -0
  21. package/esm2022/datepicker/datepicker.component.mjs +271 -0
  22. package/esm2022/directives/autosize-textarea.directive.mjs +45 -0
  23. package/esm2022/directives/base-button.directive.mjs +47 -0
  24. package/esm2022/directives/default-image.directive.mjs +37 -0
  25. package/esm2022/directives/ellipsis.directive.mjs +90 -0
  26. package/esm2022/directives/equal-validator.directive.mjs +73 -0
  27. package/esm2022/directives/frozen-gif.directive.mjs +125 -0
  28. package/esm2022/directives/multi-style-text.directive.mjs +61 -0
  29. package/esm2022/directives/truncate-tooltip.directive.mjs +43 -0
  30. package/esm2022/dots-stepper/dots-stepper.component.mjs +43 -0
  31. package/esm2022/icon-button/icon-button.component.mjs +118 -0
  32. package/esm2022/index.mjs +42 -0
  33. package/esm2022/infobox/infobox.component.mjs +65 -0
  34. package/esm2022/labels/label-list.component.mjs +106 -0
  35. package/esm2022/labels/label.component.mjs +64 -0
  36. package/esm2022/labels-selector/labels-selector.component.mjs +107 -0
  37. package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +94 -0
  38. package/esm2022/modal/modal.component.mjs +119 -0
  39. package/{esm2020 → esm2022}/neo-datepicker/day-detail.model.mjs +1 -1
  40. package/esm2022/neo-datepicker/day-disabled.pipe.mjs +21 -0
  41. package/esm2022/neo-datepicker/neo-datepicker.component.mjs +243 -0
  42. package/esm2022/notification/notification.component.mjs +15 -0
  43. package/esm2022/paginator/paginator-button/paginator-button.component.mjs +51 -0
  44. package/esm2022/paginator/paginator.component.mjs +126 -0
  45. package/esm2022/password-input/password-input.component.mjs +77 -0
  46. package/esm2022/popmenu/options.mjs +17 -0
  47. package/esm2022/popmenu/popmenu-options.interface.mjs +2 -0
  48. package/esm2022/popmenu/popmenu-options.service.mjs +7 -0
  49. package/esm2022/popmenu/popmenu.component.mjs +384 -0
  50. package/esm2022/popmenu/popmenu.directive.mjs +292 -0
  51. package/esm2022/popmenu/popmenu.module.mjs +29 -0
  52. package/esm2022/radio/radio-control.registry.mjs +102 -0
  53. package/esm2022/radio/radio.component.mjs +218 -0
  54. package/esm2022/slide-toggle/slide-toggle.component.mjs +63 -0
  55. package/esm2022/snackbar/snackbar.component.mjs +27 -0
  56. package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +75 -0
  57. package/esm2022/snackbars-thread/model/snackbars-thread.model.mjs +54 -0
  58. package/{esm2020 → esm2022}/snackbars-thread/public_api.mjs +2 -2
  59. package/esm2022/snackbars-thread/service/snackbars-thread.service.mjs +45 -0
  60. package/esm2022/snackbars-thread/utils/const/snackbars-thread.const.mjs +13 -0
  61. package/esm2022/social-button/social-button.component.mjs +143 -0
  62. package/esm2022/split-button/split-button.component.mjs +126 -0
  63. package/esm2022/src/lib/agorapulse-ui-components.module.mjs +213 -0
  64. package/esm2022/stepper/stepper.component.mjs +38 -0
  65. package/esm2022/text-measurement/text-measurement.service.mjs +29 -0
  66. package/esm2022/toggle/toggle.component.mjs +203 -0
  67. package/esm2022/tooltip/tooltip.directive.mjs +397 -0
  68. package/esm2022/tooltip/tooltip.service.mjs +29 -0
  69. package/fesm2022/agorapulse-ui-components-add-comment.mjs +75 -0
  70. package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -0
  71. package/fesm2022/agorapulse-ui-components-avatar.mjs +216 -0
  72. package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -0
  73. package/fesm2022/agorapulse-ui-components-button.mjs +116 -0
  74. package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -0
  75. package/fesm2022/agorapulse-ui-components-checkbox.mjs +176 -0
  76. package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -0
  77. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs +68 -0
  78. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs.map +1 -0
  79. package/fesm2022/agorapulse-ui-components-datepicker.mjs +278 -0
  80. package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -0
  81. package/{fesm2020 → fesm2022}/agorapulse-ui-components-directives.mjs +104 -72
  82. package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -0
  83. package/fesm2022/agorapulse-ui-components-dots-stepper.mjs +50 -0
  84. package/fesm2022/agorapulse-ui-components-dots-stepper.mjs.map +1 -0
  85. package/fesm2022/agorapulse-ui-components-icon-button.mjs +125 -0
  86. package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -0
  87. package/fesm2022/agorapulse-ui-components-infobox.mjs +69 -0
  88. package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -0
  89. package/fesm2022/agorapulse-ui-components-labels-selector.mjs +114 -0
  90. package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -0
  91. package/fesm2022/agorapulse-ui-components-labels.mjs +173 -0
  92. package/fesm2022/agorapulse-ui-components-labels.mjs.map +1 -0
  93. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +101 -0
  94. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -0
  95. package/fesm2022/agorapulse-ui-components-modal.mjs +126 -0
  96. package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -0
  97. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +268 -0
  98. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -0
  99. package/fesm2022/agorapulse-ui-components-notification.mjs +22 -0
  100. package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -0
  101. package/fesm2022/agorapulse-ui-components-paginator.mjs +181 -0
  102. package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -0
  103. package/fesm2022/agorapulse-ui-components-password-input.mjs +84 -0
  104. package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -0
  105. package/{fesm2020 → fesm2022}/agorapulse-ui-components-popmenu.mjs +112 -83
  106. package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -0
  107. package/fesm2022/agorapulse-ui-components-radio.mjs +322 -0
  108. package/fesm2022/agorapulse-ui-components-radio.mjs.map +1 -0
  109. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +70 -0
  110. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -0
  111. package/fesm2022/agorapulse-ui-components-snackbar.mjs +34 -0
  112. package/fesm2022/agorapulse-ui-components-snackbar.mjs.map +1 -0
  113. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +190 -0
  114. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -0
  115. package/fesm2022/agorapulse-ui-components-social-button.mjs +150 -0
  116. package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -0
  117. package/fesm2022/agorapulse-ui-components-split-button.mjs +133 -0
  118. package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -0
  119. package/fesm2022/agorapulse-ui-components-stepper.mjs +45 -0
  120. package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -0
  121. package/{fesm2020 → fesm2022}/agorapulse-ui-components-text-measurement.mjs +8 -7
  122. package/fesm2022/agorapulse-ui-components-text-measurement.mjs.map +1 -0
  123. package/fesm2022/agorapulse-ui-components-toggle.mjs +210 -0
  124. package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -0
  125. package/{fesm2020 → fesm2022}/agorapulse-ui-components-tooltip.mjs +114 -75
  126. package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -0
  127. package/{fesm2015 → fesm2022}/agorapulse-ui-components.mjs +100 -103
  128. package/fesm2022/agorapulse-ui-components.mjs.map +1 -0
  129. package/icon-button/icon-button.component.d.ts +3 -3
  130. package/infobox/infobox.component.d.ts +3 -3
  131. package/labels/label-list.component.d.ts +2 -2
  132. package/labels/label.component.d.ts +3 -3
  133. package/labels-selector/labels-selector.component.d.ts +2 -2
  134. package/media-display-overlay/media-display-overlay-dialog.component.d.ts +1 -1
  135. package/modal/modal.component.d.ts +12 -12
  136. package/neo-datepicker/day-detail.model.d.ts +2 -2
  137. package/neo-datepicker/day-disabled.pipe.d.ts +1 -1
  138. package/neo-datepicker/neo-datepicker.component.d.ts +10 -7
  139. package/notification/notification.component.d.ts +1 -1
  140. package/package.json +107 -172
  141. package/paginator/paginator-button/paginator-button.component.d.ts +1 -1
  142. package/paginator/paginator.component.d.ts +1 -1
  143. package/password-input/password-input.component.d.ts +4 -4
  144. package/popmenu/popmenu-options.interface.d.ts +24 -19
  145. package/popmenu/popmenu.component.d.ts +10 -10
  146. package/popmenu/popmenu.directive.d.ts +23 -23
  147. package/radio/radio-control.registry.d.ts +2 -2
  148. package/radio/radio.component.d.ts +2 -2
  149. package/slide-toggle/slide-toggle.component.d.ts +1 -1
  150. package/snackbar/snackbar.component.d.ts +1 -1
  151. package/snackbars-thread/component/snackbars-thread.component.d.ts +2 -2
  152. package/snackbars-thread/model/snackbars-thread.model.d.ts +1 -1
  153. package/snackbars-thread/public_api.d.ts +1 -1
  154. package/snackbars-thread/service/snackbars-thread.service.d.ts +4 -4
  155. package/social-button/social-button.component.d.ts +3 -3
  156. package/split-button/split-button.component.d.ts +3 -3
  157. package/stepper/stepper.component.d.ts +2 -2
  158. package/toggle/toggle.component.d.ts +3 -3
  159. package/tooltip/tooltip.directive.d.ts +5 -5
  160. package/agorapulse-ui-components-15.1.31.tgz +0 -0
  161. package/esm2020/add-comment/add-comment.component.mjs +0 -69
  162. package/esm2020/avatar/avatar.component.mjs +0 -211
  163. package/esm2020/button/button.component.mjs +0 -104
  164. package/esm2020/checkbox/checkbox.component.mjs +0 -163
  165. package/esm2020/confirm-modal/confirm-modal.component.mjs +0 -60
  166. package/esm2020/datepicker/datepicker.component.mjs +0 -259
  167. package/esm2020/directives/autosize-textarea.directive.mjs +0 -44
  168. package/esm2020/directives/base-button.directive.mjs +0 -47
  169. package/esm2020/directives/default-image.directive.mjs +0 -32
  170. package/esm2020/directives/ellipsis.directive.mjs +0 -86
  171. package/esm2020/directives/equal-validator.directive.mjs +0 -66
  172. package/esm2020/directives/frozen-gif.directive.mjs +0 -116
  173. package/esm2020/directives/multi-style-text.directive.mjs +0 -58
  174. package/esm2020/directives/truncate-tooltip.directive.mjs +0 -40
  175. package/esm2020/dots-stepper/dots-stepper.component.mjs +0 -43
  176. package/esm2020/icon-button/icon-button.component.mjs +0 -112
  177. package/esm2020/index.mjs +0 -42
  178. package/esm2020/infobox/infobox.component.mjs +0 -67
  179. package/esm2020/labels/label-list.component.mjs +0 -101
  180. package/esm2020/labels/label.component.mjs +0 -58
  181. package/esm2020/labels-selector/labels-selector.component.mjs +0 -101
  182. package/esm2020/media-display-overlay/media-display-overlay-dialog.component.mjs +0 -94
  183. package/esm2020/modal/modal.component.mjs +0 -109
  184. package/esm2020/neo-datepicker/day-disabled.pipe.mjs +0 -21
  185. package/esm2020/neo-datepicker/neo-datepicker.component.mjs +0 -228
  186. package/esm2020/notification/notification.component.mjs +0 -17
  187. package/esm2020/paginator/paginator-button/paginator-button.component.mjs +0 -51
  188. package/esm2020/paginator/paginator.component.mjs +0 -124
  189. package/esm2020/password-input/password-input.component.mjs +0 -75
  190. package/esm2020/popmenu/options.mjs +0 -17
  191. package/esm2020/popmenu/popmenu-options.interface.mjs +0 -2
  192. package/esm2020/popmenu/popmenu-options.service.mjs +0 -7
  193. package/esm2020/popmenu/popmenu.component.mjs +0 -373
  194. package/esm2020/popmenu/popmenu.directive.mjs +0 -268
  195. package/esm2020/popmenu/popmenu.module.mjs +0 -35
  196. package/esm2020/radio/radio-control.registry.mjs +0 -104
  197. package/esm2020/radio/radio.component.mjs +0 -199
  198. package/esm2020/slide-toggle/slide-toggle.component.mjs +0 -65
  199. package/esm2020/snackbar/snackbar.component.mjs +0 -26
  200. package/esm2020/snackbars-thread/component/snackbars-thread.component.mjs +0 -79
  201. package/esm2020/snackbars-thread/model/snackbars-thread.model.mjs +0 -52
  202. package/esm2020/snackbars-thread/service/snackbars-thread.service.mjs +0 -41
  203. package/esm2020/snackbars-thread/utils/const/snackbars-thread.const.mjs +0 -13
  204. package/esm2020/social-button/social-button.component.mjs +0 -137
  205. package/esm2020/split-button/split-button.component.mjs +0 -112
  206. package/esm2020/src/lib/agorapulse-ui-components.module.mjs +0 -213
  207. package/esm2020/stepper/stepper.component.mjs +0 -36
  208. package/esm2020/text-measurement/text-measurement.service.mjs +0 -28
  209. package/esm2020/toggle/toggle.component.mjs +0 -190
  210. package/esm2020/tooltip/tooltip.directive.mjs +0 -358
  211. package/esm2020/tooltip/tooltip.service.mjs +0 -29
  212. package/fesm2015/agorapulse-ui-components-add-comment.mjs +0 -76
  213. package/fesm2015/agorapulse-ui-components-add-comment.mjs.map +0 -1
  214. package/fesm2015/agorapulse-ui-components-avatar.mjs +0 -218
  215. package/fesm2015/agorapulse-ui-components-avatar.mjs.map +0 -1
  216. package/fesm2015/agorapulse-ui-components-button.mjs +0 -111
  217. package/fesm2015/agorapulse-ui-components-button.mjs.map +0 -1
  218. package/fesm2015/agorapulse-ui-components-checkbox.mjs +0 -170
  219. package/fesm2015/agorapulse-ui-components-checkbox.mjs.map +0 -1
  220. package/fesm2015/agorapulse-ui-components-confirm-modal.mjs +0 -67
  221. package/fesm2015/agorapulse-ui-components-confirm-modal.mjs.map +0 -1
  222. package/fesm2015/agorapulse-ui-components-datepicker.mjs +0 -269
  223. package/fesm2015/agorapulse-ui-components-datepicker.mjs.map +0 -1
  224. package/fesm2015/agorapulse-ui-components-directives.mjs +0 -483
  225. package/fesm2015/agorapulse-ui-components-directives.mjs.map +0 -1
  226. package/fesm2015/agorapulse-ui-components-dots-stepper.mjs +0 -50
  227. package/fesm2015/agorapulse-ui-components-dots-stepper.mjs.map +0 -1
  228. package/fesm2015/agorapulse-ui-components-icon-button.mjs +0 -119
  229. package/fesm2015/agorapulse-ui-components-icon-button.mjs.map +0 -1
  230. package/fesm2015/agorapulse-ui-components-infobox.mjs +0 -71
  231. package/fesm2015/agorapulse-ui-components-infobox.mjs.map +0 -1
  232. package/fesm2015/agorapulse-ui-components-labels-selector.mjs +0 -109
  233. package/fesm2015/agorapulse-ui-components-labels-selector.mjs.map +0 -1
  234. package/fesm2015/agorapulse-ui-components-labels.mjs +0 -162
  235. package/fesm2015/agorapulse-ui-components-labels.mjs.map +0 -1
  236. package/fesm2015/agorapulse-ui-components-media-display-overlay.mjs +0 -103
  237. package/fesm2015/agorapulse-ui-components-media-display-overlay.mjs.map +0 -1
  238. package/fesm2015/agorapulse-ui-components-modal.mjs +0 -116
  239. package/fesm2015/agorapulse-ui-components-modal.mjs.map +0 -1
  240. package/fesm2015/agorapulse-ui-components-neo-datepicker.mjs +0 -253
  241. package/fesm2015/agorapulse-ui-components-neo-datepicker.mjs.map +0 -1
  242. package/fesm2015/agorapulse-ui-components-notification.mjs +0 -24
  243. package/fesm2015/agorapulse-ui-components-notification.mjs.map +0 -1
  244. package/fesm2015/agorapulse-ui-components-paginator.mjs +0 -179
  245. package/fesm2015/agorapulse-ui-components-paginator.mjs.map +0 -1
  246. package/fesm2015/agorapulse-ui-components-password-input.mjs +0 -82
  247. package/fesm2015/agorapulse-ui-components-password-input.mjs.map +0 -1
  248. package/fesm2015/agorapulse-ui-components-popmenu.mjs +0 -698
  249. package/fesm2015/agorapulse-ui-components-popmenu.mjs.map +0 -1
  250. package/fesm2015/agorapulse-ui-components-radio.mjs +0 -306
  251. package/fesm2015/agorapulse-ui-components-radio.mjs.map +0 -1
  252. package/fesm2015/agorapulse-ui-components-slide-toggle.mjs +0 -72
  253. package/fesm2015/agorapulse-ui-components-slide-toggle.mjs.map +0 -1
  254. package/fesm2015/agorapulse-ui-components-snackbar.mjs +0 -35
  255. package/fesm2015/agorapulse-ui-components-snackbar.mjs.map +0 -1
  256. package/fesm2015/agorapulse-ui-components-snackbars-thread.mjs +0 -188
  257. package/fesm2015/agorapulse-ui-components-snackbars-thread.mjs.map +0 -1
  258. package/fesm2015/agorapulse-ui-components-social-button.mjs +0 -144
  259. package/fesm2015/agorapulse-ui-components-social-button.mjs.map +0 -1
  260. package/fesm2015/agorapulse-ui-components-split-button.mjs +0 -119
  261. package/fesm2015/agorapulse-ui-components-split-button.mjs.map +0 -1
  262. package/fesm2015/agorapulse-ui-components-stepper.mjs +0 -44
  263. package/fesm2015/agorapulse-ui-components-stepper.mjs.map +0 -1
  264. package/fesm2015/agorapulse-ui-components-text-measurement.mjs +0 -35
  265. package/fesm2015/agorapulse-ui-components-text-measurement.mjs.map +0 -1
  266. package/fesm2015/agorapulse-ui-components-toggle.mjs +0 -197
  267. package/fesm2015/agorapulse-ui-components-toggle.mjs.map +0 -1
  268. package/fesm2015/agorapulse-ui-components-tooltip.mjs +0 -391
  269. package/fesm2015/agorapulse-ui-components-tooltip.mjs.map +0 -1
  270. package/fesm2015/agorapulse-ui-components.mjs.map +0 -1
  271. package/fesm2020/agorapulse-ui-components-add-comment.mjs +0 -76
  272. package/fesm2020/agorapulse-ui-components-add-comment.mjs.map +0 -1
  273. package/fesm2020/agorapulse-ui-components-avatar.mjs +0 -218
  274. package/fesm2020/agorapulse-ui-components-avatar.mjs.map +0 -1
  275. package/fesm2020/agorapulse-ui-components-button.mjs +0 -111
  276. package/fesm2020/agorapulse-ui-components-button.mjs.map +0 -1
  277. package/fesm2020/agorapulse-ui-components-checkbox.mjs +0 -170
  278. package/fesm2020/agorapulse-ui-components-checkbox.mjs.map +0 -1
  279. package/fesm2020/agorapulse-ui-components-confirm-modal.mjs +0 -67
  280. package/fesm2020/agorapulse-ui-components-confirm-modal.mjs.map +0 -1
  281. package/fesm2020/agorapulse-ui-components-datepicker.mjs +0 -266
  282. package/fesm2020/agorapulse-ui-components-datepicker.mjs.map +0 -1
  283. package/fesm2020/agorapulse-ui-components-directives.mjs.map +0 -1
  284. package/fesm2020/agorapulse-ui-components-dots-stepper.mjs +0 -50
  285. package/fesm2020/agorapulse-ui-components-dots-stepper.mjs.map +0 -1
  286. package/fesm2020/agorapulse-ui-components-icon-button.mjs +0 -119
  287. package/fesm2020/agorapulse-ui-components-icon-button.mjs.map +0 -1
  288. package/fesm2020/agorapulse-ui-components-infobox.mjs +0 -71
  289. package/fesm2020/agorapulse-ui-components-infobox.mjs.map +0 -1
  290. package/fesm2020/agorapulse-ui-components-labels-selector.mjs +0 -108
  291. package/fesm2020/agorapulse-ui-components-labels-selector.mjs.map +0 -1
  292. package/fesm2020/agorapulse-ui-components-labels.mjs +0 -162
  293. package/fesm2020/agorapulse-ui-components-labels.mjs.map +0 -1
  294. package/fesm2020/agorapulse-ui-components-media-display-overlay.mjs +0 -101
  295. package/fesm2020/agorapulse-ui-components-media-display-overlay.mjs.map +0 -1
  296. package/fesm2020/agorapulse-ui-components-modal.mjs +0 -116
  297. package/fesm2020/agorapulse-ui-components-modal.mjs.map +0 -1
  298. package/fesm2020/agorapulse-ui-components-neo-datepicker.mjs +0 -253
  299. package/fesm2020/agorapulse-ui-components-neo-datepicker.mjs.map +0 -1
  300. package/fesm2020/agorapulse-ui-components-notification.mjs +0 -24
  301. package/fesm2020/agorapulse-ui-components-notification.mjs.map +0 -1
  302. package/fesm2020/agorapulse-ui-components-paginator.mjs +0 -179
  303. package/fesm2020/agorapulse-ui-components-paginator.mjs.map +0 -1
  304. package/fesm2020/agorapulse-ui-components-password-input.mjs +0 -82
  305. package/fesm2020/agorapulse-ui-components-password-input.mjs.map +0 -1
  306. package/fesm2020/agorapulse-ui-components-popmenu.mjs.map +0 -1
  307. package/fesm2020/agorapulse-ui-components-radio.mjs +0 -305
  308. package/fesm2020/agorapulse-ui-components-radio.mjs.map +0 -1
  309. package/fesm2020/agorapulse-ui-components-slide-toggle.mjs +0 -72
  310. package/fesm2020/agorapulse-ui-components-slide-toggle.mjs.map +0 -1
  311. package/fesm2020/agorapulse-ui-components-snackbar.mjs +0 -33
  312. package/fesm2020/agorapulse-ui-components-snackbar.mjs.map +0 -1
  313. package/fesm2020/agorapulse-ui-components-snackbars-thread.mjs +0 -188
  314. package/fesm2020/agorapulse-ui-components-snackbars-thread.mjs.map +0 -1
  315. package/fesm2020/agorapulse-ui-components-social-button.mjs +0 -144
  316. package/fesm2020/agorapulse-ui-components-social-button.mjs.map +0 -1
  317. package/fesm2020/agorapulse-ui-components-split-button.mjs +0 -119
  318. package/fesm2020/agorapulse-ui-components-split-button.mjs.map +0 -1
  319. package/fesm2020/agorapulse-ui-components-stepper.mjs +0 -43
  320. package/fesm2020/agorapulse-ui-components-stepper.mjs.map +0 -1
  321. package/fesm2020/agorapulse-ui-components-text-measurement.mjs.map +0 -1
  322. package/fesm2020/agorapulse-ui-components-toggle.mjs +0 -197
  323. package/fesm2020/agorapulse-ui-components-toggle.mjs.map +0 -1
  324. package/fesm2020/agorapulse-ui-components-tooltip.mjs.map +0 -1
  325. package/fesm2020/agorapulse-ui-components.mjs +0 -252
  326. package/fesm2020/agorapulse-ui-components.mjs.map +0 -1
  327. /package/{esm2020 → esm2022}/add-comment/agorapulse-ui-components-add-comment.mjs +0 -0
  328. /package/{esm2020 → esm2022}/add-comment/public_api.mjs +0 -0
  329. /package/{esm2020 → esm2022}/agorapulse-ui-components.mjs +0 -0
  330. /package/{esm2020 → esm2022}/avatar/agorapulse-ui-components-avatar.mjs +0 -0
  331. /package/{esm2020 → esm2022}/avatar/public_api.mjs +0 -0
  332. /package/{esm2020 → esm2022}/button/agorapulse-ui-components-button.mjs +0 -0
  333. /package/{esm2020 → esm2022}/button/public_api.mjs +0 -0
  334. /package/{esm2020 → esm2022}/checkbox/agorapulse-ui-components-checkbox.mjs +0 -0
  335. /package/{esm2020 → esm2022}/checkbox/public_api.mjs +0 -0
  336. /package/{esm2020 → esm2022}/confirm-modal/agorapulse-ui-components-confirm-modal.mjs +0 -0
  337. /package/{esm2020 → esm2022}/confirm-modal/confirm-modal-texts.model.mjs +0 -0
  338. /package/{esm2020 → esm2022}/confirm-modal/public_api.mjs +0 -0
  339. /package/{esm2020 → esm2022}/datepicker/agorapulse-ui-components-datepicker.mjs +0 -0
  340. /package/{esm2020 → esm2022}/datepicker/public_api.mjs +0 -0
  341. /package/{esm2020 → esm2022}/directives/agorapulse-ui-components-directives.mjs +0 -0
  342. /package/{esm2020 → esm2022}/directives/public_api.mjs +0 -0
  343. /package/{esm2020 → esm2022}/dots-stepper/agorapulse-ui-components-dots-stepper.mjs +0 -0
  344. /package/{esm2020 → esm2022}/dots-stepper/public_api.mjs +0 -0
  345. /package/{esm2020 → esm2022}/icon-button/agorapulse-ui-components-icon-button.mjs +0 -0
  346. /package/{esm2020 → esm2022}/icon-button/public_api.mjs +0 -0
  347. /package/{esm2020 → esm2022}/infobox/agorapulse-ui-components-infobox.mjs +0 -0
  348. /package/{esm2020 → esm2022}/infobox/public_api.mjs +0 -0
  349. /package/{esm2020 → esm2022}/labels/agorapulse-ui-components-labels.mjs +0 -0
  350. /package/{esm2020 → esm2022}/labels/public_api.mjs +0 -0
  351. /package/{esm2020 → esm2022}/labels-selector/agorapulse-ui-components-labels-selector.mjs +0 -0
  352. /package/{esm2020 → esm2022}/labels-selector/public_api.mjs +0 -0
  353. /package/{esm2020 → esm2022}/media-display-overlay/agorapulse-ui-components-media-display-overlay.mjs +0 -0
  354. /package/{esm2020 → esm2022}/media-display-overlay/public_api.mjs +0 -0
  355. /package/{esm2020 → esm2022}/modal/agorapulse-ui-components-modal.mjs +0 -0
  356. /package/{esm2020 → esm2022}/modal/public_api.mjs +0 -0
  357. /package/{esm2020 → esm2022}/neo-datepicker/agorapulse-ui-components-neo-datepicker.mjs +0 -0
  358. /package/{esm2020 → esm2022}/neo-datepicker/public_api.mjs +0 -0
  359. /package/{esm2020 → esm2022}/notification/agorapulse-ui-components-notification.mjs +0 -0
  360. /package/{esm2020 → esm2022}/notification/public_api.mjs +0 -0
  361. /package/{esm2020 → esm2022}/paginator/agorapulse-ui-components-paginator.mjs +0 -0
  362. /package/{esm2020 → esm2022}/paginator/public_api.mjs +0 -0
  363. /package/{esm2020 → esm2022}/password-input/agorapulse-ui-components-password-input.mjs +0 -0
  364. /package/{esm2020 → esm2022}/password-input/public_api.mjs +0 -0
  365. /package/{esm2020 → esm2022}/popmenu/agorapulse-ui-components-popmenu.mjs +0 -0
  366. /package/{esm2020 → esm2022}/popmenu/public_api.mjs +0 -0
  367. /package/{esm2020 → esm2022}/radio/agorapulse-ui-components-radio.mjs +0 -0
  368. /package/{esm2020 → esm2022}/radio/public_api.mjs +0 -0
  369. /package/{esm2020 → esm2022}/slide-toggle/agorapulse-ui-components-slide-toggle.mjs +0 -0
  370. /package/{esm2020 → esm2022}/slide-toggle/public_api.mjs +0 -0
  371. /package/{esm2020 → esm2022}/snackbar/agorapulse-ui-components-snackbar.mjs +0 -0
  372. /package/{esm2020 → esm2022}/snackbar/public_api.mjs +0 -0
  373. /package/{esm2020 → esm2022}/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs +0 -0
  374. /package/{esm2020 → esm2022}/social-button/agorapulse-ui-components-social-button.mjs +0 -0
  375. /package/{esm2020 → esm2022}/social-button/public_api.mjs +0 -0
  376. /package/{esm2020 → esm2022}/split-button/agorapulse-ui-components-split-button.mjs +0 -0
  377. /package/{esm2020 → esm2022}/split-button/public_api.mjs +0 -0
  378. /package/{esm2020 → esm2022}/stepper/agorapulse-ui-components-stepper.mjs +0 -0
  379. /package/{esm2020 → esm2022}/stepper/public_api.mjs +0 -0
  380. /package/{esm2020 → esm2022}/stepper/step.model.mjs +0 -0
  381. /package/{esm2020 → esm2022}/text-measurement/agorapulse-ui-components-text-measurement.mjs +0 -0
  382. /package/{esm2020 → esm2022}/text-measurement/public_api.mjs +0 -0
  383. /package/{esm2020 → esm2022}/toggle/agorapulse-ui-components-toggle.mjs +0 -0
  384. /package/{esm2020 → esm2022}/toggle/public_api.mjs +0 -0
  385. /package/{esm2020 → esm2022}/tooltip/agorapulse-ui-components-tooltip.mjs +0 -0
  386. /package/{esm2020 → esm2022}/tooltip/public_api.mjs +0 -0
@@ -0,0 +1,90 @@
1
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Removes excess text from element until it fits in elements
5
+ * and appends a ellipsis symbol to end of text. This requires that
6
+ * the elements height be fixed
7
+ *
8
+ * @example
9
+ * ```html
10
+ * <p apEllipsis>Ullamco esse laborum</p>
11
+ * ```
12
+ *
13
+ */
14
+ export class EllipsisDirective {
15
+ el;
16
+ apEllipsisSeparator = '';
17
+ apEllipsisClip = false;
18
+ apEllipsisIndex = -2;
19
+ apEllipsisChar = '...';
20
+ apEllipsisClickable = false;
21
+ apEllipsisRemovedElementsCount = new EventEmitter();
22
+ apEllipsisRemovedText = new EventEmitter();
23
+ get hasOverflow() {
24
+ const el = this.el.nativeElement;
25
+ return el.scrollHeight > el.offsetHeight || el.scrollWidth > el.offsetWidth;
26
+ }
27
+ constructor(el) {
28
+ this.el = el;
29
+ }
30
+ ngAfterContentChecked() {
31
+ this.clipText();
32
+ }
33
+ clipText() {
34
+ const el = this.el.nativeElement;
35
+ let text = el.innerText;
36
+ let removedText = '';
37
+ if (this.apEllipsisIndex > -1) {
38
+ removedText = text.substring(this.apEllipsisIndex, text.length - 1) + removedText;
39
+ text = text.substring(0, this.apEllipsisIndex);
40
+ el.innerText = `${text}${this.apEllipsisChar}`;
41
+ if (this.apEllipsisClickable) {
42
+ el.addEventListener('click', () => {
43
+ el.innerText = `${text}${removedText}`;
44
+ });
45
+ }
46
+ }
47
+ else {
48
+ while (this.hasOverflow && text.length > 0) {
49
+ removedText = text[text.length - 1] + removedText;
50
+ text = text.substring(0, text.length - 1);
51
+ el.innerText = `${text}${this.apEllipsisChar}`;
52
+ }
53
+ }
54
+ if (this.apEllipsisSeparator) {
55
+ const removedElementsCount = removedText
56
+ .split(this.apEllipsisSeparator)
57
+ .filter(element => !!element && element.length > 0).length;
58
+ if (removedElementsCount > 0) {
59
+ this.apEllipsisRemovedElementsCount.emit(removedElementsCount);
60
+ }
61
+ }
62
+ if (removedText && removedText.length > 0) {
63
+ this.apEllipsisRemovedText.emit(removedText);
64
+ }
65
+ }
66
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: EllipsisDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
67
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.10", type: EllipsisDirective, isStandalone: true, selector: "[apEllipsis]", inputs: { apEllipsisSeparator: "apEllipsisSeparator", apEllipsisClip: "apEllipsisClip", apEllipsisIndex: "apEllipsisIndex", apEllipsisChar: "apEllipsisChar", apEllipsisClickable: "apEllipsisClickable" }, outputs: { apEllipsisRemovedElementsCount: "apEllipsisRemovedElementsCount", apEllipsisRemovedText: "apEllipsisRemovedText" }, ngImport: i0 });
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: EllipsisDirective, decorators: [{
70
+ type: Directive,
71
+ args: [{
72
+ selector: '[apEllipsis]',
73
+ standalone: true,
74
+ }]
75
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { apEllipsisSeparator: [{
76
+ type: Input
77
+ }], apEllipsisClip: [{
78
+ type: Input
79
+ }], apEllipsisIndex: [{
80
+ type: Input
81
+ }], apEllipsisChar: [{
82
+ type: Input
83
+ }], apEllipsisClickable: [{
84
+ type: Input
85
+ }], apEllipsisRemovedElementsCount: [{
86
+ type: Output
87
+ }], apEllipsisRemovedText: [{
88
+ type: Output
89
+ }] } });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2RpcmVjdGl2ZXMvc3JjL2VsbGlwc2lzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFeEc7Ozs7Ozs7Ozs7R0FVRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFlTjtJQWRYLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztJQUN6QixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyQixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUUzQiw4QkFBOEIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQzVELHFCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFN0QsSUFBWSxXQUFXO1FBQ25CLE1BQU0sRUFBRSxHQUFnQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDaEYsQ0FBQztJQUVELFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUV0QyxxQkFBcUI7UUFDakIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxRQUFRO1FBQ1osTUFBTSxFQUFFLEdBQWdCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQzlDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDeEIsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUMzQixXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDO1lBQ2xGLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDL0MsRUFBRSxDQUFDLFNBQVMsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFL0MsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzFCLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUM5QixFQUFFLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxHQUFHLFdBQVcsRUFBRSxDQUFDO2dCQUMzQyxDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0o7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDeEMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztnQkFDbEQsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ2xEO1NBQ0o7UUFFRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMxQixNQUFNLG9CQUFvQixHQUFHLFdBQVc7aUJBQ25DLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7aUJBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDL0QsSUFBSSxvQkFBb0IsR0FBRyxDQUFDLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUNsRTtTQUNKO1FBQ0QsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNoRDtJQUNMLENBQUM7d0dBdERRLGlCQUFpQjs0RkFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7aUdBRVksbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFSSw4QkFBOEI7c0JBQXZDLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZW1vdmVzIGV4Y2VzcyB0ZXh0IGZyb20gZWxlbWVudCB1bnRpbCBpdCBmaXRzIGluIGVsZW1lbnRzXG4gKiBhbmQgYXBwZW5kcyBhIGVsbGlwc2lzIHN5bWJvbCB0byBlbmQgb2YgdGV4dC4gVGhpcyByZXF1aXJlcyB0aGF0XG4gKiB0aGUgZWxlbWVudHMgaGVpZ2h0IGJlIGZpeGVkXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxwIGFwRWxsaXBzaXM+VWxsYW1jbyBlc3NlIGxhYm9ydW08L3A+XG4gKiBgYGBcbiAqXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2FwRWxsaXBzaXNdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbGxpcHNpc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQge1xuICAgIEBJbnB1dCgpIGFwRWxsaXBzaXNTZXBhcmF0b3IgPSAnJztcbiAgICBASW5wdXQoKSBhcEVsbGlwc2lzQ2xpcCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGFwRWxsaXBzaXNJbmRleCA9IC0yO1xuICAgIEBJbnB1dCgpIGFwRWxsaXBzaXNDaGFyID0gJy4uLic7XG4gICAgQElucHV0KCkgYXBFbGxpcHNpc0NsaWNrYWJsZSA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIGFwRWxsaXBzaXNSZW1vdmVkRWxlbWVudHNDb3VudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSBhcEVsbGlwc2lzUmVtb3ZlZFRleHQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgZ2V0IGhhc092ZXJmbG93KCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBlbDogSFRNTEVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHJldHVybiBlbC5zY3JvbGxIZWlnaHQgPiBlbC5vZmZzZXRIZWlnaHQgfHwgZWwuc2Nyb2xsV2lkdGggPiBlbC5vZmZzZXRXaWR0aDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgICAgICB0aGlzLmNsaXBUZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGlwVGV4dCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBsZXQgdGV4dCA9IGVsLmlubmVyVGV4dDtcbiAgICAgICAgbGV0IHJlbW92ZWRUZXh0ID0gJyc7XG4gICAgICAgIGlmICh0aGlzLmFwRWxsaXBzaXNJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICByZW1vdmVkVGV4dCA9IHRleHQuc3Vic3RyaW5nKHRoaXMuYXBFbGxpcHNpc0luZGV4LCB0ZXh0Lmxlbmd0aCAtIDEpICsgcmVtb3ZlZFRleHQ7XG4gICAgICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoMCwgdGhpcy5hcEVsbGlwc2lzSW5kZXgpO1xuICAgICAgICAgICAgZWwuaW5uZXJUZXh0ID0gYCR7dGV4dH0ke3RoaXMuYXBFbGxpcHNpc0NoYXJ9YDtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYXBFbGxpcHNpc0NsaWNrYWJsZSkge1xuICAgICAgICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlbC5pbm5lclRleHQgPSBgJHt0ZXh0fSR7cmVtb3ZlZFRleHR9YDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLmhhc092ZXJmbG93ICYmIHRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJlbW92ZWRUZXh0ID0gdGV4dFt0ZXh0Lmxlbmd0aCAtIDFdICsgcmVtb3ZlZFRleHQ7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIHRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgZWwuaW5uZXJUZXh0ID0gYCR7dGV4dH0ke3RoaXMuYXBFbGxpcHNpc0NoYXJ9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFwRWxsaXBzaXNTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZWRFbGVtZW50c0NvdW50ID0gcmVtb3ZlZFRleHRcbiAgICAgICAgICAgICAgICAuc3BsaXQodGhpcy5hcEVsbGlwc2lzU2VwYXJhdG9yKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoZWxlbWVudCA9PiAhIWVsZW1lbnQgJiYgZWxlbWVudC5sZW5ndGggPiAwKS5sZW5ndGg7XG4gICAgICAgICAgICBpZiAocmVtb3ZlZEVsZW1lbnRzQ291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcEVsbGlwc2lzUmVtb3ZlZEVsZW1lbnRzQ291bnQuZW1pdChyZW1vdmVkRWxlbWVudHNDb3VudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlbW92ZWRUZXh0ICYmIHJlbW92ZWRUZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuYXBFbGxpcHNpc1JlbW92ZWRUZXh0LmVtaXQocmVtb3ZlZFRleHQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,73 @@
1
+ // Based on https://scotch.io/tutorials/how-to-implement-a-custom-validator-directive-confirm-password-in-angular-2
2
+ import { Directive, forwardRef, Attribute } from '@angular/core';
3
+ import { NG_VALIDATORS } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ export class EqualValidatorDirective {
6
+ validateEqual;
7
+ validateEqualReference;
8
+ constructor(validateEqual, validateEqualReference) {
9
+ this.validateEqual = validateEqual;
10
+ this.validateEqualReference = validateEqualReference;
11
+ }
12
+ validate(self) {
13
+ const other = self.root.get(this.validateEqual);
14
+ if (other) {
15
+ if (this.isReference()) {
16
+ if (self.value === other.value) {
17
+ if (other.errors) {
18
+ delete other.errors['validateEqual'];
19
+ if (!Object.keys(other.errors).length) {
20
+ other.setErrors(null);
21
+ }
22
+ }
23
+ else {
24
+ other.setErrors(null);
25
+ }
26
+ }
27
+ else {
28
+ other.setErrors({ validateEqual: false });
29
+ }
30
+ }
31
+ else if (self.value !== other.value) {
32
+ return { validateEqual: false };
33
+ }
34
+ }
35
+ return null;
36
+ }
37
+ isReference() {
38
+ if (!this.validateEqualReference) {
39
+ return false;
40
+ }
41
+ return this.validateEqualReference === 'true';
42
+ }
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: EqualValidatorDirective, deps: [{ token: 'validateEqual', attribute: true }, { token: 'validateEqualReference', attribute: true }], target: i0.ɵɵFactoryTarget.Directive });
44
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.10", type: EqualValidatorDirective, isStandalone: true, selector: "[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]", providers: [
45
+ {
46
+ provide: NG_VALIDATORS,
47
+ useExisting: forwardRef(() => EqualValidatorDirective),
48
+ multi: true,
49
+ },
50
+ ], ngImport: i0 });
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: EqualValidatorDirective, decorators: [{
53
+ type: Directive,
54
+ args: [{
55
+ // eslint-disable-next-line @angular-eslint/directive-selector
56
+ selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',
57
+ providers: [
58
+ {
59
+ provide: NG_VALIDATORS,
60
+ useExisting: forwardRef(() => EqualValidatorDirective),
61
+ multi: true,
62
+ },
63
+ ],
64
+ standalone: true,
65
+ }]
66
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
67
+ type: Attribute,
68
+ args: ['validateEqual']
69
+ }] }, { type: undefined, decorators: [{
70
+ type: Attribute,
71
+ args: ['validateEqualReference']
72
+ }] }]; } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kaXJlY3RpdmVzL3NyYy9lcXVhbC12YWxpZGF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1IQUFtSDtBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUE4QixhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFjM0UsTUFBTSxPQUFPLHVCQUF1QjtJQUVPO0lBQ1M7SUFGaEQsWUFDdUMsYUFBcUIsRUFDWixzQkFBOEI7UUFEdkMsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDWiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVE7SUFDM0UsQ0FBQztJQUVKLFFBQVEsQ0FBQyxJQUFxQjtRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLEVBQUU7b0JBQzVCLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTt3QkFDZCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7d0JBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUU7NEJBQ25DLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3pCO3FCQUNKO3lCQUFNO3dCQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3pCO2lCQUNKO3FCQUFNO29CQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztpQkFDN0M7YUFDSjtpQkFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQzthQUNuQztTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLFdBQVc7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzlCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEtBQUssTUFBTSxDQUFDO0lBQ2xELENBQUM7d0dBbENRLHVCQUF1QixrQkFFakIsZUFBZSw4QkFDZix3QkFBd0I7NEZBSDlCLHVCQUF1QixxSUFUckI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKOzs0RkFHUSx1QkFBdUI7a0JBWm5DLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsd0ZBQXdGO29CQUNsRyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQUdRLFNBQVM7MkJBQUMsZUFBZTs7MEJBQ3pCLFNBQVM7MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQmFzZWQgb24gaHR0cHM6Ly9zY290Y2guaW8vdHV0b3JpYWxzL2hvdy10by1pbXBsZW1lbnQtYS1jdXN0b20tdmFsaWRhdG9yLWRpcmVjdGl2ZS1jb25maXJtLXBhc3N3b3JkLWluLWFuZ3VsYXItMlxuaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBBdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvciwgQWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW3ZhbGlkYXRlRXF1YWxdW2Zvcm1Db250cm9sTmFtZV0sW3ZhbGlkYXRlRXF1YWxdW2Zvcm1Db250cm9sXSxbdmFsaWRhdGVFcXVhbF1bbmdNb2RlbF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRXF1YWxWYWxpZGF0b3JEaXJlY3RpdmUpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFcXVhbFZhbGlkYXRvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3ZhbGlkYXRlRXF1YWwnKSBwdWJsaWMgdmFsaWRhdGVFcXVhbDogc3RyaW5nLFxuICAgICAgICBAQXR0cmlidXRlKCd2YWxpZGF0ZUVxdWFsUmVmZXJlbmNlJykgcHVibGljIHZhbGlkYXRlRXF1YWxSZWZlcmVuY2U6IHN0cmluZ1xuICAgICkge31cblxuICAgIHZhbGlkYXRlKHNlbGY6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcbiAgICAgICAgY29uc3Qgb3RoZXIgPSBzZWxmLnJvb3QuZ2V0KHRoaXMudmFsaWRhdGVFcXVhbCk7XG4gICAgICAgIGlmIChvdGhlcikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNSZWZlcmVuY2UoKSkge1xuICAgICAgICAgICAgICAgIGlmIChzZWxmLnZhbHVlID09PSBvdGhlci52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXIuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgb3RoZXIuZXJyb3JzWyd2YWxpZGF0ZUVxdWFsJ107XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKG90aGVyLmVycm9ycykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgb3RoZXIuc2V0RXJyb3JzKHsgdmFsaWRhdGVFcXVhbDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChzZWxmLnZhbHVlICE9PSBvdGhlci52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHZhbGlkYXRlRXF1YWw6IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1JlZmVyZW5jZSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlRXF1YWxSZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUVxdWFsUmVmZXJlbmNlID09PSAndHJ1ZSc7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,125 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GifService {
4
+ static isGif(src) {
5
+ return src && src.split('?')[0].endsWith('.gif');
6
+ }
7
+ }
8
+ /**
9
+ * If the image is a GIF then replace the img element by a canvas containing a frozen gif.
10
+ * Note 1: if the image is displayed under a condition, the condition must be applied on the parent of the image, so the
11
+ * new canvas element will have the same condition.
12
+ * Note 2: the image must not have the properties "display" and "visibility" in its style. Since they are used to frozen
13
+ * the GIF. You need to apply this properties on the parent element.
14
+ * Note 3: If the GIF is frozen, all the event are propagated to the image. However, all events are dispatched
15
+ * with an Event instance. Ex: click event is not dispatched with a MouseEvent instance.
16
+ */
17
+ export class FrozenGifDirective {
18
+ elementRef;
19
+ src = '';
20
+ apFrozen = true;
21
+ // Add all the events that need to be propagated.
22
+ apGifEvents = ['click'];
23
+ element;
24
+ canvas = null;
25
+ constructor(elementRef) {
26
+ this.elementRef = elementRef;
27
+ const element = this.elementRef.nativeElement;
28
+ if (!(element instanceof HTMLImageElement)) {
29
+ return;
30
+ }
31
+ this.element = element;
32
+ }
33
+ ngOnChanges(changes) {
34
+ let freeze = false;
35
+ if (changes.src) {
36
+ freeze = true;
37
+ }
38
+ if (changes.frozen) {
39
+ if (changes.frozen.currentValue) {
40
+ freeze = true;
41
+ }
42
+ else {
43
+ this.unfreeze();
44
+ }
45
+ }
46
+ if (freeze) {
47
+ this.freeze();
48
+ }
49
+ }
50
+ freeze() {
51
+ if (!GifService.isGif(this.src) || !this.apFrozen) {
52
+ this.unfreeze();
53
+ return;
54
+ }
55
+ // hack to avoid displaying the GIF before replacing it by the canvas
56
+ this.element.style.visibility = 'hidden';
57
+ this.element.addEventListener('load', () => this.addCanvas());
58
+ }
59
+ addCanvas() {
60
+ if (this.canvas) {
61
+ this.canvas.remove();
62
+ }
63
+ this.canvas = document.createElement('canvas');
64
+ this.canvas.width = this.element.width;
65
+ this.canvas.height = this.element.height;
66
+ this.canvas.getContext('2d')?.drawImage(this.element, 0, 0, this.canvas.width, this.canvas.height);
67
+ for (let i = 0; i < this.element.attributes.length; i++) {
68
+ const attr = this.element.attributes[i];
69
+ if (attr.name === 'id') {
70
+ // avoid two elements with the same id
71
+ this.canvas.setAttribute('id', attr.value + '_frozenGif');
72
+ }
73
+ else if ((attr.name === 'style' && attr.value.includes('visibility: hidden;')) || attr.value.includes('display: none;')) {
74
+ // remove the added 'visibility: hidden' and 'display: none'
75
+ const styleValue = attr.value;
76
+ this.canvas.setAttribute('style', styleValue.replace('visibility: hidden;', '').replace('display: none;', ''));
77
+ }
78
+ else if (attr.name !== '"') {
79
+ // test for invalid attributes
80
+ this.canvas.setAttribute(attr.name, attr.value);
81
+ }
82
+ }
83
+ this.addEvents();
84
+ this.element.parentNode?.insertBefore(this.canvas, this.element);
85
+ this.element.style.display = 'none';
86
+ }
87
+ addEvents() {
88
+ this.apGifEvents.forEach((eventName) => {
89
+ this.canvas?.addEventListener(eventName, (ev) => this.element.dispatchEvent(
90
+ // wm: find a way to dispatch the right event type
91
+ new Event(ev.type, ev)));
92
+ });
93
+ }
94
+ unfreeze() {
95
+ if (this.canvas) {
96
+ this.canvas.remove();
97
+ this.canvas = null;
98
+ }
99
+ this.element.style.visibility = 'inherit';
100
+ this.element.style.display = 'inherit';
101
+ }
102
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: FrozenGifDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
103
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.10", type: FrozenGifDirective, isStandalone: true, selector: "img[apFrozenGif]", inputs: { src: "src", apFrozen: "apFrozen", apGifEvents: "apGifEvents" }, host: { properties: { "src": "src" } }, usesOnChanges: true, ngImport: i0 });
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: FrozenGifDirective, decorators: [{
106
+ type: Directive,
107
+ args: [{
108
+ selector: 'img[apFrozenGif]',
109
+ // eslint-disable-next-line @angular-eslint/no-host-metadata-property
110
+ host: {
111
+ '[src]': 'src',
112
+ },
113
+ standalone: true,
114
+ }]
115
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { src: [{
116
+ type: Input,
117
+ args: [{
118
+ required: true,
119
+ }]
120
+ }], apFrozen: [{
121
+ type: Input
122
+ }], apGifEvents: [{
123
+ type: Input
124
+ }] } });
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvemVuLWdpZi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvZnJvemVuLWdpZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7O0FBRXhFLE1BQU0sT0FBTyxVQUFVO0lBQ25CLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBVztRQUNwQixPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0o7QUFFRDs7Ozs7Ozs7R0FRRztBQVVILE1BQU0sT0FBTyxrQkFBa0I7SUFZUDtJQVJwQixHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ0EsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN6QixpREFBaUQ7SUFDeEMsV0FBVyxHQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFMUIsT0FBTyxDQUFvQjtJQUNwQyxNQUFNLEdBQTZCLElBQUksQ0FBQztJQUVoRCxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzlDLElBQUksQ0FBQyxDQUFDLE9BQU8sWUFBWSxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3hDLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBWTtRQUNwQixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSxHQUFHLElBQUksQ0FBQztTQUNqQjtRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFO2dCQUM3QixNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ2pCO2lCQUFNO2dCQUNILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNuQjtTQUNKO1FBRUQsSUFBSSxNQUFNLEVBQUU7WUFDUixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakI7SUFDTCxDQUFDO0lBRU8sTUFBTTtRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU87U0FDVjtRQUVELHFFQUFxRTtRQUNyRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxTQUFTO1FBQ2IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN4QjtRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkcsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUNwQixzQ0FBc0M7Z0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDO2FBQzdEO2lCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtnQkFDdkgsNERBQTREO2dCQUM1RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNsSDtpQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFO2dCQUMxQiw4QkFBOEI7Z0JBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ25EO1NBQ0o7UUFFRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEMsQ0FBQztJQUVPLFNBQVM7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQVMsRUFBRSxFQUFFLENBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTtZQUN0QixrREFBa0Q7WUFDbEQsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FDekIsQ0FDSixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sUUFBUTtRQUNaLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDdEI7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFDM0MsQ0FBQzt3R0FsR1Esa0JBQWtCOzRGQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBUjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIscUVBQXFFO29CQUNyRSxJQUFJLEVBQUU7d0JBQ0YsT0FBTyxFQUFFLEtBQUs7cUJBQ2pCO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtpR0FLRyxHQUFHO3NCQUhGLEtBQUs7dUJBQUM7d0JBQ0gsUUFBUSxFQUFFLElBQUk7cUJBQ2pCO2dCQUVRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgR2lmU2VydmljZSB7XG4gICAgc3RhdGljIGlzR2lmKHNyYzogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzcmMgJiYgc3JjLnNwbGl0KCc/JylbMF0uZW5kc1dpdGgoJy5naWYnKTtcbiAgICB9XG59XG5cbi8qKlxuICogSWYgdGhlIGltYWdlIGlzIGEgR0lGIHRoZW4gcmVwbGFjZSB0aGUgaW1nIGVsZW1lbnQgYnkgYSBjYW52YXMgY29udGFpbmluZyBhIGZyb3plbiBnaWYuXG4gKiBOb3RlIDE6IGlmIHRoZSBpbWFnZSBpcyBkaXNwbGF5ZWQgdW5kZXIgYSBjb25kaXRpb24sIHRoZSBjb25kaXRpb24gbXVzdCBiZSBhcHBsaWVkIG9uIHRoZSBwYXJlbnQgb2YgdGhlIGltYWdlLCBzbyB0aGVcbiAqIG5ldyBjYW52YXMgZWxlbWVudCB3aWxsIGhhdmUgdGhlIHNhbWUgY29uZGl0aW9uLlxuICogTm90ZSAyOiB0aGUgaW1hZ2UgbXVzdCBub3QgaGF2ZSB0aGUgcHJvcGVydGllcyBcImRpc3BsYXlcIiBhbmQgXCJ2aXNpYmlsaXR5XCIgaW4gaXRzIHN0eWxlLiBTaW5jZSB0aGV5IGFyZSB1c2VkIHRvIGZyb3plblxuICogdGhlIEdJRi4gWW91IG5lZWQgdG8gYXBwbHkgdGhpcyBwcm9wZXJ0aWVzIG9uIHRoZSBwYXJlbnQgZWxlbWVudC5cbiAqIE5vdGUgMzogSWYgdGhlIEdJRiBpcyBmcm96ZW4sIGFsbCB0aGUgZXZlbnQgYXJlIHByb3BhZ2F0ZWQgdG8gdGhlIGltYWdlLiBIb3dldmVyLCBhbGwgZXZlbnRzIGFyZSBkaXNwYXRjaGVkXG4gKiB3aXRoIGFuIEV2ZW50IGluc3RhbmNlLiBFeDogY2xpY2sgZXZlbnQgaXMgbm90IGRpc3BhdGNoZWQgd2l0aCBhIE1vdXNlRXZlbnQgaW5zdGFuY2UuXG4gKi9cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbWdbYXBGcm96ZW5HaWZdJyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgICBob3N0OiB7XG4gICAgICAgICdbc3JjXSc6ICdzcmMnLFxuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRnJvemVuR2lmRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoe1xuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9KVxuICAgIHNyYyA9ICcnO1xuICAgIEBJbnB1dCgpIGFwRnJvemVuID0gdHJ1ZTtcbiAgICAvLyBBZGQgYWxsIHRoZSBldmVudHMgdGhhdCBuZWVkIHRvIGJlIHByb3BhZ2F0ZWQuXG4gICAgQElucHV0KCkgYXBHaWZFdmVudHM6IHN0cmluZ1tdID0gWydjbGljayddO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ITogSFRNTEltYWdlRWxlbWVudDtcbiAgICBwcml2YXRlIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGlmICghKGVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgbGV0IGZyZWV6ZSA9IGZhbHNlO1xuICAgICAgICBpZiAoY2hhbmdlcy5zcmMpIHtcbiAgICAgICAgICAgIGZyZWV6ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXMuZnJvemVuKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlcy5mcm96ZW4uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgZnJlZXplID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy51bmZyZWV6ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZyZWV6ZSkge1xuICAgICAgICAgICAgdGhpcy5mcmVlemUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZnJlZXplKCkge1xuICAgICAgICBpZiAoIUdpZlNlcnZpY2UuaXNHaWYodGhpcy5zcmMpIHx8ICF0aGlzLmFwRnJvemVuKSB7XG4gICAgICAgICAgICB0aGlzLnVuZnJlZXplKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBoYWNrIHRvIGF2b2lkIGRpc3BsYXlpbmcgdGhlIEdJRiBiZWZvcmUgcmVwbGFjaW5nIGl0IGJ5IHRoZSBjYW52YXNcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB0aGlzLmFkZENhbnZhcygpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZENhbnZhcygpIHtcbiAgICAgICAgaWYgKHRoaXMuY2FudmFzKSB7XG4gICAgICAgICAgICB0aGlzLmNhbnZhcy5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgIHRoaXMuY2FudmFzLndpZHRoID0gdGhpcy5lbGVtZW50LndpZHRoO1xuICAgICAgICB0aGlzLmNhbnZhcy5oZWlnaHQgPSB0aGlzLmVsZW1lbnQuaGVpZ2h0O1xuICAgICAgICB0aGlzLmNhbnZhcy5nZXRDb250ZXh0KCcyZCcpPy5kcmF3SW1hZ2UodGhpcy5lbGVtZW50LCAwLCAwLCB0aGlzLmNhbnZhcy53aWR0aCwgdGhpcy5jYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmVsZW1lbnQuYXR0cmlidXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgYXR0ciA9IHRoaXMuZWxlbWVudC5hdHRyaWJ1dGVzW2ldO1xuICAgICAgICAgICAgaWYgKGF0dHIubmFtZSA9PT0gJ2lkJykge1xuICAgICAgICAgICAgICAgIC8vIGF2b2lkIHR3byBlbGVtZW50cyB3aXRoIHRoZSBzYW1lIGlkXG4gICAgICAgICAgICAgICAgdGhpcy5jYW52YXMuc2V0QXR0cmlidXRlKCdpZCcsIGF0dHIudmFsdWUgKyAnX2Zyb3plbkdpZicpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgoYXR0ci5uYW1lID09PSAnc3R5bGUnICYmIGF0dHIudmFsdWUuaW5jbHVkZXMoJ3Zpc2liaWxpdHk6IGhpZGRlbjsnKSkgfHwgYXR0ci52YWx1ZS5pbmNsdWRlcygnZGlzcGxheTogbm9uZTsnKSkge1xuICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgYWRkZWQgJ3Zpc2liaWxpdHk6IGhpZGRlbicgYW5kICdkaXNwbGF5OiBub25lJ1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0eWxlVmFsdWUgPSBhdHRyLnZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBzdHlsZVZhbHVlLnJlcGxhY2UoJ3Zpc2liaWxpdHk6IGhpZGRlbjsnLCAnJykucmVwbGFjZSgnZGlzcGxheTogbm9uZTsnLCAnJykpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyLm5hbWUgIT09ICdcIicpIHtcbiAgICAgICAgICAgICAgICAvLyB0ZXN0IGZvciBpbnZhbGlkIGF0dHJpYnV0ZXNcbiAgICAgICAgICAgICAgICB0aGlzLmNhbnZhcy5zZXRBdHRyaWJ1dGUoYXR0ci5uYW1lLCBhdHRyLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWRkRXZlbnRzKCk7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50LnBhcmVudE5vZGU/Lmluc2VydEJlZm9yZSh0aGlzLmNhbnZhcywgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRFdmVudHMoKSB7XG4gICAgICAgIHRoaXMuYXBHaWZFdmVudHMuZm9yRWFjaCgoZXZlbnROYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FudmFzPy5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgKGV2OiBFdmVudCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgICAgICAgICAgLy8gd206IGZpbmQgYSB3YXkgdG8gZGlzcGF0Y2ggdGhlIHJpZ2h0IGV2ZW50IHR5cGVcbiAgICAgICAgICAgICAgICAgICAgbmV3IEV2ZW50KGV2LnR5cGUsIGV2KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdW5mcmVlemUoKSB7XG4gICAgICAgIGlmICh0aGlzLmNhbnZhcykge1xuICAgICAgICAgICAgdGhpcy5jYW52YXMucmVtb3ZlKCk7XG4gICAgICAgICAgICB0aGlzLmNhbnZhcyA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaW5oZXJpdCc7XG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2luaGVyaXQnO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
+ import DOMPurify from 'dompurify';
3
+ import * as i0 from "@angular/core";
4
+ const DATA_MST = 'data-mst';
5
+ /**
6
+ * This directive aims to parse simple string to extract some specific tags and to turn them into SPAN with styling classes attributes and optional event listening.
7
+ * The specific tags must this schema: <ng-container data-mst="STYLING-CLASSES">TEXT</ng-container>.
8
+ * Example: 'Lorem <ng-container data-mst="my-style">ipsum</ng-container> dolor sit amet'.
9
+ */
10
+ export class MultiStyleTextDirective {
11
+ elRef;
12
+ renderer;
13
+ set multiStyleText(fullText) {
14
+ // First remove previously added children (on update).
15
+ this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', '');
16
+ if (!fullText || fullText.length <= 0) {
17
+ return;
18
+ }
19
+ this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', DOMPurify.sanitize(fullText.replace(/ng-container/g, 'span')));
20
+ Array.from(this.elRef.nativeElement.children).forEach((childNode) => {
21
+ if (childNode.nodeType == 1 && childNode.tagName.toLowerCase() === 'span') {
22
+ // Node.ELEMENT_NODE
23
+ const span = this.renderer.createElement('span');
24
+ span.innerHTML = childNode.innerHTML;
25
+ this.elRef.nativeElement.replaceChild(span, childNode);
26
+ const mstValue = childNode.getAttribute(DATA_MST);
27
+ if (mstValue) {
28
+ const mstContents = mstValue.split(';');
29
+ // Bind click events
30
+ if (mstContents[1]) {
31
+ this.renderer.listen(span, 'click', () => this.partEvent.emit(mstContents[1]));
32
+ }
33
+ // Add classes
34
+ if (mstContents[0] && mstContents[0].length > 0) {
35
+ this.renderer.setAttribute(span, 'class', mstContents[0].replace(',', ' '));
36
+ }
37
+ }
38
+ }
39
+ });
40
+ }
41
+ partEvent = new EventEmitter();
42
+ constructor(elRef, renderer) {
43
+ this.elRef = elRef;
44
+ this.renderer = renderer;
45
+ }
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: MultiStyleTextDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
47
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.10", type: MultiStyleTextDirective, isStandalone: true, selector: "[multiStyleText]", inputs: { multiStyleText: "multiStyleText" }, outputs: { partEvent: "partEvent" }, ngImport: i0 });
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: MultiStyleTextDirective, decorators: [{
50
+ type: Directive,
51
+ args: [{
52
+ // eslint-disable-next-line @angular-eslint/directive-selector
53
+ selector: '[multiStyleText]',
54
+ standalone: true,
55
+ }]
56
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { multiStyleText: [{
57
+ type: Input
58
+ }], partEvent: [{
59
+ type: Output
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvbXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7O0FBRWxDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQztBQVE1Qjs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjtJQW9DTDtJQUF3QztJQW5DbkUsSUFBYSxjQUFjLENBQUMsUUFBZ0I7UUFDeEMsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ25DLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQWtCLEVBQUUsRUFBRTtZQUN6RSxJQUFJLFNBQVMsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxFQUFFO2dCQUN2RSxvQkFBb0I7Z0JBRXBCLE1BQU0sSUFBSSxHQUFnQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUV2RCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLFFBQVEsRUFBRTtvQkFDVixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN4QyxvQkFBb0I7b0JBQ3BCLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ2xGO29CQUNELGNBQWM7b0JBQ2QsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDL0U7aUJBQ0o7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVTLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRWpELFlBQTJCLEtBQThCLEVBQVUsUUFBbUI7UUFBM0QsVUFBSyxHQUFMLEtBQUssQ0FBeUI7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQUcsQ0FBQzt3R0FwQ2pGLHVCQUF1Qjs0RkFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3lIQUVnQixjQUFjO3NCQUExQixLQUFLO2dCQWlDSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IERPTVB1cmlmeSBmcm9tICdkb21wdXJpZnknO1xuXG5jb25zdCBEQVRBX01TVCA9ICdkYXRhLW1zdCc7XG5cbmludGVyZmFjZSBQYXJ0IHtcbiAgICBjb250ZW50OiBzdHJpbmc7XG4gICAgY2xheno/OiBzdHJpbmdbXTsgLy8gTm90IGRlZmluZWQgb24gc3RlcmlsZSB0ZXh0XG4gICAgY2xpY2tOYW1lPzogc3RyaW5nOyAvLyBOb3QgZGVmaW5lZCBvbiBzdGVyaWxlIHRleHRcbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBhaW1zIHRvIHBhcnNlIHNpbXBsZSBzdHJpbmcgdG8gZXh0cmFjdCBzb21lIHNwZWNpZmljIHRhZ3MgYW5kIHRvIHR1cm4gdGhlbSBpbnRvIFNQQU4gd2l0aCBzdHlsaW5nIGNsYXNzZXMgYXR0cmlidXRlcyBhbmQgb3B0aW9uYWwgZXZlbnQgbGlzdGVuaW5nLlxuICogVGhlIHNwZWNpZmljIHRhZ3MgbXVzdCB0aGlzIHNjaGVtYTogPG5nLWNvbnRhaW5lciBkYXRhLW1zdD1cIlNUWUxJTkctQ0xBU1NFU1wiPlRFWFQ8L25nLWNvbnRhaW5lcj4uXG4gKiBFeGFtcGxlOiAnTG9yZW0gPG5nLWNvbnRhaW5lciBkYXRhLW1zdD1cIm15LXN0eWxlXCI+aXBzdW08L25nLWNvbnRhaW5lcj4gZG9sb3Igc2l0IGFtZXQnLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW211bHRpU3R5bGVUZXh0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTdHlsZVRleHREaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpIHNldCBtdWx0aVN0eWxlVGV4dChmdWxsVGV4dDogc3RyaW5nKSB7XG4gICAgICAgIC8vIEZpcnN0IHJlbW92ZSBwcmV2aW91c2x5IGFkZGVkIGNoaWxkcmVuIChvbiB1cGRhdGUpLlxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2lubmVySFRNTCcsICcnKTtcbiAgICAgICAgaWYgKCFmdWxsVGV4dCB8fCBmdWxsVGV4dC5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsICdpbm5lckhUTUwnLCBET01QdXJpZnkuc2FuaXRpemUoZnVsbFRleHQucmVwbGFjZSgvbmctY29udGFpbmVyL2csICdzcGFuJykpKTtcblxuICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlbikuZm9yRWFjaCgoY2hpbGROb2RlOiBFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGROb2RlLm5vZGVUeXBlID09IDEgJiYgY2hpbGROb2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3NwYW4nKSB7XG4gICAgICAgICAgICAgICAgLy8gTm9kZS5FTEVNRU5UX05PREVcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW46IEhUTUxFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSBjaGlsZE5vZGUuaW5uZXJIVE1MO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5yZXBsYWNlQ2hpbGQoc3BhbiwgY2hpbGROb2RlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1zdFZhbHVlID0gY2hpbGROb2RlLmdldEF0dHJpYnV0ZShEQVRBX01TVCk7XG4gICAgICAgICAgICAgICAgaWYgKG1zdFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1zdENvbnRlbnRzID0gbXN0VmFsdWUuc3BsaXQoJzsnKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQmluZCBjbGljayBldmVudHNcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1zdENvbnRlbnRzWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihzcGFuLCAnY2xpY2snLCAoKSA9PiB0aGlzLnBhcnRFdmVudC5lbWl0KG1zdENvbnRlbnRzWzFdKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1zdENvbnRlbnRzWzBdICYmIG1zdENvbnRlbnRzWzBdLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHNwYW4sICdjbGFzcycsIG1zdENvbnRlbnRzWzBdLnJlcGxhY2UoJywnLCAnICcpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHBhcnRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG59XG4iXX0=
@@ -0,0 +1,43 @@
1
+ // Angular
2
+ import { Directive, Input } from '@angular/core';
3
+ // Third-parties
4
+ import { fromEvent } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@agorapulse/ui-components/tooltip";
7
+ export class TruncateTooltipDirective {
8
+ tooltip;
9
+ elementRef;
10
+ truncateTooltip;
11
+ displayOnlyOnTruncate = false;
12
+ elementRefMouseOver$;
13
+ constructor(tooltip, elementRef) {
14
+ this.tooltip = tooltip;
15
+ this.elementRef = elementRef;
16
+ }
17
+ updateTruncateState() {
18
+ const element = this.elementRef.nativeElement;
19
+ const truncated = element.scrollWidth > element.clientWidth;
20
+ // In case a default tooltip content exists, even not truncated, the tooltip stay displayed
21
+ this.tooltip.content = truncated ? this.truncateTooltip : this.displayOnlyOnTruncate ? undefined : this.truncateTooltip;
22
+ }
23
+ ngOnInit() {
24
+ this.elementRefMouseOver$ = fromEvent(this.elementRef.nativeElement, 'mouseover').subscribe(() => this.updateTruncateState());
25
+ }
26
+ ngOnDestroy() {
27
+ this.elementRefMouseOver$.unsubscribe();
28
+ }
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: TruncateTooltipDirective, deps: [{ token: i1.TooltipDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
30
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.10", type: TruncateTooltipDirective, isStandalone: true, selector: "[apTooltip][truncateTooltip]", inputs: { truncateTooltip: "truncateTooltip", displayOnlyOnTruncate: "displayOnlyOnTruncate" }, ngImport: i0 });
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: TruncateTooltipDirective, decorators: [{
33
+ type: Directive,
34
+ args: [{ selector: '[apTooltip][truncateTooltip]', standalone: true }]
35
+ }], ctorParameters: function () { return [{ type: i1.TooltipDirective }, { type: i0.ElementRef }]; }, propDecorators: { truncateTooltip: [{
36
+ type: Input,
37
+ args: [{
38
+ required: true,
39
+ }]
40
+ }], displayOnlyOnTruncate: [{
41
+ type: Input
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUtdG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvdHJ1bmNhdGUtdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixnQkFBZ0I7QUFDaEIsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7OztBQUcvQyxNQUFNLE9BQU8sd0JBQXdCO0lBVWI7SUFBbUM7SUFOdkQsZUFBZSxDQUFVO0lBRWhCLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUUvQixvQkFBb0IsQ0FBZ0I7SUFFNUMsWUFBb0IsT0FBeUIsRUFBVSxVQUFtQztRQUF0RSxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQXlCO0lBQUcsQ0FBQztJQUV0RixtQkFBbUI7UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBRTVELDJGQUEyRjtRQUMzRixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzVILENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztJQUNsSSxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QyxDQUFDO3dHQTFCUSx3QkFBd0I7NEZBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSw4QkFBOEIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFO2dJQUtyRSxlQUFlO3NCQUhkLEtBQUs7dUJBQUM7d0JBQ0gsUUFBUSxFQUFFLElBQUk7cUJBQ2pCO2dCQUdRLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFnb3JhcHVsc2VcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL3Rvb2x0aXAnO1xuLy8gQW5ndWxhclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vIFRoaXJkLXBhcnRpZXNcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1thcFRvb2x0aXBdW3RydW5jYXRlVG9vbHRpcF0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgVHJ1bmNhdGVUb29sdGlwRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCh7XG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0pXG4gICAgdHJ1bmNhdGVUb29sdGlwITogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgZGlzcGxheU9ubHlPblRydW5jYXRlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGVsZW1lbnRSZWZNb3VzZU92ZXIkITogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0b29sdGlwOiBUb29sdGlwRGlyZWN0aXZlLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUcnVuY2F0ZVN0YXRlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHRydW5jYXRlZCA9IGVsZW1lbnQuc2Nyb2xsV2lkdGggPiBlbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIC8vIEluIGNhc2UgYSBkZWZhdWx0IHRvb2x0aXAgY29udGVudCBleGlzdHMsIGV2ZW4gbm90IHRydW5jYXRlZCwgdGhlIHRvb2x0aXAgc3RheSBkaXNwbGF5ZWRcbiAgICAgICAgdGhpcy50b29sdGlwLmNvbnRlbnQgPSB0cnVuY2F0ZWQgPyB0aGlzLnRydW5jYXRlVG9vbHRpcCA6IHRoaXMuZGlzcGxheU9ubHlPblRydW5jYXRlID8gdW5kZWZpbmVkIDogdGhpcy50cnVuY2F0ZVRvb2x0aXA7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZk1vdXNlT3ZlciQgPSBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZW92ZXInKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVUcnVuY2F0ZVN0YXRlKCkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWZNb3VzZU92ZXIkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,43 @@
1
+ import { NgClass, NgForOf } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class DotsStepperComponent {
5
+ disabled = false;
6
+ forwardAllowed = true;
7
+ index = 0;
8
+ items = [];
9
+ size = '';
10
+ dotClick = new EventEmitter();
11
+ currentItem = undefined;
12
+ ngOnChanges() {
13
+ this.currentItem = this.items[this.index];
14
+ }
15
+ onDotClick(event, item, index) {
16
+ event.stopPropagation();
17
+ if (this.disabled || (!this.forwardAllowed && index > this.index)) {
18
+ return;
19
+ }
20
+ this.currentItem = item;
21
+ this.index = index;
22
+ this.dotClick.emit(this.index);
23
+ }
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: DotsStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: DotsStepperComponent, isStandalone: true, selector: "ap-dots-stepper", inputs: { disabled: "disabled", forwardAllowed: "forwardAllowed", index: "index", items: "items", size: "size" }, outputs: { dotClick: "dotClick" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"dots\"\n [ngClass]=\"{ 'small-dots': size === 'small' }\">\n <div\n class=\"dot\"\n *ngFor=\"let item of items; let i = index\"\n [ngClass]=\"{ active: item === currentItem, disabled: disabled || (!forwardAllowed && i > index) }\"\n (click)=\"onDotClick($event, item, i)\"></div>\n</div>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #a566a5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #c7ab82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #f2713c}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #ffd006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94c5aa}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2a9d8f}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78acd8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525a9e}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6a2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729e}.dots{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;place-content:stretch center;position:absolute;width:100%}.dots .dot{-webkit-transition:all .2s ease-in-out;background:#d6dae0;border-radius:50%;cursor:pointer;height:8px;margin:16px 4px;transition:all .2s ease-in-out;width:8px}.dots .dot.active{background:#178dfe;cursor:initial}.dots .dot.disabled{background:#d6dae0;cursor:initial}.dots.small-dots .dot{height:6px;margin:16px 2px;width:6px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: DotsStepperComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-dots-stepper', standalone: true, imports: [NgClass, NgForOf], template: "<div\n class=\"dots\"\n [ngClass]=\"{ 'small-dots': size === 'small' }\">\n <div\n class=\"dot\"\n *ngFor=\"let item of items; let i = index\"\n [ngClass]=\"{ active: item === currentItem, disabled: disabled || (!forwardAllowed && i > index) }\"\n (click)=\"onDotClick($event, item, i)\"></div>\n</div>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #a566a5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #c7ab82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #f2713c}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #ffd006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94c5aa}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2a9d8f}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78acd8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525a9e}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6a2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729e}.dots{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;place-content:stretch center;position:absolute;width:100%}.dots .dot{-webkit-transition:all .2s ease-in-out;background:#d6dae0;border-radius:50%;cursor:pointer;height:8px;margin:16px 4px;transition:all .2s ease-in-out;width:8px}.dots .dot.active{background:#178dfe;cursor:initial}.dots .dot.disabled{background:#d6dae0;cursor:initial}.dots.small-dots .dot{height:6px;margin:16px 2px;width:6px}\n"] }]
30
+ }], propDecorators: { disabled: [{
31
+ type: Input
32
+ }], forwardAllowed: [{
33
+ type: Input
34
+ }], index: [{
35
+ type: Input
36
+ }], items: [{
37
+ type: Input
38
+ }], size: [{
39
+ type: Input
40
+ }], dotClick: [{
41
+ type: Output
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90cy1zdGVwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kb3RzLXN0ZXBwZXIvc3JjL2RvdHMtc3RlcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZG90cy1zdGVwcGVyL3NyYy9kb3RzLXN0ZXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVUzRyxNQUFNLE9BQU8sb0JBQW9CO0lBQ3BCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsY0FBYyxHQUFHLElBQUksQ0FBQztJQUN0QixLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsS0FBSyxHQUFRLEVBQUUsQ0FBQztJQUNoQixJQUFJLEdBQVcsRUFBRSxDQUFDO0lBRWpCLFFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUV0RSxXQUFXLEdBQWtCLFNBQVMsQ0FBQztJQUV2QyxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVksRUFBRSxJQUFPLEVBQUUsS0FBYTtRQUMzQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0QsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7d0dBdkJRLG9CQUFvQjs0RkFBcEIsb0JBQW9CLHFQQ1hqQyx1VkFTQSw2N0xERGMsT0FBTyxvRkFBRSxPQUFPOzs0RkFHakIsb0JBQW9CO2tCQVJoQyxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsaUJBQWlCLGNBQ2YsSUFBSSxXQUVQLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQzs4QkFJbEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ0Zvck9mIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnYXAtZG90cy1zdGVwcGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kb3RzLXN0ZXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ0Zvck9mXSxcbiAgICBzdHlsZVVybHM6IFsnLi9kb3RzLXN0ZXBwZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRG90c1N0ZXBwZXJDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgZm9yd2FyZEFsbG93ZWQgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGluZGV4ID0gMDtcbiAgICBASW5wdXQoKSBpdGVtczogVFtdID0gW107XG4gICAgQElucHV0KCkgc2l6ZTogc3RyaW5nID0gJyc7XG5cbiAgICBAT3V0cHV0KCkgZG90Q2xpY2s6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBjdXJyZW50SXRlbTogVCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtID0gdGhpcy5pdGVtc1t0aGlzLmluZGV4XTtcbiAgICB9XG5cbiAgICBvbkRvdENsaWNrKGV2ZW50OiBFdmVudCwgaXRlbTogVCwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgKCF0aGlzLmZvcndhcmRBbGxvd2VkICYmIGluZGV4ID4gdGhpcy5pbmRleCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtID0gaXRlbTtcbiAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmRvdENsaWNrLmVtaXQodGhpcy5pbmRleCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZG90c1wiXG4gICAgW25nQ2xhc3NdPVwieyAnc21hbGwtZG90cyc6IHNpemUgPT09ICdzbWFsbCcgfVwiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkb3RcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpdGVtID09PSBjdXJyZW50SXRlbSwgZGlzYWJsZWQ6IGRpc2FibGVkIHx8ICghZm9yd2FyZEFsbG93ZWQgJiYgaSA+IGluZGV4KSB9XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uRG90Q2xpY2soJGV2ZW50LCBpdGVtLCBpKVwiPjwvZGl2PlxuPC9kaXY+XG4iXX0=