@agorapulse/ui-components 14.0.4 → 14.0.6

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 (307) hide show
  1. package/{src/lib/add-comment → add-comment}/add-comment.component.d.ts +1 -1
  2. package/add-comment/index.d.ts +5 -0
  3. package/add-comment/public_api.d.ts +1 -0
  4. package/agorapulse-ui-components-14.0.6.tgz +0 -0
  5. package/{src/lib/avatar → avatar}/avatar.component.d.ts +1 -1
  6. package/avatar/index.d.ts +5 -0
  7. package/avatar/public_api.d.ts +1 -0
  8. package/{src/lib/confirm-modal → confirm-modal}/confirm-modal-texts.model.d.ts +0 -0
  9. package/{src/lib/confirm-modal → confirm-modal}/confirm-modal.component.d.ts +2 -2
  10. package/confirm-modal/index.d.ts +5 -0
  11. package/confirm-modal/public_api.d.ts +2 -0
  12. package/{src/lib/datepicker → datepicker}/datepicker.component.d.ts +2 -2
  13. package/datepicker/index.d.ts +5 -0
  14. package/datepicker/public_api.d.ts +1 -0
  15. package/{src/lib/directives → directives}/autosize-textarea.directive.d.ts +1 -1
  16. package/{src/lib/directives → directives}/default-image.directive.d.ts +1 -1
  17. package/{src/lib/directives → directives}/ellipsis.directive.d.ts +1 -1
  18. package/{src/lib/directives → directives}/equal-validator.directive.d.ts +1 -1
  19. package/{src/lib/directives → directives}/frozen-gif.directive.d.ts +1 -1
  20. package/directives/index.d.ts +5 -0
  21. package/{src/lib/directives → directives}/multi-style-text.directive.d.ts +1 -1
  22. package/directives/public_api.d.ts +7 -0
  23. package/{src/lib/directives → directives}/truncate-tooltip.directive.d.ts +2 -3
  24. package/{src/lib/dots-stepper → dots-stepper}/dots-stepper.component.d.ts +1 -1
  25. package/dots-stepper/index.d.ts +5 -0
  26. package/dots-stepper/public_api.d.ts +1 -0
  27. package/esm2020/add-comment/add-comment.component.mjs +70 -0
  28. package/esm2020/add-comment/agorapulse-ui-components-add-comment.mjs +5 -0
  29. package/esm2020/add-comment/public_api.mjs +2 -0
  30. package/esm2020/avatar/agorapulse-ui-components-avatar.mjs +5 -0
  31. package/esm2020/avatar/avatar.component.mjs +138 -0
  32. package/esm2020/avatar/public_api.mjs +2 -0
  33. package/esm2020/confirm-modal/agorapulse-ui-components-confirm-modal.mjs +5 -0
  34. package/esm2020/confirm-modal/confirm-modal-texts.model.mjs +2 -0
  35. package/esm2020/confirm-modal/confirm-modal.component.mjs +61 -0
  36. package/esm2020/confirm-modal/public_api.mjs +3 -0
  37. package/esm2020/datepicker/agorapulse-ui-components-datepicker.mjs +5 -0
  38. package/esm2020/datepicker/datepicker.component.mjs +225 -0
  39. package/esm2020/datepicker/public_api.mjs +2 -0
  40. package/esm2020/directives/agorapulse-ui-components-directives.mjs +5 -0
  41. package/esm2020/directives/autosize-textarea.directive.mjs +44 -0
  42. package/esm2020/directives/default-image.directive.mjs +32 -0
  43. package/esm2020/directives/ellipsis.directive.mjs +86 -0
  44. package/esm2020/directives/equal-validator.directive.mjs +66 -0
  45. package/esm2020/directives/frozen-gif.directive.mjs +116 -0
  46. package/esm2020/directives/multi-style-text.directive.mjs +136 -0
  47. package/esm2020/directives/public_api.mjs +8 -0
  48. package/esm2020/directives/truncate-tooltip.directive.mjs +33 -0
  49. package/esm2020/dots-stepper/agorapulse-ui-components-dots-stepper.mjs +5 -0
  50. package/esm2020/dots-stepper/dots-stepper.component.mjs +43 -0
  51. package/esm2020/dots-stepper/public_api.mjs +2 -0
  52. package/esm2020/index.mjs +27 -33
  53. package/esm2020/infobox/agorapulse-ui-components-infobox.mjs +5 -0
  54. package/esm2020/infobox/infobox.component.mjs +30 -0
  55. package/esm2020/infobox/public_api.mjs +2 -0
  56. package/esm2020/labels/agorapulse-ui-components-labels.mjs +5 -0
  57. package/esm2020/labels/label-list.component.mjs +101 -0
  58. package/esm2020/labels/label.component.mjs +56 -0
  59. package/esm2020/labels/public_api.mjs +3 -0
  60. package/esm2020/labels-selector/agorapulse-ui-components-labels-selector.mjs +5 -0
  61. package/esm2020/labels-selector/labels-selector.component.mjs +95 -0
  62. package/esm2020/labels-selector/public_api.mjs +2 -0
  63. package/esm2020/media-display-overlay/agorapulse-ui-components-media-display-overlay.mjs +5 -0
  64. package/esm2020/media-display-overlay/media-display-overlay-dialog.component.mjs +88 -0
  65. package/esm2020/media-display-overlay/public_api.mjs +2 -0
  66. package/esm2020/modal/agorapulse-ui-components-modal.mjs +5 -0
  67. package/esm2020/modal/modal.component.mjs +99 -0
  68. package/esm2020/modal/public_api.mjs +2 -0
  69. package/esm2020/notification/agorapulse-ui-components-notification.mjs +5 -0
  70. package/esm2020/notification/notification.component.mjs +17 -0
  71. package/esm2020/notification/public_api.mjs +2 -0
  72. package/esm2020/paginator/agorapulse-ui-components-paginator.mjs +5 -0
  73. package/esm2020/paginator/paginator-button/paginator-button.component.mjs +24 -0
  74. package/esm2020/paginator/paginator.component.mjs +56 -0
  75. package/esm2020/paginator/public_api.mjs +3 -0
  76. package/esm2020/password-input/agorapulse-ui-components-password-input.mjs +5 -0
  77. package/esm2020/password-input/password-input.component.mjs +70 -0
  78. package/esm2020/password-input/public_api.mjs +2 -0
  79. package/esm2020/popmenu/agorapulse-ui-components-popmenu.mjs +5 -0
  80. package/esm2020/popmenu/options.mjs +17 -0
  81. package/esm2020/popmenu/popmenu-options.interface.mjs +2 -0
  82. package/esm2020/popmenu/popmenu-options.service.mjs +7 -0
  83. package/esm2020/popmenu/popmenu.component.mjs +368 -0
  84. package/esm2020/popmenu/popmenu.directive.mjs +241 -0
  85. package/esm2020/popmenu/popmenu.module.mjs +35 -0
  86. package/esm2020/{src/lib/popmenu/index.mjs → popmenu/public_api.mjs} +1 -1
  87. package/esm2020/slide-toggle/agorapulse-ui-components-slide-toggle.mjs +5 -0
  88. package/esm2020/slide-toggle/public_api.mjs +2 -0
  89. package/esm2020/slide-toggle/slide-toggle.component.mjs +65 -0
  90. package/esm2020/snackbar/agorapulse-ui-components-snackbar.mjs +5 -0
  91. package/esm2020/snackbar/public_api.mjs +2 -0
  92. package/esm2020/snackbar/snackbar.component.mjs +22 -0
  93. package/esm2020/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs +5 -0
  94. package/esm2020/snackbars-thread/component/snackbars-thread.component.mjs +71 -0
  95. package/esm2020/snackbars-thread/model/snackbars-thread.model.mjs +41 -0
  96. package/esm2020/snackbars-thread/public_api.mjs +4 -0
  97. package/esm2020/snackbars-thread/service/snackbars-thread.service.mjs +41 -0
  98. package/esm2020/snackbars-thread/utils/const/snackbars-thread.const.mjs +13 -0
  99. package/esm2020/src/lib/agorapulse-ui-components.module.mjs +60 -87
  100. package/esm2020/stepper/agorapulse-ui-components-stepper.mjs +5 -0
  101. package/esm2020/stepper/public_api.mjs +3 -0
  102. package/esm2020/stepper/step.model.mjs +2 -0
  103. package/esm2020/stepper/stepper.component.mjs +37 -0
  104. package/esm2020/text-measurement/agorapulse-ui-components-text-measurement.mjs +5 -0
  105. package/esm2020/text-measurement/public_api.mjs +2 -0
  106. package/esm2020/text-measurement/text-measurement.service.mjs +28 -0
  107. package/esm2020/tooltip-neo/agorapulse-ui-components-tooltip-neo.mjs +5 -0
  108. package/esm2020/tooltip-neo/public_api.mjs +4 -0
  109. package/esm2020/tooltip-neo/tooltip-neo.component.mjs +44 -0
  110. package/esm2020/tooltip-neo/tooltip-neo.const.mjs +67 -0
  111. package/esm2020/tooltip-neo/tooltip-neo.directive.mjs +156 -0
  112. package/esm2020/tooltip-neo/tooltip-neo.model.mjs +2 -0
  113. package/esm2020/{src/lib/tooltip-neo → tooltip-neo}/tooltip-neo.service.mjs +1 -1
  114. package/fesm2015/agorapulse-ui-components-add-comment.mjs +77 -0
  115. package/fesm2015/agorapulse-ui-components-add-comment.mjs.map +1 -0
  116. package/fesm2015/agorapulse-ui-components-avatar.mjs +146 -0
  117. package/fesm2015/agorapulse-ui-components-avatar.mjs.map +1 -0
  118. package/fesm2015/agorapulse-ui-components-confirm-modal.mjs +68 -0
  119. package/fesm2015/agorapulse-ui-components-confirm-modal.mjs.map +1 -0
  120. package/fesm2015/agorapulse-ui-components-datepicker.mjs +235 -0
  121. package/fesm2015/agorapulse-ui-components-datepicker.mjs.map +1 -0
  122. package/fesm2015/agorapulse-ui-components-directives.mjs +509 -0
  123. package/fesm2015/agorapulse-ui-components-directives.mjs.map +1 -0
  124. package/fesm2015/agorapulse-ui-components-dots-stepper.mjs +50 -0
  125. package/fesm2015/agorapulse-ui-components-dots-stepper.mjs.map +1 -0
  126. package/fesm2015/agorapulse-ui-components-infobox.mjs +37 -0
  127. package/fesm2015/agorapulse-ui-components-infobox.mjs.map +1 -0
  128. package/fesm2015/agorapulse-ui-components-labels-selector.mjs +103 -0
  129. package/fesm2015/agorapulse-ui-components-labels-selector.mjs.map +1 -0
  130. package/fesm2015/agorapulse-ui-components-labels.mjs +160 -0
  131. package/fesm2015/agorapulse-ui-components-labels.mjs.map +1 -0
  132. package/fesm2015/agorapulse-ui-components-media-display-overlay.mjs +97 -0
  133. package/fesm2015/agorapulse-ui-components-media-display-overlay.mjs.map +1 -0
  134. package/fesm2015/agorapulse-ui-components-modal.mjs +106 -0
  135. package/fesm2015/agorapulse-ui-components-modal.mjs.map +1 -0
  136. package/fesm2015/agorapulse-ui-components-notification.mjs +24 -0
  137. package/fesm2015/agorapulse-ui-components-notification.mjs.map +1 -0
  138. package/fesm2015/agorapulse-ui-components-paginator.mjs +82 -0
  139. package/fesm2015/agorapulse-ui-components-paginator.mjs.map +1 -0
  140. package/fesm2015/agorapulse-ui-components-password-input.mjs +77 -0
  141. package/fesm2015/agorapulse-ui-components-password-input.mjs.map +1 -0
  142. package/fesm2015/agorapulse-ui-components-popmenu.mjs +666 -0
  143. package/fesm2015/agorapulse-ui-components-popmenu.mjs.map +1 -0
  144. package/fesm2015/agorapulse-ui-components-slide-toggle.mjs +72 -0
  145. package/fesm2015/agorapulse-ui-components-slide-toggle.mjs.map +1 -0
  146. package/fesm2015/agorapulse-ui-components-snackbar.mjs +31 -0
  147. package/fesm2015/agorapulse-ui-components-snackbar.mjs.map +1 -0
  148. package/fesm2015/agorapulse-ui-components-snackbars-thread.mjs +169 -0
  149. package/fesm2015/agorapulse-ui-components-snackbars-thread.mjs.map +1 -0
  150. package/fesm2015/agorapulse-ui-components-stepper.mjs +45 -0
  151. package/fesm2015/agorapulse-ui-components-stepper.mjs.map +1 -0
  152. package/fesm2015/agorapulse-ui-components-text-measurement.mjs +35 -0
  153. package/fesm2015/agorapulse-ui-components-text-measurement.mjs.map +1 -0
  154. package/fesm2015/agorapulse-ui-components-tooltip-neo.mjs +283 -0
  155. package/fesm2015/agorapulse-ui-components-tooltip-neo.mjs.map +1 -0
  156. package/fesm2015/agorapulse-ui-components.mjs +82 -2824
  157. package/fesm2015/agorapulse-ui-components.mjs.map +1 -1
  158. package/fesm2020/agorapulse-ui-components-add-comment.mjs +77 -0
  159. package/fesm2020/agorapulse-ui-components-add-comment.mjs.map +1 -0
  160. package/fesm2020/agorapulse-ui-components-avatar.mjs +145 -0
  161. package/fesm2020/agorapulse-ui-components-avatar.mjs.map +1 -0
  162. package/fesm2020/agorapulse-ui-components-confirm-modal.mjs +68 -0
  163. package/fesm2020/agorapulse-ui-components-confirm-modal.mjs.map +1 -0
  164. package/fesm2020/agorapulse-ui-components-datepicker.mjs +232 -0
  165. package/fesm2020/agorapulse-ui-components-datepicker.mjs.map +1 -0
  166. package/fesm2020/agorapulse-ui-components-directives.mjs +507 -0
  167. package/fesm2020/agorapulse-ui-components-directives.mjs.map +1 -0
  168. package/fesm2020/agorapulse-ui-components-dots-stepper.mjs +50 -0
  169. package/fesm2020/agorapulse-ui-components-dots-stepper.mjs.map +1 -0
  170. package/fesm2020/agorapulse-ui-components-infobox.mjs +37 -0
  171. package/fesm2020/agorapulse-ui-components-infobox.mjs.map +1 -0
  172. package/fesm2020/agorapulse-ui-components-labels-selector.mjs +102 -0
  173. package/fesm2020/agorapulse-ui-components-labels-selector.mjs.map +1 -0
  174. package/fesm2020/agorapulse-ui-components-labels.mjs +160 -0
  175. package/fesm2020/agorapulse-ui-components-labels.mjs.map +1 -0
  176. package/fesm2020/agorapulse-ui-components-media-display-overlay.mjs +95 -0
  177. package/fesm2020/agorapulse-ui-components-media-display-overlay.mjs.map +1 -0
  178. package/fesm2020/agorapulse-ui-components-modal.mjs +106 -0
  179. package/fesm2020/agorapulse-ui-components-modal.mjs.map +1 -0
  180. package/fesm2020/agorapulse-ui-components-notification.mjs +24 -0
  181. package/fesm2020/agorapulse-ui-components-notification.mjs.map +1 -0
  182. package/fesm2020/agorapulse-ui-components-paginator.mjs +82 -0
  183. package/fesm2020/agorapulse-ui-components-paginator.mjs.map +1 -0
  184. package/fesm2020/agorapulse-ui-components-password-input.mjs +77 -0
  185. package/fesm2020/agorapulse-ui-components-password-input.mjs.map +1 -0
  186. package/fesm2020/agorapulse-ui-components-popmenu.mjs +664 -0
  187. package/fesm2020/agorapulse-ui-components-popmenu.mjs.map +1 -0
  188. package/fesm2020/agorapulse-ui-components-slide-toggle.mjs +72 -0
  189. package/fesm2020/agorapulse-ui-components-slide-toggle.mjs.map +1 -0
  190. package/fesm2020/agorapulse-ui-components-snackbar.mjs +29 -0
  191. package/fesm2020/agorapulse-ui-components-snackbar.mjs.map +1 -0
  192. package/fesm2020/agorapulse-ui-components-snackbars-thread.mjs +169 -0
  193. package/fesm2020/agorapulse-ui-components-snackbars-thread.mjs.map +1 -0
  194. package/fesm2020/agorapulse-ui-components-stepper.mjs +44 -0
  195. package/fesm2020/agorapulse-ui-components-stepper.mjs.map +1 -0
  196. package/fesm2020/agorapulse-ui-components-text-measurement.mjs +35 -0
  197. package/fesm2020/agorapulse-ui-components-text-measurement.mjs.map +1 -0
  198. package/fesm2020/agorapulse-ui-components-tooltip-neo.mjs +282 -0
  199. package/fesm2020/agorapulse-ui-components-tooltip-neo.mjs.map +1 -0
  200. package/fesm2020/agorapulse-ui-components.mjs +79 -2807
  201. package/fesm2020/agorapulse-ui-components.mjs.map +1 -1
  202. package/index.d.ts +28 -34
  203. package/infobox/index.d.ts +5 -0
  204. package/{src/lib/infobox → infobox}/infobox.component.d.ts +1 -1
  205. package/infobox/public_api.d.ts +1 -0
  206. package/labels/index.d.ts +5 -0
  207. package/{src/lib/labels → labels}/label-list.component.d.ts +2 -2
  208. package/{src/lib/labels → labels}/label.component.d.ts +2 -2
  209. package/labels/public_api.d.ts +2 -0
  210. package/labels-selector/index.d.ts +5 -0
  211. package/{src/lib/labels-selector → labels-selector}/labels-selector.component.d.ts +2 -2
  212. package/labels-selector/public_api.d.ts +1 -0
  213. package/media-display-overlay/index.d.ts +5 -0
  214. package/{src/lib/media-display-overlay → media-display-overlay}/media-display-overlay-dialog.component.d.ts +1 -1
  215. package/media-display-overlay/public_api.d.ts +1 -0
  216. package/modal/index.d.ts +5 -0
  217. package/{src/lib/modal → modal}/modal.component.d.ts +3 -4
  218. package/modal/public_api.d.ts +1 -0
  219. package/notification/index.d.ts +5 -0
  220. package/{src/lib/notification → notification}/notification.component.d.ts +1 -1
  221. package/notification/public_api.d.ts +1 -0
  222. package/package.json +169 -1
  223. package/paginator/index.d.ts +5 -0
  224. package/{src/lib/paginator → paginator}/paginator-button/paginator-button.component.d.ts +1 -1
  225. package/{src/lib/paginator → paginator}/paginator.component.d.ts +1 -1
  226. package/paginator/public_api.d.ts +2 -0
  227. package/password-input/index.d.ts +5 -0
  228. package/{src/lib/password-input → password-input}/password-input.component.d.ts +1 -1
  229. package/password-input/public_api.d.ts +1 -0
  230. package/popmenu/index.d.ts +5 -0
  231. package/{src/lib/popmenu → popmenu}/options.d.ts +0 -0
  232. package/{src/lib/popmenu → popmenu}/popmenu-options.interface.d.ts +0 -0
  233. package/{src/lib/popmenu → popmenu}/popmenu-options.service.d.ts +0 -0
  234. package/{src/lib/popmenu → popmenu}/popmenu.component.d.ts +1 -1
  235. package/{src/lib/popmenu → popmenu}/popmenu.directive.d.ts +1 -1
  236. package/{src/lib/popmenu → popmenu}/popmenu.module.d.ts +1 -4
  237. package/{src/lib/popmenu/index.d.ts → popmenu/public_api.d.ts} +0 -0
  238. package/slide-toggle/index.d.ts +5 -0
  239. package/slide-toggle/public_api.d.ts +1 -0
  240. package/{src/lib/slide-toggle → slide-toggle}/slide-toggle.component.d.ts +1 -1
  241. package/snackbar/index.d.ts +5 -0
  242. package/snackbar/public_api.d.ts +1 -0
  243. package/{src/lib/snackbar → snackbar}/snackbar.component.d.ts +1 -1
  244. package/{src/lib/snackbars-thread → snackbars-thread}/component/snackbars-thread.component.d.ts +1 -1
  245. package/snackbars-thread/index.d.ts +5 -0
  246. package/{src/lib/snackbars-thread → snackbars-thread}/model/snackbars-thread.model.d.ts +1 -1
  247. package/snackbars-thread/public_api.d.ts +3 -0
  248. package/{src/lib/snackbars-thread → snackbars-thread}/service/snackbars-thread.service.d.ts +0 -0
  249. package/{src/lib/snackbars-thread → snackbars-thread}/utils/const/snackbars-thread.const.d.ts +0 -0
  250. package/src/lib/agorapulse-ui-components.module.d.ts +24 -38
  251. package/stepper/index.d.ts +5 -0
  252. package/stepper/public_api.d.ts +2 -0
  253. package/{src/lib/stepper → stepper}/step.model.d.ts +0 -0
  254. package/{src/lib/stepper → stepper}/stepper.component.d.ts +1 -1
  255. package/text-measurement/index.d.ts +5 -0
  256. package/text-measurement/public_api.d.ts +1 -0
  257. package/{src/lib/text-measurement → text-measurement}/text-measurement.service.d.ts +0 -0
  258. package/tooltip-neo/index.d.ts +5 -0
  259. package/tooltip-neo/public_api.d.ts +3 -0
  260. package/{src/lib/tooltip-neo → tooltip-neo}/tooltip-neo.component.d.ts +1 -1
  261. package/{src/lib/tooltip-neo → tooltip-neo}/tooltip-neo.const.d.ts +0 -0
  262. package/{src/lib/tooltip-neo → tooltip-neo}/tooltip-neo.directive.d.ts +2 -2
  263. package/{src/lib/tooltip-neo → tooltip-neo}/tooltip-neo.model.d.ts +0 -0
  264. package/{src/lib/tooltip-neo → tooltip-neo}/tooltip-neo.service.d.ts +0 -0
  265. package/agorapulse-ui-components-14.0.4.tgz +0 -0
  266. package/esm2020/src/lib/add-comment/add-comment.component.mjs +0 -64
  267. package/esm2020/src/lib/avatar/avatar.component.mjs +0 -137
  268. package/esm2020/src/lib/confirm-modal/confirm-modal-texts.model.mjs +0 -2
  269. package/esm2020/src/lib/confirm-modal/confirm-modal.component.mjs +0 -61
  270. package/esm2020/src/lib/datepicker/datepicker.component.mjs +0 -219
  271. package/esm2020/src/lib/directives/autosize-textarea.directive.mjs +0 -43
  272. package/esm2020/src/lib/directives/default-image.directive.mjs +0 -31
  273. package/esm2020/src/lib/directives/ellipsis.directive.mjs +0 -85
  274. package/esm2020/src/lib/directives/equal-validator.directive.mjs +0 -65
  275. package/esm2020/src/lib/directives/frozen-gif.directive.mjs +0 -115
  276. package/esm2020/src/lib/directives/multi-style-text.directive.mjs +0 -135
  277. package/esm2020/src/lib/directives/truncate-tooltip.directive.mjs +0 -33
  278. package/esm2020/src/lib/dots-stepper/dots-stepper.component.mjs +0 -43
  279. package/esm2020/src/lib/infobox/infobox.component.mjs +0 -24
  280. package/esm2020/src/lib/labels/label-list.component.mjs +0 -98
  281. package/esm2020/src/lib/labels/label.component.mjs +0 -53
  282. package/esm2020/src/lib/labels-selector/labels-selector.component.mjs +0 -92
  283. package/esm2020/src/lib/media-display-overlay/media-display-overlay-dialog.component.mjs +0 -87
  284. package/esm2020/src/lib/modal/modal.component.mjs +0 -96
  285. package/esm2020/src/lib/notification/notification.component.mjs +0 -17
  286. package/esm2020/src/lib/paginator/paginator-button/paginator-button.component.mjs +0 -23
  287. package/esm2020/src/lib/paginator/paginator.component.mjs +0 -54
  288. package/esm2020/src/lib/password-input/password-input.component.mjs +0 -69
  289. package/esm2020/src/lib/popmenu/options.mjs +0 -17
  290. package/esm2020/src/lib/popmenu/popmenu-options.interface.mjs +0 -2
  291. package/esm2020/src/lib/popmenu/popmenu-options.service.mjs +0 -7
  292. package/esm2020/src/lib/popmenu/popmenu.component.mjs +0 -357
  293. package/esm2020/src/lib/popmenu/popmenu.directive.mjs +0 -240
  294. package/esm2020/src/lib/popmenu/popmenu.module.mjs +0 -47
  295. package/esm2020/src/lib/slide-toggle/slide-toggle.component.mjs +0 -67
  296. package/esm2020/src/lib/snackbar/snackbar.component.mjs +0 -21
  297. package/esm2020/src/lib/snackbars-thread/component/snackbars-thread.component.mjs +0 -70
  298. package/esm2020/src/lib/snackbars-thread/model/snackbars-thread.model.mjs +0 -41
  299. package/esm2020/src/lib/snackbars-thread/service/snackbars-thread.service.mjs +0 -41
  300. package/esm2020/src/lib/snackbars-thread/utils/const/snackbars-thread.const.mjs +0 -13
  301. package/esm2020/src/lib/stepper/step.model.mjs +0 -2
  302. package/esm2020/src/lib/stepper/stepper.component.mjs +0 -36
  303. package/esm2020/src/lib/text-measurement/text-measurement.service.mjs +0 -28
  304. package/esm2020/src/lib/tooltip-neo/tooltip-neo.component.mjs +0 -44
  305. package/esm2020/src/lib/tooltip-neo/tooltip-neo.const.mjs +0 -67
  306. package/esm2020/src/lib/tooltip-neo/tooltip-neo.directive.mjs +0 -137
  307. package/esm2020/src/lib/tooltip-neo/tooltip-neo.model.mjs +0 -2
