@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
|
@@ -8,11 +8,26 @@ import { s as state } from './store-d2c5d5bd.js';
|
|
|
8
8
|
*/
|
|
9
9
|
class HTMLChGridRowElement extends HTMLElement {
|
|
10
10
|
parentGrid;
|
|
11
|
+
static get observedAttributes() {
|
|
12
|
+
return ["selected", "marked"];
|
|
13
|
+
}
|
|
11
14
|
constructor() {
|
|
12
15
|
super();
|
|
13
16
|
}
|
|
14
17
|
connectedCallback() {
|
|
15
18
|
this.addEventListener("cellCaretClicked", this.cellCaretClickedHandler);
|
|
19
|
+
if (this.selected || this.marked) {
|
|
20
|
+
this.grid.syncRowState(this);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
attributeChangedCallback(name, _oldValue, value) {
|
|
24
|
+
if (name === "selected") {
|
|
25
|
+
this.selected = value !== null ? value !== "false" : false;
|
|
26
|
+
}
|
|
27
|
+
if (name === "marked") {
|
|
28
|
+
this.marked = value !== null ? value !== "false" : false;
|
|
29
|
+
}
|
|
30
|
+
this.grid?.syncRowState(this);
|
|
16
31
|
}
|
|
17
32
|
/**
|
|
18
33
|
* Returns the parent ch-grid element of the grid row.
|
|
@@ -56,7 +71,9 @@ class HTMLChGridRowElement extends HTMLElement {
|
|
|
56
71
|
set selected(value) {
|
|
57
72
|
const selectedClasses = this.grid.rowSelectedClass?.split(" ");
|
|
58
73
|
if (value === true) {
|
|
59
|
-
this.
|
|
74
|
+
if (!this.hasAttribute("selected")) {
|
|
75
|
+
this.setAttribute("selected", "");
|
|
76
|
+
}
|
|
60
77
|
if (this.grid.rowSelectedClass) {
|
|
61
78
|
this.classList.add(...selectedClasses);
|
|
62
79
|
}
|
|
@@ -77,7 +94,9 @@ class HTMLChGridRowElement extends HTMLElement {
|
|
|
77
94
|
set marked(value) {
|
|
78
95
|
const markedClasses = this.grid.rowMarkedClass?.split(" ");
|
|
79
96
|
if (value === true) {
|
|
80
|
-
this.
|
|
97
|
+
if (!this.hasAttribute("marked")) {
|
|
98
|
+
this.setAttribute("marked", "");
|
|
99
|
+
}
|
|
81
100
|
if (this.grid.rowMarkedClass) {
|
|
82
101
|
this.classList.add(...markedClasses);
|
|
83
102
|
}
|
|
@@ -342,12 +361,15 @@ class HTMLChGridCellElement extends HTMLElement {
|
|
|
342
361
|
this.cellType = value;
|
|
343
362
|
}
|
|
344
363
|
if (name === "row-drag") {
|
|
364
|
+
this.cellType = ChGridCellType.Rich;
|
|
345
365
|
this.rowDrag = value !== null ? value !== "false" : false;
|
|
346
366
|
}
|
|
347
367
|
if (name === "row-selector") {
|
|
368
|
+
this.cellType = ChGridCellType.Rich;
|
|
348
369
|
this.rowSelector = value !== null ? value !== "false" : false;
|
|
349
370
|
}
|
|
350
371
|
if (name === "row-actions") {
|
|
372
|
+
this.cellType = ChGridCellType.Rich;
|
|
351
373
|
this.rowActions = value !== null ? value !== "false" : false;
|
|
352
374
|
}
|
|
353
375
|
}
|
|
@@ -402,6 +424,20 @@ class HTMLChGridCellElement extends HTMLElement {
|
|
|
402
424
|
this.removeAttribute("selected");
|
|
403
425
|
}
|
|
404
426
|
}
|
|
427
|
+
/**
|
|
428
|
+
* A boolean value indicating whether the cell is focused.
|
|
429
|
+
*/
|
|
430
|
+
get focused() {
|
|
431
|
+
return this.hasAttribute("focused");
|
|
432
|
+
}
|
|
433
|
+
set focused(value) {
|
|
434
|
+
if (value === true) {
|
|
435
|
+
this.setAttribute("focused", "");
|
|
436
|
+
}
|
|
437
|
+
else {
|
|
438
|
+
this.removeAttribute("focused");
|
|
439
|
+
}
|
|
440
|
+
}
|
|
405
441
|
/**
|
|
406
442
|
* A boolean value indicates whether the grid cell is visible.
|
|
407
443
|
*/
|
|
@@ -517,9 +553,11 @@ class HTMLChGridCellElement extends HTMLElement {
|
|
|
517
553
|
if (this.rowSelector) {
|
|
518
554
|
this.selector = this.shadowRoot.querySelector("[part='selector']");
|
|
519
555
|
this.selector.addEventListener("mousedown", (eventInfo) => eventInfo.stopPropagation());
|
|
556
|
+
this.selector.addEventListener("touchend", (eventInfo) => eventInfo.stopPropagation());
|
|
520
557
|
this.selector.addEventListener("click", this.selectorClickHandler.bind(this));
|
|
521
558
|
this.selectorLabel = this.shadowRoot.querySelector("[part='selector-label']");
|
|
522
559
|
this.selectorLabel.addEventListener("mousedown", (eventInfo) => eventInfo.stopPropagation());
|
|
560
|
+
this.selectorLabel.addEventListener("touchend", (eventInfo) => eventInfo.stopPropagation());
|
|
523
561
|
this.selectorLabel.addEventListener("click", this.selectorLabelClickHandler.bind(this));
|
|
524
562
|
}
|
|
525
563
|
}
|
|
@@ -953,26 +991,45 @@ class ChGridManagerSelection {
|
|
|
953
991
|
selectionStateNone = {
|
|
954
992
|
rowFocused: null,
|
|
955
993
|
rowsSelected: [],
|
|
994
|
+
cellFocused: null,
|
|
956
995
|
cellSelected: null
|
|
957
996
|
};
|
|
997
|
+
touch;
|
|
958
998
|
selecting;
|
|
959
999
|
selectingRow;
|
|
960
1000
|
selectingCell;
|
|
961
1001
|
constructor(manager) {
|
|
962
1002
|
this.manager = manager;
|
|
963
1003
|
}
|
|
964
|
-
|
|
965
|
-
|
|
1004
|
+
touchStart(touchEvent) {
|
|
1005
|
+
this.touch = {
|
|
1006
|
+
clientX: touchEvent.touches[0].clientX,
|
|
1007
|
+
clientY: touchEvent.touches[0].clientY
|
|
1008
|
+
};
|
|
1009
|
+
}
|
|
1010
|
+
isTouchEndSelection(touchEvent) {
|
|
1011
|
+
return (Math.abs(this.touch.clientX - touchEvent.changedTouches[0].clientX) <
|
|
1012
|
+
10 &&
|
|
1013
|
+
Math.abs(this.touch.clientY - touchEvent.changedTouches[0].clientY) <
|
|
1014
|
+
10 &&
|
|
1015
|
+
touchEvent.cancelable);
|
|
1016
|
+
}
|
|
1017
|
+
select(state, row, cell, select, append, range, context) {
|
|
1018
|
+
const grid = this.manager.grid;
|
|
1019
|
+
if (grid.keyboardNavigationMode === "none" &&
|
|
1020
|
+
grid.rowSelectionMode === "none") {
|
|
966
1021
|
return this.selectionStateNone;
|
|
967
1022
|
}
|
|
968
|
-
if (
|
|
1023
|
+
if (grid.rowSelectionMode === "none") {
|
|
1024
|
+
select = false;
|
|
1025
|
+
}
|
|
1026
|
+
if (grid.rowSelectionMode !== "multiple") {
|
|
969
1027
|
append = false;
|
|
970
1028
|
range = false;
|
|
971
1029
|
}
|
|
972
|
-
let rowFocused = state
|
|
973
|
-
let rowsSelected = state.rowsSelected;
|
|
974
|
-
let cellSelected = state.cellSelected;
|
|
1030
|
+
let { rowFocused, rowsSelected, cellFocused, cellSelected } = state;
|
|
975
1031
|
rowFocused = row;
|
|
1032
|
+
cellFocused = cell;
|
|
976
1033
|
if (range) {
|
|
977
1034
|
const rangeRows = this.manager.getRowsRange(this.rangeStart ?? row, row);
|
|
978
1035
|
if (this.rangeValue) {
|
|
@@ -980,8 +1037,7 @@ class ChGridManagerSelection {
|
|
|
980
1037
|
rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));
|
|
981
1038
|
}
|
|
982
1039
|
else {
|
|
983
|
-
rowsSelected =
|
|
984
|
-
rowsSelected.length === rangeRows.length ? rowsSelected : rangeRows;
|
|
1040
|
+
rowsSelected = this.preserveInstanceIfSame(rangeRows, state.rowsSelected);
|
|
985
1041
|
}
|
|
986
1042
|
cellSelected =
|
|
987
1043
|
cell ||
|
|
@@ -997,7 +1053,7 @@ class ChGridManagerSelection {
|
|
|
997
1053
|
this.rangeValue = !row.selected;
|
|
998
1054
|
if (rowsSelected.includes(row)) {
|
|
999
1055
|
rowsSelected = rowsSelected.filter(rowSelected => rowSelected !== row);
|
|
1000
|
-
cellSelected = null;
|
|
1056
|
+
cellSelected = state.cellSelected?.row === row ? null : cellSelected;
|
|
1001
1057
|
}
|
|
1002
1058
|
else {
|
|
1003
1059
|
rowsSelected = [...rowsSelected, row];
|
|
@@ -1009,15 +1065,16 @@ class ChGridManagerSelection {
|
|
|
1009
1065
|
else {
|
|
1010
1066
|
this.rangeStart = row;
|
|
1011
1067
|
this.rangeValue = true;
|
|
1012
|
-
if (
|
|
1013
|
-
!(context && rowsSelected.includes(row))) {
|
|
1014
|
-
|
|
1068
|
+
if (select) {
|
|
1069
|
+
if (!(context && state.rowsSelected.includes(row))) {
|
|
1070
|
+
rowsSelected = this.preserveInstanceIfSame([row], state.rowsSelected);
|
|
1071
|
+
}
|
|
1072
|
+
cellSelected =
|
|
1073
|
+
cell ||
|
|
1074
|
+
row.getCell(cellSelected?.column || this.manager.getFirstColumn());
|
|
1015
1075
|
}
|
|
1016
|
-
cellSelected =
|
|
1017
|
-
cell ||
|
|
1018
|
-
row.getCell(cellSelected?.column || this.manager.getFirstColumn());
|
|
1019
1076
|
}
|
|
1020
|
-
return { rowFocused, rowsSelected, cellSelected };
|
|
1077
|
+
return { rowFocused, rowsSelected, cellFocused, cellSelected };
|
|
1021
1078
|
}
|
|
1022
1079
|
selectAll(state, value = true) {
|
|
1023
1080
|
if (this.manager.grid.rowSelectionMode === "none") {
|
|
@@ -1026,18 +1083,19 @@ class ChGridManagerSelection {
|
|
|
1026
1083
|
const rows = this.manager.getRows();
|
|
1027
1084
|
let rowFocused = state.rowFocused;
|
|
1028
1085
|
let rowsSelected = state.rowsSelected;
|
|
1086
|
+
let cellFocused = state.cellFocused;
|
|
1029
1087
|
let cellSelected = state.cellSelected;
|
|
1088
|
+
rowFocused ??= this.manager.getFirstRow();
|
|
1089
|
+
cellFocused ??= rowFocused.getCell(state.cellFocused?.column || this.manager.getFirstColumn());
|
|
1030
1090
|
if (value) {
|
|
1031
|
-
rowFocused ??= this.manager.getFirstRow();
|
|
1032
1091
|
rowsSelected = rows;
|
|
1033
|
-
cellSelected =
|
|
1092
|
+
cellSelected = cellFocused;
|
|
1034
1093
|
}
|
|
1035
1094
|
else {
|
|
1036
|
-
rowFocused ??= this.manager.getFirstRow();
|
|
1037
1095
|
rowsSelected = [];
|
|
1038
1096
|
cellSelected = null;
|
|
1039
1097
|
}
|
|
1040
|
-
return { rowFocused, rowsSelected, cellSelected };
|
|
1098
|
+
return { rowFocused, rowsSelected, cellFocused, cellSelected };
|
|
1041
1099
|
}
|
|
1042
1100
|
selectSet(state, row, cell, value = true) {
|
|
1043
1101
|
let append = true;
|
|
@@ -1049,8 +1107,10 @@ class ChGridManagerSelection {
|
|
|
1049
1107
|
}
|
|
1050
1108
|
let rowFocused = state.rowFocused;
|
|
1051
1109
|
let rowsSelected = state.rowsSelected;
|
|
1110
|
+
let cellFocused = state.cellFocused;
|
|
1052
1111
|
let cellSelected = state.cellSelected;
|
|
1053
1112
|
rowFocused = row;
|
|
1113
|
+
cellFocused = cell;
|
|
1054
1114
|
if (value) {
|
|
1055
1115
|
if (append) {
|
|
1056
1116
|
rowsSelected = rowsSelected.includes(row)
|
|
@@ -1068,224 +1128,67 @@ class ChGridManagerSelection {
|
|
|
1068
1128
|
: rowsSelected.filter(rowSelected => rowSelected !== row);
|
|
1069
1129
|
cellSelected = null;
|
|
1070
1130
|
}
|
|
1071
|
-
return { rowFocused, rowsSelected, cellSelected };
|
|
1131
|
+
return { rowFocused, rowsSelected, cellFocused, cellSelected };
|
|
1072
1132
|
}
|
|
1073
|
-
|
|
1074
|
-
if (this.manager.grid.rowSelectionMode === "none") {
|
|
1075
|
-
return this.selectionStateNone;
|
|
1076
|
-
}
|
|
1077
|
-
if (this.manager.grid.rowSelectionMode !== "multiple") {
|
|
1078
|
-
append = false;
|
|
1079
|
-
}
|
|
1133
|
+
moveFirstRow(state, select, range, append) {
|
|
1080
1134
|
const firstRow = this.manager.getFirstRow();
|
|
1081
|
-
let rowFocused = state.rowFocused;
|
|
1082
|
-
let rowsSelected = state.rowsSelected;
|
|
1083
|
-
let cellSelected = state.cellSelected;
|
|
1084
1135
|
if (firstRow) {
|
|
1085
|
-
|
|
1086
|
-
const rangeRows = this.manager.getRowsRange(rowFocused ?? firstRow, firstRow);
|
|
1087
|
-
rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));
|
|
1088
|
-
}
|
|
1089
|
-
else {
|
|
1090
|
-
rowsSelected = [firstRow];
|
|
1091
|
-
}
|
|
1092
|
-
rowFocused = firstRow;
|
|
1093
|
-
cellSelected = firstRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());
|
|
1136
|
+
return this.select(state, firstRow, firstRow.getCell(state.cellFocused.column), select, append, range, false);
|
|
1094
1137
|
}
|
|
1095
|
-
return
|
|
1138
|
+
return state;
|
|
1096
1139
|
}
|
|
1097
|
-
|
|
1098
|
-
if (this.manager.grid.rowSelectionMode === "none") {
|
|
1099
|
-
return this.selectionStateNone;
|
|
1100
|
-
}
|
|
1101
|
-
if (this.manager.grid.rowSelectionMode !== "multiple") {
|
|
1102
|
-
append = false;
|
|
1103
|
-
}
|
|
1140
|
+
movePreviousRow(state, select, range, append) {
|
|
1104
1141
|
const previousRow = this.manager.getPreviousRow(state.rowFocused);
|
|
1105
|
-
let rowFocused = state.rowFocused;
|
|
1106
|
-
let rowsSelected = state.rowsSelected;
|
|
1107
|
-
let cellSelected = state.cellSelected;
|
|
1108
1142
|
if (previousRow) {
|
|
1109
|
-
|
|
1110
|
-
const sortedRowsSelected = this.sortRowsSelected(rowsSelected);
|
|
1111
|
-
const isContiguousSelection = this.isContiguousSelection(sortedRowsSelected);
|
|
1112
|
-
if (isContiguousSelection && rowFocused === sortedRowsSelected[0]) {
|
|
1113
|
-
rowsSelected = [...rowsSelected, previousRow];
|
|
1114
|
-
}
|
|
1115
|
-
else if (isContiguousSelection &&
|
|
1116
|
-
rowFocused === sortedRowsSelected[sortedRowsSelected.length - 1]) {
|
|
1117
|
-
rowsSelected = rowsSelected.slice(0, -1);
|
|
1118
|
-
}
|
|
1119
|
-
else {
|
|
1120
|
-
rowsSelected = [rowFocused, previousRow];
|
|
1121
|
-
}
|
|
1122
|
-
}
|
|
1123
|
-
else {
|
|
1124
|
-
rowsSelected = [previousRow];
|
|
1125
|
-
}
|
|
1126
|
-
rowFocused = previousRow;
|
|
1127
|
-
cellSelected = previousRow.getCell(cellSelected?.column || this.manager.getFirstColumn());
|
|
1143
|
+
return this.select(state, previousRow, previousRow.getCell(state.cellFocused.column), select, append, range, false);
|
|
1128
1144
|
}
|
|
1129
|
-
return
|
|
1145
|
+
return state;
|
|
1130
1146
|
}
|
|
1131
|
-
|
|
1132
|
-
if (this.manager.grid.rowSelectionMode === "none") {
|
|
1133
|
-
return this.selectionStateNone;
|
|
1134
|
-
}
|
|
1135
|
-
if (this.manager.grid.rowSelectionMode !== "multiple") {
|
|
1136
|
-
append = false;
|
|
1137
|
-
}
|
|
1147
|
+
moveNextRow(state, select, range, append) {
|
|
1138
1148
|
const nextRow = this.manager.getNextRow(state.rowFocused);
|
|
1139
|
-
let rowFocused = state.rowFocused;
|
|
1140
|
-
let rowsSelected = state.rowsSelected;
|
|
1141
|
-
let cellSelected = state.cellSelected;
|
|
1142
1149
|
if (nextRow) {
|
|
1143
|
-
|
|
1144
|
-
const sortedRowsSelected = this.sortRowsSelected(rowsSelected);
|
|
1145
|
-
const isContiguousSelection = this.isContiguousSelection(sortedRowsSelected);
|
|
1146
|
-
if (isContiguousSelection &&
|
|
1147
|
-
rowFocused === sortedRowsSelected[sortedRowsSelected.length - 1]) {
|
|
1148
|
-
rowsSelected = [...rowsSelected, nextRow];
|
|
1149
|
-
}
|
|
1150
|
-
else if (isContiguousSelection &&
|
|
1151
|
-
rowFocused === sortedRowsSelected[0]) {
|
|
1152
|
-
rowsSelected = rowsSelected.slice(1);
|
|
1153
|
-
}
|
|
1154
|
-
else {
|
|
1155
|
-
rowsSelected = [rowFocused, nextRow];
|
|
1156
|
-
}
|
|
1157
|
-
}
|
|
1158
|
-
else {
|
|
1159
|
-
rowsSelected = [nextRow];
|
|
1160
|
-
}
|
|
1161
|
-
rowFocused = nextRow;
|
|
1162
|
-
cellSelected = nextRow.getCell(cellSelected?.column || this.manager.getFirstColumn());
|
|
1150
|
+
return this.select(state, nextRow, nextRow.getCell(state.cellFocused.column), select, append, range, false);
|
|
1163
1151
|
}
|
|
1164
|
-
return
|
|
1152
|
+
return state;
|
|
1165
1153
|
}
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
if (this.manager.grid.rowSelectionMode !== "multiple") {
|
|
1171
|
-
append = false;
|
|
1172
|
-
}
|
|
1173
|
-
const firstRow = this.manager.getLastRow();
|
|
1174
|
-
let rowFocused = state.rowFocused;
|
|
1175
|
-
let rowsSelected = state.rowsSelected;
|
|
1176
|
-
let cellSelected = state.cellSelected;
|
|
1177
|
-
if (firstRow) {
|
|
1178
|
-
if (append) {
|
|
1179
|
-
const rangeRows = this.manager.getRowsRange(rowFocused ?? firstRow, firstRow);
|
|
1180
|
-
rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));
|
|
1181
|
-
}
|
|
1182
|
-
else {
|
|
1183
|
-
rowsSelected = [firstRow];
|
|
1184
|
-
}
|
|
1185
|
-
rowFocused = firstRow;
|
|
1186
|
-
cellSelected = firstRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());
|
|
1154
|
+
moveLastRow(state, select, range, append) {
|
|
1155
|
+
const lastRow = this.manager.getLastRow();
|
|
1156
|
+
if (lastRow) {
|
|
1157
|
+
return this.select(state, lastRow, lastRow.getCell(state.cellFocused.column), select, append, range, false);
|
|
1187
1158
|
}
|
|
1188
|
-
return
|
|
1159
|
+
return state;
|
|
1189
1160
|
}
|
|
1190
|
-
|
|
1191
|
-
if (this.manager.grid.rowSelectionMode === "none") {
|
|
1192
|
-
return this.selectionStateNone;
|
|
1193
|
-
}
|
|
1194
|
-
if (this.manager.grid.rowSelectionMode !== "multiple") {
|
|
1195
|
-
append = false;
|
|
1196
|
-
}
|
|
1161
|
+
movePreviousPageRow(state, select, range, append) {
|
|
1197
1162
|
const rows = this.manager.getRows();
|
|
1198
1163
|
const rowsPerPage = this.manager.getRowsPerPage();
|
|
1199
|
-
|
|
1200
|
-
let rowsSelected = state.rowsSelected;
|
|
1201
|
-
let cellSelected = state.cellSelected;
|
|
1202
|
-
const previousPageRow = rows[Math.max(rows.indexOf(rowFocused) - rowsPerPage, 0)];
|
|
1164
|
+
const previousPageRow = rows[Math.max(rows.indexOf(state.rowFocused) - rowsPerPage, 0)];
|
|
1203
1165
|
if (previousPageRow) {
|
|
1204
|
-
|
|
1205
|
-
const rangeRows = this.manager.getRowsRange(rowFocused ?? previousPageRow, previousPageRow);
|
|
1206
|
-
rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));
|
|
1207
|
-
}
|
|
1208
|
-
else {
|
|
1209
|
-
rowsSelected =
|
|
1210
|
-
rowsSelected.length === 1 && rowsSelected[0] === previousPageRow
|
|
1211
|
-
? rowsSelected
|
|
1212
|
-
: [previousPageRow];
|
|
1213
|
-
}
|
|
1214
|
-
rowFocused = previousPageRow;
|
|
1215
|
-
cellSelected = previousPageRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());
|
|
1166
|
+
return this.select(state, previousPageRow, previousPageRow.getCell(state.cellFocused.column), select, append, range, false);
|
|
1216
1167
|
}
|
|
1217
|
-
return
|
|
1168
|
+
return state;
|
|
1218
1169
|
}
|
|
1219
|
-
|
|
1220
|
-
if (this.manager.grid.rowSelectionMode === "none") {
|
|
1221
|
-
return this.selectionStateNone;
|
|
1222
|
-
}
|
|
1223
|
-
if (this.manager.grid.rowSelectionMode !== "multiple") {
|
|
1224
|
-
append = false;
|
|
1225
|
-
}
|
|
1170
|
+
moveNextPageRow(state, select, range, append) {
|
|
1226
1171
|
const rows = this.manager.getRows();
|
|
1227
1172
|
const rowsPerPage = this.manager.getRowsPerPage();
|
|
1228
|
-
|
|
1229
|
-
let rowsSelected = state.rowsSelected;
|
|
1230
|
-
let cellSelected = state.cellSelected;
|
|
1231
|
-
const nextPageRow = rows[Math.min(rows.indexOf(rowFocused) + rowsPerPage, rows.length - 1)];
|
|
1173
|
+
const nextPageRow = rows[Math.min(rows.indexOf(state.rowFocused) + rowsPerPage, rows.length - 1)];
|
|
1232
1174
|
if (nextPageRow) {
|
|
1233
|
-
|
|
1234
|
-
const rangeRows = this.manager.getRowsRange(rowFocused ?? nextPageRow, nextPageRow);
|
|
1235
|
-
rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));
|
|
1236
|
-
}
|
|
1237
|
-
else {
|
|
1238
|
-
rowsSelected =
|
|
1239
|
-
rowsSelected.length === 1 && rowsSelected[0] === nextPageRow
|
|
1240
|
-
? rowsSelected
|
|
1241
|
-
: [nextPageRow];
|
|
1242
|
-
}
|
|
1243
|
-
rowFocused = nextPageRow;
|
|
1244
|
-
cellSelected = nextPageRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());
|
|
1175
|
+
return this.select(state, nextPageRow, nextPageRow.getCell(state.cellFocused.column), select, append, range, false);
|
|
1245
1176
|
}
|
|
1246
|
-
return
|
|
1177
|
+
return state;
|
|
1247
1178
|
}
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
const rowFocused = state.rowFocused;
|
|
1253
|
-
let rowsSelected = state.rowsSelected;
|
|
1254
|
-
let cellSelected = state.cellSelected;
|
|
1255
|
-
if (cellSelected) {
|
|
1256
|
-
const nextCell = this.manager.getPreviousCell(cellSelected);
|
|
1257
|
-
if (nextCell) {
|
|
1258
|
-
cellSelected = nextCell;
|
|
1259
|
-
}
|
|
1260
|
-
}
|
|
1261
|
-
else {
|
|
1262
|
-
if (!rowsSelected.includes(rowFocused)) {
|
|
1263
|
-
rowsSelected = [...rowsSelected, rowFocused];
|
|
1264
|
-
}
|
|
1265
|
-
cellSelected ||= rowFocused.getCell(this.manager.getFirstColumn());
|
|
1179
|
+
movePreviousCell(state, select, range) {
|
|
1180
|
+
const previousCell = this.manager.getPreviousCell(state.cellFocused);
|
|
1181
|
+
if (previousCell) {
|
|
1182
|
+
return this.select(state, state.rowFocused, previousCell, select, false, range, false);
|
|
1266
1183
|
}
|
|
1267
|
-
return
|
|
1184
|
+
return state;
|
|
1268
1185
|
}
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
const rowFocused = state.rowFocused;
|
|
1274
|
-
let rowsSelected = state.rowsSelected;
|
|
1275
|
-
let cellSelected = state.cellSelected;
|
|
1276
|
-
if (cellSelected) {
|
|
1277
|
-
const nextCell = this.manager.getNextCell(cellSelected);
|
|
1278
|
-
if (nextCell) {
|
|
1279
|
-
cellSelected = nextCell;
|
|
1280
|
-
}
|
|
1281
|
-
}
|
|
1282
|
-
else {
|
|
1283
|
-
if (!rowsSelected.includes(rowFocused)) {
|
|
1284
|
-
rowsSelected = [...rowsSelected, rowFocused];
|
|
1285
|
-
}
|
|
1286
|
-
cellSelected ||= rowFocused.getCell(this.manager.getFirstColumn());
|
|
1186
|
+
moveNextCell(state, select, range) {
|
|
1187
|
+
const nextCell = this.manager.getNextCell(state.cellFocused);
|
|
1188
|
+
if (nextCell) {
|
|
1189
|
+
return this.select(state, state.rowFocused, nextCell, select, false, range, false);
|
|
1287
1190
|
}
|
|
1288
|
-
return
|
|
1191
|
+
return state;
|
|
1289
1192
|
}
|
|
1290
1193
|
markRow(row, checked, range, currentRowsMarked) {
|
|
1291
1194
|
if (row) {
|
|
@@ -1308,6 +1211,15 @@ class ChGridManagerSelection {
|
|
|
1308
1211
|
}
|
|
1309
1212
|
return currentRowsMarked;
|
|
1310
1213
|
}
|
|
1214
|
+
markRows(rowFocused, rowsMarked, rowsSelected) {
|
|
1215
|
+
const rows = rowsSelected.includes(rowFocused)
|
|
1216
|
+
? rowsSelected
|
|
1217
|
+
: [rowFocused];
|
|
1218
|
+
if (rows.some(row => !row.marked)) {
|
|
1219
|
+
return Array.from(new Set(rowsMarked.concat(rows)));
|
|
1220
|
+
}
|
|
1221
|
+
return rowsMarked.filter(row => !rows.includes(row));
|
|
1222
|
+
}
|
|
1311
1223
|
markAllRows(value = true) {
|
|
1312
1224
|
if (value) {
|
|
1313
1225
|
return this.manager.getRows();
|
|
@@ -1330,42 +1242,26 @@ class ChGridManagerSelection {
|
|
|
1330
1242
|
const cell = row.children[indexColumnSelector];
|
|
1331
1243
|
cell.setSelectorChecked(true);
|
|
1332
1244
|
});
|
|
1333
|
-
|
|
1334
|
-
columnSelector.richRowSelectorState = "";
|
|
1335
|
-
}
|
|
1336
|
-
else if (rows.length === this.manager.getRows().length) {
|
|
1337
|
-
columnSelector.richRowSelectorState = "checked";
|
|
1338
|
-
}
|
|
1339
|
-
else {
|
|
1340
|
-
columnSelector.richRowSelectorState = "indeterminate";
|
|
1341
|
-
}
|
|
1245
|
+
this.syncColumnSelector(rows.length, columnSelector);
|
|
1342
1246
|
}
|
|
1343
1247
|
}
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
const rowBIndex = rows.indexOf(rowB);
|
|
1349
|
-
if (rowAIndex < rowBIndex) {
|
|
1350
|
-
return -1;
|
|
1351
|
-
}
|
|
1352
|
-
if (rowAIndex > rowBIndex) {
|
|
1353
|
-
return 1;
|
|
1354
|
-
}
|
|
1355
|
-
return 0;
|
|
1356
|
-
});
|
|
1357
|
-
}
|
|
1358
|
-
isContiguousSelection(sortedRowsSelected) {
|
|
1359
|
-
const rows = Array.from(this.manager.grid.querySelectorAll("ch-grid-row")).filter(row => row.isVisible());
|
|
1360
|
-
if (sortedRowsSelected.length === 0) {
|
|
1361
|
-
return false;
|
|
1248
|
+
syncColumnSelector(length, columnSelector) {
|
|
1249
|
+
columnSelector ??= this.manager.columns.getColumnSelector();
|
|
1250
|
+
if (length === 0) {
|
|
1251
|
+
columnSelector.richRowSelectorState = "";
|
|
1362
1252
|
}
|
|
1363
|
-
if (
|
|
1364
|
-
|
|
1253
|
+
else if (length === this.manager.getRows().length) {
|
|
1254
|
+
columnSelector.richRowSelectorState = "checked";
|
|
1255
|
+
}
|
|
1256
|
+
else {
|
|
1257
|
+
columnSelector.richRowSelectorState = "indeterminate";
|
|
1365
1258
|
}
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
return
|
|
1259
|
+
}
|
|
1260
|
+
preserveInstanceIfSame(newSelection, oldSelection) {
|
|
1261
|
+
return newSelection.length === oldSelection.length &&
|
|
1262
|
+
newSelection.every(item => oldSelection.includes(item))
|
|
1263
|
+
? oldSelection
|
|
1264
|
+
: newSelection;
|
|
1369
1265
|
}
|
|
1370
1266
|
}
|
|
1371
1267
|
|
|
@@ -1725,9 +1621,6 @@ class ChGridManager {
|
|
|
1725
1621
|
}
|
|
1726
1622
|
return rows;
|
|
1727
1623
|
}
|
|
1728
|
-
getRowsSelected() {
|
|
1729
|
-
return Array.from(this.grid.querySelectorAll(`ch-grid-row[selected]`));
|
|
1730
|
-
}
|
|
1731
1624
|
getRowsRange(start, end) {
|
|
1732
1625
|
const rows = this.getRows();
|
|
1733
1626
|
const indexStart = rows.indexOf(start);
|
|
@@ -1985,12 +1878,14 @@ const ChGrid = class {
|
|
|
1985
1878
|
this.rowEnterPressed = createEvent(this, "rowEnterPressed", 7);
|
|
1986
1879
|
this.rowContextMenu = createEvent(this, "rowContextMenu", 7);
|
|
1987
1880
|
this.rowFocused = undefined;
|
|
1881
|
+
this.cellFocused = undefined;
|
|
1988
1882
|
this.rowHighlighted = undefined;
|
|
1989
1883
|
this.rowsMarked = [];
|
|
1990
1884
|
this.rowsSelected = [];
|
|
1991
1885
|
this.cellSelected = undefined;
|
|
1992
1886
|
this.gridStyle = undefined;
|
|
1993
1887
|
this.rowSelectionMode = "single";
|
|
1888
|
+
this.keyboardNavigationMode = "select";
|
|
1994
1889
|
this.rowHighlightEnabled = "auto";
|
|
1995
1890
|
this.rowSelectedClass = undefined;
|
|
1996
1891
|
this.rowHighlightedClass = undefined;
|
|
@@ -2009,6 +1904,14 @@ const ChGrid = class {
|
|
|
2009
1904
|
previous.focused = false;
|
|
2010
1905
|
}
|
|
2011
1906
|
}
|
|
1907
|
+
cellFocusedHandler(cell, previous) {
|
|
1908
|
+
if (cell) {
|
|
1909
|
+
cell.focused = true;
|
|
1910
|
+
}
|
|
1911
|
+
if (previous) {
|
|
1912
|
+
previous.focused = false;
|
|
1913
|
+
}
|
|
1914
|
+
}
|
|
2012
1915
|
rowHighlightedHandler(row, previous) {
|
|
2013
1916
|
var _a, _b;
|
|
2014
1917
|
// highlight
|
|
@@ -2028,18 +1931,7 @@ const ChGrid = class {
|
|
|
2028
1931
|
}
|
|
2029
1932
|
rowsMarkedHandler(rows, previous) {
|
|
2030
1933
|
this.manager.selection.syncRowSelector(rows, previous, "mark");
|
|
2031
|
-
this.rowMarkingChanged.emit(
|
|
2032
|
-
rowsId: rows.map(row => row.rowId),
|
|
2033
|
-
addedRowsId: rows
|
|
2034
|
-
.filter(row => !previous.includes(row))
|
|
2035
|
-
.map(row => row.rowId),
|
|
2036
|
-
removedRowsId: previous
|
|
2037
|
-
.filter(row => !rows.includes(row))
|
|
2038
|
-
.map(row => row.rowId),
|
|
2039
|
-
unalteredRowsId: rows
|
|
2040
|
-
.filter(row => previous.includes(row))
|
|
2041
|
-
.map(row => row.rowId)
|
|
2042
|
-
});
|
|
1934
|
+
this.rowMarkingChanged.emit(this.getChangedEventDetail(rows, previous));
|
|
2043
1935
|
}
|
|
2044
1936
|
rowsSelectedHandler(rows, previous) {
|
|
2045
1937
|
if (previous) {
|
|
@@ -2051,7 +1943,7 @@ const ChGrid = class {
|
|
|
2051
1943
|
rows.forEach(row => (row.selected = true));
|
|
2052
1944
|
}
|
|
2053
1945
|
this.manager.selection.syncRowSelector(rows, previous, "select");
|
|
2054
|
-
this.selectionChanged.emit(
|
|
1946
|
+
this.selectionChanged.emit(this.getChangedEventDetail(rows, previous));
|
|
2055
1947
|
}
|
|
2056
1948
|
cellSelectedHandler(cell, previous) {
|
|
2057
1949
|
if (cell) {
|
|
@@ -2069,7 +1961,6 @@ const ChGrid = class {
|
|
|
2069
1961
|
componentWillLoad() {
|
|
2070
1962
|
this.manager = new ChGridManager(this.el);
|
|
2071
1963
|
this.gridStyle = this.manager.getGridStyle();
|
|
2072
|
-
this.rowsSelected = this.manager.getRowsSelected();
|
|
2073
1964
|
}
|
|
2074
1965
|
componentDidLoad() {
|
|
2075
1966
|
this.manager.componentDidLoad(this.gridLayoutElement);
|
|
@@ -2084,14 +1975,18 @@ const ChGrid = class {
|
|
|
2084
1975
|
}
|
|
2085
1976
|
}
|
|
2086
1977
|
focusHandler() {
|
|
2087
|
-
|
|
2088
|
-
|
|
1978
|
+
var _a, _b, _c;
|
|
1979
|
+
if (this.keyboardNavigationMode !== "none") {
|
|
1980
|
+
this.rowFocused || (this.rowFocused = (_a = this.rowsSelected[0]) !== null && _a !== void 0 ? _a : this.manager.getFirstRow());
|
|
1981
|
+
this.cellFocused = (_b = this.rowFocused) === null || _b === void 0 ? void 0 : _b.getCell(((_c = this.cellSelected) === null || _c === void 0 ? void 0 : _c.column) || this.manager.getFirstColumn());
|
|
1982
|
+
this.selectByKeyboardEvent(false, false);
|
|
2089
1983
|
}
|
|
2090
1984
|
}
|
|
2091
1985
|
blurHandler() {
|
|
2092
1986
|
this.rowFocused = null;
|
|
1987
|
+
this.cellFocused = null;
|
|
2093
1988
|
}
|
|
2094
|
-
|
|
1989
|
+
cellFocusedEventHandler(eventInfo) {
|
|
2095
1990
|
const cell = eventInfo.target;
|
|
2096
1991
|
if (this.rowSelectionMode !== "none" && !cell.selected) {
|
|
2097
1992
|
this.setCellSelected(cell);
|
|
@@ -2116,10 +2011,13 @@ const ChGrid = class {
|
|
|
2116
2011
|
}
|
|
2117
2012
|
}
|
|
2118
2013
|
keyDownHandler(eventInfo) {
|
|
2119
|
-
if (focusComposedPath()[0] === this.el
|
|
2014
|
+
if (focusComposedPath()[0] === this.el &&
|
|
2015
|
+
this.keyboardNavigationMode !== "none") {
|
|
2016
|
+
const range = eventInfo.shiftKey;
|
|
2017
|
+
const append = mouseEventModifierKey(eventInfo);
|
|
2120
2018
|
switch (eventInfo.key) {
|
|
2121
2019
|
case " ":
|
|
2122
|
-
this.
|
|
2020
|
+
this.spacePressedEvent(mouseEventModifierKey(eventInfo), eventInfo.shiftKey);
|
|
2123
2021
|
break;
|
|
2124
2022
|
case "+":
|
|
2125
2023
|
this.setRowCollapsed(this.rowFocused, false);
|
|
@@ -2128,28 +2026,28 @@ const ChGrid = class {
|
|
|
2128
2026
|
this.setRowCollapsed(this.rowFocused, true);
|
|
2129
2027
|
break;
|
|
2130
2028
|
case "Home":
|
|
2131
|
-
this.
|
|
2029
|
+
this.moveByKeyboardEvent(this.manager.selection.moveFirstRow, range, append);
|
|
2132
2030
|
break;
|
|
2133
2031
|
case "End":
|
|
2134
|
-
this.
|
|
2032
|
+
this.moveByKeyboardEvent(this.manager.selection.moveLastRow, range, append);
|
|
2135
2033
|
break;
|
|
2136
2034
|
case "PageUp":
|
|
2137
|
-
this.
|
|
2035
|
+
this.moveByKeyboardEvent(this.manager.selection.movePreviousPageRow, range, append);
|
|
2138
2036
|
break;
|
|
2139
2037
|
case "PageDown":
|
|
2140
|
-
this.
|
|
2038
|
+
this.moveByKeyboardEvent(this.manager.selection.moveNextPageRow, range, append);
|
|
2141
2039
|
break;
|
|
2142
2040
|
case "ArrowUp":
|
|
2143
|
-
this.
|
|
2041
|
+
this.moveByKeyboardEvent(this.manager.selection.movePreviousRow, range, append);
|
|
2144
2042
|
break;
|
|
2145
2043
|
case "ArrowDown":
|
|
2146
|
-
this.
|
|
2044
|
+
this.moveByKeyboardEvent(this.manager.selection.moveNextRow, range, append);
|
|
2147
2045
|
break;
|
|
2148
2046
|
case "ArrowLeft":
|
|
2149
|
-
this.
|
|
2047
|
+
this.moveByKeyboardEvent(this.manager.selection.movePreviousCell, range, append);
|
|
2150
2048
|
break;
|
|
2151
2049
|
case "ArrowRight":
|
|
2152
|
-
this.
|
|
2050
|
+
this.moveByKeyboardEvent(this.manager.selection.moveNextCell, range, append);
|
|
2153
2051
|
break;
|
|
2154
2052
|
case "Enter":
|
|
2155
2053
|
this.enterPressedHandler();
|
|
@@ -2194,17 +2092,15 @@ const ChGrid = class {
|
|
|
2194
2092
|
const row = this.manager.getRowEventTarget(eventInfo);
|
|
2195
2093
|
const cell = this.manager.getCellEventTarget(eventInfo);
|
|
2196
2094
|
if (row) {
|
|
2197
|
-
this.rowClicked.emit({
|
|
2198
|
-
rowId: row.rowId,
|
|
2199
|
-
cellId: cell === null || cell === void 0 ? void 0 : cell.cellId,
|
|
2200
|
-
columnId: cell === null || cell === void 0 ? void 0 : cell.column.columnId
|
|
2201
|
-
});
|
|
2202
2095
|
this.manager.selection.selecting = true;
|
|
2203
2096
|
this.selectByPointerEvent(row, cell, mouseEventModifierKey(eventInfo), eventInfo.shiftKey, eventInfo.button === MouseEventButton.RIGHT);
|
|
2204
2097
|
}
|
|
2205
2098
|
}
|
|
2206
2099
|
mouseUpHandler() {
|
|
2207
|
-
this.
|
|
2100
|
+
if (this.manager.selection.selecting) {
|
|
2101
|
+
this.stopSelecting();
|
|
2102
|
+
this.emitRowClicked(this.rowFocused, this.cellFocused);
|
|
2103
|
+
}
|
|
2208
2104
|
}
|
|
2209
2105
|
dblclickHandler(eventInfo) {
|
|
2210
2106
|
const row = this.manager.getRowEventTarget(eventInfo);
|
|
@@ -2217,6 +2113,23 @@ const ChGrid = class {
|
|
|
2217
2113
|
});
|
|
2218
2114
|
}
|
|
2219
2115
|
}
|
|
2116
|
+
touchstartHandler(eventInfo) {
|
|
2117
|
+
this.manager.selection.touchStart(eventInfo);
|
|
2118
|
+
}
|
|
2119
|
+
touchendHandler(eventInfo) {
|
|
2120
|
+
if (eventInfo.cancelable) {
|
|
2121
|
+
eventInfo.preventDefault();
|
|
2122
|
+
}
|
|
2123
|
+
if (this.manager.selection.isTouchEndSelection(eventInfo)) {
|
|
2124
|
+
const columnSelector = this.manager.columns.getColumnSelector();
|
|
2125
|
+
const row = this.manager.getRowEventTarget(eventInfo);
|
|
2126
|
+
const cell = this.manager.getCellEventTarget(eventInfo);
|
|
2127
|
+
if (row) {
|
|
2128
|
+
this.selectByPointerEvent(row, cell, (columnSelector === null || columnSelector === void 0 ? void 0 : columnSelector.richRowSelectorMode) !== "select", false, false);
|
|
2129
|
+
this.emitRowClicked(row, cell);
|
|
2130
|
+
}
|
|
2131
|
+
}
|
|
2132
|
+
}
|
|
2220
2133
|
contextmenuHandler(eventInfo) {
|
|
2221
2134
|
var _a, _b;
|
|
2222
2135
|
let targetRow;
|
|
@@ -2336,6 +2249,16 @@ const ChGrid = class {
|
|
|
2336
2249
|
async getMarkedRows() {
|
|
2337
2250
|
return this.rowsMarked.map(row => row.rowId);
|
|
2338
2251
|
}
|
|
2252
|
+
/**
|
|
2253
|
+
* Retrieves information about the currently focused cell.
|
|
2254
|
+
*/
|
|
2255
|
+
async getFocusedCell() {
|
|
2256
|
+
return {
|
|
2257
|
+
cellId: this.cellFocused ? this.cellFocused.cellId : null,
|
|
2258
|
+
rowId: this.cellFocused ? this.cellFocused.row.rowId : null,
|
|
2259
|
+
columnId: this.cellFocused ? this.cellFocused.column.columnId : null
|
|
2260
|
+
};
|
|
2261
|
+
}
|
|
2339
2262
|
/**
|
|
2340
2263
|
* Retrieves information about the currently selected cell.
|
|
2341
2264
|
*/
|
|
@@ -2354,13 +2277,15 @@ const ChGrid = class {
|
|
|
2354
2277
|
async selectRow(rowId, selected = true) {
|
|
2355
2278
|
const row = this.manager.getRow(rowId);
|
|
2356
2279
|
if (row) {
|
|
2357
|
-
const { rowFocused, rowsSelected, cellSelected } = this.manager.selection.selectSet({
|
|
2280
|
+
const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.selectSet({
|
|
2358
2281
|
rowFocused: this.rowFocused,
|
|
2359
2282
|
rowsSelected: this.rowsSelected,
|
|
2283
|
+
cellFocused: this.cellFocused,
|
|
2360
2284
|
cellSelected: this.cellSelected
|
|
2361
2285
|
}, row, null, selected);
|
|
2362
2286
|
this.rowFocused = rowFocused;
|
|
2363
2287
|
this.rowsSelected = rowsSelected;
|
|
2288
|
+
this.cellFocused = cellFocused;
|
|
2364
2289
|
this.cellSelected = cellSelected;
|
|
2365
2290
|
rowFocused === null || rowFocused === void 0 ? void 0 : rowFocused.ensureVisible();
|
|
2366
2291
|
}
|
|
@@ -2485,76 +2410,155 @@ const ChGrid = class {
|
|
|
2485
2410
|
columnId: nextCell ? nextCell.column.columnId : null
|
|
2486
2411
|
};
|
|
2487
2412
|
}
|
|
2413
|
+
/**
|
|
2414
|
+
* Synchronizes the state of a row in the grid.
|
|
2415
|
+
*/
|
|
2416
|
+
async syncRowState(el) {
|
|
2417
|
+
const row = el;
|
|
2418
|
+
const columnSelector = this.manager.columns.getColumnSelector();
|
|
2419
|
+
if (this.rowSelectionMode !== "none") {
|
|
2420
|
+
this.syncRowStateSelected(row);
|
|
2421
|
+
}
|
|
2422
|
+
if ((columnSelector === null || columnSelector === void 0 ? void 0 : columnSelector.richRowSelectorMode) === "mark") {
|
|
2423
|
+
this.syncRowStateMarked(row);
|
|
2424
|
+
}
|
|
2425
|
+
if (columnSelector) {
|
|
2426
|
+
this.syncRowStateSelector(row, columnSelector);
|
|
2427
|
+
if (columnSelector.richRowSelectorMode === "select") {
|
|
2428
|
+
this.manager.selection.syncColumnSelector(this.rowsSelected.length, columnSelector);
|
|
2429
|
+
}
|
|
2430
|
+
else if (columnSelector.richRowSelectorMode === "mark") {
|
|
2431
|
+
this.manager.selection.syncColumnSelector(this.rowsMarked.length, columnSelector);
|
|
2432
|
+
}
|
|
2433
|
+
}
|
|
2434
|
+
}
|
|
2435
|
+
syncRowStateSelected(row) {
|
|
2436
|
+
if (row.selected && this.rowSelectionMode === "single") {
|
|
2437
|
+
this.rowsSelected[0] = row;
|
|
2438
|
+
}
|
|
2439
|
+
if (row.selected &&
|
|
2440
|
+
this.rowSelectionMode === "multiple" &&
|
|
2441
|
+
!this.rowsSelected.includes(row)) {
|
|
2442
|
+
this.rowsSelected.push(row);
|
|
2443
|
+
}
|
|
2444
|
+
if (!row.selected) {
|
|
2445
|
+
const index = this.rowsSelected.indexOf(row);
|
|
2446
|
+
if (index !== -1) {
|
|
2447
|
+
this.rowsSelected.splice(index, 1);
|
|
2448
|
+
}
|
|
2449
|
+
}
|
|
2450
|
+
}
|
|
2451
|
+
syncRowStateMarked(row) {
|
|
2452
|
+
if (row.marked && !this.rowsMarked.includes(row)) {
|
|
2453
|
+
this.rowsMarked.push(row);
|
|
2454
|
+
}
|
|
2455
|
+
if (!row.marked) {
|
|
2456
|
+
const index = this.rowsMarked.indexOf(row);
|
|
2457
|
+
if (index !== -1) {
|
|
2458
|
+
this.rowsMarked.splice(index, 1);
|
|
2459
|
+
}
|
|
2460
|
+
}
|
|
2461
|
+
}
|
|
2462
|
+
syncRowStateSelector(row, columnSelector) {
|
|
2463
|
+
const cell = row.getCell(columnSelector);
|
|
2464
|
+
const value = (columnSelector.richRowSelectorMode === "select" && row.selected) ||
|
|
2465
|
+
(columnSelector.richRowSelectorMode === "mark" && row.marked);
|
|
2466
|
+
cell.setSelectorChecked(value);
|
|
2467
|
+
}
|
|
2468
|
+
getChangedEventDetail(rows, previous) {
|
|
2469
|
+
return {
|
|
2470
|
+
rowsId: rows.map(row => row.rowId),
|
|
2471
|
+
addedRowsId: rows
|
|
2472
|
+
.filter(row => !previous.includes(row))
|
|
2473
|
+
.map(row => row.rowId),
|
|
2474
|
+
removedRowsId: previous
|
|
2475
|
+
.filter(row => !rows.includes(row))
|
|
2476
|
+
.map(row => row.rowId),
|
|
2477
|
+
unalteredRowsId: rows
|
|
2478
|
+
.filter(row => previous.includes(row))
|
|
2479
|
+
.map(row => row.rowId)
|
|
2480
|
+
};
|
|
2481
|
+
}
|
|
2488
2482
|
enterPressedHandler() {
|
|
2489
|
-
var _a;
|
|
2490
2483
|
if (this.rowFocused) {
|
|
2491
|
-
const cellFocused = ((_a = this.cellSelected) === null || _a === void 0 ? void 0 : _a.row) === this.rowFocused ? this.cellSelected : null;
|
|
2492
2484
|
this.rowEnterPressed.emit({
|
|
2493
2485
|
rowId: this.rowFocused.rowId,
|
|
2494
|
-
cellId: cellFocused ? cellFocused.cellId : null,
|
|
2495
|
-
columnId: cellFocused ? cellFocused.column.columnId : null
|
|
2486
|
+
cellId: this.cellFocused ? this.cellFocused.cellId : null,
|
|
2487
|
+
columnId: this.cellFocused ? this.cellFocused.column.columnId : null
|
|
2496
2488
|
});
|
|
2497
2489
|
}
|
|
2498
2490
|
}
|
|
2499
|
-
|
|
2491
|
+
spacePressedEvent(ctrl, shift) {
|
|
2492
|
+
if (this.keyboardNavigationMode === "focus") {
|
|
2493
|
+
this.selectByKeyboardEvent(ctrl, shift);
|
|
2494
|
+
}
|
|
2495
|
+
else if (this.keyboardNavigationMode === "select") {
|
|
2496
|
+
this.markByKeyboardEvent();
|
|
2497
|
+
}
|
|
2498
|
+
this.emitRowClicked(this.rowFocused, this.cellFocused);
|
|
2499
|
+
}
|
|
2500
|
+
markByKeyboardEvent() {
|
|
2500
2501
|
const columnSelector = this.manager.columns.getColumnSelector();
|
|
2501
2502
|
if ((columnSelector === null || columnSelector === void 0 ? void 0 : columnSelector.richRowSelectorMode) === "mark") {
|
|
2502
|
-
|
|
2503
|
-
if (value) {
|
|
2504
|
-
this.rowsMarked = Array.from(new Set(this.rowsMarked.concat(this.rowsSelected)));
|
|
2505
|
-
}
|
|
2506
|
-
else {
|
|
2507
|
-
this.rowsMarked = this.rowsMarked.filter(row => !this.rowsSelected.includes(row));
|
|
2508
|
-
}
|
|
2503
|
+
this.rowsMarked = this.manager.selection.markRows(this.rowFocused, this.rowsMarked, this.rowsSelected);
|
|
2509
2504
|
}
|
|
2510
2505
|
}
|
|
2506
|
+
selectByKeyboardEvent(append, range) {
|
|
2507
|
+
var _a;
|
|
2508
|
+
const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.select({
|
|
2509
|
+
rowFocused: this.rowFocused,
|
|
2510
|
+
rowsSelected: this.rowsSelected,
|
|
2511
|
+
cellFocused: this.cellFocused,
|
|
2512
|
+
cellSelected: this.cellSelected
|
|
2513
|
+
}, this.rowFocused, this.cellFocused, true, append, range, false);
|
|
2514
|
+
this.rowFocused = rowFocused;
|
|
2515
|
+
this.rowsSelected = rowsSelected;
|
|
2516
|
+
this.cellFocused = cellFocused;
|
|
2517
|
+
this.cellSelected = cellSelected;
|
|
2518
|
+
(_a = (cellFocused || rowFocused)) === null || _a === void 0 ? void 0 : _a.ensureVisible();
|
|
2519
|
+
}
|
|
2511
2520
|
selectByPointerEvent(row, cell, append, range, context) {
|
|
2512
|
-
|
|
2521
|
+
var _a;
|
|
2522
|
+
const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.select({
|
|
2513
2523
|
rowFocused: this.rowFocused,
|
|
2514
2524
|
rowsSelected: this.rowsSelected,
|
|
2525
|
+
cellFocused: this.cellFocused,
|
|
2515
2526
|
cellSelected: this.cellSelected
|
|
2516
|
-
}, row, cell, append, range, context);
|
|
2527
|
+
}, row, cell, true, append, range, context);
|
|
2517
2528
|
this.rowFocused = rowFocused;
|
|
2518
2529
|
this.rowsSelected = rowsSelected;
|
|
2530
|
+
this.cellFocused = cellFocused;
|
|
2519
2531
|
this.cellSelected = cellSelected;
|
|
2520
|
-
|
|
2521
|
-
cellSelected.ensureVisible();
|
|
2522
|
-
}
|
|
2523
|
-
else {
|
|
2524
|
-
rowFocused === null || rowFocused === void 0 ? void 0 : rowFocused.ensureVisible();
|
|
2525
|
-
}
|
|
2532
|
+
(_a = (cellFocused || rowFocused)) === null || _a === void 0 ? void 0 : _a.ensureVisible();
|
|
2526
2533
|
}
|
|
2527
|
-
|
|
2528
|
-
|
|
2534
|
+
moveByKeyboardEvent(fn, range, append) {
|
|
2535
|
+
var _a;
|
|
2536
|
+
const { rowFocused, rowsSelected, cellFocused, cellSelected } = fn.call(this.manager.selection, {
|
|
2529
2537
|
rowFocused: this.rowFocused,
|
|
2530
2538
|
rowsSelected: this.rowsSelected,
|
|
2539
|
+
cellFocused: this.cellFocused,
|
|
2531
2540
|
cellSelected: this.cellSelected
|
|
2532
|
-
},
|
|
2541
|
+
}, this.rowSelectionMode !== "none" &&
|
|
2542
|
+
this.keyboardNavigationMode === "select", this.rowSelectionMode === "multiple" ? range : false, this.rowSelectionMode === "multiple" ? range && append : false);
|
|
2533
2543
|
this.rowFocused = rowFocused;
|
|
2534
2544
|
this.rowsSelected = rowsSelected;
|
|
2545
|
+
this.cellFocused = cellFocused;
|
|
2535
2546
|
this.cellSelected = cellSelected;
|
|
2536
|
-
|
|
2537
|
-
cellSelected.ensureVisible();
|
|
2538
|
-
}
|
|
2539
|
-
else {
|
|
2540
|
-
rowFocused === null || rowFocused === void 0 ? void 0 : rowFocused.ensureVisible();
|
|
2541
|
-
}
|
|
2547
|
+
(_a = (cellFocused || rowFocused)) === null || _a === void 0 ? void 0 : _a.ensureVisible();
|
|
2542
2548
|
}
|
|
2543
2549
|
selectAll(value = true) {
|
|
2544
|
-
|
|
2550
|
+
var _a;
|
|
2551
|
+
const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.selectAll({
|
|
2545
2552
|
rowFocused: this.rowFocused,
|
|
2546
2553
|
rowsSelected: this.rowsSelected,
|
|
2554
|
+
cellFocused: this.cellFocused,
|
|
2547
2555
|
cellSelected: this.cellSelected
|
|
2548
2556
|
}, value);
|
|
2549
2557
|
this.rowFocused = rowFocused;
|
|
2550
2558
|
this.rowsSelected = rowsSelected;
|
|
2559
|
+
this.cellFocused = cellFocused;
|
|
2551
2560
|
this.cellSelected = cellSelected;
|
|
2552
|
-
|
|
2553
|
-
cellSelected.ensureVisible();
|
|
2554
|
-
}
|
|
2555
|
-
else {
|
|
2556
|
-
rowFocused === null || rowFocused === void 0 ? void 0 : rowFocused.ensureVisible();
|
|
2557
|
-
}
|
|
2561
|
+
(_a = (cellFocused || rowFocused)) === null || _a === void 0 ? void 0 : _a.ensureVisible();
|
|
2558
2562
|
}
|
|
2559
2563
|
setRowCollapsed(row, collapsed) {
|
|
2560
2564
|
if (row && collapsed) {
|
|
@@ -2567,15 +2571,25 @@ const ChGrid = class {
|
|
|
2567
2571
|
}
|
|
2568
2572
|
}
|
|
2569
2573
|
setCellSelected(cell, selected = true) {
|
|
2570
|
-
|
|
2574
|
+
var _a;
|
|
2575
|
+
const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.selectSet({
|
|
2571
2576
|
rowFocused: this.rowFocused,
|
|
2572
2577
|
rowsSelected: this.rowsSelected,
|
|
2578
|
+
cellFocused: this.cellFocused,
|
|
2573
2579
|
cellSelected: this.cellSelected
|
|
2574
2580
|
}, cell.row, cell, selected);
|
|
2575
2581
|
this.rowFocused = rowFocused;
|
|
2576
2582
|
this.rowsSelected = rowsSelected;
|
|
2583
|
+
this.cellFocused = cellFocused;
|
|
2577
2584
|
this.cellSelected = cellSelected;
|
|
2578
|
-
rowFocused === null ||
|
|
2585
|
+
(_a = (cellFocused || rowFocused)) === null || _a === void 0 ? void 0 : _a.ensureVisible();
|
|
2586
|
+
}
|
|
2587
|
+
emitRowClicked(row, cell) {
|
|
2588
|
+
this.rowClicked.emit({
|
|
2589
|
+
rowId: row.rowId,
|
|
2590
|
+
cellId: cell === null || cell === void 0 ? void 0 : cell.cellId,
|
|
2591
|
+
columnId: cell === null || cell === void 0 ? void 0 : cell.column.columnId
|
|
2592
|
+
});
|
|
2579
2593
|
}
|
|
2580
2594
|
stopSelecting() {
|
|
2581
2595
|
this.manager.selection.selecting = false;
|
|
@@ -2586,10 +2600,11 @@ const ChGrid = class {
|
|
|
2586
2600
|
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 " }))));
|
|
2587
2601
|
}
|
|
2588
2602
|
render() {
|
|
2589
|
-
return (h(Host, { tabindex: this.
|
|
2603
|
+
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" }))));
|
|
2590
2604
|
}
|
|
2591
2605
|
static get watchers() { return {
|
|
2592
2606
|
"rowFocused": ["rowFocusedHandler"],
|
|
2607
|
+
"cellFocused": ["cellFocusedHandler"],
|
|
2593
2608
|
"rowHighlighted": ["rowHighlightedHandler"],
|
|
2594
2609
|
"rowsMarked": ["rowsMarkedHandler"],
|
|
2595
2610
|
"rowsSelected": ["rowsSelectedHandler"],
|
|
@@ -2616,6 +2631,9 @@ const ChGridColumn = class {
|
|
|
2616
2631
|
});
|
|
2617
2632
|
eventInfo.stopPropagation();
|
|
2618
2633
|
};
|
|
2634
|
+
this.selectorTouchEndHandler = (eventInfo) => {
|
|
2635
|
+
eventInfo.stopPropagation();
|
|
2636
|
+
};
|
|
2619
2637
|
registerInstance(this, hostRef);
|
|
2620
2638
|
this.columnHiddenChanged = createEvent(this, "columnHiddenChanged", 7);
|
|
2621
2639
|
this.columnSizeChanging = createEvent(this, "columnSizeChanging", 7);
|
|
@@ -2755,7 +2773,7 @@ const ChGridColumn = class {
|
|
|
2755
2773
|
renderSelector() {
|
|
2756
2774
|
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]
|
|
2757
2775
|
.filter(part => part !== "")
|
|
2758
|
-
.join(" "), onClick: this.selectorClickHandler, checked: this.richRowSelectorState === "checked", indeterminate: this.richRowSelectorState === "indeterminate" }))));
|
|
2776
|
+
.join(" "), onClick: this.selectorClickHandler, onTouchEnd: this.selectorTouchEndHandler, checked: this.richRowSelectorState === "checked", indeterminate: this.richRowSelectorState === "indeterminate" }))));
|
|
2759
2777
|
}
|
|
2760
2778
|
renderName() {
|
|
2761
2779
|
return (h("li", { class: "name", part: "bar-name", title: this.columnTooltip ||
|