@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
|
@@ -12,11 +12,26 @@ const store = require('./store-ea3722c0.js');
|
|
|
12
12
|
*/
|
|
13
13
|
class HTMLChGridRowElement extends HTMLElement {
|
|
14
14
|
parentGrid;
|
|
15
|
+
static get observedAttributes() {
|
|
16
|
+
return ["selected", "marked"];
|
|
17
|
+
}
|
|
15
18
|
constructor() {
|
|
16
19
|
super();
|
|
17
20
|
}
|
|
18
21
|
connectedCallback() {
|
|
19
22
|
this.addEventListener("cellCaretClicked", this.cellCaretClickedHandler);
|
|
23
|
+
if (this.selected || this.marked) {
|
|
24
|
+
this.grid.syncRowState(this);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
attributeChangedCallback(name, _oldValue, value) {
|
|
28
|
+
if (name === "selected") {
|
|
29
|
+
this.selected = value !== null ? value !== "false" : false;
|
|
30
|
+
}
|
|
31
|
+
if (name === "marked") {
|
|
32
|
+
this.marked = value !== null ? value !== "false" : false;
|
|
33
|
+
}
|
|
34
|
+
this.grid?.syncRowState(this);
|
|
20
35
|
}
|
|
21
36
|
/**
|
|
22
37
|
* Returns the parent ch-grid element of the grid row.
|
|
@@ -60,7 +75,9 @@ class HTMLChGridRowElement extends HTMLElement {
|
|
|
60
75
|
set selected(value) {
|
|
61
76
|
const selectedClasses = this.grid.rowSelectedClass?.split(" ");
|
|
62
77
|
if (value === true) {
|
|
63
|
-
this.
|
|
78
|
+
if (!this.hasAttribute("selected")) {
|
|
79
|
+
this.setAttribute("selected", "");
|
|
80
|
+
}
|
|
64
81
|
if (this.grid.rowSelectedClass) {
|
|
65
82
|
this.classList.add(...selectedClasses);
|
|
66
83
|
}
|
|
@@ -81,7 +98,9 @@ class HTMLChGridRowElement extends HTMLElement {
|
|
|
81
98
|
set marked(value) {
|
|
82
99
|
const markedClasses = this.grid.rowMarkedClass?.split(" ");
|
|
83
100
|
if (value === true) {
|
|
84
|
-
this.
|
|
101
|
+
if (!this.hasAttribute("marked")) {
|
|
102
|
+
this.setAttribute("marked", "");
|
|
103
|
+
}
|
|
85
104
|
if (this.grid.rowMarkedClass) {
|
|
86
105
|
this.classList.add(...markedClasses);
|
|
87
106
|
}
|
|
@@ -346,12 +365,15 @@ class HTMLChGridCellElement extends HTMLElement {
|
|
|
346
365
|
this.cellType = value;
|
|
347
366
|
}
|
|
348
367
|
if (name === "row-drag") {
|
|
368
|
+
this.cellType = ChGridCellType.Rich;
|
|
349
369
|
this.rowDrag = value !== null ? value !== "false" : false;
|
|
350
370
|
}
|
|
351
371
|
if (name === "row-selector") {
|
|
372
|
+
this.cellType = ChGridCellType.Rich;
|
|
352
373
|
this.rowSelector = value !== null ? value !== "false" : false;
|
|
353
374
|
}
|
|
354
375
|
if (name === "row-actions") {
|
|
376
|
+
this.cellType = ChGridCellType.Rich;
|
|
355
377
|
this.rowActions = value !== null ? value !== "false" : false;
|
|
356
378
|
}
|
|
357
379
|
}
|
|
@@ -406,6 +428,20 @@ class HTMLChGridCellElement extends HTMLElement {
|
|
|
406
428
|
this.removeAttribute("selected");
|
|
407
429
|
}
|
|
408
430
|
}
|
|
431
|
+
/**
|
|
432
|
+
* A boolean value indicating whether the cell is focused.
|
|
433
|
+
*/
|
|
434
|
+
get focused() {
|
|
435
|
+
return this.hasAttribute("focused");
|
|
436
|
+
}
|
|
437
|
+
set focused(value) {
|
|
438
|
+
if (value === true) {
|
|
439
|
+
this.setAttribute("focused", "");
|
|
440
|
+
}
|
|
441
|
+
else {
|
|
442
|
+
this.removeAttribute("focused");
|
|
443
|
+
}
|
|
444
|
+
}
|
|
409
445
|
/**
|
|
410
446
|
* A boolean value indicates whether the grid cell is visible.
|
|
411
447
|
*/
|
|
@@ -521,9 +557,11 @@ class HTMLChGridCellElement extends HTMLElement {
|
|
|
521
557
|
if (this.rowSelector) {
|
|
522
558
|
this.selector = this.shadowRoot.querySelector("[part='selector']");
|
|
523
559
|
this.selector.addEventListener("mousedown", (eventInfo) => eventInfo.stopPropagation());
|
|
560
|
+
this.selector.addEventListener("touchend", (eventInfo) => eventInfo.stopPropagation());
|
|
524
561
|
this.selector.addEventListener("click", this.selectorClickHandler.bind(this));
|
|
525
562
|
this.selectorLabel = this.shadowRoot.querySelector("[part='selector-label']");
|
|
526
563
|
this.selectorLabel.addEventListener("mousedown", (eventInfo) => eventInfo.stopPropagation());
|
|
564
|
+
this.selectorLabel.addEventListener("touchend", (eventInfo) => eventInfo.stopPropagation());
|
|
527
565
|
this.selectorLabel.addEventListener("click", this.selectorLabelClickHandler.bind(this));
|
|
528
566
|
}
|
|
529
567
|
}
|
|
@@ -957,26 +995,45 @@ class ChGridManagerSelection {
|
|
|
957
995
|
selectionStateNone = {
|
|
958
996
|
rowFocused: null,
|
|
959
997
|
rowsSelected: [],
|
|
998
|
+
cellFocused: null,
|
|
960
999
|
cellSelected: null
|
|
961
1000
|
};
|
|
1001
|
+
touch;
|
|
962
1002
|
selecting;
|
|
963
1003
|
selectingRow;
|
|
964
1004
|
selectingCell;
|
|
965
1005
|
constructor(manager) {
|
|
966
1006
|
this.manager = manager;
|
|
967
1007
|
}
|
|
968
|
-
|
|
969
|
-
|
|
1008
|
+
touchStart(touchEvent) {
|
|
1009
|
+
this.touch = {
|
|
1010
|
+
clientX: touchEvent.touches[0].clientX,
|
|
1011
|
+
clientY: touchEvent.touches[0].clientY
|
|
1012
|
+
};
|
|
1013
|
+
}
|
|
1014
|
+
isTouchEndSelection(touchEvent) {
|
|
1015
|
+
return (Math.abs(this.touch.clientX - touchEvent.changedTouches[0].clientX) <
|
|
1016
|
+
10 &&
|
|
1017
|
+
Math.abs(this.touch.clientY - touchEvent.changedTouches[0].clientY) <
|
|
1018
|
+
10 &&
|
|
1019
|
+
touchEvent.cancelable);
|
|
1020
|
+
}
|
|
1021
|
+
select(state, row, cell, select, append, range, context) {
|
|
1022
|
+
const grid = this.manager.grid;
|
|
1023
|
+
if (grid.keyboardNavigationMode === "none" &&
|
|
1024
|
+
grid.rowSelectionMode === "none") {
|
|
970
1025
|
return this.selectionStateNone;
|
|
971
1026
|
}
|
|
972
|
-
if (
|
|
1027
|
+
if (grid.rowSelectionMode === "none") {
|
|
1028
|
+
select = false;
|
|
1029
|
+
}
|
|
1030
|
+
if (grid.rowSelectionMode !== "multiple") {
|
|
973
1031
|
append = false;
|
|
974
1032
|
range = false;
|
|
975
1033
|
}
|
|
976
|
-
let rowFocused = state
|
|
977
|
-
let rowsSelected = state.rowsSelected;
|
|
978
|
-
let cellSelected = state.cellSelected;
|
|
1034
|
+
let { rowFocused, rowsSelected, cellFocused, cellSelected } = state;
|
|
979
1035
|
rowFocused = row;
|
|
1036
|
+
cellFocused = cell;
|
|
980
1037
|
if (range) {
|
|
981
1038
|
const rangeRows = this.manager.getRowsRange(this.rangeStart ?? row, row);
|
|
982
1039
|
if (this.rangeValue) {
|
|
@@ -984,8 +1041,7 @@ class ChGridManagerSelection {
|
|
|
984
1041
|
rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));
|
|
985
1042
|
}
|
|
986
1043
|
else {
|
|
987
|
-
rowsSelected =
|
|
988
|
-
rowsSelected.length === rangeRows.length ? rowsSelected : rangeRows;
|
|
1044
|
+
rowsSelected = this.preserveInstanceIfSame(rangeRows, state.rowsSelected);
|
|
989
1045
|
}
|
|
990
1046
|
cellSelected =
|
|
991
1047
|
cell ||
|
|
@@ -1001,7 +1057,7 @@ class ChGridManagerSelection {
|
|
|
1001
1057
|
this.rangeValue = !row.selected;
|
|
1002
1058
|
if (rowsSelected.includes(row)) {
|
|
1003
1059
|
rowsSelected = rowsSelected.filter(rowSelected => rowSelected !== row);
|
|
1004
|
-
cellSelected = null;
|
|
1060
|
+
cellSelected = state.cellSelected?.row === row ? null : cellSelected;
|
|
1005
1061
|
}
|
|
1006
1062
|
else {
|
|
1007
1063
|
rowsSelected = [...rowsSelected, row];
|
|
@@ -1013,15 +1069,16 @@ class ChGridManagerSelection {
|
|
|
1013
1069
|
else {
|
|
1014
1070
|
this.rangeStart = row;
|
|
1015
1071
|
this.rangeValue = true;
|
|
1016
|
-
if (
|
|
1017
|
-
!(context && rowsSelected.includes(row))) {
|
|
1018
|
-
|
|
1072
|
+
if (select) {
|
|
1073
|
+
if (!(context && state.rowsSelected.includes(row))) {
|
|
1074
|
+
rowsSelected = this.preserveInstanceIfSame([row], state.rowsSelected);
|
|
1075
|
+
}
|
|
1076
|
+
cellSelected =
|
|
1077
|
+
cell ||
|
|
1078
|
+
row.getCell(cellSelected?.column || this.manager.getFirstColumn());
|
|
1019
1079
|
}
|
|
1020
|
-
cellSelected =
|
|
1021
|
-
cell ||
|
|
1022
|
-
row.getCell(cellSelected?.column || this.manager.getFirstColumn());
|
|
1023
1080
|
}
|
|
1024
|
-
return { rowFocused, rowsSelected, cellSelected };
|
|
1081
|
+
return { rowFocused, rowsSelected, cellFocused, cellSelected };
|
|
1025
1082
|
}
|
|
1026
1083
|
selectAll(state, value = true) {
|
|
1027
1084
|
if (this.manager.grid.rowSelectionMode === "none") {
|
|
@@ -1030,18 +1087,19 @@ class ChGridManagerSelection {
|
|
|
1030
1087
|
const rows = this.manager.getRows();
|
|
1031
1088
|
let rowFocused = state.rowFocused;
|
|
1032
1089
|
let rowsSelected = state.rowsSelected;
|
|
1090
|
+
let cellFocused = state.cellFocused;
|
|
1033
1091
|
let cellSelected = state.cellSelected;
|
|
1092
|
+
rowFocused ??= this.manager.getFirstRow();
|
|
1093
|
+
cellFocused ??= rowFocused.getCell(state.cellFocused?.column || this.manager.getFirstColumn());
|
|
1034
1094
|
if (value) {
|
|
1035
|
-
rowFocused ??= this.manager.getFirstRow();
|
|
1036
1095
|
rowsSelected = rows;
|
|
1037
|
-
cellSelected =
|
|
1096
|
+
cellSelected = cellFocused;
|
|
1038
1097
|
}
|
|
1039
1098
|
else {
|
|
1040
|
-
rowFocused ??= this.manager.getFirstRow();
|
|
1041
1099
|
rowsSelected = [];
|
|
1042
1100
|
cellSelected = null;
|
|
1043
1101
|
}
|
|
1044
|
-
return { rowFocused, rowsSelected, cellSelected };
|
|
1102
|
+
return { rowFocused, rowsSelected, cellFocused, cellSelected };
|
|
1045
1103
|
}
|
|
1046
1104
|
selectSet(state, row, cell, value = true) {
|
|
1047
1105
|
let append = true;
|
|
@@ -1053,8 +1111,10 @@ class ChGridManagerSelection {
|
|
|
1053
1111
|
}
|
|
1054
1112
|
let rowFocused = state.rowFocused;
|
|
1055
1113
|
let rowsSelected = state.rowsSelected;
|
|
1114
|
+
let cellFocused = state.cellFocused;
|
|
1056
1115
|
let cellSelected = state.cellSelected;
|
|
1057
1116
|
rowFocused = row;
|
|
1117
|
+
cellFocused = cell;
|
|
1058
1118
|
if (value) {
|
|
1059
1119
|
if (append) {
|
|
1060
1120
|
rowsSelected = rowsSelected.includes(row)
|
|
@@ -1072,224 +1132,67 @@ class ChGridManagerSelection {
|
|
|
1072
1132
|
: rowsSelected.filter(rowSelected => rowSelected !== row);
|
|
1073
1133
|
cellSelected = null;
|
|
1074
1134
|
}
|
|
1075
|
-
return { rowFocused, rowsSelected, cellSelected };
|
|
1135
|
+
return { rowFocused, rowsSelected, cellFocused, cellSelected };
|
|
1076
1136
|
}
|
|
1077
|
-
|
|
1078
|
-
if (this.manager.grid.rowSelectionMode === "none") {
|
|
1079
|
-
return this.selectionStateNone;
|
|
1080
|
-
}
|
|
1081
|
-
if (this.manager.grid.rowSelectionMode !== "multiple") {
|
|
1082
|
-
append = false;
|
|
1083
|
-
}
|
|
1137
|
+
moveFirstRow(state, select, range, append) {
|
|
1084
1138
|
const firstRow = this.manager.getFirstRow();
|
|
1085
|
-
let rowFocused = state.rowFocused;
|
|
1086
|
-
let rowsSelected = state.rowsSelected;
|
|
1087
|
-
let cellSelected = state.cellSelected;
|
|
1088
1139
|
if (firstRow) {
|
|
1089
|
-
|
|
1090
|
-
const rangeRows = this.manager.getRowsRange(rowFocused ?? firstRow, firstRow);
|
|
1091
|
-
rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));
|
|
1092
|
-
}
|
|
1093
|
-
else {
|
|
1094
|
-
rowsSelected = [firstRow];
|
|
1095
|
-
}
|
|
1096
|
-
rowFocused = firstRow;
|
|
1097
|
-
cellSelected = firstRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());
|
|
1140
|
+
return this.select(state, firstRow, firstRow.getCell(state.cellFocused.column), select, append, range, false);
|
|
1098
1141
|
}
|
|
1099
|
-
return
|
|
1142
|
+
return state;
|
|
1100
1143
|
}
|
|
1101
|
-
|
|
1102
|
-
if (this.manager.grid.rowSelectionMode === "none") {
|
|
1103
|
-
return this.selectionStateNone;
|
|
1104
|
-
}
|
|
1105
|
-
if (this.manager.grid.rowSelectionMode !== "multiple") {
|
|
1106
|
-
append = false;
|
|
1107
|
-
}
|
|
1144
|
+
movePreviousRow(state, select, range, append) {
|
|
1108
1145
|
const previousRow = this.manager.getPreviousRow(state.rowFocused);
|
|
1109
|
-
let rowFocused = state.rowFocused;
|
|
1110
|
-
let rowsSelected = state.rowsSelected;
|
|
1111
|
-
let cellSelected = state.cellSelected;
|
|
1112
1146
|
if (previousRow) {
|
|
1113
|
-
|
|
1114
|
-
const sortedRowsSelected = this.sortRowsSelected(rowsSelected);
|
|
1115
|
-
const isContiguousSelection = this.isContiguousSelection(sortedRowsSelected);
|
|
1116
|
-
if (isContiguousSelection && rowFocused === sortedRowsSelected[0]) {
|
|
1117
|
-
rowsSelected = [...rowsSelected, previousRow];
|
|
1118
|
-
}
|
|
1119
|
-
else if (isContiguousSelection &&
|
|
1120
|
-
rowFocused === sortedRowsSelected[sortedRowsSelected.length - 1]) {
|
|
1121
|
-
rowsSelected = rowsSelected.slice(0, -1);
|
|
1122
|
-
}
|
|
1123
|
-
else {
|
|
1124
|
-
rowsSelected = [rowFocused, previousRow];
|
|
1125
|
-
}
|
|
1126
|
-
}
|
|
1127
|
-
else {
|
|
1128
|
-
rowsSelected = [previousRow];
|
|
1129
|
-
}
|
|
1130
|
-
rowFocused = previousRow;
|
|
1131
|
-
cellSelected = previousRow.getCell(cellSelected?.column || this.manager.getFirstColumn());
|
|
1147
|
+
return this.select(state, previousRow, previousRow.getCell(state.cellFocused.column), select, append, range, false);
|
|
1132
1148
|
}
|
|
1133
|
-
return
|
|
1149
|
+
return state;
|
|
1134
1150
|
}
|
|
1135
|
-
|
|
1136
|
-
if (this.manager.grid.rowSelectionMode === "none") {
|
|
1137
|
-
return this.selectionStateNone;
|
|
1138
|
-
}
|
|
1139
|
-
if (this.manager.grid.rowSelectionMode !== "multiple") {
|
|
1140
|
-
append = false;
|
|
1141
|
-
}
|
|
1151
|
+
moveNextRow(state, select, range, append) {
|
|
1142
1152
|
const nextRow = this.manager.getNextRow(state.rowFocused);
|
|
1143
|
-
let rowFocused = state.rowFocused;
|
|
1144
|
-
let rowsSelected = state.rowsSelected;
|
|
1145
|
-
let cellSelected = state.cellSelected;
|
|
1146
1153
|
if (nextRow) {
|
|
1147
|
-
|
|
1148
|
-
const sortedRowsSelected = this.sortRowsSelected(rowsSelected);
|
|
1149
|
-
const isContiguousSelection = this.isContiguousSelection(sortedRowsSelected);
|
|
1150
|
-
if (isContiguousSelection &&
|
|
1151
|
-
rowFocused === sortedRowsSelected[sortedRowsSelected.length - 1]) {
|
|
1152
|
-
rowsSelected = [...rowsSelected, nextRow];
|
|
1153
|
-
}
|
|
1154
|
-
else if (isContiguousSelection &&
|
|
1155
|
-
rowFocused === sortedRowsSelected[0]) {
|
|
1156
|
-
rowsSelected = rowsSelected.slice(1);
|
|
1157
|
-
}
|
|
1158
|
-
else {
|
|
1159
|
-
rowsSelected = [rowFocused, nextRow];
|
|
1160
|
-
}
|
|
1161
|
-
}
|
|
1162
|
-
else {
|
|
1163
|
-
rowsSelected = [nextRow];
|
|
1164
|
-
}
|
|
1165
|
-
rowFocused = nextRow;
|
|
1166
|
-
cellSelected = nextRow.getCell(cellSelected?.column || this.manager.getFirstColumn());
|
|
1154
|
+
return this.select(state, nextRow, nextRow.getCell(state.cellFocused.column), select, append, range, false);
|
|
1167
1155
|
}
|
|
1168
|
-
return
|
|
1156
|
+
return state;
|
|
1169
1157
|
}
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
if (this.manager.grid.rowSelectionMode !== "multiple") {
|
|
1175
|
-
append = false;
|
|
1176
|
-
}
|
|
1177
|
-
const firstRow = this.manager.getLastRow();
|
|
1178
|
-
let rowFocused = state.rowFocused;
|
|
1179
|
-
let rowsSelected = state.rowsSelected;
|
|
1180
|
-
let cellSelected = state.cellSelected;
|
|
1181
|
-
if (firstRow) {
|
|
1182
|
-
if (append) {
|
|
1183
|
-
const rangeRows = this.manager.getRowsRange(rowFocused ?? firstRow, firstRow);
|
|
1184
|
-
rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));
|
|
1185
|
-
}
|
|
1186
|
-
else {
|
|
1187
|
-
rowsSelected = [firstRow];
|
|
1188
|
-
}
|
|
1189
|
-
rowFocused = firstRow;
|
|
1190
|
-
cellSelected = firstRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());
|
|
1158
|
+
moveLastRow(state, select, range, append) {
|
|
1159
|
+
const lastRow = this.manager.getLastRow();
|
|
1160
|
+
if (lastRow) {
|
|
1161
|
+
return this.select(state, lastRow, lastRow.getCell(state.cellFocused.column), select, append, range, false);
|
|
1191
1162
|
}
|
|
1192
|
-
return
|
|
1163
|
+
return state;
|
|
1193
1164
|
}
|
|
1194
|
-
|
|
1195
|
-
if (this.manager.grid.rowSelectionMode === "none") {
|
|
1196
|
-
return this.selectionStateNone;
|
|
1197
|
-
}
|
|
1198
|
-
if (this.manager.grid.rowSelectionMode !== "multiple") {
|
|
1199
|
-
append = false;
|
|
1200
|
-
}
|
|
1165
|
+
movePreviousPageRow(state, select, range, append) {
|
|
1201
1166
|
const rows = this.manager.getRows();
|
|
1202
1167
|
const rowsPerPage = this.manager.getRowsPerPage();
|
|
1203
|
-
|
|
1204
|
-
let rowsSelected = state.rowsSelected;
|
|
1205
|
-
let cellSelected = state.cellSelected;
|
|
1206
|
-
const previousPageRow = rows[Math.max(rows.indexOf(rowFocused) - rowsPerPage, 0)];
|
|
1168
|
+
const previousPageRow = rows[Math.max(rows.indexOf(state.rowFocused) - rowsPerPage, 0)];
|
|
1207
1169
|
if (previousPageRow) {
|
|
1208
|
-
|
|
1209
|
-
const rangeRows = this.manager.getRowsRange(rowFocused ?? previousPageRow, previousPageRow);
|
|
1210
|
-
rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));
|
|
1211
|
-
}
|
|
1212
|
-
else {
|
|
1213
|
-
rowsSelected =
|
|
1214
|
-
rowsSelected.length === 1 && rowsSelected[0] === previousPageRow
|
|
1215
|
-
? rowsSelected
|
|
1216
|
-
: [previousPageRow];
|
|
1217
|
-
}
|
|
1218
|
-
rowFocused = previousPageRow;
|
|
1219
|
-
cellSelected = previousPageRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());
|
|
1170
|
+
return this.select(state, previousPageRow, previousPageRow.getCell(state.cellFocused.column), select, append, range, false);
|
|
1220
1171
|
}
|
|
1221
|
-
return
|
|
1172
|
+
return state;
|
|
1222
1173
|
}
|
|
1223
|
-
|
|
1224
|
-
if (this.manager.grid.rowSelectionMode === "none") {
|
|
1225
|
-
return this.selectionStateNone;
|
|
1226
|
-
}
|
|
1227
|
-
if (this.manager.grid.rowSelectionMode !== "multiple") {
|
|
1228
|
-
append = false;
|
|
1229
|
-
}
|
|
1174
|
+
moveNextPageRow(state, select, range, append) {
|
|
1230
1175
|
const rows = this.manager.getRows();
|
|
1231
1176
|
const rowsPerPage = this.manager.getRowsPerPage();
|
|
1232
|
-
|
|
1233
|
-
let rowsSelected = state.rowsSelected;
|
|
1234
|
-
let cellSelected = state.cellSelected;
|
|
1235
|
-
const nextPageRow = rows[Math.min(rows.indexOf(rowFocused) + rowsPerPage, rows.length - 1)];
|
|
1177
|
+
const nextPageRow = rows[Math.min(rows.indexOf(state.rowFocused) + rowsPerPage, rows.length - 1)];
|
|
1236
1178
|
if (nextPageRow) {
|
|
1237
|
-
|
|
1238
|
-
const rangeRows = this.manager.getRowsRange(rowFocused ?? nextPageRow, nextPageRow);
|
|
1239
|
-
rowsSelected = Array.from(new Set(rowsSelected.concat(rangeRows)));
|
|
1240
|
-
}
|
|
1241
|
-
else {
|
|
1242
|
-
rowsSelected =
|
|
1243
|
-
rowsSelected.length === 1 && rowsSelected[0] === nextPageRow
|
|
1244
|
-
? rowsSelected
|
|
1245
|
-
: [nextPageRow];
|
|
1246
|
-
}
|
|
1247
|
-
rowFocused = nextPageRow;
|
|
1248
|
-
cellSelected = nextPageRow.getCell(state.cellSelected?.column || this.manager.getFirstColumn());
|
|
1179
|
+
return this.select(state, nextPageRow, nextPageRow.getCell(state.cellFocused.column), select, append, range, false);
|
|
1249
1180
|
}
|
|
1250
|
-
return
|
|
1181
|
+
return state;
|
|
1251
1182
|
}
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
const rowFocused = state.rowFocused;
|
|
1257
|
-
let rowsSelected = state.rowsSelected;
|
|
1258
|
-
let cellSelected = state.cellSelected;
|
|
1259
|
-
if (cellSelected) {
|
|
1260
|
-
const nextCell = this.manager.getPreviousCell(cellSelected);
|
|
1261
|
-
if (nextCell) {
|
|
1262
|
-
cellSelected = nextCell;
|
|
1263
|
-
}
|
|
1264
|
-
}
|
|
1265
|
-
else {
|
|
1266
|
-
if (!rowsSelected.includes(rowFocused)) {
|
|
1267
|
-
rowsSelected = [...rowsSelected, rowFocused];
|
|
1268
|
-
}
|
|
1269
|
-
cellSelected ||= rowFocused.getCell(this.manager.getFirstColumn());
|
|
1183
|
+
movePreviousCell(state, select, range) {
|
|
1184
|
+
const previousCell = this.manager.getPreviousCell(state.cellFocused);
|
|
1185
|
+
if (previousCell) {
|
|
1186
|
+
return this.select(state, state.rowFocused, previousCell, select, false, range, false);
|
|
1270
1187
|
}
|
|
1271
|
-
return
|
|
1188
|
+
return state;
|
|
1272
1189
|
}
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
const rowFocused = state.rowFocused;
|
|
1278
|
-
let rowsSelected = state.rowsSelected;
|
|
1279
|
-
let cellSelected = state.cellSelected;
|
|
1280
|
-
if (cellSelected) {
|
|
1281
|
-
const nextCell = this.manager.getNextCell(cellSelected);
|
|
1282
|
-
if (nextCell) {
|
|
1283
|
-
cellSelected = nextCell;
|
|
1284
|
-
}
|
|
1285
|
-
}
|
|
1286
|
-
else {
|
|
1287
|
-
if (!rowsSelected.includes(rowFocused)) {
|
|
1288
|
-
rowsSelected = [...rowsSelected, rowFocused];
|
|
1289
|
-
}
|
|
1290
|
-
cellSelected ||= rowFocused.getCell(this.manager.getFirstColumn());
|
|
1190
|
+
moveNextCell(state, select, range) {
|
|
1191
|
+
const nextCell = this.manager.getNextCell(state.cellFocused);
|
|
1192
|
+
if (nextCell) {
|
|
1193
|
+
return this.select(state, state.rowFocused, nextCell, select, false, range, false);
|
|
1291
1194
|
}
|
|
1292
|
-
return
|
|
1195
|
+
return state;
|
|
1293
1196
|
}
|
|
1294
1197
|
markRow(row, checked, range, currentRowsMarked) {
|
|
1295
1198
|
if (row) {
|
|
@@ -1312,6 +1215,15 @@ class ChGridManagerSelection {
|
|
|
1312
1215
|
}
|
|
1313
1216
|
return currentRowsMarked;
|
|
1314
1217
|
}
|
|
1218
|
+
markRows(rowFocused, rowsMarked, rowsSelected) {
|
|
1219
|
+
const rows = rowsSelected.includes(rowFocused)
|
|
1220
|
+
? rowsSelected
|
|
1221
|
+
: [rowFocused];
|
|
1222
|
+
if (rows.some(row => !row.marked)) {
|
|
1223
|
+
return Array.from(new Set(rowsMarked.concat(rows)));
|
|
1224
|
+
}
|
|
1225
|
+
return rowsMarked.filter(row => !rows.includes(row));
|
|
1226
|
+
}
|
|
1315
1227
|
markAllRows(value = true) {
|
|
1316
1228
|
if (value) {
|
|
1317
1229
|
return this.manager.getRows();
|
|
@@ -1334,42 +1246,26 @@ class ChGridManagerSelection {
|
|
|
1334
1246
|
const cell = row.children[indexColumnSelector];
|
|
1335
1247
|
cell.setSelectorChecked(true);
|
|
1336
1248
|
});
|
|
1337
|
-
|
|
1338
|
-
columnSelector.richRowSelectorState = "";
|
|
1339
|
-
}
|
|
1340
|
-
else if (rows.length === this.manager.getRows().length) {
|
|
1341
|
-
columnSelector.richRowSelectorState = "checked";
|
|
1342
|
-
}
|
|
1343
|
-
else {
|
|
1344
|
-
columnSelector.richRowSelectorState = "indeterminate";
|
|
1345
|
-
}
|
|
1249
|
+
this.syncColumnSelector(rows.length, columnSelector);
|
|
1346
1250
|
}
|
|
1347
1251
|
}
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
const rowBIndex = rows.indexOf(rowB);
|
|
1353
|
-
if (rowAIndex < rowBIndex) {
|
|
1354
|
-
return -1;
|
|
1355
|
-
}
|
|
1356
|
-
if (rowAIndex > rowBIndex) {
|
|
1357
|
-
return 1;
|
|
1358
|
-
}
|
|
1359
|
-
return 0;
|
|
1360
|
-
});
|
|
1361
|
-
}
|
|
1362
|
-
isContiguousSelection(sortedRowsSelected) {
|
|
1363
|
-
const rows = Array.from(this.manager.grid.querySelectorAll("ch-grid-row")).filter(row => row.isVisible());
|
|
1364
|
-
if (sortedRowsSelected.length === 0) {
|
|
1365
|
-
return false;
|
|
1252
|
+
syncColumnSelector(length, columnSelector) {
|
|
1253
|
+
columnSelector ??= this.manager.columns.getColumnSelector();
|
|
1254
|
+
if (length === 0) {
|
|
1255
|
+
columnSelector.richRowSelectorState = "";
|
|
1366
1256
|
}
|
|
1367
|
-
if (
|
|
1368
|
-
|
|
1257
|
+
else if (length === this.manager.getRows().length) {
|
|
1258
|
+
columnSelector.richRowSelectorState = "checked";
|
|
1259
|
+
}
|
|
1260
|
+
else {
|
|
1261
|
+
columnSelector.richRowSelectorState = "indeterminate";
|
|
1369
1262
|
}
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
return
|
|
1263
|
+
}
|
|
1264
|
+
preserveInstanceIfSame(newSelection, oldSelection) {
|
|
1265
|
+
return newSelection.length === oldSelection.length &&
|
|
1266
|
+
newSelection.every(item => oldSelection.includes(item))
|
|
1267
|
+
? oldSelection
|
|
1268
|
+
: newSelection;
|
|
1373
1269
|
}
|
|
1374
1270
|
}
|
|
1375
1271
|
|
|
@@ -1729,9 +1625,6 @@ class ChGridManager {
|
|
|
1729
1625
|
}
|
|
1730
1626
|
return rows;
|
|
1731
1627
|
}
|
|
1732
|
-
getRowsSelected() {
|
|
1733
|
-
return Array.from(this.grid.querySelectorAll(`ch-grid-row[selected]`));
|
|
1734
|
-
}
|
|
1735
1628
|
getRowsRange(start, end) {
|
|
1736
1629
|
const rows = this.getRows();
|
|
1737
1630
|
const indexStart = rows.indexOf(start);
|
|
@@ -1989,12 +1882,14 @@ const ChGrid = class {
|
|
|
1989
1882
|
this.rowEnterPressed = index.createEvent(this, "rowEnterPressed", 7);
|
|
1990
1883
|
this.rowContextMenu = index.createEvent(this, "rowContextMenu", 7);
|
|
1991
1884
|
this.rowFocused = undefined;
|
|
1885
|
+
this.cellFocused = undefined;
|
|
1992
1886
|
this.rowHighlighted = undefined;
|
|
1993
1887
|
this.rowsMarked = [];
|
|
1994
1888
|
this.rowsSelected = [];
|
|
1995
1889
|
this.cellSelected = undefined;
|
|
1996
1890
|
this.gridStyle = undefined;
|
|
1997
1891
|
this.rowSelectionMode = "single";
|
|
1892
|
+
this.keyboardNavigationMode = "select";
|
|
1998
1893
|
this.rowHighlightEnabled = "auto";
|
|
1999
1894
|
this.rowSelectedClass = undefined;
|
|
2000
1895
|
this.rowHighlightedClass = undefined;
|
|
@@ -2013,6 +1908,14 @@ const ChGrid = class {
|
|
|
2013
1908
|
previous.focused = false;
|
|
2014
1909
|
}
|
|
2015
1910
|
}
|
|
1911
|
+
cellFocusedHandler(cell, previous) {
|
|
1912
|
+
if (cell) {
|
|
1913
|
+
cell.focused = true;
|
|
1914
|
+
}
|
|
1915
|
+
if (previous) {
|
|
1916
|
+
previous.focused = false;
|
|
1917
|
+
}
|
|
1918
|
+
}
|
|
2016
1919
|
rowHighlightedHandler(row, previous) {
|
|
2017
1920
|
var _a, _b;
|
|
2018
1921
|
// highlight
|
|
@@ -2032,18 +1935,7 @@ const ChGrid = class {
|
|
|
2032
1935
|
}
|
|
2033
1936
|
rowsMarkedHandler(rows, previous) {
|
|
2034
1937
|
this.manager.selection.syncRowSelector(rows, previous, "mark");
|
|
2035
|
-
this.rowMarkingChanged.emit(
|
|
2036
|
-
rowsId: rows.map(row => row.rowId),
|
|
2037
|
-
addedRowsId: rows
|
|
2038
|
-
.filter(row => !previous.includes(row))
|
|
2039
|
-
.map(row => row.rowId),
|
|
2040
|
-
removedRowsId: previous
|
|
2041
|
-
.filter(row => !rows.includes(row))
|
|
2042
|
-
.map(row => row.rowId),
|
|
2043
|
-
unalteredRowsId: rows
|
|
2044
|
-
.filter(row => previous.includes(row))
|
|
2045
|
-
.map(row => row.rowId)
|
|
2046
|
-
});
|
|
1938
|
+
this.rowMarkingChanged.emit(this.getChangedEventDetail(rows, previous));
|
|
2047
1939
|
}
|
|
2048
1940
|
rowsSelectedHandler(rows, previous) {
|
|
2049
1941
|
if (previous) {
|
|
@@ -2055,7 +1947,7 @@ const ChGrid = class {
|
|
|
2055
1947
|
rows.forEach(row => (row.selected = true));
|
|
2056
1948
|
}
|
|
2057
1949
|
this.manager.selection.syncRowSelector(rows, previous, "select");
|
|
2058
|
-
this.selectionChanged.emit(
|
|
1950
|
+
this.selectionChanged.emit(this.getChangedEventDetail(rows, previous));
|
|
2059
1951
|
}
|
|
2060
1952
|
cellSelectedHandler(cell, previous) {
|
|
2061
1953
|
if (cell) {
|
|
@@ -2073,7 +1965,6 @@ const ChGrid = class {
|
|
|
2073
1965
|
componentWillLoad() {
|
|
2074
1966
|
this.manager = new ChGridManager(this.el);
|
|
2075
1967
|
this.gridStyle = this.manager.getGridStyle();
|
|
2076
|
-
this.rowsSelected = this.manager.getRowsSelected();
|
|
2077
1968
|
}
|
|
2078
1969
|
componentDidLoad() {
|
|
2079
1970
|
this.manager.componentDidLoad(this.gridLayoutElement);
|
|
@@ -2088,14 +1979,18 @@ const ChGrid = class {
|
|
|
2088
1979
|
}
|
|
2089
1980
|
}
|
|
2090
1981
|
focusHandler() {
|
|
2091
|
-
|
|
2092
|
-
|
|
1982
|
+
var _a, _b, _c;
|
|
1983
|
+
if (this.keyboardNavigationMode !== "none") {
|
|
1984
|
+
this.rowFocused || (this.rowFocused = (_a = this.rowsSelected[0]) !== null && _a !== void 0 ? _a : this.manager.getFirstRow());
|
|
1985
|
+
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());
|
|
1986
|
+
this.selectByKeyboardEvent(false, false);
|
|
2093
1987
|
}
|
|
2094
1988
|
}
|
|
2095
1989
|
blurHandler() {
|
|
2096
1990
|
this.rowFocused = null;
|
|
1991
|
+
this.cellFocused = null;
|
|
2097
1992
|
}
|
|
2098
|
-
|
|
1993
|
+
cellFocusedEventHandler(eventInfo) {
|
|
2099
1994
|
const cell = eventInfo.target;
|
|
2100
1995
|
if (this.rowSelectionMode !== "none" && !cell.selected) {
|
|
2101
1996
|
this.setCellSelected(cell);
|
|
@@ -2120,10 +2015,13 @@ const ChGrid = class {
|
|
|
2120
2015
|
}
|
|
2121
2016
|
}
|
|
2122
2017
|
keyDownHandler(eventInfo) {
|
|
2123
|
-
if (helpers.focusComposedPath()[0] === this.el
|
|
2018
|
+
if (helpers.focusComposedPath()[0] === this.el &&
|
|
2019
|
+
this.keyboardNavigationMode !== "none") {
|
|
2020
|
+
const range = eventInfo.shiftKey;
|
|
2021
|
+
const append = helpers.mouseEventModifierKey(eventInfo);
|
|
2124
2022
|
switch (eventInfo.key) {
|
|
2125
2023
|
case " ":
|
|
2126
|
-
this.
|
|
2024
|
+
this.spacePressedEvent(helpers.mouseEventModifierKey(eventInfo), eventInfo.shiftKey);
|
|
2127
2025
|
break;
|
|
2128
2026
|
case "+":
|
|
2129
2027
|
this.setRowCollapsed(this.rowFocused, false);
|
|
@@ -2132,28 +2030,28 @@ const ChGrid = class {
|
|
|
2132
2030
|
this.setRowCollapsed(this.rowFocused, true);
|
|
2133
2031
|
break;
|
|
2134
2032
|
case "Home":
|
|
2135
|
-
this.
|
|
2033
|
+
this.moveByKeyboardEvent(this.manager.selection.moveFirstRow, range, append);
|
|
2136
2034
|
break;
|
|
2137
2035
|
case "End":
|
|
2138
|
-
this.
|
|
2036
|
+
this.moveByKeyboardEvent(this.manager.selection.moveLastRow, range, append);
|
|
2139
2037
|
break;
|
|
2140
2038
|
case "PageUp":
|
|
2141
|
-
this.
|
|
2039
|
+
this.moveByKeyboardEvent(this.manager.selection.movePreviousPageRow, range, append);
|
|
2142
2040
|
break;
|
|
2143
2041
|
case "PageDown":
|
|
2144
|
-
this.
|
|
2042
|
+
this.moveByKeyboardEvent(this.manager.selection.moveNextPageRow, range, append);
|
|
2145
2043
|
break;
|
|
2146
2044
|
case "ArrowUp":
|
|
2147
|
-
this.
|
|
2045
|
+
this.moveByKeyboardEvent(this.manager.selection.movePreviousRow, range, append);
|
|
2148
2046
|
break;
|
|
2149
2047
|
case "ArrowDown":
|
|
2150
|
-
this.
|
|
2048
|
+
this.moveByKeyboardEvent(this.manager.selection.moveNextRow, range, append);
|
|
2151
2049
|
break;
|
|
2152
2050
|
case "ArrowLeft":
|
|
2153
|
-
this.
|
|
2051
|
+
this.moveByKeyboardEvent(this.manager.selection.movePreviousCell, range, append);
|
|
2154
2052
|
break;
|
|
2155
2053
|
case "ArrowRight":
|
|
2156
|
-
this.
|
|
2054
|
+
this.moveByKeyboardEvent(this.manager.selection.moveNextCell, range, append);
|
|
2157
2055
|
break;
|
|
2158
2056
|
case "Enter":
|
|
2159
2057
|
this.enterPressedHandler();
|
|
@@ -2198,17 +2096,15 @@ const ChGrid = class {
|
|
|
2198
2096
|
const row = this.manager.getRowEventTarget(eventInfo);
|
|
2199
2097
|
const cell = this.manager.getCellEventTarget(eventInfo);
|
|
2200
2098
|
if (row) {
|
|
2201
|
-
this.rowClicked.emit({
|
|
2202
|
-
rowId: row.rowId,
|
|
2203
|
-
cellId: cell === null || cell === void 0 ? void 0 : cell.cellId,
|
|
2204
|
-
columnId: cell === null || cell === void 0 ? void 0 : cell.column.columnId
|
|
2205
|
-
});
|
|
2206
2099
|
this.manager.selection.selecting = true;
|
|
2207
2100
|
this.selectByPointerEvent(row, cell, helpers.mouseEventModifierKey(eventInfo), eventInfo.shiftKey, eventInfo.button === helpers.MouseEventButton.RIGHT);
|
|
2208
2101
|
}
|
|
2209
2102
|
}
|
|
2210
2103
|
mouseUpHandler() {
|
|
2211
|
-
this.
|
|
2104
|
+
if (this.manager.selection.selecting) {
|
|
2105
|
+
this.stopSelecting();
|
|
2106
|
+
this.emitRowClicked(this.rowFocused, this.cellFocused);
|
|
2107
|
+
}
|
|
2212
2108
|
}
|
|
2213
2109
|
dblclickHandler(eventInfo) {
|
|
2214
2110
|
const row = this.manager.getRowEventTarget(eventInfo);
|
|
@@ -2221,6 +2117,23 @@ const ChGrid = class {
|
|
|
2221
2117
|
});
|
|
2222
2118
|
}
|
|
2223
2119
|
}
|
|
2120
|
+
touchstartHandler(eventInfo) {
|
|
2121
|
+
this.manager.selection.touchStart(eventInfo);
|
|
2122
|
+
}
|
|
2123
|
+
touchendHandler(eventInfo) {
|
|
2124
|
+
if (eventInfo.cancelable) {
|
|
2125
|
+
eventInfo.preventDefault();
|
|
2126
|
+
}
|
|
2127
|
+
if (this.manager.selection.isTouchEndSelection(eventInfo)) {
|
|
2128
|
+
const columnSelector = this.manager.columns.getColumnSelector();
|
|
2129
|
+
const row = this.manager.getRowEventTarget(eventInfo);
|
|
2130
|
+
const cell = this.manager.getCellEventTarget(eventInfo);
|
|
2131
|
+
if (row) {
|
|
2132
|
+
this.selectByPointerEvent(row, cell, (columnSelector === null || columnSelector === void 0 ? void 0 : columnSelector.richRowSelectorMode) !== "select", false, false);
|
|
2133
|
+
this.emitRowClicked(row, cell);
|
|
2134
|
+
}
|
|
2135
|
+
}
|
|
2136
|
+
}
|
|
2224
2137
|
contextmenuHandler(eventInfo) {
|
|
2225
2138
|
var _a, _b;
|
|
2226
2139
|
let targetRow;
|
|
@@ -2340,6 +2253,16 @@ const ChGrid = class {
|
|
|
2340
2253
|
async getMarkedRows() {
|
|
2341
2254
|
return this.rowsMarked.map(row => row.rowId);
|
|
2342
2255
|
}
|
|
2256
|
+
/**
|
|
2257
|
+
* Retrieves information about the currently focused cell.
|
|
2258
|
+
*/
|
|
2259
|
+
async getFocusedCell() {
|
|
2260
|
+
return {
|
|
2261
|
+
cellId: this.cellFocused ? this.cellFocused.cellId : null,
|
|
2262
|
+
rowId: this.cellFocused ? this.cellFocused.row.rowId : null,
|
|
2263
|
+
columnId: this.cellFocused ? this.cellFocused.column.columnId : null
|
|
2264
|
+
};
|
|
2265
|
+
}
|
|
2343
2266
|
/**
|
|
2344
2267
|
* Retrieves information about the currently selected cell.
|
|
2345
2268
|
*/
|
|
@@ -2358,13 +2281,15 @@ const ChGrid = class {
|
|
|
2358
2281
|
async selectRow(rowId, selected = true) {
|
|
2359
2282
|
const row = this.manager.getRow(rowId);
|
|
2360
2283
|
if (row) {
|
|
2361
|
-
const { rowFocused, rowsSelected, cellSelected } = this.manager.selection.selectSet({
|
|
2284
|
+
const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.selectSet({
|
|
2362
2285
|
rowFocused: this.rowFocused,
|
|
2363
2286
|
rowsSelected: this.rowsSelected,
|
|
2287
|
+
cellFocused: this.cellFocused,
|
|
2364
2288
|
cellSelected: this.cellSelected
|
|
2365
2289
|
}, row, null, selected);
|
|
2366
2290
|
this.rowFocused = rowFocused;
|
|
2367
2291
|
this.rowsSelected = rowsSelected;
|
|
2292
|
+
this.cellFocused = cellFocused;
|
|
2368
2293
|
this.cellSelected = cellSelected;
|
|
2369
2294
|
rowFocused === null || rowFocused === void 0 ? void 0 : rowFocused.ensureVisible();
|
|
2370
2295
|
}
|
|
@@ -2489,76 +2414,155 @@ const ChGrid = class {
|
|
|
2489
2414
|
columnId: nextCell ? nextCell.column.columnId : null
|
|
2490
2415
|
};
|
|
2491
2416
|
}
|
|
2417
|
+
/**
|
|
2418
|
+
* Synchronizes the state of a row in the grid.
|
|
2419
|
+
*/
|
|
2420
|
+
async syncRowState(el) {
|
|
2421
|
+
const row = el;
|
|
2422
|
+
const columnSelector = this.manager.columns.getColumnSelector();
|
|
2423
|
+
if (this.rowSelectionMode !== "none") {
|
|
2424
|
+
this.syncRowStateSelected(row);
|
|
2425
|
+
}
|
|
2426
|
+
if ((columnSelector === null || columnSelector === void 0 ? void 0 : columnSelector.richRowSelectorMode) === "mark") {
|
|
2427
|
+
this.syncRowStateMarked(row);
|
|
2428
|
+
}
|
|
2429
|
+
if (columnSelector) {
|
|
2430
|
+
this.syncRowStateSelector(row, columnSelector);
|
|
2431
|
+
if (columnSelector.richRowSelectorMode === "select") {
|
|
2432
|
+
this.manager.selection.syncColumnSelector(this.rowsSelected.length, columnSelector);
|
|
2433
|
+
}
|
|
2434
|
+
else if (columnSelector.richRowSelectorMode === "mark") {
|
|
2435
|
+
this.manager.selection.syncColumnSelector(this.rowsMarked.length, columnSelector);
|
|
2436
|
+
}
|
|
2437
|
+
}
|
|
2438
|
+
}
|
|
2439
|
+
syncRowStateSelected(row) {
|
|
2440
|
+
if (row.selected && this.rowSelectionMode === "single") {
|
|
2441
|
+
this.rowsSelected[0] = row;
|
|
2442
|
+
}
|
|
2443
|
+
if (row.selected &&
|
|
2444
|
+
this.rowSelectionMode === "multiple" &&
|
|
2445
|
+
!this.rowsSelected.includes(row)) {
|
|
2446
|
+
this.rowsSelected.push(row);
|
|
2447
|
+
}
|
|
2448
|
+
if (!row.selected) {
|
|
2449
|
+
const index = this.rowsSelected.indexOf(row);
|
|
2450
|
+
if (index !== -1) {
|
|
2451
|
+
this.rowsSelected.splice(index, 1);
|
|
2452
|
+
}
|
|
2453
|
+
}
|
|
2454
|
+
}
|
|
2455
|
+
syncRowStateMarked(row) {
|
|
2456
|
+
if (row.marked && !this.rowsMarked.includes(row)) {
|
|
2457
|
+
this.rowsMarked.push(row);
|
|
2458
|
+
}
|
|
2459
|
+
if (!row.marked) {
|
|
2460
|
+
const index = this.rowsMarked.indexOf(row);
|
|
2461
|
+
if (index !== -1) {
|
|
2462
|
+
this.rowsMarked.splice(index, 1);
|
|
2463
|
+
}
|
|
2464
|
+
}
|
|
2465
|
+
}
|
|
2466
|
+
syncRowStateSelector(row, columnSelector) {
|
|
2467
|
+
const cell = row.getCell(columnSelector);
|
|
2468
|
+
const value = (columnSelector.richRowSelectorMode === "select" && row.selected) ||
|
|
2469
|
+
(columnSelector.richRowSelectorMode === "mark" && row.marked);
|
|
2470
|
+
cell.setSelectorChecked(value);
|
|
2471
|
+
}
|
|
2472
|
+
getChangedEventDetail(rows, previous) {
|
|
2473
|
+
return {
|
|
2474
|
+
rowsId: rows.map(row => row.rowId),
|
|
2475
|
+
addedRowsId: rows
|
|
2476
|
+
.filter(row => !previous.includes(row))
|
|
2477
|
+
.map(row => row.rowId),
|
|
2478
|
+
removedRowsId: previous
|
|
2479
|
+
.filter(row => !rows.includes(row))
|
|
2480
|
+
.map(row => row.rowId),
|
|
2481
|
+
unalteredRowsId: rows
|
|
2482
|
+
.filter(row => previous.includes(row))
|
|
2483
|
+
.map(row => row.rowId)
|
|
2484
|
+
};
|
|
2485
|
+
}
|
|
2492
2486
|
enterPressedHandler() {
|
|
2493
|
-
var _a;
|
|
2494
2487
|
if (this.rowFocused) {
|
|
2495
|
-
const cellFocused = ((_a = this.cellSelected) === null || _a === void 0 ? void 0 : _a.row) === this.rowFocused ? this.cellSelected : null;
|
|
2496
2488
|
this.rowEnterPressed.emit({
|
|
2497
2489
|
rowId: this.rowFocused.rowId,
|
|
2498
|
-
cellId: cellFocused ? cellFocused.cellId : null,
|
|
2499
|
-
columnId: cellFocused ? cellFocused.column.columnId : null
|
|
2490
|
+
cellId: this.cellFocused ? this.cellFocused.cellId : null,
|
|
2491
|
+
columnId: this.cellFocused ? this.cellFocused.column.columnId : null
|
|
2500
2492
|
});
|
|
2501
2493
|
}
|
|
2502
2494
|
}
|
|
2503
|
-
|
|
2495
|
+
spacePressedEvent(ctrl, shift) {
|
|
2496
|
+
if (this.keyboardNavigationMode === "focus") {
|
|
2497
|
+
this.selectByKeyboardEvent(ctrl, shift);
|
|
2498
|
+
}
|
|
2499
|
+
else if (this.keyboardNavigationMode === "select") {
|
|
2500
|
+
this.markByKeyboardEvent();
|
|
2501
|
+
}
|
|
2502
|
+
this.emitRowClicked(this.rowFocused, this.cellFocused);
|
|
2503
|
+
}
|
|
2504
|
+
markByKeyboardEvent() {
|
|
2504
2505
|
const columnSelector = this.manager.columns.getColumnSelector();
|
|
2505
2506
|
if ((columnSelector === null || columnSelector === void 0 ? void 0 : columnSelector.richRowSelectorMode) === "mark") {
|
|
2506
|
-
|
|
2507
|
-
if (value) {
|
|
2508
|
-
this.rowsMarked = Array.from(new Set(this.rowsMarked.concat(this.rowsSelected)));
|
|
2509
|
-
}
|
|
2510
|
-
else {
|
|
2511
|
-
this.rowsMarked = this.rowsMarked.filter(row => !this.rowsSelected.includes(row));
|
|
2512
|
-
}
|
|
2507
|
+
this.rowsMarked = this.manager.selection.markRows(this.rowFocused, this.rowsMarked, this.rowsSelected);
|
|
2513
2508
|
}
|
|
2514
2509
|
}
|
|
2510
|
+
selectByKeyboardEvent(append, range) {
|
|
2511
|
+
var _a;
|
|
2512
|
+
const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.select({
|
|
2513
|
+
rowFocused: this.rowFocused,
|
|
2514
|
+
rowsSelected: this.rowsSelected,
|
|
2515
|
+
cellFocused: this.cellFocused,
|
|
2516
|
+
cellSelected: this.cellSelected
|
|
2517
|
+
}, this.rowFocused, this.cellFocused, true, append, range, false);
|
|
2518
|
+
this.rowFocused = rowFocused;
|
|
2519
|
+
this.rowsSelected = rowsSelected;
|
|
2520
|
+
this.cellFocused = cellFocused;
|
|
2521
|
+
this.cellSelected = cellSelected;
|
|
2522
|
+
(_a = (cellFocused || rowFocused)) === null || _a === void 0 ? void 0 : _a.ensureVisible();
|
|
2523
|
+
}
|
|
2515
2524
|
selectByPointerEvent(row, cell, append, range, context) {
|
|
2516
|
-
|
|
2525
|
+
var _a;
|
|
2526
|
+
const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.select({
|
|
2517
2527
|
rowFocused: this.rowFocused,
|
|
2518
2528
|
rowsSelected: this.rowsSelected,
|
|
2529
|
+
cellFocused: this.cellFocused,
|
|
2519
2530
|
cellSelected: this.cellSelected
|
|
2520
|
-
}, row, cell, append, range, context);
|
|
2531
|
+
}, row, cell, true, append, range, context);
|
|
2521
2532
|
this.rowFocused = rowFocused;
|
|
2522
2533
|
this.rowsSelected = rowsSelected;
|
|
2534
|
+
this.cellFocused = cellFocused;
|
|
2523
2535
|
this.cellSelected = cellSelected;
|
|
2524
|
-
|
|
2525
|
-
cellSelected.ensureVisible();
|
|
2526
|
-
}
|
|
2527
|
-
else {
|
|
2528
|
-
rowFocused === null || rowFocused === void 0 ? void 0 : rowFocused.ensureVisible();
|
|
2529
|
-
}
|
|
2536
|
+
(_a = (cellFocused || rowFocused)) === null || _a === void 0 ? void 0 : _a.ensureVisible();
|
|
2530
2537
|
}
|
|
2531
|
-
|
|
2532
|
-
|
|
2538
|
+
moveByKeyboardEvent(fn, range, append) {
|
|
2539
|
+
var _a;
|
|
2540
|
+
const { rowFocused, rowsSelected, cellFocused, cellSelected } = fn.call(this.manager.selection, {
|
|
2533
2541
|
rowFocused: this.rowFocused,
|
|
2534
2542
|
rowsSelected: this.rowsSelected,
|
|
2543
|
+
cellFocused: this.cellFocused,
|
|
2535
2544
|
cellSelected: this.cellSelected
|
|
2536
|
-
},
|
|
2545
|
+
}, this.rowSelectionMode !== "none" &&
|
|
2546
|
+
this.keyboardNavigationMode === "select", this.rowSelectionMode === "multiple" ? range : false, this.rowSelectionMode === "multiple" ? range && append : false);
|
|
2537
2547
|
this.rowFocused = rowFocused;
|
|
2538
2548
|
this.rowsSelected = rowsSelected;
|
|
2549
|
+
this.cellFocused = cellFocused;
|
|
2539
2550
|
this.cellSelected = cellSelected;
|
|
2540
|
-
|
|
2541
|
-
cellSelected.ensureVisible();
|
|
2542
|
-
}
|
|
2543
|
-
else {
|
|
2544
|
-
rowFocused === null || rowFocused === void 0 ? void 0 : rowFocused.ensureVisible();
|
|
2545
|
-
}
|
|
2551
|
+
(_a = (cellFocused || rowFocused)) === null || _a === void 0 ? void 0 : _a.ensureVisible();
|
|
2546
2552
|
}
|
|
2547
2553
|
selectAll(value = true) {
|
|
2548
|
-
|
|
2554
|
+
var _a;
|
|
2555
|
+
const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.selectAll({
|
|
2549
2556
|
rowFocused: this.rowFocused,
|
|
2550
2557
|
rowsSelected: this.rowsSelected,
|
|
2558
|
+
cellFocused: this.cellFocused,
|
|
2551
2559
|
cellSelected: this.cellSelected
|
|
2552
2560
|
}, value);
|
|
2553
2561
|
this.rowFocused = rowFocused;
|
|
2554
2562
|
this.rowsSelected = rowsSelected;
|
|
2563
|
+
this.cellFocused = cellFocused;
|
|
2555
2564
|
this.cellSelected = cellSelected;
|
|
2556
|
-
|
|
2557
|
-
cellSelected.ensureVisible();
|
|
2558
|
-
}
|
|
2559
|
-
else {
|
|
2560
|
-
rowFocused === null || rowFocused === void 0 ? void 0 : rowFocused.ensureVisible();
|
|
2561
|
-
}
|
|
2565
|
+
(_a = (cellFocused || rowFocused)) === null || _a === void 0 ? void 0 : _a.ensureVisible();
|
|
2562
2566
|
}
|
|
2563
2567
|
setRowCollapsed(row, collapsed) {
|
|
2564
2568
|
if (row && collapsed) {
|
|
@@ -2571,15 +2575,25 @@ const ChGrid = class {
|
|
|
2571
2575
|
}
|
|
2572
2576
|
}
|
|
2573
2577
|
setCellSelected(cell, selected = true) {
|
|
2574
|
-
|
|
2578
|
+
var _a;
|
|
2579
|
+
const { rowFocused, rowsSelected, cellFocused, cellSelected } = this.manager.selection.selectSet({
|
|
2575
2580
|
rowFocused: this.rowFocused,
|
|
2576
2581
|
rowsSelected: this.rowsSelected,
|
|
2582
|
+
cellFocused: this.cellFocused,
|
|
2577
2583
|
cellSelected: this.cellSelected
|
|
2578
2584
|
}, cell.row, cell, selected);
|
|
2579
2585
|
this.rowFocused = rowFocused;
|
|
2580
2586
|
this.rowsSelected = rowsSelected;
|
|
2587
|
+
this.cellFocused = cellFocused;
|
|
2581
2588
|
this.cellSelected = cellSelected;
|
|
2582
|
-
rowFocused === null ||
|
|
2589
|
+
(_a = (cellFocused || rowFocused)) === null || _a === void 0 ? void 0 : _a.ensureVisible();
|
|
2590
|
+
}
|
|
2591
|
+
emitRowClicked(row, cell) {
|
|
2592
|
+
this.rowClicked.emit({
|
|
2593
|
+
rowId: row.rowId,
|
|
2594
|
+
cellId: cell === null || cell === void 0 ? void 0 : cell.cellId,
|
|
2595
|
+
columnId: cell === null || cell === void 0 ? void 0 : cell.column.columnId
|
|
2596
|
+
});
|
|
2583
2597
|
}
|
|
2584
2598
|
stopSelecting() {
|
|
2585
2599
|
this.manager.selection.selecting = false;
|
|
@@ -2590,10 +2604,11 @@ const ChGrid = class {
|
|
|
2590
2604
|
return (index.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 " }, index.h("slot", { name: "settings" }, index.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 " }))));
|
|
2591
2605
|
}
|
|
2592
2606
|
render() {
|
|
2593
|
-
return (index.h(index.Host, { tabindex: this.
|
|
2607
|
+
return (index.h(index.Host, { tabindex: this.keyboardNavigationMode !== "none" ? "0" : false }, index.h("header", { part: "header" }, index.h("slot", { name: "header" })), index.h("section", { class: "main", style: this.gridStyle, part: "main", ref: el => (this.gridLayoutElement = el) }, index.h("slot", null)), index.h("aside", null, this.renderSettings(), index.h("slot", { name: "column-display" }), index.h("slot", { name: "row-actions" })), index.h("footer", { part: "footer" }, index.h("slot", { name: "footer" }))));
|
|
2594
2608
|
}
|
|
2595
2609
|
static get watchers() { return {
|
|
2596
2610
|
"rowFocused": ["rowFocusedHandler"],
|
|
2611
|
+
"cellFocused": ["cellFocusedHandler"],
|
|
2597
2612
|
"rowHighlighted": ["rowHighlightedHandler"],
|
|
2598
2613
|
"rowsMarked": ["rowsMarkedHandler"],
|
|
2599
2614
|
"rowsSelected": ["rowsSelectedHandler"],
|
|
@@ -2620,6 +2635,9 @@ const ChGridColumn = class {
|
|
|
2620
2635
|
});
|
|
2621
2636
|
eventInfo.stopPropagation();
|
|
2622
2637
|
};
|
|
2638
|
+
this.selectorTouchEndHandler = (eventInfo) => {
|
|
2639
|
+
eventInfo.stopPropagation();
|
|
2640
|
+
};
|
|
2623
2641
|
index.registerInstance(this, hostRef);
|
|
2624
2642
|
this.columnHiddenChanged = index.createEvent(this, "columnHiddenChanged", 7);
|
|
2625
2643
|
this.columnSizeChanging = index.createEvent(this, "columnSizeChanging", 7);
|
|
@@ -2759,7 +2777,7 @@ const ChGridColumn = class {
|
|
|
2759
2777
|
renderSelector() {
|
|
2760
2778
|
return (index.h("li", { class: "selector", part: "bar-selector", hidden: !(this.columnType === "rich" && this.richRowSelector) }, index.h("label", { part: "selector-label" }, index.h("input", { type: "checkbox", part: ["selector", this.richRowSelectorState]
|
|
2761
2779
|
.filter(part => part !== "")
|
|
2762
|
-
.join(" "), onClick: this.selectorClickHandler, checked: this.richRowSelectorState === "checked", indeterminate: this.richRowSelectorState === "indeterminate" }))));
|
|
2780
|
+
.join(" "), onClick: this.selectorClickHandler, onTouchEnd: this.selectorTouchEndHandler, checked: this.richRowSelectorState === "checked", indeterminate: this.richRowSelectorState === "indeterminate" }))));
|
|
2763
2781
|
}
|
|
2764
2782
|
renderName() {
|
|
2765
2783
|
return (index.h("li", { class: "name", part: "bar-name", title: this.columnTooltip ||
|