@genexus/genexus-ide-ui 0.0.108 → 0.0.109

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 (267) hide show
  1. package/dist/cjs/ch-dropdown_2.cjs.entry.js +1 -1
  2. package/dist/cjs/ch-dropdown_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/ch-grid_8.cjs.entry.js +339 -321
  4. package/dist/cjs/ch-grid_8.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ch-icon_5.cjs.entry.js +3 -1
  6. package/dist/cjs/ch-icon_5.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ch-suggest_4.cjs.entry.js +1 -1
  8. package/dist/cjs/ch-suggest_4.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ch-tree-view_5.cjs.entry.js +41 -20
  10. package/dist/cjs/ch-tree-view_5.cjs.entry.js.map +1 -1
  11. package/dist/cjs/{common-103f62f6.js → common-2e355c7d.js} +31 -1
  12. package/dist/cjs/common-2e355c7d.js.map +1 -0
  13. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  14. package/dist/cjs/gx-ide-add-module-servers.cjs.entry.js +98 -0
  15. package/dist/cjs/gx-ide-add-module-servers.cjs.entry.js.map +1 -0
  16. package/dist/cjs/{gx-ide-container_2.cjs.entry.js → gx-ide-container_3.cjs.entry.js} +47 -4
  17. package/dist/cjs/gx-ide-container_3.cjs.entry.js.map +1 -0
  18. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +2 -2
  19. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gx-ide-edit-module-servers.cjs.entry.js +98 -0
  21. package/dist/cjs/gx-ide-edit-module-servers.cjs.entry.js.map +1 -0
  22. package/dist/cjs/gx-ide-empty-state_2.cjs.entry.js.map +1 -1
  23. package/dist/cjs/gx-ide-import-from-design.cjs.entry.js +1 -1
  24. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +232 -0
  25. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -0
  26. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  27. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  28. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  29. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +81 -0
  30. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js.map +1 -0
  31. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  32. package/dist/cjs/gxg-buttons-container_2.cjs.entry.js +184 -0
  33. package/dist/cjs/gxg-buttons-container_2.cjs.entry.js.map +1 -0
  34. package/dist/cjs/loader.cjs.js +1 -1
  35. package/dist/collection/collection-manifest.json +3 -0
  36. package/dist/collection/common/common.js +21 -0
  37. package/dist/collection/common/common.js.map +1 -1
  38. package/dist/collection/components/_helpers/container/container.css +6 -0
  39. package/dist/collection/components/_helpers/container/container.js +40 -0
  40. package/dist/collection/components/_helpers/container/container.js.map +1 -1
  41. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +1 -1
  42. package/dist/collection/components/_helpers/list-selector/list-selector.js +1 -1
  43. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js +1 -1
  44. package/dist/collection/components/create-kb-from-server/create-kb-from-server.js.map +1 -1
  45. package/dist/collection/components/modules/add-module-servers/add-module-servers.css +560 -0
  46. package/dist/collection/components/modules/add-module-servers/add-module-servers.js +251 -0
  47. package/dist/collection/components/modules/add-module-servers/add-module-servers.js.map +1 -0
  48. package/dist/collection/components/modules/add-module-servers/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.en.json +11 -0
  49. package/dist/collection/components/modules/add-module-servers/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.ja.json +3 -0
  50. package/dist/collection/components/modules/add-module-servers/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.zh.json +3 -0
  51. package/dist/collection/components/modules/edit-module-servers/edit-module-servers.css +560 -0
  52. package/dist/collection/components/modules/edit-module-servers/edit-module-servers.js +251 -0
  53. package/dist/collection/components/modules/edit-module-servers/edit-module-servers.js.map +1 -0
  54. package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.en.json +11 -0
  55. package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.ja.json +3 -0
  56. package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.zh.json +3 -0
  57. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +29 -0
  58. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +3 -0
  59. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +3 -0
  60. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +723 -0
  61. package/dist/collection/components/modules/manage-module-references/manage-module-references.js +397 -0
  62. package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -0
  63. package/dist/collection/components/modules/types.js +2 -0
  64. package/dist/collection/components/modules/types.js.map +1 -0
  65. package/dist/collection/pages/assets/common.js +7 -0
  66. package/dist/components/buttons-container.js +8 -3
  67. package/dist/components/buttons-container.js.map +1 -1
  68. package/dist/components/card.js.map +1 -1
  69. package/dist/components/ch-grid-column2.js +4 -1
  70. package/dist/components/ch-grid-column2.js.map +1 -1
  71. package/dist/components/ch-grid2.js +342 -322
  72. package/dist/components/ch-grid2.js.map +1 -1
  73. package/dist/components/combo-box.js +1 -1
  74. package/dist/components/common.js +30 -1
  75. package/dist/components/common.js.map +1 -1
  76. package/dist/components/container.js +9 -3
  77. package/dist/components/container.js.map +1 -1
  78. package/dist/components/dropdown.js +1 -1
  79. package/dist/components/dropdown.js.map +1 -1
  80. package/dist/components/form-checkbox.js +1 -1
  81. package/dist/components/form-radio-group.js +1 -1
  82. package/dist/components/form-text.js +1 -1
  83. package/dist/components/form-textarea.js +1 -1
  84. package/dist/components/form.js +1 -1
  85. package/dist/components/gx-ide-add-module-servers.d.ts +11 -0
  86. package/dist/components/gx-ide-add-module-servers.js +186 -0
  87. package/dist/components/gx-ide-add-module-servers.js.map +1 -0
  88. package/dist/components/gx-ide-ai-assistant.js +1 -1
  89. package/dist/components/gx-ide-bpm-app-declaration.js +2 -2
  90. package/dist/components/gx-ide-create-kb-from-server.js +3 -3
  91. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  92. package/dist/components/gx-ide-dashboard-home.js +2 -2
  93. package/dist/components/gx-ide-data-selector.js +2 -2
  94. package/dist/components/gx-ide-edit-module-servers.d.ts +11 -0
  95. package/dist/components/gx-ide-edit-module-servers.js +186 -0
  96. package/dist/components/gx-ide-edit-module-servers.js.map +1 -0
  97. package/dist/components/gx-ide-empty-state2.js +2 -2
  98. package/dist/components/gx-ide-import-from-design.js +2 -2
  99. package/dist/components/gx-ide-kb-manager-export.js +2 -2
  100. package/dist/components/gx-ide-kb-manager-import.js +2 -2
  101. package/dist/components/gx-ide-manage-module-references.d.ts +11 -0
  102. package/dist/components/gx-ide-manage-module-references.js +432 -0
  103. package/dist/components/gx-ide-manage-module-references.js.map +1 -0
  104. package/dist/components/gx-ide-new-environment.js +2 -2
  105. package/dist/components/gx-ide-new-kb.js +2 -2
  106. package/dist/components/gx-ide-new-object.js +2 -2
  107. package/dist/components/gx-ide-object-selector.js +2 -2
  108. package/dist/components/gx-ide-references.js +2 -2
  109. package/dist/components/gx-ide-share-kb.js +2 -2
  110. package/dist/components/gx-ide-start-page.js +2 -2
  111. package/dist/components/gx-ide-status-buttons2.js +1 -1
  112. package/dist/components/gx-ide-team-dev-commit.js +2 -2
  113. package/dist/components/gx-ide-team-dev-select-recent-comment.js +2 -2
  114. package/dist/components/gx-ide-team-dev-update-partial-selection.js +2 -2
  115. package/dist/components/gx-ide-team-dev-update-to-revision.js +2 -2
  116. package/dist/components/gx-ide-team-dev-update.js +2 -2
  117. package/dist/components/gx-ide-template.js +2 -2
  118. package/dist/components/gx-ide-title.js +1 -1
  119. package/dist/components/gx-ide-top-bar.js +1 -1
  120. package/dist/components/gx-ide-ww-images.js +2 -2
  121. package/dist/components/gxg-container.js +1 -1
  122. package/dist/components/gxg-form-checkbox-group2.js +1 -1
  123. package/dist/components/gxg-menu-slim-list.js +1 -1
  124. package/dist/components/gxg-title.js +1 -1
  125. package/dist/components/gxg-top-state-bar2.js +17 -8
  126. package/dist/components/gxg-top-state-bar2.js.map +1 -1
  127. package/dist/components/icon2.js +3 -1
  128. package/dist/components/icon2.js.map +1 -1
  129. package/dist/components/ide-loader.js +1 -1
  130. package/dist/components/list-box.js +1 -1
  131. package/dist/components/list-selector.js +1 -1
  132. package/dist/components/recent-news.js +2 -2
  133. package/dist/components/suggest.js +2 -2
  134. package/dist/components/suggest.js.map +1 -1
  135. package/dist/components/title-editable.js +1 -1
  136. package/dist/components/title.js +32 -31
  137. package/dist/components/title.js.map +1 -1
  138. package/dist/components/title2.js +31 -32
  139. package/dist/components/title2.js.map +1 -1
  140. package/dist/components/tree-view-item.js +8 -2
  141. package/dist/components/tree-view-item.js.map +1 -1
  142. package/dist/components/tree-view2.js +32 -15
  143. package/dist/components/tree-view2.js.map +1 -1
  144. package/dist/esm/ch-dropdown_2.entry.js +1 -1
  145. package/dist/esm/ch-dropdown_2.entry.js.map +1 -1
  146. package/dist/esm/ch-grid_8.entry.js +339 -321
  147. package/dist/esm/ch-grid_8.entry.js.map +1 -1
  148. package/dist/esm/ch-icon_5.entry.js +3 -1
  149. package/dist/esm/ch-icon_5.entry.js.map +1 -1
  150. package/dist/esm/ch-suggest_4.entry.js +1 -1
  151. package/dist/esm/ch-suggest_4.entry.js.map +1 -1
  152. package/dist/esm/ch-tree-view_5.entry.js +41 -20
  153. package/dist/esm/ch-tree-view_5.entry.js.map +1 -1
  154. package/dist/esm/{common-f2983db2.js → common-aaad5759.js} +31 -2
  155. package/dist/esm/common-aaad5759.js.map +1 -0
  156. package/dist/esm/genexus-ide-ui.js +1 -1
  157. package/dist/esm/gx-ide-add-module-servers.entry.js +94 -0
  158. package/dist/esm/gx-ide-add-module-servers.entry.js.map +1 -0
  159. package/dist/esm/{gx-ide-container_2.entry.js → gx-ide-container_3.entry.js} +47 -5
  160. package/dist/esm/gx-ide-container_3.entry.js.map +1 -0
  161. package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
  162. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  163. package/dist/esm/gx-ide-edit-module-servers.entry.js +94 -0
  164. package/dist/esm/gx-ide-edit-module-servers.entry.js.map +1 -0
  165. package/dist/esm/gx-ide-empty-state_2.entry.js.map +1 -1
  166. package/dist/esm/gx-ide-import-from-design.entry.js +1 -1
  167. package/dist/esm/gx-ide-manage-module-references.entry.js +228 -0
  168. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -0
  169. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  170. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  171. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  172. package/dist/esm/gx-ide-status-buttons.entry.js +77 -0
  173. package/dist/esm/gx-ide-status-buttons.entry.js.map +1 -0
  174. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  175. package/dist/esm/gxg-buttons-container_2.entry.js +179 -0
  176. package/dist/esm/gxg-buttons-container_2.entry.js.map +1 -0
  177. package/dist/esm/loader.js +1 -1
  178. package/dist/genexus-ide-ui/genexus-ide-ui.css +5 -3
  179. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  180. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  181. package/dist/genexus-ide-ui/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.en.json +11 -0
  182. package/dist/genexus-ide-ui/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.ja.json +3 -0
  183. package/dist/genexus-ide-ui/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.zh.json +3 -0
  184. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.en.json +11 -0
  185. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.ja.json +3 -0
  186. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.zh.json +3 -0
  187. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +29 -0
  188. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +3 -0
  189. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +3 -0
  190. package/dist/genexus-ide-ui/{p-2c1f414f.entry.js → p-0c0c3f1d.entry.js} +53 -53
  191. package/dist/genexus-ide-ui/{p-2c1f414f.entry.js.map → p-0c0c3f1d.entry.js.map} +1 -1
  192. package/dist/genexus-ide-ui/{p-b571e9c0.entry.js → p-0df39b62.entry.js} +5 -2
  193. package/dist/genexus-ide-ui/{p-b571e9c0.entry.js.map → p-0df39b62.entry.js.map} +1 -1
  194. package/dist/genexus-ide-ui/{p-419b2877.entry.js → p-1cb2d0df.entry.js} +80 -47
  195. package/dist/genexus-ide-ui/p-1cb2d0df.entry.js.map +1 -0
  196. package/dist/genexus-ide-ui/p-350f49ac.js +101 -0
  197. package/dist/genexus-ide-ui/p-350f49ac.js.map +1 -0
  198. package/dist/genexus-ide-ui/p-36544e00.entry.js +138 -0
  199. package/dist/genexus-ide-ui/p-36544e00.entry.js.map +1 -0
  200. package/dist/genexus-ide-ui/{p-ca7233a5.entry.js → p-39337325.entry.js} +81 -10
  201. package/dist/genexus-ide-ui/p-39337325.entry.js.map +1 -0
  202. package/dist/genexus-ide-ui/p-40121554.entry.js.map +1 -1
  203. package/dist/genexus-ide-ui/p-41ac8e60.entry.js +211 -0
  204. package/dist/genexus-ide-ui/p-41ac8e60.entry.js.map +1 -0
  205. package/dist/genexus-ide-ui/{p-001e085a.entry.js → p-51e86542.entry.js} +2 -2
  206. package/dist/genexus-ide-ui/{p-d14b5546.entry.js → p-6f5b13a7.entry.js} +4 -2
  207. package/dist/genexus-ide-ui/{p-d14b5546.entry.js.map → p-6f5b13a7.entry.js.map} +1 -1
  208. package/dist/genexus-ide-ui/{p-94015503.entry.js → p-786e5448.entry.js} +374 -380
  209. package/dist/genexus-ide-ui/p-786e5448.entry.js.map +1 -0
  210. package/dist/genexus-ide-ui/p-a46794f4.entry.js +138 -0
  211. package/dist/genexus-ide-ui/p-a46794f4.entry.js.map +1 -0
  212. package/dist/genexus-ide-ui/p-adaf7aff.entry.js +365 -0
  213. package/dist/genexus-ide-ui/p-adaf7aff.entry.js.map +1 -0
  214. package/dist/genexus-ide-ui/{p-afce38d4.entry.js → p-b2099890.entry.js} +2 -2
  215. package/dist/genexus-ide-ui/{p-513ec2ad.entry.js → p-b4e526d6.entry.js} +2 -2
  216. package/dist/genexus-ide-ui/p-b7d0697f.entry.js +138 -0
  217. package/dist/genexus-ide-ui/p-b7d0697f.entry.js.map +1 -0
  218. package/dist/genexus-ide-ui/{p-8e8bb528.entry.js → p-c14b6b77.entry.js} +2 -2
  219. package/dist/genexus-ide-ui/{p-8e8bb528.entry.js.map → p-c14b6b77.entry.js.map} +1 -1
  220. package/dist/genexus-ide-ui/{p-2c733995.entry.js → p-d5903356.entry.js} +2 -2
  221. package/dist/genexus-ide-ui/{p-05102700.entry.js → p-df72101e.entry.js} +2 -2
  222. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/dropdown/dropdown.css +28 -28
  223. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-view-item/tree-view-item.css +0 -2
  224. package/dist/node_modules/@genexus/gemini/dist/collection/components/buttons-container/buttons-container.css +11 -0
  225. package/dist/node_modules/@genexus/gemini/dist/collection/components/suggest/styles.css +1 -0
  226. package/dist/node_modules/@genexus/gemini/dist/collection/components/top-state-bar/gxg-top-state-bar.css +32 -41
  227. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +37 -54
  228. package/dist/types/common/common.d.ts +2 -0
  229. package/dist/types/components/_helpers/container/container.d.ts +8 -0
  230. package/dist/types/components/modules/add-module-servers/add-module-servers.d.ts +60 -0
  231. package/dist/types/components/modules/edit-module-servers/edit-module-servers.d.ts +60 -0
  232. package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +98 -0
  233. package/dist/types/components/modules/types.d.ts +40 -0
  234. package/dist/types/components.d.ts +312 -52
  235. package/package.json +3 -3
  236. package/dist/cjs/common-103f62f6.js.map +0 -1
  237. package/dist/cjs/gx-ide-container_2.cjs.entry.js.map +0 -1
  238. package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js +0 -187
  239. package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js.map +0 -1
  240. package/dist/cjs/gxg-buttons-container.cjs.entry.js +0 -65
  241. package/dist/cjs/gxg-buttons-container.cjs.entry.js.map +0 -1
  242. package/dist/cjs/gxg-title.cjs.entry.js +0 -47
  243. package/dist/cjs/gxg-title.cjs.entry.js.map +0 -1
  244. package/dist/esm/common-f2983db2.js.map +0 -1
  245. package/dist/esm/gx-ide-container_2.entry.js.map +0 -1
  246. package/dist/esm/gx-ide-status-buttons_2.entry.js +0 -182
  247. package/dist/esm/gx-ide-status-buttons_2.entry.js.map +0 -1
  248. package/dist/esm/gxg-buttons-container.entry.js +0 -61
  249. package/dist/esm/gxg-buttons-container.entry.js.map +0 -1
  250. package/dist/esm/gxg-title.entry.js +0 -43
  251. package/dist/esm/gxg-title.entry.js.map +0 -1
  252. package/dist/genexus-ide-ui/p-419b2877.entry.js.map +0 -1
  253. package/dist/genexus-ide-ui/p-67406b36.entry.js +0 -71
  254. package/dist/genexus-ide-ui/p-67406b36.entry.js.map +0 -1
  255. package/dist/genexus-ide-ui/p-67ea84e8.js +0 -74
  256. package/dist/genexus-ide-ui/p-67ea84e8.js.map +0 -1
  257. package/dist/genexus-ide-ui/p-94015503.entry.js.map +0 -1
  258. package/dist/genexus-ide-ui/p-ca7233a5.entry.js.map +0 -1
  259. package/dist/genexus-ide-ui/p-cf5c3c10.entry.js +0 -270
  260. package/dist/genexus-ide-ui/p-cf5c3c10.entry.js.map +0 -1
  261. package/dist/genexus-ide-ui/p-d50b5b9a.entry.js +0 -67
  262. package/dist/genexus-ide-ui/p-d50b5b9a.entry.js.map +0 -1
  263. /package/dist/genexus-ide-ui/{p-001e085a.entry.js.map → p-51e86542.entry.js.map} +0 -0
  264. /package/dist/genexus-ide-ui/{p-afce38d4.entry.js.map → p-b2099890.entry.js.map} +0 -0
  265. /package/dist/genexus-ide-ui/{p-513ec2ad.entry.js.map → p-b4e526d6.entry.js.map} +0 -0
  266. /package/dist/genexus-ide-ui/{p-2c733995.entry.js.map → p-d5903356.entry.js.map} +0 -0
  267. /package/dist/genexus-ide-ui/{p-05102700.entry.js.map → p-df72101e.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["HTMLChGridRowElement","HTMLElement","parentGrid","constructor","super","connectedCallback","this","addEventListener","cellCaretClickedHandler","grid","loadParentGrid","rowId","getAttribute","highlighted","hasAttribute","value","highlightedClasses","rowHighlightedClass","split","setAttribute","classList","add","removeAttribute","remove","selected","selectedClasses","rowSelectedClass","marked","markedClasses","rowMarkedClass","focused","focusedClasses","rowFocusedClass","hasChildRows","querySelector","collapsed","dispatchEvent","CustomEvent","bubbles","composed","detail","leaf","getCell","column","physicalOrder","isVisible","Array","from","querySelectorAll","some","cell","ensureVisible","getBoundingClientRect","rect","firstElementChild","DOMRect","lastElementChild","firstCellRect","lastCellRect","x","y","width","height","eventInfo","targetRow","currentTarget","stopPropagation","closest","customElements","get","define","HTMLChGridRowsetElement","computedLevel","rowsetLegendClickedHandler","defineLevel","level","computeLevel","paddingTop","parseInt","style","getPropertyValue","paddingbottom","mainRect","shadowRoot","firstRowRect","lastRowRect","setProperty","toString","getParentRowset","hasLegend","isNestedRow","tagName","parentElement","node","ChGridCellType","HTMLChGridCellElement","cellType","Plain","caret","drag","action","selector","selectorLabel","rowDrag","rowSelector","rowActions","observedAttributes","defineFocusHandler","attributeChangedCallback","name","_oldValue","type","cellIndex","prototype","indexOf","call","row","cellId","offsetParent","setSelectorChecked","checked","caretMouseDownHandler","selectorClickHandler","range","shiftKey","selectorLabelClickHandler","dragMouseDownHandler","preventDefault","actionClickHandler","Rich","defineRich","TreeNode","defineTreeNode","html","innerHTML","attachShadow","mode","bind","ChGridManagerColumnDrag","columns","isRTL","lastTargetOrder","columnId","map","element","translateX","order","find","item","forEach","setColumnHiddenRect","dragging","position","sourceOrder","sourceFreeze","freeze","targetOrder","targetOrderChanged","filter","columnOrder","dragDirection","shiftDirection","left","right","swapColumnPosition","resetColumnPosition","dragEnd","getColumnStyle","columnItem","getColumnsFirstLast","itemFirst","itemLast","hidden","columnFirst","columnLast","columnSibling","getPreviousSiblingVisible","getNextSiblingVisible","previous","next","ChGridManagerColumns","manager","columnsetObserver","MutationObserver","reloadColumns","columnResizeObserver","ResizeObserver","resizeColumnHandler","columnsDisplay","columnsWidth","observeColumnset","defineColumns","defineColumnsVariables","adjustFreezeOrder","adjustBaseLayer","getColumn","getColumns","sorted","sort","fnSortByOrder","getColumnSelector","columnType","richRowSelector","freezeStart","noFreeze","freezeEnd","defineColumnId","defineColumnIndex","defineColumnOrder","defineColumnSize","defineColumnDisplayObserver","defineColumnResizeObserver","defineColumnType","getColumnUniqueId","size","displayObserverClass","i","push","document","createElement","appendChild","observe","box","richRowDrag","richRowActions","root","getRootNode","length","selectors","styleInnerHTML","Document","head","insertAdjacentHTML","ShadowRoot","s","id","dataset","innerText","undefineColumns","unobserve","columnDisplay","childList","columnsAdded","includes","columnsRemoved","adjustOrders","entries","entry","target","contentRect","setColumnWidthVariables","uniqueId","Date","now","Math","random","substring","setBaseLayer","columnA","columnB","ChGridManagerSelection","rangeStart","rangeValue","lastRowMarked","selectionStateNone","rowFocused","rowsSelected","cellSelected","selecting","selectingRow","selectingCell","select","state","append","context","rowSelectionMode","rangeRows","getRowsRange","Set","concat","getFirstColumn","rowSelected","selectAll","rows","getRows","getFirstRow","selectSet","selectFirstRow","firstRow","selectPreviousRow","previousRow","getPreviousRow","sortedRowsSelected","sortRowsSelected","isContiguousSelection","slice","selectNextRow","nextRow","getNextRow","selectLastRow","getLastRow","selectPreviousPageRow","rowsPerPage","getRowsPerPage","previousPageRow","max","selectNextPageRow","nextPageRow","min","selectPreviousCell","nextCell","getPreviousCell","selectNextCell","getNextCell","markRow","currentRowsMarked","r","markAllRows","syncRowSelector","selectorMode","columnSelector","richRowSelectorMode","indexColumnSelector","children","richRowSelectorState","rowA","rowB","rowAIndex","rowBIndex","startIndex","endIndex","ChGridManagerRowDrag","rowIndex","rowShadow","dragMouseMoveFn","dragMouseMoveHandler","dragStart","getGridRowIndex","defineListeners","createRowShadow","floatRow","updateRowPosition","rowHover","rowHoverIndex","rowHoverGridPosition","offsetPosition","dragMouseUpHandler","removeEventListener","dropPosition","rowDrop","before","after","unfloatRow","passive","once","rowHeight","getRowHeight","display","getColumnsWidth","opacity","minWidth","gridRowStart","rowWidth","gridLayout","clientWidth","columnPosition","top","ChGridManagerRowActions","showOnRowHover","showOnRowActions","showOnRowContext","ChGridManagerColumnResize","columnWidthStart","columnSizeStart","columnAfter","columnAfterWidthStart","columnAfterSizeStart","resizingFn","resizeEndFn","columnResizeMode","resizingSplitter","resizeEndSplitter","resizingSingle","parseCSSValue","getNextColumn","resizing","deltaWidth","resizeEnd","columnWidth","convertUnit","columnAfterWidth","columnWidthEnd","columnAfterWidthEnd","cssValue","match","number","parseFloat","unit","startSize","startWidth","newWidth","StyleRule","ChGridManager","styleSheet","CSSStyleSheet","gridLayoutElement","columnDragManager","columnResizeManager","rowDragManager","selection","insertRule","BASE_LAYER","COLUMNS_WIDTH","adoptedStyleSheets","adoptGlobalStyleSheet","componentDidLoad","getComputedStyle","gridTemplateColumns","getColumnsetHeight","gridColumnsHeight","gridTemplateRows","getScrollOffsetTop","offsetTop","getScrollOffsetLeft","reduce","offsetRight","offsetWidth","getScrollOffsetRight","current","reverse","getPreviousColumn","previousColumn","nextColumn","getRowsetRowIndex","gridRowsHeight","gridHeight","clientHeight","columnsHeight","floor","getRow","getRowsSelected","start","end","indexStart","indexEnd","getRowEventTarget","composedPath","isRowActionsEventTarget","getCellEventTarget","columnDragStart","isRTLDirection","columnDragging","columnDragEnd","columnResizeStart","columnResizing","columnResizeEnd","rowDragStart","getGridStyle","getGridTemplateColumns","getRowBoxSimulationStyle","getDragTransitionStyle","getColumnsStyle","deleteRule","columnIndex","join","ensureRowVisible","ensureCellVisible","isColumnFreeze","scroll","scrollOffsetTop","scrollOffsetLeft","scrollOffsetRight","scrollTop","scrollBy","offsetHeight","scrollLeft","offsetLeft","getColumnSizeStyle","getColumnOrderStyle","getColumnDisplayStyle","getColumnFreezeStyle","getColumnDraggingStyle","getColumnIndentStyle","getColumnFreezeStartStyle","getColumnFreezeEndStyle","calcItems","direction","chGridCss","ChGrid","hostRef","undefined","rowHighlighted","rowsMarked","gridStyle","rowHighlightEnabled","allowColumnReorder","localization","rowFocusedHandler","rowHighlightedHandler","_a","openRowHover","_b","close","rowsMarkedHandler","rowMarkingChanged","emit","rowsId","addedRowsId","removedRowsId","unalteredRowsId","rowsSelectedHandler","selectionChanged","cellSelectedHandler","cellSelectionChanged","componentWillLoad","el","componentShouldUpdate","_newValue","focusHandler","blurHandler","cellFocusedHandler","setCellSelected","windowKeyDownHandler","focusComposedPath","key","keyDownHandler","toggleRowsMarked","setRowCollapsed","selectByKeyboardEvent","enterPressedHandler","mouseMoveHandler","selectingBlock","stopSelecting","isKeyModifierPressed","mouseEventModifierKey","isMouseButtonRightPressed","mouseEventHasButtonPressed","MouseEventButtons","RIGHT","selectByPointerEvent","mouseLeaveHandler","clickHandler","rowClicked","button","MouseEventButton","mouseUpHandler","dblclickHandler","rowDoubleClicked","contextmenuHandler","cellFocused","rowContextMenuEventInfo","rowContextMenu","selectedRowsId","clientX","clientY","openRowContext","defaultPrevented","columnSelectorClickedHandler","cellSelectorClickedHandler","cellRowActionClickedHandler","openRowActions","columnStyleChangedHandler","columnFreezeChangedHandler","columnResizeStartedHandler","columnResizingHandler","columnResizeFinishedHandler","columnDragStartHandler","columnDraggingHandler","positionX","columnDragEndHandler","rowDragStartHandler","rowEnsureVisibleHandler","cellEnsureVisibleHandler","settingsShowClickedHandler","settingsUI","show","settingsCloseClickedHandler","getFocusedRow","getHoveredRow","getSelectedRows","getMarkedRows","getSelectedCell","selectRow","selectAllRows","selectCell","expandRow","collapseRow","rowEnsureVisible","cellEnsureVisible","currentRow","previousCell","rowEnterPressed","fn","renderSettings","h","ref","exportparts","part","render","Host","tabindex","class","chGridColumnCss","ChGridColumn","settingsClickHandler","showSettings","columnSelectorClicked","columnIconUrl","columnImage","columnImageSet","columnName","columnNameHidden","columnTooltip","columnNamePosition","hideable","resizable","sortable","settingable","sortDirection","freezeHandler","columnFreezeChanged","hiddenHandler","columnHiddenChanged","orderHandler","columnOrderChanged","sizeHandler","columnSizeChanging","sortDirectionHandler","columnSortChanged","mousedownHandler","columnSizeChanged","dragMouseMoveStartPositionX","pageX","columnDragStarted","abs","movementX","columnDragEnded","settingsMouseDownHandler","renderSelector","renderName","renderSort","renderResize","onMouseDown","onClick","indeterminate","title","src","srcSet","chGridColumnResizeCss","ChGridColumnResize","mousemoveFn","mousemoveHandler","startPageX","mouseupHandler","columnResizeStarted","columnResizeFinished","chGridColumnSettingsCss","ChGridColumnSettings","windowClosedHandler","columnSettingsChangedHandler","modal","container","xAlign","yAlign","caption","closeText","closeOnOutsideClick","closeOnEscape","allowDrag","chGridColumnsetCss","ChGridColumnset","columnSortChangedHandler","chGridSettingsCss","ChGridSettings","settingsCloseClicked","chGridSettingsColumnsCss","ChGridSettingsColumns","handleClick","checkbox","getColumnsSorted","a","b","columnsSorted","disabled","gxgGridCss","GxgGrid","noBorder","fullHeight","iconsUrl","getAssetPath","large"],"sources":["node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-row/ch-grid-row.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-rowset/ch-grid-rowset.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-cell/ch-grid-cell.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager-column-drag.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager-columns.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager-selection.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager-row-drag.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager-row-actions.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager-column-resize.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid.css?tag=ch-grid&encapsulation=shadow","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-column/ch-grid-column.css?tag=ch-grid-column&encapsulation=shadow","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-column/ch-grid-column.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-column/grid-column-resize/ch-grid-column-resize.css?tag=ch-grid-column-resize&encapsulation=shadow","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-column/grid-column-resize/ch-grid-column-resize.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-column/grid-column-settings/ch-grid-column-settings.css?tag=ch-grid-column-settings&encapsulation=shadow","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-column/grid-column-settings/ch-grid-column-settings.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-columnset/ch-grid-columnset.css?tag=ch-grid-columnset","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-columnset/ch-grid-columnset.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-settings/ch-grid-settings.css?tag=ch-grid-settings&encapsulation=shadow","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-settings/ch-grid-settings.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-settings/grid-settings-columns/ch-grid-settings-columns.css?tag=ch-grid-settings-columns&encapsulation=shadow","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-settings/grid-settings-columns/ch-grid-settings-columns.js","node_modules/@genexus/gemini/dist/collection/components/grid/gxg-grid.css?tag=gxg-grid","node_modules/@genexus/gemini/dist/collection/components/grid/gxg-grid.js"],"sourcesContent":["/**\n * The `ch-grid-row` component represents a grid row.\n */\nexport default class HTMLChGridRowElement extends HTMLElement {\n parentGrid;\n constructor() {\n super();\n }\n connectedCallback() {\n this.addEventListener(\"cellCaretClicked\", this.cellCaretClickedHandler);\n }\n /**\n * Returns the parent ch-grid element of the grid row.\n */\n get grid() {\n return this.parentGrid ?? this.loadParentGrid();\n }\n /**\n * A unique identifier for the row.\n */\n get rowId() {\n return this.getAttribute(\"rowid\") ?? \"\";\n }\n /**\n * A boolean value indicating whether the row is highlighted.\n */\n get highlighted() {\n return this.hasAttribute(\"highlighted\");\n }\n set highlighted(value) {\n const highlightedClasses = this.grid.rowHighlightedClass?.split(\" \");\n if (value === true) {\n this.setAttribute(\"highlighted\", \"\");\n if (this.grid.rowHighlightedClass) {\n this.classList.add(...highlightedClasses);\n }\n }\n else {\n this.removeAttribute(\"highlighted\");\n if (this.grid.rowHighlightedClass) {\n this.classList.remove(...highlightedClasses);\n }\n }\n }\n /**\n * A boolean value indicating whether the row is selected.\n */\n get selected() {\n return this.hasAttribute(\"selected\");\n }\n set selected(value) {\n const selectedClasses = this.grid.rowSelectedClass?.split(\" \");\n if (value === true) {\n this.setAttribute(\"selected\", \"\");\n if (this.grid.rowSelectedClass) {\n this.classList.add(...selectedClasses);\n }\n }\n else {\n this.removeAttribute(\"selected\");\n if (this.grid.rowSelectedClass) {\n this.classList.remove(...selectedClasses);\n }\n }\n }\n /**\n * A boolean value indicating whether the row is marked.\n */\n get marked() {\n return this.hasAttribute(\"marked\");\n }\n set marked(value) {\n const markedClasses = this.grid.rowMarkedClass?.split(\" \");\n if (value === true) {\n this.setAttribute(\"marked\", \"\");\n if (this.grid.rowMarkedClass) {\n this.classList.add(...markedClasses);\n }\n }\n else {\n this.removeAttribute(\"marked\");\n if (this.grid.rowMarkedClass) {\n this.classList.remove(...markedClasses);\n }\n }\n }\n /**\n * A boolean value indicating whether the row is focused.\n */\n get focused() {\n return this.hasAttribute(\"focused\");\n }\n set focused(value) {\n const focusedClasses = this.grid.rowFocusedClass?.split(\" \");\n if (value === true) {\n this.setAttribute(\"focused\", \"\");\n if (this.grid.rowFocusedClass) {\n this.classList.add(...focusedClasses);\n }\n }\n else {\n this.removeAttribute(\"focused\");\n if (this.grid.rowFocusedClass) {\n this.classList.remove(...focusedClasses);\n }\n }\n }\n /**\n * A boolean value indicating whether the grid row has child rows.\n */\n get hasChildRows() {\n return !!this.querySelector(\"ch-grid-rowset\");\n }\n /**\n * A boolean value indicates whether the grid row is collapsed.\n */\n get collapsed() {\n return this.hasAttribute(\"collapsed\");\n }\n set collapsed(value) {\n const dispatchEvent = this.collapsed !== value;\n if (value) {\n this.setAttribute(\"collapsed\", \"\");\n }\n else {\n this.removeAttribute(\"collapsed\");\n }\n if (dispatchEvent) {\n this.dispatchEvent(new CustomEvent(\"rowCollapsedChanged\", {\n bubbles: true,\n composed: true,\n detail: { rowId: this.rowId, collapsed: value }\n }));\n }\n }\n /**\n * A boolean value indicates whether the grid row is a leaf node.\n */\n get leaf() {\n return this.hasAttribute(\"leaf\");\n }\n set leaf(value) {\n if (value === true) {\n this.setAttribute(\"leaf\", \"\");\n }\n else {\n this.removeAttribute(\"leaf\");\n }\n }\n getCell(column) {\n return this.querySelector(`:scope > ch-grid-cell:nth-of-type(${column.physicalOrder})`);\n }\n /**\n * A boolean value indicates whether the grid row is visible.\n */\n isVisible() {\n return Array.from(this.querySelectorAll(\":scope > ch-grid-cell\")).some((cell) => cell.isVisible());\n }\n /**\n * Ensures that the row is visible within the control, scrolling the contents of the control if necessary.\n */\n ensureVisible() {\n this.dispatchEvent(new CustomEvent(\"rowEnsureVisible\", { bubbles: true, composed: true }));\n }\n /**\n * returns a `DOMRect` object representing the size of the grid row element.\n */\n getBoundingClientRect() {\n let rect;\n if (!this.firstElementChild) {\n rect = new DOMRect();\n }\n else if (this.firstElementChild === this.lastElementChild) {\n rect = this.firstElementChild.getBoundingClientRect();\n }\n else {\n const firstCellRect = this.firstElementChild.getBoundingClientRect();\n const lastCellRect = this.lastElementChild.getBoundingClientRect();\n rect = new DOMRect(firstCellRect.x, firstCellRect.y, lastCellRect.x - firstCellRect.x + lastCellRect.width, lastCellRect.y - firstCellRect.y + lastCellRect.height);\n }\n return rect;\n }\n cellCaretClickedHandler(eventInfo) {\n const targetRow = eventInfo.currentTarget;\n if (targetRow.hasChildRows) {\n this.collapsed = !this.collapsed;\n }\n eventInfo.stopPropagation();\n }\n loadParentGrid() {\n this.parentGrid = this.closest(\"ch-grid\");\n return this.parentGrid;\n }\n}\nif (!customElements.get(\"ch-grid-row\")) {\n customElements.define(\"ch-grid-row\", HTMLChGridRowElement);\n}\n//# sourceMappingURL=ch-grid-row.js.map\n","/**\n * The `ch-grid-rowset` component represents a group of rows.\n */\nexport default class HTMLChGridRowsetElement extends HTMLElement {\n computedLevel = 0;\n grid;\n constructor() {\n super();\n }\n connectedCallback() {\n this.addEventListener(\"rowsetLegendClicked\", this.rowsetLegendClickedHandler);\n this.defineLevel();\n }\n /**\n * A boolean value indicates whether the grid rowset is collapsed.\n */\n get collapsed() {\n return this.hasAttribute(\"collapsed\");\n }\n set collapsed(value) {\n if (value) {\n this.setAttribute(\"collapsed\", \"\");\n }\n else {\n this.removeAttribute(\"collapsed\");\n }\n }\n /**\n * Gets the zero-based depth of the rowset in the tree.\n */\n get level() {\n if (!this.computedLevel) {\n this.computeLevel();\n }\n return this.computedLevel;\n }\n /**\n * returns a `DOMRect` object representing the size of the grid rowset element.\n */\n getBoundingClientRect() {\n let rect;\n const paddingTop = parseInt(this.style.getPropertyValue(\"padding-top\"));\n const paddingbottom = parseInt(this.style.getPropertyValue(\"padding-bottom\"));\n if (!this.firstElementChild) {\n const mainRect = this.grid.shadowRoot\n .querySelector(\".main\")\n .getBoundingClientRect();\n rect = new DOMRect(mainRect.x, mainRect.y, mainRect.width, 0);\n }\n else if (this.firstElementChild === this.lastElementChild) {\n const firstRowRect = this.firstElementChild.getBoundingClientRect();\n rect = new DOMRect(firstRowRect.x, firstRowRect.y - paddingTop, firstRowRect.x + firstRowRect.width, firstRowRect.y + firstRowRect.height + paddingTop + paddingbottom);\n }\n else {\n const firstRowRect = this.firstElementChild.getBoundingClientRect();\n const lastRowRect = this.lastElementChild.getBoundingClientRect();\n rect = new DOMRect(firstRowRect.x, firstRowRect.y - paddingTop, lastRowRect.x - firstRowRect.x + lastRowRect.width, lastRowRect.y -\n firstRowRect.y +\n lastRowRect.height +\n paddingTop +\n paddingbottom);\n }\n return rect;\n }\n rowsetLegendClickedHandler(eventInfo) {\n eventInfo.stopPropagation();\n this.collapsed = !this.collapsed;\n }\n defineLevel() {\n this.style.setProperty(\"--level\", this.level.toString());\n }\n computeLevel() {\n this.computedLevel = this.getParentRowset()?.level ?? 0;\n if (this.hasLegend() || this.isNestedRow()) {\n this.computedLevel++;\n }\n }\n hasLegend() {\n return this.firstElementChild?.tagName === \"CH-GRID-ROWSET-LEGEND\";\n }\n isNestedRow() {\n return this.parentElement.tagName === \"CH-GRID-ROW\";\n }\n getParentRowset() {\n const node = this.parentElement.closest(\"ch-grid-rowset, ch-grid\");\n if (node.tagName === \"CH-GRID-ROWSET\") {\n return node;\n }\n }\n}\nif (!customElements.get(\"ch-grid-rowset\")) {\n customElements.define(\"ch-grid-rowset\", HTMLChGridRowsetElement);\n}\n//# sourceMappingURL=ch-grid-rowset.js.map\n","/**\n * ChGridCellType indicates the type of cell.\n * \"Plain\" is a simple cell that shows the contents of it.\n * \"Rich\" is a rich cell that, in addition to displaying its content, enables\n * the user to execute different actions on the row.\n * The actions are:\n * - allow dragging the row to reorder it.\n * - allow to select the row by means of a checkbox.\n * - allow displaying actions to be executed in the row.\n * \"TreeNode\" is a cell that represents a node of the Tree.\n */\nexport var ChGridCellType;\n(function (ChGridCellType) {\n ChGridCellType[\"Plain\"] = \"plain\";\n ChGridCellType[\"Rich\"] = \"rich\";\n ChGridCellType[\"TreeNode\"] = \"node\";\n})(ChGridCellType || (ChGridCellType = {}));\n/**\n * The `ch-grid-cell` component represents a grid cell.\n */\nexport default class HTMLChGridCellElement extends HTMLElement {\n cellType = ChGridCellType.Plain;\n caret;\n drag;\n action;\n selector;\n selectorLabel;\n rowDrag;\n rowSelector;\n rowActions;\n static get observedAttributes() {\n return [\"cell-type\", \"row-drag\", \"row-selector\", \"row-actions\"];\n }\n constructor() {\n super();\n this.defineFocusHandler();\n }\n connectedCallback() {\n if (this.cellType !== ChGridCellType.Plain) {\n this.define();\n }\n }\n attributeChangedCallback(name, _oldValue, value) {\n if (name === \"cell-type\") {\n this.cellType = value;\n }\n if (name === \"row-drag\") {\n this.rowDrag = value !== null ? value !== \"false\" : false;\n }\n if (name === \"row-selector\") {\n this.rowSelector = value !== null ? value !== \"false\" : false;\n }\n if (name === \"row-actions\") {\n this.rowActions = value !== null ? value !== \"false\" : false;\n }\n }\n /**\n * One of \"plain\", \"rich\", or \"node\", indicating the type of cell.\n */\n get type() {\n return this.cellType;\n }\n set type(value) {\n if (this.cellType !== value) {\n this.cellType = value;\n this.define();\n }\n }\n /**\n * Returns the parent ch-grid element of the cell.\n */\n get grid() {\n return this.closest(\"ch-grid\");\n }\n /**\n * Returns the ch-grid-column element of the cell.\n */\n get column() {\n const cellIndex = Array.prototype.indexOf.call(this.row.querySelectorAll(`:scope > ch-grid-cell`), this);\n return this.grid.querySelector(`ch-grid-column:nth-of-type(${cellIndex + 1})`);\n }\n /**\n * Returns the parent ch-grid-row element of the cell.\n */\n get row() {\n return this.parentElement;\n }\n /**\n * A unique identifier for the cell.\n */\n get cellId() {\n return this.getAttribute(\"cellid\") ?? \"\";\n }\n /**\n * A boolean value indicating whether the cell is selected.\n */\n get selected() {\n return this.hasAttribute(\"selected\");\n }\n set selected(value) {\n if (value === true) {\n this.setAttribute(\"selected\", \"\");\n }\n else {\n this.removeAttribute(\"selected\");\n }\n }\n /**\n * A boolean value indicates whether the grid cell is visible.\n */\n isVisible() {\n return this.offsetParent !== null;\n }\n /**\n * Ensures that the cell is visible within the control, scrolling the contents of the control if necessary.\n */\n ensureVisible() {\n this.dispatchEvent(new CustomEvent(\"cellEnsureVisible\", { bubbles: true, composed: true }));\n }\n /**\n * A boolean value indicates whether the selector of cell is checked or not.\n */\n setSelectorChecked(value) {\n this.selector.checked = value;\n if (this.selector.checked) {\n this.selector.setAttribute(\"part\", \"selector checked\");\n }\n else {\n this.selector.setAttribute(\"part\", \"selector\");\n }\n }\n defineFocusHandler() {\n this.addEventListener(\"focusin\", () => {\n if (!this.rowSelector) {\n this.dispatchEvent(new CustomEvent(\"cellFocused\", { bubbles: true, composed: true }));\n }\n });\n }\n caretMouseDownHandler(eventInfo) {\n eventInfo.stopPropagation();\n this.dispatchEvent(new CustomEvent(\"cellCaretClicked\", { bubbles: true, composed: true }));\n }\n selectorClickHandler(eventInfo) {\n eventInfo.stopPropagation();\n this.dispatchEvent(new CustomEvent(\"cellSelectorClicked\", {\n bubbles: true,\n composed: true,\n detail: {\n checked: this.selector.checked,\n range: eventInfo.shiftKey\n }\n }));\n }\n selectorLabelClickHandler(eventInfo) {\n if (!eventInfo.shiftKey) {\n eventInfo.stopPropagation();\n }\n }\n dragMouseDownHandler(eventInfo) {\n eventInfo.preventDefault();\n eventInfo.stopPropagation();\n this.dispatchEvent(new CustomEvent(\"rowDragStarted\", {\n bubbles: true,\n composed: true,\n detail: {\n row: this.row\n }\n }));\n }\n actionClickHandler() {\n this.dispatchEvent(new CustomEvent(\"cellRowActionClicked\", {\n bubbles: true,\n composed: true\n }));\n }\n define() {\n switch (this.cellType) {\n case ChGridCellType.Rich:\n this.defineRich();\n break;\n case ChGridCellType.TreeNode:\n this.defineTreeNode();\n break;\n }\n }\n defineRich() {\n let html = \"\";\n if (!this.shadowRoot || this.shadowRoot.innerHTML === \"\") {\n this.attachShadow({ mode: \"open\" });\n if (this.rowDrag) {\n html += `\n <div part=\"drag-icon\"></div>\n `;\n }\n if (this.rowSelector) {\n html += `\n <style>label {display:flex}</style>\n <label part=\"selector-label\">\n <input type=\"checkbox\" part=\"selector\">\n </label>\n `;\n }\n if (this.rowActions) {\n html += `\n <button part=\"actions-icon\"></button>\n `;\n }\n this.shadowRoot.innerHTML = `\n ${html}\n <slot></slot>\n `;\n if (this.rowDrag) {\n this.drag = this.shadowRoot.querySelector(\"[part='drag-icon']\");\n this.drag.addEventListener(\"mousedown\", this.dragMouseDownHandler.bind(this));\n }\n if (this.rowActions) {\n this.action = this.shadowRoot.querySelector(\"[part='actions-icon']\");\n this.action.addEventListener(\"click\", this.actionClickHandler.bind(this));\n }\n if (this.rowSelector) {\n this.selector = this.shadowRoot.querySelector(\"[part='selector']\");\n this.selector.addEventListener(\"mousedown\", (eventInfo) => eventInfo.stopPropagation());\n this.selector.addEventListener(\"click\", this.selectorClickHandler.bind(this));\n this.selectorLabel = this.shadowRoot.querySelector(\"[part='selector-label']\");\n this.selectorLabel.addEventListener(\"mousedown\", (eventInfo) => eventInfo.stopPropagation());\n this.selectorLabel.addEventListener(\"click\", this.selectorLabelClickHandler.bind(this));\n }\n }\n }\n defineTreeNode() {\n if (!this.shadowRoot || this.shadowRoot.innerHTML === \"\") {\n this.attachShadow({ mode: \"open\" });\n this.shadowRoot.innerHTML = `\n <style>:host::before {content: none !important}</style>\n <div part=\"indent\"></div>\n <div part=\"caret\"></div>\n <input type=\"checkbox\" part=\"node-selector\" hidden>\n <div part=\"node-icon\"></div>\n <slot></slot>\n `;\n this.caret = this.shadowRoot.querySelector(\"[part='caret']\");\n this.caret.addEventListener(\"mousedown\", this.caretMouseDownHandler.bind(this));\n }\n }\n}\nif (!customElements.get(\"ch-grid-cell\")) {\n customElements.define(\"ch-grid-cell\", HTMLChGridCellElement);\n}\n//# sourceMappingURL=ch-grid-cell.js.map\n","export class ChGridManagerColumnDrag {\n column;\n columns;\n isRTL;\n lastTargetOrder = 0;\n constructor(columnId, columns, isRTL) {\n this.isRTL = isRTL;\n this.columns = columns.map(column => ({\n element: column,\n rect: column.getBoundingClientRect(),\n translateX: 0,\n order: column.order\n }));\n this.column = this.columns.find(item => item.element.columnId === columnId);\n this.columns.forEach(this.setColumnHiddenRect.bind(this));\n }\n dragging(position) {\n /**\n * Indica el orden inicial de la columna que se está arrastrando\n */\n const sourceOrder = this.column.element.order;\n /**\n * Indica a qué grupo de fijación pertenece la columna que se está arrastrando\n */\n const sourceFreeze = this.column.element.freeze;\n let targetOrder = 0;\n let targetOrderChanged = false;\n this.column.translateX = 0;\n this.columns\n .filter(column => column.element.freeze === sourceFreeze)\n .forEach(column => {\n /**\n * Indica el orden de la columna actual\n */\n const columnOrder = column.element.order;\n /**\n * Indica si la columna que se está arrastrando estaba a la derecha o\n * a la izquierda de la actual cuando se inició el arrastre para\n * incrementar el orden según corresponda.\n */\n const dragDirection = sourceOrder > columnOrder ? 1 : -1;\n /**\n * Indica si la columna actual hay que desplazarla a la derecha o\n * a la izquierda cuando se cruce con la columna arrastrada.\n */\n const shiftDirection = (sourceOrder > columnOrder ? 1 : -1) * (this.isRTL ? -1 : 1);\n if (column.rect.left < position &&\n position < column.rect.right &&\n columnOrder !== sourceOrder) {\n /*\n La posicion actual del mouse está dentro de la columna actual y\n no es la columna que se está arrastrando\n */\n this.swapColumnPosition(column, shiftDirection);\n // actualizo el orden de la columna actual\n column.order = column.element.order + dragDirection;\n targetOrder = columnOrder;\n }\n else if (position < column.rect.left &&\n (this.isRTL ? columnOrder > sourceOrder : columnOrder < sourceOrder)) {\n /*\n La posicion actual del mouse está a la izquierda de la columna actual\n haciendo que la columna arrastrada cruce la actual.\n */\n this.swapColumnPosition(column, shiftDirection);\n // actualizo el orden de la columna actual\n column.order = column.element.order + dragDirection;\n if (!targetOrder ||\n (this.isRTL ? columnOrder > targetOrder : columnOrder < targetOrder)) {\n targetOrder = columnOrder;\n }\n }\n else if (position > column.rect.right &&\n (this.isRTL ? columnOrder < sourceOrder : columnOrder > sourceOrder)) {\n /*\n La posicion actual del mouse está a la derecha de la columna actual\n haciendo que la columna arrastrada cruce la actual.\n */\n this.swapColumnPosition(column, shiftDirection);\n // actualizo el orden de la columna actual\n column.order = column.element.order + dragDirection;\n if (!targetOrder ||\n (this.isRTL ? columnOrder < targetOrder : columnOrder > targetOrder)) {\n targetOrder = columnOrder;\n }\n }\n else if (columnOrder !== sourceOrder) {\n /*\n La posicion actual del mouse NO está dentro de la columna actual ni\n la cruza.\n */\n this.resetColumnPosition(column);\n }\n });\n this.column.order = targetOrder ? targetOrder : this.column.element.order;\n targetOrderChanged = targetOrder !== this.lastTargetOrder;\n this.lastTargetOrder = targetOrder;\n return targetOrderChanged;\n }\n dragEnd() {\n this.columns.forEach(column => {\n column.element.order = column.order;\n column.translateX = 0;\n });\n }\n getColumnStyle(column) {\n return {\n [`--ch-grid-column-${column.physicalOrder}-transform`]: `translateX(${this.columns.find(columnItem => columnItem.element === column)\n .translateX}px)`\n };\n }\n getColumnsFirstLast() {\n let itemFirst;\n let itemLast;\n this.columns.forEach(item => {\n if (!item.element.hidden &&\n (!itemFirst || item.order < itemFirst.order)) {\n itemFirst = item;\n }\n if (!item.element.hidden && (!itemLast || item.order > itemLast.order)) {\n itemLast = item;\n }\n });\n return {\n columnFirst: itemFirst.element,\n columnLast: itemLast.element\n };\n }\n swapColumnPosition(column, shiftDirection) {\n // desplazo la columna actual para ocupar el espacio que dejó\n // la columna arrastrada\n column.translateX = this.column.rect.width * shiftDirection;\n // desplazo la columna que se está arrastrando para que ocupe el\n // espacio que dejó la columna actual\n this.column.translateX += column.rect.width * (shiftDirection * -1);\n }\n resetColumnPosition(column) {\n // no desplazo la columna actual\n column.translateX = 0;\n // asigno su posición original\n column.order = column.element.order;\n }\n setColumnHiddenRect(column) {\n if (column.element.hidden) {\n const columnSibling = this.getPreviousSiblingVisible(column) ||\n this.getNextSiblingVisible(column);\n column.rect = new DOMRect(column.element.order < columnSibling.element.order\n ? columnSibling.rect.left\n : columnSibling.rect.right, columnSibling.rect.y, 0, columnSibling.rect.height);\n }\n }\n getPreviousSiblingVisible(hidden) {\n let previous;\n this.columns.forEach(column => {\n if (!column.element.hidden &&\n column.element.order < hidden.element.order &&\n (!previous || column.element.order > previous.element.order)) {\n previous = column;\n }\n });\n return previous;\n }\n getNextSiblingVisible(hidden) {\n let next;\n this.columns.forEach(column => {\n if (!column.element.hidden &&\n column.element.order > hidden.element.order &&\n (!next || column.element.order < next.element.order)) {\n next = column;\n }\n });\n return next;\n }\n}\n//# sourceMappingURL=ch-grid-manager-column-drag.js.map\n","import { ChGridCellType } from \"./grid-cell/ch-grid-cell\";\nexport class ChGridManagerColumns {\n manager;\n columnsetObserver = new MutationObserver(this.reloadColumns.bind(this));\n columnResizeObserver = new ResizeObserver(this.resizeColumnHandler.bind(this));\n columns;\n columnsDisplay = [];\n columnsWidth = [];\n constructor(manager) {\n this.manager = manager;\n this.columns = Array.from(this.manager.grid.querySelectorAll(\"ch-grid-column\"));\n this.observeColumnset();\n this.defineColumns(this.columns);\n this.defineColumnsVariables();\n this.adjustFreezeOrder();\n this.adjustBaseLayer();\n }\n getColumn(columnId) {\n return this.columns.find(column => column.columnId === columnId);\n }\n getColumns(sorted = false) {\n if (sorted) {\n return this.columns.sort(this.fnSortByOrder);\n }\n return this.columns;\n }\n getColumnsFirstLast() {\n let columnFirst;\n let columnLast;\n this.columns.forEach(column => {\n if (!column.hidden &&\n (!columnFirst || column.order < columnFirst.order)) {\n columnFirst = column;\n }\n if (!column.hidden && (!columnLast || column.order > columnLast.order)) {\n columnLast = column;\n }\n });\n return {\n columnFirst,\n columnLast\n };\n }\n getColumnSelector() {\n return this.columns.find(column => column.columnType === \"rich\" && column.richRowSelector);\n }\n adjustFreezeOrder() {\n const freezeStart = this.columns\n .filter(column => column.freeze === \"start\")\n .sort(this.fnSortByOrder);\n const noFreeze = this.columns\n .filter(column => column.freeze !== \"start\" && column.freeze !== \"end\")\n .sort(this.fnSortByOrder);\n const freezeEnd = this.columns\n .filter(column => column.freeze === \"end\")\n .sort(this.fnSortByOrder);\n let order = 1;\n freezeStart.forEach(column => (column.order = order++));\n noFreeze.forEach(column => (column.order = order++));\n freezeEnd.forEach(column => (column.order = order++));\n }\n defineColumns(columns) {\n columns.forEach(column => {\n this.defineColumnId(column);\n this.defineColumnIndex(column);\n this.defineColumnOrder(column);\n this.defineColumnSize(column);\n this.defineColumnDisplayObserver(column);\n this.defineColumnResizeObserver(column);\n this.defineColumnType(column);\n });\n }\n defineColumnId(column) {\n column.columnId ||= this.getColumnUniqueId();\n }\n defineColumnIndex(column) {\n column.physicalOrder = this.columns.indexOf(column) + 1;\n }\n defineColumnOrder(column) {\n column.order ||= column.physicalOrder;\n }\n defineColumnSize(column) {\n column.size ||= \"auto\";\n }\n defineColumnDisplayObserver(column) {\n if (column.displayObserverClass && !column.hidden) {\n const i = this.columnsDisplay.push(document.createElement(\"ch-grid-column-display\")) - 1;\n this.columnsDisplay[i].setAttribute(\"slot\", \"column-display\");\n this.columnsDisplay[i].setAttribute(\"class\", column.displayObserverClass);\n this.columnsDisplay[i].column = column;\n this.manager.grid.appendChild(this.columnsDisplay[i]);\n }\n }\n defineColumnResizeObserver(column) {\n this.columnResizeObserver.observe(column, { box: \"border-box\" });\n }\n defineColumnType(column) {\n switch (column.columnType) {\n case \"tree\":\n this.manager.grid\n .querySelectorAll(`ch-grid-cell:nth-child(${column.physicalOrder})`)\n .forEach((cell) => {\n cell.type = ChGridCellType.TreeNode;\n });\n break;\n case \"rich\":\n this.manager.grid\n .querySelectorAll(`ch-grid-cell:nth-child(${column.physicalOrder})`)\n .forEach((cell) => {\n cell.rowDrag = column.richRowDrag;\n cell.rowSelector = column.richRowSelector;\n cell.rowActions = column.richRowActions;\n cell.type = ChGridCellType.Rich;\n });\n break;\n }\n }\n defineColumnsVariables() {\n const root = this.manager.grid.getRootNode();\n const style = root.querySelector(\"#ch-grid-columns-variables\");\n if (!style ||\n parseInt(style.getAttribute(\"data-columns\")) < this.columns.length) {\n let selectors = \"\";\n for (let i = 1; i <= this.columns.length; i++) {\n selectors += `ch-grid-column:nth-child(${i}), ch-grid-cell:nth-child(${i}) {\n display: var(--ch-grid-column-${i}-display, flex);\n grid-column: var(--ch-grid-column-${i}-position, ${i});\n margin-inline-start: var(--ch-grid-column-${i}-margin-start);\n border-inline-start: var(--ch-grid-column-${i}-border-start);\n padding-inline-start: var(--ch-grid-column-${i}-padding-start);\n margin-inline-end: var(--ch-grid-column-${i}-margin-end);\n border-inline-end: var(--ch-grid-column-${i}-border-end);\n padding-inline-end: var(--ch-grid-column-${i}-padding-end);\n left: var(--ch-grid-column-${i}-left-freeze);\n right: var(--ch-grid-column-${i}-right-freeze);\n }\n ch-grid-column:nth-child(${i}) {\n transform: var(--ch-grid-column-${i}-transform);\n z-index: calc(var(--ch-grid-column-${i}-z-index-freeze, 0) + var(--ch-grid-column-z-index-head, 0) + var(--ch-grid-column-z-index-active, 0));\n }\n ch-grid-cell:nth-child(${i}) {\n transform: var(--ch-grid-virtual-scroller-position,) var(--ch-grid-column-${i}-transform,);\n z-index: calc(var(--ch-grid-column-${i}-z-index-freeze, 0) + var(--ch-grid-cell-z-index-active, 0));\n }\n ch-grid-cell:nth-child(${i})::before {\n content: var(--ch-grid-column-${i}-content);\n }\n `;\n }\n const styleInnerHTML = `@layer ch-grid {\n ${selectors}\n }`;\n if (style) {\n style.setAttribute(\"data-columns\", this.columns.length.toString());\n style.innerHTML = styleInnerHTML;\n }\n else if (root instanceof Document) {\n root.head.insertAdjacentHTML(\"beforeend\", `<style id=\"ch-grid-columns-variables\" data-columns=\"${this.columns.length}\">${styleInnerHTML}</style>`);\n }\n else if (root instanceof ShadowRoot) {\n const s = document.createElement(\"style\");\n s.id = \"ch-grid-columns-variables\";\n s.dataset.columns = this.columns.length.toString();\n s.innerText = styleInnerHTML;\n root.appendChild(s);\n }\n }\n }\n undefineColumns(columns) {\n columns.forEach(column => {\n this.columnResizeObserver.unobserve(column);\n this.columnsDisplay\n .filter(columnDisplay => columnDisplay.column === column)\n .forEach(item => {\n item.remove();\n });\n });\n }\n observeColumnset() {\n this.columnsetObserver.observe(this.manager.grid.querySelector(\"ch-grid-columnset\"), { childList: true });\n }\n reloadColumns() {\n const columns = Array.from(this.manager.grid.querySelectorAll(\"ch-grid-column\"));\n const columnsAdded = columns.filter(column => !this.columns.includes(column));\n const columnsRemoved = this.columns.filter(column => !columns.includes(column));\n if (columnsAdded.length || columnsRemoved.length) {\n this.columns = columns;\n this.undefineColumns(columnsRemoved);\n this.defineColumns(columnsAdded);\n this.defineColumnsVariables();\n this.adjustOrders();\n this.adjustBaseLayer();\n }\n }\n resizeColumnHandler(entries) {\n for (const entry of entries) {\n const column = entry.target;\n this.columnsWidth[column.physicalOrder - 1] = entry.contentRect.width;\n }\n this.manager.setColumnWidthVariables(this.columnsWidth);\n }\n getColumnUniqueId() {\n const uniqueId = Date.now().toString(36) + Math.random().toString(36).substring(2);\n return `ch-grid-column-auto-${uniqueId}`;\n }\n adjustOrders() {\n // adjust physicalOrder\n this.columns.forEach((column, i) => (column.physicalOrder = i + 1));\n // adjust order, preserving physicalOrder array\n [...this.columns].sort(this.fnSortByOrder).forEach((column, i) => {\n column.order = i + 1;\n });\n }\n adjustBaseLayer() {\n this.manager.setBaseLayer(this.columns.length);\n }\n fnSortByOrder(columnA, columnB) {\n if (columnA.order < columnB.order) {\n return -1;\n }\n if (columnA.order > columnB.order) {\n return 1;\n }\n return 0;\n }\n}\n//# sourceMappingURL=ch-grid-manager-columns.js.map\n","export class ChGridManagerSelection {\n manager;\n rangeStart;\n rangeValue;\n lastRowMarked;\n selectionStateNone = {\n rowFocused: null,\n rowsSelected: [],\n cellSelected: null\n };\n selecting;\n selectingRow;\n selectingCell;\n constructor(manager) {\n this.manager = manager;\n }\n select(state, row, cell, append, range, context) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n range = false;\n }\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n rowFocused = row;\n if (range) {\n const rangeRows = this.manager.getRowsRange(this.rangeStart ?? row, row);\n if (this.rangeValue) {\n if (append) {\n rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));\n }\n else {\n rowsSelected =\n rowsSelected.length === rangeRows.length ? rowsSelected : rangeRows;\n }\n cellSelected =\n cell ||\n row.getCell(cellSelected?.column || this.manager.getFirstColumn());\n }\n else {\n rowsSelected = rowsSelected.filter(rowSelected => !rangeRows.includes(rowSelected));\n cellSelected = null;\n }\n }\n else if (append) {\n this.rangeStart = row;\n this.rangeValue = !row.selected;\n if (rowsSelected.includes(row)) {\n rowsSelected = rowsSelected.filter(rowSelected => rowSelected !== row);\n cellSelected = null;\n }\n else {\n rowsSelected = [...rowsSelected, row];\n cellSelected =\n cell ||\n row.getCell(cellSelected?.column || this.manager.getFirstColumn());\n }\n }\n else {\n this.rangeStart = row;\n this.rangeValue = true;\n if (!(rowsSelected.length === 1 && rowsSelected[0] === row) &&\n !(context && rowsSelected.includes(row))) {\n rowsSelected = [row];\n }\n cellSelected =\n cell ||\n row.getCell(cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectAll(state, value = true) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n const rows = this.manager.getRows();\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (value) {\n rowFocused ??= this.manager.getFirstRow();\n rowsSelected = rows;\n cellSelected = rowFocused.getCell(state.cellSelected?.column || this.manager.getFirstColumn());\n }\n else {\n rowFocused ??= this.manager.getFirstRow();\n rowsSelected = [];\n cellSelected = null;\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectSet(state, row, cell, value = true) {\n let append = true;\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n rowFocused = row;\n if (value) {\n if (append) {\n rowsSelected = rowsSelected.includes(row)\n ? rowsSelected\n : [...rowsSelected, row];\n }\n else {\n rowsSelected = rowsSelected.includes(row) ? rowsSelected : [row];\n }\n cellSelected = cell;\n }\n else {\n rowsSelected = !rowsSelected.includes(row)\n ? rowsSelected\n : rowsSelected.filter(rowSelected => rowSelected !== row);\n cellSelected = null;\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectFirstRow(state, append) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n const firstRow = this.manager.getFirstRow();\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (firstRow) {\n if (append) {\n const rangeRows = this.manager.getRowsRange(rowFocused ?? firstRow, firstRow);\n rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));\n }\n else {\n rowsSelected = [firstRow];\n }\n rowFocused = firstRow;\n cellSelected = firstRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectPreviousRow(state, append) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n const previousRow = this.manager.getPreviousRow(state.rowFocused);\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (previousRow) {\n if (append) {\n const sortedRowsSelected = this.sortRowsSelected(rowsSelected);\n const isContiguousSelection = this.isContiguousSelection(sortedRowsSelected);\n if (isContiguousSelection && rowFocused === sortedRowsSelected[0]) {\n rowsSelected = [...rowsSelected, previousRow];\n }\n else if (isContiguousSelection &&\n rowFocused === sortedRowsSelected[sortedRowsSelected.length - 1]) {\n rowsSelected = rowsSelected.slice(0, -1);\n }\n else {\n rowsSelected = [rowFocused, previousRow];\n }\n }\n else {\n rowsSelected = [previousRow];\n }\n rowFocused = previousRow;\n cellSelected = previousRow.getCell(cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectNextRow(state, append) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n const nextRow = this.manager.getNextRow(state.rowFocused);\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (nextRow) {\n if (append) {\n const sortedRowsSelected = this.sortRowsSelected(rowsSelected);\n const isContiguousSelection = this.isContiguousSelection(sortedRowsSelected);\n if (isContiguousSelection &&\n rowFocused === sortedRowsSelected[sortedRowsSelected.length - 1]) {\n rowsSelected = [...rowsSelected, nextRow];\n }\n else if (isContiguousSelection &&\n rowFocused === sortedRowsSelected[0]) {\n rowsSelected = rowsSelected.slice(1);\n }\n else {\n rowsSelected = [rowFocused, nextRow];\n }\n }\n else {\n rowsSelected = [nextRow];\n }\n rowFocused = nextRow;\n cellSelected = nextRow.getCell(cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectLastRow(state, append) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n const firstRow = this.manager.getLastRow();\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (firstRow) {\n if (append) {\n const rangeRows = this.manager.getRowsRange(rowFocused ?? firstRow, firstRow);\n rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));\n }\n else {\n rowsSelected = [firstRow];\n }\n rowFocused = firstRow;\n cellSelected = firstRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectPreviousPageRow(state, append) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n const rows = this.manager.getRows();\n const rowsPerPage = this.manager.getRowsPerPage();\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n const previousPageRow = rows[Math.max(rows.indexOf(rowFocused) - rowsPerPage, 0)];\n if (previousPageRow) {\n if (append) {\n const rangeRows = this.manager.getRowsRange(rowFocused ?? previousPageRow, previousPageRow);\n rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));\n }\n else {\n rowsSelected =\n rowsSelected.length === 1 && rowsSelected[0] === previousPageRow\n ? rowsSelected\n : [previousPageRow];\n }\n rowFocused = previousPageRow;\n cellSelected = previousPageRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectNextPageRow(state, append) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n const rows = this.manager.getRows();\n const rowsPerPage = this.manager.getRowsPerPage();\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n const nextPageRow = rows[Math.min(rows.indexOf(rowFocused) + rowsPerPage, rows.length - 1)];\n if (nextPageRow) {\n if (append) {\n const rangeRows = this.manager.getRowsRange(rowFocused ?? nextPageRow, nextPageRow);\n rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));\n }\n else {\n rowsSelected =\n rowsSelected.length === 1 && rowsSelected[0] === nextPageRow\n ? rowsSelected\n : [nextPageRow];\n }\n rowFocused = nextPageRow;\n cellSelected = nextPageRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectPreviousCell(state) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n const rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (cellSelected) {\n const nextCell = this.manager.getPreviousCell(cellSelected);\n if (nextCell) {\n cellSelected = nextCell;\n }\n }\n else {\n if (!rowsSelected.includes(rowFocused)) {\n rowsSelected = [...rowsSelected, rowFocused];\n }\n cellSelected ||= rowFocused.getCell(this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectNextCell(state) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n const rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (cellSelected) {\n const nextCell = this.manager.getNextCell(cellSelected);\n if (nextCell) {\n cellSelected = nextCell;\n }\n }\n else {\n if (!rowsSelected.includes(rowFocused)) {\n rowsSelected = [...rowsSelected, rowFocused];\n }\n cellSelected ||= rowFocused.getCell(this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n markRow(row, checked, range, currentRowsMarked) {\n if (row) {\n if (range) {\n const value = !row.marked;\n const rows = this.manager.getRowsRange(this.lastRowMarked ?? row, row);\n this.lastRowMarked = row;\n if (value) {\n return currentRowsMarked.concat(rows.filter(row => !currentRowsMarked.includes(row)));\n }\n return currentRowsMarked.filter(row => !rows.includes(row));\n }\n this.lastRowMarked = row;\n if (checked && !currentRowsMarked.includes(row)) {\n return currentRowsMarked.concat([row]);\n }\n if (!checked && currentRowsMarked.includes(row)) {\n return currentRowsMarked.filter(r => r !== row);\n }\n }\n return currentRowsMarked;\n }\n markAllRows(value = true) {\n if (value) {\n return this.manager.getRows();\n }\n return [];\n }\n syncRowSelector(rows, previous = [], selectorMode) {\n const columnSelector = this.manager.columns.getColumnSelector();\n if (columnSelector?.richRowSelectorMode === selectorMode) {\n const indexColumnSelector = columnSelector.physicalOrder - 1;\n previous\n ?.filter(x => !rows.includes(x))\n .forEach(row => {\n row.marked = false;\n const cell = row.children[indexColumnSelector];\n cell.setSelectorChecked(false);\n });\n rows?.forEach(row => {\n row.marked = columnSelector.richRowSelectorMode === \"mark\";\n const cell = row.children[indexColumnSelector];\n cell.setSelectorChecked(true);\n });\n if (rows.length === 0) {\n columnSelector.richRowSelectorState = \"\";\n }\n else if (rows.length === this.manager.getRows().length) {\n columnSelector.richRowSelectorState = \"checked\";\n }\n else {\n columnSelector.richRowSelectorState = \"indeterminate\";\n }\n }\n }\n sortRowsSelected(rowsSelected) {\n const rows = Array.from(this.manager.grid.querySelectorAll(\"ch-grid-row\"));\n return rowsSelected.sort((rowA, rowB) => {\n const rowAIndex = rows.indexOf(rowA);\n const rowBIndex = rows.indexOf(rowB);\n if (rowAIndex < rowBIndex) {\n return -1;\n }\n if (rowAIndex > rowBIndex) {\n return 1;\n }\n return 0;\n });\n }\n isContiguousSelection(sortedRowsSelected) {\n const rows = Array.from(this.manager.grid.querySelectorAll(\"ch-grid-row\")).filter(row => row.isVisible());\n if (sortedRowsSelected.length === 0) {\n return false;\n }\n if (sortedRowsSelected.length === 1) {\n return true;\n }\n const startIndex = rows.indexOf(sortedRowsSelected[0]);\n const endIndex = rows.indexOf(sortedRowsSelected[sortedRowsSelected.length - 1]);\n return endIndex - startIndex + 1 === sortedRowsSelected.length;\n }\n}\n//# sourceMappingURL=ch-grid-manager-selection.js.map\n","export class ChGridManagerRowDrag {\n manager;\n row;\n rowIndex;\n rowShadow;\n dragMouseMoveFn = this.dragMouseMoveHandler.bind(this);\n constructor(manager) {\n this.manager = manager;\n }\n dragStart(row) {\n this.row = row;\n this.rowIndex = this.manager.getGridRowIndex(row);\n this.defineListeners();\n this.createRowShadow();\n this.floatRow();\n this.updateRowPosition();\n }\n dragMouseMoveHandler(eventInfo) {\n const target = eventInfo.target;\n const rowHover = target.closest(\"ch-grid-row\");\n if (rowHover &&\n rowHover.parentElement === this.row.parentElement &&\n rowHover.grid === this.manager.grid) {\n const rowHoverIndex = this.manager.getGridRowIndex(rowHover);\n const rowHoverGridPosition = rowHoverIndex + 2; // +1 RowHeaderColumn, +1 array start at 1\n const offsetPosition = this.rowIndex < rowHoverIndex ? -1 : 1;\n if (this.rowShadow.style.getPropertyValue(\"--row-shadow-row-start\") !==\n `${rowHoverGridPosition}`) {\n this.rowShadow.style.setProperty(\"--row-shadow-row-start\", `${rowHoverGridPosition}`);\n }\n else {\n this.rowShadow.style.setProperty(\"--row-shadow-row-start\", `${rowHoverGridPosition + offsetPosition}`);\n }\n this.updateRowPosition();\n }\n }\n dragMouseUpHandler() {\n document.removeEventListener(\"mousemove\", this.dragMouseMoveFn);\n const dropPosition = parseInt(this.rowShadow.style.getPropertyValue(\"--row-shadow-row-start\"));\n const rowDrop = this.manager.grid\n .querySelectorAll(\"ch-grid-row\")\n .item(dropPosition - 2);\n if (dropPosition < this.rowIndex + 2) {\n rowDrop.before(this.row);\n }\n if (dropPosition > this.rowIndex + 2) {\n rowDrop.after(this.row);\n }\n this.unfloatRow();\n this.rowShadow.remove();\n this.row = null;\n this.rowShadow = null;\n }\n defineListeners() {\n document.addEventListener(\"mousemove\", this.dragMouseMoveFn, {\n passive: true\n });\n document.addEventListener(\"mouseup\", this.dragMouseUpHandler.bind(this), {\n once: true\n });\n }\n createRowShadow() {\n const rowHeight = this.manager.getRowHeight(this.row);\n this.rowShadow = document.createElement(\"div\");\n this.rowShadow.style.display = \"contents\";\n this.manager.getColumnsWidth().forEach(width => {\n const column = document.createElement(\"div\");\n column.style.opacity = \"0\";\n column.style.minWidth = width;\n column.style.height = `${rowHeight}px`;\n column.style.gridRowStart = \"var(--row-shadow-row-start)\";\n this.rowShadow.append(column);\n });\n }\n floatRow() {\n const columnsWidth = this.manager.getColumnsWidth();\n const rowWidth = this.manager.gridLayout.clientWidth;\n this.row.before(this.rowShadow);\n this.row.setAttribute(\"dragging\", \"\");\n this.row.style.width = `${rowWidth}px`;\n this.row\n .querySelectorAll(\":scope > ch-grid-cell\")\n .forEach((cell, i) => {\n const columnPosition = parseInt(this.manager.gridLayout.style.getPropertyValue(`--ch-grid-column-${i + 1}-position`));\n if (!cell.hidden) {\n cell.style.width = columnsWidth[columnPosition - 1];\n cell.style.order = `${columnPosition}`;\n }\n });\n }\n unfloatRow() {\n this.row.removeAttribute(\"dragging\");\n this.row.style.width = \"\";\n this.row\n .querySelectorAll(\":scope > ch-grid-cell\")\n .forEach((cell) => {\n cell.style.width = \"\";\n cell.style.order = \"\";\n });\n }\n updateRowPosition() {\n const rect = this.rowShadow.children[0].getBoundingClientRect();\n this.row.style.top = `${rect.top}px`;\n this.row.style.left = `${rect.left}px`;\n }\n}\n//# sourceMappingURL=ch-grid-manager-row-drag.js.map\n","export class ChGridManagerRowActions {\n manager;\n showOnRowHover;\n showOnRowActions;\n showOnRowContext;\n constructor(manager) {\n this.manager = manager;\n this.manager.grid\n .querySelectorAll(\"ch-grid-row-actions\")\n ?.forEach(rowActions => {\n if (rowActions.showOnRowHover) {\n this.showOnRowHover = rowActions;\n }\n if (rowActions.showOnRowActions) {\n this.showOnRowActions = rowActions;\n }\n if (rowActions.showOnRowContext) {\n this.showOnRowContext = rowActions;\n }\n });\n }\n}\n//# sourceMappingURL=ch-grid-manager-row-actions.js.map\n","export class ChGridManagerColumnResize {\n manager;\n column;\n columnWidthStart;\n columnSizeStart;\n columnAfter;\n columnAfterWidthStart;\n columnAfterSizeStart;\n dragDirection;\n resizingFn;\n resizeEndFn;\n constructor(manager, columnId, isRTL) {\n this.manager = manager;\n this.dragDirection = isRTL ? -1 : 1;\n if (this.manager.grid.columnResizeMode === \"splitter\") {\n this.resizingFn = this.resizingSplitter;\n this.resizeEndFn = this.resizeEndSplitter;\n }\n else {\n this.resizingFn = this.resizingSingle;\n this.resizeEndFn = null;\n }\n this.column = this.manager.columns.getColumn(columnId);\n this.columnWidthStart = this.column.getBoundingClientRect().width;\n this.columnSizeStart = this.parseCSSValue(this.column.size);\n this.columnAfter = this.manager.getNextColumn(this.column);\n this.columnAfterWidthStart =\n this.columnAfter?.getBoundingClientRect().width;\n this.columnAfterSizeStart = this.parseCSSValue(this.columnAfter.size);\n }\n resizing(deltaWidth) {\n this.resizingFn(deltaWidth);\n }\n resizeEnd() {\n if (this.resizeEndFn) {\n this.resizeEndFn();\n }\n }\n resizingSingle = (deltaWidth) => {\n const columnWidth = this.columnWidthStart - deltaWidth * this.dragDirection;\n if (columnWidth >= 0) {\n this.column.size = `minmax(min-content, ${columnWidth}px)`;\n }\n };\n resizingSplitter = (deltaWidth) => {\n const columnWidth = this.columnWidthStart - deltaWidth * this.dragDirection;\n if (columnWidth >= 0) {\n if (this.columnSizeStart) {\n this.column.size = this.convertUnit(this.columnSizeStart, this.columnWidthStart, columnWidth);\n }\n else {\n this.column.size = `minmax(min-content, ${columnWidth}px)`;\n }\n }\n if (this.columnAfter) {\n const columnAfterWidth = this.columnAfterWidthStart + deltaWidth * this.dragDirection;\n if (columnAfterWidth >= 0) {\n if (this.columnAfterSizeStart) {\n this.columnAfter.size = this.convertUnit(this.columnAfterSizeStart, this.columnAfterWidthStart, columnAfterWidth);\n }\n else {\n this.columnAfter.size = `minmax(min-content, ${columnAfterWidth}px)`;\n }\n }\n }\n };\n resizeEndSplitter() {\n const columnWidthEnd = this.column.getBoundingClientRect().width;\n this.column.size = this.convertUnit(this.columnSizeStart, this.columnWidthStart, columnWidthEnd);\n if (this.columnAfter) {\n const columnAfterWidthEnd = this.columnAfterWidthStart - (columnWidthEnd - this.columnWidthStart);\n this.columnAfter.size = this.convertUnit(this.columnSizeStart, this.columnWidthStart, columnAfterWidthEnd);\n }\n }\n parseCSSValue(cssValue) {\n const match = cssValue.match(/([+-]?[\\d.]+)([\\w%]+)/);\n if (match) {\n const number = parseFloat(match[1]);\n const unit = match[2];\n return { number, unit };\n }\n return null;\n }\n convertUnit(startSize, startWidth, newWidth) {\n return `${(newWidth * startSize.number) / startWidth}${startSize.unit}`;\n }\n}\n//# sourceMappingURL=ch-grid-manager-column-resize.js.map\n","import { ChGridManagerColumnDrag } from \"./ch-grid-manager-column-drag\";\nimport { ChGridManagerColumns } from \"./ch-grid-manager-columns\";\nimport { ChGridManagerSelection } from \"./ch-grid-manager-selection\";\nimport { ChGridManagerRowDrag } from \"./ch-grid-manager-row-drag\";\nimport { ChGridManagerRowActions } from \"./ch-grid-manager-row-actions\";\nimport { adoptGlobalStyleSheet } from \"../style/ch-global-stylesheet\";\nimport { ChGridManagerColumnResize } from \"./ch-grid-manager-column-resize\";\nvar StyleRule;\n(function (StyleRule) {\n StyleRule[StyleRule[\"BASE_LAYER\"] = 0] = \"BASE_LAYER\";\n StyleRule[StyleRule[\"COLUMNS_WIDTH\"] = 1] = \"COLUMNS_WIDTH\";\n})(StyleRule || (StyleRule = {}));\nexport class ChGridManager {\n styleSheet = new CSSStyleSheet();\n gridLayoutElement;\n columnDragManager;\n columnResizeManager;\n rowDragManager;\n grid;\n selection;\n columns;\n rowActions;\n constructor(grid) {\n this.grid = grid;\n this.styleSheet.insertRule(`:host {}`, StyleRule.BASE_LAYER);\n this.styleSheet.insertRule(\".main {}\", StyleRule.COLUMNS_WIDTH);\n this.grid.shadowRoot.adoptedStyleSheets.push(this.styleSheet);\n adoptGlobalStyleSheet(this.grid.shadowRoot.adoptedStyleSheets);\n this.columns = new ChGridManagerColumns(this);\n this.selection = new ChGridManagerSelection(this);\n this.rowActions = new ChGridManagerRowActions(this);\n }\n get gridLayout() {\n return this.gridLayoutElement;\n }\n componentDidLoad(gridLayout) {\n this.gridLayoutElement = gridLayout;\n }\n getColumns() {\n return this.columns.getColumns();\n }\n getColumnsWidth() {\n return getComputedStyle(this.gridLayout).gridTemplateColumns.split(\" \");\n }\n getColumnsetHeight() {\n const gridColumnsHeight = getComputedStyle(this.gridLayout).gridTemplateRows.split(\" \");\n return parseInt(gridColumnsHeight[0]) || 0;\n }\n getFirstColumn() {\n return this.columns.getColumnsFirstLast().columnFirst;\n }\n getFirstRow() {\n return this.grid.querySelector(\"ch-grid-row\");\n }\n getScrollOffsetTop() {\n return this.gridLayout.offsetTop + this.getColumnsetHeight();\n }\n getScrollOffsetLeft() {\n return this.columns.getColumns(true).reduce((offsetRight, column) => {\n return column.freeze === \"start\" && !column.hidden\n ? offsetRight + column.offsetWidth\n : offsetRight;\n }, 0);\n }\n getScrollOffsetRight() {\n return this.columns.getColumns(true).reduce((offsetRight, column) => {\n return column.freeze === \"end\" && !column.hidden\n ? offsetRight + column.offsetWidth\n : offsetRight;\n }, 0);\n }\n getPreviousRow(current) {\n const rows = this.getRows();\n const i = rows.indexOf(current);\n return rows\n .slice(0, i)\n .reverse()\n .find(row => row.isVisible());\n }\n getNextRow(current) {\n const rows = this.getRows();\n const i = rows.indexOf(current);\n return rows.slice(i + 1).find(row => row.isVisible());\n }\n getLastRow() {\n const rows = this.getRows();\n return rows.reverse().find(row => row.isVisible());\n }\n getPreviousColumn(column) {\n return this.columns.getColumns().reduce((previous, current) => {\n return current.order < column.order &&\n !current.hidden &&\n (!previous || current.order > previous.order)\n ? current\n : previous;\n }, null);\n }\n getNextColumn(column) {\n return this.columns.getColumns().reduce((previous, current) => {\n return current.order > column.order &&\n !current.hidden &&\n (!previous || current.order < previous.order)\n ? current\n : previous;\n }, null);\n }\n getPreviousCell(current) {\n const previousColumn = this.getPreviousColumn(current.column);\n if (previousColumn) {\n return current.row.querySelector(`:scope > ch-grid-cell:nth-of-type(${previousColumn.physicalOrder})`);\n }\n }\n getNextCell(current) {\n const nextColumn = this.getNextColumn(current.column);\n if (nextColumn) {\n return current.row.querySelector(`:scope > ch-grid-cell:nth-of-type(${nextColumn.physicalOrder})`);\n }\n }\n getGridRowIndex(row) {\n return Array.prototype.indexOf.call(this.grid.querySelectorAll(\"ch-grid-row, ch-grid-rowset-legend\"), row);\n }\n getRowsetRowIndex(row) {\n return Array.prototype.indexOf.call(row.parentElement.children, row);\n }\n getRowHeight(row) {\n const gridRowsHeight = getComputedStyle(this.gridLayout).gridTemplateRows.split(\" \");\n const rowIndex = this.getGridRowIndex(row) + 1;\n return parseInt(gridRowsHeight[rowIndex]) || 0;\n }\n getRowsPerPage() {\n const gridHeight = this.gridLayout.clientHeight;\n const columnsHeight = this.getColumnsetHeight();\n const rowHeight = this.getRowHeight(this.getFirstRow());\n return Math.floor((gridHeight - columnsHeight) / rowHeight);\n }\n getRow(rowId) {\n return this.grid.querySelector(`ch-grid-row[rowid=\"${rowId}\"]`);\n }\n getRows(state = \"all\") {\n const rows = Array.from(this.grid.querySelectorAll(`ch-grid-row`));\n if (state === \"visible\") {\n return rows.filter(row => row.isVisible());\n }\n return rows;\n }\n getRowsSelected() {\n return Array.from(this.grid.querySelectorAll(`ch-grid-row[selected]`));\n }\n getRowsRange(start, end) {\n const rows = this.getRows();\n const indexStart = rows.indexOf(start);\n const indexEnd = rows.indexOf(end);\n return rows\n .slice(Math.min(indexStart, indexEnd), Math.max(indexStart, indexEnd) + 1)\n .filter(row => row.isVisible());\n }\n getRowEventTarget(eventInfo) {\n return eventInfo\n .composedPath()\n .find((target) => target.tagName === \"CH-GRID-ROW\");\n }\n isRowActionsEventTarget(eventInfo) {\n return (eventInfo\n .composedPath()\n .find((target) => target.tagName === \"CH-GRID-ROW-ACTIONS\") != null);\n }\n getCell(cellId, rowId, columnId) {\n if (cellId) {\n return this.grid.querySelector(`ch-grid-cell[cellid=\"${cellId}\"]`);\n }\n if (rowId && columnId) {\n const row = this.getRow(rowId);\n const column = this.columns.getColumn(columnId);\n if (row && column) {\n return row.getCell(column);\n }\n }\n }\n getCellEventTarget(eventInfo) {\n return eventInfo\n .composedPath()\n .find((target) => target.tagName === \"CH-GRID-CELL\");\n }\n columnDragStart(columnId) {\n this.columnDragManager = new ChGridManagerColumnDrag(columnId, this.columns.getColumns(), this.isRTLDirection());\n }\n columnDragging(position) {\n return this.columnDragManager.dragging(position);\n }\n columnDragEnd() {\n this.columnDragManager.dragEnd();\n this.columnDragManager = null;\n }\n columnResizeStart(columnId) {\n this.columnResizeManager = new ChGridManagerColumnResize(this, columnId, this.isRTLDirection());\n }\n columnResizing(deltaWidth) {\n this.columnResizeManager.resizing(deltaWidth);\n }\n columnResizeEnd() {\n this.columnResizeManager.resizeEnd();\n this.columnResizeManager = null;\n }\n rowDragStart(row) {\n this.rowDragManager = new ChGridManagerRowDrag(this);\n this.rowDragManager.dragStart(row);\n }\n getGridStyle() {\n return {\n display: \"grid\",\n ...this.getGridTemplateColumns(),\n ...this.getRowBoxSimulationStyle(),\n ...this.getDragTransitionStyle(),\n ...this.getColumnsStyle()\n };\n }\n setBaseLayer(value) {\n this.styleSheet.deleteRule(StyleRule.BASE_LAYER);\n this.styleSheet.insertRule(`:host { --ch-grid-base-layer: ${value}; }`, StyleRule.BASE_LAYER);\n }\n setColumnWidthVariables(columnsWidth) {\n this.styleSheet.deleteRule(StyleRule.COLUMNS_WIDTH);\n this.styleSheet.insertRule(`.main { ${columnsWidth\n .map((columnWidth, columnIndex) => `--ch-grid-column-${columnIndex + 1}-width:${columnWidth}px;`)\n .join(\"\\n\")} }`, StyleRule.COLUMNS_WIDTH);\n }\n ensureRowVisible(row) {\n let node = row.parentElement.closest(\"ch-grid-row, ch-grid-rowset\");\n const { columnFirst } = this.columns.getColumnsFirstLast();\n while (node) {\n node.collapsed = false;\n node = node.parentElement.closest(\"ch-grid-row, ch-grid-rowset\");\n }\n if (row.children[columnFirst.physicalOrder]) {\n this.ensureVisible(row.children[columnFirst.physicalOrder]);\n }\n }\n ensureCellVisible(cell) {\n let node = cell.closest(\"ch-grid-row, ch-grid-rowset\");\n while (!cell.isVisible() && node) {\n node.collapsed = false;\n node = node.parentElement.closest(\"ch-grid-row, ch-grid-rowset\");\n }\n if (!cell.isVisible()) {\n cell.column.hidden = false;\n }\n this.ensureVisible(cell);\n }\n ensureVisible(cell) {\n const isColumnFreeze = [\"start\", \"end\"].includes(cell.column.freeze);\n const scroll = this.gridLayout;\n const scrollOffsetTop = this.getScrollOffsetTop();\n const scrollOffsetLeft = this.getScrollOffsetLeft();\n const scrollOffsetRight = this.getScrollOffsetRight();\n if (scroll.scrollTop + scrollOffsetTop > cell.offsetTop) {\n scroll.scrollBy({\n top: (scroll.scrollTop - cell.offsetTop + scrollOffsetTop) * -1\n });\n }\n else if (scroll.scrollTop + scroll.offsetHeight <\n cell.offsetTop + cell.offsetHeight) {\n scroll.scrollBy({\n top: cell.offsetTop +\n cell.offsetHeight -\n (scroll.scrollTop + scroll.offsetHeight)\n });\n }\n else if (scroll.scrollLeft + scrollOffsetLeft > cell.offsetLeft &&\n !isColumnFreeze) {\n scroll.scrollBy({\n left: (scroll.scrollLeft - cell.offsetLeft + scrollOffsetLeft) * -1\n });\n }\n else if (scroll.scrollLeft + scroll.clientWidth - scrollOffsetRight <\n cell.offsetLeft + cell.offsetWidth &&\n !isColumnFreeze) {\n scroll.scrollBy({\n left: cell.offsetLeft +\n cell.offsetWidth -\n (scroll.scrollLeft + scroll.clientWidth - scrollOffsetRight)\n });\n }\n }\n getGridTemplateColumns() {\n return {\n \"grid-template-columns\": this.columns\n .getColumns()\n .map(column => `var(--ch-grid-column-${column.physicalOrder}-size)`)\n .join(\" \")\n };\n }\n getRowBoxSimulationStyle() {\n const { columnFirst, columnLast } = this.columnDragManager\n ? this.columnDragManager.getColumnsFirstLast()\n : this.columns.getColumnsFirstLast();\n if (!columnFirst || !columnLast) {\n return null;\n }\n return {\n [`--ch-grid-column-${columnFirst.physicalOrder}-margin-start`]: \"var(--ch-grid-fallback, inherit)\",\n [`--ch-grid-column-${columnFirst.physicalOrder}-border-start`]: \"var(--ch-grid-fallback, inherit)\",\n [`--ch-grid-column-${columnFirst.physicalOrder}-padding-start`]: \"var(--ch-grid-fallback, inherit)\",\n [`--ch-grid-column-${columnLast.physicalOrder}-margin-end`]: \"var(--ch-grid-fallback, inherit)\",\n [`--ch-grid-column-${columnLast.physicalOrder}-border-end`]: \"var(--ch-grid-fallback, inherit)\",\n [`--ch-grid-column-${columnLast.physicalOrder}-padding-end`]: \"var(--ch-grid-fallback, inherit)\"\n };\n }\n getDragTransitionStyle() {\n return {\n \"--column-drag-transition-duration\": this.columnDragManager ? \".2s\" : \"0s\"\n };\n }\n getColumnsStyle() {\n return this.columns.getColumns().reduce((style, column) => {\n return {\n ...style,\n ...this.getColumnStyle(column)\n };\n }, {});\n }\n getColumnStyle(column) {\n return {\n ...this.getColumnSizeStyle(column),\n ...this.getColumnOrderStyle(column),\n ...this.getColumnDisplayStyle(column),\n ...this.getColumnFreezeStyle(column),\n ...this.getColumnDraggingStyle(column),\n ...this.getColumnIndentStyle(column)\n };\n }\n getColumnSizeStyle(column) {\n return {\n [`--ch-grid-column-${column.order}-size`]: column.hidden\n ? \"0px\"\n : column.size\n };\n }\n getColumnOrderStyle(column) {\n return {\n [`--ch-grid-column-${column.physicalOrder}-position`]: column.order.toString()\n };\n }\n getColumnFreezeStyle(column) {\n switch (column.freeze) {\n case \"start\":\n return this.getColumnFreezeStartStyle(column);\n case \"end\":\n return this.getColumnFreezeEndStyle(column);\n }\n }\n getColumnFreezeStartStyle(column) {\n const calcItems = [\"0px\"];\n for (let i = 1; i < column.order; i++) {\n calcItems.push(`var(--ch-grid-column-${i}-width)`);\n }\n return {\n [`--ch-grid-column-${column.physicalOrder}-left-freeze`]: `calc(${calcItems.join(\" + \")})`,\n [`--ch-grid-column-${column.physicalOrder}-z-index-freeze`]: \"var(--ch-grid-column-freeze-layer)\"\n };\n }\n getColumnFreezeEndStyle(column) {\n const calcItems = [\"0px\"];\n for (let i = this.columns.getColumns().length; i > column.order; i--) {\n calcItems.push(`var(--ch-grid-column-${i}-width)`);\n }\n return {\n [`--ch-grid-column-${column.physicalOrder}-right-freeze`]: `calc(${calcItems.join(\" + \")})`,\n [`--ch-grid-column-${column.physicalOrder}-z-index-freeze`]: \"var(--ch-grid-column-freeze-layer)\"\n };\n }\n getColumnDisplayStyle(column) {\n return column.hidden\n ? {\n [`--ch-grid-column-${column.physicalOrder}-display`]: \"none\"\n }\n : null;\n }\n getColumnDraggingStyle(column) {\n return this.columnDragManager\n ? this.columnDragManager.getColumnStyle(column)\n : null;\n }\n getColumnIndentStyle(column) {\n return {\n [`--ch-grid-column-${column.physicalOrder}-content`]: column.order === 1 ? \"''\" : \"none\"\n };\n }\n isRTLDirection() {\n return getComputedStyle(this.grid).direction === \"rtl\";\n }\n}\n//# sourceMappingURL=ch-grid-manager.js.map\n",":host {\n display: flex;\n position: relative;\n flex-direction: column;\n inline-size: 100%;\n --ch-grid-cell-active-layer: calc(var(--ch-grid-base-layer) * 1);\n --ch-grid-column-header-layer: calc(var(--ch-grid-base-layer) * 2);\n --ch-grid-column-freeze-layer: calc(var(--ch-grid-base-layer) * 4);\n --ch-grid-column-active-layer: calc(var(--ch-grid-base-layer) * 8);\n --ch-grid-settings-layer: calc(var(--ch-grid-base-layer) * 16);\n}\n\n.main {\n display: none;\n grid-auto-flow: dense; /* necesario para poder reordenar las columnas */\n grid-auto-rows: max-content;\n overflow-x: auto;\n user-select: none;\n block-size: 100%;\n}","import \"./grid-row/ch-grid-row\";\nimport \"./grid-rowset/ch-grid-rowset\";\nimport \"./grid-cell/ch-grid-cell\";\nimport { Host, h } from \"@stencil/core\";\nimport { ChGridManager } from \"./ch-grid-manager\";\nimport { MouseEventButton, MouseEventButtons, focusComposedPath, mouseEventHasButtonPressed, mouseEventModifierKey } from \"../common/helpers\";\n/**\n * The `ch-grid` component represents a Grid/TreeGrid of data, with rows and cells.\n */\nexport class ChGrid {\n constructor() {\n this.rowFocused = undefined;\n this.rowHighlighted = undefined;\n this.rowsMarked = [];\n this.rowsSelected = [];\n this.cellSelected = undefined;\n this.gridStyle = undefined;\n this.rowSelectionMode = \"single\";\n this.rowHighlightEnabled = \"auto\";\n this.rowSelectedClass = undefined;\n this.rowHighlightedClass = undefined;\n this.rowFocusedClass = undefined;\n this.rowMarkedClass = undefined;\n this.allowColumnReorder = true;\n this.columnResizeMode = \"single\";\n this.localization = undefined;\n }\n manager;\n gridLayoutElement;\n settingsUI;\n el;\n rowFocusedHandler(row, previous) {\n if (row) {\n row.focused = true;\n }\n if (previous) {\n previous.focused = false;\n }\n }\n rowHighlightedHandler(row, previous) {\n // highlight\n if (row) {\n row.highlighted = true;\n }\n if (previous) {\n previous.highlighted = false;\n }\n // actions\n if (row) {\n this.manager.rowActions.showOnRowHover?.openRowHover(row);\n }\n else {\n this.manager.rowActions.showOnRowHover?.close();\n }\n }\n rowsMarkedHandler(rows, previous) {\n this.manager.selection.syncRowSelector(rows, previous, \"mark\");\n this.rowMarkingChanged.emit({\n rowsId: rows.map(row => row.rowId),\n addedRowsId: rows\n .filter(row => !previous.includes(row))\n .map(row => row.rowId),\n removedRowsId: previous\n .filter(row => !rows.includes(row))\n .map(row => row.rowId),\n unalteredRowsId: rows\n .filter(row => previous.includes(row))\n .map(row => row.rowId)\n });\n }\n rowsSelectedHandler(rows, previous) {\n if (previous) {\n previous\n .filter(row => !rows.includes(row))\n .forEach(row => (row.selected = false));\n }\n if (rows) {\n rows.forEach(row => (row.selected = true));\n }\n this.manager.selection.syncRowSelector(rows, previous, \"select\");\n this.selectionChanged.emit({ rowsId: rows.map(row => row.rowId) });\n }\n cellSelectedHandler(cell, previous) {\n if (cell) {\n cell.selected = true;\n }\n if (previous) {\n previous.selected = false;\n }\n this.cellSelectionChanged.emit({\n cellId: this.cellSelected ? this.cellSelected.cellId : null,\n rowId: this.cellSelected ? this.cellSelected.row.rowId : null,\n columnId: this.cellSelected ? this.cellSelected.column.columnId : null\n });\n }\n /**\n * Event emitted when the row selection is changed.\n */\n selectionChanged;\n /**\n * Event emitted when the row marking is changed.\n */\n rowMarkingChanged;\n /**\n * Event emitted when the cell selection is changed.\n */\n cellSelectionChanged;\n /**\n * Event emitted when a row is clicked.\n */\n rowClicked;\n /**\n * Event emitted when a row is double clicked.\n */\n rowDoubleClicked;\n /**\n * Event emitted when Enter is pressed on a row.\n */\n rowEnterPressed;\n /**\n * Event emitted when attempts to open a context menu on a row.\n */\n rowContextMenu;\n componentWillLoad() {\n this.manager = new ChGridManager(this.el);\n this.gridStyle = this.manager.getGridStyle();\n this.rowsSelected = this.manager.getRowsSelected();\n }\n componentDidLoad() {\n this.manager.componentDidLoad(this.gridLayoutElement);\n }\n componentShouldUpdate(_newValue, _oldValue, name) {\n if (name === \"rowFocused\" ||\n name === \"rowHighlighted\" ||\n name === \"rowSelected\" ||\n name === \"rowsMarked\" ||\n name === \"cellSelected\") {\n return false;\n }\n }\n focusHandler() {\n if (this.rowSelectionMode !== \"none\") {\n this.rowFocused = this.rowsSelected[0] || this.manager.getFirstRow();\n }\n }\n blurHandler() {\n this.rowFocused = null;\n }\n cellFocusedHandler(eventInfo) {\n const cell = eventInfo.target;\n if (this.rowSelectionMode !== \"none\" && !cell.selected) {\n this.setCellSelected(cell);\n }\n }\n windowKeyDownHandler(eventInfo) {\n if (focusComposedPath()[0] === this.el &&\n [\n \" \",\n \"+\",\n \"-\",\n \"Home\",\n \"End\",\n \"PageUp\",\n \"PageDown\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\"\n ].includes(eventInfo.key)) {\n eventInfo.preventDefault();\n }\n }\n keyDownHandler(eventInfo) {\n if (focusComposedPath()[0] === this.el) {\n switch (eventInfo.key) {\n case \" \":\n this.toggleRowsMarked();\n break;\n case \"+\":\n this.setRowCollapsed(this.rowFocused, false);\n break;\n case \"-\":\n this.setRowCollapsed(this.rowFocused, true);\n break;\n case \"Home\":\n this.selectByKeyboardEvent(this.manager.selection.selectFirstRow.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"End\":\n this.selectByKeyboardEvent(this.manager.selection.selectLastRow.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"PageUp\":\n this.selectByKeyboardEvent(this.manager.selection.selectPreviousPageRow.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"PageDown\":\n this.selectByKeyboardEvent(this.manager.selection.selectNextPageRow.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"ArrowUp\":\n this.selectByKeyboardEvent(this.manager.selection.selectPreviousRow.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"ArrowDown\":\n this.selectByKeyboardEvent(this.manager.selection.selectNextRow.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"ArrowLeft\":\n this.selectByKeyboardEvent(this.manager.selection.selectPreviousCell.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"ArrowRight\":\n this.selectByKeyboardEvent(this.manager.selection.selectNextCell.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"Enter\":\n this.enterPressedHandler();\n break;\n }\n }\n }\n mouseMoveHandler(eventInfo) {\n if ((this.rowHighlightEnabled === \"auto\" &&\n this.rowSelectionMode !== \"none\") ||\n this.rowHighlightEnabled === true) {\n this.rowHighlighted =\n this.manager.getRowEventTarget(eventInfo) ||\n (this.manager.isRowActionsEventTarget(eventInfo)\n ? this.rowHighlighted\n : null);\n }\n selectingBlock: {\n if (this.manager.selection.selecting) {\n if (focusComposedPath()[0] !== this.el) {\n this.stopSelecting();\n break selectingBlock;\n }\n const row = this.manager.getRowEventTarget(eventInfo);\n const cell = this.manager.getCellEventTarget(eventInfo);\n if (row &&\n (this.manager.selection.selectingRow !== row ||\n this.manager.selection.selectingCell !== cell)) {\n const isKeyModifierPressed = mouseEventModifierKey(eventInfo);\n const isMouseButtonRightPressed = mouseEventHasButtonPressed(eventInfo, MouseEventButtons.RIGHT);\n this.selectByPointerEvent(row, cell, isKeyModifierPressed && !isMouseButtonRightPressed, !isMouseButtonRightPressed, isMouseButtonRightPressed);\n this.manager.selection.selectingRow = row;\n this.manager.selection.selectingCell = cell;\n }\n }\n }\n }\n mouseLeaveHandler() {\n this.rowHighlighted &&= null;\n }\n clickHandler(eventInfo) {\n const row = this.manager.getRowEventTarget(eventInfo);\n const cell = this.manager.getCellEventTarget(eventInfo);\n if (row) {\n this.rowClicked.emit({\n rowId: row.rowId,\n cellId: cell?.cellId,\n columnId: cell?.column.columnId\n });\n this.manager.selection.selecting = true;\n this.selectByPointerEvent(row, cell, mouseEventModifierKey(eventInfo), eventInfo.shiftKey, eventInfo.button === MouseEventButton.RIGHT);\n }\n }\n mouseUpHandler() {\n this.stopSelecting();\n }\n dblclickHandler(eventInfo) {\n const row = this.manager.getRowEventTarget(eventInfo);\n const cell = this.manager.getCellEventTarget(eventInfo);\n if (row) {\n this.rowDoubleClicked.emit({\n rowId: row.rowId,\n cellId: cell?.cellId,\n columnId: cell?.column.columnId\n });\n }\n }\n contextmenuHandler(eventInfo) {\n let targetRow;\n if (eventInfo.target === this.el) {\n targetRow = this.rowFocused;\n }\n else {\n targetRow = this.manager.getRowEventTarget(eventInfo);\n }\n if (targetRow) {\n const cellFocused = this.cellSelected?.row === targetRow ? this.cellSelected : null;\n const rowContextMenuEventInfo = this.rowContextMenu.emit({\n rowId: targetRow.rowId,\n cellId: cellFocused?.cellId,\n columnId: cellFocused?.column.columnId,\n selectedRowsId: this.rowsSelected.map(row => row.rowId),\n clientX: eventInfo.clientX,\n clientY: eventInfo.clientY\n });\n this.manager.rowActions.showOnRowContext?.openRowContext(eventInfo.clientX, eventInfo.clientY);\n if (rowContextMenuEventInfo.defaultPrevented ||\n this.manager.rowActions.showOnRowContext) {\n eventInfo.preventDefault();\n }\n }\n }\n columnSelectorClickedHandler(eventInfo) {\n const columnSelector = this.manager.columns.getColumnSelector();\n if (columnSelector?.richRowSelectorMode === \"select\") {\n this.selectAll(eventInfo.detail.checked);\n }\n else if (columnSelector?.richRowSelectorMode === \"mark\") {\n this.rowsMarked = this.manager.selection.markAllRows(eventInfo.detail.checked);\n }\n }\n cellSelectorClickedHandler(eventInfo) {\n const columnSelector = this.manager.columns.getColumnSelector();\n if (columnSelector?.richRowSelectorMode === \"select\") {\n this.selectByPointerEvent(this.manager.getRowEventTarget(eventInfo), this.manager.getCellEventTarget(eventInfo), true, eventInfo.detail.range, false);\n }\n else if (columnSelector?.richRowSelectorMode === \"mark\") {\n this.rowsMarked = this.manager.selection.markRow(this.manager.getRowEventTarget(eventInfo), eventInfo.detail.checked, eventInfo.detail.range, this.rowsMarked);\n }\n }\n cellRowActionClickedHandler(eventInfo) {\n const cell = eventInfo.target;\n this.manager.rowActions.showOnRowActions?.openRowActions(cell);\n }\n columnStyleChangedHandler() {\n if (this.manager) {\n this.gridStyle = this.manager.getGridStyle();\n }\n }\n columnFreezeChangedHandler() {\n this.manager.columns.adjustFreezeOrder();\n }\n columnResizeStartedHandler(eventInfo) {\n this.manager.columnResizeStart(eventInfo.detail.columnId);\n }\n columnResizingHandler(eventInfo) {\n this.manager.columnResizing(eventInfo.detail.deltaWidth);\n }\n columnResizeFinishedHandler() {\n this.manager.columnResizeEnd();\n }\n columnDragStartHandler(eventInfo) {\n this.manager.columnDragStart(eventInfo.detail.columnId);\n }\n columnDraggingHandler(eventInfo) {\n if (this.manager.columnDragging(eventInfo.detail.positionX)) {\n this.gridStyle = this.manager.getGridStyle();\n }\n }\n columnDragEndHandler() {\n this.manager.columnDragEnd();\n this.gridStyle = this.manager.getGridStyle();\n }\n rowDragStartHandler(eventInfo) {\n this.manager.rowDragStart(eventInfo.detail.row);\n }\n rowEnsureVisibleHandler(eventInfo) {\n this.manager.ensureRowVisible(eventInfo.target);\n }\n cellEnsureVisibleHandler(eventInfo) {\n this.manager.ensureCellVisible(eventInfo.target);\n }\n settingsShowClickedHandler() {\n this.settingsUI.show = true;\n }\n settingsCloseClickedHandler() {\n this.settingsUI.show = false;\n }\n /**\n * Retrieves the rowId of the currently focused row.\n */\n async getFocusedRow() {\n return this.rowFocused?.rowId;\n }\n /**\n * Retrieves the rowId of the currently hovered row.\n */\n async getHoveredRow() {\n return this.rowHighlighted?.rowId;\n }\n /**\n * Retrieves the list of rowId of the selected rows.\n */\n async getSelectedRows() {\n return this.rowsSelected.map(row => row.rowId);\n }\n /**\n * Retrieves the list of rowId of the marked rows.\n */\n async getMarkedRows() {\n return this.rowsMarked.map(row => row.rowId);\n }\n /**\n * Retrieves information about the currently selected cell.\n */\n async getSelectedCell() {\n return {\n cellId: this.cellSelected ? this.cellSelected.cellId : null,\n rowId: this.cellSelected ? this.cellSelected.row.rowId : null,\n columnId: this.cellSelected ? this.cellSelected.column.columnId : null\n };\n }\n /**\n * Selects or deselects a row.\n * @param rowId - The rowId of the row to select or deselect.\n * @param selected - A boolean indicating whether to select or deselect the row.\n */\n async selectRow(rowId, selected = true) {\n const row = this.manager.getRow(rowId);\n if (row) {\n const { rowFocused, rowsSelected, cellSelected } = this.manager.selection.selectSet({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellSelected: this.cellSelected\n }, row, null, selected);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellSelected = cellSelected;\n rowFocused?.ensureVisible();\n }\n }\n /**\n * Selects or deselects all rows.\n * @param selected - A boolean indicating whether to select or deselect all rows.\n */\n async selectAllRows(selected = true) {\n this.selectAll(selected);\n }\n /**\n * Select or deselect a cell.\n * The cell can be identified by the cellId parameter or\n * by using the rowId and columnId pair.\n * @param cellId - The cellId of the cell to select or deselect.\n * @param rowId - The rowId of the row containing the cell.\n * @param columnId - The columnId of the column containing the cell.\n * @param selected - A boolean indicating whether to select or deselect the cell.\n */\n async selectCell(cellId, rowId, columnId, selected = true) {\n const cell = this.manager.getCell(cellId, rowId, columnId);\n if (cell) {\n this.setCellSelected(cell, selected);\n }\n }\n /**\n * Mark or unmark a row.\n * @param rowId - The rowId of the row to select or deselect.\n * @param marked - A boolean indicating whether to mark or unmark the row.\n */\n async markRow(rowId, marked = true) {\n const columnSelector = this.manager.columns.getColumnSelector();\n const row = this.manager.getRow(rowId);\n if (row && columnSelector?.richRowSelectorMode === \"mark\") {\n this.rowsMarked = this.manager.selection.markRow(row, marked, false, this.rowsMarked);\n }\n }\n /**\n * Mark or unmark all rows.\n * @param marked - A boolean indicating whether to mark or unmark all rows.\n */\n async markAllRows(marked = true) {\n const columnSelector = this.manager.columns.getColumnSelector();\n if (columnSelector?.richRowSelectorMode === \"mark\") {\n this.rowsMarked = this.manager.selection.markAllRows(marked);\n }\n }\n /**\n * Expands a row, showing its children.\n * @param rowId - The rowId of the row to expand.\n */\n async expandRow(rowId) {\n this.setRowCollapsed(this.manager.getRow(rowId), false);\n }\n /**\n * Collapses a row, hiding its children.\n * @param rowId - The rowId of the row to collapse.\n */\n async collapseRow(rowId) {\n this.setRowCollapsed(this.manager.getRow(rowId), true);\n }\n /**\n * Ensures that the row is visible within the control, scrolling the contents of the control if necessary.\n * @param rowId - The rowId of the row to ensure visibility.\n */\n async rowEnsureVisible(rowId) {\n const row = this.manager.getRow(rowId);\n if (row) {\n this.manager.ensureRowVisible(row);\n }\n }\n /**\n * Ensures that the cell is visible within the control, scrolling the contents of the control if necessary.\n * @param cellId - The cellId of the cell to ensure visibility.\n */\n async cellEnsureVisible(cellId) {\n const cell = this.manager.getCell(cellId);\n if (cell) {\n this.manager.ensureCellVisible(cell);\n }\n }\n /**\n * Retrieves the rowId of the previous row relative to the currently selected cell.\n */\n async getPreviousRow() {\n const currentRow = this.cellSelected?.row;\n if (currentRow) {\n return this.manager.getPreviousRow(currentRow)?.rowId || null;\n }\n }\n /**\n * Retrieves the rowId of the next row relative to the currently selected cell.\n */\n async getNextRow() {\n const currentRow = this.cellSelected?.row;\n if (currentRow) {\n return this.manager.getNextRow(currentRow)?.rowId || null;\n }\n }\n /**\n * Retrieves information about the previous cell relative to the currently selected cell.\n */\n async getPreviousCell() {\n const previousCell = this.manager.getPreviousCell(this.cellSelected);\n return {\n cellId: previousCell ? previousCell.cellId : null,\n rowId: previousCell ? previousCell.row.rowId : null,\n columnId: previousCell ? previousCell.column.columnId : null\n };\n }\n /**\n * Retrieves information about the next cell relative to the currently selected cell.\n */\n async getNextCell() {\n const nextCell = this.manager.getNextCell(this.cellSelected);\n return {\n cellId: nextCell ? nextCell.cellId : null,\n rowId: nextCell ? nextCell.row.rowId : null,\n columnId: nextCell ? nextCell.column.columnId : null\n };\n }\n enterPressedHandler() {\n if (this.rowFocused) {\n const cellFocused = this.cellSelected?.row === this.rowFocused ? this.cellSelected : null;\n this.rowEnterPressed.emit({\n rowId: this.rowFocused.rowId,\n cellId: cellFocused ? cellFocused.cellId : null,\n columnId: cellFocused ? cellFocused.column.columnId : null\n });\n }\n }\n toggleRowsMarked() {\n const columnSelector = this.manager.columns.getColumnSelector();\n if (columnSelector?.richRowSelectorMode === \"mark\") {\n const value = !this.rowFocused.marked;\n if (value) {\n this.rowsMarked = Array.from(new Set(this.rowsMarked.concat(this.rowsSelected)));\n }\n else {\n this.rowsMarked = this.rowsMarked.filter(row => !this.rowsSelected.includes(row));\n }\n }\n }\n selectByPointerEvent(row, cell, append, range, context) {\n const { rowFocused, rowsSelected, cellSelected } = this.manager.selection.select({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellSelected: this.cellSelected\n }, row, cell, append, range, context);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellSelected = cellSelected;\n if (cellSelected) {\n cellSelected.ensureVisible();\n }\n else {\n rowFocused?.ensureVisible();\n }\n }\n selectByKeyboardEvent(fn, append) {\n const { rowFocused, rowsSelected, cellSelected } = fn({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellSelected: this.cellSelected\n }, append);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellSelected = cellSelected;\n if (cellSelected) {\n cellSelected.ensureVisible();\n }\n else {\n rowFocused?.ensureVisible();\n }\n }\n selectAll(value = true) {\n const { rowFocused, rowsSelected, cellSelected } = this.manager.selection.selectAll({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellSelected: this.cellSelected\n }, value);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellSelected = cellSelected;\n if (cellSelected) {\n cellSelected.ensureVisible();\n }\n else {\n rowFocused?.ensureVisible();\n }\n }\n setRowCollapsed(row, collapsed) {\n if (row && collapsed) {\n if (row && row.hasChildRows) {\n row.collapsed = true;\n }\n }\n else if (row && !collapsed) {\n row.collapsed = false;\n }\n }\n setCellSelected(cell, selected = true) {\n const { rowFocused, rowsSelected, cellSelected } = this.manager.selection.selectSet({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellSelected: this.cellSelected\n }, cell.row, cell, selected);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellSelected = cellSelected;\n rowFocused?.ensureVisible();\n }\n stopSelecting() {\n this.manager.selection.selecting = false;\n this.manager.selection.selectingRow = null;\n this.manager.selection.selectingCell = null;\n }\n renderSettings() {\n return (h(\"ch-grid-settings\", { grid: this.el, ref: el => (this.settingsUI = el), exportparts: \"\\n mask:settings-mask,\\n window:settings-window,\\n header:settings-header,\\n caption:settings-caption,\\n close:settings-close,\\n main:settings-main,\\n footer:settings-footer\\n \" }, h(\"slot\", { name: \"settings\" }, h(\"ch-grid-settings-columns\", { part: \"settings-columns\", columns: [...this.manager.getColumns()], exportparts: \"\\n column:settings-columns-item,\\n column-label:settings-columns-label,\\n column-visible:settings-columns-visible,\\n column-visible-checked:settings-columns-visible-checked\\n \" }))));\n }\n render() {\n return (h(Host, { tabindex: this.rowSelectionMode !== \"none\" ? \"0\" : false }, h(\"header\", { part: \"header\" }, h(\"slot\", { name: \"header\" })), h(\"section\", { class: \"main\", style: this.gridStyle, part: \"main\", ref: el => (this.gridLayoutElement = el) }, h(\"slot\", null)), h(\"aside\", null, this.renderSettings(), h(\"slot\", { name: \"column-display\" }), h(\"slot\", { name: \"row-actions\" })), h(\"footer\", { part: \"footer\" }, h(\"slot\", { name: \"footer\" }))));\n }\n static get is() { return \"ch-grid\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid.css\"]\n };\n }\n static get properties() {\n return {\n \"rowSelectionMode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"none\\\" | \\\"single\\\" | \\\"multiple\\\"\",\n \"resolved\": \"\\\"multiple\\\" | \\\"none\\\" | \\\"single\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"none\\\", \\\"single\\\" or \\\"multiple\\\", indicating how rows can be selected.\\nIt can be set to \\\"none\\\" if no rows should be selectable,\\n\\\"single\\\" if only one row can be selected at a time, or\\n\\\"multiple\\\" if multiple rows can be selected at once.\"\n },\n \"attribute\": \"row-selection-mode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"single\\\"\"\n },\n \"rowHighlightEnabled\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean | \\\"auto\\\"\",\n \"resolved\": \"\\\"auto\\\" | boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"false\\\", \\\"true\\\" or \\\"auto\\\", indicating whether or not rows can be highlighted.\\n\\\"auto\\\", row highlighting will be enabled if the row selection mode is set to \\\"single\\\" or \\\"multiple\\\".\"\n },\n \"attribute\": \"row-highlight-enabled\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"auto\\\"\"\n },\n \"rowSelectedClass\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A CSS class name applied to a row when it is selected.\"\n },\n \"attribute\": \"row-selected-class\",\n \"reflect\": false\n },\n \"rowHighlightedClass\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A CSS class name applied to a row when it is hovered.\"\n },\n \"attribute\": \"row-highlighted-class\",\n \"reflect\": false\n },\n \"rowFocusedClass\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A CSS class name applied to a row when it is focused.\"\n },\n \"attribute\": \"row-focused-class\",\n \"reflect\": false\n },\n \"rowMarkedClass\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A CSS class name applied to a row when it is marked.\"\n },\n \"attribute\": \"row-marked-class\",\n \"reflect\": false\n },\n \"allowColumnReorder\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the user can drag column headers to reorder columns.\"\n },\n \"attribute\": \"allow-column-reorder\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"columnResizeMode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"single\\\" | \\\"splitter\\\"\",\n \"resolved\": \"\\\"single\\\" | \\\"splitter\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"single\\\" or \\\"splitter\\\", indicating the behavior of column resizing.\\n\\\"single\\\", resize a single column at a time.\\n\\\"splitter\\\", when adjusts the width of one column, the neighboring columns\\n are also resized proportionally, maintaining the overall width.\"\n },\n \"attribute\": \"column-resize-mode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"single\\\"\"\n },\n \"localization\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"GridLocalization\",\n \"resolved\": \"GridLocalization\",\n \"references\": {\n \"GridLocalization\": {\n \"location\": \"local\",\n \"path\": \"/home/runner/work/chameleon-controls-library/chameleon-controls-library/src/components/grid/ch-grid.tsx\",\n \"id\": \"src/components/grid/ch-grid.tsx::GridLocalization\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"An object that contains localized strings for the grid.\"\n }\n }\n };\n }\n static get states() {\n return {\n \"rowFocused\": {},\n \"rowHighlighted\": {},\n \"rowsMarked\": {},\n \"rowsSelected\": {},\n \"cellSelected\": {},\n \"gridStyle\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"selectionChanged\",\n \"name\": \"selectionChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the row selection is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridSelectionChangedEvent\",\n \"resolved\": \"ChGridSelectionChangedEvent\",\n \"references\": {\n \"ChGridSelectionChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridSelectionChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"rowMarkingChanged\",\n \"name\": \"rowMarkingChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the row marking is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridMarkingChangedEvent\",\n \"resolved\": \"ChGridMarkingChangedEvent\",\n \"references\": {\n \"ChGridMarkingChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridMarkingChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"cellSelectionChanged\",\n \"name\": \"cellSelectionChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the cell selection is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridCellSelectionChangedEvent\",\n \"resolved\": \"ChGridCellSelectionChangedEvent\",\n \"references\": {\n \"ChGridCellSelectionChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridCellSelectionChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"rowClicked\",\n \"name\": \"rowClicked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when a row is clicked.\"\n },\n \"complexType\": {\n \"original\": \"ChGridRowClickedEvent\",\n \"resolved\": \"ChGridRowClickedEvent\",\n \"references\": {\n \"ChGridRowClickedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridRowClickedEvent\"\n }\n }\n }\n }, {\n \"method\": \"rowDoubleClicked\",\n \"name\": \"rowDoubleClicked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when a row is double clicked.\"\n },\n \"complexType\": {\n \"original\": \"ChGridRowClickedEvent\",\n \"resolved\": \"ChGridRowClickedEvent\",\n \"references\": {\n \"ChGridRowClickedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridRowClickedEvent\"\n }\n }\n }\n }, {\n \"method\": \"rowEnterPressed\",\n \"name\": \"rowEnterPressed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when Enter is pressed on a row.\"\n },\n \"complexType\": {\n \"original\": \"ChGridRowPressedEvent\",\n \"resolved\": \"ChGridRowPressedEvent\",\n \"references\": {\n \"ChGridRowPressedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridRowPressedEvent\"\n }\n }\n }\n }, {\n \"method\": \"rowContextMenu\",\n \"name\": \"rowContextMenu\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when attempts to open a context menu on a row.\"\n },\n \"complexType\": {\n \"original\": \"ChGridRowContextMenuEvent\",\n \"resolved\": \"ChGridRowContextMenuEvent\",\n \"references\": {\n \"ChGridRowContextMenuEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridRowContextMenuEvent\"\n }\n }\n }\n }];\n }\n static get methods() {\n return {\n \"getFocusedRow\": {\n \"complexType\": {\n \"signature\": \"() => Promise<string>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string>\"\n },\n \"docs\": {\n \"text\": \"Retrieves the rowId of the currently focused row.\",\n \"tags\": []\n }\n },\n \"getHoveredRow\": {\n \"complexType\": {\n \"signature\": \"() => Promise<string>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string>\"\n },\n \"docs\": {\n \"text\": \"Retrieves the rowId of the currently hovered row.\",\n \"tags\": []\n }\n },\n \"getSelectedRows\": {\n \"complexType\": {\n \"signature\": \"() => Promise<string[]>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string[]>\"\n },\n \"docs\": {\n \"text\": \"Retrieves the list of rowId of the selected rows.\",\n \"tags\": []\n }\n },\n \"getMarkedRows\": {\n \"complexType\": {\n \"signature\": \"() => Promise<string[]>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string[]>\"\n },\n \"docs\": {\n \"text\": \"Retrieves the list of rowId of the marked rows.\",\n \"tags\": []\n }\n },\n \"getSelectedCell\": {\n \"complexType\": {\n \"signature\": \"() => Promise<{ cellId: string; rowId: string; columnId: string; }>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<{ cellId: string; rowId: string; columnId: string; }>\"\n },\n \"docs\": {\n \"text\": \"Retrieves information about the currently selected cell.\",\n \"tags\": []\n }\n },\n \"selectRow\": {\n \"complexType\": {\n \"signature\": \"(rowId: string, selected?: boolean) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"rowId\",\n \"type\": \"string\",\n \"docs\": \"- The rowId of the row to select or deselect.\"\n }, {\n \"name\": \"selected\",\n \"type\": \"boolean\",\n \"docs\": \"- A boolean indicating whether to select or deselect the row.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Selects or deselects a row.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"rowId - The rowId of the row to select or deselect.\"\n }, {\n \"name\": \"param\",\n \"text\": \"selected - A boolean indicating whether to select or deselect the row.\"\n }]\n }\n },\n \"selectAllRows\": {\n \"complexType\": {\n \"signature\": \"(selected?: boolean) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"selected\",\n \"type\": \"boolean\",\n \"docs\": \"- A boolean indicating whether to select or deselect all rows.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Selects or deselects all rows.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"selected - A boolean indicating whether to select or deselect all rows.\"\n }]\n }\n },\n \"selectCell\": {\n \"complexType\": {\n \"signature\": \"(cellId?: string, rowId?: string, columnId?: string, selected?: boolean) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"cellId\",\n \"type\": \"string\",\n \"docs\": \"- The cellId of the cell to select or deselect.\"\n }, {\n \"name\": \"rowId\",\n \"type\": \"string\",\n \"docs\": \"- The rowId of the row containing the cell.\"\n }, {\n \"name\": \"columnId\",\n \"type\": \"string\",\n \"docs\": \"- The columnId of the column containing the cell.\"\n }, {\n \"name\": \"selected\",\n \"type\": \"boolean\",\n \"docs\": \"- A boolean indicating whether to select or deselect the cell.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Select or deselect a cell.\\nThe cell can be identified by the cellId parameter or\\nby using the rowId and columnId pair.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"cellId - The cellId of the cell to select or deselect.\"\n }, {\n \"name\": \"param\",\n \"text\": \"rowId - The rowId of the row containing the cell.\"\n }, {\n \"name\": \"param\",\n \"text\": \"columnId - The columnId of the column containing the cell.\"\n }, {\n \"name\": \"param\",\n \"text\": \"selected - A boolean indicating whether to select or deselect the cell.\"\n }]\n }\n },\n \"markRow\": {\n \"complexType\": {\n \"signature\": \"(rowId: string, marked?: boolean) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"rowId\",\n \"type\": \"string\",\n \"docs\": \"- The rowId of the row to select or deselect.\"\n }, {\n \"name\": \"marked\",\n \"type\": \"boolean\",\n \"docs\": \"- A boolean indicating whether to mark or unmark the row.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Mark or unmark a row.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"rowId - The rowId of the row to select or deselect.\"\n }, {\n \"name\": \"param\",\n \"text\": \"marked - A boolean indicating whether to mark or unmark the row.\"\n }]\n }\n },\n \"markAllRows\": {\n \"complexType\": {\n \"signature\": \"(marked?: boolean) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"marked\",\n \"type\": \"boolean\",\n \"docs\": \"- A boolean indicating whether to mark or unmark all rows.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Mark or unmark all rows.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"marked - A boolean indicating whether to mark or unmark all rows.\"\n }]\n }\n },\n \"expandRow\": {\n \"complexType\": {\n \"signature\": \"(rowId: string) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"rowId\",\n \"type\": \"string\",\n \"docs\": \"- The rowId of the row to expand.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Expands a row, showing its children.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"rowId - The rowId of the row to expand.\"\n }]\n }\n },\n \"collapseRow\": {\n \"complexType\": {\n \"signature\": \"(rowId: string) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"rowId\",\n \"type\": \"string\",\n \"docs\": \"- The rowId of the row to collapse.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Collapses a row, hiding its children.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"rowId - The rowId of the row to collapse.\"\n }]\n }\n },\n \"rowEnsureVisible\": {\n \"complexType\": {\n \"signature\": \"(rowId: string) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"rowId\",\n \"type\": \"string\",\n \"docs\": \"- The rowId of the row to ensure visibility.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Ensures that the row is visible within the control, scrolling the contents of the control if necessary.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"rowId - The rowId of the row to ensure visibility.\"\n }]\n }\n },\n \"cellEnsureVisible\": {\n \"complexType\": {\n \"signature\": \"(cellId: string) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"cellId\",\n \"type\": \"string\",\n \"docs\": \"- The cellId of the cell to ensure visibility.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Ensures that the cell is visible within the control, scrolling the contents of the control if necessary.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"cellId - The cellId of the cell to ensure visibility.\"\n }]\n }\n },\n \"getPreviousRow\": {\n \"complexType\": {\n \"signature\": \"() => Promise<string>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string>\"\n },\n \"docs\": {\n \"text\": \"Retrieves the rowId of the previous row relative to the currently selected cell.\",\n \"tags\": []\n }\n },\n \"getNextRow\": {\n \"complexType\": {\n \"signature\": \"() => Promise<string>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string>\"\n },\n \"docs\": {\n \"text\": \"Retrieves the rowId of the next row relative to the currently selected cell.\",\n \"tags\": []\n }\n },\n \"getPreviousCell\": {\n \"complexType\": {\n \"signature\": \"() => Promise<{ cellId: string; rowId: string; columnId: string; }>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<{ cellId: string; rowId: string; columnId: string; }>\"\n },\n \"docs\": {\n \"text\": \"Retrieves information about the previous cell relative to the currently selected cell.\",\n \"tags\": []\n }\n },\n \"getNextCell\": {\n \"complexType\": {\n \"signature\": \"() => Promise<{ cellId: string; rowId: string; columnId: string; }>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<{ cellId: string; rowId: string; columnId: string; }>\"\n },\n \"docs\": {\n \"text\": \"Retrieves information about the next cell relative to the currently selected cell.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"rowFocused\",\n \"methodName\": \"rowFocusedHandler\"\n }, {\n \"propName\": \"rowHighlighted\",\n \"methodName\": \"rowHighlightedHandler\"\n }, {\n \"propName\": \"rowsMarked\",\n \"methodName\": \"rowsMarkedHandler\"\n }, {\n \"propName\": \"rowsSelected\",\n \"methodName\": \"rowsSelectedHandler\"\n }, {\n \"propName\": \"cellSelected\",\n \"methodName\": \"cellSelectedHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"focus\",\n \"method\": \"focusHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"blur\",\n \"method\": \"blurHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"cellFocused\",\n \"method\": \"cellFocusedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"keydown\",\n \"method\": \"windowKeyDownHandler\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"keydown\",\n \"method\": \"keyDownHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"mousemove\",\n \"method\": \"mouseMoveHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"mouseleave\",\n \"method\": \"mouseLeaveHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"mousedown\",\n \"method\": \"clickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"mouseup\",\n \"method\": \"mouseUpHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"dblclick\",\n \"method\": \"dblclickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"contextmenu\",\n \"method\": \"contextmenuHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnSelectorClicked\",\n \"method\": \"columnSelectorClickedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"cellSelectorClicked\",\n \"method\": \"cellSelectorClickedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"cellRowActionClicked\",\n \"method\": \"cellRowActionClickedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"columnHiddenChanged\",\n \"method\": \"columnStyleChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnOrderChanged\",\n \"method\": \"columnStyleChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnFreezeChanged\",\n \"method\": \"columnStyleChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnSizeChanging\",\n \"method\": \"columnStyleChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnFreezeChanged\",\n \"method\": \"columnFreezeChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnResizeStarted\",\n \"method\": \"columnResizeStartedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnResizing\",\n \"method\": \"columnResizingHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnResizeFinished\",\n \"method\": \"columnResizeFinishedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnDragStarted\",\n \"method\": \"columnDragStartHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnDragging\",\n \"method\": \"columnDraggingHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnDragEnded\",\n \"method\": \"columnDragEndHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"rowDragStarted\",\n \"method\": \"rowDragStartHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"rowEnsureVisible\",\n \"method\": \"rowEnsureVisibleHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"cellEnsureVisible\",\n \"method\": \"cellEnsureVisibleHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"settingsShowClicked\",\n \"method\": \"settingsShowClickedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"settingsCloseClicked\",\n \"method\": \"settingsCloseClickedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ch-grid.js.map\n",":host {\n display: flex;\n position: sticky;\n top: 0;\n grid-row: 1;\n}\n\n:host {\n background-color: inherit;\n margin-block-start: inherit;\n margin-block-end: inherit;\n border-block-start: inherit;\n border-block-end: inherit;\n padding-block-start: inherit;\n padding-block-end: inherit;\n transition: transform var(--column-drag-transition-duration, 0.2s);\n}\n\n:host {\n --ch-grid-column-z-index-head: var(--ch-grid-column-header-layer);\n}\n\n:host([show-settings]),\n:host([resizing]) {\n --ch-grid-column-z-index-active: var(--ch-grid-column-active-layer);\n}\n\n:host([sort-direction=asc]) .bar .sort .sort-asc {\n visibility: visible;\n}\n\n:host([sort-direction=desc]) .bar .sort .sort-desc {\n visibility: visible;\n}\n\n.bar {\n list-style-type: none;\n margin: 0;\n padding: 0;\n display: flex;\n align-items: center;\n}\n.bar .selector {\n overflow: hidden;\n order: 0;\n}\n.bar .selector:not([hidden]) {\n display: flex;\n}\n.bar .name {\n display: flex;\n overflow: hidden;\n order: 1;\n}\n.bar .name .name-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.bar .sort {\n position: relative;\n align-items: center;\n order: 2;\n}\n.bar .sort:not([hidden]) {\n display: flex;\n}\n.bar .sort .sort-asc {\n visibility: hidden;\n animation-fill-mode: forwards;\n}\n.bar .sort .sort-desc {\n position: absolute;\n visibility: hidden;\n animation-fill-mode: forwards;\n}\n.bar .settings {\n order: 3;\n}\n.bar .resize {\n align-self: stretch;\n margin-inline-start: auto;\n order: 4;\n}\n\n@keyframes column-sort {\n 0% {\n opacity: 0;\n }\n 10% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}","import { Host, h } from \"@stencil/core\";\n/**\n * The `ch-grid-column` component represents a grid column.\n */\nexport class ChGridColumn {\n constructor() {\n this.columnId = undefined;\n this.columnType = \"plain\";\n this.columnIconUrl = undefined;\n this.columnImage = undefined;\n this.columnImageSet = undefined;\n this.columnName = undefined;\n this.columnNameHidden = undefined;\n this.columnTooltip = undefined;\n this.columnNamePosition = \"text\";\n this.richRowDrag = undefined;\n this.richRowSelector = undefined;\n this.richRowSelectorMode = \"select\";\n this.richRowSelectorState = \"\";\n this.richRowActions = undefined;\n this.displayObserverClass = undefined;\n this.freeze = undefined;\n this.hidden = false;\n this.hideable = true;\n this.order = undefined;\n this.physicalOrder = undefined;\n this.size = undefined;\n this.resizable = true;\n this.resizing = undefined;\n this.sortable = true;\n this.settingable = true;\n this.sortDirection = undefined;\n this.showSettings = false;\n }\n dragging = false;\n dragMouseMoveFn = this.dragMouseMoveHandler.bind(this);\n dragMouseMoveStartPositionX;\n el;\n freezeHandler() {\n this.columnFreezeChanged.emit({\n columnId: this.columnId,\n freeze: this.freeze\n });\n }\n hiddenHandler() {\n this.columnHiddenChanged.emit({\n columnId: this.columnId,\n hidden: this.hidden\n });\n }\n orderHandler() {\n this.columnOrderChanged.emit({\n columnId: this.columnId,\n order: this.order\n });\n }\n sizeHandler() {\n this.columnSizeChanging.emit({\n columnId: this.columnId,\n size: this.size\n });\n }\n sortDirectionHandler() {\n if (this.sortDirection) {\n this.columnSortChanged.emit({\n columnId: this.columnId,\n sortDirection: this.sortDirection\n });\n }\n }\n /**\n * Event emitted when the `hidden` property is changed.\n */\n columnHiddenChanged;\n /**\n * Event emitted when the `size` property is currently being changed (i.e. when the user is dragging to resize the column).\n */\n columnSizeChanging;\n /**\n * Event emitted when the `size` property has been changed (i.e. when the user finishes dragging to resize the column).\n */\n columnSizeChanged;\n /**\n * Event emitted when the `order` property is changed.\n */\n columnOrderChanged;\n /**\n * Event emitted when the `sortDirection` property is changed.\n */\n columnSortChanged;\n /**\n * Event emitted when the `freeze` property is changed.\n */\n columnFreezeChanged;\n /**\n * Event emitted when the user is dragging the column header to move it.\n */\n columnDragStarted;\n /**\n * Event emitted when the user is dragging the column header to move it.\n */\n columnDragging;\n /**\n * Event emitted when the user stops dragging the column header to move it.\n */\n columnDragEnded;\n /**\n * Event emitted when the user clicks the row selector checkbox (only applicable for `richRowSelector=\"true\"`.\n */\n columnSelectorClicked;\n componentDidLoad() {\n this.el.addEventListener(\"mousedown\", this.mousedownHandler.bind(this));\n }\n clickHandler() {\n if (!this.dragging) {\n if (this.sortable) {\n this.sortDirection = this.sortDirection === \"asc\" ? \"desc\" : \"asc\";\n }\n }\n else {\n this.dragging = false;\n }\n }\n columnResizeStartedHandler() {\n this.resizing = true;\n }\n columnResizeFinishedHandler() {\n this.resizing = false;\n this.columnSizeChanged.emit({\n columnId: this.columnId,\n size: this.size\n });\n }\n allowColumnReorder() {\n return this.el.closest(\"ch-grid\").allowColumnReorder;\n }\n mousedownHandler(eventInfo) {\n eventInfo.preventDefault();\n eventInfo.stopPropagation();\n if (this.allowColumnReorder()) {\n this.dragMouseDownHandler(eventInfo);\n document.addEventListener(\"mousemove\", this.dragMouseMoveFn, {\n passive: true\n });\n document.addEventListener(\"mouseup\", this.dragMouseUpHandler.bind(this), {\n once: true\n });\n }\n }\n dragMouseDownHandler(eventInfo) {\n this.dragMouseMoveStartPositionX = eventInfo.pageX;\n this.columnDragStarted.emit({ columnId: this.columnId });\n }\n dragMouseMoveHandler(eventInfo) {\n if (this.dragging ||\n Math.abs(this.dragMouseMoveStartPositionX - eventInfo.pageX) > 5) {\n this.dragging = true;\n this.columnDragging.emit({\n columnId: this.columnId,\n positionX: eventInfo.pageX,\n direction: eventInfo.movementX > 0 ? \"right\" : \"left\"\n });\n }\n }\n dragMouseUpHandler() {\n document.removeEventListener(\"mousemove\", this.dragMouseMoveFn);\n this.columnDragEnded.emit({ columnId: this.columnId });\n }\n settingsMouseDownHandler(eventInfo) {\n eventInfo.stopPropagation();\n }\n settingsClickHandler = (eventInfo) => {\n eventInfo.stopPropagation();\n this.showSettings = true;\n };\n selectorClickHandler = (eventInfo) => {\n const target = eventInfo.target;\n this.richRowSelectorState = target.checked ? \"checked\" : \"\";\n this.columnSelectorClicked.emit({\n checked: target.checked\n });\n eventInfo.stopPropagation();\n };\n render() {\n return (h(Host, null, h(\"ul\", { class: \"bar\", part: \"bar\" }, this.renderSelector(), this.renderName(), this.renderSort(), this.renderSettings(), this.renderResize()), h(\"ch-grid-column-settings\", { column: this.el, onMouseDown: this.settingsMouseDownHandler, show: this.showSettings, exportparts: \"\\n mask:settings-mask,\\n window:settings-window,\\n header:settings-header,\\n caption:settings-caption,\\n close:settings-close,\\n main:settings-main,\\n footer:settings-footer\\n \" }, h(\"slot\", { name: \"settings\" }))));\n }\n renderSelector() {\n return (h(\"li\", { class: \"selector\", part: \"bar-selector\", hidden: !(this.columnType === \"rich\" && this.richRowSelector) }, h(\"label\", { part: \"selector-label\" }, h(\"input\", { type: \"checkbox\", part: [\"selector\", this.richRowSelectorState]\n .filter(part => part !== \"\")\n .join(\" \"), onClick: this.selectorClickHandler, checked: this.richRowSelectorState === \"checked\", indeterminate: this.richRowSelectorState === \"indeterminate\" }))));\n }\n renderName() {\n return (h(\"li\", { class: \"name\", part: \"bar-name\", title: this.columnTooltip ||\n (this.columnNamePosition === \"title\" ? this.columnName : null) }, this.columnIconUrl || this.columnImage || this.columnImageSet ? (h(\"img\", { class: \"name-icon\", part: \"bar-name-icon\", src: this.columnImage || this.columnIconUrl, srcSet: this.columnImageSet })) : (h(\"div\", { class: \"name-icon\", part: \"bar-name-icon\" })), h(\"span\", { class: \"name-text\", part: \"bar-name-text\", hidden: this.columnNameHidden || this.columnNamePosition !== \"text\" }, this.columnName)));\n }\n renderSort() {\n return (h(\"li\", { class: \"sort\", part: \"bar-sort\", hidden: !this.sortable }, h(\"div\", { class: \"sort-asc\", part: \"bar-sort-ascending\" }), h(\"div\", { class: \"sort-desc\", part: \"bar-sort-descending\" })));\n }\n renderSettings() {\n return (h(\"li\", { class: \"settings\", part: \"bar-settings\", hidden: !this.settingable }, h(\"button\", { class: \"button\", part: \"bar-settings-button\", onClick: this.settingsClickHandler })));\n }\n renderResize() {\n return (h(\"li\", { class: \"resize\", part: \"bar-resize\", hidden: !this.resizable }, h(\"ch-grid-column-resize\", { column: this.el, class: \"resize-split\", part: \"bar-resize-split\" })));\n }\n static get is() { return \"ch-grid-column\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid-column.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid-column.css\"]\n };\n }\n static get properties() {\n return {\n \"columnId\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A unique identifier for the column.\"\n },\n \"attribute\": \"column-id\",\n \"reflect\": false\n },\n \"columnType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"plain\\\" | \\\"rich\\\" | \\\"tree\\\"\",\n \"resolved\": \"\\\"plain\\\" | \\\"rich\\\" | \\\"tree\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"plain\\\", \\\"rich\\\", or \\\"tree\\\", indicating the type of cell displayed in the column.\"\n },\n \"attribute\": \"column-type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"plain\\\"\"\n },\n \"columnIconUrl\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"Use \\\"columnImage\\\" or \\\"columnImageSet\\\" instead.\\nA URL to an icon to display in the column header.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"column-icon-url\",\n \"reflect\": false\n },\n \"columnImage\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A URL to an icon to display in the column header.\"\n },\n \"attribute\": \"column-image\",\n \"reflect\": false\n },\n \"columnImageSet\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A URL to an icon to display in the column header.\"\n },\n \"attribute\": \"column-image-set\",\n \"reflect\": false\n },\n \"columnName\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text to display in the column header and settings.\"\n },\n \"attribute\": \"column-name\",\n \"reflect\": false\n },\n \"columnNameHidden\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Indicates whether the text in the column header is visible or not\"\n },\n \"attribute\": \"column-name-hidden\",\n \"reflect\": false\n },\n \"columnTooltip\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text to display when the cursor is placed over the column header.\"\n },\n \"attribute\": \"column-tooltip\",\n \"reflect\": false\n },\n \"columnNamePosition\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"text\\\" | \\\"title\\\"\",\n \"resolved\": \"\\\"text\\\" | \\\"title\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"Use \\\"columnTooltip\\\" and \\\"columnNameHidden\\\" instead.\\nOne of \\\"text\\\" or \\\"title\\\", indicating whether the `columnName` should be displayed as the column text or as tooltip of the column image.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"column-name-position\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"text\\\"\"\n },\n \"richRowDrag\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean value indicating whether the column cells are draggable to reorder the grid rows (only applicable for columnType=\\\"rich\\\").\"\n },\n \"attribute\": \"rich-row-drag\",\n \"reflect\": false\n },\n \"richRowSelector\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column cells in the grid should have a checkbox selector (only applicable for columnType=\\\"rich\\\").\"\n },\n \"attribute\": \"rich-row-selector\",\n \"reflect\": false\n },\n \"richRowSelectorMode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"select\\\" | \\\"mark\\\"\",\n \"resolved\": \"\\\"mark\\\" | \\\"select\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"select\\\" or \\\"mark\\\", indicating the mode of rich row selector.\\n\\\"select\\\" indicates that the row selector is bound to the row selection.\\n\\\"mark\\\" allows to mark a row independently of the selection.\"\n },\n \"attribute\": \"rich-row-selector-mode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"select\\\"\"\n },\n \"richRowSelectorState\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"| \\\"\\\"\\n | \\\"checked\\\"\\n | \\\"indeterminate\\\"\",\n \"resolved\": \"\\\"\\\" | \\\"checked\\\" | \\\"indeterminate\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Indicate the state of the rich row selector.\\n\\\"\\\" indicates that all rows are unchecked.\\n\\\"checked\\\" indicates that all rows are checked.\\n\\\"indeterminate\\\" indicates that some rows are marked.\"\n },\n \"attribute\": \"rich-row-selector-state\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"richRowActions\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column cells in the grid should have a set of action buttons (only applicable for columnType=\\\"rich\\\").\"\n },\n \"attribute\": \"rich-row-actions\",\n \"reflect\": false\n },\n \"displayObserverClass\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A CSS class name to apply to the display observer element used to detect changes in the column visibility.\"\n },\n \"attribute\": \"display-observer-class\",\n \"reflect\": false\n },\n \"freeze\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"ChGridColumnFreeze\",\n \"resolved\": \"\\\"end\\\" | \\\"start\\\"\",\n \"references\": {\n \"ChGridColumnFreeze\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnFreeze\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"left\\\" or \\\"right\\\", indicating whether the column should be \\\"frozen\\\" (i.e. remain visible when the user scrolls horizontally).\"\n },\n \"attribute\": \"freeze\",\n \"reflect\": false\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column should be hidden.\\nThe user can display it from the grid settings.\"\n },\n \"attribute\": \"hidden\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"hideable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column should be hideable (i.e. whether the user should be able to show/hide the column).\"\n },\n \"attribute\": \"hideable\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"order\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A number indicating the order in which the column should appear.\"\n },\n \"attribute\": \"order\",\n \"reflect\": true\n },\n \"physicalOrder\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A number indicating the physical order of the column (i.e. its position in the DOM).\"\n },\n \"attribute\": \"physical-order\",\n \"reflect\": false\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A string indicating the width of the column.\\nAny value supported by the \\\"grid-template-columns\\\" CSS property is valid.\"\n },\n \"attribute\": \"size\",\n \"reflect\": true\n },\n \"resizable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column should be resizable (i.e. whether the user should be able to drag its width).\"\n },\n \"attribute\": \"resizable\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"resizing\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column is currently being resized.\"\n },\n \"attribute\": \"resizing\",\n \"reflect\": true\n },\n \"sortable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column should be sortable (i.e. whether the user should be able to click the column header to sort the data).\"\n },\n \"attribute\": \"sortable\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"settingable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the user should be able to open a settings panel for the column.\"\n },\n \"attribute\": \"settingable\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"sortDirection\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"ChGridColumnSortDirection\",\n \"resolved\": \"\\\"asc\\\" | \\\"desc\\\"\",\n \"references\": {\n \"ChGridColumnSortDirection\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnSortDirection\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"asc\\\" or \\\"desc\\\", indicating the current sort direction.\"\n },\n \"attribute\": \"sort-direction\",\n \"reflect\": true\n },\n \"showSettings\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the settings panel for the column should be visible.\"\n },\n \"attribute\": \"show-settings\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get events() {\n return [{\n \"method\": \"columnHiddenChanged\",\n \"name\": \"columnHiddenChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the `hidden` property is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnHiddenChangedEvent\",\n \"resolved\": \"ChGridColumnHiddenChangedEvent\",\n \"references\": {\n \"ChGridColumnHiddenChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnHiddenChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnSizeChanging\",\n \"name\": \"columnSizeChanging\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the `size` property is currently being changed (i.e. when the user is dragging to resize the column).\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnSizeChangedEvent\",\n \"resolved\": \"ChGridColumnSizeChangedEvent\",\n \"references\": {\n \"ChGridColumnSizeChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnSizeChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnSizeChanged\",\n \"name\": \"columnSizeChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the `size` property has been changed (i.e. when the user finishes dragging to resize the column).\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnSizeChangedEvent\",\n \"resolved\": \"ChGridColumnSizeChangedEvent\",\n \"references\": {\n \"ChGridColumnSizeChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnSizeChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnOrderChanged\",\n \"name\": \"columnOrderChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the `order` property is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnOrderChangedEvent\",\n \"resolved\": \"ChGridColumnOrderChangedEvent\",\n \"references\": {\n \"ChGridColumnOrderChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnOrderChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnSortChanged\",\n \"name\": \"columnSortChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the `sortDirection` property is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnSortChangedEvent\",\n \"resolved\": \"ChGridColumnSortChangedEvent\",\n \"references\": {\n \"ChGridColumnSortChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnSortChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnFreezeChanged\",\n \"name\": \"columnFreezeChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the `freeze` property is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnFreezeChangedEvent\",\n \"resolved\": \"ChGridColumnFreezeChangedEvent\",\n \"references\": {\n \"ChGridColumnFreezeChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnFreezeChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnDragStarted\",\n \"name\": \"columnDragStarted\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user is dragging the column header to move it.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnDragEvent\",\n \"resolved\": \"ChGridColumnDragEvent\",\n \"references\": {\n \"ChGridColumnDragEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnDragEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnDragging\",\n \"name\": \"columnDragging\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user is dragging the column header to move it.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnDragEvent\",\n \"resolved\": \"ChGridColumnDragEvent\",\n \"references\": {\n \"ChGridColumnDragEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnDragEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnDragEnded\",\n \"name\": \"columnDragEnded\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user stops dragging the column header to move it.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnDragEvent\",\n \"resolved\": \"ChGridColumnDragEvent\",\n \"references\": {\n \"ChGridColumnDragEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnDragEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnSelectorClicked\",\n \"name\": \"columnSelectorClicked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user clicks the row selector checkbox (only applicable for `richRowSelector=\\\"true\\\"`.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnSelectorClickedEvent\",\n \"resolved\": \"ChGridColumnSelectorClickedEvent\",\n \"references\": {\n \"ChGridColumnSelectorClickedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnSelectorClickedEvent\"\n }\n }\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"freeze\",\n \"methodName\": \"freezeHandler\"\n }, {\n \"propName\": \"hidden\",\n \"methodName\": \"hiddenHandler\"\n }, {\n \"propName\": \"order\",\n \"methodName\": \"orderHandler\"\n }, {\n \"propName\": \"size\",\n \"methodName\": \"sizeHandler\"\n }, {\n \"propName\": \"sortDirection\",\n \"methodName\": \"sortDirectionHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"click\",\n \"method\": \"clickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"columnResizeStarted\",\n \"method\": \"columnResizeStartedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnResizeFinished\",\n \"method\": \"columnResizeFinishedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ch-grid-column.js.map\n",":host {\n display: block;\n min-width: 1px;\n height: 100%;\n cursor: ew-resize;\n}\n\n.resize-mask {\n position: fixed;\n inset: 0;\n}","import { h } from \"@stencil/core\";\nimport { mouseEventModifierKey } from \"../../../common/helpers\";\n/**\n * The `ch-grid-column-resize` component responsible for resizing a column in a grid.\n */\nexport class ChGridColumnResize {\n constructor() {\n this.resizing = false;\n this.column = undefined;\n }\n startPageX;\n mousemoveFn = this.mousemoveHandler.bind(this);\n el;\n /**\n * Event emitted when the user starts resizing the column.\n */\n columnResizeStarted;\n /**\n * Event emitted when the user is resizing the column.\n */\n columnResizing;\n /**\n * Event emitted when the user finishes resizing the column.\n */\n columnResizeFinished;\n componentDidLoad() {\n this.el.addEventListener(\"mousedown\", this.mousedownHandler.bind(this));\n }\n clickHandler(eventInfo) {\n eventInfo.stopPropagation();\n }\n dblclickHandler(eventInfo) {\n eventInfo.stopPropagation();\n if (mouseEventModifierKey(eventInfo)) {\n this.column.size = \"auto\";\n }\n else {\n this.column.size = \"max-content\";\n }\n }\n columnResizeStartedHandler() {\n this.resizing = true;\n }\n columnResizeFinishedHandler() {\n this.resizing = false;\n }\n mousedownHandler(eventInfo) {\n eventInfo.stopPropagation();\n eventInfo.preventDefault();\n this.startPageX = eventInfo.pageX;\n document.addEventListener(\"mousemove\", this.mousemoveFn, { passive: true });\n document.addEventListener(\"mouseup\", this.mouseupHandler.bind(this), {\n once: true\n });\n this.columnResizeStarted.emit({ columnId: this.column.columnId });\n }\n mousemoveHandler(eventInfo) {\n this.columnResizing.emit({\n columnId: this.column.columnId,\n deltaWidth: this.startPageX - eventInfo.pageX\n });\n }\n mouseupHandler() {\n document.removeEventListener(\"mousemove\", this.mousemoveFn);\n this.columnResizeFinished.emit({ columnId: this.column.columnId });\n }\n render() {\n return h(\"div\", { class: \"resize-mask\", hidden: !this.resizing });\n }\n static get is() { return \"ch-grid-column-resize\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid-column-resize.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid-column-resize.css\"]\n };\n }\n static get properties() {\n return {\n \"column\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLChGridColumnElement\",\n \"resolved\": \"HTMLChGridColumnElement\",\n \"references\": {\n \"HTMLChGridColumnElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLChGridColumnElement\"\n }\n }\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The column element that is being resized.\"\n }\n }\n };\n }\n static get states() {\n return {\n \"resizing\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"columnResizeStarted\",\n \"name\": \"columnResizeStarted\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user starts resizing the column.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnResizeEvent\",\n \"resolved\": \"ChGridColumnResizeEvent\",\n \"references\": {\n \"ChGridColumnResizeEvent\": {\n \"location\": \"import\",\n \"path\": \"../ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnResizeEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnResizing\",\n \"name\": \"columnResizing\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user is resizing the column.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnResizeEvent\",\n \"resolved\": \"ChGridColumnResizeEvent\",\n \"references\": {\n \"ChGridColumnResizeEvent\": {\n \"location\": \"import\",\n \"path\": \"../ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnResizeEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnResizeFinished\",\n \"name\": \"columnResizeFinished\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user finishes resizing the column.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnResizeEvent\",\n \"resolved\": \"ChGridColumnResizeEvent\",\n \"references\": {\n \"ChGridColumnResizeEvent\": {\n \"location\": \"import\",\n \"path\": \"../ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnResizeEvent\"\n }\n }\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"click\",\n \"method\": \"clickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"dblclick\",\n \"method\": \"dblclickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnResizeStarted\",\n \"method\": \"columnResizeStartedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnResizeFinished\",\n \"method\": \"columnResizeFinishedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ch-grid-column-resize.js.map\n",":host {\n display: contents;\n}","import { h, Host } from \"@stencil/core\";\n/**\n * The `ch-grid-column-settings` component represents a settings window for a column.\n */\nexport class ChGridColumnSettings {\n constructor() {\n this.column = undefined;\n this.show = false;\n }\n windowClosedHandler(eventInfo) {\n eventInfo.stopPropagation();\n this.column.showSettings = false;\n }\n columnSettingsChangedHandler() {\n this.column.showSettings = false;\n }\n render() {\n return (h(Host, null, h(\"ch-window\", { modal: true, container: this.column, xAlign: \"inside-start\", yAlign: \"outside-end\", caption: this.column.columnName, closeText: \"Close\", closeOnOutsideClick: true, closeOnEscape: true, allowDrag: \"header\", hidden: !this.show, exportparts: \"mask,window,header,caption,close,main,footer\" }, h(\"slot\", null))));\n }\n static get is() { return \"ch-grid-column-settings\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid-column-settings.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid-column-settings.css\"]\n };\n }\n static get properties() {\n return {\n \"column\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLChGridColumnElement\",\n \"resolved\": \"HTMLChGridColumnElement\",\n \"references\": {\n \"HTMLChGridColumnElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLChGridColumnElement\"\n }\n }\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The `HTMLChGridColumnElement` that the settings window is associated with.\"\n }\n },\n \"show\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Indicates whether the settings window is currently shown or not.\"\n },\n \"attribute\": \"show\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get listeners() {\n return [{\n \"name\": \"windowClosed\",\n \"method\": \"windowClosedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnSettingsChanged\",\n \"method\": \"columnSettingsChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ch-grid-column-settings.js.map\n","@layer ch-grid {\n ch-grid-columnset {\n display: contents;\n }\n}\n@layer ch-grid {\n ch-grid-row {\n display: contents;\n }\n ch-grid-row[collapsed] > ch-grid-rowset {\n display: none;\n }\n ch-grid-row:is([leaf=false], :has(> ch-grid-rowset)) > ch-grid-cell::part(caret) {\n visibility: visible;\n }\n ch-grid-row[dragging] {\n display: flex;\n position: fixed;\n pointer-events: none;\n box-shadow: rgba(0, 0, 0, 0.7) 0px 5px 15px;\n z-index: 1000;\n transition: top var(--row-drag-transition-duration, 0.1s);\n }\n}\n@layer ch-grid {\n ch-grid-rowset {\n display: contents;\n }\n ch-grid-rowset[collapsed] > :not(ch-grid-rowset-legend) {\n display: none;\n }\n}\n@layer ch-grid {\n ch-grid-cell {\n position: sticky;\n grid-column: var(--grid-column);\n transition: transform var(--column-drag-transition-duration, 0.2s);\n }\n ch-grid-cell[selected] {\n --ch-grid-cell-z-index-active: var(--ch-grid-cell-active-layer);\n }\n ch-grid-cell,\n ch-grid-row[selected] > ch-grid-cell,\n ch-grid-row[highlighted] > ch-grid-cell {\n background-color: inherit;\n margin-block-start: inherit;\n margin-block-end: inherit;\n border-block-start: inherit;\n border-block-end: inherit;\n padding-block-start: inherit;\n padding-block-end: inherit;\n }\n ch-grid-cell:before {\n margin-inline-start: calc(var(--indent) * var(--level));\n }\n ch-grid-cell::part(indent) {\n width: calc(var(--indent) * var(--level));\n }\n ch-grid-cell::part(caret) {\n visibility: hidden;\n }\n}","/**\n * The `ch-grid-columnset` component represents a group of columns.\n */\nexport class ChGridColumnset {\n el;\n columnSortChangedHandler(eventInfo) {\n const columns = Array.from(this.el.querySelectorAll(\"ch-grid-column\"));\n columns.forEach(column => {\n if (column.columnId !== eventInfo.detail.columnId) {\n column.sortDirection = null;\n }\n });\n }\n static get is() { return \"ch-grid-columnset\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid-columnset.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid-columnset.css\"]\n };\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"columnSortChanged\",\n \"method\": \"columnSortChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ch-grid-columnset.js.map\n",":host {\n display: contents;\n --ch-window-mask-z-index: var(--ch-grid-settings-layer);\n}","import { h, Host } from \"@stencil/core\";\n/**\n * The `ch-grid-settings` component represents a settings window for a grid component.\n */\nexport class ChGridSettings {\n constructor() {\n this.grid = undefined;\n this.show = false;\n }\n /**\n * Event emitted when the close button of the settings window is clicked.\n */\n settingsCloseClicked;\n windowClosedHandler(eventInfo) {\n eventInfo.stopPropagation();\n this.show = false;\n this.settingsCloseClicked.emit();\n }\n render() {\n return (h(Host, null, h(\"ch-window\", { modal: true, container: this.grid, caption: \"Options\", closeText: \"Close\", closeOnOutsideClick: true, closeOnEscape: true, allowDrag: \"header\", hidden: !this.show, exportparts: \"mask,window,header,caption,close,main,footer\" }, h(\"slot\", null))));\n }\n static get is() { return \"ch-grid-settings\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid-settings.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid-settings.css\"]\n };\n }\n static get properties() {\n return {\n \"grid\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLChGridElement\",\n \"resolved\": \"HTMLChGridElement\",\n \"references\": {\n \"HTMLChGridElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLChGridElement\"\n }\n }\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The `HTMLChGridElement` that the settings window is associated with.\"\n }\n },\n \"show\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Indicates whether the settings window is currently shown or not.\"\n },\n \"attribute\": \"show\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get events() {\n return [{\n \"method\": \"settingsCloseClicked\",\n \"name\": \"settingsCloseClicked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the close button of the settings window is clicked.\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"windowClosed\",\n \"method\": \"windowClosedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ch-grid-settings.js.map\n",":host {\n display: flex;\n flex-direction: column;\n}\n\nul {\n display: contents;\n list-style-type: none;\n}","import { h } from \"@stencil/core\";\n/**\n * The `ch-grid-settings-columns` component represents the settings for a grid's columns.\n */\nexport class ChGridSettingsColumns {\n constructor() {\n this.columns = undefined;\n }\n handleClick = (eventInfo) => {\n const checkbox = eventInfo.target;\n const column = this.columns.find(column => column.columnId === checkbox.name);\n column.hidden = !checkbox.checked;\n eventInfo.stopPropagation();\n };\n getColumnsSorted() {\n return [...this.columns].sort((a, b) => {\n if (a.order < b.order) {\n return -1;\n }\n if (a.order > b.order) {\n return 1;\n }\n return 0;\n });\n }\n render() {\n const columnsSorted = this.getColumnsSorted();\n return (h(\"ul\", null, columnsSorted.map(column => (h(\"li\", { part: \"column\" }, h(\"label\", { part: \"column-label\" }, h(\"input\", { part: !column.hidden\n ? \"column-visible column-visible-checked\"\n : \"column-visible\", type: \"checkbox\", checked: !column.hidden, disabled: !column.hideable, name: column.columnId, onClick: this.handleClick }), column.columnName))))));\n }\n static get is() { return \"ch-grid-settings-columns\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid-settings-columns.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid-settings-columns.css\"]\n };\n }\n static get properties() {\n return {\n \"columns\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLChGridColumnElement[]\",\n \"resolved\": \"HTMLChGridColumnElement[]\",\n \"references\": {\n \"HTMLChGridColumnElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLChGridColumnElement\"\n }\n }\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"An array of column elements to render.\"\n }\n }\n };\n }\n}\n//# sourceMappingURL=ch-grid-settings-columns.js.map\n",":root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n/**************************\nGENERAL\n**************************/\n:root {\n --indent: var(--gxg-grid__indent);\n}\n\ngxg-grid {\n display: contents;\n}\n\nch-grid {\n border: var(--ds-border-common-styles);\n border-radius: var(--gxg-grid-base__border-radius);\n --focus-style: var(--ds-focus-border-width) solid var(--ds-focus-border-color);\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--gxg-grid-base__font-size);\n color: var(--gxg-grid-base__font-color);\n overflow: hidden;\n}\n\nch-grid::part(main) {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\nch-grid::part(main)::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\nch-grid::part(main)::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\nch-grid::part(main)::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\nch-grid::part(main)::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\nch-grid::part(main)::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\ngxg-grid.no-border ch-grid {\n border: 0;\n border-radius: 0;\n}\n\ngxg-grid:focus-visible,\nch-grid:focus-visible {\n outline: none;\n}\n\n/**************************\nHEADER / FOOTER\n**************************/\nch-grid::part(header),\nch-grid::part(footer) {\n /*padding: var(--spacing-comp-01);*/\n background-color: var(--gxg-grid-header__background-color);\n}\n\n/**************************\nBUTTONS/ICONS\n**************************/\nch-grid-actionbar ch-grid-action-refresh,\nch-grid-actionbar ch-grid-action-settings,\nch-grid-column::part(bar-sort-ascending),\nch-grid-column::part(bar-sort-descending),\nch-grid-column::part(bar-settings-button),\nch-grid-column::part(settings-close),\nch-grid::part(settings-close),\nch-grid-cell::part(drag-icon),\nch-grid-cell::part(caret),\nch-grid-rowset-legend::part(caret) {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\nch-grid-actionbar ch-grid-action-refresh:before,\nch-grid-actionbar ch-grid-action-settings:before,\nch-grid-column::part(bar-sort-ascending):before,\nch-grid-column::part(bar-sort-descending):before,\nch-grid-column::part(bar-settings-button):before,\nch-grid-column::part(settings-close):before,\nch-grid::part(settings-close):before,\nch-grid-cell::part(drag-icon):before,\nch-grid-cell::part(caret):before,\nch-grid-rowset-legend::part(caret):before {\n content: \"\";\n display: block;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: contain;\n -webkit-mask-position: center;\n width: 70%;\n height: 70%;\n background-color: var(--gxg-grid-button__icon-color);\n}\n\nch-grid-action-refresh,\nch-grid-action-settings {\n width: var(--gxg-grid-button__size);\n height: var(--gxg-grid-button__size);\n cursor: pointer;\n background-color: var(--gxg-grid-button__background-color);\n display: inline-block;\n}\nch-grid-action-refresh:hover,\nch-grid-action-settings:hover {\n background-color: var(--gxg-grid-button__background-color--hover);\n}\nch-grid-action-refresh:focus-visible,\nch-grid-action-settings:focus-visible {\n outline: var(--focus-style);\n}\n\nch-grid-action-refresh:before {\n -webkit-mask-image: var(--refreshIconUrl);\n}\n\nch-grid-action-settings:before {\n -webkit-mask-image: var(--settingshIconUrl);\n}\n\n/**************************\nCOLUMN\n**************************/\nch-grid-column {\n background-color: var(--gxg-grid-column__background-color);\n font-weight: var(--gxg-grid-column__font-weight);\n padding: var(--gxg-grid-column__padding) !important;\n cursor: pointer;\n}\n\nch-grid-column::part(bar) {\n gap: var(--gxg-grid-column-bar__gap);\n width: 100%;\n}\n\nch-grid-column:not([sort-direction])::part(bar-sort) {\n display: none;\n}\n\nch-grid-column::part(bar-settings) {\n line-height: 0;\n}\n\nch-grid-column::part(bar-sort-ascending),\nch-grid-column::part(bar-sort-descending) {\n width: var(--spacing-comp-03);\n height: var(--spacing-comp-03);\n margin-inline-start: var(--spacing-comp-02);\n margin-inline-end: var(--spacing-comp-01);\n}\n\nch-grid-column::part(bar-sort-ascending):before,\nch-grid-column::part(bar-sort-descending):before {\n width: 100%;\n height: 100%;\n -webkit-mask-size: 200%;\n}\n\nch-grid-column::part(bar-sort-descending):before {\n -webkit-mask-image: var(--barSortDescendingIconUrl);\n}\n\nch-grid-column::part(bar-sort-ascending):before {\n -webkit-mask-image: var(--barSortAscendingIconUrl);\n}\n\nch-grid-column::part(bar-resize-split) {\n width: var(--gxg-grid-column-par-bar-resize-split__width);\n border-radius: var(--gxg-grid-column-par-bar-resize-split__border-radius);\n background-color: var(--gxg-grid-column-bar-resize-split__background-color);\n}\n\nch-grid-column:last-child::part(bar-resize-split) {\n display: none;\n}\n\nch-grid-column::part(bar-settings-button) {\n padding: 0;\n width: var(--gxg-grid-column-bar-settings-button__width);\n height: var(--gxg-grid-column-bar-settings-button__width);\n border: none;\n background-color: transparent;\n cursor: pointer;\n}\nch-grid-column::part(bar-settings-button):hover {\n background-color: var(--gxg-grid-column-bar-settings-button__background-color--hover);\n}\nch-grid-column::part(bar-settings-button):focus-visible {\n outline: var(--focus-style);\n}\n\nch-grid-column::part(bar-settings-button):before {\n -webkit-mask-image: var(--barSettingsButtonIconUrl);\n}\n\n/**************************\nROW\n**************************/\nch-grid-row {\n font-size: var(--gxg-grid-cell__font-size);\n background-color: var(--gxg-grid-row__background-color);\n color: var(--gxg-grid-row__color);\n border: var(--gxg-grid-row__border-width) solid transparent;\n}\nch-grid-row ch-grid-cell {\n border-top-width: var(--gxg-grid-cell__border-top-width);\n border-top-color: var(--mer-border-color__on-elevation--01);\n}\nch-grid-row:nth-of-type(even) {\n background-color: var(--ds-row-background-color-even);\n}\nch-grid-row:nth-of-type(odd) {\n background-color: var(--ds-row-background-color-odd);\n}\n\nch-grid-row[highlighted]:nth-child(odd) {\n background-color: var(--ds-row-background-color-odd--hover);\n}\nch-grid-row[highlighted]:nth-child(even) {\n background-color: var(--ds-row-background-color-even--hover);\n}\n\nch-grid-row[dragging] {\n box-shadow: var(--gxg-grid-row__box-shadow--dragging);\n}\n\nch-grid-row[selected] > ch-grid-cell:not([selected]) {\n background-color: var(--ds-item-background-color--selected);\n}\n\n/**************************\nCELL\n**************************/\nch-grid-cell[selected] {\n z-index: 1;\n background-color: var(--ds-item-background-color--selected) !important;\n}\n\nch-grid-row[selected] > ch-grid-cell {\n color: var(--gxg-grid-row-cell__color--selected);\n}\nch-grid-row[selected] + ch-grid-row[selected] ch-grid-cell {\n border-top-color: var(--ds-item-border-color--selected);\n}\nch-grid-row[selected]:hover > ch-grid-cell {\n background-color: var(--ds-item-background-color--selected-hover) !important;\n}\n\nch-grid-cell {\n box-sizing: border-box;\n padding-inline-start: var(--gxg-grid-cell__padding-inline-start) !important;\n padding-inline-end: var(--gxg-grid-cell__padding-inline-end) !important;\n padding-block-start: var(--gxg-grid-cell__padding-block-start);\n padding-block-end: var(--gxg-grid-cell__padding-block-end);\n align-items: center;\n line-height: var(--line-height-regular);\n}\n\nch-grid-column::part(settings-mask) {\n cursor: default;\n}\n\nch-grid-column::part(settings-mask),\nch-grid::part(settings-mask) {\n background-color: rgba(0, 0, 0, 0.3);\n cursor: arrow;\n color: var(--gxg-grid-settings-mask__color);\n}\n\nch-grid-column::part(settings-window),\nch-grid::part(settings-window) {\n background-color: var(--gxg-grid-settings-window__background-color);\n width: 100%;\n max-width: 600px;\n padding: var(--gxg-grid-settings-window__padding);\n border-radius: var(--gxg-grid-base__border-radius);\n box-shadow: var(--gxg-grid-settings-window__box-shadow);\n}\n\nch-grid::part(settings-window) {\n margin: 0 var(--gxg-grid-settings-window__margin);\n}\n\nch-grid-column::part(settings-header),\nch-grid::part(settings-header) {\n display: flex;\n align-items: center;\n gap: var(--gxg-grid-settings-header__gap);\n justify-content: space-between;\n border-bottom: var(--gxg-grid-base__border-width) solid var(--ds-border-color--regular);\n padding-bottom: var(--gxg-grid-settings-padding-bottom);\n margin-bottom: var(--gxg-grid-settings-margin-bottom);\n font-weight: var(--gxg-grid-settings-font-weight);\n}\n\nch-grid-column::part(settings-close),\nch-grid::part(settings-close) {\n padding: 0;\n width: var(--gxg-grid-settings-close__size);\n height: var(--gxg-grid-settings-close__size);\n cursor: pointer;\n background-color: var(--gxg-grid-settings-close__background-color);\n font-size: 0;\n border: 0;\n}\nch-grid-column::part(settings-close):hover,\nch-grid::part(settings-close):hover {\n background-color: var(--gxg-grid-settings-close__background-color--hover);\n}\nch-grid-column::part(settings-close):before,\nch-grid::part(settings-close):before {\n -webkit-mask-image: var(--settingsCloseIconUrl);\n}\nch-grid-column::part(settings-close):focus-visible,\nch-grid::part(settings-close):focus-visible {\n outline: var(--focus-style);\n}\n\nch-grid::part(settings-columns) {\n gap: var(--gxg-grid-settings-columns__gap);\n}\n\nch-grid::part(settings-columns-label) {\n display: inline-flex;\n align-items: center;\n gap: var(--gxg-grid-settings-columns-label__gap);\n cursor: pointer;\n height: var(--gxg-grid-settings-columns-label__height);\n}\n\n/*Checkboxes*/\nch-grid::part(settings-columns-visible),\nch-grid-cell::part(selector),\nch-grid-column::part(selector) {\n position: relative;\n margin: 0;\n height: var(--gxg-checkbox-size);\n width: var(--gxg-checkbox-size);\n appearance: none;\n border-radius: var(--gxg-checkbox-border-radius);\n}\nch-grid::part(settings-columns-visible):focus-visible,\nch-grid-cell::part(selector):focus-visible,\nch-grid-column::part(selector):focus-visible {\n outline: var(--focus-style);\n outline-offset: 0;\n}\n\nch-grid::part(settings-columns-visible):before,\nch-grid-cell::part(selector):before,\nch-grid-column::part(selector):before {\n cursor: pointer;\n content: \"\";\n display: inline-block;\n position: relative;\n height: var(--gxg-checkbox-size);\n width: var(--gxg-checkbox-size);\n border-width: var(--gxg-checkbox-border-width);\n border-style: solid;\n border-radius: var(--gxg-checkbox-border-radius);\n border-color: var(--gxg-checkbox-border-color);\n box-sizing: border-box;\n flex-shrink: 0;\n background: var(--gxg-checkbox-background-color);\n}\n\nch-grid::part(settings-columns-visible):after,\nch-grid-cell::part(selector):after,\nch-grid-column::part(selector):after {\n opacity: 0;\n display: block;\n position: absolute;\n content: \"\";\n left: 6px;\n top: 3px;\n width: 3px;\n height: 7px;\n border: solid;\n border-color: var(--gxg-checkbox-indicator-color);\n border-width: 0 2px 2px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n transition-property: opacity;\n transition-duration: var(--ui-animaton-speed);\n transition-timing-function: ease;\n cursor: pointer;\n}\n\nch-grid-column::part(indeterminate):after {\n opacity: 1;\n display: block;\n position: absolute;\n content: \"\";\n left: 50%;\n top: 50%;\n width: 8px;\n height: 1.5px;\n border: 0;\n background-color: var(--gxg-checkbox-indicator-color);\n -webkit-transform: rotate(0) translateY(-50%) translateX(-50%);\n -ms-transform: rotate(0) translateY(-50%) translateX(-50%);\n transform: rotate(0) translateY(-50%) translateX(-50%);\n}\n\nch-grid::part(settings-columns-visible-checked):before,\nch-grid-cell::part(checked):before,\nch-grid-column::part(checked):before {\n border-color: var(--gxg-checkbox-border-color);\n}\n\nch-grid::part(settings-columns-visible-checked):after,\nch-grid-cell::part(checked):after,\nch-grid-column::part(checked):after {\n opacity: 1;\n}\n\n/*Drag*/\nch-grid-cell::part(drag-icon):before {\n width: var(--gxg-grid-cell-drag-icon__size);\n height: var(--gxg-grid-cell-drag-icon__size);\n cursor: grab;\n}\n\nch-grid-cell::part(drag-icon):before {\n -webkit-mask-image: var(--dragIconUrl);\n}\n\n/*Row actions*/\nch-grid::part(row-actions) {\n padding-top: var(--gxg-grid-row-actions__padding-top);\n right: var(--gxg-grid-row-actions__right);\n}\n\n/*Selector*/\n/*legend*/\nch-grid-rowset-legend {\n background-color: var(--gxg-grid-rowset-legend__background-color);\n background-color: var(--mer-color_neutral-gray--1100);\n padding-inline-start: var(--gxg-grid-rowset-legend__padding-inline-start);\n padding-inline-end: var(--gxg-grid-rowset-legend__padding-inline-end);\n padding-block-start: var(--gxg-grid-rowset-legend__padding-block-start);\n padding-block-end: var(--gxg-grid-rowset-legend__padding-block-end);\n}\n\nch-grid-rowset-legend {\n margin-inline-start: 0;\n padding-inline-start: calc(var(--gxg-grid-rowset-legend__padding-inline-start) + var(--indent) * (var(--level) - 1));\n display: flex;\n align-items: center;\n gap: var(--gxg-grid-rowset-legend__gap);\n cursor: pointer;\n}\n\n/*caret*/\nch-grid-rowset-legend::part(caret),\nch-grid-cell::part(caret) {\n width: var(--gxg-grid-part-caret__size);\n height: var(--gxg-grid-part-caret__size);\n}\n\nch-grid-cell::part(caret) {\n cursor: pointer;\n margin-inline-end: var(--gxg-grid-part-caret__margin-inline-end);\n}\n\nch-grid-rowset > ch-grid-rowset-legend::part(caret):before,\nch-grid-row > ch-grid-cell::part(caret):before {\n -webkit-mask-image: var(--caretCollapseIconUrl);\n}\n\nch-grid-rowset[collapsed] > ch-grid-rowset-legend::part(caret):before,\nch-grid-row[collapsed] > ch-grid-cell::part(caret):before {\n -webkit-mask-image: var(--caretExpandIconUrl);\n}\n\nch-grid-rowset[collapsed] ch-grid-rowset-legend {\n border-bottom: var(--gxg-grid-base__border-width) solid var(--ds-base-background-color);\n}\n\n/*paginator*/\nch-grid gxg-paginator {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n/*Full-height*/\ngxg-grid[full-height] {\n height: 100%;\n}\ngxg-grid[full-height] ch-grid {\n height: 100%;\n}\n\n/*ellipsis*/\ngxg-grid[ellipsis] ch-grid-cell {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n display: block;\n}\n\n/*ellipsis-cell-wrapper*/\ngxg-grid[ellipsis-cell-wrapper] .cell-wrapper {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n width: inherit;\n}\n\ngxg-grid[ellipsis-cell-wrapper] ch-grid-column::part(bar-resize-split) {\n display: none;\n}","import { Host, h, getAssetPath } from \"@stencil/core\";\nimport state from \"../store\";\nexport class GxgGrid {\n constructor() {\n this.noBorder = false;\n this.fullHeight = false;\n }\n el;\n componentWillLoad() {\n const iconsUrl = getAssetPath(\"./icon-assets/\");\n this.el.style.setProperty(\"--refreshIconUrl\", `url(\"${iconsUrl}gemini-tools/reset.svg\")`);\n this.el.style.setProperty(\"--settingshIconUrl\", `url(\"${iconsUrl}gemini-tools/settings.svg\")`);\n this.el.style.setProperty(\"--barSortAscendingIconUrl\", `url(\"${iconsUrl}navigation/chevron-down.svg\")`);\n this.el.style.setProperty(\"--barSortDescendingIconUrl\", `url(\"${iconsUrl}navigation/chevron-up.svg\")`);\n this.el.style.setProperty(\"--barSettingsButtonIconUrl\", `url(\"${iconsUrl}gemini-tools/settings.svg\")`);\n this.el.style.setProperty(\"--settingsCloseIconUrl\", `url(\"${iconsUrl}gemini-tools/close.svg\")`);\n this.el.style.setProperty(\"--dragIconUrl\", `url(\"${iconsUrl}navigation/drag.svg\")`);\n this.el.style.setProperty(\"--caretCollapseIconUrl\", `url(\"${iconsUrl}gemini-tools/minus.svg\")`);\n this.el.style.setProperty(\"--caretExpandIconUrl\", `url(\"${iconsUrl}gemini-tools/add.svg\")`);\n }\n render() {\n return (h(Host, { class: { large: state.large, \"no-border\": this.noBorder } }, h(\"slot\", null)));\n }\n static get is() { return \"gxg-grid\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"gxg-grid.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"gxg-grid.css\"]\n };\n }\n static get properties() {\n return {\n \"noBorder\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"attribute\": \"no-border\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"fullHeight\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"attribute\": \"full-height\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=gxg-grid.js.map\n"],"mappings":";;;;;;;;;;GAGe,OAAMA,UAA6BC;EAC9CC;EACA,WAAAC;IACIC;AACR;EACI,iBAAAC;IACIC,KAAKC,iBAAiB,oBAAoBD,KAAKE;AACvD;;;SAII,QAAIC;IACA,OAAOH,KAAKJ,cAAcI,KAAKI;AACvC;;;SAII,SAAIC;IACA,OAAOL,KAAKM,aAAa,YAAY;AAC7C;;;SAII,eAAIC;IACA,OAAOP,KAAKQ,aAAa;AACjC;EACI,eAAID,CAAYE;IACZ,MAAMC,IAAqBV,KAAKG,KAAKQ,qBAAqBC,MAAM;IAChE,IAAIH,MAAU,MAAM;MAChBT,KAAKa,aAAa,eAAe;MACjC,IAAIb,KAAKG,KAAKQ,qBAAqB;QAC/BX,KAAKc,UAAUC,OAAOL;AACtC;AACA,WACa;MACDV,KAAKgB,gBAAgB;MACrB,IAAIhB,KAAKG,KAAKQ,qBAAqB;QAC/BX,KAAKc,UAAUG,UAAUP;AACzC;AACA;AACA;;;SAII,YAAIQ;IACA,OAAOlB,KAAKQ,aAAa;AACjC;EACI,YAAIU,CAAST;IACT,MAAMU,IAAkBnB,KAAKG,KAAKiB,kBAAkBR,MAAM;IAC1D,IAAIH,MAAU,MAAM;MAChBT,KAAKa,aAAa,YAAY;MAC9B,IAAIb,KAAKG,KAAKiB,kBAAkB;QAC5BpB,KAAKc,UAAUC,OAAOI;AACtC;AACA,WACa;MACDnB,KAAKgB,gBAAgB;MACrB,IAAIhB,KAAKG,KAAKiB,kBAAkB;QAC5BpB,KAAKc,UAAUG,UAAUE;AACzC;AACA;AACA;;;SAII,UAAIE;IACA,OAAOrB,KAAKQ,aAAa;AACjC;EACI,UAAIa,CAAOZ;IACP,MAAMa,IAAgBtB,KAAKG,KAAKoB,gBAAgBX,MAAM;IACtD,IAAIH,MAAU,MAAM;MAChBT,KAAKa,aAAa,UAAU;MAC5B,IAAIb,KAAKG,KAAKoB,gBAAgB;QAC1BvB,KAAKc,UAAUC,OAAOO;AACtC;AACA,WACa;MACDtB,KAAKgB,gBAAgB;MACrB,IAAIhB,KAAKG,KAAKoB,gBAAgB;QAC1BvB,KAAKc,UAAUG,UAAUK;AACzC;AACA;AACA;;;SAII,WAAIE;IACA,OAAOxB,KAAKQ,aAAa;AACjC;EACI,WAAIgB,CAAQf;IACR,MAAMgB,IAAiBzB,KAAKG,KAAKuB,iBAAiBd,MAAM;IACxD,IAAIH,MAAU,MAAM;MAChBT,KAAKa,aAAa,WAAW;MAC7B,IAAIb,KAAKG,KAAKuB,iBAAiB;QAC3B1B,KAAKc,UAAUC,OAAOU;AACtC;AACA,WACa;MACDzB,KAAKgB,gBAAgB;MACrB,IAAIhB,KAAKG,KAAKuB,iBAAiB;QAC3B1B,KAAKc,UAAUG,UAAUQ;AACzC;AACA;AACA;;;SAII,gBAAIE;IACA,SAAS3B,KAAK4B,cAAc;AACpC;;;SAII,aAAIC;IACA,OAAO7B,KAAKQ,aAAa;AACjC;EACI,aAAIqB,CAAUpB;IACV,MAAMqB,IAAgB9B,KAAK6B,cAAcpB;IACzC,IAAIA,GAAO;MACPT,KAAKa,aAAa,aAAa;AAC3C,WACa;MACDb,KAAKgB,gBAAgB;AACjC;IACQ,IAAIc,GAAe;MACf9B,KAAK8B,cAAc,IAAIC,YAAY,uBAAuB;QACtDC,SAAS;QACTC,UAAU;QACVC,QAAQ;UAAE7B,OAAOL,KAAKK;UAAOwB,WAAWpB;;;AAExD;AACA;;;SAII,QAAI0B;IACA,OAAOnC,KAAKQ,aAAa;AACjC;EACI,QAAI2B,CAAK1B;IACL,IAAIA,MAAU,MAAM;MAChBT,KAAKa,aAAa,QAAQ;AACtC,WACa;MACDb,KAAKgB,gBAAgB;AACjC;AACA;EACI,OAAAoB,CAAQC;IACJ,OAAOrC,KAAK4B,cAAc,qCAAqCS,EAAOC;AAC9E;;;SAII,SAAAC;IACI,OAAOC,MAAMC,KAAKzC,KAAK0C,iBAAiB,0BAA0BC,MAAMC,KAASA,EAAKL;AAC9F;;;SAII,aAAAM;IACI7C,KAAK8B,cAAc,IAAIC,YAAY,oBAAoB;MAAEC,SAAS;MAAMC,UAAU;;AAC1F;;;SAII,qBAAAa;IACI,IAAIC;IACJ,KAAK/C,KAAKgD,mBAAmB;MACzBD,IAAO,IAAIE;AACvB,WACa,IAAIjD,KAAKgD,sBAAsBhD,KAAKkD,kBAAkB;MACvDH,IAAO/C,KAAKgD,kBAAkBF;AAC1C,WACa;MACD,MAAMK,IAAgBnD,KAAKgD,kBAAkBF;MAC7C,MAAMM,IAAepD,KAAKkD,iBAAiBJ;MAC3CC,IAAO,IAAIE,QAAQE,EAAcE,GAAGF,EAAcG,GAAGF,EAAaC,IAAIF,EAAcE,IAAID,EAAaG,OAAOH,EAAaE,IAAIH,EAAcG,IAAIF,EAAaI;AACxK;IACQ,OAAOT;AACf;EACI,uBAAA7C,CAAwBuD;IACpB,MAAMC,IAAYD,EAAUE;IAC5B,IAAID,EAAU/B,cAAc;MACxB3B,KAAK6B,aAAa7B,KAAK6B;AACnC;IACQ4B,EAAUG;AAClB;EACI,cAAAxD;IACIJ,KAAKJ,aAAaI,KAAK6D,QAAQ;IAC/B,OAAO7D,KAAKJ;AACpB;;;AAEA,KAAKkE,eAAeC,IAAI,gBAAgB;EACpCD,eAAeE,OAAO,eAAetE;AACzC;;;;GCjMe,OAAMuE,UAAgCtE;EACjDuE,cAAgB;EAChB/D;EACA,WAAAN;IACIC;AACR;EACI,iBAAAC;IACIC,KAAKC,iBAAiB,uBAAuBD,KAAKmE;IAClDnE,KAAKoE;AACb;;;SAII,aAAIvC;IACA,OAAO7B,KAAKQ,aAAa;AACjC;EACI,aAAIqB,CAAUpB;IACV,IAAIA,GAAO;MACPT,KAAKa,aAAa,aAAa;AAC3C,WACa;MACDb,KAAKgB,gBAAgB;AACjC;AACA;;;SAII,SAAIqD;IACA,KAAKrE,KAAKkE,eAAe;MACrBlE,KAAKsE;AACjB;IACQ,OAAOtE,KAAKkE;AACpB;;;SAII,qBAAApB;IACI,IAAIC;IACJ,MAAMwB,IAAaC,SAASxE,KAAKyE,MAAMC,iBAAiB;IACxD,MAAMC,IAAgBH,SAASxE,KAAKyE,MAAMC,iBAAiB;IAC3D,KAAK1E,KAAKgD,mBAAmB;MACzB,MAAM4B,IAAW5E,KAAKG,KAAK0E,WACtBjD,cAAc,SACdkB;MACLC,IAAO,IAAIE,QAAQ2B,EAASvB,GAAGuB,EAAStB,GAAGsB,EAASrB,OAAO;AACvE,WACa,IAAIvD,KAAKgD,sBAAsBhD,KAAKkD,kBAAkB;MACvD,MAAM4B,IAAe9E,KAAKgD,kBAAkBF;MAC5CC,IAAO,IAAIE,QAAQ6B,EAAazB,GAAGyB,EAAaxB,IAAIiB,GAAYO,EAAazB,IAAIyB,EAAavB,OAAOuB,EAAaxB,IAAIwB,EAAatB,SAASe,IAAaI;AACrK,WACa;MACD,MAAMG,IAAe9E,KAAKgD,kBAAkBF;MAC5C,MAAMiC,IAAc/E,KAAKkD,iBAAiBJ;MAC1CC,IAAO,IAAIE,QAAQ6B,EAAazB,GAAGyB,EAAaxB,IAAIiB,GAAYQ,EAAY1B,IAAIyB,EAAazB,IAAI0B,EAAYxB,OAAOwB,EAAYzB,IAC5HwB,EAAaxB,IACbyB,EAAYvB,SACZe,IACAI;AAChB;IACQ,OAAO5B;AACf;EACI,0BAAAoB,CAA2BV;IACvBA,EAAUG;IACV5D,KAAK6B,aAAa7B,KAAK6B;AAC/B;EACI,WAAAuC;IACIpE,KAAKyE,MAAMO,YAAY,WAAWhF,KAAKqE,MAAMY;AACrD;EACI,YAAAX;IACItE,KAAKkE,gBAAgBlE,KAAKkF,mBAAmBb,SAAS;IACtD,IAAIrE,KAAKmF,eAAenF,KAAKoF,eAAe;MACxCpF,KAAKkE;AACjB;AACA;EACI,SAAAiB;IACI,OAAOnF,KAAKgD,mBAAmBqC,YAAY;AACnD;EACI,WAAAD;IACI,OAAOpF,KAAKsF,cAAcD,YAAY;AAC9C;EACI,eAAAH;IACI,MAAMK,IAAOvF,KAAKsF,cAAczB,QAAQ;IACxC,IAAI0B,EAAKF,YAAY,kBAAkB;MACnC,OAAOE;AACnB;AACA;;;AAEA,KAAKzB,eAAeC,IAAI,mBAAmB;EACvCD,eAAeE,OAAO,kBAAkBC;AAC5C;;;;;;;;;;;;GCjFO,KAAIuB;;CACX,SAAWA;EACPA,EAAe,WAAW;EAC1BA,EAAe,UAAU;EACzBA,EAAe,cAAc;AAChC,EAJD,CAIGA,MAAmBA,IAAiB;;;;GAIxB,OAAMC,UAA8B9F;EAC/C+F,SAAWF,EAAeG;EAC1BC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACA,6BAAWC;IACP,OAAO,EAAC,aAAa,YAAY,gBAAgB;AACzD;EACI,WAAAvG;IACIC;IACAE,KAAKqG;AACb;EACI,iBAAAtG;IACI,IAAIC,KAAK0F,aAAaF,EAAeG,OAAO;MACxC3F,KAAKgE;AACjB;AACA;EACI,wBAAAsC,CAAyBC,GAAMC,GAAW/F;IACtC,IAAI8F,MAAS,aAAa;MACtBvG,KAAK0F,WAAWjF;AAC5B;IACQ,IAAI8F,MAAS,YAAY;MACrBvG,KAAKiG,UAAUxF,MAAU,OAAOA,MAAU,UAAU;AAChE;IACQ,IAAI8F,MAAS,gBAAgB;MACzBvG,KAAKkG,cAAczF,MAAU,OAAOA,MAAU,UAAU;AACpE;IACQ,IAAI8F,MAAS,eAAe;MACxBvG,KAAKmG,aAAa1F,MAAU,OAAOA,MAAU,UAAU;AACnE;AACA;;;SAII,QAAIgG;IACA,OAAOzG,KAAK0F;AACpB;EACI,QAAIe,CAAKhG;IACL,IAAIT,KAAK0F,aAAajF,GAAO;MACzBT,KAAK0F,WAAWjF;MAChBT,KAAKgE;AACjB;AACA;;;SAII,QAAI7D;IACA,OAAOH,KAAK6D,QAAQ;AAC5B;;;SAII,UAAIxB;IACA,MAAMqE,IAAYlE,MAAMmE,UAAUC,QAAQC,KAAK7G,KAAK8G,IAAIpE,iBAAiB,0BAA0B1C;IACnG,OAAOA,KAAKG,KAAKyB,cAAc,8BAA8B8E,IAAY;AACjF;;;SAII,OAAII;IACA,OAAO9G,KAAKsF;AACpB;;;SAII,UAAIyB;IACA,OAAO/G,KAAKM,aAAa,aAAa;AAC9C;;;SAII,YAAIY;IACA,OAAOlB,KAAKQ,aAAa;AACjC;EACI,YAAIU,CAAST;IACT,IAAIA,MAAU,MAAM;MAChBT,KAAKa,aAAa,YAAY;AAC1C,WACa;MACDb,KAAKgB,gBAAgB;AACjC;AACA;;;SAII,SAAAuB;IACI,OAAOvC,KAAKgH,iBAAiB;AACrC;;;SAII,aAAAnE;IACI7C,KAAK8B,cAAc,IAAIC,YAAY,qBAAqB;MAAEC,SAAS;MAAMC,UAAU;;AAC3F;;;SAII,kBAAAgF,CAAmBxG;IACfT,KAAK+F,SAASmB,UAAUzG;IACxB,IAAIT,KAAK+F,SAASmB,SAAS;MACvBlH,KAAK+F,SAASlF,aAAa,QAAQ;AAC/C,WACa;MACDb,KAAK+F,SAASlF,aAAa,QAAQ;AAC/C;AACA;EACI,kBAAAwF;IACIrG,KAAKC,iBAAiB,YAAW;MAC7B,KAAKD,KAAKkG,aAAa;QACnBlG,KAAK8B,cAAc,IAAIC,YAAY,eAAe;UAAEC,SAAS;UAAMC,UAAU;;AAC7F;AAAA;AAEA;EACI,qBAAAkF,CAAsB1D;IAClBA,EAAUG;IACV5D,KAAK8B,cAAc,IAAIC,YAAY,oBAAoB;MAAEC,SAAS;MAAMC,UAAU;;AAC1F;EACI,oBAAAmF,CAAqB3D;IACjBA,EAAUG;IACV5D,KAAK8B,cAAc,IAAIC,YAAY,uBAAuB;MACtDC,SAAS;MACTC,UAAU;MACVC,QAAQ;QACJgF,SAASlH,KAAK+F,SAASmB;QACvBG,OAAO5D,EAAU6D;;;AAGjC;EACI,yBAAAC,CAA0B9D;IACtB,KAAKA,EAAU6D,UAAU;MACrB7D,EAAUG;AACtB;AACA;EACI,oBAAA4D,CAAqB/D;IACjBA,EAAUgE;IACVhE,EAAUG;IACV5D,KAAK8B,cAAc,IAAIC,YAAY,kBAAkB;MACjDC,SAAS;MACTC,UAAU;MACVC,QAAQ;QACJ4E,KAAK9G,KAAK8G;;;AAG1B;EACI,kBAAAY;IACI1H,KAAK8B,cAAc,IAAIC,YAAY,wBAAwB;MACvDC,SAAS;MACTC,UAAU;;AAEtB;EACI,MAAA+B;IACI,QAAQhE,KAAK0F;KACT,KAAKF,EAAemC;MAChB3H,KAAK4H;MACL;;KACJ,KAAKpC,EAAeqC;MAChB7H,KAAK8H;MACL;;AAEhB;EACI,UAAAF;IACI,IAAIG,IAAO;IACX,KAAK/H,KAAK6E,cAAc7E,KAAK6E,WAAWmD,cAAc,IAAI;MACtDhI,KAAKiI,aAAa;QAAEC,MAAM;;MAC1B,IAAIlI,KAAKiG,SAAS;QACd8B,KAAQ;AAGxB;MACY,IAAI/H,KAAKkG,aAAa;QAClB6B,KAAQ;AAMxB;MACY,IAAI/H,KAAKmG,YAAY;QACjB4B,KAAQ;AAGxB;MACY/H,KAAK6E,WAAWmD,YAAY,aAC9BD;MAGE,IAAI/H,KAAKiG,SAAS;QACdjG,KAAK6F,OAAO7F,KAAK6E,WAAWjD,cAAc;QAC1C5B,KAAK6F,KAAK5F,iBAAiB,aAAaD,KAAKwH,qBAAqBW,KAAKnI;AACvF;MACY,IAAIA,KAAKmG,YAAY;QACjBnG,KAAK8F,SAAS9F,KAAK6E,WAAWjD,cAAc;QAC5C5B,KAAK8F,OAAO7F,iBAAiB,SAASD,KAAK0H,mBAAmBS,KAAKnI;AACnF;MACY,IAAIA,KAAKkG,aAAa;QAClBlG,KAAK+F,WAAW/F,KAAK6E,WAAWjD,cAAc;QAC9C5B,KAAK+F,SAAS9F,iBAAiB,cAAcwD,KAAcA,EAAUG;QACrE5D,KAAK+F,SAAS9F,iBAAiB,SAASD,KAAKoH,qBAAqBe,KAAKnI;QACvEA,KAAKgG,gBAAgBhG,KAAK6E,WAAWjD,cAAc;QACnD5B,KAAKgG,cAAc/F,iBAAiB,cAAcwD,KAAcA,EAAUG;QAC1E5D,KAAKgG,cAAc/F,iBAAiB,SAASD,KAAKuH,0BAA0BY,KAAKnI;AACjG;AACA;AACA;EACI,cAAA8H;IACI,KAAK9H,KAAK6E,cAAc7E,KAAK6E,WAAWmD,cAAc,IAAI;MACtDhI,KAAKiI,aAAa;QAAEC,MAAM;;MAC1BlI,KAAK6E,WAAWmD,YAAY;MAQ5BhI,KAAK4F,QAAQ5F,KAAK6E,WAAWjD,cAAc;MAC3C5B,KAAK4F,MAAM3F,iBAAiB,aAAaD,KAAKmH,sBAAsBgB,KAAKnI;AACrF;AACA;;;AAEA,KAAK8D,eAAeC,IAAI,iBAAiB;EACrCD,eAAeE,OAAO,gBAAgByB;AAC1C;;ACvPO,MAAM2C;EACT/F;EACAgG;EACAC;EACAC,gBAAkB;EAClB,WAAA1I,CAAY2I,GAAUH,GAASC;IAC3BtI,KAAKsI,QAAQA;IACbtI,KAAKqI,UAAUA,EAAQI,KAAIpG,MAAM;MAC7BqG,SAASrG;MACTU,MAAMV,EAAOS;MACb6F,YAAY;MACZC,OAAOvG,EAAOuG;;IAElB5I,KAAKqC,SAASrC,KAAKqI,QAAQQ,MAAKC,KAAQA,EAAKJ,QAAQF,aAAaA;IAClExI,KAAKqI,QAAQU,QAAQ/I,KAAKgJ,oBAAoBb,KAAKnI;AAC3D;EACI,QAAAiJ,CAASC;;;;IAIL,MAAMC,IAAcnJ,KAAKqC,OAAOqG,QAAQE;;;eAIxC,MAAMQ,IAAepJ,KAAKqC,OAAOqG,QAAQW;IACzC,IAAIC,IAAc;IAClB,IAAIC,IAAqB;IACzBvJ,KAAKqC,OAAOsG,aAAa;IACzB3I,KAAKqI,QACAmB,QAAOnH,KAAUA,EAAOqG,QAAQW,WAAWD,IAC3CL,SAAQ1G;;;;MAIT,MAAMoH,IAAcpH,EAAOqG,QAAQE;;;;;qBAMnC,MAAMc,IAAgBP,IAAcM,IAAc,KAAK;;;;qBAKvD,MAAME,KAAkBR,IAAcM,IAAc,KAAK,MAAMzJ,KAAKsI,SAAS,IAAI;MACjF,IAAIjG,EAAOU,KAAK6G,OAAOV,KACnBA,IAAW7G,EAAOU,KAAK8G,SACvBJ,MAAgBN,GAAa;;;;;QAK7BnJ,KAAK8J,mBAAmBzH,GAAQsH;;gBAEhCtH,EAAOuG,QAAQvG,EAAOqG,QAAQE,QAAQc;QACtCJ,IAAcG;AAC9B,aACiB,IAAIP,IAAW7G,EAAOU,KAAK6G,SAC3B5J,KAAKsI,QAAQmB,IAAcN,IAAcM,IAAcN,IAAc;;;;;QAKtEnJ,KAAK8J,mBAAmBzH,GAAQsH;;gBAEhCtH,EAAOuG,QAAQvG,EAAOqG,QAAQE,QAAQc;QACtC,KAAKJ,MACAtJ,KAAKsI,QAAQmB,IAAcH,IAAcG,IAAcH,IAAc;UACtEA,IAAcG;AAClC;AACA,aACiB,IAAIP,IAAW7G,EAAOU,KAAK8G,UAC3B7J,KAAKsI,QAAQmB,IAAcN,IAAcM,IAAcN,IAAc;;;;;QAKtEnJ,KAAK8J,mBAAmBzH,GAAQsH;;gBAEhCtH,EAAOuG,QAAQvG,EAAOqG,QAAQE,QAAQc;QACtC,KAAKJ,MACAtJ,KAAKsI,QAAQmB,IAAcH,IAAcG,IAAcH,IAAc;UACtEA,IAAcG;AAClC;AACA,aACiB,IAAIA,MAAgBN,GAAa;;;;;QAKlCnJ,KAAK+J,oBAAoB1H;AACzC;AAAA;IAEQrC,KAAKqC,OAAOuG,QAAQU,IAAcA,IAActJ,KAAKqC,OAAOqG,QAAQE;IACpEW,IAAqBD,MAAgBtJ,KAAKuI;IAC1CvI,KAAKuI,kBAAkBe;IACvB,OAAOC;AACf;EACI,OAAAS;IACIhK,KAAKqI,QAAQU,SAAQ1G;MACjBA,EAAOqG,QAAQE,QAAQvG,EAAOuG;MAC9BvG,EAAOsG,aAAa;AAAC;AAEjC;EACI,cAAAsB,CAAe5H;IACX,OAAO;MACH,CAAC,oBAAoBA,EAAOC,4BAA4B,cAActC,KAAKqI,QAAQQ,MAAKqB,KAAcA,EAAWxB,YAAYrG,IACxHsG;;AAEjB;EACI,mBAAAwB;IACI,IAAIC;IACJ,IAAIC;IACJrK,KAAKqI,QAAQU,SAAQD;MACjB,KAAKA,EAAKJ,QAAQ4B,YACZF,KAAatB,EAAKF,QAAQwB,EAAUxB,QAAQ;QAC9CwB,IAAYtB;AAC5B;MACY,KAAKA,EAAKJ,QAAQ4B,YAAYD,KAAYvB,EAAKF,QAAQyB,EAASzB,QAAQ;QACpEyB,IAAWvB;AAC3B;AAAA;IAEQ,OAAO;MACHyB,aAAaH,EAAU1B;MACvB8B,YAAYH,EAAS3B;;AAEjC;EACI,kBAAAoB,CAAmBzH,GAAQsH;;;IAGvBtH,EAAOsG,aAAa3I,KAAKqC,OAAOU,KAAKQ,QAAQoG;;;QAG7C3J,KAAKqC,OAAOsG,cAActG,EAAOU,KAAKQ,SAASoG,KAAkB;AACzE;EACI,mBAAAI,CAAoB1H;;IAEhBA,EAAOsG,aAAa;;QAEpBtG,EAAOuG,QAAQvG,EAAOqG,QAAQE;AACtC;EACI,mBAAAI,CAAoB3G;IAChB,IAAIA,EAAOqG,QAAQ4B,QAAQ;MACvB,MAAMG,IAAgBzK,KAAK0K,0BAA0BrI,MACjDrC,KAAK2K,sBAAsBtI;MAC/BA,EAAOU,OAAO,IAAIE,QAAQZ,EAAOqG,QAAQE,QAAQ6B,EAAc/B,QAAQE,QACjE6B,EAAc1H,KAAK6G,OACnBa,EAAc1H,KAAK8G,OAAOY,EAAc1H,KAAKO,GAAG,GAAGmH,EAAc1H,KAAKS;AACxF;AACA;EACI,yBAAAkH,CAA0BJ;IACtB,IAAIM;IACJ5K,KAAKqI,QAAQU,SAAQ1G;MACjB,KAAKA,EAAOqG,QAAQ4B,UAChBjI,EAAOqG,QAAQE,QAAQ0B,EAAO5B,QAAQE,WACpCgC,KAAYvI,EAAOqG,QAAQE,QAAQgC,EAASlC,QAAQE,QAAQ;QAC9DgC,IAAWvI;AAC3B;AAAA;IAEQ,OAAOuI;AACf;EACI,qBAAAD,CAAsBL;IAClB,IAAIO;IACJ7K,KAAKqI,QAAQU,SAAQ1G;MACjB,KAAKA,EAAOqG,QAAQ4B,UAChBjI,EAAOqG,QAAQE,QAAQ0B,EAAO5B,QAAQE,WACpCiC,KAAQxI,EAAOqG,QAAQE,QAAQiC,EAAKnC,QAAQE,QAAQ;QACtDiC,IAAOxI;AACvB;AAAA;IAEQ,OAAOwI;AACf;;;AC3KO,MAAMC;EACTC;EACAC,kBAAoB,IAAIC,iBAAiBjL,KAAKkL,cAAc/C,KAAKnI;EACjEmL,qBAAuB,IAAIC,eAAepL,KAAKqL,oBAAoBlD,KAAKnI;EACxEqI;EACAiD,eAAiB;EACjBC,aAAe;EACf,WAAA1L,CAAYkL;IACR/K,KAAK+K,UAAUA;IACf/K,KAAKqI,UAAU7F,MAAMC,KAAKzC,KAAK+K,QAAQ5K,KAAKuC,iBAAiB;IAC7D1C,KAAKwL;IACLxL,KAAKyL,cAAczL,KAAKqI;IACxBrI,KAAK0L;IACL1L,KAAK2L;IACL3L,KAAK4L;AACb;EACI,SAAAC,CAAUrD;IACN,OAAOxI,KAAKqI,QAAQQ,MAAKxG,KAAUA,EAAOmG,aAAaA;AAC/D;EACI,UAAAsD,CAAWC,IAAS;IAChB,IAAIA,GAAQ;MACR,OAAO/L,KAAKqI,QAAQ2D,KAAKhM,KAAKiM;AAC1C;IACQ,OAAOjM,KAAKqI;AACpB;EACI,mBAAA8B;IACI,IAAII;IACJ,IAAIC;IACJxK,KAAKqI,QAAQU,SAAQ1G;MACjB,KAAKA,EAAOiI,YACNC,KAAelI,EAAOuG,QAAQ2B,EAAY3B,QAAQ;QACpD2B,IAAclI;AAC9B;MACY,KAAKA,EAAOiI,YAAYE,KAAcnI,EAAOuG,QAAQ4B,EAAW5B,QAAQ;QACpE4B,IAAanI;AAC7B;AAAA;IAEQ,OAAO;MACHkI;MACAC;;AAEZ;EACI,iBAAA0B;IACI,OAAOlM,KAAKqI,QAAQQ,MAAKxG,KAAUA,EAAO8J,eAAe,UAAU9J,EAAO+J;AAClF;EACI,iBAAAT;IACI,MAAMU,IAAcrM,KAAKqI,QACpBmB,QAAOnH,KAAUA,EAAOgH,WAAW,UACnC2C,KAAKhM,KAAKiM;IACf,MAAMK,IAAWtM,KAAKqI,QACjBmB,QAAOnH,KAAUA,EAAOgH,WAAW,WAAWhH,EAAOgH,WAAW,QAChE2C,KAAKhM,KAAKiM;IACf,MAAMM,IAAYvM,KAAKqI,QAClBmB,QAAOnH,KAAUA,EAAOgH,WAAW,QACnC2C,KAAKhM,KAAKiM;IACf,IAAIrD,IAAQ;IACZyD,EAAYtD,SAAQ1G,KAAWA,EAAOuG,QAAQA;IAC9C0D,EAASvD,SAAQ1G,KAAWA,EAAOuG,QAAQA;IAC3C2D,EAAUxD,SAAQ1G,KAAWA,EAAOuG,QAAQA;AACpD;EACI,aAAA6C,CAAcpD;IACVA,EAAQU,SAAQ1G;MACZrC,KAAKwM,eAAenK;MACpBrC,KAAKyM,kBAAkBpK;MACvBrC,KAAK0M,kBAAkBrK;MACvBrC,KAAK2M,iBAAiBtK;MACtBrC,KAAK4M,4BAA4BvK;MACjCrC,KAAK6M,2BAA2BxK;MAChCrC,KAAK8M,iBAAiBzK;AAAO;AAEzC;EACI,cAAAmK,CAAenK;IACXA,EAAOmG,aAAaxI,KAAK+M;AACjC;EACI,iBAAAN,CAAkBpK;IACdA,EAAOC,gBAAgBtC,KAAKqI,QAAQzB,QAAQvE,KAAU;AAC9D;EACI,iBAAAqK,CAAkBrK;IACdA,EAAOuG,UAAUvG,EAAOC;AAChC;EACI,gBAAAqK,CAAiBtK;IACbA,EAAO2K,SAAS;AACxB;EACI,2BAAAJ,CAA4BvK;IACxB,IAAIA,EAAO4K,yBAAyB5K,EAAOiI,QAAQ;MAC/C,MAAM4C,IAAIlN,KAAKsL,eAAe6B,KAAKC,SAASC,cAAc,6BAA6B;MACvFrN,KAAKsL,eAAe4B,GAAGrM,aAAa,QAAQ;MAC5Cb,KAAKsL,eAAe4B,GAAGrM,aAAa,SAASwB,EAAO4K;MACpDjN,KAAKsL,eAAe4B,GAAG7K,SAASA;MAChCrC,KAAK+K,QAAQ5K,KAAKmN,YAAYtN,KAAKsL,eAAe4B;AAC9D;AACA;EACI,0BAAAL,CAA2BxK;IACvBrC,KAAKmL,qBAAqBoC,QAAQlL,GAAQ;MAAEmL,KAAK;;AACzD;EACI,gBAAAV,CAAiBzK;IACb,QAAQA,EAAO8J;KACX,KAAK;MACDnM,KAAK+K,QAAQ5K,KACRuC,iBAAiB,0BAA0BL,EAAOC,kBAClDyG,SAASnG;QACVA,EAAK6D,OAAOjB,EAAeqC;AAAQ;MAEvC;;KACJ,KAAK;MACD7H,KAAK+K,QAAQ5K,KACRuC,iBAAiB,0BAA0BL,EAAOC,kBAClDyG,SAASnG;QACVA,EAAKqD,UAAU5D,EAAOoL;QACtB7K,EAAKsD,cAAc7D,EAAO+J;QAC1BxJ,EAAKuD,aAAa9D,EAAOqL;QACzB9K,EAAK6D,OAAOjB,EAAemC;AAAI;MAEnC;;AAEhB;EACI,sBAAA+D;IACI,MAAMiC,IAAO3N,KAAK+K,QAAQ5K,KAAKyN;IAC/B,MAAMnJ,IAAQkJ,EAAK/L,cAAc;IACjC,KAAK6C,KACDD,SAASC,EAAMnE,aAAa,mBAAmBN,KAAKqI,QAAQwF,QAAQ;MACpE,IAAIC,IAAY;MAChB,KAAK,IAAIZ,IAAI,GAAGA,KAAKlN,KAAKqI,QAAQwF,QAAQX,KAAK;QAC3CY,KAAa,4BAA4BZ,8BAA8BA,+DAC/BA,gFACIA,eAAeA,0EACPA,uFACAA,wFACCA,sFACHA,mFACAA,oFACCA,uEACdA,wEACCA,yFAEPA,+DACSA,2EACGA,gLAEdA,yGACqDA,4EACvCA,qIAEdA,qEACSA;AAGtD;MACY,MAAMa,IAAiB,6BACzBD;MAEE,IAAIrJ,GAAO;QACPA,EAAM5D,aAAa,gBAAgBb,KAAKqI,QAAQwF,OAAO5I;QACvDR,EAAMuD,YAAY+F;AAClC,aACiB,IAAIJ,aAAgBK,UAAU;QAC/BL,EAAKM,KAAKC,mBAAmB,aAAa,uDAAuDlO,KAAKqI,QAAQwF,WAAWE;AACzI,aACiB,IAAIJ,aAAgBQ,YAAY;QACjC,MAAMC,IAAIhB,SAASC,cAAc;QACjCe,EAAEC,KAAK;QACPD,EAAEE,QAAQjG,UAAUrI,KAAKqI,QAAQwF,OAAO5I;QACxCmJ,EAAEG,YAAYR;QACdJ,EAAKL,YAAYc;AACjC;AACA;AACA;EACI,eAAAI,CAAgBnG;IACZA,EAAQU,SAAQ1G;MACZrC,KAAKmL,qBAAqBsD,UAAUpM;MACpCrC,KAAKsL,eACA9B,QAAOkF,KAAiBA,EAAcrM,WAAWA,IACjD0G,SAAQD;QACTA,EAAK7H;AAAQ;AACf;AAEd;EACI,gBAAAuK;IACIxL,KAAKgL,kBAAkBuC,QAAQvN,KAAK+K,QAAQ5K,KAAKyB,cAAc,sBAAsB;MAAE+M,WAAW;;AAC1G;EACI,aAAAzD;IACI,MAAM7C,IAAU7F,MAAMC,KAAKzC,KAAK+K,QAAQ5K,KAAKuC,iBAAiB;IAC9D,MAAMkM,IAAevG,EAAQmB,QAAOnH,MAAWrC,KAAKqI,QAAQwG,SAASxM;IACrE,MAAMyM,IAAiB9O,KAAKqI,QAAQmB,QAAOnH,MAAWgG,EAAQwG,SAASxM;IACvE,IAAIuM,EAAaf,UAAUiB,EAAejB,QAAQ;MAC9C7N,KAAKqI,UAAUA;MACfrI,KAAKwO,gBAAgBM;MACrB9O,KAAKyL,cAAcmD;MACnB5O,KAAK0L;MACL1L,KAAK+O;MACL/O,KAAK4L;AACjB;AACA;EACI,mBAAAP,CAAoB2D;IAChB,KAAK,MAAMC,KAASD,GAAS;MACzB,MAAM3M,IAAS4M,EAAMC;MACrBlP,KAAKuL,aAAalJ,EAAOC,gBAAgB,KAAK2M,EAAME,YAAY5L;AAC5E;IACQvD,KAAK+K,QAAQqE,wBAAwBpP,KAAKuL;AAClD;EACI,iBAAAwB;IACI,MAAMsC,IAAWC,KAAKC,MAAMtK,SAAS,MAAMuK,KAAKC,SAASxK,SAAS,IAAIyK,UAAU;IAChF,OAAO,uBAAuBL;AACtC;EACI,YAAAN;;IAEI/O,KAAKqI,QAAQU,SAAQ,CAAC1G,GAAQ6K,MAAO7K,EAAOC,gBAAgB4K,IAAI;;QAEhE,KAAIlN,KAAKqI,UAAS2D,KAAKhM,KAAKiM,eAAelD,SAAQ,CAAC1G,GAAQ6K;MACxD7K,EAAOuG,QAAQsE,IAAI;AAAC;AAEhC;EACI,eAAAtB;IACI5L,KAAK+K,QAAQ4E,aAAa3P,KAAKqI,QAAQwF;AAC/C;EACI,aAAA5B,CAAc2D,GAASC;IACnB,IAAID,EAAQhH,QAAQiH,EAAQjH,OAAO;MAC/B,QAAQ;AACpB;IACQ,IAAIgH,EAAQhH,QAAQiH,EAAQjH,OAAO;MAC/B,OAAO;AACnB;IACQ,OAAO;AACf;;;AChOO,MAAMkH;EACT/E;EACAgF;EACAC;EACAC;EACAC,mBAAqB;IACjBC,YAAY;IACZC,cAAc;IACdC,cAAc;;EAElBC;EACAC;EACAC;EACA,WAAA3Q,CAAYkL;IACR/K,KAAK+K,UAAUA;AACvB;EACI,MAAA0F,CAAOC,GAAO5J,GAAKlE,GAAM+N,GAAQtJ,GAAOuJ;IACpC,IAAI5Q,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,QAAQ;MAC/C,OAAO7Q,KAAKkQ;AACxB;IACQ,IAAIlQ,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,YAAY;MACnDF,IAAS;MACTtJ,IAAQ;AACpB;IACQ,IAAI8I,IAAaO,EAAMP;IACvB,IAAIC,IAAeM,EAAMN;IACzB,IAAIC,IAAeK,EAAML;IACzBF,IAAarJ;IACb,IAAIO,GAAO;MACP,MAAMyJ,IAAY9Q,KAAK+K,QAAQgG,aAAa/Q,KAAK+P,cAAcjJ,GAAKA;MACpE,IAAI9G,KAAKgQ,YAAY;QACjB,IAAIW,GAAQ;UACRP,IAAe5N,MAAMC,KAAK,IAAIuO,IAAIZ,EAAaa,OAAOH;AAC1E,eACqB;UACDV,IACIA,EAAavC,WAAWiD,EAAUjD,SAASuC,IAAeU;AAClF;QACgBT,IACIzN,KACIkE,EAAI1E,QAAQiO,GAAchO,UAAUrC,KAAK+K,QAAQmG;AACzE,aACiB;QACDd,IAAeA,EAAa5G,QAAO2H,MAAgBL,EAAUjC,SAASsC;QACtEd,IAAe;AAC/B;AACA,WACa,IAAIM,GAAQ;MACb3Q,KAAK+P,aAAajJ;MAClB9G,KAAKgQ,cAAclJ,EAAI5F;MACvB,IAAIkP,EAAavB,SAAS/H,IAAM;QAC5BsJ,IAAeA,EAAa5G,QAAO2H,KAAeA,MAAgBrK;QAClEuJ,IAAe;AAC/B,aACiB;QACDD,IAAe,KAAIA,GAActJ;QACjCuJ,IACIzN,KACIkE,EAAI1E,QAAQiO,GAAchO,UAAUrC,KAAK+K,QAAQmG;AACzE;AACA,WACa;MACDlR,KAAK+P,aAAajJ;MAClB9G,KAAKgQ,aAAa;MAClB,MAAMI,EAAavC,WAAW,KAAKuC,EAAa,OAAOtJ,QACjD8J,KAAWR,EAAavB,SAAS/H,KAAO;QAC1CsJ,IAAe,EAACtJ;AAChC;MACYuJ,IACIzN,KACIkE,EAAI1E,QAAQiO,GAAchO,UAAUrC,KAAK+K,QAAQmG;AACrE;IACQ,OAAO;MAAEf;MAAYC;MAAcC;;AAC3C;EACI,SAAAe,CAAUV,GAAOjQ,IAAQ;IACrB,IAAIT,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,QAAQ;MAC/C,OAAO7Q,KAAKkQ;AACxB;IACQ,MAAMmB,IAAOrR,KAAK+K,QAAQuG;IAC1B,IAAInB,IAAaO,EAAMP;IACvB,IAAIC,IAAeM,EAAMN;IACzB,IAAIC,IAAeK,EAAML;IACzB,IAAI5P,GAAO;MACP0P,MAAenQ,KAAK+K,QAAQwG;MAC5BnB,IAAeiB;MACfhB,IAAeF,EAAW/N,QAAQsO,EAAML,cAAchO,UAAUrC,KAAK+K,QAAQmG;AACzF,WACa;MACDf,MAAenQ,KAAK+K,QAAQwG;MAC5BnB,IAAe;MACfC,IAAe;AAC3B;IACQ,OAAO;MAAEF;MAAYC;MAAcC;;AAC3C;EACI,SAAAmB,CAAUd,GAAO5J,GAAKlE,GAAMnC,IAAQ;IAChC,IAAIkQ,IAAS;IACb,IAAI3Q,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,QAAQ;MAC/C,OAAO7Q,KAAKkQ;AACxB;IACQ,IAAIlQ,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,YAAY;MACnDF,IAAS;AACrB;IACQ,IAAIR,IAAaO,EAAMP;IACvB,IAAIC,IAAeM,EAAMN;IACzB,IAAIC,IAAeK,EAAML;IACzBF,IAAarJ;IACb,IAAIrG,GAAO;MACP,IAAIkQ,GAAQ;QACRP,IAAeA,EAAavB,SAAS/H,KAC/BsJ,IACA,KAAIA,GAActJ;AACxC,aACiB;QACDsJ,IAAeA,EAAavB,SAAS/H,KAAOsJ,IAAe,EAACtJ;AAC5E;MACYuJ,IAAezN;AAC3B,WACa;MACDwN,KAAgBA,EAAavB,SAAS/H,KAChCsJ,IACAA,EAAa5G,QAAO2H,KAAeA,MAAgBrK;MACzDuJ,IAAe;AAC3B;IACQ,OAAO;MAAEF;MAAYC;MAAcC;;AAC3C;EACI,cAAAoB,CAAef,GAAOC;IAClB,IAAI3Q,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,QAAQ;MAC/C,OAAO7Q,KAAKkQ;AACxB;IACQ,IAAIlQ,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,YAAY;MACnDF,IAAS;AACrB;IACQ,MAAMe,IAAW1R,KAAK+K,QAAQwG;IAC9B,IAAIpB,IAAaO,EAAMP;IACvB,IAAIC,IAAeM,EAAMN;IACzB,IAAIC,IAAeK,EAAML;IACzB,IAAIqB,GAAU;MACV,IAAIf,GAAQ;QACR,MAAMG,IAAY9Q,KAAK+K,QAAQgG,aAAaZ,KAAcuB,GAAUA;QACpEtB,IAAe5N,MAAMC,KAAK,IAAIuO,IAAIZ,EAAaa,OAAOH;AACtE,aACiB;QACDV,IAAe,EAACsB;AAChC;MACYvB,IAAauB;MACbrB,IAAeqB,EAAStP,QAAQsO,EAAML,cAAchO,UAAUrC,KAAK+K,QAAQmG;AACvF;IACQ,OAAO;MAAEf;MAAYC;MAAcC;;AAC3C;EACI,iBAAAsB,CAAkBjB,GAAOC;IACrB,IAAI3Q,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,QAAQ;MAC/C,OAAO7Q,KAAKkQ;AACxB;IACQ,IAAIlQ,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,YAAY;MACnDF,IAAS;AACrB;IACQ,MAAMiB,IAAc5R,KAAK+K,QAAQ8G,eAAenB,EAAMP;IACtD,IAAIA,IAAaO,EAAMP;IACvB,IAAIC,IAAeM,EAAMN;IACzB,IAAIC,IAAeK,EAAML;IACzB,IAAIuB,GAAa;MACb,IAAIjB,GAAQ;QACR,MAAMmB,IAAqB9R,KAAK+R,iBAAiB3B;QACjD,MAAM4B,IAAwBhS,KAAKgS,sBAAsBF;QACzD,IAAIE,KAAyB7B,MAAe2B,EAAmB,IAAI;UAC/D1B,IAAe,KAAIA,GAAcwB;AACrD,eACqB,IAAII,KACL7B,MAAe2B,EAAmBA,EAAmBjE,SAAS,IAAI;UAClEuC,IAAeA,EAAa6B,MAAM,IAAI;AAC1D,eACqB;UACD7B,IAAe,EAACD,GAAYyB;AAChD;AACA,aACiB;QACDxB,IAAe,EAACwB;AAChC;MACYzB,IAAayB;MACbvB,IAAeuB,EAAYxP,QAAQiO,GAAchO,UAAUrC,KAAK+K,QAAQmG;AACpF;IACQ,OAAO;MAAEf;MAAYC;MAAcC;;AAC3C;EACI,aAAA6B,CAAcxB,GAAOC;IACjB,IAAI3Q,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,QAAQ;MAC/C,OAAO7Q,KAAKkQ;AACxB;IACQ,IAAIlQ,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,YAAY;MACnDF,IAAS;AACrB;IACQ,MAAMwB,IAAUnS,KAAK+K,QAAQqH,WAAW1B,EAAMP;IAC9C,IAAIA,IAAaO,EAAMP;IACvB,IAAIC,IAAeM,EAAMN;IACzB,IAAIC,IAAeK,EAAML;IACzB,IAAI8B,GAAS;MACT,IAAIxB,GAAQ;QACR,MAAMmB,IAAqB9R,KAAK+R,iBAAiB3B;QACjD,MAAM4B,IAAwBhS,KAAKgS,sBAAsBF;QACzD,IAAIE,KACA7B,MAAe2B,EAAmBA,EAAmBjE,SAAS,IAAI;UAClEuC,IAAe,KAAIA,GAAc+B;AACrD,eACqB,IAAIH,KACL7B,MAAe2B,EAAmB,IAAI;UACtC1B,IAAeA,EAAa6B,MAAM;AACtD,eACqB;UACD7B,IAAe,EAACD,GAAYgC;AAChD;AACA,aACiB;QACD/B,IAAe,EAAC+B;AAChC;MACYhC,IAAagC;MACb9B,IAAe8B,EAAQ/P,QAAQiO,GAAchO,UAAUrC,KAAK+K,QAAQmG;AAChF;IACQ,OAAO;MAAEf;MAAYC;MAAcC;;AAC3C;EACI,aAAAgC,CAAc3B,GAAOC;IACjB,IAAI3Q,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,QAAQ;MAC/C,OAAO7Q,KAAKkQ;AACxB;IACQ,IAAIlQ,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,YAAY;MACnDF,IAAS;AACrB;IACQ,MAAMe,IAAW1R,KAAK+K,QAAQuH;IAC9B,IAAInC,IAAaO,EAAMP;IACvB,IAAIC,IAAeM,EAAMN;IACzB,IAAIC,IAAeK,EAAML;IACzB,IAAIqB,GAAU;MACV,IAAIf,GAAQ;QACR,MAAMG,IAAY9Q,KAAK+K,QAAQgG,aAAaZ,KAAcuB,GAAUA;QACpEtB,IAAe5N,MAAMC,KAAK,IAAIuO,IAAIZ,EAAaa,OAAOH;AACtE,aACiB;QACDV,IAAe,EAACsB;AAChC;MACYvB,IAAauB;MACbrB,IAAeqB,EAAStP,QAAQsO,EAAML,cAAchO,UAAUrC,KAAK+K,QAAQmG;AACvF;IACQ,OAAO;MAAEf;MAAYC;MAAcC;;AAC3C;EACI,qBAAAkC,CAAsB7B,GAAOC;IACzB,IAAI3Q,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,QAAQ;MAC/C,OAAO7Q,KAAKkQ;AACxB;IACQ,IAAIlQ,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,YAAY;MACnDF,IAAS;AACrB;IACQ,MAAMU,IAAOrR,KAAK+K,QAAQuG;IAC1B,MAAMkB,IAAcxS,KAAK+K,QAAQ0H;IACjC,IAAItC,IAAaO,EAAMP;IACvB,IAAIC,IAAeM,EAAMN;IACzB,IAAIC,IAAeK,EAAML;IACzB,MAAMqC,IAAkBrB,EAAK7B,KAAKmD,IAAItB,EAAKzK,QAAQuJ,KAAcqC,GAAa;IAC9E,IAAIE,GAAiB;MACjB,IAAI/B,GAAQ;QACR,MAAMG,IAAY9Q,KAAK+K,QAAQgG,aAAaZ,KAAcuC,GAAiBA;QAC3EtC,IAAe5N,MAAMC,KAAK,IAAIuO,IAAIZ,EAAaa,OAAOH;AACtE,aACiB;QACDV,IACIA,EAAavC,WAAW,KAAKuC,EAAa,OAAOsC,IAC3CtC,IACA,EAACsC;AAC3B;MACYvC,IAAauC;MACbrC,IAAeqC,EAAgBtQ,QAAQsO,EAAML,cAAchO,UAAUrC,KAAK+K,QAAQmG;AAC9F;IACQ,OAAO;MAAEf;MAAYC;MAAcC;;AAC3C;EACI,iBAAAuC,CAAkBlC,GAAOC;IACrB,IAAI3Q,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,QAAQ;MAC/C,OAAO7Q,KAAKkQ;AACxB;IACQ,IAAIlQ,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,YAAY;MACnDF,IAAS;AACrB;IACQ,MAAMU,IAAOrR,KAAK+K,QAAQuG;IAC1B,MAAMkB,IAAcxS,KAAK+K,QAAQ0H;IACjC,IAAItC,IAAaO,EAAMP;IACvB,IAAIC,IAAeM,EAAMN;IACzB,IAAIC,IAAeK,EAAML;IACzB,MAAMwC,IAAcxB,EAAK7B,KAAKsD,IAAIzB,EAAKzK,QAAQuJ,KAAcqC,GAAanB,EAAKxD,SAAS;IACxF,IAAIgF,GAAa;MACb,IAAIlC,GAAQ;QACR,MAAMG,IAAY9Q,KAAK+K,QAAQgG,aAAaZ,KAAc0C,GAAaA;QACvEzC,IAAe5N,MAAMC,KAAK,IAAIuO,IAAIZ,EAAaa,OAAOH;AACtE,aACiB;QACDV,IACIA,EAAavC,WAAW,KAAKuC,EAAa,OAAOyC,IAC3CzC,IACA,EAACyC;AAC3B;MACY1C,IAAa0C;MACbxC,IAAewC,EAAYzQ,QAAQsO,EAAML,cAAchO,UAAUrC,KAAK+K,QAAQmG;AAC1F;IACQ,OAAO;MAAEf;MAAYC;MAAcC;;AAC3C;EACI,kBAAA0C,CAAmBrC;IACf,IAAI1Q,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,QAAQ;MAC/C,OAAO7Q,KAAKkQ;AACxB;IACQ,MAAMC,IAAaO,EAAMP;IACzB,IAAIC,IAAeM,EAAMN;IACzB,IAAIC,IAAeK,EAAML;IACzB,IAAIA,GAAc;MACd,MAAM2C,IAAWhT,KAAK+K,QAAQkI,gBAAgB5C;MAC9C,IAAI2C,GAAU;QACV3C,IAAe2C;AAC/B;AACA,WACa;MACD,KAAK5C,EAAavB,SAASsB,IAAa;QACpCC,IAAe,KAAIA,GAAcD;AACjD;MACYE,MAAiBF,EAAW/N,QAAQpC,KAAK+K,QAAQmG;AAC7D;IACQ,OAAO;MAAEf;MAAYC;MAAcC;;AAC3C;EACI,cAAA6C,CAAexC;IACX,IAAI1Q,KAAK+K,QAAQ5K,KAAK0Q,qBAAqB,QAAQ;MAC/C,OAAO7Q,KAAKkQ;AACxB;IACQ,MAAMC,IAAaO,EAAMP;IACzB,IAAIC,IAAeM,EAAMN;IACzB,IAAIC,IAAeK,EAAML;IACzB,IAAIA,GAAc;MACd,MAAM2C,IAAWhT,KAAK+K,QAAQoI,YAAY9C;MAC1C,IAAI2C,GAAU;QACV3C,IAAe2C;AAC/B;AACA,WACa;MACD,KAAK5C,EAAavB,SAASsB,IAAa;QACpCC,IAAe,KAAIA,GAAcD;AACjD;MACYE,MAAiBF,EAAW/N,QAAQpC,KAAK+K,QAAQmG;AAC7D;IACQ,OAAO;MAAEf;MAAYC;MAAcC;;AAC3C;EACI,OAAA+C,CAAQtM,GAAKI,GAASG,GAAOgM;IACzB,IAAIvM,GAAK;MACL,IAAIO,GAAO;QACP,MAAM5G,KAASqG,EAAIzF;QACnB,MAAMgQ,IAAOrR,KAAK+K,QAAQgG,aAAa/Q,KAAKiQ,iBAAiBnJ,GAAKA;QAClE9G,KAAKiQ,gBAAgBnJ;QACrB,IAAIrG,GAAO;UACP,OAAO4S,EAAkBpC,OAAOI,EAAK7H,QAAO1C,MAAQuM,EAAkBxE,SAAS/H;AACnG;QACgB,OAAOuM,EAAkB7J,QAAO1C,MAAQuK,EAAKxC,SAAS/H;AACtE;MACY9G,KAAKiQ,gBAAgBnJ;MACrB,IAAII,MAAYmM,EAAkBxE,SAAS/H,IAAM;QAC7C,OAAOuM,EAAkBpC,OAAO,EAACnK;AACjD;MACY,KAAKI,KAAWmM,EAAkBxE,SAAS/H,IAAM;QAC7C,OAAOuM,EAAkB7J,QAAO8J,KAAKA,MAAMxM;AAC3D;AACA;IACQ,OAAOuM;AACf;EACI,WAAAE,CAAY9S,IAAQ;IAChB,IAAIA,GAAO;MACP,OAAOT,KAAK+K,QAAQuG;AAChC;IACQ,OAAO;AACf;EACI,eAAAkC,CAAgBnC,GAAMzG,IAAW,IAAI6I;IACjC,MAAMC,IAAiB1T,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,IAAIwH,GAAgBC,wBAAwBF,GAAc;MACtD,MAAMG,IAAsBF,EAAepR,gBAAgB;MAC3DsI,GACMpB,QAAOnG,MAAMgO,EAAKxC,SAASxL,KAC5B0F,SAAQjC;QACTA,EAAIzF,SAAS;QACb,MAAMuB,IAAOkE,EAAI+M,SAASD;QAC1BhR,EAAKqE,mBAAmB;AAAM;MAElCoK,GAAMtI,SAAQjC;QACVA,EAAIzF,SAASqS,EAAeC,wBAAwB;QACpD,MAAM/Q,IAAOkE,EAAI+M,SAASD;QAC1BhR,EAAKqE,mBAAmB;AAAK;MAEjC,IAAIoK,EAAKxD,WAAW,GAAG;QACnB6F,EAAeI,uBAAuB;AACtD,aACiB,IAAIzC,EAAKxD,WAAW7N,KAAK+K,QAAQuG,UAAUzD,QAAQ;QACpD6F,EAAeI,uBAAuB;AACtD,aACiB;QACDJ,EAAeI,uBAAuB;AACtD;AACA;AACA;EACI,gBAAA/B,CAAiB3B;IACb,MAAMiB,IAAO7O,MAAMC,KAAKzC,KAAK+K,QAAQ5K,KAAKuC,iBAAiB;IAC3D,OAAO0N,EAAapE,MAAK,CAAC+H,GAAMC;MAC5B,MAAMC,IAAY5C,EAAKzK,QAAQmN;MAC/B,MAAMG,IAAY7C,EAAKzK,QAAQoN;MAC/B,IAAIC,IAAYC,GAAW;QACvB,QAAQ;AACxB;MACY,IAAID,IAAYC,GAAW;QACvB,OAAO;AACvB;MACY,OAAO;AAAC;AAEpB;EACI,qBAAAlC,CAAsBF;IAClB,MAAMT,IAAO7O,MAAMC,KAAKzC,KAAK+K,QAAQ5K,KAAKuC,iBAAiB,gBAAgB8G,QAAO1C,KAAOA,EAAIvE;IAC7F,IAAIuP,EAAmBjE,WAAW,GAAG;MACjC,OAAO;AACnB;IACQ,IAAIiE,EAAmBjE,WAAW,GAAG;MACjC,OAAO;AACnB;IACQ,MAAMsG,IAAa9C,EAAKzK,QAAQkL,EAAmB;IACnD,MAAMsC,IAAW/C,EAAKzK,QAAQkL,EAAmBA,EAAmBjE,SAAS;IAC7E,OAAOuG,IAAWD,IAAa,MAAMrC,EAAmBjE;AAChE;;;ACraO,MAAMwG;EACTtJ;EACAjE;EACAwN;EACAC;EACAC,gBAAkBxU,KAAKyU,qBAAqBtM,KAAKnI;EACjD,WAAAH,CAAYkL;IACR/K,KAAK+K,UAAUA;AACvB;EACI,SAAA2J,CAAU5N;IACN9G,KAAK8G,MAAMA;IACX9G,KAAKsU,WAAWtU,KAAK+K,QAAQ4J,gBAAgB7N;IAC7C9G,KAAK4U;IACL5U,KAAK6U;IACL7U,KAAK8U;IACL9U,KAAK+U;AACb;EACI,oBAAAN,CAAqBhR;IACjB,MAAMyL,IAASzL,EAAUyL;IACzB,MAAM8F,IAAW9F,EAAOrL,QAAQ;IAChC,IAAImR,KACAA,EAAS1P,kBAAkBtF,KAAK8G,IAAIxB,iBACpC0P,EAAS7U,SAASH,KAAK+K,QAAQ5K,MAAM;MACrC,MAAM8U,IAAgBjV,KAAK+K,QAAQ4J,gBAAgBK;MACnD,MAAME,IAAuBD,IAAgB;;YAC7C,MAAME,IAAiBnV,KAAKsU,WAAWW,KAAiB,IAAI;MAC5D,IAAIjV,KAAKuU,UAAU9P,MAAMC,iBAAiB,8BACtC,GAAGwQ,KAAwB;QAC3BlV,KAAKuU,UAAU9P,MAAMO,YAAY,0BAA0B,GAAGkQ;AAC9E,aACiB;QACDlV,KAAKuU,UAAU9P,MAAMO,YAAY,0BAA0B,GAAGkQ,IAAuBC;AACrG;MACYnV,KAAK+U;AACjB;AACA;EACI,kBAAAK;IACIhI,SAASiI,oBAAoB,aAAarV,KAAKwU;IAC/C,MAAMc,IAAe9Q,SAASxE,KAAKuU,UAAU9P,MAAMC,iBAAiB;IACpE,MAAM6Q,IAAUvV,KAAK+K,QAAQ5K,KACxBuC,iBAAiB,eACjBoG,KAAKwM,IAAe;IACzB,IAAIA,IAAetV,KAAKsU,WAAW,GAAG;MAClCiB,EAAQC,OAAOxV,KAAK8G;AAChC;IACQ,IAAIwO,IAAetV,KAAKsU,WAAW,GAAG;MAClCiB,EAAQE,MAAMzV,KAAK8G;AAC/B;IACQ9G,KAAK0V;IACL1V,KAAKuU,UAAUtT;IACfjB,KAAK8G,MAAM;IACX9G,KAAKuU,YAAY;AACzB;EACI,eAAAK;IACIxH,SAASnN,iBAAiB,aAAaD,KAAKwU,iBAAiB;MACzDmB,SAAS;;IAEbvI,SAASnN,iBAAiB,WAAWD,KAAKoV,mBAAmBjN,KAAKnI,OAAO;MACrE4V,MAAM;;AAElB;EACI,eAAAf;IACI,MAAMgB,IAAY7V,KAAK+K,QAAQ+K,aAAa9V,KAAK8G;IACjD9G,KAAKuU,YAAYnH,SAASC,cAAc;IACxCrN,KAAKuU,UAAU9P,MAAMsR,UAAU;IAC/B/V,KAAK+K,QAAQiL,kBAAkBjN,SAAQxF;MACnC,MAAMlB,IAAS+K,SAASC,cAAc;MACtChL,EAAOoC,MAAMwR,UAAU;MACvB5T,EAAOoC,MAAMyR,WAAW3S;MACxBlB,EAAOoC,MAAMjB,SAAS,GAAGqS;MACzBxT,EAAOoC,MAAM0R,eAAe;MAC5BnW,KAAKuU,UAAU5D,OAAOtO;AAAO;AAEzC;EACI,QAAAyS;IACI,MAAMvJ,IAAevL,KAAK+K,QAAQiL;IAClC,MAAMI,IAAWpW,KAAK+K,QAAQsL,WAAWC;IACzCtW,KAAK8G,IAAI0O,OAAOxV,KAAKuU;IACrBvU,KAAK8G,IAAIjG,aAAa,YAAY;IAClCb,KAAK8G,IAAIrC,MAAMlB,QAAQ,GAAG6S;IAC1BpW,KAAK8G,IACApE,iBAAiB,yBACjBqG,SAAQ,CAACnG,GAAMsK;MAChB,MAAMqJ,IAAiB/R,SAASxE,KAAK+K,QAAQsL,WAAW5R,MAAMC,iBAAiB,oBAAoBwI,IAAI;MACvG,KAAKtK,EAAK0H,QAAQ;QACd1H,EAAK6B,MAAMlB,QAAQgI,EAAagL,IAAiB;QACjD3T,EAAK6B,MAAMmE,QAAQ,GAAG2N;AACtC;AAAA;AAEA;EACI,UAAAb;IACI1V,KAAK8G,IAAI9F,gBAAgB;IACzBhB,KAAK8G,IAAIrC,MAAMlB,QAAQ;IACvBvD,KAAK8G,IACApE,iBAAiB,yBACjBqG,SAASnG;MACVA,EAAK6B,MAAMlB,QAAQ;MACnBX,EAAK6B,MAAMmE,QAAQ;AAAE;AAEjC;EACI,iBAAAmM;IACI,MAAMhS,IAAO/C,KAAKuU,UAAUV,SAAS,GAAG/Q;IACxC9C,KAAK8G,IAAIrC,MAAM+R,MAAM,GAAGzT,EAAKyT;IAC7BxW,KAAK8G,IAAIrC,MAAMmF,OAAO,GAAG7G,EAAK6G;AACtC;;;ACxGO,MAAM6M;EACT1L;EACA2L;EACAC;EACAC;EACA,WAAA/W,CAAYkL;IACR/K,KAAK+K,UAAUA;IACf/K,KAAK+K,QAAQ5K,KACRuC,iBAAiB,wBAChBqG,SAAQ5C;MACV,IAAIA,EAAWuQ,gBAAgB;QAC3B1W,KAAK0W,iBAAiBvQ;AACtC;MACY,IAAIA,EAAWwQ,kBAAkB;QAC7B3W,KAAK2W,mBAAmBxQ;AACxC;MACY,IAAIA,EAAWyQ,kBAAkB;QAC7B5W,KAAK4W,mBAAmBzQ;AACxC;AAAA;AAEA;;;ACpBO,MAAM0Q;EACT9L;EACA1I;EACAyU;EACAC;EACAC;EACAC;EACAC;EACAxN;EACAyN;EACAC;EACA,WAAAvX,CAAYkL,GAASvC,GAAUF;IAC3BtI,KAAK+K,UAAUA;IACf/K,KAAK0J,gBAAgBpB,KAAS,IAAI;IAClC,IAAItI,KAAK+K,QAAQ5K,KAAKkX,qBAAqB,YAAY;MACnDrX,KAAKmX,aAAanX,KAAKsX;MACvBtX,KAAKoX,cAAcpX,KAAKuX;AACpC,WACa;MACDvX,KAAKmX,aAAanX,KAAKwX;MACvBxX,KAAKoX,cAAc;AAC/B;IACQpX,KAAKqC,SAASrC,KAAK+K,QAAQ1C,QAAQwD,UAAUrD;IAC7CxI,KAAK8W,mBAAmB9W,KAAKqC,OAAOS,wBAAwBS;IAC5DvD,KAAK+W,kBAAkB/W,KAAKyX,cAAczX,KAAKqC,OAAO2K;IACtDhN,KAAKgX,cAAchX,KAAK+K,QAAQ2M,cAAc1X,KAAKqC;IACnDrC,KAAKiX,wBACDjX,KAAKgX,aAAalU,wBAAwBS;IAC9CvD,KAAKkX,uBAAuBlX,KAAKyX,cAAczX,KAAKgX,YAAYhK;AACxE;EACI,QAAA2K,CAASC;IACL5X,KAAKmX,WAAWS;AACxB;EACI,SAAAC;IACI,IAAI7X,KAAKoX,aAAa;MAClBpX,KAAKoX;AACjB;AACA;EACII,eAAkBI;IACd,MAAME,IAAc9X,KAAK8W,mBAAmBc,IAAa5X,KAAK0J;IAC9D,IAAIoO,KAAe,GAAG;MAClB9X,KAAKqC,OAAO2K,OAAO,uBAAuB8K;AACtD;AAAA;EAEIR,iBAAoBM;IAChB,MAAME,IAAc9X,KAAK8W,mBAAmBc,IAAa5X,KAAK0J;IAC9D,IAAIoO,KAAe,GAAG;MAClB,IAAI9X,KAAK+W,iBAAiB;QACtB/W,KAAKqC,OAAO2K,OAAOhN,KAAK+X,YAAY/X,KAAK+W,iBAAiB/W,KAAK8W,kBAAkBgB;AACjG,aACiB;QACD9X,KAAKqC,OAAO2K,OAAO,uBAAuB8K;AAC1D;AACA;IACQ,IAAI9X,KAAKgX,aAAa;MAClB,MAAMgB,IAAmBhY,KAAKiX,wBAAwBW,IAAa5X,KAAK0J;MACxE,IAAIsO,KAAoB,GAAG;QACvB,IAAIhY,KAAKkX,sBAAsB;UAC3BlX,KAAKgX,YAAYhK,OAAOhN,KAAK+X,YAAY/X,KAAKkX,sBAAsBlX,KAAKiX,uBAAuBe;AACpH,eACqB;UACDhY,KAAKgX,YAAYhK,OAAO,uBAAuBgL;AACnE;AACA;AACA;AAAA;EAEI,iBAAAT;IACI,MAAMU,IAAiBjY,KAAKqC,OAAOS,wBAAwBS;IAC3DvD,KAAKqC,OAAO2K,OAAOhN,KAAK+X,YAAY/X,KAAK+W,iBAAiB/W,KAAK8W,kBAAkBmB;IACjF,IAAIjY,KAAKgX,aAAa;MAClB,MAAMkB,IAAsBlY,KAAKiX,yBAAyBgB,IAAiBjY,KAAK8W;MAChF9W,KAAKgX,YAAYhK,OAAOhN,KAAK+X,YAAY/X,KAAK+W,iBAAiB/W,KAAK8W,kBAAkBoB;AAClG;AACA;EACI,aAAAT,CAAcU;IACV,MAAMC,IAAQD,EAASC,MAAM;IAC7B,IAAIA,GAAO;MACP,MAAMC,IAASC,WAAWF,EAAM;MAChC,MAAMG,IAAOH,EAAM;MACnB,OAAO;QAAEC;QAAQE;;AAC7B;IACQ,OAAO;AACf;EACI,WAAAR,CAAYS,GAAWC,GAAYC;IAC/B,OAAO,GAAIA,IAAWF,EAAUH,SAAUI,IAAaD,EAAUD;AACzE;;;AC9EA,IAAII;;CACJ,SAAWA;EACPA,EAAUA,EAAU,gBAAgB,KAAK;EACzCA,EAAUA,EAAU,mBAAmB,KAAK;AAC/C,EAHD,CAGGA,MAAcA,IAAY;;AACtB,MAAMC;EACTC,WAAa,IAAIC;EACjBC;EACAC;EACAC;EACAC;EACA/Y;EACAgZ;EACA9Q;EACAlC;EACA,WAAAtG,CAAYM;IACRH,KAAKG,OAAOA;IACZH,KAAK6Y,WAAWO,WAAW,YAAYT,EAAUU;IACjDrZ,KAAK6Y,WAAWO,WAAW,YAAYT,EAAUW;IACjDtZ,KAAKG,KAAK0E,WAAW0U,mBAAmBpM,KAAKnN,KAAK6Y;IAClDW,EAAsBxZ,KAAKG,KAAK0E,WAAW0U;IAC3CvZ,KAAKqI,UAAU,IAAIyC,EAAqB9K;IACxCA,KAAKmZ,YAAY,IAAIrJ,EAAuB9P;IAC5CA,KAAKmG,aAAa,IAAIsQ,EAAwBzW;AACtD;EACI,cAAIqW;IACA,OAAOrW,KAAK+Y;AACpB;EACI,gBAAAU,CAAiBpD;IACbrW,KAAK+Y,oBAAoB1C;AACjC;EACI,UAAAvK;IACI,OAAO9L,KAAKqI,QAAQyD;AAC5B;EACI,eAAAkK;IACI,OAAO0D,iBAAiB1Z,KAAKqW,YAAYsD,oBAAoB/Y,MAAM;AAC3E;EACI,kBAAAgZ;IACI,MAAMC,IAAoBH,iBAAiB1Z,KAAKqW,YAAYyD,iBAAiBlZ,MAAM;IACnF,OAAO4D,SAASqV,EAAkB,OAAO;AACjD;EACI,cAAA3I;IACI,OAAOlR,KAAKqI,QAAQ8B,sBAAsBI;AAClD;EACI,WAAAgH;IACI,OAAOvR,KAAKG,KAAKyB,cAAc;AACvC;EACI,kBAAAmY;IACI,OAAO/Z,KAAKqW,WAAW2D,YAAYha,KAAK4Z;AAChD;EACI,mBAAAK;IACI,OAAOja,KAAKqI,QAAQyD,WAAW,MAAMoO,QAAO,CAACC,GAAa9X,MAC/CA,EAAOgH,WAAW,YAAYhH,EAAOiI,SACtC6P,IAAc9X,EAAO+X,cACrBD,IACP;AACX;EACI,oBAAAE;IACI,OAAOra,KAAKqI,QAAQyD,WAAW,MAAMoO,QAAO,CAACC,GAAa9X,MAC/CA,EAAOgH,WAAW,UAAUhH,EAAOiI,SACpC6P,IAAc9X,EAAO+X,cACrBD,IACP;AACX;EACI,cAAAtI,CAAeyI;IACX,MAAMjJ,IAAOrR,KAAKsR;IAClB,MAAMpE,IAAImE,EAAKzK,QAAQ0T;IACvB,OAAOjJ,EACFY,MAAM,GAAG/E,GACTqN,UACA1R,MAAK/B,KAAOA,EAAIvE;AAC7B;EACI,UAAA6P,CAAWkI;IACP,MAAMjJ,IAAOrR,KAAKsR;IAClB,MAAMpE,IAAImE,EAAKzK,QAAQ0T;IACvB,OAAOjJ,EAAKY,MAAM/E,IAAI,GAAGrE,MAAK/B,KAAOA,EAAIvE;AACjD;EACI,UAAA+P;IACI,MAAMjB,IAAOrR,KAAKsR;IAClB,OAAOD,EAAKkJ,UAAU1R,MAAK/B,KAAOA,EAAIvE;AAC9C;EACI,iBAAAiY,CAAkBnY;IACd,OAAOrC,KAAKqI,QAAQyD,aAAaoO,QAAO,CAACtP,GAAU0P,MACxCA,EAAQ1R,QAAQvG,EAAOuG,UACzB0R,EAAQhQ,YACPM,KAAY0P,EAAQ1R,QAAQgC,EAAShC,SACrC0R,IACA1P,IACP;AACX;EACI,aAAA8M,CAAcrV;IACV,OAAOrC,KAAKqI,QAAQyD,aAAaoO,QAAO,CAACtP,GAAU0P,MACxCA,EAAQ1R,QAAQvG,EAAOuG,UACzB0R,EAAQhQ,YACPM,KAAY0P,EAAQ1R,QAAQgC,EAAShC,SACrC0R,IACA1P,IACP;AACX;EACI,eAAAqI,CAAgBqH;IACZ,MAAMG,IAAiBza,KAAKwa,kBAAkBF,EAAQjY;IACtD,IAAIoY,GAAgB;MAChB,OAAOH,EAAQxT,IAAIlF,cAAc,qCAAqC6Y,EAAenY;AACjG;AACA;EACI,WAAA6Q,CAAYmH;IACR,MAAMI,IAAa1a,KAAK0X,cAAc4C,EAAQjY;IAC9C,IAAIqY,GAAY;MACZ,OAAOJ,EAAQxT,IAAIlF,cAAc,qCAAqC8Y,EAAWpY;AAC7F;AACA;EACI,eAAAqS,CAAgB7N;IACZ,OAAOtE,MAAMmE,UAAUC,QAAQC,KAAK7G,KAAKG,KAAKuC,iBAAiB,uCAAuCoE;AAC9G;EACI,iBAAA6T,CAAkB7T;IACd,OAAOtE,MAAMmE,UAAUC,QAAQC,KAAKC,EAAIxB,cAAcuO,UAAU/M;AACxE;EACI,YAAAgP,CAAahP;IACT,MAAM8T,IAAiBlB,iBAAiB1Z,KAAKqW,YAAYyD,iBAAiBlZ,MAAM;IAChF,MAAM0T,IAAWtU,KAAK2U,gBAAgB7N,KAAO;IAC7C,OAAOtC,SAASoW,EAAetG,OAAc;AACrD;EACI,cAAA7B;IACI,MAAMoI,IAAa7a,KAAKqW,WAAWyE;IACnC,MAAMC,IAAgB/a,KAAK4Z;IAC3B,MAAM/D,IAAY7V,KAAK8V,aAAa9V,KAAKuR;IACzC,OAAO/B,KAAKwL,OAAOH,IAAaE,KAAiBlF;AACzD;EACI,MAAAoF,CAAO5a;IACH,OAAOL,KAAKG,KAAKyB,cAAc,sBAAsBvB;AAC7D;EACI,OAAAiR,CAAQZ,IAAQ;IACZ,MAAMW,IAAO7O,MAAMC,KAAKzC,KAAKG,KAAKuC,iBAAiB;IACnD,IAAIgO,MAAU,WAAW;MACrB,OAAOW,EAAK7H,QAAO1C,KAAOA,EAAIvE;AAC1C;IACQ,OAAO8O;AACf;EACI,eAAA6J;IACI,OAAO1Y,MAAMC,KAAKzC,KAAKG,KAAKuC,iBAAiB;AACrD;EACI,YAAAqO,CAAaoK,GAAOC;IAChB,MAAM/J,IAAOrR,KAAKsR;IAClB,MAAM+J,IAAahK,EAAKzK,QAAQuU;IAChC,MAAMG,IAAWjK,EAAKzK,QAAQwU;IAC9B,OAAO/J,EACFY,MAAMzC,KAAKsD,IAAIuI,GAAYC,IAAW9L,KAAKmD,IAAI0I,GAAYC,KAAY,GACvE9R,QAAO1C,KAAOA,EAAIvE;AAC/B;EACI,iBAAAgZ,CAAkB9X;IACd,OAAOA,EACF+X,eACA3S,MAAMqG,KAAWA,EAAO7J,YAAY;AACjD;EACI,uBAAAoW,CAAwBhY;IACpB,OAAQA,EACH+X,eACA3S,MAAMqG,KAAWA,EAAO7J,YAAY,2BAA0B;AAC3E;EACI,OAAAjD,CAAQ2E,GAAQ1G,GAAOmI;IACnB,IAAIzB,GAAQ;MACR,OAAO/G,KAAKG,KAAKyB,cAAc,wBAAwBmF;AACnE;IACQ,IAAI1G,KAASmI,GAAU;MACnB,MAAM1B,IAAM9G,KAAKib,OAAO5a;MACxB,MAAMgC,IAASrC,KAAKqI,QAAQwD,UAAUrD;MACtC,IAAI1B,KAAOzE,GAAQ;QACf,OAAOyE,EAAI1E,QAAQC;AACnC;AACA;AACA;EACI,kBAAAqZ,CAAmBjY;IACf,OAAOA,EACF+X,eACA3S,MAAMqG,KAAWA,EAAO7J,YAAY;AACjD;EACI,eAAAsW,CAAgBnT;IACZxI,KAAKgZ,oBAAoB,IAAI5Q,EAAwBI,GAAUxI,KAAKqI,QAAQyD,cAAc9L,KAAK4b;AACvG;EACI,cAAAC,CAAe3S;IACX,OAAOlJ,KAAKgZ,kBAAkB/P,SAASC;AAC/C;EACI,aAAA4S;IACI9b,KAAKgZ,kBAAkBhP;IACvBhK,KAAKgZ,oBAAoB;AACjC;EACI,iBAAA+C,CAAkBvT;IACdxI,KAAKiZ,sBAAsB,IAAIpC,EAA0B7W,MAAMwI,GAAUxI,KAAK4b;AACtF;EACI,cAAAI,CAAepE;IACX5X,KAAKiZ,oBAAoBtB,SAASC;AAC1C;EACI,eAAAqE;IACIjc,KAAKiZ,oBAAoBpB;IACzB7X,KAAKiZ,sBAAsB;AACnC;EACI,YAAAiD,CAAapV;IACT9G,KAAKkZ,iBAAiB,IAAI7E,EAAqBrU;IAC/CA,KAAKkZ,eAAexE,UAAU5N;AACtC;EACI,YAAAqV;IACI,OAAO;MACHpG,SAAS;SACN/V,KAAKoc;SACLpc,KAAKqc;SACLrc,KAAKsc;SACLtc,KAAKuc;;AAEpB;EACI,YAAA5M,CAAalP;IACTT,KAAK6Y,WAAW2D,WAAW7D,EAAUU;IACrCrZ,KAAK6Y,WAAWO,WAAW,iCAAiC3Y,QAAYkY,EAAUU;AAC1F;EACI,uBAAAjK,CAAwB7D;IACpBvL,KAAK6Y,WAAW2D,WAAW7D,EAAUW;IACrCtZ,KAAK6Y,WAAWO,WAAW,WAAW7N,EACjC9C,KAAI,CAACqP,GAAa2E,MAAgB,oBAAoBA,IAAc,WAAW3E,SAC/E4E,KAAK,WAAW/D,EAAUW;AACvC;EACI,gBAAAqD,CAAiB7V;IACb,IAAIvB,IAAOuB,EAAIxB,cAAczB,QAAQ;IACrC,OAAM0G,aAAEA,KAAgBvK,KAAKqI,QAAQ8B;IACrC,OAAO5E,GAAM;MACTA,EAAK1D,YAAY;MACjB0D,IAAOA,EAAKD,cAAczB,QAAQ;AAC9C;IACQ,IAAIiD,EAAI+M,SAAStJ,EAAYjI,gBAAgB;MACzCtC,KAAK6C,cAAciE,EAAI+M,SAAStJ,EAAYjI;AACxD;AACA;EACI,iBAAAsa,CAAkBha;IACd,IAAI2C,IAAO3C,EAAKiB,QAAQ;IACxB,QAAQjB,EAAKL,eAAegD,GAAM;MAC9BA,EAAK1D,YAAY;MACjB0D,IAAOA,EAAKD,cAAczB,QAAQ;AAC9C;IACQ,KAAKjB,EAAKL,aAAa;MACnBK,EAAKP,OAAOiI,SAAS;AACjC;IACQtK,KAAK6C,cAAcD;AAC3B;EACI,aAAAC,CAAcD;IACV,MAAMia,IAAiB,EAAC,SAAS,QAAOhO,SAASjM,EAAKP,OAAOgH;IAC7D,MAAMyT,IAAS9c,KAAKqW;IACpB,MAAM0G,IAAkB/c,KAAK+Z;IAC7B,MAAMiD,IAAmBhd,KAAKia;IAC9B,MAAMgD,IAAoBjd,KAAKqa;IAC/B,IAAIyC,EAAOI,YAAYH,IAAkBna,EAAKoX,WAAW;MACrD8C,EAAOK,SAAS;QACZ3G,MAAMsG,EAAOI,YAAYta,EAAKoX,YAAY+C,MAAoB;;AAE9E,WACa,IAAID,EAAOI,YAAYJ,EAAOM,eAC/Bxa,EAAKoX,YAAYpX,EAAKwa,cAAc;MACpCN,EAAOK,SAAS;QACZ3G,KAAK5T,EAAKoX,YACNpX,EAAKwa,gBACJN,EAAOI,YAAYJ,EAAOM;;AAE/C,WACa,IAAIN,EAAOO,aAAaL,IAAmBpa,EAAK0a,eAChDT,GAAgB;MACjBC,EAAOK,SAAS;QACZvT,OAAOkT,EAAOO,aAAaza,EAAK0a,aAAaN,MAAqB;;AAElF,WACa,IAAIF,EAAOO,aAAaP,EAAOxG,cAAc2G,IAC9Cra,EAAK0a,aAAa1a,EAAKwX,gBACtByC,GAAgB;MACjBC,EAAOK,SAAS;QACZvT,MAAMhH,EAAK0a,aACP1a,EAAKwX,eACJ0C,EAAOO,aAAaP,EAAOxG,cAAc2G;;AAE9D;AACA;EACI,sBAAAb;IACI,OAAO;MACH,yBAAyBpc,KAAKqI,QACzByD,aACArD,KAAIpG,KAAU,wBAAwBA,EAAOC,wBAC7Coa,KAAK;;AAEtB;EACI,wBAAAL;IACI,OAAM9R,aAAEA,GAAWC,YAAEA,KAAexK,KAAKgZ,oBACnChZ,KAAKgZ,kBAAkB7O,wBACvBnK,KAAKqI,QAAQ8B;IACnB,KAAKI,MAAgBC,GAAY;MAC7B,OAAO;AACnB;IACQ,OAAO;MACH,CAAC,oBAAoBD,EAAYjI,+BAA+B;MAChE,CAAC,oBAAoBiI,EAAYjI,+BAA+B;MAChE,CAAC,oBAAoBiI,EAAYjI,gCAAgC;MACjE,CAAC,oBAAoBkI,EAAWlI,6BAA6B;MAC7D,CAAC,oBAAoBkI,EAAWlI,6BAA6B;MAC7D,CAAC,oBAAoBkI,EAAWlI,8BAA8B;;AAE1E;EACI,sBAAAga;IACI,OAAO;MACH,qCAAqCtc,KAAKgZ,oBAAoB,QAAQ;;AAElF;EACI,eAAAuD;IACI,OAAOvc,KAAKqI,QAAQyD,aAAaoO,QAAO,CAACzV,GAAOpC,OACrC;SACAoC;SACAzE,KAAKiK,eAAe5H;SAE5B;AACX;EACI,cAAA4H,CAAe5H;IACX,OAAO;SACArC,KAAKud,mBAAmBlb;SACxBrC,KAAKwd,oBAAoBnb;SACzBrC,KAAKyd,sBAAsBpb;SAC3BrC,KAAK0d,qBAAqBrb;SAC1BrC,KAAK2d,uBAAuBtb;SAC5BrC,KAAK4d,qBAAqBvb;;AAEzC;EACI,kBAAAkb,CAAmBlb;IACf,OAAO;MACH,CAAC,oBAAoBA,EAAOuG,eAAevG,EAAOiI,SAC5C,QACAjI,EAAO2K;;AAEzB;EACI,mBAAAwQ,CAAoBnb;IAChB,OAAO;MACH,CAAC,oBAAoBA,EAAOC,2BAA2BD,EAAOuG,MAAM3D;;AAEhF;EACI,oBAAAyY,CAAqBrb;IACjB,QAAQA,EAAOgH;KACX,KAAK;MACD,OAAOrJ,KAAK6d,0BAA0Bxb;;KAC1C,KAAK;MACD,OAAOrC,KAAK8d,wBAAwBzb;;AAEpD;EACI,yBAAAwb,CAA0Bxb;IACtB,MAAM0b,IAAY,EAAC;IACnB,KAAK,IAAI7Q,IAAI,GAAGA,IAAI7K,EAAOuG,OAAOsE,KAAK;MACnC6Q,EAAU5Q,KAAK,wBAAwBD;AACnD;IACQ,OAAO;MACH,CAAC,oBAAoB7K,EAAOC,8BAA8B,QAAQyb,EAAUrB,KAAK;MACjF,CAAC,oBAAoBra,EAAOC,iCAAiC;;AAEzE;EACI,uBAAAwb,CAAwBzb;IACpB,MAAM0b,IAAY,EAAC;IACnB,KAAK,IAAI7Q,IAAIlN,KAAKqI,QAAQyD,aAAa+B,QAAQX,IAAI7K,EAAOuG,OAAOsE,KAAK;MAClE6Q,EAAU5Q,KAAK,wBAAwBD;AACnD;IACQ,OAAO;MACH,CAAC,oBAAoB7K,EAAOC,+BAA+B,QAAQyb,EAAUrB,KAAK;MAClF,CAAC,oBAAoBra,EAAOC,iCAAiC;;AAEzE;EACI,qBAAAmb,CAAsBpb;IAClB,OAAOA,EAAOiI,SACR;MACE,CAAC,oBAAoBjI,EAAOC,0BAA0B;QAExD;AACd;EACI,sBAAAqb,CAAuBtb;IACnB,OAAOrC,KAAKgZ,oBACNhZ,KAAKgZ,kBAAkB/O,eAAe5H,KACtC;AACd;EACI,oBAAAub,CAAqBvb;IACjB,OAAO;MACH,CAAC,oBAAoBA,EAAOC,0BAA0BD,EAAOuG,UAAU,IAAI,OAAO;;AAE9F;EACI,cAAAgT;IACI,OAAOlC,iBAAiB1Z,KAAKG,MAAM6d,cAAc;AACzD;;;ACrYA,MAAMC,IAAY;;MCSLC,IAAM;EACf,WAAAre,CAAAse;;;;;;;;;IACIne,KAAKmQ,aAAaiO;IAClBpe,KAAKqe,iBAAiBD;IACtBpe,KAAKse,aAAa;IAClBte,KAAKoQ,eAAe;IACpBpQ,KAAKqQ,eAAe+N;IACpBpe,KAAKue,YAAYH;IACjBpe,KAAK6Q,mBAAmB;IACxB7Q,KAAKwe,sBAAsB;IAC3Bxe,KAAKoB,mBAAmBgd;IACxBpe,KAAKW,sBAAsByd;IAC3Bpe,KAAK0B,kBAAkB0c;IACvBpe,KAAKuB,iBAAiB6c;IACtBpe,KAAKye,qBAAqB;IAC1Bze,KAAKqX,mBAAmB;IACxBrX,KAAK0e,eAAeN;;;;;EAMxB,iBAAAO,CAAkB7X,GAAK8D;IACnB,IAAI9D,GAAK;MACLA,EAAItF,UAAU;;IAElB,IAAIoJ,GAAU;MACVA,EAASpJ,UAAU;;;EAG3B,qBAAAod,CAAsB9X,GAAK8D;;;QAEvB,IAAI9D,GAAK;MACLA,EAAIvG,cAAc;;IAEtB,IAAIqK,GAAU;MACVA,EAASrK,cAAc;;;QAG3B,IAAIuG,GAAK;OACL+X,IAAA7e,KAAK+K,QAAQ5E,WAAWuQ,oBAAc,QAAAmI,WAAA,aAAAA,EAAEC,aAAahY;WAEpD;OACDiY,IAAA/e,KAAK+K,QAAQ5E,WAAWuQ,oBAAc,QAAAqI,WAAA,aAAAA,EAAEC;;;EAGhD,iBAAAC,CAAkB5N,GAAMzG;IACpB5K,KAAK+K,QAAQoO,UAAU3F,gBAAgBnC,GAAMzG,GAAU;IACvD5K,KAAKkf,kBAAkBC,KAAK;MACxBC,QAAQ/N,EAAK5I,KAAI3B,KAAOA,EAAIzG;MAC5Bgf,aAAahO,EACR7H,QAAO1C,MAAQ8D,EAASiE,SAAS/H,KACjC2B,KAAI3B,KAAOA,EAAIzG;MACpBif,eAAe1U,EACVpB,QAAO1C,MAAQuK,EAAKxC,SAAS/H,KAC7B2B,KAAI3B,KAAOA,EAAIzG;MACpBkf,iBAAiBlO,EACZ7H,QAAO1C,KAAO8D,EAASiE,SAAS/H,KAChC2B,KAAI3B,KAAOA,EAAIzG;;;EAG5B,mBAAAmf,CAAoBnO,GAAMzG;IACtB,IAAIA,GAAU;MACVA,EACKpB,QAAO1C,MAAQuK,EAAKxC,SAAS/H,KAC7BiC,SAAQjC,KAAQA,EAAI5F,WAAW;;IAExC,IAAImQ,GAAM;MACNA,EAAKtI,SAAQjC,KAAQA,EAAI5F,WAAW;;IAExClB,KAAK+K,QAAQoO,UAAU3F,gBAAgBnC,GAAMzG,GAAU;IACvD5K,KAAKyf,iBAAiBN,KAAK;MAAEC,QAAQ/N,EAAK5I,KAAI3B,KAAOA,EAAIzG;;;EAE7D,mBAAAqf,CAAoB9c,GAAMgI;IACtB,IAAIhI,GAAM;MACNA,EAAK1B,WAAW;;IAEpB,IAAI0J,GAAU;MACVA,EAAS1J,WAAW;;IAExBlB,KAAK2f,qBAAqBR,KAAK;MAC3BpY,QAAQ/G,KAAKqQ,eAAerQ,KAAKqQ,aAAatJ,SAAS;MACvD1G,OAAOL,KAAKqQ,eAAerQ,KAAKqQ,aAAavJ,IAAIzG,QAAQ;MACzDmI,UAAUxI,KAAKqQ,eAAerQ,KAAKqQ,aAAahO,OAAOmG,WAAW;;;EA+B1E,iBAAAoX;IACI5f,KAAK+K,UAAU,IAAI6N,EAAc5Y,KAAK6f;IACtC7f,KAAKue,YAAYve,KAAK+K,QAAQoR;IAC9Bnc,KAAKoQ,eAAepQ,KAAK+K,QAAQmQ;;EAErC,gBAAAzB;IACIzZ,KAAK+K,QAAQ0O,iBAAiBzZ,KAAK+Y;;EAEvC,qBAAA+G,CAAsBC,GAAWvZ,GAAWD;IACxC,IAAIA,MAAS,gBACTA,MAAS,oBACTA,MAAS,iBACTA,MAAS,gBACTA,MAAS,gBAAgB;MACzB,OAAO;;;EAGf,YAAAyZ;IACI,IAAIhgB,KAAK6Q,qBAAqB,QAAQ;MAClC7Q,KAAKmQ,aAAanQ,KAAKoQ,aAAa,MAAMpQ,KAAK+K,QAAQwG;;;EAG/D,WAAA0O;IACIjgB,KAAKmQ,aAAa;;EAEtB,kBAAA+P,CAAmBzc;IACf,MAAMb,IAAOa,EAAUyL;IACvB,IAAIlP,KAAK6Q,qBAAqB,WAAWjO,EAAK1B,UAAU;MACpDlB,KAAKmgB,gBAAgBvd;;;EAG7B,oBAAAwd,CAAqB3c;IACjB,IAAI4c,IAAoB,OAAOrgB,KAAK6f,MAChC,EACI,KACA,KACA,KACA,QACA,OACA,UACA,YACA,WACA,aACA,aACA,eACFhR,SAASpL,EAAU6c,MAAM;MAC3B7c,EAAUgE;;;EAGlB,cAAA8Y,CAAe9c;IACX,IAAI4c,IAAoB,OAAOrgB,KAAK6f,IAAI;MACpC,QAAQpc,EAAU6c;OACd,KAAK;QACDtgB,KAAKwgB;QACL;;OACJ,KAAK;QACDxgB,KAAKygB,gBAAgBzgB,KAAKmQ,YAAY;QACtC;;OACJ,KAAK;QACDnQ,KAAKygB,gBAAgBzgB,KAAKmQ,YAAY;QACtC;;OACJ,KAAK;QACDnQ,KAAK0gB,sBAAsB1gB,KAAK+K,QAAQoO,UAAU1H,eAAetJ,KAAKnI,KAAK+K,QAAQoO,YAAY1V,EAAU6D;QACzG;;OACJ,KAAK;QACDtH,KAAK0gB,sBAAsB1gB,KAAK+K,QAAQoO,UAAU9G,cAAclK,KAAKnI,KAAK+K,QAAQoO,YAAY1V,EAAU6D;QACxG;;OACJ,KAAK;QACDtH,KAAK0gB,sBAAsB1gB,KAAK+K,QAAQoO,UAAU5G,sBAAsBpK,KAAKnI,KAAK+K,QAAQoO,YAAY1V,EAAU6D;QAChH;;OACJ,KAAK;QACDtH,KAAK0gB,sBAAsB1gB,KAAK+K,QAAQoO,UAAUvG,kBAAkBzK,KAAKnI,KAAK+K,QAAQoO,YAAY1V,EAAU6D;QAC5G;;OACJ,KAAK;QACDtH,KAAK0gB,sBAAsB1gB,KAAK+K,QAAQoO,UAAUxH,kBAAkBxJ,KAAKnI,KAAK+K,QAAQoO,YAAY1V,EAAU6D;QAC5G;;OACJ,KAAK;QACDtH,KAAK0gB,sBAAsB1gB,KAAK+K,QAAQoO,UAAUjH,cAAc/J,KAAKnI,KAAK+K,QAAQoO,YAAY1V,EAAU6D;QACxG;;OACJ,KAAK;QACDtH,KAAK0gB,sBAAsB1gB,KAAK+K,QAAQoO,UAAUpG,mBAAmB5K,KAAKnI,KAAK+K,QAAQoO,YAAY1V,EAAU6D;QAC7G;;OACJ,KAAK;QACDtH,KAAK0gB,sBAAsB1gB,KAAK+K,QAAQoO,UAAUjG,eAAe/K,KAAKnI,KAAK+K,QAAQoO,YAAY1V,EAAU6D;QACzG;;OACJ,KAAK;QACDtH,KAAK2gB;QACL;;;;EAIhB,gBAAAC,CAAiBnd;IACb,IAAKzD,KAAKwe,wBAAwB,UAC9Bxe,KAAK6Q,qBAAqB,UAC1B7Q,KAAKwe,wBAAwB,MAAM;MACnCxe,KAAKqe,iBACDre,KAAK+K,QAAQwQ,kBAAkB9X,OAC1BzD,KAAK+K,QAAQ0Q,wBAAwBhY,KAChCzD,KAAKqe,iBACL;;IAElBwC,GAAgB;MACZ,IAAI7gB,KAAK+K,QAAQoO,UAAU7I,WAAW;QAClC,IAAI+P,IAAoB,OAAOrgB,KAAK6f,IAAI;UACpC7f,KAAK8gB;UACL,MAAMD;;QAEV,MAAM/Z,IAAM9G,KAAK+K,QAAQwQ,kBAAkB9X;QAC3C,MAAMb,IAAO5C,KAAK+K,QAAQ2Q,mBAAmBjY;QAC7C,IAAIqD,MACC9G,KAAK+K,QAAQoO,UAAU5I,iBAAiBzJ,KACrC9G,KAAK+K,QAAQoO,UAAU3I,kBAAkB5N,IAAO;UACpD,MAAMme,IAAuBC,EAAsBvd;UACnD,MAAMwd,IAA4BC,EAA2Bzd,GAAW0d,EAAkBC;UAC1FphB,KAAKqhB,qBAAqBva,GAAKlE,GAAMme,MAAyBE,IAA4BA,GAA2BA;UACrHjhB,KAAK+K,QAAQoO,UAAU5I,eAAezJ;UACtC9G,KAAK+K,QAAQoO,UAAU3I,gBAAgB5N;;;;;EAKvD,iBAAA0e;IACIthB,KAAKqe,mBAALre,KAAKqe,iBAAmB;;EAE5B,YAAAkD,CAAa9d;IACT,MAAMqD,IAAM9G,KAAK+K,QAAQwQ,kBAAkB9X;IAC3C,MAAMb,IAAO5C,KAAK+K,QAAQ2Q,mBAAmBjY;IAC7C,IAAIqD,GAAK;MACL9G,KAAKwhB,WAAWrC,KAAK;QACjB9e,OAAOyG,EAAIzG;QACX0G,QAAQnE,MAAI,QAAJA,WAAI,aAAJA,EAAMmE;QACdyB,UAAU5F,MAAI,QAAJA,WAAI,aAAJA,EAAMP,OAAOmG;;MAE3BxI,KAAK+K,QAAQoO,UAAU7I,YAAY;MACnCtQ,KAAKqhB,qBAAqBva,GAAKlE,GAAMoe,EAAsBvd,IAAYA,EAAU6D,UAAU7D,EAAUge,WAAWC,EAAiBN;;;EAGzI,cAAAO;IACI3hB,KAAK8gB;;EAET,eAAAc,CAAgBne;IACZ,MAAMqD,IAAM9G,KAAK+K,QAAQwQ,kBAAkB9X;IAC3C,MAAMb,IAAO5C,KAAK+K,QAAQ2Q,mBAAmBjY;IAC7C,IAAIqD,GAAK;MACL9G,KAAK6hB,iBAAiB1C,KAAK;QACvB9e,OAAOyG,EAAIzG;QACX0G,QAAQnE,MAAI,QAAJA,WAAI,aAAJA,EAAMmE;QACdyB,UAAU5F,MAAI,QAAJA,WAAI,aAAJA,EAAMP,OAAOmG;;;;EAInC,kBAAAsZ,CAAmBre;;IACf,IAAIC;IACJ,IAAID,EAAUyL,WAAWlP,KAAK6f,IAAI;MAC9Bnc,IAAY1D,KAAKmQ;WAEhB;MACDzM,IAAY1D,KAAK+K,QAAQwQ,kBAAkB9X;;IAE/C,IAAIC,GAAW;MACX,MAAMqe,MAAclD,IAAA7e,KAAKqQ,kBAAY,QAAAwO,WAAA,aAAAA,EAAE/X,SAAQpD,IAAY1D,KAAKqQ,eAAe;MAC/E,MAAM2R,IAA0BhiB,KAAKiiB,eAAe9C,KAAK;QACrD9e,OAAOqD,EAAUrD;QACjB0G,QAAQgb,MAAW,QAAXA,WAAW,aAAXA,EAAahb;QACrByB,UAAUuZ,MAAW,QAAXA,WAAW,aAAXA,EAAa1f,OAAOmG;QAC9B0Z,gBAAgBliB,KAAKoQ,aAAa3H,KAAI3B,KAAOA,EAAIzG;QACjD8hB,SAAS1e,EAAU0e;QACnBC,SAAS3e,EAAU2e;;OAEvBrD,IAAA/e,KAAK+K,QAAQ5E,WAAWyQ,sBAAgB,QAAAmI,WAAA,aAAAA,EAAEsD,eAAe5e,EAAU0e,SAAS1e,EAAU2e;MACtF,IAAIJ,EAAwBM,oBACxBtiB,KAAK+K,QAAQ5E,WAAWyQ,kBAAkB;QAC1CnT,EAAUgE;;;;EAItB,4BAAA8a,CAA6B9e;IACzB,MAAMiQ,IAAiB1T,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,KAAIwH,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,UAAU;MAClD3T,KAAKoR,UAAU3N,EAAUvB,OAAOgF;WAE/B,KAAIwM,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,QAAQ;MACrD3T,KAAKse,aAAate,KAAK+K,QAAQoO,UAAU5F,YAAY9P,EAAUvB,OAAOgF;;;EAG9E,0BAAAsb,CAA2B/e;IACvB,MAAMiQ,IAAiB1T,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,KAAIwH,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,UAAU;MAClD3T,KAAKqhB,qBAAqBrhB,KAAK+K,QAAQwQ,kBAAkB9X,IAAYzD,KAAK+K,QAAQ2Q,mBAAmBjY,IAAY,MAAMA,EAAUvB,OAAOmF,OAAO;WAE9I,KAAIqM,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,QAAQ;MACrD3T,KAAKse,aAAate,KAAK+K,QAAQoO,UAAU/F,QAAQpT,KAAK+K,QAAQwQ,kBAAkB9X,IAAYA,EAAUvB,OAAOgF,SAASzD,EAAUvB,OAAOmF,OAAOrH,KAAKse;;;EAG3J,2BAAAmE,CAA4Bhf;;IACxB,MAAMb,IAAOa,EAAUyL;KACvB2P,IAAA7e,KAAK+K,QAAQ5E,WAAWwQ,sBAAgB,QAAAkI,WAAA,aAAAA,EAAE6D,eAAe9f;;EAE7D,yBAAA+f;IACI,IAAI3iB,KAAK+K,SAAS;MACd/K,KAAKue,YAAYve,KAAK+K,QAAQoR;;;EAGtC,0BAAAyG;IACI5iB,KAAK+K,QAAQ1C,QAAQsD;;EAEzB,0BAAAkX,CAA2Bpf;IACvBzD,KAAK+K,QAAQgR,kBAAkBtY,EAAUvB,OAAOsG;;EAEpD,qBAAAsa,CAAsBrf;IAClBzD,KAAK+K,QAAQiR,eAAevY,EAAUvB,OAAO0V;;EAEjD,2BAAAmL;IACI/iB,KAAK+K,QAAQkR;;EAEjB,sBAAA+G,CAAuBvf;IACnBzD,KAAK+K,QAAQ4Q,gBAAgBlY,EAAUvB,OAAOsG;;EAElD,qBAAAya,CAAsBxf;IAClB,IAAIzD,KAAK+K,QAAQ8Q,eAAepY,EAAUvB,OAAOghB,YAAY;MACzDljB,KAAKue,YAAYve,KAAK+K,QAAQoR;;;EAGtC,oBAAAgH;IACInjB,KAAK+K,QAAQ+Q;IACb9b,KAAKue,YAAYve,KAAK+K,QAAQoR;;EAElC,mBAAAiH,CAAoB3f;IAChBzD,KAAK+K,QAAQmR,aAAazY,EAAUvB,OAAO4E;;EAE/C,uBAAAuc,CAAwB5f;IACpBzD,KAAK+K,QAAQ4R,iBAAiBlZ,EAAUyL;;EAE5C,wBAAAoU,CAAyB7f;IACrBzD,KAAK+K,QAAQ6R,kBAAkBnZ,EAAUyL;;EAE7C,0BAAAqU;IACIvjB,KAAKwjB,WAAWC,OAAO;;EAE3B,2BAAAC;IACI1jB,KAAKwjB,WAAWC,OAAO;;;;SAK3B,mBAAME;;IACF,QAAO9E,IAAA7e,KAAKmQ,gBAAU,QAAA0O,WAAA,aAAAA,EAAExe;;;;SAK5B,mBAAMujB;;IACF,QAAO/E,IAAA7e,KAAKqe,oBAAc,QAAAQ,WAAA,aAAAA,EAAExe;;;;SAKhC,qBAAMwjB;IACF,OAAO7jB,KAAKoQ,aAAa3H,KAAI3B,KAAOA,EAAIzG;;;;SAK5C,mBAAMyjB;IACF,OAAO9jB,KAAKse,WAAW7V,KAAI3B,KAAOA,EAAIzG;;;;SAK1C,qBAAM0jB;IACF,OAAO;MACHhd,QAAQ/G,KAAKqQ,eAAerQ,KAAKqQ,aAAatJ,SAAS;MACvD1G,OAAOL,KAAKqQ,eAAerQ,KAAKqQ,aAAavJ,IAAIzG,QAAQ;MACzDmI,UAAUxI,KAAKqQ,eAAerQ,KAAKqQ,aAAahO,OAAOmG,WAAW;;;;;;;SAQ1E,eAAMwb,CAAU3jB,GAAOa,IAAW;IAC9B,MAAM4F,IAAM9G,KAAK+K,QAAQkQ,OAAO5a;IAChC,IAAIyG,GAAK;MACL,OAAMqJ,YAAEA,GAAUC,cAAEA,GAAYC,cAAEA,KAAiBrQ,KAAK+K,QAAQoO,UAAU3H,UAAU;QAChFrB,YAAYnQ,KAAKmQ;QACjBC,cAAcpQ,KAAKoQ;QACnBC,cAAcrQ,KAAKqQ;SACpBvJ,GAAK,MAAM5F;MACdlB,KAAKmQ,aAAaA;MAClBnQ,KAAKoQ,eAAeA;MACpBpQ,KAAKqQ,eAAeA;MACpBF,MAAU,QAAVA,WAAU,aAAVA,EAAYtN;;;;;;SAOpB,mBAAMohB,CAAc/iB,IAAW;IAC3BlB,KAAKoR,UAAUlQ;;;;;;;;;;SAWnB,gBAAMgjB,CAAWnd,GAAQ1G,GAAOmI,GAAUtH,IAAW;IACjD,MAAM0B,IAAO5C,KAAK+K,QAAQ3I,QAAQ2E,GAAQ1G,GAAOmI;IACjD,IAAI5F,GAAM;MACN5C,KAAKmgB,gBAAgBvd,GAAM1B;;;;;;;SAQnC,aAAMkS,CAAQ/S,GAAOgB,IAAS;IAC1B,MAAMqS,IAAiB1T,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,MAAMpF,IAAM9G,KAAK+K,QAAQkQ,OAAO5a;IAChC,IAAIyG,MAAO4M,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,QAAQ;MACvD3T,KAAKse,aAAate,KAAK+K,QAAQoO,UAAU/F,QAAQtM,GAAKzF,GAAQ,OAAOrB,KAAKse;;;;;;SAOlF,iBAAM/K,CAAYlS,IAAS;IACvB,MAAMqS,IAAiB1T,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,KAAIwH,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,QAAQ;MAChD3T,KAAKse,aAAate,KAAK+K,QAAQoO,UAAU5F,YAAYlS;;;;;;SAO7D,eAAM8iB,CAAU9jB;IACZL,KAAKygB,gBAAgBzgB,KAAK+K,QAAQkQ,OAAO5a,IAAQ;;;;;SAMrD,iBAAM+jB,CAAY/jB;IACdL,KAAKygB,gBAAgBzgB,KAAK+K,QAAQkQ,OAAO5a,IAAQ;;;;;SAMrD,sBAAMgkB,CAAiBhkB;IACnB,MAAMyG,IAAM9G,KAAK+K,QAAQkQ,OAAO5a;IAChC,IAAIyG,GAAK;MACL9G,KAAK+K,QAAQ4R,iBAAiB7V;;;;;;SAOtC,uBAAMwd,CAAkBvd;IACpB,MAAMnE,IAAO5C,KAAK+K,QAAQ3I,QAAQ2E;IAClC,IAAInE,GAAM;MACN5C,KAAK+K,QAAQ6R,kBAAkBha;;;;;SAMvC,oBAAMiP;;IACF,MAAM0S,KAAa1F,IAAA7e,KAAKqQ,kBAAY,QAAAwO,WAAA,aAAAA,EAAE/X;IACtC,IAAIyd,GAAY;MACZ,SAAOxF,IAAA/e,KAAK+K,QAAQ8G,eAAe0S,QAAW,QAAAxF,WAAA,aAAAA,EAAE1e,UAAS;;;;;SAMjE,gBAAM+R;;IACF,MAAMmS,KAAa1F,IAAA7e,KAAKqQ,kBAAY,QAAAwO,WAAA,aAAAA,EAAE/X;IACtC,IAAIyd,GAAY;MACZ,SAAOxF,IAAA/e,KAAK+K,QAAQqH,WAAWmS,QAAW,QAAAxF,WAAA,aAAAA,EAAE1e,UAAS;;;;;SAM7D,qBAAM4S;IACF,MAAMuR,IAAexkB,KAAK+K,QAAQkI,gBAAgBjT,KAAKqQ;IACvD,OAAO;MACHtJ,QAAQyd,IAAeA,EAAazd,SAAS;MAC7C1G,OAAOmkB,IAAeA,EAAa1d,IAAIzG,QAAQ;MAC/CmI,UAAUgc,IAAeA,EAAaniB,OAAOmG,WAAW;;;;;SAMhE,iBAAM2K;IACF,MAAMH,IAAWhT,KAAK+K,QAAQoI,YAAYnT,KAAKqQ;IAC/C,OAAO;MACHtJ,QAAQiM,IAAWA,EAASjM,SAAS;MACrC1G,OAAO2S,IAAWA,EAASlM,IAAIzG,QAAQ;MACvCmI,UAAUwK,IAAWA,EAAS3Q,OAAOmG,WAAW;;;EAGxD,mBAAAmY;;IACI,IAAI3gB,KAAKmQ,YAAY;MACjB,MAAM4R,MAAclD,IAAA7e,KAAKqQ,kBAAY,QAAAwO,WAAA,aAAAA,EAAE/X,SAAQ9G,KAAKmQ,aAAanQ,KAAKqQ,eAAe;MACrFrQ,KAAKykB,gBAAgBtF,KAAK;QACtB9e,OAAOL,KAAKmQ,WAAW9P;QACvB0G,QAAQgb,IAAcA,EAAYhb,SAAS;QAC3CyB,UAAUuZ,IAAcA,EAAY1f,OAAOmG,WAAW;;;;EAIlE,gBAAAgY;IACI,MAAM9M,IAAiB1T,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,KAAIwH,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,QAAQ;MAChD,MAAMlT,KAAST,KAAKmQ,WAAW9O;MAC/B,IAAIZ,GAAO;QACPT,KAAKse,aAAa9b,MAAMC,KAAK,IAAIuO,IAAIhR,KAAKse,WAAWrN,OAAOjR,KAAKoQ;aAEhE;QACDpQ,KAAKse,aAAate,KAAKse,WAAW9U,QAAO1C,MAAQ9G,KAAKoQ,aAAavB,SAAS/H;;;;EAIxF,oBAAAua,CAAqBva,GAAKlE,GAAM+N,GAAQtJ,GAAOuJ;IAC3C,OAAMT,YAAEA,GAAUC,cAAEA,GAAYC,cAAEA,KAAiBrQ,KAAK+K,QAAQoO,UAAU1I,OAAO;MAC7EN,YAAYnQ,KAAKmQ;MACjBC,cAAcpQ,KAAKoQ;MACnBC,cAAcrQ,KAAKqQ;OACpBvJ,GAAKlE,GAAM+N,GAAQtJ,GAAOuJ;IAC7B5Q,KAAKmQ,aAAaA;IAClBnQ,KAAKoQ,eAAeA;IACpBpQ,KAAKqQ,eAAeA;IACpB,IAAIA,GAAc;MACdA,EAAaxN;WAEZ;MACDsN,MAAU,QAAVA,WAAU,aAAVA,EAAYtN;;;EAGpB,qBAAA6d,CAAsBgE,GAAI/T;IACtB,OAAMR,YAAEA,GAAUC,cAAEA,GAAYC,cAAEA,KAAiBqU,EAAG;MAClDvU,YAAYnQ,KAAKmQ;MACjBC,cAAcpQ,KAAKoQ;MACnBC,cAAcrQ,KAAKqQ;OACpBM;IACH3Q,KAAKmQ,aAAaA;IAClBnQ,KAAKoQ,eAAeA;IACpBpQ,KAAKqQ,eAAeA;IACpB,IAAIA,GAAc;MACdA,EAAaxN;WAEZ;MACDsN,MAAU,QAAVA,WAAU,aAAVA,EAAYtN;;;EAGpB,SAAAuO,CAAU3Q,IAAQ;IACd,OAAM0P,YAAEA,GAAUC,cAAEA,GAAYC,cAAEA,KAAiBrQ,KAAK+K,QAAQoO,UAAU/H,UAAU;MAChFjB,YAAYnQ,KAAKmQ;MACjBC,cAAcpQ,KAAKoQ;MACnBC,cAAcrQ,KAAKqQ;OACpB5P;IACHT,KAAKmQ,aAAaA;IAClBnQ,KAAKoQ,eAAeA;IACpBpQ,KAAKqQ,eAAeA;IACpB,IAAIA,GAAc;MACdA,EAAaxN;WAEZ;MACDsN,MAAU,QAAVA,WAAU,aAAVA,EAAYtN;;;EAGpB,eAAA4d,CAAgB3Z,GAAKjF;IACjB,IAAIiF,KAAOjF,GAAW;MAClB,IAAIiF,KAAOA,EAAInF,cAAc;QACzBmF,EAAIjF,YAAY;;WAGnB,IAAIiF,MAAQjF,GAAW;MACxBiF,EAAIjF,YAAY;;;EAGxB,eAAAse,CAAgBvd,GAAM1B,IAAW;IAC7B,OAAMiP,YAAEA,GAAUC,cAAEA,GAAYC,cAAEA,KAAiBrQ,KAAK+K,QAAQoO,UAAU3H,UAAU;MAChFrB,YAAYnQ,KAAKmQ;MACjBC,cAAcpQ,KAAKoQ;MACnBC,cAAcrQ,KAAKqQ;OACpBzN,EAAKkE,KAAKlE,GAAM1B;IACnBlB,KAAKmQ,aAAaA;IAClBnQ,KAAKoQ,eAAeA;IACpBpQ,KAAKqQ,eAAeA;IACpBF,MAAU,QAAVA,WAAU,aAAVA,EAAYtN;;EAEhB,aAAAie;IACI9gB,KAAK+K,QAAQoO,UAAU7I,YAAY;IACnCtQ,KAAK+K,QAAQoO,UAAU5I,eAAe;IACtCvQ,KAAK+K,QAAQoO,UAAU3I,gBAAgB;;EAE3C,cAAAmU;IACI,OAAQC,EAAE,oBAAoB;MAAEzkB,MAAMH,KAAK6f;MAAIgF,KAAKhF,KAAO7f,KAAKwjB,aAAa3D;MAAKiF,aAAa;OAA4PF,EAAE,QAAQ;MAAEre,MAAM;OAAcqe,EAAE,4BAA4B;MAAEG,MAAM;MAAoB1c,SAAS,KAAIrI,KAAK+K,QAAQe;MAAegZ,aAAa;;;EAE/e,MAAAE;IACI,OAAQJ,EAAEK,GAAM;MAAEC,UAAUllB,KAAK6Q,qBAAqB,SAAS,MAAM;OAAS+T,EAAE,UAAU;MAAEG,MAAM;OAAYH,EAAE,QAAQ;MAAEre,MAAM;SAAcqe,EAAE,WAAW;MAAEO,OAAO;MAAQ1gB,OAAOzE,KAAKue;MAAWwG,MAAM;MAAQF,KAAKhF,KAAO7f,KAAK+Y,oBAAoB8G;OAAO+E,EAAE,QAAQ,QAAQA,EAAE,SAAS,MAAM5kB,KAAK2kB,kBAAkBC,EAAE,QAAQ;MAAEre,MAAM;QAAqBqe,EAAE,QAAQ;MAAEre,MAAM;SAAmBqe,EAAE,UAAU;MAAEG,MAAM;OAAYH,EAAE,QAAQ;MAAEre,MAAM;;;;;;;;;;;;;;;;AC5nB7b,MAAM6e,IAAkB;;MCIXC,IAAY;EACrB,WAAAxlB,CAAAse;IA6BAne,KAAAiJ,WAAW;IACXjJ,KAAAwU,kBAAkBxU,KAAKyU,qBAAqBtM,KAAKnI;IAwIjDA,KAAAslB,uBAAwB7hB;MACpBA,EAAUG;MACV5D,KAAKulB,eAAe;AAAI;IAE5BvlB,KAAAoH,uBAAwB3D;MACpB,MAAMyL,IAASzL,EAAUyL;MACzBlP,KAAK8T,uBAAuB5E,EAAOhI,UAAU,YAAY;MACzDlH,KAAKwlB,sBAAsBrG,KAAK;QAC5BjY,SAASgI,EAAOhI;;MAEpBzD,EAAUG;AAAiB;;;;;;;;;;;;IA/K3B5D,KAAKwI,WAAW4V;IAChBpe,KAAKmM,aAAa;IAClBnM,KAAKylB,gBAAgBrH;IACrBpe,KAAK0lB,cAActH;IACnBpe,KAAK2lB,iBAAiBvH;IACtBpe,KAAK4lB,aAAaxH;IAClBpe,KAAK6lB,mBAAmBzH;IACxBpe,KAAK8lB,gBAAgB1H;IACrBpe,KAAK+lB,qBAAqB;IAC1B/lB,KAAKyN,cAAc2Q;IACnBpe,KAAKoM,kBAAkBgS;IACvBpe,KAAK2T,sBAAsB;IAC3B3T,KAAK8T,uBAAuB;IAC5B9T,KAAK0N,iBAAiB0Q;IACtBpe,KAAKiN,uBAAuBmR;IAC5Bpe,KAAKqJ,SAAS+U;IACdpe,KAAKsK,SAAS;IACdtK,KAAKgmB,WAAW;IAChBhmB,KAAK4I,QAAQwV;IACbpe,KAAKsC,gBAAgB8b;IACrBpe,KAAKgN,OAAOoR;IACZpe,KAAKimB,YAAY;IACjBjmB,KAAK2X,WAAWyG;IAChBpe,KAAKkmB,WAAW;IAChBlmB,KAAKmmB,cAAc;IACnBnmB,KAAKomB,gBAAgBhI;IACrBpe,KAAKulB,eAAe;;;;;EAMxB,aAAAc;IACIrmB,KAAKsmB,oBAAoBnH,KAAK;MAC1B3W,UAAUxI,KAAKwI;MACfa,QAAQrJ,KAAKqJ;;;EAGrB,aAAAkd;IACIvmB,KAAKwmB,oBAAoBrH,KAAK;MAC1B3W,UAAUxI,KAAKwI;MACf8B,QAAQtK,KAAKsK;;;EAGrB,YAAAmc;IACIzmB,KAAK0mB,mBAAmBvH,KAAK;MACzB3W,UAAUxI,KAAKwI;MACfI,OAAO5I,KAAK4I;;;EAGpB,WAAA+d;IACI3mB,KAAK4mB,mBAAmBzH,KAAK;MACzB3W,UAAUxI,KAAKwI;MACfwE,MAAMhN,KAAKgN;;;EAGnB,oBAAA6Z;IACI,IAAI7mB,KAAKomB,eAAe;MACpBpmB,KAAK8mB,kBAAkB3H,KAAK;QACxB3W,UAAUxI,KAAKwI;QACf4d,eAAepmB,KAAKomB;;;;EA4ChC,gBAAA3M;IACIzZ,KAAK6f,GAAG5f,iBAAiB,aAAaD,KAAK+mB,iBAAiB5e,KAAKnI;;EAErE,YAAAuhB;IACI,KAAKvhB,KAAKiJ,UAAU;MAChB,IAAIjJ,KAAKkmB,UAAU;QACflmB,KAAKomB,gBAAgBpmB,KAAKomB,kBAAkB,QAAQ,SAAS;;WAGhE;MACDpmB,KAAKiJ,WAAW;;;EAGxB,0BAAA4Z;IACI7iB,KAAK2X,WAAW;;EAEpB,2BAAAoL;IACI/iB,KAAK2X,WAAW;IAChB3X,KAAKgnB,kBAAkB7H,KAAK;MACxB3W,UAAUxI,KAAKwI;MACfwE,MAAMhN,KAAKgN;;;EAGnB,kBAAAyR;IACI,OAAOze,KAAK6f,GAAGhc,QAAQ,WAAW4a;;EAEtC,gBAAAsI,CAAiBtjB;IACbA,EAAUgE;IACVhE,EAAUG;IACV,IAAI5D,KAAKye,sBAAsB;MAC3Bze,KAAKwH,qBAAqB/D;MAC1B2J,SAASnN,iBAAiB,aAAaD,KAAKwU,iBAAiB;QACzDmB,SAAS;;MAEbvI,SAASnN,iBAAiB,WAAWD,KAAKoV,mBAAmBjN,KAAKnI,OAAO;QACrE4V,MAAM;;;;EAIlB,oBAAApO,CAAqB/D;IACjBzD,KAAKinB,8BAA8BxjB,EAAUyjB;IAC7ClnB,KAAKmnB,kBAAkBhI,KAAK;MAAE3W,UAAUxI,KAAKwI;;;EAEjD,oBAAAiM,CAAqBhR;IACjB,IAAIzD,KAAKiJ,YACLuG,KAAK4X,IAAIpnB,KAAKinB,8BAA8BxjB,EAAUyjB,SAAS,GAAG;MAClElnB,KAAKiJ,WAAW;MAChBjJ,KAAK6b,eAAesD,KAAK;QACrB3W,UAAUxI,KAAKwI;QACf0a,WAAWzf,EAAUyjB;QACrBlJ,WAAWva,EAAU4jB,YAAY,IAAI,UAAU;;;;EAI3D,kBAAAjS;IACIhI,SAASiI,oBAAoB,aAAarV,KAAKwU;IAC/CxU,KAAKsnB,gBAAgBnI,KAAK;MAAE3W,UAAUxI,KAAKwI;;;EAE/C,wBAAA+e,CAAyB9jB;IACrBA,EAAUG;;EAcd,MAAAohB;IACI,OAAQJ,EAAEK,GAAM,MAAML,EAAE,MAAM;MAAEO,OAAO;MAAOJ,MAAM;OAAS/kB,KAAKwnB,kBAAkBxnB,KAAKynB,cAAcznB,KAAK0nB,cAAc1nB,KAAK2kB,kBAAkB3kB,KAAK2nB,iBAAiB/C,EAAE,2BAA2B;MAAEviB,QAAQrC,KAAK6f;MAAI+H,aAAa5nB,KAAKunB;MAA0B9D,MAAMzjB,KAAKulB;MAAcT,aAAa;OAA4QF,EAAE,QAAQ;MAAEre,MAAM;;;EAE3kB,cAAAihB;IACI,OAAQ5C,EAAE,MAAM;MAAEO,OAAO;MAAYJ,MAAM;MAAgBza,UAAUtK,KAAKmM,eAAe,UAAUnM,KAAKoM;OAAoBwY,EAAE,SAAS;MAAEG,MAAM;OAAoBH,EAAE,SAAS;MAAEne,MAAM;MAAYse,MAAM,EAAC,YAAY/kB,KAAK8T,uBACjNtK,QAAOub,KAAQA,MAAS,KACxBrI,KAAK;MAAMmL,SAAS7nB,KAAKoH;MAAsBF,SAASlH,KAAK8T,yBAAyB;MAAWgU,eAAe9nB,KAAK8T,yBAAyB;;;EAE3J,UAAA2T;IACI,OAAQ7C,EAAE,MAAM;MAAEO,OAAO;MAAQJ,MAAM;MAAYgD,OAAO/nB,KAAK8lB,kBACtD9lB,KAAK+lB,uBAAuB,UAAU/lB,KAAK4lB,aAAa;OAAS5lB,KAAKylB,iBAAiBzlB,KAAK0lB,eAAe1lB,KAAK2lB,iBAAkBf,EAAE,OAAO;MAAEO,OAAO;MAAaJ,MAAM;MAAiBiD,KAAKhoB,KAAK0lB,eAAe1lB,KAAKylB;MAAewC,QAAQjoB,KAAK2lB;SAAsBf,EAAE,OAAO;MAAEO,OAAO;MAAaJ,MAAM;QAAqBH,EAAE,QAAQ;MAAEO,OAAO;MAAaJ,MAAM;MAAiBza,QAAQtK,KAAK6lB,oBAAoB7lB,KAAK+lB,uBAAuB;OAAU/lB,KAAK4lB;;EAEld,UAAA8B;IACI,OAAQ9C,EAAE,MAAM;MAAEO,OAAO;MAAQJ,MAAM;MAAYza,SAAStK,KAAKkmB;OAAYtB,EAAE,OAAO;MAAEO,OAAO;MAAYJ,MAAM;QAAyBH,EAAE,OAAO;MAAEO,OAAO;MAAaJ,MAAM;;;EAEnL,cAAAJ;IACI,OAAQC,EAAE,MAAM;MAAEO,OAAO;MAAYJ,MAAM;MAAgBza,SAAStK,KAAKmmB;OAAevB,EAAE,UAAU;MAAEO,OAAO;MAAUJ,MAAM;MAAuB8C,SAAS7nB,KAAKslB;;;EAEtK,YAAAqC;IACI,OAAQ/C,EAAE,MAAM;MAAEO,OAAO;MAAUJ,MAAM;MAAcza,SAAStK,KAAKimB;OAAarB,EAAE,yBAAyB;MAAEviB,QAAQrC,KAAK6f;MAAIsF,OAAO;MAAgBJ,MAAM;;;;;;;;;;;;;;;;AC1MrK,MAAMmD,IAAwB;;MCKjBC,IAAkB;EAC3B,WAAAtoB,CAAAse;IAKAne,KAAAooB,cAAcpoB,KAAKqoB,iBAAiBlgB,KAAKnI;;;;;IAJrCA,KAAK2X,WAAW;IAChB3X,KAAKqC,SAAS+b;;;;;EAiBlB,gBAAA3E;IACIzZ,KAAK6f,GAAG5f,iBAAiB,aAAaD,KAAK+mB,iBAAiB5e,KAAKnI;;EAErE,YAAAuhB,CAAa9d;IACTA,EAAUG;;EAEd,eAAAge,CAAgBne;IACZA,EAAUG;IACV,IAAIod,EAAsBvd,IAAY;MAClCzD,KAAKqC,OAAO2K,OAAO;WAElB;MACDhN,KAAKqC,OAAO2K,OAAO;;;EAG3B,0BAAA6V;IACI7iB,KAAK2X,WAAW;;EAEpB,2BAAAoL;IACI/iB,KAAK2X,WAAW;;EAEpB,gBAAAoP,CAAiBtjB;IACbA,EAAUG;IACVH,EAAUgE;IACVzH,KAAKsoB,aAAa7kB,EAAUyjB;IAC5B9Z,SAASnN,iBAAiB,aAAaD,KAAKooB,aAAa;MAAEzS,SAAS;;IACpEvI,SAASnN,iBAAiB,WAAWD,KAAKuoB,eAAepgB,KAAKnI,OAAO;MACjE4V,MAAM;;IAEV5V,KAAKwoB,oBAAoBrJ,KAAK;MAAE3W,UAAUxI,KAAKqC,OAAOmG;;;EAE1D,gBAAA6f,CAAiB5kB;IACbzD,KAAKgc,eAAemD,KAAK;MACrB3W,UAAUxI,KAAKqC,OAAOmG;MACtBoP,YAAY5X,KAAKsoB,aAAa7kB,EAAUyjB;;;EAGhD,cAAAqB;IACInb,SAASiI,oBAAoB,aAAarV,KAAKooB;IAC/CpoB,KAAKyoB,qBAAqBtJ,KAAK;MAAE3W,UAAUxI,KAAKqC,OAAOmG;;;EAE3D,MAAAwc;IACI,OAAOJ,EAAE,OAAO;MAAEO,OAAO;MAAe7a,SAAStK,KAAK2X;;;;;;;ACnE9D,MAAM+Q,IAA0B;;MCInBC,IAAoB;EAC7B,WAAA9oB,CAAAse;;IACIne,KAAKqC,SAAS+b;IACdpe,KAAKyjB,OAAO;;EAEhB,mBAAAmF,CAAoBnlB;IAChBA,EAAUG;IACV5D,KAAKqC,OAAOkjB,eAAe;;EAE/B,4BAAAsD;IACI7oB,KAAKqC,OAAOkjB,eAAe;;EAE/B,MAAAP;IACI,OAAQJ,EAAEK,GAAM,MAAML,EAAE,aAAa;MAAEkE,OAAO;MAAMC,WAAW/oB,KAAKqC;MAAQ2mB,QAAQ;MAAgBC,QAAQ;MAAeC,SAASlpB,KAAKqC,OAAOujB;MAAYuD,WAAW;MAASC,qBAAqB;MAAMC,eAAe;MAAMC,WAAW;MAAUhf,SAAStK,KAAKyjB;MAAMqB,aAAa;OAAkDF,EAAE,QAAQ;;;;;;ACjB1V,MAAM2E,IAAqB;;MCGdC,IAAe;;;;;;;EAExB,wBAAAC,CAAyBhmB;IACrB,MAAM4E,IAAU7F,MAAMC,KAAKzC,KAAK6f,GAAGnd,iBAAiB;IACpD2F,EAAQU,SAAQ1G;MACZ,IAAIA,EAAOmG,aAAa/E,EAAUvB,OAAOsG,UAAU;QAC/CnG,EAAO+jB,gBAAgB;;;;;;;;ACTvC,MAAMsD,IAAoB;;MCIbC,IAAc;EACvB,WAAA9pB,CAAAse;;;IACIne,KAAKG,OAAOie;IACZpe,KAAKyjB,OAAO;;EAMhB,mBAAAmF,CAAoBnlB;IAChBA,EAAUG;IACV5D,KAAKyjB,OAAO;IACZzjB,KAAK4pB,qBAAqBzK;;EAE9B,MAAA6F;IACI,OAAQJ,EAAEK,GAAM,MAAML,EAAE,aAAa;MAAEkE,OAAO;MAAMC,WAAW/oB,KAAKG;MAAM+oB,SAAS;MAAWC,WAAW;MAASC,qBAAqB;MAAMC,eAAe;MAAMC,WAAW;MAAUhf,SAAStK,KAAKyjB;MAAMqB,aAAa;OAAkDF,EAAE,QAAQ;;;;;;ACnB5R,MAAMiF,IAA2B;;MCIpBC,IAAqB;EAC9B,WAAAjqB,CAAAse;IAGAne,KAAA+pB,cAAetmB;MACX,MAAMumB,IAAWvmB,EAAUyL;MAC3B,MAAM7M,IAASrC,KAAKqI,QAAQQ,MAAKxG,KAAUA,EAAOmG,aAAawhB,EAASzjB;MACxElE,EAAOiI,UAAU0f,EAAS9iB;MAC1BzD,EAAUG;AAAiB;;IAN3B5D,KAAKqI,UAAU+V;;EAQnB,gBAAA6L;IACI,OAAO,KAAIjqB,KAAKqI,UAAS2D,MAAK,CAACke,GAAGC;MAC9B,IAAID,EAAEthB,QAAQuhB,EAAEvhB,OAAO;QACnB,QAAQ;;MAEZ,IAAIshB,EAAEthB,QAAQuhB,EAAEvhB,OAAO;QACnB,OAAO;;MAEX,OAAO;AAAC;;EAGhB,MAAAoc;IACI,MAAMoF,IAAgBpqB,KAAKiqB;IAC3B,OAAQrF,EAAE,MAAM,MAAMwF,EAAc3hB,KAAIpG,KAAWuiB,EAAE,MAAM;MAAEG,MAAM;OAAYH,EAAE,SAAS;MAAEG,MAAM;OAAkBH,EAAE,SAAS;MAAEG,OAAO1iB,EAAOiI,SACrI,0CACA;MAAkB7D,MAAM;MAAYS,UAAU7E,EAAOiI;MAAQ+f,WAAWhoB,EAAO2jB;MAAUzf,MAAMlE,EAAOmG;MAAUqf,SAAS7nB,KAAK+pB;QAAgB1nB,EAAOujB;;;;;;AC7BvK,MAAM0E,IAAa;;MCENC,IAAO;EAChB,WAAA1qB,CAAAse;;IACIne,KAAKwqB,WAAW;IAChBxqB,KAAKyqB,aAAa;;;;;EAGtB,iBAAA7K;IACI,MAAM8K,IAAWC,EAAa;IAC9B3qB,KAAK6f,GAAGpb,MAAMO,YAAY,oBAAoB,QAAQ0lB;IACtD1qB,KAAK6f,GAAGpb,MAAMO,YAAY,sBAAsB,QAAQ0lB;IACxD1qB,KAAK6f,GAAGpb,MAAMO,YAAY,6BAA6B,QAAQ0lB;IAC/D1qB,KAAK6f,GAAGpb,MAAMO,YAAY,8BAA8B,QAAQ0lB;IAChE1qB,KAAK6f,GAAGpb,MAAMO,YAAY,8BAA8B,QAAQ0lB;IAChE1qB,KAAK6f,GAAGpb,MAAMO,YAAY,0BAA0B,QAAQ0lB;IAC5D1qB,KAAK6f,GAAGpb,MAAMO,YAAY,iBAAiB,QAAQ0lB;IACnD1qB,KAAK6f,GAAGpb,MAAMO,YAAY,0BAA0B,QAAQ0lB;IAC5D1qB,KAAK6f,GAAGpb,MAAMO,YAAY,wBAAwB,QAAQ0lB;;EAE9D,MAAA1F;IACI,OAAQJ,EAAEK,GAAM;MAAEE,OAAO;QAAEyF,OAAOla,EAAMka;QAAO,aAAa5qB,KAAKwqB;;OAAc5F,EAAE,QAAQ"}