@sebgroup/green-angular 3.8.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/{esm2020 → esm2022}/lib/accordion/accordion-list-item.component.mjs +4 -4
  2. package/{esm2020 → esm2022}/lib/accordion/accordion.component.mjs +4 -4
  3. package/{esm2020 → esm2022}/lib/accordion/accordion.module.mjs +5 -5
  4. package/esm2022/lib/badge/badge.component.mjs +80 -0
  5. package/{esm2020 → esm2022}/lib/badge/badge.module.mjs +5 -5
  6. package/{esm2020 → esm2022}/lib/button/button.component.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/button/button.module.mjs +5 -5
  8. package/{esm2020 → esm2022}/lib/cell-table/cell-table-item.component.mjs +6 -6
  9. package/{esm2020 → esm2022}/lib/cell-table/cell-table.component.mjs +4 -4
  10. package/{esm2020 → esm2022}/lib/cell-table/cell-table.module.mjs +7 -7
  11. package/{esm2020 → esm2022}/lib/cell-table/cell-underline.directive.mjs +4 -4
  12. package/{esm2020 → esm2022}/lib/context-menu/context-menu.component.mjs +4 -4
  13. package/{esm2020 → esm2022}/lib/context-menu/context-menu.module.mjs +5 -5
  14. package/esm2022/lib/datepicker/datepicker.component.mjs +138 -0
  15. package/{esm2020 → esm2022}/lib/datepicker/datepicker.module.mjs +5 -5
  16. package/{esm2020 → esm2022}/lib/dropdown/dropdown-button.directive.mjs +4 -4
  17. package/{esm2020 → esm2022}/lib/dropdown/dropdown-option.directive.mjs +4 -4
  18. package/esm2022/lib/dropdown/dropdown.component.mjs +212 -0
  19. package/{esm2020 → esm2022}/lib/dropdown/dropdown.module.mjs +9 -9
  20. package/{esm2020 → esm2022}/lib/green-angular.module.mjs +31 -31
  21. package/{esm2020 → esm2022}/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +4 -4
  22. package/{esm2020 → esm2022}/lib/in-page-wizard/in-page-wizard.module.mjs +5 -5
  23. package/{esm2020 → esm2022}/lib/modal/modal-footer.directive.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/modal/modal-header.directive.mjs +4 -4
  25. package/esm2022/lib/modal/modal.component.mjs +258 -0
  26. package/{esm2020 → esm2022}/lib/modal/modal.module.mjs +12 -12
  27. package/{esm2020 → esm2022}/lib/pagination/pagination.component.mjs +4 -4
  28. package/{esm2020 → esm2022}/lib/pagination/pagination.module.mjs +5 -5
  29. package/{esm2020 → esm2022}/lib/progress-circle/progress-circle.component.mjs +4 -4
  30. package/{esm2020 → esm2022}/lib/progress-circle/progress-circle.module.mjs +5 -5
  31. package/{esm2020 → esm2022}/lib/segmented-control/segmented-control.component.mjs +6 -6
  32. package/{esm2020 → esm2022}/lib/segmented-control/segmented-control.module.mjs +5 -5
  33. package/{esm2020 → esm2022}/lib/shared/core-element/core-element.directive.mjs +4 -4
  34. package/{esm2020 → esm2022}/lib/shared/core-element/core-element.module.mjs +5 -5
  35. package/{esm2020/src → esm2022}/lib/shared/on-scroll.directive.mjs +10 -10
  36. package/{esm2020 → esm2022}/lib/shared/shared.module.mjs +5 -5
  37. package/esm2022/lib/slider/slider.component.mjs +113 -0
  38. package/{esm2020 → esm2022}/lib/slider/slider.module.mjs +5 -5
  39. package/{esm2020 → esm2022}/lib/sortable-list/sortable-list.component.mjs +4 -4
  40. package/{esm2020 → esm2022}/lib/sortable-list/sortable-list.module.mjs +5 -5
  41. package/{esm2020 → esm2022}/src/lib/accordion/accordion-list-item.component.mjs +4 -4
  42. package/{esm2020 → esm2022}/src/lib/accordion/accordion.component.mjs +4 -4
  43. package/{esm2020 → esm2022}/src/lib/accordion/accordion.module.mjs +5 -5
  44. package/esm2022/src/lib/badge/badge.component.mjs +80 -0
  45. package/{esm2020 → esm2022}/src/lib/badge/badge.module.mjs +5 -5
  46. package/{esm2020 → esm2022}/src/lib/button/button.component.mjs +4 -4
  47. package/{esm2020 → esm2022}/src/lib/button/button.module.mjs +5 -5
  48. package/{esm2020 → esm2022}/src/lib/cell-table/cell-table-item.component.mjs +6 -6
  49. package/{esm2020 → esm2022}/src/lib/cell-table/cell-table.component.mjs +4 -4
  50. package/{esm2020 → esm2022}/src/lib/cell-table/cell-table.module.mjs +7 -7
  51. package/{esm2020 → esm2022}/src/lib/cell-table/cell-underline.directive.mjs +4 -4
  52. package/{esm2020 → esm2022}/src/lib/context-menu/context-menu.component.mjs +4 -4
  53. package/{esm2020 → esm2022}/src/lib/context-menu/context-menu.module.mjs +5 -5
  54. package/esm2022/src/lib/datepicker/datepicker.component.mjs +138 -0
  55. package/{esm2020 → esm2022}/src/lib/datepicker/datepicker.module.mjs +5 -5
  56. package/{esm2020 → esm2022}/src/lib/dropdown/dropdown-button.directive.mjs +4 -4
  57. package/{esm2020 → esm2022}/src/lib/dropdown/dropdown-option.directive.mjs +4 -4
  58. package/esm2022/src/lib/dropdown/dropdown.component.mjs +212 -0
  59. package/{esm2020 → esm2022}/src/lib/dropdown/dropdown.module.mjs +9 -9
  60. package/{esm2020 → esm2022}/src/lib/in-page-wizard/in-page-wizard-step-card.component.mjs +4 -4
  61. package/{esm2020 → esm2022}/src/lib/in-page-wizard/in-page-wizard.module.mjs +5 -5
  62. package/{esm2020 → esm2022}/src/lib/modal/modal-footer.directive.mjs +4 -4
  63. package/{esm2020 → esm2022}/src/lib/modal/modal-header.directive.mjs +4 -4
  64. package/esm2022/src/lib/modal/modal.component.mjs +258 -0
  65. package/{esm2020 → esm2022}/src/lib/modal/modal.module.mjs +12 -12
  66. package/{esm2020 → esm2022}/src/lib/pagination/pagination.component.mjs +4 -4
  67. package/{esm2020 → esm2022}/src/lib/pagination/pagination.module.mjs +5 -5
  68. package/{esm2020 → esm2022}/src/lib/progress-circle/progress-circle.component.mjs +4 -4
  69. package/{esm2020 → esm2022}/src/lib/progress-circle/progress-circle.module.mjs +5 -5
  70. package/{esm2020 → esm2022}/src/lib/segmented-control/segmented-control.component.mjs +6 -6
  71. package/{esm2020 → esm2022}/src/lib/segmented-control/segmented-control.module.mjs +5 -5
  72. package/{esm2020 → esm2022}/src/lib/shared/core-element/core-element.directive.mjs +4 -4
  73. package/{esm2020 → esm2022}/src/lib/shared/core-element/core-element.module.mjs +5 -5
  74. package/esm2022/src/lib/shared/on-scroll.directive.mjs +47 -0
  75. package/{esm2020 → esm2022}/src/lib/shared/shared.module.mjs +5 -5
  76. package/esm2022/src/lib/slider/slider.component.mjs +113 -0
  77. package/{esm2020 → esm2022}/src/lib/slider/slider.module.mjs +5 -5
  78. package/{esm2020 → esm2022}/src/lib/sortable-list/sortable-list.component.mjs +4 -4
  79. package/{esm2020 → esm2022}/src/lib/sortable-list/sortable-list.module.mjs +5 -5
  80. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-accordion.mjs +10 -10
  81. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -1
  82. package/{fesm2015 → fesm2022}/sebgroup-green-angular-src-lib-badge.mjs +16 -16
  83. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -0
  84. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-button.mjs +7 -7
  85. package/{fesm2015 → fesm2022}/sebgroup-green-angular-src-lib-button.mjs.map +1 -1
  86. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-cell-table.mjs +17 -17
  87. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -1
  88. package/{fesm2015 → fesm2022}/sebgroup-green-angular-src-lib-context-menu.mjs +7 -7
  89. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -1
  90. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-datepicker.mjs +20 -20
  91. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -1
  92. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-dropdown.mjs +69 -69
  93. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -1
  94. package/{fesm2015 → fesm2022}/sebgroup-green-angular-src-lib-in-page-wizard.mjs +7 -7
  95. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -1
  96. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-modal.mjs +43 -43
  97. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-modal.mjs.map +1 -1
  98. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-pagination.mjs +7 -7
  99. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -1
  100. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-progress-circle.mjs +7 -7
  101. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -1
  102. package/{fesm2015 → fesm2022}/sebgroup-green-angular-src-lib-segmented-control.mjs +9 -9
  103. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -0
  104. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-shared.mjs +20 -20
  105. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  106. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-slider.mjs +13 -13
  107. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-slider.mjs.map +1 -1
  108. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-sortable-list.mjs +7 -7
  109. package/{fesm2020 → fesm2022}/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -1
  110. package/{fesm2020 → fesm2022}/sebgroup-green-angular.mjs +289 -289
  111. package/{fesm2020 → fesm2022}/sebgroup-green-angular.mjs.map +1 -1
  112. package/lib/accordion/accordion-list-item.component.d.ts +1 -1
  113. package/lib/accordion/accordion.component.d.ts +1 -1
  114. package/lib/badge/badge.component.d.ts +1 -1
  115. package/lib/button/button.component.d.ts +1 -1
  116. package/lib/cell-table/cell-table-item.component.d.ts +1 -1
  117. package/lib/cell-table/cell-table.component.d.ts +1 -1
  118. package/lib/cell-table/cell-table.types.d.ts +1 -1
  119. package/lib/cell-table/cell-underline.directive.d.ts +1 -1
  120. package/lib/context-menu/context-menu.component.d.ts +1 -1
  121. package/lib/datepicker/datepicker.component.d.ts +1 -1
  122. package/lib/dropdown/dropdown.component.d.ts +4 -4
  123. package/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +1 -1
  124. package/lib/modal/modal.component.d.ts +3 -3
  125. package/lib/pagination/pagination.component.d.ts +1 -1
  126. package/lib/progress-circle/progress-circle.component.d.ts +1 -1
  127. package/lib/segmented-control/segmented-control.component.d.ts +1 -1
  128. package/lib/slider/slider.component.d.ts +1 -1
  129. package/lib/sortable-list/sortable-list.component.d.ts +1 -1
  130. package/package.json +58 -94
  131. package/src/lib/accordion/accordion-list-item.component.d.ts +1 -1
  132. package/src/lib/accordion/accordion.component.d.ts +1 -1
  133. package/src/lib/badge/badge.component.d.ts +1 -1
  134. package/src/lib/button/button.component.d.ts +1 -1
  135. package/src/lib/cell-table/cell-table-item.component.d.ts +1 -1
  136. package/src/lib/cell-table/cell-table.component.d.ts +1 -1
  137. package/src/lib/cell-table/cell-table.types.d.ts +1 -1
  138. package/src/lib/cell-table/cell-underline.directive.d.ts +1 -1
  139. package/src/lib/context-menu/context-menu.component.d.ts +1 -1
  140. package/src/lib/datepicker/datepicker.component.d.ts +1 -1
  141. package/src/lib/dropdown/dropdown.component.d.ts +4 -4
  142. package/src/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +1 -1
  143. package/src/lib/modal/modal.component.d.ts +3 -3
  144. package/src/lib/pagination/pagination.component.d.ts +1 -1
  145. package/src/lib/progress-circle/progress-circle.component.d.ts +1 -1
  146. package/src/lib/segmented-control/segmented-control.component.d.ts +1 -1
  147. package/src/lib/slider/slider.component.d.ts +1 -1
  148. package/src/lib/sortable-list/sortable-list.component.d.ts +1 -1
  149. package/esm2020/lib/badge/badge.component.mjs +0 -80
  150. package/esm2020/lib/datepicker/datepicker.component.mjs +0 -138
  151. package/esm2020/lib/dropdown/dropdown.component.mjs +0 -212
  152. package/esm2020/lib/modal/modal.component.mjs +0 -258
  153. package/esm2020/lib/shared/on-scroll.directive.mjs +0 -47
  154. package/esm2020/lib/slider/slider.component.mjs +0 -113
  155. package/esm2020/src/lib/badge/badge.component.mjs +0 -80
  156. package/esm2020/src/lib/datepicker/datepicker.component.mjs +0 -138
  157. package/esm2020/src/lib/dropdown/dropdown.component.mjs +0 -212
  158. package/esm2020/src/lib/modal/modal.component.mjs +0 -258
  159. package/esm2020/src/lib/slider/slider.component.mjs +0 -113
  160. package/fesm2015/sebgroup-green-angular-src-lib-accordion.mjs +0 -140
  161. package/fesm2015/sebgroup-green-angular-src-lib-accordion.mjs.map +0 -1
  162. package/fesm2015/sebgroup-green-angular-src-lib-badge.mjs.map +0 -1
  163. package/fesm2015/sebgroup-green-angular-src-lib-button.mjs +0 -50
  164. package/fesm2015/sebgroup-green-angular-src-lib-cell-table.mjs +0 -272
  165. package/fesm2015/sebgroup-green-angular-src-lib-cell-table.mjs.map +0 -1
  166. package/fesm2015/sebgroup-green-angular-src-lib-context-menu.mjs.map +0 -1
  167. package/fesm2015/sebgroup-green-angular-src-lib-datepicker.mjs +0 -166
  168. package/fesm2015/sebgroup-green-angular-src-lib-datepicker.mjs.map +0 -1
  169. package/fesm2015/sebgroup-green-angular-src-lib-dropdown.mjs +0 -266
  170. package/fesm2015/sebgroup-green-angular-src-lib-dropdown.mjs.map +0 -1
  171. package/fesm2015/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +0 -1
  172. package/fesm2015/sebgroup-green-angular-src-lib-modal.mjs +0 -328
  173. package/fesm2015/sebgroup-green-angular-src-lib-modal.mjs.map +0 -1
  174. package/fesm2015/sebgroup-green-angular-src-lib-pagination.mjs +0 -197
  175. package/fesm2015/sebgroup-green-angular-src-lib-pagination.mjs.map +0 -1
  176. package/fesm2015/sebgroup-green-angular-src-lib-progress-circle.mjs +0 -63
  177. package/fesm2015/sebgroup-green-angular-src-lib-progress-circle.mjs.map +0 -1
  178. package/fesm2015/sebgroup-green-angular-src-lib-segmented-control.mjs.map +0 -1
  179. package/fesm2015/sebgroup-green-angular-src-lib-shared.mjs +0 -114
  180. package/fesm2015/sebgroup-green-angular-src-lib-shared.mjs.map +0 -1
  181. package/fesm2015/sebgroup-green-angular-src-lib-slider.mjs +0 -136
  182. package/fesm2015/sebgroup-green-angular-src-lib-slider.mjs.map +0 -1
  183. package/fesm2015/sebgroup-green-angular-src-lib-sortable-list.mjs +0 -204
  184. package/fesm2015/sebgroup-green-angular-src-lib-sortable-list.mjs.map +0 -1
  185. package/fesm2015/sebgroup-green-angular.mjs +0 -2165
  186. package/fesm2015/sebgroup-green-angular.mjs.map +0 -1
  187. package/fesm2020/sebgroup-green-angular-src-lib-badge.mjs +0 -102
  188. package/fesm2020/sebgroup-green-angular-src-lib-badge.mjs.map +0 -1
  189. package/fesm2020/sebgroup-green-angular-src-lib-button.mjs.map +0 -1
  190. package/fesm2020/sebgroup-green-angular-src-lib-context-menu.mjs +0 -104
  191. package/fesm2020/sebgroup-green-angular-src-lib-in-page-wizard.mjs +0 -72
  192. package/fesm2020/sebgroup-green-angular-src-lib-segmented-control.mjs +0 -58
  193. package/fesm2020/sebgroup-green-angular-src-lib-segmented-control.mjs.map +0 -1
  194. /package/{esm2020 → esm2022}/index.mjs +0 -0
  195. /package/{esm2020 → esm2022}/lib/accordion/index.mjs +0 -0
  196. /package/{esm2020 → esm2022}/lib/badge/index.mjs +0 -0
  197. /package/{esm2020 → esm2022}/lib/button/index.mjs +0 -0
  198. /package/{esm2020 → esm2022}/lib/cell-table/cell-table.types.mjs +0 -0
  199. /package/{esm2020 → esm2022}/lib/cell-table/index.mjs +0 -0
  200. /package/{esm2020 → esm2022}/lib/context-menu/index.mjs +0 -0
  201. /package/{esm2020 → esm2022}/lib/datepicker/index.mjs +0 -0
  202. /package/{esm2020 → esm2022}/lib/dropdown/index.mjs +0 -0
  203. /package/{esm2020 → esm2022}/lib/in-page-wizard/index.mjs +0 -0
  204. /package/{esm2020 → esm2022}/lib/modal/index.mjs +0 -0
  205. /package/{esm2020 → esm2022}/lib/pagination/index.mjs +0 -0
  206. /package/{esm2020 → esm2022}/lib/progress-circle/index.mjs +0 -0
  207. /package/{esm2020 → esm2022}/lib/segmented-control/index.mjs +0 -0
  208. /package/{esm2020 → esm2022}/lib/shared/core-element/index.mjs +0 -0
  209. /package/{esm2020 → esm2022}/lib/shared/index.mjs +0 -0
  210. /package/{esm2020 → esm2022}/lib/slider/index.mjs +0 -0
  211. /package/{esm2020 → esm2022}/lib/sortable-list/index.mjs +0 -0
  212. /package/{esm2020 → esm2022}/sebgroup-green-angular.mjs +0 -0
  213. /package/{esm2020 → esm2022}/src/lib/accordion/index.mjs +0 -0
  214. /package/{esm2020 → esm2022}/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.mjs +0 -0
  215. /package/{esm2020 → esm2022}/src/lib/badge/index.mjs +0 -0
  216. /package/{esm2020 → esm2022}/src/lib/badge/sebgroup-green-angular-src-lib-badge.mjs +0 -0
  217. /package/{esm2020 → esm2022}/src/lib/button/index.mjs +0 -0
  218. /package/{esm2020 → esm2022}/src/lib/button/sebgroup-green-angular-src-lib-button.mjs +0 -0
  219. /package/{esm2020 → esm2022}/src/lib/cell-table/cell-table.types.mjs +0 -0
  220. /package/{esm2020 → esm2022}/src/lib/cell-table/index.mjs +0 -0
  221. /package/{esm2020 → esm2022}/src/lib/cell-table/sebgroup-green-angular-src-lib-cell-table.mjs +0 -0
  222. /package/{esm2020 → esm2022}/src/lib/context-menu/index.mjs +0 -0
  223. /package/{esm2020 → esm2022}/src/lib/context-menu/sebgroup-green-angular-src-lib-context-menu.mjs +0 -0
  224. /package/{esm2020 → esm2022}/src/lib/datepicker/index.mjs +0 -0
  225. /package/{esm2020 → esm2022}/src/lib/datepicker/sebgroup-green-angular-src-lib-datepicker.mjs +0 -0
  226. /package/{esm2020 → esm2022}/src/lib/dropdown/index.mjs +0 -0
  227. /package/{esm2020 → esm2022}/src/lib/dropdown/sebgroup-green-angular-src-lib-dropdown.mjs +0 -0
  228. /package/{esm2020 → esm2022}/src/lib/in-page-wizard/index.mjs +0 -0
  229. /package/{esm2020 → esm2022}/src/lib/in-page-wizard/sebgroup-green-angular-src-lib-in-page-wizard.mjs +0 -0
  230. /package/{esm2020 → esm2022}/src/lib/modal/index.mjs +0 -0
  231. /package/{esm2020 → esm2022}/src/lib/modal/sebgroup-green-angular-src-lib-modal.mjs +0 -0
  232. /package/{esm2020 → esm2022}/src/lib/pagination/index.mjs +0 -0
  233. /package/{esm2020 → esm2022}/src/lib/pagination/sebgroup-green-angular-src-lib-pagination.mjs +0 -0
  234. /package/{esm2020 → esm2022}/src/lib/progress-circle/index.mjs +0 -0
  235. /package/{esm2020 → esm2022}/src/lib/progress-circle/sebgroup-green-angular-src-lib-progress-circle.mjs +0 -0
  236. /package/{esm2020 → esm2022}/src/lib/segmented-control/index.mjs +0 -0
  237. /package/{esm2020 → esm2022}/src/lib/segmented-control/sebgroup-green-angular-src-lib-segmented-control.mjs +0 -0
  238. /package/{esm2020 → esm2022}/src/lib/shared/core-element/index.mjs +0 -0
  239. /package/{esm2020 → esm2022}/src/lib/shared/index.mjs +0 -0
  240. /package/{esm2020 → esm2022}/src/lib/shared/sebgroup-green-angular-src-lib-shared.mjs +0 -0
  241. /package/{esm2020 → esm2022}/src/lib/slider/index.mjs +0 -0
  242. /package/{esm2020 → esm2022}/src/lib/slider/sebgroup-green-angular-src-lib-slider.mjs +0 -0
  243. /package/{esm2020 → esm2022}/src/lib/sortable-list/index.mjs +0 -0
  244. /package/{esm2020 → esm2022}/src/lib/sortable-list/sebgroup-green-angular-src-lib-sortable-list.mjs +0 -0
