@patternfly/elements 3.0.1 → 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 (371) hide show
  1. package/custom-elements.json +8857 -8783
  2. package/form-control.css +127 -0
  3. package/package.json +12 -25
  4. package/pf-accordion/pf-accordion-header.css +23 -0
  5. package/pf-accordion/pf-accordion-header.d.ts +52 -43
  6. package/pf-accordion/pf-accordion-header.js +130 -87
  7. package/pf-accordion/pf-accordion-header.js.map +1 -1
  8. package/pf-accordion/pf-accordion-panel.css +15 -0
  9. package/pf-accordion/pf-accordion-panel.d.ts +27 -25
  10. package/pf-accordion/pf-accordion-panel.js +29 -43
  11. package/pf-accordion/pf-accordion-panel.js.map +1 -1
  12. package/pf-accordion/pf-accordion.d.ts +122 -65
  13. package/pf-accordion/pf-accordion.js +283 -94
  14. package/pf-accordion/pf-accordion.js.map +1 -1
  15. package/pf-accordion/test/pf-accordion.e2e.js +12 -0
  16. package/pf-accordion/test/pf-accordion.e2e.js.map +1 -1
  17. package/pf-accordion/test/pf-accordion.spec.js +366 -350
  18. package/pf-accordion/test/pf-accordion.spec.js.map +1 -1
  19. package/pf-avatar/pf-avatar.css +50 -24
  20. package/pf-avatar/pf-avatar.d.ts +29 -3
  21. package/pf-avatar/pf-avatar.js +51 -9
  22. package/pf-avatar/pf-avatar.js.map +1 -1
  23. package/pf-avatar/test/pf-avatar.e2e.js +12 -0
  24. package/pf-avatar/test/pf-avatar.e2e.js.map +1 -1
  25. package/pf-avatar/test/pf-avatar.spec.js +2 -3
  26. package/pf-avatar/test/pf-avatar.spec.js.map +1 -1
  27. package/pf-back-to-top/pf-back-to-top.css +10 -0
  28. package/pf-back-to-top/pf-back-to-top.d.ts +14 -18
  29. package/pf-back-to-top/pf-back-to-top.js +9 -30
  30. package/pf-back-to-top/pf-back-to-top.js.map +1 -1
  31. package/pf-back-to-top/test/pf-back-to-top.e2e.js +12 -0
  32. package/pf-back-to-top/test/pf-back-to-top.e2e.js.map +1 -1
  33. package/pf-background-image/pf-background-image.d.ts +4 -4
  34. package/pf-background-image/pf-background-image.js +1 -12
  35. package/pf-background-image/pf-background-image.js.map +1 -1
  36. package/pf-background-image/test/pf-background-image.e2e.js +12 -0
  37. package/pf-background-image/test/pf-background-image.e2e.js.map +1 -1
  38. package/pf-badge/pf-badge.css +4 -0
  39. package/pf-badge/pf-badge.d.ts +26 -22
  40. package/pf-badge/pf-badge.js +14 -27
  41. package/pf-badge/pf-badge.js.map +1 -1
  42. package/pf-badge/test/pf-badge.e2e.js +12 -0
  43. package/pf-badge/test/pf-badge.e2e.js.map +1 -1
  44. package/pf-banner/pf-banner.d.ts +16 -16
  45. package/pf-banner/pf-banner.js +1 -24
  46. package/pf-banner/pf-banner.js.map +1 -1
  47. package/pf-banner/test/pf-banner.e2e.js +12 -0
  48. package/pf-banner/test/pf-banner.e2e.js.map +1 -1
  49. package/pf-button/pf-button.css +22 -12
  50. package/pf-button/pf-button.d.ts +128 -122
  51. package/pf-button/pf-button.js +95 -172
  52. package/pf-button/pf-button.js.map +1 -1
  53. package/pf-button/test/pf-button.e2e.js +12 -0
  54. package/pf-button/test/pf-button.e2e.js.map +1 -1
  55. package/pf-card/pf-card.css +172 -43
  56. package/pf-card/pf-card.d.ts +41 -38
  57. package/pf-card/pf-card.js +37 -54
  58. package/pf-card/pf-card.js.map +1 -1
  59. package/pf-card/test/pf-card.e2e.js +12 -0
  60. package/pf-card/test/pf-card.e2e.js.map +1 -1
  61. package/pf-chip/pf-chip-group.css +9 -6
  62. package/pf-chip/pf-chip-group.d.ts +27 -14
  63. package/pf-chip/pf-chip-group.js +65 -94
  64. package/pf-chip/pf-chip-group.js.map +1 -1
  65. package/pf-chip/pf-chip.d.ts +20 -9
  66. package/pf-chip/pf-chip.js +1 -8
  67. package/pf-chip/pf-chip.js.map +1 -1
  68. package/pf-chip/test/pf-chip-group.spec.js +42 -22
  69. package/pf-chip/test/pf-chip-group.spec.js.map +1 -1
  70. package/pf-chip/test/pf-chip.e2e.js +12 -0
  71. package/pf-chip/test/pf-chip.e2e.js.map +1 -1
  72. package/pf-clipboard-copy/pf-clipboard-copy.css +83 -85
  73. package/pf-clipboard-copy/pf-clipboard-copy.d.ts +53 -18
  74. package/pf-clipboard-copy/pf-clipboard-copy.js +55 -44
  75. package/pf-clipboard-copy/pf-clipboard-copy.js.map +1 -1
  76. package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.js +12 -0
  77. package/pf-clipboard-copy/test/pf-clipboard-copy.e2e.js.map +1 -1
  78. package/pf-code-block/pf-code-block.css +7 -4
  79. package/pf-code-block/pf-code-block.d.ts +4 -25
  80. package/pf-code-block/pf-code-block.js +44 -23
  81. package/pf-code-block/pf-code-block.js.map +1 -1
  82. package/pf-code-block/test/pf-code-block.e2e.js +12 -0
  83. package/pf-code-block/test/pf-code-block.e2e.js.map +1 -1
  84. package/pf-dropdown/context.d.ts +2 -3
  85. package/pf-dropdown/context.js.map +1 -1
  86. package/pf-dropdown/pf-dropdown-group.d.ts +3 -9
  87. package/pf-dropdown/pf-dropdown-group.js +1 -5
  88. package/pf-dropdown/pf-dropdown-group.js.map +1 -1
  89. package/pf-dropdown/pf-dropdown-item.d.ts +21 -27
  90. package/pf-dropdown/pf-dropdown-item.js +1 -37
  91. package/pf-dropdown/pf-dropdown-item.js.map +1 -1
  92. package/pf-dropdown/pf-dropdown-menu.d.ts +4 -10
  93. package/pf-dropdown/pf-dropdown-menu.js +23 -23
  94. package/pf-dropdown/pf-dropdown-menu.js.map +1 -1
  95. package/pf-dropdown/pf-dropdown.d.ts +8 -24
  96. package/pf-dropdown/pf-dropdown.js +1 -26
  97. package/pf-dropdown/pf-dropdown.js.map +1 -1
  98. package/pf-dropdown/test/pf-dropdown.e2e.js +12 -0
  99. package/pf-dropdown/test/pf-dropdown.e2e.js.map +1 -1
  100. package/pf-icon/pf-icon.css +22 -0
  101. package/pf-icon/pf-icon.d.ts +93 -4
  102. package/pf-icon/pf-icon.js +191 -13
  103. package/pf-icon/pf-icon.js.map +1 -1
  104. package/pf-icon/test/pf-icon.e2e.js +12 -0
  105. package/pf-icon/test/pf-icon.e2e.js.map +1 -1
  106. package/pf-icon/test/pf-icon.spec.js +102 -88
  107. package/pf-icon/test/pf-icon.spec.js.map +1 -1
  108. package/pf-jump-links/pf-jump-links-item.d.ts +4 -11
  109. package/pf-jump-links/pf-jump-links-item.js +8 -15
  110. package/pf-jump-links/pf-jump-links-item.js.map +1 -1
  111. package/pf-jump-links/pf-jump-links-list.d.ts +2 -2
  112. package/pf-jump-links/pf-jump-links-list.js +1 -5
  113. package/pf-jump-links/pf-jump-links-list.js.map +1 -1
  114. package/pf-jump-links/pf-jump-links.d.ts +2 -2
  115. package/pf-jump-links/pf-jump-links.js +23 -62
  116. package/pf-jump-links/pf-jump-links.js.map +1 -1
  117. package/pf-jump-links/test/pf-jump-links.e2e.js +12 -0
  118. package/pf-jump-links/test/pf-jump-links.e2e.js.map +1 -1
  119. package/pf-label/pf-label.css +38 -5
  120. package/pf-label/pf-label.d.ts +65 -69
  121. package/pf-label/pf-label.js +49 -90
  122. package/pf-label/pf-label.js.map +1 -1
  123. package/pf-label/test/pf-label.e2e.js +12 -0
  124. package/pf-label/test/pf-label.e2e.js.map +1 -1
  125. package/pf-label/test/pf-label.spec.js +26 -16
  126. package/pf-label/test/pf-label.spec.js.map +1 -1
  127. package/pf-modal/pf-modal.d.ts +17 -22
  128. package/pf-modal/pf-modal.js +13 -39
  129. package/pf-modal/pf-modal.js.map +1 -1
  130. package/pf-modal/test/pf-modal.e2e.js +12 -0
  131. package/pf-modal/test/pf-modal.e2e.js.map +1 -1
  132. package/pf-panel/pf-panel.d.ts +31 -3
  133. package/pf-panel/pf-panel.js +1 -10
  134. package/pf-panel/pf-panel.js.map +1 -1
  135. package/pf-panel/test/pf-panel.e2e.js +12 -0
  136. package/pf-panel/test/pf-panel.e2e.js.map +1 -1
  137. package/pf-popover/pf-popover.d.ts +66 -84
  138. package/pf-popover/pf-popover.js +33 -150
  139. package/pf-popover/pf-popover.js.map +1 -1
  140. package/pf-popover/test/pf-popover.e2e.js +12 -0
  141. package/pf-popover/test/pf-popover.e2e.js.map +1 -1
  142. package/pf-popover/test/pf-popover.spec.js +0 -11
  143. package/pf-popover/test/pf-popover.spec.js.map +1 -1
  144. package/pf-progress/pf-progress.d.ts +40 -40
  145. package/pf-progress/pf-progress.js +1 -61
  146. package/pf-progress/pf-progress.js.map +1 -1
  147. package/pf-progress/test/pf-progress.e2e.js +12 -0
  148. package/pf-progress/test/pf-progress.e2e.js.map +1 -1
  149. package/pf-progress-stepper/pf-progress-step.d.ts +2 -3
  150. package/pf-progress-stepper/pf-progress-step.js +4 -14
  151. package/pf-progress-stepper/pf-progress-step.js.map +1 -1
  152. package/pf-progress-stepper/pf-progress-stepper.d.ts +118 -2
  153. package/pf-progress-stepper/pf-progress-stepper.js +10 -12
  154. package/pf-progress-stepper/pf-progress-stepper.js.map +1 -1
  155. package/pf-progress-stepper/test/pf-progress-stepper.e2e.js +12 -0
  156. package/pf-progress-stepper/test/pf-progress-stepper.e2e.js.map +1 -1
  157. package/pf-select/pf-option-group.d.ts +2 -2
  158. package/pf-select/pf-option-group.js +1 -5
  159. package/pf-select/pf-option-group.js.map +1 -1
  160. package/pf-select/pf-option.css +1 -1
  161. package/pf-select/pf-option.d.ts +4 -4
  162. package/pf-select/pf-option.js +20 -30
  163. package/pf-select/pf-option.js.map +1 -1
  164. package/pf-select/pf-select.css +14 -6
  165. package/pf-select/pf-select.d.ts +183 -40
  166. package/pf-select/pf-select.js +185 -260
  167. package/pf-select/pf-select.js.map +1 -1
  168. package/pf-select/test/pf-select.e2e.js +12 -0
  169. package/pf-select/test/pf-select.e2e.js.map +1 -1
  170. package/pf-select/test/pf-select.spec.js +1292 -613
  171. package/pf-select/test/pf-select.spec.js.map +1 -1
  172. package/pf-spinner/pf-spinner.css +27 -17
  173. package/pf-spinner/pf-spinner.d.ts +21 -17
  174. package/pf-spinner/pf-spinner.js +20 -24
  175. package/pf-spinner/pf-spinner.js.map +1 -1
  176. package/pf-spinner/test/pf-spinner.e2e.js +12 -0
  177. package/pf-spinner/test/pf-spinner.e2e.js.map +1 -1
  178. package/pf-switch/pf-switch.css +39 -13
  179. package/pf-switch/pf-switch.d.ts +48 -34
  180. package/pf-switch/pf-switch.js +114 -43
  181. package/pf-switch/pf-switch.js.map +1 -1
  182. package/pf-switch/test/pf-switch.e2e.js +12 -0
  183. package/pf-switch/test/pf-switch.e2e.js.map +1 -1
  184. package/pf-table/pf-caption.d.ts +2 -2
  185. package/pf-table/pf-caption.js +1 -4
  186. package/pf-table/pf-caption.js.map +1 -1
  187. package/pf-table/pf-table.d.ts +424 -424
  188. package/pf-table/pf-table.js +7 -645
  189. package/pf-table/pf-table.js.map +1 -1
  190. package/pf-table/pf-tbody.d.ts +2 -2
  191. package/pf-table/pf-tbody.js +1 -4
  192. package/pf-table/pf-tbody.js.map +1 -1
  193. package/pf-table/pf-td.d.ts +2 -2
  194. package/pf-table/pf-td.js +1 -4
  195. package/pf-table/pf-td.js.map +1 -1
  196. package/pf-table/pf-th.d.ts +2 -2
  197. package/pf-table/pf-th.js +1 -4
  198. package/pf-table/pf-th.js.map +1 -1
  199. package/pf-table/pf-thead.d.ts +2 -2
  200. package/pf-table/pf-thead.js +1 -4
  201. package/pf-table/pf-thead.js.map +1 -1
  202. package/pf-table/pf-tr.d.ts +1 -1
  203. package/pf-table/pf-tr.js +1 -4
  204. package/pf-table/pf-tr.js.map +1 -1
  205. package/pf-table/test/pf-table.e2e.js +12 -0
  206. package/pf-table/test/pf-table.e2e.js.map +1 -1
  207. package/pf-tabs/context.d.ts +2 -3
  208. package/pf-tabs/context.js.map +1 -1
  209. package/pf-tabs/pf-tab-panel.d.ts +3 -5
  210. package/pf-tabs/pf-tab-panel.js +1 -7
  211. package/pf-tabs/pf-tab-panel.js.map +1 -1
  212. package/pf-tabs/pf-tab.d.ts +37 -37
  213. package/pf-tabs/pf-tab.js +16 -54
  214. package/pf-tabs/pf-tab.js.map +1 -1
  215. package/pf-tabs/pf-tabs.d.ts +36 -37
  216. package/pf-tabs/pf-tabs.js +40 -78
  217. package/pf-tabs/pf-tabs.js.map +1 -1
  218. package/pf-tabs/test/pf-tabs.e2e.js +12 -0
  219. package/pf-tabs/test/pf-tabs.e2e.js.map +1 -1
  220. package/pf-tabs/test/pf-tabs.spec.js +11 -12
  221. package/pf-tabs/test/pf-tabs.spec.js.map +1 -1
  222. package/pf-text-area/pf-text-area.d.ts +128 -134
  223. package/pf-text-area/pf-text-area.js +7 -131
  224. package/pf-text-area/pf-text-area.js.map +1 -1
  225. package/pf-text-area/test/pf-text-area.e2e.js +12 -0
  226. package/pf-text-area/test/pf-text-area.e2e.js.map +1 -1
  227. package/pf-text-input/pf-text-input.d.ts +129 -135
  228. package/pf-text-input/pf-text-input.js +7 -132
  229. package/pf-text-input/pf-text-input.js.map +1 -1
  230. package/pf-text-input/test/pf-text-input.e2e.js +12 -0
  231. package/pf-text-input/test/pf-text-input.e2e.js.map +1 -1
  232. package/pf-tile/pf-tile.d.ts +21 -20
  233. package/pf-tile/pf-tile.js +18 -35
  234. package/pf-tile/pf-tile.js.map +1 -1
  235. package/pf-tile/test/pf-tile.e2e.js +12 -0
  236. package/pf-tile/test/pf-tile.e2e.js.map +1 -1
  237. package/pf-timestamp/pf-timestamp.d.ts +2 -2
  238. package/pf-timestamp/pf-timestamp.js +1 -3
  239. package/pf-timestamp/pf-timestamp.js.map +1 -1
  240. package/pf-timestamp/test/pf-timestamp.e2e.js +12 -0
  241. package/pf-timestamp/test/pf-timestamp.e2e.js.map +1 -1
  242. package/pf-tooltip/pf-tooltip.d.ts +51 -50
  243. package/pf-tooltip/pf-tooltip.js +26 -106
  244. package/pf-tooltip/pf-tooltip.js.map +1 -1
  245. package/pf-tooltip/test/pf-tooltip.e2e.js +12 -0
  246. package/pf-tooltip/test/pf-tooltip.e2e.js.map +1 -1
  247. package/pfe.min.js +1194 -1002
  248. package/pfe.min.js.map +4 -4
  249. package/react/pf-accordion/pf-accordion-header.js +2 -2
  250. package/react/pf-accordion/pf-accordion-panel.js +2 -2
  251. package/react/pf-accordion/pf-accordion.js +2 -2
  252. package/react/pf-avatar/pf-avatar.d.ts +1 -1
  253. package/react/pf-avatar/pf-avatar.js +5 -3
  254. package/react/pf-back-to-top/pf-back-to-top.js +2 -2
  255. package/react/pf-background-image/pf-background-image.js +2 -2
  256. package/react/pf-badge/pf-badge.js +2 -2
  257. package/react/pf-banner/pf-banner.js +2 -2
  258. package/react/pf-button/pf-button.js +2 -2
  259. package/react/pf-card/pf-card.js +2 -2
  260. package/react/pf-chip/pf-chip-group.js +2 -2
  261. package/react/pf-chip/pf-chip.js +2 -2
  262. package/react/pf-clipboard-copy/pf-clipboard-copy.d.ts +1 -1
  263. package/react/pf-clipboard-copy/pf-clipboard-copy.js +5 -3
  264. package/react/pf-code-block/pf-code-block.js +2 -2
  265. package/react/pf-dropdown/pf-dropdown-group.js +2 -2
  266. package/react/pf-dropdown/pf-dropdown-item.js +2 -2
  267. package/react/pf-dropdown/pf-dropdown-menu.js +2 -2
  268. package/react/pf-dropdown/pf-dropdown.js +2 -2
  269. package/react/pf-icon/pf-icon.js +2 -2
  270. package/react/pf-jump-links/pf-jump-links-item.js +2 -2
  271. package/react/pf-jump-links/pf-jump-links-list.js +2 -2
  272. package/react/pf-jump-links/pf-jump-links.js +2 -2
  273. package/react/pf-label/pf-label.js +2 -2
  274. package/react/pf-modal/pf-modal.js +2 -2
  275. package/react/pf-panel/pf-panel.js +2 -2
  276. package/react/pf-popover/pf-popover.js +2 -2
  277. package/react/pf-progress/pf-progress.js +2 -2
  278. package/react/pf-progress-stepper/pf-progress-step.js +2 -2
  279. package/react/pf-progress-stepper/pf-progress-stepper.js +2 -2
  280. package/react/pf-select/pf-option-group.js +2 -2
  281. package/react/pf-select/pf-option.js +2 -2
  282. package/react/pf-select/pf-select.d.ts +1 -1
  283. package/react/pf-select/pf-select.js +2 -3
  284. package/react/pf-spinner/pf-spinner.js +2 -2
  285. package/react/pf-switch/pf-switch.js +2 -2
  286. package/react/pf-table/pf-caption.js +2 -2
  287. package/react/pf-table/pf-table.js +2 -2
  288. package/react/pf-table/pf-tbody.js +2 -2
  289. package/react/pf-table/pf-td.js +2 -2
  290. package/react/pf-table/pf-th.js +2 -2
  291. package/react/pf-table/pf-thead.js +2 -2
  292. package/react/pf-table/pf-tr.js +2 -2
  293. package/react/pf-tabs/pf-tab-panel.js +2 -2
  294. package/react/pf-tabs/pf-tab.js +2 -2
  295. package/react/pf-tabs/pf-tabs.js +2 -2
  296. package/react/pf-text-area/pf-text-area.js +2 -2
  297. package/react/pf-text-input/pf-text-input.js +2 -2
  298. package/react/pf-tile/pf-tile.js +2 -2
  299. package/react/pf-timestamp/pf-timestamp.js +2 -2
  300. package/react/pf-tooltip/pf-tooltip.js +2 -2
  301. package/pf-accordion/BaseAccordion.d.ts +0 -61
  302. package/pf-accordion/BaseAccordion.js +0 -269
  303. package/pf-accordion/BaseAccordion.js.map +0 -1
  304. package/pf-accordion/BaseAccordionHeader.css +0 -39
  305. package/pf-accordion/BaseAccordionHeader.d.ts +0 -29
  306. package/pf-accordion/BaseAccordionHeader.js +0 -128
  307. package/pf-accordion/BaseAccordionHeader.js.map +0 -1
  308. package/pf-accordion/BaseAccordionPanel.css +0 -27
  309. package/pf-accordion/BaseAccordionPanel.d.ts +0 -7
  310. package/pf-accordion/BaseAccordionPanel.js +0 -33
  311. package/pf-accordion/BaseAccordionPanel.js.map +0 -1
  312. package/pf-avatar/BaseAvatar.css +0 -13
  313. package/pf-avatar/BaseAvatar.d.ts +0 -23
  314. package/pf-avatar/BaseAvatar.js +0 -62
  315. package/pf-avatar/BaseAvatar.js.map +0 -1
  316. package/pf-back-to-top/demo/demo.css +0 -25
  317. package/pf-badge/BaseBadge.css +0 -6
  318. package/pf-badge/BaseBadge.d.ts +0 -18
  319. package/pf-badge/BaseBadge.js +0 -16
  320. package/pf-badge/BaseBadge.js.map +0 -1
  321. package/pf-button/BaseButton.css +0 -68
  322. package/pf-button/BaseButton.d.ts +0 -51
  323. package/pf-button/BaseButton.js +0 -84
  324. package/pf-button/BaseButton.js.map +0 -1
  325. package/pf-card/BaseCard.css +0 -36
  326. package/pf-card/BaseCard.d.ts +0 -24
  327. package/pf-card/BaseCard.js +0 -51
  328. package/pf-card/BaseCard.js.map +0 -1
  329. package/pf-clipboard-copy/BaseClipboardCopy.css +0 -6
  330. package/pf-clipboard-copy/BaseClipboardCopy.d.ts +0 -18
  331. package/pf-clipboard-copy/BaseClipboardCopy.js +0 -25
  332. package/pf-clipboard-copy/BaseClipboardCopy.js.map +0 -1
  333. package/pf-code-block/BaseCodeBlock.css +0 -7
  334. package/pf-code-block/BaseCodeBlock.d.ts +0 -8
  335. package/pf-code-block/BaseCodeBlock.js +0 -22
  336. package/pf-code-block/BaseCodeBlock.js.map +0 -1
  337. package/pf-icon/BaseIcon.css +0 -22
  338. package/pf-icon/BaseIcon.d.ts +0 -41
  339. package/pf-icon/BaseIcon.js +0 -144
  340. package/pf-icon/BaseIcon.js.map +0 -1
  341. package/pf-label/BaseLabel.css +0 -44
  342. package/pf-label/BaseLabel.d.ts +0 -30
  343. package/pf-label/BaseLabel.js +0 -29
  344. package/pf-label/BaseLabel.js.map +0 -1
  345. package/pf-spinner/BaseSpinner.css +0 -20
  346. package/pf-spinner/BaseSpinner.d.ts +0 -27
  347. package/pf-spinner/BaseSpinner.js +0 -45
  348. package/pf-spinner/BaseSpinner.js.map +0 -1
  349. package/pf-switch/BaseSwitch.css +0 -36
  350. package/pf-switch/BaseSwitch.d.ts +0 -19
  351. package/pf-switch/BaseSwitch.js +0 -109
  352. package/pf-switch/BaseSwitch.js.map +0 -1
  353. package/pf-tabs/BaseTab.css +0 -60
  354. package/pf-tabs/BaseTab.d.ts +0 -32
  355. package/pf-tabs/BaseTab.js +0 -83
  356. package/pf-tabs/BaseTab.js.map +0 -1
  357. package/pf-tabs/BaseTabPanel.css +0 -7
  358. package/pf-tabs/BaseTabPanel.d.ts +0 -7
  359. package/pf-tabs/BaseTabPanel.js +0 -36
  360. package/pf-tabs/BaseTabPanel.js.map +0 -1
  361. package/pf-tabs/BaseTabs.css +0 -86
  362. package/pf-tabs/BaseTabs.d.ts +0 -38
  363. package/pf-tabs/BaseTabs.js +0 -221
  364. package/pf-tabs/BaseTabs.js.map +0 -1
  365. package/pf-tile/BaseTile.d.ts +0 -13
  366. package/pf-tile/BaseTile.js +0 -28
  367. package/pf-tile/BaseTile.js.map +0 -1
  368. package/pf-tooltip/BaseTooltip.css +0 -70
  369. package/pf-tooltip/BaseTooltip.d.ts +0 -16
  370. package/pf-tooltip/BaseTooltip.js +0 -54
  371. package/pf-tooltip/BaseTooltip.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pf-accordion.spec.js","sourceRoot":"","sources":["pf-accordion.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,oCAAoC;AACpC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACrH,OAAO,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,4CAA4C,CAAC;AAEpE,OAAO,2CAA2C,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEjE,QAAQ,CAAC,gBAAgB,EAAE;IACzB,IAAI,OAAoB,CAAC;IACzB,IAAI,OAA4B,CAAC;IACjC,IAAI,MAA0B,CAAC;IAC/B,IAAI,MAAyB,CAAC;IAC9B,IAAI,KAAuB,CAAC;IAC5B,IAAI,YAA+B,CAAC;IACpC,IAAI,WAA6B,CAAC;IAElC,KAAK,UAAU,gBAAgB;QAC7B,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,UAAU,iBAAiB;QAC9B,YAAY,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,UAAU,UAAU,CAAC,KAAa;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,UAAU,UAAU,CAAC,KAAa;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,UAAU,YAAY,CAAC,KAAa;QACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,UAAU,aAAa;QAC1B,OAAO,CAAC,SAAS,EAAE,CAAC;QACpB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,UAAU,eAAe;QAC5B,OAAO,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,SAAS,KAAK,CAAC,KAAa;QAC1B,OAAO,KAAK;YACV,MAAM,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1B,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED,EAAE,CAAC,2BAA2B,EAAE;QAC9B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAChF,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC7F,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK;QAC9B,OAAO,GAAG,MAAM,aAAa,CAAc,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAChF,MAAM,CAAC,OAAO,EAAE,mDAAmD,CAAC;aAC/D,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;aACvD,GAAG;aACH,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE;QAC3B,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAc,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2B9C,CAAC,CAAC;YACH,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACtE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACpE,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC;YACjC,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,MAAM,CAAC;YAC9B,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE;YACvC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE;YAC3B,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,2BAA2B,EAAE;YACpC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAE7B,EAAE,CAAC,oBAAoB,EAAE;gBACvB,MAAM,CAAC,MAAM,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACnG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACnC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBAClD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,kCAAkC,EAAE;gBAC3C,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBAE7B,EAAE,CAAC,sBAAsB,EAAE;oBACzB,MAAM,CAAC,MAAM,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACpG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACpC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACnD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;gBACrC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,QAAQ,CAAC,mBAAmB,EAAE;YAC5B,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACrC,EAAE,CAAC,qBAAqB,EAAE;gBACxB,MAAM,CAAC,YAAY,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACzG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACzC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACxD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,wBAAwB,EAAE;gBACjC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACrC,EAAE,CAAC,uBAAuB,EAAE;oBAC1B,MAAM,CAAC,YAAY,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC1G,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBAC1C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACzD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;gBAC3C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,mBAAmB,EAAE;YAC5B,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACrC,EAAE,CAAC,qBAAqB,EAAE;gBACxB,MAAM,CAAC,YAAY,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACzG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACzC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACxD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAC1C,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,0BAA0B,EAAE;gBACnC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvC,EAAE,CAAC,uBAAuB,EAAE;oBAC1B,MAAM,CAAC,YAAY,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC1G,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBAC1C,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACzD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;gBAC3C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,qBAAqB,EAAE;YAC9B,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACrC,EAAE,CAAC,mBAAmB,EAAE;gBACtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,MAAM,CAAC,MAAM,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACnG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACrC,CAAC;gBAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBAClD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACpC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,4BAA4B,EAAE;gBACrC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACvC,EAAE,CAAC,qBAAqB,EAAE;oBACxB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;wBAC7B,MAAM,CAAC,MAAM,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACpG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACtC,CAAC;oBAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC3B,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACnD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACrC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,QAAQ,CAAC,kCAAkC,EAAE;YAC3C,MAAM,OAAO,GAAG,KAAK,CAAC;YACtB,UAAU,CAAC,KAAK;gBACd,OAAO,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;gBAChD,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC1B,MAAM,SAAS,EAAE,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0DAA0D,EAAE;gBAC7D,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC1B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACnE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBAChF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACjE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBAChF,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE;YACnC,UAAU,CAAC,KAAK;gBACd,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;gBAChE,SAAS,CAAC,EAAE,GAAG,WAAW,CAAC;gBAC3B,SAAS,CAAC,SAAS,GAAG,qBAAqB,CAAC;gBAE5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;gBAC9D,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC;gBACzB,QAAQ,CAAC,SAAS,GAAG,WAAW,CAAC;gBAEjC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC/B,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAE9B,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gCAAgC,EAAE;gBACnC,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACrE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,eAAe,CAAC,EAAE,0BAA0B,CAAC;qBACvE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBAE5C,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC5E,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBAChE,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;qBACzE,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uBAAuB,EAAE;YAChC,EAAE,CAAC,oCAAoC,EAAE;gBACvC,MAAM,CAAC,MAAM,CAAC;qBACT,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;qBAC9D,GAAG;qBACH,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iBAAiB,EAAE;gBACpB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uEAAuE,EAAE;gBAC1E,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,sBAAsB,EAAE;YAC/B,EAAE,CAAC,mCAAmC,EAAE;gBACtC,MAAM,CAAC,KAAK,CAAC;qBACR,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;qBAC7D,GAAG;qBACH,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iBAAiB,EAAE;gBACpB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yEAAyE,EAAE;gBAC5E,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2CAA2C,EAAE;gBAC9C,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,sFAAsF;QACtF,QAAQ,CAAC,0BAA0B,EAAE;YACnC,IAAI,OAA0B,CAAC;YAC/B,IAAI,OAA0B,CAAC;YAC/B,IAAI,OAA0B,CAAC;YAE/B,IAAI,MAAwB,CAAC;YAC7B,IAAI,MAAwB,CAAC;YAC7B,IAAI,MAAwB,CAAC;YAE7B,UAAU,CAAC,KAAK;gBACd,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;gBAC9E,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,KAAK;gBACb,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAyB,CAAC;gBACxD,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAwB,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,wBAAwB,EAAE;gBACjC,EAAE,CAAC,wCAAwC,EAAE;oBAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC7C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,sBAAsB,EAAE;gBAC/B,UAAU,CAAC,KAAK;oBACd,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,CAAC;wBACrE,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,CAAC;oBACD,MAAM,SAAS,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,0CAA0C,EAAE;oBAC7C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;gBAC9C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,mCAAmC,EAAE;gBAC5C,UAAU,CAAC;oBACT,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;gBAEH,UAAU,CAAC,SAAS,CAAC,CAAC;gBAEtB,QAAQ,CAAC,OAAO,EAAE;oBAChB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvB,EAAE,CAAC,yBAAyB,EAAE;wBAC5B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACtC,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,+CAA+C,EAAE;wBAClD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBAC7C,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,EAAE;oBAChB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC3B,EAAE,CAAC,yBAAyB,EAAE;wBAC5B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACtC,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,+CAA+C,EAAE;wBAClD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBAC7C,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,KAAK,EAAE;oBACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,EAAE,CAAC,yBAAyB,EAAE;wBAC5B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,WAAW,EAAE;oBACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC/B,EAAE,CAAC,yBAAyB,EAAE;wBAC5B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,WAAW,EAAE;oBACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC/B,EAAE,CAAC,kCAAkC,EAAE;wBACrC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,sBAAsB,EAAE;wBACzB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACtC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,SAAS,EAAE;oBAClB,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC7B,EAAE,CAAC,gCAAgC,EAAE;wBACnC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,sBAAsB,EAAE;wBACzB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACtC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,MAAM,EAAE;oBACf,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC1B,EAAE,CAAC,iCAAiC,EAAE;wBACpC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,sBAAsB,EAAE;wBACzB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACtC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,KAAK,EAAE;oBACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,EAAE,CAAC,gCAAgC,EAAE;wBACnC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,sBAAsB,EAAE;wBACzB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACtC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,oCAAoC,EAAE;gBAC7C,UAAU,CAAC,KAAK;oBACd,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,MAAM,SAAS,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,EAAE;oBAChB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvB,EAAE,CAAC,0BAA0B,EAAE;wBAC7B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACtC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,EAAE;oBAChB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC3B,EAAE,CAAC,0BAA0B,EAAE;wBAC7B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACtC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,KAAK,EAAE;oBACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,EAAE,CAAC,yBAAyB,EAAE;wBAC5B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAGH,QAAQ,CAAC,WAAW,EAAE;oBACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC/B,EAAE,CAAC,gCAAgC,EAAE;wBACnC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,SAAS,EAAE;oBAClB,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC7B,EAAE,CAAC,iCAAiC,EAAE;wBACpC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,MAAM,EAAE;oBACf,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC1B,EAAE,CAAC,iCAAiC,EAAE;wBACpC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,KAAK,EAAE;oBACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,EAAE,CAAC,gCAAgC,EAAE;wBACnC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,kCAAkC,EAAE;gBAC3C,UAAU,CAAC,KAAK;oBACd,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,MAAM,SAAS,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,EAAE;oBAChB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvB,EAAE,CAAC,wBAAwB,EAAE;wBAC3B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACrC,CAAC,CAAC,CAAC;oBACH,QAAQ,CAAC,YAAY,EAAE;wBACrB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;wBACvB,EAAE,CAAC,0BAA0B,EAAE;4BAC7B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,EAAE;oBAChB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC3B,EAAE,CAAC,wBAAwB,EAAE;wBAC3B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACrC,CAAC,CAAC,CAAC;oBACH,QAAQ,CAAC,YAAY,EAAE;wBACrB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC3B,EAAE,CAAC,0BAA0B,EAAE;4BAC7B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,WAAW,EAAE;oBACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC/B,EAAE,CAAC,yBAAyB,EAAE;wBAC5B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAGH,QAAQ,CAAC,WAAW,EAAE;oBACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC/B,EAAE,CAAC,iCAAiC,EAAE;wBACpC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,SAAS,EAAE;oBAClB,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC7B,EAAE,CAAC,kCAAkC,EAAE;wBACrC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,MAAM,EAAE;oBACf,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC1B,EAAE,CAAC,iCAAiC,EAAE;wBACpC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,KAAK,EAAE;oBACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,EAAE,CAAC,gCAAgC,EAAE;wBACnC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,kCAAkC,EAAE;gBAC3C,UAAU,CAAC,KAAK;oBACd,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,kCAAkC,EAAE;oBAC3C,QAAQ,CAAC,OAAO,EAAE;wBAChB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;wBACvB,EAAE,CAAC,2BAA2B,EAAE;4BAC9B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,OAAO,EAAE;wBAChB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC3B,EAAE,CAAC,2BAA2B,EAAE;4BAC9B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,KAAK,EAAE;wBACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;wBACzB,EAAE,CAAC,4CAA4C,EAAE;4BAC/C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;wBACrE,CAAC,CAAC,CAAC;wBACH,QAAQ,CAAC,KAAK,EAAE;4BACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;4BACzB,EAAE,CAAC,yBAAyB,EAAE;gCAC5B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BACzD,CAAC,CAAC,CAAC;4BACH,QAAQ,CAAC,WAAW,EAAE;gCACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;gCAC/B,EAAE,CAAC,4CAA4C,EAAE;oCAC/C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gCACrE,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;wBACH,QAAQ,CAAC,OAAO,EAAE;4BAChB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;4BACvB,QAAQ,CAAC,WAAW,EAAE;gCACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;gCAC/B,EAAE,CAAC,4CAA4C,EAAE;oCAC/C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gCACrE,CAAC,CAAC,CAAC;gCACH,EAAE,CAAC,4BAA4B,EAAE;oCAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oCACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oCACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;gCACtC,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;4BAEH,QAAQ,CAAC,SAAS,EAAE;gCAClB,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gCAC7B,EAAE,CAAC,4CAA4C,EAAE;oCAC/C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gCACrE,CAAC,CAAC,CAAC;gCACH,EAAE,CAAC,4BAA4B,EAAE;oCAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oCACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oCACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;gCACtC,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;4BAEH,QAAQ,CAAC,MAAM,EAAE;gCACf,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gCAE1B,EAAE,CAAC,4CAA4C,EAAE;oCAC/C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gCACrE,CAAC,CAAC,CAAC;gCAEH,EAAE,CAAC,4BAA4B,EAAE;oCAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oCACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oCACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;gCACtC,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;4BAEH,QAAQ,CAAC,KAAK,EAAE;gCACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gCACzB,EAAE,CAAC,4CAA4C,EAAE;oCAC/C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gCACrE,CAAC,CAAC,CAAC;gCACH,EAAE,CAAC,4BAA4B,EAAE;oCAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oCACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oCACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;gCACtC,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,WAAW,EAAE;wBACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC/B,EAAE,CAAC,yBAAyB,EAAE;4BAC5B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBACzD,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,WAAW,EAAE;wBACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;wBAE/B,EAAE,CAAC,kCAAkC,EAAE;4BACrC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACnD,CAAC,CAAC,CAAC;wBAEH,EAAE,CAAC,4BAA4B,EAAE;4BAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,SAAS,EAAE;wBAClB,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;wBAE7B,EAAE,CAAC,gCAAgC,EAAE;4BACnC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACnD,CAAC,CAAC,CAAC;wBAEH,EAAE,CAAC,4BAA4B,EAAE;4BAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,MAAM,EAAE;wBACf,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1B,EAAE,CAAC,iCAAiC,EAAE;4BACpC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACnD,CAAC,CAAC,CAAC;wBAEH,EAAE,CAAC,4BAA4B,EAAE;4BAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,KAAK,EAAE;wBACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;wBACzB,EAAE,CAAC,gCAAgC,EAAE;4BACnC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACnD,CAAC,CAAC,CAAC;wBACH,EAAE,CAAC,4BAA4B,EAAE;4BAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BACnC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,mCAAmC,EAAE;oBAC5C,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBAEzB,QAAQ,CAAC,WAAW,EAAE;wBACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC/B,EAAE,CAAC,wCAAwC,EAAE,KAAK;4BAChD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;wBACrE,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,mCAAmC,EAAE;gBAC5C,UAAU,CAAC,KAAK;oBACd,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM,SAAS,EAAE,CAAC;oBAClB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACrC,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,8CAA8C,EAAE;oBACjD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC7C,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,mCAAmC,EAAE;oBAC5C,UAAU,CAAC,KAAK;wBACd,OAAO,CAAC,KAAK,EAAE,CAAC;wBAChB,MAAM,SAAS,EAAE,CAAC;oBACpB,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,OAAO,EAAE;wBAChB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;wBACvB,EAAE,CAAC,4BAA4B,EAAE;4BAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,OAAO,EAAE;wBAChB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC3B,EAAE,CAAC,4BAA4B,EAAE;4BAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,KAAK,EAAE;wBACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;wBACzB,EAAE,CAAC,6CAA6C,EAAE;4BAChD,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;wBACrE,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,WAAW,EAAE;wBACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC/B,EAAE,CAAC,yBAAyB,EAAE;4BAC5B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBACzD,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,SAAS,EAAE;wBAClB,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;wBAC7B,EAAE,CAAC,iCAAiC,EAAE;4BACpC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACnD,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,WAAW,EAAE;wBACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC/B,EAAE,CAAC,gCAAgC,EAAE;4BACnC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACnD,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,iCAAiC,EAAE;oBAC1C,UAAU,CAAC,KAAK;wBACd,OAAO,CAAC,KAAK,EAAE,CAAC;wBAChB,MAAM,SAAS,EAAE,CAAC;oBACpB,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,WAAW,EAAE;wBACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC/B,EAAE,CAAC,yCAAyC,EAAE;4BAC5C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;wBACrE,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,iCAAiC,EAAE;gBAC1C,UAAU,CAAC,KAAK;oBACd,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM,SAAS,EAAE,CAAC;oBAClB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBACrC,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,kCAAkC,EAAE;oBAC3C,UAAU,CAAC,KAAK;wBACd,OAAO,CAAC,KAAK,EAAE,CAAC;wBAChB,MAAM,SAAS,EAAE,CAAC;oBACpB,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,KAAK,EAAE;wBACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;wBACzB,EAAE,CAAC,uCAAuC,EAAE;4BAC1C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;wBACrE,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE;QAChC,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAc,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2B9C,CAAC,CAAC;YACH,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACtE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACpE,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC;YACjC,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,MAAM,CAAC;YAC9B,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,2BAA2B,EAAE;YACpC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAC7B,QAAQ,CAAC,iCAAiC,EAAE;gBAC1C,UAAU,CAAC,iBAAiB,CAAC,CAAC;gBAC9B,EAAE,CAAC,mCAAmC,EAAE;oBACtC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC5B,MAAM,YAAY,GAAG,MAAM,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;wBAC/F,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;4BACZ,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BAC7D,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBACtE,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BAC9D,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACvE,CAAC;oBACH,CAAC,CAAC,CAAC;oBACH,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;wBAC1B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;4BACZ,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBAC7D,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBAC9D,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wCAAwC,EAAE;QACjD,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAc,IAAI,CAAA;;;;;;;;;OAS9C,CAAC,CAAC;YACH,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACtE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACpE,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC;YACjC,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,MAAM,CAAC;YAC9B,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,yBAAyB,EAAE;YAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0BAA0B,EAAE;YAC7B,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uBAAuB,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6DAA6D,EAAE;QACtE,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAc,IAAI,CAAA;;;;;;;;;OAS9C,CAAC,CAAC;YACH,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACtE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACpE,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC;YACjC,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,MAAM,CAAC;YAC9B,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uBAAuB,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,0BAA0B,EAAE;YAC7B,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,uBAAuB,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oCAAoC,EAAE;QAC7C,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAc,IAAI,CAAA;;;;;;;;sBAQ/B,CAAC,CAAC;YAClB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,wBAAwB;QACxB,EAAE,CAAC,+BAA+B,EAAE;YAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;iBACd,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,0CAA0C,EAAE,qEAAqE,CAAC,CAAC;QACtJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE;QACnC,IAAI,iBAAoC,CAAC;QACzC,IAAI,iBAAoC,CAAC;QACzC,IAAI,mBAAsC,CAAC;QAE3C,IAAI,gBAAkC,CAAC;QACvC,IAAI,gBAAkC,CAAC;QAEvC,IAAI,eAAkC,CAAC;QACvC,IAAI,eAAkC,CAAC;QACvC,IAAI,iBAAoC,CAAC;QAEzC,IAAI,cAAgC,CAAC;QACrC,IAAI,cAAgC,CAAC;QACrC,IAAI,gBAAkC,CAAC;QAEvC,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAc,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;OAwB9C,CAAC,CAAC;YACH,iBAAiB,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAsB,CAAC;YAC7E,iBAAiB,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAsB,CAAC;YAC7E,mBAAmB,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAsB,CAAC;YAE/E,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAqB,CAAC;YAC1E,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAqB,CAAC;YAE1E,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAsB,CAAC;YAC7E,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAsB,CAAC;YAC7E,iBAAiB,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAsB,CAAC;YAE/E,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAqB,CAAC;YAC1E,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAqB,CAAC;YAC1E,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAqB,CAAC;YAE5E,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,sCAAsC,EAAE;YAC/C,UAAU,CAAC,KAAK;gBACd,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBAC1B,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,4CAA4C,EAAE;gBACrD,UAAU,CAAC,KAAK;oBACd,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBAC1B,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,wCAAwC,EAAE;oBACjD,UAAU,CAAC,KAAK;wBACd,eAAe,CAAC,KAAK,EAAE,CAAC;wBACxB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;oBAC5B,CAAC,CAAC,CAAC;oBACH,QAAQ,CAAC,yCAAyC,EAAE;wBAClD,UAAU,CAAC,KAAK;4BACd,eAAe,CAAC,KAAK,EAAE,CAAC;4BACxB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;wBAC5B,CAAC,CAAC,CAAC;wBACH,EAAE,CAAC,kCAAkC,EAAE;4BACrC,MAAM,CAAC,iBAAiB,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,EAAE,8CAA8C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAC9J,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BAC1F,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BAChG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,gCAAgC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACjF,CAAC,CAAC,CAAC;wBACH,EAAE,CAAC,qCAAqC,EAAE;4BACxC,MAAM,CAAC,iBAAiB,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,EAAE,8CAA8C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BAC9J,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BAC1F,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BAChG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,yCAAyC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBAC1F,CAAC,CAAC,CAAC;wBACH,EAAE,CAAC,iCAAiC,EAAE;4BACpC,MAAM,CAAC,eAAe,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,EAAE,2CAA2C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BAC1J,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,uCAAuC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BACtF,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,8BAA8B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;4BAC5F,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACtF,CAAC,CAAC,CAAC;wBACH,EAAE,CAAC,kCAAkC,EAAE;4BACrC,MAAM,CAAC,eAAe,CAAC,UAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,EAAE,2CAA2C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;4BACzJ,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,uCAAuC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BACrF,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,8BAA8B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;4BAC3F,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACrF,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE;YACnC,QAAQ,CAAC,wBAAwB,EAAE;gBACjC,EAAE,CAAC,wCAAwC,EAAE;oBAC3C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACtD,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACtD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACtD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACtD,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC1D,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,sBAAsB,EAAE;gBAC/B,UAAU,CAAC,KAAK;oBACd,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,CAAC;wBACrE,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,CAAC;oBACD,MAAM,SAAS,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,0CAA0C,EAAE;oBAC7C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACvD,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACvD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACvD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACvD,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;gBAC3D,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,2DAA2D,EAAE;gBACpE,UAAU,CAAC,KAAK;oBACd,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBAC1B,MAAM,SAAS,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,EAAE;oBAChB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvB,EAAE,CAAC,yBAAyB,EAAE;wBAC5B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBAC7C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBAC9C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBAC5C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBAC9C,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,+CAA+C,EAAE;wBAClD,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACvD,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACtD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACtD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACxD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,KAAK,EAAE;oBACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,EAAE,CAAC,yBAAyB,EAAE;wBAC5B,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,0DAA0D,EAAE;gBACnE,UAAU,CAAC,KAAK;oBACd,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBAC1B,MAAM,SAAS,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,EAAE;oBAChB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvB,EAAE,CAAC,yBAAyB,EAAE;wBAC5B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBAC9C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBAC7C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBAC5C,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBAC9C,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,+CAA+C,EAAE;wBAClD,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACtD,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBACvD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACtD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBACxD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,2CAA2C,EAAE;oBACpD,QAAQ,CAAC,oEAAoE,EAAE;wBAC7E,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC3B,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;wBACzB,EAAE,CAAC,4CAA4C,EAAE;4BAC/C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;wBAC3D,CAAC,CAAC,CAAC;wBAEH,QAAQ,CAAC,SAAS,EAAE;4BAClB,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;4BAC7B,EAAE,CAAC,gCAAgC,EAAE;gCACnC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;4BAC7D,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;wBAEH,QAAQ,CAAC,WAAW,EAAE;4BACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;4BAC/B,EAAE,CAAC,gCAAgC,EAAE;gCACnC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;4BAC7D,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;wBAEH,QAAQ,CAAC,WAAW,EAAE;4BACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;4BAC/B,EAAE,CAAC,kCAAkC,EAAE;gCACrC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;4BAC3D,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;wBAEH,QAAQ,CAAC,YAAY,EAAE;4BACrB,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;4BAChC,EAAE,CAAC,kCAAkC,EAAE;gCACrC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;4BAC3D,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;wBAEH,QAAQ,CAAC,KAAK,EAAE;4BACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;4BACzB,EAAE,CAAC,oCAAoC,EAAE;gCACvC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BACzD,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE;QACrC,IAAI,yBAAsC,CAAC;QAE3C,IAAI,qBAAwC,CAAC;QAC7C,IAAI,oBAAsC,CAAC;QAE3C,IAAI,qBAAwC,CAAC;QAC7C,IAAI,oBAAsC,CAAC;QAE3C,UAAU,CAAC,KAAK;YACd,yBAAyB,GAAG,MAAM,aAAa,CAAc,IAAI,CAAA;;;;;;;;;;;OAWhE,CAAC,CAAC;YACH,qBAAqB,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAsB,CAAC;YAEnF,oBAAoB,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAqB,CAAC;YAEhF,qBAAqB,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAsB,CAAC;YAEnF,oBAAoB,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAqB,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE;YACnC,QAAQ,CAAC,wBAAwB,EAAE;gBACjC,EAAE,CAAC,wCAAwC,EAAE;oBAC3C,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBAC5D,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC9D,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,sBAAsB,EAAE;gBAC/B,UAAU,CAAC,KAAK;oBACd,KAAK,MAAM,MAAM,IAAI,yBAAyB,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,CAAC;wBACvF,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjB,CAAC;oBACD,MAAM,SAAS,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,0CAA0C,EAAE;oBAC7C,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBAC7D,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;gBAC/D,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,0DAA0D,EAAE;gBACnE,UAAU,CAAC,KAAK;oBACd,qBAAqB,CAAC,KAAK,EAAE,CAAC;oBAC9B,MAAM,SAAS,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,EAAE;oBAChB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvB,EAAE,CAAC,yBAAyB,EAAE;wBAC5B,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;wBACjD,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;oBACpD,CAAC,CAAC,CAAC;oBACH,EAAE,CAAC,+CAA+C,EAAE;wBAClD,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;wBAC7D,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBAC9D,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,KAAK,EAAE;oBACd,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACzB,EAAE,CAAC,qCAAqC,EAAE;wBACxC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;oBACjE,CAAC,CAAC,CAAC;oBACH,QAAQ,CAAC,WAAW,EAAE;wBACpB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC/B,EAAE,CAAC,yCAAyC,EAAE;4BAC5C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;wBACjE,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4EAA4E,EAAE;QACrF,IAAI,OAAoB,CAAC;QACzB,IAAI,OAAsC,CAAC;QAC3C,IAAI,MAAoC,CAAC;QACzC,IAAI,QAA0B,CAAC;QAC/B,IAAI,QAAkB,CAAC;QACvB,IAAI,iBAAmC,CAAC;QAExC,UAAU,CAAC,KAAK;YACd,OAAO,GAAG,MAAM,aAAa,CAAc,IAAI,CAAA;;;;;;;;SAQ5C,CAAC,CAAC;YACL,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;YAC3D,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;YACzD,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC;YAC3C,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAE,CAAC;YAC/C,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uBAAuB,EAAE;YAChC,UAAU,CAAC,KAAK;gBACd,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,OAAO,CAAC,cAAc,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,6BAA6B,EAAE;gBAChC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAChD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,qBAAqB,EAAE;YAC9B,UAAU,CAAC,KAAK;gBACd,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;gBAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,OAAO,CAAC,cAAc,CAAC;gBAC7B,MAAM,QAAQ,CAAC,cAAc,CAAC;gBAC9B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,6BAA6B,EAAE;gBAChC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YAChD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect, html, aTimeout, nextFrame } from '@open-wc/testing';\nimport { createFixture } from '@patternfly/pfe-tools/test/create-fixture.js';\nimport { sendKeys } from '@web/test-runner-commands';\n\n// Import the element we're testing.\nimport { PfAccordion, PfAccordionPanel, PfAccordionHeader } from '@patternfly/elements/pf-accordion/pf-accordion.js';\nimport { PfSwitch } from '@patternfly/elements/pf-switch/pf-switch.js';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport '@patternfly/pfe-tools/test/stub-logger.js';\nimport { allUpdates } from '@patternfly/pfe-tools/test/utils.js';\n\ndescribe('<pf-accordion>', function() {\n let element: PfAccordion;\n let headers: PfAccordionHeader[];\n let panels: PfAccordionPanel[];\n let header: PfAccordionHeader;\n let panel: PfAccordionPanel;\n let secondHeader: PfAccordionHeader;\n let secondPanel: PfAccordionPanel;\n\n async function clickFirstHeader() {\n header.click();\n await allUpdates(element);\n }\n\n async function clickSecondHeader() {\n secondHeader.click();\n await allUpdates(element);\n }\n\n async function callToggle(index: number) {\n element.toggle(index);\n await allUpdates(element);\n }\n\n async function callExpand(index: number) {\n element.expand(index);\n await allUpdates(element);\n }\n\n async function callCollapse(index: number) {\n element.collapse(index);\n await allUpdates(element);\n }\n\n async function callExpandAll() {\n element.expandAll();\n await allUpdates(element);\n }\n\n async function callCollapseAll() {\n element.collapseAll();\n await allUpdates(element);\n }\n\n function press(press: string) {\n return async function() {\n await sendKeys({ press });\n await allUpdates(element);\n };\n }\n\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-accordion')).to.be.an.instanceof(PfAccordion);\n expect(document.createElement('pf-accordion-header')).to.be.an.instanceof(PfAccordionHeader);\n expect(document.createElement('pf-accordion-panel')).to.be.an.instanceof(PfAccordionPanel);\n });\n\n it('simply instantiating', async function() {\n element = await createFixture<PfAccordion>(html`<pf-accordion></pf-accordion>`);\n expect(element, 'pf-accordion should be an instance of PfAccordion')\n .to.be.an.instanceof(customElements.get('pf-accordion'))\n .and\n .to.be.an.instanceof(PfAccordion);\n });\n\n describe('in typical usage', function() {\n beforeEach(async function() {\n element = await createFixture<PfAccordion>(html`\n <pf-accordion>\n <pf-accordion-header id=\"header1\" data-index=\"0\">\n <h3>Consetetur sadipscing elitr?</h3>\n </pf-accordion-header>\n <pf-accordion-panel id=\"panel1\" data-index=\"0\">\n <p><a href=\"#\">Lorem ipsum dolor sit amet</a>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt\n ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea\n rebum.</p>\n </pf-accordion-panel>\n <pf-accordion-header data-index=\"1\">\n <h3>Labore et dolore magna aliquyam erat?</h3>\n </pf-accordion-header>\n <pf-accordion-panel data-index=\"1\">\n <p><a href=\"#\">Lorem ipsum dolor sit amet</a>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt\n ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea\n rebum.</p>\n </pf-accordion-panel>\n <pf-accordion-header data-index=\"2\">\n <h3>Incididunt in Lorem voluptate eiusmod dolor?</h3>\n </pf-accordion-header>\n <pf-accordion-panel data-index=\"2\">\n <p><a href=\"#\">Lorem ipsum dolor sit amet</a>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt\n ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea\n rebum.</p>\n </pf-accordion-panel>\n </pf-accordion>\n `);\n headers = Array.from(element.querySelectorAll('pf-accordion-header'));\n panels = Array.from(element.querySelectorAll('pf-accordion-panel'));\n [header, secondHeader] = headers;\n [panel, secondPanel] = panels;\n await allUpdates(element);\n });\n\n it('randomly generates ids on children', function() {\n expect(secondHeader.id).to.match(/pf-/);\n expect(secondPanel.id).to.match(/panel-/);\n });\n\n it('preserves existing IDs', function() {\n expect(element.querySelector('#header1')).to.exist;\n expect(element.querySelector('#panel1')).to.exist;\n });\n\n describe('clicking the first header', function() {\n beforeEach(clickFirstHeader);\n\n it('expands first pair', function() {\n expect(header.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('true');\n expect(header.expanded).to.be.true;\n expect(panel.hasAttribute('expanded')).to.be.true;\n expect(panel.expanded).to.be.true;\n });\n\n describe('then clicking first header again', function() {\n beforeEach(clickFirstHeader);\n\n it('collapses first pair', function() {\n expect(header.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('false');\n expect(header.expanded).to.be.false;\n expect(panel.hasAttribute('expanded')).to.be.false;\n expect(panel.expanded).to.be.false;\n });\n });\n });\n\n /* API TESTS */\n describe('calling toggle(1)', function(this: Mocha.Suite) {\n beforeEach(callToggle.bind(this, 1));\n it('expands second pair', function() {\n expect(secondHeader.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('true');\n expect(secondHeader.expanded).to.be.true;\n expect(secondPanel.hasAttribute('expanded')).to.be.true;\n expect(secondPanel.expanded).to.be.true;\n });\n\n describe('then calling toggle(1)', function(this: Mocha.Suite) {\n beforeEach(callToggle.bind(this, 1));\n it('collapses second pair', function() {\n expect(secondHeader.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('false');\n expect(secondHeader.expanded).to.be.false;\n expect(secondPanel.hasAttribute('expanded')).to.be.false;\n expect(secondPanel.expanded).to.be.false;\n });\n });\n });\n\n describe('calling expand(1)', function(this: Mocha.Suite) {\n beforeEach(callExpand.bind(this, 1));\n it('expands second pair', function() {\n expect(secondHeader.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('true');\n expect(secondHeader.expanded).to.be.true;\n expect(secondPanel.hasAttribute('expanded')).to.be.true;\n expect(secondPanel.expanded).to.be.true;\n });\n describe('then calling collapse(1)', function(this: Mocha.Suite) {\n beforeEach(callCollapse.bind(this, 1));\n it('collapses second pair', function() {\n expect(secondHeader.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('false');\n expect(secondHeader.expanded).to.be.false;\n expect(secondPanel.hasAttribute('expanded')).to.be.false;\n expect(secondPanel.expanded).to.be.false;\n });\n });\n });\n\n describe('calling expandAll()', function(this: Mocha.Suite) {\n beforeEach(callExpandAll.bind(this));\n it('expands all pairs', function() {\n for (const header of headers) {\n expect(header.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('true');\n expect(header.expanded).to.be.true;\n }\n\n for (const panel of panels) {\n expect(panel.hasAttribute('expanded')).to.be.true;\n expect(panel.expanded).to.be.true;\n }\n });\n\n describe('then calling collapseAll()', function(this: Mocha.Suite) {\n beforeEach(callCollapseAll.bind(this));\n it('collapses all pairs', function() {\n for (const header of headers) {\n expect(header.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('false');\n expect(header.expanded).to.be.false;\n }\n\n for (const panel of panels) {\n expect(panel.hasAttribute('expanded')).to.be.false;\n expect(panel.expanded).to.be.false;\n }\n });\n });\n });\n\n /* ATTRIBUTE TESTS */\n describe('setting expanded-index attribute', function() {\n const indices = '1,2';\n beforeEach(async function() {\n element.setAttribute('expanded-index', indices);\n await allUpdates(element);\n await nextFrame();\n });\n\n it('expands the pairs listed in the expanded-index attribute', function() {\n for (const idx of indices.split(',').map(x => parseInt(x))) {\n const header = headers[idx];\n const panel = panels[idx];\n expect(header.expanded, 'header expanded DOM property').to.be.true;\n expect(header.hasAttribute('expanded'), 'header expanded attribute').to.be.true;\n expect(panel.expanded, 'panel expanded DOM property').to.be.true;\n expect(panel.hasAttribute('expanded'), 'panel expanded attribute').to.be.true;\n }\n });\n });\n\n describe('dynamically adding pairs', function() {\n beforeEach(async function() {\n const newHeader = document.createElement('pf-accordion-header');\n newHeader.id = 'newHeader';\n newHeader.innerHTML = `<h2>New Header</h2>`;\n\n const newPanel = document.createElement('pf-accordion-panel');\n newPanel.id = 'newPanel';\n newPanel.innerHTML = `New Panel`;\n\n element.appendChild(newHeader);\n element.appendChild(newPanel);\n\n await allUpdates(element);\n });\n\n it('properly initializes new pairs', function() {\n const newHeader = headers.at(-1);\n const newPanel = panels.at(-1);\n expect(newHeader?.hasAttribute('id'), 'header has an id').to.be.true;\n expect(newHeader?.getAttribute('aria-controls'), 'header has aria-controls')\n .to.equal(newPanel?.getAttribute('id'));\n\n expect(newPanel?.getAttribute('role'), 'panel has role').to.equal('region');\n expect(newPanel?.hasAttribute('id'), 'panel has id').to.be.true;\n expect(newPanel?.getAttribute('aria-labelledby'), 'panel has aria-labelledby')\n .to.equal(newHeader?.getAttribute('id'));\n });\n });\n\n describe('<pf-accordion-header>', function() {\n it('should upgrade pf-accordion-header', function() {\n expect(header)\n .to.be.an.instanceof(customElements.get('pf-accordion-header'))\n .and\n .to.be.an.instanceOf(PfAccordionHeader);\n });\n\n it('must have an id', function() {\n expect(header.id).to.be.ok;\n });\n\n it('should add the aria-controls attribute corresponding to the header ID', function() {\n expect(header.getAttribute('aria-controls')).to.equal(panel.id);\n });\n });\n\n describe('<pf-accordion-panel>', function() {\n it('should upgrade pf-accordion-panel', function() {\n expect(panel)\n .to.be.an.instanceof(customElements.get('pf-accordion-panel'))\n .and\n .to.be.an.instanceOf(PfAccordionPanel);\n });\n\n it('must have an id', function() {\n expect(panel.id).to.be.ok;\n });\n\n it('should add the aria-labelledby attribute corresponding to the header ID', function() {\n expect(panel.getAttribute('aria-labelledby')).to.equal(header.id);\n });\n\n it('should set the role attribute to \"region\"', function() {\n expect(panel.getAttribute('role'), 'role').to.equal('region');\n });\n });\n\n /** @see https://www.w3.org/TR/wai-aria-practices/examples/accordion/accordion.html */\n describe('for assistive technology', function() {\n let header1: PfAccordionHeader;\n let header2: PfAccordionHeader;\n let header3: PfAccordionHeader;\n\n let panel1: PfAccordionPanel;\n let panel2: PfAccordionPanel;\n let panel3: PfAccordionPanel;\n\n beforeEach(async function() {\n [header1, header2, header3] = element.querySelectorAll('pf-accordion-header');\n [panel1, panel2, panel3] = element.querySelectorAll('pf-accordion-panel');\n });\n\n afterEach(async function() {\n [header1, header2, header3] = [] as PfAccordionHeader[];\n [panel1, panel2, panel3] = [] as PfAccordionPanel[];\n });\n\n describe('with all panels closed', function() {\n it('applies hidden attribute to all panels', function() {\n expect(panel1.hidden, 'panel1').to.be.true;\n expect(panel2.hidden, 'panel2').to.be.true;\n expect(panel3.hidden, 'panel3').to.be.true;\n });\n });\n\n describe('with all panels open', function() {\n beforeEach(async function() {\n for (const header of element.querySelectorAll('pf-accordion-header')) {\n header.click();\n }\n await nextFrame();\n });\n it('removes hidden attribute from all panels', function() {\n expect(panel1.hidden, 'panel1').to.be.false;\n expect(panel2.hidden, 'panel2').to.be.false;\n expect(panel3.hidden, 'panel3').to.be.false;\n });\n });\n\n describe('when focus is on the first header', function() {\n beforeEach(function() {\n header1.focus();\n });\n\n beforeEach(nextFrame);\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('expands the first panel', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n it('removes hidden attribute from the first panel', function() {\n expect(panel1.hidden, 'panel1').to.be.false;\n expect(panel2.hidden, 'panel2').to.be.true;\n expect(panel3.hidden, 'panel3').to.be.true;\n });\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n it('expands the first panel', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n it('removes hidden attribute from the first panel', function() {\n expect(panel1.hidden, 'panel1').to.be.false;\n expect(panel2.hidden, 'panel2').to.be.true;\n expect(panel3.hidden, 'panel3').to.be.true;\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the body', function() {\n expect(document.activeElement).to.equal(document.body);\n });\n });\n\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('moves focus to the body', function() {\n expect(document.activeElement).to.equal(document.body);\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n it('moves focus to the second header', function() {\n expect(document.activeElement).to.equal(header2);\n });\n it('does not open panels', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n it('moves focus to the last header', function() {\n expect(document.activeElement).to.equal(header3);\n });\n it('does not open panels', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n it('moves focus to the first header', function() {\n expect(document.activeElement).to.equal(header1);\n });\n it('does not open panels', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('End', function() {\n beforeEach(press('End'));\n it('moves focus to the last header', function() {\n expect(document.activeElement).to.equal(header3);\n });\n it('does not open panels', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n });\n\n describe('when focus is on the middle header', function() {\n beforeEach(async function() {\n header2.focus();\n await nextFrame();\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('expands the middle panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.true;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n it('expands the middle panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.true;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the body', function() {\n expect(document.activeElement).to.equal(document.body);\n });\n });\n\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n it('moves focus to the last header', function() {\n expect(document.activeElement).to.equal(header3);\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n it('moves focus to the first header', function() {\n expect(document.activeElement).to.equal(header1);\n });\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n it('moves focus to the first header', function() {\n expect(document.activeElement).to.equal(header1);\n });\n });\n\n describe('End', function() {\n beforeEach(press('End'));\n it('moves focus to the last header', function() {\n expect(document.activeElement).to.equal(header3);\n });\n });\n });\n\n describe('when focus is on the last header', function() {\n beforeEach(async function() {\n header3.focus();\n await nextFrame();\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('expands the last panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.true;\n });\n describe('then Space', function() {\n beforeEach(press(' '));\n it('collapses the last panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n it('expands the last panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.true;\n });\n describe('then Enter', function() {\n beforeEach(press('Enter'));\n it('collapses the last panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n });\n\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('moves focus to the body', function() {\n expect(document.activeElement).to.equal(document.body);\n });\n });\n\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n it('moves focus to the first header', function() {\n expect(document.activeElement).to.equal(header1);\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n it('moves focus to the middle header', function() {\n expect(document.activeElement).to.equal(header2);\n });\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n it('moves focus to the first header', function() {\n expect(document.activeElement).to.equal(header1);\n });\n });\n\n describe('End', function() {\n beforeEach(press('End'));\n it('moves focus to the last header', function() {\n expect(document.activeElement).to.equal(header3);\n });\n });\n });\n\n describe('when the first panel is expanded', function() {\n beforeEach(async function() {\n element.expand(0);\n await aTimeout(500);\n });\n\n describe('and focus is on the first header', function() {\n describe('Space', function() {\n beforeEach(press(' '));\n it('collapses the first panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n it('collapses the first panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the link in the first panel', function() {\n expect(document.activeElement).to.equal(panel1.querySelector('a'));\n });\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the body', function() {\n expect(document.activeElement).to.equal(document.body);\n });\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('keeps focus on the link in the first panel', function() {\n expect(document.activeElement).to.equal(panel1.querySelector('a'));\n });\n });\n });\n describe('Space', function() {\n beforeEach(press(' '));\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n it('keeps focus on the link in the first panel', function() {\n expect(document.activeElement).to.equal(panel1.querySelector('a'));\n });\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n it('keeps focus on the link in the first panel', function() {\n expect(document.activeElement).to.equal(panel1.querySelector('a'));\n });\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n\n it('keeps focus on the link in the first panel', function() {\n expect(document.activeElement).to.equal(panel1.querySelector('a'));\n });\n\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('End', function() {\n beforeEach(press('End'));\n it('keeps focus on the link in the first panel', function() {\n expect(document.activeElement).to.equal(panel1.querySelector('a'));\n });\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n });\n });\n\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('moves focus to the body', function() {\n expect(document.activeElement).to.equal(document.body);\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n\n it('moves focus to the second header', function() {\n expect(document.activeElement).to.equal(header2);\n });\n\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n\n it('moves focus to the last header', function() {\n expect(document.activeElement).to.equal(header3);\n });\n\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n it('moves focus to the first header', function() {\n expect(document.activeElement).to.equal(header1);\n });\n\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('End', function() {\n beforeEach(press('End'));\n it('moves focus to the last header', function() {\n expect(document.activeElement).to.equal(header3);\n });\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n });\n\n describe('and focus is on the middle header', function() {\n beforeEach(press('Tab'));\n beforeEach(press('Tab'));\n\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('moves focus to the link in first panel', async function() {\n expect(document.activeElement).to.equal(panel1.querySelector('a'));\n });\n });\n });\n });\n\n describe('when the middle panel is expanded', function() {\n beforeEach(async function() {\n element.expand(1);\n await nextFrame();\n expect(panel2.expanded).to.be.true;\n });\n\n it('applies hidden attribute to the middle panel', function() {\n expect(panel1.hidden, 'panel1').to.be.true;\n expect(panel2.hidden, 'panel2').to.be.false;\n expect(panel3.hidden, 'panel3').to.be.true;\n });\n\n describe('and focus is on the middle header', function() {\n beforeEach(async function() {\n header2.focus();\n await nextFrame();\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('collapses the second panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n it('collapses the second panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the link in the second panel', function() {\n expect(document.activeElement).to.equal(panel2.querySelector('a'));\n });\n });\n\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('moves focus to the body', function() {\n expect(document.activeElement).to.equal(document.body);\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n it('moves focus to the first header', function() {\n expect(document.activeElement).to.equal(header1);\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n it('moves focus to the last header', function() {\n expect(document.activeElement).to.equal(header3);\n });\n });\n });\n\n describe('and focus is on the last header', function() {\n beforeEach(async function() {\n header3.focus();\n await nextFrame();\n });\n\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('moves focus to the link in middle panel', function() {\n expect(document.activeElement).to.equal(panel2.querySelector('a'));\n });\n });\n });\n });\n\n describe('when the last panel is expanded', function() {\n beforeEach(async function() {\n element.expand(2);\n await nextFrame();\n expect(panel3.expanded).to.be.true;\n });\n\n describe('when focus is on the last header', function() {\n beforeEach(async function() {\n header3.focus();\n await nextFrame();\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the link in last panel', function() {\n expect(document.activeElement).to.equal(panel3.querySelector('a'));\n });\n });\n });\n });\n });\n });\n\n describe('with single attribute', function() {\n beforeEach(async function() {\n element = await createFixture<PfAccordion>(html`\n <pf-accordion single>\n <pf-accordion-header id=\"header1\" data-index=\"0\">\n <h3>Consetetur sadipscing elitr?</h3>\n </pf-accordion-header>\n <pf-accordion-panel id=\"panel1\" data-index=\"0\">\n <p><a href=\"#\">Lorem ipsum dolor sit amet</a>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt\n ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea\n rebum.</p>\n </pf-accordion-panel>\n <pf-accordion-header data-index=\"1\">\n <h3>Labore et dolore magna aliquyam erat?</h3>\n </pf-accordion-header>\n <pf-accordion-panel data-index=\"1\">\n <p><a href=\"#\">Lorem ipsum dolor sit amet</a>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt\n ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea\n rebum.</p>\n </pf-accordion-panel>\n <pf-accordion-header data-index=\"2\">\n <h3>Incididunt in Lorem voluptate eiusmod dolor?</h3>\n </pf-accordion-header>\n <pf-accordion-panel data-index=\"2\">\n <p><a href=\"#\">Lorem ipsum dolor sit amet</a>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt\n ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea\n rebum.</p>\n </pf-accordion-panel>\n </pf-accordion>\n `);\n headers = Array.from(element.querySelectorAll('pf-accordion-header'));\n panels = Array.from(element.querySelectorAll('pf-accordion-panel'));\n [header, secondHeader] = headers;\n [panel, secondPanel] = panels;\n await allUpdates(element);\n });\n\n describe('clicking the first header', function() {\n beforeEach(clickFirstHeader);\n describe('then clicking the second header', function() {\n beforeEach(clickSecondHeader);\n it('collapses all pairs except second', function() {\n headers.forEach((header, i) => {\n const ariaExpanded = header.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded');\n if (i === 1) {\n expect(header.expanded, `headers[${i}].expanded`).to.be.true;\n expect(ariaExpanded, `headers[${i}].ariaExpanded`).to.equal('true');\n } else {\n expect(header.expanded, `headers[${i}].expanded`).to.be.false;\n expect(ariaExpanded, `headers[${i}].ariaExpanded`).to.equal('false');\n }\n });\n panels.forEach((panel, i) => {\n if (i === 1) {\n expect(panel.expanded, `panels[${i}].expanded`).to.be.true;\n } else {\n expect(panel.expanded, `panels[${i}].expanded`).to.be.false;\n }\n });\n });\n });\n });\n });\n\n describe('with expanded attribute on two headers', function() {\n beforeEach(async function() {\n element = await createFixture<PfAccordion>(html`\n <pf-accordion>\n <pf-accordion-header data-index=\"0\" expanded><h2>h</h2></pf-accordion-header>\n <pf-accordion-panel data-index=\"0\"><p>p</p></pf-accordion-panel>\n <pf-accordion-header data-index=\"1\" expanded><h2>h</h2></pf-accordion-header>\n <pf-accordion-panel data-index=\"1\"><p>p</p></pf-accordion-panel>\n <pf-accordion-header data-index=\"2\"><h2>h</h2></pf-accordion-header>\n <pf-accordion-panel data-index=\"2\"><p>p</p></pf-accordion-panel>\n </pf-accordion>\n `);\n headers = Array.from(element.querySelectorAll('pf-accordion-header'));\n panels = Array.from(element.querySelectorAll('pf-accordion-panel'));\n [header, secondHeader] = headers;\n [panel, secondPanel] = panels;\n await allUpdates(element);\n });\n it('expands the first panel', function() {\n expect(panel).to.have.attribute('expanded');\n });\n it('expands the second panel', function() {\n expect(secondPanel).to.have.attribute('expanded');\n });\n it('hides the third panel', function() {\n expect(panels[2]).to.not.have.attribute('expanded');\n });\n });\n\n describe('with single attribute and expanded attribute on two headers', function() {\n beforeEach(async function() {\n element = await createFixture<PfAccordion>(html`\n <pf-accordion single>\n <pf-accordion-header data-index=\"0\" expanded><h2>h</h2></pf-accordion-header>\n <pf-accordion-panel data-index=\"0\"><p>p</p></pf-accordion-panel>\n <pf-accordion-header data-index=\"1\" expanded><h2>h</h2></pf-accordion-header>\n <pf-accordion-panel data-index=\"1\"><p>p</p></pf-accordion-panel>\n <pf-accordion-header data-index=\"2\"><h2>h</h2></pf-accordion-header>\n <pf-accordion-panel data-index=\"2\"><p>p</p></pf-accordion-panel>\n </pf-accordion>\n `);\n headers = Array.from(element.querySelectorAll('pf-accordion-header'));\n panels = Array.from(element.querySelectorAll('pf-accordion-panel'));\n [header, secondHeader] = headers;\n [panel, secondPanel] = panels;\n await allUpdates(element);\n await aTimeout(100);\n });\n it('hides the first panel', function() {\n expect(panel).to.not.have.attribute('expanded');\n });\n it('expands the second panel', function() {\n expect(secondPanel).to.have.attribute('expanded');\n });\n it('hides the third panel', function() {\n expect(panels[2]).to.not.have.attribute('expanded');\n });\n });\n\n describe('with no h* tag in heading lightdom', function() {\n beforeEach(async function() {\n element = await createFixture<PfAccordion>(html`\n <pf-accordion id=\"badHeader\">\n <pf-accordion-header id=\"bad-header-element\">\n Bad Header\n </pf-accordion-header>\n <pf-accordion-panel>\n Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n </pf-accordion-panel>\n </pf-accordion>`);\n await allUpdates(element);\n });\n /* CONSOLE VALIDATION */\n it('should warning in the console', function() {\n expect(Logger.warn)\n .to.have.been.calledOnceWith(`[pf-accordion-header#bad-header-element]`, 'Header should contain at least 1 heading tag for correct semantics.');\n });\n });\n\n describe('with nested pf-accordion', function() {\n let topLevelHeaderOne: PfAccordionHeader;\n let topLevelHeaderTwo: PfAccordionHeader;\n let topLevelHeaderThree: PfAccordionHeader;\n\n let topLevelPanelOne: PfAccordionPanel;\n let topLevelPanelTwo: PfAccordionPanel;\n\n let nestedHeaderOne: PfAccordionHeader;\n let nestedHeaderTwo: PfAccordionHeader;\n let nestedHeaderThree: PfAccordionHeader;\n\n let nestedPanelOne: PfAccordionPanel;\n let nestedPanelTwo: PfAccordionPanel;\n let nestedPanelThree: PfAccordionPanel;\n\n beforeEach(async function() {\n element = await createFixture<PfAccordion>(html`\n <pf-accordion>\n <pf-accordion-header id=\"header-1\" data-index=\"0\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-1\" data-index=\"0\">\n <pf-accordion>\n <pf-accordion-header id=\"header-1-1\" data-index=\"0-1\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-1-1\" data-index=\"0-1\"></pf-accordion-panel>\n </pf-accordion>\n </pf-accordion-panel>\n <pf-accordion-header id=\"header-2\" data-index=\"2\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-2\" data-panel=\"2\">\n <pf-accordion single>\n <pf-accordion-header id=\"header-2-1\" data-index=\"1-0\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-2-1\" data-index=\"1-0\"></pf-accordion-panel>\n <pf-accordion-header id=\"header-2-2\" data-index=\"1-1\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-2-2\" data-index=\"1-1\"></pf-accordion-panel>\n <pf-accordion-header id=\"header-2-3\" data-index=\"1-2\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-2-3\" data-index=\"1-2\"></pf-accordion-panel>\n </pf-accordion>\n </pf-accordion-panel>\n\n <pf-accordion-header id=\"header-3\" data-index=\"2\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-3\" data-index=\"2\"></pf-accordion-panel>\n </pf-accordion>\n `);\n topLevelHeaderOne = document.getElementById('header-1') as PfAccordionHeader;\n topLevelHeaderTwo = document.getElementById('header-2') as PfAccordionHeader;\n topLevelHeaderThree = document.getElementById('header-3') as PfAccordionHeader;\n\n topLevelPanelOne = document.getElementById('panel-1') as PfAccordionPanel;\n topLevelPanelTwo = document.getElementById('panel-2') as PfAccordionPanel;\n\n nestedHeaderOne = document.getElementById('header-2-1') as PfAccordionHeader;\n nestedHeaderTwo = document.getElementById('header-2-2') as PfAccordionHeader;\n nestedHeaderThree = document.getElementById('header-2-3') as PfAccordionHeader;\n\n nestedPanelOne = document.getElementById('panel-2-1') as PfAccordionPanel;\n nestedPanelTwo = document.getElementById('panel-2-2') as PfAccordionPanel;\n nestedPanelThree = document.getElementById('panel-2-3') as PfAccordionPanel;\n\n await allUpdates(element);\n });\n\n describe('clicking the first top-level heading', function() {\n beforeEach(async function() {\n topLevelHeaderOne.click();\n await allUpdates(element);\n });\n describe('then clicking the second top-level heading', function() {\n beforeEach(async function() {\n topLevelHeaderTwo.click();\n await allUpdates(element);\n });\n describe('then clicking the first nested heading', function() {\n beforeEach(async function() {\n nestedHeaderOne.click();\n await allUpdates(element);\n });\n describe('then clicking the second nested heading', function() {\n beforeEach(async function() {\n nestedHeaderTwo.click();\n await allUpdates(element);\n });\n it('expands the first top-level pair', function() {\n expect(topLevelHeaderOne.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded'), 'top level header 1 button aria-expanded attr').to.equal('true');\n expect(topLevelHeaderOne.expanded, 'top level header 1 expanded DOM property').to.be.true;\n expect(topLevelPanelOne.hasAttribute('expanded'), 'top level panel 1 expanded attr').to.be.true;\n expect(topLevelPanelOne.expanded, 'top level panel 1 DOM property').to.be.true;\n });\n it('collapses the second top-level pair', function() {\n expect(topLevelHeaderTwo.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded'), 'top level header 2 button aria-expanded attr').to.equal('true');\n expect(topLevelHeaderTwo.expanded, 'top level header 2 expanded DOM property').to.be.true;\n expect(topLevelPanelTwo.hasAttribute('expanded'), 'top level panel 2 expanded attr').to.be.true;\n expect(topLevelPanelTwo.expanded, 'top level panel 2 expanded DOM property').to.be.true;\n });\n it('collapses the first nested pair', function() {\n expect(nestedHeaderOne.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded'), 'nested header 1 button aria-expanded attr').to.equal('false');\n expect(nestedHeaderOne.expanded, 'nested header 1 expanded DOM property').to.be.false;\n expect(nestedPanelOne.hasAttribute('expanded'), 'nested panel 1 expanded attr').to.be.false;\n expect(nestedPanelOne.expanded, 'nested panel 1 expanded DOM property').to.be.false;\n });\n it('collapses the second nested pair', function() {\n expect(nestedHeaderTwo.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded'), 'nested header 2 button aria-expanded attr').to.equal('true');\n expect(nestedHeaderTwo.expanded, 'nested header 2 expanded DOM property').to.be.true;\n expect(nestedPanelTwo.hasAttribute('expanded'), 'nested panel 2 expanded attr').to.be.true;\n expect(nestedPanelTwo.expanded, 'nested panel 2 expanded DOM property').to.be.true;\n });\n });\n });\n });\n });\n\n describe('for assistive technology', function() {\n describe('with all panels closed', function() {\n it('applies hidden attribute to all panels', function() {\n expect(topLevelPanelOne.hidden, 'panel-1').to.be.true;\n expect(topLevelPanelTwo.hidden, 'panel-2').to.be.true;\n expect(nestedPanelOne.hidden, 'panel-1-1').to.be.true;\n expect(nestedPanelTwo.hidden, 'panel-2-2').to.be.true;\n expect(nestedPanelThree.hidden, 'panel-2-3').to.be.true;\n });\n });\n\n describe('with all panels open', function() {\n beforeEach(async function() {\n for (const header of element.querySelectorAll('pf-accordion-header')) {\n header.click();\n }\n await nextFrame();\n });\n it('removes hidden attribute from all panels', function() {\n expect(topLevelPanelOne.hidden, 'panel-1').to.be.false;\n expect(topLevelPanelTwo.hidden, 'panel-2').to.be.false;\n expect(nestedPanelOne.hidden, 'panel-1-1').to.be.false;\n expect(nestedPanelTwo.hidden, 'panel-2-2').to.be.false;\n expect(nestedPanelThree.hidden, 'panel-2-3').to.be.false;\n });\n });\n\n describe('when focus is on the first header of the parent accordion', function() {\n beforeEach(async function() {\n topLevelHeaderOne.focus();\n await nextFrame();\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('expands the first panel', function() {\n expect(topLevelPanelOne.expanded).to.be.true;\n expect(topLevelPanelTwo.expanded).to.be.false;\n expect(nestedPanelOne.expanded).to.be.false;\n expect(nestedPanelTwo.expanded).to.be.false;\n });\n it('removes hidden attribute from the first panel', function() {\n expect(topLevelPanelOne.hidden, 'panel-1').to.be.false;\n expect(topLevelPanelTwo.hidden, 'panel-2').to.be.true;\n expect(nestedPanelOne.hidden, 'panel-1-1').to.be.true;\n expect(nestedPanelTwo.hidden, 'panel-2-2').to.be.true;\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the body', function() {\n expect(document.activeElement).to.equal(document.body);\n });\n });\n });\n\n describe('when focus is on the last header of the parent accordion', function() {\n beforeEach(async function() {\n topLevelHeaderTwo.focus();\n await nextFrame();\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('expands the first panel', function() {\n expect(topLevelPanelOne.expanded).to.be.false;\n expect(topLevelPanelTwo.expanded).to.be.true;\n expect(nestedPanelOne.expanded).to.be.false;\n expect(nestedPanelTwo.expanded).to.be.false;\n });\n it('removes hidden attribute from the first panel', function() {\n expect(topLevelPanelOne.hidden, 'panel-2').to.be.true;\n expect(topLevelPanelTwo.hidden, 'panel-1').to.be.false;\n expect(nestedPanelOne.hidden, 'panel-1-1').to.be.true;\n expect(nestedPanelTwo.hidden, 'panel-2-2').to.be.true;\n });\n });\n\n describe('Navigating from parent to child accordion', function() {\n describe('Opening the panel containing the nested accordion and pressing TAB', function() {\n beforeEach(press('Space'));\n beforeEach(press('Tab'));\n it('moves focus to the nested accordion header', function() {\n expect(document.activeElement).to.equal(nestedHeaderOne);\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n it('moves focus to the last header', function() {\n expect(document.activeElement).to.equal(nestedHeaderThree);\n });\n });\n\n describe('ArrowLeft', function() {\n beforeEach(press('ArrowLeft'));\n it('moves focus to the last header', function() {\n expect(document.activeElement).to.equal(nestedHeaderThree);\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n it('moves focus to the second header', function() {\n expect(document.activeElement).to.equal(nestedHeaderTwo);\n });\n });\n\n describe('ArrowRight', function() {\n beforeEach(press('ArrowRight'));\n it('moves focus to the second header', function() {\n expect(document.activeElement).to.equal(nestedHeaderTwo);\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('should move focus back to the body', function() {\n expect(document.activeElement).to.equal(document.body);\n });\n });\n });\n });\n });\n });\n });\n\n describe('with multiple pf-accordion', function() {\n let multipleAccordionElements: HTMLElement;\n\n let accordionOneHeaderOne: PfAccordionHeader;\n let accordionOnePanelOne: PfAccordionPanel;\n\n let accordionTwoHeaderOne: PfAccordionHeader;\n let accordionTwoPanelOne: PfAccordionPanel;\n\n beforeEach(async function() {\n multipleAccordionElements = await createFixture<HTMLElement>(html`\n <div>\n <pf-accordion>\n <pf-accordion-header id=\"header-1-1\" data-index=\"0\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-1-1\" data-index=\"0\"></pf-accordion-panel>\n </pf-accordion>\n <pf-accordion>\n <pf-accordion-header id=\"header-2-1\" data-index=\"0\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-2-1\" data-index=\"0\"></pf-accordion-panel>\n </pf-accordion>\n </div>\n `);\n accordionOneHeaderOne = document.getElementById('header-1-1') as PfAccordionHeader;\n\n accordionOnePanelOne = document.getElementById('panel-1-1') as PfAccordionPanel;\n\n accordionTwoHeaderOne = document.getElementById('header-2-1') as PfAccordionHeader;\n\n accordionTwoPanelOne = document.getElementById('panel-2-1') as PfAccordionPanel;\n });\n\n describe('for assistive technology', function() {\n describe('with all panels closed', function() {\n it('applies hidden attribute to all panels', function() {\n expect(accordionOnePanelOne.hidden, 'panel-1-1').to.be.true;\n expect(accordionTwoPanelOne.hidden, 'panel-2-1').to.be.true;\n });\n });\n\n describe('with all panels open', function() {\n beforeEach(async function() {\n for (const header of multipleAccordionElements.querySelectorAll('pf-accordion-header')) {\n header.click();\n }\n await nextFrame();\n });\n it('removes hidden attribute from all panels', function() {\n expect(accordionOnePanelOne.hidden, 'panel-1-1').to.be.false;\n expect(accordionTwoPanelOne.hidden, 'panel-2-1').to.be.false;\n });\n });\n\n describe('when focus is on the first header of the first accordion', function() {\n beforeEach(async function() {\n accordionOneHeaderOne.focus();\n await nextFrame();\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('expands the first panel', function() {\n expect(accordionOnePanelOne.expanded).to.be.true;\n expect(accordionTwoPanelOne.expanded).to.be.false;\n });\n it('removes hidden attribute from the first panel', function() {\n expect(accordionOnePanelOne.hidden, 'panel-1-1').to.be.false;\n expect(accordionTwoPanelOne.hidden, 'panel-1-1').to.be.true;\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the second accordion', function() {\n expect(document.activeElement).to.equal(accordionTwoHeaderOne);\n });\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('moves focus back to the first accordion', function() {\n expect(document.activeElement).to.equal(accordionOneHeaderOne);\n });\n });\n });\n });\n });\n });\n\n describe('with a single expanded header and panel containing a checkbox and a switch', function() {\n let element: PfAccordion;\n let headers: NodeListOf<PfAccordionHeader>;\n let panels: NodeListOf<PfAccordionPanel>;\n let checkbox: HTMLInputElement;\n let pfswitch: PfSwitch;\n let accordionPanelOne: PfAccordionPanel;\n\n beforeEach(async function() {\n element = await createFixture<PfAccordion>(html`\n <pf-accordion>\n <pf-accordion-header expanded id=\"header-1-1\" data-index=\"0\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-1-1\" data-index=\"0\">\n <pf-switch></pf-switch>\n <input type=\"checkbox\">\n </pf-accordion-panel>\n </pf-accordion>\n `);\n headers = document.querySelectorAll('pf-accordion-header');\n panels = document.querySelectorAll('pf-accordion-panel');\n checkbox = element.querySelector('input')!;\n pfswitch = element.querySelector('pf-switch')!;\n expect(checkbox).to.be.ok;\n expect(pfswitch).to.be.ok;\n [accordionPanelOne] = panels;\n });\n\n describe('clicking the checkbox', function() {\n beforeEach(async function() {\n checkbox.click();\n await element.updateComplete;\n });\n it('does not collapse the panel', function() {\n expect(accordionPanelOne.expanded).to.be.true;\n });\n });\n\n describe('clicking the switch', function() {\n beforeEach(async function() {\n const { checked } = pfswitch;\n pfswitch.click();\n await element.updateComplete;\n await pfswitch.updateComplete;\n expect(pfswitch.checked).to.not.equal(checked);\n });\n it('does not collapse the panel', function() {\n expect(accordionPanelOne.expanded).to.be.true;\n });\n });\n });\n});\n"]}
