@agorapulse/ui-components 0.0.2 → 1.0.0-SNAPSHOT

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 (559) hide show
  1. package/add-comment/add-comment.component.d.ts +21 -0
  2. package/add-comment/index.d.ts +5 -0
  3. package/add-comment/public_api.d.ts +1 -0
  4. package/agorapulse-ui-components-1.0.0-SNAPSHOT.tgz +0 -0
  5. package/autocomplete/autocomplete.component.d.ts +40 -0
  6. package/autocomplete/index.d.ts +5 -0
  7. package/autocomplete/public_api.d.ts +1 -0
  8. package/avatar/avatar.component.d.ts +47 -0
  9. package/avatar/index.d.ts +5 -0
  10. package/avatar/public_api.d.ts +1 -0
  11. package/badge/badge.component.d.ts +7 -0
  12. package/badge/index.d.ts +5 -0
  13. package/badge/public_api.d.ts +1 -0
  14. package/button/button.component.d.ts +49 -0
  15. package/button/index.d.ts +5 -0
  16. package/button/public_api.d.ts +1 -0
  17. package/checkbox/checkbox.component.d.ts +51 -0
  18. package/checkbox/index.d.ts +5 -0
  19. package/checkbox/public_api.d.ts +1 -0
  20. package/confirm-modal/confirm-modal.component.d.ts +20 -0
  21. package/confirm-modal/index.d.ts +5 -0
  22. package/confirm-modal/public_api.d.ts +2 -0
  23. package/counter/counter.component.d.ts +17 -0
  24. package/counter/index.d.ts +5 -0
  25. package/counter/public_api.d.ts +1 -0
  26. package/datepicker/datepicker.component.d.ts +84 -0
  27. package/datepicker/index.d.ts +5 -0
  28. package/datepicker/public_api.d.ts +1 -0
  29. package/{src/lib/directives → directives}/autosize-textarea.directive.d.ts +3 -0
  30. package/directives/base-button.directive.d.ts +13 -0
  31. package/directives/default-image.directive.d.ts +8 -0
  32. package/{src/lib/directives → directives}/ellipsis.directive.d.ts +3 -1
  33. package/directives/equal-validator.directive.d.ts +13 -0
  34. package/{src/lib/directives → directives}/frozen-gif.directive.d.ts +6 -3
  35. package/directives/index.d.ts +5 -0
  36. package/directives/multi-style-text.directive.d.ts +16 -0
  37. package/directives/public_api.d.ts +8 -0
  38. package/directives/truncate-tooltip.directive.d.ts +16 -0
  39. package/dots-stepper/dots-stepper.component.d.ts +16 -0
  40. package/dots-stepper/index.d.ts +5 -0
  41. package/dots-stepper/public_api.d.ts +1 -0
  42. package/esm2022/add-comment/add-comment.component.mjs +71 -0
  43. package/esm2022/add-comment/agorapulse-ui-components-add-comment.mjs +5 -0
  44. package/esm2022/add-comment/public_api.mjs +2 -0
  45. package/esm2022/agorapulse-ui-components.mjs +5 -0
  46. package/esm2022/autocomplete/agorapulse-ui-components-autocomplete.mjs +5 -0
  47. package/esm2022/autocomplete/autocomplete.component.mjs +128 -0
  48. package/esm2022/autocomplete/public_api.mjs +2 -0
  49. package/esm2022/avatar/agorapulse-ui-components-avatar.mjs +5 -0
  50. package/esm2022/avatar/avatar.component.mjs +222 -0
  51. package/esm2022/avatar/public_api.mjs +2 -0
  52. package/esm2022/badge/agorapulse-ui-components-badge.mjs +5 -0
  53. package/esm2022/badge/badge.component.mjs +17 -0
  54. package/esm2022/badge/public_api.mjs +2 -0
  55. package/esm2022/button/agorapulse-ui-components-button.mjs +5 -0
  56. package/esm2022/button/button.component.mjs +112 -0
  57. package/esm2022/button/public_api.mjs +2 -0
  58. package/esm2022/checkbox/agorapulse-ui-components-checkbox.mjs +5 -0
  59. package/esm2022/checkbox/checkbox.component.mjs +178 -0
  60. package/esm2022/checkbox/public_api.mjs +2 -0
  61. package/esm2022/confirm-modal/agorapulse-ui-components-confirm-modal.mjs +5 -0
  62. package/esm2022/confirm-modal/confirm-modal-texts.model.mjs +2 -0
  63. package/esm2022/confirm-modal/confirm-modal.component.mjs +61 -0
  64. package/esm2022/confirm-modal/public_api.mjs +3 -0
  65. package/esm2022/counter/agorapulse-ui-components-counter.mjs +5 -0
  66. package/esm2022/counter/counter.component.mjs +59 -0
  67. package/esm2022/counter/public_api.mjs +2 -0
  68. package/esm2022/datepicker/agorapulse-ui-components-datepicker.mjs +5 -0
  69. package/esm2022/datepicker/datepicker.component.mjs +271 -0
  70. package/esm2022/datepicker/public_api.mjs +2 -0
  71. package/esm2022/directives/agorapulse-ui-components-directives.mjs +5 -0
  72. package/esm2022/directives/autosize-textarea.directive.mjs +45 -0
  73. package/esm2022/directives/base-button.directive.mjs +47 -0
  74. package/esm2022/directives/default-image.directive.mjs +37 -0
  75. package/esm2022/directives/ellipsis.directive.mjs +90 -0
  76. package/esm2022/directives/equal-validator.directive.mjs +73 -0
  77. package/esm2022/directives/frozen-gif.directive.mjs +125 -0
  78. package/esm2022/directives/multi-style-text.directive.mjs +61 -0
  79. package/esm2022/directives/public_api.mjs +9 -0
  80. package/esm2022/directives/truncate-tooltip.directive.mjs +43 -0
  81. package/esm2022/dots-stepper/agorapulse-ui-components-dots-stepper.mjs +5 -0
  82. package/esm2022/dots-stepper/dots-stepper.component.mjs +46 -0
  83. package/esm2022/dots-stepper/public_api.mjs +2 -0
  84. package/esm2022/form-field/agorapulse-ui-components-form-field.mjs +5 -0
  85. package/esm2022/form-field/form-field.component.mjs +11 -0
  86. package/esm2022/form-field/public_api.mjs +2 -0
  87. package/esm2022/form-message/agorapulse-ui-components-form-message.mjs +5 -0
  88. package/esm2022/form-message/form-message.component.mjs +34 -0
  89. package/esm2022/form-message/public_api.mjs +2 -0
  90. package/esm2022/icon-button/agorapulse-ui-components-icon-button.mjs +5 -0
  91. package/esm2022/icon-button/icon-button.component.mjs +121 -0
  92. package/esm2022/icon-button/public_api.mjs +2 -0
  93. package/esm2022/index.mjs +50 -0
  94. package/esm2022/infobox/agorapulse-ui-components-infobox.mjs +5 -0
  95. package/esm2022/infobox/infobox.component.mjs +78 -0
  96. package/esm2022/infobox/public_api.mjs +2 -0
  97. package/esm2022/input/agorapulse-ui-components-input.mjs +5 -0
  98. package/esm2022/input/input.directive.mjs +19 -0
  99. package/esm2022/input/public_api.mjs +2 -0
  100. package/esm2022/input-group/agorapulse-ui-components-input-group.mjs +5 -0
  101. package/esm2022/input-group/input-group.component.mjs +14 -0
  102. package/esm2022/input-group/public_api.mjs +2 -0
  103. package/esm2022/labels/agorapulse-ui-components-labels.mjs +5 -0
  104. package/esm2022/labels/label-list.component.mjs +109 -0
  105. package/esm2022/labels/label.component.mjs +57 -0
  106. package/esm2022/labels/public_api.mjs +3 -0
  107. package/esm2022/labels-selector/agorapulse-ui-components-labels-selector.mjs +5 -0
  108. package/esm2022/labels-selector/labels-selector.component.mjs +122 -0
  109. package/esm2022/labels-selector/public_api.mjs +2 -0
  110. package/esm2022/legacy/input/agorapulse-ui-components-legacy-input.mjs +5 -0
  111. package/esm2022/legacy/input/input.component.mjs +190 -0
  112. package/esm2022/legacy/input/public_api.mjs +2 -0
  113. package/esm2022/legacy/select/agorapulse-ui-components-legacy-select.mjs +5 -0
  114. package/esm2022/legacy/select/public_api.mjs +2 -0
  115. package/esm2022/legacy/select/select.component.mjs +453 -0
  116. package/esm2022/legacy/textarea/agorapulse-ui-components-legacy-textarea.mjs +5 -0
  117. package/esm2022/legacy/textarea/public_api.mjs +2 -0
  118. package/esm2022/legacy/textarea/textarea.component.mjs +155 -0
  119. package/esm2022/media-display-overlay/agorapulse-ui-components-media-display-overlay.mjs +5 -0
  120. package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +123 -0
  121. package/esm2022/media-display-overlay/public_api.mjs +2 -0
  122. package/esm2022/modal/agorapulse-ui-components-modal.mjs +5 -0
  123. package/esm2022/modal/modal.component.mjs +116 -0
  124. package/esm2022/modal/public_api.mjs +2 -0
  125. package/esm2022/neo-datepicker/agorapulse-ui-components-neo-datepicker.mjs +5 -0
  126. package/esm2022/neo-datepicker/day-detail.model.mjs +2 -0
  127. package/esm2022/neo-datepicker/day-disabled.pipe.mjs +21 -0
  128. package/esm2022/neo-datepicker/neo-datepicker.component.mjs +243 -0
  129. package/esm2022/neo-datepicker/public_api.mjs +4 -0
  130. package/esm2022/notification/agorapulse-ui-components-notification.mjs +5 -0
  131. package/esm2022/notification/notification.component.mjs +15 -0
  132. package/esm2022/notification/public_api.mjs +2 -0
  133. package/esm2022/paginator/agorapulse-ui-components-paginator.mjs +5 -0
  134. package/esm2022/paginator/paginator-button/paginator-button.component.mjs +51 -0
  135. package/esm2022/paginator/paginator.component.mjs +126 -0
  136. package/esm2022/paginator/public_api.mjs +3 -0
  137. package/esm2022/password-input/agorapulse-ui-components-password-input.mjs +5 -0
  138. package/esm2022/password-input/password-input.component.mjs +77 -0
  139. package/esm2022/password-input/public_api.mjs +2 -0
  140. package/esm2022/popmenu/agorapulse-ui-components-popmenu.mjs +5 -0
  141. package/esm2022/popmenu/options.mjs +17 -0
  142. package/esm2022/popmenu/popmenu-options.interface.mjs +2 -0
  143. package/esm2022/popmenu/popmenu-options.service.mjs +7 -0
  144. package/esm2022/popmenu/popmenu.component.mjs +384 -0
  145. package/esm2022/popmenu/popmenu.directive.mjs +292 -0
  146. package/esm2022/popmenu/popmenu.module.mjs +29 -0
  147. package/esm2022/popmenu/public_api.mjs +5 -0
  148. package/esm2022/radio/agorapulse-ui-components-radio.mjs +5 -0
  149. package/esm2022/radio/public_api.mjs +3 -0
  150. package/esm2022/radio/radio-control.registry.mjs +102 -0
  151. package/esm2022/radio/radio.component.mjs +224 -0
  152. package/esm2022/range-slider/agorapulse-ui-components-range-slider.mjs +5 -0
  153. package/esm2022/range-slider/public_api.mjs +2 -0
  154. package/esm2022/range-slider/range-slider.component.mjs +155 -0
  155. package/esm2022/select/agorapulse-ui-components-select.mjs +5 -0
  156. package/esm2022/select/ap-select.module.mjs +78 -0
  157. package/esm2022/select/dropdown-group-item/dropdown-group-item.component.mjs +52 -0
  158. package/esm2022/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.mjs +64 -0
  159. package/esm2022/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.mjs +68 -0
  160. package/esm2022/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.mjs +45 -0
  161. package/esm2022/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.mjs +49 -0
  162. package/esm2022/select/dropdown-search-form/dropdown-search-form.component.mjs +77 -0
  163. package/esm2022/select/public_api.mjs +13 -0
  164. package/esm2022/select/select-base.directive.mjs +69 -0
  165. package/esm2022/select/select-label-multiple/select-label-multiple.component.mjs +111 -0
  166. package/esm2022/select/select-label-single/select-label-single.component.mjs +30 -0
  167. package/esm2022/select/select-multiple.directive.mjs +35 -0
  168. package/esm2022/select/select-single.directive.mjs +34 -0
  169. package/esm2022/slide-toggle/agorapulse-ui-components-slide-toggle.mjs +5 -0
  170. package/esm2022/slide-toggle/public_api.mjs +2 -0
  171. package/esm2022/slide-toggle/slide-toggle.component.mjs +66 -0
  172. package/esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs +5 -0
  173. package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +84 -0
  174. package/esm2022/snackbars-thread/model/snackbars-thread.model.mjs +44 -0
  175. package/esm2022/snackbars-thread/public_api.mjs +4 -0
  176. package/esm2022/snackbars-thread/service/snackbars-thread.service.mjs +46 -0
  177. package/esm2022/snackbars-thread/utils/const/snackbars-thread.const.mjs +13 -0
  178. package/esm2022/social-button/agorapulse-ui-components-social-button.mjs +5 -0
  179. package/esm2022/social-button/public_api.mjs +2 -0
  180. package/esm2022/social-button/social-button.component.mjs +151 -0
  181. package/esm2022/split-button/agorapulse-ui-components-split-button.mjs +5 -0
  182. package/esm2022/split-button/public_api.mjs +2 -0
  183. package/esm2022/split-button/split-button.component.mjs +129 -0
  184. package/esm2022/src/lib/agorapulse-ui-components.module.mjs +204 -0
  185. package/esm2022/status/agorapulse-ui-components-status.mjs +5 -0
  186. package/esm2022/status/public_api.mjs +2 -0
  187. package/esm2022/status/status.component.mjs +22 -0
  188. package/esm2022/status-card/agorapulse-ui-components-status-card.mjs +5 -0
  189. package/esm2022/status-card/public_api.mjs +2 -0
  190. package/esm2022/status-card/status-card.component.mjs +25 -0
  191. package/esm2022/stepper/agorapulse-ui-components-stepper.mjs +5 -0
  192. package/esm2022/stepper/public_api.mjs +3 -0
  193. package/esm2022/stepper/step.model.mjs +2 -0
  194. package/esm2022/stepper/stepper.component.mjs +38 -0
  195. package/esm2022/tag/agorapulse-ui-components-tag.mjs +5 -0
  196. package/esm2022/tag/public_api.mjs +2 -0
  197. package/esm2022/tag/tag.component.mjs +36 -0
  198. package/esm2022/text-measurement/agorapulse-ui-components-text-measurement.mjs +5 -0
  199. package/esm2022/text-measurement/public_api.mjs +2 -0
  200. package/esm2022/text-measurement/text-measurement.service.mjs +29 -0
  201. package/esm2022/textarea/agorapulse-ui-components-textarea.mjs +5 -0
  202. package/esm2022/textarea/public_api.mjs +2 -0
  203. package/esm2022/textarea/textarea.directive.mjs +37 -0
  204. package/esm2022/toggle/agorapulse-ui-components-toggle.mjs +5 -0
  205. package/esm2022/toggle/public_api.mjs +2 -0
  206. package/esm2022/toggle/toggle.component.mjs +209 -0
  207. package/esm2022/tooltip/agorapulse-ui-components-tooltip.mjs +5 -0
  208. package/esm2022/tooltip/public_api.mjs +2 -0
  209. package/esm2022/tooltip/tooltip.directive.mjs +412 -0
  210. package/esm2022/tooltip/tooltip.service.mjs +29 -0
  211. package/fesm2022/agorapulse-ui-components-add-comment.mjs +78 -0
  212. package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -0
  213. package/fesm2022/agorapulse-ui-components-autocomplete.mjs +135 -0
  214. package/fesm2022/agorapulse-ui-components-autocomplete.mjs.map +1 -0
  215. package/fesm2022/agorapulse-ui-components-avatar.mjs +229 -0
  216. package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -0
  217. package/fesm2022/agorapulse-ui-components-badge.mjs +24 -0
  218. package/fesm2022/agorapulse-ui-components-badge.mjs.map +1 -0
  219. package/fesm2022/agorapulse-ui-components-button.mjs +119 -0
  220. package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -0
  221. package/fesm2022/agorapulse-ui-components-checkbox.mjs +185 -0
  222. package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -0
  223. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs +68 -0
  224. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs.map +1 -0
  225. package/fesm2022/agorapulse-ui-components-counter.mjs +66 -0
  226. package/fesm2022/agorapulse-ui-components-counter.mjs.map +1 -0
  227. package/fesm2022/agorapulse-ui-components-datepicker.mjs +278 -0
  228. package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -0
  229. package/fesm2022/agorapulse-ui-components-directives.mjs +513 -0
  230. package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -0
  231. package/fesm2022/agorapulse-ui-components-dots-stepper.mjs +53 -0
  232. package/fesm2022/agorapulse-ui-components-dots-stepper.mjs.map +1 -0
  233. package/fesm2022/agorapulse-ui-components-form-field.mjs +18 -0
  234. package/fesm2022/agorapulse-ui-components-form-field.mjs.map +1 -0
  235. package/fesm2022/agorapulse-ui-components-form-message.mjs +41 -0
  236. package/fesm2022/agorapulse-ui-components-form-message.mjs.map +1 -0
  237. package/fesm2022/agorapulse-ui-components-icon-button.mjs +128 -0
  238. package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -0
  239. package/fesm2022/agorapulse-ui-components-infobox.mjs +85 -0
  240. package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -0
  241. package/fesm2022/agorapulse-ui-components-input-group.mjs +21 -0
  242. package/fesm2022/agorapulse-ui-components-input-group.mjs.map +1 -0
  243. package/fesm2022/agorapulse-ui-components-input.mjs +26 -0
  244. package/fesm2022/agorapulse-ui-components-input.mjs.map +1 -0
  245. package/fesm2022/agorapulse-ui-components-labels-selector.mjs +129 -0
  246. package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -0
  247. package/fesm2022/agorapulse-ui-components-labels.mjs +168 -0
  248. package/fesm2022/agorapulse-ui-components-labels.mjs.map +1 -0
  249. package/fesm2022/agorapulse-ui-components-legacy-input.mjs +197 -0
  250. package/fesm2022/agorapulse-ui-components-legacy-input.mjs.map +1 -0
  251. package/fesm2022/agorapulse-ui-components-legacy-select.mjs +460 -0
  252. package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -0
  253. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs +162 -0
  254. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs.map +1 -0
  255. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +130 -0
  256. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -0
  257. package/fesm2022/agorapulse-ui-components-modal.mjs +123 -0
  258. package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -0
  259. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +268 -0
  260. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -0
  261. package/fesm2022/agorapulse-ui-components-notification.mjs +22 -0
  262. package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -0
  263. package/fesm2022/agorapulse-ui-components-paginator.mjs +181 -0
  264. package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -0
  265. package/fesm2022/agorapulse-ui-components-password-input.mjs +84 -0
  266. package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -0
  267. package/fesm2022/agorapulse-ui-components-popmenu.mjs +725 -0
  268. package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -0
  269. package/fesm2022/agorapulse-ui-components-radio.mjs +328 -0
  270. package/fesm2022/agorapulse-ui-components-radio.mjs.map +1 -0
  271. package/fesm2022/agorapulse-ui-components-range-slider.mjs +162 -0
  272. package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -0
  273. package/fesm2022/agorapulse-ui-components-select.mjs +651 -0
  274. package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -0
  275. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +73 -0
  276. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -0
  277. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +190 -0
  278. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -0
  279. package/fesm2022/agorapulse-ui-components-social-button.mjs +158 -0
  280. package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -0
  281. package/fesm2022/agorapulse-ui-components-split-button.mjs +136 -0
  282. package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -0
  283. package/fesm2022/agorapulse-ui-components-status-card.mjs +32 -0
  284. package/fesm2022/agorapulse-ui-components-status-card.mjs.map +1 -0
  285. package/fesm2022/agorapulse-ui-components-status.mjs +29 -0
  286. package/fesm2022/agorapulse-ui-components-status.mjs.map +1 -0
  287. package/fesm2022/agorapulse-ui-components-stepper.mjs +45 -0
  288. package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -0
  289. package/fesm2022/agorapulse-ui-components-tag.mjs +43 -0
  290. package/fesm2022/agorapulse-ui-components-tag.mjs.map +1 -0
  291. package/fesm2022/agorapulse-ui-components-text-measurement.mjs +36 -0
  292. package/fesm2022/agorapulse-ui-components-text-measurement.mjs.map +1 -0
  293. package/fesm2022/agorapulse-ui-components-textarea.mjs +44 -0
  294. package/fesm2022/agorapulse-ui-components-textarea.mjs.map +1 -0
  295. package/fesm2022/agorapulse-ui-components-toggle.mjs +216 -0
  296. package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -0
  297. package/fesm2022/agorapulse-ui-components-tooltip.mjs +445 -0
  298. package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -0
  299. package/fesm2022/agorapulse-ui-components.mjs +251 -0
  300. package/fesm2022/agorapulse-ui-components.mjs.map +1 -0
  301. package/form-field/form-field.component.d.ts +5 -0
  302. package/form-field/index.d.ts +5 -0
  303. package/form-field/public_api.d.ts +1 -0
  304. package/form-message/form-message.component.d.ts +12 -0
  305. package/form-message/index.d.ts +5 -0
  306. package/form-message/public_api.d.ts +1 -0
  307. package/icon-button/icon-button.component.d.ts +39 -0
  308. package/icon-button/index.d.ts +5 -0
  309. package/icon-button/public_api.d.ts +1 -0
  310. package/index.d.ts +43 -53
  311. package/infobox/index.d.ts +5 -0
  312. package/infobox/infobox.component.d.ts +32 -0
  313. package/infobox/public_api.d.ts +1 -0
  314. package/input/index.d.ts +5 -0
  315. package/input/input.directive.d.ts +7 -0
  316. package/input/public_api.d.ts +1 -0
  317. package/input-group/index.d.ts +5 -0
  318. package/input-group/input-group.component.d.ts +6 -0
  319. package/input-group/public_api.d.ts +1 -0
  320. package/labels/index.d.ts +5 -0
  321. package/labels/label-list.component.d.ts +34 -0
  322. package/labels/label.component.d.ts +24 -0
  323. package/labels/public_api.d.ts +2 -0
  324. package/labels-selector/index.d.ts +5 -0
  325. package/labels-selector/labels-selector.component.d.ts +42 -0
  326. package/labels-selector/public_api.d.ts +1 -0
  327. package/legacy/input/index.d.ts +5 -0
  328. package/legacy/input/input.component.d.ts +64 -0
  329. package/legacy/input/public_api.d.ts +1 -0
  330. package/legacy/select/index.d.ts +5 -0
  331. package/legacy/select/public_api.d.ts +1 -0
  332. package/legacy/select/select.component.d.ts +122 -0
  333. package/legacy/textarea/index.d.ts +5 -0
  334. package/legacy/textarea/public_api.d.ts +1 -0
  335. package/legacy/textarea/textarea.component.d.ts +53 -0
  336. package/media-display-overlay/index.d.ts +5 -0
  337. package/media-display-overlay/media-display-overlay-dialog.component.d.ts +42 -0
  338. package/media-display-overlay/public_api.d.ts +1 -0
  339. package/modal/index.d.ts +5 -0
  340. package/modal/modal.component.d.ts +54 -0
  341. package/modal/public_api.d.ts +1 -0
  342. package/neo-datepicker/day-detail.model.d.ts +9 -0
  343. package/neo-datepicker/day-disabled.pipe.d.ts +8 -0
  344. package/neo-datepicker/index.d.ts +5 -0
  345. package/neo-datepicker/neo-datepicker.component.d.ts +61 -0
  346. package/neo-datepicker/public_api.d.ts +3 -0
  347. package/notification/index.d.ts +5 -0
  348. package/notification/notification.component.d.ts +6 -0
  349. package/notification/public_api.d.ts +1 -0
  350. package/package.json +291 -20
  351. package/paginator/index.d.ts +5 -0
  352. package/paginator/paginator-button/paginator-button.component.d.ts +17 -0
  353. package/paginator/paginator.component.d.ts +38 -0
  354. package/paginator/public_api.d.ts +2 -0
  355. package/password-input/index.d.ts +5 -0
  356. package/password-input/password-input.component.d.ts +33 -0
  357. package/password-input/public_api.d.ts +1 -0
  358. package/popmenu/index.d.ts +5 -0
  359. package/{src/lib/popmenu → popmenu}/options.d.ts +1 -0
  360. package/popmenu/popmenu-options.interface.d.ts +48 -0
  361. package/{src/lib/popmenu → popmenu}/popmenu.component.d.ts +17 -9
  362. package/popmenu/popmenu.directive.d.ts +84 -0
  363. package/popmenu/popmenu.module.d.ts +11 -0
  364. package/popmenu/public_api.d.ts +4 -0
  365. package/radio/index.d.ts +5 -0
  366. package/radio/public_api.d.ts +2 -0
  367. package/radio/radio-control.registry.d.ts +22 -0
  368. package/radio/radio.component.d.ts +59 -0
  369. package/range-slider/index.d.ts +5 -0
  370. package/range-slider/public_api.d.ts +1 -0
  371. package/range-slider/range-slider.component.d.ts +35 -0
  372. package/select/ap-select.module.d.ts +17 -0
  373. package/select/dropdown-group-item/dropdown-group-item.component.d.ts +16 -0
  374. package/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.d.ts +21 -0
  375. package/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.d.ts +22 -0
  376. package/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.d.ts +15 -0
  377. package/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.d.ts +16 -0
  378. package/select/dropdown-search-form/dropdown-search-form.component.d.ts +22 -0
  379. package/select/index.d.ts +5 -0
  380. package/select/public_api.d.ts +12 -0
  381. package/select/select-base.directive.d.ts +18 -0
  382. package/select/select-label-multiple/select-label-multiple.component.d.ts +29 -0
  383. package/select/select-label-single/select-label-single.component.d.ts +10 -0
  384. package/select/select-multiple.directive.d.ts +10 -0
  385. package/select/select-single.directive.d.ts +10 -0
  386. package/slide-toggle/index.d.ts +5 -0
  387. package/slide-toggle/public_api.d.ts +1 -0
  388. package/{src/lib/slide-toggle → slide-toggle}/slide-toggle.component.d.ts +4 -0
  389. package/snackbars-thread/component/snackbars-thread.component.d.ts +23 -0
  390. package/snackbars-thread/index.d.ts +5 -0
  391. package/{src/lib/snackbars-thread → snackbars-thread}/model/snackbars-thread.model.d.ts +9 -6
  392. package/snackbars-thread/public_api.d.ts +3 -0
  393. package/snackbars-thread/service/snackbars-thread.service.d.ts +15 -0
  394. package/{src/lib/snackbars-thread → snackbars-thread}/utils/const/snackbars-thread.const.d.ts +2 -4
  395. package/social-button/index.d.ts +5 -0
  396. package/social-button/public_api.d.ts +1 -0
  397. package/social-button/social-button.component.d.ts +32 -0
  398. package/split-button/index.d.ts +5 -0
  399. package/split-button/public_api.d.ts +1 -0
  400. package/split-button/split-button.component.d.ts +43 -0
  401. package/src/lib/agorapulse-ui-components.module.d.ts +27 -0
  402. package/status/index.d.ts +5 -0
  403. package/status/public_api.d.ts +1 -0
  404. package/status/status.component.d.ts +9 -0
  405. package/status-card/index.d.ts +5 -0
  406. package/status-card/public_api.d.ts +1 -0
  407. package/status-card/status-card.component.d.ts +13 -0
  408. package/stepper/index.d.ts +5 -0
  409. package/stepper/public_api.d.ts +2 -0
  410. package/{src/lib/stepper → stepper}/step.model.d.ts +1 -0
  411. package/stepper/stepper.component.d.ts +16 -0
  412. package/tag/index.d.ts +5 -0
  413. package/tag/public_api.d.ts +1 -0
  414. package/tag/tag.component.d.ts +18 -0
  415. package/text-measurement/index.d.ts +5 -0
  416. package/text-measurement/public_api.d.ts +1 -0
  417. package/text-measurement/text-measurement.service.d.ts +8 -0
  418. package/textarea/index.d.ts +5 -0
  419. package/textarea/public_api.d.ts +1 -0
  420. package/textarea/textarea.directive.d.ts +11 -0
  421. package/toggle/index.d.ts +5 -0
  422. package/toggle/public_api.d.ts +1 -0
  423. package/toggle/toggle.component.d.ts +52 -0
  424. package/tooltip/index.d.ts +5 -0
  425. package/tooltip/public_api.d.ts +1 -0
  426. package/tooltip/tooltip.directive.d.ts +58 -0
  427. package/tooltip/tooltip.service.d.ts +11 -0
  428. package/agorapulse-ui-components-0.0.2.tgz +0 -0
  429. package/agorapulse-ui-components.d.ts +0 -9
  430. package/agorapulse-ui-components.metadata.json +0 -1
  431. package/bundles/agorapulse-ui-components.umd.js +0 -4448
  432. package/bundles/agorapulse-ui-components.umd.js.map +0 -1
  433. package/esm2015/agorapulse-ui-components.js +0 -10
  434. package/esm2015/index.js +0 -57
  435. package/esm2015/src/lib/add-comment/add-comment.component.js +0 -54
  436. package/esm2015/src/lib/agorapulse-ui-components.module.js +0 -279
  437. package/esm2015/src/lib/avatar/avatar.component.js +0 -82
  438. package/esm2015/src/lib/confirm-modal/confirm-modal-texts.model.js +0 -2
  439. package/esm2015/src/lib/confirm-modal/confirm-modal.component.js +0 -59
  440. package/esm2015/src/lib/datepicker/datepicker.component.js +0 -213
  441. package/esm2015/src/lib/directives/autosize-textarea.directive.js +0 -43
  442. package/esm2015/src/lib/directives/default-image.directive.js +0 -25
  443. package/esm2015/src/lib/directives/ellipsis.directive.js +0 -82
  444. package/esm2015/src/lib/directives/equal-validator.directive.js +0 -53
  445. package/esm2015/src/lib/directives/frozen-gif.directive.js +0 -113
  446. package/esm2015/src/lib/directives/multi-style-text.directive.js +0 -103
  447. package/esm2015/src/lib/directives/truncate-tooltip.directive.js +0 -36
  448. package/esm2015/src/lib/dots-stepper/dots-stepper.component.js +0 -41
  449. package/esm2015/src/lib/edit-tag-modal/edit-tags-modal.component.js +0 -129
  450. package/esm2015/src/lib/edit-tag-modal/model/edit-tags-modal.model.js +0 -2
  451. package/esm2015/src/lib/feature-onboarding/feature-onboarding.component.js +0 -35
  452. package/esm2015/src/lib/image-carousel/image-carousel.component.js +0 -143
  453. package/esm2015/src/lib/lead-modal/lead-info.model.js +0 -2
  454. package/esm2015/src/lib/lead-modal/lead-modal.component.js +0 -47
  455. package/esm2015/src/lib/media-display-overlay/media-display-overlay-dialog.component.js +0 -87
  456. package/esm2015/src/lib/modal/modal.component.js +0 -88
  457. package/esm2015/src/lib/notification/notification.component.js +0 -18
  458. package/esm2015/src/lib/overlay/overlay-dialog-service.component.js +0 -62
  459. package/esm2015/src/lib/overlay/overlay-dialog.component.js +0 -33
  460. package/esm2015/src/lib/overlay-in-div/overlay-in-div.component.js +0 -23
  461. package/esm2015/src/lib/paginator/paginator-button/paginator-button.component.js +0 -22
  462. package/esm2015/src/lib/paginator/paginator.component.js +0 -47
  463. package/esm2015/src/lib/password-input/password-input.component.js +0 -65
  464. package/esm2015/src/lib/password-strength-bar/password-strength-bar.component.js +0 -82
  465. package/esm2015/src/lib/password-strength-display-bar/password-strength-display-bar.component.js +0 -41
  466. package/esm2015/src/lib/phone-number-input/phone-number-input.component.js +0 -123
  467. package/esm2015/src/lib/places/place-list.component.js +0 -12
  468. package/esm2015/src/lib/places/place.component.js +0 -15
  469. package/esm2015/src/lib/popmenu/options.js +0 -16
  470. package/esm2015/src/lib/popmenu/popmenu-options.interface.js +0 -2
  471. package/esm2015/src/lib/popmenu/popmenu-options.service.js +0 -7
  472. package/esm2015/src/lib/popmenu/popmenu.component.js +0 -322
  473. package/esm2015/src/lib/popmenu/popmenu.directive.js +0 -215
  474. package/esm2015/src/lib/popmenu/popmenu.module.js +0 -38
  475. package/esm2015/src/lib/slide-toggle/slide-toggle.component.js +0 -59
  476. package/esm2015/src/lib/snackbar/snackbar.component.js +0 -22
  477. package/esm2015/src/lib/snackbars-thread/component/snackbars-thread.component.js +0 -50
  478. package/esm2015/src/lib/snackbars-thread/model/snackbars-thread.model.js +0 -41
  479. package/esm2015/src/lib/snackbars-thread/service/snackbars-thread.service.js +0 -44
  480. package/esm2015/src/lib/snackbars-thread/utils/const/snackbars-thread.const.js +0 -13
  481. package/esm2015/src/lib/splashscreen/splashscreen.component.js +0 -37
  482. package/esm2015/src/lib/star-rating/star-rating.component.js +0 -38
  483. package/esm2015/src/lib/stepper/step.model.js +0 -2
  484. package/esm2015/src/lib/stepper/stepper.component.js +0 -37
  485. package/esm2015/src/lib/tags/tag-list.component.js +0 -12
  486. package/esm2015/src/lib/tags/tag.component.js +0 -20
  487. package/esm2015/src/lib/tags-selector/tags-selector.component.js +0 -73
  488. package/esm2015/src/lib/timepicker/timepicker.component.js +0 -375
  489. package/esm2015/src/lib/tooltip-neo/tooltip-neo.component.js +0 -46
  490. package/esm2015/src/lib/tooltip-neo/tooltip-neo.const.js +0 -67
  491. package/esm2015/src/lib/tooltip-neo/tooltip-neo.directive.js +0 -107
  492. package/esm2015/src/lib/tooltip-neo/tooltip-neo.model.js +0 -2
  493. package/esm2015/src/lib/tooltip-neo/tooltip-neo.service.js +0 -15
  494. package/esm2015/src/lib/try-popup/try-popup-texts.model.js +0 -2
  495. package/esm2015/src/lib/try-popup/try-popup.component.js +0 -33
  496. package/fesm2015/agorapulse-ui-components.js +0 -3805
  497. package/fesm2015/agorapulse-ui-components.js.map +0 -1
  498. package/src/lib/add-comment/add-comment.component.d.ts +0 -17
  499. package/src/lib/avatar/avatar.component.d.ts +0 -23
  500. package/src/lib/confirm-modal/confirm-modal.component.d.ts +0 -17
  501. package/src/lib/datepicker/datepicker.component.d.ts +0 -69
  502. package/src/lib/directives/default-image.directive.d.ts +0 -5
  503. package/src/lib/directives/equal-validator.directive.d.ts +0 -10
  504. package/src/lib/directives/multi-style-text.directive.d.ts +0 -15
  505. package/src/lib/directives/truncate-tooltip.directive.d.ts +0 -13
  506. package/src/lib/dots-stepper/dots-stepper.component.d.ts +0 -13
  507. package/src/lib/edit-tag-modal/edit-tags-modal.component.d.ts +0 -29
  508. package/src/lib/edit-tag-modal/model/edit-tags-modal.model.d.ts +0 -21
  509. package/src/lib/feature-onboarding/feature-onboarding.component.d.ts +0 -15
  510. package/src/lib/image-carousel/image-carousel.component.d.ts +0 -45
  511. package/src/lib/lead-modal/lead-info.model.d.ts +0 -7
  512. package/src/lib/lead-modal/lead-modal.component.d.ts +0 -28
  513. package/src/lib/media-display-overlay/media-display-overlay-dialog.component.d.ts +0 -28
  514. package/src/lib/modal/modal.component.d.ts +0 -47
  515. package/src/lib/notification/notification.component.d.ts +0 -3
  516. package/src/lib/overlay/overlay-dialog-service.component.d.ts +0 -20
  517. package/src/lib/overlay/overlay-dialog.component.d.ts +0 -17
  518. package/src/lib/overlay-in-div/overlay-in-div.component.d.ts +0 -8
  519. package/src/lib/paginator/paginator-button/paginator-button.component.d.ts +0 -6
  520. package/src/lib/paginator/paginator.component.d.ts +0 -14
  521. package/src/lib/password-input/password-input.component.d.ts +0 -28
  522. package/src/lib/password-strength-bar/password-strength-bar.component.d.ts +0 -21
  523. package/src/lib/password-strength-display-bar/password-strength-display-bar.component.d.ts +0 -14
  524. package/src/lib/phone-number-input/phone-number-input.component.d.ts +0 -42
  525. package/src/lib/places/place-list.component.d.ts +0 -2
  526. package/src/lib/places/place.component.d.ts +0 -3
  527. package/src/lib/popmenu/popmenu-options.interface.d.ts +0 -24
  528. package/src/lib/popmenu/popmenu.directive.d.ts +0 -69
  529. package/src/lib/popmenu/popmenu.module.d.ts +0 -5
  530. package/src/lib/snackbar/snackbar.component.d.ts +0 -6
  531. package/src/lib/snackbars-thread/component/snackbars-thread.component.d.ts +0 -18
  532. package/src/lib/snackbars-thread/service/snackbars-thread.service.d.ts +0 -12
  533. package/src/lib/splashscreen/splashscreen.component.d.ts +0 -15
  534. package/src/lib/star-rating/star-rating.component.d.ts +0 -10
  535. package/src/lib/stepper/stepper.component.d.ts +0 -14
  536. package/src/lib/tags/tag-list.component.d.ts +0 -2
  537. package/src/lib/tags/tag.component.d.ts +0 -4
  538. package/src/lib/tags-selector/tags-selector.component.d.ts +0 -29
  539. package/src/lib/timepicker/timepicker.component.d.ts +0 -68
  540. package/src/lib/tooltip-neo/tooltip-neo.component.d.ts +0 -12
  541. package/src/lib/tooltip-neo/tooltip-neo.const.d.ts +0 -4
  542. package/src/lib/tooltip-neo/tooltip-neo.directive.d.ts +0 -29
  543. package/src/lib/tooltip-neo/tooltip-neo.model.d.ts +0 -12
  544. package/src/lib/tooltip-neo/tooltip-neo.service.d.ts +0 -4
  545. package/src/lib/try-popup/try-popup-texts.model.d.ts +0 -4
  546. package/src/lib/try-popup/try-popup.component.d.ts +0 -12
  547. /package/assets/{lib-ui-components/icons → icons}/facebook-icon.png +0 -0
  548. /package/assets/{lib-ui-components/icons → icons}/google-icon.png +0 -0
  549. /package/assets/{lib-ui-components/icons → icons}/instagram-icon.png +0 -0
  550. /package/assets/{lib-ui-components/icons → icons}/linkedin-icon.png +0 -0
  551. /package/assets/{lib-ui-components/icons → icons}/pinterest-icon.png +0 -0
  552. /package/assets/{lib-ui-components/icons → icons}/twitter-icon.png +0 -0
  553. /package/assets/{lib-ui-components/icons → icons}/youtube-icon.png +0 -0
  554. /package/assets/{lib-ui-components/img → img}/default-avatar-organization.png +0 -0
  555. /package/assets/{lib-ui-components/img → img}/default-avatar-user.png +0 -0
  556. /package/assets/{lib-ui-components/img → img}/default-avatar.png +0 -0
  557. /package/assets/{lib-ui-components/img → img}/spinner_animation.gif +0 -0
  558. /package/{src/lib/confirm-modal → confirm-modal}/confirm-modal-texts.model.d.ts +0 -0
  559. /package/{src/lib/popmenu → popmenu}/popmenu-options.service.d.ts +0 -0
