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