@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
|
-
{"file":"gx-ide-new-object.entry.js","mappings":"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","names":[],"sources":["src/components/new-object/helpers.tsx","src/common/chameleon-helpers.ts","src/components/new-object/new-object.scss?tag=gx-ide-new-object&encapsulation=shadow","src/components/new-object/new-object.tsx"],"sourcesContent":["import { ActionListModel } from \"@genexus/chameleon-controls-library\";\nimport { TypeCategoryData } from \"../..\";\nimport { TypeData } from \"./new-object\";\n\nexport type ChCheckboxArray = HTMLChCheckboxElement[] | null;\n\nexport const mapTypeCategoryDataToActionListModel = (\n categories: TypeCategoryData[]\n): ActionListModel => {\n return categories.map(category => {\n return {\n id: category.id,\n type: \"actionable\",\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: category.icon || undefined }]\n }\n },\n caption: category.name,\n part: `category-${category.id}`\n };\n });\n};\n\nexport const mapTypeDataToActionListModel = (\n types: TypeData[],\n selectedCategoryId: string,\n selectedTypeId?: string\n): ActionListModel => {\n return types.map(type => {\n return {\n id: `${type.id}`,\n type: \"actionable\",\n imageSrc: \"objects/design\",\n selected: selectedTypeId === type.id,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: type.icon }]\n }\n },\n caption: type.name,\n part: `type-${selectedCategoryId}-${type.id}`\n };\n });\n};\n","import { ActionListModel } from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n\n/**\n * Order the items in the same order as they come.\n */\nexport const sortActionListDefault = (subModel: ActionListModel) => {\n return subModel;\n};\n",":host {\n display: grid;\n block-size: 100%;\n}\n\n.main {\n display: grid;\n grid-template-rows: 1fr max-content max-content;\n}\n.categories-types-layout {\n grid-template-columns: 1fr 1fr;\n}\n.api-description-layout {\n padding-block: calc(\n var(--content-block-spacing) * 2\n ); // WA until we define a class for internal spacing.\n display: grid;\n grid-template:\n \"api-description-title api-description-title\"\n \"api-name-label api-name-control\"\n \"api-description-label api-description-control\"\n \"api-module-label api-module-control\";\n grid-template-columns: max-content 1fr;\n}\n.api-description-title {\n grid-area: api-description-title;\n}\n.api-name-label {\n grid-area: api-name-label;\n}\n.api-name-control {\n grid-area: api-name-control;\n}\n.api-description-label {\n grid-area: api-description-label;\n}\n.api-description-control {\n grid-area: api-description-control;\n}\n.api-module-label {\n grid-area: api-module-label;\n}\n.api-module-control {\n grid-area: api-module-control;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n Watch,\n getAssetPath,\n Method\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { config } from \"../../common/config\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { EntityData } from \"../../common/types\";\nimport {\n ActionListItemModelExtended,\n ActionListModel\n} from \"@genexus/chameleon-controls-library\";\nimport {\n mapTypeCategoryDataToActionListModel,\n mapTypeDataToActionListModel\n} from \"./helpers\";\n\nimport { sortActionListDefault } from \"../../common/chameleon-helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/edit\",\n \"components/icon\",\n \"components/tooltip\",\n \"components/list-box\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-new-object\",\n styleUrl: \"new-object.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/new-object\"]\n})\nexport class GxIdeNewObject {\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 #shortcutsSrc = getAssetPath(`./gx-ide-assets/new-object/shortcuts.json`);\n\n @Element() el: HTMLGxIdeNewObjectElement;\n\n /* References needed to collect data on \"Create\" button submit */\n #categoriesActionListEl: HTMLChActionListRenderElement;\n #chShortcutsEl: HTMLChShortcutsElement;\n #descriptionEl!: HTMLChEditElement;\n #descriptionModifiedByUser = false;\n #moduleFolderEl!: HTMLGxIdeEntitySelectorElement;\n #nameEl!: HTMLChEditElement;\n #nameModifiedByUser = false;\n\n /**\n * Description of the new object\n */\n @State() description: string = undefined;\n\n /**\n * Name of the new object\n */\n @State() name: string = undefined;\n @State() nameValidationErrorMessage: string;\n @State() selectedCategory: TypeCategoryData | null;\n @State() selectedType: TypeData | null;\n // representations of TypeCategoryData[] as ComboBoxModel.\n @State() typeCategoriesActionListModel: ActionListModel = [];\n @State() typesActionListModel: ActionListModel = [];\n\n @State() selectedTypeMap: Map<string, string> = new Map();\n\n /**\n * Allows you to define the type selected by default when instantiating the dialog.\n * Represented by the type identifier.\n */\n @Prop() readonly defaultTypeId: string;\n\n /**\n * Default value for the Module/Folder field.\n */\n @Prop() readonly defaultParent: EntityData;\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Callback invoked when user wants to cancel object creation\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user wants to confirm object creation\n */\n @Prop() readonly createCallback: CreateCallback;\n\n /**\n * Applies a shadow all around\n */\n @Prop() readonly shadow = false;\n\n /**\n * Array containing category list and its corresponding types\n */\n @Prop({ mutable: true }) typeCategories!: TypeCategoryData[];\n @Watch(\"typeCategories\")\n typeCategoriesChanged(newValue: TypeCategoryData[]) {\n if (newValue?.length) {\n this.typeCategoriesActionListModel = mapTypeCategoryDataToActionListModel(\n this.typeCategories\n );\n }\n }\n\n /**\n * Current value for Module/Folder\n */\n @Prop() readonly parent: EntityData;\n\n /**\n * Callback invoked when the action is executed on the Module/Folder filter\n * (button '...'). It returns the information of the selected object (id and\n * name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * Callback invoked when you must validate a name. Returns an error message or\n * 'undefined' if the name is not valid.\n */\n @Prop() readonly validateNameCallback: ValidateNameCallback;\n\n /**\n * This event emits the 'cancel' event\n */\n @Event() cancel: EventEmitter<boolean>;\n\n /**\n * This event emm=its the data needed to create a new object\n */\n @Event() create: EventEmitter<NewObjectData>;\n\n /**\n * This event is triggered after a validation of the object name is made.\n * Returns 'undefined' if it's valid, otherwise an error message.\n */\n @Event() validateName: EventEmitter<string | undefined>;\n\n connectedCallback() {\n // this.#validateInitialName();\n }\n\n async componentWillLoad() {\n this.#init();\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.typeCategoriesChanged(this.typeCategories);\n this.#initializeSelectedTypeMap();\n }\n\n componentDidLoad() {\n this.#setSelectedCategoryOnActionList();\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n // - - - - - - - - - - -\n\n #cancelCallbackHandler = async (): Promise<void> => {\n await this.cancelCallback();\n };\n\n #categoryOnSelectionChangedHandler = (\n selectionEvent: CustomEvent<ActionListItemModelExtended[]>\n ): void => {\n const selection = selectionEvent.detail;\n if (selection.length > 0) {\n const selectedCategory = this.typeCategories.find(\n category => category.id === selection[0].item.id\n );\n if (selectedCategory) {\n this.selectedCategory = selectedCategory;\n if (selectedCategory.types.length > 0) {\n this.selectedType = selectedCategory.types.find(\n type => type.id === this.selectedTypeMap.get(selectedCategory.id)\n );\n }\n }\n }\n };\n\n #createCallbackHandler = async (): Promise<void> => {\n // validate name first\n const nameValidation: string | undefined = await this.validateNameCallback(\n this.#nameEl.value\n );\n if (!!nameValidation) {\n // name is invalid\n this.#validateNameHandler(nameValidation);\n return;\n }\n\n const data: NewObjectData = {\n typeId: this.selectedType?.id,\n name: this.#nameEl.value,\n description: !this.#descriptionModifiedByUser\n ? undefined\n : this.#descriptionEl.value,\n moduleId: this.#moduleFolderEl?.value?.id\n };\n const result = await this.createCallback(data);\n this.#validateNameHandler(result);\n };\n\n #descriptionValueHandler = () => {\n if (this.#nameModifiedByUser || this.#descriptionModifiedByUser) {\n console.log(\"description modified by user\");\n return this.#descriptionEl.value;\n } else {\n return this.selectedType.name;\n }\n };\n\n #getNameSuggestion = (selectedType: TypeData) => {\n // Type name can include whitespaces; we need to replace all whitespaces to\n // avoid invalid suggestions:\n return selectedType.name.replace(/\\s/g, \"\");\n };\n\n /**\n * This method defines the initial selected category and type, and it then\n * initializes the name value.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #init = () => {\n const defaultTypeFound = this.#setDefaultType(this.defaultTypeId);\n if (!defaultTypeFound) {\n this.selectedCategory = this.typeCategories[0];\n this.selectedType = this.selectedCategory.types[0];\n }\n if (this.selectedType && this.selectedType.name.length > 0) {\n this.name = this.#getNameSuggestion(this.selectedType);\n this.description = this.selectedType.name;\n }\n };\n\n /**\n * Initializes the selectedTypeMap with the defaultTypeId if it exists, otherwise\n * it initializes the selectedTypeMap with the first type of each category.\n */\n // eslint-disable-next-line @stencil-community/own-methods-must-be-private\n #initializeSelectedTypeMap() {\n this.typeCategories.forEach(category => {\n if (this.defaultTypeId && category.id === this.selectedCategory.id) {\n this.selectedTypeMap.set(category.id, this.selectedType.id);\n } else {\n this.selectedTypeMap.set(category.id, category.types[0].id);\n }\n });\n }\n\n #nameValueHandler = (): string => {\n if (this.#nameModifiedByUser) {\n return this.#nameEl.value;\n } else {\n return this.#getNameSuggestion(this.selectedType);\n }\n };\n\n #onBlurNameHandler = async () => {\n const result: string | undefined = await this.validateNameCallback(\n this.#nameEl.value\n );\n this.#validateNameHandler(result);\n };\n\n #onInputDescriptionHandler = (e: CustomEvent<string>) => {\n this.description = e.detail;\n this.#descriptionModifiedByUser = true;\n };\n\n #onInputNameHandler = async (e: CustomEvent<any> | InputEvent) => {\n const name = e.detail;\n if (!this.#descriptionModifiedByUser) {\n // Description should be equal to name, unless the description was already\n // modified by the user.\n this.#descriptionEl.value = name;\n }\n this.#nameModifiedByUser = true;\n };\n\n #onNameValueChangedHandler = async (e: CustomEvent<string>) => {\n const name = e.detail;\n const result: string | undefined = await this.validateNameCallback(name);\n this.#validateNameHandler(result);\n };\n\n #renderModuleFolder = () => {\n if (this.selectedType.hasModule || this.selectedType.hasFolder) {\n let labelDescription = this.#componentLocale.moduleFolder;\n if (!this.selectedType.hasFolder) {\n labelDescription = this.#componentLocale.moduleOnly;\n } else if (!this.selectedType.hasModule) {\n labelDescription = this.#componentLocale.folderOnly;\n }\n return [\n <label\n // Module/folder\n class=\"label api-module-label\"\n htmlFor=\"module\"\n >\n {labelDescription}\n </label>,\n <gx-ide-entity-selector\n id=\"module\"\n class=\"api-module-control\"\n part=\"module\"\n labelPosition=\"none\"\n value={this.parent}\n defaultValue={this.defaultParent}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleFolderEl = el as HTMLGxIdeEntitySelectorElement)\n }\n ></gx-ide-entity-selector>\n ];\n }\n return null;\n };\n\n #setDefaultType = (typeId: string | undefined): boolean => {\n if (!typeId) {\n return false;\n }\n let found = false;\n outerLoop: for (let i = 0; i < this.typeCategories.length; i++) {\n for (let j = 0; j < this.typeCategories[i].types.length; j++) {\n const loopTypeId = this.typeCategories[i].types[j].id;\n if (loopTypeId === typeId) {\n this.selectedCategory = this.typeCategories[i];\n this.selectedType = this.typeCategories[i].types[j];\n found = true;\n break outerLoop;\n }\n }\n }\n return found;\n };\n\n #setSelectedCategoryOnActionList = () => {\n if (this.selectedCategory) {\n // update model by setting the selected category\n this.#categoriesActionListEl.updateItemProperties(\n this.selectedCategory.id,\n {\n selected: true,\n type: \"actionable\"\n }\n );\n }\n };\n\n #typeOnSelectionChangedHandler = (\n selectionEvent: CustomEvent<ActionListItemModelExtended[]>\n ) => {\n const selection = selectionEvent.detail;\n if (selection.length > 0) {\n this.selectedType = this.selectedCategory.types.find(\n type => type.id === selection[0].item.id\n );\n this.selectedTypeMap.set(this.selectedCategory.id, this.selectedType.id);\n }\n };\n\n // #validateInitialName = async () => {\n // const result: string | undefined = await this.validateNameCallback(\n // this.name\n // );\n // this.#validateNameHandler(result);\n // };\n\n /**\n * If the parameter is undefined, it means the name is valid. Otherwise, if it\n * receives a string, it indicates that the name is not valid. The string is the\n * error message to display.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #validateNameHandler = (result: string | undefined): void => {\n this.nameValidationErrorMessage = result;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n\n <section class=\"main\">\n <section class=\"field-group categories-types-layout spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#componentLocale.categorySelectionTitle}\n </label>\n <ch-action-list-render\n // #select a category\n // TODO: The \"scrollable\" class is a WA since the action-list currently does not support scrollbar customization\n class=\"list-box\"\n selection=\"single\"\n model={this.typeCategoriesActionListModel}\n sortItemsCallback={sortActionListDefault}\n onSelectedItemsChange={this.#categoryOnSelectionChangedHandler}\n ref={(el: HTMLChActionListRenderElement) =>\n (this.#categoriesActionListEl =\n el as HTMLChActionListRenderElement)\n }\n ></ch-action-list-render>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.selectedCategory.name\n ? `${this.selectedCategory.name} ${\n this.#componentLocale.typeSelectionTitleSuffix\n }`\n : this.#componentLocale.typeSelectionTitle}\n </label>\n <ch-action-list-render\n // #data management types\n // TODO: The \"scrollable\" class is a WA since the action-list currently does not support scrollbar customization\n class=\"list-box\"\n selection=\"single\"\n sortItemsCallback={sortActionListDefault}\n model={mapTypeDataToActionListModel(\n this.selectedCategory.types,\n this.selectedCategory.id,\n this.selectedType.id\n )}\n onSelectedItemsChange={this.#typeOnSelectionChangedHandler}\n ></ch-action-list-render>\n </div>\n </section>\n\n <section class=\"api-description-layout field-group spacing-body-inline\">\n <h2\n // API Description\n class=\"text-align-center api-description-title heading-5\"\n >\n {this.selectedType?.description}\n </h2>\n\n <label\n // Name\n class=\"label api-name-label\"\n htmlFor=\"name\"\n >\n {this.#componentLocale.objectName}\n </label>\n <div>\n <ch-edit\n autoFocus\n class={{\n \"input\": true,\n \"api-name-control\": true,\n \"input-error\": !!this.nameValidationErrorMessage\n }}\n placeholder=\"Name\"\n value={this.#nameValueHandler()}\n ref={(el: HTMLChEditElement) =>\n (this.#nameEl = el as HTMLChEditElement)\n }\n onChange={this.#onNameValueChangedHandler}\n onInput={this.#onInputNameHandler as any}\n onBlur={this.#onBlurNameHandler}\n part=\"name\"\n ></ch-edit>\n {this.nameValidationErrorMessage && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={this.#nameEl as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.nameValidationErrorMessage}\n </ch-tooltip>\n )}\n </div>\n\n <label\n // Description\n class=\"label api-description-label\"\n htmlFor=\"description\"\n >\n {this.#componentLocale.objectDescription}\n </label>\n <ch-edit\n autoFocus\n class=\"input api-description-control\"\n placeholder=\"Description\"\n value={this.#descriptionValueHandler()}\n // TODO: toolTip={config.tooltip}\n ref={(el: HTMLChEditElement) =>\n (this.#descriptionEl = el as HTMLChEditElement)\n }\n onInput={this.#onInputDescriptionHandler as any}\n part=\"description\"\n ></ch-edit>\n\n {this.#renderModuleFolder()}\n </section>\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end \">\n <div class=\"buttons-spacer\">\n <button\n // cancel\n class=\"button-secondary\"\n onClick={this.#cancelCallbackHandler}\n part=\"button button-cancel\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n\n <button\n // create\n class=\"button-primary\"\n onClick={this.#createCallbackHandler}\n disabled={!!this.nameValidationErrorMessage}\n part=\"button button-create\"\n >\n {this.#componentLocale.footer.btnCreate}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport interface NewObjectData {\n typeId: string;\n name: string;\n description: string | undefined;\n moduleId: string;\n}\n\nexport type ValidateNameCallback = (\n name: string\n) => Promise<string | undefined>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type CreateCallback = (\n data: NewObjectData\n) => Promise<string | undefined>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type TypeCategoryData = {\n id: string;\n name: string;\n icon: string;\n types: TypeData[];\n};\n\nexport type TypeData = {\n id: string;\n name: string;\n icon: string;\n hasModule: boolean;\n hasFolder: boolean;\n description: string;\n};\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-new-object.entry.js","mappings":"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","names":[],"sources":["src/components/new-object/helpers.tsx","src/common/chameleon-helpers.ts","src/components/new-object/new-object.scss?tag=gx-ide-new-object&encapsulation=shadow","src/components/new-object/new-object.tsx"],"sourcesContent":["import { ActionListModel } from \"@genexus/chameleon-controls-library\";\nimport { TypeCategoryData } from \"../..\";\nimport { TypeData } from \"./new-object\";\n\nexport type ChCheckboxArray = HTMLChCheckboxElement[] | null;\n\nexport const mapTypeCategoryDataToActionListModel = (\n categories: TypeCategoryData[]\n): ActionListModel => {\n return categories.map(category => {\n return {\n id: category.id,\n type: \"actionable\",\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: category.icon || undefined }]\n }\n },\n caption: category.name,\n part: `category-${category.id}`\n };\n });\n};\n\nexport const mapTypeDataToActionListModel = (\n types: TypeData[],\n selectedCategoryId: string,\n selectedTypeId?: string\n): ActionListModel => {\n return types.map(type => {\n return {\n id: `${type.id}`,\n type: \"actionable\",\n imageSrc: \"objects/design\",\n selected: selectedTypeId === type.id,\n additionalInformation: {\n \"stretch-start\": {\n center: [{ imgSrc: type.icon }]\n }\n },\n caption: type.name,\n part: `type-${selectedCategoryId}-${type.id}`\n };\n });\n};\n","import { ActionListModel } from \"@genexus/chameleon-controls-library/dist/types/components/action-list/types\";\n\n/**\n * Order the items in the same order as they come.\n */\nexport const sortActionListDefault = (subModel: ActionListModel) => {\n return subModel;\n};\n",":host {\n display: grid;\n block-size: 100%;\n}\n\n.main {\n display: grid;\n grid-template-rows: 1fr max-content max-content;\n}\n.categories-types-layout {\n grid-template-columns: 1fr 1fr;\n}\n.api-description-layout {\n padding-block: calc(\n var(--content-block-spacing) * 2\n ); // WA until we define a class for internal spacing.\n display: grid;\n grid-template:\n \"api-description-title api-description-title\"\n \"api-name-label api-name-control\"\n \"api-description-label api-description-control\"\n \"api-module-label api-module-control\";\n grid-template-columns: max-content 1fr;\n}\n.api-description-title {\n grid-area: api-description-title;\n}\n.api-name-label {\n grid-area: api-name-label;\n}\n.api-name-control {\n grid-area: api-name-control;\n}\n.api-description-label {\n grid-area: api-description-label;\n}\n.api-description-control {\n grid-area: api-description-control;\n}\n.api-module-label {\n grid-area: api-module-label;\n}\n.api-module-control {\n grid-area: api-module-control;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n Watch,\n getAssetPath,\n Method\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { config } from \"../../common/config\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { EntityData } from \"../../common/types\";\nimport {\n ActionListItemModelExtended,\n ActionListModel\n} from \"@genexus/chameleon-controls-library\";\nimport {\n mapTypeCategoryDataToActionListModel,\n mapTypeDataToActionListModel\n} from \"./helpers\";\n\nimport { sortActionListDefault } from \"../../common/chameleon-helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/edit\",\n \"components/icon\",\n \"components/tooltip\",\n \"components/list-box\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-new-object\",\n styleUrl: \"new-object.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/new-object\"]\n})\nexport class GxIdeNewObject {\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 #shortcutsSrc = getAssetPath(`./gx-ide-assets/new-object/shortcuts.json`);\n\n @Element() el: HTMLGxIdeNewObjectElement;\n\n /* References needed to collect data on \"Create\" button submit */\n #categoriesActionListEl: HTMLChActionListRenderElement;\n #chShortcutsEl: HTMLChShortcutsElement;\n #descriptionEl!: HTMLChEditElement;\n #descriptionModifiedByUser = false;\n #moduleFolderEl!: HTMLGxIdeEntitySelectorElement;\n #nameEl!: HTMLChEditElement;\n #nameModifiedByUser = false;\n\n /**\n * Description of the new object\n */\n @State() description: string = undefined;\n\n /**\n * Name of the new object\n */\n @State() name: string = undefined;\n @State() nameValidationErrorMessage: string;\n @State() selectedCategory: TypeCategoryData | null;\n @State() selectedType: TypeData | null;\n // representations of TypeCategoryData[] as ComboBoxModel.\n @State() typeCategoriesActionListModel: ActionListModel = [];\n @State() typesActionListModel: ActionListModel = [];\n\n @State() selectedTypeMap: Map<string, string> = new Map();\n\n /**\n * Allows you to define the type selected by default when instantiating the dialog.\n * Represented by the type identifier.\n */\n @Prop() readonly defaultTypeId: string;\n\n /**\n * Default value for the Module/Folder field.\n */\n @Prop() readonly defaultParent: EntityData;\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Callback invoked when user wants to cancel object creation\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user wants to confirm object creation\n */\n @Prop() readonly createCallback: CreateCallback;\n\n /**\n * Applies a shadow all around\n */\n @Prop() readonly shadow = false;\n\n /**\n * Array containing category list and its corresponding types\n */\n @Prop({ mutable: true }) typeCategories!: TypeCategoryData[];\n @Watch(\"typeCategories\")\n typeCategoriesChanged(newValue: TypeCategoryData[]) {\n if (newValue?.length) {\n this.typeCategoriesActionListModel = mapTypeCategoryDataToActionListModel(\n this.typeCategories\n );\n }\n }\n\n /**\n * Current value for Module/Folder\n */\n @Prop() readonly parent: EntityData;\n\n /**\n * Callback invoked when the action is executed on the Module/Folder filter\n * (button '...'). It returns the information of the selected object (id and\n * name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * Callback invoked when you must validate a name. Returns an error message or\n * 'undefined' if the name is not valid.\n */\n @Prop() readonly validateNameCallback: ValidateNameCallback;\n\n /**\n * This event emits the 'cancel' event\n */\n @Event() cancel: EventEmitter<boolean>;\n\n /**\n * This event emm=its the data needed to create a new object\n */\n @Event() create: EventEmitter<NewObjectData>;\n\n /**\n * This event is triggered after a validation of the object name is made.\n * Returns 'undefined' if it's valid, otherwise an error message.\n */\n @Event() validateName: EventEmitter<string | undefined>;\n\n connectedCallback() {\n // this.#validateInitialName();\n }\n\n async componentWillLoad() {\n this.#init();\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.typeCategoriesChanged(this.typeCategories);\n this.#initializeSelectedTypeMap();\n }\n\n componentDidLoad() {\n this.#setSelectedCategoryOnActionList();\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n // - - - - - - - - - - -\n\n #cancelCallbackHandler = async (): Promise<void> => {\n await this.cancelCallback();\n };\n\n #categoryOnSelectionChangedHandler = (\n selectionEvent: CustomEvent<ActionListItemModelExtended[]>\n ): void => {\n const selection = selectionEvent.detail;\n if (selection.length > 0) {\n const selectedCategory = this.typeCategories.find(\n category => category.id === selection[0].item.id\n );\n if (selectedCategory) {\n this.selectedCategory = selectedCategory;\n if (selectedCategory.types.length > 0) {\n this.selectedType = selectedCategory.types.find(\n type => type.id === this.selectedTypeMap.get(selectedCategory.id)\n );\n }\n }\n }\n };\n\n #createCallbackHandler = async (): Promise<void> => {\n // validate name first\n const nameValidation: string | undefined = await this.validateNameCallback(\n this.#nameEl.value\n );\n if (!!nameValidation) {\n // name is invalid\n this.#validateNameHandler(nameValidation);\n return;\n }\n\n const data: NewObjectData = {\n typeId: this.selectedType?.id,\n name: this.#nameEl.value,\n description: !this.#descriptionModifiedByUser\n ? undefined\n : this.#descriptionEl.value,\n moduleId: this.#moduleFolderEl?.value?.id\n };\n const result = await this.createCallback(data);\n this.#validateNameHandler(result);\n };\n\n #descriptionValueHandler = () => {\n if (this.#nameModifiedByUser || this.#descriptionModifiedByUser) {\n console.log(\"description modified by user\");\n return this.#descriptionEl.value;\n } else {\n return this.selectedType.name;\n }\n };\n\n #getNameSuggestion = (selectedType: TypeData) => {\n // Type name can include whitespaces; we need to replace all whitespaces to\n // avoid invalid suggestions:\n return selectedType.name.replace(/\\s/g, \"\");\n };\n\n /**\n * This method defines the initial selected category and type, and it then\n * initializes the name value.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #init = () => {\n const defaultTypeFound = this.#setDefaultType(this.defaultTypeId);\n if (!defaultTypeFound) {\n this.selectedCategory = this.typeCategories[0];\n this.selectedType = this.selectedCategory.types[0];\n }\n if (this.selectedType && this.selectedType.name.length > 0) {\n this.name = this.#getNameSuggestion(this.selectedType);\n this.description = this.selectedType.name;\n }\n };\n\n /**\n * Initializes the selectedTypeMap with the defaultTypeId if it exists, otherwise\n * it initializes the selectedTypeMap with the first type of each category.\n */\n // eslint-disable-next-line @stencil-community/own-methods-must-be-private\n #initializeSelectedTypeMap() {\n this.typeCategories.forEach(category => {\n if (this.defaultTypeId && category.id === this.selectedCategory.id) {\n this.selectedTypeMap.set(category.id, this.selectedType.id);\n } else {\n this.selectedTypeMap.set(category.id, category.types[0].id);\n }\n });\n }\n\n #nameValueHandler = (): string => {\n if (this.#nameModifiedByUser) {\n return this.#nameEl.value;\n } else {\n return this.#getNameSuggestion(this.selectedType);\n }\n };\n\n #onBlurNameHandler = async () => {\n const result: string | undefined = await this.validateNameCallback(\n this.#nameEl.value\n );\n this.#validateNameHandler(result);\n };\n\n #onInputDescriptionHandler = (e: CustomEvent<string>) => {\n this.description = e.detail;\n this.#descriptionModifiedByUser = true;\n };\n\n #onInputNameHandler = async (e: CustomEvent<any> | InputEvent) => {\n const name = e.detail;\n if (!this.#descriptionModifiedByUser) {\n // Description should be equal to name, unless the description was already\n // modified by the user.\n this.#descriptionEl.value = name;\n }\n this.#nameModifiedByUser = true;\n };\n\n #onNameValueChangedHandler = async (e: CustomEvent<string>) => {\n const name = e.detail;\n const result: string | undefined = await this.validateNameCallback(name);\n this.#validateNameHandler(result);\n };\n\n #renderModuleFolder = () => {\n if (this.selectedType.hasModule || this.selectedType.hasFolder) {\n let labelDescription = this.#componentLocale.moduleFolder;\n if (!this.selectedType.hasFolder) {\n labelDescription = this.#componentLocale.moduleOnly;\n } else if (!this.selectedType.hasModule) {\n labelDescription = this.#componentLocale.folderOnly;\n }\n return [\n <label\n // Module/folder\n class=\"label api-module-label\"\n htmlFor=\"module\"\n >\n {labelDescription}\n </label>,\n <gx-ide-entity-selector\n id=\"module\"\n class=\"api-module-control\"\n part=\"module\"\n labelPosition=\"none\"\n value={this.parent}\n defaultValue={this.defaultParent}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleFolderEl = el as HTMLGxIdeEntitySelectorElement)\n }\n ></gx-ide-entity-selector>\n ];\n }\n return null;\n };\n\n #setDefaultType = (typeId: string | undefined): boolean => {\n if (!typeId) {\n return false;\n }\n let found = false;\n outerLoop: for (let i = 0; i < this.typeCategories.length; i++) {\n for (let j = 0; j < this.typeCategories[i].types.length; j++) {\n const loopTypeId = this.typeCategories[i].types[j].id;\n if (loopTypeId === typeId) {\n this.selectedCategory = this.typeCategories[i];\n this.selectedType = this.typeCategories[i].types[j];\n found = true;\n break outerLoop;\n }\n }\n }\n return found;\n };\n\n #setSelectedCategoryOnActionList = () => {\n if (this.selectedCategory) {\n // update model by setting the selected category\n this.#categoriesActionListEl.updateItemProperties(\n this.selectedCategory.id,\n {\n selected: true,\n type: \"actionable\"\n }\n );\n }\n };\n\n #typeOnSelectionChangedHandler = (\n selectionEvent: CustomEvent<ActionListItemModelExtended[]>\n ) => {\n const selection = selectionEvent.detail;\n if (selection.length > 0) {\n this.selectedType = this.selectedCategory.types.find(\n type => type.id === selection[0].item.id\n );\n this.selectedTypeMap.set(this.selectedCategory.id, this.selectedType.id);\n }\n };\n\n // #validateInitialName = async () => {\n // const result: string | undefined = await this.validateNameCallback(\n // this.name\n // );\n // this.#validateNameHandler(result);\n // };\n\n /**\n * If the parameter is undefined, it means the name is valid. Otherwise, if it\n * receives a string, it indicates that the name is not valid. The string is the\n * error message to display.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #validateNameHandler = (result: string | undefined): void => {\n this.nameValidationErrorMessage = result;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n\n <section class=\"main\">\n <section class=\"field-group categories-types-layout spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#componentLocale.categorySelectionTitle}\n </label>\n <ch-action-list-render\n // #select a category\n // TODO: The \"scrollable\" class is a WA since the action-list currently does not support scrollbar customization\n class=\"list-box\"\n selection=\"single\"\n model={this.typeCategoriesActionListModel}\n sortItemsCallback={sortActionListDefault}\n onSelectedItemsChange={this.#categoryOnSelectionChangedHandler}\n ref={(el: HTMLChActionListRenderElement) =>\n (this.#categoriesActionListEl =\n el as HTMLChActionListRenderElement)\n }\n ></ch-action-list-render>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.selectedCategory.name\n ? `${this.selectedCategory.name} ${\n this.#componentLocale.typeSelectionTitleSuffix\n }`\n : this.#componentLocale.typeSelectionTitle}\n </label>\n <ch-action-list-render\n // #data management types\n // TODO: The \"scrollable\" class is a WA since the action-list currently does not support scrollbar customization\n class=\"list-box\"\n selection=\"single\"\n sortItemsCallback={sortActionListDefault}\n model={mapTypeDataToActionListModel(\n this.selectedCategory.types,\n this.selectedCategory.id,\n this.selectedType.id\n )}\n onSelectedItemsChange={this.#typeOnSelectionChangedHandler}\n ></ch-action-list-render>\n </div>\n </section>\n\n <section class=\"api-description-layout field-group spacing-body-inline\">\n <h2\n // API Description\n class=\"text-align-center api-description-title subtitle-regular-xs\t\"\n >\n {this.selectedType?.description}\n </h2>\n\n <label\n // Name\n class=\"label api-name-label\"\n htmlFor=\"name\"\n >\n {this.#componentLocale.objectName}\n </label>\n <div>\n <ch-edit\n autoFocus\n class={{\n \"input\": true,\n \"api-name-control\": true,\n \"input-error\": !!this.nameValidationErrorMessage\n }}\n placeholder=\"Name\"\n value={this.#nameValueHandler()}\n ref={(el: HTMLChEditElement) =>\n (this.#nameEl = el as HTMLChEditElement)\n }\n onChange={this.#onNameValueChangedHandler}\n onInput={this.#onInputNameHandler as any}\n onBlur={this.#onBlurNameHandler}\n part=\"name\"\n ></ch-edit>\n {this.nameValidationErrorMessage && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={this.#nameEl as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.nameValidationErrorMessage}\n </ch-tooltip>\n )}\n </div>\n\n <label\n // Description\n class=\"label api-description-label\"\n htmlFor=\"description\"\n >\n {this.#componentLocale.objectDescription}\n </label>\n <ch-edit\n autoFocus\n class=\"input api-description-control\"\n placeholder=\"Description\"\n value={this.#descriptionValueHandler()}\n // TODO: toolTip={config.tooltip}\n ref={(el: HTMLChEditElement) =>\n (this.#descriptionEl = el as HTMLChEditElement)\n }\n onInput={this.#onInputDescriptionHandler as any}\n part=\"description\"\n ></ch-edit>\n\n {this.#renderModuleFolder()}\n </section>\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end \">\n <div class=\"buttons-spacer\">\n <button\n // cancel\n class=\"button-secondary\"\n onClick={this.#cancelCallbackHandler}\n part=\"button button-cancel\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n\n <button\n // create\n class=\"button-primary\"\n onClick={this.#createCallbackHandler}\n disabled={!!this.nameValidationErrorMessage}\n part=\"button button-create\"\n >\n {this.#componentLocale.footer.btnCreate}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport interface NewObjectData {\n typeId: string;\n name: string;\n description: string | undefined;\n moduleId: string;\n}\n\nexport type ValidateNameCallback = (\n name: string\n) => Promise<string | undefined>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type CreateCallback = (\n data: NewObjectData\n) => Promise<string | undefined>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type TypeCategoryData = {\n id: string;\n name: string;\n icon: string;\n types: TypeData[];\n};\n\nexport type TypeData = {\n id: string;\n name: string;\n icon: string;\n hasModule: boolean;\n hasFolder: boolean;\n description: string;\n};\n"],"version":3}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as registerInstance, a as getAssetPath, h, H as Host, g as getElement } from './index-93411ea2.js';
|
|
2
|
-
import { g as getIconPath } from './MERCURY_ASSETS-
|
|
2
|
+
import { g as getIconPath } from './MERCURY_ASSETS-91a1db9c.js';
|
|
3
3
|
import { L as Locale } from './locale-e5107fad.js';
|
|
4
|
-
import { c as config } from './config-
|
|
4
|
+
import { c as config } from './config-1ef9d75a.js';
|
|
5
5
|
import { f as formatDate } from './helpers-39459872.js';
|
|
6
6
|
import { F as FILTER_AFTER } from './constants-f9193da7.js';
|
|
7
7
|
|
|
@@ -200,7 +200,7 @@ const GxIdeObjectSelector = class {
|
|
|
200
200
|
}, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").filter.dateTime), h("input", { type: "datetime-local", class: "input input-date-time", id: "modified-date", name: "modifiedDate", part: "filter-pattern", value: this.patternValue, max: TODAY, ref: (el) => (__classPrivateFieldSet(this, _GxIdeObjectSelector_modifiedDateInput, el, "f")), disabled: this.modifiedAfterValue !== "afterDateTime", onInput: __classPrivateFieldGet(this, _GxIdeObjectSelector_refreshUIWithNewConfiguration, "f") }))))))));
|
|
201
201
|
});
|
|
202
202
|
_GxIdeObjectSelector_renderFooter.set(this, () => {
|
|
203
|
-
return (h("footer", { class: "footer control-footer-space-between" }, h("div", { class: "control-footer control-footer-space-between objects-count spacing-body-inline", slot: "footer-above" }, h("p", { class: "
|
|
203
|
+
return (h("footer", { class: "footer control-footer-space-between" }, h("div", { class: "control-footer control-footer-space-between objects-count spacing-body-inline", slot: "footer-above" }, h("p", { class: "body-regular-s objects-selected", part: "objects-selected" }, __classPrivateFieldGet(this, _GxIdeObjectSelector_evaluateObjectsCount, "f").call(this, "selected")), h("p", { class: "body-regular-s objects-matching", part: "objects-matching" }, __classPrivateFieldGet(this, _GxIdeObjectSelector_evaluateObjectsCount, "f").call(this, "matching"))), h("div", { class: "control-footer-with-border control-footer-space-between spacing-body-inline spacing-body-block-end" }, h("button", {
|
|
204
204
|
// button new object
|
|
205
205
|
class: "button-secondary", part: "button button-new", onClick: !this.loading ? __classPrivateFieldGet(this, _GxIdeObjectSelector_newObjectCallbackHandler, "f") : undefined, disabled: this.loading
|
|
206
206
|
}, __classPrivateFieldGet(this, _GxIdeObjectSelector_componentLocale, "f").footer.btnNew), h("div", { class: "end buttons-spacer" }, h("button", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-object-selector.entry.js","mappings":"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","names":[],"sources":["src/components/object-selector/helpers.ts","src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../common/types\";\n// - - - - - - - - - - - -\n// Data Mappings\n// - - - - - - - - - - - -\n\n// ch-combo-box-render\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name\n }));\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n","@import \"../../../node_modules/@genexus/mercury/dist/mercury.scss\"; // for the tabular-grid-cell-layout mixin\n\n:host {\n block-size: 100%;\n display: grid;\n grid-template-rows: auto 1fr auto;\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n\n/* Filters */\n.filter-layout {\n grid-template:\n \"pattern type\"\n \"category module\"\n \"modified modified\";\n grid-template-columns: 1fr 1fr;\n}\n.pattern {\n grid-area: pattern;\n}\n.type {\n grid-area: type;\n}\n.category {\n grid-area: category;\n}\n.module {\n grid-area: module;\n}\n.modified-accordion {\n grid-area: modified;\n display: flex;\n flex-direction: column;\n}\n.field-group-modified {\n grid-template-columns: 1fr 1fr 1fr;\n}\n.input-date-time {\n // TODO: Mercury controls block-size should be defined by a variable,\n // instead of the sum of the font-size + line-height + padding-block.\n // once this is updated, the block-size defined bellow should not be\n // required anymore.\n\n block-size: calc(\n var(--control__font-size--regular) * var(--control__line-height) +\n var(--control__padding-block) * 2 + var(--control__border-width) * 2\n );\n}\n\ngx-ide-container::part(content) {\n // only apply display grid when the loader is being displayed, to stretch the container.\n display: grid;\n}\n\n/*tabular grid*/\nch-tabular-grid {\n overflow: auto;\n}\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-object-selector\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n\n// Objects Table\n.objects-count {\n display: grid;\n grid-template-columns: 1fr 1fr;\n border-block-start: var(--mer-border__width--sm) solid\n var(--mer-color__elevation--04);\n}\n.objects-selected,\n.objects-matching {\n padding-block-end: var(--mer-spacing--xs);\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\nch-tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\ninput::-webkit-datetime-edit-fields-wrapper {\n // WA remove padding to force this input block-size to be the same as other\n // mercury controls block size.\n padding: none;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n AccordionModel,\n ComboBoxModel,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { EntityData, GxOption, ObjectType } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport {\n mapObjectTypeToComboBoxItemModel,\n mapCategoryToComboBoxItemModel\n} from \"./helpers\";\nimport { FILTER_AFTER, FilterAfterValue } from \"../../common/constants\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"components/accordion\",\n \"components/tabular-grid\",\n \"utils/typography\",\n \"utils/layout\",\n \"utils/spacing\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst USER_ICON = getIconPath({\n category: \"system\",\n name: \"user\",\n colorType: \"on-elevation\"\n});\n\nconst MODIFIED_ACCORDION_MODEL: AccordionModel = [\n {\n id: \"modified\",\n caption: \"Modified\",\n expanded: false\n }\n];\n\nlet TODAY: string = null;\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n #componentLocale: any;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n #afterModel: ComboBoxModel = null;\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n #patternInput!: HTMLChEditElement;\n #typeComboBox!: HTMLChComboBoxRenderElement;\n #categoryComboBox!: HTMLChComboBoxRenderElement;\n #moduleEntitySelector!: HTMLGxIdeEntitySelectorElement;\n #afterTypeComboBox!: HTMLChComboBoxRenderElement;\n #userInput!: HTMLChEditElement;\n #modifiedDateInput!: HTMLInputElement;\n #objectsGrid!: HTMLChTabularGridElement;\n #shortcutsEl: HTMLChShortcutsElement;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * True if loadCallback has been called and has not been resolved yet.\n */\n @State() loading: boolean = false;\n\n /**\n * The \"modified after\" value\n */\n @State() modifiedAfterValue: FilterAfterValue;\n\n /**\n * The objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIdsArray: string[] = [];\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * True if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = false;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n async connectedCallback() {\n TODAY = this.#getToday();\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#setAfterOptions();\n this.#setAfterDefaultValue();\n }\n\n componentDidLoad() {\n this.#refreshUIWithNewConfiguration();\n this.#patternInput.focus();\n }\n\n componentDidRender() {}\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#shortcutsEl.suspend = true;\n } else {\n this.#shortcutsEl.suspend = false;\n }\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 #cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n #chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.#openSelectionCallbackHandler(e);\n }\n };\n\n #deselectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows(false);\n };\n\n #evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n const locale = this.#componentLocale;\n\n if (type === \"selected\") {\n if (this.selectedObjectsIdsArray.length === 0) {\n return locale.objCount.selected.none;\n }\n if (this.selectedObjectsIdsArray.length === 1) {\n return `1 ${locale.objCount.selected.one}`;\n }\n return `${this.selectedObjectsIdsArray.length} ${locale.objCount.selected.many}`;\n }\n\n // type === \"matching\"\n if (this.objects.length === 0) {\n return locale.objCount.matching.none;\n }\n if (this.objects.length === 1) {\n return `1 ${locale.objCount.matching.one}`;\n }\n return `${this.objects.length} ${locale.objCount.matching.many}`;\n };\n\n #getToday = (): string => {\n const now = new Date();\n const date = now.toISOString().split(\"T\")[0];\n const time = now.toISOString().split(\"T\")[1].slice(0, 5); // Only take 'HH:MM' part\n return `${date}T${time}`;\n };\n\n #handleAfterValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.modifiedAfterValue = event.detail as FilterAfterValue;\n if (\n this.modifiedAfterValue !== FILTER_AFTER.DATE_TIME ||\n (this.modifiedAfterValue === FILTER_AFTER.DATE_TIME &&\n this.#modifiedDateInput.value)\n ) {\n // if \"modified\" is \"after date/time\" only refresh ui if date/time is valid.\n this.#refreshUIWithNewConfiguration();\n }\n };\n\n #handleObjectsSelectionChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n this.selectedObjectsIdsArray = event.detail.rowsId;\n };\n\n #hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n #newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n #openSelectionCallbackHandler = (e: MouseEvent | KeyboardEvent): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIdsArray);\n };\n\n #refreshUIWithNewConfiguration = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modifiedAfter = this.#afterTypeComboBox.value;\n const user = this.#userInput?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.#patternInput?.value,\n type: this.#typeComboBox.value,\n category: this.#categoryComboBox.value,\n module: this.#moduleEntitySelector?.value?.id,\n modifiedAfter: modifiedAfter ? modifiedAfter : null,\n modifiedBy: user ? user : null,\n modifiedDate:\n modifiedAfter === FILTER_AFTER.DATE_TIME\n ? new Date(this.#modifiedDateInput?.value)\n : null\n };\n this.loading = true;\n this.objects = [];\n this.loadCallback(filters).then((objects: ObjectData[]) => {\n if (objects) {\n this.objects = this.#sortObjectsByName(objects);\n }\n this.selectedObjectsIdsArray = [];\n this.#deselectAll();\n this.loading = false;\n });\n };\n\n #renderFilter = (): Element => {\n return (\n <header class=\"control-header spacing-body-inline spacing-body-block-start\">\n <form class=\"field-group filter-layout\">\n <div class=\"field field-block pattern\">\n <label\n // pattern\n class=\"label\"\n htmlFor=\"pattern\"\n >\n {this.#componentLocale.filter.pattern}\n </label>\n\n <ch-edit\n accessibleName={this.#componentLocale.filter.pattern}\n debounce={config.inputDebounce}\n class=\"input\"\n part=\"filter-pattern\"\n id=\"pattern\"\n name=\"pattern\"\n value={this.patternValue}\n mode=\"text\"\n ref={(el: HTMLChEditElement) =>\n (this.#patternInput = el as HTMLChEditElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block type\">\n <label\n // type\n class=\"label\"\n htmlFor=\"type\"\n >\n {this.#componentLocale.filter.type}\n </label>\n <ch-combo-box-render\n accessibleName={this.#componentLocale.filter.type}\n class=\"combo-box\"\n disabled={!this.types}\n value={this.defaultType}\n part=\"filter-type\"\n id=\"type\"\n model={mapObjectTypeToComboBoxItemModel(this.types)}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typeComboBox = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block category\">\n <label\n // category\n class=\"label\"\n htmlFor=\"category\"\n >\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"category\"\n class=\"combo-box\"\n accessibleName={this.#componentLocale.filter.category}\n disabled={!this.categories}\n model={mapCategoryToComboBoxItemModel(this.categories)}\n value={this.defaultCategory}\n part=\"filter-category\"\n onInput={this.categories && this.#refreshUIWithNewConfiguration}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#categoryComboBox = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <gx-ide-entity-selector\n // module\n class=\"module\"\n id=\"module\"\n value={this.defaultModule}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEntitySelector =\n el as HTMLGxIdeEntitySelectorElement)\n }\n labelCaption={this.#componentLocale.filter.module}\n labelPosition=\"block-start\"\n onValueChanged={this.#refreshUIWithNewConfiguration}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ></gx-ide-entity-selector>\n\n <ch-accordion-render\n // modified\n class=\"accordion-outlined modified-accordion\"\n model={MODIFIED_ACCORDION_MODEL}\n >\n <div slot=\"modified\" class=\"spacing-body\">\n <div class=\"field-group field-group-modified\">\n <div class=\"field field-block after\">\n <label\n // after\n class=\"label\"\n htmlFor=\"after-type\"\n >\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n value={this.modifiedAfterValue}\n part=\"filter-after-type\"\n id=\"after-type\"\n model={this.#afterModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#afterTypeComboBox =\n el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#handleAfterValueChange}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block\">\n <label\n // user\n class=\"label\"\n htmlFor=\"user-name\"\n >\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n class=\"input\"\n part=\"filter-user\"\n value={this.patternValue}\n ref={(el: HTMLChEditElement) =>\n (this.#userInput = el as HTMLChEditElement)\n }\n id=\"user-name\"\n name=\"userName\"\n startImgSrc={USER_ICON}\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block\">\n <label\n // date\n class={{\n \"label\": true,\n \"label--disabled\":\n this.modifiedAfterValue !== \"afterDateTime\"\n }}\n htmlFor=\"modified-date\"\n >\n {this.#componentLocale.filter.dateTime}\n </label>\n\n <input\n type=\"datetime-local\"\n class=\"input input-date-time\"\n id=\"modified-date\"\n name=\"modifiedDate\"\n part=\"filter-pattern\"\n value={this.patternValue}\n max={TODAY}\n ref={(el: HTMLInputElement) =>\n (this.#modifiedDateInput = el as HTMLInputElement)\n }\n disabled={this.modifiedAfterValue !== \"afterDateTime\"}\n onInput={this.#refreshUIWithNewConfiguration}\n ></input>\n </div>\n </div>\n </div>\n </ch-accordion-render>\n </form>\n </header>\n );\n };\n\n #renderFooter = (): Element => {\n return (\n <footer class=\"footer control-footer-space-between\">\n <div\n class=\"control-footer control-footer-space-between objects-count spacing-body-inline\"\n slot=\"footer-above\"\n >\n <p\n class=\"text-body-regular-s objects-selected\"\n part=\"objects-selected\"\n >\n {this.#evaluateObjectsCount(\"selected\")}\n </p>\n <p\n class=\"text-body-regular-s objects-matching\"\n part=\"objects-matching\"\n >\n {this.#evaluateObjectsCount(\"matching\")}\n </p>\n </div>\n\n <div class=\"control-footer-with-border control-footer-space-between spacing-body-inline spacing-body-block-end\">\n <button\n // button new object\n class=\"button-secondary\"\n part=\"button button-new\"\n onClick={!this.loading ? this.#newObjectCallbackHandler : undefined}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n <div class=\"end buttons-spacer\">\n <button\n // button cancel\n class=\"button-secondary\"\n part=\"button button-cancel\"\n onClick={this.#cancelCallbackHandler}\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // button confirm\n class=\"button-primary\"\n part=\"button button-confirm\"\n onClick={this.#openSelectionCallbackHandler}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnConfirm}\n </button>\n {this.multiSelection ? (\n <button\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button-select-all\"\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n ) : null}\n </div>\n </div>\n </footer>\n );\n };\n\n #renderObjects = (): Element => {\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid-object-selector\": true,\n \"empty-result\": this.objects.length === 0\n }}\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChTabularGridElement) => (this.#objectsGrid = el)}\n part=\"ch-grid-objects\"\n onKeyDown={this.#chGridKeyDownHandler}\n onSelectionChanged={this.#handleObjectsSelectionChange}\n onDblClick={this.#openSelectionCallbackHandler}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\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 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.type}\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.module}\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.description}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.modifiedDate}\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.importDate}\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-columnset>\n\n {this.objects.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: ObjectData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.modifiedDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.importDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n {this.loader && this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n ></gx-ide-empty-state>\n )}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #selectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows();\n };\n\n #setAfterDefaultValue = (): void => {\n this.modifiedAfterValue = FILTER_AFTER.NONE;\n };\n\n #setAfterOptions = (): void => {\n this.#afterModel = [\n {\n caption: this.#componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ];\n };\n\n #sortObjectsByName = (objects: ObjectData[]): ObjectData[] => {\n return objects.sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n };\n\n render(): void {\n return (\n <Host onKeyPress={this.#hostKeyPressHandler} class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#shortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n {this.#renderFilter()}\n {this.#renderObjects()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-object-selector.entry.js","mappings":"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","names":[],"sources":["src/components/object-selector/helpers.ts","src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../common/types\";\n// - - - - - - - - - - - -\n// Data Mappings\n// - - - - - - - - - - - -\n\n// ch-combo-box-render\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name\n }));\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n","@import \"../../../node_modules/@genexus/mercury/dist/mercury.scss\"; // for the tabular-grid-cell-layout mixin\n\n:host {\n block-size: 100%;\n display: grid;\n grid-template-rows: auto 1fr auto;\n overflow: auto;\n}\n\n.section {\n display: contents;\n}\n\n/* Filters */\n.filter-layout {\n grid-template:\n \"pattern type\"\n \"category module\"\n \"modified modified\";\n grid-template-columns: 1fr 1fr;\n}\n.pattern {\n grid-area: pattern;\n}\n.type {\n grid-area: type;\n}\n.category {\n grid-area: category;\n}\n.module {\n grid-area: module;\n}\n.modified-accordion {\n grid-area: modified;\n display: flex;\n flex-direction: column;\n}\n.field-group-modified {\n grid-template-columns: 1fr 1fr 1fr;\n}\n.input-date-time {\n // TODO: Mercury controls block-size should be defined by a variable,\n // instead of the sum of the font-size + line-height + padding-block.\n // once this is updated, the block-size defined bellow should not be\n // required anymore.\n\n block-size: calc(\n var(--control__font-size--regular) * var(--control__line-height) +\n var(--control__padding-block) * 2 + var(--control__border-width) * 2\n );\n}\n\ngx-ide-container::part(content) {\n // only apply display grid when the loader is being displayed, to stretch the container.\n display: grid;\n}\n\n/*tabular grid*/\nch-tabular-grid {\n overflow: auto;\n}\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-object-selector\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n\n// Objects Table\n.objects-count {\n display: grid;\n grid-template-columns: 1fr 1fr;\n border-block-start: var(--mer-border__width--sm) solid\n var(--mer-color__elevation--04);\n}\n.objects-selected,\n.objects-matching {\n padding-block-end: var(--mer-spacing--xs);\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\nch-tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\ninput::-webkit-datetime-edit-fields-wrapper {\n // WA remove padding to force this input block-size to be the same as other\n // mercury controls block size.\n padding: none;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n AccordionModel,\n ComboBoxModel,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { EntityData, GxOption, ObjectType } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport {\n mapObjectTypeToComboBoxItemModel,\n mapCategoryToComboBoxItemModel\n} from \"./helpers\";\nimport { FILTER_AFTER, FilterAfterValue } from \"../../common/constants\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"components/accordion\",\n \"components/tabular-grid\",\n \"utils/typography\",\n \"utils/layout\",\n \"utils/spacing\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst USER_ICON = getIconPath({\n category: \"system\",\n name: \"user\",\n colorType: \"on-elevation\"\n});\n\nconst MODIFIED_ACCORDION_MODEL: AccordionModel = [\n {\n id: \"modified\",\n caption: \"Modified\",\n expanded: false\n }\n];\n\nlet TODAY: string = null;\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n #componentLocale: any;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n #afterModel: ComboBoxModel = null;\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n #patternInput!: HTMLChEditElement;\n #typeComboBox!: HTMLChComboBoxRenderElement;\n #categoryComboBox!: HTMLChComboBoxRenderElement;\n #moduleEntitySelector!: HTMLGxIdeEntitySelectorElement;\n #afterTypeComboBox!: HTMLChComboBoxRenderElement;\n #userInput!: HTMLChEditElement;\n #modifiedDateInput!: HTMLInputElement;\n #objectsGrid!: HTMLChTabularGridElement;\n #shortcutsEl: HTMLChShortcutsElement;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * True if loadCallback has been called and has not been resolved yet.\n */\n @State() loading: boolean = false;\n\n /**\n * The \"modified after\" value\n */\n @State() modifiedAfterValue: FilterAfterValue;\n\n /**\n * The objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIdsArray: string[] = [];\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * True if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = false;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n async connectedCallback() {\n TODAY = this.#getToday();\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#setAfterOptions();\n this.#setAfterDefaultValue();\n }\n\n componentDidLoad() {\n this.#refreshUIWithNewConfiguration();\n this.#patternInput.focus();\n }\n\n componentDidRender() {}\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#shortcutsEl.suspend = true;\n } else {\n this.#shortcutsEl.suspend = false;\n }\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 #cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n #chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.#openSelectionCallbackHandler(e);\n }\n };\n\n #deselectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows(false);\n };\n\n #evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n const locale = this.#componentLocale;\n\n if (type === \"selected\") {\n if (this.selectedObjectsIdsArray.length === 0) {\n return locale.objCount.selected.none;\n }\n if (this.selectedObjectsIdsArray.length === 1) {\n return `1 ${locale.objCount.selected.one}`;\n }\n return `${this.selectedObjectsIdsArray.length} ${locale.objCount.selected.many}`;\n }\n\n // type === \"matching\"\n if (this.objects.length === 0) {\n return locale.objCount.matching.none;\n }\n if (this.objects.length === 1) {\n return `1 ${locale.objCount.matching.one}`;\n }\n return `${this.objects.length} ${locale.objCount.matching.many}`;\n };\n\n #getToday = (): string => {\n const now = new Date();\n const date = now.toISOString().split(\"T\")[0];\n const time = now.toISOString().split(\"T\")[1].slice(0, 5); // Only take 'HH:MM' part\n return `${date}T${time}`;\n };\n\n #handleAfterValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.modifiedAfterValue = event.detail as FilterAfterValue;\n if (\n this.modifiedAfterValue !== FILTER_AFTER.DATE_TIME ||\n (this.modifiedAfterValue === FILTER_AFTER.DATE_TIME &&\n this.#modifiedDateInput.value)\n ) {\n // if \"modified\" is \"after date/time\" only refresh ui if date/time is valid.\n this.#refreshUIWithNewConfiguration();\n }\n };\n\n #handleObjectsSelectionChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n this.selectedObjectsIdsArray = event.detail.rowsId;\n };\n\n #hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n #newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n #openSelectionCallbackHandler = (e: MouseEvent | KeyboardEvent): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIdsArray);\n };\n\n #refreshUIWithNewConfiguration = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modifiedAfter = this.#afterTypeComboBox.value;\n const user = this.#userInput?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.#patternInput?.value,\n type: this.#typeComboBox.value,\n category: this.#categoryComboBox.value,\n module: this.#moduleEntitySelector?.value?.id,\n modifiedAfter: modifiedAfter ? modifiedAfter : null,\n modifiedBy: user ? user : null,\n modifiedDate:\n modifiedAfter === FILTER_AFTER.DATE_TIME\n ? new Date(this.#modifiedDateInput?.value)\n : null\n };\n this.loading = true;\n this.objects = [];\n this.loadCallback(filters).then((objects: ObjectData[]) => {\n if (objects) {\n this.objects = this.#sortObjectsByName(objects);\n }\n this.selectedObjectsIdsArray = [];\n this.#deselectAll();\n this.loading = false;\n });\n };\n\n #renderFilter = (): Element => {\n return (\n <header class=\"control-header spacing-body-inline spacing-body-block-start\">\n <form class=\"field-group filter-layout\">\n <div class=\"field field-block pattern\">\n <label\n // pattern\n class=\"label\"\n htmlFor=\"pattern\"\n >\n {this.#componentLocale.filter.pattern}\n </label>\n\n <ch-edit\n accessibleName={this.#componentLocale.filter.pattern}\n debounce={config.inputDebounce}\n class=\"input\"\n part=\"filter-pattern\"\n id=\"pattern\"\n name=\"pattern\"\n value={this.patternValue}\n mode=\"text\"\n ref={(el: HTMLChEditElement) =>\n (this.#patternInput = el as HTMLChEditElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block type\">\n <label\n // type\n class=\"label\"\n htmlFor=\"type\"\n >\n {this.#componentLocale.filter.type}\n </label>\n <ch-combo-box-render\n accessibleName={this.#componentLocale.filter.type}\n class=\"combo-box\"\n disabled={!this.types}\n value={this.defaultType}\n part=\"filter-type\"\n id=\"type\"\n model={mapObjectTypeToComboBoxItemModel(this.types)}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typeComboBox = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block category\">\n <label\n // category\n class=\"label\"\n htmlFor=\"category\"\n >\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"category\"\n class=\"combo-box\"\n accessibleName={this.#componentLocale.filter.category}\n disabled={!this.categories}\n model={mapCategoryToComboBoxItemModel(this.categories)}\n value={this.defaultCategory}\n part=\"filter-category\"\n onInput={this.categories && this.#refreshUIWithNewConfiguration}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#categoryComboBox = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <gx-ide-entity-selector\n // module\n class=\"module\"\n id=\"module\"\n value={this.defaultModule}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEntitySelector =\n el as HTMLGxIdeEntitySelectorElement)\n }\n labelCaption={this.#componentLocale.filter.module}\n labelPosition=\"block-start\"\n onValueChanged={this.#refreshUIWithNewConfiguration}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ></gx-ide-entity-selector>\n\n <ch-accordion-render\n // modified\n class=\"accordion-outlined modified-accordion\"\n model={MODIFIED_ACCORDION_MODEL}\n >\n <div slot=\"modified\" class=\"spacing-body\">\n <div class=\"field-group field-group-modified\">\n <div class=\"field field-block after\">\n <label\n // after\n class=\"label\"\n htmlFor=\"after-type\"\n >\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n value={this.modifiedAfterValue}\n part=\"filter-after-type\"\n id=\"after-type\"\n model={this.#afterModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#afterTypeComboBox =\n el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#handleAfterValueChange}\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block\">\n <label\n // user\n class=\"label\"\n htmlFor=\"user-name\"\n >\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n class=\"input\"\n part=\"filter-user\"\n value={this.patternValue}\n ref={(el: HTMLChEditElement) =>\n (this.#userInput = el as HTMLChEditElement)\n }\n id=\"user-name\"\n name=\"userName\"\n startImgSrc={USER_ICON}\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n <div class=\"field field-block\">\n <label\n // date\n class={{\n \"label\": true,\n \"label--disabled\":\n this.modifiedAfterValue !== \"afterDateTime\"\n }}\n htmlFor=\"modified-date\"\n >\n {this.#componentLocale.filter.dateTime}\n </label>\n\n <input\n type=\"datetime-local\"\n class=\"input input-date-time\"\n id=\"modified-date\"\n name=\"modifiedDate\"\n part=\"filter-pattern\"\n value={this.patternValue}\n max={TODAY}\n ref={(el: HTMLInputElement) =>\n (this.#modifiedDateInput = el as HTMLInputElement)\n }\n disabled={this.modifiedAfterValue !== \"afterDateTime\"}\n onInput={this.#refreshUIWithNewConfiguration}\n ></input>\n </div>\n </div>\n </div>\n </ch-accordion-render>\n </form>\n </header>\n );\n };\n\n #renderFooter = (): Element => {\n return (\n <footer class=\"footer control-footer-space-between\">\n <div\n class=\"control-footer control-footer-space-between objects-count spacing-body-inline\"\n slot=\"footer-above\"\n >\n <p class=\"body-regular-s objects-selected\" part=\"objects-selected\">\n {this.#evaluateObjectsCount(\"selected\")}\n </p>\n <p class=\"body-regular-s objects-matching\" part=\"objects-matching\">\n {this.#evaluateObjectsCount(\"matching\")}\n </p>\n </div>\n\n <div class=\"control-footer-with-border control-footer-space-between spacing-body-inline spacing-body-block-end\">\n <button\n // button new object\n class=\"button-secondary\"\n part=\"button button-new\"\n onClick={!this.loading ? this.#newObjectCallbackHandler : undefined}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n <div class=\"end buttons-spacer\">\n <button\n // button cancel\n class=\"button-secondary\"\n part=\"button button-cancel\"\n onClick={this.#cancelCallbackHandler}\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // button confirm\n class=\"button-primary\"\n part=\"button button-confirm\"\n onClick={this.#openSelectionCallbackHandler}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnConfirm}\n </button>\n {this.multiSelection ? (\n <button\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button-select-all\"\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n ) : null}\n </div>\n </div>\n </footer>\n );\n };\n\n #renderObjects = (): Element => {\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid-object-selector\": true,\n \"empty-result\": this.objects.length === 0\n }}\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChTabularGridElement) => (this.#objectsGrid = el)}\n part=\"ch-grid-objects\"\n onKeyDown={this.#chGridKeyDownHandler}\n onSelectionChanged={this.#handleObjectsSelectionChange}\n onDblClick={this.#openSelectionCallbackHandler}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\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 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.type}\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.module}\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.description}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.modifiedDate}\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.importDate}\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-columnset>\n\n {this.objects.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: ObjectData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.modifiedDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.importDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n {this.loader && this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n ></gx-ide-empty-state>\n )}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #selectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows();\n };\n\n #setAfterDefaultValue = (): void => {\n this.modifiedAfterValue = FILTER_AFTER.NONE;\n };\n\n #setAfterOptions = (): void => {\n this.#afterModel = [\n {\n caption: this.#componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ];\n };\n\n #sortObjectsByName = (objects: ObjectData[]): ObjectData[] => {\n return objects.sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n };\n\n render(): void {\n return (\n <Host onKeyPress={this.#hostKeyPressHandler} class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#shortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n {this.#renderFilter()}\n {this.#renderObjects()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n"],"version":3}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, a as getAssetPath, h, H as Host, g as getElement } from './index-93411ea2.js';
|
|
2
2
|
import { L as Locale } from './locale-e5107fad.js';
|
|
3
|
-
import { c as config } from './config-
|
|
3
|
+
import { c as config } from './config-1ef9d75a.js';
|
|
4
4
|
import { r as renderSuggestLists } from './render-suggest-6b99b199.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -98,7 +98,7 @@ const GxIdeSelectUserTeam = class {
|
|
|
98
98
|
// Split the title into two spans for better styling
|
|
99
99
|
class: "slide__main-title"
|
|
100
100
|
}, h("span", null, __classPrivateFieldGet(this, _GxIdeSelectUserTeam_componentLocale, "f").title))),
|
|
101
|
-
h("div", { class: "slide__select-team-description" }, h("p", { class: "
|
|
101
|
+
h("div", { class: "slide__select-team-description" }, h("p", { class: "body-semi-bold-l" }, __classPrivateFieldGet(this, _GxIdeSelectUserTeam_componentLocale, "f").infoMessage)),
|
|
102
102
|
h("div", { class: "field-group" }, h("div", { class: "field field-block" }, h("label", { htmlFor: "teams" }, __classPrivateFieldGet(this, _GxIdeSelectUserTeam_componentLocale, "f").teams), h("ch-combo-box-render", { id: "teams", accessibleName: "Teams", class: "combo-box teams-list", model: __classPrivateFieldGet(this, _GxIdeSelectUserTeam_userTeamsModel, "f"), value: __classPrivateFieldGet(this, _GxIdeSelectUserTeam_userTeamsModel, "f") && ((_a = __classPrivateFieldGet(this, _GxIdeSelectUserTeam_userTeamsModel, "f")[0]) === null || _a === void 0 ? void 0 : _a.value), ref: (el) => (__classPrivateFieldSet(this, _GxIdeSelectUserTeam_chSelectTeamEl, el, "f")) }))),
|
|
103
103
|
h("div", { class: "buttons-container" }, h("button", { class: "button-primary continue-btn", onClick: __classPrivateFieldGet(this, _GxIdeSelectUserTeam_continueHandler, "f") }, __classPrivateFieldGet(this, _GxIdeSelectUserTeam_componentLocale, "f").continueButtonCaption), h("button", { class: "button-secondary cancel-btn", onClick: __classPrivateFieldGet(this, _GxIdeSelectUserTeam_cancelHandler, "f") }, __classPrivateFieldGet(this, _GxIdeSelectUserTeam_componentLocale, "f").cancelButtonCaption))
|
|
104
104
|
]) : (h("gx-ide-loader", { show: true, loaderTitle: __classPrivateFieldGet(this, _GxIdeSelectUserTeam_componentLocale, "f").loader.title, description: __classPrivateFieldGet(this, _GxIdeSelectUserTeam_componentLocale, "f").loader.description })))))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-select-user-team.entry.js","mappings":"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","names":[],"sources":["src/components/select-user-team/helpers.tsx","src/components/select-user-team/select-user-team.scss?tag=gx-ide-select-user-team&encapsulation=shadow","src/components/select-user-team/select-user-team.tsx"],"sourcesContent":["import { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { TeamData } from \"./select-user-team\";\n\nexport const mapTeamsToComboBoxItemModel = (\n teams: TeamData[]\n): ComboBoxItemModel[] => {\n return teams?.map(team => {\n return {\n value: team.id,\n caption: team.name\n };\n });\n};\n",":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--mer-spacing--xl);\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n\n &__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n }\n\n &__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n transform: translateY(var(--mer-spacing--2xs));\n transition: var(--display-teams-transtion-time) all;\n opacity: 0;\n\n position: relative;\n\n &--visible {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n &__main-container {\n display: grid;\n place-self: center;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n }\n\n &__main-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n }\n\n &__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--mer-font__size--xl);\n font-weight: var(--mer-font__weight--semi-bold);\n letter-spacing: 0.02em;\n color: var(--mer-text__on-surface);\n }\n\n &__main-description {\n display: grid;\n gap: var(--mer-spacing--2xl);\n font-size: var(--mer-font__size--sm);\n font-weight: var(--mer-font__weight--light);\n line-height: var(--mer-line-height--spaced);\n color: var(--mer-text__complementary);\n }\n}\n\n.terms-conditions {\n text-decoration: underline;\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n}\n\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--md);\n}\n\n.continue-btn,\n.cancel-btn {\n flex: 1;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Watch,\n Element,\n getAssetPath\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport { mapTeamsToComboBoxItemModel } from \"./helpers\";\n\nconst COPYRIGHTS_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/welcome-page/images/copyrights-illustration.png`\n);\nconst ICON_NEXT = getAssetPath(\n `./gx-ide-assets/welcome-page/images/icon-next.svg`\n);\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/button\",\n \"components/combo-box\"\n];\n\n@Component({\n tag: \"gx-ide-select-user-team\",\n styleUrl: \"select-user-team.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-user-team\"]\n})\nexport class GxIdeSelectUserTeam {\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 // Select User Team References :\n #userTeamsModel: ComboBoxItemModel[] = [];\n #chSelectTeamEl: HTMLChComboBoxRenderElement;\n #displayTeamsTransitionTime: number = 100;\n\n @Element() el: HTMLGxIdeSelectUserTeamElement;\n\n /**\n * Defines if the main slide is visible or not. Used for smooth transitions between slides.\n */\n @State() slideIsVisible: boolean = false;\n\n /**\n * Defines if the team model is redy to be rendered.\n */\n @State() teamsModelReady: boolean = false;\n\n /**\n * Callback executed when the user clicks the 'Cancel' button\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks the 'Continue' button\n */\n @Prop() readonly continueCallback!: (teamId: string) => Promise<void>;\n\n /**\n * Array that contains the user's teams\n */\n @Prop() readonly teams!: TeamData[];\n @Watch(\"teams\")\n teamsChanged(newTeams: TeamData[]) {\n this.slideIsVisible = false;\n // switch step\n setTimeout(() => {\n if (newTeams.length) {\n this.#userTeamsModel = mapTeamsToComboBoxItemModel(newTeams);\n this.teamsModelReady = true;\n } else {\n this.teamsModelReady = false;\n }\n }, this.#displayTeamsTransitionTime);\n // show slide\n setTimeout(() => {\n this.slideIsVisible = true;\n }, this.#displayTeamsTransitionTime * 2);\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.teamsChanged(this.teams);\n\n this.el.style.setProperty(\n \"--display-teams-transtion-time\",\n this.#displayTeamsTransitionTime.toString() + \"ms\"\n );\n }\n\n componentDidLoad() {\n this.slideIsVisible = true;\n }\n\n #continueHandler = async () => {\n await this.continueCallback(this.#chSelectTeamEl.value);\n };\n\n #cancelHandler = async () => {\n await this.cancelCallback();\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"slide\">\n <img\n src={COPYRIGHTS_ILLUSTRATION}\n class=\"slide__illustration\"\n alt=\"\" // decorative\n />\n\n <div\n class={{\n \"slide__main\": true,\n \"slide__main--visible\": this.slideIsVisible\n }}\n >\n <div class=\"slide__main-container\">\n {this.teamsModelReady ? (\n [\n <header class=\"slide__main-header\">\n <img\n src={ICON_NEXT}\n alt=\"\" // decorative\n />\n <h2\n // Split the title into two spans for better styling\n class=\"slide__main-title\"\n >\n <span>{this.#componentLocale.title}</span>\n </h2>\n </header>,\n <div class=\"slide__select-team-description\">\n <p class=\"text-body-highlighted-l\">\n {this.#componentLocale.infoMessage}\n </p>\n </div>,\n <div class=\"field-group\">\n <div class=\"field field-block\">\n <label htmlFor=\"teams\">\n {this.#componentLocale.teams}\n </label>\n <ch-combo-box-render\n id=\"teams\"\n accessibleName=\"Teams\"\n class=\"combo-box teams-list\"\n model={this.#userTeamsModel}\n value={\n this.#userTeamsModel && this.#userTeamsModel[0]?.value\n }\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#chSelectTeamEl =\n el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n </div>,\n <div class=\"buttons-container\">\n <button\n class=\"button-primary continue-btn\"\n onClick={this.#continueHandler}\n >\n {this.#componentLocale.continueButtonCaption}\n </button>\n <button\n class=\"button-secondary cancel-btn\"\n onClick={this.#cancelHandler}\n >\n {this.#componentLocale.cancelButtonCaption}\n </button>\n </div>\n ]\n ) : (\n <gx-ide-loader\n show\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n ></gx-ide-loader>\n )}\n </div>\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type TeamData = {\n id: string;\n name: string;\n};\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-select-user-team.entry.js","mappings":"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","names":[],"sources":["src/components/select-user-team/helpers.tsx","src/components/select-user-team/select-user-team.scss?tag=gx-ide-select-user-team&encapsulation=shadow","src/components/select-user-team/select-user-team.tsx"],"sourcesContent":["import { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { TeamData } from \"./select-user-team\";\n\nexport const mapTeamsToComboBoxItemModel = (\n teams: TeamData[]\n): ComboBoxItemModel[] => {\n return teams?.map(team => {\n return {\n value: team.id,\n caption: team.name\n };\n });\n};\n",":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--mer-spacing--xl);\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n\n &__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n }\n\n &__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n transform: translateY(var(--mer-spacing--2xs));\n transition: var(--display-teams-transtion-time) all;\n opacity: 0;\n\n position: relative;\n\n &--visible {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n &__main-container {\n display: grid;\n place-self: center;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n }\n\n &__main-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n }\n\n &__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--mer-font__size--xl);\n font-weight: var(--mer-font__weight--semi-bold);\n letter-spacing: 0.02em;\n color: var(--mer-text__on-surface);\n }\n\n &__main-description {\n display: grid;\n gap: var(--mer-spacing--2xl);\n font-size: var(--mer-font__size--sm);\n font-weight: var(--mer-font__weight--light);\n line-height: var(--mer-line-height--spaced);\n color: var(--mer-text__complementary);\n }\n}\n\n.terms-conditions {\n text-decoration: underline;\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n}\n\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--md);\n}\n\n.continue-btn,\n.cancel-btn {\n flex: 1;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Watch,\n Element,\n getAssetPath\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport { mapTeamsToComboBoxItemModel } from \"./helpers\";\n\nconst COPYRIGHTS_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/welcome-page/images/copyrights-illustration.png`\n);\nconst ICON_NEXT = getAssetPath(\n `./gx-ide-assets/welcome-page/images/icon-next.svg`\n);\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/button\",\n \"components/combo-box\"\n];\n\n@Component({\n tag: \"gx-ide-select-user-team\",\n styleUrl: \"select-user-team.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-user-team\"]\n})\nexport class GxIdeSelectUserTeam {\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 // Select User Team References :\n #userTeamsModel: ComboBoxItemModel[] = [];\n #chSelectTeamEl: HTMLChComboBoxRenderElement;\n #displayTeamsTransitionTime: number = 100;\n\n @Element() el: HTMLGxIdeSelectUserTeamElement;\n\n /**\n * Defines if the main slide is visible or not. Used for smooth transitions between slides.\n */\n @State() slideIsVisible: boolean = false;\n\n /**\n * Defines if the team model is redy to be rendered.\n */\n @State() teamsModelReady: boolean = false;\n\n /**\n * Callback executed when the user clicks the 'Cancel' button\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks the 'Continue' button\n */\n @Prop() readonly continueCallback!: (teamId: string) => Promise<void>;\n\n /**\n * Array that contains the user's teams\n */\n @Prop() readonly teams!: TeamData[];\n @Watch(\"teams\")\n teamsChanged(newTeams: TeamData[]) {\n this.slideIsVisible = false;\n // switch step\n setTimeout(() => {\n if (newTeams.length) {\n this.#userTeamsModel = mapTeamsToComboBoxItemModel(newTeams);\n this.teamsModelReady = true;\n } else {\n this.teamsModelReady = false;\n }\n }, this.#displayTeamsTransitionTime);\n // show slide\n setTimeout(() => {\n this.slideIsVisible = true;\n }, this.#displayTeamsTransitionTime * 2);\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.teamsChanged(this.teams);\n\n this.el.style.setProperty(\n \"--display-teams-transtion-time\",\n this.#displayTeamsTransitionTime.toString() + \"ms\"\n );\n }\n\n componentDidLoad() {\n this.slideIsVisible = true;\n }\n\n #continueHandler = async () => {\n await this.continueCallback(this.#chSelectTeamEl.value);\n };\n\n #cancelHandler = async () => {\n await this.cancelCallback();\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"slide\">\n <img\n src={COPYRIGHTS_ILLUSTRATION}\n class=\"slide__illustration\"\n alt=\"\" // decorative\n />\n\n <div\n class={{\n \"slide__main\": true,\n \"slide__main--visible\": this.slideIsVisible\n }}\n >\n <div class=\"slide__main-container\">\n {this.teamsModelReady ? (\n [\n <header class=\"slide__main-header\">\n <img\n src={ICON_NEXT}\n alt=\"\" // decorative\n />\n <h2\n // Split the title into two spans for better styling\n class=\"slide__main-title\"\n >\n <span>{this.#componentLocale.title}</span>\n </h2>\n </header>,\n <div class=\"slide__select-team-description\">\n <p class=\"body-semi-bold-l\">\n {this.#componentLocale.infoMessage}\n </p>\n </div>,\n <div class=\"field-group\">\n <div class=\"field field-block\">\n <label htmlFor=\"teams\">\n {this.#componentLocale.teams}\n </label>\n <ch-combo-box-render\n id=\"teams\"\n accessibleName=\"Teams\"\n class=\"combo-box teams-list\"\n model={this.#userTeamsModel}\n value={\n this.#userTeamsModel && this.#userTeamsModel[0]?.value\n }\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#chSelectTeamEl =\n el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n </div>,\n <div class=\"buttons-container\">\n <button\n class=\"button-primary continue-btn\"\n onClick={this.#continueHandler}\n >\n {this.#componentLocale.continueButtonCaption}\n </button>\n <button\n class=\"button-secondary cancel-btn\"\n onClick={this.#cancelHandler}\n >\n {this.#componentLocale.cancelButtonCaption}\n </button>\n </div>\n ]\n ) : (\n <gx-ide-loader\n show\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n ></gx-ide-loader>\n )}\n </div>\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type TeamData = {\n id: string;\n name: string;\n};\n"],"version":3}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, a as getAssetPath, h, H as Host, g as getElement } from './index-93411ea2.js';
|
|
2
|
-
import { g as getIconPath } from './MERCURY_ASSETS-
|
|
3
|
-
import { c as config } from './config-
|
|
2
|
+
import { g as getIconPath } from './MERCURY_ASSETS-91a1db9c.js';
|
|
3
|
+
import { c as config } from './config-1ef9d75a.js';
|
|
4
4
|
import { v as validateControls } from './form-validation-cd0215c6.js';
|
|
5
5
|
import { L as Locale } from './locale-e5107fad.js';
|
|
6
6
|
|
|
@@ -98,7 +98,7 @@ const GxIdeSignInTeam = class {
|
|
|
98
98
|
if (this.authStepInternal === "signIn") {
|
|
99
99
|
return [
|
|
100
100
|
__classPrivateFieldGet(this, _GxIdeSignInTeam_renderStepHeader, "f").call(this),
|
|
101
|
-
h("p", { class: "
|
|
101
|
+
h("p", { class: "body-regular-l" }, __classPrivateFieldGet(this, _GxIdeSignInTeam_componentLocale, "f").signIn.description),
|
|
102
102
|
this.termsConfirmationRequired && (h("div", { class: "field-group" }, h("div", {
|
|
103
103
|
// terms and conditions
|
|
104
104
|
class: "field field-inline"
|
|
@@ -122,7 +122,7 @@ const GxIdeSignInTeam = class {
|
|
|
122
122
|
else if (this.authStepInternal === "selectUserTeam") {
|
|
123
123
|
return [
|
|
124
124
|
__classPrivateFieldGet(this, _GxIdeSignInTeam_renderStepHeader, "f").call(this),
|
|
125
|
-
h("div", { class: "slide__select-team-description" }, h("p", { class: "
|
|
125
|
+
h("div", { class: "slide__select-team-description" }, h("p", { class: "body-semi-bold-l" }, __classPrivateFieldGet(this, _GxIdeSignInTeam_componentLocale, "f").selectUserTeam.infoMessage)),
|
|
126
126
|
h("div", { class: "field-group" }, h("div", { class: "field field-block" }, h("label", { htmlFor: "teams" }, __classPrivateFieldGet(this, _GxIdeSignInTeam_componentLocale, "f").selectUserTeam.label), h("ch-combo-box-render", { id: "teams", accessibleName: "Teams", class: "combo-box teams-list", model: __classPrivateFieldGet(this, _GxIdeSignInTeam_userTeamsModel, "f"), value: (_a = __classPrivateFieldGet(this, _GxIdeSignInTeam_userTeamsModel, "f")[0]) === null || _a === void 0 ? void 0 : _a.value, ref: (el) => (__classPrivateFieldSet(this, _GxIdeSignInTeam_chSelectTeamEl, el, "f")) }))),
|
|
127
127
|
__classPrivateFieldGet(this, _GxIdeSignInTeam_renderStepFooter, "f").call(this)
|
|
128
128
|
];
|