1
+ {"version":3,"file":"pf-accordion.spec.js","sourceRoot":"","sources":["pf-accordion.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html, aTimeout, nextFrame } from '@open-wc/testing';\nimport { sendKeys } from '@web/test-runner-commands';\n\nimport { allUpdates, clickElementAtCenter } from '@patternfly/pfe-tools/test/utils.js';\nimport { a11ySnapshot, querySnapshot } from '@patternfly/pfe-tools/test/a11y-snapshot.js';\n\n// Import the element we're testing.\nimport { PfAccordion, PfAccordionPanel, PfAccordionHeader } from '@patternfly/elements/pf-accordion/pf-accordion.js';\nimport { PfSwitch } from '@patternfly/elements/pf-switch/pf-switch.js';\n\nimport { Logger } from '@patternfly/pfe-core/controllers/logger.js';\n\nimport '@patternfly/pfe-tools/test/stub-logger.js';\n\ndescribe('<pf-accordion>', function() {\n let element: PfAccordion;\n let headers: PfAccordionHeader[];\n let panels: PfAccordionPanel[];\n let header: PfAccordionHeader;\n let panel: PfAccordionPanel;\n let secondHeader: PfAccordionHeader;\n let secondPanel: PfAccordionPanel;\n\n async function clickFirstHeader() {\n await clickElementAtCenter(header);\n await allUpdates(element);\n }\n\n async function clickSecondHeader() {\n await clickElementAtCenter(secondHeader);\n await allUpdates(element);\n }\n\n async function callToggle(index: number) {\n element.toggle(index);\n await allUpdates(element);\n }\n\n async function callExpand(index: number) {\n element.expand(index);\n await allUpdates(element);\n }\n\n async function callCollapse(index: number) {\n element.collapse(index);\n await allUpdates(element);\n }\n\n async function callExpandAll() {\n element.expandAll();\n await allUpdates(element);\n }\n\n async function callCollapseAll() {\n element.collapseAll();\n await allUpdates(element);\n }\n\n function press(press: string) {\n return async function() {\n await sendKeys({ press });\n await allUpdates(element);\n };\n }\n\n it('imperatively instantiates', function() {\n expect(document.createElement('pf-accordion')).to.be.an.instanceof(PfAccordion);\n expect(document.createElement('pf-accordion-header')).to.be.an.instanceof(PfAccordionHeader);\n expect(document.createElement('pf-accordion-panel')).to.be.an.instanceof(PfAccordionPanel);\n });\n\n it('simply instantiating', async function() {\n element = await fixture<PfAccordion>(html`<pf-accordion></pf-accordion>`);\n expect(element, 'pf-accordion should be an instance of PfAccordion')\n .to.be.an.instanceof(customElements.get('pf-accordion'))\n .and\n .to.be.an.instanceof(PfAccordion);\n });\n\n describe('in typical usage', function() {\n beforeEach(async function() {\n element = await fixture<PfAccordion>(html`\n <pf-accordion>\n <pf-accordion-header id=\"header1\" data-index=\"0\">\n <h3>Header1 Consetetur sadipscing elitr?</h3>\n </pf-accordion-header>\n <pf-accordion-panel id=\"panel1\" data-index=\"0\">\n <p>Panel1 <a href=\"#\">Panel1 link Lorem ipsum dolor</a>, sit amet consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt\n ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea\n rebum.</p>\n </pf-accordion-panel>\n <pf-accordion-header data-index=\"1\">\n <h3>Header2 Labore et dolore magna aliquyam erat?</h3>\n </pf-accordion-header>\n <pf-accordion-panel data-index=\"1\">\n <p>Panel2 <a href=\"#\">Panel2 link Lorem ipsum dolor</a> sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt\n ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea\n rebum.</p>\n </pf-accordion-panel>\n <pf-accordion-header data-index=\"2\">\n <h3>Header3 Incididunt in Lorem voluptate eiusmod dolor?</h3>\n </pf-accordion-header>\n <pf-accordion-panel data-index=\"2\">\n <p>Panel3<a href=\"#\">Panel3 link Lorem ipsum dolor</a> sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt\n ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea\n rebum.</p>\n </pf-accordion-panel>\n </pf-accordion>\n `);\n headers = Array.from(element.querySelectorAll('pf-accordion-header'));\n panels = Array.from(element.querySelectorAll('pf-accordion-panel'));\n [header, secondHeader] = headers;\n [panel, secondPanel] = panels;\n });\n\n beforeEach(() => allUpdates(element));\n\n it('randomly generates ids on children', function() {\n expect(secondHeader.id).to.match(/pf-/);\n expect(secondPanel.id).to.match(/panel-/);\n });\n\n it('preserves existing IDs', function() {\n expect(element.querySelector('#header1')).to.exist;\n expect(element.querySelector('#panel1')).to.exist;\n });\n\n describe('clicking the first header', function() {\n beforeEach(clickFirstHeader);\n\n it('expands first pair', async function() {\n const snapshot = await a11ySnapshot();\n const expanded = querySnapshot(snapshot, { expanded: true });\n const focused = querySnapshot(snapshot, { focused: true });\n expect(expanded?.name).to.equal(header.textContent?.trim());\n expect(header.expanded).to.be.true;\n expect(panel.hasAttribute('expanded')).to.be.true;\n expect(panel.expanded).to.be.true;\n expect(expanded).to.equal(focused);\n });\n\n describe('then clicking first header again', function() {\n beforeEach(clickFirstHeader);\n\n it('collapses first pair', async function() {\n const snapshot = await a11ySnapshot();\n const expanded = snapshot?.children?.find(x => x.expanded);\n expect(expanded).to.not.be.ok;\n expect(header.expanded).to.be.false;\n expect(panel.hasAttribute('expanded')).to.be.false;\n expect(panel.expanded).to.be.false;\n });\n });\n });\n\n /* API TESTS */\n describe('calling toggle(1)', function(this: Mocha.Suite) {\n beforeEach(callToggle.bind(this, 1));\n it('expands second pair', function() {\n expect(secondHeader.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('true');\n expect(secondHeader.expanded).to.be.true;\n expect(secondPanel.hasAttribute('expanded')).to.be.true;\n expect(secondPanel.expanded).to.be.true;\n });\n\n describe('then calling toggle(1)', function(this: Mocha.Suite) {\n beforeEach(callToggle.bind(this, 1));\n it('collapses second pair', function() {\n expect(secondHeader.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('false');\n expect(secondHeader.expanded).to.be.false;\n expect(secondPanel.hasAttribute('expanded')).to.be.false;\n expect(secondPanel.expanded).to.be.false;\n });\n });\n });\n\n describe('calling expand(1)', function(this: Mocha.Suite) {\n beforeEach(callExpand.bind(this, 1));\n it('expands second pair', function() {\n expect(secondHeader.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('true');\n expect(secondHeader.expanded).to.be.true;\n expect(secondPanel.hasAttribute('expanded')).to.be.true;\n expect(secondPanel.expanded).to.be.true;\n });\n describe('then calling collapse(1)', function(this: Mocha.Suite) {\n beforeEach(callCollapse.bind(this, 1));\n it('collapses second pair', function() {\n expect(secondHeader.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('false');\n expect(secondHeader.expanded).to.be.false;\n expect(secondPanel.hasAttribute('expanded')).to.be.false;\n expect(secondPanel.expanded).to.be.false;\n });\n });\n });\n\n describe('calling expandAll()', function(this: Mocha.Suite) {\n beforeEach(callExpandAll.bind(this));\n it('expands all pairs', function() {\n for (const header of headers) {\n expect(header.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('true');\n expect(header.expanded).to.be.true;\n }\n\n for (const panel of panels) {\n expect(panel.hasAttribute('expanded')).to.be.true;\n expect(panel.expanded).to.be.true;\n }\n });\n\n describe('then calling collapseAll()', function(this: Mocha.Suite) {\n beforeEach(callCollapseAll.bind(this));\n it('collapses all pairs', function() {\n for (const header of headers) {\n expect(header.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded')).to.equal('false');\n expect(header.expanded).to.be.false;\n }\n\n for (const panel of panels) {\n expect(panel.hasAttribute('expanded')).to.be.false;\n expect(panel.expanded).to.be.false;\n }\n });\n });\n });\n\n /* ATTRIBUTE TESTS */\n describe('setting expanded-index attribute', function() {\n const indices = '1,2';\n beforeEach(function() {\n element.setAttribute('expanded-index', indices);\n });\n beforeEach(() => allUpdates(element));\n beforeEach(nextFrame);\n\n it('expands the pairs listed in the expanded-index attribute', function() {\n for (const idx of indices.split(',').map(x => parseInt(x))) {\n const header = headers[idx];\n const panel = panels[idx];\n expect(header.expanded, 'header expanded DOM property').to.be.true;\n expect(header.hasAttribute('expanded'), 'header expanded attribute').to.be.true;\n expect(panel.expanded, 'panel expanded DOM property').to.be.true;\n expect(panel.hasAttribute('expanded'), 'panel expanded attribute').to.be.true;\n }\n });\n });\n\n describe('dynamically adding pairs', function() {\n beforeEach(function() {\n const newHeader = document.createElement('pf-accordion-header');\n newHeader.id = 'newHeader';\n newHeader.innerHTML = `<h2>New Header</h2>`;\n\n const newPanel = document.createElement('pf-accordion-panel');\n newPanel.id = 'newPanel';\n newPanel.innerHTML = `New Panel`;\n\n element.appendChild(newHeader);\n element.appendChild(newPanel);\n });\n\n beforeEach(() => allUpdates(element));\n\n it('properly initializes new pairs', function() {\n const newHeader = headers.at(-1);\n const newPanel = panels.at(-1);\n expect(newHeader?.hasAttribute('id'), 'header has an id').to.be.true;\n expect(newHeader?.getAttribute('aria-controls'), 'header has aria-controls')\n .to.equal(newPanel?.getAttribute('id'));\n\n expect(newPanel?.getAttribute('role'), 'panel has role').to.equal('region');\n expect(newPanel?.hasAttribute('id'), 'panel has id').to.be.true;\n expect(newPanel?.getAttribute('aria-labelledby'), 'panel has aria-labelledby')\n .to.equal(newHeader?.getAttribute('id'));\n });\n });\n\n describe('<pf-accordion-header>', function() {\n it('should upgrade pf-accordion-header', function() {\n expect(header)\n .to.be.an.instanceof(customElements.get('pf-accordion-header'))\n .and\n .to.be.an.instanceOf(PfAccordionHeader);\n });\n\n it('must have an id', function() {\n expect(header.id).to.be.ok;\n });\n\n it('should add the aria-controls attribute corresponding to the header ID', function() {\n expect(header.getAttribute('aria-controls')).to.equal(panel.id);\n });\n });\n\n describe('<pf-accordion-panel>', function() {\n it('should upgrade pf-accordion-panel', function() {\n expect(panel)\n .to.be.an.instanceof(customElements.get('pf-accordion-panel'))\n .and\n .to.be.an.instanceOf(PfAccordionPanel);\n });\n\n it('must have an id', function() {\n expect(panel.id).to.be.ok;\n });\n\n it('should add the aria-labelledby attribute corresponding to the header ID', function() {\n expect(panel.getAttribute('aria-labelledby')).to.equal(header.id);\n });\n\n it('should set the role attribute to \"region\"', function() {\n expect(panel.getAttribute('role'), 'role').to.equal('region');\n });\n });\n\n /** @see https://www.w3.org/TR/wai-aria-practices/examples/accordion/accordion.html */\n describe('for assistive technology', function() {\n let header1: PfAccordionHeader;\n let header2: PfAccordionHeader;\n let header3: PfAccordionHeader;\n\n let panel1: PfAccordionPanel;\n let panel2: PfAccordionPanel;\n let panel3: PfAccordionPanel;\n\n beforeEach(async function() {\n [header1, header2, header3] = element.querySelectorAll('pf-accordion-header');\n [panel1, panel2, panel3] = element.querySelectorAll('pf-accordion-panel');\n });\n\n afterEach(async function() {\n [header1, header2, header3] = [] as PfAccordionHeader[];\n [panel1, panel2, panel3] = [] as PfAccordionPanel[];\n await fixture('');\n });\n\n it('applies hidden attribute to all panels', function() {\n expect(panel1.hidden, 'panel1').to.be.true;\n expect(panel2.hidden, 'panel2').to.be.true;\n expect(panel3.hidden, 'panel3').to.be.true;\n });\n\n describe('clicking every header', function() {\n beforeEach(async function() {\n for (const header of element.querySelectorAll('pf-accordion-header')) {\n await clickElementAtCenter(header);\n }\n });\n beforeEach(nextFrame);\n it('removes hidden attribute from all panels', function() {\n expect(panel1.hidden, 'panel1').to.be.false;\n expect(panel2.hidden, 'panel2').to.be.false;\n expect(panel3.hidden, 'panel3').to.be.false;\n });\n });\n\n describe('calling focus() on the first header', function() {\n beforeEach(function() {\n header1.focus();\n });\n\n beforeEach(nextFrame);\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('expands the first panel', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n it('removes hidden attribute from the first panel', function() {\n expect(panel1.hidden, 'panel1').to.be.false;\n expect(panel2.hidden, 'panel2').to.be.true;\n expect(panel3.hidden, 'panel3').to.be.true;\n });\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n it('expands the first panel', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n it('removes hidden attribute from the first panel', function() {\n expect(panel1.hidden, 'panel1').to.be.false;\n expect(panel2.hidden, 'panel2').to.be.true;\n expect(panel3.hidden, 'panel3').to.be.true;\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('blurs out of the accordion', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(document.body);\n });\n });\n\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('blurs out of the accordion', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(document.body);\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n it('moves focus to the second header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header2);\n });\n it('does not open panels', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n it('moves focus to the last header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header3);\n });\n it('does not open panels', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n it('moves focus to the first header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header1);\n });\n it('does not open panels', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('End', function() {\n beforeEach(press('End'));\n it('moves focus to the last header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header3);\n });\n it('does not open panels', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n });\n\n describe('calling focus() on the middle header', function() {\n beforeEach(function() {\n header2.focus();\n });\n\n beforeEach(nextFrame);\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('expands the middle panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.true;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n it('expands the middle panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.true;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the body', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(document.body);\n });\n });\n\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n it('moves focus to the last header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header3);\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n it('moves focus to the first header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header1);\n });\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n it('moves focus to the first header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header1);\n });\n });\n\n describe('End', function() {\n beforeEach(press('End'));\n it('moves focus to the last header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header3);\n });\n });\n });\n\n describe('calling focus() on the last header', function() {\n beforeEach(function() {\n header3.focus();\n });\n\n beforeEach(nextFrame);\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('expands the last panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.true;\n });\n describe('then Space', function() {\n beforeEach(press(' '));\n it('collapses the last panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n it('expands the last panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.true;\n });\n describe('then Enter', function() {\n beforeEach(press('Enter'));\n it('collapses the last panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n });\n\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('moves focus to the body', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(document.body);\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n it('moves focus to the first header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header1);\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n it('moves focus to the middle header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header2);\n });\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n it('moves focus to the first header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header1);\n });\n });\n\n describe('End', function() {\n beforeEach(press('End'));\n it('moves focus to the last header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header3);\n });\n });\n });\n\n describe('expand(0)', function() {\n beforeEach(function() {\n element.expand(0);\n });\n\n beforeEach(nextFrame);\n\n describe('calling focus() on the first header', function() {\n beforeEach(function() {\n header1.focus();\n });\n describe('Space', function() {\n beforeEach(press(' '));\n beforeEach(nextFrame);\n it('collapses the first panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n it('collapses the first panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the link in the first panel', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(panel1.querySelector('a'));\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the body', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(document.body);\n });\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('keeps focus on the link in the first panel', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(panel1.querySelector('a'));\n });\n });\n });\n\n describe('Space', function() {\n beforeEach(press(' '));\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n it('keeps focus on the link in the first panel', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(panel1.querySelector('a'));\n });\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n it('keeps focus on the link in the first panel', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(panel1.querySelector('a'));\n });\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n\n it('keeps focus on the link in the first panel', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(panel1.querySelector('a'));\n });\n\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('End', function() {\n beforeEach(press('End'));\n it('keeps focus on the link in the first panel', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(panel1.querySelector('a'));\n });\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n });\n });\n\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('moves focus to the body', async function() {\n const snapshot = await a11ySnapshot();\n expect(querySnapshot(snapshot, { focused: true })).to.not.be.ok;\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n\n it('moves focus to the second header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header2);\n });\n\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n\n it('moves focus to the last header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header3);\n });\n\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Home', function() {\n beforeEach(press('Home'));\n it('moves focus to the first header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header1);\n });\n\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('End', function() {\n beforeEach(press('End'));\n it('moves focus to the last header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header3);\n });\n it('does not open other panels', function() {\n expect(panel1.expanded).to.be.true;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n });\n\n describe('calling focus() on the middle header', function() {\n beforeEach(function() {\n header2.focus();\n });\n\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n beforeEach(nextFrame);\n it('moves focus to the link in first panel', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(panel1.querySelector('a'));\n });\n });\n });\n });\n\n describe('expand(1)', function() {\n beforeEach(function() {\n element.expand(1);\n });\n\n beforeEach(nextFrame);\n\n it('sets the expanded property on the second panel', function() {\n expect(panel2.expanded).to.be.true;\n });\n\n it('applies hidden attribute to the middle panel', function() {\n expect(panel1.hidden, 'panel1').to.be.true;\n expect(panel2.hidden, 'panel2').to.be.false;\n expect(panel3.hidden, 'panel3').to.be.true;\n });\n\n describe('calling focus() on the middle header', function() {\n beforeEach(function() {\n header2.focus();\n });\n\n beforeEach(nextFrame);\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('collapses the second panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Enter', function() {\n beforeEach(press('Enter'));\n it('collapses the second panel', function() {\n expect(panel1.expanded).to.be.false;\n expect(panel2.expanded).to.be.false;\n expect(panel3.expanded).to.be.false;\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the link in the second panel', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(panel2.querySelector('a'));\n });\n });\n\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('moves focus to the body', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(document.body);\n });\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n it('moves focus to the first header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header1);\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n it('moves focus to the last header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(header3);\n });\n });\n });\n\n describe('calling focus() on the last header', function() {\n beforeEach(function() {\n header3.focus();\n });\n\n beforeEach(nextFrame);\n\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('moves focus to the link in middle panel', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(panel2.querySelector('a'));\n });\n });\n });\n });\n\n describe('expand(2)', function() {\n beforeEach(function() {\n element.expand(2);\n });\n\n beforeEach(nextFrame);\n\n it('sets the expanded property on the last panel', function() {\n expect(panel3.expanded).to.be.true;\n });\n\n describe('calling focus() is on the last header', function() {\n beforeEach(function() {\n header3.focus();\n });\n\n beforeEach(nextFrame);\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the link in last panel', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(panel3.querySelector('a'));\n });\n });\n });\n });\n });\n });\n\n describe('with single attribute', function() {\n beforeEach(async function() {\n element = await fixture<PfAccordion>(html`\n <pf-accordion single>\n <pf-accordion-header id=\"header1\" data-index=\"0\">\n <h3>Consetetur sadipscing elitr?</h3>\n </pf-accordion-header>\n <pf-accordion-panel id=\"panel1\" data-index=\"0\">\n <p><a href=\"#\">Lorem ipsum dolor sit amet</a>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt\n ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea\n rebum.</p>\n </pf-accordion-panel>\n <pf-accordion-header data-index=\"1\">\n <h3>Labore et dolore magna aliquyam erat?</h3>\n </pf-accordion-header>\n <pf-accordion-panel data-index=\"1\">\n <p><a href=\"#\">Lorem ipsum dolor sit amet</a>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt\n ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea\n rebum.</p>\n </pf-accordion-panel>\n <pf-accordion-header data-index=\"2\">\n <h3>Incididunt in Lorem voluptate eiusmod dolor?</h3>\n </pf-accordion-header>\n <pf-accordion-panel data-index=\"2\">\n <p><a href=\"#\">Lorem ipsum dolor sit amet</a>, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt\n ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea\n rebum.</p>\n </pf-accordion-panel>\n </pf-accordion>\n `);\n headers = Array.from(element.querySelectorAll('pf-accordion-header'));\n panels = Array.from(element.querySelectorAll('pf-accordion-panel'));\n [header, secondHeader] = headers;\n [panel, secondPanel] = panels;\n await allUpdates(element);\n });\n\n describe('clicking the first header', function() {\n beforeEach(clickFirstHeader);\n describe('then clicking the second header', function() {\n beforeEach(clickSecondHeader);\n it('collapses all pairs except second', function() {\n headers.forEach((header, i) => {\n const ariaExpanded = header.shadowRoot!.querySelector('button')?.getAttribute('aria-expanded');\n if (i === 1) {\n expect(header.expanded, `headers[${i}].expanded`).to.be.true;\n expect(ariaExpanded, `headers[${i}].ariaExpanded`).to.equal('true');\n } else {\n expect(header.expanded, `headers[${i}].expanded`).to.be.false;\n expect(ariaExpanded, `headers[${i}].ariaExpanded`).to.equal('false');\n }\n });\n panels.forEach((panel, i) => {\n if (i === 1) {\n expect(panel.expanded, `panels[${i}].expanded`).to.be.true;\n } else {\n expect(panel.expanded, `panels[${i}].expanded`).to.be.false;\n }\n });\n });\n });\n });\n });\n\n describe('with expanded attribute on two headers', function() {\n beforeEach(async function() {\n element = await fixture<PfAccordion>(html`\n <pf-accordion>\n <pf-accordion-header data-index=\"0\" expanded><h2>h</h2></pf-accordion-header>\n <pf-accordion-panel data-index=\"0\"><p>p</p></pf-accordion-panel>\n <pf-accordion-header data-index=\"1\" expanded><h2>h</h2></pf-accordion-header>\n <pf-accordion-panel data-index=\"1\"><p>p</p></pf-accordion-panel>\n <pf-accordion-header data-index=\"2\"><h2>h</h2></pf-accordion-header>\n <pf-accordion-panel data-index=\"2\"><p>p</p></pf-accordion-panel>\n </pf-accordion>\n `);\n headers = Array.from(element.querySelectorAll('pf-accordion-header'));\n panels = Array.from(element.querySelectorAll('pf-accordion-panel'));\n [header, secondHeader] = headers;\n [panel, secondPanel] = panels;\n await allUpdates(element);\n });\n it('expands the first panel', function() {\n expect(panel).to.have.attribute('expanded');\n });\n it('expands the second panel', function() {\n expect(secondPanel).to.have.attribute('expanded');\n });\n it('hides the third panel', function() {\n expect(panels[2]).to.not.have.attribute('expanded');\n });\n });\n\n describe('with single attribute and expanded attribute on two headers', function() {\n beforeEach(async function() {\n element = await fixture<PfAccordion>(html`\n <pf-accordion single>\n <pf-accordion-header data-index=\"0\" expanded><h2>h</h2></pf-accordion-header>\n <pf-accordion-panel data-index=\"0\"><p>p</p></pf-accordion-panel>\n <pf-accordion-header data-index=\"1\" expanded><h2>h</h2></pf-accordion-header>\n <pf-accordion-panel data-index=\"1\"><p>p</p></pf-accordion-panel>\n <pf-accordion-header data-index=\"2\"><h2>h</h2></pf-accordion-header>\n <pf-accordion-panel data-index=\"2\"><p>p</p></pf-accordion-panel>\n </pf-accordion>\n `);\n headers = Array.from(element.querySelectorAll('pf-accordion-header'));\n panels = Array.from(element.querySelectorAll('pf-accordion-panel'));\n [header, secondHeader] = headers;\n [panel, secondPanel] = panels;\n await allUpdates(element);\n await aTimeout(100);\n });\n it('hides the first panel', function() {\n expect(panel).to.not.have.attribute('expanded');\n });\n it('expands the second panel', function() {\n expect(secondPanel).to.have.attribute('expanded');\n });\n it('hides the third panel', function() {\n expect(panels[2]).to.not.have.attribute('expanded');\n });\n });\n\n describe('with no h* tag in heading lightdom', function() {\n beforeEach(async function() {\n element = await fixture<PfAccordion>(html`\n <pf-accordion id=\"badHeader\">\n <pf-accordion-header id=\"bad-header-element\">\n Bad Header\n </pf-accordion-header>\n <pf-accordion-panel>\n Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n </pf-accordion-panel>\n </pf-accordion>`);\n await allUpdates(element);\n });\n /* CONSOLE VALIDATION */\n it('should warning in the console', function() {\n expect(Logger.warn)\n .to.have.been.calledOnceWith(`[pf-accordion-header#bad-header-element]`, 'Header should contain at least 1 heading tag for correct semantics.');\n });\n });\n\n describe('with nested <pf-accordion>', function() {\n let topLevelHeader1: PfAccordionHeader;\n let topLevelHeader2: PfAccordionHeader;\n\n let topLevelPanel1: PfAccordionPanel;\n let topLevelPanel2: PfAccordionPanel;\n\n let nestedHeader1: PfAccordionHeader;\n let nestedHeader2: PfAccordionHeader;\n let nestedHeader3: PfAccordionHeader;\n\n let nestedPanel1: PfAccordionPanel;\n let nestedPanel2: PfAccordionPanel;\n let nestedPanel3: PfAccordionPanel;\n\n beforeEach(async function() {\n element = await fixture<PfAccordion>(html`\n <pf-accordion>\n <pf-accordion-header id=\"header-1\" data-index=\"0\">top-header-1</pf-accordion-header>\n <pf-accordion-panel id=\"panel-1\" data-index=\"0\">\n top-panel-1\n <pf-accordion>\n <pf-accordion-header id=\"header-1-1\" data-index=\"0-1\">nest-1-header-1</pf-accordion-header>\n <pf-accordion-panel id=\"panel-1-1\" data-index=\"0-1\">nest-1-panel-1</pf-accordion-panel>\n </pf-accordion>\n </pf-accordion-panel>\n <pf-accordion-header id=\"header-2\" data-index=\"2\">top-header-2</pf-accordion-header>\n <pf-accordion-panel id=\"panel-2\" data-panel=\"2\">\n top-panel-2\n <pf-accordion single>\n <pf-accordion-header id=\"header-2-1\" data-index=\"1-0\">nest-2-header-1</pf-accordion-header>\n <pf-accordion-panel id=\"panel-2-1\" data-index=\"1-0\">nest-2-header-1</pf-accordion-panel>\n <pf-accordion-header id=\"header-2-2\" data-index=\"1-1\">nest-2-header-2</pf-accordion-header>\n <pf-accordion-panel id=\"panel-2-2\" data-index=\"1-1\">nest-2-panel-2</pf-accordion-panel>\n <pf-accordion-header id=\"header-2-3\" data-index=\"1-2\">nest-2-header-3</pf-accordion-header>\n <pf-accordion-panel id=\"panel-2-3\" data-index=\"1-2\">nest-2-panel-3</pf-accordion-panel>\n </pf-accordion>\n </pf-accordion-panel>\n <pf-accordion-header id=\"header-3\" data-index=\"2\">top-header-3</pf-accordion-header>\n <pf-accordion-panel id=\"panel-3\" data-index=\"2\">top-panel-3</pf-accordion-panel>\n </pf-accordion>\n `);\n topLevelHeader1 = document.getElementById('header-1') as PfAccordionHeader;\n topLevelHeader2 = document.getElementById('header-2') as PfAccordionHeader;\n\n topLevelPanel1 = document.getElementById('panel-1') as PfAccordionPanel;\n topLevelPanel2 = document.getElementById('panel-2') as PfAccordionPanel;\n\n nestedHeader1 = document.getElementById('header-2-1') as PfAccordionHeader;\n nestedHeader2 = document.getElementById('header-2-2') as PfAccordionHeader;\n nestedHeader3 = document.getElementById('header-2-3') as PfAccordionHeader;\n\n nestedPanel1 = document.getElementById('panel-2-1') as PfAccordionPanel;\n nestedPanel2 = document.getElementById('panel-2-2') as PfAccordionPanel;\n nestedPanel3 = document.getElementById('panel-2-3') as PfAccordionPanel;\n });\n\n beforeEach(() => allUpdates(element));\n\n describe('clicking the first top-level heading', function() {\n beforeEach(async function() {\n await clickElementAtCenter(topLevelHeader1);\n });\n\n beforeEach(() => allUpdates(element));\n\n describe('then clicking the second top-level heading', function() {\n beforeEach(async function() {\n await clickElementAtCenter(topLevelHeader2);\n });\n beforeEach(() => allUpdates(element));\n describe('then clicking the first nested heading', function() {\n beforeEach(async function() {\n await clickElementAtCenter(nestedHeader1);\n });\n beforeEach(() => allUpdates(element));\n describe('then clicking the second nested heading', function() {\n beforeEach(async function() {\n await clickElementAtCenter(nestedHeader2);\n });\n beforeEach(() => allUpdates(element));\n it('expands the first top-level pair', async function() {\n const snapshot = await a11ySnapshot();\n const expanded = snapshot?.children?.find(x => x.expanded);\n expect(expanded?.name).to.equal(topLevelHeader1.textContent?.trim());\n expect(topLevelHeader1.expanded).to.be.true;\n expect(topLevelPanel1.hasAttribute('expanded')).to.be.true;\n expect(topLevelPanel1.expanded).to.be.true;\n });\n it('collapses the second top-level pair', async function() {\n const snapshot = await a11ySnapshot();\n const header2 = querySnapshot(snapshot, { name: 'top-header-2' });\n expect(header2).to.have.property('expanded', true);\n });\n it('collapses the first nested pair', async function() {\n const snapshot = await a11ySnapshot();\n expect(querySnapshot(snapshot, { name: 'nest-1-header-1' })).to.not.have.property('expanded');\n });\n it('collapses the second nested pair', async function() {\n const snapshot = await a11ySnapshot();\n expect(querySnapshot(snapshot, { name: 'nest-2-header-1' })).to.not.have.property('expanded');\n });\n });\n });\n });\n });\n\n describe('with all panels closed', function() {\n it('applies hidden attribute to all panels', function() {\n expect(topLevelPanel1.hidden, 'panel-1').to.be.true;\n expect(topLevelPanel2.hidden, 'panel-2').to.be.true;\n expect(nestedPanel1.hidden, 'panel-1-1').to.be.true;\n expect(nestedPanel2.hidden, 'panel-2-2').to.be.true;\n expect(nestedPanel3.hidden, 'panel-2-3').to.be.true;\n });\n });\n\n describe('calling expandAll() on all accordions', function() {\n beforeEach(() => Promise.all(Array.from(document.querySelectorAll('pf-accordion'), a =>\n a.expandAll())));\n\n beforeEach(nextFrame);\n\n it('removes hidden attribute from all panels', function() {\n expect(topLevelPanel1.hidden, 'panel-1').to.be.false;\n expect(topLevelPanel2.hidden, 'panel-2').to.be.false;\n expect(nestedPanel1.hidden, 'panel-1-1').to.be.false;\n expect(nestedPanel2.hidden, 'panel-2-2').to.be.false;\n expect(nestedPanel3.hidden, 'panel-2-3').to.be.false;\n });\n });\n\n describe('calling focus() on the first header of the parent accordion', function() {\n beforeEach(function() {\n topLevelHeader1.focus();\n });\n\n beforeEach(nextFrame);\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('expands the first panel', function() {\n expect(topLevelPanel1.expanded).to.be.true;\n expect(topLevelPanel2.expanded).to.be.false;\n expect(nestedPanel1.expanded).to.be.false;\n expect(nestedPanel2.expanded).to.be.false;\n });\n it('removes hidden attribute from the first panel', function() {\n expect(topLevelPanel1.hidden, 'panel-1').to.be.false;\n expect(topLevelPanel2.hidden, 'panel-2').to.be.true;\n expect(nestedPanel1.hidden, 'panel-1-1').to.be.true;\n expect(nestedPanel2.hidden, 'panel-2-2').to.be.true;\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the body', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(document.body);\n });\n });\n });\n\n describe('calling focus() on the second header of the parent accordion', function() {\n beforeEach(function() {\n topLevelHeader2.focus();\n });\n\n beforeEach(nextFrame);\n\n describe('Space', function() {\n beforeEach(press(' '));\n beforeEach(nextFrame);\n it('expands the panel containing the nested <pf-accordion>', async function() {\n expect(await a11ySnapshot()).to.have.axContainName('nest-2-header-1');\n });\n describe('Tab', function() {\n beforeEach(press('Tab'));\n beforeEach(nextFrame);\n\n it('moves focus to the first nested header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(nestedHeader1);\n });\n\n describe('ArrowUp', function() {\n beforeEach(press('ArrowUp'));\n beforeEach(nextFrame);\n it('moves focus to the last nested header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(nestedHeader3);\n });\n });\n\n describe('ArrowLeft', function() {\n beforeEach(press('ArrowLeft'));\n beforeEach(nextFrame);\n it('moves focus to the last nested header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(nestedHeader3);\n });\n });\n\n describe('ArrowDown', function() {\n beforeEach(press('ArrowDown'));\n beforeEach(nextFrame);\n it('moves focus to the second nested header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(nestedHeader2);\n });\n });\n\n describe('ArrowRight', function() {\n beforeEach(press('ArrowRight'));\n beforeEach(nextFrame);\n it('moves focus to the second nested header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(nestedHeader2);\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n beforeEach(nextFrame);\n it('should move focus back to the body', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(document.body);\n });\n });\n });\n });\n });\n\n describe('calling focus() on the last header of the parent accordion', function() {\n beforeEach(function() {\n topLevelHeader2.focus();\n });\n\n beforeEach(nextFrame);\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('expands the first panel', function() {\n expect(topLevelPanel1.expanded).to.be.false;\n expect(topLevelPanel2.expanded).to.be.true;\n expect(nestedPanel1.expanded).to.be.false;\n expect(nestedPanel2.expanded).to.be.false;\n });\n\n it('removes hidden attribute from the first panel', function() {\n expect(topLevelPanel1.hidden, 'panel-2').to.be.true;\n expect(topLevelPanel2.hidden, 'panel-1').to.be.false;\n expect(nestedPanel1.hidden, 'panel-1-1').to.be.true;\n expect(nestedPanel2.hidden, 'panel-2-2').to.be.true;\n });\n });\n });\n });\n\n describe('with multiple <pf-accordion> elements', function() {\n let multipleAccordionElements: HTMLElement;\n\n let accordion1Header1: PfAccordionHeader;\n let accordion1Panel1: PfAccordionPanel;\n\n let accordion2Header1: PfAccordionHeader;\n let accordion2Panel1: PfAccordionPanel;\n\n beforeEach(async function() {\n multipleAccordionElements = await fixture<HTMLElement>(html`\n <div>\n <pf-accordion>\n <pf-accordion-header id=\"header-1-1\" data-index=\"0\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-1-1\" data-index=\"0\"></pf-accordion-panel>\n </pf-accordion>\n <pf-accordion>\n <pf-accordion-header id=\"header-2-1\" data-index=\"0\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-2-1\" data-index=\"0\"></pf-accordion-panel>\n </pf-accordion>\n </div>\n `);\n accordion1Header1 = document.getElementById('header-1-1') as PfAccordionHeader;\n\n accordion1Panel1 = document.getElementById('panel-1-1') as PfAccordionPanel;\n\n accordion2Header1 = document.getElementById('header-2-1') as PfAccordionHeader;\n\n accordion2Panel1 = document.getElementById('panel-2-1') as PfAccordionPanel;\n });\n\n it('applies hidden attribute to all panels', function() {\n expect(accordion1Panel1.hidden, 'panel-1-1').to.be.true;\n expect(accordion2Panel1.hidden, 'panel-2-1').to.be.true;\n });\n\n describe('clicking every header', function() {\n beforeEach(async function() {\n for (const header of multipleAccordionElements.querySelectorAll('pf-accordion-header')) {\n await clickElementAtCenter(header);\n }\n });\n\n beforeEach(nextFrame);\n\n it('removes hidden attribute from all panels', function() {\n expect(accordion1Panel1.hidden, 'panel-1-1').to.be.false;\n expect(accordion2Panel1.hidden, 'panel-2-1').to.be.false;\n });\n });\n\n describe('calling focus() on the first header of the first accordion', function() {\n beforeEach(function() {\n accordion1Header1.focus();\n });\n beforeEach(nextFrame);\n\n describe('Space', function() {\n beforeEach(press(' '));\n it('expands the first panel', function() {\n expect(accordion1Panel1.expanded).to.be.true;\n expect(accordion2Panel1.expanded).to.be.false;\n });\n it('removes hidden attribute from the first panel', function() {\n expect(accordion1Panel1.hidden, 'panel-1-1').to.be.false;\n expect(accordion2Panel1.hidden, 'panel-1-1').to.be.true;\n });\n });\n\n describe('Tab', function() {\n beforeEach(press('Tab'));\n it('moves focus to the second accordion', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(accordion2Header1);\n });\n describe('Shift+Tab', function() {\n beforeEach(press('Shift+Tab'));\n it('moves focus to the first accordion, first header', async function() {\n expect(await a11ySnapshot()).to.have.axTreeFocusOn(accordion1Header1);\n });\n });\n });\n });\n });\n\n describe('with a single expanded header and panel containing a checkbox and a switch', function() {\n let element: PfAccordion;\n let panels: NodeListOf<PfAccordionPanel>;\n let checkbox: HTMLInputElement;\n let pfswitch: PfSwitch;\n let accordionPanelOne: PfAccordionPanel;\n\n beforeEach(async function() {\n element = await fixture<PfAccordion>(html`\n <pf-accordion>\n <pf-accordion-header expanded id=\"header-1-1\" data-index=\"0\"></pf-accordion-header>\n <pf-accordion-panel id=\"panel-1-1\" data-index=\"0\">\n <pf-switch></pf-switch>\n <input type=\"checkbox\">\n </pf-accordion-panel>\n </pf-accordion>\n `);\n panels = document.querySelectorAll('pf-accordion-panel');\n checkbox = element.querySelector('input')!;\n pfswitch = element.querySelector('pf-switch')!;\n expect(checkbox).to.be.ok;\n expect(pfswitch).to.be.ok;\n [accordionPanelOne] = panels;\n });\n\n describe('clicking the checkbox', function() {\n beforeEach(async function() {\n await clickElementAtCenter(checkbox);\n await element.updateComplete;\n });\n it('does not collapse the panel', function() {\n expect(accordionPanelOne.expanded).to.be.true;\n });\n });\n\n describe('clicking the switch', function() {\n beforeEach(async function() {\n const { checked } = pfswitch;\n await clickElementAtCenter(pfswitch);\n await element.updateComplete;\n await pfswitch.updateComplete;\n expect(pfswitch.checked).to.not.equal(checked);\n });\n it('does not collapse the panel', function() {\n expect(accordionPanelOne.expanded).to.be.true;\n });\n });\n });\n});\n"]}
@@ -1,40 +1,66 @@
1
+ :host {
2
+ display: inline-block;
3
+ --pf-c-avatar--BorderColor: transparent;
4
+ --pf-c-avatar--BorderWidth: 0;
5
+ --pf-c-avatar--BorderRadius: var(--pf-global--BorderRadius--lg, 30em);
6
+ --pf-c-avatar--Width: 2.25rem;
7
+ --pf-c-avatar--Height: 2.25rem;
8
+ --pf-c-avatar--m-sm--Width: 1.5rem;
9
+ --pf-c-avatar--m-sm--Height: 1.5rem;
10
+ --pf-c-avatar--m-md--Width: 2.25rem;
11
+ --pf-c-avatar--m-md--Height: 2.25rem;
12
+ --pf-c-avatar--m-lg--Width: 4.5rem;
13
+ --pf-c-avatar--m-lg--Height: 4.5rem;
14
+ --pf-c-avatar--m-xl--Width: 8rem;
15
+ --pf-c-avatar--m-xl--Height: 8rem;
16
+ --pf-c-avatar--m-light--BorderColor: var(--pf-global--BorderColor--dark-100, #d2d2d2);
17
+ --pf-c-avatar--m-light--BorderWidth: var(--pf-global--BorderWidth--sm, 1px);
18
+ --pf-c-avatar--m-dark--BorderColor: var(--pf-global--palette--black-700, #4f5255);
19
+ --pf-c-avatar--m-dark--BorderWidth: var(--pf-global--BorderWidth--sm, 1px);
20
+ width: var(--pf-c-avatar--Width);
21
+ height: var(--pf-c-avatar--Height);
22
+ border-radius: var(--pf-c-avatar--BorderRadius);
23
+ }
24
+
25
+ :host([hidden]),
26
+ [hidden] {
27
+ display: none !important;
28
+ }
29
+
1
30
  svg,
2
31
  img {
3
- width: var(--pf-c-avatar--Width, 24px);
4
- height: var(--pf-c-avatar--Height, 24px);
5
- border-radius: var(--pf-c-avatar--BorderRadius, var(--pf-global--BorderRadius--lg, 128px));
6
- border:
7
- var(--pf-c-avatar--BorderWidth, 0)
8
- solid
9
- var(--pf-c-avatar--BorderColor,
10
- var(--pf-global--BorderColor--dark-100, #d2d2d2));
32
+ display: inline;
33
+ object-fit: cover;
34
+ width: var(--pf-c-avatar--Width);
35
+ height: var(--pf-c-avatar--Height);
36
+ border-radius: var(--pf-c-avatar--BorderRadius);
37
+ border: var(--pf-c-avatar--BorderWidth) solid var(--pf-c-avatar--BorderColor);
11
38
  }
12
39
 
13
- :host([border]) :is(img, svg) {
40
+ :host([border]) {
14
41
  --pf-c-avatar--BorderWidth: var(--pf-global--BorderWidth--sm, 1px);
15
42
  }
16
43
 
17
- :host([border="dark"]) :is(img, svg) {
18
- --pf-c-avatar--BorderColor: var(--pf-c-avatar--m-dark--BorderColor,
19
- var(--pf-global--palette--black-700, #4f5255));
44
+ :host([border="dark"]) {
45
+ --pf-c-avatar--BorderColor: var(--pf-c-avatar--m-dark--BorderColor);
20
46
  }
21
47
 
22
- :host([size='sm']) {
23
- --pf-c-avatar--Width: var(--pf-c-avatar--m-sm--Width, 24px);
24
- --pf-c-avatar--Height: var(--pf-c-avatar--m-sm--Height, 24px);
48
+ :host([size="sm"]) {
49
+ --pf-c-avatar--Width: var(--pf-c-avatar--m-sm--Width);
50
+ --pf-c-avatar--Height: var(--pf-c-avatar--m-sm--Height);
25
51
  }
26
52
 
27
- :host([size='md']) {
28
- --pf-c-avatar--Width: var(--pf-c-avatar--m-md--Width, 36px);
29
- --pf-c-avatar--Height: var(--pf-c-avatar--m-md--Height, 36px);
53
+ :host([size="md"]) {
54
+ --pf-c-avatar--Width: var(--pf-c-avatar--m-md--Width);
55
+ --pf-c-avatar--Height: var(--pf-c-avatar--m-md--Height);
30
56
  }
31
57
 
32
- :host([size='lg']) {
33
- --pf-c-avatar--Width: var(--pf-c-avatar--m-lg--Width, 72px);
34
- --pf-c-avatar--Height: var(--pf-c-avatar--m-lg--Height, 72px);
58
+ :host([size="lg"]) {
59
+ --pf-c-avatar--Width: var(--pf-c-avatar--m-lg--Width);
60
+ --pf-c-avatar--Height: var(--pf-c-avatar--m-lg--Height);
35
61
  }
36
62
 
37
- :host([size='xl']) {
38
- --pf-c-avatar--Width: var(--pf-c-avatar--m-xl--Width, 128px);
39
- --pf-c-avatar--Height: var(--pf-c-avatar--m-xl--Height, 128px);
63
+ :host([size="xl"]) {
64
+ --pf-c-avatar--Width: var(--pf-c-avatar--m-xl--Width);
65
+ --pf-c-avatar--Height: var(--pf-c-avatar--m-xl--Height);
40
66
  }