@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"ch-grid.ch-grid-column.ch-grid-column-resize.ch-grid-column-settings.ch-grid-columnset.ch-grid-settings.ch-grid-settings-columns.gxg-grid.entry.cjs.js","mappings":"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","names":["adoptGlobalStyleSheet","focusComposedPath","mouseEventModifierKey","mouseEventHasButtonPressed","MouseEventButtons","MouseEventButton","h","Host","getAssetPath","state"],"sources":["node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-row/ch-grid-row.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-rowset/ch-grid-rowset.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-cell/ch-grid-cell.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager-column-drag.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager-columns.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager-selection.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager-row-drag.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager-row-actions.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager-column-resize.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid-manager.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid.css?tag=ch-grid&encapsulation=shadow","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/ch-grid.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-column/ch-grid-column.css?tag=ch-grid-column&encapsulation=shadow","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-column/ch-grid-column.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-column/grid-column-resize/ch-grid-column-resize.css?tag=ch-grid-column-resize&encapsulation=shadow","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-column/grid-column-resize/ch-grid-column-resize.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-column/grid-column-settings/ch-grid-column-settings.css?tag=ch-grid-column-settings&encapsulation=shadow","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-column/grid-column-settings/ch-grid-column-settings.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-columnset/ch-grid-columnset.css?tag=ch-grid-columnset","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-columnset/ch-grid-columnset.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-settings/ch-grid-settings.css?tag=ch-grid-settings&encapsulation=shadow","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-settings/ch-grid-settings.js","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-settings/grid-settings-columns/ch-grid-settings-columns.css?tag=ch-grid-settings-columns&encapsulation=shadow","node_modules/@genexus/chameleon-controls-library/dist/collection/components/grid/grid-settings/grid-settings-columns/ch-grid-settings-columns.js","node_modules/@genexus/gemini/dist/collection/components/grid/gxg-grid.css?tag=gxg-grid","node_modules/@genexus/gemini/dist/collection/components/grid/gxg-grid.js"],"sourcesContent":["/**\n * The `ch-grid-row` component represents a grid row.\n */\nexport default class HTMLChGridRowElement extends HTMLElement {\n parentGrid;\n constructor() {\n super();\n }\n connectedCallback() {\n this.addEventListener(\"cellCaretClicked\", this.cellCaretClickedHandler);\n }\n /**\n * Returns the parent ch-grid element of the grid row.\n */\n get grid() {\n return this.parentGrid ?? this.loadParentGrid();\n }\n /**\n * A unique identifier for the row.\n */\n get rowId() {\n return this.getAttribute(\"rowid\") ?? \"\";\n }\n /**\n * A boolean value indicating whether the row is highlighted.\n */\n get highlighted() {\n return this.hasAttribute(\"highlighted\");\n }\n set highlighted(value) {\n const highlightedClasses = this.grid.rowHighlightedClass?.split(\" \");\n if (value === true) {\n this.setAttribute(\"highlighted\", \"\");\n if (this.grid.rowHighlightedClass) {\n this.classList.add(...highlightedClasses);\n }\n }\n else {\n this.removeAttribute(\"highlighted\");\n if (this.grid.rowHighlightedClass) {\n this.classList.remove(...highlightedClasses);\n }\n }\n }\n /**\n * A boolean value indicating whether the row is selected.\n */\n get selected() {\n return this.hasAttribute(\"selected\");\n }\n set selected(value) {\n const selectedClasses = this.grid.rowSelectedClass?.split(\" \");\n if (value === true) {\n this.setAttribute(\"selected\", \"\");\n if (this.grid.rowSelectedClass) {\n this.classList.add(...selectedClasses);\n }\n }\n else {\n this.removeAttribute(\"selected\");\n if (this.grid.rowSelectedClass) {\n this.classList.remove(...selectedClasses);\n }\n }\n }\n /**\n * A boolean value indicating whether the row is marked.\n */\n get marked() {\n return this.hasAttribute(\"marked\");\n }\n set marked(value) {\n const markedClasses = this.grid.rowMarkedClass?.split(\" \");\n if (value === true) {\n this.setAttribute(\"marked\", \"\");\n if (this.grid.rowMarkedClass) {\n this.classList.add(...markedClasses);\n }\n }\n else {\n this.removeAttribute(\"marked\");\n if (this.grid.rowMarkedClass) {\n this.classList.remove(...markedClasses);\n }\n }\n }\n /**\n * A boolean value indicating whether the row is focused.\n */\n get focused() {\n return this.hasAttribute(\"focused\");\n }\n set focused(value) {\n const focusedClasses = this.grid.rowFocusedClass?.split(\" \");\n if (value === true) {\n this.setAttribute(\"focused\", \"\");\n if (this.grid.rowFocusedClass) {\n this.classList.add(...focusedClasses);\n }\n }\n else {\n this.removeAttribute(\"focused\");\n if (this.grid.rowFocusedClass) {\n this.classList.remove(...focusedClasses);\n }\n }\n }\n /**\n * A boolean value indicating whether the grid row has child rows.\n */\n get hasChildRows() {\n return !!this.querySelector(\"ch-grid-rowset\");\n }\n /**\n * A boolean value indicates whether the grid row is collapsed.\n */\n get collapsed() {\n return this.hasAttribute(\"collapsed\");\n }\n set collapsed(value) {\n const dispatchEvent = this.collapsed !== value;\n if (value) {\n this.setAttribute(\"collapsed\", \"\");\n }\n else {\n this.removeAttribute(\"collapsed\");\n }\n if (dispatchEvent) {\n this.dispatchEvent(new CustomEvent(\"rowCollapsedChanged\", {\n bubbles: true,\n composed: true,\n detail: { rowId: this.rowId, collapsed: value }\n }));\n }\n }\n /**\n * A boolean value indicates whether the grid row is a leaf node.\n */\n get leaf() {\n return this.hasAttribute(\"leaf\");\n }\n set leaf(value) {\n if (value === true) {\n this.setAttribute(\"leaf\", \"\");\n }\n else {\n this.removeAttribute(\"leaf\");\n }\n }\n getCell(column) {\n return this.querySelector(`:scope > ch-grid-cell:nth-of-type(${column.physicalOrder})`);\n }\n /**\n * A boolean value indicates whether the grid row is visible.\n */\n isVisible() {\n return Array.from(this.querySelectorAll(\":scope > ch-grid-cell\")).some((cell) => cell.isVisible());\n }\n /**\n * Ensures that the row is visible within the control, scrolling the contents of the control if necessary.\n */\n ensureVisible() {\n this.dispatchEvent(new CustomEvent(\"rowEnsureVisible\", { bubbles: true, composed: true }));\n }\n /**\n * returns a `DOMRect` object representing the size of the grid row element.\n */\n getBoundingClientRect() {\n let rect;\n if (!this.firstElementChild) {\n rect = new DOMRect();\n }\n else if (this.firstElementChild === this.lastElementChild) {\n rect = this.firstElementChild.getBoundingClientRect();\n }\n else {\n const firstCellRect = this.firstElementChild.getBoundingClientRect();\n const lastCellRect = this.lastElementChild.getBoundingClientRect();\n rect = new DOMRect(firstCellRect.x, firstCellRect.y, lastCellRect.x - firstCellRect.x + lastCellRect.width, lastCellRect.y - firstCellRect.y + lastCellRect.height);\n }\n return rect;\n }\n cellCaretClickedHandler(eventInfo) {\n const targetRow = eventInfo.currentTarget;\n if (targetRow.hasChildRows) {\n this.collapsed = !this.collapsed;\n }\n eventInfo.stopPropagation();\n }\n loadParentGrid() {\n this.parentGrid = this.closest(\"ch-grid\");\n return this.parentGrid;\n }\n}\nif (!customElements.get(\"ch-grid-row\")) {\n customElements.define(\"ch-grid-row\", HTMLChGridRowElement);\n}\n//# sourceMappingURL=ch-grid-row.js.map\n","/**\n * The `ch-grid-rowset` component represents a group of rows.\n */\nexport default class HTMLChGridRowsetElement extends HTMLElement {\n computedLevel = 0;\n grid;\n constructor() {\n super();\n }\n connectedCallback() {\n this.addEventListener(\"rowsetLegendClicked\", this.rowsetLegendClickedHandler);\n this.defineLevel();\n }\n /**\n * A boolean value indicates whether the grid rowset is collapsed.\n */\n get collapsed() {\n return this.hasAttribute(\"collapsed\");\n }\n set collapsed(value) {\n if (value) {\n this.setAttribute(\"collapsed\", \"\");\n }\n else {\n this.removeAttribute(\"collapsed\");\n }\n }\n /**\n * Gets the zero-based depth of the rowset in the tree.\n */\n get level() {\n if (!this.computedLevel) {\n this.computeLevel();\n }\n return this.computedLevel;\n }\n /**\n * returns a `DOMRect` object representing the size of the grid rowset element.\n */\n getBoundingClientRect() {\n let rect;\n const paddingTop = parseInt(this.style.getPropertyValue(\"padding-top\"));\n const paddingbottom = parseInt(this.style.getPropertyValue(\"padding-bottom\"));\n if (!this.firstElementChild) {\n const mainRect = this.grid.shadowRoot\n .querySelector(\".main\")\n .getBoundingClientRect();\n rect = new DOMRect(mainRect.x, mainRect.y, mainRect.width, 0);\n }\n else if (this.firstElementChild === this.lastElementChild) {\n const firstRowRect = this.firstElementChild.getBoundingClientRect();\n rect = new DOMRect(firstRowRect.x, firstRowRect.y - paddingTop, firstRowRect.x + firstRowRect.width, firstRowRect.y + firstRowRect.height + paddingTop + paddingbottom);\n }\n else {\n const firstRowRect = this.firstElementChild.getBoundingClientRect();\n const lastRowRect = this.lastElementChild.getBoundingClientRect();\n rect = new DOMRect(firstRowRect.x, firstRowRect.y - paddingTop, lastRowRect.x - firstRowRect.x + lastRowRect.width, lastRowRect.y -\n firstRowRect.y +\n lastRowRect.height +\n paddingTop +\n paddingbottom);\n }\n return rect;\n }\n rowsetLegendClickedHandler(eventInfo) {\n eventInfo.stopPropagation();\n this.collapsed = !this.collapsed;\n }\n defineLevel() {\n this.style.setProperty(\"--level\", this.level.toString());\n }\n computeLevel() {\n this.computedLevel = this.getParentRowset()?.level ?? 0;\n if (this.hasLegend() || this.isNestedRow()) {\n this.computedLevel++;\n }\n }\n hasLegend() {\n return this.firstElementChild?.tagName === \"CH-GRID-ROWSET-LEGEND\";\n }\n isNestedRow() {\n return this.parentElement.tagName === \"CH-GRID-ROW\";\n }\n getParentRowset() {\n const node = this.parentElement.closest(\"ch-grid-rowset, ch-grid\");\n if (node.tagName === \"CH-GRID-ROWSET\") {\n return node;\n }\n }\n}\nif (!customElements.get(\"ch-grid-rowset\")) {\n customElements.define(\"ch-grid-rowset\", HTMLChGridRowsetElement);\n}\n//# sourceMappingURL=ch-grid-rowset.js.map\n","/**\n * ChGridCellType indicates the type of cell.\n * \"Plain\" is a simple cell that shows the contents of it.\n * \"Rich\" is a rich cell that, in addition to displaying its content, enables\n * the user to execute different actions on the row.\n * The actions are:\n * - allow dragging the row to reorder it.\n * - allow to select the row by means of a checkbox.\n * - allow displaying actions to be executed in the row.\n * \"TreeNode\" is a cell that represents a node of the Tree.\n */\nexport var ChGridCellType;\n(function (ChGridCellType) {\n ChGridCellType[\"Plain\"] = \"plain\";\n ChGridCellType[\"Rich\"] = \"rich\";\n ChGridCellType[\"TreeNode\"] = \"node\";\n})(ChGridCellType || (ChGridCellType = {}));\n/**\n * The `ch-grid-cell` component represents a grid cell.\n */\nexport default class HTMLChGridCellElement extends HTMLElement {\n cellType = ChGridCellType.Plain;\n caret;\n drag;\n action;\n selector;\n selectorLabel;\n rowDrag;\n rowSelector;\n rowActions;\n static get observedAttributes() {\n return [\"cell-type\", \"row-drag\", \"row-selector\", \"row-actions\"];\n }\n constructor() {\n super();\n this.defineFocusHandler();\n }\n connectedCallback() {\n if (this.cellType !== ChGridCellType.Plain) {\n this.define();\n }\n }\n attributeChangedCallback(name, _oldValue, value) {\n if (name === \"cell-type\") {\n this.cellType = value;\n }\n if (name === \"row-drag\") {\n this.rowDrag = value !== null ? value !== \"false\" : false;\n }\n if (name === \"row-selector\") {\n this.rowSelector = value !== null ? value !== \"false\" : false;\n }\n if (name === \"row-actions\") {\n this.rowActions = value !== null ? value !== \"false\" : false;\n }\n }\n /**\n * One of \"plain\", \"rich\", or \"node\", indicating the type of cell.\n */\n get type() {\n return this.cellType;\n }\n set type(value) {\n if (this.cellType !== value) {\n this.cellType = value;\n this.define();\n }\n }\n /**\n * Returns the parent ch-grid element of the cell.\n */\n get grid() {\n return this.closest(\"ch-grid\");\n }\n /**\n * Returns the ch-grid-column element of the cell.\n */\n get column() {\n const cellIndex = Array.prototype.indexOf.call(this.row.querySelectorAll(`:scope > ch-grid-cell`), this);\n return this.grid.querySelector(`ch-grid-column:nth-of-type(${cellIndex + 1})`);\n }\n /**\n * Returns the parent ch-grid-row element of the cell.\n */\n get row() {\n return this.parentElement;\n }\n /**\n * A unique identifier for the cell.\n */\n get cellId() {\n return this.getAttribute(\"cellid\") ?? \"\";\n }\n /**\n * A boolean value indicating whether the cell is selected.\n */\n get selected() {\n return this.hasAttribute(\"selected\");\n }\n set selected(value) {\n if (value === true) {\n this.setAttribute(\"selected\", \"\");\n }\n else {\n this.removeAttribute(\"selected\");\n }\n }\n /**\n * A boolean value indicates whether the grid cell is visible.\n */\n isVisible() {\n return this.offsetParent !== null;\n }\n /**\n * Ensures that the cell is visible within the control, scrolling the contents of the control if necessary.\n */\n ensureVisible() {\n this.dispatchEvent(new CustomEvent(\"cellEnsureVisible\", { bubbles: true, composed: true }));\n }\n /**\n * A boolean value indicates whether the selector of cell is checked or not.\n */\n setSelectorChecked(value) {\n this.selector.checked = value;\n if (this.selector.checked) {\n this.selector.setAttribute(\"part\", \"selector checked\");\n }\n else {\n this.selector.setAttribute(\"part\", \"selector\");\n }\n }\n defineFocusHandler() {\n this.addEventListener(\"focusin\", () => {\n if (!this.rowSelector) {\n this.dispatchEvent(new CustomEvent(\"cellFocused\", { bubbles: true, composed: true }));\n }\n });\n }\n caretMouseDownHandler(eventInfo) {\n eventInfo.stopPropagation();\n this.dispatchEvent(new CustomEvent(\"cellCaretClicked\", { bubbles: true, composed: true }));\n }\n selectorClickHandler(eventInfo) {\n eventInfo.stopPropagation();\n this.dispatchEvent(new CustomEvent(\"cellSelectorClicked\", {\n bubbles: true,\n composed: true,\n detail: {\n checked: this.selector.checked,\n range: eventInfo.shiftKey\n }\n }));\n }\n selectorLabelClickHandler(eventInfo) {\n if (!eventInfo.shiftKey) {\n eventInfo.stopPropagation();\n }\n }\n dragMouseDownHandler(eventInfo) {\n eventInfo.preventDefault();\n eventInfo.stopPropagation();\n this.dispatchEvent(new CustomEvent(\"rowDragStarted\", {\n bubbles: true,\n composed: true,\n detail: {\n row: this.row\n }\n }));\n }\n actionClickHandler() {\n this.dispatchEvent(new CustomEvent(\"cellRowActionClicked\", {\n bubbles: true,\n composed: true\n }));\n }\n define() {\n switch (this.cellType) {\n case ChGridCellType.Rich:\n this.defineRich();\n break;\n case ChGridCellType.TreeNode:\n this.defineTreeNode();\n break;\n }\n }\n defineRich() {\n let html = \"\";\n if (!this.shadowRoot || this.shadowRoot.innerHTML === \"\") {\n this.attachShadow({ mode: \"open\" });\n if (this.rowDrag) {\n html += `\n <div part=\"drag-icon\"></div>\n `;\n }\n if (this.rowSelector) {\n html += `\n <style>label {display:flex}</style>\n <label part=\"selector-label\">\n <input type=\"checkbox\" part=\"selector\">\n </label>\n `;\n }\n if (this.rowActions) {\n html += `\n <button part=\"actions-icon\"></button>\n `;\n }\n this.shadowRoot.innerHTML = `\n ${html}\n <slot></slot>\n `;\n if (this.rowDrag) {\n this.drag = this.shadowRoot.querySelector(\"[part='drag-icon']\");\n this.drag.addEventListener(\"mousedown\", this.dragMouseDownHandler.bind(this));\n }\n if (this.rowActions) {\n this.action = this.shadowRoot.querySelector(\"[part='actions-icon']\");\n this.action.addEventListener(\"click\", this.actionClickHandler.bind(this));\n }\n if (this.rowSelector) {\n this.selector = this.shadowRoot.querySelector(\"[part='selector']\");\n this.selector.addEventListener(\"mousedown\", (eventInfo) => eventInfo.stopPropagation());\n this.selector.addEventListener(\"click\", this.selectorClickHandler.bind(this));\n this.selectorLabel = this.shadowRoot.querySelector(\"[part='selector-label']\");\n this.selectorLabel.addEventListener(\"mousedown\", (eventInfo) => eventInfo.stopPropagation());\n this.selectorLabel.addEventListener(\"click\", this.selectorLabelClickHandler.bind(this));\n }\n }\n }\n defineTreeNode() {\n if (!this.shadowRoot || this.shadowRoot.innerHTML === \"\") {\n this.attachShadow({ mode: \"open\" });\n this.shadowRoot.innerHTML = `\n <style>:host::before {content: none !important}</style>\n <div part=\"indent\"></div>\n <div part=\"caret\"></div>\n <input type=\"checkbox\" part=\"node-selector\" hidden>\n <div part=\"node-icon\"></div>\n <slot></slot>\n `;\n this.caret = this.shadowRoot.querySelector(\"[part='caret']\");\n this.caret.addEventListener(\"mousedown\", this.caretMouseDownHandler.bind(this));\n }\n }\n}\nif (!customElements.get(\"ch-grid-cell\")) {\n customElements.define(\"ch-grid-cell\", HTMLChGridCellElement);\n}\n//# sourceMappingURL=ch-grid-cell.js.map\n","export class ChGridManagerColumnDrag {\n column;\n columns;\n isRTL;\n lastTargetOrder = 0;\n constructor(columnId, columns, isRTL) {\n this.isRTL = isRTL;\n this.columns = columns.map(column => ({\n element: column,\n rect: column.getBoundingClientRect(),\n translateX: 0,\n order: column.order\n }));\n this.column = this.columns.find(item => item.element.columnId === columnId);\n this.columns.forEach(this.setColumnHiddenRect.bind(this));\n }\n dragging(position) {\n /**\n * Indica el orden inicial de la columna que se está arrastrando\n */\n const sourceOrder = this.column.element.order;\n /**\n * Indica a qué grupo de fijación pertenece la columna que se está arrastrando\n */\n const sourceFreeze = this.column.element.freeze;\n let targetOrder = 0;\n let targetOrderChanged = false;\n this.column.translateX = 0;\n this.columns\n .filter(column => column.element.freeze === sourceFreeze)\n .forEach(column => {\n /**\n * Indica el orden de la columna actual\n */\n const columnOrder = column.element.order;\n /**\n * Indica si la columna que se está arrastrando estaba a la derecha o\n * a la izquierda de la actual cuando se inició el arrastre para\n * incrementar el orden según corresponda.\n */\n const dragDirection = sourceOrder > columnOrder ? 1 : -1;\n /**\n * Indica si la columna actual hay que desplazarla a la derecha o\n * a la izquierda cuando se cruce con la columna arrastrada.\n */\n const shiftDirection = (sourceOrder > columnOrder ? 1 : -1) * (this.isRTL ? -1 : 1);\n if (column.rect.left < position &&\n position < column.rect.right &&\n columnOrder !== sourceOrder) {\n /*\n La posicion actual del mouse está dentro de la columna actual y\n no es la columna que se está arrastrando\n */\n this.swapColumnPosition(column, shiftDirection);\n // actualizo el orden de la columna actual\n column.order = column.element.order + dragDirection;\n targetOrder = columnOrder;\n }\n else if (position < column.rect.left &&\n (this.isRTL ? columnOrder > sourceOrder : columnOrder < sourceOrder)) {\n /*\n La posicion actual del mouse está a la izquierda de la columna actual\n haciendo que la columna arrastrada cruce la actual.\n */\n this.swapColumnPosition(column, shiftDirection);\n // actualizo el orden de la columna actual\n column.order = column.element.order + dragDirection;\n if (!targetOrder ||\n (this.isRTL ? columnOrder > targetOrder : columnOrder < targetOrder)) {\n targetOrder = columnOrder;\n }\n }\n else if (position > column.rect.right &&\n (this.isRTL ? columnOrder < sourceOrder : columnOrder > sourceOrder)) {\n /*\n La posicion actual del mouse está a la derecha de la columna actual\n haciendo que la columna arrastrada cruce la actual.\n */\n this.swapColumnPosition(column, shiftDirection);\n // actualizo el orden de la columna actual\n column.order = column.element.order + dragDirection;\n if (!targetOrder ||\n (this.isRTL ? columnOrder < targetOrder : columnOrder > targetOrder)) {\n targetOrder = columnOrder;\n }\n }\n else if (columnOrder !== sourceOrder) {\n /*\n La posicion actual del mouse NO está dentro de la columna actual ni\n la cruza.\n */\n this.resetColumnPosition(column);\n }\n });\n this.column.order = targetOrder ? targetOrder : this.column.element.order;\n targetOrderChanged = targetOrder !== this.lastTargetOrder;\n this.lastTargetOrder = targetOrder;\n return targetOrderChanged;\n }\n dragEnd() {\n this.columns.forEach(column => {\n column.element.order = column.order;\n column.translateX = 0;\n });\n }\n getColumnStyle(column) {\n return {\n [`--ch-grid-column-${column.physicalOrder}-transform`]: `translateX(${this.columns.find(columnItem => columnItem.element === column)\n .translateX}px)`\n };\n }\n getColumnsFirstLast() {\n let itemFirst;\n let itemLast;\n this.columns.forEach(item => {\n if (!item.element.hidden &&\n (!itemFirst || item.order < itemFirst.order)) {\n itemFirst = item;\n }\n if (!item.element.hidden && (!itemLast || item.order > itemLast.order)) {\n itemLast = item;\n }\n });\n return {\n columnFirst: itemFirst.element,\n columnLast: itemLast.element\n };\n }\n swapColumnPosition(column, shiftDirection) {\n // desplazo la columna actual para ocupar el espacio que dejó\n // la columna arrastrada\n column.translateX = this.column.rect.width * shiftDirection;\n // desplazo la columna que se está arrastrando para que ocupe el\n // espacio que dejó la columna actual\n this.column.translateX += column.rect.width * (shiftDirection * -1);\n }\n resetColumnPosition(column) {\n // no desplazo la columna actual\n column.translateX = 0;\n // asigno su posición original\n column.order = column.element.order;\n }\n setColumnHiddenRect(column) {\n if (column.element.hidden) {\n const columnSibling = this.getPreviousSiblingVisible(column) ||\n this.getNextSiblingVisible(column);\n column.rect = new DOMRect(column.element.order < columnSibling.element.order\n ? columnSibling.rect.left\n : columnSibling.rect.right, columnSibling.rect.y, 0, columnSibling.rect.height);\n }\n }\n getPreviousSiblingVisible(hidden) {\n let previous;\n this.columns.forEach(column => {\n if (!column.element.hidden &&\n column.element.order < hidden.element.order &&\n (!previous || column.element.order > previous.element.order)) {\n previous = column;\n }\n });\n return previous;\n }\n getNextSiblingVisible(hidden) {\n let next;\n this.columns.forEach(column => {\n if (!column.element.hidden &&\n column.element.order > hidden.element.order &&\n (!next || column.element.order < next.element.order)) {\n next = column;\n }\n });\n return next;\n }\n}\n//# sourceMappingURL=ch-grid-manager-column-drag.js.map\n","import { ChGridCellType } from \"./grid-cell/ch-grid-cell\";\nexport class ChGridManagerColumns {\n manager;\n columnsetObserver = new MutationObserver(this.reloadColumns.bind(this));\n columnResizeObserver = new ResizeObserver(this.resizeColumnHandler.bind(this));\n columns;\n columnsDisplay = [];\n columnsWidth = [];\n constructor(manager) {\n this.manager = manager;\n this.columns = Array.from(this.manager.grid.querySelectorAll(\"ch-grid-column\"));\n this.observeColumnset();\n this.defineColumns(this.columns);\n this.defineColumnsVariables();\n this.adjustFreezeOrder();\n this.adjustBaseLayer();\n }\n getColumn(columnId) {\n return this.columns.find(column => column.columnId === columnId);\n }\n getColumns(sorted = false) {\n if (sorted) {\n return this.columns.sort(this.fnSortByOrder);\n }\n return this.columns;\n }\n getColumnsFirstLast() {\n let columnFirst;\n let columnLast;\n this.columns.forEach(column => {\n if (!column.hidden &&\n (!columnFirst || column.order < columnFirst.order)) {\n columnFirst = column;\n }\n if (!column.hidden && (!columnLast || column.order > columnLast.order)) {\n columnLast = column;\n }\n });\n return {\n columnFirst,\n columnLast\n };\n }\n getColumnSelector() {\n return this.columns.find(column => column.columnType === \"rich\" && column.richRowSelector);\n }\n adjustFreezeOrder() {\n const freezeStart = this.columns\n .filter(column => column.freeze === \"start\")\n .sort(this.fnSortByOrder);\n const noFreeze = this.columns\n .filter(column => column.freeze !== \"start\" && column.freeze !== \"end\")\n .sort(this.fnSortByOrder);\n const freezeEnd = this.columns\n .filter(column => column.freeze === \"end\")\n .sort(this.fnSortByOrder);\n let order = 1;\n freezeStart.forEach(column => (column.order = order++));\n noFreeze.forEach(column => (column.order = order++));\n freezeEnd.forEach(column => (column.order = order++));\n }\n defineColumns(columns) {\n columns.forEach(column => {\n this.defineColumnId(column);\n this.defineColumnIndex(column);\n this.defineColumnOrder(column);\n this.defineColumnSize(column);\n this.defineColumnDisplayObserver(column);\n this.defineColumnResizeObserver(column);\n this.defineColumnType(column);\n });\n }\n defineColumnId(column) {\n column.columnId ||= this.getColumnUniqueId();\n }\n defineColumnIndex(column) {\n column.physicalOrder = this.columns.indexOf(column) + 1;\n }\n defineColumnOrder(column) {\n column.order ||= column.physicalOrder;\n }\n defineColumnSize(column) {\n column.size ||= \"auto\";\n }\n defineColumnDisplayObserver(column) {\n if (column.displayObserverClass && !column.hidden) {\n const i = this.columnsDisplay.push(document.createElement(\"ch-grid-column-display\")) - 1;\n this.columnsDisplay[i].setAttribute(\"slot\", \"column-display\");\n this.columnsDisplay[i].setAttribute(\"class\", column.displayObserverClass);\n this.columnsDisplay[i].column = column;\n this.manager.grid.appendChild(this.columnsDisplay[i]);\n }\n }\n defineColumnResizeObserver(column) {\n this.columnResizeObserver.observe(column, { box: \"border-box\" });\n }\n defineColumnType(column) {\n switch (column.columnType) {\n case \"tree\":\n this.manager.grid\n .querySelectorAll(`ch-grid-cell:nth-child(${column.physicalOrder})`)\n .forEach((cell) => {\n cell.type = ChGridCellType.TreeNode;\n });\n break;\n case \"rich\":\n this.manager.grid\n .querySelectorAll(`ch-grid-cell:nth-child(${column.physicalOrder})`)\n .forEach((cell) => {\n cell.rowDrag = column.richRowDrag;\n cell.rowSelector = column.richRowSelector;\n cell.rowActions = column.richRowActions;\n cell.type = ChGridCellType.Rich;\n });\n break;\n }\n }\n defineColumnsVariables() {\n const root = this.manager.grid.getRootNode();\n const style = root.querySelector(\"#ch-grid-columns-variables\");\n if (!style ||\n parseInt(style.getAttribute(\"data-columns\")) < this.columns.length) {\n let selectors = \"\";\n for (let i = 1; i <= this.columns.length; i++) {\n selectors += `ch-grid-column:nth-child(${i}), ch-grid-cell:nth-child(${i}) {\n display: var(--ch-grid-column-${i}-display, flex);\n grid-column: var(--ch-grid-column-${i}-position, ${i});\n margin-inline-start: var(--ch-grid-column-${i}-margin-start);\n border-inline-start: var(--ch-grid-column-${i}-border-start);\n padding-inline-start: var(--ch-grid-column-${i}-padding-start);\n margin-inline-end: var(--ch-grid-column-${i}-margin-end);\n border-inline-end: var(--ch-grid-column-${i}-border-end);\n padding-inline-end: var(--ch-grid-column-${i}-padding-end);\n left: var(--ch-grid-column-${i}-left-freeze);\n right: var(--ch-grid-column-${i}-right-freeze);\n }\n ch-grid-column:nth-child(${i}) {\n transform: var(--ch-grid-column-${i}-transform);\n z-index: calc(var(--ch-grid-column-${i}-z-index-freeze, 0) + var(--ch-grid-column-z-index-head, 0) + var(--ch-grid-column-z-index-active, 0));\n }\n ch-grid-cell:nth-child(${i}) {\n transform: var(--ch-grid-virtual-scroller-position,) var(--ch-grid-column-${i}-transform,);\n z-index: calc(var(--ch-grid-column-${i}-z-index-freeze, 0) + var(--ch-grid-cell-z-index-active, 0));\n }\n ch-grid-cell:nth-child(${i})::before {\n content: var(--ch-grid-column-${i}-content);\n }\n `;\n }\n const styleInnerHTML = `@layer ch-grid {\n ${selectors}\n }`;\n if (style) {\n style.setAttribute(\"data-columns\", this.columns.length.toString());\n style.innerHTML = styleInnerHTML;\n }\n else if (root instanceof Document) {\n root.head.insertAdjacentHTML(\"beforeend\", `<style id=\"ch-grid-columns-variables\" data-columns=\"${this.columns.length}\">${styleInnerHTML}</style>`);\n }\n else if (root instanceof ShadowRoot) {\n const s = document.createElement(\"style\");\n s.id = \"ch-grid-columns-variables\";\n s.dataset.columns = this.columns.length.toString();\n s.innerText = styleInnerHTML;\n root.appendChild(s);\n }\n }\n }\n undefineColumns(columns) {\n columns.forEach(column => {\n this.columnResizeObserver.unobserve(column);\n this.columnsDisplay\n .filter(columnDisplay => columnDisplay.column === column)\n .forEach(item => {\n item.remove();\n });\n });\n }\n observeColumnset() {\n this.columnsetObserver.observe(this.manager.grid.querySelector(\"ch-grid-columnset\"), { childList: true });\n }\n reloadColumns() {\n const columns = Array.from(this.manager.grid.querySelectorAll(\"ch-grid-column\"));\n const columnsAdded = columns.filter(column => !this.columns.includes(column));\n const columnsRemoved = this.columns.filter(column => !columns.includes(column));\n if (columnsAdded.length || columnsRemoved.length) {\n this.columns = columns;\n this.undefineColumns(columnsRemoved);\n this.defineColumns(columnsAdded);\n this.defineColumnsVariables();\n this.adjustOrders();\n this.adjustBaseLayer();\n }\n }\n resizeColumnHandler(entries) {\n for (const entry of entries) {\n const column = entry.target;\n this.columnsWidth[column.physicalOrder - 1] = entry.contentRect.width;\n }\n this.manager.setColumnWidthVariables(this.columnsWidth);\n }\n getColumnUniqueId() {\n const uniqueId = Date.now().toString(36) + Math.random().toString(36).substring(2);\n return `ch-grid-column-auto-${uniqueId}`;\n }\n adjustOrders() {\n // adjust physicalOrder\n this.columns.forEach((column, i) => (column.physicalOrder = i + 1));\n // adjust order, preserving physicalOrder array\n [...this.columns].sort(this.fnSortByOrder).forEach((column, i) => {\n column.order = i + 1;\n });\n }\n adjustBaseLayer() {\n this.manager.setBaseLayer(this.columns.length);\n }\n fnSortByOrder(columnA, columnB) {\n if (columnA.order < columnB.order) {\n return -1;\n }\n if (columnA.order > columnB.order) {\n return 1;\n }\n return 0;\n }\n}\n//# sourceMappingURL=ch-grid-manager-columns.js.map\n","export class ChGridManagerSelection {\n manager;\n rangeStart;\n rangeValue;\n lastRowMarked;\n selectionStateNone = {\n rowFocused: null,\n rowsSelected: [],\n cellSelected: null\n };\n selecting;\n selectingRow;\n selectingCell;\n constructor(manager) {\n this.manager = manager;\n }\n select(state, row, cell, append, range, context) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n range = false;\n }\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n rowFocused = row;\n if (range) {\n const rangeRows = this.manager.getRowsRange(this.rangeStart ?? row, row);\n if (this.rangeValue) {\n if (append) {\n rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));\n }\n else {\n rowsSelected =\n rowsSelected.length === rangeRows.length ? rowsSelected : rangeRows;\n }\n cellSelected =\n cell ||\n row.getCell(cellSelected?.column || this.manager.getFirstColumn());\n }\n else {\n rowsSelected = rowsSelected.filter(rowSelected => !rangeRows.includes(rowSelected));\n cellSelected = null;\n }\n }\n else if (append) {\n this.rangeStart = row;\n this.rangeValue = !row.selected;\n if (rowsSelected.includes(row)) {\n rowsSelected = rowsSelected.filter(rowSelected => rowSelected !== row);\n cellSelected = null;\n }\n else {\n rowsSelected = [...rowsSelected, row];\n cellSelected =\n cell ||\n row.getCell(cellSelected?.column || this.manager.getFirstColumn());\n }\n }\n else {\n this.rangeStart = row;\n this.rangeValue = true;\n if (!(rowsSelected.length === 1 && rowsSelected[0] === row) &&\n !(context && rowsSelected.includes(row))) {\n rowsSelected = [row];\n }\n cellSelected =\n cell ||\n row.getCell(cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectAll(state, value = true) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n const rows = this.manager.getRows();\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (value) {\n rowFocused ??= this.manager.getFirstRow();\n rowsSelected = rows;\n cellSelected = rowFocused.getCell(state.cellSelected?.column || this.manager.getFirstColumn());\n }\n else {\n rowFocused ??= this.manager.getFirstRow();\n rowsSelected = [];\n cellSelected = null;\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectSet(state, row, cell, value = true) {\n let append = true;\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n rowFocused = row;\n if (value) {\n if (append) {\n rowsSelected = rowsSelected.includes(row)\n ? rowsSelected\n : [...rowsSelected, row];\n }\n else {\n rowsSelected = rowsSelected.includes(row) ? rowsSelected : [row];\n }\n cellSelected = cell;\n }\n else {\n rowsSelected = !rowsSelected.includes(row)\n ? rowsSelected\n : rowsSelected.filter(rowSelected => rowSelected !== row);\n cellSelected = null;\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectFirstRow(state, append) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n const firstRow = this.manager.getFirstRow();\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (firstRow) {\n if (append) {\n const rangeRows = this.manager.getRowsRange(rowFocused ?? firstRow, firstRow);\n rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));\n }\n else {\n rowsSelected = [firstRow];\n }\n rowFocused = firstRow;\n cellSelected = firstRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectPreviousRow(state, append) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n const previousRow = this.manager.getPreviousRow(state.rowFocused);\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (previousRow) {\n if (append) {\n const sortedRowsSelected = this.sortRowsSelected(rowsSelected);\n const isContiguousSelection = this.isContiguousSelection(sortedRowsSelected);\n if (isContiguousSelection && rowFocused === sortedRowsSelected[0]) {\n rowsSelected = [...rowsSelected, previousRow];\n }\n else if (isContiguousSelection &&\n rowFocused === sortedRowsSelected[sortedRowsSelected.length - 1]) {\n rowsSelected = rowsSelected.slice(0, -1);\n }\n else {\n rowsSelected = [rowFocused, previousRow];\n }\n }\n else {\n rowsSelected = [previousRow];\n }\n rowFocused = previousRow;\n cellSelected = previousRow.getCell(cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectNextRow(state, append) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n const nextRow = this.manager.getNextRow(state.rowFocused);\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (nextRow) {\n if (append) {\n const sortedRowsSelected = this.sortRowsSelected(rowsSelected);\n const isContiguousSelection = this.isContiguousSelection(sortedRowsSelected);\n if (isContiguousSelection &&\n rowFocused === sortedRowsSelected[sortedRowsSelected.length - 1]) {\n rowsSelected = [...rowsSelected, nextRow];\n }\n else if (isContiguousSelection &&\n rowFocused === sortedRowsSelected[0]) {\n rowsSelected = rowsSelected.slice(1);\n }\n else {\n rowsSelected = [rowFocused, nextRow];\n }\n }\n else {\n rowsSelected = [nextRow];\n }\n rowFocused = nextRow;\n cellSelected = nextRow.getCell(cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectLastRow(state, append) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n const firstRow = this.manager.getLastRow();\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (firstRow) {\n if (append) {\n const rangeRows = this.manager.getRowsRange(rowFocused ?? firstRow, firstRow);\n rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));\n }\n else {\n rowsSelected = [firstRow];\n }\n rowFocused = firstRow;\n cellSelected = firstRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectPreviousPageRow(state, append) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n const rows = this.manager.getRows();\n const rowsPerPage = this.manager.getRowsPerPage();\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n const previousPageRow = rows[Math.max(rows.indexOf(rowFocused) - rowsPerPage, 0)];\n if (previousPageRow) {\n if (append) {\n const rangeRows = this.manager.getRowsRange(rowFocused ?? previousPageRow, previousPageRow);\n rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));\n }\n else {\n rowsSelected =\n rowsSelected.length === 1 && rowsSelected[0] === previousPageRow\n ? rowsSelected\n : [previousPageRow];\n }\n rowFocused = previousPageRow;\n cellSelected = previousPageRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectNextPageRow(state, append) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n if (this.manager.grid.rowSelectionMode !== \"multiple\") {\n append = false;\n }\n const rows = this.manager.getRows();\n const rowsPerPage = this.manager.getRowsPerPage();\n let rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n const nextPageRow = rows[Math.min(rows.indexOf(rowFocused) + rowsPerPage, rows.length - 1)];\n if (nextPageRow) {\n if (append) {\n const rangeRows = this.manager.getRowsRange(rowFocused ?? nextPageRow, nextPageRow);\n rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));\n }\n else {\n rowsSelected =\n rowsSelected.length === 1 && rowsSelected[0] === nextPageRow\n ? rowsSelected\n : [nextPageRow];\n }\n rowFocused = nextPageRow;\n cellSelected = nextPageRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectPreviousCell(state) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n const rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (cellSelected) {\n const nextCell = this.manager.getPreviousCell(cellSelected);\n if (nextCell) {\n cellSelected = nextCell;\n }\n }\n else {\n if (!rowsSelected.includes(rowFocused)) {\n rowsSelected = [...rowsSelected, rowFocused];\n }\n cellSelected ||= rowFocused.getCell(this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n selectNextCell(state) {\n if (this.manager.grid.rowSelectionMode === \"none\") {\n return this.selectionStateNone;\n }\n const rowFocused = state.rowFocused;\n let rowsSelected = state.rowsSelected;\n let cellSelected = state.cellSelected;\n if (cellSelected) {\n const nextCell = this.manager.getNextCell(cellSelected);\n if (nextCell) {\n cellSelected = nextCell;\n }\n }\n else {\n if (!rowsSelected.includes(rowFocused)) {\n rowsSelected = [...rowsSelected, rowFocused];\n }\n cellSelected ||= rowFocused.getCell(this.manager.getFirstColumn());\n }\n return { rowFocused, rowsSelected, cellSelected };\n }\n markRow(row, checked, range, currentRowsMarked) {\n if (row) {\n if (range) {\n const value = !row.marked;\n const rows = this.manager.getRowsRange(this.lastRowMarked ?? row, row);\n this.lastRowMarked = row;\n if (value) {\n return currentRowsMarked.concat(rows.filter(row => !currentRowsMarked.includes(row)));\n }\n return currentRowsMarked.filter(row => !rows.includes(row));\n }\n this.lastRowMarked = row;\n if (checked && !currentRowsMarked.includes(row)) {\n return currentRowsMarked.concat([row]);\n }\n if (!checked && currentRowsMarked.includes(row)) {\n return currentRowsMarked.filter(r => r !== row);\n }\n }\n return currentRowsMarked;\n }\n markAllRows(value = true) {\n if (value) {\n return this.manager.getRows();\n }\n return [];\n }\n syncRowSelector(rows, previous = [], selectorMode) {\n const columnSelector = this.manager.columns.getColumnSelector();\n if (columnSelector?.richRowSelectorMode === selectorMode) {\n const indexColumnSelector = columnSelector.physicalOrder - 1;\n previous\n ?.filter(x => !rows.includes(x))\n .forEach(row => {\n row.marked = false;\n const cell = row.children[indexColumnSelector];\n cell.setSelectorChecked(false);\n });\n rows?.forEach(row => {\n row.marked = columnSelector.richRowSelectorMode === \"mark\";\n const cell = row.children[indexColumnSelector];\n cell.setSelectorChecked(true);\n });\n if (rows.length === 0) {\n columnSelector.richRowSelectorState = \"\";\n }\n else if (rows.length === this.manager.getRows().length) {\n columnSelector.richRowSelectorState = \"checked\";\n }\n else {\n columnSelector.richRowSelectorState = \"indeterminate\";\n }\n }\n }\n sortRowsSelected(rowsSelected) {\n const rows = Array.from(this.manager.grid.querySelectorAll(\"ch-grid-row\"));\n return rowsSelected.sort((rowA, rowB) => {\n const rowAIndex = rows.indexOf(rowA);\n const rowBIndex = rows.indexOf(rowB);\n if (rowAIndex < rowBIndex) {\n return -1;\n }\n if (rowAIndex > rowBIndex) {\n return 1;\n }\n return 0;\n });\n }\n isContiguousSelection(sortedRowsSelected) {\n const rows = Array.from(this.manager.grid.querySelectorAll(\"ch-grid-row\")).filter(row => row.isVisible());\n if (sortedRowsSelected.length === 0) {\n return false;\n }\n if (sortedRowsSelected.length === 1) {\n return true;\n }\n const startIndex = rows.indexOf(sortedRowsSelected[0]);\n const endIndex = rows.indexOf(sortedRowsSelected[sortedRowsSelected.length - 1]);\n return endIndex - startIndex + 1 === sortedRowsSelected.length;\n }\n}\n//# sourceMappingURL=ch-grid-manager-selection.js.map\n","export class ChGridManagerRowDrag {\n manager;\n row;\n rowIndex;\n rowShadow;\n dragMouseMoveFn = this.dragMouseMoveHandler.bind(this);\n constructor(manager) {\n this.manager = manager;\n }\n dragStart(row) {\n this.row = row;\n this.rowIndex = this.manager.getGridRowIndex(row);\n this.defineListeners();\n this.createRowShadow();\n this.floatRow();\n this.updateRowPosition();\n }\n dragMouseMoveHandler(eventInfo) {\n const target = eventInfo.target;\n const rowHover = target.closest(\"ch-grid-row\");\n if (rowHover &&\n rowHover.parentElement === this.row.parentElement &&\n rowHover.grid === this.manager.grid) {\n const rowHoverIndex = this.manager.getGridRowIndex(rowHover);\n const rowHoverGridPosition = rowHoverIndex + 2; // +1 RowHeaderColumn, +1 array start at 1\n const offsetPosition = this.rowIndex < rowHoverIndex ? -1 : 1;\n if (this.rowShadow.style.getPropertyValue(\"--row-shadow-row-start\") !==\n `${rowHoverGridPosition}`) {\n this.rowShadow.style.setProperty(\"--row-shadow-row-start\", `${rowHoverGridPosition}`);\n }\n else {\n this.rowShadow.style.setProperty(\"--row-shadow-row-start\", `${rowHoverGridPosition + offsetPosition}`);\n }\n this.updateRowPosition();\n }\n }\n dragMouseUpHandler() {\n document.removeEventListener(\"mousemove\", this.dragMouseMoveFn);\n const dropPosition = parseInt(this.rowShadow.style.getPropertyValue(\"--row-shadow-row-start\"));\n const rowDrop = this.manager.grid\n .querySelectorAll(\"ch-grid-row\")\n .item(dropPosition - 2);\n if (dropPosition < this.rowIndex + 2) {\n rowDrop.before(this.row);\n }\n if (dropPosition > this.rowIndex + 2) {\n rowDrop.after(this.row);\n }\n this.unfloatRow();\n this.rowShadow.remove();\n this.row = null;\n this.rowShadow = null;\n }\n defineListeners() {\n document.addEventListener(\"mousemove\", this.dragMouseMoveFn, {\n passive: true\n });\n document.addEventListener(\"mouseup\", this.dragMouseUpHandler.bind(this), {\n once: true\n });\n }\n createRowShadow() {\n const rowHeight = this.manager.getRowHeight(this.row);\n this.rowShadow = document.createElement(\"div\");\n this.rowShadow.style.display = \"contents\";\n this.manager.getColumnsWidth().forEach(width => {\n const column = document.createElement(\"div\");\n column.style.opacity = \"0\";\n column.style.minWidth = width;\n column.style.height = `${rowHeight}px`;\n column.style.gridRowStart = \"var(--row-shadow-row-start)\";\n this.rowShadow.append(column);\n });\n }\n floatRow() {\n const columnsWidth = this.manager.getColumnsWidth();\n const rowWidth = this.manager.gridLayout.clientWidth;\n this.row.before(this.rowShadow);\n this.row.setAttribute(\"dragging\", \"\");\n this.row.style.width = `${rowWidth}px`;\n this.row\n .querySelectorAll(\":scope > ch-grid-cell\")\n .forEach((cell, i) => {\n const columnPosition = parseInt(this.manager.gridLayout.style.getPropertyValue(`--ch-grid-column-${i + 1}-position`));\n if (!cell.hidden) {\n cell.style.width = columnsWidth[columnPosition - 1];\n cell.style.order = `${columnPosition}`;\n }\n });\n }\n unfloatRow() {\n this.row.removeAttribute(\"dragging\");\n this.row.style.width = \"\";\n this.row\n .querySelectorAll(\":scope > ch-grid-cell\")\n .forEach((cell) => {\n cell.style.width = \"\";\n cell.style.order = \"\";\n });\n }\n updateRowPosition() {\n const rect = this.rowShadow.children[0].getBoundingClientRect();\n this.row.style.top = `${rect.top}px`;\n this.row.style.left = `${rect.left}px`;\n }\n}\n//# sourceMappingURL=ch-grid-manager-row-drag.js.map\n","export class ChGridManagerRowActions {\n manager;\n showOnRowHover;\n showOnRowActions;\n showOnRowContext;\n constructor(manager) {\n this.manager = manager;\n this.manager.grid\n .querySelectorAll(\"ch-grid-row-actions\")\n ?.forEach(rowActions => {\n if (rowActions.showOnRowHover) {\n this.showOnRowHover = rowActions;\n }\n if (rowActions.showOnRowActions) {\n this.showOnRowActions = rowActions;\n }\n if (rowActions.showOnRowContext) {\n this.showOnRowContext = rowActions;\n }\n });\n }\n}\n//# sourceMappingURL=ch-grid-manager-row-actions.js.map\n","export class ChGridManagerColumnResize {\n manager;\n column;\n columnWidthStart;\n columnSizeStart;\n columnAfter;\n columnAfterWidthStart;\n columnAfterSizeStart;\n dragDirection;\n resizingFn;\n resizeEndFn;\n constructor(manager, columnId, isRTL) {\n this.manager = manager;\n this.dragDirection = isRTL ? -1 : 1;\n if (this.manager.grid.columnResizeMode === \"splitter\") {\n this.resizingFn = this.resizingSplitter;\n this.resizeEndFn = this.resizeEndSplitter;\n }\n else {\n this.resizingFn = this.resizingSingle;\n this.resizeEndFn = null;\n }\n this.column = this.manager.columns.getColumn(columnId);\n this.columnWidthStart = this.column.getBoundingClientRect().width;\n this.columnSizeStart = this.parseCSSValue(this.column.size);\n this.columnAfter = this.manager.getNextColumn(this.column);\n this.columnAfterWidthStart =\n this.columnAfter?.getBoundingClientRect().width;\n this.columnAfterSizeStart = this.parseCSSValue(this.columnAfter.size);\n }\n resizing(deltaWidth) {\n this.resizingFn(deltaWidth);\n }\n resizeEnd() {\n if (this.resizeEndFn) {\n this.resizeEndFn();\n }\n }\n resizingSingle = (deltaWidth) => {\n const columnWidth = this.columnWidthStart - deltaWidth * this.dragDirection;\n if (columnWidth >= 0) {\n this.column.size = `minmax(min-content, ${columnWidth}px)`;\n }\n };\n resizingSplitter = (deltaWidth) => {\n const columnWidth = this.columnWidthStart - deltaWidth * this.dragDirection;\n if (columnWidth >= 0) {\n if (this.columnSizeStart) {\n this.column.size = this.convertUnit(this.columnSizeStart, this.columnWidthStart, columnWidth);\n }\n else {\n this.column.size = `minmax(min-content, ${columnWidth}px)`;\n }\n }\n if (this.columnAfter) {\n const columnAfterWidth = this.columnAfterWidthStart + deltaWidth * this.dragDirection;\n if (columnAfterWidth >= 0) {\n if (this.columnAfterSizeStart) {\n this.columnAfter.size = this.convertUnit(this.columnAfterSizeStart, this.columnAfterWidthStart, columnAfterWidth);\n }\n else {\n this.columnAfter.size = `minmax(min-content, ${columnAfterWidth}px)`;\n }\n }\n }\n };\n resizeEndSplitter() {\n const columnWidthEnd = this.column.getBoundingClientRect().width;\n this.column.size = this.convertUnit(this.columnSizeStart, this.columnWidthStart, columnWidthEnd);\n if (this.columnAfter) {\n const columnAfterWidthEnd = this.columnAfterWidthStart - (columnWidthEnd - this.columnWidthStart);\n this.columnAfter.size = this.convertUnit(this.columnSizeStart, this.columnWidthStart, columnAfterWidthEnd);\n }\n }\n parseCSSValue(cssValue) {\n const match = cssValue.match(/([+-]?[\\d.]+)([\\w%]+)/);\n if (match) {\n const number = parseFloat(match[1]);\n const unit = match[2];\n return { number, unit };\n }\n return null;\n }\n convertUnit(startSize, startWidth, newWidth) {\n return `${(newWidth * startSize.number) / startWidth}${startSize.unit}`;\n }\n}\n//# sourceMappingURL=ch-grid-manager-column-resize.js.map\n","import { ChGridManagerColumnDrag } from \"./ch-grid-manager-column-drag\";\nimport { ChGridManagerColumns } from \"./ch-grid-manager-columns\";\nimport { ChGridManagerSelection } from \"./ch-grid-manager-selection\";\nimport { ChGridManagerRowDrag } from \"./ch-grid-manager-row-drag\";\nimport { ChGridManagerRowActions } from \"./ch-grid-manager-row-actions\";\nimport { adoptGlobalStyleSheet } from \"../style/ch-global-stylesheet\";\nimport { ChGridManagerColumnResize } from \"./ch-grid-manager-column-resize\";\nvar StyleRule;\n(function (StyleRule) {\n StyleRule[StyleRule[\"BASE_LAYER\"] = 0] = \"BASE_LAYER\";\n StyleRule[StyleRule[\"COLUMNS_WIDTH\"] = 1] = \"COLUMNS_WIDTH\";\n})(StyleRule || (StyleRule = {}));\nexport class ChGridManager {\n styleSheet = new CSSStyleSheet();\n gridLayoutElement;\n columnDragManager;\n columnResizeManager;\n rowDragManager;\n grid;\n selection;\n columns;\n rowActions;\n constructor(grid) {\n this.grid = grid;\n this.styleSheet.insertRule(`:host {}`, StyleRule.BASE_LAYER);\n this.styleSheet.insertRule(\".main {}\", StyleRule.COLUMNS_WIDTH);\n this.grid.shadowRoot.adoptedStyleSheets.push(this.styleSheet);\n adoptGlobalStyleSheet(this.grid.shadowRoot.adoptedStyleSheets);\n this.columns = new ChGridManagerColumns(this);\n this.selection = new ChGridManagerSelection(this);\n this.rowActions = new ChGridManagerRowActions(this);\n }\n get gridLayout() {\n return this.gridLayoutElement;\n }\n componentDidLoad(gridLayout) {\n this.gridLayoutElement = gridLayout;\n }\n getColumns() {\n return this.columns.getColumns();\n }\n getColumnsWidth() {\n return getComputedStyle(this.gridLayout).gridTemplateColumns.split(\" \");\n }\n getColumnsetHeight() {\n const gridColumnsHeight = getComputedStyle(this.gridLayout).gridTemplateRows.split(\" \");\n return parseInt(gridColumnsHeight[0]) || 0;\n }\n getFirstColumn() {\n return this.columns.getColumnsFirstLast().columnFirst;\n }\n getFirstRow() {\n return this.grid.querySelector(\"ch-grid-row\");\n }\n getScrollOffsetTop() {\n return this.gridLayout.offsetTop + this.getColumnsetHeight();\n }\n getScrollOffsetLeft() {\n return this.columns.getColumns(true).reduce((offsetRight, column) => {\n return column.freeze === \"start\" && !column.hidden\n ? offsetRight + column.offsetWidth\n : offsetRight;\n }, 0);\n }\n getScrollOffsetRight() {\n return this.columns.getColumns(true).reduce((offsetRight, column) => {\n return column.freeze === \"end\" && !column.hidden\n ? offsetRight + column.offsetWidth\n : offsetRight;\n }, 0);\n }\n getPreviousRow(current) {\n const rows = this.getRows();\n const i = rows.indexOf(current);\n return rows\n .slice(0, i)\n .reverse()\n .find(row => row.isVisible());\n }\n getNextRow(current) {\n const rows = this.getRows();\n const i = rows.indexOf(current);\n return rows.slice(i + 1).find(row => row.isVisible());\n }\n getLastRow() {\n const rows = this.getRows();\n return rows.reverse().find(row => row.isVisible());\n }\n getPreviousColumn(column) {\n return this.columns.getColumns().reduce((previous, current) => {\n return current.order < column.order &&\n !current.hidden &&\n (!previous || current.order > previous.order)\n ? current\n : previous;\n }, null);\n }\n getNextColumn(column) {\n return this.columns.getColumns().reduce((previous, current) => {\n return current.order > column.order &&\n !current.hidden &&\n (!previous || current.order < previous.order)\n ? current\n : previous;\n }, null);\n }\n getPreviousCell(current) {\n const previousColumn = this.getPreviousColumn(current.column);\n if (previousColumn) {\n return current.row.querySelector(`:scope > ch-grid-cell:nth-of-type(${previousColumn.physicalOrder})`);\n }\n }\n getNextCell(current) {\n const nextColumn = this.getNextColumn(current.column);\n if (nextColumn) {\n return current.row.querySelector(`:scope > ch-grid-cell:nth-of-type(${nextColumn.physicalOrder})`);\n }\n }\n getGridRowIndex(row) {\n return Array.prototype.indexOf.call(this.grid.querySelectorAll(\"ch-grid-row, ch-grid-rowset-legend\"), row);\n }\n getRowsetRowIndex(row) {\n return Array.prototype.indexOf.call(row.parentElement.children, row);\n }\n getRowHeight(row) {\n const gridRowsHeight = getComputedStyle(this.gridLayout).gridTemplateRows.split(\" \");\n const rowIndex = this.getGridRowIndex(row) + 1;\n return parseInt(gridRowsHeight[rowIndex]) || 0;\n }\n getRowsPerPage() {\n const gridHeight = this.gridLayout.clientHeight;\n const columnsHeight = this.getColumnsetHeight();\n const rowHeight = this.getRowHeight(this.getFirstRow());\n return Math.floor((gridHeight - columnsHeight) / rowHeight);\n }\n getRow(rowId) {\n return this.grid.querySelector(`ch-grid-row[rowid=\"${rowId}\"]`);\n }\n getRows(state = \"all\") {\n const rows = Array.from(this.grid.querySelectorAll(`ch-grid-row`));\n if (state === \"visible\") {\n return rows.filter(row => row.isVisible());\n }\n return rows;\n }\n getRowsSelected() {\n return Array.from(this.grid.querySelectorAll(`ch-grid-row[selected]`));\n }\n getRowsRange(start, end) {\n const rows = this.getRows();\n const indexStart = rows.indexOf(start);\n const indexEnd = rows.indexOf(end);\n return rows\n .slice(Math.min(indexStart, indexEnd), Math.max(indexStart, indexEnd) + 1)\n .filter(row => row.isVisible());\n }\n getRowEventTarget(eventInfo) {\n return eventInfo\n .composedPath()\n .find((target) => target.tagName === \"CH-GRID-ROW\");\n }\n isRowActionsEventTarget(eventInfo) {\n return (eventInfo\n .composedPath()\n .find((target) => target.tagName === \"CH-GRID-ROW-ACTIONS\") != null);\n }\n getCell(cellId, rowId, columnId) {\n if (cellId) {\n return this.grid.querySelector(`ch-grid-cell[cellid=\"${cellId}\"]`);\n }\n if (rowId && columnId) {\n const row = this.getRow(rowId);\n const column = this.columns.getColumn(columnId);\n if (row && column) {\n return row.getCell(column);\n }\n }\n }\n getCellEventTarget(eventInfo) {\n return eventInfo\n .composedPath()\n .find((target) => target.tagName === \"CH-GRID-CELL\");\n }\n columnDragStart(columnId) {\n this.columnDragManager = new ChGridManagerColumnDrag(columnId, this.columns.getColumns(), this.isRTLDirection());\n }\n columnDragging(position) {\n return this.columnDragManager.dragging(position);\n }\n columnDragEnd() {\n this.columnDragManager.dragEnd();\n this.columnDragManager = null;\n }\n columnResizeStart(columnId) {\n this.columnResizeManager = new ChGridManagerColumnResize(this, columnId, this.isRTLDirection());\n }\n columnResizing(deltaWidth) {\n this.columnResizeManager.resizing(deltaWidth);\n }\n columnResizeEnd() {\n this.columnResizeManager.resizeEnd();\n this.columnResizeManager = null;\n }\n rowDragStart(row) {\n this.rowDragManager = new ChGridManagerRowDrag(this);\n this.rowDragManager.dragStart(row);\n }\n getGridStyle() {\n return {\n display: \"grid\",\n ...this.getGridTemplateColumns(),\n ...this.getRowBoxSimulationStyle(),\n ...this.getDragTransitionStyle(),\n ...this.getColumnsStyle()\n };\n }\n setBaseLayer(value) {\n this.styleSheet.deleteRule(StyleRule.BASE_LAYER);\n this.styleSheet.insertRule(`:host { --ch-grid-base-layer: ${value}; }`, StyleRule.BASE_LAYER);\n }\n setColumnWidthVariables(columnsWidth) {\n this.styleSheet.deleteRule(StyleRule.COLUMNS_WIDTH);\n this.styleSheet.insertRule(`.main { ${columnsWidth\n .map((columnWidth, columnIndex) => `--ch-grid-column-${columnIndex + 1}-width:${columnWidth}px;`)\n .join(\"\\n\")} }`, StyleRule.COLUMNS_WIDTH);\n }\n ensureRowVisible(row) {\n let node = row.parentElement.closest(\"ch-grid-row, ch-grid-rowset\");\n const { columnFirst } = this.columns.getColumnsFirstLast();\n while (node) {\n node.collapsed = false;\n node = node.parentElement.closest(\"ch-grid-row, ch-grid-rowset\");\n }\n if (row.children[columnFirst.physicalOrder]) {\n this.ensureVisible(row.children[columnFirst.physicalOrder]);\n }\n }\n ensureCellVisible(cell) {\n let node = cell.closest(\"ch-grid-row, ch-grid-rowset\");\n while (!cell.isVisible() && node) {\n node.collapsed = false;\n node = node.parentElement.closest(\"ch-grid-row, ch-grid-rowset\");\n }\n if (!cell.isVisible()) {\n cell.column.hidden = false;\n }\n this.ensureVisible(cell);\n }\n ensureVisible(cell) {\n const isColumnFreeze = [\"start\", \"end\"].includes(cell.column.freeze);\n const scroll = this.gridLayout;\n const scrollOffsetTop = this.getScrollOffsetTop();\n const scrollOffsetLeft = this.getScrollOffsetLeft();\n const scrollOffsetRight = this.getScrollOffsetRight();\n if (scroll.scrollTop + scrollOffsetTop > cell.offsetTop) {\n scroll.scrollBy({\n top: (scroll.scrollTop - cell.offsetTop + scrollOffsetTop) * -1\n });\n }\n else if (scroll.scrollTop + scroll.offsetHeight <\n cell.offsetTop + cell.offsetHeight) {\n scroll.scrollBy({\n top: cell.offsetTop +\n cell.offsetHeight -\n (scroll.scrollTop + scroll.offsetHeight)\n });\n }\n else if (scroll.scrollLeft + scrollOffsetLeft > cell.offsetLeft &&\n !isColumnFreeze) {\n scroll.scrollBy({\n left: (scroll.scrollLeft - cell.offsetLeft + scrollOffsetLeft) * -1\n });\n }\n else if (scroll.scrollLeft + scroll.clientWidth - scrollOffsetRight <\n cell.offsetLeft + cell.offsetWidth &&\n !isColumnFreeze) {\n scroll.scrollBy({\n left: cell.offsetLeft +\n cell.offsetWidth -\n (scroll.scrollLeft + scroll.clientWidth - scrollOffsetRight)\n });\n }\n }\n getGridTemplateColumns() {\n return {\n \"grid-template-columns\": this.columns\n .getColumns()\n .map(column => `var(--ch-grid-column-${column.physicalOrder}-size)`)\n .join(\" \")\n };\n }\n getRowBoxSimulationStyle() {\n const { columnFirst, columnLast } = this.columnDragManager\n ? this.columnDragManager.getColumnsFirstLast()\n : this.columns.getColumnsFirstLast();\n if (!columnFirst || !columnLast) {\n return null;\n }\n return {\n [`--ch-grid-column-${columnFirst.physicalOrder}-margin-start`]: \"var(--ch-grid-fallback, inherit)\",\n [`--ch-grid-column-${columnFirst.physicalOrder}-border-start`]: \"var(--ch-grid-fallback, inherit)\",\n [`--ch-grid-column-${columnFirst.physicalOrder}-padding-start`]: \"var(--ch-grid-fallback, inherit)\",\n [`--ch-grid-column-${columnLast.physicalOrder}-margin-end`]: \"var(--ch-grid-fallback, inherit)\",\n [`--ch-grid-column-${columnLast.physicalOrder}-border-end`]: \"var(--ch-grid-fallback, inherit)\",\n [`--ch-grid-column-${columnLast.physicalOrder}-padding-end`]: \"var(--ch-grid-fallback, inherit)\"\n };\n }\n getDragTransitionStyle() {\n return {\n \"--column-drag-transition-duration\": this.columnDragManager ? \".2s\" : \"0s\"\n };\n }\n getColumnsStyle() {\n return this.columns.getColumns().reduce((style, column) => {\n return {\n ...style,\n ...this.getColumnStyle(column)\n };\n }, {});\n }\n getColumnStyle(column) {\n return {\n ...this.getColumnSizeStyle(column),\n ...this.getColumnOrderStyle(column),\n ...this.getColumnDisplayStyle(column),\n ...this.getColumnFreezeStyle(column),\n ...this.getColumnDraggingStyle(column),\n ...this.getColumnIndentStyle(column)\n };\n }\n getColumnSizeStyle(column) {\n return {\n [`--ch-grid-column-${column.order}-size`]: column.hidden\n ? \"0px\"\n : column.size\n };\n }\n getColumnOrderStyle(column) {\n return {\n [`--ch-grid-column-${column.physicalOrder}-position`]: column.order.toString()\n };\n }\n getColumnFreezeStyle(column) {\n switch (column.freeze) {\n case \"start\":\n return this.getColumnFreezeStartStyle(column);\n case \"end\":\n return this.getColumnFreezeEndStyle(column);\n }\n }\n getColumnFreezeStartStyle(column) {\n const calcItems = [\"0px\"];\n for (let i = 1; i < column.order; i++) {\n calcItems.push(`var(--ch-grid-column-${i}-width)`);\n }\n return {\n [`--ch-grid-column-${column.physicalOrder}-left-freeze`]: `calc(${calcItems.join(\" + \")})`,\n [`--ch-grid-column-${column.physicalOrder}-z-index-freeze`]: \"var(--ch-grid-column-freeze-layer)\"\n };\n }\n getColumnFreezeEndStyle(column) {\n const calcItems = [\"0px\"];\n for (let i = this.columns.getColumns().length; i > column.order; i--) {\n calcItems.push(`var(--ch-grid-column-${i}-width)`);\n }\n return {\n [`--ch-grid-column-${column.physicalOrder}-right-freeze`]: `calc(${calcItems.join(\" + \")})`,\n [`--ch-grid-column-${column.physicalOrder}-z-index-freeze`]: \"var(--ch-grid-column-freeze-layer)\"\n };\n }\n getColumnDisplayStyle(column) {\n return column.hidden\n ? {\n [`--ch-grid-column-${column.physicalOrder}-display`]: \"none\"\n }\n : null;\n }\n getColumnDraggingStyle(column) {\n return this.columnDragManager\n ? this.columnDragManager.getColumnStyle(column)\n : null;\n }\n getColumnIndentStyle(column) {\n return {\n [`--ch-grid-column-${column.physicalOrder}-content`]: column.order === 1 ? \"''\" : \"none\"\n };\n }\n isRTLDirection() {\n return getComputedStyle(this.grid).direction === \"rtl\";\n }\n}\n//# sourceMappingURL=ch-grid-manager.js.map\n",":host {\n display: flex;\n position: relative;\n flex-direction: column;\n inline-size: 100%;\n --ch-grid-cell-active-layer: calc(var(--ch-grid-base-layer) * 1);\n --ch-grid-column-header-layer: calc(var(--ch-grid-base-layer) * 2);\n --ch-grid-column-freeze-layer: calc(var(--ch-grid-base-layer) * 4);\n --ch-grid-column-active-layer: calc(var(--ch-grid-base-layer) * 8);\n --ch-grid-settings-layer: calc(var(--ch-grid-base-layer) * 16);\n}\n\n.main {\n display: none;\n grid-auto-flow: dense; /* necesario para poder reordenar las columnas */\n grid-auto-rows: max-content;\n overflow-x: auto;\n user-select: none;\n block-size: 100%;\n}","import \"./grid-row/ch-grid-row\";\nimport \"./grid-rowset/ch-grid-rowset\";\nimport \"./grid-cell/ch-grid-cell\";\nimport { Host, h } from \"@stencil/core\";\nimport { ChGridManager } from \"./ch-grid-manager\";\nimport { MouseEventButton, MouseEventButtons, focusComposedPath, mouseEventHasButtonPressed, mouseEventModifierKey } from \"../common/helpers\";\n/**\n * The `ch-grid` component represents a Grid/TreeGrid of data, with rows and cells.\n */\nexport class ChGrid {\n constructor() {\n this.rowFocused = undefined;\n this.rowHighlighted = undefined;\n this.rowsMarked = [];\n this.rowsSelected = [];\n this.cellSelected = undefined;\n this.gridStyle = undefined;\n this.rowSelectionMode = \"single\";\n this.rowHighlightEnabled = \"auto\";\n this.rowSelectedClass = undefined;\n this.rowHighlightedClass = undefined;\n this.rowFocusedClass = undefined;\n this.rowMarkedClass = undefined;\n this.allowColumnReorder = true;\n this.columnResizeMode = \"single\";\n this.localization = undefined;\n }\n manager;\n gridLayoutElement;\n settingsUI;\n el;\n rowFocusedHandler(row, previous) {\n if (row) {\n row.focused = true;\n }\n if (previous) {\n previous.focused = false;\n }\n }\n rowHighlightedHandler(row, previous) {\n // highlight\n if (row) {\n row.highlighted = true;\n }\n if (previous) {\n previous.highlighted = false;\n }\n // actions\n if (row) {\n this.manager.rowActions.showOnRowHover?.openRowHover(row);\n }\n else {\n this.manager.rowActions.showOnRowHover?.close();\n }\n }\n rowsMarkedHandler(rows, previous) {\n this.manager.selection.syncRowSelector(rows, previous, \"mark\");\n this.rowMarkingChanged.emit({\n rowsId: rows.map(row => row.rowId),\n addedRowsId: rows\n .filter(row => !previous.includes(row))\n .map(row => row.rowId),\n removedRowsId: previous\n .filter(row => !rows.includes(row))\n .map(row => row.rowId),\n unalteredRowsId: rows\n .filter(row => previous.includes(row))\n .map(row => row.rowId)\n });\n }\n rowsSelectedHandler(rows, previous) {\n if (previous) {\n previous\n .filter(row => !rows.includes(row))\n .forEach(row => (row.selected = false));\n }\n if (rows) {\n rows.forEach(row => (row.selected = true));\n }\n this.manager.selection.syncRowSelector(rows, previous, \"select\");\n this.selectionChanged.emit({ rowsId: rows.map(row => row.rowId) });\n }\n cellSelectedHandler(cell, previous) {\n if (cell) {\n cell.selected = true;\n }\n if (previous) {\n previous.selected = false;\n }\n this.cellSelectionChanged.emit({\n cellId: this.cellSelected ? this.cellSelected.cellId : null,\n rowId: this.cellSelected ? this.cellSelected.row.rowId : null,\n columnId: this.cellSelected ? this.cellSelected.column.columnId : null\n });\n }\n /**\n * Event emitted when the row selection is changed.\n */\n selectionChanged;\n /**\n * Event emitted when the row marking is changed.\n */\n rowMarkingChanged;\n /**\n * Event emitted when the cell selection is changed.\n */\n cellSelectionChanged;\n /**\n * Event emitted when a row is clicked.\n */\n rowClicked;\n /**\n * Event emitted when a row is double clicked.\n */\n rowDoubleClicked;\n /**\n * Event emitted when Enter is pressed on a row.\n */\n rowEnterPressed;\n /**\n * Event emitted when attempts to open a context menu on a row.\n */\n rowContextMenu;\n componentWillLoad() {\n this.manager = new ChGridManager(this.el);\n this.gridStyle = this.manager.getGridStyle();\n this.rowsSelected = this.manager.getRowsSelected();\n }\n componentDidLoad() {\n this.manager.componentDidLoad(this.gridLayoutElement);\n }\n componentShouldUpdate(_newValue, _oldValue, name) {\n if (name === \"rowFocused\" ||\n name === \"rowHighlighted\" ||\n name === \"rowSelected\" ||\n name === \"rowsMarked\" ||\n name === \"cellSelected\") {\n return false;\n }\n }\n focusHandler() {\n if (this.rowSelectionMode !== \"none\") {\n this.rowFocused = this.rowsSelected[0] || this.manager.getFirstRow();\n }\n }\n blurHandler() {\n this.rowFocused = null;\n }\n cellFocusedHandler(eventInfo) {\n const cell = eventInfo.target;\n if (this.rowSelectionMode !== \"none\" && !cell.selected) {\n this.setCellSelected(cell);\n }\n }\n windowKeyDownHandler(eventInfo) {\n if (focusComposedPath()[0] === this.el &&\n [\n \" \",\n \"+\",\n \"-\",\n \"Home\",\n \"End\",\n \"PageUp\",\n \"PageDown\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\"\n ].includes(eventInfo.key)) {\n eventInfo.preventDefault();\n }\n }\n keyDownHandler(eventInfo) {\n if (focusComposedPath()[0] === this.el) {\n switch (eventInfo.key) {\n case \" \":\n this.toggleRowsMarked();\n break;\n case \"+\":\n this.setRowCollapsed(this.rowFocused, false);\n break;\n case \"-\":\n this.setRowCollapsed(this.rowFocused, true);\n break;\n case \"Home\":\n this.selectByKeyboardEvent(this.manager.selection.selectFirstRow.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"End\":\n this.selectByKeyboardEvent(this.manager.selection.selectLastRow.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"PageUp\":\n this.selectByKeyboardEvent(this.manager.selection.selectPreviousPageRow.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"PageDown\":\n this.selectByKeyboardEvent(this.manager.selection.selectNextPageRow.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"ArrowUp\":\n this.selectByKeyboardEvent(this.manager.selection.selectPreviousRow.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"ArrowDown\":\n this.selectByKeyboardEvent(this.manager.selection.selectNextRow.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"ArrowLeft\":\n this.selectByKeyboardEvent(this.manager.selection.selectPreviousCell.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"ArrowRight\":\n this.selectByKeyboardEvent(this.manager.selection.selectNextCell.bind(this.manager.selection), eventInfo.shiftKey);\n break;\n case \"Enter\":\n this.enterPressedHandler();\n break;\n }\n }\n }\n mouseMoveHandler(eventInfo) {\n if ((this.rowHighlightEnabled === \"auto\" &&\n this.rowSelectionMode !== \"none\") ||\n this.rowHighlightEnabled === true) {\n this.rowHighlighted =\n this.manager.getRowEventTarget(eventInfo) ||\n (this.manager.isRowActionsEventTarget(eventInfo)\n ? this.rowHighlighted\n : null);\n }\n selectingBlock: {\n if (this.manager.selection.selecting) {\n if (focusComposedPath()[0] !== this.el) {\n this.stopSelecting();\n break selectingBlock;\n }\n const row = this.manager.getRowEventTarget(eventInfo);\n const cell = this.manager.getCellEventTarget(eventInfo);\n if (row &&\n (this.manager.selection.selectingRow !== row ||\n this.manager.selection.selectingCell !== cell)) {\n const isKeyModifierPressed = mouseEventModifierKey(eventInfo);\n const isMouseButtonRightPressed = mouseEventHasButtonPressed(eventInfo, MouseEventButtons.RIGHT);\n this.selectByPointerEvent(row, cell, isKeyModifierPressed && !isMouseButtonRightPressed, !isMouseButtonRightPressed, isMouseButtonRightPressed);\n this.manager.selection.selectingRow = row;\n this.manager.selection.selectingCell = cell;\n }\n }\n }\n }\n mouseLeaveHandler() {\n this.rowHighlighted &&= null;\n }\n clickHandler(eventInfo) {\n const row = this.manager.getRowEventTarget(eventInfo);\n const cell = this.manager.getCellEventTarget(eventInfo);\n if (row) {\n this.rowClicked.emit({\n rowId: row.rowId,\n cellId: cell?.cellId,\n columnId: cell?.column.columnId\n });\n this.manager.selection.selecting = true;\n this.selectByPointerEvent(row, cell, mouseEventModifierKey(eventInfo), eventInfo.shiftKey, eventInfo.button === MouseEventButton.RIGHT);\n }\n }\n mouseUpHandler() {\n this.stopSelecting();\n }\n dblclickHandler(eventInfo) {\n const row = this.manager.getRowEventTarget(eventInfo);\n const cell = this.manager.getCellEventTarget(eventInfo);\n if (row) {\n this.rowDoubleClicked.emit({\n rowId: row.rowId,\n cellId: cell?.cellId,\n columnId: cell?.column.columnId\n });\n }\n }\n contextmenuHandler(eventInfo) {\n let targetRow;\n if (eventInfo.target === this.el) {\n targetRow = this.rowFocused;\n }\n else {\n targetRow = this.manager.getRowEventTarget(eventInfo);\n }\n if (targetRow) {\n const cellFocused = this.cellSelected?.row === targetRow ? this.cellSelected : null;\n const rowContextMenuEventInfo = this.rowContextMenu.emit({\n rowId: targetRow.rowId,\n cellId: cellFocused?.cellId,\n columnId: cellFocused?.column.columnId,\n selectedRowsId: this.rowsSelected.map(row => row.rowId),\n clientX: eventInfo.clientX,\n clientY: eventInfo.clientY\n });\n this.manager.rowActions.showOnRowContext?.openRowContext(eventInfo.clientX, eventInfo.clientY);\n if (rowContextMenuEventInfo.defaultPrevented ||\n this.manager.rowActions.showOnRowContext) {\n eventInfo.preventDefault();\n }\n }\n }\n columnSelectorClickedHandler(eventInfo) {\n const columnSelector = this.manager.columns.getColumnSelector();\n if (columnSelector?.richRowSelectorMode === \"select\") {\n this.selectAll(eventInfo.detail.checked);\n }\n else if (columnSelector?.richRowSelectorMode === \"mark\") {\n this.rowsMarked = this.manager.selection.markAllRows(eventInfo.detail.checked);\n }\n }\n cellSelectorClickedHandler(eventInfo) {\n const columnSelector = this.manager.columns.getColumnSelector();\n if (columnSelector?.richRowSelectorMode === \"select\") {\n this.selectByPointerEvent(this.manager.getRowEventTarget(eventInfo), this.manager.getCellEventTarget(eventInfo), true, eventInfo.detail.range, false);\n }\n else if (columnSelector?.richRowSelectorMode === \"mark\") {\n this.rowsMarked = this.manager.selection.markRow(this.manager.getRowEventTarget(eventInfo), eventInfo.detail.checked, eventInfo.detail.range, this.rowsMarked);\n }\n }\n cellRowActionClickedHandler(eventInfo) {\n const cell = eventInfo.target;\n this.manager.rowActions.showOnRowActions?.openRowActions(cell);\n }\n columnStyleChangedHandler() {\n if (this.manager) {\n this.gridStyle = this.manager.getGridStyle();\n }\n }\n columnFreezeChangedHandler() {\n this.manager.columns.adjustFreezeOrder();\n }\n columnResizeStartedHandler(eventInfo) {\n this.manager.columnResizeStart(eventInfo.detail.columnId);\n }\n columnResizingHandler(eventInfo) {\n this.manager.columnResizing(eventInfo.detail.deltaWidth);\n }\n columnResizeFinishedHandler() {\n this.manager.columnResizeEnd();\n }\n columnDragStartHandler(eventInfo) {\n this.manager.columnDragStart(eventInfo.detail.columnId);\n }\n columnDraggingHandler(eventInfo) {\n if (this.manager.columnDragging(eventInfo.detail.positionX)) {\n this.gridStyle = this.manager.getGridStyle();\n }\n }\n columnDragEndHandler() {\n this.manager.columnDragEnd();\n this.gridStyle = this.manager.getGridStyle();\n }\n rowDragStartHandler(eventInfo) {\n this.manager.rowDragStart(eventInfo.detail.row);\n }\n rowEnsureVisibleHandler(eventInfo) {\n this.manager.ensureRowVisible(eventInfo.target);\n }\n cellEnsureVisibleHandler(eventInfo) {\n this.manager.ensureCellVisible(eventInfo.target);\n }\n settingsShowClickedHandler() {\n this.settingsUI.show = true;\n }\n settingsCloseClickedHandler() {\n this.settingsUI.show = false;\n }\n /**\n * Retrieves the rowId of the currently focused row.\n */\n async getFocusedRow() {\n return this.rowFocused?.rowId;\n }\n /**\n * Retrieves the rowId of the currently hovered row.\n */\n async getHoveredRow() {\n return this.rowHighlighted?.rowId;\n }\n /**\n * Retrieves the list of rowId of the selected rows.\n */\n async getSelectedRows() {\n return this.rowsSelected.map(row => row.rowId);\n }\n /**\n * Retrieves the list of rowId of the marked rows.\n */\n async getMarkedRows() {\n return this.rowsMarked.map(row => row.rowId);\n }\n /**\n * Retrieves information about the currently selected cell.\n */\n async getSelectedCell() {\n return {\n cellId: this.cellSelected ? this.cellSelected.cellId : null,\n rowId: this.cellSelected ? this.cellSelected.row.rowId : null,\n columnId: this.cellSelected ? this.cellSelected.column.columnId : null\n };\n }\n /**\n * Selects or deselects a row.\n * @param rowId - The rowId of the row to select or deselect.\n * @param selected - A boolean indicating whether to select or deselect the row.\n */\n async selectRow(rowId, selected = true) {\n const row = this.manager.getRow(rowId);\n if (row) {\n const { rowFocused, rowsSelected, cellSelected } = this.manager.selection.selectSet({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellSelected: this.cellSelected\n }, row, null, selected);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellSelected = cellSelected;\n rowFocused?.ensureVisible();\n }\n }\n /**\n * Selects or deselects all rows.\n * @param selected - A boolean indicating whether to select or deselect all rows.\n */\n async selectAllRows(selected = true) {\n this.selectAll(selected);\n }\n /**\n * Select or deselect a cell.\n * The cell can be identified by the cellId parameter or\n * by using the rowId and columnId pair.\n * @param cellId - The cellId of the cell to select or deselect.\n * @param rowId - The rowId of the row containing the cell.\n * @param columnId - The columnId of the column containing the cell.\n * @param selected - A boolean indicating whether to select or deselect the cell.\n */\n async selectCell(cellId, rowId, columnId, selected = true) {\n const cell = this.manager.getCell(cellId, rowId, columnId);\n if (cell) {\n this.setCellSelected(cell, selected);\n }\n }\n /**\n * Mark or unmark a row.\n * @param rowId - The rowId of the row to select or deselect.\n * @param marked - A boolean indicating whether to mark or unmark the row.\n */\n async markRow(rowId, marked = true) {\n const columnSelector = this.manager.columns.getColumnSelector();\n const row = this.manager.getRow(rowId);\n if (row && columnSelector?.richRowSelectorMode === \"mark\") {\n this.rowsMarked = this.manager.selection.markRow(row, marked, false, this.rowsMarked);\n }\n }\n /**\n * Mark or unmark all rows.\n * @param marked - A boolean indicating whether to mark or unmark all rows.\n */\n async markAllRows(marked = true) {\n const columnSelector = this.manager.columns.getColumnSelector();\n if (columnSelector?.richRowSelectorMode === \"mark\") {\n this.rowsMarked = this.manager.selection.markAllRows(marked);\n }\n }\n /**\n * Expands a row, showing its children.\n * @param rowId - The rowId of the row to expand.\n */\n async expandRow(rowId) {\n this.setRowCollapsed(this.manager.getRow(rowId), false);\n }\n /**\n * Collapses a row, hiding its children.\n * @param rowId - The rowId of the row to collapse.\n */\n async collapseRow(rowId) {\n this.setRowCollapsed(this.manager.getRow(rowId), true);\n }\n /**\n * Ensures that the row is visible within the control, scrolling the contents of the control if necessary.\n * @param rowId - The rowId of the row to ensure visibility.\n */\n async rowEnsureVisible(rowId) {\n const row = this.manager.getRow(rowId);\n if (row) {\n this.manager.ensureRowVisible(row);\n }\n }\n /**\n * Ensures that the cell is visible within the control, scrolling the contents of the control if necessary.\n * @param cellId - The cellId of the cell to ensure visibility.\n */\n async cellEnsureVisible(cellId) {\n const cell = this.manager.getCell(cellId);\n if (cell) {\n this.manager.ensureCellVisible(cell);\n }\n }\n /**\n * Retrieves the rowId of the previous row relative to the currently selected cell.\n */\n async getPreviousRow() {\n const currentRow = this.cellSelected?.row;\n if (currentRow) {\n return this.manager.getPreviousRow(currentRow)?.rowId || null;\n }\n }\n /**\n * Retrieves the rowId of the next row relative to the currently selected cell.\n */\n async getNextRow() {\n const currentRow = this.cellSelected?.row;\n if (currentRow) {\n return this.manager.getNextRow(currentRow)?.rowId || null;\n }\n }\n /**\n * Retrieves information about the previous cell relative to the currently selected cell.\n */\n async getPreviousCell() {\n const previousCell = this.manager.getPreviousCell(this.cellSelected);\n return {\n cellId: previousCell ? previousCell.cellId : null,\n rowId: previousCell ? previousCell.row.rowId : null,\n columnId: previousCell ? previousCell.column.columnId : null\n };\n }\n /**\n * Retrieves information about the next cell relative to the currently selected cell.\n */\n async getNextCell() {\n const nextCell = this.manager.getNextCell(this.cellSelected);\n return {\n cellId: nextCell ? nextCell.cellId : null,\n rowId: nextCell ? nextCell.row.rowId : null,\n columnId: nextCell ? nextCell.column.columnId : null\n };\n }\n enterPressedHandler() {\n if (this.rowFocused) {\n const cellFocused = this.cellSelected?.row === this.rowFocused ? this.cellSelected : null;\n this.rowEnterPressed.emit({\n rowId: this.rowFocused.rowId,\n cellId: cellFocused ? cellFocused.cellId : null,\n columnId: cellFocused ? cellFocused.column.columnId : null\n });\n }\n }\n toggleRowsMarked() {\n const columnSelector = this.manager.columns.getColumnSelector();\n if (columnSelector?.richRowSelectorMode === \"mark\") {\n const value = !this.rowFocused.marked;\n if (value) {\n this.rowsMarked = Array.from(new Set(this.rowsMarked.concat(this.rowsSelected)));\n }\n else {\n this.rowsMarked = this.rowsMarked.filter(row => !this.rowsSelected.includes(row));\n }\n }\n }\n selectByPointerEvent(row, cell, append, range, context) {\n const { rowFocused, rowsSelected, cellSelected } = this.manager.selection.select({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellSelected: this.cellSelected\n }, row, cell, append, range, context);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellSelected = cellSelected;\n if (cellSelected) {\n cellSelected.ensureVisible();\n }\n else {\n rowFocused?.ensureVisible();\n }\n }\n selectByKeyboardEvent(fn, append) {\n const { rowFocused, rowsSelected, cellSelected } = fn({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellSelected: this.cellSelected\n }, append);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellSelected = cellSelected;\n if (cellSelected) {\n cellSelected.ensureVisible();\n }\n else {\n rowFocused?.ensureVisible();\n }\n }\n selectAll(value = true) {\n const { rowFocused, rowsSelected, cellSelected } = this.manager.selection.selectAll({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellSelected: this.cellSelected\n }, value);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellSelected = cellSelected;\n if (cellSelected) {\n cellSelected.ensureVisible();\n }\n else {\n rowFocused?.ensureVisible();\n }\n }\n setRowCollapsed(row, collapsed) {\n if (row && collapsed) {\n if (row && row.hasChildRows) {\n row.collapsed = true;\n }\n }\n else if (row && !collapsed) {\n row.collapsed = false;\n }\n }\n setCellSelected(cell, selected = true) {\n const { rowFocused, rowsSelected, cellSelected } = this.manager.selection.selectSet({\n rowFocused: this.rowFocused,\n rowsSelected: this.rowsSelected,\n cellSelected: this.cellSelected\n }, cell.row, cell, selected);\n this.rowFocused = rowFocused;\n this.rowsSelected = rowsSelected;\n this.cellSelected = cellSelected;\n rowFocused?.ensureVisible();\n }\n stopSelecting() {\n this.manager.selection.selecting = false;\n this.manager.selection.selectingRow = null;\n this.manager.selection.selectingCell = null;\n }\n renderSettings() {\n return (h(\"ch-grid-settings\", { grid: this.el, ref: el => (this.settingsUI = el), exportparts: \"\\n mask:settings-mask,\\n window:settings-window,\\n header:settings-header,\\n caption:settings-caption,\\n close:settings-close,\\n main:settings-main,\\n footer:settings-footer\\n \" }, h(\"slot\", { name: \"settings\" }, h(\"ch-grid-settings-columns\", { part: \"settings-columns\", columns: [...this.manager.getColumns()], exportparts: \"\\n column:settings-columns-item,\\n column-label:settings-columns-label,\\n column-visible:settings-columns-visible,\\n column-visible-checked:settings-columns-visible-checked\\n \" }))));\n }\n render() {\n return (h(Host, { tabindex: this.rowSelectionMode !== \"none\" ? \"0\" : false }, h(\"header\", { part: \"header\" }, h(\"slot\", { name: \"header\" })), h(\"section\", { class: \"main\", style: this.gridStyle, part: \"main\", ref: el => (this.gridLayoutElement = el) }, h(\"slot\", null)), h(\"aside\", null, this.renderSettings(), h(\"slot\", { name: \"column-display\" }), h(\"slot\", { name: \"row-actions\" })), h(\"footer\", { part: \"footer\" }, h(\"slot\", { name: \"footer\" }))));\n }\n static get is() { return \"ch-grid\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid.css\"]\n };\n }\n static get properties() {\n return {\n \"rowSelectionMode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"none\\\" | \\\"single\\\" | \\\"multiple\\\"\",\n \"resolved\": \"\\\"multiple\\\" | \\\"none\\\" | \\\"single\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"none\\\", \\\"single\\\" or \\\"multiple\\\", indicating how rows can be selected.\\nIt can be set to \\\"none\\\" if no rows should be selectable,\\n\\\"single\\\" if only one row can be selected at a time, or\\n\\\"multiple\\\" if multiple rows can be selected at once.\"\n },\n \"attribute\": \"row-selection-mode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"single\\\"\"\n },\n \"rowHighlightEnabled\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean | \\\"auto\\\"\",\n \"resolved\": \"\\\"auto\\\" | boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"false\\\", \\\"true\\\" or \\\"auto\\\", indicating whether or not rows can be highlighted.\\n\\\"auto\\\", row highlighting will be enabled if the row selection mode is set to \\\"single\\\" or \\\"multiple\\\".\"\n },\n \"attribute\": \"row-highlight-enabled\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"auto\\\"\"\n },\n \"rowSelectedClass\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A CSS class name applied to a row when it is selected.\"\n },\n \"attribute\": \"row-selected-class\",\n \"reflect\": false\n },\n \"rowHighlightedClass\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A CSS class name applied to a row when it is hovered.\"\n },\n \"attribute\": \"row-highlighted-class\",\n \"reflect\": false\n },\n \"rowFocusedClass\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A CSS class name applied to a row when it is focused.\"\n },\n \"attribute\": \"row-focused-class\",\n \"reflect\": false\n },\n \"rowMarkedClass\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A CSS class name applied to a row when it is marked.\"\n },\n \"attribute\": \"row-marked-class\",\n \"reflect\": false\n },\n \"allowColumnReorder\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the user can drag column headers to reorder columns.\"\n },\n \"attribute\": \"allow-column-reorder\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"columnResizeMode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"single\\\" | \\\"splitter\\\"\",\n \"resolved\": \"\\\"single\\\" | \\\"splitter\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"single\\\" or \\\"splitter\\\", indicating the behavior of column resizing.\\n\\\"single\\\", resize a single column at a time.\\n\\\"splitter\\\", when adjusts the width of one column, the neighboring columns\\n are also resized proportionally, maintaining the overall width.\"\n },\n \"attribute\": \"column-resize-mode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"single\\\"\"\n },\n \"localization\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"GridLocalization\",\n \"resolved\": \"GridLocalization\",\n \"references\": {\n \"GridLocalization\": {\n \"location\": \"local\",\n \"path\": \"/home/runner/work/chameleon-controls-library/chameleon-controls-library/src/components/grid/ch-grid.tsx\",\n \"id\": \"src/components/grid/ch-grid.tsx::GridLocalization\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"An object that contains localized strings for the grid.\"\n }\n }\n };\n }\n static get states() {\n return {\n \"rowFocused\": {},\n \"rowHighlighted\": {},\n \"rowsMarked\": {},\n \"rowsSelected\": {},\n \"cellSelected\": {},\n \"gridStyle\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"selectionChanged\",\n \"name\": \"selectionChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the row selection is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridSelectionChangedEvent\",\n \"resolved\": \"ChGridSelectionChangedEvent\",\n \"references\": {\n \"ChGridSelectionChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridSelectionChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"rowMarkingChanged\",\n \"name\": \"rowMarkingChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the row marking is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridMarkingChangedEvent\",\n \"resolved\": \"ChGridMarkingChangedEvent\",\n \"references\": {\n \"ChGridMarkingChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridMarkingChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"cellSelectionChanged\",\n \"name\": \"cellSelectionChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the cell selection is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridCellSelectionChangedEvent\",\n \"resolved\": \"ChGridCellSelectionChangedEvent\",\n \"references\": {\n \"ChGridCellSelectionChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridCellSelectionChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"rowClicked\",\n \"name\": \"rowClicked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when a row is clicked.\"\n },\n \"complexType\": {\n \"original\": \"ChGridRowClickedEvent\",\n \"resolved\": \"ChGridRowClickedEvent\",\n \"references\": {\n \"ChGridRowClickedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridRowClickedEvent\"\n }\n }\n }\n }, {\n \"method\": \"rowDoubleClicked\",\n \"name\": \"rowDoubleClicked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when a row is double clicked.\"\n },\n \"complexType\": {\n \"original\": \"ChGridRowClickedEvent\",\n \"resolved\": \"ChGridRowClickedEvent\",\n \"references\": {\n \"ChGridRowClickedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridRowClickedEvent\"\n }\n }\n }\n }, {\n \"method\": \"rowEnterPressed\",\n \"name\": \"rowEnterPressed\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when Enter is pressed on a row.\"\n },\n \"complexType\": {\n \"original\": \"ChGridRowPressedEvent\",\n \"resolved\": \"ChGridRowPressedEvent\",\n \"references\": {\n \"ChGridRowPressedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridRowPressedEvent\"\n }\n }\n }\n }, {\n \"method\": \"rowContextMenu\",\n \"name\": \"rowContextMenu\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when attempts to open a context menu on a row.\"\n },\n \"complexType\": {\n \"original\": \"ChGridRowContextMenuEvent\",\n \"resolved\": \"ChGridRowContextMenuEvent\",\n \"references\": {\n \"ChGridRowContextMenuEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-types\",\n \"id\": \"src/components/grid/ch-grid-types.ts::ChGridRowContextMenuEvent\"\n }\n }\n }\n }];\n }\n static get methods() {\n return {\n \"getFocusedRow\": {\n \"complexType\": {\n \"signature\": \"() => Promise<string>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string>\"\n },\n \"docs\": {\n \"text\": \"Retrieves the rowId of the currently focused row.\",\n \"tags\": []\n }\n },\n \"getHoveredRow\": {\n \"complexType\": {\n \"signature\": \"() => Promise<string>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string>\"\n },\n \"docs\": {\n \"text\": \"Retrieves the rowId of the currently hovered row.\",\n \"tags\": []\n }\n },\n \"getSelectedRows\": {\n \"complexType\": {\n \"signature\": \"() => Promise<string[]>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string[]>\"\n },\n \"docs\": {\n \"text\": \"Retrieves the list of rowId of the selected rows.\",\n \"tags\": []\n }\n },\n \"getMarkedRows\": {\n \"complexType\": {\n \"signature\": \"() => Promise<string[]>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string[]>\"\n },\n \"docs\": {\n \"text\": \"Retrieves the list of rowId of the marked rows.\",\n \"tags\": []\n }\n },\n \"getSelectedCell\": {\n \"complexType\": {\n \"signature\": \"() => Promise<{ cellId: string; rowId: string; columnId: string; }>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<{ cellId: string; rowId: string; columnId: string; }>\"\n },\n \"docs\": {\n \"text\": \"Retrieves information about the currently selected cell.\",\n \"tags\": []\n }\n },\n \"selectRow\": {\n \"complexType\": {\n \"signature\": \"(rowId: string, selected?: boolean) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"rowId\",\n \"type\": \"string\",\n \"docs\": \"- The rowId of the row to select or deselect.\"\n }, {\n \"name\": \"selected\",\n \"type\": \"boolean\",\n \"docs\": \"- A boolean indicating whether to select or deselect the row.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Selects or deselects a row.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"rowId - The rowId of the row to select or deselect.\"\n }, {\n \"name\": \"param\",\n \"text\": \"selected - A boolean indicating whether to select or deselect the row.\"\n }]\n }\n },\n \"selectAllRows\": {\n \"complexType\": {\n \"signature\": \"(selected?: boolean) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"selected\",\n \"type\": \"boolean\",\n \"docs\": \"- A boolean indicating whether to select or deselect all rows.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Selects or deselects all rows.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"selected - A boolean indicating whether to select or deselect all rows.\"\n }]\n }\n },\n \"selectCell\": {\n \"complexType\": {\n \"signature\": \"(cellId?: string, rowId?: string, columnId?: string, selected?: boolean) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"cellId\",\n \"type\": \"string\",\n \"docs\": \"- The cellId of the cell to select or deselect.\"\n }, {\n \"name\": \"rowId\",\n \"type\": \"string\",\n \"docs\": \"- The rowId of the row containing the cell.\"\n }, {\n \"name\": \"columnId\",\n \"type\": \"string\",\n \"docs\": \"- The columnId of the column containing the cell.\"\n }, {\n \"name\": \"selected\",\n \"type\": \"boolean\",\n \"docs\": \"- A boolean indicating whether to select or deselect the cell.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Select or deselect a cell.\\nThe cell can be identified by the cellId parameter or\\nby using the rowId and columnId pair.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"cellId - The cellId of the cell to select or deselect.\"\n }, {\n \"name\": \"param\",\n \"text\": \"rowId - The rowId of the row containing the cell.\"\n }, {\n \"name\": \"param\",\n \"text\": \"columnId - The columnId of the column containing the cell.\"\n }, {\n \"name\": \"param\",\n \"text\": \"selected - A boolean indicating whether to select or deselect the cell.\"\n }]\n }\n },\n \"markRow\": {\n \"complexType\": {\n \"signature\": \"(rowId: string, marked?: boolean) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"rowId\",\n \"type\": \"string\",\n \"docs\": \"- The rowId of the row to select or deselect.\"\n }, {\n \"name\": \"marked\",\n \"type\": \"boolean\",\n \"docs\": \"- A boolean indicating whether to mark or unmark the row.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Mark or unmark a row.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"rowId - The rowId of the row to select or deselect.\"\n }, {\n \"name\": \"param\",\n \"text\": \"marked - A boolean indicating whether to mark or unmark the row.\"\n }]\n }\n },\n \"markAllRows\": {\n \"complexType\": {\n \"signature\": \"(marked?: boolean) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"marked\",\n \"type\": \"boolean\",\n \"docs\": \"- A boolean indicating whether to mark or unmark all rows.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Mark or unmark all rows.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"marked - A boolean indicating whether to mark or unmark all rows.\"\n }]\n }\n },\n \"expandRow\": {\n \"complexType\": {\n \"signature\": \"(rowId: string) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"rowId\",\n \"type\": \"string\",\n \"docs\": \"- The rowId of the row to expand.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Expands a row, showing its children.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"rowId - The rowId of the row to expand.\"\n }]\n }\n },\n \"collapseRow\": {\n \"complexType\": {\n \"signature\": \"(rowId: string) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"rowId\",\n \"type\": \"string\",\n \"docs\": \"- The rowId of the row to collapse.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Collapses a row, hiding its children.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"rowId - The rowId of the row to collapse.\"\n }]\n }\n },\n \"rowEnsureVisible\": {\n \"complexType\": {\n \"signature\": \"(rowId: string) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"rowId\",\n \"type\": \"string\",\n \"docs\": \"- The rowId of the row to ensure visibility.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Ensures that the row is visible within the control, scrolling the contents of the control if necessary.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"rowId - The rowId of the row to ensure visibility.\"\n }]\n }\n },\n \"cellEnsureVisible\": {\n \"complexType\": {\n \"signature\": \"(cellId: string) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"cellId\",\n \"type\": \"string\",\n \"docs\": \"- The cellId of the cell to ensure visibility.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Ensures that the cell is visible within the control, scrolling the contents of the control if necessary.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"cellId - The cellId of the cell to ensure visibility.\"\n }]\n }\n },\n \"getPreviousRow\": {\n \"complexType\": {\n \"signature\": \"() => Promise<string>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string>\"\n },\n \"docs\": {\n \"text\": \"Retrieves the rowId of the previous row relative to the currently selected cell.\",\n \"tags\": []\n }\n },\n \"getNextRow\": {\n \"complexType\": {\n \"signature\": \"() => Promise<string>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<string>\"\n },\n \"docs\": {\n \"text\": \"Retrieves the rowId of the next row relative to the currently selected cell.\",\n \"tags\": []\n }\n },\n \"getPreviousCell\": {\n \"complexType\": {\n \"signature\": \"() => Promise<{ cellId: string; rowId: string; columnId: string; }>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<{ cellId: string; rowId: string; columnId: string; }>\"\n },\n \"docs\": {\n \"text\": \"Retrieves information about the previous cell relative to the currently selected cell.\",\n \"tags\": []\n }\n },\n \"getNextCell\": {\n \"complexType\": {\n \"signature\": \"() => Promise<{ cellId: string; rowId: string; columnId: string; }>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<{ cellId: string; rowId: string; columnId: string; }>\"\n },\n \"docs\": {\n \"text\": \"Retrieves information about the next cell relative to the currently selected cell.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"rowFocused\",\n \"methodName\": \"rowFocusedHandler\"\n }, {\n \"propName\": \"rowHighlighted\",\n \"methodName\": \"rowHighlightedHandler\"\n }, {\n \"propName\": \"rowsMarked\",\n \"methodName\": \"rowsMarkedHandler\"\n }, {\n \"propName\": \"rowsSelected\",\n \"methodName\": \"rowsSelectedHandler\"\n }, {\n \"propName\": \"cellSelected\",\n \"methodName\": \"cellSelectedHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"focus\",\n \"method\": \"focusHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"blur\",\n \"method\": \"blurHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"cellFocused\",\n \"method\": \"cellFocusedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"keydown\",\n \"method\": \"windowKeyDownHandler\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"keydown\",\n \"method\": \"keyDownHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"mousemove\",\n \"method\": \"mouseMoveHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"mouseleave\",\n \"method\": \"mouseLeaveHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"mousedown\",\n \"method\": \"clickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"mouseup\",\n \"method\": \"mouseUpHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"dblclick\",\n \"method\": \"dblclickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"contextmenu\",\n \"method\": \"contextmenuHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnSelectorClicked\",\n \"method\": \"columnSelectorClickedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"cellSelectorClicked\",\n \"method\": \"cellSelectorClickedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"cellRowActionClicked\",\n \"method\": \"cellRowActionClickedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"columnHiddenChanged\",\n \"method\": \"columnStyleChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnOrderChanged\",\n \"method\": \"columnStyleChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnFreezeChanged\",\n \"method\": \"columnStyleChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnSizeChanging\",\n \"method\": \"columnStyleChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnFreezeChanged\",\n \"method\": \"columnFreezeChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnResizeStarted\",\n \"method\": \"columnResizeStartedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnResizing\",\n \"method\": \"columnResizingHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnResizeFinished\",\n \"method\": \"columnResizeFinishedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnDragStarted\",\n \"method\": \"columnDragStartHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnDragging\",\n \"method\": \"columnDraggingHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnDragEnded\",\n \"method\": \"columnDragEndHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"rowDragStarted\",\n \"method\": \"rowDragStartHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"rowEnsureVisible\",\n \"method\": \"rowEnsureVisibleHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"cellEnsureVisible\",\n \"method\": \"cellEnsureVisibleHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"settingsShowClicked\",\n \"method\": \"settingsShowClickedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"settingsCloseClicked\",\n \"method\": \"settingsCloseClickedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ch-grid.js.map\n",":host {\n display: flex;\n position: sticky;\n top: 0;\n grid-row: 1;\n}\n\n:host {\n background-color: inherit;\n margin-block-start: inherit;\n margin-block-end: inherit;\n border-block-start: inherit;\n border-block-end: inherit;\n padding-block-start: inherit;\n padding-block-end: inherit;\n transition: transform var(--column-drag-transition-duration, 0.2s);\n}\n\n:host {\n --ch-grid-column-z-index-head: var(--ch-grid-column-header-layer);\n}\n\n:host([show-settings]),\n:host([resizing]) {\n --ch-grid-column-z-index-active: var(--ch-grid-column-active-layer);\n}\n\n:host([sort-direction=asc]) .bar .sort .sort-asc {\n visibility: visible;\n}\n\n:host([sort-direction=desc]) .bar .sort .sort-desc {\n visibility: visible;\n}\n\n.bar {\n list-style-type: none;\n margin: 0;\n padding: 0;\n display: flex;\n align-items: center;\n}\n.bar .selector {\n overflow: hidden;\n order: 0;\n}\n.bar .selector:not([hidden]) {\n display: flex;\n}\n.bar .name {\n display: flex;\n overflow: hidden;\n order: 1;\n}\n.bar .name .name-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.bar .sort {\n position: relative;\n align-items: center;\n order: 2;\n}\n.bar .sort:not([hidden]) {\n display: flex;\n}\n.bar .sort .sort-asc {\n visibility: hidden;\n animation-fill-mode: forwards;\n}\n.bar .sort .sort-desc {\n position: absolute;\n visibility: hidden;\n animation-fill-mode: forwards;\n}\n.bar .settings {\n order: 3;\n}\n.bar .resize {\n align-self: stretch;\n margin-inline-start: auto;\n order: 4;\n}\n\n@keyframes column-sort {\n 0% {\n opacity: 0;\n }\n 10% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}","import { Host, h } from \"@stencil/core\";\n/**\n * The `ch-grid-column` component represents a grid column.\n */\nexport class ChGridColumn {\n constructor() {\n this.columnId = undefined;\n this.columnType = \"plain\";\n this.columnIconUrl = undefined;\n this.columnImage = undefined;\n this.columnImageSet = undefined;\n this.columnName = undefined;\n this.columnNameHidden = undefined;\n this.columnTooltip = undefined;\n this.columnNamePosition = \"text\";\n this.richRowDrag = undefined;\n this.richRowSelector = undefined;\n this.richRowSelectorMode = \"select\";\n this.richRowSelectorState = \"\";\n this.richRowActions = undefined;\n this.displayObserverClass = undefined;\n this.freeze = undefined;\n this.hidden = false;\n this.hideable = true;\n this.order = undefined;\n this.physicalOrder = undefined;\n this.size = undefined;\n this.resizable = true;\n this.resizing = undefined;\n this.sortable = true;\n this.settingable = true;\n this.sortDirection = undefined;\n this.showSettings = false;\n }\n dragging = false;\n dragMouseMoveFn = this.dragMouseMoveHandler.bind(this);\n dragMouseMoveStartPositionX;\n el;\n freezeHandler() {\n this.columnFreezeChanged.emit({\n columnId: this.columnId,\n freeze: this.freeze\n });\n }\n hiddenHandler() {\n this.columnHiddenChanged.emit({\n columnId: this.columnId,\n hidden: this.hidden\n });\n }\n orderHandler() {\n this.columnOrderChanged.emit({\n columnId: this.columnId,\n order: this.order\n });\n }\n sizeHandler() {\n this.columnSizeChanging.emit({\n columnId: this.columnId,\n size: this.size\n });\n }\n sortDirectionHandler() {\n if (this.sortDirection) {\n this.columnSortChanged.emit({\n columnId: this.columnId,\n sortDirection: this.sortDirection\n });\n }\n }\n /**\n * Event emitted when the `hidden` property is changed.\n */\n columnHiddenChanged;\n /**\n * Event emitted when the `size` property is currently being changed (i.e. when the user is dragging to resize the column).\n */\n columnSizeChanging;\n /**\n * Event emitted when the `size` property has been changed (i.e. when the user finishes dragging to resize the column).\n */\n columnSizeChanged;\n /**\n * Event emitted when the `order` property is changed.\n */\n columnOrderChanged;\n /**\n * Event emitted when the `sortDirection` property is changed.\n */\n columnSortChanged;\n /**\n * Event emitted when the `freeze` property is changed.\n */\n columnFreezeChanged;\n /**\n * Event emitted when the user is dragging the column header to move it.\n */\n columnDragStarted;\n /**\n * Event emitted when the user is dragging the column header to move it.\n */\n columnDragging;\n /**\n * Event emitted when the user stops dragging the column header to move it.\n */\n columnDragEnded;\n /**\n * Event emitted when the user clicks the row selector checkbox (only applicable for `richRowSelector=\"true\"`.\n */\n columnSelectorClicked;\n componentDidLoad() {\n this.el.addEventListener(\"mousedown\", this.mousedownHandler.bind(this));\n }\n clickHandler() {\n if (!this.dragging) {\n if (this.sortable) {\n this.sortDirection = this.sortDirection === \"asc\" ? \"desc\" : \"asc\";\n }\n }\n else {\n this.dragging = false;\n }\n }\n columnResizeStartedHandler() {\n this.resizing = true;\n }\n columnResizeFinishedHandler() {\n this.resizing = false;\n this.columnSizeChanged.emit({\n columnId: this.columnId,\n size: this.size\n });\n }\n allowColumnReorder() {\n return this.el.closest(\"ch-grid\").allowColumnReorder;\n }\n mousedownHandler(eventInfo) {\n eventInfo.preventDefault();\n eventInfo.stopPropagation();\n if (this.allowColumnReorder()) {\n this.dragMouseDownHandler(eventInfo);\n document.addEventListener(\"mousemove\", this.dragMouseMoveFn, {\n passive: true\n });\n document.addEventListener(\"mouseup\", this.dragMouseUpHandler.bind(this), {\n once: true\n });\n }\n }\n dragMouseDownHandler(eventInfo) {\n this.dragMouseMoveStartPositionX = eventInfo.pageX;\n this.columnDragStarted.emit({ columnId: this.columnId });\n }\n dragMouseMoveHandler(eventInfo) {\n if (this.dragging ||\n Math.abs(this.dragMouseMoveStartPositionX - eventInfo.pageX) > 5) {\n this.dragging = true;\n this.columnDragging.emit({\n columnId: this.columnId,\n positionX: eventInfo.pageX,\n direction: eventInfo.movementX > 0 ? \"right\" : \"left\"\n });\n }\n }\n dragMouseUpHandler() {\n document.removeEventListener(\"mousemove\", this.dragMouseMoveFn);\n this.columnDragEnded.emit({ columnId: this.columnId });\n }\n settingsMouseDownHandler(eventInfo) {\n eventInfo.stopPropagation();\n }\n settingsClickHandler = (eventInfo) => {\n eventInfo.stopPropagation();\n this.showSettings = true;\n };\n selectorClickHandler = (eventInfo) => {\n const target = eventInfo.target;\n this.richRowSelectorState = target.checked ? \"checked\" : \"\";\n this.columnSelectorClicked.emit({\n checked: target.checked\n });\n eventInfo.stopPropagation();\n };\n render() {\n return (h(Host, null, h(\"ul\", { class: \"bar\", part: \"bar\" }, this.renderSelector(), this.renderName(), this.renderSort(), this.renderSettings(), this.renderResize()), h(\"ch-grid-column-settings\", { column: this.el, onMouseDown: this.settingsMouseDownHandler, show: this.showSettings, exportparts: \"\\n mask:settings-mask,\\n window:settings-window,\\n header:settings-header,\\n caption:settings-caption,\\n close:settings-close,\\n main:settings-main,\\n footer:settings-footer\\n \" }, h(\"slot\", { name: \"settings\" }))));\n }\n renderSelector() {\n return (h(\"li\", { class: \"selector\", part: \"bar-selector\", hidden: !(this.columnType === \"rich\" && this.richRowSelector) }, h(\"label\", { part: \"selector-label\" }, h(\"input\", { type: \"checkbox\", part: [\"selector\", this.richRowSelectorState]\n .filter(part => part !== \"\")\n .join(\" \"), onClick: this.selectorClickHandler, checked: this.richRowSelectorState === \"checked\", indeterminate: this.richRowSelectorState === \"indeterminate\" }))));\n }\n renderName() {\n return (h(\"li\", { class: \"name\", part: \"bar-name\", title: this.columnTooltip ||\n (this.columnNamePosition === \"title\" ? this.columnName : null) }, this.columnIconUrl || this.columnImage || this.columnImageSet ? (h(\"img\", { class: \"name-icon\", part: \"bar-name-icon\", src: this.columnImage || this.columnIconUrl, srcSet: this.columnImageSet })) : (h(\"div\", { class: \"name-icon\", part: \"bar-name-icon\" })), h(\"span\", { class: \"name-text\", part: \"bar-name-text\", hidden: this.columnNameHidden || this.columnNamePosition !== \"text\" }, this.columnName)));\n }\n renderSort() {\n return (h(\"li\", { class: \"sort\", part: \"bar-sort\", hidden: !this.sortable }, h(\"div\", { class: \"sort-asc\", part: \"bar-sort-ascending\" }), h(\"div\", { class: \"sort-desc\", part: \"bar-sort-descending\" })));\n }\n renderSettings() {\n return (h(\"li\", { class: \"settings\", part: \"bar-settings\", hidden: !this.settingable }, h(\"button\", { class: \"button\", part: \"bar-settings-button\", onClick: this.settingsClickHandler })));\n }\n renderResize() {\n return (h(\"li\", { class: \"resize\", part: \"bar-resize\", hidden: !this.resizable }, h(\"ch-grid-column-resize\", { column: this.el, class: \"resize-split\", part: \"bar-resize-split\" })));\n }\n static get is() { return \"ch-grid-column\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid-column.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid-column.css\"]\n };\n }\n static get properties() {\n return {\n \"columnId\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A unique identifier for the column.\"\n },\n \"attribute\": \"column-id\",\n \"reflect\": false\n },\n \"columnType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"plain\\\" | \\\"rich\\\" | \\\"tree\\\"\",\n \"resolved\": \"\\\"plain\\\" | \\\"rich\\\" | \\\"tree\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"plain\\\", \\\"rich\\\", or \\\"tree\\\", indicating the type of cell displayed in the column.\"\n },\n \"attribute\": \"column-type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"plain\\\"\"\n },\n \"columnIconUrl\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"Use \\\"columnImage\\\" or \\\"columnImageSet\\\" instead.\\nA URL to an icon to display in the column header.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"column-icon-url\",\n \"reflect\": false\n },\n \"columnImage\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A URL to an icon to display in the column header.\"\n },\n \"attribute\": \"column-image\",\n \"reflect\": false\n },\n \"columnImageSet\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A URL to an icon to display in the column header.\"\n },\n \"attribute\": \"column-image-set\",\n \"reflect\": false\n },\n \"columnName\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text to display in the column header and settings.\"\n },\n \"attribute\": \"column-name\",\n \"reflect\": false\n },\n \"columnNameHidden\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Indicates whether the text in the column header is visible or not\"\n },\n \"attribute\": \"column-name-hidden\",\n \"reflect\": false\n },\n \"columnTooltip\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text to display when the cursor is placed over the column header.\"\n },\n \"attribute\": \"column-tooltip\",\n \"reflect\": false\n },\n \"columnNamePosition\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"text\\\" | \\\"title\\\"\",\n \"resolved\": \"\\\"text\\\" | \\\"title\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"Use \\\"columnTooltip\\\" and \\\"columnNameHidden\\\" instead.\\nOne of \\\"text\\\" or \\\"title\\\", indicating whether the `columnName` should be displayed as the column text or as tooltip of the column image.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"column-name-position\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"text\\\"\"\n },\n \"richRowDrag\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean value indicating whether the column cells are draggable to reorder the grid rows (only applicable for columnType=\\\"rich\\\").\"\n },\n \"attribute\": \"rich-row-drag\",\n \"reflect\": false\n },\n \"richRowSelector\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column cells in the grid should have a checkbox selector (only applicable for columnType=\\\"rich\\\").\"\n },\n \"attribute\": \"rich-row-selector\",\n \"reflect\": false\n },\n \"richRowSelectorMode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"\\\"select\\\" | \\\"mark\\\"\",\n \"resolved\": \"\\\"mark\\\" | \\\"select\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"select\\\" or \\\"mark\\\", indicating the mode of rich row selector.\\n\\\"select\\\" indicates that the row selector is bound to the row selection.\\n\\\"mark\\\" allows to mark a row independently of the selection.\"\n },\n \"attribute\": \"rich-row-selector-mode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"select\\\"\"\n },\n \"richRowSelectorState\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"| \\\"\\\"\\n | \\\"checked\\\"\\n | \\\"indeterminate\\\"\",\n \"resolved\": \"\\\"\\\" | \\\"checked\\\" | \\\"indeterminate\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Indicate the state of the rich row selector.\\n\\\"\\\" indicates that all rows are unchecked.\\n\\\"checked\\\" indicates that all rows are checked.\\n\\\"indeterminate\\\" indicates that some rows are marked.\"\n },\n \"attribute\": \"rich-row-selector-state\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"\\\"\"\n },\n \"richRowActions\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column cells in the grid should have a set of action buttons (only applicable for columnType=\\\"rich\\\").\"\n },\n \"attribute\": \"rich-row-actions\",\n \"reflect\": false\n },\n \"displayObserverClass\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A CSS class name to apply to the display observer element used to detect changes in the column visibility.\"\n },\n \"attribute\": \"display-observer-class\",\n \"reflect\": false\n },\n \"freeze\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"ChGridColumnFreeze\",\n \"resolved\": \"\\\"end\\\" | \\\"start\\\"\",\n \"references\": {\n \"ChGridColumnFreeze\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnFreeze\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"left\\\" or \\\"right\\\", indicating whether the column should be \\\"frozen\\\" (i.e. remain visible when the user scrolls horizontally).\"\n },\n \"attribute\": \"freeze\",\n \"reflect\": false\n },\n \"hidden\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column should be hidden.\\nThe user can display it from the grid settings.\"\n },\n \"attribute\": \"hidden\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"hideable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column should be hideable (i.e. whether the user should be able to show/hide the column).\"\n },\n \"attribute\": \"hideable\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"order\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A number indicating the order in which the column should appear.\"\n },\n \"attribute\": \"order\",\n \"reflect\": true\n },\n \"physicalOrder\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A number indicating the physical order of the column (i.e. its position in the DOM).\"\n },\n \"attribute\": \"physical-order\",\n \"reflect\": false\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A string indicating the width of the column.\\nAny value supported by the \\\"grid-template-columns\\\" CSS property is valid.\"\n },\n \"attribute\": \"size\",\n \"reflect\": true\n },\n \"resizable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column should be resizable (i.e. whether the user should be able to drag its width).\"\n },\n \"attribute\": \"resizable\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"resizing\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column is currently being resized.\"\n },\n \"attribute\": \"resizing\",\n \"reflect\": true\n },\n \"sortable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the column should be sortable (i.e. whether the user should be able to click the column header to sort the data).\"\n },\n \"attribute\": \"sortable\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"settingable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the user should be able to open a settings panel for the column.\"\n },\n \"attribute\": \"settingable\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"sortDirection\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"ChGridColumnSortDirection\",\n \"resolved\": \"\\\"asc\\\" | \\\"desc\\\"\",\n \"references\": {\n \"ChGridColumnSortDirection\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnSortDirection\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"One of \\\"asc\\\" or \\\"desc\\\", indicating the current sort direction.\"\n },\n \"attribute\": \"sort-direction\",\n \"reflect\": true\n },\n \"showSettings\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A boolean indicating whether the settings panel for the column should be visible.\"\n },\n \"attribute\": \"show-settings\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get events() {\n return [{\n \"method\": \"columnHiddenChanged\",\n \"name\": \"columnHiddenChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the `hidden` property is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnHiddenChangedEvent\",\n \"resolved\": \"ChGridColumnHiddenChangedEvent\",\n \"references\": {\n \"ChGridColumnHiddenChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnHiddenChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnSizeChanging\",\n \"name\": \"columnSizeChanging\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the `size` property is currently being changed (i.e. when the user is dragging to resize the column).\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnSizeChangedEvent\",\n \"resolved\": \"ChGridColumnSizeChangedEvent\",\n \"references\": {\n \"ChGridColumnSizeChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnSizeChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnSizeChanged\",\n \"name\": \"columnSizeChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the `size` property has been changed (i.e. when the user finishes dragging to resize the column).\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnSizeChangedEvent\",\n \"resolved\": \"ChGridColumnSizeChangedEvent\",\n \"references\": {\n \"ChGridColumnSizeChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnSizeChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnOrderChanged\",\n \"name\": \"columnOrderChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the `order` property is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnOrderChangedEvent\",\n \"resolved\": \"ChGridColumnOrderChangedEvent\",\n \"references\": {\n \"ChGridColumnOrderChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnOrderChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnSortChanged\",\n \"name\": \"columnSortChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the `sortDirection` property is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnSortChangedEvent\",\n \"resolved\": \"ChGridColumnSortChangedEvent\",\n \"references\": {\n \"ChGridColumnSortChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnSortChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnFreezeChanged\",\n \"name\": \"columnFreezeChanged\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the `freeze` property is changed.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnFreezeChangedEvent\",\n \"resolved\": \"ChGridColumnFreezeChangedEvent\",\n \"references\": {\n \"ChGridColumnFreezeChangedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnFreezeChangedEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnDragStarted\",\n \"name\": \"columnDragStarted\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user is dragging the column header to move it.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnDragEvent\",\n \"resolved\": \"ChGridColumnDragEvent\",\n \"references\": {\n \"ChGridColumnDragEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnDragEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnDragging\",\n \"name\": \"columnDragging\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user is dragging the column header to move it.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnDragEvent\",\n \"resolved\": \"ChGridColumnDragEvent\",\n \"references\": {\n \"ChGridColumnDragEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnDragEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnDragEnded\",\n \"name\": \"columnDragEnded\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user stops dragging the column header to move it.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnDragEvent\",\n \"resolved\": \"ChGridColumnDragEvent\",\n \"references\": {\n \"ChGridColumnDragEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnDragEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnSelectorClicked\",\n \"name\": \"columnSelectorClicked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user clicks the row selector checkbox (only applicable for `richRowSelector=\\\"true\\\"`.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnSelectorClickedEvent\",\n \"resolved\": \"ChGridColumnSelectorClickedEvent\",\n \"references\": {\n \"ChGridColumnSelectorClickedEvent\": {\n \"location\": \"import\",\n \"path\": \"./ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnSelectorClickedEvent\"\n }\n }\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"freeze\",\n \"methodName\": \"freezeHandler\"\n }, {\n \"propName\": \"hidden\",\n \"methodName\": \"hiddenHandler\"\n }, {\n \"propName\": \"order\",\n \"methodName\": \"orderHandler\"\n }, {\n \"propName\": \"size\",\n \"methodName\": \"sizeHandler\"\n }, {\n \"propName\": \"sortDirection\",\n \"methodName\": \"sortDirectionHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"click\",\n \"method\": \"clickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"columnResizeStarted\",\n \"method\": \"columnResizeStartedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnResizeFinished\",\n \"method\": \"columnResizeFinishedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ch-grid-column.js.map\n",":host {\n display: block;\n min-width: 1px;\n height: 100%;\n cursor: ew-resize;\n}\n\n.resize-mask {\n position: fixed;\n inset: 0;\n}","import { h } from \"@stencil/core\";\nimport { mouseEventModifierKey } from \"../../../common/helpers\";\n/**\n * The `ch-grid-column-resize` component responsible for resizing a column in a grid.\n */\nexport class ChGridColumnResize {\n constructor() {\n this.resizing = false;\n this.column = undefined;\n }\n startPageX;\n mousemoveFn = this.mousemoveHandler.bind(this);\n el;\n /**\n * Event emitted when the user starts resizing the column.\n */\n columnResizeStarted;\n /**\n * Event emitted when the user is resizing the column.\n */\n columnResizing;\n /**\n * Event emitted when the user finishes resizing the column.\n */\n columnResizeFinished;\n componentDidLoad() {\n this.el.addEventListener(\"mousedown\", this.mousedownHandler.bind(this));\n }\n clickHandler(eventInfo) {\n eventInfo.stopPropagation();\n }\n dblclickHandler(eventInfo) {\n eventInfo.stopPropagation();\n if (mouseEventModifierKey(eventInfo)) {\n this.column.size = \"auto\";\n }\n else {\n this.column.size = \"max-content\";\n }\n }\n columnResizeStartedHandler() {\n this.resizing = true;\n }\n columnResizeFinishedHandler() {\n this.resizing = false;\n }\n mousedownHandler(eventInfo) {\n eventInfo.stopPropagation();\n eventInfo.preventDefault();\n this.startPageX = eventInfo.pageX;\n document.addEventListener(\"mousemove\", this.mousemoveFn, { passive: true });\n document.addEventListener(\"mouseup\", this.mouseupHandler.bind(this), {\n once: true\n });\n this.columnResizeStarted.emit({ columnId: this.column.columnId });\n }\n mousemoveHandler(eventInfo) {\n this.columnResizing.emit({\n columnId: this.column.columnId,\n deltaWidth: this.startPageX - eventInfo.pageX\n });\n }\n mouseupHandler() {\n document.removeEventListener(\"mousemove\", this.mousemoveFn);\n this.columnResizeFinished.emit({ columnId: this.column.columnId });\n }\n render() {\n return h(\"div\", { class: \"resize-mask\", hidden: !this.resizing });\n }\n static get is() { return \"ch-grid-column-resize\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid-column-resize.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid-column-resize.css\"]\n };\n }\n static get properties() {\n return {\n \"column\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLChGridColumnElement\",\n \"resolved\": \"HTMLChGridColumnElement\",\n \"references\": {\n \"HTMLChGridColumnElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLChGridColumnElement\"\n }\n }\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The column element that is being resized.\"\n }\n }\n };\n }\n static get states() {\n return {\n \"resizing\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"columnResizeStarted\",\n \"name\": \"columnResizeStarted\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user starts resizing the column.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnResizeEvent\",\n \"resolved\": \"ChGridColumnResizeEvent\",\n \"references\": {\n \"ChGridColumnResizeEvent\": {\n \"location\": \"import\",\n \"path\": \"../ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnResizeEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnResizing\",\n \"name\": \"columnResizing\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user is resizing the column.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnResizeEvent\",\n \"resolved\": \"ChGridColumnResizeEvent\",\n \"references\": {\n \"ChGridColumnResizeEvent\": {\n \"location\": \"import\",\n \"path\": \"../ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnResizeEvent\"\n }\n }\n }\n }, {\n \"method\": \"columnResizeFinished\",\n \"name\": \"columnResizeFinished\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the user finishes resizing the column.\"\n },\n \"complexType\": {\n \"original\": \"ChGridColumnResizeEvent\",\n \"resolved\": \"ChGridColumnResizeEvent\",\n \"references\": {\n \"ChGridColumnResizeEvent\": {\n \"location\": \"import\",\n \"path\": \"../ch-grid-column-types\",\n \"id\": \"src/components/grid/grid-column/ch-grid-column-types.ts::ChGridColumnResizeEvent\"\n }\n }\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"click\",\n \"method\": \"clickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"dblclick\",\n \"method\": \"dblclickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnResizeStarted\",\n \"method\": \"columnResizeStartedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnResizeFinished\",\n \"method\": \"columnResizeFinishedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ch-grid-column-resize.js.map\n",":host {\n display: contents;\n}","import { h, Host } from \"@stencil/core\";\n/**\n * The `ch-grid-column-settings` component represents a settings window for a column.\n */\nexport class ChGridColumnSettings {\n constructor() {\n this.column = undefined;\n this.show = false;\n }\n windowClosedHandler(eventInfo) {\n eventInfo.stopPropagation();\n this.column.showSettings = false;\n }\n columnSettingsChangedHandler() {\n this.column.showSettings = false;\n }\n render() {\n return (h(Host, null, h(\"ch-window\", { modal: true, container: this.column, xAlign: \"inside-start\", yAlign: \"outside-end\", caption: this.column.columnName, closeText: \"Close\", closeOnOutsideClick: true, closeOnEscape: true, allowDrag: \"header\", hidden: !this.show, exportparts: \"mask,window,header,caption,close,main,footer\" }, h(\"slot\", null))));\n }\n static get is() { return \"ch-grid-column-settings\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid-column-settings.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid-column-settings.css\"]\n };\n }\n static get properties() {\n return {\n \"column\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLChGridColumnElement\",\n \"resolved\": \"HTMLChGridColumnElement\",\n \"references\": {\n \"HTMLChGridColumnElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLChGridColumnElement\"\n }\n }\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The `HTMLChGridColumnElement` that the settings window is associated with.\"\n }\n },\n \"show\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Indicates whether the settings window is currently shown or not.\"\n },\n \"attribute\": \"show\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get listeners() {\n return [{\n \"name\": \"windowClosed\",\n \"method\": \"windowClosedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"columnSettingsChanged\",\n \"method\": \"columnSettingsChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ch-grid-column-settings.js.map\n","@layer ch-grid {\n ch-grid-columnset {\n display: contents;\n }\n}\n@layer ch-grid {\n ch-grid-row {\n display: contents;\n }\n ch-grid-row[collapsed] > ch-grid-rowset {\n display: none;\n }\n ch-grid-row:is([leaf=false], :has(> ch-grid-rowset)) > ch-grid-cell::part(caret) {\n visibility: visible;\n }\n ch-grid-row[dragging] {\n display: flex;\n position: fixed;\n pointer-events: none;\n box-shadow: rgba(0, 0, 0, 0.7) 0px 5px 15px;\n z-index: 1000;\n transition: top var(--row-drag-transition-duration, 0.1s);\n }\n}\n@layer ch-grid {\n ch-grid-rowset {\n display: contents;\n }\n ch-grid-rowset[collapsed] > :not(ch-grid-rowset-legend) {\n display: none;\n }\n}\n@layer ch-grid {\n ch-grid-cell {\n position: sticky;\n grid-column: var(--grid-column);\n transition: transform var(--column-drag-transition-duration, 0.2s);\n }\n ch-grid-cell[selected] {\n --ch-grid-cell-z-index-active: var(--ch-grid-cell-active-layer);\n }\n ch-grid-cell,\n ch-grid-row[selected] > ch-grid-cell,\n ch-grid-row[highlighted] > ch-grid-cell {\n background-color: inherit;\n margin-block-start: inherit;\n margin-block-end: inherit;\n border-block-start: inherit;\n border-block-end: inherit;\n padding-block-start: inherit;\n padding-block-end: inherit;\n }\n ch-grid-cell:before {\n margin-inline-start: calc(var(--indent) * var(--level));\n }\n ch-grid-cell::part(indent) {\n width: calc(var(--indent) * var(--level));\n }\n ch-grid-cell::part(caret) {\n visibility: hidden;\n }\n}","/**\n * The `ch-grid-columnset` component represents a group of columns.\n */\nexport class ChGridColumnset {\n el;\n columnSortChangedHandler(eventInfo) {\n const columns = Array.from(this.el.querySelectorAll(\"ch-grid-column\"));\n columns.forEach(column => {\n if (column.columnId !== eventInfo.detail.columnId) {\n column.sortDirection = null;\n }\n });\n }\n static get is() { return \"ch-grid-columnset\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid-columnset.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid-columnset.css\"]\n };\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"columnSortChanged\",\n \"method\": \"columnSortChangedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ch-grid-columnset.js.map\n",":host {\n display: contents;\n --ch-window-mask-z-index: var(--ch-grid-settings-layer);\n}","import { h, Host } from \"@stencil/core\";\n/**\n * The `ch-grid-settings` component represents a settings window for a grid component.\n */\nexport class ChGridSettings {\n constructor() {\n this.grid = undefined;\n this.show = false;\n }\n /**\n * Event emitted when the close button of the settings window is clicked.\n */\n settingsCloseClicked;\n windowClosedHandler(eventInfo) {\n eventInfo.stopPropagation();\n this.show = false;\n this.settingsCloseClicked.emit();\n }\n render() {\n return (h(Host, null, h(\"ch-window\", { modal: true, container: this.grid, caption: \"Options\", closeText: \"Close\", closeOnOutsideClick: true, closeOnEscape: true, allowDrag: \"header\", hidden: !this.show, exportparts: \"mask,window,header,caption,close,main,footer\" }, h(\"slot\", null))));\n }\n static get is() { return \"ch-grid-settings\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid-settings.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid-settings.css\"]\n };\n }\n static get properties() {\n return {\n \"grid\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLChGridElement\",\n \"resolved\": \"HTMLChGridElement\",\n \"references\": {\n \"HTMLChGridElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLChGridElement\"\n }\n }\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The `HTMLChGridElement` that the settings window is associated with.\"\n }\n },\n \"show\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Indicates whether the settings window is currently shown or not.\"\n },\n \"attribute\": \"show\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get events() {\n return [{\n \"method\": \"settingsCloseClicked\",\n \"name\": \"settingsCloseClicked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event emitted when the close button of the settings window is clicked.\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"windowClosed\",\n \"method\": \"windowClosedHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ch-grid-settings.js.map\n",":host {\n display: flex;\n flex-direction: column;\n}\n\nul {\n display: contents;\n list-style-type: none;\n}","import { h } from \"@stencil/core\";\n/**\n * The `ch-grid-settings-columns` component represents the settings for a grid's columns.\n */\nexport class ChGridSettingsColumns {\n constructor() {\n this.columns = undefined;\n }\n handleClick = (eventInfo) => {\n const checkbox = eventInfo.target;\n const column = this.columns.find(column => column.columnId === checkbox.name);\n column.hidden = !checkbox.checked;\n eventInfo.stopPropagation();\n };\n getColumnsSorted() {\n return [...this.columns].sort((a, b) => {\n if (a.order < b.order) {\n return -1;\n }\n if (a.order > b.order) {\n return 1;\n }\n return 0;\n });\n }\n render() {\n const columnsSorted = this.getColumnsSorted();\n return (h(\"ul\", null, columnsSorted.map(column => (h(\"li\", { part: \"column\" }, h(\"label\", { part: \"column-label\" }, h(\"input\", { part: !column.hidden\n ? \"column-visible column-visible-checked\"\n : \"column-visible\", type: \"checkbox\", checked: !column.hidden, disabled: !column.hideable, name: column.columnId, onClick: this.handleClick }), column.columnName))))));\n }\n static get is() { return \"ch-grid-settings-columns\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ch-grid-settings-columns.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ch-grid-settings-columns.css\"]\n };\n }\n static get properties() {\n return {\n \"columns\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLChGridColumnElement[]\",\n \"resolved\": \"HTMLChGridColumnElement[]\",\n \"references\": {\n \"HTMLChGridColumnElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLChGridColumnElement\"\n }\n }\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"An array of column elements to render.\"\n }\n }\n };\n }\n}\n//# sourceMappingURL=ch-grid-settings-columns.js.map\n",":root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n/**************************\nGENERAL\n**************************/\n:root {\n --indent: var(--gxg-grid__indent);\n}\n\ngxg-grid {\n display: contents;\n}\n\nch-grid {\n border: var(--ds-border-common-styles);\n border-radius: var(--gxg-grid-base__border-radius);\n --focus-style: var(--ds-focus-border-width) solid var(--ds-focus-border-color);\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--gxg-grid-base__font-size);\n color: var(--gxg-grid-base__font-color);\n overflow: hidden;\n}\n\nch-grid::part(main) {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\nch-grid::part(main)::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\nch-grid::part(main)::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\nch-grid::part(main)::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\nch-grid::part(main)::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\nch-grid::part(main)::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\ngxg-grid.no-border ch-grid {\n border: 0;\n border-radius: 0;\n}\n\ngxg-grid:focus-visible,\nch-grid:focus-visible {\n outline: none;\n}\n\n/**************************\nHEADER / FOOTER\n**************************/\nch-grid::part(header),\nch-grid::part(footer) {\n /*padding: var(--spacing-comp-01);*/\n background-color: var(--gxg-grid-header__background-color);\n}\n\n/**************************\nBUTTONS/ICONS\n**************************/\nch-grid-actionbar ch-grid-action-refresh,\nch-grid-actionbar ch-grid-action-settings,\nch-grid-column::part(bar-sort-ascending),\nch-grid-column::part(bar-sort-descending),\nch-grid-column::part(bar-settings-button),\nch-grid-column::part(settings-close),\nch-grid::part(settings-close),\nch-grid-cell::part(drag-icon),\nch-grid-cell::part(caret),\nch-grid-rowset-legend::part(caret) {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\nch-grid-actionbar ch-grid-action-refresh:before,\nch-grid-actionbar ch-grid-action-settings:before,\nch-grid-column::part(bar-sort-ascending):before,\nch-grid-column::part(bar-sort-descending):before,\nch-grid-column::part(bar-settings-button):before,\nch-grid-column::part(settings-close):before,\nch-grid::part(settings-close):before,\nch-grid-cell::part(drag-icon):before,\nch-grid-cell::part(caret):before,\nch-grid-rowset-legend::part(caret):before {\n content: \"\";\n display: block;\n -webkit-mask-repeat: no-repeat;\n -webkit-mask-size: contain;\n -webkit-mask-position: center;\n width: 70%;\n height: 70%;\n background-color: var(--gxg-grid-button__icon-color);\n}\n\nch-grid-action-refresh,\nch-grid-action-settings {\n width: var(--gxg-grid-button__size);\n height: var(--gxg-grid-button__size);\n cursor: pointer;\n background-color: var(--gxg-grid-button__background-color);\n display: inline-block;\n}\nch-grid-action-refresh:hover,\nch-grid-action-settings:hover {\n background-color: var(--gxg-grid-button__background-color--hover);\n}\nch-grid-action-refresh:focus-visible,\nch-grid-action-settings:focus-visible {\n outline: var(--focus-style);\n}\n\nch-grid-action-refresh:before {\n -webkit-mask-image: var(--refreshIconUrl);\n}\n\nch-grid-action-settings:before {\n -webkit-mask-image: var(--settingshIconUrl);\n}\n\n/**************************\nCOLUMN\n**************************/\nch-grid-column {\n background-color: var(--gxg-grid-column__background-color);\n font-weight: var(--gxg-grid-column__font-weight);\n padding: var(--gxg-grid-column__padding) !important;\n cursor: pointer;\n}\n\nch-grid-column::part(bar) {\n gap: var(--gxg-grid-column-bar__gap);\n width: 100%;\n}\n\nch-grid-column:not([sort-direction])::part(bar-sort) {\n display: none;\n}\n\nch-grid-column::part(bar-settings) {\n line-height: 0;\n}\n\nch-grid-column::part(bar-sort-ascending),\nch-grid-column::part(bar-sort-descending) {\n width: var(--spacing-comp-03);\n height: var(--spacing-comp-03);\n margin-inline-start: var(--spacing-comp-02);\n margin-inline-end: var(--spacing-comp-01);\n}\n\nch-grid-column::part(bar-sort-ascending):before,\nch-grid-column::part(bar-sort-descending):before {\n width: 100%;\n height: 100%;\n -webkit-mask-size: 200%;\n}\n\nch-grid-column::part(bar-sort-descending):before {\n -webkit-mask-image: var(--barSortDescendingIconUrl);\n}\n\nch-grid-column::part(bar-sort-ascending):before {\n -webkit-mask-image: var(--barSortAscendingIconUrl);\n}\n\nch-grid-column::part(bar-resize-split) {\n width: var(--gxg-grid-column-par-bar-resize-split__width);\n border-radius: var(--gxg-grid-column-par-bar-resize-split__border-radius);\n background-color: var(--gxg-grid-column-bar-resize-split__background-color);\n}\n\nch-grid-column:last-child::part(bar-resize-split) {\n display: none;\n}\n\nch-grid-column::part(bar-settings-button) {\n padding: 0;\n width: var(--gxg-grid-column-bar-settings-button__width);\n height: var(--gxg-grid-column-bar-settings-button__width);\n border: none;\n background-color: transparent;\n cursor: pointer;\n}\nch-grid-column::part(bar-settings-button):hover {\n background-color: var(--gxg-grid-column-bar-settings-button__background-color--hover);\n}\nch-grid-column::part(bar-settings-button):focus-visible {\n outline: var(--focus-style);\n}\n\nch-grid-column::part(bar-settings-button):before {\n -webkit-mask-image: var(--barSettingsButtonIconUrl);\n}\n\n/**************************\nROW\n**************************/\nch-grid-row {\n font-size: var(--gxg-grid-cell__font-size);\n background-color: var(--gxg-grid-row__background-color);\n color: var(--gxg-grid-row__color);\n border: var(--gxg-grid-row__border-width) solid transparent;\n}\nch-grid-row ch-grid-cell {\n border-top-width: var(--gxg-grid-cell__border-top-width);\n border-top-color: var(--mer-border-color__on-elevation--01);\n}\nch-grid-row:nth-of-type(even) {\n background-color: var(--ds-row-background-color-even);\n}\nch-grid-row:nth-of-type(odd) {\n background-color: var(--ds-row-background-color-odd);\n}\n\nch-grid-row[highlighted]:nth-child(odd) {\n background-color: var(--ds-row-background-color-odd--hover);\n}\nch-grid-row[highlighted]:nth-child(even) {\n background-color: var(--ds-row-background-color-even--hover);\n}\n\nch-grid-row[dragging] {\n box-shadow: var(--gxg-grid-row__box-shadow--dragging);\n}\n\nch-grid-row[selected] > ch-grid-cell:not([selected]) {\n background-color: var(--ds-item-background-color--selected);\n}\n\n/**************************\nCELL\n**************************/\nch-grid-cell[selected] {\n z-index: 1;\n background-color: var(--ds-item-background-color--selected) !important;\n}\n\nch-grid-row[selected] > ch-grid-cell {\n color: var(--gxg-grid-row-cell__color--selected);\n}\nch-grid-row[selected] + ch-grid-row[selected] ch-grid-cell {\n border-top-color: var(--ds-item-border-color--selected);\n}\nch-grid-row[selected]:hover > ch-grid-cell {\n background-color: var(--ds-item-background-color--selected-hover) !important;\n}\n\nch-grid-cell {\n box-sizing: border-box;\n padding-inline-start: var(--gxg-grid-cell__padding-inline-start) !important;\n padding-inline-end: var(--gxg-grid-cell__padding-inline-end) !important;\n padding-block-start: var(--gxg-grid-cell__padding-block-start);\n padding-block-end: var(--gxg-grid-cell__padding-block-end);\n align-items: center;\n line-height: var(--line-height-regular);\n}\n\nch-grid-column::part(settings-mask) {\n cursor: default;\n}\n\nch-grid-column::part(settings-mask),\nch-grid::part(settings-mask) {\n background-color: rgba(0, 0, 0, 0.3);\n cursor: arrow;\n color: var(--gxg-grid-settings-mask__color);\n}\n\nch-grid-column::part(settings-window),\nch-grid::part(settings-window) {\n background-color: var(--gxg-grid-settings-window__background-color);\n width: 100%;\n max-width: 600px;\n padding: var(--gxg-grid-settings-window__padding);\n border-radius: var(--gxg-grid-base__border-radius);\n box-shadow: var(--gxg-grid-settings-window__box-shadow);\n}\n\nch-grid::part(settings-window) {\n margin: 0 var(--gxg-grid-settings-window__margin);\n}\n\nch-grid-column::part(settings-header),\nch-grid::part(settings-header) {\n display: flex;\n align-items: center;\n gap: var(--gxg-grid-settings-header__gap);\n justify-content: space-between;\n border-bottom: var(--gxg-grid-base__border-width) solid var(--ds-border-color--regular);\n padding-bottom: var(--gxg-grid-settings-padding-bottom);\n margin-bottom: var(--gxg-grid-settings-margin-bottom);\n font-weight: var(--gxg-grid-settings-font-weight);\n}\n\nch-grid-column::part(settings-close),\nch-grid::part(settings-close) {\n padding: 0;\n width: var(--gxg-grid-settings-close__size);\n height: var(--gxg-grid-settings-close__size);\n cursor: pointer;\n background-color: var(--gxg-grid-settings-close__background-color);\n font-size: 0;\n border: 0;\n}\nch-grid-column::part(settings-close):hover,\nch-grid::part(settings-close):hover {\n background-color: var(--gxg-grid-settings-close__background-color--hover);\n}\nch-grid-column::part(settings-close):before,\nch-grid::part(settings-close):before {\n -webkit-mask-image: var(--settingsCloseIconUrl);\n}\nch-grid-column::part(settings-close):focus-visible,\nch-grid::part(settings-close):focus-visible {\n outline: var(--focus-style);\n}\n\nch-grid::part(settings-columns) {\n gap: var(--gxg-grid-settings-columns__gap);\n}\n\nch-grid::part(settings-columns-label) {\n display: inline-flex;\n align-items: center;\n gap: var(--gxg-grid-settings-columns-label__gap);\n cursor: pointer;\n height: var(--gxg-grid-settings-columns-label__height);\n}\n\n/*Checkboxes*/\nch-grid::part(settings-columns-visible),\nch-grid-cell::part(selector),\nch-grid-column::part(selector) {\n position: relative;\n margin: 0;\n height: var(--gxg-checkbox-size);\n width: var(--gxg-checkbox-size);\n appearance: none;\n border-radius: var(--gxg-checkbox-border-radius);\n}\nch-grid::part(settings-columns-visible):focus-visible,\nch-grid-cell::part(selector):focus-visible,\nch-grid-column::part(selector):focus-visible {\n outline: var(--focus-style);\n outline-offset: 0;\n}\n\nch-grid::part(settings-columns-visible):before,\nch-grid-cell::part(selector):before,\nch-grid-column::part(selector):before {\n cursor: pointer;\n content: \"\";\n display: inline-block;\n position: relative;\n height: var(--gxg-checkbox-size);\n width: var(--gxg-checkbox-size);\n border-width: var(--gxg-checkbox-border-width);\n border-style: solid;\n border-radius: var(--gxg-checkbox-border-radius);\n border-color: var(--gxg-checkbox-border-color);\n box-sizing: border-box;\n flex-shrink: 0;\n background: var(--gxg-checkbox-background-color);\n}\n\nch-grid::part(settings-columns-visible):after,\nch-grid-cell::part(selector):after,\nch-grid-column::part(selector):after {\n opacity: 0;\n display: block;\n position: absolute;\n content: \"\";\n left: 6px;\n top: 3px;\n width: 3px;\n height: 7px;\n border: solid;\n border-color: var(--gxg-checkbox-indicator-color);\n border-width: 0 2px 2px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n transition-property: opacity;\n transition-duration: var(--ui-animaton-speed);\n transition-timing-function: ease;\n cursor: pointer;\n}\n\nch-grid-column::part(indeterminate):after {\n opacity: 1;\n display: block;\n position: absolute;\n content: \"\";\n left: 50%;\n top: 50%;\n width: 8px;\n height: 1.5px;\n border: 0;\n background-color: var(--gxg-checkbox-indicator-color);\n -webkit-transform: rotate(0) translateY(-50%) translateX(-50%);\n -ms-transform: rotate(0) translateY(-50%) translateX(-50%);\n transform: rotate(0) translateY(-50%) translateX(-50%);\n}\n\nch-grid::part(settings-columns-visible-checked):before,\nch-grid-cell::part(checked):before,\nch-grid-column::part(checked):before {\n border-color: var(--gxg-checkbox-border-color);\n}\n\nch-grid::part(settings-columns-visible-checked):after,\nch-grid-cell::part(checked):after,\nch-grid-column::part(checked):after {\n opacity: 1;\n}\n\n/*Drag*/\nch-grid-cell::part(drag-icon):before {\n width: var(--gxg-grid-cell-drag-icon__size);\n height: var(--gxg-grid-cell-drag-icon__size);\n cursor: grab;\n}\n\nch-grid-cell::part(drag-icon):before {\n -webkit-mask-image: var(--dragIconUrl);\n}\n\n/*Row actions*/\nch-grid::part(row-actions) {\n padding-top: var(--gxg-grid-row-actions__padding-top);\n right: var(--gxg-grid-row-actions__right);\n}\n\n/*Selector*/\n/*legend*/\nch-grid-rowset-legend {\n background-color: var(--gxg-grid-rowset-legend__background-color);\n background-color: var(--mer-color_neutral-gray--1100);\n padding-inline-start: var(--gxg-grid-rowset-legend__padding-inline-start);\n padding-inline-end: var(--gxg-grid-rowset-legend__padding-inline-end);\n padding-block-start: var(--gxg-grid-rowset-legend__padding-block-start);\n padding-block-end: var(--gxg-grid-rowset-legend__padding-block-end);\n}\n\nch-grid-rowset-legend {\n margin-inline-start: 0;\n padding-inline-start: calc(var(--gxg-grid-rowset-legend__padding-inline-start) + var(--indent) * (var(--level) - 1));\n display: flex;\n align-items: center;\n gap: var(--gxg-grid-rowset-legend__gap);\n cursor: pointer;\n}\n\n/*caret*/\nch-grid-rowset-legend::part(caret),\nch-grid-cell::part(caret) {\n width: var(--gxg-grid-part-caret__size);\n height: var(--gxg-grid-part-caret__size);\n}\n\nch-grid-cell::part(caret) {\n cursor: pointer;\n margin-inline-end: var(--gxg-grid-part-caret__margin-inline-end);\n}\n\nch-grid-rowset > ch-grid-rowset-legend::part(caret):before,\nch-grid-row > ch-grid-cell::part(caret):before {\n -webkit-mask-image: var(--caretCollapseIconUrl);\n}\n\nch-grid-rowset[collapsed] > ch-grid-rowset-legend::part(caret):before,\nch-grid-row[collapsed] > ch-grid-cell::part(caret):before {\n -webkit-mask-image: var(--caretExpandIconUrl);\n}\n\nch-grid-rowset[collapsed] ch-grid-rowset-legend {\n border-bottom: var(--gxg-grid-base__border-width) solid var(--ds-base-background-color);\n}\n\n/*paginator*/\nch-grid gxg-paginator {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n/*Full-height*/\ngxg-grid[full-height] {\n height: 100%;\n}\ngxg-grid[full-height] ch-grid {\n height: 100%;\n}\n\n/*ellipsis*/\ngxg-grid[ellipsis] ch-grid-cell {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n display: block;\n}\n\n/*ellipsis-cell-wrapper*/\ngxg-grid[ellipsis-cell-wrapper] .cell-wrapper {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n width: inherit;\n}\n\ngxg-grid[ellipsis-cell-wrapper] ch-grid-column::part(bar-resize-split) {\n display: none;\n}","import { Host, h, getAssetPath } from \"@stencil/core\";\nimport state from \"../store\";\nexport class GxgGrid {\n constructor() {\n this.noBorder = false;\n this.fullHeight = false;\n }\n el;\n componentWillLoad() {\n const iconsUrl = getAssetPath(\"./icon-assets/\");\n this.el.style.setProperty(\"--refreshIconUrl\", `url(\"${iconsUrl}gemini-tools/reset.svg\")`);\n this.el.style.setProperty(\"--settingshIconUrl\", `url(\"${iconsUrl}gemini-tools/settings.svg\")`);\n this.el.style.setProperty(\"--barSortAscendingIconUrl\", `url(\"${iconsUrl}navigation/chevron-down.svg\")`);\n this.el.style.setProperty(\"--barSortDescendingIconUrl\", `url(\"${iconsUrl}navigation/chevron-up.svg\")`);\n this.el.style.setProperty(\"--barSettingsButtonIconUrl\", `url(\"${iconsUrl}gemini-tools/settings.svg\")`);\n this.el.style.setProperty(\"--settingsCloseIconUrl\", `url(\"${iconsUrl}gemini-tools/close.svg\")`);\n this.el.style.setProperty(\"--dragIconUrl\", `url(\"${iconsUrl}navigation/drag.svg\")`);\n this.el.style.setProperty(\"--caretCollapseIconUrl\", `url(\"${iconsUrl}gemini-tools/minus.svg\")`);\n this.el.style.setProperty(\"--caretExpandIconUrl\", `url(\"${iconsUrl}gemini-tools/add.svg\")`);\n }\n render() {\n return (h(Host, { class: { large: state.large, \"no-border\": this.noBorder } }, h(\"slot\", null)));\n }\n static get is() { return \"gxg-grid\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"gxg-grid.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"gxg-grid.css\"]\n };\n }\n static get properties() {\n return {\n \"noBorder\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"attribute\": \"no-border\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"fullHeight\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"attribute\": \"full-height\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n//# sourceMappingURL=gxg-grid.js.map\n"],"version":3}
|
|
1
|
+
{"file":"ch-grid.ch-grid-column.ch-grid-column-resize.ch-grid-column-settings.ch-grid-columnset.ch-grid-settings.ch-grid-settings-columns.gxg-grid.entry.cjs.js","mappings":"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","names":["adoptGlobalStyleSheet","focusComposedPath","mouseEventModifierKey","mouseEventHasButtonPressed","MouseEventButtons","MouseEventButton","h","Host","getAssetPath","state"],"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"],"version":3}
|