@genexus/genexus-ide-ui 1.0.46 → 1.0.48
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/MERCURY_ASSETS-fbc83c8c.js +9 -0
- package/dist/cjs/MERCURY_ASSETS-fbc83c8c.js.map +1 -0
- package/dist/cjs/{config-b21feeee.js → config-6a768514.js} +3 -3
- package/dist/cjs/config-6a768514.js.map +1 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +19 -17
- package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js +4 -4
- package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-loader.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-navigation-report.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-navigation-report.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +5 -5
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +5 -5
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-object.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +8 -8
- package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/common/config.js +2 -2
- package/dist/collection/common/config.js.map +1 -1
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js +1 -1
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js.map +1 -1
- package/dist/collection/components/_helpers/ide-loader/ide-loader.js +2 -2
- package/dist/collection/components/_helpers/ide-loader/ide-loader.js.map +1 -1
- package/dist/collection/components/current-user-info/current-user-info.css +16 -5
- package/dist/collection/components/current-user-info/current-user-info.js +38 -15
- package/dist/collection/components/current-user-info/current-user-info.js.map +1 -1
- package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.en.json +2 -2
- package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +2 -2
- package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +2 -2
- package/dist/collection/components/data-type-selector/data-type-selector.js +1 -1
- package/dist/collection/components/data-type-selector/data-type-selector.js.map +1 -1
- package/dist/collection/components/design-import/design-import.js +2 -2
- package/dist/collection/components/design-import/design-import.js.map +1 -1
- package/dist/collection/components/kb-manager-import/kb-manager-import.js +2 -2
- package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
- package/dist/collection/components/navigation-report/navigation-report.js +1 -1
- package/dist/collection/components/navigation-report/navigation-report.js.map +1 -1
- package/dist/collection/components/new-environment/new-environment.js +4 -4
- package/dist/collection/components/new-environment/new-environment.js.map +1 -1
- package/dist/collection/components/new-kb/new-kb.js +3 -3
- package/dist/collection/components/new-kb/new-kb.js.map +1 -1
- package/dist/collection/components/new-object/new-object.js +1 -1
- package/dist/collection/components/new-object/new-object.js.map +1 -1
- package/dist/collection/components/object-selector/object-selector.js +1 -1
- package/dist/collection/components/object-selector/object-selector.js.map +1 -1
- package/dist/collection/components/select-user-team/select-user-team.js +1 -1
- package/dist/collection/components/select-user-team/select-user-team.js.map +1 -1
- package/dist/collection/components/sign-in-team/sign-in-team.js +2 -2
- package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -1
- package/dist/collection/components/start-page/start-page.js +7 -7
- package/dist/collection/components/start-page/start-page.js.map +1 -1
- package/dist/collection/components/ww-attributes/ww-attributes.js +1 -1
- package/dist/collection/components/ww-attributes/ww-attributes.js.map +1 -1
- package/dist/components/MERCURY_ASSETS.js +2 -2
- package/dist/components/MERCURY_ASSETS.js.map +1 -1
- package/dist/components/config.js +2 -2
- package/dist/components/config.js.map +1 -1
- package/dist/components/gx-ide-current-user-info.js +19 -16
- package/dist/components/gx-ide-current-user-info.js.map +1 -1
- package/dist/components/gx-ide-data-type-selector.js +1 -1
- package/dist/components/gx-ide-data-type-selector.js.map +1 -1
- package/dist/components/gx-ide-design-import.js +2 -2
- package/dist/components/gx-ide-design-import.js.map +1 -1
- package/dist/components/gx-ide-empty-state2.js +1 -1
- package/dist/components/gx-ide-empty-state2.js.map +1 -1
- package/dist/components/gx-ide-kb-manager-import.js +2 -2
- package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
- package/dist/components/gx-ide-navigation-report.js +1 -1
- package/dist/components/gx-ide-navigation-report.js.map +1 -1
- package/dist/components/gx-ide-new-environment.js +4 -4
- package/dist/components/gx-ide-new-environment.js.map +1 -1
- package/dist/components/gx-ide-new-kb.js +3 -3
- package/dist/components/gx-ide-new-kb.js.map +1 -1
- package/dist/components/gx-ide-new-object.js +1 -1
- package/dist/components/gx-ide-new-object.js.map +1 -1
- package/dist/components/gx-ide-object-selector.js +1 -1
- package/dist/components/gx-ide-object-selector.js.map +1 -1
- package/dist/components/gx-ide-select-user-team.js +1 -1
- package/dist/components/gx-ide-select-user-team.js.map +1 -1
- package/dist/components/gx-ide-sign-in-team.js +2 -2
- package/dist/components/gx-ide-sign-in-team.js.map +1 -1
- package/dist/components/gx-ide-start-page.js +7 -7
- package/dist/components/gx-ide-start-page.js.map +1 -1
- package/dist/components/gx-ide-ww-attributes.js +1 -1
- package/dist/components/gx-ide-ww-attributes.js.map +1 -1
- package/dist/components/ide-loader.js +2 -2
- package/dist/components/ide-loader.js.map +1 -1
- package/dist/esm/MERCURY_ASSETS-91a1db9c.js +7 -0
- package/dist/esm/MERCURY_ASSETS-91a1db9c.js.map +1 -0
- package/dist/esm/{config-ed1f26d7.js → config-1ef9d75a.js} +3 -3
- package/dist/{cjs/config-b21feeee.js.map → esm/config-1ef9d75a.js.map} +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-ai-message.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-import-files.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
- package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
- package/dist/esm/gx-ide-current-user-info.entry.js +19 -17
- package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
- package/dist/esm/gx-ide-data-selector.entry.js +2 -2
- package/dist/esm/gx-ide-data-type-selector.entry.js +2 -2
- package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-design-import.entry.js +4 -4
- package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-empty-state.entry.js +1 -1
- package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
- package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
- package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-import.entry.js +3 -3
- package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-loader.entry.js +2 -2
- package/dist/esm/gx-ide-loader.entry.js.map +1 -1
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js +1 -1
- package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
- package/dist/esm/gx-ide-navigation-report.entry.js +1 -1
- package/dist/esm/gx-ide-navigation-report.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +5 -5
- package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +5 -5
- package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-object.entry.js +2 -2
- package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +3 -3
- package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-references.entry.js +1 -1
- package/dist/esm/gx-ide-select-user-team.entry.js +1 -1
- package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +2 -2
- package/dist/esm/gx-ide-sign-in-team.entry.js +2 -2
- package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +8 -8
- package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
- package/dist/esm/gx-ide-template.entry.js +1 -1
- package/dist/esm/gx-ide-welcome-page.entry.js +1 -1
- package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
- package/dist/esm/gx-ide-ww-attributes.entry.js +3 -3
- package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- 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/current-user-info/langs/current-user-info.lang.en.json +2 -2
- package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +2 -2
- package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +2 -2
- package/dist/genexus-ide-ui/{p-6747cc1e.entry.js → p-0c60c76f.entry.js} +5 -5
- package/dist/genexus-ide-ui/{p-78b90603.js → p-13738332.js} +3 -3
- package/dist/genexus-ide-ui/{p-78b90603.js.map → p-13738332.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-2b4b1dfc.entry.js → p-18317dd7.entry.js} +5 -5
- package/dist/genexus-ide-ui/{p-2b4b1dfc.entry.js.map → p-18317dd7.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-617e65ca.js → p-1986d34d.js} +2190 -20
- package/dist/genexus-ide-ui/p-1986d34d.js.map +1 -0
- package/dist/genexus-ide-ui/{p-793248c8.entry.js → p-1e44952c.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-f50076d3.entry.js → p-1feae6ef.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-092609aa.entry.js → p-22d8de70.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-bb9df26f.entry.js → p-27a2429c.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-3637528d.entry.js → p-2b1634e7.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-d2ab4f70.entry.js → p-2dcfa6ef.entry.js} +32 -32
- package/dist/genexus-ide-ui/{p-d2ab4f70.entry.js.map → p-2dcfa6ef.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-b04a0ae3.entry.js → p-2e043c76.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-b04a0ae3.entry.js.map → p-2e043c76.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-d18718c7.entry.js → p-307e47a1.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-a7027cf7.entry.js → p-37a2e9ac.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-e5fb0c12.entry.js → p-4621ec24.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-efebc74b.entry.js → p-4f6d120f.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-efebc74b.entry.js.map → p-4f6d120f.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-2b658e35.entry.js → p-4f815835.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-64e09524.entry.js → p-64e05f19.entry.js} +39 -39
- package/dist/genexus-ide-ui/p-64e05f19.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-5619120d.entry.js → p-64f2a9f4.entry.js} +4 -4
- package/dist/genexus-ide-ui/{p-5619120d.entry.js.map → p-64f2a9f4.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-10da0eee.entry.js → p-6d8b4f96.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-8bb81d6f.entry.js → p-7153555f.entry.js} +12 -12
- package/dist/genexus-ide-ui/{p-8bb81d6f.entry.js.map → p-7153555f.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-faea4a40.entry.js → p-846c67a1.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-7754ae2e.entry.js → p-86b0cf22.entry.js} +52 -52
- package/dist/genexus-ide-ui/{p-7754ae2e.entry.js.map → p-86b0cf22.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-75ed87db.entry.js → p-8cebb078.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-1693a2d1.entry.js → p-92c51f3e.entry.js} +20 -20
- package/dist/genexus-ide-ui/{p-ab653cc2.entry.js → p-9dbe2323.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ab653cc2.entry.js.map → p-9dbe2323.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-48cc3f73.entry.js → p-9e34f166.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-48cc3f73.entry.js.map → p-9e34f166.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-0a690a6b.entry.js → p-9e78c60c.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-a9d67992.entry.js → p-a1c5775d.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-a27c088d.entry.js → p-a40648dc.entry.js} +41 -39
- package/dist/genexus-ide-ui/p-a40648dc.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-fc61a10f.entry.js → p-a837de2e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-0f08bb20.entry.js → p-a8739942.entry.js} +18 -18
- package/dist/genexus-ide-ui/p-a8739942.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-c0e184da.entry.js → p-aa324232.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-d32a6ca4.entry.js → p-af05e095.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-de797eeb.entry.js → p-b5fa3116.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-c7e6222b.entry.js → p-c1162623.entry.js} +55 -55
- package/dist/genexus-ide-ui/{p-c7e6222b.entry.js.map → p-c1162623.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-5dfd773c.entry.js → p-d9c27591.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-e5712f63.entry.js → p-e2a87cd7.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-6c1928d2.entry.js → p-e36d7f5c.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-6c1928d2.entry.js.map → p-e36d7f5c.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-47e31aba.entry.js → p-e4bbec21.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-c2274796.entry.js → p-e4bd955a.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-d5aa2525.entry.js → p-ec2cb326.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-2137f5fa.entry.js → p-ec6129c7.entry.js} +14 -14
- package/dist/genexus-ide-ui/{p-2137f5fa.entry.js.map → p-ec6129c7.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-ccbd4dab.entry.js → p-f1cc5d30.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-8ea94a5e.entry.js → p-f252dd07.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-6563141c.entry.js → p-f827b9b8.entry.js} +2 -2
- package/dist/types/components/current-user-info/current-user-info.d.ts +9 -0
- package/dist/types/components.d.ts +10 -2
- package/package.json +5 -5
- package/dist/cjs/MERCURY_ASSETS-27fcab57.js +0 -9
- package/dist/cjs/MERCURY_ASSETS-27fcab57.js.map +0 -1
- package/dist/esm/MERCURY_ASSETS-845caae6.js +0 -7
- package/dist/esm/MERCURY_ASSETS-845caae6.js.map +0 -1
- package/dist/esm/config-ed1f26d7.js.map +0 -1
- package/dist/genexus-ide-ui/p-0f08bb20.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-617e65ca.js.map +0 -1
- package/dist/genexus-ide-ui/p-64e09524.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-a27c088d.entry.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-6747cc1e.entry.js.map → p-0c60c76f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-793248c8.entry.js.map → p-1e44952c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f50076d3.entry.js.map → p-1feae6ef.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-092609aa.entry.js.map → p-22d8de70.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-bb9df26f.entry.js.map → p-27a2429c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3637528d.entry.js.map → p-2b1634e7.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d18718c7.entry.js.map → p-307e47a1.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a7027cf7.entry.js.map → p-37a2e9ac.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e5fb0c12.entry.js.map → p-4621ec24.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2b658e35.entry.js.map → p-4f815835.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-10da0eee.entry.js.map → p-6d8b4f96.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-faea4a40.entry.js.map → p-846c67a1.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-75ed87db.entry.js.map → p-8cebb078.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-1693a2d1.entry.js.map → p-92c51f3e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0a690a6b.entry.js.map → p-9e78c60c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a9d67992.entry.js.map → p-a1c5775d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-fc61a10f.entry.js.map → p-a837de2e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c0e184da.entry.js.map → p-aa324232.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d32a6ca4.entry.js.map → p-af05e095.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-de797eeb.entry.js.map → p-b5fa3116.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-5dfd773c.entry.js.map → p-d9c27591.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e5712f63.entry.js.map → p-e2a87cd7.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-47e31aba.entry.js.map → p-e4bbec21.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c2274796.entry.js.map → p-e4bd955a.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d5aa2525.entry.js.map → p-ec2cb326.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ccbd4dab.entry.js.map → p-f1cc5d30.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-8ea94a5e.entry.js.map → p-f252dd07.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-6563141c.entry.js.map → p-f827b9b8.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mapOptionsToComboBoxItemModel","options","map","option","value","id","caption","label","startImgSrc","_a","iconName","wwAttributesCss","CSS_BUNDLES","FILTER_ICON","getIconPath","category","name","colorType","GxIdeWWAttributes","_GxIdeWWAttributes__componentLocale","set","this","_GxIdeWWAttributes_chGridEl","_GxIdeWWAttributes_contextMenuCallbackHandler","ev","contextMenuCallback","selection","selectedAttributesIds","clientX","clientY","_GxIdeWWAttributes_deleteSelectionCallbackHandle","deleteSelectionCallback","_GxIdeWWAttributes_deselectAll","__classPrivateFieldGet","selectAllRows","_GxIdeWWAttributes_getAttributes","loading","filters","trim","type","object","loadCallback","then","items","attributes","length","call","_GxIdeWWAttributes_listenChanges","addEventListener","detail","rowsId","selectionChangeCallback","preventDefault","stopPropagation","_GxIdeWWAttributes_openSelectionCallbackHandle","openSelectionCallback","_GxIdeWWAttributes_entityCallbackHandler","async","result","objectActionCallback","iconSrc","Promise","resolve","_GxIdeWWAttributes_entityValueChangedHandler","event","_GxIdeWWAttributes_renderAttributesGrid","tabularGridEmpty","h","class","main","ref","el","__classPrivateFieldSet","part","settingable","size","config","tabularGrid","colSize","maxContent","tableHead","auto","description","_GxIdeWWAttributes_evaluateAttributesGridContent","loaderTitle","loader","title","show","attr","rowid","src","icon","stateIconSrc","stateTitle","emptyStateTitle","isAnimated","_GxIdeWWAttributes_renderFilter","htmlFor","filter","debounce","onInput","_GxIdeWWAttributes_nameInputHandler","disabled","types","model","_GxIdeWWAttributes_typeInputHandler","labelPosition","defaultValue","selectEntityCallback","onValueChanged","_GxIdeWWAttributes_selectAll","e","componentWillLoad","Locale","getComponentStrings","componentDidLoad","keyDownHandler","eventInfo","document","activeElement","key","reload","validate","isValid","render","btnDisabled","matchingAttributesLabel","matchingAttribute","matchingAttributes","attributesLength","_b","Host","onClick","footer","btnSelectAll"],"sources":["src/components/ww-attributes/helpers.tsx","src/components/ww-attributes/ww-attributes.scss?tag=gx-ide-ww-attributes&encapsulation=shadow","src/components/ww-attributes/ww-attributes.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../..\";\n\nexport const mapOptionsToComboBoxItemModel = (\n options: GxOption[]\n): ComboBoxModel => {\n return options.map(option => {\n return {\n value: option.id,\n caption: option.label,\n startImgSrc: option.iconName ?? \"\"\n };\n });\n};\n","@import \"../../../node_modules/@genexus/mercury/dist/mercury.scss\"; // for the tabular-grid-cell-layout mixin\n\n$nameInlineSize: 40px;\n$moreBtnInlineSize: 64px;\n\n:host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n// Header\n.header {\n grid-template:\n \"name type\" max-content\n \"object object\" max-content;\n grid-template-columns: 1fr 1fr;\n}\n.name__field {\n grid-area: name;\n}\n.name__label {\n inline-size: $nameInlineSize;\n}\n.type__field {\n grid-area: type;\n}\n.more__btn {\n grid-area: more;\n inline-size: $moreBtnInlineSize;\n}\n.object-selector__field {\n grid-area: object;\n}\n\n// Main\n.main {\n overflow: auto;\n}\n\nch-tabular-grid.tabular-grid--empty::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-row\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n\n// WA: remove this when Mercury removes margin from p elements\n.matching-attributes {\n margin: 0;\n}\n","/* eslint-disable @stencil-community/own-props-must-be-private */\n// Stencil\nimport {\n Component,\n Element,\n Host,\n Listen,\n Method,\n Prop,\n State,\n h\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n// Custom Imports\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo, EntityData, GxOption } from \"../../common/types\";\nimport { mapOptionsToComboBoxItemModel } from \"./helpers\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\nimport HTMLChTabularGridRowsetElement from \"@genexus/chameleon-controls-library/dist/types/components/tabular-grid/rowset/tabular-grid-rowset\";\nimport { GxIdeEntitySelectorCustomEvent } from \"../../components\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/edit\",\n \"components/combo-box\",\n \"components/tabular-grid\",\n \"components/icon\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\n\n@Component({\n tag: \"gx-ide-ww-attributes\",\n styleUrl: \"ww-attributes.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/ww-attributes\"]\n})\nexport class GxIdeWWAttributes {\n /**\n * Component hard-coded strings translations.\n */\n #_componentLocale: any;\n\n @Element() el: HTMLGxIdeWwAttributesElement;\n\n /* References needed to collect data */\n #chGridEl!: HTMLChTabularGridElement;\n\n /**\n * Attributes rendered in the table\n */\n @State() attributes: AttributeData[];\n\n /**\n * Selected attributes in the table of attributes\n */\n @State() selectedAttributesIds: string[] = [];\n\n /**\n * Show or hide advanced filters\n */\n @State() filterMore = false;\n\n /**\n * The attribute filter name\n */\n @State() name: string = \"\";\n\n /**\n * True if loadCallback hasn't been resolved yet\n */\n @State() loading: boolean = true;\n\n /**\n * The attribute object value\n */\n @State() object: EntityData;\n\n /**\n * The attribute filter type value\n */\n @State() type: string;\n\n /**\n * Callback invoked when user right-clicks on the grid\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n /**\n * Callback invoked when user deletes an object\n */\n @Prop() readonly deleteSelectionCallback!: DeleteSelectionCallback;\n\n /**\n * Callback invoked when user filters the objects\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Callback invoked when user executes filter action\n */\n @Prop() readonly objectActionCallback!: ObjectActionCallback;\n\n /**\n * Objects rendered in the object selector\n */\n @Prop() readonly objects!: GxOption[];\n\n /**\n * Callback invoked when user opens the selection dialog\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Callback invoked when user selects or deselects an object\n */\n @Prop() readonly selectionChangeCallback!: SelectionChangeCallback;\n\n /**\n * Types rendered in the filter type selector\n */\n @Prop() readonly types!: GxOption[];\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.#listenChanges();\n this.type = this.types[0].id; // before #getAttributes\n this.#getAttributes();\n }\n\n @Listen(\"keydown\", { passive: true })\n keyDownHandler(eventInfo: KeyboardEvent) {\n if (document.activeElement === this.el) {\n switch (eventInfo.key) {\n case \"Enter\":\n this.#openSelectionCallbackHandle();\n break;\n case \"Delete\":\n this.#deleteSelectionCallbackHandle();\n break;\n }\n }\n }\n\n /**\n * Reloads the view, refreshing the filters and attributes table.\n */\n @Method()\n async reload(): Promise<void> {\n this.name = \"\";\n this.type = this.types[0].id;\n this.object = null;\n this.#getAttributes();\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n #contextMenuCallbackHandler = (ev: MouseEvent): void => {\n this.contextMenuCallback({\n selection: this.selectedAttributesIds,\n clientX: ev.clientX,\n clientY: ev.clientY\n });\n };\n\n #deleteSelectionCallbackHandle = (): void => {\n this.deleteSelectionCallback(this.selectedAttributesIds);\n };\n\n #deselectAll = (): void => {\n (this.#chGridEl as any).selectAllRows(false);\n };\n\n #getAttributes = (): void => {\n this.loading = true;\n const filters: AttributeFiltersData = {\n name: this.name.trim(),\n type: this.type,\n object: this.object?.id\n };\n this.loadCallback(filters).then((items: AttributeData[]) => {\n this.attributes = items;\n if (this.selectedAttributesIds?.length > 0) {\n this.selectedAttributesIds = [];\n this.#deselectAll();\n }\n this.loading = false;\n });\n };\n\n #listenChanges = (): void => {\n // for grid selection\n this.#chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedAttributesIds = ev.detail.rowsId;\n this.selectionChangeCallback(this.selectedAttributesIds);\n });\n this.#chGridEl.addEventListener(\"contextmenu\", (ev: MouseEvent): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.#contextMenuCallbackHandler(ev);\n });\n\n this.#chGridEl.addEventListener(\"rowDoubleClicked\", (): void => {\n this.#openSelectionCallbackHandle();\n });\n };\n\n #openSelectionCallbackHandle = (): void => {\n this.openSelectionCallback(this.selectedAttributesIds);\n };\n\n #entityCallbackHandler = async (): Promise<null> => {\n const result = await this.objectActionCallback();\n this.object = {\n id: result.id,\n name: result.name,\n iconSrc: result.iconSrc\n };\n return new Promise(resolve => {\n resolve(null);\n });\n };\n\n #entityValueChangedHandler = (\n event: GxIdeEntitySelectorCustomEvent<EntityData>\n ) => {\n this.object = event.detail;\n this.#getAttributes();\n };\n\n #renderAttributesGrid = (): Element => {\n const tabularGridEmpty = this.attributes?.length === 0 || !this.attributes;\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty,\n \"main\": true\n }}\n ref={(el: HTMLChTabularGridElement) => (this.#chGridEl = el)}\n row-selection-mode=\"multiple\"\n part=\"ch-grid-attributes\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name=\"\"\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.tableHead.name}\n column-name-position=\"text\"\n size={config.tabularGrid.colSize.auto}\n class=\"tabular-grid-column\"\n settingable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.tableHead.type}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n size={config.tabularGrid.colSize.auto}\n settingable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.tableHead.description}\n column-name-position=\"text\"\n size={config.tabularGrid.colSize.auto}\n class=\"tabular-grid-column\"\n settingable={false}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.#evaluateAttributesGridContent()}\n </ch-tabular-grid>\n );\n };\n\n #evaluateAttributesGridContent = (): HTMLChTabularGridRowsetElement => {\n if (this.loading) {\n return (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n );\n } else if (this.attributes.length) {\n return (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.attributes.map((attr: AttributeData) => (\n <ch-tabular-grid-row class=\"tabular-grid-row\" rowid={attr.id}>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image class=\"icon-sm\" src={attr.icon}></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {attr.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {attr.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {attr.description}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n );\n } else {\n // filter returned none\n return (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#_componentLocale.emptyStateTitle}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n );\n }\n };\n\n #renderFilter = (): Element => {\n return (\n <header class=\"header field-group control-header-with-border spacing-body\">\n <div class=\"field field-inline name__field\">\n <label class=\"label name__label\" htmlFor=\"name\">\n {this.#_componentLocale.filter.name}\n </label>\n <ch-edit\n // Name\n id=\"name\"\n class=\"input\"\n value={this.name}\n debounce={300}\n onInput={this.#nameInputHandler}\n part=\"filter-name\"\n ></ch-edit>\n </div>\n\n <div class=\"field field-inline type__field\">\n <label class=\"label\" htmlFor=\"type\">\n {this.#_componentLocale.filter.type}\n </label>\n <ch-combo-box-render\n // Type\n id=\"type\"\n class=\"combo-box\"\n disabled={!this.types}\n value={this.type}\n model={mapOptionsToComboBoxItemModel(this.types ?? [])}\n part=\"filter-type\"\n onInput={this.#typeInputHandler}\n ></ch-combo-box-render>\n </div>\n\n {/* <button\n // TODO: Check with Design if it maes sense to have a button that toggles only one control.\n // More\n class=\"button-primary more__btn\"\n onClick={this.#showMoreFilter}\n part=\"button button--more-less\"\n >\n {this.filterMore\n ? this.#_componentLocale.filter.btnLess\n : this.#_componentLocale.filter.btnMore}\n </button> */}\n\n <div class=\"field field-inline object-selector__field\">\n <label class=\"label\" htmlFor=\"object-selector\">\n {this.#_componentLocale.filter.object}\n </label>\n <gx-ide-entity-selector\n // Object\n id=\"object-selector\"\n value={this.object}\n labelPosition=\"none\"\n defaultValue={null}\n selectEntityCallback={this.#entityCallbackHandler}\n onValueChanged={this.#entityValueChangedHandler}\n part=\"filter-module-folder\"\n ></gx-ide-entity-selector>\n </div>\n </header>\n );\n };\n\n #selectAll = (): void => {\n (this.#chGridEl as any).selectAllRows();\n };\n\n #nameInputHandler = (e: ChEditCustomEvent<string> | InputEvent) => {\n this.name = (e as ChEditCustomEvent<string>).detail.trim();\n this.#getAttributes();\n };\n\n #typeInputHandler = (e: CustomEvent<string> | InputEvent) => {\n this.type = e.detail as string;\n this.#getAttributes();\n };\n\n render(): void {\n const btnDisabled = !this.attributes || this.attributes.length === 0;\n const matchingAttributesLabel =\n this.attributes?.length === 1\n ? this.#_componentLocale.matchingAttribute\n : this.#_componentLocale.matchingAttributes;\n const attributesLength = this.attributes?.length || 0;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {this.#renderFilter()}\n\n {this.#renderAttributesGrid()}\n\n <footer class=\"control-footer control-footer-with-border spacing-body-block-end spacing-body-inline control-footer-space-between\">\n <p class=\"text-body-regular-s matching-attributes\">\n {`${attributesLength} ${matchingAttributesLabel}`}\n </p>\n\n <button\n id=\"button-select-all\"\n class=\"button-primary\"\n onClick={this.#selectAll}\n disabled={btnDisabled}\n part=\"button button--select-all\"\n >\n {this.#_componentLocale.footer.btnSelectAll}\n </button>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type ContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type DeleteSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: AttributeFiltersData\n) => Promise<AttributeData[]>;\n\nexport type ObjectActionCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type SelectionChangeCallback = (ids: string[]) => Promise<void>;\n\nexport interface AttributeData {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n}\n\nexport interface AttributeFiltersData {\n name?: string;\n type?: string;\n object?: string;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["mapOptionsToComboBoxItemModel","options","map","option","value","id","caption","label","startImgSrc","_a","iconName","wwAttributesCss","CSS_BUNDLES","FILTER_ICON","getIconPath","category","name","colorType","GxIdeWWAttributes","_GxIdeWWAttributes__componentLocale","set","this","_GxIdeWWAttributes_chGridEl","_GxIdeWWAttributes_contextMenuCallbackHandler","ev","contextMenuCallback","selection","selectedAttributesIds","clientX","clientY","_GxIdeWWAttributes_deleteSelectionCallbackHandle","deleteSelectionCallback","_GxIdeWWAttributes_deselectAll","__classPrivateFieldGet","selectAllRows","_GxIdeWWAttributes_getAttributes","loading","filters","trim","type","object","loadCallback","then","items","attributes","length","call","_GxIdeWWAttributes_listenChanges","addEventListener","detail","rowsId","selectionChangeCallback","preventDefault","stopPropagation","_GxIdeWWAttributes_openSelectionCallbackHandle","openSelectionCallback","_GxIdeWWAttributes_entityCallbackHandler","async","result","objectActionCallback","iconSrc","Promise","resolve","_GxIdeWWAttributes_entityValueChangedHandler","event","_GxIdeWWAttributes_renderAttributesGrid","tabularGridEmpty","h","class","main","ref","el","__classPrivateFieldSet","part","settingable","size","config","tabularGrid","colSize","maxContent","tableHead","auto","description","_GxIdeWWAttributes_evaluateAttributesGridContent","loaderTitle","loader","title","show","attr","rowid","src","icon","stateIconSrc","stateTitle","emptyStateTitle","isAnimated","_GxIdeWWAttributes_renderFilter","htmlFor","filter","debounce","onInput","_GxIdeWWAttributes_nameInputHandler","disabled","types","model","_GxIdeWWAttributes_typeInputHandler","labelPosition","defaultValue","selectEntityCallback","onValueChanged","_GxIdeWWAttributes_selectAll","e","componentWillLoad","Locale","getComponentStrings","componentDidLoad","keyDownHandler","eventInfo","document","activeElement","key","reload","validate","isValid","render","btnDisabled","matchingAttributesLabel","matchingAttribute","matchingAttributes","attributesLength","_b","Host","onClick","footer","btnSelectAll"],"sources":["src/components/ww-attributes/helpers.tsx","src/components/ww-attributes/ww-attributes.scss?tag=gx-ide-ww-attributes&encapsulation=shadow","src/components/ww-attributes/ww-attributes.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../..\";\n\nexport const mapOptionsToComboBoxItemModel = (\n options: GxOption[]\n): ComboBoxModel => {\n return options.map(option => {\n return {\n value: option.id,\n caption: option.label,\n startImgSrc: option.iconName ?? \"\"\n };\n });\n};\n","@import \"../../../node_modules/@genexus/mercury/dist/mercury.scss\"; // for the tabular-grid-cell-layout mixin\n\n$nameInlineSize: 40px;\n$moreBtnInlineSize: 64px;\n\n:host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n// Header\n.header {\n grid-template:\n \"name type\" max-content\n \"object object\" max-content;\n grid-template-columns: 1fr 1fr;\n}\n.name__field {\n grid-area: name;\n}\n.name__label {\n inline-size: $nameInlineSize;\n}\n.type__field {\n grid-area: type;\n}\n.more__btn {\n grid-area: more;\n inline-size: $moreBtnInlineSize;\n}\n.object-selector__field {\n grid-area: object;\n}\n\n// Main\n.main {\n overflow: auto;\n}\n\nch-tabular-grid.tabular-grid--empty::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-row\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n\n// WA: remove this when Mercury removes margin from p elements\n.matching-attributes {\n margin: 0;\n}\n","/* eslint-disable @stencil-community/own-props-must-be-private */\n// Stencil\nimport {\n Component,\n Element,\n Host,\n Listen,\n Method,\n Prop,\n State,\n h\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n// Custom Imports\nimport { config } from \"../../common/config\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo, EntityData, GxOption } from \"../../common/types\";\nimport { mapOptionsToComboBoxItemModel } from \"./helpers\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\nimport HTMLChTabularGridRowsetElement from \"@genexus/chameleon-controls-library/dist/types/components/tabular-grid/rowset/tabular-grid-rowset\";\nimport { GxIdeEntitySelectorCustomEvent } from \"../../components\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/edit\",\n \"components/combo-box\",\n \"components/tabular-grid\",\n \"components/icon\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\n\n@Component({\n tag: \"gx-ide-ww-attributes\",\n styleUrl: \"ww-attributes.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/ww-attributes\"]\n})\nexport class GxIdeWWAttributes {\n /**\n * Component hard-coded strings translations.\n */\n #_componentLocale: any;\n\n @Element() el: HTMLGxIdeWwAttributesElement;\n\n /* References needed to collect data */\n #chGridEl!: HTMLChTabularGridElement;\n\n /**\n * Attributes rendered in the table\n */\n @State() attributes: AttributeData[];\n\n /**\n * Selected attributes in the table of attributes\n */\n @State() selectedAttributesIds: string[] = [];\n\n /**\n * Show or hide advanced filters\n */\n @State() filterMore = false;\n\n /**\n * The attribute filter name\n */\n @State() name: string = \"\";\n\n /**\n * True if loadCallback hasn't been resolved yet\n */\n @State() loading: boolean = true;\n\n /**\n * The attribute object value\n */\n @State() object: EntityData;\n\n /**\n * The attribute filter type value\n */\n @State() type: string;\n\n /**\n * Callback invoked when user right-clicks on the grid\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n /**\n * Callback invoked when user deletes an object\n */\n @Prop() readonly deleteSelectionCallback!: DeleteSelectionCallback;\n\n /**\n * Callback invoked when user filters the objects\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Callback invoked when user executes filter action\n */\n @Prop() readonly objectActionCallback!: ObjectActionCallback;\n\n /**\n * Objects rendered in the object selector\n */\n @Prop() readonly objects!: GxOption[];\n\n /**\n * Callback invoked when user opens the selection dialog\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Callback invoked when user selects or deselects an object\n */\n @Prop() readonly selectionChangeCallback!: SelectionChangeCallback;\n\n /**\n * Types rendered in the filter type selector\n */\n @Prop() readonly types!: GxOption[];\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.#listenChanges();\n this.type = this.types[0].id; // before #getAttributes\n this.#getAttributes();\n }\n\n @Listen(\"keydown\", { passive: true })\n keyDownHandler(eventInfo: KeyboardEvent) {\n if (document.activeElement === this.el) {\n switch (eventInfo.key) {\n case \"Enter\":\n this.#openSelectionCallbackHandle();\n break;\n case \"Delete\":\n this.#deleteSelectionCallbackHandle();\n break;\n }\n }\n }\n\n /**\n * Reloads the view, refreshing the filters and attributes table.\n */\n @Method()\n async reload(): Promise<void> {\n this.name = \"\";\n this.type = this.types[0].id;\n this.object = null;\n this.#getAttributes();\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n #contextMenuCallbackHandler = (ev: MouseEvent): void => {\n this.contextMenuCallback({\n selection: this.selectedAttributesIds,\n clientX: ev.clientX,\n clientY: ev.clientY\n });\n };\n\n #deleteSelectionCallbackHandle = (): void => {\n this.deleteSelectionCallback(this.selectedAttributesIds);\n };\n\n #deselectAll = (): void => {\n (this.#chGridEl as any).selectAllRows(false);\n };\n\n #getAttributes = (): void => {\n this.loading = true;\n const filters: AttributeFiltersData = {\n name: this.name.trim(),\n type: this.type,\n object: this.object?.id\n };\n this.loadCallback(filters).then((items: AttributeData[]) => {\n this.attributes = items;\n if (this.selectedAttributesIds?.length > 0) {\n this.selectedAttributesIds = [];\n this.#deselectAll();\n }\n this.loading = false;\n });\n };\n\n #listenChanges = (): void => {\n // for grid selection\n this.#chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedAttributesIds = ev.detail.rowsId;\n this.selectionChangeCallback(this.selectedAttributesIds);\n });\n this.#chGridEl.addEventListener(\"contextmenu\", (ev: MouseEvent): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.#contextMenuCallbackHandler(ev);\n });\n\n this.#chGridEl.addEventListener(\"rowDoubleClicked\", (): void => {\n this.#openSelectionCallbackHandle();\n });\n };\n\n #openSelectionCallbackHandle = (): void => {\n this.openSelectionCallback(this.selectedAttributesIds);\n };\n\n #entityCallbackHandler = async (): Promise<null> => {\n const result = await this.objectActionCallback();\n this.object = {\n id: result.id,\n name: result.name,\n iconSrc: result.iconSrc\n };\n return new Promise(resolve => {\n resolve(null);\n });\n };\n\n #entityValueChangedHandler = (\n event: GxIdeEntitySelectorCustomEvent<EntityData>\n ) => {\n this.object = event.detail;\n this.#getAttributes();\n };\n\n #renderAttributesGrid = (): Element => {\n const tabularGridEmpty = this.attributes?.length === 0 || !this.attributes;\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty,\n \"main\": true\n }}\n ref={(el: HTMLChTabularGridElement) => (this.#chGridEl = el)}\n row-selection-mode=\"multiple\"\n part=\"ch-grid-attributes\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name=\"\"\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.tableHead.name}\n column-name-position=\"text\"\n size={config.tabularGrid.colSize.auto}\n class=\"tabular-grid-column\"\n settingable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.tableHead.type}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n size={config.tabularGrid.colSize.auto}\n settingable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.tableHead.description}\n column-name-position=\"text\"\n size={config.tabularGrid.colSize.auto}\n class=\"tabular-grid-column\"\n settingable={false}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.#evaluateAttributesGridContent()}\n </ch-tabular-grid>\n );\n };\n\n #evaluateAttributesGridContent = (): HTMLChTabularGridRowsetElement => {\n if (this.loading) {\n return (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n description={this.#_componentLocale.loader.description}\n show\n ></gx-ide-loader>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n );\n } else if (this.attributes.length) {\n return (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.attributes.map((attr: AttributeData) => (\n <ch-tabular-grid-row class=\"tabular-grid-row\" rowid={attr.id}>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image class=\"icon-sm\" src={attr.icon}></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {attr.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {attr.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {attr.description}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n );\n } else {\n // filter returned none\n return (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#_componentLocale.emptyStateTitle}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n );\n }\n };\n\n #renderFilter = (): Element => {\n return (\n <header class=\"header field-group control-header-with-border spacing-body\">\n <div class=\"field field-inline name__field\">\n <label class=\"label name__label\" htmlFor=\"name\">\n {this.#_componentLocale.filter.name}\n </label>\n <ch-edit\n // Name\n id=\"name\"\n class=\"input\"\n value={this.name}\n debounce={300}\n onInput={this.#nameInputHandler}\n part=\"filter-name\"\n ></ch-edit>\n </div>\n\n <div class=\"field field-inline type__field\">\n <label class=\"label\" htmlFor=\"type\">\n {this.#_componentLocale.filter.type}\n </label>\n <ch-combo-box-render\n // Type\n id=\"type\"\n class=\"combo-box\"\n disabled={!this.types}\n value={this.type}\n model={mapOptionsToComboBoxItemModel(this.types ?? [])}\n part=\"filter-type\"\n onInput={this.#typeInputHandler}\n ></ch-combo-box-render>\n </div>\n\n {/* <button\n // TODO: Check with Design if it maes sense to have a button that toggles only one control.\n // More\n class=\"button-primary more__btn\"\n onClick={this.#showMoreFilter}\n part=\"button button--more-less\"\n >\n {this.filterMore\n ? this.#_componentLocale.filter.btnLess\n : this.#_componentLocale.filter.btnMore}\n </button> */}\n\n <div class=\"field field-inline object-selector__field\">\n <label class=\"label\" htmlFor=\"object-selector\">\n {this.#_componentLocale.filter.object}\n </label>\n <gx-ide-entity-selector\n // Object\n id=\"object-selector\"\n value={this.object}\n labelPosition=\"none\"\n defaultValue={null}\n selectEntityCallback={this.#entityCallbackHandler}\n onValueChanged={this.#entityValueChangedHandler}\n part=\"filter-module-folder\"\n ></gx-ide-entity-selector>\n </div>\n </header>\n );\n };\n\n #selectAll = (): void => {\n (this.#chGridEl as any).selectAllRows();\n };\n\n #nameInputHandler = (e: ChEditCustomEvent<string> | InputEvent) => {\n this.name = (e as ChEditCustomEvent<string>).detail.trim();\n this.#getAttributes();\n };\n\n #typeInputHandler = (e: CustomEvent<string> | InputEvent) => {\n this.type = e.detail as string;\n this.#getAttributes();\n };\n\n render(): void {\n const btnDisabled = !this.attributes || this.attributes.length === 0;\n const matchingAttributesLabel =\n this.attributes?.length === 1\n ? this.#_componentLocale.matchingAttribute\n : this.#_componentLocale.matchingAttributes;\n const attributesLength = this.attributes?.length || 0;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {this.#renderFilter()}\n\n {this.#renderAttributesGrid()}\n\n <footer class=\"control-footer control-footer-with-border spacing-body-block-end spacing-body-inline control-footer-space-between\">\n <p class=\"body-regular-s matching-attributes\">\n {`${attributesLength} ${matchingAttributesLabel}`}\n </p>\n\n <button\n id=\"button-select-all\"\n class=\"button-primary\"\n onClick={this.#selectAll}\n disabled={btnDisabled}\n part=\"button button--select-all\"\n >\n {this.#_componentLocale.footer.btnSelectAll}\n </button>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type ContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type DeleteSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: AttributeFiltersData\n) => Promise<AttributeData[]>;\n\nexport type ObjectActionCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type SelectionChangeCallback = (ids: string[]) => Promise<void>;\n\nexport interface AttributeData {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n}\n\nexport interface AttributeFiltersData {\n name?: string;\n type?: string;\n object?: string;\n}\n"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { r as e, c as t, h as i, H as a, g as r } from "./p-49712340.js";
|
|
|
2
2
|
|
|
3
3
|
import { L as s } from "./p-311eedf3.js";
|
|
4
4
|
|
|
5
|
-
import { c as o } from "./p-
|
|
5
|
+
import { c as o } from "./p-13738332.js";
|
|
6
6
|
|
|
7
7
|
import { a as l } from "./p-d1cb5507.js";
|
|
8
8
|
|
|
@@ -608,4 +608,4 @@ const b = class {
|
|
|
608
608
|
b.style = h;
|
|
609
609
|
|
|
610
610
|
export { b as gx_ide_ww_images };
|
|
611
|
-
//# sourceMappingURL=p-
|
|
611
|
+
//# sourceMappingURL=p-6d8b4f96.entry.js.map
|
|
@@ -34,7 +34,7 @@ var l = undefined && undefined.__classPrivateFieldGet || function(e, t, i, s) {
|
|
|
34
34
|
return i === "m" ? s : i === "a" ? s.call(e) : s ? s.value : t.get(e);
|
|
35
35
|
};
|
|
36
36
|
|
|
37
|
-
var h, p, m, f, g,
|
|
37
|
+
var h, p, m, u, f, g, w, v;
|
|
38
38
|
|
|
39
39
|
const b = [ "resets/box-sizing", "components/tab", "components/tooltip", "components/tree-view", "utils/form--full", "utils/layout", "utils/typography", "utils/spacing", "chameleon/scrollbar" ];
|
|
40
40
|
|
|
@@ -55,15 +55,15 @@ const _ = class {
|
|
|
55
55
|
const i = `${e && `(${e})`}${e && t ? ".*" : ""}${t && `(${t})`}`;
|
|
56
56
|
this.navigationItemsRegExp = new RegExp(i, "i");
|
|
57
57
|
}));
|
|
58
|
-
|
|
58
|
+
u.set(this, (e => {
|
|
59
59
|
var t;
|
|
60
60
|
const i = (t = e.detail[0]) === null || t === void 0 ? void 0 : t.item.id;
|
|
61
61
|
if (i) {
|
|
62
62
|
this.itemSelectedCallback(i);
|
|
63
63
|
}
|
|
64
64
|
}));
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
f.set(this, (e => e.sort(((e, t) => e.caption.localeCompare(t.caption)))));
|
|
66
|
+
g.set(this, (e => {
|
|
67
67
|
const t = e.detail;
|
|
68
68
|
const i = [];
|
|
69
69
|
const s = t.findIndex((e => e.itemId === "errors"));
|
|
@@ -190,9 +190,9 @@ const _ = class {
|
|
|
190
190
|
}, i("div", {
|
|
191
191
|
class: "header__description"
|
|
192
192
|
}, i("h3", {
|
|
193
|
-
class: "
|
|
193
|
+
class: "subtitle-regular-s"
|
|
194
194
|
}, this.headerData.title), i("p", {
|
|
195
|
-
class: "
|
|
195
|
+
class: "body-regular-s header__description-p"
|
|
196
196
|
}, this.headerData.description)), i("div", {
|
|
197
197
|
class: "header__actions"
|
|
198
198
|
}, i("div", {
|
|
@@ -231,8 +231,8 @@ const _ = class {
|
|
|
231
231
|
filter: this.navigationItemsRegExp,
|
|
232
232
|
filterType: "metadata",
|
|
233
233
|
model: this.reportTreeItems,
|
|
234
|
-
onSelectedItemsChange: l(this,
|
|
235
|
-
sortItemsCallback: l(this,
|
|
234
|
+
onSelectedItemsChange: l(this, u, "f"),
|
|
235
|
+
sortItemsCallback: l(this, f, "f"),
|
|
236
236
|
filterOptions: {
|
|
237
237
|
autoExpand: true,
|
|
238
238
|
hideMatchesAndShowNonMatches: false
|
|
@@ -247,7 +247,7 @@ const _ = class {
|
|
|
247
247
|
successes: this.statusInfo.success.number,
|
|
248
248
|
hideMessage: true,
|
|
249
249
|
compact: true,
|
|
250
|
-
onSelectionChanged: l(this,
|
|
250
|
+
onSelectionChanged: l(this, g, "f")
|
|
251
251
|
}))));
|
|
252
252
|
}
|
|
253
253
|
static get assetsDirs() {
|
|
@@ -264,10 +264,10 @@ const _ = class {
|
|
|
264
264
|
}
|
|
265
265
|
};
|
|
266
266
|
|
|
267
|
-
h = new WeakMap, p = new WeakMap, m = new WeakMap,
|
|
268
|
-
|
|
267
|
+
h = new WeakMap, p = new WeakMap, m = new WeakMap, u = new WeakMap, f = new WeakMap,
|
|
268
|
+
g = new WeakMap, w = new WeakMap, v = new WeakMap;
|
|
269
269
|
|
|
270
270
|
_.style = c;
|
|
271
271
|
|
|
272
272
|
export { _ as gx_ide_navigation_report };
|
|
273
|
-
//# sourceMappingURL=p-
|
|
273
|
+
//# sourceMappingURL=p-7153555f.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["STATUS_REGEXP_KEY","CAPTION_REGEXP_KEY","mapNavigationDataToTreeView","navigationData","map","dataItem","i","id","selected","caption","name","startImgSrc","icon","parts","result","leaf","metadata","JSON","stringify","toString","navigationReportCss","CSS_BUNDLES","GxIdeNavigationReport","_GxIdeNavigationReport_componentLocale","set","this","_GxIdeNavigationReport_items","_GxIdeNavigationReport_combinedRegExp","statusPattern","navigationItemsStatusRegExpString","captionPattern","navigationItemsCaptionRegExpString","combinedPattern","navigationItemsRegExp","RegExp","_GxIdeNavigationReport_itemsSelectionChangedHandler","event","selectedItemId","_a","detail","item","itemSelectedCallback","_GxIdeNavigationReport_sortItemsCallback","subModel","sort","a","b","localeCompare","_GxIdeNavigationReport_statusButtonsSelectionChangedHandler","activeStates","statuses","errorIndex","findIndex","state","itemId","warningIndex","successIndex","push","length","statusOptions","join","statusInfo","error","display","number","warning","success","_GxIdeNavigationReport_patternInputHandler","patternFilterValue","_GxIdeNavigationReport_handleChangedItems","newItems","__classPrivateFieldSet","reportTreeItems","errorsCount","warningsCount","successCount","forEach","metadataObject","parse","statusValue","navigationItemsStatusRegExpStringChanged","__classPrivateFieldGet","call","navigationItemsCaptionRegExpStringChanged","addItem","concat","clearItems","componentWillLoad","Locale","getComponentStrings","el","render","h","Host","class","widget","headerData","model","title","description","buttons","button","buttonIcon","buttonType","type","onClick","callback","src","htmlFor","aside","filterLabel","placeholder","filterPlaceholder","onInput","filter","filterType","onSelectedItemsChange","sortItemsCallback","filterOptions","autoExpand","hideMatchesAndShowNonMatches","errors","warnings","successes","hideMessage","compact","onSelectionChanged"],"sources":["src/components/navigation-report/helpers.ts","src/components/navigation-report/navigation-report.scss?tag=gx-ide-navigation-report&encapsulation=shadow","src/components/navigation-report/navigation-report.tsx"],"sourcesContent":["import { TreeViewModel } from \"@genexus/chameleon-controls-library\";\nimport { NavigationData, Status } from \"./navigation-report\";\n\nexport const STATUS_REGEXP_KEY = \"status\";\nexport const CAPTION_REGEXP_KEY = \"caption\";\n\nexport const mapNavigationDataToTreeView = (\n navigationData: NavigationData[]\n): TreeViewModel =>\n navigationData.map((dataItem, i) => {\n return {\n id: dataItem.id,\n selected: i === 0,\n caption: dataItem.name,\n startImgSrc: dataItem.icon,\n parts: `tree-view-item tree-view-item--status tree-view-item--${dataItem.result}`,\n leaf: true,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: dataItem.result.toString() as Status,\n [CAPTION_REGEXP_KEY]: dataItem.name\n })\n };\n });\n","@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-areas:\n \"aside main\"\n \"footer footer\";\n grid-template-rows: 1fr max-content;\n grid-template-columns: 240px 1fr;\n}\n\n:host(.display-header-type) {\n grid-template-areas:\n \"header header\"\n \"aside main\"\n \"footer footer\";\n\n grid-template-rows: max-content 1fr max-content;\n grid-template-columns: 240px 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - - - -\n// Header\n// - - - - - - - - - - - - -\n\n.header {\n grid-area: header;\n display: grid;\n grid-template-columns: 1fr max-content;\n\n &__description {\n display: grid;\n gap: var(--mer-spacing--xs);\n\n &-p {\n max-inline-size: 460px;\n }\n }\n &__actions {\n flex-shrink: 0;\n }\n}\n\n// - - - - - - - - - - - - -\n// Aside & Main\n// - - - - - - - - - - - - -\n\n.aside {\n grid-area: aside;\n overflow: auto;\n border-inline-end: var(--section-common-border);\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n\n.main {\n grid-area: main;\n overflow: auto;\n}\n\n// - - - - - - - - - - - - -\n// Footer\n// - - - - - - - - - - - - -\n\n.footer {\n grid-area: footer;\n justify-content: flex-start;\n}\n\n// - - - - - - - - - - - - - - - - - - -\n// Tree view status custom status \"icon\"\n// - - - - - - - - - - - - - - - - - - -\n.tree-view::part(item__action tree-view-item--success),\n.tree-view::part(item__action tree-view-item--warning),\n.tree-view::part(item__action tree-view-item--error) {\n // WA custom solution for two icons\n // Because this is a one level tree, there is no risk of\n // breaking the layout with a custom padding.\n padding-inline-start: var(--mer-spacing--lg);\n}\n\n.tree-view::part(item__action tree-view-item--success) {\n background: var(--icon__states_pill-filled_success--enabled) no-repeat;\n}\n.tree-view::part(item__action tree-view-item--warning) {\n background: var(--icon__states_pill-filled_warning--enabled) no-repeat;\n}\n.tree-view::part(item__action tree-view-item--error) {\n background: var(--icon__states_pill-filled_error--enabled) no-repeat;\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport {\n mapNavigationDataToTreeView,\n STATUS_REGEXP_KEY,\n CAPTION_REGEXP_KEY\n} from \"./helpers\";\nimport {\n ChEditCustomEvent,\n TreeViewItemModelExtended,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\nimport { CheckedItemsInfo } from \"../_helpers/list-selector/list-selector\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-navigation-report\",\n styleUrl: \"navigation-report.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/navigation-report\"]\n})\nexport class GxIdeNavigationReport {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n #items: NavigationData[] = [];\n\n @Element() el: HTMLGxIdeNavigationReportElement;\n @State() reportTreeItems: TreeViewModel = [];\n @State() navigationItemsStatusRegExpString: string = \"\";\n @Watch(\"navigationItemsStatusRegExpString\")\n navigationItemsStatusRegExpStringChanged() {\n this.#combinedRegExp();\n }\n @State() navigationItemsCaptionRegExpString: string = \"\";\n @Watch(\"navigationItemsCaptionRegExpString\")\n navigationItemsCaptionRegExpStringChanged() {\n this.#combinedRegExp();\n }\n @State() navigationItemsRegExp: RegExp;\n @State() confirmed = false;\n @State() headerState: \"none\" | \"create\" | \"reorganize\" = \"none\";\n\n @State() statusInfo: StatusInfo = {\n error: {\n display: true,\n number: 0\n },\n warning: {\n display: true,\n number: 0\n },\n success: {\n display: true,\n number: 0\n }\n };\n @State() someStatusVisible: boolean;\n\n /**\n * The header data to display on the header.\n */\n @Prop() readonly headerData: HeaderData;\n\n /**\n * Callback invoked when user confirms data base reorganization\n */\n @Prop() readonly confirmCallback: ConfirmCallback;\n\n /**\n * Callback invoked when user cancels reorganization\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback to be invoked when the user closes the dialog\n */\n @Prop() readonly closeCallback: CloseCallback;\n\n /**\n * Callback invoked when a list item is selected\n */\n @Prop() readonly itemSelectedCallback: ItemSelectedCallback;\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderEvent: EventEmitter<string>;\n\n /**\n * Add a new item\n */\n @Method()\n async addItem(item: NavigationData) {\n this.#handleChangedItems(this.#items.concat([item]));\n }\n\n /**\n * Clear items\n */\n @Method()\n async clearItems() {\n this.#handleChangedItems([]);\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #combinedRegExp = () => {\n const statusPattern = this.navigationItemsStatusRegExpString || \"\";\n const captionPattern = this.navigationItemsCaptionRegExpString || \"\";\n\n // Create a RegExp that combines the values from the buttons statues and the filer value.\n const combinedPattern = `${statusPattern && `(${statusPattern})`}${\n statusPattern && captionPattern ? \".*\" : \"\"\n }${captionPattern && `(${captionPattern})`}`;\n\n this.navigationItemsRegExp = new RegExp(combinedPattern, \"i\");\n };\n\n #itemsSelectionChangedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedItemId = event.detail[0]?.item.id;\n if (selectedItemId) {\n this.itemSelectedCallback(selectedItemId);\n }\n };\n\n #sortItemsCallback = (subModel: TreeViewModel) => {\n return subModel.sort((a, b) => a.caption.localeCompare(b.caption));\n };\n\n #statusButtonsSelectionChangedHandler = (\n event: CustomEvent<CheckedItemsInfo>\n ) => {\n const activeStates = event.detail;\n const statuses: Status[] = [];\n\n const errorIndex = activeStates.findIndex(\n state => state.itemId === \"errors\"\n );\n const warningIndex = activeStates.findIndex(\n state => state.itemId === \"warnings\"\n );\n const successIndex = activeStates.findIndex(\n state => state.itemId === \"successes\"\n );\n\n if (errorIndex !== -1) {\n statuses.push(\"error\");\n }\n if (warningIndex !== -1) {\n statuses.push(\"warning\");\n }\n if (successIndex !== -1) {\n statuses.push(\"success\");\n }\n\n if (statuses.length) {\n const statusOptions = statuses.join(\"|\");\n this.navigationItemsStatusRegExpString = `\"${STATUS_REGEXP_KEY}\":\"(${statusOptions})\"`;\n } else {\n this.navigationItemsStatusRegExpString = `\"${STATUS_REGEXP_KEY}\":\"\"`;\n }\n\n // Update statusInfo for the status-buttons\n this.statusInfo = {\n error: {\n display: errorIndex !== -1,\n number: this.statusInfo.error.number\n },\n warning: {\n display: warningIndex !== -1,\n number: this.statusInfo.warning.number\n },\n success: {\n display: successIndex !== -1,\n number: this.statusInfo.success.number\n }\n };\n };\n\n #patternInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n const patternFilterValue = event.detail as string;\n this.navigationItemsCaptionRegExpString = `\"${CAPTION_REGEXP_KEY}\":\".*${patternFilterValue}.*\"`;\n };\n\n #handleChangedItems = (newItems: NavigationData[]) => {\n this.#items = newItems;\n this.reportTreeItems = mapNavigationDataToTreeView(newItems);\n let errorsCount: number = 0;\n let warningsCount: number = 0;\n let successCount: number = 0;\n this.reportTreeItems.forEach(item => {\n const metadataObject = JSON.parse(item.metadata);\n let statusValue;\n if (STATUS_REGEXP_KEY in metadataObject) {\n statusValue = metadataObject[STATUS_REGEXP_KEY] as Status;\n }\n\n if (statusValue && statusValue === \"error\") {\n errorsCount++;\n } else if (statusValue && statusValue === \"warning\") {\n warningsCount++;\n } else if (statusValue && statusValue === \"success\") {\n successCount++;\n }\n });\n\n this.statusInfo[\"error\"].number = errorsCount;\n this.statusInfo[\"warning\"].number = warningsCount;\n this.statusInfo[\"success\"].number = successCount;\n };\n\n render() {\n return (\n <Host\n class={{\n \"widget\": true,\n \"display-header-type\": !!this.headerData\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {this.headerData && (\n <header class=\"header control-header-with-border spacing-body-inline spacing-body-block-start\">\n <div class=\"header__description\">\n <h3 class=\"heading-3\">{this.headerData.title}</h3>\n <p class=\"text-body-regular-s header__description-p\">\n {this.headerData.description}\n </p>\n </div>\n <div class=\"header__actions\">\n <div class=\"buttons-spacer header__actions\">\n {this.headerData.buttons?.map(button => {\n const buttonIcon = button.icon;\n const buttonType: headerButtonType =\n button.type ?? \"button-primary\";\n return (\n <button\n class={{\n [buttonType]: true,\n \"button-icon-and-text\": !!buttonIcon\n }}\n onClick={button.callback}\n >\n {buttonIcon && (\n <ch-image class=\"icon-md\" src={buttonIcon}></ch-image>\n )}\n {button.caption}\n </button>\n );\n })}\n </div>\n </div>\n </header>\n )}\n\n <section class=\"aside field-group\">\n <header class=\"aside__header spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"pattern\">\n {this.#componentLocale.aside.filterLabel}\n </label>\n <ch-edit\n id=\"pattern\"\n class=\"input\"\n placeholder={this.#componentLocale.aside.filterPlaceholder}\n onInput={this.#patternInputHandler}\n ></ch-edit>\n </div>\n </header>\n <ch-tree-view-render\n class=\"tree-view\"\n show-lines=\"last\"\n filter={this.navigationItemsRegExp}\n filterType=\"metadata\"\n model={this.reportTreeItems}\n onSelectedItemsChange={this.#itemsSelectionChangedHandler}\n sortItemsCallback={this.#sortItemsCallback}\n filterOptions={{\n autoExpand: true,\n hideMatchesAndShowNonMatches: false\n }}\n ></ch-tree-view-render>\n </section>\n <section class=\"main spacing-body\">\n <slot></slot>\n </section>\n <footer class=\"footer control-footer-with-border control-footer-start spacing-body-inline spacing-body-block-end\">\n <gx-ide-status-buttons\n errors={this.statusInfo.error.number}\n warnings={this.statusInfo.warning.number}\n successes={this.statusInfo.success.number}\n hideMessage\n compact\n onSelectionChanged={this.#statusButtonsSelectionChangedHandler}\n ></gx-ide-status-buttons>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type NavigationData = {\n id: string;\n result: Status;\n icon: string;\n name: string;\n};\n\nexport type ConfirmCallback = () => Promise<void>;\nexport type CancelCallback = () => Promise<void>;\nexport type CloseCallback = () => Promise<void>;\nexport type ItemSelectedCallback = (id: string) => Promise<void>;\n\ntype StatusInfo = {\n error: {\n display: boolean;\n number: number;\n };\n warning: {\n display: boolean;\n number: number;\n };\n success: {\n display: boolean;\n number: number;\n };\n};\n\nexport type HeaderData = {\n title: string;\n description: string;\n buttons: HeaderButtonData[];\n};\n\nexport type HeaderButtonData = {\n caption: string;\n icon?: string;\n type?: headerButtonType;\n callback: () => Promise<void>;\n};\n\nexport type headerButtonType = \"button-primary\" | \"button-secondary\";\n\nexport type Status = \"success\" | \"error\" | \"warning\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["STATUS_REGEXP_KEY","CAPTION_REGEXP_KEY","mapNavigationDataToTreeView","navigationData","map","dataItem","i","id","selected","caption","name","startImgSrc","icon","parts","result","leaf","metadata","JSON","stringify","toString","navigationReportCss","CSS_BUNDLES","GxIdeNavigationReport","_GxIdeNavigationReport_componentLocale","set","this","_GxIdeNavigationReport_items","_GxIdeNavigationReport_combinedRegExp","statusPattern","navigationItemsStatusRegExpString","captionPattern","navigationItemsCaptionRegExpString","combinedPattern","navigationItemsRegExp","RegExp","_GxIdeNavigationReport_itemsSelectionChangedHandler","event","selectedItemId","_a","detail","item","itemSelectedCallback","_GxIdeNavigationReport_sortItemsCallback","subModel","sort","a","b","localeCompare","_GxIdeNavigationReport_statusButtonsSelectionChangedHandler","activeStates","statuses","errorIndex","findIndex","state","itemId","warningIndex","successIndex","push","length","statusOptions","join","statusInfo","error","display","number","warning","success","_GxIdeNavigationReport_patternInputHandler","patternFilterValue","_GxIdeNavigationReport_handleChangedItems","newItems","__classPrivateFieldSet","reportTreeItems","errorsCount","warningsCount","successCount","forEach","metadataObject","parse","statusValue","navigationItemsStatusRegExpStringChanged","__classPrivateFieldGet","call","navigationItemsCaptionRegExpStringChanged","addItem","concat","clearItems","componentWillLoad","Locale","getComponentStrings","el","render","h","Host","class","widget","headerData","model","title","description","buttons","button","buttonIcon","buttonType","type","onClick","callback","src","htmlFor","aside","filterLabel","placeholder","filterPlaceholder","onInput","filter","filterType","onSelectedItemsChange","sortItemsCallback","filterOptions","autoExpand","hideMatchesAndShowNonMatches","errors","warnings","successes","hideMessage","compact","onSelectionChanged"],"sources":["src/components/navigation-report/helpers.ts","src/components/navigation-report/navigation-report.scss?tag=gx-ide-navigation-report&encapsulation=shadow","src/components/navigation-report/navigation-report.tsx"],"sourcesContent":["import { TreeViewModel } from \"@genexus/chameleon-controls-library\";\nimport { NavigationData, Status } from \"./navigation-report\";\n\nexport const STATUS_REGEXP_KEY = \"status\";\nexport const CAPTION_REGEXP_KEY = \"caption\";\n\nexport const mapNavigationDataToTreeView = (\n navigationData: NavigationData[]\n): TreeViewModel =>\n navigationData.map((dataItem, i) => {\n return {\n id: dataItem.id,\n selected: i === 0,\n caption: dataItem.name,\n startImgSrc: dataItem.icon,\n parts: `tree-view-item tree-view-item--status tree-view-item--${dataItem.result}`,\n leaf: true,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: dataItem.result.toString() as Status,\n [CAPTION_REGEXP_KEY]: dataItem.name\n })\n };\n });\n","@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-areas:\n \"aside main\"\n \"footer footer\";\n grid-template-rows: 1fr max-content;\n grid-template-columns: 240px 1fr;\n}\n\n:host(.display-header-type) {\n grid-template-areas:\n \"header header\"\n \"aside main\"\n \"footer footer\";\n\n grid-template-rows: max-content 1fr max-content;\n grid-template-columns: 240px 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - - - -\n// Header\n// - - - - - - - - - - - - -\n\n.header {\n grid-area: header;\n display: grid;\n grid-template-columns: 1fr max-content;\n\n &__description {\n display: grid;\n gap: var(--mer-spacing--xs);\n\n &-p {\n max-inline-size: 460px;\n }\n }\n &__actions {\n flex-shrink: 0;\n }\n}\n\n// - - - - - - - - - - - - -\n// Aside & Main\n// - - - - - - - - - - - - -\n\n.aside {\n grid-area: aside;\n overflow: auto;\n border-inline-end: var(--section-common-border);\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n\n.main {\n grid-area: main;\n overflow: auto;\n}\n\n// - - - - - - - - - - - - -\n// Footer\n// - - - - - - - - - - - - -\n\n.footer {\n grid-area: footer;\n justify-content: flex-start;\n}\n\n// - - - - - - - - - - - - - - - - - - -\n// Tree view status custom status \"icon\"\n// - - - - - - - - - - - - - - - - - - -\n.tree-view::part(item__action tree-view-item--success),\n.tree-view::part(item__action tree-view-item--warning),\n.tree-view::part(item__action tree-view-item--error) {\n // WA custom solution for two icons\n // Because this is a one level tree, there is no risk of\n // breaking the layout with a custom padding.\n padding-inline-start: var(--mer-spacing--lg);\n}\n\n.tree-view::part(item__action tree-view-item--success) {\n background: var(--icon__states_pill-filled_success--enabled) no-repeat;\n}\n.tree-view::part(item__action tree-view-item--warning) {\n background: var(--icon__states_pill-filled_warning--enabled) no-repeat;\n}\n.tree-view::part(item__action tree-view-item--error) {\n background: var(--icon__states_pill-filled_error--enabled) no-repeat;\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport {\n mapNavigationDataToTreeView,\n STATUS_REGEXP_KEY,\n CAPTION_REGEXP_KEY\n} from \"./helpers\";\nimport {\n ChEditCustomEvent,\n TreeViewItemModelExtended,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\nimport { CheckedItemsInfo } from \"../_helpers/list-selector/list-selector\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-navigation-report\",\n styleUrl: \"navigation-report.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/navigation-report\"]\n})\nexport class GxIdeNavigationReport {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n #items: NavigationData[] = [];\n\n @Element() el: HTMLGxIdeNavigationReportElement;\n @State() reportTreeItems: TreeViewModel = [];\n @State() navigationItemsStatusRegExpString: string = \"\";\n @Watch(\"navigationItemsStatusRegExpString\")\n navigationItemsStatusRegExpStringChanged() {\n this.#combinedRegExp();\n }\n @State() navigationItemsCaptionRegExpString: string = \"\";\n @Watch(\"navigationItemsCaptionRegExpString\")\n navigationItemsCaptionRegExpStringChanged() {\n this.#combinedRegExp();\n }\n @State() navigationItemsRegExp: RegExp;\n @State() confirmed = false;\n @State() headerState: \"none\" | \"create\" | \"reorganize\" = \"none\";\n\n @State() statusInfo: StatusInfo = {\n error: {\n display: true,\n number: 0\n },\n warning: {\n display: true,\n number: 0\n },\n success: {\n display: true,\n number: 0\n }\n };\n @State() someStatusVisible: boolean;\n\n /**\n * The header data to display on the header.\n */\n @Prop() readonly headerData: HeaderData;\n\n /**\n * Callback invoked when user confirms data base reorganization\n */\n @Prop() readonly confirmCallback: ConfirmCallback;\n\n /**\n * Callback invoked when user cancels reorganization\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback to be invoked when the user closes the dialog\n */\n @Prop() readonly closeCallback: CloseCallback;\n\n /**\n * Callback invoked when a list item is selected\n */\n @Prop() readonly itemSelectedCallback: ItemSelectedCallback;\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderEvent: EventEmitter<string>;\n\n /**\n * Add a new item\n */\n @Method()\n async addItem(item: NavigationData) {\n this.#handleChangedItems(this.#items.concat([item]));\n }\n\n /**\n * Clear items\n */\n @Method()\n async clearItems() {\n this.#handleChangedItems([]);\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #combinedRegExp = () => {\n const statusPattern = this.navigationItemsStatusRegExpString || \"\";\n const captionPattern = this.navigationItemsCaptionRegExpString || \"\";\n\n // Create a RegExp that combines the values from the buttons statues and the filer value.\n const combinedPattern = `${statusPattern && `(${statusPattern})`}${\n statusPattern && captionPattern ? \".*\" : \"\"\n }${captionPattern && `(${captionPattern})`}`;\n\n this.navigationItemsRegExp = new RegExp(combinedPattern, \"i\");\n };\n\n #itemsSelectionChangedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedItemId = event.detail[0]?.item.id;\n if (selectedItemId) {\n this.itemSelectedCallback(selectedItemId);\n }\n };\n\n #sortItemsCallback = (subModel: TreeViewModel) => {\n return subModel.sort((a, b) => a.caption.localeCompare(b.caption));\n };\n\n #statusButtonsSelectionChangedHandler = (\n event: CustomEvent<CheckedItemsInfo>\n ) => {\n const activeStates = event.detail;\n const statuses: Status[] = [];\n\n const errorIndex = activeStates.findIndex(\n state => state.itemId === \"errors\"\n );\n const warningIndex = activeStates.findIndex(\n state => state.itemId === \"warnings\"\n );\n const successIndex = activeStates.findIndex(\n state => state.itemId === \"successes\"\n );\n\n if (errorIndex !== -1) {\n statuses.push(\"error\");\n }\n if (warningIndex !== -1) {\n statuses.push(\"warning\");\n }\n if (successIndex !== -1) {\n statuses.push(\"success\");\n }\n\n if (statuses.length) {\n const statusOptions = statuses.join(\"|\");\n this.navigationItemsStatusRegExpString = `\"${STATUS_REGEXP_KEY}\":\"(${statusOptions})\"`;\n } else {\n this.navigationItemsStatusRegExpString = `\"${STATUS_REGEXP_KEY}\":\"\"`;\n }\n\n // Update statusInfo for the status-buttons\n this.statusInfo = {\n error: {\n display: errorIndex !== -1,\n number: this.statusInfo.error.number\n },\n warning: {\n display: warningIndex !== -1,\n number: this.statusInfo.warning.number\n },\n success: {\n display: successIndex !== -1,\n number: this.statusInfo.success.number\n }\n };\n };\n\n #patternInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n const patternFilterValue = event.detail as string;\n this.navigationItemsCaptionRegExpString = `\"${CAPTION_REGEXP_KEY}\":\".*${patternFilterValue}.*\"`;\n };\n\n #handleChangedItems = (newItems: NavigationData[]) => {\n this.#items = newItems;\n this.reportTreeItems = mapNavigationDataToTreeView(newItems);\n let errorsCount: number = 0;\n let warningsCount: number = 0;\n let successCount: number = 0;\n this.reportTreeItems.forEach(item => {\n const metadataObject = JSON.parse(item.metadata);\n let statusValue;\n if (STATUS_REGEXP_KEY in metadataObject) {\n statusValue = metadataObject[STATUS_REGEXP_KEY] as Status;\n }\n\n if (statusValue && statusValue === \"error\") {\n errorsCount++;\n } else if (statusValue && statusValue === \"warning\") {\n warningsCount++;\n } else if (statusValue && statusValue === \"success\") {\n successCount++;\n }\n });\n\n this.statusInfo[\"error\"].number = errorsCount;\n this.statusInfo[\"warning\"].number = warningsCount;\n this.statusInfo[\"success\"].number = successCount;\n };\n\n render() {\n return (\n <Host\n class={{\n \"widget\": true,\n \"display-header-type\": !!this.headerData\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {this.headerData && (\n <header class=\"header control-header-with-border spacing-body-inline spacing-body-block-start\">\n <div class=\"header__description\">\n <h3 class=\"subtitle-regular-s\">{this.headerData.title}</h3>\n <p class=\"body-regular-s header__description-p\">\n {this.headerData.description}\n </p>\n </div>\n <div class=\"header__actions\">\n <div class=\"buttons-spacer header__actions\">\n {this.headerData.buttons?.map(button => {\n const buttonIcon = button.icon;\n const buttonType: headerButtonType =\n button.type ?? \"button-primary\";\n return (\n <button\n class={{\n [buttonType]: true,\n \"button-icon-and-text\": !!buttonIcon\n }}\n onClick={button.callback}\n >\n {buttonIcon && (\n <ch-image class=\"icon-md\" src={buttonIcon}></ch-image>\n )}\n {button.caption}\n </button>\n );\n })}\n </div>\n </div>\n </header>\n )}\n\n <section class=\"aside field-group\">\n <header class=\"aside__header spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"pattern\">\n {this.#componentLocale.aside.filterLabel}\n </label>\n <ch-edit\n id=\"pattern\"\n class=\"input\"\n placeholder={this.#componentLocale.aside.filterPlaceholder}\n onInput={this.#patternInputHandler}\n ></ch-edit>\n </div>\n </header>\n <ch-tree-view-render\n class=\"tree-view\"\n show-lines=\"last\"\n filter={this.navigationItemsRegExp}\n filterType=\"metadata\"\n model={this.reportTreeItems}\n onSelectedItemsChange={this.#itemsSelectionChangedHandler}\n sortItemsCallback={this.#sortItemsCallback}\n filterOptions={{\n autoExpand: true,\n hideMatchesAndShowNonMatches: false\n }}\n ></ch-tree-view-render>\n </section>\n <section class=\"main spacing-body\">\n <slot></slot>\n </section>\n <footer class=\"footer control-footer-with-border control-footer-start spacing-body-inline spacing-body-block-end\">\n <gx-ide-status-buttons\n errors={this.statusInfo.error.number}\n warnings={this.statusInfo.warning.number}\n successes={this.statusInfo.success.number}\n hideMessage\n compact\n onSelectionChanged={this.#statusButtonsSelectionChangedHandler}\n ></gx-ide-status-buttons>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type NavigationData = {\n id: string;\n result: Status;\n icon: string;\n name: string;\n};\n\nexport type ConfirmCallback = () => Promise<void>;\nexport type CancelCallback = () => Promise<void>;\nexport type CloseCallback = () => Promise<void>;\nexport type ItemSelectedCallback = (id: string) => Promise<void>;\n\ntype StatusInfo = {\n error: {\n display: boolean;\n number: number;\n };\n warning: {\n display: boolean;\n number: number;\n };\n success: {\n display: boolean;\n number: number;\n };\n};\n\nexport type HeaderData = {\n title: string;\n description: string;\n buttons: HeaderButtonData[];\n};\n\nexport type HeaderButtonData = {\n caption: string;\n icon?: string;\n type?: headerButtonType;\n callback: () => Promise<void>;\n};\n\nexport type headerButtonType = \"button-primary\" | \"button-secondary\";\n\nexport type Status = \"success\" | \"error\" | \"warning\";\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as e, h as t, H as s, g as i } from "./p-49712340.js";
|
|
2
2
|
|
|
3
|
-
import { c as a } from "./p-
|
|
3
|
+
import { c as a } from "./p-13738332.js";
|
|
4
4
|
|
|
5
5
|
import { L as n } from "./p-311eedf3.js";
|
|
6
6
|
|
|
@@ -261,4 +261,4 @@ y = new WeakMap, k = new WeakMap, M = new WeakMap;
|
|
|
261
261
|
W.style = r;
|
|
262
262
|
|
|
263
263
|
export { W as gx_ide_connect_gx_server };
|
|
264
|
-
//# sourceMappingURL=p-
|
|
264
|
+
//# sourceMappingURL=p-846c67a1.entry.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as t, c as i, a as e, h as s, H as a, g as n } from "./p-49712340.js";
|
|
2
2
|
|
|
3
|
-
import { c as o } from "./p-
|
|
3
|
+
import { c as o } from "./p-13738332.js";
|
|
4
4
|
|
|
5
5
|
import { L as l } from "./p-311eedf3.js";
|
|
6
6
|
|
|
@@ -38,9 +38,9 @@ const mapTypeDataToActionListModel = (t, i, e) => t.map((t => ({
|
|
|
38
38
|
* Order the items in the same order as they come.
|
|
39
39
|
*/ const sortActionListDefault = t => t;
|
|
40
40
|
|
|
41
|
-
const
|
|
41
|
+
const r = ':host{display:grid;block-size:100%}.main{display:grid;grid-template-rows:1fr max-content max-content}.categories-types-layout{grid-template-columns:1fr 1fr}.api-description-layout{padding-block:calc( var(--content-block-spacing) * 2 );display:grid;grid-template:"api-description-title api-description-title" "api-name-label api-name-control" "api-description-label api-description-control" "api-module-label api-module-control";grid-template-columns:max-content 1fr}.api-description-title{grid-area:api-description-title}.api-name-label{grid-area:api-name-label}.api-name-control{grid-area:api-name-control}.api-description-label{grid-area:api-description-label}.api-description-control{grid-area:api-description-control}.api-module-label{grid-area:api-module-label}.api-module-control{grid-area:api-module-control}';
|
|
42
42
|
|
|
43
|
-
var
|
|
43
|
+
var h = undefined && undefined.__classPrivateFieldGet || function(t, i, e, s) {
|
|
44
44
|
if (e === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
|
|
45
45
|
if (typeof i === "function" ? t !== i || !s : !i.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
46
46
|
return e === "m" ? s : e === "a" ? s.call(t) : s ? s.value : i.get(t);
|
|
@@ -96,25 +96,25 @@ const A = class {
|
|
|
96
96
|
W.set(this, (async () => {
|
|
97
97
|
var t, i, e;
|
|
98
98
|
// validate name first
|
|
99
|
-
const s = await this.validateNameCallback(
|
|
99
|
+
const s = await this.validateNameCallback(h(this, y, "f").value);
|
|
100
100
|
if (!!s) {
|
|
101
101
|
// name is invalid
|
|
102
|
-
|
|
102
|
+
h(this, L, "f").call(this, s);
|
|
103
103
|
return;
|
|
104
104
|
}
|
|
105
105
|
const a = {
|
|
106
106
|
typeId: (t = this.selectedType) === null || t === void 0 ? void 0 : t.id,
|
|
107
|
-
name:
|
|
108
|
-
description: !
|
|
109
|
-
moduleId: (e = (i =
|
|
107
|
+
name: h(this, y, "f").value,
|
|
108
|
+
description: !h(this, g, "f") ? undefined : h(this, b, "f").value,
|
|
109
|
+
moduleId: (e = (i = h(this, w, "f")) === null || i === void 0 ? void 0 : i.value) === null || e === void 0 ? void 0 : e.id
|
|
110
110
|
};
|
|
111
111
|
const n = await this.createCallback(a);
|
|
112
|
-
|
|
112
|
+
h(this, L, "f").call(this, n);
|
|
113
113
|
}));
|
|
114
114
|
C.set(this, (() => {
|
|
115
|
-
if (
|
|
115
|
+
if (h(this, k, "f") || h(this, g, "f")) {
|
|
116
116
|
console.log("description modified by user");
|
|
117
|
-
return
|
|
117
|
+
return h(this, b, "f").value;
|
|
118
118
|
} else {
|
|
119
119
|
return this.selectedType.name;
|
|
120
120
|
}
|
|
@@ -126,26 +126,26 @@ const A = class {
|
|
|
126
126
|
*/
|
|
127
127
|
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
128
128
|
j.set(this, (() => {
|
|
129
|
-
const t =
|
|
129
|
+
const t = h(this, P, "f").call(this, this.defaultTypeId);
|
|
130
130
|
if (!t) {
|
|
131
131
|
this.selectedCategory = this.typeCategories[0];
|
|
132
132
|
this.selectedType = this.selectedCategory.types[0];
|
|
133
133
|
}
|
|
134
134
|
if (this.selectedType && this.selectedType.name.length > 0) {
|
|
135
|
-
this.name =
|
|
135
|
+
this.name = h(this, x, "f").call(this, this.selectedType);
|
|
136
136
|
this.description = this.selectedType.name;
|
|
137
137
|
}
|
|
138
138
|
}));
|
|
139
139
|
S.set(this, (() => {
|
|
140
|
-
if (
|
|
141
|
-
return
|
|
140
|
+
if (h(this, k, "f")) {
|
|
141
|
+
return h(this, y, "f").value;
|
|
142
142
|
} else {
|
|
143
|
-
return
|
|
143
|
+
return h(this, x, "f").call(this, this.selectedType);
|
|
144
144
|
}
|
|
145
145
|
}));
|
|
146
146
|
E.set(this, (async () => {
|
|
147
|
-
const t = await this.validateNameCallback(
|
|
148
|
-
|
|
147
|
+
const t = await this.validateNameCallback(h(this, y, "f").value);
|
|
148
|
+
h(this, L, "f").call(this, t);
|
|
149
149
|
}));
|
|
150
150
|
F.set(this, (t => {
|
|
151
151
|
this.description = t.detail;
|
|
@@ -153,25 +153,25 @@ const A = class {
|
|
|
153
153
|
}));
|
|
154
154
|
T.set(this, (async t => {
|
|
155
155
|
const i = t.detail;
|
|
156
|
-
if (!
|
|
156
|
+
if (!h(this, g, "f")) {
|
|
157
157
|
// Description should be equal to name, unless the description was already
|
|
158
158
|
// modified by the user.
|
|
159
|
-
|
|
159
|
+
h(this, b, "f").value = i;
|
|
160
160
|
}
|
|
161
161
|
c(this, k, true, "f");
|
|
162
162
|
}));
|
|
163
163
|
$.set(this, (async t => {
|
|
164
164
|
const i = t.detail;
|
|
165
165
|
const e = await this.validateNameCallback(i);
|
|
166
|
-
|
|
166
|
+
h(this, L, "f").call(this, e);
|
|
167
167
|
}));
|
|
168
168
|
_.set(this, (() => {
|
|
169
169
|
if (this.selectedType.hasModule || this.selectedType.hasFolder) {
|
|
170
|
-
let t =
|
|
170
|
+
let t = h(this, p, "f").moduleFolder;
|
|
171
171
|
if (!this.selectedType.hasFolder) {
|
|
172
|
-
t =
|
|
172
|
+
t = h(this, p, "f").moduleOnly;
|
|
173
173
|
} else if (!this.selectedType.hasModule) {
|
|
174
|
-
t =
|
|
174
|
+
t = h(this, p, "f").folderOnly;
|
|
175
175
|
}
|
|
176
176
|
return [ s("label", {
|
|
177
177
|
// Module/folder
|
|
@@ -211,7 +211,7 @@ const A = class {
|
|
|
211
211
|
z.set(this, (() => {
|
|
212
212
|
if (this.selectedCategory) {
|
|
213
213
|
// update model by setting the selected category
|
|
214
|
-
|
|
214
|
+
h(this, u, "f").updateItemProperties(this.selectedCategory.id, {
|
|
215
215
|
selected: true,
|
|
216
216
|
type: "actionable"
|
|
217
217
|
});
|
|
@@ -267,21 +267,21 @@ const A = class {
|
|
|
267
267
|
// this.#validateInitialName();
|
|
268
268
|
}
|
|
269
269
|
async componentWillLoad() {
|
|
270
|
-
|
|
270
|
+
h(this, j, "f").call(this);
|
|
271
271
|
c(this, p, await l.getComponentStrings(this.el), "f");
|
|
272
272
|
this.typeCategoriesChanged(this.typeCategories);
|
|
273
|
-
|
|
273
|
+
h(this, d, "m", I).call(this);
|
|
274
274
|
}
|
|
275
275
|
componentDidLoad() {
|
|
276
|
-
|
|
276
|
+
h(this, z, "f").call(this);
|
|
277
277
|
}
|
|
278
278
|
/**
|
|
279
279
|
* Suspends or reactivates the shortcuts
|
|
280
280
|
*/ async suspendShortcuts(t) {
|
|
281
281
|
if (t) {
|
|
282
|
-
|
|
282
|
+
h(this, m, "f").suspend = true;
|
|
283
283
|
} else {
|
|
284
|
-
|
|
284
|
+
h(this, m, "f").suspend = false;
|
|
285
285
|
}
|
|
286
286
|
}
|
|
287
287
|
render() {
|
|
@@ -291,7 +291,7 @@ const A = class {
|
|
|
291
291
|
}, s("ch-theme", {
|
|
292
292
|
model: N
|
|
293
293
|
}), s("ch-shortcuts", {
|
|
294
|
-
src:
|
|
294
|
+
src: h(this, f, "f"),
|
|
295
295
|
ref: t => c(this, m, t, "f")
|
|
296
296
|
}), s("section", {
|
|
297
297
|
class: "main"
|
|
@@ -301,37 +301,37 @@ const A = class {
|
|
|
301
301
|
class: "field field-block"
|
|
302
302
|
}, s("label", {
|
|
303
303
|
class: "label"
|
|
304
|
-
},
|
|
304
|
+
}, h(this, p, "f").categorySelectionTitle), s("ch-action-list-render", {
|
|
305
305
|
// #select a category
|
|
306
306
|
// TODO: The "scrollable" class is a WA since the action-list currently does not support scrollbar customization
|
|
307
307
|
class: "list-box",
|
|
308
308
|
selection: "single",
|
|
309
309
|
model: this.typeCategoriesActionListModel,
|
|
310
310
|
sortItemsCallback: sortActionListDefault,
|
|
311
|
-
onSelectedItemsChange:
|
|
311
|
+
onSelectedItemsChange: h(this, M, "f"),
|
|
312
312
|
ref: t => c(this, u, t, "f")
|
|
313
313
|
})), s("div", {
|
|
314
314
|
class: "field field-block"
|
|
315
315
|
}, s("label", {
|
|
316
316
|
class: "label"
|
|
317
|
-
}, this.selectedCategory.name ? `${this.selectedCategory.name} ${
|
|
317
|
+
}, this.selectedCategory.name ? `${this.selectedCategory.name} ${h(this, p, "f").typeSelectionTitleSuffix}` : h(this, p, "f").typeSelectionTitle), s("ch-action-list-render", {
|
|
318
318
|
// #data management types
|
|
319
319
|
// TODO: The "scrollable" class is a WA since the action-list currently does not support scrollbar customization
|
|
320
320
|
class: "list-box",
|
|
321
321
|
selection: "single",
|
|
322
322
|
sortItemsCallback: sortActionListDefault,
|
|
323
323
|
model: mapTypeDataToActionListModel(this.selectedCategory.types, this.selectedCategory.id, this.selectedType.id),
|
|
324
|
-
onSelectedItemsChange:
|
|
324
|
+
onSelectedItemsChange: h(this, D, "f")
|
|
325
325
|
}))), s("section", {
|
|
326
326
|
class: "api-description-layout field-group spacing-body-inline"
|
|
327
327
|
}, s("h2", {
|
|
328
328
|
// API Description
|
|
329
|
-
class: "text-align-center api-description-title
|
|
329
|
+
class: "text-align-center api-description-title subtitle-regular-xs\t"
|
|
330
330
|
}, (t = this.selectedType) === null || t === void 0 ? void 0 : t.description), s("label", {
|
|
331
331
|
// Name
|
|
332
332
|
class: "label api-name-label",
|
|
333
333
|
htmlFor: "name"
|
|
334
|
-
},
|
|
334
|
+
}, h(this, p, "f").objectName), s("div", null, s("ch-edit", {
|
|
335
335
|
autoFocus: true,
|
|
336
336
|
class: {
|
|
337
337
|
input: true,
|
|
@@ -339,15 +339,15 @@ const A = class {
|
|
|
339
339
|
"input-error": !!this.nameValidationErrorMessage
|
|
340
340
|
},
|
|
341
341
|
placeholder: "Name",
|
|
342
|
-
value:
|
|
342
|
+
value: h(this, S, "f").call(this),
|
|
343
343
|
ref: t => c(this, y, t, "f"),
|
|
344
|
-
onChange:
|
|
345
|
-
onInput:
|
|
346
|
-
onBlur:
|
|
344
|
+
onChange: h(this, $, "f"),
|
|
345
|
+
onInput: h(this, T, "f"),
|
|
346
|
+
onBlur: h(this, E, "f"),
|
|
347
347
|
part: "name"
|
|
348
348
|
}), this.nameValidationErrorMessage && s("ch-tooltip", {
|
|
349
349
|
class: "tooltip",
|
|
350
|
-
actionElement:
|
|
350
|
+
actionElement: h(this, y, "f"),
|
|
351
351
|
blockAlign: o.tooltipSettings.blockAlign,
|
|
352
352
|
inlineAlign: o.tooltipSettings.inlineAlign,
|
|
353
353
|
delay: o.tooltipSettings.delay
|
|
@@ -355,31 +355,31 @@ const A = class {
|
|
|
355
355
|
// Description
|
|
356
356
|
class: "label api-description-label",
|
|
357
357
|
htmlFor: "description"
|
|
358
|
-
},
|
|
358
|
+
}, h(this, p, "f").objectDescription), s("ch-edit", {
|
|
359
359
|
autoFocus: true,
|
|
360
360
|
class: "input api-description-control",
|
|
361
361
|
placeholder: "Description",
|
|
362
|
-
value:
|
|
362
|
+
value: h(this, C, "f").call(this),
|
|
363
363
|
// TODO: toolTip={config.tooltip}
|
|
364
364
|
ref: t => c(this, b, t, "f"),
|
|
365
|
-
onInput:
|
|
365
|
+
onInput: h(this, F, "f"),
|
|
366
366
|
part: "description"
|
|
367
|
-
}),
|
|
367
|
+
}), h(this, _, "f").call(this)), s("footer", {
|
|
368
368
|
class: "footer control-footer-with-border spacing-body-inline spacing-body-block-end "
|
|
369
369
|
}, s("div", {
|
|
370
370
|
class: "buttons-spacer"
|
|
371
371
|
}, s("button", {
|
|
372
372
|
// cancel
|
|
373
373
|
class: "button-secondary",
|
|
374
|
-
onClick:
|
|
374
|
+
onClick: h(this, v, "f"),
|
|
375
375
|
part: "button button-cancel"
|
|
376
|
-
},
|
|
376
|
+
}, h(this, p, "f").footer.btnCancel), s("button", {
|
|
377
377
|
// create
|
|
378
378
|
class: "button-primary",
|
|
379
|
-
onClick:
|
|
379
|
+
onClick: h(this, W, "f"),
|
|
380
380
|
disabled: !!this.nameValidationErrorMessage,
|
|
381
381
|
part: "button button-create"
|
|
382
|
-
},
|
|
382
|
+
}, h(this, p, "f").footer.btnCreate)))));
|
|
383
383
|
}
|
|
384
384
|
static get delegatesFocus() {
|
|
385
385
|
return true;
|
|
@@ -412,7 +412,7 @@ d = new WeakSet, I = function _GxIdeNewObject_initializeSelectedTypeMap() {
|
|
|
412
412
|
}));
|
|
413
413
|
};
|
|
414
414
|
|
|
415
|
-
A.style =
|
|
415
|
+
A.style = r;
|
|
416
416
|
|
|
417
417
|
export { A as gx_ide_new_object };
|
|
418
|
-
//# sourceMappingURL=p-
|
|
418
|
+
//# sourceMappingURL=p-86b0cf22.entry.js.map
|