@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.
- package/dist/cjs/ch-dropdown_2.cjs.entry.js +1 -1
- package/dist/cjs/ch-dropdown_2.cjs.entry.js.map +1 -1
- package/dist/cjs/ch-grid_8.cjs.entry.js +339 -321
- package/dist/cjs/ch-grid_8.cjs.entry.js.map +1 -1
- package/dist/cjs/ch-icon_5.cjs.entry.js +3 -1
- package/dist/cjs/ch-icon_5.cjs.entry.js.map +1 -1
- package/dist/cjs/ch-suggest_4.cjs.entry.js +1 -1
- package/dist/cjs/ch-suggest_4.cjs.entry.js.map +1 -1
- package/dist/cjs/ch-tree-view_5.cjs.entry.js +41 -20
- package/dist/cjs/ch-tree-view_5.cjs.entry.js.map +1 -1
- package/dist/cjs/{common-103f62f6.js → common-2e355c7d.js} +31 -1
- package/dist/cjs/common-2e355c7d.js.map +1 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-add-module-servers.cjs.entry.js +98 -0
- package/dist/cjs/gx-ide-add-module-servers.cjs.entry.js.map +1 -0
- package/dist/cjs/{gx-ide-container_2.cjs.entry.js → gx-ide-container_3.cjs.entry.js} +47 -4
- package/dist/cjs/gx-ide-container_3.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-edit-module-servers.cjs.entry.js +98 -0
- package/dist/cjs/gx-ide-edit-module-servers.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-empty-state_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-import-from-design.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +232 -0
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +81 -0
- package/dist/cjs/gx-ide-status-buttons.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
- package/dist/cjs/gxg-buttons-container_2.cjs.entry.js +184 -0
- package/dist/cjs/gxg-buttons-container_2.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +3 -0
- package/dist/collection/common/common.js +21 -0
- package/dist/collection/common/common.js.map +1 -1
- package/dist/collection/components/_helpers/container/container.css +6 -0
- package/dist/collection/components/_helpers/container/container.js +40 -0
- package/dist/collection/components/_helpers/container/container.js.map +1 -1
- package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +1 -1
- package/dist/collection/components/_helpers/list-selector/list-selector.js +1 -1
- package/dist/collection/components/create-kb-from-server/create-kb-from-server.js +1 -1
- package/dist/collection/components/create-kb-from-server/create-kb-from-server.js.map +1 -1
- package/dist/collection/components/modules/add-module-servers/add-module-servers.css +560 -0
- package/dist/collection/components/modules/add-module-servers/add-module-servers.js +251 -0
- package/dist/collection/components/modules/add-module-servers/add-module-servers.js.map +1 -0
- package/dist/collection/components/modules/add-module-servers/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.en.json +11 -0
- package/dist/collection/components/modules/add-module-servers/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.ja.json +3 -0
- package/dist/collection/components/modules/add-module-servers/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.zh.json +3 -0
- package/dist/collection/components/modules/edit-module-servers/edit-module-servers.css +560 -0
- package/dist/collection/components/modules/edit-module-servers/edit-module-servers.js +251 -0
- package/dist/collection/components/modules/edit-module-servers/edit-module-servers.js.map +1 -0
- package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.en.json +11 -0
- package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.ja.json +3 -0
- package/dist/collection/components/modules/edit-module-servers/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.zh.json +3 -0
- package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +29 -0
- package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +3 -0
- package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +3 -0
- package/dist/collection/components/modules/manage-module-references/manage-module-references.css +723 -0
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js +397 -0
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -0
- package/dist/collection/components/modules/types.js +2 -0
- package/dist/collection/components/modules/types.js.map +1 -0
- package/dist/collection/pages/assets/common.js +7 -0
- package/dist/components/buttons-container.js +8 -3
- package/dist/components/buttons-container.js.map +1 -1
- package/dist/components/card.js.map +1 -1
- package/dist/components/ch-grid-column2.js +4 -1
- package/dist/components/ch-grid-column2.js.map +1 -1
- package/dist/components/ch-grid2.js +342 -322
- package/dist/components/ch-grid2.js.map +1 -1
- package/dist/components/combo-box.js +1 -1
- package/dist/components/common.js +30 -1
- package/dist/components/common.js.map +1 -1
- package/dist/components/container.js +9 -3
- package/dist/components/container.js.map +1 -1
- package/dist/components/dropdown.js +1 -1
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/form-checkbox.js +1 -1
- package/dist/components/form-radio-group.js +1 -1
- package/dist/components/form-text.js +1 -1
- package/dist/components/form-textarea.js +1 -1
- package/dist/components/form.js +1 -1
- package/dist/components/gx-ide-add-module-servers.d.ts +11 -0
- package/dist/components/gx-ide-add-module-servers.js +186 -0
- package/dist/components/gx-ide-add-module-servers.js.map +1 -0
- package/dist/components/gx-ide-ai-assistant.js +1 -1
- package/dist/components/gx-ide-bpm-app-declaration.js +2 -2
- package/dist/components/gx-ide-create-kb-from-server.js +3 -3
- package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
- package/dist/components/gx-ide-dashboard-home.js +2 -2
- package/dist/components/gx-ide-data-selector.js +2 -2
- package/dist/components/gx-ide-edit-module-servers.d.ts +11 -0
- package/dist/components/gx-ide-edit-module-servers.js +186 -0
- package/dist/components/gx-ide-edit-module-servers.js.map +1 -0
- package/dist/components/gx-ide-empty-state2.js +2 -2
- package/dist/components/gx-ide-import-from-design.js +2 -2
- package/dist/components/gx-ide-kb-manager-export.js +2 -2
- package/dist/components/gx-ide-kb-manager-import.js +2 -2
- package/dist/components/gx-ide-manage-module-references.d.ts +11 -0
- package/dist/components/gx-ide-manage-module-references.js +432 -0
- package/dist/components/gx-ide-manage-module-references.js.map +1 -0
- package/dist/components/gx-ide-new-environment.js +2 -2
- package/dist/components/gx-ide-new-kb.js +2 -2
- package/dist/components/gx-ide-new-object.js +2 -2
- package/dist/components/gx-ide-object-selector.js +2 -2
- package/dist/components/gx-ide-references.js +2 -2
- package/dist/components/gx-ide-share-kb.js +2 -2
- package/dist/components/gx-ide-start-page.js +2 -2
- package/dist/components/gx-ide-status-buttons2.js +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +2 -2
- package/dist/components/gx-ide-team-dev-select-recent-comment.js +2 -2
- package/dist/components/gx-ide-team-dev-update-partial-selection.js +2 -2
- package/dist/components/gx-ide-team-dev-update-to-revision.js +2 -2
- package/dist/components/gx-ide-team-dev-update.js +2 -2
- package/dist/components/gx-ide-template.js +2 -2
- package/dist/components/gx-ide-title.js +1 -1
- package/dist/components/gx-ide-top-bar.js +1 -1
- package/dist/components/gx-ide-ww-images.js +2 -2
- package/dist/components/gxg-container.js +1 -1
- package/dist/components/gxg-form-checkbox-group2.js +1 -1
- package/dist/components/gxg-menu-slim-list.js +1 -1
- package/dist/components/gxg-title.js +1 -1
- package/dist/components/gxg-top-state-bar2.js +17 -8
- package/dist/components/gxg-top-state-bar2.js.map +1 -1
- package/dist/components/icon2.js +3 -1
- package/dist/components/icon2.js.map +1 -1
- package/dist/components/ide-loader.js +1 -1
- package/dist/components/list-box.js +1 -1
- package/dist/components/list-selector.js +1 -1
- package/dist/components/recent-news.js +2 -2
- package/dist/components/suggest.js +2 -2
- package/dist/components/suggest.js.map +1 -1
- package/dist/components/title-editable.js +1 -1
- package/dist/components/title.js +32 -31
- package/dist/components/title.js.map +1 -1
- package/dist/components/title2.js +31 -32
- package/dist/components/title2.js.map +1 -1
- package/dist/components/tree-view-item.js +8 -2
- package/dist/components/tree-view-item.js.map +1 -1
- package/dist/components/tree-view2.js +32 -15
- package/dist/components/tree-view2.js.map +1 -1
- package/dist/esm/ch-dropdown_2.entry.js +1 -1
- package/dist/esm/ch-dropdown_2.entry.js.map +1 -1
- package/dist/esm/ch-grid_8.entry.js +339 -321
- package/dist/esm/ch-grid_8.entry.js.map +1 -1
- package/dist/esm/ch-icon_5.entry.js +3 -1
- package/dist/esm/ch-icon_5.entry.js.map +1 -1
- package/dist/esm/ch-suggest_4.entry.js +1 -1
- package/dist/esm/ch-suggest_4.entry.js.map +1 -1
- package/dist/esm/ch-tree-view_5.entry.js +41 -20
- package/dist/esm/ch-tree-view_5.entry.js.map +1 -1
- package/dist/esm/{common-f2983db2.js → common-aaad5759.js} +31 -2
- package/dist/esm/common-aaad5759.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-add-module-servers.entry.js +94 -0
- package/dist/esm/gx-ide-add-module-servers.entry.js.map +1 -0
- package/dist/esm/{gx-ide-container_2.entry.js → gx-ide-container_3.entry.js} +47 -5
- package/dist/esm/gx-ide-container_3.entry.js.map +1 -0
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
- package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-edit-module-servers.entry.js +94 -0
- package/dist/esm/gx-ide-edit-module-servers.entry.js.map +1 -0
- package/dist/esm/gx-ide-empty-state_2.entry.js.map +1 -1
- package/dist/esm/gx-ide-import-from-design.entry.js +1 -1
- package/dist/esm/gx-ide-manage-module-references.entry.js +228 -0
- package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -0
- package/dist/esm/gx-ide-new-environment.entry.js +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +1 -1
- package/dist/esm/gx-ide-status-buttons.entry.js +77 -0
- package/dist/esm/gx-ide-status-buttons.entry.js.map +1 -0
- package/dist/esm/gx-ide-ww-images.entry.js +1 -1
- package/dist/esm/gxg-buttons-container_2.entry.js +179 -0
- package/dist/esm/gxg-buttons-container_2.entry.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.css +5 -3
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.en.json +11 -0
- package/dist/genexus-ide-ui/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.ja.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/add-module-servers/langs/add-module-servers.lang.zh.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.en.json +11 -0
- package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.ja.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/edit-module-servers/langs/edit-module-servers.lang.zh.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +29 -0
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +3 -0
- package/dist/genexus-ide-ui/{p-2c1f414f.entry.js → p-0c0c3f1d.entry.js} +53 -53
- package/dist/genexus-ide-ui/{p-2c1f414f.entry.js.map → p-0c0c3f1d.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-b571e9c0.entry.js → p-0df39b62.entry.js} +5 -2
- package/dist/genexus-ide-ui/{p-b571e9c0.entry.js.map → p-0df39b62.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-419b2877.entry.js → p-1cb2d0df.entry.js} +80 -47
- package/dist/genexus-ide-ui/p-1cb2d0df.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-350f49ac.js +101 -0
- package/dist/genexus-ide-ui/p-350f49ac.js.map +1 -0
- package/dist/genexus-ide-ui/p-36544e00.entry.js +138 -0
- package/dist/genexus-ide-ui/p-36544e00.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-ca7233a5.entry.js → p-39337325.entry.js} +81 -10
- package/dist/genexus-ide-ui/p-39337325.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-40121554.entry.js.map +1 -1
- package/dist/genexus-ide-ui/p-41ac8e60.entry.js +211 -0
- package/dist/genexus-ide-ui/p-41ac8e60.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-001e085a.entry.js → p-51e86542.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-d14b5546.entry.js → p-6f5b13a7.entry.js} +4 -2
- package/dist/genexus-ide-ui/{p-d14b5546.entry.js.map → p-6f5b13a7.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-94015503.entry.js → p-786e5448.entry.js} +374 -380
- package/dist/genexus-ide-ui/p-786e5448.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-a46794f4.entry.js +138 -0
- package/dist/genexus-ide-ui/p-a46794f4.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-adaf7aff.entry.js +365 -0
- package/dist/genexus-ide-ui/p-adaf7aff.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-afce38d4.entry.js → p-b2099890.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-513ec2ad.entry.js → p-b4e526d6.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-b7d0697f.entry.js +138 -0
- package/dist/genexus-ide-ui/p-b7d0697f.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-8e8bb528.entry.js → p-c14b6b77.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-8e8bb528.entry.js.map → p-c14b6b77.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-2c733995.entry.js → p-d5903356.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-05102700.entry.js → p-df72101e.entry.js} +2 -2
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/dropdown/dropdown.css +28 -28
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-view-item/tree-view-item.css +0 -2
- package/dist/node_modules/@genexus/gemini/dist/collection/components/buttons-container/buttons-container.css +11 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/suggest/styles.css +1 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/top-state-bar/gxg-top-state-bar.css +32 -41
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +37 -54
- package/dist/types/common/common.d.ts +2 -0
- package/dist/types/components/_helpers/container/container.d.ts +8 -0
- package/dist/types/components/modules/add-module-servers/add-module-servers.d.ts +60 -0
- package/dist/types/components/modules/edit-module-servers/edit-module-servers.d.ts +60 -0
- package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +98 -0
- package/dist/types/components/modules/types.d.ts +40 -0
- package/dist/types/components.d.ts +312 -52
- package/package.json +3 -3
- package/dist/cjs/common-103f62f6.js.map +0 -1
- package/dist/cjs/gx-ide-container_2.cjs.entry.js.map +0 -1
- package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js +0 -187
- package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js.map +0 -1
- package/dist/cjs/gxg-buttons-container.cjs.entry.js +0 -65
- package/dist/cjs/gxg-buttons-container.cjs.entry.js.map +0 -1
- package/dist/cjs/gxg-title.cjs.entry.js +0 -47
- package/dist/cjs/gxg-title.cjs.entry.js.map +0 -1
- package/dist/esm/common-f2983db2.js.map +0 -1
- package/dist/esm/gx-ide-container_2.entry.js.map +0 -1
- package/dist/esm/gx-ide-status-buttons_2.entry.js +0 -182
- package/dist/esm/gx-ide-status-buttons_2.entry.js.map +0 -1
- package/dist/esm/gxg-buttons-container.entry.js +0 -61
- package/dist/esm/gxg-buttons-container.entry.js.map +0 -1
- package/dist/esm/gxg-title.entry.js +0 -43
- package/dist/esm/gxg-title.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-419b2877.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-67406b36.entry.js +0 -71
- package/dist/genexus-ide-ui/p-67406b36.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-67ea84e8.js +0 -74
- package/dist/genexus-ide-ui/p-67ea84e8.js.map +0 -1
- package/dist/genexus-ide-ui/p-94015503.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-ca7233a5.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-cf5c3c10.entry.js +0 -270
- package/dist/genexus-ide-ui/p-cf5c3c10.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-d50b5b9a.entry.js +0 -67
- package/dist/genexus-ide-ui/p-d50b5b9a.entry.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-001e085a.entry.js.map → p-51e86542.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-afce38d4.entry.js.map → p-b2099890.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-513ec2ad.entry.js.map → p-b4e526d6.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2c733995.entry.js.map → p-d5903356.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-05102700.entry.js.map → p-df72101e.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["HTMLChGridRowElement","HTMLElement","parentGrid","observedAttributes","constructor","super","connectedCallback","this","addEventListener","cellCaretClickedHandler","selected","marked","grid","syncRowState","attributeChangedCallback","name","_oldValue","value","loadParentGrid","rowId","getAttribute","highlighted","hasAttribute","highlightedClasses","rowHighlightedClass","split","setAttribute","classList","add","removeAttribute","remove","selectedClasses","rowSelectedClass","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","defineFocusHandler","Rich","type","cellIndex","prototype","indexOf","call","row","cellId","offsetParent","setSelectorChecked","checked","caretMouseDownHandler","selectorClickHandler","range","shiftKey","selectorLabelClickHandler","dragMouseDownHandler","preventDefault","actionClickHandler","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","cellFocused","cellSelected","touch","selecting","selectingRow","selectingCell","touchStart","touchEvent","clientX","touches","clientY","isTouchEndSelection","abs","changedTouches","cancelable","select","state","append","context","keyboardNavigationMode","rowSelectionMode","rangeRows","getRowsRange","Set","concat","preserveInstanceIfSame","getFirstColumn","rowSelected","selectAll","rows","getRows","getFirstRow","selectSet","moveFirstRow","firstRow","movePreviousRow","previousRow","getPreviousRow","moveNextRow","nextRow","getNextRow","moveLastRow","lastRow","getLastRow","movePreviousPageRow","rowsPerPage","getRowsPerPage","previousPageRow","max","moveNextPageRow","nextPageRow","min","movePreviousCell","previousCell","getPreviousCell","moveNextCell","nextCell","getNextCell","markRow","currentRowsMarked","r","markRows","rowsMarked","markAllRows","syncRowSelector","selectorMode","columnSelector","richRowSelectorMode","indexColumnSelector","children","syncColumnSelector","richRowSelectorState","newSelection","oldSelection","every","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","slice","reverse","getPreviousColumn","previousColumn","nextColumn","getRowsetRowIndex","gridRowsHeight","gridHeight","clientHeight","columnsHeight","floor","getRow","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","gridStyle","rowHighlightEnabled","allowColumnReorder","localization","rowFocusedHandler","cellFocusedHandler","rowHighlightedHandler","_a","openRowHover","_b","close","rowsMarkedHandler","rowMarkingChanged","emit","getChangedEventDetail","rowsSelectedHandler","selectionChanged","cellSelectedHandler","cellSelectionChanged","componentWillLoad","el","componentShouldUpdate","_newValue","focusHandler","_c","selectByKeyboardEvent","blurHandler","cellFocusedEventHandler","setCellSelected","windowKeyDownHandler","focusComposedPath","key","keyDownHandler","mouseEventModifierKey","spacePressedEvent","setRowCollapsed","moveByKeyboardEvent","enterPressedHandler","mouseMoveHandler","selectingBlock","stopSelecting","isKeyModifierPressed","isMouseButtonRightPressed","mouseEventHasButtonPressed","MouseEventButtons","RIGHT","selectByPointerEvent","mouseLeaveHandler","clickHandler","button","MouseEventButton","mouseUpHandler","emitRowClicked","dblclickHandler","rowDoubleClicked","touchstartHandler","touchendHandler","contextmenuHandler","rowContextMenuEventInfo","rowContextMenu","selectedRowsId","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","getFocusedCell","getSelectedCell","selectRow","selectAllRows","selectCell","expandRow","collapseRow","rowEnsureVisible","cellEnsureVisible","currentRow","syncRowStateSelected","syncRowStateMarked","syncRowStateSelector","index","splice","rowsId","addedRowsId","removedRowsId","unalteredRowsId","rowEnterPressed","ctrl","shift","markByKeyboardEvent","fn","rowClicked","renderSettings","h","ref","exportparts","part","render","Host","tabindex","class","chGridColumnCss","ChGridColumn","settingsClickHandler","showSettings","columnSelectorClicked","selectorTouchEndHandler","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","movementX","columnDragEnded","settingsMouseDownHandler","renderSelector","renderName","renderSort","renderResize","onMouseDown","onClick","onTouchEnd","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 static get observedAttributes() {\n return [\"selected\", \"marked\"];\n }\n constructor() {\n super();\n }\n connectedCallback() {\n this.addEventListener(\"cellCaretClicked\", this.cellCaretClickedHandler);\n if (this.selected || this.marked) {\n this.grid.syncRowState(this);\n }\n }\n attributeChangedCallback(name, _oldValue, value) {\n if (name === \"selected\") {\n this.selected = value !== null ? value !== \"false\" : false;\n }\n if (name === \"marked\") {\n this.marked = value !== null ? value !== \"false\" : false;\n }\n this.grid?.syncRowState(this);\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 if (!this.hasAttribute(\"selected\")) {\n this.setAttribute(\"selected\", \"\");\n }\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 if (!this.hasAttribute(\"marked\")) {\n this.setAttribute(\"marked\", \"\");\n }\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.cellType = ChGridCellType.Rich;\n this.rowDrag = value !== null ? value !== \"false\" : false;\n }\n if (name === \"row-selector\") {\n this.cellType = ChGridCellType.Rich;\n this.rowSelector = value !== null ? value !== \"false\" : false;\n }\n if (name === \"row-actions\") {\n this.cellType = ChGridCellType.Rich;\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 indicating whether the cell is focused.\n */\n get focused() {\n return this.hasAttribute(\"focused\");\n }\n set focused(value) {\n if (value === true) {\n this.setAttribute(\"focused\", \"\");\n }\n else {\n this.removeAttribute(\"focused\");\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(\"touchend\", (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(\"touchend\", (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 cellFocused: null,\n cellSelected: null\n };\n touch;\n selecting;\n selectingRow;\n selectingCell;\n constructor(manager) {\n this.manager = manager;\n }\n touchStart(touchEvent) {\n this.touch = {\n clientX: touchEvent.touches[0].clientX,\n clientY: touchEvent.touches[0].clientY\n };\n }\n isTouchEndSelection(touchEvent) {\n return (Math.abs(this.touch.clientX - touchEvent.changedTouches[0].clientX) <\n 10 &&\n Math.abs(this.touch.clientY - touchEvent.changedTouches[0].clientY) <\n 10 &&\n touchEvent.cancelable);\n }\n select(state, row, cell, select, append, range, context) {\n const grid = this.manager.grid;\n if (grid.keyboardNavigationMode === \"none\" &&\n grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (grid.rowSelectionMode === \"none\") {\n select = false;\n }\n if (grid.rowSelectionMode !== \"multiple\") {\n append = false;\n range = false;\n }\n let { rowFocused, rowsSelected, cellFocused, cellSelected } = state;\n rowFocused = row;\n cellFocused = cell;\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 = this.preserveInstanceIfSame(rangeRows, state.rowsSelected);\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 = state.cellSelected?.row === row ? null : cellSelected;\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 (select) {\n if (!(context && state.rowsSelected.includes(row))) {\n rowsSelected = this.preserveInstanceIfSame([row], state.rowsSelected);\n }\n cellSelected =\n cell ||\n row.getCell(cellSelected?.column || this.manager.getFirstColumn());\n }\n }\n return { rowFocused, rowsSelected, cellFocused, 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 cellFocused = state.cellFocused;\n let cellSelected = state.cellSelected;\n rowFocused ??= this.manager.getFirstRow();\n cellFocused ??= rowFocused.getCell(state.cellFocused?.column || this.manager.getFirstColumn());\n if (value) {\n rowsSelected = rows;\n cellSelected = cellFocused;\n }\n else {\n rowsSelected = [];\n cellSelected = null;\n }\n return { rowFocused, rowsSelected, cellFocused, 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 cellFocused = state.cellFocused;\n let cellSelected = state.cellSelected;\n rowFocused = row;\n cellFocused = cell;\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, cellFocused, cellSelected };\n }\n moveFirstRow(state, select, range, append) {\n const firstRow = this.manager.getFirstRow();\n if (firstRow) {\n return this.select(state, firstRow, firstRow.getCell(state.cellFocused.column), select, append, range, false);\n }\n return state;\n }\n movePreviousRow(state, select, range, append) {\n const previousRow = this.manager.getPreviousRow(state.rowFocused);\n if (previousRow) {\n return this.select(state, previousRow, previousRow.getCell(state.cellFocused.column), select, append, range, false);\n }\n return state;\n }\n moveNextRow(state, select, range, append) {\n const nextRow = this.manager.getNextRow(state.rowFocused);\n if (nextRow) {\n return this.select(state, nextRow, nextRow.getCell(state.cellFocused.column), select, append, range, false);\n }\n return state;\n }\n moveLastRow(state, select, range, append) {\n const lastRow = this.manager.getLastRow();\n if (lastRow) {\n return this.select(state, lastRow, lastRow.getCell(state.cellFocused.column), select, append, range, false);\n }\n return state;\n }\n movePreviousPageRow(state, select, range, append) {\n const rows = this.manager.getRows();\n const rowsPerPage = this.manager.getRowsPerPage();\n const previousPageRow = rows[Math.max(rows.indexOf(state.rowFocused) - rowsPerPage, 0)];\n if (previousPageRow) {\n return this.select(state, previousPageRow, previousPageRow.getCell(state.cellFocused.column), select, append, range, false);\n }\n return state;\n }\n moveNextPageRow(state, select, range, append) {\n const rows = this.manager.getRows();\n const rowsPerPage = this.manager.getRowsPerPage();\n const nextPageRow = rows[Math.min(rows.indexOf(state.rowFocused) + rowsPerPage, rows.length - 1)];\n if (nextPageRow) {\n return this.select(state, nextPageRow, nextPageRow.getCell(state.cellFocused.column), select, append, range, false);\n }\n return state;\n }\n movePreviousCell(state, select, range) {\n const previousCell = this.manager.getPreviousCell(state.cellFocused);\n if (previousCell) {\n return this.select(state, state.rowFocused, previousCell, select, false, range, false);\n }\n return state;\n }\n moveNextCell(state, select, range) {\n const nextCell = this.manager.getNextCell(state.cellFocused);\n if (nextCell) {\n return this.select(state, state.rowFocused, nextCell, select, false, range, false);\n }\n return state;\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 markRows(rowFocused, rowsMarked, rowsSelected) {\n const rows = rowsSelected.includes(rowFocused)\n ? rowsSelected\n : [rowFocused];\n if (rows.some(row => !row.marked)) {\n return Array.from(new Set(rowsMarked.concat(rows)));\n }\n return rowsMarked.filter(row => !rows.includes(row));\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 this.syncColumnSelector(rows.length, columnSelector);\n }\n }\n syncColumnSelector(length, columnSelector) {\n columnSelector ??= this.manager.columns.getColumnSelector();\n if (length === 0) {\n columnSelector.richRowSelectorState = \"\";\n }\n else if (length === this.manager.getRows().length) {\n columnSelector.richRowSelectorState = \"checked\";\n }\n else {\n columnSelector.richRowSelectorState = \"indeterminate\";\n }\n }\n preserveInstanceIfSame(newSelection, oldSelection) {\n return newSelection.length === oldSelection.length &&\n newSelection.every(item => oldSelection.includes(item))\n ? oldSelection\n : newSelection;\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 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.cellFocused = 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.keyboardNavigationMode = \"select\";\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 cellFocusedHandler(cell, previous) {\n if (cell) {\n cell.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(this.getChangedEventDetail(rows, previous));\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(this.getChangedEventDetail(rows, previous));\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 }\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.keyboardNavigationMode !== \"none\") {\n this.rowFocused ||= this.rowsSelected[0] ?? this.manager.getFirstRow();\n this.cellFocused = this.rowFocused?.getCell(this.cellSelected?.column || this.manager.getFirstColumn());\n this.selectByKeyboardEvent(false, false);\n }\n }\n blurHandler() {\n this.rowFocused = null;\n this.cellFocused = null;\n }\n cellFocusedEventHandler(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 this.keyboardNavigationMode !== \"none\") {\n const range = eventInfo.shiftKey;\n const append = mouseEventModifierKey(eventInfo);\n switch (eventInfo.key) {\n case \" \":\n this.spacePressedEvent(mouseEventModifierKey(eventInfo), eventInfo.shiftKey);\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.moveByKeyboardEvent(this.manager.selection.moveFirstRow, range, append);\n break;\n case \"End\":\n this.moveByKeyboardEvent(this.manager.selection.moveLastRow, range, append);\n break;\n case \"PageUp\":\n this.moveByKeyboardEvent(this.manager.selection.movePreviousPageRow, range, append);\n break;\n case \"PageDown\":\n this.moveByKeyboardEvent(this.manager.selection.moveNextPageRow, range, append);\n break;\n case \"ArrowUp\":\n this.moveByKeyboardEvent(this.manager.selection.movePreviousRow, range, append);\n break;\n case \"ArrowDown\":\n this.moveByKeyboardEvent(this.manager.selection.moveNextRow, range, append);\n break;\n case \"ArrowLeft\":\n this.moveByKeyboardEvent(this.manager.selection.movePreviousCell, range, append);\n break;\n case \"ArrowRight\":\n this.moveByKeyboardEvent(this.manager.selection.moveNextCell, range, append);\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.manager.selection.selecting = true;\n this.selectByPointerEvent(row, cell, mouseEventModifierKey(eventInfo), eventInfo.shiftKey, eventInfo.button === MouseEventButton.RIGHT);\n }\n }\n mouseUpHandler() {\n if (this.manager.selection.selecting) {\n this.stopSelecting();\n this.emitRowClicked(this.rowFocused, this.cellFocused);\n }\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 touchstartHandler(eventInfo) {\n this.manager.selection.touchStart(eventInfo);\n }\n touchendHandler(eventInfo) {\n if (eventInfo.cancelable) {\n eventInfo.preventDefault();\n }\n if (this.manager.selection.isTouchEndSelection(eventInfo)) {\n const columnSelector = this.manager.columns.getColumnSelector();\n const row = this.manager.getRowEventTarget(eventInfo);\n const cell = this.manager.getCellEventTarget(eventInfo);\n if (row) {\n this.selectByPointerEvent(row, cell, columnSelector?.richRowSelectorMode !== \"select\", false, false);\n this.emitRowClicked(row, cell);\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 focused cell.\n */\n async getFocusedCell() {\n return {\n cellId: this.cellFocused ? this.cellFocused.cellId : null,\n rowId: this.cellFocused ? this.cellFocused.row.rowId : null,\n columnId: this.cellFocused ? this.cellFocused.column.columnId : null\n };\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, cellFocused, cellSelected } = this.manager.selection.selectSet({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellFocused: this.cellFocused,\n cellSelected: this.cellSelected\n }, row, null, selected);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellFocused = cellFocused;\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 /**\n * Synchronizes the state of a row in the grid.\n */\n async syncRowState(el) {\n const row = el;\n const columnSelector = this.manager.columns.getColumnSelector();\n if (this.rowSelectionMode !== \"none\") {\n this.syncRowStateSelected(row);\n }\n if (columnSelector?.richRowSelectorMode === \"mark\") {\n this.syncRowStateMarked(row);\n }\n if (columnSelector) {\n this.syncRowStateSelector(row, columnSelector);\n if (columnSelector.richRowSelectorMode === \"select\") {\n this.manager.selection.syncColumnSelector(this.rowsSelected.length, columnSelector);\n }\n else if (columnSelector.richRowSelectorMode === \"mark\") {\n this.manager.selection.syncColumnSelector(this.rowsMarked.length, columnSelector);\n }\n }\n }\n syncRowStateSelected(row) {\n if (row.selected && this.rowSelectionMode === \"single\") {\n this.rowsSelected[0] = row;\n }\n if (row.selected &&\n this.rowSelectionMode === \"multiple\" &&\n !this.rowsSelected.includes(row)) {\n this.rowsSelected.push(row);\n }\n if (!row.selected) {\n const index = this.rowsSelected.indexOf(row);\n if (index !== -1) {\n this.rowsSelected.splice(index, 1);\n }\n }\n }\n syncRowStateMarked(row) {\n if (row.marked && !this.rowsMarked.includes(row)) {\n this.rowsMarked.push(row);\n }\n if (!row.marked) {\n const index = this.rowsMarked.indexOf(row);\n if (index !== -1) {\n this.rowsMarked.splice(index, 1);\n }\n }\n }\n syncRowStateSelector(row, columnSelector) {\n const cell = row.getCell(columnSelector);\n const value = (columnSelector.richRowSelectorMode === \"select\" && row.selected) ||\n (columnSelector.richRowSelectorMode === \"mark\" && row.marked);\n cell.setSelectorChecked(value);\n }\n getChangedEventDetail(rows, previous) {\n return {\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 enterPressedHandler() {\n if (this.rowFocused) {\n this.rowEnterPressed.emit({\n rowId: this.rowFocused.rowId,\n cellId: this.cellFocused ? this.cellFocused.cellId : null,\n columnId: this.cellFocused ? this.cellFocused.column.columnId : null\n });\n }\n }\n spacePressedEvent(ctrl, shift) {\n if (this.keyboardNavigationMode === \"focus\") {\n this.selectByKeyboardEvent(ctrl, shift);\n }\n else if (this.keyboardNavigationMode === \"select\") {\n this.markByKeyboardEvent();\n }\n this.emitRowClicked(this.rowFocused, this.cellFocused);\n }\n markByKeyboardEvent() {\n const columnSelector = this.manager.columns.getColumnSelector();\n if (columnSelector?.richRowSelectorMode === \"mark\") {\n this.rowsMarked = this.manager.selection.markRows(this.rowFocused, this.rowsMarked, this.rowsSelected);\n }\n }\n selectByKeyboardEvent(append, range) {\n const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.select({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellFocused: this.cellFocused,\n cellSelected: this.cellSelected\n }, this.rowFocused, this.cellFocused, true, append, range, false);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellFocused = cellFocused;\n this.cellSelected = cellSelected;\n (cellFocused || rowFocused)?.ensureVisible();\n }\n selectByPointerEvent(row, cell, append, range, context) {\n const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.select({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellFocused: this.cellFocused,\n cellSelected: this.cellSelected\n }, row, cell, true, append, range, context);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellFocused = cellFocused;\n this.cellSelected = cellSelected;\n (cellFocused || rowFocused)?.ensureVisible();\n }\n moveByKeyboardEvent(fn, range, append) {\n const { rowFocused, rowsSelected, cellFocused, cellSelected } = fn.call(this.manager.selection, {\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellFocused: this.cellFocused,\n cellSelected: this.cellSelected\n }, this.rowSelectionMode !== \"none\" &&\n this.keyboardNavigationMode === \"select\", this.rowSelectionMode === \"multiple\" ? range : false, this.rowSelectionMode === \"multiple\" ? range && append : false);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellFocused = cellFocused;\n this.cellSelected = cellSelected;\n (cellFocused || rowFocused)?.ensureVisible();\n }\n selectAll(value = true) {\n const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.selectAll({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellFocused: this.cellFocused,\n cellSelected: this.cellSelected\n }, value);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellFocused = cellFocused;\n this.cellSelected = cellSelected;\n (cellFocused || rowFocused)?.ensureVisible();\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, cellFocused, cellSelected } = this.manager.selection.selectSet({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellFocused: this.cellFocused,\n cellSelected: this.cellSelected\n }, cell.row, cell, selected);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellFocused = cellFocused;\n this.cellSelected = cellSelected;\n (cellFocused || rowFocused)?.ensureVisible();\n }\n emitRowClicked(row, cell) {\n this.rowClicked.emit({\n rowId: row.rowId,\n cellId: cell?.cellId,\n columnId: cell?.column.columnId\n });\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.keyboardNavigationMode !== \"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 \"keyboardNavigationMode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"none\\\" | \\\"select\\\" | \\\"focus\\\"\",\n \"resolved\": \"\\\"focus\\\" | \\\"none\\\" | \\\"select\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specifies the keyboard navigation mode for the component.\\n- \\\"none\\\": Disables keyboard navigation for the grid rows.\\n- \\\"select\\\": Allows keyboard navigation by changing the selection of grid rows.\\n- \\\"focus\\\": Allows keyboard navigation by focusing on grid rows, but does not change the selection.\"\n },\n \"attribute\": \"keyboard-navigation-mode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"select\\\"\"\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 \"cellFocused\": {},\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 \"getFocusedCell\": {\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 focused cell.\",\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 \"syncRowState\": {\n \"complexType\": {\n \"signature\": \"(el: HTMLElement) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"el\",\n \"type\": \"HTMLElement\",\n \"docs\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n },\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n },\n \"HTMLChGridRowElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLChGridRowElement\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Synchronizes the state of a row in the grid.\",\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\": \"cellFocused\",\n \"methodName\": \"cellFocusedHandler\"\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\": \"cellFocusedEventHandler\",\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\": \"touchstart\",\n \"method\": \"touchstartHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"touchend\",\n \"method\": \"touchendHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\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 selectorTouchEndHandler = (eventInfo) => {\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, onTouchEnd: this.selectorTouchEndHandler, 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,6BAAWC;IACP,OAAO,EAAC,YAAY;AAC5B;EACI,WAAAC;IACIC;AACR;EACI,iBAAAC;IACIC,KAAKC,iBAAiB,oBAAoBD,KAAKE;IAC/C,IAAIF,KAAKG,YAAYH,KAAKI,QAAQ;MAC9BJ,KAAKK,KAAKC,aAAaN;AACnC;AACA;EACI,wBAAAO,CAAyBC,GAAMC,GAAWC;IACtC,IAAIF,MAAS,YAAY;MACrBR,KAAKG,WAAWO,MAAU,OAAOA,MAAU,UAAU;AACjE;IACQ,IAAIF,MAAS,UAAU;MACnBR,KAAKI,SAASM,MAAU,OAAOA,MAAU,UAAU;AAC/D;IACQV,KAAKK,MAAMC,aAAaN;AAChC;;;SAII,QAAIK;IACA,OAAOL,KAAKL,cAAcK,KAAKW;AACvC;;;SAII,SAAIC;IACA,OAAOZ,KAAKa,aAAa,YAAY;AAC7C;;;SAII,eAAIC;IACA,OAAOd,KAAKe,aAAa;AACjC;EACI,eAAID,CAAYJ;IACZ,MAAMM,IAAqBhB,KAAKK,KAAKY,qBAAqBC,MAAM;IAChE,IAAIR,MAAU,MAAM;MAChBV,KAAKmB,aAAa,eAAe;MACjC,IAAInB,KAAKK,KAAKY,qBAAqB;QAC/BjB,KAAKoB,UAAUC,OAAOL;AACtC;AACA,WACa;MACDhB,KAAKsB,gBAAgB;MACrB,IAAItB,KAAKK,KAAKY,qBAAqB;QAC/BjB,KAAKoB,UAAUG,UAAUP;AACzC;AACA;AACA;;;SAII,YAAIb;IACA,OAAOH,KAAKe,aAAa;AACjC;EACI,YAAIZ,CAASO;IACT,MAAMc,IAAkBxB,KAAKK,KAAKoB,kBAAkBP,MAAM;IAC1D,IAAIR,MAAU,MAAM;MAChB,KAAKV,KAAKe,aAAa,aAAa;QAChCf,KAAKmB,aAAa,YAAY;AAC9C;MACY,IAAInB,KAAKK,KAAKoB,kBAAkB;QAC5BzB,KAAKoB,UAAUC,OAAOG;AACtC;AACA,WACa;MACDxB,KAAKsB,gBAAgB;MACrB,IAAItB,KAAKK,KAAKoB,kBAAkB;QAC5BzB,KAAKoB,UAAUG,UAAUC;AACzC;AACA;AACA;;;SAII,UAAIpB;IACA,OAAOJ,KAAKe,aAAa;AACjC;EACI,UAAIX,CAAOM;IACP,MAAMgB,IAAgB1B,KAAKK,KAAKsB,gBAAgBT,MAAM;IACtD,IAAIR,MAAU,MAAM;MAChB,KAAKV,KAAKe,aAAa,WAAW;QAC9Bf,KAAKmB,aAAa,UAAU;AAC5C;MACY,IAAInB,KAAKK,KAAKsB,gBAAgB;QAC1B3B,KAAKoB,UAAUC,OAAOK;AACtC;AACA,WACa;MACD1B,KAAKsB,gBAAgB;MACrB,IAAItB,KAAKK,KAAKsB,gBAAgB;QAC1B3B,KAAKoB,UAAUG,UAAUG;AACzC;AACA;AACA;;;SAII,WAAIE;IACA,OAAO5B,KAAKe,aAAa;AACjC;EACI,WAAIa,CAAQlB;IACR,MAAMmB,IAAiB7B,KAAKK,KAAKyB,iBAAiBZ,MAAM;IACxD,IAAIR,MAAU,MAAM;MAChBV,KAAKmB,aAAa,WAAW;MAC7B,IAAInB,KAAKK,KAAKyB,iBAAiB;QAC3B9B,KAAKoB,UAAUC,OAAOQ;AACtC;AACA,WACa;MACD7B,KAAKsB,gBAAgB;MACrB,IAAItB,KAAKK,KAAKyB,iBAAiB;QAC3B9B,KAAKoB,UAAUG,UAAUM;AACzC;AACA;AACA;;;SAII,gBAAIE;IACA,SAAS/B,KAAKgC,cAAc;AACpC;;;SAII,aAAIC;IACA,OAAOjC,KAAKe,aAAa;AACjC;EACI,aAAIkB,CAAUvB;IACV,MAAMwB,IAAgBlC,KAAKiC,cAAcvB;IACzC,IAAIA,GAAO;MACPV,KAAKmB,aAAa,aAAa;AAC3C,WACa;MACDnB,KAAKsB,gBAAgB;AACjC;IACQ,IAAIY,GAAe;MACflC,KAAKkC,cAAc,IAAIC,YAAY,uBAAuB;QACtDC,SAAS;QACTC,UAAU;QACVC,QAAQ;UAAE1B,OAAOZ,KAAKY;UAAOqB,WAAWvB;;;AAExD;AACA;;;SAII,QAAI6B;IACA,OAAOvC,KAAKe,aAAa;AACjC;EACI,QAAIwB,CAAK7B;IACL,IAAIA,MAAU,MAAM;MAChBV,KAAKmB,aAAa,QAAQ;AACtC,WACa;MACDnB,KAAKsB,gBAAgB;AACjC;AACA;EACI,OAAAkB,CAAQC;IACJ,OAAOzC,KAAKgC,cAAc,qCAAqCS,EAAOC;AAC9E;;;SAII,SAAAC;IACI,OAAOC,MAAMC,KAAK7C,KAAK8C,iBAAiB,0BAA0BC,MAAMC,KAASA,EAAKL;AAC9F;;;SAII,aAAAM;IACIjD,KAAKkC,cAAc,IAAIC,YAAY,oBAAoB;MAAEC,SAAS;MAAMC,UAAU;;AAC1F;;;SAII,qBAAAa;IACI,IAAIC;IACJ,KAAKnD,KAAKoD,mBAAmB;MACzBD,IAAO,IAAIE;AACvB,WACa,IAAIrD,KAAKoD,sBAAsBpD,KAAKsD,kBAAkB;MACvDH,IAAOnD,KAAKoD,kBAAkBF;AAC1C,WACa;MACD,MAAMK,IAAgBvD,KAAKoD,kBAAkBF;MAC7C,MAAMM,IAAexD,KAAKsD,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,uBAAAjD,CAAwB2D;IACpB,MAAMC,IAAYD,EAAUE;IAC5B,IAAID,EAAU/B,cAAc;MACxB/B,KAAKiC,aAAajC,KAAKiC;AACnC;IACQ4B,EAAUG;AAClB;EACI,cAAArD;IACIX,KAAKL,aAAaK,KAAKiE,QAAQ;IAC/B,OAAOjE,KAAKL;AACpB;;;AAEA,KAAKuE,eAAeC,IAAI,gBAAgB;EACpCD,eAAeE,OAAO,eAAe3E;AACzC;;;;GCpNe,OAAM4E,UAAgC3E;EACjD4E,cAAgB;EAChBjE;EACA,WAAAR;IACIC;AACR;EACI,iBAAAC;IACIC,KAAKC,iBAAiB,uBAAuBD,KAAKuE;IAClDvE,KAAKwE;AACb;;;SAII,aAAIvC;IACA,OAAOjC,KAAKe,aAAa;AACjC;EACI,aAAIkB,CAAUvB;IACV,IAAIA,GAAO;MACPV,KAAKmB,aAAa,aAAa;AAC3C,WACa;MACDnB,KAAKsB,gBAAgB;AACjC;AACA;;;SAII,SAAImD;IACA,KAAKzE,KAAKsE,eAAe;MACrBtE,KAAK0E;AACjB;IACQ,OAAO1E,KAAKsE;AACpB;;;SAII,qBAAApB;IACI,IAAIC;IACJ,MAAMwB,IAAaC,SAAS5E,KAAK6E,MAAMC,iBAAiB;IACxD,MAAMC,IAAgBH,SAAS5E,KAAK6E,MAAMC,iBAAiB;IAC3D,KAAK9E,KAAKoD,mBAAmB;MACzB,MAAM4B,IAAWhF,KAAKK,KAAK4E,WACtBjD,cAAc,SACdkB;MACLC,IAAO,IAAIE,QAAQ2B,EAASvB,GAAGuB,EAAStB,GAAGsB,EAASrB,OAAO;AACvE,WACa,IAAI3D,KAAKoD,sBAAsBpD,KAAKsD,kBAAkB;MACvD,MAAM4B,IAAelF,KAAKoD,kBAAkBF;MAC5CC,IAAO,IAAIE,QAAQ6B,EAAazB,GAAGyB,EAAaxB,IAAIiB,GAAYO,EAAazB,IAAIyB,EAAavB,OAAOuB,EAAaxB,IAAIwB,EAAatB,SAASe,IAAaI;AACrK,WACa;MACD,MAAMG,IAAelF,KAAKoD,kBAAkBF;MAC5C,MAAMiC,IAAcnF,KAAKsD,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;IACVhE,KAAKiC,aAAajC,KAAKiC;AAC/B;EACI,WAAAuC;IACIxE,KAAK6E,MAAMO,YAAY,WAAWpF,KAAKyE,MAAMY;AACrD;EACI,YAAAX;IACI1E,KAAKsE,gBAAgBtE,KAAKsF,mBAAmBb,SAAS;IACtD,IAAIzE,KAAKuF,eAAevF,KAAKwF,eAAe;MACxCxF,KAAKsE;AACjB;AACA;EACI,SAAAiB;IACI,OAAOvF,KAAKoD,mBAAmBqC,YAAY;AACnD;EACI,WAAAD;IACI,OAAOxF,KAAK0F,cAAcD,YAAY;AAC9C;EACI,eAAAH;IACI,MAAMK,IAAO3F,KAAK0F,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,UAA8BnG;EAC/CoG,SAAWF,EAAeG;EAC1BC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACA,6BAAW3G;IACP,OAAO,EAAC,aAAa,YAAY,gBAAgB;AACzD;EACI,WAAAC;IACIC;IACAE,KAAKwG;AACb;EACI,iBAAAzG;IACI,IAAIC,KAAK8F,aAAaF,EAAeG,OAAO;MACxC/F,KAAKoE;AACjB;AACA;EACI,wBAAA7D,CAAyBC,GAAMC,GAAWC;IACtC,IAAIF,MAAS,aAAa;MACtBR,KAAK8F,WAAWpF;AAC5B;IACQ,IAAIF,MAAS,YAAY;MACrBR,KAAK8F,WAAWF,EAAea;MAC/BzG,KAAKqG,UAAU3F,MAAU,OAAOA,MAAU,UAAU;AAChE;IACQ,IAAIF,MAAS,gBAAgB;MACzBR,KAAK8F,WAAWF,EAAea;MAC/BzG,KAAKsG,cAAc5F,MAAU,OAAOA,MAAU,UAAU;AACpE;IACQ,IAAIF,MAAS,eAAe;MACxBR,KAAK8F,WAAWF,EAAea;MAC/BzG,KAAKuG,aAAa7F,MAAU,OAAOA,MAAU,UAAU;AACnE;AACA;;;SAII,QAAIgG;IACA,OAAO1G,KAAK8F;AACpB;EACI,QAAIY,CAAKhG;IACL,IAAIV,KAAK8F,aAAapF,GAAO;MACzBV,KAAK8F,WAAWpF;MAChBV,KAAKoE;AACjB;AACA;;;SAII,QAAI/D;IACA,OAAOL,KAAKiE,QAAQ;AAC5B;;;SAII,UAAIxB;IACA,MAAMkE,IAAY/D,MAAMgE,UAAUC,QAAQC,KAAK9G,KAAK+G,IAAIjE,iBAAiB,0BAA0B9C;IACnG,OAAOA,KAAKK,KAAK2B,cAAc,8BAA8B2E,IAAY;AACjF;;;SAII,OAAII;IACA,OAAO/G,KAAK0F;AACpB;;;SAII,UAAIsB;IACA,OAAOhH,KAAKa,aAAa,aAAa;AAC9C;;;SAII,YAAIV;IACA,OAAOH,KAAKe,aAAa;AACjC;EACI,YAAIZ,CAASO;IACT,IAAIA,MAAU,MAAM;MAChBV,KAAKmB,aAAa,YAAY;AAC1C,WACa;MACDnB,KAAKsB,gBAAgB;AACjC;AACA;;;SAII,WAAIM;IACA,OAAO5B,KAAKe,aAAa;AACjC;EACI,WAAIa,CAAQlB;IACR,IAAIA,MAAU,MAAM;MAChBV,KAAKmB,aAAa,WAAW;AACzC,WACa;MACDnB,KAAKsB,gBAAgB;AACjC;AACA;;;SAII,SAAAqB;IACI,OAAO3C,KAAKiH,iBAAiB;AACrC;;;SAII,aAAAhE;IACIjD,KAAKkC,cAAc,IAAIC,YAAY,qBAAqB;MAAEC,SAAS;MAAMC,UAAU;;AAC3F;;;SAII,kBAAA6E,CAAmBxG;IACfV,KAAKmG,SAASgB,UAAUzG;IACxB,IAAIV,KAAKmG,SAASgB,SAAS;MACvBnH,KAAKmG,SAAShF,aAAa,QAAQ;AAC/C,WACa;MACDnB,KAAKmG,SAAShF,aAAa,QAAQ;AAC/C;AACA;EACI,kBAAAqF;IACIxG,KAAKC,iBAAiB,YAAW;MAC7B,KAAKD,KAAKsG,aAAa;QACnBtG,KAAKkC,cAAc,IAAIC,YAAY,eAAe;UAAEC,SAAS;UAAMC,UAAU;;AAC7F;AAAA;AAEA;EACI,qBAAA+E,CAAsBvD;IAClBA,EAAUG;IACVhE,KAAKkC,cAAc,IAAIC,YAAY,oBAAoB;MAAEC,SAAS;MAAMC,UAAU;;AAC1F;EACI,oBAAAgF,CAAqBxD;IACjBA,EAAUG;IACVhE,KAAKkC,cAAc,IAAIC,YAAY,uBAAuB;MACtDC,SAAS;MACTC,UAAU;MACVC,QAAQ;QACJ6E,SAASnH,KAAKmG,SAASgB;QACvBG,OAAOzD,EAAU0D;;;AAGjC;EACI,yBAAAC,CAA0B3D;IACtB,KAAKA,EAAU0D,UAAU;MACrB1D,EAAUG;AACtB;AACA;EACI,oBAAAyD,CAAqB5D;IACjBA,EAAU6D;IACV7D,EAAUG;IACVhE,KAAKkC,cAAc,IAAIC,YAAY,kBAAkB;MACjDC,SAAS;MACTC,UAAU;MACVC,QAAQ;QACJyE,KAAK/G,KAAK+G;;;AAG1B;EACI,kBAAAY;IACI3H,KAAKkC,cAAc,IAAIC,YAAY,wBAAwB;MACvDC,SAAS;MACTC,UAAU;;AAEtB;EACI,MAAA+B;IACI,QAAQpE,KAAK8F;KACT,KAAKF,EAAea;MAChBzG,KAAK4H;MACL;;KACJ,KAAKhC,EAAeiC;MAChB7H,KAAK8H;MACL;;AAEhB;EACI,UAAAF;IACI,IAAIG,IAAO;IACX,KAAK/H,KAAKiF,cAAcjF,KAAKiF,WAAW+C,cAAc,IAAI;MACtDhI,KAAKiI,aAAa;QAAEC,MAAM;;MAC1B,IAAIlI,KAAKqG,SAAS;QACd0B,KAAQ;AAGxB;MACY,IAAI/H,KAAKsG,aAAa;QAClByB,KAAQ;AAMxB;MACY,IAAI/H,KAAKuG,YAAY;QACjBwB,KAAQ;AAGxB;MACY/H,KAAKiF,WAAW+C,YAAY,aAC9BD;MAGE,IAAI/H,KAAKqG,SAAS;QACdrG,KAAKiG,OAAOjG,KAAKiF,WAAWjD,cAAc;QAC1ChC,KAAKiG,KAAKhG,iBAAiB,aAAaD,KAAKyH,qBAAqBU,KAAKnI;AACvF;MACY,IAAIA,KAAKuG,YAAY;QACjBvG,KAAKkG,SAASlG,KAAKiF,WAAWjD,cAAc;QAC5ChC,KAAKkG,OAAOjG,iBAAiB,SAASD,KAAK2H,mBAAmBQ,KAAKnI;AACnF;MACY,IAAIA,KAAKsG,aAAa;QAClBtG,KAAKmG,WAAWnG,KAAKiF,WAAWjD,cAAc;QAC9ChC,KAAKmG,SAASlG,iBAAiB,cAAc4D,KAAcA,EAAUG;QACrEhE,KAAKmG,SAASlG,iBAAiB,aAAa4D,KAAcA,EAAUG;QACpEhE,KAAKmG,SAASlG,iBAAiB,SAASD,KAAKqH,qBAAqBc,KAAKnI;QACvEA,KAAKoG,gBAAgBpG,KAAKiF,WAAWjD,cAAc;QACnDhC,KAAKoG,cAAcnG,iBAAiB,cAAc4D,KAAcA,EAAUG;QAC1EhE,KAAKoG,cAAcnG,iBAAiB,aAAa4D,KAAcA,EAAUG;QACzEhE,KAAKoG,cAAcnG,iBAAiB,SAASD,KAAKwH,0BAA0BW,KAAKnI;AACjG;AACA;AACA;EACI,cAAA8H;IACI,KAAK9H,KAAKiF,cAAcjF,KAAKiF,WAAW+C,cAAc,IAAI;MACtDhI,KAAKiI,aAAa;QAAEC,MAAM;;MAC1BlI,KAAKiF,WAAW+C,YAAY;MAQ5BhI,KAAKgG,QAAQhG,KAAKiF,WAAWjD,cAAc;MAC3ChC,KAAKgG,MAAM/F,iBAAiB,aAAaD,KAAKoH,sBAAsBe,KAAKnI;AACrF;AACA;;;AAEA,KAAKkE,eAAeC,IAAI,iBAAiB;EACrCD,eAAeE,OAAO,gBAAgByB;AAC1C;;AC1QO,MAAMuC;EACT3F;EACA4F;EACAC;EACAC,gBAAkB;EAClB,WAAA1I,CAAY2I,GAAUH,GAASC;IAC3BtI,KAAKsI,QAAQA;IACbtI,KAAKqI,UAAUA,EAAQI,KAAIhG,MAAM;MAC7BiG,SAASjG;MACTU,MAAMV,EAAOS;MACbyF,YAAY;MACZC,OAAOnG,EAAOmG;;IAElB5I,KAAKyC,SAASzC,KAAKqI,QAAQQ,MAAKC,KAAQA,EAAKJ,QAAQF,aAAaA;IAClExI,KAAKqI,QAAQU,QAAQ/I,KAAKgJ,oBAAoBb,KAAKnI;AAC3D;EACI,QAAAiJ,CAASC;;;;IAIL,MAAMC,IAAcnJ,KAAKyC,OAAOiG,QAAQE;;;eAIxC,MAAMQ,IAAepJ,KAAKyC,OAAOiG,QAAQW;IACzC,IAAIC,IAAc;IAClB,IAAIC,IAAqB;IACzBvJ,KAAKyC,OAAOkG,aAAa;IACzB3I,KAAKqI,QACAmB,QAAO/G,KAAUA,EAAOiG,QAAQW,WAAWD,IAC3CL,SAAQtG;;;;MAIT,MAAMgH,IAAchH,EAAOiG,QAAQE;;;;;qBAMnC,MAAMc,IAAgBP,IAAcM,IAAc,KAAK;;;;qBAKvD,MAAME,KAAkBR,IAAcM,IAAc,KAAK,MAAMzJ,KAAKsI,SAAS,IAAI;MACjF,IAAI7F,EAAOU,KAAKyG,OAAOV,KACnBA,IAAWzG,EAAOU,KAAK0G,SACvBJ,MAAgBN,GAAa;;;;;QAK7BnJ,KAAK8J,mBAAmBrH,GAAQkH;;gBAEhClH,EAAOmG,QAAQnG,EAAOiG,QAAQE,QAAQc;QACtCJ,IAAcG;AAC9B,aACiB,IAAIP,IAAWzG,EAAOU,KAAKyG,SAC3B5J,KAAKsI,QAAQmB,IAAcN,IAAcM,IAAcN,IAAc;;;;;QAKtEnJ,KAAK8J,mBAAmBrH,GAAQkH;;gBAEhClH,EAAOmG,QAAQnG,EAAOiG,QAAQE,QAAQc;QACtC,KAAKJ,MACAtJ,KAAKsI,QAAQmB,IAAcH,IAAcG,IAAcH,IAAc;UACtEA,IAAcG;AAClC;AACA,aACiB,IAAIP,IAAWzG,EAAOU,KAAK0G,UAC3B7J,KAAKsI,QAAQmB,IAAcN,IAAcM,IAAcN,IAAc;;;;;QAKtEnJ,KAAK8J,mBAAmBrH,GAAQkH;;gBAEhClH,EAAOmG,QAAQnG,EAAOiG,QAAQE,QAAQc;QACtC,KAAKJ,MACAtJ,KAAKsI,QAAQmB,IAAcH,IAAcG,IAAcH,IAAc;UACtEA,IAAcG;AAClC;AACA,aACiB,IAAIA,MAAgBN,GAAa;;;;;QAKlCnJ,KAAK+J,oBAAoBtH;AACzC;AAAA;IAEQzC,KAAKyC,OAAOmG,QAAQU,IAAcA,IAActJ,KAAKyC,OAAOiG,QAAQE;IACpEW,IAAqBD,MAAgBtJ,KAAKuI;IAC1CvI,KAAKuI,kBAAkBe;IACvB,OAAOC;AACf;EACI,OAAAS;IACIhK,KAAKqI,QAAQU,SAAQtG;MACjBA,EAAOiG,QAAQE,QAAQnG,EAAOmG;MAC9BnG,EAAOkG,aAAa;AAAC;AAEjC;EACI,cAAAsB,CAAexH;IACX,OAAO;MACH,CAAC,oBAAoBA,EAAOC,4BAA4B,cAAc1C,KAAKqI,QAAQQ,MAAKqB,KAAcA,EAAWxB,YAAYjG,IACxHkG;;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,CAAmBrH,GAAQkH;;;IAGvBlH,EAAOkG,aAAa3I,KAAKyC,OAAOU,KAAKQ,QAAQgG;;;QAG7C3J,KAAKyC,OAAOkG,cAAclG,EAAOU,KAAKQ,SAASgG,KAAkB;AACzE;EACI,mBAAAI,CAAoBtH;;IAEhBA,EAAOkG,aAAa;;QAEpBlG,EAAOmG,QAAQnG,EAAOiG,QAAQE;AACtC;EACI,mBAAAI,CAAoBvG;IAChB,IAAIA,EAAOiG,QAAQ4B,QAAQ;MACvB,MAAMG,IAAgBzK,KAAK0K,0BAA0BjI,MACjDzC,KAAK2K,sBAAsBlI;MAC/BA,EAAOU,OAAO,IAAIE,QAAQZ,EAAOiG,QAAQE,QAAQ6B,EAAc/B,QAAQE,QACjE6B,EAActH,KAAKyG,OACnBa,EAActH,KAAK0G,OAAOY,EAActH,KAAKO,GAAG,GAAG+G,EAActH,KAAKS;AACxF;AACA;EACI,yBAAA8G,CAA0BJ;IACtB,IAAIM;IACJ5K,KAAKqI,QAAQU,SAAQtG;MACjB,KAAKA,EAAOiG,QAAQ4B,UAChB7H,EAAOiG,QAAQE,QAAQ0B,EAAO5B,QAAQE,WACpCgC,KAAYnI,EAAOiG,QAAQE,QAAQgC,EAASlC,QAAQE,QAAQ;QAC9DgC,IAAWnI;AAC3B;AAAA;IAEQ,OAAOmI;AACf;EACI,qBAAAD,CAAsBL;IAClB,IAAIO;IACJ7K,KAAKqI,QAAQU,SAAQtG;MACjB,KAAKA,EAAOiG,QAAQ4B,UAChB7H,EAAOiG,QAAQE,QAAQ0B,EAAO5B,QAAQE,WACpCiC,KAAQpI,EAAOiG,QAAQE,QAAQiC,EAAKnC,QAAQE,QAAQ;QACtDiC,IAAOpI;AACvB;AAAA;IAEQ,OAAOoI;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,UAAUzF,MAAMC,KAAK7C,KAAK+K,QAAQ1K,KAAKyC,iBAAiB;IAC7D9C,KAAKwL;IACLxL,KAAKyL,cAAczL,KAAKqI;IACxBrI,KAAK0L;IACL1L,KAAK2L;IACL3L,KAAK4L;AACb;EACI,SAAAC,CAAUrD;IACN,OAAOxI,KAAKqI,QAAQQ,MAAKpG,KAAUA,EAAO+F,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,SAAQtG;MACjB,KAAKA,EAAO6H,YACNC,KAAe9H,EAAOmG,QAAQ2B,EAAY3B,QAAQ;QACpD2B,IAAc9H;AAC9B;MACY,KAAKA,EAAO6H,YAAYE,KAAc/H,EAAOmG,QAAQ4B,EAAW5B,QAAQ;QACpE4B,IAAa/H;AAC7B;AAAA;IAEQ,OAAO;MACH8H;MACAC;;AAEZ;EACI,iBAAA0B;IACI,OAAOlM,KAAKqI,QAAQQ,MAAKpG,KAAUA,EAAO0J,eAAe,UAAU1J,EAAO2J;AAClF;EACI,iBAAAT;IACI,MAAMU,IAAcrM,KAAKqI,QACpBmB,QAAO/G,KAAUA,EAAO4G,WAAW,UACnC2C,KAAKhM,KAAKiM;IACf,MAAMK,IAAWtM,KAAKqI,QACjBmB,QAAO/G,KAAUA,EAAO4G,WAAW,WAAW5G,EAAO4G,WAAW,QAChE2C,KAAKhM,KAAKiM;IACf,MAAMM,IAAYvM,KAAKqI,QAClBmB,QAAO/G,KAAUA,EAAO4G,WAAW,QACnC2C,KAAKhM,KAAKiM;IACf,IAAIrD,IAAQ;IACZyD,EAAYtD,SAAQtG,KAAWA,EAAOmG,QAAQA;IAC9C0D,EAASvD,SAAQtG,KAAWA,EAAOmG,QAAQA;IAC3C2D,EAAUxD,SAAQtG,KAAWA,EAAOmG,QAAQA;AACpD;EACI,aAAA6C,CAAcpD;IACVA,EAAQU,SAAQtG;MACZzC,KAAKwM,eAAe/J;MACpBzC,KAAKyM,kBAAkBhK;MACvBzC,KAAK0M,kBAAkBjK;MACvBzC,KAAK2M,iBAAiBlK;MACtBzC,KAAK4M,4BAA4BnK;MACjCzC,KAAK6M,2BAA2BpK;MAChCzC,KAAK8M,iBAAiBrK;AAAO;AAEzC;EACI,cAAA+J,CAAe/J;IACXA,EAAO+F,aAAaxI,KAAK+M;AACjC;EACI,iBAAAN,CAAkBhK;IACdA,EAAOC,gBAAgB1C,KAAKqI,QAAQxB,QAAQpE,KAAU;AAC9D;EACI,iBAAAiK,CAAkBjK;IACdA,EAAOmG,UAAUnG,EAAOC;AAChC;EACI,gBAAAiK,CAAiBlK;IACbA,EAAOuK,SAAS;AACxB;EACI,2BAAAJ,CAA4BnK;IACxB,IAAIA,EAAOwK,yBAAyBxK,EAAO6H,QAAQ;MAC/C,MAAM4C,IAAIlN,KAAKsL,eAAe6B,KAAKC,SAASC,cAAc,6BAA6B;MACvFrN,KAAKsL,eAAe4B,GAAG/L,aAAa,QAAQ;MAC5CnB,KAAKsL,eAAe4B,GAAG/L,aAAa,SAASsB,EAAOwK;MACpDjN,KAAKsL,eAAe4B,GAAGzK,SAASA;MAChCzC,KAAK+K,QAAQ1K,KAAKiN,YAAYtN,KAAKsL,eAAe4B;AAC9D;AACA;EACI,0BAAAL,CAA2BpK;IACvBzC,KAAKmL,qBAAqBoC,QAAQ9K,GAAQ;MAAE+K,KAAK;;AACzD;EACI,gBAAAV,CAAiBrK;IACb,QAAQA,EAAO0J;KACX,KAAK;MACDnM,KAAK+K,QAAQ1K,KACRyC,iBAAiB,0BAA0BL,EAAOC,kBAClDqG,SAAS/F;QACVA,EAAK0D,OAAOd,EAAeiC;AAAQ;MAEvC;;KACJ,KAAK;MACD7H,KAAK+K,QAAQ1K,KACRyC,iBAAiB,0BAA0BL,EAAOC,kBAClDqG,SAAS/F;QACVA,EAAKqD,UAAU5D,EAAOgL;QACtBzK,EAAKsD,cAAc7D,EAAO2J;QAC1BpJ,EAAKuD,aAAa9D,EAAOiL;QACzB1K,EAAK0D,OAAOd,EAAea;AAAI;MAEnC;;AAEhB;EACI,sBAAAiF;IACI,MAAMiC,IAAO3N,KAAK+K,QAAQ1K,KAAKuN;IAC/B,MAAM/I,IAAQ8I,EAAK3L,cAAc;IACjC,KAAK6C,KACDD,SAASC,EAAMhE,aAAa,mBAAmBb,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,IAAIjJ,GAAO;QACPA,EAAM1D,aAAa,gBAAgBnB,KAAKqI,QAAQwF,OAAOxI;QACvDR,EAAMmD,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,OAAOxI;QACxC+I,EAAEG,YAAYR;QACdJ,EAAKL,YAAYc;AACjC;AACA;AACA;EACI,eAAAI,CAAgBnG;IACZA,EAAQU,SAAQtG;MACZzC,KAAKmL,qBAAqBsD,UAAUhM;MACpCzC,KAAKsL,eACA9B,QAAOkF,KAAiBA,EAAcjM,WAAWA,IACjDsG,SAAQD;QACTA,EAAKvH;AAAQ;AACf;AAEd;EACI,gBAAAiK;IACIxL,KAAKgL,kBAAkBuC,QAAQvN,KAAK+K,QAAQ1K,KAAK2B,cAAc,sBAAsB;MAAE2M,WAAW;;AAC1G;EACI,aAAAzD;IACI,MAAM7C,IAAUzF,MAAMC,KAAK7C,KAAK+K,QAAQ1K,KAAKyC,iBAAiB;IAC9D,MAAM8L,IAAevG,EAAQmB,QAAO/G,MAAWzC,KAAKqI,QAAQwG,SAASpM;IACrE,MAAMqM,IAAiB9O,KAAKqI,QAAQmB,QAAO/G,MAAW4F,EAAQwG,SAASpM;IACvE,IAAImM,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,MAAMvM,IAASwM,EAAMC;MACrBlP,KAAKuL,aAAa9I,EAAOC,gBAAgB,KAAKuM,EAAME,YAAYxL;AAC5E;IACQ3D,KAAK+K,QAAQqE,wBAAwBpP,KAAKuL;AAClD;EACI,iBAAAwB;IACI,MAAMsC,IAAWC,KAAKC,MAAMlK,SAAS,MAAMmK,KAAKC,SAASpK,SAAS,IAAIqK,UAAU;IAChF,OAAO,uBAAuBL;AACtC;EACI,YAAAN;;IAEI/O,KAAKqI,QAAQU,SAAQ,CAACtG,GAAQyK,MAAOzK,EAAOC,gBAAgBwK,IAAI;;QAEhE,KAAIlN,KAAKqI,UAAS2D,KAAKhM,KAAKiM,eAAelD,SAAQ,CAACtG,GAAQyK;MACxDzK,EAAOmG,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,aAAa;IACbC,cAAc;;EAElBC;EACAC;EACAC;EACAC;EACA,WAAA7Q,CAAYkL;IACR/K,KAAK+K,UAAUA;AACvB;EACI,UAAA4F,CAAWC;IACP5Q,KAAKuQ,QAAQ;MACTM,SAASD,EAAWE,QAAQ,GAAGD;MAC/BE,SAASH,EAAWE,QAAQ,GAAGC;;AAE3C;EACI,mBAAAC,CAAoBJ;IAChB,OAAQpB,KAAKyB,IAAIjR,KAAKuQ,MAAMM,UAAUD,EAAWM,eAAe,GAAGL,WAC/D,MACArB,KAAKyB,IAAIjR,KAAKuQ,MAAMQ,UAAUH,EAAWM,eAAe,GAAGH,WACvD,MACJH,EAAWO;AACvB;EACI,MAAAC,CAAOC,GAAOtK,GAAK/D,GAAMoO,GAAQE,GAAQhK,GAAOiK;IAC5C,MAAMlR,IAAOL,KAAK+K,QAAQ1K;IAC1B,IAAIA,EAAKmR,2BAA2B,UAChCnR,EAAKoR,qBAAqB,QAAQ;MAClC,OAAOzR,KAAKkQ;AACxB;IACQ,IAAI7P,EAAKoR,qBAAqB,QAAQ;MAClCL,IAAS;AACrB;IACQ,IAAI/Q,EAAKoR,qBAAqB,YAAY;MACtCH,IAAS;MACThK,IAAQ;AACpB;IACQ,KAAI6I,YAAEA,GAAUC,cAAEA,GAAYC,aAAEA,GAAWC,cAAEA,KAAiBe;IAC9DlB,IAAapJ;IACbsJ,IAAcrN;IACd,IAAIsE,GAAO;MACP,MAAMoK,IAAY1R,KAAK+K,QAAQ4G,aAAa3R,KAAK+P,cAAchJ,GAAKA;MACpE,IAAI/G,KAAKgQ,YAAY;QACjB,IAAIsB,GAAQ;UACRlB,IAAexN,MAAMC,KAAK,IAAI+O,IAAIxB,EAAayB,OAAOH;AAC1E,eACqB;UACDtB,IAAepQ,KAAK8R,uBAAuBJ,GAAWL,EAAMjB;AAChF;QACgBE,IACItN,KACI+D,EAAIvE,QAAQ8N,GAAc7N,UAAUzC,KAAK+K,QAAQgH;AACzE,aACiB;QACD3B,IAAeA,EAAa5G,QAAOwI,MAAgBN,EAAU7C,SAASmD;QACtE1B,IAAe;AAC/B;AACA,WACa,IAAIgB,GAAQ;MACbtR,KAAK+P,aAAahJ;MAClB/G,KAAKgQ,cAAcjJ,EAAI5G;MACvB,IAAIiQ,EAAavB,SAAS9H,IAAM;QAC5BqJ,IAAeA,EAAa5G,QAAOwI,KAAeA,MAAgBjL;QAClEuJ,IAAee,EAAMf,cAAcvJ,QAAQA,IAAM,OAAOuJ;AACxE,aACiB;QACDF,IAAe,KAAIA,GAAcrJ;QACjCuJ,IACItN,KACI+D,EAAIvE,QAAQ8N,GAAc7N,UAAUzC,KAAK+K,QAAQgH;AACzE;AACA,WACa;MACD/R,KAAK+P,aAAahJ;MAClB/G,KAAKgQ,aAAa;MAClB,IAAIoB,GAAQ;QACR,MAAMG,KAAWF,EAAMjB,aAAavB,SAAS9H,KAAO;UAChDqJ,IAAepQ,KAAK8R,uBAAuB,EAAC/K,KAAMsK,EAAMjB;AAC5E;QACgBE,IACItN,KACI+D,EAAIvE,QAAQ8N,GAAc7N,UAAUzC,KAAK+K,QAAQgH;AACzE;AACA;IACQ,OAAO;MAAE5B;MAAYC;MAAcC;MAAaC;;AACxD;EACI,SAAA2B,CAAUZ,GAAO3Q,IAAQ;IACrB,IAAIV,KAAK+K,QAAQ1K,KAAKoR,qBAAqB,QAAQ;MAC/C,OAAOzR,KAAKkQ;AACxB;IACQ,MAAMgC,IAAOlS,KAAK+K,QAAQoH;IAC1B,IAAIhC,IAAakB,EAAMlB;IACvB,IAAIC,IAAeiB,EAAMjB;IACzB,IAAIC,IAAcgB,EAAMhB;IACxB,IAAIC,IAAee,EAAMf;IACzBH,MAAenQ,KAAK+K,QAAQqH;IAC5B/B,MAAgBF,EAAW3N,QAAQ6O,EAAMhB,aAAa5N,UAAUzC,KAAK+K,QAAQgH;IAC7E,IAAIrR,GAAO;MACP0P,IAAe8B;MACf5B,IAAeD;AAC3B,WACa;MACDD,IAAe;MACfE,IAAe;AAC3B;IACQ,OAAO;MAAEH;MAAYC;MAAcC;MAAaC;;AACxD;EACI,SAAA+B,CAAUhB,GAAOtK,GAAK/D,GAAMtC,IAAQ;IAChC,IAAI4Q,IAAS;IACb,IAAItR,KAAK+K,QAAQ1K,KAAKoR,qBAAqB,QAAQ;MAC/C,OAAOzR,KAAKkQ;AACxB;IACQ,IAAIlQ,KAAK+K,QAAQ1K,KAAKoR,qBAAqB,YAAY;MACnDH,IAAS;AACrB;IACQ,IAAInB,IAAakB,EAAMlB;IACvB,IAAIC,IAAeiB,EAAMjB;IACzB,IAAIC,IAAcgB,EAAMhB;IACxB,IAAIC,IAAee,EAAMf;IACzBH,IAAapJ;IACbsJ,IAAcrN;IACd,IAAItC,GAAO;MACP,IAAI4Q,GAAQ;QACRlB,IAAeA,EAAavB,SAAS9H,KAC/BqJ,IACA,KAAIA,GAAcrJ;AACxC,aACiB;QACDqJ,IAAeA,EAAavB,SAAS9H,KAAOqJ,IAAe,EAACrJ;AAC5E;MACYuJ,IAAetN;AAC3B,WACa;MACDoN,KAAgBA,EAAavB,SAAS9H,KAChCqJ,IACAA,EAAa5G,QAAOwI,KAAeA,MAAgBjL;MACzDuJ,IAAe;AAC3B;IACQ,OAAO;MAAEH;MAAYC;MAAcC;MAAaC;;AACxD;EACI,YAAAgC,CAAajB,GAAOD,GAAQ9J,GAAOgK;IAC/B,MAAMiB,IAAWvS,KAAK+K,QAAQqH;IAC9B,IAAIG,GAAU;MACV,OAAOvS,KAAKoR,OAAOC,GAAOkB,GAAUA,EAAS/P,QAAQ6O,EAAMhB,YAAY5N,SAAS2O,GAAQE,GAAQhK,GAAO;AACnH;IACQ,OAAO+J;AACf;EACI,eAAAmB,CAAgBnB,GAAOD,GAAQ9J,GAAOgK;IAClC,MAAMmB,IAAczS,KAAK+K,QAAQ2H,eAAerB,EAAMlB;IACtD,IAAIsC,GAAa;MACb,OAAOzS,KAAKoR,OAAOC,GAAOoB,GAAaA,EAAYjQ,QAAQ6O,EAAMhB,YAAY5N,SAAS2O,GAAQE,GAAQhK,GAAO;AACzH;IACQ,OAAO+J;AACf;EACI,WAAAsB,CAAYtB,GAAOD,GAAQ9J,GAAOgK;IAC9B,MAAMsB,IAAU5S,KAAK+K,QAAQ8H,WAAWxB,EAAMlB;IAC9C,IAAIyC,GAAS;MACT,OAAO5S,KAAKoR,OAAOC,GAAOuB,GAASA,EAAQpQ,QAAQ6O,EAAMhB,YAAY5N,SAAS2O,GAAQE,GAAQhK,GAAO;AACjH;IACQ,OAAO+J;AACf;EACI,WAAAyB,CAAYzB,GAAOD,GAAQ9J,GAAOgK;IAC9B,MAAMyB,IAAU/S,KAAK+K,QAAQiI;IAC7B,IAAID,GAAS;MACT,OAAO/S,KAAKoR,OAAOC,GAAO0B,GAASA,EAAQvQ,QAAQ6O,EAAMhB,YAAY5N,SAAS2O,GAAQE,GAAQhK,GAAO;AACjH;IACQ,OAAO+J;AACf;EACI,mBAAA4B,CAAoB5B,GAAOD,GAAQ9J,GAAOgK;IACtC,MAAMY,IAAOlS,KAAK+K,QAAQoH;IAC1B,MAAMe,IAAclT,KAAK+K,QAAQoI;IACjC,MAAMC,IAAkBlB,EAAK1C,KAAK6D,IAAInB,EAAKrL,QAAQwK,EAAMlB,cAAc+C,GAAa;IACpF,IAAIE,GAAiB;MACjB,OAAOpT,KAAKoR,OAAOC,GAAO+B,GAAiBA,EAAgB5Q,QAAQ6O,EAAMhB,YAAY5N,SAAS2O,GAAQE,GAAQhK,GAAO;AACjI;IACQ,OAAO+J;AACf;EACI,eAAAiC,CAAgBjC,GAAOD,GAAQ9J,GAAOgK;IAClC,MAAMY,IAAOlS,KAAK+K,QAAQoH;IAC1B,MAAMe,IAAclT,KAAK+K,QAAQoI;IACjC,MAAMI,IAAcrB,EAAK1C,KAAKgE,IAAItB,EAAKrL,QAAQwK,EAAMlB,cAAc+C,GAAahB,EAAKrE,SAAS;IAC9F,IAAI0F,GAAa;MACb,OAAOvT,KAAKoR,OAAOC,GAAOkC,GAAaA,EAAY/Q,QAAQ6O,EAAMhB,YAAY5N,SAAS2O,GAAQE,GAAQhK,GAAO;AACzH;IACQ,OAAO+J;AACf;EACI,gBAAAoC,CAAiBpC,GAAOD,GAAQ9J;IAC5B,MAAMoM,IAAe1T,KAAK+K,QAAQ4I,gBAAgBtC,EAAMhB;IACxD,IAAIqD,GAAc;MACd,OAAO1T,KAAKoR,OAAOC,GAAOA,EAAMlB,YAAYuD,GAActC,GAAQ,OAAO9J,GAAO;AAC5F;IACQ,OAAO+J;AACf;EACI,YAAAuC,CAAavC,GAAOD,GAAQ9J;IACxB,MAAMuM,IAAW7T,KAAK+K,QAAQ+I,YAAYzC,EAAMhB;IAChD,IAAIwD,GAAU;MACV,OAAO7T,KAAKoR,OAAOC,GAAOA,EAAMlB,YAAY0D,GAAUzC,GAAQ,OAAO9J,GAAO;AACxF;IACQ,OAAO+J;AACf;EACI,OAAA0C,CAAQhN,GAAKI,GAASG,GAAO0M;IACzB,IAAIjN,GAAK;MACL,IAAIO,GAAO;QACP,MAAM5G,KAASqG,EAAI3G;QACnB,MAAM8R,IAAOlS,KAAK+K,QAAQ4G,aAAa3R,KAAKiQ,iBAAiBlJ,GAAKA;QAClE/G,KAAKiQ,gBAAgBlJ;QACrB,IAAIrG,GAAO;UACP,OAAOsT,EAAkBnC,OAAOK,EAAK1I,QAAOzC,MAAQiN,EAAkBnF,SAAS9H;AACnG;QACgB,OAAOiN,EAAkBxK,QAAOzC,MAAQmL,EAAKrD,SAAS9H;AACtE;MACY/G,KAAKiQ,gBAAgBlJ;MACrB,IAAII,MAAY6M,EAAkBnF,SAAS9H,IAAM;QAC7C,OAAOiN,EAAkBnC,OAAO,EAAC9K;AACjD;MACY,KAAKI,KAAW6M,EAAkBnF,SAAS9H,IAAM;QAC7C,OAAOiN,EAAkBxK,QAAOyK,KAAKA,MAAMlN;AAC3D;AACA;IACQ,OAAOiN;AACf;EACI,QAAAE,CAAS/D,GAAYgE,GAAY/D;IAC7B,MAAM8B,IAAO9B,EAAavB,SAASsB,KAC7BC,IACA,EAACD;IACP,IAAI+B,EAAKnP,MAAKgE,MAAQA,EAAI3G,UAAS;MAC/B,OAAOwC,MAAMC,KAAK,IAAI+O,IAAIuC,EAAWtC,OAAOK;AACxD;IACQ,OAAOiC,EAAW3K,QAAOzC,MAAQmL,EAAKrD,SAAS9H;AACvD;EACI,WAAAqN,CAAY1T,IAAQ;IAChB,IAAIA,GAAO;MACP,OAAOV,KAAK+K,QAAQoH;AAChC;IACQ,OAAO;AACf;EACI,eAAAkC,CAAgBnC,GAAMtH,IAAW,IAAI0J;IACjC,MAAMC,IAAiBvU,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,IAAIqI,GAAgBC,wBAAwBF,GAAc;MACtD,MAAMG,IAAsBF,EAAe7R,gBAAgB;MAC3DkI,GACMpB,QAAO/F,MAAMyO,EAAKrD,SAASpL,KAC5BsF,SAAQhC;QACTA,EAAI3G,SAAS;QACb,MAAM4C,IAAO+D,EAAI2N,SAASD;QAC1BzR,EAAKkE,mBAAmB;AAAM;MAElCgL,GAAMnJ,SAAQhC;QACVA,EAAI3G,SAASmU,EAAeC,wBAAwB;QACpD,MAAMxR,IAAO+D,EAAI2N,SAASD;QAC1BzR,EAAKkE,mBAAmB;AAAK;MAEjClH,KAAK2U,mBAAmBzC,EAAKrE,QAAQ0G;AACjD;AACA;EACI,kBAAAI,CAAmB9G,GAAQ0G;IACvBA,MAAmBvU,KAAK+K,QAAQ1C,QAAQ6D;IACxC,IAAI2B,MAAW,GAAG;MACd0G,EAAeK,uBAAuB;AAClD,WACa,IAAI/G,MAAW7N,KAAK+K,QAAQoH,UAAUtE,QAAQ;MAC/C0G,EAAeK,uBAAuB;AAClD,WACa;MACDL,EAAeK,uBAAuB;AAClD;AACA;EACI,sBAAA9C,CAAuB+C,GAAcC;IACjC,OAAOD,EAAahH,WAAWiH,EAAajH,UACxCgH,EAAaE,OAAMjM,KAAQgM,EAAajG,SAAS/F,OAC/CgM,IACAD;AACd;;;ACvRO,MAAMG;EACTjK;EACAhE;EACAkO;EACAC;EACAC,gBAAkBnV,KAAKoV,qBAAqBjN,KAAKnI;EACjD,WAAAH,CAAYkL;IACR/K,KAAK+K,UAAUA;AACvB;EACI,SAAAsK,CAAUtO;IACN/G,KAAK+G,MAAMA;IACX/G,KAAKiV,WAAWjV,KAAK+K,QAAQuK,gBAAgBvO;IAC7C/G,KAAKuV;IACLvV,KAAKwV;IACLxV,KAAKyV;IACLzV,KAAK0V;AACb;EACI,oBAAAN,CAAqBvR;IACjB,MAAMqL,IAASrL,EAAUqL;IACzB,MAAMyG,IAAWzG,EAAOjL,QAAQ;IAChC,IAAI0R,KACAA,EAASjQ,kBAAkB1F,KAAK+G,IAAIrB,iBACpCiQ,EAAStV,SAASL,KAAK+K,QAAQ1K,MAAM;MACrC,MAAMuV,IAAgB5V,KAAK+K,QAAQuK,gBAAgBK;MACnD,MAAME,IAAuBD,IAAgB;;YAC7C,MAAME,IAAiB9V,KAAKiV,WAAWW,KAAiB,IAAI;MAC5D,IAAI5V,KAAKkV,UAAUrQ,MAAMC,iBAAiB,8BACtC,GAAG+Q,KAAwB;QAC3B7V,KAAKkV,UAAUrQ,MAAMO,YAAY,0BAA0B,GAAGyQ;AAC9E,aACiB;QACD7V,KAAKkV,UAAUrQ,MAAMO,YAAY,0BAA0B,GAAGyQ,IAAuBC;AACrG;MACY9V,KAAK0V;AACjB;AACA;EACI,kBAAAK;IACI3I,SAAS4I,oBAAoB,aAAahW,KAAKmV;IAC/C,MAAMc,IAAerR,SAAS5E,KAAKkV,UAAUrQ,MAAMC,iBAAiB;IACpE,MAAMoR,IAAUlW,KAAK+K,QAAQ1K,KACxByC,iBAAiB,eACjBgG,KAAKmN,IAAe;IACzB,IAAIA,IAAejW,KAAKiV,WAAW,GAAG;MAClCiB,EAAQC,OAAOnW,KAAK+G;AAChC;IACQ,IAAIkP,IAAejW,KAAKiV,WAAW,GAAG;MAClCiB,EAAQE,MAAMpW,KAAK+G;AAC/B;IACQ/G,KAAKqW;IACLrW,KAAKkV,UAAU3T;IACfvB,KAAK+G,MAAM;IACX/G,KAAKkV,YAAY;AACzB;EACI,eAAAK;IACInI,SAASnN,iBAAiB,aAAaD,KAAKmV,iBAAiB;MACzDmB,SAAS;;IAEblJ,SAASnN,iBAAiB,WAAWD,KAAK+V,mBAAmB5N,KAAKnI,OAAO;MACrEuW,MAAM;;AAElB;EACI,eAAAf;IACI,MAAMgB,IAAYxW,KAAK+K,QAAQ0L,aAAazW,KAAK+G;IACjD/G,KAAKkV,YAAY9H,SAASC,cAAc;IACxCrN,KAAKkV,UAAUrQ,MAAM6R,UAAU;IAC/B1W,KAAK+K,QAAQ4L,kBAAkB5N,SAAQpF;MACnC,MAAMlB,IAAS2K,SAASC,cAAc;MACtC5K,EAAOoC,MAAM+R,UAAU;MACvBnU,EAAOoC,MAAMgS,WAAWlT;MACxBlB,EAAOoC,MAAMjB,SAAS,GAAG4S;MACzB/T,EAAOoC,MAAMiS,eAAe;MAC5B9W,KAAKkV,UAAU5D,OAAO7O;AAAO;AAEzC;EACI,QAAAgT;IACI,MAAMlK,IAAevL,KAAK+K,QAAQ4L;IAClC,MAAMI,IAAW/W,KAAK+K,QAAQiM,WAAWC;IACzCjX,KAAK+G,IAAIoP,OAAOnW,KAAKkV;IACrBlV,KAAK+G,IAAI5F,aAAa,YAAY;IAClCnB,KAAK+G,IAAIlC,MAAMlB,QAAQ,GAAGoT;IAC1B/W,KAAK+G,IACAjE,iBAAiB,yBACjBiG,SAAQ,CAAC/F,GAAMkK;MAChB,MAAMgK,IAAiBtS,SAAS5E,KAAK+K,QAAQiM,WAAWnS,MAAMC,iBAAiB,oBAAoBoI,IAAI;MACvG,KAAKlK,EAAKsH,QAAQ;QACdtH,EAAK6B,MAAMlB,QAAQ4H,EAAa2L,IAAiB;QACjDlU,EAAK6B,MAAM+D,QAAQ,GAAGsO;AACtC;AAAA;AAEA;EACI,UAAAb;IACIrW,KAAK+G,IAAIzF,gBAAgB;IACzBtB,KAAK+G,IAAIlC,MAAMlB,QAAQ;IACvB3D,KAAK+G,IACAjE,iBAAiB,yBACjBiG,SAAS/F;MACVA,EAAK6B,MAAMlB,QAAQ;MACnBX,EAAK6B,MAAM+D,QAAQ;AAAE;AAEjC;EACI,iBAAA8M;IACI,MAAMvS,IAAOnD,KAAKkV,UAAUR,SAAS,GAAGxR;IACxClD,KAAK+G,IAAIlC,MAAMsS,MAAM,GAAGhU,EAAKgU;IAC7BnX,KAAK+G,IAAIlC,MAAM+E,OAAO,GAAGzG,EAAKyG;AACtC;;;ACxGO,MAAMwN;EACTrM;EACAsM;EACAC;EACAC;EACA,WAAA1X,CAAYkL;IACR/K,KAAK+K,UAAUA;IACf/K,KAAK+K,QAAQ1K,KACRyC,iBAAiB,wBAChBiG,SAAQxC;MACV,IAAIA,EAAW8Q,gBAAgB;QAC3BrX,KAAKqX,iBAAiB9Q;AACtC;MACY,IAAIA,EAAW+Q,kBAAkB;QAC7BtX,KAAKsX,mBAAmB/Q;AACxC;MACY,IAAIA,EAAWgR,kBAAkB;QAC7BvX,KAAKuX,mBAAmBhR;AACxC;AAAA;AAEA;;;ACpBO,MAAMiR;EACTzM;EACAtI;EACAgV;EACAC;EACAC;EACAC;EACAC;EACAnO;EACAoO;EACAC;EACA,WAAAlY,CAAYkL,GAASvC,GAAUF;IAC3BtI,KAAK+K,UAAUA;IACf/K,KAAK0J,gBAAgBpB,KAAS,IAAI;IAClC,IAAItI,KAAK+K,QAAQ1K,KAAK2X,qBAAqB,YAAY;MACnDhY,KAAK8X,aAAa9X,KAAKiY;MACvBjY,KAAK+X,cAAc/X,KAAKkY;AACpC,WACa;MACDlY,KAAK8X,aAAa9X,KAAKmY;MACvBnY,KAAK+X,cAAc;AAC/B;IACQ/X,KAAKyC,SAASzC,KAAK+K,QAAQ1C,QAAQwD,UAAUrD;IAC7CxI,KAAKyX,mBAAmBzX,KAAKyC,OAAOS,wBAAwBS;IAC5D3D,KAAK0X,kBAAkB1X,KAAKoY,cAAcpY,KAAKyC,OAAOuK;IACtDhN,KAAK2X,cAAc3X,KAAK+K,QAAQsN,cAAcrY,KAAKyC;IACnDzC,KAAK4X,wBACD5X,KAAK2X,aAAazU,wBAAwBS;IAC9C3D,KAAK6X,uBAAuB7X,KAAKoY,cAAcpY,KAAK2X,YAAY3K;AACxE;EACI,QAAAsL,CAASC;IACLvY,KAAK8X,WAAWS;AACxB;EACI,SAAAC;IACI,IAAIxY,KAAK+X,aAAa;MAClB/X,KAAK+X;AACjB;AACA;EACII,eAAkBI;IACd,MAAME,IAAczY,KAAKyX,mBAAmBc,IAAavY,KAAK0J;IAC9D,IAAI+O,KAAe,GAAG;MAClBzY,KAAKyC,OAAOuK,OAAO,uBAAuByL;AACtD;AAAA;EAEIR,iBAAoBM;IAChB,MAAME,IAAczY,KAAKyX,mBAAmBc,IAAavY,KAAK0J;IAC9D,IAAI+O,KAAe,GAAG;MAClB,IAAIzY,KAAK0X,iBAAiB;QACtB1X,KAAKyC,OAAOuK,OAAOhN,KAAK0Y,YAAY1Y,KAAK0X,iBAAiB1X,KAAKyX,kBAAkBgB;AACjG,aACiB;QACDzY,KAAKyC,OAAOuK,OAAO,uBAAuByL;AAC1D;AACA;IACQ,IAAIzY,KAAK2X,aAAa;MAClB,MAAMgB,IAAmB3Y,KAAK4X,wBAAwBW,IAAavY,KAAK0J;MACxE,IAAIiP,KAAoB,GAAG;QACvB,IAAI3Y,KAAK6X,sBAAsB;UAC3B7X,KAAK2X,YAAY3K,OAAOhN,KAAK0Y,YAAY1Y,KAAK6X,sBAAsB7X,KAAK4X,uBAAuBe;AACpH,eACqB;UACD3Y,KAAK2X,YAAY3K,OAAO,uBAAuB2L;AACnE;AACA;AACA;AAAA;EAEI,iBAAAT;IACI,MAAMU,IAAiB5Y,KAAKyC,OAAOS,wBAAwBS;IAC3D3D,KAAKyC,OAAOuK,OAAOhN,KAAK0Y,YAAY1Y,KAAK0X,iBAAiB1X,KAAKyX,kBAAkBmB;IACjF,IAAI5Y,KAAK2X,aAAa;MAClB,MAAMkB,IAAsB7Y,KAAK4X,yBAAyBgB,IAAiB5Y,KAAKyX;MAChFzX,KAAK2X,YAAY3K,OAAOhN,KAAK0Y,YAAY1Y,KAAK0X,iBAAiB1X,KAAKyX,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;EACAxZ;EACAyZ;EACAzR;EACA9B;EACA,WAAA1G,CAAYQ;IACRL,KAAKK,OAAOA;IACZL,KAAKwZ,WAAWO,WAAW,YAAYT,EAAUU;IACjDha,KAAKwZ,WAAWO,WAAW,YAAYT,EAAUW;IACjDja,KAAKK,KAAK4E,WAAWiV,mBAAmB/M,KAAKnN,KAAKwZ;IAClDW,EAAsBna,KAAKK,KAAK4E,WAAWiV;IAC3Cla,KAAKqI,UAAU,IAAIyC,EAAqB9K;IACxCA,KAAK8Z,YAAY,IAAIhK,EAAuB9P;IAC5CA,KAAKuG,aAAa,IAAI6Q,EAAwBpX;AACtD;EACI,cAAIgX;IACA,OAAOhX,KAAK0Z;AACpB;EACI,gBAAAU,CAAiBpD;IACbhX,KAAK0Z,oBAAoB1C;AACjC;EACI,UAAAlL;IACI,OAAO9L,KAAKqI,QAAQyD;AAC5B;EACI,eAAA6K;IACI,OAAO0D,iBAAiBra,KAAKgX,YAAYsD,oBAAoBpZ,MAAM;AAC3E;EACI,kBAAAqZ;IACI,MAAMC,IAAoBH,iBAAiBra,KAAKgX,YAAYyD,iBAAiBvZ,MAAM;IACnF,OAAO0D,SAAS4V,EAAkB,OAAO;AACjD;EACI,cAAAzI;IACI,OAAO/R,KAAKqI,QAAQ8B,sBAAsBI;AAClD;EACI,WAAA6H;IACI,OAAOpS,KAAKK,KAAK2B,cAAc;AACvC;EACI,kBAAA0Y;IACI,OAAO1a,KAAKgX,WAAW2D,YAAY3a,KAAKua;AAChD;EACI,mBAAAK;IACI,OAAO5a,KAAKqI,QAAQyD,WAAW,MAAM+O,QAAO,CAACC,GAAarY,MAC/CA,EAAO4G,WAAW,YAAY5G,EAAO6H,SACtCwQ,IAAcrY,EAAOsY,cACrBD,IACP;AACX;EACI,oBAAAE;IACI,OAAOhb,KAAKqI,QAAQyD,WAAW,MAAM+O,QAAO,CAACC,GAAarY,MAC/CA,EAAO4G,WAAW,UAAU5G,EAAO6H,SACpCwQ,IAAcrY,EAAOsY,cACrBD,IACP;AACX;EACI,cAAApI,CAAeuI;IACX,MAAM/I,IAAOlS,KAAKmS;IAClB,MAAMjF,IAAIgF,EAAKrL,QAAQoU;IACvB,OAAO/I,EACFgJ,MAAM,GAAGhO,GACTiO,UACAtS,MAAK9B,KAAOA,EAAIpE;AAC7B;EACI,UAAAkQ,CAAWoI;IACP,MAAM/I,IAAOlS,KAAKmS;IAClB,MAAMjF,IAAIgF,EAAKrL,QAAQoU;IACvB,OAAO/I,EAAKgJ,MAAMhO,IAAI,GAAGrE,MAAK9B,KAAOA,EAAIpE;AACjD;EACI,UAAAqQ;IACI,MAAMd,IAAOlS,KAAKmS;IAClB,OAAOD,EAAKiJ,UAAUtS,MAAK9B,KAAOA,EAAIpE;AAC9C;EACI,iBAAAyY,CAAkB3Y;IACd,OAAOzC,KAAKqI,QAAQyD,aAAa+O,QAAO,CAACjQ,GAAUqQ,MACxCA,EAAQrS,QAAQnG,EAAOmG,UACzBqS,EAAQ3Q,YACPM,KAAYqQ,EAAQrS,QAAQgC,EAAShC,SACrCqS,IACArQ,IACP;AACX;EACI,aAAAyN,CAAc5V;IACV,OAAOzC,KAAKqI,QAAQyD,aAAa+O,QAAO,CAACjQ,GAAUqQ,MACxCA,EAAQrS,QAAQnG,EAAOmG,UACzBqS,EAAQ3Q,YACPM,KAAYqQ,EAAQrS,QAAQgC,EAAShC,SACrCqS,IACArQ,IACP;AACX;EACI,eAAA+I,CAAgBsH;IACZ,MAAMI,IAAiBrb,KAAKob,kBAAkBH,EAAQxY;IACtD,IAAI4Y,GAAgB;MAChB,OAAOJ,EAAQlU,IAAI/E,cAAc,qCAAqCqZ,EAAe3Y;AACjG;AACA;EACI,WAAAoR,CAAYmH;IACR,MAAMK,IAAatb,KAAKqY,cAAc4C,EAAQxY;IAC9C,IAAI6Y,GAAY;MACZ,OAAOL,EAAQlU,IAAI/E,cAAc,qCAAqCsZ,EAAW5Y;AAC7F;AACA;EACI,eAAA4S,CAAgBvO;IACZ,OAAOnE,MAAMgE,UAAUC,QAAQC,KAAK9G,KAAKK,KAAKyC,iBAAiB,uCAAuCiE;AAC9G;EACI,iBAAAwU,CAAkBxU;IACd,OAAOnE,MAAMgE,UAAUC,QAAQC,KAAKC,EAAIrB,cAAcgP,UAAU3N;AACxE;EACI,YAAA0P,CAAa1P;IACT,MAAMyU,IAAiBnB,iBAAiBra,KAAKgX,YAAYyD,iBAAiBvZ,MAAM;IAChF,MAAM+T,IAAWjV,KAAKsV,gBAAgBvO,KAAO;IAC7C,OAAOnC,SAAS4W,EAAevG,OAAc;AACrD;EACI,cAAA9B;IACI,MAAMsI,IAAazb,KAAKgX,WAAW0E;IACnC,MAAMC,IAAgB3b,KAAKua;IAC3B,MAAM/D,IAAYxW,KAAKyW,aAAazW,KAAKoS;IACzC,OAAO5C,KAAKoM,OAAOH,IAAaE,KAAiBnF;AACzD;EACI,MAAAqF,CAAOjb;IACH,OAAOZ,KAAKK,KAAK2B,cAAc,sBAAsBpB;AAC7D;EACI,OAAAuR,CAAQd,IAAQ;IACZ,MAAMa,IAAOtP,MAAMC,KAAK7C,KAAKK,KAAKyC,iBAAiB;IACnD,IAAIuO,MAAU,WAAW;MACrB,OAAOa,EAAK1I,QAAOzC,KAAOA,EAAIpE;AAC1C;IACQ,OAAOuP;AACf;EACI,YAAAP,CAAamK,GAAOC;IAChB,MAAM7J,IAAOlS,KAAKmS;IAClB,MAAM6J,IAAa9J,EAAKrL,QAAQiV;IAChC,MAAMG,IAAW/J,EAAKrL,QAAQkV;IAC9B,OAAO7J,EACFgJ,MAAM1L,KAAKgE,IAAIwI,GAAYC,IAAWzM,KAAK6D,IAAI2I,GAAYC,KAAY,GACvEzS,QAAOzC,KAAOA,EAAIpE;AAC/B;EACI,iBAAAuZ,CAAkBrY;IACd,OAAOA,EACFsY,eACAtT,MAAMqG,KAAWA,EAAOzJ,YAAY;AACjD;EACI,uBAAA2W,CAAwBvY;IACpB,OAAQA,EACHsY,eACAtT,MAAMqG,KAAWA,EAAOzJ,YAAY,2BAA0B;AAC3E;EACI,OAAAjD,CAAQwE,GAAQpG,GAAO4H;IACnB,IAAIxB,GAAQ;MACR,OAAOhH,KAAKK,KAAK2B,cAAc,wBAAwBgF;AACnE;IACQ,IAAIpG,KAAS4H,GAAU;MACnB,MAAMzB,IAAM/G,KAAK6b,OAAOjb;MACxB,MAAM6B,IAASzC,KAAKqI,QAAQwD,UAAUrD;MACtC,IAAIzB,KAAOtE,GAAQ;QACf,OAAOsE,EAAIvE,QAAQC;AACnC;AACA;AACA;EACI,kBAAA4Z,CAAmBxY;IACf,OAAOA,EACFsY,eACAtT,MAAMqG,KAAWA,EAAOzJ,YAAY;AACjD;EACI,eAAA6W,CAAgB9T;IACZxI,KAAK2Z,oBAAoB,IAAIvR,EAAwBI,GAAUxI,KAAKqI,QAAQyD,cAAc9L,KAAKuc;AACvG;EACI,cAAAC,CAAetT;IACX,OAAOlJ,KAAK2Z,kBAAkB1Q,SAASC;AAC/C;EACI,aAAAuT;IACIzc,KAAK2Z,kBAAkB3P;IACvBhK,KAAK2Z,oBAAoB;AACjC;EACI,iBAAA+C,CAAkBlU;IACdxI,KAAK4Z,sBAAsB,IAAIpC,EAA0BxX,MAAMwI,GAAUxI,KAAKuc;AACtF;EACI,cAAAI,CAAepE;IACXvY,KAAK4Z,oBAAoBtB,SAASC;AAC1C;EACI,eAAAqE;IACI5c,KAAK4Z,oBAAoBpB;IACzBxY,KAAK4Z,sBAAsB;AACnC;EACI,YAAAiD,CAAa9V;IACT/G,KAAK6Z,iBAAiB,IAAI7E,EAAqBhV;IAC/CA,KAAK6Z,eAAexE,UAAUtO;AACtC;EACI,YAAA+V;IACI,OAAO;MACHpG,SAAS;SACN1W,KAAK+c;SACL/c,KAAKgd;SACLhd,KAAKid;SACLjd,KAAKkd;;AAEpB;EACI,YAAAvN,CAAajP;IACTV,KAAKwZ,WAAW2D,WAAW7D,EAAUU;IACrCha,KAAKwZ,WAAWO,WAAW,iCAAiCrZ,QAAY4Y,EAAUU;AAC1F;EACI,uBAAA5K,CAAwB7D;IACpBvL,KAAKwZ,WAAW2D,WAAW7D,EAAUW;IACrCja,KAAKwZ,WAAWO,WAAW,WAAWxO,EACjC9C,KAAI,CAACgQ,GAAa2E,MAAgB,oBAAoBA,IAAc,WAAW3E,SAC/E4E,KAAK,WAAW/D,EAAUW;AACvC;EACI,gBAAAqD,CAAiBvW;IACb,IAAIpB,IAAOoB,EAAIrB,cAAczB,QAAQ;IACrC,OAAMsG,aAAEA,KAAgBvK,KAAKqI,QAAQ8B;IACrC,OAAOxE,GAAM;MACTA,EAAK1D,YAAY;MACjB0D,IAAOA,EAAKD,cAAczB,QAAQ;AAC9C;IACQ,IAAI8C,EAAI2N,SAASnK,EAAY7H,gBAAgB;MACzC1C,KAAKiD,cAAc8D,EAAI2N,SAASnK,EAAY7H;AACxD;AACA;EACI,iBAAA6a,CAAkBva;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,OAAO6H,SAAS;AACjC;IACQtK,KAAKiD,cAAcD;AAC3B;EACI,aAAAC,CAAcD;IACV,MAAMwa,IAAiB,EAAC,SAAS,QAAO3O,SAAS7L,EAAKP,OAAO4G;IAC7D,MAAMoU,IAASzd,KAAKgX;IACpB,MAAM0G,IAAkB1d,KAAK0a;IAC7B,MAAMiD,IAAmB3d,KAAK4a;IAC9B,MAAMgD,IAAoB5d,KAAKgb;IAC/B,IAAIyC,EAAOI,YAAYH,IAAkB1a,EAAK2X,WAAW;MACrD8C,EAAOK,SAAS;QACZ3G,MAAMsG,EAAOI,YAAY7a,EAAK2X,YAAY+C,MAAoB;;AAE9E,WACa,IAAID,EAAOI,YAAYJ,EAAOM,eAC/B/a,EAAK2X,YAAY3X,EAAK+a,cAAc;MACpCN,EAAOK,SAAS;QACZ3G,KAAKnU,EAAK2X,YACN3X,EAAK+a,gBACJN,EAAOI,YAAYJ,EAAOM;;AAE/C,WACa,IAAIN,EAAOO,aAAaL,IAAmB3a,EAAKib,eAChDT,GAAgB;MACjBC,EAAOK,SAAS;QACZlU,OAAO6T,EAAOO,aAAahb,EAAKib,aAAaN,MAAqB;;AAElF,WACa,IAAIF,EAAOO,aAAaP,EAAOxG,cAAc2G,IAC9C5a,EAAKib,aAAajb,EAAK+X,gBACtByC,GAAgB;MACjBC,EAAOK,SAAS;QACZlU,MAAM5G,EAAKib,aACPjb,EAAK+X,eACJ0C,EAAOO,aAAaP,EAAOxG,cAAc2G;;AAE9D;AACA;EACI,sBAAAb;IACI,OAAO;MACH,yBAAyB/c,KAAKqI,QACzByD,aACArD,KAAIhG,KAAU,wBAAwBA,EAAOC,wBAC7C2a,KAAK;;AAEtB;EACI,wBAAAL;IACI,OAAMzS,aAAEA,GAAWC,YAAEA,KAAexK,KAAK2Z,oBACnC3Z,KAAK2Z,kBAAkBxP,wBACvBnK,KAAKqI,QAAQ8B;IACnB,KAAKI,MAAgBC,GAAY;MAC7B,OAAO;AACnB;IACQ,OAAO;MACH,CAAC,oBAAoBD,EAAY7H,+BAA+B;MAChE,CAAC,oBAAoB6H,EAAY7H,+BAA+B;MAChE,CAAC,oBAAoB6H,EAAY7H,gCAAgC;MACjE,CAAC,oBAAoB8H,EAAW9H,6BAA6B;MAC7D,CAAC,oBAAoB8H,EAAW9H,6BAA6B;MAC7D,CAAC,oBAAoB8H,EAAW9H,8BAA8B;;AAE1E;EACI,sBAAAua;IACI,OAAO;MACH,qCAAqCjd,KAAK2Z,oBAAoB,QAAQ;;AAElF;EACI,eAAAuD;IACI,OAAOld,KAAKqI,QAAQyD,aAAa+O,QAAO,CAAChW,GAAOpC,OACrC;SACAoC;SACA7E,KAAKiK,eAAexH;SAE5B;AACX;EACI,cAAAwH,CAAexH;IACX,OAAO;SACAzC,KAAKke,mBAAmBzb;SACxBzC,KAAKme,oBAAoB1b;SACzBzC,KAAKoe,sBAAsB3b;SAC3BzC,KAAKqe,qBAAqB5b;SAC1BzC,KAAKse,uBAAuB7b;SAC5BzC,KAAKue,qBAAqB9b;;AAEzC;EACI,kBAAAyb,CAAmBzb;IACf,OAAO;MACH,CAAC,oBAAoBA,EAAOmG,eAAenG,EAAO6H,SAC5C,QACA7H,EAAOuK;;AAEzB;EACI,mBAAAmR,CAAoB1b;IAChB,OAAO;MACH,CAAC,oBAAoBA,EAAOC,2BAA2BD,EAAOmG,MAAMvD;;AAEhF;EACI,oBAAAgZ,CAAqB5b;IACjB,QAAQA,EAAO4G;KACX,KAAK;MACD,OAAOrJ,KAAKwe,0BAA0B/b;;KAC1C,KAAK;MACD,OAAOzC,KAAKye,wBAAwBhc;;AAEpD;EACI,yBAAA+b,CAA0B/b;IACtB,MAAMic,IAAY,EAAC;IACnB,KAAK,IAAIxR,IAAI,GAAGA,IAAIzK,EAAOmG,OAAOsE,KAAK;MACnCwR,EAAUvR,KAAK,wBAAwBD;AACnD;IACQ,OAAO;MACH,CAAC,oBAAoBzK,EAAOC,8BAA8B,QAAQgc,EAAUrB,KAAK;MACjF,CAAC,oBAAoB5a,EAAOC,iCAAiC;;AAEzE;EACI,uBAAA+b,CAAwBhc;IACpB,MAAMic,IAAY,EAAC;IACnB,KAAK,IAAIxR,IAAIlN,KAAKqI,QAAQyD,aAAa+B,QAAQX,IAAIzK,EAAOmG,OAAOsE,KAAK;MAClEwR,EAAUvR,KAAK,wBAAwBD;AACnD;IACQ,OAAO;MACH,CAAC,oBAAoBzK,EAAOC,+BAA+B,QAAQgc,EAAUrB,KAAK;MAClF,CAAC,oBAAoB5a,EAAOC,iCAAiC;;AAEzE;EACI,qBAAA0b,CAAsB3b;IAClB,OAAOA,EAAO6H,SACR;MACE,CAAC,oBAAoB7H,EAAOC,0BAA0B;QAExD;AACd;EACI,sBAAA4b,CAAuB7b;IACnB,OAAOzC,KAAK2Z,oBACN3Z,KAAK2Z,kBAAkB1P,eAAexH,KACtC;AACd;EACI,oBAAA8b,CAAqB9b;IACjB,OAAO;MACH,CAAC,oBAAoBA,EAAOC,0BAA0BD,EAAOmG,UAAU,IAAI,OAAO;;AAE9F;EACI,cAAA2T;IACI,OAAOlC,iBAAiBra,KAAKK,MAAMse,cAAc;AACzD;;;AClYA,MAAMC,IAAY;;MCSLC,IAAM;EACf,WAAAhf,CAAAif;;;;;;;;;IACI9e,KAAKmQ,aAAa4O;IAClB/e,KAAKqQ,cAAc0O;IACnB/e,KAAKgf,iBAAiBD;IACtB/e,KAAKmU,aAAa;IAClBnU,KAAKoQ,eAAe;IACpBpQ,KAAKsQ,eAAeyO;IACpB/e,KAAKif,YAAYF;IACjB/e,KAAKyR,mBAAmB;IACxBzR,KAAKwR,yBAAyB;IAC9BxR,KAAKkf,sBAAsB;IAC3Blf,KAAKyB,mBAAmBsd;IACxB/e,KAAKiB,sBAAsB8d;IAC3B/e,KAAK8B,kBAAkBid;IACvB/e,KAAK2B,iBAAiBod;IACtB/e,KAAKmf,qBAAqB;IAC1Bnf,KAAKgY,mBAAmB;IACxBhY,KAAKof,eAAeL;;;;;EAMxB,iBAAAM,CAAkBtY,GAAK6D;IACnB,IAAI7D,GAAK;MACLA,EAAInF,UAAU;;IAElB,IAAIgJ,GAAU;MACVA,EAAShJ,UAAU;;;EAG3B,kBAAA0d,CAAmBtc,GAAM4H;IACrB,IAAI5H,GAAM;MACNA,EAAKpB,UAAU;;IAEnB,IAAIgJ,GAAU;MACVA,EAAShJ,UAAU;;;EAG3B,qBAAA2d,CAAsBxY,GAAK6D;;;QAEvB,IAAI7D,GAAK;MACLA,EAAIjG,cAAc;;IAEtB,IAAI8J,GAAU;MACVA,EAAS9J,cAAc;;;QAG3B,IAAIiG,GAAK;OACLyY,IAAAxf,KAAK+K,QAAQxE,WAAW8Q,oBAAc,QAAAmI,WAAA,aAAAA,EAAEC,aAAa1Y;WAEpD;OACD2Y,IAAA1f,KAAK+K,QAAQxE,WAAW8Q,oBAAc,QAAAqI,WAAA,aAAAA,EAAEC;;;EAGhD,iBAAAC,CAAkB1N,GAAMtH;IACpB5K,KAAK+K,QAAQ+O,UAAUzF,gBAAgBnC,GAAMtH,GAAU;IACvD5K,KAAK6f,kBAAkBC,KAAK9f,KAAK+f,sBAAsB7N,GAAMtH;;EAEjE,mBAAAoV,CAAoB9N,GAAMtH;IACtB,IAAIA,GAAU;MACVA,EACKpB,QAAOzC,MAAQmL,EAAKrD,SAAS9H,KAC7BgC,SAAQhC,KAAQA,EAAI5G,WAAW;;IAExC,IAAI+R,GAAM;MACNA,EAAKnJ,SAAQhC,KAAQA,EAAI5G,WAAW;;IAExCH,KAAK+K,QAAQ+O,UAAUzF,gBAAgBnC,GAAMtH,GAAU;IACvD5K,KAAKigB,iBAAiBH,KAAK9f,KAAK+f,sBAAsB7N,GAAMtH;;EAEhE,mBAAAsV,CAAoBld,GAAM4H;IACtB,IAAI5H,GAAM;MACNA,EAAK7C,WAAW;;IAEpB,IAAIyK,GAAU;MACVA,EAASzK,WAAW;;IAExBH,KAAKmgB,qBAAqBL,KAAK;MAC3B9Y,QAAQhH,KAAKsQ,eAAetQ,KAAKsQ,aAAatJ,SAAS;MACvDpG,OAAOZ,KAAKsQ,eAAetQ,KAAKsQ,aAAavJ,IAAInG,QAAQ;MACzD4H,UAAUxI,KAAKsQ,eAAetQ,KAAKsQ,aAAa7N,OAAO+F,WAAW;;;EA+B1E,iBAAA4X;IACIpgB,KAAK+K,UAAU,IAAIwO,EAAcvZ,KAAKqgB;IACtCrgB,KAAKif,YAAYjf,KAAK+K,QAAQ+R;;EAElC,gBAAA1C;IACIpa,KAAK+K,QAAQqP,iBAAiBpa,KAAK0Z;;EAEvC,qBAAA4G,CAAsBC,GAAW9f,GAAWD;IACxC,IAAIA,MAAS,gBACTA,MAAS,oBACTA,MAAS,iBACTA,MAAS,gBACTA,MAAS,gBAAgB;MACzB,OAAO;;;EAGf,YAAAggB;;IACI,IAAIxgB,KAAKwR,2BAA2B,QAAQ;MACxCxR,KAAKmQ,eAALnQ,KAAKmQ,cAAeqP,IAAAxf,KAAKoQ,aAAa,QAAE,QAAAoP,WAAA,IAAAA,IAAIxf,KAAK+K,QAAQqH;MACzDpS,KAAKqQ,eAAcqP,IAAA1f,KAAKmQ,gBAAU,QAAAuP,WAAA,aAAAA,EAAEld,UAAQie,IAAAzgB,KAAKsQ,kBAAY,QAAAmQ,WAAA,aAAAA,EAAEhe,WAAUzC,KAAK+K,QAAQgH;MACtF/R,KAAK0gB,sBAAsB,OAAO;;;EAG1C,WAAAC;IACI3gB,KAAKmQ,aAAa;IAClBnQ,KAAKqQ,cAAc;;EAEvB,uBAAAuQ,CAAwB/c;IACpB,MAAMb,IAAOa,EAAUqL;IACvB,IAAIlP,KAAKyR,qBAAqB,WAAWzO,EAAK7C,UAAU;MACpDH,KAAK6gB,gBAAgB7d;;;EAG7B,oBAAA8d,CAAqBjd;IACjB,IAAIkd,IAAoB,OAAO/gB,KAAKqgB,MAChC,EACI,KACA,KACA,KACA,QACA,OACA,UACA,YACA,WACA,aACA,aACA,eACFxR,SAAShL,EAAUmd,MAAM;MAC3Bnd,EAAU6D;;;EAGlB,cAAAuZ,CAAepd;IACX,IAAIkd,IAAoB,OAAO/gB,KAAKqgB,MAChCrgB,KAAKwR,2BAA2B,QAAQ;MACxC,MAAMlK,IAAQzD,EAAU0D;MACxB,MAAM+J,IAAS4P,EAAsBrd;MACrC,QAAQA,EAAUmd;OACd,KAAK;QACDhhB,KAAKmhB,kBAAkBD,EAAsBrd,IAAYA,EAAU0D;QACnE;;OACJ,KAAK;QACDvH,KAAKohB,gBAAgBphB,KAAKmQ,YAAY;QACtC;;OACJ,KAAK;QACDnQ,KAAKohB,gBAAgBphB,KAAKmQ,YAAY;QACtC;;OACJ,KAAK;QACDnQ,KAAKqhB,oBAAoBrhB,KAAK+K,QAAQ+O,UAAUxH,cAAchL,GAAOgK;QACrE;;OACJ,KAAK;QACDtR,KAAKqhB,oBAAoBrhB,KAAK+K,QAAQ+O,UAAUhH,aAAaxL,GAAOgK;QACpE;;OACJ,KAAK;QACDtR,KAAKqhB,oBAAoBrhB,KAAK+K,QAAQ+O,UAAU7G,qBAAqB3L,GAAOgK;QAC5E;;OACJ,KAAK;QACDtR,KAAKqhB,oBAAoBrhB,KAAK+K,QAAQ+O,UAAUxG,iBAAiBhM,GAAOgK;QACxE;;OACJ,KAAK;QACDtR,KAAKqhB,oBAAoBrhB,KAAK+K,QAAQ+O,UAAUtH,iBAAiBlL,GAAOgK;QACxE;;OACJ,KAAK;QACDtR,KAAKqhB,oBAAoBrhB,KAAK+K,QAAQ+O,UAAUnH,aAAarL,GAAOgK;QACpE;;OACJ,KAAK;QACDtR,KAAKqhB,oBAAoBrhB,KAAK+K,QAAQ+O,UAAUrG,kBAAkBnM,GAAOgK;QACzE;;OACJ,KAAK;QACDtR,KAAKqhB,oBAAoBrhB,KAAK+K,QAAQ+O,UAAUlG,cAActM,GAAOgK;QACrE;;OACJ,KAAK;QACDtR,KAAKshB;QACL;;;;EAIhB,gBAAAC,CAAiB1d;IACb,IAAK7D,KAAKkf,wBAAwB,UAC9Blf,KAAKyR,qBAAqB,UAC1BzR,KAAKkf,wBAAwB,MAAM;MACnClf,KAAKgf,iBACDhf,KAAK+K,QAAQmR,kBAAkBrY,OAC1B7D,KAAK+K,QAAQqR,wBAAwBvY,KAChC7D,KAAKgf,iBACL;;IAElBwC,GAAgB;MACZ,IAAIxhB,KAAK+K,QAAQ+O,UAAUtJ,WAAW;QAClC,IAAIuQ,IAAoB,OAAO/gB,KAAKqgB,IAAI;UACpCrgB,KAAKyhB;UACL,MAAMD;;QAEV,MAAMza,IAAM/G,KAAK+K,QAAQmR,kBAAkBrY;QAC3C,MAAMb,IAAOhD,KAAK+K,QAAQsR,mBAAmBxY;QAC7C,IAAIkD,MACC/G,KAAK+K,QAAQ+O,UAAUrJ,iBAAiB1J,KACrC/G,KAAK+K,QAAQ+O,UAAUpJ,kBAAkB1N,IAAO;UACpD,MAAM0e,IAAuBR,EAAsBrd;UACnD,MAAM8d,IAA4BC,EAA2B/d,GAAWge,EAAkBC;UAC1F9hB,KAAK+hB,qBAAqBhb,GAAK/D,GAAM0e,MAAyBC,IAA4BA,GAA2BA;UACrH3hB,KAAK+K,QAAQ+O,UAAUrJ,eAAe1J;UACtC/G,KAAK+K,QAAQ+O,UAAUpJ,gBAAgB1N;;;;;EAKvD,iBAAAgf;IACIhiB,KAAKgf,mBAALhf,KAAKgf,iBAAmB;;EAE5B,YAAAiD,CAAape;IACT,MAAMkD,IAAM/G,KAAK+K,QAAQmR,kBAAkBrY;IAC3C,MAAMb,IAAOhD,KAAK+K,QAAQsR,mBAAmBxY;IAC7C,IAAIkD,GAAK;MACL/G,KAAK+K,QAAQ+O,UAAUtJ,YAAY;MACnCxQ,KAAK+hB,qBAAqBhb,GAAK/D,GAAMke,EAAsBrd,IAAYA,EAAU0D,UAAU1D,EAAUqe,WAAWC,EAAiBL;;;EAGzI,cAAAM;IACI,IAAIpiB,KAAK+K,QAAQ+O,UAAUtJ,WAAW;MAClCxQ,KAAKyhB;MACLzhB,KAAKqiB,eAAeriB,KAAKmQ,YAAYnQ,KAAKqQ;;;EAGlD,eAAAiS,CAAgBze;IACZ,MAAMkD,IAAM/G,KAAK+K,QAAQmR,kBAAkBrY;IAC3C,MAAMb,IAAOhD,KAAK+K,QAAQsR,mBAAmBxY;IAC7C,IAAIkD,GAAK;MACL/G,KAAKuiB,iBAAiBzC,KAAK;QACvBlf,OAAOmG,EAAInG;QACXoG,QAAQhE,MAAI,QAAJA,WAAI,aAAJA,EAAMgE;QACdwB,UAAUxF,MAAI,QAAJA,WAAI,aAAJA,EAAMP,OAAO+F;;;;EAInC,iBAAAga,CAAkB3e;IACd7D,KAAK+K,QAAQ+O,UAAUnJ,WAAW9M;;EAEtC,eAAA4e,CAAgB5e;IACZ,IAAIA,EAAUsN,YAAY;MACtBtN,EAAU6D;;IAEd,IAAI1H,KAAK+K,QAAQ+O,UAAU9I,oBAAoBnN,IAAY;MACvD,MAAM0Q,IAAiBvU,KAAK+K,QAAQ1C,QAAQ6D;MAC5C,MAAMnF,IAAM/G,KAAK+K,QAAQmR,kBAAkBrY;MAC3C,MAAMb,IAAOhD,KAAK+K,QAAQsR,mBAAmBxY;MAC7C,IAAIkD,GAAK;QACL/G,KAAK+hB,qBAAqBhb,GAAK/D,IAAMuR,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,UAAU,OAAO;QAC9FxU,KAAKqiB,eAAetb,GAAK/D;;;;EAIrC,kBAAA0f,CAAmB7e;;IACf,IAAIC;IACJ,IAAID,EAAUqL,WAAWlP,KAAKqgB,IAAI;MAC9Bvc,IAAY9D,KAAKmQ;WAEhB;MACDrM,IAAY9D,KAAK+K,QAAQmR,kBAAkBrY;;IAE/C,IAAIC,GAAW;MACX,MAAMuM,MAAcmP,IAAAxf,KAAKsQ,kBAAY,QAAAkP,WAAA,aAAAA,EAAEzY,SAAQjD,IAAY9D,KAAKsQ,eAAe;MAC/E,MAAMqS,IAA0B3iB,KAAK4iB,eAAe9C,KAAK;QACrDlf,OAAOkD,EAAUlD;QACjBoG,QAAQqJ,MAAW,QAAXA,WAAW,aAAXA,EAAarJ;QACrBwB,UAAU6H,MAAW,QAAXA,WAAW,aAAXA,EAAa5N,OAAO+F;QAC9Bqa,gBAAgB7iB,KAAKoQ,aAAa3H,KAAI1B,KAAOA,EAAInG;QACjDiQ,SAAShN,EAAUgN;QACnBE,SAASlN,EAAUkN;;OAEvB2O,IAAA1f,KAAK+K,QAAQxE,WAAWgR,sBAAgB,QAAAmI,WAAA,aAAAA,EAAEoD,eAAejf,EAAUgN,SAAShN,EAAUkN;MACtF,IAAI4R,EAAwBI,oBACxB/iB,KAAK+K,QAAQxE,WAAWgR,kBAAkB;QAC1C1T,EAAU6D;;;;EAItB,4BAAAsb,CAA6Bnf;IACzB,MAAM0Q,IAAiBvU,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,KAAIqI,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,UAAU;MAClDxU,KAAKiS,UAAUpO,EAAUvB,OAAO6E;WAE/B,KAAIoN,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,QAAQ;MACrDxU,KAAKmU,aAAanU,KAAK+K,QAAQ+O,UAAU1F,YAAYvQ,EAAUvB,OAAO6E;;;EAG9E,0BAAA8b,CAA2Bpf;IACvB,MAAM0Q,IAAiBvU,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,KAAIqI,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,UAAU;MAClDxU,KAAK+hB,qBAAqB/hB,KAAK+K,QAAQmR,kBAAkBrY,IAAY7D,KAAK+K,QAAQsR,mBAAmBxY,IAAY,MAAMA,EAAUvB,OAAOgF,OAAO;WAE9I,KAAIiN,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,QAAQ;MACrDxU,KAAKmU,aAAanU,KAAK+K,QAAQ+O,UAAU/F,QAAQ/T,KAAK+K,QAAQmR,kBAAkBrY,IAAYA,EAAUvB,OAAO6E,SAAStD,EAAUvB,OAAOgF,OAAOtH,KAAKmU;;;EAG3J,2BAAA+O,CAA4Brf;;IACxB,MAAMb,IAAOa,EAAUqL;KACvBsQ,IAAAxf,KAAK+K,QAAQxE,WAAW+Q,sBAAgB,QAAAkI,WAAA,aAAAA,EAAE2D,eAAengB;;EAE7D,yBAAAogB;IACI,IAAIpjB,KAAK+K,SAAS;MACd/K,KAAKif,YAAYjf,KAAK+K,QAAQ+R;;;EAGtC,0BAAAuG;IACIrjB,KAAK+K,QAAQ1C,QAAQsD;;EAEzB,0BAAA2X,CAA2Bzf;IACvB7D,KAAK+K,QAAQ2R,kBAAkB7Y,EAAUvB,OAAOkG;;EAEpD,qBAAA+a,CAAsB1f;IAClB7D,KAAK+K,QAAQ4R,eAAe9Y,EAAUvB,OAAOiW;;EAEjD,2BAAAiL;IACIxjB,KAAK+K,QAAQ6R;;EAEjB,sBAAA6G,CAAuB5f;IACnB7D,KAAK+K,QAAQuR,gBAAgBzY,EAAUvB,OAAOkG;;EAElD,qBAAAkb,CAAsB7f;IAClB,IAAI7D,KAAK+K,QAAQyR,eAAe3Y,EAAUvB,OAAOqhB,YAAY;MACzD3jB,KAAKif,YAAYjf,KAAK+K,QAAQ+R;;;EAGtC,oBAAA8G;IACI5jB,KAAK+K,QAAQ0R;IACbzc,KAAKif,YAAYjf,KAAK+K,QAAQ+R;;EAElC,mBAAA+G,CAAoBhgB;IAChB7D,KAAK+K,QAAQ8R,aAAahZ,EAAUvB,OAAOyE;;EAE/C,uBAAA+c,CAAwBjgB;IACpB7D,KAAK+K,QAAQuS,iBAAiBzZ,EAAUqL;;EAE5C,wBAAA6U,CAAyBlgB;IACrB7D,KAAK+K,QAAQwS,kBAAkB1Z,EAAUqL;;EAE7C,0BAAA8U;IACIhkB,KAAKikB,WAAWC,OAAO;;EAE3B,2BAAAC;IACInkB,KAAKikB,WAAWC,OAAO;;;;SAK3B,mBAAME;;IACF,QAAO5E,IAAAxf,KAAKmQ,gBAAU,QAAAqP,WAAA,aAAAA,EAAE5e;;;;SAK5B,mBAAMyjB;;IACF,QAAO7E,IAAAxf,KAAKgf,oBAAc,QAAAQ,WAAA,aAAAA,EAAE5e;;;;SAKhC,qBAAM0jB;IACF,OAAOtkB,KAAKoQ,aAAa3H,KAAI1B,KAAOA,EAAInG;;;;SAK5C,mBAAM2jB;IACF,OAAOvkB,KAAKmU,WAAW1L,KAAI1B,KAAOA,EAAInG;;;;SAK1C,oBAAM4jB;IACF,OAAO;MACHxd,QAAQhH,KAAKqQ,cAAcrQ,KAAKqQ,YAAYrJ,SAAS;MACrDpG,OAAOZ,KAAKqQ,cAAcrQ,KAAKqQ,YAAYtJ,IAAInG,QAAQ;MACvD4H,UAAUxI,KAAKqQ,cAAcrQ,KAAKqQ,YAAY5N,OAAO+F,WAAW;;;;;SAMxE,qBAAMic;IACF,OAAO;MACHzd,QAAQhH,KAAKsQ,eAAetQ,KAAKsQ,aAAatJ,SAAS;MACvDpG,OAAOZ,KAAKsQ,eAAetQ,KAAKsQ,aAAavJ,IAAInG,QAAQ;MACzD4H,UAAUxI,KAAKsQ,eAAetQ,KAAKsQ,aAAa7N,OAAO+F,WAAW;;;;;;;SAQ1E,eAAMkc,CAAU9jB,GAAOT,IAAW;IAC9B,MAAM4G,IAAM/G,KAAK+K,QAAQ8Q,OAAOjb;IAChC,IAAImG,GAAK;MACL,OAAMoJ,YAAEA,GAAUC,cAAEA,GAAYC,aAAEA,GAAWC,cAAEA,KAAiBtQ,KAAK+K,QAAQ+O,UAAUzH,UAAU;QAC7FlC,YAAYnQ,KAAKmQ;QACjBC,cAAcpQ,KAAKoQ;QACnBC,aAAarQ,KAAKqQ;QAClBC,cAActQ,KAAKsQ;SACpBvJ,GAAK,MAAM5G;MACdH,KAAKmQ,aAAaA;MAClBnQ,KAAKoQ,eAAeA;MACpBpQ,KAAKqQ,cAAcA;MACnBrQ,KAAKsQ,eAAeA;MACpBH,MAAU,QAAVA,WAAU,aAAVA,EAAYlN;;;;;;SAOpB,mBAAM0hB,CAAcxkB,IAAW;IAC3BH,KAAKiS,UAAU9R;;;;;;;;;;SAWnB,gBAAMykB,CAAW5d,GAAQpG,GAAO4H,GAAUrI,IAAW;IACjD,MAAM6C,IAAOhD,KAAK+K,QAAQvI,QAAQwE,GAAQpG,GAAO4H;IACjD,IAAIxF,GAAM;MACNhD,KAAK6gB,gBAAgB7d,GAAM7C;;;;;;;SAQnC,aAAM4T,CAAQnT,GAAOR,IAAS;IAC1B,MAAMmU,IAAiBvU,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,MAAMnF,IAAM/G,KAAK+K,QAAQ8Q,OAAOjb;IAChC,IAAImG,MAAOwN,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,QAAQ;MACvDxU,KAAKmU,aAAanU,KAAK+K,QAAQ+O,UAAU/F,QAAQhN,GAAK3G,GAAQ,OAAOJ,KAAKmU;;;;;;SAOlF,iBAAMC,CAAYhU,IAAS;IACvB,MAAMmU,IAAiBvU,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,KAAIqI,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,QAAQ;MAChDxU,KAAKmU,aAAanU,KAAK+K,QAAQ+O,UAAU1F,YAAYhU;;;;;;SAO7D,eAAMykB,CAAUjkB;IACZZ,KAAKohB,gBAAgBphB,KAAK+K,QAAQ8Q,OAAOjb,IAAQ;;;;;SAMrD,iBAAMkkB,CAAYlkB;IACdZ,KAAKohB,gBAAgBphB,KAAK+K,QAAQ8Q,OAAOjb,IAAQ;;;;;SAMrD,sBAAMmkB,CAAiBnkB;IACnB,MAAMmG,IAAM/G,KAAK+K,QAAQ8Q,OAAOjb;IAChC,IAAImG,GAAK;MACL/G,KAAK+K,QAAQuS,iBAAiBvW;;;;;;SAOtC,uBAAMie,CAAkBhe;IACpB,MAAMhE,IAAOhD,KAAK+K,QAAQvI,QAAQwE;IAClC,IAAIhE,GAAM;MACNhD,KAAK+K,QAAQwS,kBAAkBva;;;;;SAMvC,oBAAM0P;;IACF,MAAMuS,KAAazF,IAAAxf,KAAKsQ,kBAAY,QAAAkP,WAAA,aAAAA,EAAEzY;IACtC,IAAIke,GAAY;MACZ,SAAOvF,IAAA1f,KAAK+K,QAAQ2H,eAAeuS,QAAW,QAAAvF,WAAA,aAAAA,EAAE9e,UAAS;;;;;SAMjE,gBAAMiS;;IACF,MAAMoS,KAAazF,IAAAxf,KAAKsQ,kBAAY,QAAAkP,WAAA,aAAAA,EAAEzY;IACtC,IAAIke,GAAY;MACZ,SAAOvF,IAAA1f,KAAK+K,QAAQ8H,WAAWoS,QAAW,QAAAvF,WAAA,aAAAA,EAAE9e,UAAS;;;;;SAM7D,qBAAM+S;IACF,MAAMD,IAAe1T,KAAK+K,QAAQ4I,gBAAgB3T,KAAKsQ;IACvD,OAAO;MACHtJ,QAAQ0M,IAAeA,EAAa1M,SAAS;MAC7CpG,OAAO8S,IAAeA,EAAa3M,IAAInG,QAAQ;MAC/C4H,UAAUkL,IAAeA,EAAajR,OAAO+F,WAAW;;;;;SAMhE,iBAAMsL;IACF,MAAMD,IAAW7T,KAAK+K,QAAQ+I,YAAY9T,KAAKsQ;IAC/C,OAAO;MACHtJ,QAAQ6M,IAAWA,EAAS7M,SAAS;MACrCpG,OAAOiT,IAAWA,EAAS9M,IAAInG,QAAQ;MACvC4H,UAAUqL,IAAWA,EAASpR,OAAO+F,WAAW;;;;;SAMxD,kBAAMlI,CAAa+f;IACf,MAAMtZ,IAAMsZ;IACZ,MAAM9L,IAAiBvU,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,IAAIlM,KAAKyR,qBAAqB,QAAQ;MAClCzR,KAAKklB,qBAAqBne;;IAE9B,KAAIwN,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,QAAQ;MAChDxU,KAAKmlB,mBAAmBpe;;IAE5B,IAAIwN,GAAgB;MAChBvU,KAAKolB,qBAAqBre,GAAKwN;MAC/B,IAAIA,EAAeC,wBAAwB,UAAU;QACjDxU,KAAK+K,QAAQ+O,UAAUnF,mBAAmB3U,KAAKoQ,aAAavC,QAAQ0G;aAEnE,IAAIA,EAAeC,wBAAwB,QAAQ;QACpDxU,KAAK+K,QAAQ+O,UAAUnF,mBAAmB3U,KAAKmU,WAAWtG,QAAQ0G;;;;EAI9E,oBAAA2Q,CAAqBne;IACjB,IAAIA,EAAI5G,YAAYH,KAAKyR,qBAAqB,UAAU;MACpDzR,KAAKoQ,aAAa,KAAKrJ;;IAE3B,IAAIA,EAAI5G,YACJH,KAAKyR,qBAAqB,eACzBzR,KAAKoQ,aAAavB,SAAS9H,IAAM;MAClC/G,KAAKoQ,aAAajD,KAAKpG;;IAE3B,KAAKA,EAAI5G,UAAU;MACf,MAAMklB,IAAQrlB,KAAKoQ,aAAavJ,QAAQE;MACxC,IAAIse,OAAW,GAAG;QACdrlB,KAAKoQ,aAAakV,OAAOD,GAAO;;;;EAI5C,kBAAAF,CAAmBpe;IACf,IAAIA,EAAI3G,WAAWJ,KAAKmU,WAAWtF,SAAS9H,IAAM;MAC9C/G,KAAKmU,WAAWhH,KAAKpG;;IAEzB,KAAKA,EAAI3G,QAAQ;MACb,MAAMilB,IAAQrlB,KAAKmU,WAAWtN,QAAQE;MACtC,IAAIse,OAAW,GAAG;QACdrlB,KAAKmU,WAAWmR,OAAOD,GAAO;;;;EAI1C,oBAAAD,CAAqBre,GAAKwN;IACtB,MAAMvR,IAAO+D,EAAIvE,QAAQ+R;IACzB,MAAM7T,IAAS6T,EAAeC,wBAAwB,YAAYzN,EAAI5G,YACjEoU,EAAeC,wBAAwB,UAAUzN,EAAI3G;IAC1D4C,EAAKkE,mBAAmBxG;;EAE5B,qBAAAqf,CAAsB7N,GAAMtH;IACxB,OAAO;MACH2a,QAAQrT,EAAKzJ,KAAI1B,KAAOA,EAAInG;MAC5B4kB,aAAatT,EACR1I,QAAOzC,MAAQ6D,EAASiE,SAAS9H,KACjC0B,KAAI1B,KAAOA,EAAInG;MACpB6kB,eAAe7a,EACVpB,QAAOzC,MAAQmL,EAAKrD,SAAS9H,KAC7B0B,KAAI1B,KAAOA,EAAInG;MACpB8kB,iBAAiBxT,EACZ1I,QAAOzC,KAAO6D,EAASiE,SAAS9H,KAChC0B,KAAI1B,KAAOA,EAAInG;;;EAG5B,mBAAA0gB;IACI,IAAIthB,KAAKmQ,YAAY;MACjBnQ,KAAK2lB,gBAAgB7F,KAAK;QACtBlf,OAAOZ,KAAKmQ,WAAWvP;QACvBoG,QAAQhH,KAAKqQ,cAAcrQ,KAAKqQ,YAAYrJ,SAAS;QACrDwB,UAAUxI,KAAKqQ,cAAcrQ,KAAKqQ,YAAY5N,OAAO+F,WAAW;;;;EAI5E,iBAAA2Y,CAAkByE,GAAMC;IACpB,IAAI7lB,KAAKwR,2BAA2B,SAAS;MACzCxR,KAAK0gB,sBAAsBkF,GAAMC;WAEhC,IAAI7lB,KAAKwR,2BAA2B,UAAU;MAC/CxR,KAAK8lB;;IAET9lB,KAAKqiB,eAAeriB,KAAKmQ,YAAYnQ,KAAKqQ;;EAE9C,mBAAAyV;IACI,MAAMvR,IAAiBvU,KAAK+K,QAAQ1C,QAAQ6D;IAC5C,KAAIqI,MAAc,QAAdA,WAAc,aAAdA,EAAgBC,yBAAwB,QAAQ;MAChDxU,KAAKmU,aAAanU,KAAK+K,QAAQ+O,UAAU5F,SAASlU,KAAKmQ,YAAYnQ,KAAKmU,YAAYnU,KAAKoQ;;;EAGjG,qBAAAsQ,CAAsBpP,GAAQhK;;IAC1B,OAAM6I,YAAEA,GAAUC,cAAEA,GAAYC,aAAEA,GAAWC,cAAEA,KAAiBtQ,KAAK+K,QAAQ+O,UAAU1I,OAAO;MAC1FjB,YAAYnQ,KAAKmQ;MACjBC,cAAcpQ,KAAKoQ;MACnBC,aAAarQ,KAAKqQ;MAClBC,cAActQ,KAAKsQ;OACpBtQ,KAAKmQ,YAAYnQ,KAAKqQ,aAAa,MAAMiB,GAAQhK,GAAO;IAC3DtH,KAAKmQ,aAAaA;IAClBnQ,KAAKoQ,eAAeA;IACpBpQ,KAAKqQ,cAAcA;IACnBrQ,KAAKsQ,eAAeA;KACpBkP,IAACnP,KAAeF,OAAW,QAAAqP,WAAA,aAAAA,EAAEvc;;EAEjC,oBAAA8e,CAAqBhb,GAAK/D,GAAMsO,GAAQhK,GAAOiK;;IAC3C,OAAMpB,YAAEA,GAAUC,cAAEA,GAAYC,aAAEA,GAAWC,cAAEA,KAAiBtQ,KAAK+K,QAAQ+O,UAAU1I,OAAO;MAC1FjB,YAAYnQ,KAAKmQ;MACjBC,cAAcpQ,KAAKoQ;MACnBC,aAAarQ,KAAKqQ;MAClBC,cAActQ,KAAKsQ;OACpBvJ,GAAK/D,GAAM,MAAMsO,GAAQhK,GAAOiK;IACnCvR,KAAKmQ,aAAaA;IAClBnQ,KAAKoQ,eAAeA;IACpBpQ,KAAKqQ,cAAcA;IACnBrQ,KAAKsQ,eAAeA;KACpBkP,IAACnP,KAAeF,OAAW,QAAAqP,WAAA,aAAAA,EAAEvc;;EAEjC,mBAAAoe,CAAoB0E,GAAIze,GAAOgK;;IAC3B,OAAMnB,YAAEA,GAAUC,cAAEA,GAAYC,aAAEA,GAAWC,cAAEA,KAAiByV,EAAGjf,KAAK9G,KAAK+K,QAAQ+O,WAAW;MAC5F3J,YAAYnQ,KAAKmQ;MACjBC,cAAcpQ,KAAKoQ;MACnBC,aAAarQ,KAAKqQ;MAClBC,cAActQ,KAAKsQ;OACpBtQ,KAAKyR,qBAAqB,UACzBzR,KAAKwR,2BAA2B,UAAUxR,KAAKyR,qBAAqB,aAAanK,IAAQ,OAAOtH,KAAKyR,qBAAqB,aAAanK,KAASgK,IAAS;IAC7JtR,KAAKmQ,aAAaA;IAClBnQ,KAAKoQ,eAAeA;IACpBpQ,KAAKqQ,cAAcA;IACnBrQ,KAAKsQ,eAAeA;KACpBkP,IAACnP,KAAeF,OAAW,QAAAqP,WAAA,aAAAA,EAAEvc;;EAEjC,SAAAgP,CAAUvR,IAAQ;;IACd,OAAMyP,YAAEA,GAAUC,cAAEA,GAAYC,aAAEA,GAAWC,cAAEA,KAAiBtQ,KAAK+K,QAAQ+O,UAAU7H,UAAU;MAC7F9B,YAAYnQ,KAAKmQ;MACjBC,cAAcpQ,KAAKoQ;MACnBC,aAAarQ,KAAKqQ;MAClBC,cAActQ,KAAKsQ;OACpB5P;IACHV,KAAKmQ,aAAaA;IAClBnQ,KAAKoQ,eAAeA;IACpBpQ,KAAKqQ,cAAcA;IACnBrQ,KAAKsQ,eAAeA;KACpBkP,IAACnP,KAAeF,OAAW,QAAAqP,WAAA,aAAAA,EAAEvc;;EAEjC,eAAAme,CAAgBra,GAAK9E;IACjB,IAAI8E,KAAO9E,GAAW;MAClB,IAAI8E,KAAOA,EAAIhF,cAAc;QACzBgF,EAAI9E,YAAY;;WAGnB,IAAI8E,MAAQ9E,GAAW;MACxB8E,EAAI9E,YAAY;;;EAGxB,eAAA4e,CAAgB7d,GAAM7C,IAAW;;IAC7B,OAAMgQ,YAAEA,GAAUC,cAAEA,GAAYC,aAAEA,GAAWC,cAAEA,KAAiBtQ,KAAK+K,QAAQ+O,UAAUzH,UAAU;MAC7FlC,YAAYnQ,KAAKmQ;MACjBC,cAAcpQ,KAAKoQ;MACnBC,aAAarQ,KAAKqQ;MAClBC,cAActQ,KAAKsQ;OACpBtN,EAAK+D,KAAK/D,GAAM7C;IACnBH,KAAKmQ,aAAaA;IAClBnQ,KAAKoQ,eAAeA;IACpBpQ,KAAKqQ,cAAcA;IACnBrQ,KAAKsQ,eAAeA;KACpBkP,IAACnP,KAAeF,OAAW,QAAAqP,WAAA,aAAAA,EAAEvc;;EAEjC,cAAAof,CAAetb,GAAK/D;IAChBhD,KAAKgmB,WAAWlG,KAAK;MACjBlf,OAAOmG,EAAInG;MACXoG,QAAQhE,MAAI,QAAJA,WAAI,aAAJA,EAAMgE;MACdwB,UAAUxF,MAAI,QAAJA,WAAI,aAAJA,EAAMP,OAAO+F;;;EAG/B,aAAAiZ;IACIzhB,KAAK+K,QAAQ+O,UAAUtJ,YAAY;IACnCxQ,KAAK+K,QAAQ+O,UAAUrJ,eAAe;IACtCzQ,KAAK+K,QAAQ+O,UAAUpJ,gBAAgB;;EAE3C,cAAAuV;IACI,OAAQC,EAAE,oBAAoB;MAAE7lB,MAAML,KAAKqgB;MAAI8F,KAAK9F,KAAOrgB,KAAKikB,aAAa5D;MAAK+F,aAAa;OAA4PF,EAAE,QAAQ;MAAE1lB,MAAM;OAAc0lB,EAAE,4BAA4B;MAAEG,MAAM;MAAoBhe,SAAS,KAAIrI,KAAK+K,QAAQe;MAAesa,aAAa;;;EAE/e,MAAAE;IACI,OAAQJ,EAAEK,GAAM;MAAEC,UAAUxmB,KAAKwR,2BAA2B,SAAS,MAAM;OAAS0U,EAAE,UAAU;MAAEG,MAAM;OAAYH,EAAE,QAAQ;MAAE1lB,MAAM;SAAc0lB,EAAE,WAAW;MAAEO,OAAO;MAAQ5hB,OAAO7E,KAAKif;MAAWoH,MAAM;MAAQF,KAAK9F,KAAOrgB,KAAK0Z,oBAAoB2G;OAAO6F,EAAE,QAAQ,QAAQA,EAAE,SAAS,MAAMlmB,KAAKimB,kBAAkBC,EAAE,QAAQ;MAAE1lB,MAAM;QAAqB0lB,EAAE,QAAQ;MAAE1lB,MAAM;SAAmB0lB,EAAE,UAAU;MAAEG,MAAM;OAAYH,EAAE,QAAQ;MAAE1lB,MAAM;;;;;;;;;;;;;;;;;AChvBnc,MAAMkmB,IAAkB;;MCIXC,IAAY;EACrB,WAAA9mB,CAAAif;IA6BA9e,KAAAiJ,WAAW;IACXjJ,KAAAmV,kBAAkBnV,KAAKoV,qBAAqBjN,KAAKnI;IAwIjDA,KAAA4mB,uBAAwB/iB;MACpBA,EAAUG;MACVhE,KAAK6mB,eAAe;AAAI;IAE5B7mB,KAAAqH,uBAAwBxD;MACpB,MAAMqL,IAASrL,EAAUqL;MACzBlP,KAAK4U,uBAAuB1F,EAAO/H,UAAU,YAAY;MACzDnH,KAAK8mB,sBAAsBhH,KAAK;QAC5B3Y,SAAS+H,EAAO/H;;MAEpBtD,EAAUG;AAAiB;IAE/BhE,KAAA+mB,0BAA2BljB;MACvBA,EAAUG;AAAiB;;;;;;;;;;;;IAlL3BhE,KAAKwI,WAAWuW;IAChB/e,KAAKmM,aAAa;IAClBnM,KAAKgnB,gBAAgBjI;IACrB/e,KAAKinB,cAAclI;IACnB/e,KAAKknB,iBAAiBnI;IACtB/e,KAAKmnB,aAAapI;IAClB/e,KAAKonB,mBAAmBrI;IACxB/e,KAAKqnB,gBAAgBtI;IACrB/e,KAAKsnB,qBAAqB;IAC1BtnB,KAAKyN,cAAcsR;IACnB/e,KAAKoM,kBAAkB2S;IACvB/e,KAAKwU,sBAAsB;IAC3BxU,KAAK4U,uBAAuB;IAC5B5U,KAAK0N,iBAAiBqR;IACtB/e,KAAKiN,uBAAuB8R;IAC5B/e,KAAKqJ,SAAS0V;IACd/e,KAAKsK,SAAS;IACdtK,KAAKunB,WAAW;IAChBvnB,KAAK4I,QAAQmW;IACb/e,KAAK0C,gBAAgBqc;IACrB/e,KAAKgN,OAAO+R;IACZ/e,KAAKwnB,YAAY;IACjBxnB,KAAKsY,WAAWyG;IAChB/e,KAAKynB,WAAW;IAChBznB,KAAK0nB,cAAc;IACnB1nB,KAAK2nB,gBAAgB5I;IACrB/e,KAAK6mB,eAAe;;;;;EAMxB,aAAAe;IACI5nB,KAAK6nB,oBAAoB/H,KAAK;MAC1BtX,UAAUxI,KAAKwI;MACfa,QAAQrJ,KAAKqJ;;;EAGrB,aAAAye;IACI9nB,KAAK+nB,oBAAoBjI,KAAK;MAC1BtX,UAAUxI,KAAKwI;MACf8B,QAAQtK,KAAKsK;;;EAGrB,YAAA0d;IACIhoB,KAAKioB,mBAAmBnI,KAAK;MACzBtX,UAAUxI,KAAKwI;MACfI,OAAO5I,KAAK4I;;;EAGpB,WAAAsf;IACIloB,KAAKmoB,mBAAmBrI,KAAK;MACzBtX,UAAUxI,KAAKwI;MACfwE,MAAMhN,KAAKgN;;;EAGnB,oBAAAob;IACI,IAAIpoB,KAAK2nB,eAAe;MACpB3nB,KAAKqoB,kBAAkBvI,KAAK;QACxBtX,UAAUxI,KAAKwI;QACfmf,eAAe3nB,KAAK2nB;;;;EA4ChC,gBAAAvN;IACIpa,KAAKqgB,GAAGpgB,iBAAiB,aAAaD,KAAKsoB,iBAAiBngB,KAAKnI;;EAErE,YAAAiiB;IACI,KAAKjiB,KAAKiJ,UAAU;MAChB,IAAIjJ,KAAKynB,UAAU;QACfznB,KAAK2nB,gBAAgB3nB,KAAK2nB,kBAAkB,QAAQ,SAAS;;WAGhE;MACD3nB,KAAKiJ,WAAW;;;EAGxB,0BAAAqa;IACItjB,KAAKsY,WAAW;;EAEpB,2BAAAkL;IACIxjB,KAAKsY,WAAW;IAChBtY,KAAKuoB,kBAAkBzI,KAAK;MACxBtX,UAAUxI,KAAKwI;MACfwE,MAAMhN,KAAKgN;;;EAGnB,kBAAAmS;IACI,OAAOnf,KAAKqgB,GAAGpc,QAAQ,WAAWkb;;EAEtC,gBAAAmJ,CAAiBzkB;IACbA,EAAU6D;IACV7D,EAAUG;IACV,IAAIhE,KAAKmf,sBAAsB;MAC3Bnf,KAAKyH,qBAAqB5D;MAC1BuJ,SAASnN,iBAAiB,aAAaD,KAAKmV,iBAAiB;QACzDmB,SAAS;;MAEblJ,SAASnN,iBAAiB,WAAWD,KAAK+V,mBAAmB5N,KAAKnI,OAAO;QACrEuW,MAAM;;;;EAIlB,oBAAA9O,CAAqB5D;IACjB7D,KAAKwoB,8BAA8B3kB,EAAU4kB;IAC7CzoB,KAAK0oB,kBAAkB5I,KAAK;MAAEtX,UAAUxI,KAAKwI;;;EAEjD,oBAAA4M,CAAqBvR;IACjB,IAAI7D,KAAKiJ,YACLuG,KAAKyB,IAAIjR,KAAKwoB,8BAA8B3kB,EAAU4kB,SAAS,GAAG;MAClEzoB,KAAKiJ,WAAW;MAChBjJ,KAAKwc,eAAesD,KAAK;QACrBtX,UAAUxI,KAAKwI;QACfmb,WAAW9f,EAAU4kB;QACrB9J,WAAW9a,EAAU8kB,YAAY,IAAI,UAAU;;;;EAI3D,kBAAA5S;IACI3I,SAAS4I,oBAAoB,aAAahW,KAAKmV;IAC/CnV,KAAK4oB,gBAAgB9I,KAAK;MAAEtX,UAAUxI,KAAKwI;;;EAE/C,wBAAAqgB,CAAyBhlB;IACrBA,EAAUG;;EAiBd,MAAAsiB;IACI,OAAQJ,EAAEK,GAAM,MAAML,EAAE,MAAM;MAAEO,OAAO;MAAOJ,MAAM;OAASrmB,KAAK8oB,kBAAkB9oB,KAAK+oB,cAAc/oB,KAAKgpB,cAAchpB,KAAKimB,kBAAkBjmB,KAAKipB,iBAAiB/C,EAAE,2BAA2B;MAAEzjB,QAAQzC,KAAKqgB;MAAI6I,aAAalpB,KAAK6oB;MAA0B3E,MAAMlkB,KAAK6mB;MAAcT,aAAa;OAA4QF,EAAE,QAAQ;MAAE1lB,MAAM;;;EAE3kB,cAAAsoB;IACI,OAAQ5C,EAAE,MAAM;MAAEO,OAAO;MAAYJ,MAAM;MAAgB/b,UAAUtK,KAAKmM,eAAe,UAAUnM,KAAKoM;OAAoB8Z,EAAE,SAAS;MAAEG,MAAM;OAAoBH,EAAE,SAAS;MAAExf,MAAM;MAAY2f,MAAM,EAAC,YAAYrmB,KAAK4U,uBACjNpL,QAAO6c,KAAQA,MAAS,KACxBhJ,KAAK;MAAM8L,SAASnpB,KAAKqH;MAAsB+hB,YAAYppB,KAAK+mB;MAAyB5f,SAASnH,KAAK4U,yBAAyB;MAAWyU,eAAerpB,KAAK4U,yBAAyB;;;EAErM,UAAAmU;IACI,OAAQ7C,EAAE,MAAM;MAAEO,OAAO;MAAQJ,MAAM;MAAYiD,OAAOtpB,KAAKqnB,kBACtDrnB,KAAKsnB,uBAAuB,UAAUtnB,KAAKmnB,aAAa;OAASnnB,KAAKgnB,iBAAiBhnB,KAAKinB,eAAejnB,KAAKknB,iBAAkBhB,EAAE,OAAO;MAAEO,OAAO;MAAaJ,MAAM;MAAiBkD,KAAKvpB,KAAKinB,eAAejnB,KAAKgnB;MAAewC,QAAQxpB,KAAKknB;SAAsBhB,EAAE,OAAO;MAAEO,OAAO;MAAaJ,MAAM;QAAqBH,EAAE,QAAQ;MAAEO,OAAO;MAAaJ,MAAM;MAAiB/b,QAAQtK,KAAKonB,oBAAoBpnB,KAAKsnB,uBAAuB;OAAUtnB,KAAKmnB;;EAEld,UAAA6B;IACI,OAAQ9C,EAAE,MAAM;MAAEO,OAAO;MAAQJ,MAAM;MAAY/b,SAAStK,KAAKynB;OAAYvB,EAAE,OAAO;MAAEO,OAAO;MAAYJ,MAAM;QAAyBH,EAAE,OAAO;MAAEO,OAAO;MAAaJ,MAAM;;;EAEnL,cAAAJ;IACI,OAAQC,EAAE,MAAM;MAAEO,OAAO;MAAYJ,MAAM;MAAgB/b,SAAStK,KAAK0nB;OAAexB,EAAE,UAAU;MAAEO,OAAO;MAAUJ,MAAM;MAAuB8C,SAASnpB,KAAK4mB;;;EAEtK,YAAAqC;IACI,OAAQ/C,EAAE,MAAM;MAAEO,OAAO;MAAUJ,MAAM;MAAc/b,SAAStK,KAAKwnB;OAAatB,EAAE,yBAAyB;MAAEzjB,QAAQzC,KAAKqgB;MAAIoG,OAAO;MAAgBJ,MAAM;;;;;;;;;;;;;;;;AC7MrK,MAAMoD,IAAwB;;MCKjBC,IAAkB;EAC3B,WAAA7pB,CAAAif;IAKA9e,KAAA2pB,cAAc3pB,KAAK4pB,iBAAiBzhB,KAAKnI;;;;;IAJrCA,KAAKsY,WAAW;IAChBtY,KAAKyC,SAASsc;;;;;EAiBlB,gBAAA3E;IACIpa,KAAKqgB,GAAGpgB,iBAAiB,aAAaD,KAAKsoB,iBAAiBngB,KAAKnI;;EAErE,YAAAiiB,CAAape;IACTA,EAAUG;;EAEd,eAAAse,CAAgBze;IACZA,EAAUG;IACV,IAAIkd,EAAsBrd,IAAY;MAClC7D,KAAKyC,OAAOuK,OAAO;WAElB;MACDhN,KAAKyC,OAAOuK,OAAO;;;EAG3B,0BAAAsW;IACItjB,KAAKsY,WAAW;;EAEpB,2BAAAkL;IACIxjB,KAAKsY,WAAW;;EAEpB,gBAAAgQ,CAAiBzkB;IACbA,EAAUG;IACVH,EAAU6D;IACV1H,KAAK6pB,aAAahmB,EAAU4kB;IAC5Brb,SAASnN,iBAAiB,aAAaD,KAAK2pB,aAAa;MAAErT,SAAS;;IACpElJ,SAASnN,iBAAiB,WAAWD,KAAK8pB,eAAe3hB,KAAKnI,OAAO;MACjEuW,MAAM;;IAEVvW,KAAK+pB,oBAAoBjK,KAAK;MAAEtX,UAAUxI,KAAKyC,OAAO+F;;;EAE1D,gBAAAohB,CAAiB/lB;IACb7D,KAAK2c,eAAemD,KAAK;MACrBtX,UAAUxI,KAAKyC,OAAO+F;MACtB+P,YAAYvY,KAAK6pB,aAAahmB,EAAU4kB;;;EAGhD,cAAAqB;IACI1c,SAAS4I,oBAAoB,aAAahW,KAAK2pB;IAC/C3pB,KAAKgqB,qBAAqBlK,KAAK;MAAEtX,UAAUxI,KAAKyC,OAAO+F;;;EAE3D,MAAA8d;IACI,OAAOJ,EAAE,OAAO;MAAEO,OAAO;MAAenc,SAAStK,KAAKsY;;;;;;;ACnE9D,MAAM2R,IAA0B;;MCInBC,IAAoB;EAC7B,WAAArqB,CAAAif;;IACI9e,KAAKyC,SAASsc;IACd/e,KAAKkkB,OAAO;;EAEhB,mBAAAiG,CAAoBtmB;IAChBA,EAAUG;IACVhE,KAAKyC,OAAOokB,eAAe;;EAE/B,4BAAAuD;IACIpqB,KAAKyC,OAAOokB,eAAe;;EAE/B,MAAAP;IACI,OAAQJ,EAAEK,GAAM,MAAML,EAAE,aAAa;MAAEmE,OAAO;MAAMC,WAAWtqB,KAAKyC;MAAQ8nB,QAAQ;MAAgBC,QAAQ;MAAeC,SAASzqB,KAAKyC,OAAO0kB;MAAYuD,WAAW;MAASC,qBAAqB;MAAMC,eAAe;MAAMC,WAAW;MAAUvgB,SAAStK,KAAKkkB;MAAMkC,aAAa;OAAkDF,EAAE,QAAQ;;;;;;ACjB1V,MAAM4E,IAAqB;;MCGdC,IAAe;;;;;;;EAExB,wBAAAC,CAAyBnnB;IACrB,MAAMwE,IAAUzF,MAAMC,KAAK7C,KAAKqgB,GAAGvd,iBAAiB;IACpDuF,EAAQU,SAAQtG;MACZ,IAAIA,EAAO+F,aAAa3E,EAAUvB,OAAOkG,UAAU;QAC/C/F,EAAOklB,gBAAgB;;;;;;;;ACTvC,MAAMsD,IAAoB;;MCIbC,IAAc;EACvB,WAAArrB,CAAAif;;;IACI9e,KAAKK,OAAO0e;IACZ/e,KAAKkkB,OAAO;;EAMhB,mBAAAiG,CAAoBtmB;IAChBA,EAAUG;IACVhE,KAAKkkB,OAAO;IACZlkB,KAAKmrB,qBAAqBrL;;EAE9B,MAAAwG;IACI,OAAQJ,EAAEK,GAAM,MAAML,EAAE,aAAa;MAAEmE,OAAO;MAAMC,WAAWtqB,KAAKK;MAAMoqB,SAAS;MAAWC,WAAW;MAASC,qBAAqB;MAAMC,eAAe;MAAMC,WAAW;MAAUvgB,SAAStK,KAAKkkB;MAAMkC,aAAa;OAAkDF,EAAE,QAAQ;;;;;;ACnB5R,MAAMkF,IAA2B;;MCIpBC,IAAqB;EAC9B,WAAAxrB,CAAAif;IAGA9e,KAAAsrB,cAAeznB;MACX,MAAM0nB,IAAW1nB,EAAUqL;MAC3B,MAAMzM,IAASzC,KAAKqI,QAAQQ,MAAKpG,KAAUA,EAAO+F,aAAa+iB,EAAS/qB;MACxEiC,EAAO6H,UAAUihB,EAASpkB;MAC1BtD,EAAUG;AAAiB;;IAN3BhE,KAAKqI,UAAU0W;;EAQnB,gBAAAyM;IACI,OAAO,KAAIxrB,KAAKqI,UAAS2D,MAAK,CAACyf,GAAGC;MAC9B,IAAID,EAAE7iB,QAAQ8iB,EAAE9iB,OAAO;QACnB,QAAQ;;MAEZ,IAAI6iB,EAAE7iB,QAAQ8iB,EAAE9iB,OAAO;QACnB,OAAO;;MAEX,OAAO;AAAC;;EAGhB,MAAA0d;IACI,MAAMqF,IAAgB3rB,KAAKwrB;IAC3B,OAAQtF,EAAE,MAAM,MAAMyF,EAAcljB,KAAIhG,KAAWyjB,EAAE,MAAM;MAAEG,MAAM;OAAYH,EAAE,SAAS;MAAEG,MAAM;OAAkBH,EAAE,SAAS;MAAEG,OAAO5jB,EAAO6H,SACrI,0CACA;MAAkB5D,MAAM;MAAYS,UAAU1E,EAAO6H;MAAQshB,WAAWnpB,EAAO8kB;MAAU/mB,MAAMiC,EAAO+F;MAAU2gB,SAASnpB,KAAKsrB;QAAgB7oB,EAAO0kB;;;;;;AC7BvK,MAAM0E,IAAa;;MCENC,IAAO;EAChB,WAAAjsB,CAAAif;;IACI9e,KAAK+rB,WAAW;IAChB/rB,KAAKgsB,aAAa;;;;;EAGtB,iBAAA5L;IACI,MAAM6L,IAAWC,EAAa;IAC9BlsB,KAAKqgB,GAAGxb,MAAMO,YAAY,oBAAoB,QAAQ6mB;IACtDjsB,KAAKqgB,GAAGxb,MAAMO,YAAY,sBAAsB,QAAQ6mB;IACxDjsB,KAAKqgB,GAAGxb,MAAMO,YAAY,6BAA6B,QAAQ6mB;IAC/DjsB,KAAKqgB,GAAGxb,MAAMO,YAAY,8BAA8B,QAAQ6mB;IAChEjsB,KAAKqgB,GAAGxb,MAAMO,YAAY,8BAA8B,QAAQ6mB;IAChEjsB,KAAKqgB,GAAGxb,MAAMO,YAAY,0BAA0B,QAAQ6mB;IAC5DjsB,KAAKqgB,GAAGxb,MAAMO,YAAY,iBAAiB,QAAQ6mB;IACnDjsB,KAAKqgB,GAAGxb,MAAMO,YAAY,0BAA0B,QAAQ6mB;IAC5DjsB,KAAKqgB,GAAGxb,MAAMO,YAAY,wBAAwB,QAAQ6mB;;EAE9D,MAAA3F;IACI,OAAQJ,EAAEK,GAAM;MAAEE,OAAO;QAAE0F,OAAO9a,EAAM8a;QAAO,aAAansB,KAAK+rB;;OAAc7F,EAAE,QAAQ"}
|