@@ -0,0 +1,292 @@
1
+ import { Directive, EventEmitter, HostListener, Inject, Input, Optional, Output, } from '@angular/core';
2
+ import { defaultOptions } from './options';
3
+ import { PopmenuOptionsService } from './popmenu-options.service';
4
+ import { PopmenuComponent } from './popmenu.component';
5
+ import * as i0 from "@angular/core";
6
+ export class PopmenuDirective {
7
+ initOptions;
8
+ renderer;
9
+ elementRef;
10
+ componentFactoryResolver;
11
+ appRef;
12
+ injector;
13
+ apPopmenuBorder = false;
14
+ apPopmenuDisabled = false;
15
+ apPopmenuBackground = true;
16
+ arrow = false;
17
+ arrowOffset;
18
+ arrowPosition;
19
+ close = false;
20
+ hasBackdrop = true;
21
+ backdropClass = '';
22
+ panelClass;
23
+ offset;
24
+ offsets;
25
+ placement = 'bottom';
26
+ pointer = true;
27
+ popMenuValue;
28
+ position;
29
+ rounded = false;
30
+ shadow = false;
31
+ menuClosed = new EventEmitter();
32
+ menuOpened = new EventEmitter();
33
+ componentElement;
34
+ hideTimeoutId;
35
+ destroyTimeoutId;
36
+ createTimeoutId;
37
+ showTimeoutId;
38
+ componentRef;
39
+ elementPosition;
40
+ componentSubscribe;
41
+ _defaultOptions;
42
+ _options = {};
43
+ get options() {
44
+ return this._options;
45
+ }
46
+ set options(value) {
47
+ if (value && defaultOptions) {
48
+ this._options = value;
49
+ }
50
+ }
51
+ get destroyDelay() {
52
+ return Number(this.getHideDelay()) + Number(this.options['animationDuration']);
53
+ }
54
+ get isDisplayOnHover() {
55
+ if (this.options['display'] === false) {
56
+ return false;
57
+ }
58
+ if (this.options['displayTouchscreen'] === false) {
59
+ return false;
60
+ }
61
+ if (this.options['trigger'] !== 'hover') {
62
+ return false;
63
+ }
64
+ return true;
65
+ }
66
+ get isTooltipDestroyed() {
67
+ return this.componentRef && this.componentRef.hostView.destroyed;
68
+ }
69
+ get tooltipPosition() {
70
+ if (this.options['position']) {
71
+ return this.options['position'];
72
+ }
73
+ else {
74
+ return this.elementPosition;
75
+ }
76
+ }
77
+ constructor(initOptions, renderer, elementRef, componentFactoryResolver, appRef, injector) {
78
+ this.initOptions = initOptions;
79
+ this.renderer = renderer;
80
+ this.elementRef = elementRef;
81
+ this.componentFactoryResolver = componentFactoryResolver;
82
+ this.appRef = appRef;
83
+ this.injector = injector;
84
+ }
85
+ appendComponentToBody(component, data = {}) {
86
+ this.componentRef = this.componentFactoryResolver.resolveComponentFactory(component).create(this.injector);
87
+ this.componentRef.instance.data = {
88
+ value: this.popMenuValue,
89
+ element: this.elementRef.nativeElement,
90
+ elementPosition: this.tooltipPosition,
91
+ options: this.options,
92
+ };
93
+ this.appRef.attachView(this.componentRef.hostView);
94
+ this.componentElement = this.componentRef.hostView.rootNodes[0];
95
+ document.body.appendChild(this.componentElement);
96
+ this.componentSubscribe = this.componentRef.instance.menuClosed.subscribe((event) => {
97
+ this.handleClose(event);
98
+ this.menuOpen = this.componentRef.instance.menuOpen;
99
+ });
100
+ this.componentSubscribe = this.componentRef.instance.menuOpened.subscribe((event) => {
101
+ this.handleOpen(event);
102
+ this.menuOpen = this.componentRef.instance.menuOpen;
103
+ });
104
+ }
105
+ menuOpenChange = new EventEmitter();
106
+ #menuOpen = false;
107
+ get menuOpen() {
108
+ return this.#menuOpen;
109
+ }
110
+ set menuOpen(menuOpen) {
111
+ this.menuOpenChange.emit(menuOpen);
112
+ this.#menuOpen = menuOpen;
113
+ if (this.#menuOpen) {
114
+ this.elementRef.nativeElement.classList.add('popmenu-open');
115
+ this.elementRef.nativeElement.classList.remove('popmenu-close');
116
+ }
117
+ else {
118
+ this.elementRef.nativeElement.classList.remove('popmenu-open');
119
+ this.elementRef.nativeElement.classList.add('popmenu-close');
120
+ }
121
+ }
122
+ handleClose(event) {
123
+ this.menuClosed.emit();
124
+ }
125
+ handleOpen(event) {
126
+ this.menuOpened.emit();
127
+ }
128
+ applyOptionsDefault(defaultOptions, options) {
129
+ this.options = Object.assign({}, defaultOptions, this.initOptions || {}, options);
130
+ }
131
+ clearTimeouts() {
132
+ if (this.createTimeoutId) {
133
+ clearTimeout(this.createTimeoutId);
134
+ }
135
+ if (this.showTimeoutId) {
136
+ clearTimeout(this.showTimeoutId);
137
+ }
138
+ if (this.hideTimeoutId) {
139
+ clearTimeout(this.hideTimeoutId);
140
+ }
141
+ if (this.destroyTimeoutId) {
142
+ clearTimeout(this.destroyTimeoutId);
143
+ }
144
+ }
145
+ createPopMenu() {
146
+ this.clearTimeouts();
147
+ this.createTimeoutId = window.setTimeout(() => {
148
+ this.appendComponentToBody(PopmenuComponent);
149
+ }, this.getShowDelay());
150
+ this.showTimeoutId = window.setTimeout(() => {
151
+ this.showTooltipElem();
152
+ }, this.getShowDelay());
153
+ }
154
+ getElementPosition() {
155
+ this.elementPosition = this.elementRef.nativeElement.getBoundingClientRect();
156
+ }
157
+ getHideDelay() {
158
+ return this.options['hideDelay'];
159
+ }
160
+ getProperties(changes) {
161
+ let properties = {};
162
+ for (const prop in changes) {
163
+ if (prop !== 'options' && prop !== 'tooltipValue') {
164
+ properties[prop] = changes[prop].currentValue;
165
+ }
166
+ if (prop === 'options') {
167
+ properties = changes[prop].currentValue;
168
+ }
169
+ }
170
+ return properties;
171
+ }
172
+ getShowDelay() {
173
+ return this.options['showDelay'];
174
+ }
175
+ ngOnChanges(changes) {
176
+ if (changes.pointer) {
177
+ if (!this.pointer) {
178
+ this.renderer.removeStyle(this.elementRef.nativeElement, 'cursor');
179
+ }
180
+ else {
181
+ this.renderer.setStyle(this.elementRef.nativeElement, 'cursor', 'pointer');
182
+ }
183
+ }
184
+ if (changes.close && changes.close.currentValue) {
185
+ this.hideTooltipElem();
186
+ }
187
+ const changedOptions = this.getProperties(changes);
188
+ this.applyOptionsDefault(this.options && Object.keys(this.options).length > 0 ? this.options : defaultOptions, changedOptions);
189
+ }
190
+ ngOnInit() {
191
+ if (this.pointer) {
192
+ this.renderer.setStyle(this.elementRef.nativeElement, 'cursor', 'pointer');
193
+ }
194
+ this.menuOpen = false;
195
+ }
196
+ onClick() {
197
+ if (this.apPopmenuDisabled) {
198
+ return;
199
+ }
200
+ this.show();
201
+ this.close = false;
202
+ }
203
+ show() {
204
+ this.getElementPosition();
205
+ if (!this.componentRef || this.isTooltipDestroyed) {
206
+ this.createPopMenu();
207
+ }
208
+ else if (!this.isTooltipDestroyed) {
209
+ this.showTooltipElem();
210
+ }
211
+ }
212
+ showTooltipElem() {
213
+ this.componentRef.instance.data = {
214
+ value: this.popMenuValue,
215
+ element: this.elementRef.nativeElement,
216
+ elementPosition: this.tooltipPosition,
217
+ options: this.options,
218
+ };
219
+ this.clearTimeouts();
220
+ this.componentRef.instance.show = true;
221
+ }
222
+ hideTooltipElem() {
223
+ if (this.componentRef) {
224
+ this.componentRef.instance.close = true;
225
+ }
226
+ }
227
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: PopmenuDirective, deps: [{ token: PopmenuOptionsService, optional: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
228
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.10", type: PopmenuDirective, isStandalone: true, selector: "[apPopmenu]", inputs: { apPopmenuBorder: "apPopmenuBorder", apPopmenuDisabled: "apPopmenuDisabled", apPopmenuBackground: "apPopmenuBackground", arrow: "arrow", arrowOffset: "arrowOffset", arrowPosition: "arrowPosition", close: "close", hasBackdrop: "hasBackdrop", backdropClass: "backdropClass", panelClass: "panelClass", offset: "offset", offsets: "offsets", placement: "placement", pointer: "pointer", popMenuValue: ["apPopmenu", "popMenuValue"], position: "position", rounded: "rounded", shadow: "shadow", options: "options", menuOpen: "menuOpen" }, outputs: { menuClosed: "menuClosed", menuOpened: "menuOpened", menuOpenChange: "menuOpenChange" }, host: { listeners: { "click": "onClick()" } }, usesOnChanges: true, ngImport: i0 });
229
+ }
230
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: PopmenuDirective, decorators: [{
231
+ type: Directive,
232
+ args: [{
233
+ selector: '[apPopmenu]',
234
+ standalone: true,
235
+ }]
236
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
237
+ type: Optional
238
+ }, {
239
+ type: Inject,
240
+ args: [PopmenuOptionsService]
241
+ }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }]; }, propDecorators: { apPopmenuBorder: [{
242
+ type: Input
243
+ }], apPopmenuDisabled: [{
244
+ type: Input
245
+ }], apPopmenuBackground: [{
246
+ type: Input
247
+ }], arrow: [{
248
+ type: Input
249
+ }], arrowOffset: [{
250
+ type: Input
251
+ }], arrowPosition: [{
252
+ type: Input
253
+ }], close: [{
254
+ type: Input
255
+ }], hasBackdrop: [{
256
+ type: Input
257
+ }], backdropClass: [{
258
+ type: Input
259
+ }], panelClass: [{
260
+ type: Input
261
+ }], offset: [{
262
+ type: Input
263
+ }], offsets: [{
264
+ type: Input
265
+ }], placement: [{
266
+ type: Input
267
+ }], pointer: [{
268
+ type: Input
269
+ }], popMenuValue: [{
270
+ type: Input,
271
+ args: ['apPopmenu']
272
+ }], position: [{
273
+ type: Input
274
+ }], rounded: [{
275
+ type: Input
276
+ }], shadow: [{
277
+ type: Input
278
+ }], menuClosed: [{
279
+ type: Output
280
+ }], menuOpened: [{
281
+ type: Output
282
+ }], options: [{
283
+ type: Input
284
+ }], menuOpenChange: [{
285
+ type: Output
286
+ }], menuOpen: [{
287
+ type: Input
288
+ }], onClick: [{
289
+ type: HostListener,
290
+ args: ['click']
291
+ }] } });
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wbWVudS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvcG9wbWVudS9zcmMvcG9wbWVudS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILFNBQVMsRUFHVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sR0FJVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWV2RCxNQUFNLE9BQU8sZ0JBQWdCO0lBNkU4QjtJQUM1QztJQUNDO0lBQ0E7SUFDQTtJQUNBO0lBakZILGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDeEIsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQzFCLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUMzQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsV0FBVyxDQUFxQjtJQUNoQyxhQUFhLENBQXFCO0lBQ2xDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDZCxXQUFXLEdBQVksSUFBSSxDQUFDO0lBQzVCLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDbkIsVUFBVSxDQUFxQjtJQUMvQixNQUFNLENBQXFCO0lBQzNCLE9BQU8sQ0FBdUQ7SUFDOUQsU0FBUyxHQUFXLFFBQVEsQ0FBQztJQUM3QixPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ0osWUFBWSxDQUFvQjtJQUMzQyxRQUFRLENBQTRDO0lBQ3BELE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNkLFVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUN4RCxVQUFV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QkFBckIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDYyxZQUFZO3NCQUEvQixLQUFLO3VCQUFDLFdBQVc7Z0JBQ1QsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFrQk0sT0FBTztzQkFBbkIsS0FBSztnQkFzRU4sY0FBYztzQkFEYixNQUFNO2dCQUtILFFBQVE7c0JBRFgsS0FBSztnQkE0R04sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFwcGxpY2F0aW9uUmVmLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvcG1lbnVPcHRpb25zIH0gZnJvbSAnLi9wb3BtZW51LW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IGRlZmF1bHRPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IFBvcG1lbnVPcHRpb25zU2VydmljZSB9IGZyb20gJy4vcG9wbWVudS1vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9wbWVudUNvbXBvbmVudCB9IGZyb20gJy4vcG9wbWVudS5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkQ29tcG9uZW50IHtcbiAgICBkYXRhOiBhbnk7XG4gICAgc2hvdzogYm9vbGVhbjtcbiAgICBjbG9zZTogYm9vbGVhbjtcbiAgICBtZW51Q2xvc2VkOiBhbnk7XG4gICAgbWVudU9wZW5lZDogYW55O1xuICAgIG1lbnVPcGVuOiBib29sZWFuO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1thcFBvcG1lbnVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBQb3BtZW51RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICAgIEBJbnB1dCgpIGFwUG9wbWVudUJvcmRlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGFwUG9wbWVudURpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgYXBQb3BtZW51QmFja2dyb3VuZCA9IHRydWU7XG4gICAgQElucHV0KCkgYXJyb3cgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBhcnJvd09mZnNldDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGFycm93UG9zaXRpb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBjbG9zZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGhhc0JhY2tkcm9wOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBiYWNrZHJvcENsYXNzID0gJyc7XG4gICAgQElucHV0KCkgcGFuZWxDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIG9mZnNldDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIG9mZnNldHM6IHsgZGlzdGFuY2U/OiBudW1iZXI7IHNraWRkaW5nPzogbnVtYmVyIH0gfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcGxhY2VtZW50OiBzdHJpbmcgPSAnYm90dG9tJztcbiAgICBASW5wdXQoKSBwb2ludGVyID0gdHJ1ZTtcbiAgICBASW5wdXQoJ2FwUG9wbWVudScpIHBvcE1lbnVWYWx1ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQElucHV0KCkgcG9zaXRpb246IHsgdG9wOiBudW1iZXI7IGxlZnQ6IG51bWJlciB9IHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHJvdW5kZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzaGFkb3cgPSBmYWxzZTtcbiAgICBAT3V0cHV0KCkgbWVudUNsb3NlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgbWVudU9wZW5lZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIGNvbXBvbmVudEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgICBoaWRlVGltZW91dElkOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgZGVzdHJveVRpbWVvdXRJZDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGNyZWF0ZVRpbWVvdXRJZDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIHNob3dUaW1lb3V0SWQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBjb21wb25lbnRSZWYhOiBDb21wb25lbnRSZWY8YW55PjtcbiAgICBlbGVtZW50UG9zaXRpb246IGFueTtcbiAgICBjb21wb25lbnRTdWJzY3JpYmU6IGFueTtcbiAgICBfZGVmYXVsdE9wdGlvbnM6IGFueTtcblxuICAgIF9vcHRpb25zOiBQb3BtZW51T3B0aW9ucyA9IHt9O1xuXG4gICAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBvcHRpb25zKHZhbHVlOiBQb3BtZW51T3B0aW9ucykge1xuICAgICAgICBpZiAodmFsdWUgJiYgZGVmYXVsdE9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBkZXN0cm95RGVsYXkoKSB7XG4gICAgICAgIHJldHVybiBOdW1iZXIodGhpcy5nZXRIaWRlRGVsYXkoKSkgKyBOdW1iZXIodGhpcy5vcHRpb25zWydhbmltYXRpb25EdXJhdGlvbiddKTtcbiAgICB9XG5cbiAgICBnZXQgaXNEaXNwbGF5T25Ib3ZlcigpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9uc1snZGlzcGxheSddID09PSBmYWxzZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9uc1snZGlzcGxheVRvdWNoc2NyZWVuJ10gPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zWyd0cmlnZ2VyJ10gIT09ICdob3ZlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGdldCBpc1Rvb2x0aXBEZXN0cm95ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFJlZiAmJiB0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldy5kZXN0cm95ZWQ7XG4gICAgfVxuXG4gICAgZ2V0IHRvb2x0aXBQb3NpdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9uc1sncG9zaXRpb24nXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc1sncG9zaXRpb24nXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRQb3NpdGlvbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFBvcG1lbnVPcHRpb25zU2VydmljZSkgcHJpdmF0ZSBpbml0T3B0aW9uczogUG9wbWVudU9wdGlvbnMsXG4gICAgICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHt9XG5cbiAgICBhcHBlbmRDb21wb25lbnRUb0JvZHkoY29tcG9uZW50OiBhbnksIGRhdGE6IGFueSA9IHt9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG5cbiAgICAgICAgKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuZGF0YSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnBvcE1lbnVWYWx1ZSxcbiAgICAgICAgICAgIGVsZW1lbnQ6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgZWxlbWVudFBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvbixcbiAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50RWxlbWVudCA9ICh0aGlzLmNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuY29tcG9uZW50RWxlbWVudCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaWJlID0gKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkubWVudUNsb3NlZC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2xvc2UoZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5tZW51T3BlbiA9ICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLm1lbnVPcGVuO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpYmUgPSAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5tZW51T3BlbmVkLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVPcGVuKGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMubWVudU9wZW4gPSAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5tZW51T3BlbjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgbWVudU9wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICAjbWVudU9wZW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IG1lbnVPcGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy4jbWVudU9wZW47XG4gICAgfVxuXG4gICAgc2V0IG1lbnVPcGVuKG1lbnVPcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMubWVudU9wZW5DaGFuZ2UuZW1pdChtZW51T3Blbik7XG4gICAgICAgIHRoaXMuI21lbnVPcGVuID0gbWVudU9wZW47XG4gICAgICAgIGlmICh0aGlzLiNtZW51T3Blbikge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncG9wbWVudS1vcGVuJyk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdwb3BtZW51LWNsb3NlJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdwb3BtZW51LW9wZW4nKTtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3BvcG1lbnUtY2xvc2UnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUNsb3NlKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5tZW51Q2xvc2VkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBoYW5kbGVPcGVuKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5tZW51T3BlbmVkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBhcHBseU9wdGlvbnNEZWZhdWx0KGRlZmF1bHRPcHRpb25zOiBQb3BtZW51T3B0aW9ucywgb3B0aW9uczogUG9wbWVudU9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdE9wdGlvbnMsIHRoaXMuaW5pdE9wdGlvbnMgfHwge30sIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNsZWFyVGltZW91dHMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNyZWF0ZVRpbWVvdXRJZCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY3JlYXRlVGltZW91dElkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNob3dUaW1lb3V0SWQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNob3dUaW1lb3V0SWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaGlkZVRpbWVvdXRJZCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaGlkZVRpbWVvdXRJZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kZXN0cm95VGltZW91dElkKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5kZXN0cm95VGltZW91dElkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZVBvcE1lbnUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xlYXJUaW1lb3V0cygpO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlVGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hcHBlbmRDb21wb25lbnRUb0JvZHkoUG9wbWVudUNvbXBvbmVudCk7XG4gICAgICAgIH0sIHRoaXMuZ2V0U2hvd0RlbGF5KCkpO1xuXG4gICAgICAgIHRoaXMuc2hvd1RpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1Rvb2x0aXBFbGVtKCk7XG4gICAgICAgIH0sIHRoaXMuZ2V0U2hvd0RlbGF5KCkpO1xuICAgIH1cblxuICAgIGdldEVsZW1lbnRQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UG9zaXRpb24gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB9XG5cbiAgICBnZXRIaWRlRGVsYXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNbJ2hpZGVEZWxheSddO1xuICAgIH1cblxuICAgIGdldFByb3BlcnRpZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBsZXQgcHJvcGVydGllczogYW55ID0ge307XG5cbiAgICAgICAgZm9yIChjb25zdCBwcm9wIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIGlmIChwcm9wICE9PSAnb3B0aW9ucycgJiYgcHJvcCAhPT0gJ3Rvb2x0aXBWYWx1ZScpIHtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW3Byb3BdID0gY2hhbmdlc1twcm9wXS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ29wdGlvbnMnKSB7XG4gICAgICAgICAgICAgICAgcHJvcGVydGllcyA9IGNoYW5nZXNbcHJvcF0uY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcm9wZXJ0aWVzO1xuICAgIH1cblxuICAgIGdldFNob3dEZWxheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc1snc2hvd0RlbGF5J107XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5wb2ludGVyKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMucG9pbnRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjdXJzb3InKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2N1cnNvcicsICdwb2ludGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXMuY2xvc2UgJiYgY2hhbmdlcy5jbG9zZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZVRvb2x0aXBFbGVtKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2hhbmdlZE9wdGlvbnMgPSB0aGlzLmdldFByb3BlcnRpZXMoY2hhbmdlcyk7XG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zRGVmYXVsdCh0aGlzLm9wdGlvbnMgJiYgT2JqZWN0LmtleXModGhpcy5vcHRpb25zKS5sZW5ndGggPiAwID8gdGhpcy5vcHRpb25zIDogZGVmYXVsdE9wdGlvbnMsIGNoYW5nZWRPcHRpb25zKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucG9pbnRlcikge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2N1cnNvcicsICdwb2ludGVyJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tZW51T3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkNsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy5hcFBvcG1lbnVEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICB0aGlzLmNsb3NlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIHNob3coKSB7XG4gICAgICAgIHRoaXMuZ2V0RWxlbWVudFBvc2l0aW9uKCk7XG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnRSZWYgfHwgdGhpcy5pc1Rvb2x0aXBEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlUG9wTWVudSgpO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgICAgICAgdGhpcy5zaG93VG9vbHRpcEVsZW0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dUb29sdGlwRWxlbSgpOiB2b2lkIHtcbiAgICAgICAgKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuZGF0YSA9IHtcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnBvcE1lbnVWYWx1ZSxcbiAgICAgICAgICAgIGVsZW1lbnQ6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgZWxlbWVudFBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvbixcbiAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jbGVhclRpbWVvdXRzKCk7XG4gICAgICAgICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLnNob3cgPSB0cnVlO1xuICAgIH1cblxuICAgIGhpZGVUb29sdGlwRWxlbSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5jbG9zZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { PopmenuDirective } from './popmenu.directive';
3
+ import { PopmenuOptionsService } from './popmenu-options.service';
4
+ import { PopmenuComponent } from './popmenu.component';
5
+ import * as i0 from "@angular/core";
6
+ export class PopmenuModule {
7
+ static forRoot(initOptions) {
8
+ return {
9
+ ngModule: PopmenuModule,
10
+ providers: [
11
+ {
12
+ provide: PopmenuOptionsService,
13
+ useValue: initOptions,
14
+ },
15
+ ],
16
+ };
17
+ }
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: PopmenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.10", ngImport: i0, type: PopmenuModule, imports: [PopmenuDirective, PopmenuComponent], exports: [PopmenuDirective] });
20
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: PopmenuModule, imports: [PopmenuComponent] });
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: PopmenuModule, decorators: [{
23
+ type: NgModule,
24
+ args: [{
25
+ imports: [PopmenuDirective, PopmenuComponent],
26
+ exports: [PopmenuDirective],
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wbWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvcG9wbWVudS9zcmMvcG9wbWVudS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBTXZELE1BQU0sT0FBTyxhQUFhO0lBQ3RCLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBMkI7UUFDdEMsT0FBTztZQUNILFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUscUJBQXFCO29CQUM5QixRQUFRLEVBQUUsV0FBVztpQkFDeEI7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDO3dHQVhRLGFBQWE7eUdBQWIsYUFBYSxZQUhaLGdCQUFnQixFQUFFLGdCQUFnQixhQUNsQyxnQkFBZ0I7eUdBRWpCLGFBQWEsWUFITSxnQkFBZ0I7OzRGQUduQyxhQUFhO2tCQUp6QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO29CQUM3QyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9wbWVudURpcmVjdGl2ZSB9IGZyb20gJy4vcG9wbWVudS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9wbWVudU9wdGlvbnMgfSBmcm9tICcuL3BvcG1lbnUtb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9wbWVudU9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wb3BtZW51LW9wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBQb3BtZW51Q29tcG9uZW50IH0gZnJvbSAnLi9wb3BtZW51LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1BvcG1lbnVEaXJlY3RpdmUsIFBvcG1lbnVDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtQb3BtZW51RGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgUG9wbWVudU1vZHVsZSB7XG4gICAgc3RhdGljIGZvclJvb3QoaW5pdE9wdGlvbnM6IFBvcG1lbnVPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxQb3BtZW51TW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogUG9wbWVudU1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogUG9wbWVudU9wdGlvbnNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogaW5pdE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ export * from './popmenu.component';
2
+ export * from './popmenu.directive';
3
+ export * from './popmenu.module';
4
+ export * from './popmenu-options.interface';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9wb3BtZW51L3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BvcG1lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcG9wbWVudS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3BtZW51Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3BvcG1lbnUtb3B0aW9ucy5pbnRlcmZhY2UnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLXJhZGlvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3JhZGlvL3NyYy9hZ29yYXB1bHNlLXVpLWNvbXBvbmVudHMtcmFkaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './radio.component';
2
+ export * from './radio-control.registry';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9yYWRpby9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JhZGlvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3JhZGlvLWNvbnRyb2wucmVnaXN0cnknO1xuIl19
@@ -0,0 +1,102 @@
1
+ import { forwardRef, Injectable } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { RadioComponent } from './radio.component';
4
+ import * as i0 from "@angular/core";
5
+ export const RADIO_VALUE_ACCESSOR = {
6
+ provide: NG_VALUE_ACCESSOR,
7
+ useExisting: forwardRef(() => RadioComponent),
8
+ multi: true,
9
+ };
10
+ export class RadioControlRegistry {
11
+ accessors = [];
12
+ add(control, accessor) {
13
+ this.accessors.push([control, accessor]);
14
+ }
15
+ remove(accessor) {
16
+ this.accessors = this.accessors.filter(([, radioComponent]) => {
17
+ return radioComponent !== accessor;
18
+ });
19
+ }
20
+ select(accessor) {
21
+ this.accessors.forEach(([ngControl, radioComponent]) => {
22
+ if (this.isSameGroup(ngControl, radioComponent, accessor) && radioComponent !== accessor) {
23
+ radioComponent.writeValue(accessor.value);
24
+ }
25
+ });
26
+ }
27
+ getIndex(accessor) {
28
+ return this.accessors.findIndex(([, radioComponent]) => {
29
+ return radioComponent === accessor;
30
+ });
31
+ }
32
+ getNextRadio(accessor) {
33
+ const index = this.getIndex(accessor);
34
+ const nextIndex = index + 1;
35
+ if (nextIndex >= this.accessors.length) {
36
+ return this.accessors[0][1];
37
+ }
38
+ const nextRadio = this.accessors[nextIndex];
39
+ return nextRadio ? nextRadio[1] : null;
40
+ }
41
+ getPreviousRadio(accessor) {
42
+ const index = this.getIndex(accessor);
43
+ if (index === 0) {
44
+ return this.accessors[this.accessors.length - 1][1];
45
+ }
46
+ const previousIndex = index - 1;
47
+ const previousRadio = this.accessors[previousIndex];
48
+ return previousRadio ? previousRadio[1] : null;
49
+ }
50
+ blurAllGroup(accessor) {
51
+ this.accessors.forEach(([, radioComponent]) => {
52
+ if (this.isSameGroup(accessor.control, radioComponent, accessor)) {
53
+ radioComponent.inputElement.nativeElement.blur();
54
+ }
55
+ });
56
+ }
57
+ setNegativeTabIndexToAllExcept(accessor) {
58
+ this.accessors.forEach(([, radioComponent]) => {
59
+ if (this.isSameGroup(accessor.control, radioComponent, accessor)) {
60
+ if (accessor.radioId !== radioComponent.radioId) {
61
+ radioComponent.inputElement.nativeElement.tabIndex = -1;
62
+ }
63
+ else {
64
+ radioComponent.inputElement.nativeElement.tabIndex = 0;
65
+ }
66
+ }
67
+ });
68
+ }
69
+ focusPrevious(accessor) {
70
+ const previousRadio = this.getPreviousRadio(accessor);
71
+ if (previousRadio) {
72
+ previousRadio.inputElement.nativeElement.focus();
73
+ }
74
+ }
75
+ focusNext(accessor) {
76
+ const nextRadio = this.getNextRadio(accessor);
77
+ if (nextRadio) {
78
+ nextRadio.inputElement.nativeElement.focus();
79
+ }
80
+ }
81
+ getFirstCheckedRadio() {
82
+ const checkedRadio = this.accessors.find(([, radioComponent]) => {
83
+ return radioComponent.checked;
84
+ });
85
+ return checkedRadio ? checkedRadio[1] : null;
86
+ }
87
+ isSameGroup(ngControl, radioComponent, accessor) {
88
+ if (!ngControl.control) {
89
+ return false;
90
+ }
91
+ return radioComponent.name === accessor.name;
92
+ }
93
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RadioControlRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
94
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RadioControlRegistry, providedIn: 'root' });
95
+ }
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: RadioControlRegistry, decorators: [{
97
+ type: Injectable,
98
+ args: [{
99
+ providedIn: 'root',
100
+ }]
101
+ }] });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tY29udHJvbC5yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9yYWRpby9zcmMvcmFkaW8tY29udHJvbC5yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRW5ELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFhO0lBQzFDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7SUFDN0MsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBS0YsTUFBTSxPQUFPLG9CQUFvQjtJQUNyQixTQUFTLEdBQWtDLEVBQUUsQ0FBQztJQUV0RCxHQUFHLENBQUMsT0FBa0IsRUFBRSxRQUF3QjtRQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBd0I7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQzFELE9BQU8sY0FBYyxLQUFLLFFBQVEsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBd0I7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQ25ELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxJQUFJLGNBQWMsS0FBSyxRQUFRLEVBQUU7Z0JBQ3RGLGNBQWMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzdDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRTtZQUNuRCxPQUFPLGNBQWMsS0FBSyxRQUFRLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQXdCO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNwQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0I7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBd0I7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkQ7UUFDRCxNQUFNLGFBQWEsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEQsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25ELENBQUM7SUFFRCxZQUFZLENBQUMsUUFBd0I7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRTtZQUMxQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQzlELGNBQWMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3BEO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsOEJBQThCLENBQUMsUUFBd0I7UUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRTtZQUMxQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQzlELElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxjQUFjLENBQUMsT0FBTyxFQUFFO29CQUM3QyxjQUFjLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQzNEO3FCQUFNO29CQUNILGNBQWMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7aUJBQzFEO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxhQUFhLENBQUMsUUFBd0I7UUFDbEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELElBQUksYUFBYSxFQUFFO1lBQ2YsYUFBYSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDcEQ7SUFDTCxDQUFDO0lBRUQsU0FBUyxDQUFDLFFBQXdCO1FBQzlCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsSUFBSSxTQUFTLEVBQUU7WUFDWCxTQUFTLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNoRDtJQUNMLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRTtZQUM1RCxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxTQUFvQixFQUFFLGNBQThCLEVBQUUsUUFBd0I7UUFDOUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDcEIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQztJQUNqRCxDQUFDO3dHQTdGUSxvQkFBb0I7NEdBQXBCLG9CQUFvQixjQUZqQixNQUFNOzs0RkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9yd2FyZFJlZiwgSW5qZWN0YWJsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8uY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IFJBRElPX1ZBTFVFX0FDQ0VTU09SOiBQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb0NvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWUsXG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0NvbnRyb2xSZWdpc3RyeSB7XG4gICAgcHJpdmF0ZSBhY2Nlc3NvcnM6IFtOZ0NvbnRyb2wsIFJhZGlvQ29tcG9uZW50XVtdID0gW107XG5cbiAgICBhZGQoY29udHJvbDogTmdDb250cm9sLCBhY2Nlc3NvcjogUmFkaW9Db21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NvcnMucHVzaChbY29udHJvbCwgYWNjZXNzb3JdKTtcbiAgICB9XG5cbiAgICByZW1vdmUoYWNjZXNzb3I6IFJhZGlvQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuYWNjZXNzb3JzID0gdGhpcy5hY2Nlc3NvcnMuZmlsdGVyKChbLCByYWRpb0NvbXBvbmVudF0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiByYWRpb0NvbXBvbmVudCAhPT0gYWNjZXNzb3I7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNlbGVjdChhY2Nlc3NvcjogUmFkaW9Db21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5hY2Nlc3NvcnMuZm9yRWFjaCgoW25nQ29udHJvbCwgcmFkaW9Db21wb25lbnRdKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1NhbWVHcm91cChuZ0NvbnRyb2wsIHJhZGlvQ29tcG9uZW50LCBhY2Nlc3NvcikgJiYgcmFkaW9Db21wb25lbnQgIT09IGFjY2Vzc29yKSB7XG4gICAgICAgICAgICAgICAgcmFkaW9Db21wb25lbnQud3JpdGVWYWx1ZShhY2Nlc3Nvci52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEluZGV4KGFjY2Vzc29yOiBSYWRpb0NvbXBvbmVudCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjY2Vzc29ycy5maW5kSW5kZXgoKFssIHJhZGlvQ29tcG9uZW50XSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJhZGlvQ29tcG9uZW50ID09PSBhY2Nlc3NvcjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0TmV4dFJhZGlvKGFjY2Vzc29yOiBSYWRpb0NvbXBvbmVudCk6IFJhZGlvQ29tcG9uZW50IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJbmRleChhY2Nlc3Nvcik7XG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4ICsgMTtcbiAgICAgICAgaWYgKG5leHRJbmRleCA+PSB0aGlzLmFjY2Vzc29ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjY2Vzc29yc1swXVsxXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXh0UmFkaW8gPSB0aGlzLmFjY2Vzc29yc1tuZXh0SW5kZXhdO1xuICAgICAgICByZXR1cm4gbmV4dFJhZGlvID8gbmV4dFJhZGlvWzFdIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXRQcmV2aW91c1JhZGlvKGFjY2Vzc29yOiBSYWRpb0NvbXBvbmVudCk6IFJhZGlvQ29tcG9uZW50IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJbmRleChhY2Nlc3Nvcik7XG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWNjZXNzb3JzW3RoaXMuYWNjZXNzb3JzLmxlbmd0aCAtIDFdWzFdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSBpbmRleCAtIDE7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUmFkaW8gPSB0aGlzLmFjY2Vzc29yc1twcmV2aW91c0luZGV4XTtcbiAgICAgICAgcmV0dXJuIHByZXZpb3VzUmFkaW8gPyBwcmV2aW91c1JhZGlvWzFdIDogbnVsbDtcbiAgICB9XG5cbiAgICBibHVyQWxsR3JvdXAoYWNjZXNzb3I6IFJhZGlvQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWNjZXNzb3JzLmZvckVhY2goKFssIHJhZGlvQ29tcG9uZW50XSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTYW1lR3JvdXAoYWNjZXNzb3IuY29udHJvbCwgcmFkaW9Db21wb25lbnQsIGFjY2Vzc29yKSkge1xuICAgICAgICAgICAgICAgIHJhZGlvQ29tcG9uZW50LmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0TmVnYXRpdmVUYWJJbmRleFRvQWxsRXhjZXB0KGFjY2Vzc29yOiBSYWRpb0NvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjY2Vzc29ycy5mb3JFYWNoKChbLCByYWRpb0NvbXBvbmVudF0pID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzU2FtZUdyb3VwKGFjY2Vzc29yLmNvbnRyb2wsIHJhZGlvQ29tcG9uZW50LCBhY2Nlc3NvcikpIHtcbiAgICAgICAgICAgICAgICBpZiAoYWNjZXNzb3IucmFkaW9JZCAhPT0gcmFkaW9Db21wb25lbnQucmFkaW9JZCkge1xuICAgICAgICAgICAgICAgICAgICByYWRpb0NvbXBvbmVudC5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC50YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJhZGlvQ29tcG9uZW50LmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnRhYkluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvY3VzUHJldmlvdXMoYWNjZXNzb3I6IFJhZGlvQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUmFkaW8gPSB0aGlzLmdldFByZXZpb3VzUmFkaW8oYWNjZXNzb3IpO1xuICAgICAgICBpZiAocHJldmlvdXNSYWRpbykge1xuICAgICAgICAgICAgcHJldmlvdXNSYWRpby5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXNOZXh0KGFjY2Vzc29yOiBSYWRpb0NvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXh0UmFkaW8gPSB0aGlzLmdldE5leHRSYWRpbyhhY2Nlc3Nvcik7XG4gICAgICAgIGlmIChuZXh0UmFkaW8pIHtcbiAgICAgICAgICAgIG5leHRSYWRpby5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Rmlyc3RDaGVja2VkUmFkaW8oKTogUmFkaW9Db21wb25lbnQgfCBudWxsIHtcbiAgICAgICAgY29uc3QgY2hlY2tlZFJhZGlvID0gdGhpcy5hY2Nlc3NvcnMuZmluZCgoWywgcmFkaW9Db21wb25lbnRdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmFkaW9Db21wb25lbnQuY2hlY2tlZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjaGVja2VkUmFkaW8gPyBjaGVja2VkUmFkaW9bMV0gOiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNTYW1lR3JvdXAobmdDb250cm9sOiBOZ0NvbnRyb2wsIHJhZGlvQ29tcG9uZW50OiBSYWRpb0NvbXBvbmVudCwgYWNjZXNzb3I6IFJhZGlvQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghbmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmFkaW9Db21wb25lbnQubmFtZSA9PT0gYWNjZXNzb3IubmFtZTtcbiAgICB9XG59XG4iXX0=