@@ -0,0 +1,86 @@
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
+ constructor(el) {
16
+ this.el = el;
17
+ this.apEllipsisClip = false;
18
+ this.apEllipsisChar = '...';
19
+ this.apEllipsisClickable = false;
20
+ this.apEllipsisRemovedElementsCount = new EventEmitter();
21
+ this.apEllipsisRemovedText = new EventEmitter();
22
+ }
23
+ get hasOverflow() {
24
+ const el = this.el.nativeElement;
25
+ return (el.scrollHeight > el.offsetHeight) || (el.scrollWidth > el.offsetWidth);
26
+ }
27
+ ngAfterContentChecked() {
28
+ this.clipText();
29
+ }
30
+ clipText() {
31
+ const el = this.el.nativeElement;
32
+ let text = el.innerText;
33
+ let removedText = '';
34
+ if (this.apEllipsisIndex > -1) {
35
+ removedText = text.substring(this.apEllipsisIndex, text.length - 1) + removedText;
36
+ text = text.substring(0, this.apEllipsisIndex);
37
+ el.innerText = `${text}${this.apEllipsisChar}`;
38
+ if (this.apEllipsisClickable) {
39
+ el.addEventListener('click', () => {
40
+ el.innerText = `${text}${removedText}`;
41
+ });
42
+ }
43
+ }
44
+ else {
45
+ while (this.hasOverflow && text.length > 0) {
46
+ removedText = text[text.length - 1] + removedText;
47
+ text = text.substring(0, text.length - 1);
48
+ el.innerText = `${text}${this.apEllipsisChar}`;
49
+ }
50
+ }
51
+ if (this.apEllipsisSeparator) {
52
+ const removedElementsCount = removedText.split(this.apEllipsisSeparator)
53
+ .filter(element => !!element && element.length > 0).length;
54
+ if (removedElementsCount > 0) {
55
+ this.apEllipsisRemovedElementsCount.emit(removedElementsCount);
56
+ }
57
+ }
58
+ if (removedText && removedText.length > 0) {
59
+ this.apEllipsisRemovedText.emit(removedText);
60
+ }
61
+ }
62
+ }
63
+ EllipsisDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: EllipsisDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
64
+ EllipsisDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: EllipsisDirective, isStandalone: true, selector: "[apEllipsis]", inputs: { apEllipsisSeparator: "apEllipsisSeparator", apEllipsisClip: "apEllipsisClip", apEllipsisIndex: "apEllipsisIndex", apEllipsisChar: "apEllipsisChar", apEllipsisClickable: "apEllipsisClickable" }, outputs: { apEllipsisRemovedElementsCount: "apEllipsisRemovedElementsCount", apEllipsisRemovedText: "apEllipsisRemovedText" }, ngImport: i0 });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: EllipsisDirective, decorators: [{
66
+ type: Directive,
67
+ args: [{
68
+ selector: '[apEllipsis]',
69
+ standalone: true,
70
+ }]
71
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { apEllipsisSeparator: [{
72
+ type: Input
73
+ }], apEllipsisClip: [{
74
+ type: Input
75
+ }], apEllipsisIndex: [{
76
+ type: Input
77
+ }], apEllipsisChar: [{
78
+ type: Input
79
+ }], apEllipsisClickable: [{
80
+ type: Input
81
+ }], apEllipsisRemovedElementsCount: [{
82
+ type: Output
83
+ }], apEllipsisRemovedText: [{
84
+ type: Output
85
+ }] } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzaXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL2RpcmVjdGl2ZXMvc3JjL2VsbGlwc2lzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFdkc7Ozs7Ozs7Ozs7R0FVRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFnQjFCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBYnpCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRWhDLG1CQUFjLEdBQVcsS0FBSyxDQUFDO1FBQy9CLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUVwQyxtQ0FBOEIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVELDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFPdkIsQ0FBQztJQUx2QyxJQUFZLFdBQVc7UUFDbkIsTUFBTSxFQUFFLEdBQWdCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFJRCxxQkFBcUI7UUFDakIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxRQUFRO1FBQ1osTUFBTSxFQUFFLEdBQWdCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQzlDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDeEIsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUMzQixXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDO1lBQ2xGLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDL0MsRUFBRSxDQUFDLFNBQVMsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFL0MsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzFCLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUM5QixFQUFFLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxHQUFHLFdBQVcsRUFBRSxDQUFDO2dCQUMzQyxDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0o7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDeEMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztnQkFDbEQsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ2xEO1NBQ0o7UUFFRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMxQixNQUFNLG9CQUFvQixHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2lCQUNuRSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQy9ELElBQUksb0JBQW9CLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQixJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7YUFDbEU7U0FDSjtRQUNELElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDaEQ7SUFDTCxDQUFDOzs4R0F0RFEsaUJBQWlCO2tHQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CO2lHQUdZLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUksOEJBQThCO3NCQUF2QyxNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJDb250ZW50Q2hlY2tlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZW1vdmVzIGV4Y2VzcyB0ZXh0IGZyb20gZWxlbWVudCB1bnRpbCBpdCBmaXRzIGluIGVsZW1lbnRzXG4gKiBhbmQgYXBwZW5kcyBhIGVsbGlwc2lzIHN5bWJvbCB0byBlbmQgb2YgdGV4dC4gVGhpcyByZXF1aXJlcyB0aGF0XG4gKiB0aGUgZWxlbWVudHMgaGVpZ2h0IGJlIGZpeGVkXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxwIGFwRWxsaXBzaXM+VWxsYW1jbyBlc3NlIGxhYm9ydW08L3A+XG4gKiBgYGBcbiAqXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2FwRWxsaXBzaXNdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbGxpcHNpc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQge1xuXG4gICAgQElucHV0KCkgYXBFbGxpcHNpc1NlcGFyYXRvcjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGFwRWxsaXBzaXNDbGlwOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgYXBFbGxpcHNpc0luZGV4OiBudW1iZXI7XG4gICAgQElucHV0KCkgYXBFbGxpcHNpc0NoYXI6IHN0cmluZyA9ICcuLi4nO1xuICAgIEBJbnB1dCgpIGFwRWxsaXBzaXNDbGlja2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBhcEVsbGlwc2lzUmVtb3ZlZEVsZW1lbnRzQ291bnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgYXBFbGxpcHNpc1JlbW92ZWRUZXh0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBwcml2YXRlIGdldCBoYXNPdmVyZmxvdygpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICByZXR1cm4gKGVsLnNjcm9sbEhlaWdodCA+IGVsLm9mZnNldEhlaWdodCkgfHwgKGVsLnNjcm9sbFdpZHRoID4gZWwub2Zmc2V0V2lkdGgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHsgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgICAgICB0aGlzLmNsaXBUZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGlwVGV4dCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBsZXQgdGV4dCA9IGVsLmlubmVyVGV4dDtcbiAgICAgICAgbGV0IHJlbW92ZWRUZXh0ID0gJyc7XG4gICAgICAgIGlmICh0aGlzLmFwRWxsaXBzaXNJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICByZW1vdmVkVGV4dCA9IHRleHQuc3Vic3RyaW5nKHRoaXMuYXBFbGxpcHNpc0luZGV4LCB0ZXh0Lmxlbmd0aCAtIDEpICsgcmVtb3ZlZFRleHQ7XG4gICAgICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoMCwgdGhpcy5hcEVsbGlwc2lzSW5kZXgpO1xuICAgICAgICAgICAgZWwuaW5uZXJUZXh0ID0gYCR7dGV4dH0ke3RoaXMuYXBFbGxpcHNpc0NoYXJ9YDtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYXBFbGxpcHNpc0NsaWNrYWJsZSkge1xuICAgICAgICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlbC5pbm5lclRleHQgPSBgJHt0ZXh0fSR7cmVtb3ZlZFRleHR9YDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLmhhc092ZXJmbG93ICYmIHRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJlbW92ZWRUZXh0ID0gdGV4dFt0ZXh0Lmxlbmd0aCAtIDFdICsgcmVtb3ZlZFRleHQ7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIHRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgZWwuaW5uZXJUZXh0ID0gYCR7dGV4dH0ke3RoaXMuYXBFbGxpcHNpc0NoYXJ9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFwRWxsaXBzaXNTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZWRFbGVtZW50c0NvdW50ID0gcmVtb3ZlZFRleHQuc3BsaXQodGhpcy5hcEVsbGlwc2lzU2VwYXJhdG9yKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoZWxlbWVudCA9PiAhIWVsZW1lbnQgJiYgZWxlbWVudC5sZW5ndGggPiAwKS5sZW5ndGg7XG4gICAgICAgICAgICBpZiAocmVtb3ZlZEVsZW1lbnRzQ291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcEVsbGlwc2lzUmVtb3ZlZEVsZW1lbnRzQ291bnQuZW1pdChyZW1vdmVkRWxlbWVudHNDb3VudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlbW92ZWRUZXh0ICYmIHJlbW92ZWRUZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuYXBFbGxpcHNpc1JlbW92ZWRUZXh0LmVtaXQocmVtb3ZlZFRleHQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,66 @@
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
+ constructor(validateEqual, validateEqualReference) {
7
+ this.validateEqual = validateEqual;
8
+ this.validateEqualReference = validateEqualReference;
9
+ }
10
+ validate(self) {
11
+ const other = self.root.get(this.validateEqual);
12
+ if (other) {
13
+ if (this.isReference()) {
14
+ if (self.value === other.value) {
15
+ delete other.errors['validateEqual'];
16
+ if (!Object.keys(other.errors).length) {
17
+ other.setErrors(null);
18
+ }
19
+ }
20
+ else {
21
+ other.setErrors({ validateEqual: false });
22
+ }
23
+ }
24
+ else if (self.value !== other.value) {
25
+ return { validateEqual: false };
26
+ }
27
+ }
28
+ return null;
29
+ }
30
+ isReference() {
31
+ if (!this.validateEqualReference) {
32
+ return false;
33
+ }
34
+ return this.validateEqualReference === 'true';
35
+ }
36
+ }
37
+ EqualValidatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: EqualValidatorDirective, deps: [{ token: 'validateEqual', attribute: true }, { token: 'validateEqualReference', attribute: true }], target: i0.ɵɵFactoryTarget.Directive });
38
+ EqualValidatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: EqualValidatorDirective, isStandalone: true, selector: "[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]", providers: [
39
+ {
40
+ provide: NG_VALIDATORS,
41
+ useExisting: forwardRef(() => EqualValidatorDirective),
42
+ multi: true
43
+ }
44
+ ], ngImport: i0 });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: EqualValidatorDirective, decorators: [{
46
+ type: Directive,
47
+ args: [{
48
+ // eslint-disable-next-line @angular-eslint/directive-selector
49
+ selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',
50
+ providers: [
51
+ {
52
+ provide: NG_VALIDATORS,
53
+ useExisting: forwardRef(() => EqualValidatorDirective),
54
+ multi: true
55
+ }
56
+ ],
57
+ standalone: true,
58
+ }]
59
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
60
+ type: Attribute,
61
+ args: ['validateEqual']
62
+ }] }, { type: undefined, decorators: [{
63
+ type: Attribute,
64
+ args: ['validateEqualReference']
65
+ }] }]; } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kaXJlY3RpdmVzL3NyYy9lcXVhbC12YWxpZGF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1IQUFtSDtBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUE4QixhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFjM0UsTUFBTSxPQUFPLHVCQUF1QjtJQUVoQyxZQUErQyxhQUFxQixFQUNaLHNCQUE4QjtRQUR2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUNaLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBUTtJQUFHLENBQUM7SUFFMUYsUUFBUSxDQUFDLElBQXFCO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRCxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUNwQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssRUFBRTtvQkFDNUIsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO3dCQUNuQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN6QjtpQkFDSjtxQkFBTTtvQkFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7aUJBQzdDO2FBQ0o7aUJBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLEVBQUU7Z0JBQ25DLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDbkM7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxXQUFXO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUM5QixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixLQUFLLE1BQU0sQ0FBQztJQUNsRCxDQUFDOztvSEE3QlEsdUJBQXVCLGtCQUVULGVBQWUsOEJBQ2Ysd0JBQXdCO3dHQUh0Qyx1QkFBdUIscUlBVHJCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsYUFBYTtZQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO1lBQ3RELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSjsyRkFHUSx1QkFBdUI7a0JBWm5DLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsd0ZBQXdGO29CQUNsRyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQUdnQixTQUFTOzJCQUFDLGVBQWU7OzBCQUN6QixTQUFTOzJCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEJhc2VkIG9uIGh0dHBzOi8vc2NvdGNoLmlvL3R1dG9yaWFscy9ob3ctdG8taW1wbGVtZW50LWEtY3VzdG9tLXZhbGlkYXRvci1kaXJlY3RpdmUtY29uZmlybS1wYXNzd29yZC1pbi1hbmd1bGFyLTJcbmltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3IsIEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1t2YWxpZGF0ZUVxdWFsXVtmb3JtQ29udHJvbE5hbWVdLFt2YWxpZGF0ZUVxdWFsXVtmb3JtQ29udHJvbF0sW3ZhbGlkYXRlRXF1YWxdW25nTW9kZWxdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVxdWFsVmFsaWRhdG9yRGlyZWN0aXZlKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVxdWFsVmFsaWRhdG9yRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcblxuICAgIGNvbnN0cnVjdG9yKEBBdHRyaWJ1dGUoJ3ZhbGlkYXRlRXF1YWwnKSBwdWJsaWMgdmFsaWRhdGVFcXVhbDogc3RyaW5nLFxuICAgICAgICAgICAgICAgIEBBdHRyaWJ1dGUoJ3ZhbGlkYXRlRXF1YWxSZWZlcmVuY2UnKSBwdWJsaWMgdmFsaWRhdGVFcXVhbFJlZmVyZW5jZTogc3RyaW5nKSB7fVxuXG4gICAgdmFsaWRhdGUoc2VsZjogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgICAgIGNvbnN0IG90aGVyID0gc2VsZi5yb290LmdldCh0aGlzLnZhbGlkYXRlRXF1YWwpO1xuICAgICAgICBpZiAob3RoZXIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUmVmZXJlbmNlKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi52YWx1ZSA9PT0gb3RoZXIudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG90aGVyLmVycm9yc1sndmFsaWRhdGVFcXVhbCddO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKG90aGVyLmVycm9ycykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdGhlci5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvdGhlci5zZXRFcnJvcnMoeyB2YWxpZGF0ZUVxdWFsOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNlbGYudmFsdWUgIT09IG90aGVyLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsaWRhdGVFcXVhbDogZmFsc2UgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUmVmZXJlbmNlKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGVFcXVhbFJlZmVyZW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlRXF1YWxSZWZlcmVuY2UgPT09ICd0cnVlJztcbiAgICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,116 @@
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
+ constructor(elementRef) {
19
+ this.elementRef = elementRef;
20
+ this.apFrozen = true;
21
+ // Add all the events that need to be propagated.
22
+ this.apGifEvents = ['click'];
23
+ const element = this.elementRef.nativeElement;
24
+ if (!(element instanceof HTMLImageElement)) {
25
+ return;
26
+ }
27
+ this.element = element;
28
+ }
29
+ ngOnChanges(changes) {
30
+ let freeze = false;
31
+ if (changes.src) {
32
+ freeze = true;
33
+ }
34
+ if (changes.frozen) {
35
+ if (changes.frozen.currentValue) {
36
+ freeze = true;
37
+ }
38
+ else {
39
+ this.unfreeze();
40
+ }
41
+ }
42
+ if (freeze) {
43
+ this.freeze();
44
+ }
45
+ }
46
+ freeze() {
47
+ if (!GifService.isGif(this.src) || !this.apFrozen) {
48
+ this.unfreeze();
49
+ return;
50
+ }
51
+ // hack to avoid displaying the GIF before replacing it by the canvas
52
+ this.element.style.visibility = 'hidden';
53
+ this.element.addEventListener('load', () => this.addCanvas());
54
+ }
55
+ addCanvas() {
56
+ if (this.canvas) {
57
+ this.canvas.remove();
58
+ }
59
+ this.canvas = document.createElement('canvas');
60
+ this.canvas.width = this.element.width;
61
+ this.canvas.height = this.element.height;
62
+ this.canvas.getContext('2d').drawImage(this.element, 0, 0, this.canvas.width, this.canvas.height);
63
+ for (let i = 0; i < this.element.attributes.length; i++) {
64
+ const attr = this.element.attributes[i];
65
+ if (attr.name === 'id') { // avoid two elements with the same id
66
+ this.canvas.setAttribute('id', attr.value + '_frozenGif');
67
+ }
68
+ else if (attr.name === 'style' && attr.value.includes('visibility: hidden;') || attr.value.includes('display: none;')) {
69
+ // remove the added 'visibility: hidden' and 'display: none'
70
+ const styleValue = attr.value;
71
+ this.canvas.setAttribute('style', styleValue.replace('visibility: hidden;', '').replace('display: none;', ''));
72
+ }
73
+ else if (attr.name !== '"') { // test for invalid attributes
74
+ this.canvas.setAttribute(attr.name, attr.value);
75
+ }
76
+ }
77
+ this.addEvents();
78
+ this.element.parentNode.insertBefore(this.canvas, this.element);
79
+ this.element.style.display = 'none';
80
+ }
81
+ addEvents() {
82
+ this.apGifEvents.forEach((eventName) => {
83
+ this.canvas.addEventListener(eventName, (ev) => this.element.dispatchEvent(
84
+ // wm: find a way to dispatch the right event type
85
+ new Event(ev.type, ev)));
86
+ });
87
+ }
88
+ unfreeze() {
89
+ if (this.canvas) {
90
+ this.canvas.remove();
91
+ this.canvas = null;
92
+ }
93
+ this.element.style.visibility = 'inherit';
94
+ this.element.style.display = 'inherit';
95
+ }
96
+ }
97
+ FrozenGifDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FrozenGifDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
98
+ FrozenGifDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: FrozenGifDirective, isStandalone: true, selector: "img[apFrozenGif]", inputs: { src: "src", apFrozen: "apFrozen", apGifEvents: "apGifEvents" }, host: { properties: { "src": "src" } }, usesOnChanges: true, ngImport: i0 });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FrozenGifDirective, decorators: [{
100
+ type: Directive,
101
+ args: [{
102
+ selector: 'img[apFrozenGif]',
103
+ // eslint-disable-next-line @angular-eslint/no-host-metadata-property
104
+ host: {
105
+ '[src]': 'src'
106
+ },
107
+ standalone: true,
108
+ }]
109
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { src: [{
110
+ type: Input
111
+ }], apFrozen: [{
112
+ type: Input
113
+ }], apGifEvents: [{
114
+ type: Input
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvemVuLWdpZi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvZnJvemVuLWdpZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBMkIsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUVuRixNQUFNLE9BQU8sVUFBVTtJQUNuQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQVc7UUFDcEIsT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNKO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFVSCxNQUFNLE9BQU8sa0JBQWtCO0lBUzNCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFQakMsYUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QixpREFBaUQ7UUFDeEMsZ0JBQVcsR0FBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBTXZDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzlDLElBQUksQ0FBQyxDQUFDLE9BQU8sWUFBWSxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3hDLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBWTtRQUNwQixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSxHQUFHLElBQUksQ0FBQztTQUNqQjtRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFO2dCQUM3QixNQUFN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QztRQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxTQUFTO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFpQixFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTtZQUM3RSxrREFBa0Q7WUFDbEQsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FDekIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sUUFBUTtRQUNaLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDdEI7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFDM0MsQ0FBQzs7K0dBNUZRLGtCQUFrQjttR0FBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBUjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIscUVBQXFFO29CQUNyRSxJQUFJLEVBQUU7d0JBQ0YsT0FBTyxFQUFFLEtBQUs7cUJBQ2pCO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtpR0FFWSxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEdpZlNlcnZpY2Uge1xuICAgIHN0YXRpYyBpc0dpZihzcmM6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gc3JjICYmIHNyYy5zcGxpdCgnPycpWzBdLmVuZHNXaXRoKCcuZ2lmJyk7XG4gICAgfVxufVxuXG4vKipcbiAqIElmIHRoZSBpbWFnZSBpcyBhIEdJRiB0aGVuIHJlcGxhY2UgdGhlIGltZyBlbGVtZW50IGJ5IGEgY2FudmFzIGNvbnRhaW5pbmcgYSBmcm96ZW4gZ2lmLlxuICogTm90ZSAxOiBpZiB0aGUgaW1hZ2UgaXMgZGlzcGxheWVkIHVuZGVyIGEgY29uZGl0aW9uLCB0aGUgY29uZGl0aW9uIG11c3QgYmUgYXBwbGllZCBvbiB0aGUgcGFyZW50IG9mIHRoZSBpbWFnZSwgc28gdGhlXG4gKiBuZXcgY2FudmFzIGVsZW1lbnQgd2lsbCBoYXZlIHRoZSBzYW1lIGNvbmRpdGlvbi5cbiAqIE5vdGUgMjogdGhlIGltYWdlIG11c3Qgbm90IGhhdmUgdGhlIHByb3BlcnRpZXMgXCJkaXNwbGF5XCIgYW5kIFwidmlzaWJpbGl0eVwiIGluIGl0cyBzdHlsZS4gU2luY2UgdGhleSBhcmUgdXNlZCB0byBmcm96ZW5cbiAqIHRoZSBHSUYuIFlvdSBuZWVkIHRvIGFwcGx5IHRoaXMgcHJvcGVydGllcyBvbiB0aGUgcGFyZW50IGVsZW1lbnQuXG4gKiBOb3RlIDM6IElmIHRoZSBHSUYgaXMgZnJvemVuLCBhbGwgdGhlIGV2ZW50IGFyZSBwcm9wYWdhdGVkIHRvIHRoZSBpbWFnZS4gSG93ZXZlciwgYWxsIGV2ZW50cyBhcmUgZGlzcGF0Y2hlZFxuICogd2l0aCBhbiBFdmVudCBpbnN0YW5jZS4gRXg6IGNsaWNrIGV2ZW50IGlzIG5vdCBkaXNwYXRjaGVkIHdpdGggYSBNb3VzZUV2ZW50IGluc3RhbmNlLlxuICovXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW1nW2FwRnJvemVuR2lmXScsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG4gICAgaG9zdDoge1xuICAgICAgICAnW3NyY10nOiAnc3JjJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRnJvemVuR2lmRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBzcmM6IHN0cmluZztcbiAgICBASW5wdXQoKSBhcEZyb3plbiA9IHRydWU7XG4gICAgLy8gQWRkIGFsbCB0aGUgZXZlbnRzIHRoYXQgbmVlZCB0byBiZSBwcm9wYWdhdGVkLlxuICAgIEBJbnB1dCgpIGFwR2lmRXZlbnRzOiBzdHJpbmdbXSA9IFsnY2xpY2snXTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogSFRNTEltYWdlRWxlbWVudDtcbiAgICBwcml2YXRlIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoIShlbGVtZW50IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIGxldCBmcmVlemUgPSBmYWxzZTtcbiAgICAgICAgaWYgKGNoYW5nZXMuc3JjKSB7XG4gICAgICAgICAgICBmcmVlemUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLmZyb3plbikge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMuZnJvemVuLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGZyZWV6ZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudW5mcmVlemUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmcmVlemUpIHtcbiAgICAgICAgICAgIHRoaXMuZnJlZXplKCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHByaXZhdGUgZnJlZXplKCkge1xuICAgICAgICBpZiAoIUdpZlNlcnZpY2UuaXNHaWYodGhpcy5zcmMpIHx8ICF0aGlzLmFwRnJvemVuKSB7XG4gICAgICAgICAgICB0aGlzLnVuZnJlZXplKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBoYWNrIHRvIGF2b2lkIGRpc3BsYXlpbmcgdGhlIEdJRiBiZWZvcmUgcmVwbGFjaW5nIGl0IGJ5IHRoZSBjYW52YXNcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB0aGlzLmFkZENhbnZhcygpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZENhbnZhcygpIHtcbiAgICAgICAgaWYgKHRoaXMuY2FudmFzKSB7XG4gICAgICAgICAgICB0aGlzLmNhbnZhcy5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgIHRoaXMuY2FudmFzLndpZHRoID0gdGhpcy5lbGVtZW50LndpZHRoO1xuICAgICAgICB0aGlzLmNhbnZhcy5oZWlnaHQgPSB0aGlzLmVsZW1lbnQuaGVpZ2h0O1xuICAgICAgICB0aGlzLmNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmRyYXdJbWFnZSh0aGlzLmVsZW1lbnQsIDAsIDAsIHRoaXMuY2FudmFzLndpZHRoLCB0aGlzLmNhbnZhcy5oZWlnaHQpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZWxlbWVudC5hdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBhdHRyID0gdGhpcy5lbGVtZW50LmF0dHJpYnV0ZXNbaV07XG4gICAgICAgICAgICBpZiAoYXR0ci5uYW1lID09PSAnaWQnKSB7IC8vIGF2b2lkIHR3byBlbGVtZW50cyB3aXRoIHRoZSBzYW1lIGlkXG4gICAgICAgICAgICAgICAgdGhpcy5jYW52YXMuc2V0QXR0cmlidXRlKCdpZCcsIGF0dHIudmFsdWUgKyAnX2Zyb3plbkdpZicpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyLm5hbWUgPT09ICdzdHlsZScgJiYgYXR0ci52YWx1ZS5pbmNsdWRlcygndmlzaWJpbGl0eTogaGlkZGVuOycpIHx8IGF0dHIudmFsdWUuaW5jbHVkZXMoJ2Rpc3BsYXk6IG5vbmU7JykpIHtcbiAgICAgICAgICAgICAgICAvLyByZW1vdmUgdGhlIGFkZGVkICd2aXNpYmlsaXR5OiBoaWRkZW4nIGFuZCAnZGlzcGxheTogbm9uZSdcbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZVZhbHVlID0gYXR0ci52YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbnZhcy5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgc3R5bGVWYWx1ZS5yZXBsYWNlKCd2aXNpYmlsaXR5OiBoaWRkZW47JywgJycpLnJlcGxhY2UoJ2Rpc3BsYXk6IG5vbmU7JywgJycpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0ci5uYW1lICE9PSAnXCInKSB7IC8vIHRlc3QgZm9yIGludmFsaWQgYXR0cmlidXRlc1xuICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzLnNldEF0dHJpYnV0ZShhdHRyLm5hbWUsIGF0dHIudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hZGRFdmVudHMoKTtcblxuICAgICAgICB0aGlzLmVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5jYW52YXMsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRXZlbnRzKCkge1xuICAgICAgICB0aGlzLmFwR2lmRXZlbnRzLmZvckVhY2goKGV2ZW50TmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhbnZhcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgKGV2OiBFdmVudCkgPT4gdGhpcy5lbGVtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICAgICAgLy8gd206IGZpbmQgYSB3YXkgdG8gZGlzcGF0Y2ggdGhlIHJpZ2h0IGV2ZW50IHR5cGVcbiAgICAgICAgICAgICAgICBuZXcgRXZlbnQoZXYudHlwZSwgZXYpXG4gICAgICAgICAgICApKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1bmZyZWV6ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY2FudmFzKSB7XG4gICAgICAgICAgICB0aGlzLmNhbnZhcy5yZW1vdmUoKTtcbiAgICAgICAgICAgIHRoaXMuY2FudmFzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdpbmhlcml0JztcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnaW5oZXJpdCc7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,136 @@
1
+ import { Directive, Input, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ const PART_START = '<ng-container data-mst="';
4
+ const PARSE_MIDDLE = '">';
5
+ const PARSE_END = '</ng-container>';
6
+ const DATA_SEPARATOR = ',';
7
+ const OPTIONAL_EVENTS_SEPARATOR = ';';
8
+ /**
9
+ * 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.
10
+ * The specific tags must this schema: <ng-container data-mst="STYLING-CLASSES">TEXT</ng-container>.
11
+ * Example: 'Lorem <ng-container data-mst="my-style">ipsum</ng-container> dolor sit amet'.
12
+ */
13
+ export class MultiStyleTextDirective {
14
+ constructor(elRef, renderer) {
15
+ this.elRef = elRef;
16
+ this.renderer = renderer;
17
+ this.childrenCreated = [];
18
+ this.partEvent = new EventEmitter();
19
+ }
20
+ set multiStyleText(fullText) {
21
+ // First remove previously added children (on update).
22
+ for (const child of this.childrenCreated) {
23
+ this.renderer.removeChild(this.elRef.nativeElement, child);
24
+ }
25
+ if (fullText && fullText.length > 0) {
26
+ MultiStyleTextDirective.parse(fullText).forEach((part) => {
27
+ if (part.clazz || part.clickName) {
28
+ // Parsed item with styling classes and/or event listening.
29
+ const span = this.renderer.createElement('span');
30
+ const text = this.renderer.createText(part.content);
31
+ this.renderer.appendChild(span, text);
32
+ if (part.clazz) {
33
+ part.clazz.forEach(clazz => this.renderer.addClass(span, clazz));
34
+ }
35
+ if (part.clickName) {
36
+ this.renderer.listen(span, 'click', () => this.partEvent.emit(part.clickName));
37
+ }
38
+ this.renderer.appendChild(this.elRef.nativeElement, span);
39
+ this.childrenCreated.push(span);
40
+ }
41
+ else {
42
+ // Specific of part without styling classes (could be used to get event listening only)
43
+ const text = this.renderer.createText(part.content);
44
+ this.renderer.appendChild(this.elRef.nativeElement, text);
45
+ this.childrenCreated.push(text);
46
+ }
47
+ });
48
+ }
49
+ }
50
+ static parse(toParse) {
51
+ const parts = [];
52
+ let startIndex = toParse.indexOf(PART_START);
53
+ while (startIndex >= 0) {
54
+ if (startIndex > 0) {
55
+ // Optional text before first parsed part.
56
+ parts.push({ content: toParse.substring(0, startIndex) });
57
+ }
58
+ const elem = this.cutFirstGroup(toParse.substring(startIndex));
59
+ if (elem === 'invalid') {
60
+ return [];
61
+ }
62
+ else if (elem) {
63
+ parts.push({
64
+ content: elem.content,
65
+ clazz: elem.classes,
66
+ clickName: elem.clickName
67
+ });
68
+ toParse = elem.rest;
69
+ startIndex = toParse.indexOf(PART_START);
70
+ }
71
+ else {
72
+ parts.push({ content: toParse });
73
+ }
74
+ }
75
+ // Very end
76
+ if (toParse.length > 0) {
77
+ parts.push({ content: toParse });
78
+ }
79
+ return parts;
80
+ }
81
+ static cutFirstGroup(toCut) {
82
+ if (!toCut.startsWith(PART_START)) {
83
+ // String doesn't start with expected parser start.
84
+ return null;
85
+ }
86
+ const afterParserStart = toCut.substring(PART_START.length);
87
+ let index = afterParserStart.indexOf(PARSE_MIDDLE);
88
+ if (index <= 0) {
89
+ console.error('Not able to parse invalid string: ' + toCut);
90
+ return 'invalid';
91
+ }
92
+ const data = afterParserStart.substring(0, index);
93
+ let classes;
94
+ let clickName;
95
+ const eventsPartSeparatorIndex = data.indexOf(OPTIONAL_EVENTS_SEPARATOR);
96
+ if (eventsPartSeparatorIndex > 0) {
97
+ // Case the data contains events part with dedicated separator
98
+ classes = data.substring(0, eventsPartSeparatorIndex);
99
+ clickName = data.substring(eventsPartSeparatorIndex + 1);
100
+ }
101
+ else {
102
+ // Otherwise, only design classes are provided
103
+ classes = data;
104
+ clickName = undefined;
105
+ }
106
+ let rest = afterParserStart.substring(index + PARSE_MIDDLE.length);
107
+ index = rest.indexOf(PARSE_END);
108
+ if (index <= 0) {
109
+ console.error('Not able to parse invalid string: ' + toCut);
110
+ return 'invalid';
111
+ }
112
+ const content = rest.substring(0, index);
113
+ rest = rest.substring(index + PARSE_END.length);
114
+ return {
115
+ content,
116
+ classes: classes.split(DATA_SEPARATOR),
117
+ clickName,
118
+ rest
119
+ };
120
+ }
121
+ }
122
+ MultiStyleTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MultiStyleTextDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
123
+ MultiStyleTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: MultiStyleTextDirective, isStandalone: true, selector: "[multiStyleText]", inputs: { multiStyleText: "multiStyleText" }, outputs: { partEvent: "partEvent" }, ngImport: i0 });
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MultiStyleTextDirective, decorators: [{
125
+ type: Directive,
126
+ args: [{
127
+ // eslint-disable-next-line @angular-eslint/directive-selector
128
+ selector: '[multiStyleText]',
129
+ standalone: true,
130
+ }]
131
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { multiStyleText: [{
132
+ type: Input
133
+ }], partEvent: [{
134
+ type: Output
135
+ }] } });
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvbXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQXlCLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBRTVGLE1BQU0sVUFBVSxHQUFHLDBCQUEwQixDQUFDO0FBQzlDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQztBQUMxQixNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztBQUNwQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUM7QUFDM0IsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUM7QUFRdEM7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTyx1QkFBdUI7SUFxQ2hDLFlBQ1ksS0FBaUIsRUFDakIsUUFBbUI7UUFEbkIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBckN2QixvQkFBZSxHQUFVLEVBQUUsQ0FBQztRQWlDMUIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFNakQsQ0FBQztJQXJDRCxJQUFhLGNBQWMsQ0FBQyxRQUFnQjtRQUN4QyxzREFBc0Q7UUFDdEQsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzlEO1FBRUQsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDakMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVUsRUFBRSxF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UUFDRCxJQUFJLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQzVELE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVoRCxPQUFPO1lBQ0gsT0FBTztZQUNQLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUN0QyxTQUFTO1lBQ1QsSUFBSTtTQUNQLENBQUM7SUFDTixDQUFDOztvSEFqSFEsdUJBQXVCO3dHQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt5SEFLZ0IsY0FBYztzQkFBMUIsS0FBSztnQkErQkksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgUmVuZGVyZXIyLCBFbGVtZW50UmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IFBBUlRfU1RBUlQgPSAnPG5nLWNvbnRhaW5lciBkYXRhLW1zdD1cIic7XG5jb25zdCBQQVJTRV9NSURETEUgPSAnXCI+JztcbmNvbnN0IFBBUlNFX0VORCA9ICc8L25nLWNvbnRhaW5lcj4nO1xuY29uc3QgREFUQV9TRVBBUkFUT1IgPSAnLCc7XG5jb25zdCBPUFRJT05BTF9FVkVOVFNfU0VQQVJBVE9SID0gJzsnO1xuXG5pbnRlcmZhY2UgUGFydCB7XG4gICAgY29udGVudDogc3RyaW5nO1xuICAgIGNsYXp6Pzogc3RyaW5nW107IC8vIE5vdCBkZWZpbmVkIG9uIHN0ZXJpbGUgdGV4dFxuICAgIGNsaWNrTmFtZT86IHN0cmluZzsgLy8gTm90IGRlZmluZWQgb24gc3RlcmlsZSB0ZXh0XG59XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgYWltcyB0byBwYXJzZSBzaW1wbGUgc3RyaW5nIHRvIGV4dHJhY3Qgc29tZSBzcGVjaWZpYyB0YWdzIGFuZCB0byB0dXJuIHRoZW0gaW50byBTUEFOIHdpdGggc3R5bGluZyBjbGFzc2VzIGF0dHJpYnV0ZXMgYW5kIG9wdGlvbmFsIGV2ZW50IGxpc3RlbmluZy5cbiAqIFRoZSBzcGVjaWZpYyB0YWdzIG11c3QgdGhpcyBzY2hlbWE6IDxuZy1jb250YWluZXIgZGF0YS1tc3Q9XCJTVFlMSU5HLUNMQVNTRVNcIj5URVhUPC9uZy1jb250YWluZXI+LlxuICogRXhhbXBsZTogJ0xvcmVtIDxuZy1jb250YWluZXIgZGF0YS1tc3Q9XCJteS1zdHlsZVwiPmlwc3VtPC9uZy1jb250YWluZXI+IGRvbG9yIHNpdCBhbWV0Jy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1ttdWx0aVN0eWxlVGV4dF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU3R5bGVUZXh0RGlyZWN0aXZlIHtcblxuICAgIHByaXZhdGUgY2hpbGRyZW5DcmVhdGVkOiBhbnlbXSA9IFtdO1xuXG4gICAgQElucHV0KCkgc2V0IG11bHRpU3R5bGVUZXh0KGZ1bGxUZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgLy8gRmlyc3QgcmVtb3ZlIHByZXZpb3VzbHkgYWRkZWQgY2hpbGRyZW4gKG9uIHVwZGF0ZSkuXG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5jaGlsZHJlbkNyZWF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCBjaGlsZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZnVsbFRleHQgJiYgZnVsbFRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgTXVsdGlTdHlsZVRleHREaXJlY3RpdmUucGFyc2UoZnVsbFRleHQpLmZvckVhY2goKHBhcnQ6IFBhcnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGFydC5jbGF6eiB8fCBwYXJ0LmNsaWNrTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBQYXJzZWQgaXRlbSB3aXRoIHN0eWxpbmcgY2xhc3NlcyBhbmQvb3IgZXZlbnQgbGlzdGVuaW5nLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGFuID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQocGFydC5jb250ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChzcGFuLCB0ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnQuY2xhenopIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnQuY2xhenouZm9yRWFjaChjbGF6eiA9PiB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHNwYW4sIGNsYXp6KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnQuY2xpY2tOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihzcGFuLCAnY2xpY2snLCAoKSA9PiB0aGlzLnBhcnRFdmVudC5lbWl0KHBhcnQuY2xpY2tOYW1lKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHNwYW4pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoaWxkcmVuQ3JlYXRlZC5wdXNoKHNwYW4pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNwZWNpZmljIG9mIHBhcnQgd2l0aG91dCBzdHlsaW5nIGNsYXNzZXMgKGNvdWxkIGJlIHVzZWQgdG8gZ2V0IGV2ZW50IGxpc3RlbmluZyBvbmx5KVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHBhcnQuY29udGVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGlsZHJlbkNyZWF0ZWQucHVzaCh0ZXh0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBPdXRwdXQoKSBwYXJ0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcGFyc2UodG9QYXJzZTogc3RyaW5nKTogUGFydFtdIHtcbiAgICAgICAgY29uc3QgcGFydHM6IFBhcnRbXSA9IFtdO1xuICAgICAgICBsZXQgc3RhcnRJbmRleCA9IHRvUGFyc2UuaW5kZXhPZihQQVJUX1NUQVJUKTtcbiAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPj0gMCkge1xuICAgICAgICAgICAgaWYgKHN0YXJ0SW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgLy8gT3B0aW9uYWwgdGV4dCBiZWZvcmUgZmlyc3QgcGFyc2VkIHBhcnQuXG4gICAgICAgICAgICAgICAgcGFydHMucHVzaCh7Y29udGVudDogdG9QYXJzZS5zdWJzdHJpbmcoMCwgc3RhcnRJbmRleCl9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLmN1dEZpcnN0R3JvdXAodG9QYXJzZS5zdWJzdHJpbmcoc3RhcnRJbmRleCkpO1xuICAgICAgICAgICAgaWYgKGVsZW0gPT09ICdpbnZhbGlkJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbSkge1xuICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBlbGVtLmNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgIGNsYXp6OiBlbGVtLmNsYXNzZXMsXG4gICAgICAgICAgICAgICAgICAgIGNsaWNrTmFtZTogZWxlbS5jbGlja05hbWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0b1BhcnNlID0gZWxlbS5yZXN0O1xuICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPSB0b1BhcnNlLmluZGV4T2YoUEFSVF9TVEFSVCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goe2NvbnRlbnQ6IHRvUGFyc2V9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBWZXJ5IGVuZFxuICAgICAgICBpZiAodG9QYXJzZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBwYXJ0cy5wdXNoKHtjb250ZW50OiB0b1BhcnNlfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhcnRzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGN1dEZpcnN0R3JvdXAodG9DdXQ6IHN0cmluZyk6IHtjb250ZW50OiBzdHJpbmcsIGNsYXNzZXM6IHN0cmluZ1tdLCBjbGlja05hbWU6IHN0cmluZywgcmVzdDogc3RyaW5nfSB8ICdpbnZhbGlkJyB8IG51bGwge1xuICAgICAgICBpZiAoIXRvQ3V0LnN0YXJ0c1dpdGgoUEFSVF9TVEFSVCkpIHtcbiAgICAgICAgICAgIC8vIFN0cmluZyBkb2Vzbid0IHN0YXJ0IHdpdGggZXhwZWN0ZWQgcGFyc2VyIHN0YXJ0LlxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhZnRlclBhcnNlclN0YXJ0ID0gdG9DdXQuc3Vic3RyaW5nKFBBUlRfU1RBUlQubGVuZ3RoKTtcbiAgICAgICAgbGV0IGluZGV4ID0gYWZ0ZXJQYXJzZXJTdGFydC5pbmRleE9mKFBBUlNFX01JRERMRSk7XG4gICAgICAgIGlmIChpbmRleCA8PSAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdOb3QgYWJsZSB0byBwYXJzZSBpbnZhbGlkIHN0cmluZzogJyArIHRvQ3V0KTtcbiAgICAgICAgICAgIHJldHVybiAnaW52YWxpZCc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YSA9IGFmdGVyUGFyc2VyU3RhcnQuc3Vic3RyaW5nKDAsIGluZGV4KTtcbiAgICAgICAgbGV0IGNsYXNzZXM7XG4gICAgICAgIGxldCBjbGlja05hbWU7XG4gICAgICAgIGNvbnN0IGV2ZW50c1BhcnRTZXBhcmF0b3JJbmRleCA9IGRhdGEuaW5kZXhPZihPUFRJT05BTF9FVkVOVFNfU0VQQVJBVE9SKTtcbiAgICAgICAgaWYgKGV2ZW50c1BhcnRTZXBhcmF0b3JJbmRleCA+IDApIHtcbiAgICAgICAgICAgIC8vIENhc2UgdGhlIGRhdGEgY29udGFpbnMgZXZlbnRzIHBhcnQgd2l0aCBkZWRpY2F0ZWQgc2VwYXJhdG9yXG4gICAgICAgICAgICBjbGFzc2VzID0gZGF0YS5zdWJzdHJpbmcoMCwgZXZlbnRzUGFydFNlcGFyYXRvckluZGV4KTtcbiAgICAgICAgICAgIGNsaWNrTmFtZSA9IGRhdGEuc3Vic3RyaW5nKGV2ZW50c1BhcnRTZXBhcmF0b3JJbmRleCArIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBvbmx5IGRlc2lnbiBjbGFzc2VzIGFyZSBwcm92aWRlZFxuICAgICAgICAgICAgY2xhc3NlcyA9IGRhdGE7XG4gICAgICAgICAgICBjbGlja05hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlc3QgPSBhZnRlclBhcnNlclN0YXJ0LnN1YnN0cmluZyhpbmRleCArIFBBUlNFX01JRERMRS5sZW5ndGgpO1xuICAgICAgICBpbmRleCA9IHJlc3QuaW5kZXhPZihQQVJTRV9FTkQpO1xuICAgICAgICBpZiAoaW5kZXggPD0gMCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignTm90IGFibGUgdG8gcGFyc2UgaW52YWxpZCBzdHJpbmc6ICcgKyB0b0N1dCk7XG4gICAgICAgICAgICByZXR1cm4gJ2ludmFsaWQnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSByZXN0LnN1YnN0cmluZygwLCBpbmRleCk7XG4gICAgICAgIHJlc3QgPSByZXN0LnN1YnN0cmluZyhpbmRleCArIFBBUlNFX0VORC5sZW5ndGgpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgY2xhc3NlczogY2xhc3Nlcy5zcGxpdChEQVRBX1NFUEFSQVRPUiksXG4gICAgICAgICAgICBjbGlja05hbWUsXG4gICAgICAgICAgICByZXN0XG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
@@ -0,0 +1,8 @@
1
+ export * from './autosize-textarea.directive';
2
+ export * from './default-image.directive';
3
+ export * from './ellipsis.directive';
4
+ export * from './equal-validator.directive';
5
+ export * from './frozen-gif.directive';
6
+ export * from './multi-style-text.directive';
7
+ export * from './truncate-tooltip.directive';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kaXJlY3RpdmVzL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG9zaXplLXRleHRhcmVhLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtaW1hZ2UuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZWxsaXBzaXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zyb3plbi1naWYuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90cnVuY2F0ZS10b29sdGlwLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -0,0 +1,33 @@
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-neo";
7
+ export class TruncateTooltipDirective {
8
+ constructor(tooltipNeo, elementRef) {
9
+ this.tooltipNeo = tooltipNeo;
10
+ this.elementRef = elementRef;
11
+ }
12
+ updateTruncateState() {
13
+ const element = this.elementRef.nativeElement;
14
+ const truncated = element.scrollWidth > element.clientWidth;
15
+ this.tooltipNeo.apTooltipNeo = truncated ? this.truncateTooltip : '';
16
+ }
17
+ ngOnInit() {
18
+ this.elementRefMouseOver$ = fromEvent(this.elementRef.nativeElement, 'mouseover')
19
+ .subscribe(() => this.updateTruncateState());
20
+ }
21
+ ngOnDestroy() {
22
+ this.elementRefMouseOver$.unsubscribe();
23
+ }
24
+ }
25
+ TruncateTooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TruncateTooltipDirective, deps: [{ token: i1.TooltipNeoDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
26
+ TruncateTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: TruncateTooltipDirective, isStandalone: true, selector: "[apTooltipNeo][truncateTooltip]", inputs: { truncateTooltip: "truncateTooltip" }, ngImport: i0 });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TruncateTooltipDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{ selector: '[apTooltipNeo][truncateTooltip]', standalone: true, }]
30
+ }], ctorParameters: function () { return [{ type: i1.TooltipNeoDirective }, { type: i0.ElementRef }]; }, propDecorators: { truncateTooltip: [{
31
+ type: Input
32
+ }] } });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUtdG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvdHJ1bmNhdGUtdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsVUFBVTtBQUNWLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUM5RSxnQkFBZ0I7QUFDaEIsT0FBTyxFQUFDLFNBQVMsRUFBZSxNQUFNLE1BQU0sQ0FBQzs7O0FBRzdDLE1BQU0sT0FBTyx3QkFBd0I7SUFNakMsWUFDWSxVQUErQixFQUMvQixVQUFtQztRQURuQyxlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtJQUUvQyxDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDO2FBQzVFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVDLENBQUM7O3FIQXpCUSx3QkFBd0I7eUdBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQURwQyxTQUFTO21CQUFDLEVBQUMsUUFBUSxFQUFFLGlDQUFpQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEdBQUU7bUlBRzlELGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBZ29yYXB1bHNlXG5pbXBvcnQge1Rvb2x0aXBOZW9EaXJlY3RpdmUsIFRvb2x0aXBOZW9QYXJhbXN9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvdG9vbHRpcC1uZW8nO1xuLy8gQW5ndWxhclxuaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBUaGlyZC1wYXJ0aWVzXG5pbXBvcnQge2Zyb21FdmVudCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ1thcFRvb2x0aXBOZW9dW3RydW5jYXRlVG9vbHRpcF0nLCBzdGFuZGFsb25lOiB0cnVlLH0pXG5leHBvcnQgY2xhc3MgVHJ1bmNhdGVUb29sdGlwRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KCkgdHJ1bmNhdGVUb29sdGlwOiBzdHJpbmcgfCBUb29sdGlwTmVvUGFyYW1zO1xuXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmTW91c2VPdmVyJDogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdG9vbHRpcE5lbzogVG9vbHRpcE5lb0RpcmVjdGl2ZSxcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICAgICkge1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVHJ1bmNhdGVTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCB0cnVuY2F0ZWQgPSBlbGVtZW50LnNjcm9sbFdpZHRoID4gZWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgdGhpcy50b29sdGlwTmVvLmFwVG9vbHRpcE5lbyA9IHRydW5jYXRlZCA/IHRoaXMudHJ1bmNhdGVUb29sdGlwIDogJyc7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZk1vdXNlT3ZlciQgPSBmcm9tRXZlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZW92ZXInKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZVRydW5jYXRlU3RhdGUoKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZk1vdXNlT3ZlciQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLWRvdHMtc3RlcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kb3RzLXN0ZXBwZXIvc3JjL2Fnb3JhcHVsc2UtdWktY29tcG9uZW50cy1kb3RzLXN0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -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
+ constructor() {
6
+ this.disabled = false;
7
+ this.forwardAllowed = true;
8
+ this.items = [];
9
+ this.size = '';
10
+ this.dotClick = new EventEmitter();
11
+ }
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
+ }
25
+ DotsStepperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DotsStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
+ DotsStepperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", 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 class=\"dots\"\n [ngClass]=\"{'small-dots': size === 'small'}\">\n <div 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)\">\n </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 });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: DotsStepperComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-dots-stepper', standalone: true, imports: [NgClass, NgForOf], template: "<div class=\"dots\"\n [ngClass]=\"{'small-dots': size === 'small'}\">\n <div 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)\">\n </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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90cy1zdGVwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kb3RzLXN0ZXBwZXIvc3JjL2RvdHMtc3RlcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZG90cy1zdGVwcGVyL3NyYy9kb3RzLXN0ZXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQVV6RyxNQUFNLE9BQU8sb0JBQW9CO0lBUmpDO1FBU2EsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixtQkFBYyxHQUFZLElBQUksQ0FBQztRQUUvQixVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQ2xCLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFakIsYUFBUSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0tBaUJ6RTtJQWJHLFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLO1FBQ3pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvRCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7aUhBdkJRLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHFQQ1hqQyxvVkFRQSw2N0xEQWMsT0FBTyxvRkFBRSxPQUFPOzJGQUdqQixvQkFBb0I7a0JBUmhDLFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxpQkFBaUIsY0FDZixJQUFJLFdBRVAsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDOzhCQUlsQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdDbGFzcywgTmdGb3JPZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwLWRvdHMtc3RlcHBlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZG90cy1zdGVwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgTmdGb3JPZl0sXG4gICAgc3R5bGVVcmxzOiBbJy4vZG90cy1zdGVwcGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERvdHNTdGVwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGZvcndhcmRBbGxvd2VkOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBpbmRleDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXSA9IFtdO1xuICAgIEBJbnB1dCgpIHNpemU6IHN0cmluZyA9ICcnO1xuXG4gICAgQE91dHB1dCgpIGRvdENsaWNrOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgY3VycmVudEl0ZW06IGFueTtcblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtID0gdGhpcy5pdGVtc1t0aGlzLmluZGV4XTtcbiAgICB9XG5cbiAgICBvbkRvdENsaWNrKGV2ZW50LCBpdGVtLCBpbmRleCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgKCF0aGlzLmZvcndhcmRBbGxvd2VkICYmIGluZGV4ID4gdGhpcy5pbmRleCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtID0gaXRlbTtcbiAgICAgICAgdGhpcy5pbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmRvdENsaWNrLmVtaXQodGhpcy5pbmRleCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRvdHNcIlxuICAgIFtuZ0NsYXNzXT1cInsnc21hbGwtZG90cyc6IHNpemUgPT09ICdzbWFsbCd9XCI+XG4gICAgPGRpdiBjbGFzcz1cImRvdFwiXG4gICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGl0ZW0gPT09IGN1cnJlbnRJdGVtLCAnZGlzYWJsZWQnOiBkaXNhYmxlZCB8fCAoIWZvcndhcmRBbGxvd2VkICAmJiBpID4gaW5kZXgpIH1cIlxuICAgICAgICAgKGNsaWNrKT1cIm9uRG90Q2xpY2soJGV2ZW50LCBpdGVtLCBpKVwiPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './dots-stepper.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9kb3RzLXN0ZXBwZXIvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZG90cy1zdGVwcGVyLmNvbXBvbmVudCc7XG4iXX0=