@@ -1,258 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, } from '@angular/core';
2
- import { ConfigurableFocusTrapFactory, } from '@angular/cdk/a11y';
3
- import { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';
4
- import { NggModalHeaderDirective } from './modal-header.directive';
5
- import { NggModalFooterDirective } from './modal-footer.directive';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/cdk/a11y";
8
- import * as i2 from "@angular/common";
9
- export class NggModalComponent {
10
- constructor(ref, configurableFocusTrapFactory) {
11
- this.ref = ref;
12
- this.configurableFocusTrapFactory = configurableFocusTrapFactory;
13
- this.disableBodyScroll = true;
14
- this.isOpenChange = new EventEmitter();
15
- this.closed = new EventEmitter();
16
- this.confirm = new EventEmitter();
17
- this.dismiss = new EventEmitter();
18
- this.configurableFocusTrap = this.configurableFocusTrapFactory.create(this.ref.nativeElement);
19
- }
20
- get trapFocus() {
21
- return this._trapFocus;
22
- }
23
- set trapFocus(value) {
24
- this._trapFocus = value;
25
- if (value) {
26
- if (this._isOpen) {
27
- this.enableFocusTrap();
28
- }
29
- }
30
- else {
31
- this.disableFocusTrap();
32
- }
33
- }
34
- get isOpen() {
35
- return this._isOpen;
36
- }
37
- set isOpen(value) {
38
- this._isOpen = value;
39
- if (value) {
40
- if (this.trapFocus) {
41
- this.enableFocusTrap();
42
- }
43
- if (this.disableBodyScroll) {
44
- disableBodyScroll(this.ref.nativeElement, {
45
- allowTouchMove: (el) => {
46
- // Allow touchmove for elements inside modal, its required for scroll to work on iOS devices
47
- return this.ref.nativeElement.contains(el);
48
- },
49
- });
50
- }
51
- }
52
- else {
53
- this.disableFocusTrap();
54
- if (this.disableBodyScroll) {
55
- enableBodyScroll(this.ref.nativeElement);
56
- }
57
- }
58
- }
59
- get open() {
60
- return this.isOpen;
61
- }
62
- ngOnInit() {
63
- if (this._isOpen && this.trapFocus)
64
- this.enableFocusTrap();
65
- else
66
- this.disableFocusTrap();
67
- }
68
- handleCloseClick(event) {
69
- this.closeModal(event);
70
- }
71
- handleBackdropClick(event) {
72
- if (event.target == this.backdropRef?.nativeElement)
73
- this.closeModal(event);
74
- }
75
- handleDismiss(event) {
76
- this.dismiss.emit(event);
77
- }
78
- handleConfirm(event) {
79
- this.confirm.emit(event);
80
- }
81
- closeModal(event) {
82
- if (this.closed.observers.length > 0) {
83
- this.closed.emit(event);
84
- }
85
- else {
86
- this.isOpen = false;
87
- this.isOpenChange.emit(this.isOpen);
88
- }
89
- }
90
- enableFocusTrap() {
91
- if (this.configurableFocusTrap) {
92
- this.configurableFocusTrap.enabled = true;
93
- this.configurableFocusTrap.focusInitialElementWhenReady();
94
- }
95
- }
96
- disableFocusTrap() {
97
- if (this.configurableFocusTrap) {
98
- this.configurableFocusTrap.enabled = false;
99
- }
100
- }
101
- ngOnDestroy() {
102
- this.configurableFocusTrap?.destroy();
103
- enableBodyScroll(this.ref.nativeElement);
104
- }
105
- }
106
- NggModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalComponent, deps: [{ token: i0.ElementRef }, { token: i1.ConfigurableFocusTrapFactory }], target: i0.ɵɵFactoryTarget.Component });
107
- NggModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggModalComponent, selector: "ngg-modal", inputs: { modalType: "modalType", header: "header", confirmLabel: "confirmLabel", dismissLabel: "dismissLabel", size: "size", hideHeader: "hideHeader", hideFooter: "hideFooter", disableBodyScroll: "disableBodyScroll", trapFocus: "trapFocus", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange", closed: "closed", confirm: "confirm", dismiss: "dismiss" }, host: { properties: { "class.open": "this.open" } }, queries: [{ propertyName: "modalHeaderContent", first: true, predicate: NggModalHeaderDirective, descendants: true }, { propertyName: "modalFooterContent", first: true, predicate: NggModalFooterDirective, descendants: true }], viewQueries: [{ propertyName: "backdropRef", first: true, predicate: ["backdrop"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <div class=\"gds-dialog-wrapper\">\n <aside\n data-testid=\"modal\"\n *ngSwitchCase=\"'slideout'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [class.small]=\"size === 'sm'\"\n [class.medium]=\"size === 'md'\"\n [class.large]=\"size === 'lg'\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </aside>\n <main\n data-testid=\"modal\"\n *ngSwitchCase=\"'takeover'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </main>\n <section\n data-testid=\"modal\"\n *ngSwitchDefault\n role=\"dialog\"\n aria-modal=\"true\"\n [class.small]=\"size === 'sm'\"\n [class.medium]=\"size === 'md'\"\n [class.large]=\"size === 'lg'\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </section>\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"!hideHeader\">\n <header\n *ngIf=\"!modalHeaderContent; else headerContentTemplate\"\n ngg-modal-header\n data-testid=\"modal-header\"\n [header]=\"header\"\n (closed)=\"this.handleCloseClick($event)\"\n ></header>\n </ng-container>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"bodyContentTemplate\"></ng-container>\n </div>\n <ng-container *ngIf=\"!hideFooter && (dismissLabel || confirmLabel)\">\n <footer\n *ngIf=\"!modalFooterContent; else footerContentTemplate\"\n ngg-modal-footer\n data-testid=\"modal-footer\"\n [dismissLabel]=\"dismissLabel\"\n [confirmLabel]=\"confirmLabel\"\n (dismiss)=\"this.handleDismiss($event)\"\n (confirm)=\"this.handleConfirm($event)\"\n ></footer>\n </ng-container>\n </ng-template>\n <ng-template #headerContentTemplate>\n <header data-testid=\"modal-header\">\n <ng-content select=\"[nggModalHeader]\"></ng-content>\n </header>\n </ng-template>\n <ng-template #bodyContentTemplate>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #footerContentTemplate>\n <footer data-testid=\"modal-footer\">\n <ng-content select=\"[nggModalFooter]\"></ng-content>\n </footer>\n </ng-template>\n <div\n #backdrop\n data-testid=\"modal-backdrop\"\n class=\"backdrop entered\"\n (click)=\"this.handleBackdropClick($event)\"\n [attr.aria-hidden]=\"true\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSwitch; }), selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSwitchCase; }), selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgSwitchDefault; }), selector: "[ngSwitchDefault]" }, { kind: "component", type: i0.forwardRef(function () { return NggModalHeaderComponent; }), selector: "[ngg-modal-header]", inputs: ["header"], outputs: ["closed"] }, { kind: "component", type: i0.forwardRef(function () { return NggModalBodyComponent; }), selector: "[ngg-modal-body]" }, { kind: "component", type: i0.forwardRef(function () { return NggModalFooterComponent; }), selector: "[ngg-modal-footer]", inputs: ["dismissLabel", "confirmLabel"], outputs: ["dismiss", "confirm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalComponent, decorators: [{
109
- type: Component,
110
- args: [{ selector: 'ngg-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"isOpen\" [ngSwitch]=\"modalType\">\n <div class=\"gds-dialog-wrapper\">\n <aside\n data-testid=\"modal\"\n *ngSwitchCase=\"'slideout'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [class.small]=\"size === 'sm'\"\n [class.medium]=\"size === 'md'\"\n [class.large]=\"size === 'lg'\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </aside>\n <main\n data-testid=\"modal\"\n *ngSwitchCase=\"'takeover'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </main>\n <section\n data-testid=\"modal\"\n *ngSwitchDefault\n role=\"dialog\"\n aria-modal=\"true\"\n [class.small]=\"size === 'sm'\"\n [class.medium]=\"size === 'md'\"\n [class.large]=\"size === 'lg'\"\n [class.entered]=\"isOpen\"\n >\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </section>\n <ng-template #contentTemplate>\n <ng-container *ngIf=\"!hideHeader\">\n <header\n *ngIf=\"!modalHeaderContent; else headerContentTemplate\"\n ngg-modal-header\n data-testid=\"modal-header\"\n [header]=\"header\"\n (closed)=\"this.handleCloseClick($event)\"\n ></header>\n </ng-container>\n <div ngg-modal-body data-testid=\"modal-body\" class=\"body\">\n <ng-container *ngTemplateOutlet=\"bodyContentTemplate\"></ng-container>\n </div>\n <ng-container *ngIf=\"!hideFooter && (dismissLabel || confirmLabel)\">\n <footer\n *ngIf=\"!modalFooterContent; else footerContentTemplate\"\n ngg-modal-footer\n data-testid=\"modal-footer\"\n [dismissLabel]=\"dismissLabel\"\n [confirmLabel]=\"confirmLabel\"\n (dismiss)=\"this.handleDismiss($event)\"\n (confirm)=\"this.handleConfirm($event)\"\n ></footer>\n </ng-container>\n </ng-template>\n <ng-template #headerContentTemplate>\n <header data-testid=\"modal-header\">\n <ng-content select=\"[nggModalHeader]\"></ng-content>\n </header>\n </ng-template>\n <ng-template #bodyContentTemplate>\n <ng-content></ng-content>\n </ng-template>\n <ng-template #footerContentTemplate>\n <footer data-testid=\"modal-footer\">\n <ng-content select=\"[nggModalFooter]\"></ng-content>\n </footer>\n </ng-template>\n <div\n #backdrop\n data-testid=\"modal-backdrop\"\n class=\"backdrop entered\"\n (click)=\"this.handleBackdropClick($event)\"\n [attr.aria-hidden]=\"true\"\n ></div>\n </div>\n</ng-container>\n", styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] }]
111
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ConfigurableFocusTrapFactory }]; }, propDecorators: { modalType: [{
112
- type: Input
113
- }], header: [{
114
- type: Input
115
- }], confirmLabel: [{
116
- type: Input
117
- }], dismissLabel: [{
118
- type: Input
119
- }], size: [{
120
- type: Input
121
- }], hideHeader: [{
122
- type: Input
123
- }], hideFooter: [{
124
- type: Input
125
- }], disableBodyScroll: [{
126
- type: Input
127
- }], trapFocus: [{
128
- type: Input
129
- }], isOpen: [{
130
- type: Input
131
- }], isOpenChange: [{
132
- type: Output
133
- }], closed: [{
134
- type: Output
135
- }], confirm: [{
136
- type: Output
137
- }], dismiss: [{
138
- type: Output
139
- }], open: [{
140
- type: HostBinding,
141
- args: ['class.open']
142
- }], backdropRef: [{
143
- type: ViewChild,
144
- args: ['backdrop']
145
- }], modalHeaderContent: [{
146
- type: ContentChild,
147
- args: [NggModalHeaderDirective]
148
- }], modalFooterContent: [{
149
- type: ContentChild,
150
- args: [NggModalFooterDirective]
151
- }] } });
152
- export class NggModalHeaderComponent {
153
- constructor() {
154
- this.closed = new EventEmitter();
155
- }
156
- handleClose(event) {
157
- this.closed.emit(event);
158
- }
159
- }
160
- NggModalHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
161
- NggModalHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggModalHeaderComponent, selector: "[ngg-modal-header]", inputs: { header: "header" }, outputs: { closed: "closed" }, ngImport: i0, template: `
162
- <h3 data-testid="modal-header-text">{{ header }}</h3>
163
- <button
164
- data-testid="modal-close-button"
165
- class="close"
166
- (click)="this.handleClose($event)"
167
- >
168
- <span className="sr-only">Close</span>
169
- <i></i>
170
- </button>
171
- `, isInline: true, styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalHeaderComponent, decorators: [{
173
- type: Component,
174
- args: [{ selector: '[ngg-modal-header]', template: `
175
- <h3 data-testid="modal-header-text">{{ header }}</h3>
176
- <button
177
- data-testid="modal-close-button"
178
- class="close"
179
- (click)="this.handleClose($event)"
180
- >
181
- <span className="sr-only">Close</span>
182
- <i></i>
183
- </button>
184
- `, styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] }]
185
- }], propDecorators: { header: [{
186
- type: Input
187
- }], closed: [{
188
- type: Output
189
- }] } });
190
- export class NggModalBodyComponent {
191
- }
192
- NggModalBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
193
- NggModalBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggModalBodyComponent, selector: "[ngg-modal-body]", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] });
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalBodyComponent, decorators: [{
195
- type: Component,
196
- args: [{ selector: '[ngg-modal-body]', template: `<ng-content></ng-content>`, styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] }]
197
- }] });
198
- export class NggModalFooterComponent {
199
- constructor() {
200
- this.dismiss = new EventEmitter();
201
- this.confirm = new EventEmitter();
202
- }
203
- handleDismiss(event) {
204
- this.dismiss.emit(event);
205
- }
206
- handleConfirm(event) {
207
- this.confirm.emit(event);
208
- }
209
- }
210
- NggModalFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
211
- NggModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggModalFooterComponent, selector: "[ngg-modal-footer]", inputs: { dismissLabel: "dismissLabel", confirmLabel: "confirmLabel" }, outputs: { dismiss: "dismiss", confirm: "confirm" }, ngImport: i0, template: `
212
- <button
213
- data-testid="modal-dismiss-button"
214
- *ngIf="dismissLabel"
215
- class="secondary"
216
- (click)="this.handleDismiss($event)"
217
- >
218
- {{ dismissLabel }}
219
- </button>
220
- <button
221
- data-testid="modal-confirm-button"
222
- *ngIf="confirmLabel"
223
- class="primary"
224
- (click)="this.handleConfirm($event)"
225
- >
226
- {{ confirmLabel }}
227
- </button>
228
- `, isInline: true, styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggModalFooterComponent, decorators: [{
230
- type: Component,
231
- args: [{ selector: '[ngg-modal-footer]', template: `
232
- <button
233
- data-testid="modal-dismiss-button"
234
- *ngIf="dismissLabel"
235
- class="secondary"
236
- (click)="this.handleDismiss($event)"
237
- >
238
- {{ dismissLabel }}
239
- </button>
240
- <button
241
- data-testid="modal-confirm-button"
242
- *ngIf="confirmLabel"
243
- class="primary"
244
- (click)="this.handleConfirm($event)"
245
- >
246
- {{ confirmLabel }}
247
- </button>
248
- `, styles: [":host.open{height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:var(--sg-z-index-modal)}:host.open>section[role=dialog]{left:50%;top:50%;transform:translate(-50%,-50%)}.body::-webkit-scrollbar{background-color:#f8f8f8;height:10px;width:10px}.body::-webkit-scrollbar-thumb{background-color:#cecece}.body::-webkit-scrollbar-track{background-color:#f8f8f8;box-shadow:inset 0 0 10px #00000040}\n"] }]
249
- }], propDecorators: { dismissLabel: [{
250
- type: Input
251
- }], confirmLabel: [{
252
- type: Input
253
- }], dismiss: [{
254
- type: Output
255
- }], confirm: [{
256
- type: Output
257
- }] } });
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFFTCw0QkFBNEIsR0FDN0IsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7OztBQVFsRSxNQUFNLE9BQU8saUJBQWlCO0lBeUU1QixZQUNVLEdBQTRCLEVBQzVCLDRCQUEwRDtRQUQxRCxRQUFHLEdBQUgsR0FBRyxDQUF5QjtRQUM1QixpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBbkVwRCxzQkFBaUIsR0FBYSxJQUFJLENBQUE7UUE0Q2pDLGlCQUFZLEdBQzNCLElBQUksWUFBWSxFQUFXLENBQUE7UUFDWixXQUFNLEdBQ3JCLElBQUksWUFBWSxFQUFjLENBQUE7UUFDZixZQUFPLEdBQ3RCLElBQUksWUFBWSxFQUFjLENBQUE7UUFDZixZQUFPLEdBQ3RCLElBQUksWUFBWSxFQUFjLENBQUE7UUFrQjlCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUNu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QUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTW9kYWxUeXBlLCBTaXplIH0gZnJvbSAnQHNlYmdyb3VwL2V4dHJhY3QnXG5pbXBvcnQge1xuICBDb25maWd1cmFibGVGb2N1c1RyYXAsXG4gIENvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3RvcnksXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5J1xuaW1wb3J0IHsgZGlzYWJsZUJvZHlTY3JvbGwsIGVuYWJsZUJvZHlTY3JvbGwgfSBmcm9tICdib2R5LXNjcm9sbC1sb2NrJ1xuaW1wb3J0IHsgTmdnTW9kYWxIZWFkZXJEaXJlY3RpdmUgfSBmcm9tICcuL21vZGFsLWhlYWRlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBOZ2dNb2RhbEZvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4vbW9kYWwtZm9vdGVyLmRpcmVjdGl2ZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdnLW1vZGFsJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5nZ01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgbW9kYWxUeXBlPzogTW9kYWxUeXBlXG4gIEBJbnB1dCgpIHB1YmxpYyBoZWFkZXI/OiBzdHJpbmdcbiAgQElucHV0KCkgcHVibGljIGNvbmZpcm1MYWJlbD86IHN0cmluZ1xuICBASW5wdXQoKSBwdWJsaWMgZGlzbWlzc0xhYmVsPzogc3RyaW5nXG4gIEBJbnB1dCgpIHB1YmxpYyBzaXplPzogU2l6ZVxuICBASW5wdXQoKSBwdWJsaWMgaGlkZUhlYWRlcj86IGJvb2xlYW5cbiAgQElucHV0KCkgcHVibGljIGhpZGVGb290ZXI/OiBib29sZWFuXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlQm9keVNjcm9sbD86IGJvb2xlYW4gPSB0cnVlXG4gIEBJbnB1dCgpIHB1YmxpYyBnZXQgdHJhcEZvY3VzKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90cmFwRm9jdXNcbiAgfVxuICBwdWJsaWMgc2V0IHRyYXBGb2N1cyh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3RyYXBGb2N1cyA9IHZhbHVlXG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLl9pc09wZW4pIHtcbiAgICAgICAgdGhpcy5lbmFibGVGb2N1c1RyYXAoKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpc2FibGVGb2N1c1RyYXAoKVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9pc09wZW5cbiAgfVxuICBwdWJsaWMgc2V0IGlzT3Blbih2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2lzT3BlbiA9IHZhbHVlXG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLnRyYXBGb2N1cykge1xuICAgICAgICB0aGlzLmVuYWJsZUZvY3VzVHJhcCgpXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmRpc2FibGVCb2R5U2Nyb2xsKSB7XG4gICAgICAgIGRpc2FibGVCb2R5U2Nyb2xsKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICBhbGxvd1RvdWNoTW92ZTogKGVsKSA9PiB7XG4gICAgICAgICAgICAvLyBBbGxvdyB0b3VjaG1vdmUgZm9yIGVsZW1lbnRzIGluc2lkZSBtb2RhbCwgaXRzIHJlcXVpcmVkIGZvciBzY3JvbGwgdG8gd29yayBvbiBpT1MgZGV2aWNlc1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZWwpXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNhYmxlRm9jdXNUcmFwKClcbiAgICAgIGlmICh0aGlzLmRpc2FibGVCb2R5U2Nyb2xsKSB7XG4gICAgICAgIGVuYWJsZUJvZHlTY3JvbGwodGhpcy5yZWYubmF0aXZlRWxlbWVudClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KCkgcHVibGljIGlzT3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcbiAgQE91dHB1dCgpIHB1YmxpYyBjbG9zZWQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpXG4gIEBPdXRwdXQoKSBwdWJsaWMgY29uZmlybTogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KClcbiAgQE91dHB1dCgpIHB1YmxpYyBkaXNtaXNzOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mub3BlbicpIGdldCBvcGVuKCkge1xuICAgIHJldHVybiB0aGlzLmlzT3BlblxuICB9XG4gIEBWaWV3Q2hpbGQoJ2JhY2tkcm9wJykgcHJpdmF0ZSBiYWNrZHJvcFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD5cbiAgQENvbnRlbnRDaGlsZChOZ2dNb2RhbEhlYWRlckRpcmVjdGl2ZSlcbiAgcHVibGljIG1vZGFsSGVhZGVyQ29udGVudD86IE5nZ01vZGFsSGVhZGVyRGlyZWN0aXZlXG4gIEBDb250ZW50Q2hpbGQoTmdnTW9kYWxGb290ZXJEaXJlY3RpdmUpXG4gIHB1YmxpYyBtb2RhbEZvb3RlckNvbnRlbnQ/OiBOZ2dNb2RhbEZvb3RlckRpcmVjdGl2ZVxuICBwcml2YXRlIF9pc09wZW4/OiBib29sZWFuXG4gIHByaXZhdGUgX3RyYXBGb2N1cz86IGJvb2xlYW5cbiAgcHJpdmF0ZSBjb25maWd1cmFibGVGb2N1c1RyYXA6IENvbmZpZ3VyYWJsZUZvY3VzVHJhcFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGNvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3Rvcnk6IENvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3RvcnksXG4gICkge1xuICAgIHRoaXMuY29uZmlndXJhYmxlRm9jdXNUcmFwID0gdGhpcy5jb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5LmNyZWF0ZShcbiAgICAgIHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgKVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2lzT3BlbiAmJiB0aGlzLnRyYXBGb2N1cykgdGhpcy5lbmFibGVGb2N1c1RyYXAoKVxuICAgIGVsc2UgdGhpcy5kaXNhYmxlRm9jdXNUcmFwKClcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDbG9zZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5jbG9zZU1vZGFsKGV2ZW50KVxuICB9XG5cbiAgcHVibGljIGhhbmRsZUJhY2tkcm9wQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0ID09IHRoaXMuYmFja2Ryb3BSZWY/Lm5hdGl2ZUVsZW1lbnQpIHRoaXMuY2xvc2VNb2RhbChldmVudClcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVEaXNtaXNzKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5kaXNtaXNzLmVtaXQoZXZlbnQpXG4gIH1cblxuICBwdWJsaWMgaGFuZGxlQ29uZmlybShldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuY29uZmlybS5lbWl0KGV2ZW50KVxuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZU1vZGFsKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuY2xvc2VkLm9ic2VydmVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmNsb3NlZC5lbWl0KGV2ZW50KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlXG4gICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KHRoaXMuaXNPcGVuKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlRm9jdXNUcmFwKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZ3VyYWJsZUZvY3VzVHJhcCkge1xuICAgICAgdGhpcy5jb25maWd1cmFibGVGb2N1c1RyYXAuZW5hYmxlZCA9IHRydWVcbiAgICAgIHRoaXMuY29uZmlndXJhYmxlRm9jdXNUcmFwLmZvY3VzSW5pdGlhbEVsZW1lbnRXaGVuUmVhZHkoKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZUZvY3VzVHJhcCgpIHtcbiAgICBpZiAodGhpcy5jb25maWd1cmFibGVGb2N1c1RyYXApIHtcbiAgICAgIHRoaXMuY29uZmlndXJhYmxlRm9jdXNUcmFwLmVuYWJsZWQgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlndXJhYmxlRm9jdXNUcmFwPy5kZXN0cm95KClcbiAgICBlbmFibGVCb2R5U2Nyb2xsKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQpXG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW25nZy1tb2RhbC1oZWFkZXJdJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aDMgZGF0YS10ZXN0aWQ9XCJtb2RhbC1oZWFkZXItdGV4dFwiPnt7IGhlYWRlciB9fTwvaDM+XG4gICAgPGJ1dHRvblxuICAgICAgZGF0YS10ZXN0aWQ9XCJtb2RhbC1jbG9zZS1idXR0b25cIlxuICAgICAgY2xhc3M9XCJjbG9zZVwiXG4gICAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVDbG9zZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+Q2xvc2U8L3NwYW4+XG4gICAgICA8aT48L2k+XG4gICAgPC9idXR0b24+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIE5nZ01vZGFsSGVhZGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaGVhZGVyPzogc3RyaW5nXG4gIEBPdXRwdXQoKSBjbG9zZWQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKVxuXG4gIGhhbmRsZUNsb3NlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5jbG9zZWQuZW1pdChldmVudClcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbbmdnLW1vZGFsLWJvZHldJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbn0pXG5leHBvcnQgY2xhc3MgTmdnTW9kYWxCb2R5Q29tcG9uZW50IHt9XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tuZ2ctbW9kYWwtZm9vdGVyXScsXG4gIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgZGF0YS10ZXN0aWQ9XCJtb2RhbC1kaXNtaXNzLWJ1dHRvblwiXG4gICAgICAqbmdJZj1cImRpc21pc3NMYWJlbFwiXG4gICAgICBjbGFzcz1cInNlY29uZGFyeVwiXG4gICAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVEaXNtaXNzKCRldmVudClcIlxuICAgID5cbiAgICAgIHt7IGRpc21pc3NMYWJlbCB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGRhdGEtdGVzdGlkPVwibW9kYWwtY29uZmlybS1idXR0b25cIlxuICAgICAgKm5nSWY9XCJjb25maXJtTGFiZWxcIlxuICAgICAgY2xhc3M9XCJwcmltYXJ5XCJcbiAgICAgIChjbGljayk9XCJ0aGlzLmhhbmRsZUNvbmZpcm0oJGV2ZW50KVwiXG4gICAgPlxuICAgICAge3sgY29uZmlybUxhYmVsIH19XG4gICAgPC9idXR0b24+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIE5nZ01vZGFsRm9vdGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGlzbWlzc0xhYmVsPzogc3RyaW5nXG4gIEBJbnB1dCgpIGNvbmZpcm1MYWJlbD86IHN0cmluZ1xuICBAT3V0cHV0KCkgZGlzbWlzczogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBjb25maXJtOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBoYW5kbGVEaXNtaXNzKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5kaXNtaXNzLmVtaXQoZXZlbnQpXG4gIH1cblxuICBoYW5kbGVDb25maXJtKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5jb25maXJtLmVtaXQoZXZlbnQpXG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpc09wZW5cIiBbbmdTd2l0Y2hdPVwibW9kYWxUeXBlXCI+XG4gIDxkaXYgY2xhc3M9XCJnZHMtZGlhbG9nLXdyYXBwZXJcIj5cbiAgICA8YXNpZGVcbiAgICAgIGRhdGEtdGVzdGlkPVwibW9kYWxcIlxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIidzbGlkZW91dCdcIlxuICAgICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgICBbY2xhc3Muc21hbGxdPVwic2l6ZSA9PT0gJ3NtJ1wiXG4gICAgICBbY2xhc3MubWVkaXVtXT1cInNpemUgPT09ICdtZCdcIlxuICAgICAgW2NsYXNzLmxhcmdlXT1cInNpemUgPT09ICdsZydcIlxuICAgICAgW2NsYXNzLmVudGVyZWRdPVwiaXNPcGVuXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9hc2lkZT5cbiAgICA8bWFpblxuICAgICAgZGF0YS10ZXN0aWQ9XCJtb2RhbFwiXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3Rha2VvdmVyJ1wiXG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgIFtjbGFzcy5lbnRlcmVkXT1cImlzT3BlblwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbWFpbj5cbiAgICA8c2VjdGlvblxuICAgICAgZGF0YS10ZXN0aWQ9XCJtb2RhbFwiXG4gICAgICAqbmdTd2l0Y2hEZWZhdWx0XG4gICAgICByb2xlPVwiZGlhbG9nXCJcbiAgICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICAgIFtjbGFzcy5zbWFsbF09XCJzaXplID09PSAnc20nXCJcbiAgICAgIFtjbGFzcy5tZWRpdW1dPVwic2l6ZSA9PT0gJ21kJ1wiXG4gICAgICBbY2xhc3MubGFyZ2VdPVwic2l6ZSA9PT0gJ2xnJ1wiXG4gICAgICBbY2xhc3MuZW50ZXJlZF09XCJpc09wZW5cIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGU+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhpZGVIZWFkZXJcIj5cbiAgICAgICAgPGhlYWRlclxuICAgICAgICAgICpuZ0lmPVwiIW1vZGFsSGVhZGVyQ29udGVudDsgZWxzZSBoZWFkZXJDb250ZW50VGVtcGxhdGVcIlxuICAgICAgICAgIG5nZy1tb2RhbC1oZWFkZXJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1vZGFsLWhlYWRlclwiXG4gICAgICAgICAgW2hlYWRlcl09XCJoZWFkZXJcIlxuICAgICAgICAgIChjbG9zZWQpPVwidGhpcy5oYW5kbGVDbG9zZUNsaWNrKCRldmVudClcIlxuICAgICAgICA+PC9oZWFkZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxkaXYgbmdnLW1vZGFsLWJvZHkgZGF0YS10ZXN0aWQ9XCJtb2RhbC1ib2R5XCIgY2xhc3M9XCJib2R5XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJib2R5Q29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGlkZUZvb3RlciAmJiAoZGlzbWlzc0xhYmVsIHx8IGNvbmZpcm1MYWJlbClcIj5cbiAgICAgICAgPGZvb3RlclxuICAgICAgICAgICpuZ0lmPVwiIW1vZGFsRm9vdGVyQ29udGVudDsgZWxzZSBmb290ZXJDb250ZW50VGVtcGxhdGVcIlxuICAgICAgICAgIG5nZy1tb2RhbC1mb290ZXJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1vZGFsLWZvb3RlclwiXG4gICAgICAgICAgW2Rpc21pc3NMYWJlbF09XCJkaXNtaXNzTGFiZWxcIlxuICAgICAgICAgIFtjb25maXJtTGFiZWxdPVwiY29uZmlybUxhYmVsXCJcbiAgICAgICAgICAoZGlzbWlzcyk9XCJ0aGlzLmhhbmRsZURpc21pc3MoJGV2ZW50KVwiXG4gICAgICAgICAgKGNvbmZpcm0pPVwidGhpcy5oYW5kbGVDb25maXJtKCRldmVudClcIlxuICAgICAgICA+PC9mb290ZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyQ29udGVudFRlbXBsYXRlPlxuICAgICAgPGhlYWRlciBkYXRhLXRlc3RpZD1cIm1vZGFsLWhlYWRlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbmdnTW9kYWxIZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9oZWFkZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2JvZHlDb250ZW50VGVtcGxhdGU+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2Zvb3RlckNvbnRlbnRUZW1wbGF0ZT5cbiAgICAgIDxmb290ZXIgZGF0YS10ZXN0aWQ9XCJtb2RhbC1mb290ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW25nZ01vZGFsRm9vdGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZm9vdGVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgI2JhY2tkcm9wXG4gICAgICBkYXRhLXRlc3RpZD1cIm1vZGFsLWJhY2tkcm9wXCJcbiAgICAgIGNsYXNzPVwiYmFja2Ryb3AgZW50ZXJlZFwiXG4gICAgICAoY2xpY2spPVwidGhpcy5oYW5kbGVCYWNrZHJvcENsaWNrKCRldmVudClcIlxuICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiXG4gICAgPjwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,113 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { getSliderTrackBackground, randomId, sliderColors, } from '@sebgroup/extract';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/forms";
7
- export class NggSliderComponent {
8
- constructor() {
9
- this.name = `${randomId()}-slider`;
10
- this.min = 0;
11
- this.max = 100;
12
- this.step = 1;
13
- this.label = '';
14
- this.instruction = '';
15
- this.placeholder = '';
16
- this.errorMessage = '';
17
- this.hasTextbox = false;
18
- this.unitLabel = 'kr';
19
- this.disabled = false;
20
- this.value = 0;
21
- this.sliderChange = new EventEmitter();
22
- this.sliderTouch = new EventEmitter();
23
- this.style = {};
24
- }
25
- ngOnInit() {
26
- this.setTrackBackground();
27
- }
28
- ngOnChanges(changes) {
29
- if (['min', 'max', 'value'].some((x) => Object.prototype.hasOwnProperty.call(changes, x))) {
30
- this.setTrackBackground();
31
- }
32
- }
33
- onBlur() {
34
- this.sliderTouch.emit(true);
35
- this.onTouchedFn && this.onTouchedFn();
36
- }
37
- handleChange() {
38
- this.value = this.value ?? 0;
39
- this.setTrackBackground();
40
- this.sliderChange.emit(this.value);
41
- this.onChangeFn && this.onChangeFn(this.value);
42
- }
43
- setTrackBackground() {
44
- if (this.disabled) {
45
- this.style.background = sliderColors.disabled;
46
- return;
47
- }
48
- const percent = ((this.value - this.min) / (this.max - this.min)) * 100;
49
- this.style.background = getSliderTrackBackground(percent);
50
- }
51
- /** control value accessor functions */
52
- writeValue(val) {
53
- if (this.value !== val) {
54
- this.value = val ?? 0;
55
- this.handleChange();
56
- }
57
- }
58
- registerOnChange(fn) {
59
- this.onChangeFn = fn;
60
- }
61
- registerOnTouched(fn) {
62
- this.onTouchedFn = fn;
63
- }
64
- }
65
- NggSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
66
- NggSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggSliderComponent, selector: "ngg-slider", inputs: { name: "name", min: "min", max: "max", step: "step", label: "label", instruction: "instruction", placeholder: "placeholder", errorMessage: "errorMessage", hasTextbox: "hasTextbox", unitLabel: "unitLabel", disabled: "disabled", value: "value", enterkeyhint: "enterkeyhint" }, outputs: { sliderChange: "sliderChange", sliderTouch: "sliderTouch" }, providers: [
67
- {
68
- provide: NG_VALUE_ACCESSOR,
69
- useExisting: NggSliderComponent,
70
- multi: true,
71
- },
72
- ], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!!label\" class=\"gds-slider-label-container\">\n <div>\n <label [attr.for]=\"name\" [attr.id]=\"name + '-label'\">{{ label }}</label>\n <p *ngIf=\"!!instruction\">{{ instruction }}</p>\n </div>\n <ng-container *ngIf=\"hasTextbox\">\n <ng-container *ngIf=\"!!unitLabel\">\n <div class=\"group group-border group-focus\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n <span class=\"form-text\">{{ unitLabel }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!unitLabel\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<input\n type=\"range\"\n [attr.id]=\"name\"\n [attr.name]=\"name\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"style\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n/>\n\n<p *ngIf=\"!!errorMessage\" class=\"gds-slider-error-info\">\n {{ errorMessage }}\n</p>\n\n<ng-template #inputField>\n <input\n type=\"text\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n [(ngModel)]=\"value\"\n [class.is-invalid]=\"!!errorMessage\"\n [attr.name]=\"name\"\n [attr.id]=\"name + '-textbox'\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-labelledby]=\"name + '-label'\"\n [attr.enterkeyhint]=\"enterkeyhint\"\n [disabled]=\"disabled\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n />\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RangeValueAccessor, selector: "input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggSliderComponent, decorators: [{
74
- type: Component,
75
- args: [{ selector: 'ngg-slider', providers: [
76
- {
77
- provide: NG_VALUE_ACCESSOR,
78
- useExisting: NggSliderComponent,
79
- multi: true,
80
- },
81
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!!label\" class=\"gds-slider-label-container\">\n <div>\n <label [attr.for]=\"name\" [attr.id]=\"name + '-label'\">{{ label }}</label>\n <p *ngIf=\"!!instruction\">{{ instruction }}</p>\n </div>\n <ng-container *ngIf=\"hasTextbox\">\n <ng-container *ngIf=\"!!unitLabel\">\n <div class=\"group group-border group-focus\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n <span class=\"form-text\">{{ unitLabel }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!unitLabel\">\n <ng-container *ngTemplateOutlet=\"inputField\"></ng-container>\n </ng-container>\n </ng-container>\n</div>\n\n<input\n type=\"range\"\n [attr.id]=\"name\"\n [attr.name]=\"name\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.step]=\"step\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"style\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n/>\n\n<p *ngIf=\"!!errorMessage\" class=\"gds-slider-error-info\">\n {{ errorMessage }}\n</p>\n\n<ng-template #inputField>\n <input\n type=\"text\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n [(ngModel)]=\"value\"\n [class.is-invalid]=\"!!errorMessage\"\n [attr.name]=\"name\"\n [attr.id]=\"name + '-textbox'\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-labelledby]=\"name + '-label'\"\n [attr.enterkeyhint]=\"enterkeyhint\"\n [disabled]=\"disabled\"\n (blur)=\"onBlur()\"\n (input)=\"handleChange()\"\n />\n</ng-template>\n" }]
82
- }], propDecorators: { name: [{
83
- type: Input
84
- }], min: [{
85
- type: Input
86
- }], max: [{
87
- type: Input
88
- }], step: [{
89
- type: Input
90
- }], label: [{
91
- type: Input
92
- }], instruction: [{
93
- type: Input
94
- }], placeholder: [{
95
- type: Input
96
- }], errorMessage: [{
97
- type: Input
98
- }], hasTextbox: [{
99
- type: Input
100
- }], unitLabel: [{
101
- type: Input
102
- }], disabled: [{
103
- type: Input
104
- }], value: [{
105
- type: Input
106
- }], enterkeyhint: [{
107
- type: Input
108
- }], sliderChange: [{
109
- type: Output
110
- }], sliderTouch: [{
111
- type: Output
112
- }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NsaWRlci9zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvc2xpZGVyL3NsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDeEUsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixRQUFRLEVBQ1IsWUFBWSxHQUNiLE1BQU0sbUJBQW1CLENBQUE7Ozs7QUFrQjFCLE1BQU0sT0FBTyxrQkFBa0I7SUFaL0I7UUFlVyxTQUFJLEdBQUcsR0FBRyxRQUFRLEVBQUUsU0FBUyxDQUFBO1FBQzdCLFFBQUcsR0FBRyxDQUFDLENBQUE7UUFDUCxRQUFHLEdBQUcsR0FBRyxDQUFBO1FBQ1QsU0FBSSxHQUFHLENBQUMsQ0FBQTtRQUNSLFVBQUssR0FBRyxFQUFFLENBQUE7UUFDVixnQkFBVyxHQUFHLEVBQUUsQ0FBQTtRQUNoQixnQkFBVyxHQUFHLEVBQUUsQ0FBQTtRQUNoQixpQkFBWSxHQUFHLEVBQUUsQ0FBQTtRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLGNBQVMsR0FBRyxJQUFJLENBQUE7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQTtRQUNoQixVQUFLLEdBQUcsQ0FBQyxDQUFBO1FBVVIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFBO1FBQ3pDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtRQUluRCxVQUFLLEdBQWdCLEVBQUUsQ0FBQTtLQXFEeEI7SUFu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QUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQVNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7XG4gIGdldFNsaWRlclRyYWNrQmFja2dyb3VuZCxcbiAgcmFuZG9tSWQsXG4gIHNsaWRlckNvbG9ycyxcbn0gZnJvbSAnQHNlYmdyb3VwL2V4dHJhY3QnXG5cbmludGVyZmFjZSBTbGlkZXJTdHlsZSB7XG4gIGJhY2tncm91bmQ/OiBzdHJpbmdcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdnLXNsaWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOZ2dTbGlkZXJDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmdnU2xpZGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzXG57XG4gIEBJbnB1dCgpIG5hbWUgPSBgJHtyYW5kb21JZCgpfS1zbGlkZXJgXG4gIEBJbnB1dCgpIG1pbiA9IDBcbiAgQElucHV0KCkgbWF4ID0gMTAwXG4gIEBJbnB1dCgpIHN0ZXAgPSAxXG4gIEBJbnB1dCgpIGxhYmVsID0gJydcbiAgQElucHV0KCkgaW5zdHJ1Y3Rpb24gPSAnJ1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZSA9ICcnXG4gIEBJbnB1dCgpIGhhc1RleHRib3ggPSBmYWxzZVxuICBASW5wdXQoKSB1bml0TGFiZWwgPSAna3InXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2VcbiAgQElucHV0KCkgdmFsdWUgPSAwXG4gIEBJbnB1dCgpIGVudGVya2V5aGludD86XG4gICAgfCAnZW50ZXInXG4gICAgfCAnZG9uZSdcbiAgICB8ICdnbydcbiAgICB8ICduZXh0J1xuICAgIHwgJ3ByZXZpb3VzJ1xuICAgIHwgJ3NlYXJjaCdcbiAgICB8ICdzZW5kJ1xuXG4gIEBPdXRwdXQoKSBzbGlkZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKVxuICBAT3V0cHV0KCkgc2xpZGVyVG91Y2ggPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICBvbkNoYW5nZUZuPzogKHZhbDogbnVtYmVyKSA9PiB2b2lkXG4gIG9uVG91Y2hlZEZuPzogVm9pZEZ1bmN0aW9uXG4gIHN0eWxlOiBTbGlkZXJTdHlsZSA9IHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRUcmFja0JhY2tncm91bmQoKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIFsnbWluJywgJ21heCcsICd2YWx1ZSddLnNvbWUoKHg6IHN0cmluZykgPT5cbiAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNoYW5nZXMsIHgpLFxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhpcy5zZXRUcmFja0JhY2tncm91bmQoKVxuICAgIH1cbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnNsaWRlclRvdWNoLmVtaXQodHJ1ZSlcbiAgICB0aGlzLm9uVG91Y2hlZEZuICYmIHRoaXMub25Ub3VjaGVkRm4oKVxuICB9XG5cbiAgaGFuZGxlQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlID8/IDBcbiAgICB0aGlzLnNldFRyYWNrQmFja2dyb3VuZCgpXG4gICAgdGhpcy5zbGlkZXJDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKVxuICAgIHRoaXMub25DaGFuZ2VGbiAmJiB0aGlzLm9uQ2hhbmdlRm4odGhpcy52YWx1ZSlcbiAgfVxuXG4gIHNldFRyYWNrQmFja2dyb3VuZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zdHlsZS5iYWNrZ3JvdW5kID0gc2xpZGVyQ29sb3JzLmRpc2FibGVkXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBwZXJjZW50ID0gKCh0aGlzLnZhbHVlIC0gdGhpcy5taW4pIC8gKHRoaXMubWF4IC0gdGhpcy5taW4pKSAqIDEwMFxuICAgIHRoaXMuc3R5bGUuYmFja2dyb3VuZCA9IGdldFNsaWRlclRyYWNrQmFja2dyb3VuZChwZXJjZW50KVxuICB9XG5cbiAgLyoqIGNvbnRyb2wgdmFsdWUgYWNjZXNzb3IgZnVuY3Rpb25zICovXG4gIHdyaXRlVmFsdWUodmFsOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZSAhPT0gdmFsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsID8/IDBcbiAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKClcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmblxuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmblxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiISFsYWJlbFwiIGNsYXNzPVwiZ2RzLXNsaWRlci1sYWJlbC1jb250YWluZXJcIj5cbiAgPGRpdj5cbiAgICA8bGFiZWwgW2F0dHIuZm9yXT1cIm5hbWVcIiBbYXR0ci5pZF09XCJuYW1lICsgJy1sYWJlbCdcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gICAgPHAgKm5nSWY9XCIhIWluc3RydWN0aW9uXCI+e3sgaW5zdHJ1Y3Rpb24gfX08L3A+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzVGV4dGJveFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIXVuaXRMYWJlbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImdyb3VwIGdyb3VwLWJvcmRlciBncm91cC1mb2N1c1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRGaWVsZFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tdGV4dFwiPnt7IHVuaXRMYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdW5pdExhYmVsXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5wdXRGaWVsZFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48aW5wdXRcbiAgdHlwZT1cInJhbmdlXCJcbiAgW2F0dHIuaWRdPVwibmFtZVwiXG4gIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gIFthdHRyLm1pbl09XCJtaW5cIlxuICBbYXR0ci5tYXhdPVwibWF4XCJcbiAgW2F0dHIuc3RlcF09XCJzdGVwXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gIFtuZ1N0eWxlXT1cInN0eWxlXCJcbiAgKGJsdXIpPVwib25CbHVyKClcIlxuICAoaW5wdXQpPVwiaGFuZGxlQ2hhbmdlKClcIlxuLz5cblxuPHAgKm5nSWY9XCIhIWVycm9yTWVzc2FnZVwiIGNsYXNzPVwiZ2RzLXNsaWRlci1lcnJvci1pbmZvXCI+XG4gIHt7IGVycm9yTWVzc2FnZSB9fVxuPC9wPlxuXG48bmctdGVtcGxhdGUgI2lucHV0RmllbGQ+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICBbY2xhc3MuaXMtaW52YWxpZF09XCIhIWVycm9yTWVzc2FnZVwiXG4gICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICBbYXR0ci5pZF09XCJuYW1lICsgJy10ZXh0Ym94J1wiXG4gICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJuYW1lICsgJy1sYWJlbCdcIlxuICAgIFthdHRyLmVudGVya2V5aGludF09XCJlbnRlcmtleWhpbnRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgIChpbnB1dCk9XCJoYW5kbGVDaGFuZ2UoKVwiXG4gIC8+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,140 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Input, Output, ContentChildren, NgModule } from '@angular/core';
3
- import { randomId } from '@sebgroup/extract';
4
- import * as i1 from '@angular/common';
5
- import { CommonModule } from '@angular/common';
6
-
7
- class NggAccordionListItemComponent {
8
- constructor() {
9
- this.id = randomId();
10
- this.listItemHeader = '';
11
- this.listItemSubHeader = '';
12
- this.expandedChange = new EventEmitter();
13
- this.contentHeight = '0px';
14
- this.isExpanded = false;
15
- }
16
- shrink() {
17
- this.isExpanded = false;
18
- this.contentHeight = '0px';
19
- }
20
- expand() {
21
- this.isExpanded = true;
22
- this.contentHeight = 'auto';
23
- }
24
- toggleExpanded() {
25
- this.isExpanded = !this.isExpanded;
26
- if (this.isExpanded) {
27
- this.contentHeight = 'auto';
28
- }
29
- else {
30
- this.contentHeight = '0px';
31
- }
32
- this.expandedChange.emit(this);
33
- }
34
- }
35
- NggAccordionListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- NggAccordionListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggAccordionListItemComponent, selector: "div[ngg-accordion-list-item]", inputs: { id: "id", listItemHeader: "listItemHeader", listItemSubHeader: "listItemSubHeader" }, outputs: { expandedChange: "expandedChange" }, ngImport: i0, template: "<ng-container data-testid=\"accordion-list-item-root\">\n <div role=\"heading\" aria-level=\"2\" [attr.id]=\"id\">\n <button\n data-testid=\"accordion-list-item-expander-button\"\n [attr.id]=\"id + '_header'\"\n (click)=\"toggleExpanded()\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"this.isExpanded\"\n [attr.aria-controls]=\"id + '_section'\"\n >\n <span data-testid=\"accordion-list-item-header\">{{ listItemHeader }}</span>\n <span data-testid=\"accordion-list-item-subheader\">{{\n listItemSubHeader\n }}</span>\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.8095 9.22817L18.1907 8.60942C18.0438 8.46255 17.8063 8.46255 17.6595 8.60942L12.0001 14.2563L6.34072 8.60942C6.19385 8.46255 5.95635 8.46255 5.80947 8.60942L5.19072 9.22817C5.04385 9.37505 5.04385 9.61255 5.19072 9.75942L11.7345 16.3032C11.8813 16.45 12.1188 16.45 12.2657 16.3032L18.8095 9.75942C18.9563 9.61255 18.9563 9.37505 18.8095 9.22817Z\"\n fill=\"#333333\"\n />\n </svg>\n </button>\n <div\n role=\"region\"\n [hidden]=\"!this.isExpanded\"\n [ngStyle]=\"{ height: this.contentHeight }\"\n [id]=\"id + '_section'\"\n [attr.aria-labelledby]=\"id + '_header'\"\n data-testid=\"accordion-list-item-content\"\n >\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionListItemComponent, decorators: [{
38
- type: Component,
39
- args: [{ selector: 'div[ngg-accordion-list-item]', template: "<ng-container data-testid=\"accordion-list-item-root\">\n <div role=\"heading\" aria-level=\"2\" [attr.id]=\"id\">\n <button\n data-testid=\"accordion-list-item-expander-button\"\n [attr.id]=\"id + '_header'\"\n (click)=\"toggleExpanded()\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"this.isExpanded\"\n [attr.aria-controls]=\"id + '_section'\"\n >\n <span data-testid=\"accordion-list-item-header\">{{ listItemHeader }}</span>\n <span data-testid=\"accordion-list-item-subheader\">{{\n listItemSubHeader\n }}</span>\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.8095 9.22817L18.1907 8.60942C18.0438 8.46255 17.8063 8.46255 17.6595 8.60942L12.0001 14.2563L6.34072 8.60942C6.19385 8.46255 5.95635 8.46255 5.80947 8.60942L5.19072 9.22817C5.04385 9.37505 5.04385 9.61255 5.19072 9.75942L11.7345 16.3032C11.8813 16.45 12.1188 16.45 12.2657 16.3032L18.8095 9.75942C18.9563 9.61255 18.9563 9.37505 18.8095 9.22817Z\"\n fill=\"#333333\"\n />\n </svg>\n </button>\n <div\n role=\"region\"\n [hidden]=\"!this.isExpanded\"\n [ngStyle]=\"{ height: this.contentHeight }\"\n [id]=\"id + '_section'\"\n [attr.aria-labelledby]=\"id + '_header'\"\n data-testid=\"accordion-list-item-content\"\n >\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
40
- }], propDecorators: { id: [{
41
- type: Input
42
- }], listItemHeader: [{
43
- type: Input
44
- }], listItemSubHeader: [{
45
- type: Input
46
- }], expandedChange: [{
47
- type: Output
48
- }] } });
49
-
50
- class NggAccordionComponent {
51
- constructor() {
52
- this.closeOthers = false;
53
- }
54
- get expandAll() {
55
- return this._expandAll;
56
- }
57
- set expandAll(value) {
58
- var _a, _b;
59
- if (value === this._expandAll)
60
- return;
61
- if (this._expandAll) {
62
- (_a = this.expandAllSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
63
- }
64
- this._expandAll = value;
65
- this.expandAllSubscription = (_b = this._expandAll) === null || _b === void 0 ? void 0 : _b.subscribe(() => {
66
- if (this.closeOthers === false) {
67
- const itemArray = this.items ? Array.from(this.items) : undefined;
68
- if (itemArray) {
69
- for (const i of itemArray) {
70
- i.expand();
71
- }
72
- }
73
- }
74
- });
75
- }
76
- ngAfterContentChecked() {
77
- if (this.closeOthers) {
78
- const itemArray = this.items ? Array.from(this.items) : undefined;
79
- if (itemArray) {
80
- for (const i of itemArray) {
81
- i.expandedChange.subscribe((child) => this.onChildExpanded(child));
82
- }
83
- }
84
- }
85
- }
86
- ngOnDestroy() {
87
- var _a;
88
- if (this.closeOthers) {
89
- const itemArray = this.items ? Array.from(this.items) : undefined;
90
- if (itemArray) {
91
- for (const i of itemArray) {
92
- i.expandedChange.unsubscribe();
93
- }
94
- }
95
- }
96
- (_a = this.expandAllSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
97
- }
98
- onChildExpanded(childIdentity) {
99
- if (this.closeOthers && childIdentity.isExpanded && this.items) {
100
- this.items.forEach((item) => {
101
- if (item !== childIdentity)
102
- item.shrink();
103
- });
104
- }
105
- }
106
- }
107
- NggAccordionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
108
- NggAccordionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NggAccordionComponent, selector: "ngg-accordion", inputs: { closeOthers: "closeOthers", expandAll: "expandAll" }, queries: [{ propertyName: "items", predicate: NggAccordionListItemComponent }], ngImport: i0, template: "<div class=\"accordion\" data-testid=\"accordion-root\">\n <ng-content></ng-content>\n</div>\n" });
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionComponent, decorators: [{
110
- type: Component,
111
- args: [{ selector: 'ngg-accordion', template: "<div class=\"accordion\" data-testid=\"accordion-root\">\n <ng-content></ng-content>\n</div>\n" }]
112
- }], propDecorators: { items: [{
113
- type: ContentChildren,
114
- args: [NggAccordionListItemComponent]
115
- }], closeOthers: [{
116
- type: Input
117
- }], expandAll: [{
118
- type: Input
119
- }] } });
120
-
121
- class NggAccordionModule {
122
- }
123
- NggAccordionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
124
- NggAccordionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionModule, declarations: [NggAccordionListItemComponent, NggAccordionComponent], imports: [CommonModule], exports: [NggAccordionListItemComponent, NggAccordionComponent] });
125
- NggAccordionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionModule, imports: [CommonModule] });
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NggAccordionModule, decorators: [{
127
- type: NgModule,
128
- args: [{
129
- imports: [CommonModule],
130
- exports: [NggAccordionListItemComponent, NggAccordionComponent],
131
- declarations: [NggAccordionListItemComponent, NggAccordionComponent],
132
- }]
133
- }] });
134
-
135
- /**
136
- * Generated bundle index. Do not edit.
137
- */
138
-
139
- export { NggAccordionComponent, NggAccordionListItemComponent, NggAccordionModule };
140
- //# sourceMappingURL=sebgroup-green-angular-src-lib-accordion.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sebgroup-green-angular-src-lib-accordion.mjs","sources":["../../../../libs/angular/src/lib/accordion/accordion-list-item.component.ts","../../../../libs/angular/src/lib/accordion/accordion-list-item.component.html","../../../../libs/angular/src/lib/accordion/accordion.component.ts","../../../../libs/angular/src/lib/accordion/accordion.component.html","../../../../libs/angular/src/lib/accordion/accordion.module.ts","../../../../libs/angular/src/lib/accordion/sebgroup-green-angular-src-lib-accordion.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core'\nimport { randomId } from '@sebgroup/extract'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[ngg-accordion-list-item]',\n templateUrl: './accordion-list-item.component.html',\n})\nexport class NggAccordionListItemComponent {\n @Input() public id: string = randomId()\n @Input() public listItemHeader = ''\n @Input() public listItemSubHeader = ''\n @Output() public expandedChange: EventEmitter<NggAccordionListItemComponent> =\n new EventEmitter<NggAccordionListItemComponent>()\n\n public contentHeight = '0px'\n public isExpanded = false\n\n public shrink(): void {\n this.isExpanded = false\n this.contentHeight = '0px'\n }\n\n public expand(): void {\n this.isExpanded = true\n this.contentHeight = 'auto'\n }\n\n public toggleExpanded(): void {\n this.isExpanded = !this.isExpanded\n if (this.isExpanded) {\n this.contentHeight = 'auto'\n } else {\n this.contentHeight = '0px'\n }\n\n this.expandedChange.emit(this)\n }\n}\n","<ng-container data-testid=\"accordion-list-item-root\">\n <div role=\"heading\" aria-level=\"2\" [attr.id]=\"id\">\n <button\n data-testid=\"accordion-list-item-expander-button\"\n [attr.id]=\"id + '_header'\"\n (click)=\"toggleExpanded()\"\n tabindex=\"0\"\n [attr.aria-expanded]=\"this.isExpanded\"\n [attr.aria-controls]=\"id + '_section'\"\n >\n <span data-testid=\"accordion-list-item-header\">{{ listItemHeader }}</span>\n <span data-testid=\"accordion-list-item-subheader\">{{\n listItemSubHeader\n }}</span>\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.8095 9.22817L18.1907 8.60942C18.0438 8.46255 17.8063 8.46255 17.6595 8.60942L12.0001 14.2563L6.34072 8.60942C6.19385 8.46255 5.95635 8.46255 5.80947 8.60942L5.19072 9.22817C5.04385 9.37505 5.04385 9.61255 5.19072 9.75942L11.7345 16.3032C11.8813 16.45 12.1188 16.45 12.2657 16.3032L18.8095 9.75942C18.9563 9.61255 18.9563 9.37505 18.8095 9.22817Z\"\n fill=\"#333333\"\n />\n </svg>\n </button>\n <div\n role=\"region\"\n [hidden]=\"!this.isExpanded\"\n [ngStyle]=\"{ height: this.contentHeight }\"\n [id]=\"id + '_section'\"\n [attr.aria-labelledby]=\"id + '_header'\"\n data-testid=\"accordion-list-item-content\"\n >\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</ng-container>\n","import {\n AfterContentChecked,\n Component,\n ContentChildren,\n Input,\n OnDestroy,\n QueryList,\n} from '@angular/core'\nimport { Observable, Subscription } from 'rxjs'\nimport { NggAccordionListItemComponent } from './accordion-list-item.component'\n\n@Component({\n selector: 'ngg-accordion',\n templateUrl: './accordion.component.html',\n})\nexport class NggAccordionComponent implements AfterContentChecked, OnDestroy {\n @ContentChildren(NggAccordionListItemComponent) private items:\n | QueryList<NggAccordionListItemComponent>\n | undefined\n private _expandAll: Observable<void> | undefined\n private expandAllSubscription: Subscription | undefined\n @Input() public closeOthers = false\n @Input()\n public get expandAll(): Observable<void> | undefined {\n return this._expandAll\n }\n public set expandAll(value: Observable<void> | undefined) {\n if (value === this._expandAll) return\n if (this._expandAll) {\n this.expandAllSubscription?.unsubscribe()\n }\n\n this._expandAll = value\n this.expandAllSubscription = this._expandAll?.subscribe(() => {\n if (this.closeOthers === false) {\n const itemArray = this.items ? Array.from(this.items) : undefined\n if (itemArray) {\n for (const i of itemArray) {\n i.expand()\n }\n }\n }\n })\n }\n\n public ngAfterContentChecked(): void {\n if (this.closeOthers) {\n const itemArray = this.items ? Array.from(this.items) : undefined\n if (itemArray) {\n for (const i of itemArray) {\n i.expandedChange.subscribe((child) => this.onChildExpanded(child))\n }\n }\n }\n }\n\n public ngOnDestroy(): void {\n if (this.closeOthers) {\n const itemArray = this.items ? Array.from(this.items) : undefined\n if (itemArray) {\n for (const i of itemArray) {\n i.expandedChange.unsubscribe()\n }\n }\n }\n\n this.expandAllSubscription?.unsubscribe()\n }\n\n private onChildExpanded(childIdentity: NggAccordionListItemComponent) {\n if (this.closeOthers && childIdentity.isExpanded && this.items) {\n this.items.forEach((item) => {\n if (item !== childIdentity) item.shrink()\n })\n }\n }\n}\n","<div class=\"accordion\" data-testid=\"accordion-root\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { NggAccordionListItemComponent } from './accordion-list-item.component'\nimport { NggAccordionComponent } from './accordion.component'\n\n@NgModule({\n imports: [CommonModule],\n exports: [NggAccordionListItemComponent, NggAccordionComponent],\n declarations: [NggAccordionListItemComponent, NggAccordionComponent],\n})\nexport class NggAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAQa,6BAA6B,CAAA;AAL1C,IAAA,WAAA,GAAA;AAMkB,QAAA,IAAE,CAAA,EAAA,GAAW,QAAQ,EAAE,CAAA;AACvB,QAAA,IAAc,CAAA,cAAA,GAAG,EAAE,CAAA;AACnB,QAAA,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAA;AACrB,QAAA,IAAA,CAAA,cAAc,GAC7B,IAAI,YAAY,EAAiC,CAAA;AAE5C,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAA;AACrB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;KAsB1B;IApBQ,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;KAC3B;IAEM,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAA;KAC5B;IAEM,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAA;QAClC,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAA;AAC5B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;AAC3B,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC/B;;0HA7BU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,mNCR1C,uhDAyCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDjCa,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BAEE,8BAA8B,EAAA,QAAA,EAAA,uhDAAA,EAAA,CAAA;8BAIxB,EAAE,EAAA,CAAA;sBAAjB,KAAK;gBACU,cAAc,EAAA,CAAA;sBAA7B,KAAK;gBACU,iBAAiB,EAAA,CAAA;sBAAhC,KAAK;gBACW,cAAc,EAAA,CAAA;sBAA9B,MAAM;;;MEGI,qBAAqB,CAAA;AAJlC,IAAA,WAAA,GAAA;AAUkB,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAA;KAuDpC;AAtDC,IAAA,IACW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU,CAAA;KACvB;IACD,IAAW,SAAS,CAAC,KAAmC,EAAA;;AACtD,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU;YAAE,OAAM;QACrC,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,qBAAqB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAA;AAC1C,SAAA;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACvB,IAAI,CAAC,qBAAqB,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAC,MAAK;AAC3D,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;gBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;AACjE,gBAAA,IAAI,SAAS,EAAE;AACb,oBAAA,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;wBACzB,CAAC,CAAC,MAAM,EAAE,CAAA;AACX,qBAAA;AACF,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAA;KACH;IAEM,qBAAqB,GAAA;QAC1B,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;AACjE,YAAA,IAAI,SAAS,EAAE;AACb,gBAAA,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;AACzB,oBAAA,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;AACnE,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAEM,WAAW,GAAA;;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;AACjE,YAAA,IAAI,SAAS,EAAE;AACb,gBAAA,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;AACzB,oBAAA,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAA;AAC/B,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,qBAAqB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAA;KAC1C;AAEO,IAAA,eAAe,CAAC,aAA4C,EAAA;QAClE,IAAI,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE;YAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC1B,IAAI,IAAI,KAAK,aAAa;oBAAE,IAAI,CAAC,MAAM,EAAE,CAAA;AAC3C,aAAC,CAAC,CAAA;AACH,SAAA;KACF;;kHA5DU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAArB,qBAAqB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EACf,6BAA6B,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBhD,iGAGA,EAAA,CAAA,CAAA;2FDYa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,iGAAA,EAAA,CAAA;8BAI+B,KAAK,EAAA,CAAA;sBAA5D,eAAe;uBAAC,6BAA6B,CAAA;gBAK9B,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAEK,SAAS,EAAA,CAAA;sBADnB,KAAK;;;MEZK,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAlB,kBAAkB,EAAA,YAAA,EAAA,CAFd,6BAA6B,EAAE,qBAAqB,aAFzD,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,6BAA6B,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAGnD,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAJnB,YAAY,CAAA,EAAA,CAAA,CAAA;2FAIX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,6BAA6B,EAAE,qBAAqB,CAAC;AAC/D,oBAAA,YAAY,EAAE,CAAC,6BAA6B,EAAE,qBAAqB,CAAC;iBACrE,CAAA;;;ACTD;;AAEG;;;;"}