@genexus/genexus-ide-ui 1.1.3 → 1.1.5
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-972bf7f4.js +9 -0
- package/dist/cjs/MERCURY_ASSETS-972bf7f4.js.map +1 -0
- package/dist/cjs/code-render-0e9837c4.js +86 -0
- package/dist/cjs/code-render-0e9837c4.js.map +1 -0
- package/dist/cjs/{common-72f91a78.js → common-090e6d3a.js} +28 -12
- package/dist/cjs/common-090e6d3a.js.map +1 -0
- package/dist/cjs/{form-validation-178cf461.js → form-validation-ffe2b957.js} +7 -3
- package/dist/cjs/form-validation-ffe2b957.js.map +1 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-about.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +10 -16
- package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js +4 -5
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +180 -168
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +4 -6
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +3 -4
- package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-sync-gam-roles.cjs.entry.js +2 -3
- package/dist/cjs/gx-ide-bpm-sync-gam-roles.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +13 -16
- package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +3 -4
- package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-card.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-card.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +239 -0
- package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +18 -23
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-container_2.cjs.entry.js +1 -2
- package/dist/cjs/gx-ide-container_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +9 -14
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +5 -7
- package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +7 -9
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js +6 -8
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +6 -8
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js +17 -21
- package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js +27 -36
- package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-directory-selector.cjs.entry.js +1 -2
- package/dist/cjs/gx-ide-directory-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +3 -4
- package/dist/cjs/gx-ide-edit-module-server.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 +6 -9
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-file-item.cjs.entry.js +5 -6
- package/dist/cjs/gx-ide-file-item.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +63 -49
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +3 -4
- package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +7 -8
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +10 -14
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +19 -11
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +8 -9
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-navigation-report.cjs.entry.js +4 -7
- package/dist/cjs/gx-ide-navigation-report.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +14 -19
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +34 -39
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-object.cjs.entry.js +6 -9
- package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-version.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-new-version.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +10 -12
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +8 -13
- package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +22 -28
- package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +202 -98
- package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +10 -17
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +3 -4
- package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +6 -10
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +2 -3
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-sign-in.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-splash.cjs.entry.js +6 -8
- package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +9 -13
- package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +4 -5
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-template.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-template.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +8 -11
- package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +11 -18
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-files.cjs.entry.js +19 -22
- package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +20 -9
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
- package/dist/cjs/{helpers-30f109a4.js → helpers-e5a13fa5.js} +6 -6
- package/dist/cjs/helpers-e5a13fa5.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{locale-ff30a5f3.js → locale-36b93b1b.js} +4 -4
- package/dist/cjs/locale-36b93b1b.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/common/common.js +23 -13
- package/dist/collection/common/common.js.map +1 -1
- package/dist/collection/common/form-validation.js +7 -4
- package/dist/collection/common/form-validation.js.map +1 -1
- package/dist/collection/common/helpers.js +9 -10
- package/dist/collection/common/helpers.js.map +1 -1
- package/dist/collection/common/locale.js +3 -3
- package/dist/collection/common/locale.js.map +1 -1
- package/dist/collection/common/render-suggest.js +1 -1
- package/dist/collection/common/render-suggest.js.map +1 -1
- package/dist/collection/components/_helpers/card/card.css +9 -0
- package/dist/collection/components/_helpers/container/container.js +1 -2
- package/dist/collection/components/_helpers/container/container.js.map +1 -1
- package/dist/collection/components/_helpers/directory-selector/directory-selector.js +1 -2
- package/dist/collection/components/_helpers/directory-selector/directory-selector.js.map +1 -1
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +9 -0
- package/dist/collection/components/_helpers/entity-selector/entity-selector.js +2 -4
- package/dist/collection/components/_helpers/entity-selector/entity-selector.js.map +1 -1
- package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +1 -1
- package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js.map +1 -1
- package/dist/collection/components/_helpers/list-selector/list-selector.css +9 -0
- package/dist/collection/components/_starting-template/template.css +9 -0
- package/dist/collection/components/ai-assistant/ai-assistant.css +9 -0
- package/dist/collection/components/ai-assistant/ai-assistant.js +8 -14
- package/dist/collection/components/ai-assistant/ai-assistant.js.map +1 -1
- package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +37 -27
- package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js +217 -182
- package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js.map +1 -1
- package/dist/collection/components/bpm/application-declaration/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.en.json +14 -2
- package/dist/collection/components/bpm/application-declaration/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.ja.json +15 -3
- package/dist/collection/components/bpm/application-declaration/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.zh.json +14 -2
- package/dist/collection/components/bpm/assign-roles/bpm-assign-roles.css +9 -0
- package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.css +9 -0
- package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.js +2 -4
- package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.js.map +1 -1
- package/dist/collection/components/bpm/import-files/bpm-import-files.css +9 -0
- package/dist/collection/components/bpm/import-files/bpm-import-files.js +1 -2
- package/dist/collection/components/bpm/import-files/bpm-import-files.js.map +1 -1
- package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.css +9 -0
- package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.css +9 -0
- package/dist/collection/components/bpm/sync-gam-roles/bpm-sync-gam-roles.js +1 -2
- package/dist/collection/components/bpm/sync-gam-roles/bpm-sync-gam-roles.js.map +1 -1
- package/dist/collection/components/bpm/task-documents/helpers.js +1 -1
- package/dist/collection/components/bpm/task-documents/helpers.js.map +1 -1
- package/dist/collection/components/bpm/task-documents/task-documents.js +7 -9
- package/dist/collection/components/bpm/task-documents/task-documents.js.map +1 -1
- package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.css +9 -0
- package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.js +1 -2
- package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.js.map +1 -1
- package/dist/collection/components/chat/chat-container/chat-container.css +118 -0
- package/dist/collection/components/chat/chat-container/chat-container.js +218 -0
- package/dist/collection/components/chat/chat-container/chat-container.js.map +1 -0
- package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.en.json +9 -0
- package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.ja.json +9 -0
- package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.zh.json +9 -0
- package/dist/collection/components/chat/chat-welcome/chat-welcome.css +109 -0
- package/dist/collection/components/chat/chat-welcome/chat-welcome.js +228 -0
- package/dist/collection/components/chat/chat-welcome/chat-welcome.js.map +1 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.js +3 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.js.map +1 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.tsx +31 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg +21 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar.svg +11 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/header-illustration.svg +24 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.en.json +10 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.ja.json +10 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.zh.json +10 -0
- package/dist/collection/components/chat/code-render.js +65 -0
- package/dist/collection/components/chat/code-render.js.map +1 -0
- package/dist/collection/components/current-user-info/current-user-info.js +2 -3
- package/dist/collection/components/current-user-info/current-user-info.js.map +1 -1
- package/dist/collection/components/dashboard-home/dashboard-home.css +9 -0
- package/dist/collection/components/dashboard-home/dashboard-home.js +2 -3
- package/dist/collection/components/dashboard-home/dashboard-home.js.map +1 -1
- package/dist/collection/components/data-selector/data-selector.css +1 -0
- package/dist/collection/components/data-selector/data-selector.js +2 -3
- package/dist/collection/components/data-selector/data-selector.js.map +1 -1
- package/dist/collection/components/data-type-selector/data-type-selector.js +3 -4
- package/dist/collection/components/data-type-selector/data-type-selector.js.map +1 -1
- package/dist/collection/components/deployment-tool/deployment-tool.css +9 -0
- package/dist/collection/components/deployment-tool/deployment-tool.js +11 -18
- package/dist/collection/components/deployment-tool/deployment-tool.js.map +1 -1
- package/dist/collection/components/deployment-tool/helpers.js +4 -1
- package/dist/collection/components/deployment-tool/helpers.js.map +1 -1
- package/dist/collection/components/design-import/design-import.js +18 -26
- package/dist/collection/components/design-import/design-import.js.map +1 -1
- package/dist/collection/components/design-import/helpers.js +1 -1
- package/dist/collection/components/design-import/helpers.js.map +1 -1
- package/dist/collection/components/file-uploader/file-uploader.css +9 -0
- package/dist/collection/components/file-uploader/file-uploader.js +59 -44
- package/dist/collection/components/file-uploader/file-uploader.js.map +1 -1
- package/dist/collection/components/gam-installation-settings/gam-installation-settings.css +9 -0
- package/dist/collection/components/gam-installation-settings/gam-installation-settings.js +1 -2
- package/dist/collection/components/gam-installation-settings/gam-installation-settings.js.map +1 -1
- package/dist/collection/components/kb-manager-import/kb-manager-import.js +4 -7
- package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
- package/dist/collection/components/modules/edit-module-server/edit-module-server.css +9 -0
- package/dist/collection/components/modules/edit-module-server/edit-module-server.js +1 -2
- package/dist/collection/components/modules/edit-module-server/edit-module-server.js.map +1 -1
- package/dist/collection/components/modules/manage-module-references/manage-module-references.css +9 -0
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js +2 -2
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js +13 -4
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js.map +1 -1
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references.css +9 -0
- package/dist/collection/components/navigation-report/navigation-report.js +3 -6
- package/dist/collection/components/navigation-report/navigation-report.js.map +1 -1
- package/dist/collection/components/new-environment/new-environment.js +10 -15
- package/dist/collection/components/new-environment/new-environment.js.map +1 -1
- package/dist/collection/components/new-kb/new-kb.js +28 -32
- package/dist/collection/components/new-kb/new-kb.js.map +1 -1
- package/dist/collection/components/new-object/new-object.js +5 -8
- package/dist/collection/components/new-object/new-object.js.map +1 -1
- package/dist/collection/components/new-version/new-version.js +2 -2
- package/dist/collection/components/new-version/new-version.js.map +1 -1
- package/dist/collection/components/object-selector/object-selector.css +1 -0
- package/dist/collection/components/object-selector/object-selector.js +4 -5
- package/dist/collection/components/object-selector/object-selector.js.map +1 -1
- package/dist/collection/components/open-api-import/open-api-import.js +4 -8
- package/dist/collection/components/open-api-import/open-api-import.js.map +1 -1
- package/dist/collection/components/references/helpers.js +9 -13
- package/dist/collection/components/references/helpers.js.map +1 -1
- package/dist/collection/components/references/references.css +9 -0
- package/dist/collection/components/references/references.js +9 -11
- package/dist/collection/components/references/references.js.map +1 -1
- package/dist/collection/components/select-kb-items/helpers.js +5 -10
- package/dist/collection/components/select-kb-items/helpers.js.map +1 -1
- package/dist/collection/components/select-kb-items/select-kb-items.js +1 -2
- package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
- package/dist/collection/components/select-user-team/helpers.js +1 -1
- package/dist/collection/components/select-user-team/helpers.js.map +1 -1
- package/dist/collection/components/select-user-team/select-user-team.js +1 -2
- 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 +1 -2
- package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -1
- package/dist/collection/components/splash/splash.js +2 -3
- package/dist/collection/components/splash/splash.js.map +1 -1
- package/dist/collection/components/start-page/start-page.js +3 -6
- package/dist/collection/components/start-page/start-page.js.map +1 -1
- package/dist/collection/components/team-dev/commit/commit.css +10 -0
- package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js +16 -21
- package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js.map +1 -1
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +4 -8
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
- package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +9 -0
- package/dist/collection/components/team-dev/share-kb/share-kb.js +2 -5
- package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -1
- package/dist/collection/components/team-dev/update/update.css +11 -0
- package/dist/collection/components/team-dev/update/update.js +1 -2
- package/dist/collection/components/team-dev/update/update.js.map +1 -1
- package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +9 -0
- package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js +1 -1
- package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js.map +1 -1
- package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +9 -0
- package/dist/collection/components/welcome-page/welcome-page.js +5 -7
- package/dist/collection/components/welcome-page/welcome-page.js.map +1 -1
- package/dist/collection/components/wf-settings/wf-settings.css +9 -0
- package/dist/collection/components/ww-attributes/helpers.js +1 -2
- package/dist/collection/components/ww-attributes/helpers.js.map +1 -1
- package/dist/collection/components/ww-attributes/ww-attributes.css +1 -0
- package/dist/collection/components/ww-attributes/ww-attributes.js +6 -11
- package/dist/collection/components/ww-attributes/ww-attributes.js.map +1 -1
- package/dist/collection/components/ww-files/helpers.js +1 -2
- package/dist/collection/components/ww-files/helpers.js.map +1 -1
- package/dist/collection/components/ww-files/ww-files.css +1 -0
- package/dist/collection/components/ww-files/ww-files.js +16 -18
- package/dist/collection/components/ww-files/ww-files.js.map +1 -1
- package/dist/collection/components/ww-images/ww-images.css +10 -0
- package/dist/collection/components/ww-images/ww-images.js +16 -5
- package/dist/collection/components/ww-images/ww-images.js.map +1 -1
- package/dist/collection/index.js +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/showcase/chat-container/callbacks.js +105 -90
- package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
- package/dist/collection/showcase/chat-container/chat.showcase.js +145 -10
- package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
- package/dist/collection/testing/locale.e2e.js +4 -3
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/MERCURY_ASSETS.js +5 -1
- package/dist/components/MERCURY_ASSETS.js.map +1 -1
- package/dist/components/ai-message.js +1 -2
- package/dist/components/ai-message.js.map +1 -1
- package/dist/components/bpm-objects-selector.js +1 -1
- package/dist/components/bpm-objects-selector.js.map +1 -1
- package/dist/components/chat-container.js +70 -7
- package/dist/components/chat-container.js.map +1 -1
- package/dist/components/chat-welcome.js +146 -0
- package/dist/components/chat-welcome.js.map +1 -0
- package/dist/components/code-render.js +68 -41
- package/dist/components/code-render.js.map +1 -1
- package/dist/components/common.js +27 -11
- package/dist/components/common.js.map +1 -1
- package/dist/components/container.js +1 -2
- package/dist/components/container.js.map +1 -1
- package/dist/components/entity-selector.js +3 -6
- package/dist/components/entity-selector.js.map +1 -1
- package/dist/components/file-item.js +1 -2
- package/dist/components/file-item.js.map +1 -1
- package/dist/components/form-validation.js +6 -2
- package/dist/components/form-validation.js.map +1 -1
- package/dist/components/gx-ide-ai-assistant.js +9 -15
- package/dist/components/gx-ide-ai-assistant.js.map +1 -1
- package/dist/components/gx-ide-bpm-app-declaration.js +188 -185
- package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
- package/dist/components/gx-ide-bpm-assign-roles.js +1 -1
- package/dist/components/gx-ide-bpm-assign-roles.js.map +1 -1
- package/dist/components/gx-ide-bpm-export-xpdl.js +3 -5
- package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -1
- package/dist/components/gx-ide-bpm-import-files.js +2 -3
- package/dist/components/gx-ide-bpm-import-files.js.map +1 -1
- package/dist/components/gx-ide-bpm-import-gxpm.js +1 -1
- package/dist/components/gx-ide-bpm-import-gxpm.js.map +1 -1
- package/dist/components/gx-ide-bpm-sync-gam-roles.js +1 -2
- package/dist/components/gx-ide-bpm-sync-gam-roles.js.map +1 -1
- package/dist/components/gx-ide-bpm-task-documents.js +9 -12
- package/dist/components/gx-ide-bpm-task-documents.js.map +1 -1
- package/dist/components/gx-ide-bpm-timer-duration.js +2 -3
- package/dist/components/gx-ide-bpm-timer-duration.js.map +1 -1
- package/dist/components/gx-ide-card.js +1 -1
- package/dist/components/gx-ide-card.js.map +1 -1
- package/dist/components/gx-ide-chat-welcome.d.ts +11 -0
- package/dist/components/gx-ide-chat-welcome.js +8 -0
- package/dist/components/gx-ide-chat-welcome.js.map +1 -0
- package/dist/components/gx-ide-connect-gx-server.js +16 -21
- package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
- package/dist/components/gx-ide-create-kb-from-server.js +5 -10
- package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
- package/dist/components/gx-ide-current-user-info.js +3 -5
- package/dist/components/gx-ide-current-user-info.js.map +1 -1
- package/dist/components/gx-ide-dashboard-home.js +4 -6
- package/dist/components/gx-ide-dashboard-home.js.map +1 -1
- package/dist/components/gx-ide-data-selector.js +4 -6
- package/dist/components/gx-ide-data-selector.js.map +1 -1
- package/dist/components/gx-ide-data-type-selector.js +4 -6
- package/dist/components/gx-ide-data-type-selector.js.map +1 -1
- package/dist/components/gx-ide-deployment-tool.js +16 -20
- package/dist/components/gx-ide-deployment-tool.js.map +1 -1
- package/dist/components/gx-ide-design-import.js +20 -29
- package/dist/components/gx-ide-design-import.js.map +1 -1
- package/dist/components/gx-ide-directory-selector.js +1 -2
- package/dist/components/gx-ide-directory-selector.js.map +1 -1
- package/dist/components/gx-ide-edit-module-server.js +2 -3
- package/dist/components/gx-ide-edit-module-server.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-file-uploader.js +61 -47
- package/dist/components/gx-ide-file-uploader.js.map +1 -1
- package/dist/components/gx-ide-gam-installation-settings.js +2 -3
- package/dist/components/gx-ide-gam-installation-settings.js.map +1 -1
- package/dist/components/gx-ide-kb-manager-export.js +1 -2
- package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
- package/dist/components/gx-ide-kb-manager-import.js +5 -9
- package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
- package/dist/components/gx-ide-manage-module-references-v2.js +15 -7
- package/dist/components/gx-ide-manage-module-references-v2.js.map +1 -1
- package/dist/components/gx-ide-manage-module-references.js +4 -5
- package/dist/components/gx-ide-manage-module-references.js.map +1 -1
- package/dist/components/gx-ide-navigation-report.js +3 -6
- package/dist/components/gx-ide-navigation-report.js.map +1 -1
- package/dist/components/gx-ide-new-environment.js +10 -15
- package/dist/components/gx-ide-new-environment.js.map +1 -1
- package/dist/components/gx-ide-new-kb.js +29 -34
- package/dist/components/gx-ide-new-kb.js.map +1 -1
- package/dist/components/gx-ide-new-object.js +5 -8
- package/dist/components/gx-ide-new-object.js.map +1 -1
- package/dist/components/gx-ide-new-version.js +2 -2
- package/dist/components/gx-ide-new-version.js.map +1 -1
- package/dist/components/gx-ide-object-selector.js +6 -8
- package/dist/components/gx-ide-object-selector.js.map +1 -1
- package/dist/components/gx-ide-open-api-import.js +5 -10
- package/dist/components/gx-ide-open-api-import.js.map +1 -1
- package/dist/components/gx-ide-references.js +19 -25
- package/dist/components/gx-ide-references.js.map +1 -1
- package/dist/components/gx-ide-sc-chat-container.js +215 -100
- package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
- package/dist/components/gx-ide-select-kb-items.js +7 -14
- package/dist/components/gx-ide-select-kb-items.js.map +1 -1
- package/dist/components/gx-ide-select-user-team.js +2 -3
- package/dist/components/gx-ide-select-user-team.js.map +1 -1
- package/dist/components/gx-ide-share-kb.js +3 -7
- package/dist/components/gx-ide-share-kb.js.map +1 -1
- package/dist/components/gx-ide-sign-in-team.js +1 -2
- package/dist/components/gx-ide-sign-in-team.js.map +1 -1
- package/dist/components/gx-ide-splash.js +3 -5
- package/dist/components/gx-ide-splash.js.map +1 -1
- package/dist/components/gx-ide-start-page.js +4 -8
- package/dist/components/gx-ide-start-page.js.map +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +1 -1
- package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
- package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
- package/dist/components/gx-ide-team-dev-select-recent-comment.js.map +1 -1
- package/dist/components/gx-ide-team-dev-update-partial-selection.js +2 -2
- package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
- package/dist/components/gx-ide-team-dev-update-to-revision.js +1 -1
- package/dist/components/gx-ide-team-dev-update-to-revision.js.map +1 -1
- package/dist/components/gx-ide-team-dev-update.js +2 -3
- package/dist/components/gx-ide-team-dev-update.js.map +1 -1
- package/dist/components/gx-ide-template.js +1 -1
- package/dist/components/gx-ide-template.js.map +1 -1
- package/dist/components/gx-ide-welcome-page.js +6 -9
- package/dist/components/gx-ide-welcome-page.js.map +1 -1
- package/dist/components/gx-ide-wf-settings.js +1 -1
- package/dist/components/gx-ide-wf-settings.js.map +1 -1
- package/dist/components/gx-ide-ww-attributes.js +9 -16
- package/dist/components/gx-ide-ww-attributes.js.map +1 -1
- package/dist/components/gx-ide-ww-files.js +18 -21
- package/dist/components/gx-ide-ww-files.js.map +1 -1
- package/dist/components/gx-ide-ww-images.js +17 -6
- package/dist/components/gx-ide-ww-images.js.map +1 -1
- package/dist/components/helpers.js +5 -5
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/list-selector-item.js +1 -1
- package/dist/components/list-selector-item.js.map +1 -1
- package/dist/components/list-selector.js +1 -1
- package/dist/components/list-selector.js.map +1 -1
- package/dist/components/locale.js +3 -3
- package/dist/components/locale.js.map +1 -1
- package/dist/esm/MERCURY_ASSETS-039222dd.js +7 -0
- package/dist/esm/MERCURY_ASSETS-039222dd.js.map +1 -0
- package/dist/esm/code-render-f3afd300.js +83 -0
- package/dist/esm/code-render-f3afd300.js.map +1 -0
- package/dist/esm/{common-ccb4504a.js → common-719c4daf.js} +28 -12
- package/dist/esm/common-719c4daf.js.map +1 -0
- package/dist/esm/{form-validation-cd0215c6.js → form-validation-71dca8c6.js} +7 -3
- package/dist/esm/form-validation-71dca8c6.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-about.entry.js +1 -1
- package/dist/esm/gx-ide-ai-assistant.entry.js +10 -16
- package/dist/esm/gx-ide-ai-assistant.entry.js.map +1 -1
- package/dist/esm/gx-ide-ai-message.entry.js +3 -4
- package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +181 -169
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +4 -6
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-import-files.entry.js +3 -4
- package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-sync-gam-roles.entry.js +2 -3
- package/dist/esm/gx-ide-bpm-sync-gam-roles.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-task-documents.entry.js +10 -13
- package/dist/esm/gx-ide-bpm-task-documents.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-timer-duration.entry.js +3 -4
- package/dist/esm/gx-ide-bpm-timer-duration.entry.js.map +1 -1
- package/dist/esm/gx-ide-card.entry.js +2 -2
- package/dist/esm/gx-ide-card.entry.js.map +1 -1
- package/dist/esm/gx-ide-chat-container_2.entry.js +234 -0
- package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -0
- package/dist/esm/gx-ide-connect-gx-server.entry.js +18 -23
- package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-container_2.entry.js +1 -2
- package/dist/esm/gx-ide-container_2.entry.js.map +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +7 -12
- package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-current-user-info.entry.js +4 -6
- package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +6 -8
- package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
- package/dist/esm/gx-ide-data-selector.entry.js +5 -7
- package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-data-type-selector.entry.js +5 -7
- package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-deployment-tool.entry.js +17 -21
- package/dist/esm/gx-ide-deployment-tool.entry.js.map +1 -1
- package/dist/esm/gx-ide-design-import.entry.js +21 -30
- package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-directory-selector.entry.js +1 -2
- package/dist/esm/gx-ide-directory-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-edit-module-server.entry.js +3 -4
- package/dist/esm/gx-ide-edit-module-server.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 +4 -7
- package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-file-item.entry.js +1 -2
- package/dist/esm/gx-ide-file-item.entry.js.map +1 -1
- package/dist/esm/gx-ide-file-uploader.entry.js +62 -48
- package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
- package/dist/esm/gx-ide-gam-installation-settings.entry.js +3 -4
- package/dist/esm/gx-ide-gam-installation-settings.entry.js.map +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +2 -3
- package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
- package/dist/esm/gx-ide-kb-manager-import.entry.js +6 -10
- package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-list-selector_2.entry.js +2 -2
- package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js +17 -9
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +1 -1
- package/dist/esm/gx-ide-manage-module-references.entry.js +6 -7
- package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-navigation-report.entry.js +4 -7
- package/dist/esm/gx-ide-navigation-report.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +14 -19
- package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +33 -38
- package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-object.entry.js +6 -9
- package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-version.entry.js +3 -3
- package/dist/esm/gx-ide-new-version.entry.js.map +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +8 -10
- package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-open-api-import.entry.js +6 -11
- package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-references.entry.js +20 -26
- package/dist/esm/gx-ide-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-sc-chat-container.entry.js +203 -99
- package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-kb-items.entry.js +8 -15
- package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-user-team.entry.js +3 -4
- package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +5 -9
- package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-sign-in-team.entry.js +2 -3
- package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
- package/dist/esm/gx-ide-sign-in.entry.js +1 -1
- package/dist/esm/gx-ide-splash.entry.js +5 -7
- package/dist/esm/gx-ide-splash.entry.js.map +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +5 -9
- package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
- package/dist/esm/gx-ide-status-buttons.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
- package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +3 -3
- package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +4 -5
- package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
- package/dist/esm/gx-ide-template.entry.js +2 -2
- package/dist/esm/gx-ide-template.entry.js.map +1 -1
- package/dist/esm/gx-ide-welcome-page.entry.js +7 -10
- package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
- package/dist/esm/gx-ide-wf-settings.entry.js +2 -2
- package/dist/esm/gx-ide-wf-settings.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-attributes.entry.js +10 -17
- package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-files.entry.js +19 -22
- package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +20 -9
- package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
- package/dist/esm/{helpers-10479d69.js → helpers-5f1c9a32.js} +6 -6
- package/dist/esm/helpers-5f1c9a32.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{locale-e5107fad.js → locale-643afe17.js} +4 -4
- package/dist/esm/locale-643afe17.js.map +1 -0
- 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/bpm-app-declaration/langs/bpm-app-declaration.lang.en.json +14 -2
- package/dist/genexus-ide-ui/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.ja.json +15 -3
- package/dist/genexus-ide-ui/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.zh.json +14 -2
- package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.en.json +9 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.ja.json +9 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.zh.json +9 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/helpers.tsx +31 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg +21 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/ai-avatar.svg +11 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/header-illustration.svg +24 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.en.json +10 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.ja.json +10 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.zh.json +10 -0
- package/dist/genexus-ide-ui/index.esm.js +2 -2
- package/dist/genexus-ide-ui/index.esm.js.map +1 -1
- package/dist/genexus-ide-ui/{p-59ed3f39.entry.js → p-02fc47cd.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-530c32aa.entry.js → p-032b4a81.entry.js} +25 -30
- package/dist/genexus-ide-ui/p-032b4a81.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-eea944d4.entry.js → p-0d83a34d.entry.js} +63 -69
- package/dist/genexus-ide-ui/p-0d83a34d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-22b8bdb1.entry.js → p-0e53f1ef.entry.js} +161 -163
- package/dist/genexus-ide-ui/p-0e53f1ef.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-11dccb8f.entry.js +309 -0
- package/dist/genexus-ide-ui/p-11dccb8f.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-fecc50e4.entry.js → p-29575656.entry.js} +85 -96
- package/dist/genexus-ide-ui/p-29575656.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-683cb15e.entry.js → p-2be58a7a.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-fdf41406.entry.js → p-2dbf722d.entry.js} +77 -85
- package/dist/genexus-ide-ui/p-2dbf722d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-31beae9e.entry.js → p-2e90a13a.entry.js} +2 -3
- package/dist/genexus-ide-ui/p-2e90a13a.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-ba7d1472.entry.js → p-353810b8.entry.js} +99 -104
- package/dist/genexus-ide-ui/p-353810b8.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-3b8db39e.entry.js → p-39c527ff.entry.js} +3 -3
- package/dist/genexus-ide-ui/p-3edbf07d.js +109 -0
- package/dist/genexus-ide-ui/p-3edbf07d.js.map +1 -0
- package/dist/genexus-ide-ui/{p-ef5dfd35.entry.js → p-41a4364d.entry.js} +2 -4
- package/dist/genexus-ide-ui/{p-ef5dfd35.entry.js.map → p-41a4364d.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-68969051.entry.js → p-45d2fa91.entry.js} +11 -12
- package/dist/genexus-ide-ui/p-45d2fa91.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-5687fdb7.entry.js → p-460db3ff.entry.js} +11 -13
- package/dist/genexus-ide-ui/{p-5687fdb7.entry.js.map → p-460db3ff.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-9a609b51.js → p-48f5911b.js} +50 -33
- package/dist/genexus-ide-ui/p-48f5911b.js.map +1 -0
- package/dist/genexus-ide-ui/{p-50b22f23.entry.js → p-4d929210.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-de7f0c1f.entry.js → p-501c7b1f.entry.js} +19 -22
- package/dist/genexus-ide-ui/p-501c7b1f.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-c747afac.entry.js → p-50eaa96d.entry.js} +99 -111
- package/dist/genexus-ide-ui/p-50eaa96d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-51601b85.js +145 -0
- package/dist/genexus-ide-ui/p-51601b85.js.map +1 -0
- package/dist/genexus-ide-ui/{p-289c3290.js → p-549b8f0c.js} +16 -15
- package/dist/{esm/form-validation-cd0215c6.js.map → genexus-ide-ui/p-549b8f0c.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-007173ef.entry.js → p-5a42428d.entry.js} +16 -19
- package/dist/genexus-ide-ui/p-5a42428d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-ded7444c.entry.js → p-5da3e999.entry.js} +16 -17
- package/dist/genexus-ide-ui/p-5da3e999.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-3ecdb582.entry.js → p-5e05f830.entry.js} +33 -39
- package/dist/genexus-ide-ui/p-5e05f830.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-fe490103.entry.js → p-6168d48c.entry.js} +165 -174
- package/dist/genexus-ide-ui/p-6168d48c.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-76c3fc51.entry.js → p-66d9269a.entry.js} +17 -22
- package/dist/genexus-ide-ui/p-66d9269a.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-038c3f9b.entry.js → p-6dc05a27.entry.js} +4 -5
- package/dist/genexus-ide-ui/p-6dc05a27.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-cd397078.entry.js → p-75e1aa31.entry.js} +5 -6
- package/dist/genexus-ide-ui/p-75e1aa31.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-e502c2fd.entry.js → p-7782e1b8.entry.js} +56 -61
- package/dist/genexus-ide-ui/p-7782e1b8.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-1bc2613e.entry.js → p-7cedb0f0.entry.js} +66 -69
- package/dist/genexus-ide-ui/p-7cedb0f0.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-bac13202.entry.js → p-844b7117.entry.js} +17 -17
- package/dist/genexus-ide-ui/{p-311eedf3.js → p-857866f8.js} +8 -9
- package/dist/genexus-ide-ui/p-857866f8.js.map +1 -0
- package/dist/genexus-ide-ui/{p-74c81ca3.entry.js → p-8636a0bd.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-d095a37c.entry.js → p-8b046b4b.entry.js} +9 -10
- package/dist/genexus-ide-ui/p-8b046b4b.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-4b79c3ab.entry.js → p-8f1f4126.entry.js} +10 -12
- package/dist/genexus-ide-ui/p-8f1f4126.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-c6c955a3.entry.js → p-95f831a8.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-c91af626.entry.js → p-970d16ca.entry.js} +15 -15
- package/dist/genexus-ide-ui/{p-c91af626.entry.js.map → p-970d16ca.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-e4c2e200.entry.js → p-9a39e49c.entry.js} +6 -6
- package/dist/genexus-ide-ui/{p-beea29fa.entry.js → p-9a9ee1ee.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-961cd6c2.entry.js → p-9b238bf7.entry.js} +174 -181
- package/dist/genexus-ide-ui/p-9b238bf7.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-54fbb568.entry.js → p-9c690c36.entry.js} +14 -17
- package/dist/genexus-ide-ui/p-9c690c36.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-4c717aa7.entry.js → p-a6029d9a.entry.js} +117 -131
- package/dist/genexus-ide-ui/p-a6029d9a.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-833c3585.entry.js → p-a86a8692.entry.js} +33 -39
- package/dist/genexus-ide-ui/p-a86a8692.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-2a6683e1.entry.js → p-a8cc41e4.entry.js} +59 -62
- package/dist/genexus-ide-ui/p-a8cc41e4.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-3d4355b4.entry.js → p-ac0438d6.entry.js} +9 -10
- package/dist/genexus-ide-ui/p-ac0438d6.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-56331289.entry.js → p-b1833747.entry.js} +38 -45
- package/dist/genexus-ide-ui/p-b1833747.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-6b957e82.entry.js → p-b211bca8.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-84618917.entry.js → p-be794132.entry.js} +229 -236
- package/dist/genexus-ide-ui/p-be794132.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-a790c4c9.entry.js → p-bfd9066c.entry.js} +9 -9
- package/dist/genexus-ide-ui/p-bfd9066c.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-9b5cb6b9.entry.js → p-c30b2104.entry.js} +7 -9
- package/dist/genexus-ide-ui/p-c30b2104.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-fa18a70c.entry.js → p-c5cca204.entry.js} +17 -20
- package/dist/genexus-ide-ui/p-c5cca204.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-cdf8b082.entry.js +338 -0
- package/dist/genexus-ide-ui/p-cdf8b082.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-8f00263d.entry.js → p-d1cc4724.entry.js} +18 -13
- package/dist/genexus-ide-ui/p-d1cc4724.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-1dd7be84.entry.js → p-daa29451.entry.js} +14 -17
- package/dist/genexus-ide-ui/p-daa29451.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-67762237.entry.js → p-db4750ff.entry.js} +139 -148
- package/dist/genexus-ide-ui/p-db4750ff.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-48826a6f.entry.js → p-db4f756a.entry.js} +123 -135
- package/dist/genexus-ide-ui/p-db4f756a.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-3e936f26.entry.js → p-e1d75f00.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-3e936f26.entry.js.map → p-e1d75f00.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-a59a07e2.entry.js → p-e26e05c7.entry.js} +13 -19
- package/dist/genexus-ide-ui/p-e26e05c7.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-2027c939.entry.js → p-e37e95e7.entry.js} +4 -4
- package/dist/genexus-ide-ui/{p-4cbc8a8b.entry.js → p-e5571f49.entry.js} +26 -28
- package/dist/genexus-ide-ui/p-e5571f49.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-eb51429c.entry.js +317 -0
- package/dist/genexus-ide-ui/p-eb51429c.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-29a026bb.entry.js → p-ec01c70c.entry.js} +15 -18
- package/dist/genexus-ide-ui/p-ec01c70c.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-5ac47c69.js → p-ede7bd20.js} +6885 -6346
- package/dist/genexus-ide-ui/p-ede7bd20.js.map +1 -0
- package/dist/genexus-ide-ui/{p-e7fb3ee3.entry.js → p-f2bd9044.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-50f304fe.entry.js → p-f315c6e0.entry.js} +12 -14
- package/dist/genexus-ide-ui/{p-50f304fe.entry.js.map → p-f315c6e0.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-0550fd5f.entry.js → p-f52bcdac.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-a05d4963.entry.js → p-f5879a41.entry.js} +10 -10
- package/dist/genexus-ide-ui/{p-a05d4963.entry.js.map → p-f5879a41.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-f3f35e5c.entry.js → p-f5a48b33.entry.js} +6 -9
- package/dist/genexus-ide-ui/p-f5a48b33.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-1e8f5da5.entry.js → p-f6ceb01a.entry.js} +4 -5
- package/dist/genexus-ide-ui/p-f6ceb01a.entry.js.map +1 -0
- package/dist/types/common/common.d.ts +1 -1
- package/dist/types/components/bpm/application-declaration/bpm-app-declaration.d.ts +22 -44
- package/dist/types/components/{_helpers → chat}/chat-container/chat-container.d.ts +13 -2
- package/dist/types/components/chat/chat-welcome/chat-welcome.d.ts +39 -0
- package/dist/types/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.d.ts +1 -0
- package/dist/types/components/{_helpers/chat-container → chat}/code-render.d.ts +1 -1
- package/dist/types/components.d.ts +75 -10
- package/dist/types/index.d.ts +1 -1
- package/dist/types/showcase/chat-container/callbacks.d.ts +1 -1
- package/dist/types/showcase/chat-container/chat.showcase.d.ts +15 -0
- package/package.json +5 -5
- package/dist/cjs/MERCURY_ASSETS-6bbcc011.js +0 -5
- package/dist/cjs/MERCURY_ASSETS-6bbcc011.js.map +0 -1
- package/dist/cjs/assets-manager-7227a74b.js +0 -7
- package/dist/cjs/assets-manager-7227a74b.js.map +0 -1
- package/dist/cjs/code-render-db7cb770.js +0 -59
- package/dist/cjs/code-render-db7cb770.js.map +0 -1
- package/dist/cjs/common-72f91a78.js.map +0 -1
- package/dist/cjs/form-validation-178cf461.js.map +0 -1
- package/dist/cjs/gx-ide-chat-container.cjs.entry.js +0 -62
- package/dist/cjs/gx-ide-chat-container.cjs.entry.js.map +0 -1
- package/dist/cjs/helpers-30f109a4.js.map +0 -1
- package/dist/cjs/locale-ff30a5f3.js.map +0 -1
- package/dist/collection/components/_helpers/chat-container/chat-container.css +0 -204
- package/dist/collection/components/_helpers/chat-container/chat-container.js +0 -137
- package/dist/collection/components/_helpers/chat-container/chat-container.js.map +0 -1
- package/dist/collection/components/_helpers/chat-container/code-render.js +0 -46
- package/dist/collection/components/_helpers/chat-container/code-render.js.map +0 -1
- package/dist/components/assets-manager.js +0 -5
- package/dist/components/assets-manager.js.map +0 -1
- package/dist/esm/MERCURY_ASSETS-bbdf7018.js +0 -3
- package/dist/esm/MERCURY_ASSETS-bbdf7018.js.map +0 -1
- package/dist/esm/assets-manager-0d129105.js +0 -5
- package/dist/esm/assets-manager-0d129105.js.map +0 -1
- package/dist/esm/code-render-6cbb0e63.js +0 -56
- package/dist/esm/code-render-6cbb0e63.js.map +0 -1
- package/dist/esm/common-ccb4504a.js.map +0 -1
- package/dist/esm/gx-ide-chat-container.entry.js +0 -58
- package/dist/esm/gx-ide-chat-container.entry.js.map +0 -1
- package/dist/esm/helpers-10479d69.js.map +0 -1
- package/dist/esm/locale-e5107fad.js.map +0 -1
- package/dist/genexus-ide-ui/p-007173ef.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-038c3f9b.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-1a74d49a.entry.js +0 -231
- package/dist/genexus-ide-ui/p-1a74d49a.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-1bc2613e.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-1dd7be84.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-1e8f5da5.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-22b8bdb1.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-289c3290.js.map +0 -1
- package/dist/genexus-ide-ui/p-29a026bb.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-2a6683e1.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-311eedf3.js.map +0 -1
- package/dist/genexus-ide-ui/p-31beae9e.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-3d4355b4.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-3ecdb582.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-48826a6f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-4b79c3ab.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-4c717aa7.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-4cbc8a8b.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-530c32aa.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-54fbb568.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-55c87f23.entry.js +0 -287
- package/dist/genexus-ide-ui/p-55c87f23.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-56331289.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-5ac47c69.js.map +0 -1
- package/dist/genexus-ide-ui/p-67762237.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-68969051.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-6e4208d8.js +0 -9
- package/dist/genexus-ide-ui/p-6e4208d8.js.map +0 -1
- package/dist/genexus-ide-ui/p-76c3fc51.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-833c3585.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-84618917.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-8f00263d.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-961cd6c2.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-9a609b51.js.map +0 -1
- package/dist/genexus-ide-ui/p-9b5cb6b9.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-9ddea83b.js +0 -146
- package/dist/genexus-ide-ui/p-9ddea83b.js.map +0 -1
- package/dist/genexus-ide-ui/p-a59a07e2.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-a790c4c9.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-ba7d1472.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-be8a59fd.js +0 -107
- package/dist/genexus-ide-ui/p-be8a59fd.js.map +0 -1
- package/dist/genexus-ide-ui/p-c747afac.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-cd397078.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-d095a37c.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-db9c3b37.entry.js +0 -85
- package/dist/genexus-ide-ui/p-db9c3b37.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-de7f0c1f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-ded7444c.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-e502c2fd.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-eea944d4.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-f3f35e5c.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-fa18a70c.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-fdf41406.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-fe490103.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-fecc50e4.entry.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-59ed3f39.entry.js.map → p-02fc47cd.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-683cb15e.entry.js.map → p-2be58a7a.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3b8db39e.entry.js.map → p-39c527ff.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-50b22f23.entry.js.map → p-4d929210.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-bac13202.entry.js.map → p-844b7117.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-74c81ca3.entry.js.map → p-8636a0bd.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c6c955a3.entry.js.map → p-95f831a8.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e4c2e200.entry.js.map → p-9a39e49c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-beea29fa.entry.js.map → p-9a9ee1ee.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-6b957e82.entry.js.map → p-b211bca8.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2027c939.entry.js.map → p-e37e95e7.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e7fb3ee3.entry.js.map → p-f2bd9044.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0550fd5f.entry.js.map → p-f52bcdac.entry.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["mapTypeCategoryDataToActionListModel","categories","map","category","id","type","additionalInformation","center","imgSrc","icon","undefined","caption","name","part","mapTypeDataToActionListModel","types","selectedCategoryId","selectedTypeId","imageSrc","selected","sortActionListDefault","subModel","newObjectCss","CSS_BUNDLES","GxIdeNewObject","_GxIdeNewObject_componentLocale","set","this","_GxIdeNewObject_shortcutsSrc","getAssetPath","_GxIdeNewObject_categoriesActionListEl","_GxIdeNewObject_chShortcutsEl","_GxIdeNewObject_descriptionEl","_GxIdeNewObject_descriptionModifiedByUser","_GxIdeNewObject_moduleFolderEl","_GxIdeNewObject_nameEl","_GxIdeNewObject_nameModifiedByUser","_GxIdeNewObject_cancelCallbackHandler","async","cancelCallback","_GxIdeNewObject_categoryOnSelectionChangedHandler","selectionEvent","selection","detail","length","selectedCategory","typeCategories","find","item","selectedType","selectedTypeMap","get","_GxIdeNewObject_createCallbackHandler","nameValidation","validateNameCallback","__classPrivateFieldGet","value","_GxIdeNewObject_validateNameHandler","call","data","typeId","_a","description","moduleId","_c","_b","result","createCallback","_GxIdeNewObject_descriptionValueHandler","suggestDescriptionCallback","_GxIdeNewObject_getNameSuggestion","suggestNameCallback","suggestedName","replace","_GxIdeNewObject_getDescriptionSuggestion","suggestedDescription","_GxIdeNewObject_updateSuggestions","_GxIdeNewObject_init","defaultTypeFound","_GxIdeNewObject_setDefaultType","defaultTypeId","_GxIdeNewObject_onBlurNameHandler","_GxIdeNewObject_onInputDescriptionHandler","e","__classPrivateFieldSet","_GxIdeNewObject_onInputNameHandler","_GxIdeNewObject_onNameValueChangedHandler","_GxIdeNewObject_renderModuleFolder","hasModule","hasFolder","labelDescription","moduleFolder","moduleOnly","folderOnly","h","class","htmlFor","labelPosition","parent","defaultValue","defaultParent","selectEntityCallback","selectModuleCallback","ref","el","found","outerLoop","i","j","loopTypeId","_GxIdeNewObject_setSelectedCategoryOnActionList","updateItemProperties","_GxIdeNewObject_typeChangedHandler","nameValidationErrorMessage","Map","typeCategoriesChanged","newValue","typeCategoriesActionListModel","connectedCallback","componentWillLoad","Locale","getComponentStrings","_GxIdeNewObject_instances","_GxIdeNewObject_initializeSelectedTypeMap","componentDidLoad","suspendShortcuts","suspend","render","Host","model","src","categorySelectionTitle","sortItemsCallback","onSelectedItemsChange","typeSelectionTitleSuffix","typeSelectionTitle","objectName","autoFocus","input","placeholder","onChange","onInput","onBlur","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","objectDescription","onClick","footer","btnCancel","disabled","btnCreate","forEach"],"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 * Callback to suggest a name when creating an object from another object.\n * Returns the suggested name or undefined if not applicable.\n */\n @Prop() readonly suggestNameCallback?: SuggestNameCallback;\n\n /**\n * Callback to suggest a description when creating an object from another object.\n * Returns the suggested description or undefined if not applicable.\n */\n @Prop() readonly suggestDescriptionCallback?: SuggestDescriptionCallback;\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 await 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 return this.#descriptionEl.value;\n } else {\n // First try to get suggested description if callback exists\n if (this.suggestDescriptionCallback) {\n return this.description ?? this.selectedType.name;\n }\n return this.selectedType.name;\n }\n };\n\n /**\n * Gets the suggested name based on the context\n * @param selectedType The currently selected type\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #getNameSuggestion = async (selectedType: TypeData) => {\n if (this.suggestNameCallback) {\n const suggestedName = await this.suggestNameCallback();\n if (suggestedName) {\n return suggestedName.replace(/\\s/g, \"\");\n }\n }\n return selectedType.name.replace(/\\s/g, \"\");\n };\n\n /**\n * Gets the suggested description based on the context\n * @param selectedType The currently selected type\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #getDescriptionSuggestion = async (selectedType: TypeData) => {\n if (this.suggestDescriptionCallback) {\n const suggestedDescription = await this.suggestDescriptionCallback();\n if (suggestedDescription) {\n return suggestedDescription;\n }\n }\n return selectedType.name;\n };\n\n /**\n * Updates both name and description suggestions\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #updateSuggestions = async () => {\n if (!this.selectedType) {\n return;\n }\n\n if (!this.#nameModifiedByUser) {\n this.name = await this.#getNameSuggestion(this.selectedType);\n }\n\n if (!this.#descriptionModifiedByUser) {\n this.description = await this.#getDescriptionSuggestion(\n this.selectedType\n );\n }\n };\n\n /**\n * This method defines the initial selected category and type, and it then\n * initializes the name and description values.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #init = async () => {\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\n await this.#updateSuggestions();\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 #onBlurNameHandler = async () => {\n if (this.#nameEl.value) {\n const result: string | undefined = await this.validateNameCallback(\n this.#nameEl.value\n );\n this.#validateNameHandler(result);\n }\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 if (name) {\n const result: string | undefined = await this.validateNameCallback(name);\n this.#validateNameHandler(result);\n }\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 #typeChangedHandler = async (\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 await this.#updateSuggestions();\n }\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.#typeChangedHandler}\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.name}\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\nexport type SuggestNameCallback = () => Promise<string | undefined>;\nexport type SuggestDescriptionCallback = () => Promise<string | undefined>;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["containerCss","GxIdeContainer","this","headingClasses","heading","inactiveTitle","titleType","noHeadingBorder","hasOnlyHeading","headingJustify","noHeadingPadding","noHeadingPaddingBlockEnd","noHeadingGap","headingPaddingTop","_a","containerTitle","length","titleHeightAsInput","flexRow","contentClasses","content","flexContent","noContentPadding","noContentGap","noContentBorderTop","contentBorderEnd","alignItems","undefined","justifyContent","aboveFooter","hasAboveFooterSlot","h","class","noBorderAboveFooter","noAboveFooterPadding","slimmerFooter","name","footer","hasFooterSlot","hasOnlyFooter","hasSlottedContent","noBorderFooter","footerJustify","noFooterPadding","componentWillLoad","evaluateSlots","headerSlot","el","querySelectorAll","hasHeaderSlot","slottedContent","footerAboveSlot","footerStartSlot","footerEndSlot","evaluateSections","hasOnlyContent","render","result","type","alignment","titleAlignment","part","Host","container","sectionsPadding","displayBorder","displayBorderTop","displayBorderEnd","displayBorderBottom","displayBorderStart","titleCss","GxIdeTitle","geminiType"],"sources":["src/components/_helpers/container/container.scss?tag=gx-ide-container&encapsulation=shadow","src/components/_helpers/container/container.tsx","src/components/_helpers/title/title.scss?tag=gx-ide-title&encapsulation=shadow","src/components/_helpers/title/title.tsx"],"sourcesContent":["@import \"../../../../node_modules/@genexus/gemini/dist/gemini/globals/mixins.scss\";\n\n/*******************************\nHOST / GENERAL\n********************************/\n:host {\n --gx-ide-container-elements-spacing: var(--mer-spacing--xs);\n display: block;\n height: 100%;\n box-sizing: border-box;\n}\n.container {\n display: grid;\n height: 100%;\n grid-template-rows: auto 1fr auto;\n box-sizing: border-box;\n}\n.heading,\n.content,\n.footer,\n.footer-above {\n padding: var(--gx-ide-container__padding);\n}\n/*PADDING*/\n.container--padding-s {\n --gx-ide-container__padding: var(--mer-spacing--xs);\n}\n.container--padding-m {\n --gx-ide-container__padding: var(--mer-spacing--sm);\n}\n.container--padding-l {\n --gx-ide-container__padding: var(--mer-spacing--md);\n}\n/*BORDERS*/\n.container--display-border {\n border: 1px solid var(--gx-ide-container-border-color);\n}\n.container--display-border-top {\n border-top: 1px solid var(--gx-ide-container-border-color);\n}\n.container--display-border-end {\n border-inline-end: 1px solid var(--gx-ide-container-border-color);\n}\n.container--display-border-bottom {\n border-bottom: 1px solid var(--gx-ide-container-border-color);\n}\n.container--display-border-start {\n border-inline-start: 1px solid var(--gx-ide-container-border-color);\n}\n.container--overflow-hidden-y {\n overflow-y: hidden;\n}\n/*******************************\nHEADING\n********************************/\n.heading {\n // @include gxg-flex-justify();\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-container__padding);\n width: 100%;\n box-sizing: border-box;\n border-bottom: 1px solid var(--gx-ide-container-border-color);\n &--no-border {\n border-bottom: 0;\n }\n &--no-padding {\n padding: 0;\n }\n &--no-padding-block-end {\n padding-block-end: 0;\n }\n &--no-gap {\n gap: 0;\n }\n &--inactive {\n color: var(--gxg-color--disabled);\n }\n &--padding-top {\n padding: var(--gx-ide-container__padding) 0 0 0;\n }\n &--slimmer {\n padding-top: var(--mer-spacing--xs);\n padding-bottom: var(--mer-spacing--xs);\n }\n &--form-text-height {\n .heading__title {\n min-height: var(--gxg-form-text-height);\n justify-content: center;\n }\n }\n &--flex-row {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n }\n}\n/*******************************\nCONTENT\n********************************/\n.content {\n overflow-x: auto;\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-form-items-gap);\n box-sizing: border-box;\n @include gxg-scrollbar();\n\n &--no-padding {\n padding: 0;\n }\n &--no-border-top {\n border-top: none;\n }\n &--flex {\n display: flex;\n }\n &--no-gap {\n gap: 0;\n }\n &--align-items-start {\n align-items: start;\n }\n &--align-items-center {\n align-items: center;\n }\n &--align-items-end {\n align-items: end;\n }\n &--justify-content-start {\n justify-content: start;\n }\n &--justify-content-center {\n justify-content: center;\n }\n &--justify-content-end {\n justify-content: end;\n }\n &--border-end {\n border-inline-end: 1px solid var(--gx-ide-container-border-color);\n }\n}\n/*only content*/\n.container--only-content {\n grid-template-rows: 1fr;\n}\n/*no header, but has footer*/\n.container--no-header:not(.container--only-content) {\n grid-template-rows: 1fr auto;\n}\n/*no footer, but has header*/\n.container--no-footer:not(.container--only-content) {\n grid-template-rows: auto 1fr;\n}\n/*******************************\nFOOTER\n********************************/\n/*ABOVE*/\n.footer-above {\n border-top: 1px solid var(--gx-ide-container-border-color);\n &--no-border-top {\n border-top: 0;\n }\n &--slimmer {\n padding-top: var(--mer-spacing--xs);\n padding-bottom: var(--mer-spacing--xs);\n }\n &--no-padding {\n padding: 0;\n }\n}\n/*START and END*/\n.footer {\n display: flex;\n gap: var(--gx-ide-container-elements-spacing);\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: center;\n border-top: 1px solid var(--gx-ide-container-border-color);\n &__start,\n &__end {\n display: flex;\n gap: var(--gx-ide-container-elements-spacing);\n }\n &--no-border {\n border-top: 0;\n }\n &--no-padding {\n padding: 0;\n }\n &--slimmer {\n padding-top: var(--mer-spacing--xs);\n padding-bottom: var(--mer-spacing--xs);\n }\n}\n","import { Component, Host, h, Prop, Element, State } from \"@stencil/core\";\nimport { TitleAlignment } from \"@genexus/gemini/dist/types/common/types\";\nimport { TitleType } from \"../title/title\";\n@Component({\n tag: \"gx-ide-container\",\n styleUrl: \"container.scss\",\n shadow: true\n})\nexport class GxIdeContainer {\n // 1.OWN PROPERTIES //\n\n /* GENERAL */\n\n /**\n * By setting the title to inactive, the color will be gray instead of black.\n */\n @Prop() readonly inactiveTitle: boolean = false;\n\n /**\n * The title of the container\n */\n @Prop() readonly containerTitle: string;\n\n /**\n * The title of the container\n */\n @Prop() readonly titleType: TitleType = \"primary\";\n\n /**\n * Displays a border all around the container\n */\n @Prop() readonly displayBorder: boolean = false;\n\n /**\n * Displays a border on the top\n */\n @Prop() readonly displayBorderTop: boolean = false;\n\n /**\n * Displays a border at the end\n */\n @Prop() readonly displayBorderEnd: boolean = false;\n\n /**\n * Displays a border at on the bottom\n */\n @Prop() readonly displayBorderBottom: boolean = false;\n\n /**\n * Displays a border at the start\n */\n @Prop() readonly displayBorderStart: boolean = false;\n\n /**\n * The container general padding (applies to .heading, .content, and .footer)\n */\n @Prop() readonly sectionsPadding: SectionsPadding = \"m\";\n\n /* HEADING*/\n\n /**\n * Title alignment\n */\n @Prop() readonly titleAlignment: TitleAlignment = \"center\";\n\n /**\n * Removes the border bottom from the heading\n */\n @Prop() readonly noHeadingBorder: boolean = false;\n\n /**\n * Removes the heading gap\n */\n @Prop() readonly noHeadingGap: boolean = false;\n\n /**\n * Removes the padding from the heading\n */\n @Prop() readonly noHeadingPadding: boolean = false;\n\n /**\n * Removes the padding block end from the heading\n */\n @Prop() readonly noHeadingPaddingBlockEnd: boolean = false;\n\n /**\n * Adds padding to the top of the heading\n */\n @Prop() readonly headingPaddingTop: boolean = false;\n\n /**\n * The heading justification\n */\n @Prop() readonly headingJustify: HeadingJustify = \"center\";\n\n /**\n * It forces the .heading__title min-height to be as tall as the gxg-form-text height. This is useful when you are displaying two gx-ide-container's on the same row, both of them display a title, and one of them displays a gxg-form-text in the header (usually used to filter content). Without this property set to true, the .heading without a gxg-from-text would be shorter. At the time of writing, this is used on ww-images.\n */\n @Prop() readonly titleHeightAsInput: boolean = false;\n\n /**\n * Makes the header (.heading) display flex:row, instad of the default flex:column.\n */\n @Prop() readonly flexRow: boolean = false;\n\n /* CONTENT */\n\n /**\n * Makes the content a flex container\n */\n @Prop() readonly flexContent: boolean = false;\n\n /**\n * Removes the border-top from the content\n */\n @Prop() readonly noContentBorderTop: boolean = false;\n\n /**\n * Removes the padding from the content\n */\n @Prop() readonly noContentPadding: boolean = false;\n\n /**\n * Removes the gap from the content\n */\n @Prop() readonly noContentGap: boolean = false;\n\n /**\n * Align items\n */\n @Prop() readonly alignItems: AlignItems = undefined;\n\n /**\n * Justify content\n */\n @Prop() readonly justifyContent: JustifyContent = undefined;\n\n /**\n * Display border end on the content\n */\n @Prop() readonly contentBorderEnd: boolean = false;\n\n /* FOOTER ABOVE */\n\n /**\n * Makes the above footer vertical padding slimmer\n */\n @Prop() readonly slimmerAboveFooter: boolean = false;\n\n /**\n * Removes the above padding from the footer\n */\n @Prop() readonly noAboveFooterPadding: boolean = false;\n\n /**\n * Removes the above border top\n */\n @Prop() readonly noBorderAboveFooter: boolean = false;\n\n /* FOOTER > START and FOOTER > END*/\n\n /**\n * Makes the footer vertical padding slimmer\n */\n @Prop() readonly slimmerFooter: boolean = false;\n\n /**\n * Removes the padding from the footer\n */\n @Prop() readonly noFooterPadding: boolean = false;\n\n /**\n * The footer justification\n */\n @Prop() readonly footerJustify: FooterJustify = \"end\";\n\n /**\n * Removes the border top from the footer\n */\n @Prop() readonly noBorderFooter: boolean = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeContainerElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * A boolean variable indicating if the component has or not any content for the 'header' slot\n */\n @State() hasHeaderSlot = false;\n\n /**\n * A boolean variable indicating if the component has or not any content slotted content (regular slotted content, without 'slot' attribute)\n */\n @State() hasSlottedContent = false;\n\n /**\n * A boolean variable indicating if the component has or not any content for the 'footer' slot\n */\n @State() hasFooterSlot = false;\n\n /**\n * A boolean variable indicating if the component has or not any content for the 'footer' slot\n */\n @State() hasAboveFooterSlot = false;\n\n /**\n * A boolean variable indicating that the container only has the heading section\n */\n @State() hasOnlyHeading = false;\n\n /**\n * A boolean variable indicating that the container only has the content section\n */\n @State() hasOnlyContent = false;\n\n /**\n * A boolean variable indicating that the container only has the footer section\n */\n @State() hasOnlyFooter = false;\n\n // 4.PUBLIC PROPERTY API //\n\n // 5.EVENTS (EMIT) //\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n componentWillLoad() {\n this.evaluateSlots();\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private evaluateSlots() {\n // header\n const headerSlot = this.el.querySelectorAll(':scope > [slot=\"header\"]');\n if (headerSlot.length) {\n this.hasHeaderSlot = true;\n }\n // content\n const slottedContent = this.el.querySelectorAll(\":scope > :not([slot])\");\n if (slottedContent.length) {\n this.hasSlottedContent = true;\n }\n // footer\n const footerAboveSlot = this.el.querySelectorAll(\n ':scope > [slot=\"footer-above\"]'\n );\n const footerStartSlot = this.el.querySelectorAll(\n ':scope > [slot=\"footer-start\"]'\n );\n const footerEndSlot = this.el.querySelectorAll(\n ':scope > [slot=\"footer-end\"]'\n );\n if (footerStartSlot.length || footerEndSlot.length) {\n this.hasFooterSlot = true;\n }\n if (footerAboveSlot.length) {\n this.hasAboveFooterSlot = true;\n }\n }\n\n private evaluateSections() {\n // has only heading\n if (\n !this.hasSlottedContent &&\n !this.hasFooterSlot &&\n !this.hasAboveFooterSlot\n ) {\n this.hasOnlyHeading = true;\n }\n // has only content\n if (\n this.hasSlottedContent &&\n !this.containerTitle &&\n !this.hasHeaderSlot &&\n !this.hasAboveFooterSlot &&\n !this.hasFooterSlot\n ) {\n this.hasOnlyContent = true;\n }\n // has only footer\n if (\n !this.hasSlottedContent &&\n !this.containerTitle &&\n !this.hasAboveFooterSlot\n ) {\n this.hasOnlyFooter = true;\n }\n }\n\n private headingClasses = (): string | { [className: string]: boolean } => {\n return {\n \"heading\": true,\n \"heading--inactive\": this.inactiveTitle,\n \"heading--slimmer\": this.titleType === \"secondary\",\n \"heading--no-border\": this.noHeadingBorder || this.hasOnlyHeading,\n [`heading--justify-${this.headingJustify}`]: true,\n \"heading--no-padding\": this.noHeadingPadding,\n \"heading--no-padding-block-end\": this.noHeadingPaddingBlockEnd,\n \"heading--no-gap\": this.noHeadingGap,\n \"heading--padding-top\":\n this.headingPaddingTop && this.containerTitle?.length > 0,\n \"heading--form-text-height\": this.titleHeightAsInput,\n \"heading--flex-row\": this.flexRow\n };\n };\n\n private contentClasses = (): string | { [className: string]: boolean } => {\n return {\n \"content\": true,\n \"content--flex\": this.flexContent,\n \"content--no-padding\": this.noContentPadding,\n \"content--no-gap\": this.noContentGap,\n \"content--no-border-top\": this.noContentBorderTop,\n \"content--border-end\": this.contentBorderEnd,\n [`content--align-items-${this.alignItems}`]:\n this.alignItems !== undefined,\n [`content--justify-content-${this.justifyContent}`]:\n this.justifyContent !== undefined\n };\n };\n\n private aboveFooter = (): any | null => {\n return this.hasAboveFooterSlot ? (\n <footer\n class={{\n \"footer-above\": true,\n \"footer-above--no-border-top\": this.noBorderAboveFooter,\n \"footer-above--no-padding\": this.noAboveFooterPadding,\n \"footer-above--slimmer\": this.slimmerFooter\n }}\n >\n <slot name=\"footer-above\"></slot>\n </footer>\n ) : null;\n };\n\n private footer = (): any | null => {\n return this.hasFooterSlot ? (\n <footer\n class={{\n \"footer\": true,\n \"footer--no-border\":\n this.hasOnlyFooter ||\n !this.hasSlottedContent ||\n this.noBorderFooter,\n [`footer--justify-${this.footerJustify}`]: true,\n [`footer--justify-${this.footerJustify}`]: true,\n \"footer--no-padding\": this.noFooterPadding,\n \"footer--slimmer\": this.slimmerFooter\n }}\n >\n <div class=\"footer__start\">\n <slot name=\"footer-start\"></slot>\n </div>\n <div class=\"footer__end\">\n <slot name=\"footer-end\"></slot>\n </div>\n </footer>\n ) : null;\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n this.evaluateSections();\n const result = [\n this.containerTitle || this.hasHeaderSlot ? (\n <header class={this.headingClasses()}>\n {this.containerTitle ? (\n <gx-ide-title\n class=\"heading__title\"\n type={this.titleType}\n alignment={this.titleAlignment as any}\n >\n {this.containerTitle}\n </gx-ide-title>\n ) : null}\n {this.hasHeaderSlot ? (\n <div class=\"heading__inner-wrapper\">\n <slot name=\"header\"></slot>\n </div>\n ) : null}\n </header>\n ) : null,\n this.hasSlottedContent ? (\n <div class={this.contentClasses()} part=\"content\">\n <slot></slot>\n </div>\n ) : null,\n this.aboveFooter(),\n this.footer()\n ];\n\n return (\n <Host>\n <div\n class={{\n \"container\": true,\n [`container--padding-${this.sectionsPadding}`]: true,\n \"container--display-border\": this.displayBorder,\n \"container--display-border-top\": this.displayBorderTop,\n \"container--display-border-end\": this.displayBorderEnd,\n \"container--display-border-bottom\": this.displayBorderBottom,\n \"container--display-border-start\": this.displayBorderStart,\n \"container--only-content\": this.hasOnlyContent,\n \"container--no-header\": !this.hasHeaderSlot && !this.containerTitle,\n \"container--no-footer\":\n !this.hasFooterSlot && !this.hasAboveFooterSlot\n }}\n >\n {result}\n </div>\n </Host>\n );\n }\n}\n\nexport type HeadingJustify = \"start\" | \"center\" | \"end\";\nexport type FooterJustify = \"start\" | \"center\" | \"end\";\nexport type SectionsPadding = \"s\" | \"m\" | \"l\";\nexport type AlignItems = \"start\" | \"center\" | \"end\";\nexport type JustifyContent = \"start\" | \"center\" | \"end\";\n",":host {\n --gx-ide-title-padding: var(--gx-ide-container--padding, --mer-spacing--sm);\n display: flex;\n flex-direction: column;\n color: var(--gx-ide-component-text-color);\n font-family: var(--mer-font-family--primary);\n line-height: 1.6em;\n background-color: transparent;\n padding: 0;\n}\n/*alignment*/\n:host(.alignment--start) {\n align-items: start;\n}\n:host(.alignment--center) {\n align-items: center;\n}\n/*padding*/\n:host(.alignment--start) {\n text-align: start;\n}\n:host([padding]) {\n padding: var(--gx-ide-title-padding);\n}\n:host([no-padding-bottom]) {\n padding-bottom: 0;\n}\n/*border*/\n:host([border]) {\n border-bottom: 1px solid var(--gx-ide-container-border-color);\n}\n/*type*/\n:host(.title-type--primary) {\n}\n:host(.title-type--secondary) {\n //a little subtle\n color: var(--gray-06);\n}\n","import { Component, Host, h, Prop } from \"@stencil/core\";\nimport { TitleType as GeminiTitleType } from \"@genexus/gemini/dist/types/components/title/title\";\n\n@Component({\n tag: \"gx-ide-title\",\n styleUrl: \"title.scss\",\n shadow: true\n})\nexport class GxIdeTitle {\n /**\n * Description: This helper component has been created for using as a title for the dialogs sections.\n */\n\n private geminiType: GeminiTitleType;\n\n /**\n * The title caption (the title)\n */\n @Prop() readonly titleCaption: string;\n\n /**\n * The title caption (the title)\n */\n @Prop() readonly type: TitleType = \"primary\";\n\n /**\n * The title alignment\n */\n @Prop() readonly alignment: TitleAlignment = \"start\";\n\n /**\n * Disables the padding\n */\n @Prop({ reflect: true }) readonly padding: boolean = false;\n\n /**\n * Disables the padding on the bottom\n */\n @Prop({ reflect: true }) readonly noPaddingBottom: boolean = false;\n\n /**\n * Displays a border on the bottom\n */\n @Prop({ reflect: true }) readonly border: boolean = false;\n\n componentWillLoad() {\n if (this.type === \"primary\") {\n this.geminiType = \"title-04\";\n } else if (this.type === \"secondary\") {\n this.geminiType = \"title-05\";\n }\n }\n\n render() {\n return (\n <Host\n class={{\n [`alignment--${this.alignment}`]: true,\n [`title-type--${this.type}`]: true\n }}\n >\n <gxg-title type={this.geminiType} alignment={this.alignment}>\n <slot></slot>\n </gxg-title>\n </Host>\n );\n }\n}\n\nexport type TitleType = \"primary\" | \"secondary\";\n\nexport type TitleAlignment = \"start\" | \"center\";\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["filesToListItemsData","files","itemsData","forEach","file","itemId","name","itemValue","itemIcon","undefined","itemChecked","push","bpmImportFilesCss","GxIdeTemplate","this","renderedFirstTime","fileSelectionChangedHandler","selectedItem","selectionChanged","emit","selectedFiles","Array","isArray","detail","map","item","loadFileHandle","async","fileInput","click","handleFileInputChange","event","target","length","newFiles","from","uniqueFiles","filter","newFile","some","existingFile","value","confirmCallbackHandle","confirmCallback","data","automaticBackup","automaticBackupEl","removeFiles","filesToRemove","includes","handleRemoveButtonClick","componentWillLoad","_componentLocale","Locale","getComponentStrings","el","componentDidRender","componentDidRenderFirstTime","componentName","render","h","Host","class","containerTitle","displayTitle","slimmerFooter","config","gxIdeContainer","htmlFor","main","listLabel","id","type","listName","ordered","onSelectionChanged","renderListItems","accessibleName","automaticBackupLabel","checkedValue","unCheckedValue","ref","accept","_a","allowedExtensions","join","onChange","multiple","onClick","addFilesButton","disabled","removeFilesButton","slot","footer","confirmButton","cancelCallback","cancelButton"],"sources":["src/components/bpm/import-files/helpers.ts","src/components/bpm/import-files/bpm-import-files.scss?tag=gx-ide-bpm-import-files&encapsulation=shadow","src/components/bpm/import-files/bpm-import-files.tsx"],"sourcesContent":["import { ItemData } from \"../../_helpers/list-selector/list-selector-item/list-selector-item\";\n\nexport const filesToListItemsData = (files: string[] | File[]): ItemData[] => {\n const itemsData: ItemData[] = [];\n files.forEach(file => {\n const itemId = typeof file === \"string\" ? file : file.name;\n const itemValue = typeof file === \"string\" ? file : file.name;\n const itemIcon: string = undefined;\n const itemChecked: boolean = false;\n itemsData.push({\n itemId: itemId,\n itemValue: itemValue,\n itemIcon: itemIcon,\n itemChecked: itemChecked\n });\n });\n return itemsData;\n};\n","@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../global/temporary-tokens-chameleon.scss\";\n\n:host {\n display: block;\n}\n\n.main {\n display: grid;\n grid-template-rows: 1fr auto;\n height: 100%;\n gap: var(--gx-ide-form-items-gap);\n}\n.path-list {\n width: 100%;\n height: 100%;\n}\ngx-ide-list-selector::part(list) {\n height: 100%;\n}\n.hidden-input {\n display: none;\n}\n.checkbox-container {\n display: flex;\n gap: 0.5rem;\n}\n.footer {\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-form-items-gap);\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { CheckedItemsInfo } from \"../../_helpers/list-selector/list-selector\";\n/* CUSTOM IMPORTS */\nimport { config } from \"../../../common/config\";\nimport { Locale } from \"../../../common/locale\";\nimport { renderListItems } from \"../../../common/render-list-item\";\nimport { filesToListItemsData } from \"./helpers\";\n\n@Component({\n tag: \"gx-ide-bpm-import-files\",\n styleUrl: \"bpm-import-files.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-import-files\"]\n})\nexport class GxIdeTemplate {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmImportFilesElement;\n\n private fileInput: HTMLInputElement;\n private automaticBackupEl: HTMLChCheckboxElement;\n\n // 3.STATE() VARIABLES //\n /**\n * Contains the list of files\n */\n @State() files: File[] = [];\n\n /**\n * Contains the list of selected files\n */\n @State() selectedFiles: string[] = [];\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Allowed extensions when 'Add files' button is pressed\n */\n @Prop() readonly allowedExtensions: string[];\n\n /**\n * Callback invoked when user press 'OK' button\n */\n @Prop() readonly confirmCallback: (data: ImportData) => Promise<boolean>;\n\n /**\n * Callback invoked when user press 'Cancel' button.\n */\n @Prop() readonly cancelCallback: () => Promise<void>;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n /**\n * @description Gets fired when something changes on items section.\n */\n @Event() selectionChanged: EventEmitter<void>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private fileSelectionChangedHandler = (\n selectedItem: CustomEvent<CheckedItemsInfo>\n ) => {\n this.selectionChanged.emit();\n\n const selectedFiles = Array.isArray(selectedItem.detail)\n ? selectedItem.detail\n : [selectedItem.detail];\n\n this.selectedFiles = selectedFiles.map(item => item.itemValue);\n };\n\n private loadFileHandle = async () => {\n this.fileInput.click();\n };\n\n private handleFileInputChange = (event: Event) => {\n const fileInput = event.target as HTMLInputElement;\n\n if (fileInput.files && fileInput.files.length > 0) {\n const newFiles: File[] = Array.from(fileInput.files);\n const uniqueFiles = newFiles.filter(\n newFile =>\n !this.files.some(existingFile => existingFile.name === newFile.name)\n );\n this.files = [...this.files, ...uniqueFiles];\n }\n\n this.fileInput.value = null;\n };\n\n private confirmCallbackHandle = async () => {\n if (this.confirmCallback && this.files.length > 0) {\n const data: ImportData = {\n automaticBackup: this.automaticBackupEl.value === \"true\",\n files: this.files\n };\n\n await this.confirmCallback(data);\n }\n };\n\n private removeFiles = (filesToRemove: string[]) => {\n this.files = this.files.filter(file => !filesToRemove.includes(file.name));\n\n this.selectedFiles = [];\n this.fileInput.value = null;\n };\n\n private handleRemoveButtonClick = () => {\n this.removeFiles(this.selectedFiles);\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"main\">\n {/* path list*/}\n <div class=\"controls-wrapper controls-wrapper--vertical\">\n <label htmlFor=\"path-list\">\n {this._componentLocale.main.listLabel}\n </label>\n <gx-ide-list-selector\n id=\"path-list\"\n type=\"multi-selection\"\n listName=\"path-list\"\n ordered\n onSelectionChanged={this.fileSelectionChangedHandler}\n class=\"path-list\"\n >\n {renderListItems(filesToListItemsData(this.files))}\n </gx-ide-list-selector>\n </div>\n\n <div class=\"footer\">\n <div class=\"checkbox-container\">\n <ch-checkbox\n id=\"automatic-backup\"\n accessibleName={\n this._componentLocale.main.automaticBackupLabel\n }\n checkedValue=\"true\"\n unCheckedValue=\"false\"\n value=\"checked\"\n ref={el =>\n (this.automaticBackupEl = el as HTMLChCheckboxElement)\n }\n ></ch-checkbox>\n <label htmlFor=\"automatic-backup\">\n {this._componentLocale.main.automaticBackupLabel}\n </label>\n </div>\n <div class=\"controls-wrapper\">\n <input\n type=\"file\"\n id=\"input_file\"\n accept={this.allowedExtensions?.join(\", \")}\n ref={el => (this.fileInput = el as HTMLInputElement)}\n onChange={this.handleFileInputChange}\n class=\"hidden-input\"\n multiple\n />\n <button onClick={this.loadFileHandle}>\n {this._componentLocale.main.addFilesButton}\n </button>\n <button\n onClick={this.handleRemoveButtonClick}\n disabled={this.selectedFiles.length === 0}\n >\n {this._componentLocale.main.removeFilesButton} (\n {this.selectedFiles.length})\n </button>\n </div>\n </div>\n </div>\n\n <button slot=\"footer-end\" onClick={this.confirmCallbackHandle}>\n {this._componentLocale.footer.confirmButton}\n </button>\n <button slot=\"footer-end\" onClick={this.cancelCallback}>\n {this._componentLocale.footer.cancelButton}\n </button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type ImportData = {\n files: File[];\n automaticBackup: boolean;\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["wwImagesCss","CSS_BUNDLES","GxIdeWWImages","this","renderedFirstTime","attachDetectClickOutsideFilter","document","addEventListener","detectClickOutsideFilter","removeDetectClickOutsideFilter","removeEventListener","e","clickedOutside","closeOnOutsideClickHandler","filterEl","filtersHidden","saveInitialFilterData","filterInitialData","name","filterNameEl","value","module","filterModuleEl","searchContents","filterSearchContentsEl","category","filterCategoryEl","allDescendants","filterAllDescendantsEl","checked","modified","filterModifiedEl","dateTime","filterModifiedDateEl","after","filterAfterTypeEl","user","filterUserEl","style","filterStyleEl","language","filterLanguageEl","density","filterDensityEl","layer","filterLayerEl","renderFilter","h","class","ref","el","label","_componentLocale","filter","part","defaultModule","defaultValue","selectEntityCallback","selectModuleCallback","onClick","resetFilterHandler","type","icon","toggleFiltersHandler","search","defaultCategory","disabled","categories","renderFormItems","_a","labelPosition","center","hide","filterModified","filterAfterType","FILTER_AFTER","DATE_TIME","afterLabel","id","NONE","afterNone","IMPORT","LAST_BUILD","centerLabel","styles","_b","languages","_c","densities","_d","layers","_e","renderImagesData","contentBorderEnd","noContentPadding","titleType","containerTitle","secondaryFilter","imagesDataTitle","slot","placeholder","onInput","filterInputHandler","chGridEl","rowSelectionMode","columnName","columnNameHidden","settingable","size","config","tabularGrid","colSize","maxContent","tableHead","common","description","commonDouble","modifiedDate","lastUser","importDate","filteredImages","map","obj","rowid","src","hiChar","filterImagesInputValue","formatDate","renderImages","imagesTitle","titleHeightAsInput","imagesSelectedItems","item","url","alt","getImages","filters","parent","modifiedAfter","Object","assign","modifiedBy","loadCallback","then","items","images","selectedObjectsIds","deselectAll","filterImagesInformationHandler","newObjectCallbackHandler","newObjectCallback","openSelectionCallBackHandler","openSelectionCallback","deleteSelectionCallbackHandler","deleteSelectionCallback","selectAll","selectAllRows","listenChanges","detail","ev","loadImageItemsCallback","rowsId","selectionObjectChangedCallback","preventDefault","stopPropagation","contextMenuCallback","selection","selectedRowsId","clientX","clientY","filterValue","toLocaleLowerCase","image","nameMatch","includes","moduleMatch","descriptionMatch","modifiedDateMatch","toString","importDateMatch","filtersHiddenHandler","hidden","componentWillLoad","Locale","getComponentStrings","componentDidLoadEvent","emit","componentDidLoad","focus","componentDidRender","componentDidRenderFirstTime","componentName","keyDownHandler","eventInfo","activeElement","key","validate","isValid","reload","render","Host","model","noContentGap","displayTitle","slimmerFooter","gxIdeContainer","footer","btnSelectAll","btnNew","length","objCount","matching"],"sources":["src/components/ww-images/ww-images.scss?tag=gx-ide-ww-images&encapsulation=shadow","src/components/ww-images/ww-images.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: block;\n}\n\n/*--- Filter ---*/\n.module-folder::part(wrapper) {\n padding-block: 1.5px;\n margin-block-start: var(--gxg-label-separation-vertical);\n}\n.filter--padding {\n padding: var(--gx-ide-container__padding);\n}\n.filter--gap {\n gap: var(--gx-ide-grid-row-gap);\n}\n.filter {\n display: flex;\n flex-direction: column;\n &__first-row {\n display: flex;\n gap: var(--gx-ide-grid-column-gap);\n .name,\n .module-folder {\n flex: 1;\n }\n .filter-btn {\n flex: none;\n }\n .second-column {\n display: flex;\n flex-direction: row;\n align-items: end;\n gap: var(--gx-ide-grid-column-gap);\n }\n > * {\n flex: 1;\n }\n }\n .checkboxes-label-wrapper {\n display: flex;\n flex-direction: column;\n gap: 0;\n }\n .checkboxes-wrapper {\n display: flex;\n gap: var(--gx-ide-grid-column-gap);\n border-radius: var(--border-radius-sm);\n height: var(--gxg-form-text-height);\n box-sizing: border-box;\n align-items: center;\n padding-inline-start: var(--mer-spacing--2xs);\n }\n .user {\n max-width: 100% !important;\n }\n}\n\n/*Filter*/\n.filters-outer-wrapper {\n display: grid;\n grid-template-rows: 1fr;\n transition: grid-template-rows 200ms;\n &--hidden {\n grid-template-rows: 0fr;\n }\n}\n.filters-inner-wrapper {\n padding-top: var(--gx-ide-container__padding);\n display: grid;\n overflow: hidden;\n grid-template-columns: repeat(12, 1fr);\n grid-template-rows: repeat(3, 1fr);\n\n .search-contents {\n grid-area: 1 / 1 / 2 / 5;\n }\n .category {\n grid-area: 1 / 5 / 2 / 9;\n }\n .options {\n grid-area: 1 / 9 / 2 / 13;\n }\n .date-time {\n grid-area: 2 / 1 / 3 / 5;\n }\n .after-date-time {\n grid-area: 2 / 5 / 3 / 9;\n }\n .user {\n grid-area: 2 / 9 / 3 / 13;\n }\n .style {\n grid-area: 3 / 1 / 4 / 4;\n }\n .language {\n grid-area: 3 / 4 / 4 / 7;\n }\n .density {\n grid-area: 3 / 7 / 4 / 10;\n }\n .layer {\n grid-area: 3 / 10 / 4 / 13;\n }\n}\n\ngxg-date-picker {\n position: absolute;\n inline-size: calc(33% - 16px);\n}\ngxg-date-picker::part(input) {\n block-size: 26px;\n}\n\n.master-wrapper {\n height: 100%;\n position: relative;\n display: grid;\n grid-template-rows: auto 1fr;\n}\n\n/*--- Grid/Images Container ---*/\n.grid-images-container {\n border-top: 1px solid var(--gx-ide-container-border-color);\n display: grid;\n grid-template-columns: 1fr 220px;\n grid-column-gap: 0;\n grid-row-gap: 0;\n overflow: auto;\n}\n.images-information {\n &__header {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n &-title {\n flex: none;\n }\n }\n}\n\n/* Objects Table */\n.images-grid {\n grid-template-columns: repeat(2, 1fr);\n grid-column-gap: 0;\n > :nth-child(1) {\n grid-area: 1 / 1 / 1 / 3;\n }\n}\n.images-container {\n .image-item {\n display: inline-block;\n width: 50%;\n height: 110px; /*should be half the images container width (actually is 220px)*/\n &__container {\n padding: var(--gx-ide-container__padding);\n img {\n width: 100%;\n height: 100%;\n object-fit: scale-down;\n }\n }\n &__name {\n @include ellipsis;\n text-align: center;\n width: 100%;\n display: block;\n font-size: 10px;\n padding: 4px 8px;\n box-sizing: border-box;\n background-color: var(--gray-00);\n }\n &:nth-child(odd) {\n .image-item__name {\n border-inline-end: 1px solid var(--gray-02);\n }\n }\n }\n}\n.objects-count {\n grid-template-columns: repeat(2, 1fr);\n *:nth-child(2) {\n justify-content: flex-end;\n align-items: flex-start;\n }\n}\n\n@include hiChar;\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-ww-images\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 4\n )\n);\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n Listen,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { ChGridRowContextMenuEvent } from \"@genexus/chameleon-controls-library\";\nimport { DatePickerDate } from \"@genexus/gemini/dist/types/components/date-picker/date-picker\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { GxOption } from \"../../common/types\";\nimport { config } from \"../../common/config\";\nimport { renderFormItems } from \"../../common/common\";\nimport { EntityData, ContextMenuInfo } from \"../../common/types\";\nimport { FILTER_AFTER } from \"../../common/constants\";\nimport {\n formatDate,\n hiChar,\n closeOnOutsideClickHandler\n} from \"../../common/helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n // \"components/button\",\n // \"components/checkbox\",\n // \"components/edit\",\n \"components/tabular-grid\"\n];\n\n@Component({\n tag: \"gx-ide-ww-images\",\n styleUrl: \"ww-images.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/ww-images\"]\n})\nexport class GxIdeWWImages {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private filterInitialData: FilerInitialData;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeWwImagesElement;\n\n private filterEl: HTMLDivElement;\n /* References needed to collect data */\n private filterNameEl!: HTMLGxgFormTextElement;\n private filterSearchContentsEl!: HTMLGxgFormTextElement;\n private filterCategoryEl!: HTMLGxgComboBoxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private filterModifiedEl!: HTMLGxgFormCheckboxElement;\n private filterAllDescendantsEl!: HTMLGxgFormCheckboxElement;\n private filterAfterTypeEl!: HTMLGxgComboBoxElement;\n private filterUserEl!: HTMLGxgFormTextElement;\n private filterModifiedDateEl!: HTMLGxgDatePickerElement;\n private filterStyleEl!: HTMLGxgComboBoxElement;\n private filterLanguageEl!: HTMLGxgComboBoxElement;\n private filterDensityEl!: HTMLGxgComboBoxElement;\n private filterLayerEl!: HTMLGxgComboBoxElement;\n private chGridEl!: HTMLChGridElement;\n\n // 3.STATE() VARIABLES //\n\n @State() filtersHidden = true;\n @Watch(\"filtersHidden\")\n filtersHiddenHandler(hidden: boolean): void {\n if (hidden) {\n this.removeDetectClickOutsideFilter();\n } else {\n this.attachDetectClickOutsideFilter();\n }\n }\n\n /**\n * The after types render in the after selector\n */\n @State() filterAfterType = \"\";\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * The images rendered in the table\n */\n @State() images: ImageData[] = [];\n\n /**\n * The images rendered in the table, after the filter\n */\n @State() filteredImages: ImageData[] = [];\n\n /**\n * The items of the image that is selected\n */\n @State() imagesSelectedItems: ImageItemData[] = [];\n\n /**\n * The selected images in the table of images\n */\n @State() selectedObjectsIds: string[] = [];\n\n /**\n * The images filter input text value\n */\n @State() filterImagesInputValue = \"\";\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Displays a secondary filter, used to filter over the filtered images\n */\n @Prop() readonly secondaryFilter = false;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The densities render in the filter density selector\n */\n @Prop() readonly densities!: GxOption[];\n\n /**\n * The default value for the 'categories' 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 * The modules/folders render in the module/folder selector\n */\n @Prop() readonly filterModules!: GxOption[];\n\n /**\n * The languages render in the filter language selector\n */\n @Prop() readonly languages!: GxOption[];\n\n /**\n * The layers render in the filter layer selector\n */\n @Prop() readonly layers!: GxOption[];\n\n /**\n * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.\n */\n @Prop() readonly deleteSelectionCallback!: DeleteSelectionCallback;\n\n /**\n * This is a function provided by the developer that return a list of images to populate the table of images.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer that return a list of items of the image selected.\n */\n @Prop() readonly loadImageItemsCallback!: LoadImageItemsCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Callback invoked when the action is executed on the Module/Folder filter (button '...'). 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 * This is a function provided by the developer for expanded the data of images that is double-clicked or entered.\n */\n @Prop() readonly selectionObjectChangedCallback!: SelectionObjectCallback;\n\n /**\n * Applies a shadow all around\n */\n @Prop() readonly shadow = false;\n\n /**\n * The styles render in the filter style selector\n */\n @Prop() readonly styles!: GxOption[];\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: GxOption[];\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n }\n\n componentDidLoad() {\n this.listenChanges();\n this.getImages();\n this.saveInitialFilterData();\n this.filterNameEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n @Listen(\"keydown\", { passive: true })\n keyDownHandler(eventInfo: KeyboardEvent) {\n if (document.activeElement === this.el) {\n switch (eventInfo.key) {\n case \"Enter\":\n this.openSelectionCallBackHandler();\n break;\n case \"Delete\":\n this.deleteSelectionCallbackHandler();\n break;\n }\n }\n }\n\n // 8.PUBLIC METHODS API //\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 /**\n * This method reload the view, refreshing the filters and the table of images.\n */\n @Method()\n async reload(): Promise<void> {\n this.getImages();\n }\n\n // 9.LOCAL METHODS //\n\n private attachDetectClickOutsideFilter = () => {\n document.addEventListener(\"click\", this.detectClickOutsideFilter);\n };\n private removeDetectClickOutsideFilter = () => {\n document.removeEventListener(\"click\", this.detectClickOutsideFilter);\n };\n private detectClickOutsideFilter = (e: PointerEvent): void => {\n const clickedOutside = closeOnOutsideClickHandler(e, this.filterEl);\n if (clickedOutside) {\n this.filtersHidden = true;\n } else {\n this.filtersHidden = false;\n }\n };\n\n /**\n * @description This is needed for resetting the filter. When the user resets the filter, all the filter controls values have to be restored to the value they had on componentDidLoad.\n */\n private saveInitialFilterData = () => {\n this.filterInitialData = {\n name: this.filterNameEl.value,\n module: this.filterModuleEl.value,\n searchContents: this.filterSearchContentsEl.value,\n category: this.filterCategoryEl.value,\n allDescendants: this.filterAllDescendantsEl.checked,\n modified: this.filterModifiedEl.checked,\n dateTime: this.filterModifiedDateEl.value,\n after: this.filterAfterTypeEl.value,\n user: this.filterUserEl.value,\n style: this.filterStyleEl.value,\n language: this.filterLanguageEl.value,\n density: this.filterDensityEl.value,\n layer: this.filterLayerEl.value\n };\n };\n\n // 9.LOCAL METHODS -> Renders //\n\n private renderFilter = (): Element => {\n return (\n <div\n class=\"filter filter--padding\"\n ref={(el: HTMLDivElement) => (this.filterEl = el as HTMLDivElement)}\n >\n <div class=\"filter__first-row\">\n {/* name */}\n <gxg-form-text\n label-position=\"above\"\n label={this._componentLocale.filter.name}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterNameEl = el as HTMLGxgFormTextElement)\n }\n part=\"filter-name\"\n class=\"name\"\n ></gxg-form-text>\n\n <div class=\"second-column\">\n {/* module/folder */}\n <gx-ide-entity-selector\n label-position=\"above\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"module-folder\"\n part=\"filter-module-folder\"\n ></gx-ide-entity-selector>\n\n {/* reset filter button */}\n <gxg-button\n onClick={this.resetFilterHandler}\n part=\"gxg-button-reset-filter\"\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/reset\"\n class=\"reset-filter-btn\"\n ></gxg-button>\n\n {/* filter button */}\n <gxg-button\n onClick={this.toggleFiltersHandler}\n part=\"gxg-button gxg-button--more-less\"\n type=\"secondary-icon-only\"\n icon={\n true ? \"window-tools/filter-conditions\" : \"window-tools/filter\"\n }\n class=\"filter-btn\"\n ></gxg-button>\n </div>\n </div>\n\n <div\n class={{\n \"filters-outer-wrapper\": true,\n \"filters-outer-wrapper--hidden\": this.filtersHidden\n }}\n >\n <div\n class={{\n \"filter\": true,\n \"filter--gap\": true,\n \"filters-inner-wrapper\": true\n }}\n >\n {/* search contents */}\n <gxg-form-text\n label-position=\"above\"\n label={this._componentLocale.filter.search}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterSearchContentsEl = el as HTMLGxgFormTextElement)\n }\n class={{ \"search-contents\": true }}\n part=\"filter-search\"\n ></gxg-form-text>\n\n {/* category */}\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.category}\n value={this.defaultCategory}\n disabled={!this.categories}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterCategoryEl = el as HTMLGxgComboBoxElement)\n }\n class=\"category\"\n part=\"filter-category\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.categories ?? [])}\n </gxg-combo-box>\n\n <div class=\"options\">\n <gxg-label labelPosition=\"above\" center={false}>\n Options:\n </gxg-label>\n {/* all descendants*/}\n <div class=\"checkboxes-wrapper\">\n <gxg-form-checkbox\n label={this._componentLocale.filter.allDescendants}\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.filterAllDescendantsEl =\n el as HTMLGxgFormCheckboxElement)\n }\n class=\"all-descendants\"\n part=\"filter-all-descendants\"\n ></gxg-form-checkbox>\n\n {/* modified */}\n <gxg-form-checkbox\n label={this._componentLocale.filter.modified}\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.filterModifiedEl = el as HTMLGxgFormCheckboxElement)\n }\n class=\"modified\"\n part=\"filter-modified\"\n ></gxg-form-checkbox>\n </div>\n </div>\n\n {/* date/time*/}\n <div\n class={{\n \"hide\":\n !this.filterModified ||\n this.filterAfterType !== FILTER_AFTER.DATE_TIME,\n \"date-time\": true\n }}\n part=\"filter-datetime\"\n >\n <div class=\"date-time-wrapper\">\n <gxg-label label-position=\"above\">\n {this._componentLocale.filter.dateTime}\n </gxg-label>\n <gxg-date-picker\n class=\"date-picker\"\n disabled={!this.filterModified}\n ref={(el: HTMLGxgDatePickerElement) =>\n (this.filterModifiedDateEl = el as HTMLGxgDatePickerElement)\n }\n ></gxg-date-picker>\n </div>\n </div>\n\n {/* after date/time */}\n <gxg-combo-box\n class=\"after-date-time\"\n disabled={!this.filterModified}\n label={this._componentLocale.filter.afterLabel}\n disable-filter\n value={this.filterAfterType}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterAfterTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"filter-after-type\"\n >\n {renderFormItems(\"gxg-combo-box-item\", [\n {\n id: FILTER_AFTER.NONE,\n label: this._componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n id: FILTER_AFTER.DATE_TIME,\n label: this._componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n id: FILTER_AFTER.IMPORT,\n label: this._componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n id: FILTER_AFTER.LAST_BUILD,\n label: this._componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ])}\n </gxg-combo-box>\n\n {/* user */}\n <gxg-form-text\n disabled={!this.filterModified}\n labelPosition=\"above\"\n label={this._componentLocale.filter.user}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterUserEl = el as HTMLGxgFormTextElement)\n }\n value=\"hey\"\n centerLabel={false}\n class=\"user\"\n part=\"filter-user\"\n ></gxg-form-text>\n\n {/* style*/}\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.style}\n disabled={!this.styles}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterStyleEl = el as HTMLGxgComboBoxElement)\n }\n class=\"style\"\n part=\"filter-style\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.styles ?? [])}\n </gxg-combo-box>\n\n {/* language*/}\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.language}\n disabled={!this.languages}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterLanguageEl = el as HTMLGxgComboBoxElement)\n }\n class=\"language\"\n part=\"filter-language\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.languages ?? [])}\n </gxg-combo-box>\n\n {/* density*/}\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.density}\n disabled={!this.densities}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterDensityEl = el as HTMLGxgComboBoxElement)\n }\n class=\"density\"\n part=\"filter-density\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.densities ?? [])}\n </gxg-combo-box>\n\n {/* layer*/}\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.layer}\n disabled={!this.layers}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterLayerEl = el as HTMLGxgComboBoxElement)\n }\n class=\"layer\"\n part=\"filter-layer\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.layers ?? [])}\n </gxg-combo-box>\n </div>\n </div>\n </div>\n );\n };\n\n private renderImagesData = (): Element => {\n return (\n /* images information*/\n <gx-ide-container\n contentBorderEnd\n noContentPadding\n titleType=\"secondary\"\n containerTitle={\n !this.secondaryFilter ? this._componentLocale.imagesDataTitle : null\n }\n class={{ \"images-information\": true, \"overflow-auto\": true }}\n part=\"grid-container\"\n >\n {this.secondaryFilter ? (\n <header class=\"images-information__header\" slot=\"header\">\n <gx-ide-title\n type=\"secondary\"\n class=\"images-information__header-title\"\n >\n {this._componentLocale.imagesDataTitle}\n </gx-ide-title>\n <gxg-form-text\n icon=\"gemini-tools/search\"\n icon-position=\"start\"\n placeholder=\"Search by any field\"\n onInput={this.filterInputHandler as any}\n ></gxg-form-text>\n </header>\n ) : null}\n\n <ch-tabular-grid\n ref={(el: HTMLChTabularGridElement) => (this.chGridEl = el)}\n part=\"ch-grid-images\"\n rowSelectionMode=\"single\"\n class=\"tabular-grid tabular-grid-ww-images\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnName=\"\"\n columnNameHidden={false}\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 columnName={this._componentLocale.tableHead.name}\n columnNameHidden={false}\n settingable={false}\n class=\"tabular-grid-column\"\n size={config.tabularGrid.colSize.common}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.module}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.common}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnName={this._componentLocale.tableHead.description}\n columnNameHidden={false}\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 columnName={this._componentLocale.tableHead.modifiedDate}\n columnNameHidden={false}\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 columnName={this._componentLocale.tableHead.lastUser}\n columnNameHidden={false}\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 columnName={this._componentLocale.tableHead.importDate}\n columnNameHidden={false}\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 {this.filteredImages.map((obj: ImageData) => (\n <ch-tabular-grid-row rowid={obj.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon}></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(obj.name, this.filterImagesInputValue)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(obj.module, this.filterImagesInputValue)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(obj.description, this.filterImagesInputValue)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n `${formatDate(obj.modifiedDate)}`,\n this.filterImagesInputValue\n )}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(obj.lastUser, this.filterImagesInputValue)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n `${formatDate(obj.importDate)}`,\n this.filterImagesInputValue\n )}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n </gx-ide-container>\n );\n };\n\n private renderImages = (): Element => {\n return (\n /* tiles */\n <gx-ide-container\n containerTitle={this._componentLocale.imagesTitle}\n noContentPadding\n titleType=\"secondary\"\n class=\"overflow-auto\"\n titleHeightAsInput={\n this.secondaryFilter ? this._componentLocale.imagesDataTitle : null\n }\n part=\"image-data-container\"\n >\n <div class=\"images-container\">\n {this.imagesSelectedItems.map(item => (\n <div class=\"image-item\">\n <div class=\"image-item__container\">\n <div class=\"img\">\n <img src={item.url} alt={item.id} />\n </div>\n </div>\n <span class=\"image-item__name\">{item.name}</span>\n </div>\n ))}\n </div>\n </gx-ide-container>\n );\n };\n\n // 9.LOCAL METHODS -> Other //\n\n private getImages = (): void => {\n let filters: ImageFiltersData = {\n name: this.filterNameEl.value,\n parent: this.filterModuleEl.value ? this.filterModuleEl.value.id : null\n };\n\n const modified = this.filterModifiedEl.checked;\n const modifiedAfter = this.filterAfterTypeEl.value;\n filters = {\n ...filters,\n searchContents: this.filterSearchContentsEl.value,\n category: this.filterCategoryEl.value,\n allDescendants: this.filterAllDescendantsEl.checked,\n modifiedAfter: modified ? modifiedAfter : null,\n modifiedBy: modified ? this.filterUserEl.value : null,\n modifiedDate:\n modified && modifiedAfter === FILTER_AFTER.DATE_TIME\n ? (this.filterModifiedDateEl.value as Date)\n : null,\n style: this.filterStyleEl.value,\n language: this.filterLanguageEl.value,\n density: this.filterDensityEl.value,\n layer: this.filterLayerEl.value\n };\n\n this.loadCallback(filters).then((items: ImageData[]) => {\n this.images = items;\n this.selectedObjectsIds = [];\n this.deselectAll();\n this.filterImagesInformationHandler();\n });\n };\n\n private newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n private openSelectionCallBackHandler = (): void => {\n this.openSelectionCallback(this.selectedObjectsIds);\n };\n\n private deleteSelectionCallbackHandler = (): void => {\n this.deleteSelectionCallback(this.selectedObjectsIds);\n };\n\n private resetFilterHandler = () => {\n if (this.filterInitialData) {\n this.filterNameEl.value = this.filterInitialData.name;\n this.filterModuleEl.value = this.filterInitialData.module;\n this.filterSearchContentsEl.value = this.filterInitialData.searchContents;\n this.filterCategoryEl.value = this.filterInitialData.category;\n this.filterAllDescendantsEl.checked =\n this.filterInitialData.allDescendants;\n this.filterModifiedEl.checked = this.filterInitialData.modified;\n this.filterModifiedDateEl.value = this.filterInitialData.dateTime;\n this.filterAfterTypeEl.value = this.filterInitialData.after;\n this.filterUserEl.value = this.filterInitialData.user;\n this.filterStyleEl.value = this.filterInitialData.style;\n this.filterLanguageEl.value = this.filterInitialData.language;\n this.filterDensityEl.value = this.filterInitialData.density;\n this.filterLayerEl.value = this.filterInitialData.layer;\n }\n };\n\n private toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n private selectAll = (): void => {\n (this.chGridEl as any).selectAllRows();\n };\n\n private deselectAll = (): void => {\n (this.chGridEl as any).selectAllRows(false);\n };\n\n private listenChanges = (): void => {\n /* name */\n this.filterNameEl.addEventListener(\"change\", () => {\n this.getImages();\n });\n /* module/folder */\n this.filterModuleEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n /* search contents*/\n this.filterSearchContentsEl.addEventListener(\"change\", () => {\n this.getImages();\n });\n /* category */\n this.filterCategoryEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n /* (options) -> all descendants */\n this.filterAllDescendantsEl.addEventListener(\"change\", () => {\n this.getImages();\n });\n /* (options) -> modified */\n this.filterModifiedEl.addEventListener(\"change\", (e: any) => {\n this.filterModified = e.detail.value;\n this.getImages();\n });\n /* date/time */\n this.filterModifiedDateEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n /* after */\n this.filterAfterTypeEl.addEventListener(\"valueChanged\", () => {\n this.filterAfterType = this.filterAfterTypeEl.value;\n this.getImages();\n });\n /* user */\n this.filterUserEl.addEventListener(\"change\", () => {\n this.getImages();\n });\n /* style */\n this.filterStyleEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n /* language */\n this.filterLanguageEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n /* density */\n this.filterDensityEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n /* layer */\n this.filterLayerEl.addEventListener(\"valueChanged\", () => {\n this.getImages();\n });\n\n // for grid selection\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.loadImageItemsCallback(ev.detail.rowsId[0]).then(\n (items: ImageItemData[]) => {\n this.imagesSelectedItems = items;\n }\n );\n });\n this.chGridEl.addEventListener(\"rowDoubleClicked\", (): void => {\n this.openSelectionCallBackHandler();\n });\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n this.selectionObjectChangedCallback(this.selectedObjectsIds);\n });\n this.chGridEl.addEventListener(\n \"rowContextMenu\",\n (ev: CustomEvent<ChGridRowContextMenuEvent>): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.contextMenuCallback({\n selection: ev.detail.selectedRowsId,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n }\n );\n };\n\n private filterInputHandler = (e: CustomEvent<EventEmitter>) => {\n this.filterImagesInputValue = e.detail as unknown as string;\n this.filterImagesInformationHandler();\n };\n\n private filterImagesInformationHandler = () => {\n const filterValue = this.filterImagesInputValue.toLocaleLowerCase();\n this.filteredImages = this.images.filter(image => {\n const nameMatch = image.name.toLocaleLowerCase().includes(filterValue);\n const moduleMatch = image.module\n .toLocaleLowerCase()\n .includes(filterValue);\n const descriptionMatch = image.description\n .toLocaleLowerCase()\n .includes(filterValue);\n const modifiedDateMatch = image.modifiedDate\n .toString()\n .includes(filterValue);\n const lastUser = image.lastUser.toLocaleLowerCase().includes(filterValue);\n const importDateMatch =\n image.importDate && image.importDate.toString().includes(filterValue);\n\n return (\n nameMatch ||\n moduleMatch ||\n descriptionMatch ||\n modifiedDateMatch ||\n lastUser ||\n importDateMatch\n );\n });\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noContentGap\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"master-wrapper\">\n {this.renderFilter()}\n <div class=\"grid-images-container\">\n {this.renderImagesData()}\n {this.renderImages()}\n </div>\n </div>\n\n {/* select all button */}\n <gxg-button\n id=\"button-select-all\"\n type=\"outlined\"\n onClick={this.selectAll}\n part=\"gxg-button gxg-button--select-all\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnSelectAll}\n </gxg-button>\n\n {/* new file button*/}\n <gxg-button\n id=\"button-new-file\"\n type=\"primary-text-icon\"\n icon=\"objects/image\"\n onClick={this.newObjectCallbackHandler}\n part=\"gxg-button gxg-button--new-file\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnNew}\n </gxg-button>\n\n {/* matching objects */}\n <gxg-text\n class=\"align-end\"\n part=\"objects-matching\"\n slot=\"footer-start\"\n >\n {`${this.filteredImages.length} ${this._componentLocale.objCount.matching}`}\n </gxg-text>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type SelectionObjectCallback = (ids: string[]) => Promise<void>;\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\nexport type DeleteSelectionCallback = (ids: string[]) => Promise<void>;\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\nexport type ContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport type NewObjectCallback = () => Promise<void>;\nexport type LoadCallback = (filters: ImageFiltersData) => Promise<ImageData[]>;\nexport type LoadImageItemsCallback = (id: string) => Promise<ImageItemData[]>;\n\nexport type ImageFiltersData = {\n name?: string;\n searchContents?: string;\n category?: string;\n parent?: string;\n allDescendants?: boolean;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n style?: string;\n language?: string;\n density?: string;\n layer?: string;\n};\n\nexport type ImageData = {\n id: string;\n icon: string;\n name: string;\n description: string;\n parent: string;\n module: string;\n modifiedDate?: Date;\n lastUser?: string;\n importDate?: Date;\n};\n\nexport type ImageItemData = {\n id: string;\n name: string;\n url: string;\n};\n\ntype FilerInitialData = {\n name: string;\n module: EntityData;\n searchContents: string;\n category: string;\n allDescendants: boolean;\n modified: boolean;\n dateTime: DatePickerDate;\n after: string;\n user: string;\n style: string;\n language: string;\n density: string;\n layer: string;\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["formElementsErrorClassesDictionary","toggleErrorClass","hasError","element","elementTagName","tagName","toLowerCase","errorClass","classList","add","remove","validateControls","formSubmitResult","validatableControls","validatableControlsUpdated","Map","fieldErrors","forEach","fieldResult","fieldKey","key","fieldHasError","controlMapRecord","get","reference","set","Object","assign","message"],"sources":["src/common/form-validation.ts"],"sourcesContent":["import { FormSubmitResult, ConnectionResultData } from \"../common/types\";\nimport { FormComponent } from \"@genexus/gemini/dist/types/common/interfaces\";\n\n// formSubmitValidation will be deprecated. use \"validateControls\" instead.\nexport const formSubmitValidation = (\n result: FormSubmitResult | ConnectionResultData,\n ref: any\n) => {\n result.fieldErrors?.forEach(element => {\n const key = element.key;\n const message = element.message;\n const hasError = element.hasError;\n\n const reference: FormComponent = ref[`${key}El`];\n if (reference && hasError && message.trim()) {\n reference.validationStatus = \"error\";\n reference.validationMessage = message;\n } else if (reference && !hasError) {\n reference.validationStatus = \"indeterminate\";\n reference.validationMessage = null;\n }\n });\n};\n\n// TODO: Improve the way we mark components with error. We must not use error classes.\nconst formElementsErrorClassesDictionary = {\n \"ch-checkbox\": \"checkbox-error\",\n \"ch-combo-box-render\": \"combo-box-error\",\n \"ch-edit\": \"input-error\"\n} as const;\n\nconst toggleErrorClass = (hasError: boolean, element: HTMLElement) => {\n const elementTagName = element.tagName.toLowerCase();\n const errorClass =\n formElementsErrorClassesDictionary[\n elementTagName as keyof typeof formElementsErrorClassesDictionary\n ];\n if (hasError) {\n element.classList.add(errorClass);\n } else {\n element.classList.remove(errorClass);\n }\n};\n\nexport const validateControls = (\n formSubmitResult: FormSubmitResult,\n validatableControls: Map<string, ControlValidation>\n): Map<string, ControlValidation> => {\n const validatableControlsUpdated = new Map(validatableControls);\n formSubmitResult.fieldErrors.forEach(fieldResult => {\n const fieldKey = fieldResult.key;\n const fieldHasError = fieldResult.hasError;\n const controlMapRecord = validatableControlsUpdated.get(fieldKey);\n if (controlMapRecord?.reference) {\n // toggle class to add or remove error style\n toggleErrorClass(fieldHasError, controlMapRecord.reference);\n validatableControlsUpdated.set(fieldKey, {\n ...controlMapRecord,\n hasError: fieldHasError,\n message: fieldResult.message\n });\n }\n });\n // return validatableControls updated.\n return validatableControlsUpdated;\n};\n\nexport type ControlValidation = {\n reference: HTMLElement;\n hasError: boolean;\n message: string;\n};\n"],"mappings":";;AAyBA,MAAMA,IAAqC;EACzC,eAAe;EACf,uBAAuB;EACvB,WAAW;;;AAGb,MAAMC,mBAAmB,CAACC,GAAmBC;EAC3C,MAAMC,IAAiBD,EAAQE,QAAQC;EACvC,MAAMC,IACJP,EACEI;EAEJ,IAAIF,GAAU;IACZC,EAAQK,UAAUC,IAAIF;SACjB;IACLJ,EAAQK,UAAUE,OAAOH;;;;MAIhBI,mBAAmB,CAC9BC,GACAC;EAEA,MAAMC,IAA6B,IAAIC,IAAIF;EAC3CD,EAAiBI,YAAYC,SAAQC;IACnC,MAAMC,IAAWD,EAAYE;IAC7B,MAAMC,IAAgBH,EAAYhB;IAClC,MAAMoB,IAAmBR,EAA2BS,IAAIJ;IACxD,IAAIG,MAAgB,QAAhBA,WAAgB,aAAhBA,EAAkBE,WAAW;;MAE/BvB,iBAAiBoB,GAAeC,EAAiBE;MACjDV,EAA2BW,IAAIN,GAAQO,OAAAC,OAAAD,OAAAC,OAAA,IAClCL,IAAgB;QACnBpB,UAAUmB;QACVO,SAASV,EAAYU;;;;;IAK3B,OAAOd;AAA0B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["dataSelectorCss","CSS_BUNDLES","FILTER_ICON","getIconPath","category","name","colorType","GxIdeDataSelector","_GxIdeDataSelector_firstGridObjectId","set","this","_GxIdeDataSelector_loadItemsCallbackJustCalled","_GxIdeDataSelector_componentLocale","_GxIdeDataSelector_animateEmptyState","_GxIdeDataSelector_shortcutsSrc","getAssetPath","_GxIdeDataSelector_filterPatternEl","_GxIdeDataSelector_filterObjectEl","_GxIdeDataSelector_chShortcutsEl","_GxIdeDataSelector_chTabularGridObjectsEl","_GxIdeDataSelector_evaluateFirstRowSelection","__classPrivateFieldGet","selectRow","__classPrivateFieldSet","_GxIdeDataSelector_chGridKeyDownHandler","e","key","_GxIdeDataSelector_confirmCallbackHandler","call","stopPropagation","confirmCallback","selectedObjectsIds","_GxIdeDataSelector_editCallbackHandler","async","result","editCallback","_GxIdeDataSelector_refreshUIWithNewConfiguration","_GxIdeDataSelector_hostKeyPressHandler","_GxIdeDataSelector_objectsSelectionChangedHandler","event","detail","rowsId","_GxIdeDataSelector_newVariableCallbackHandler","response","newVariableCallback","objects","filters","pattern","_a","value","object","_c","_b","id","loading","loadItemsCallback","then","items","length","_GxIdeDataSelector_sortObjectsByName","_GxIdeDataSelector_renderFilter","h","class","htmlFor","filter","autoFocus","part","debounce","config","inputDebounce","onInput","ref","el","defaultModule","defaultValue","selectEntityCallback","selectObjectCallback","onValueChanged","_GxIdeDataSelector_renderObjects","gridIsEmpty","displayLoader","loader","data","rowSelectionMode","selectionType","onKeyDown","onSelectionChanged","undefined","settingable","size","tabularGrid","colSize","maxContent","tableHead","common","dataType","description","map","obj","rowid","onDblClick","src","type","loaderTitle","title","show","isAnimated","stateIconSrc","stateTitle","emptyState","_GxIdeDataSelector_renderEditButtons","newVariableButtonEnabled","editButtonEnabled","disabled","onClick","footer","btnNew","btnEdit","sort","a","b","nameA","toLowerCase","nameB","componentWillLoad","Locale","getComponentStrings","connectedCallback","componentDidLoad","focus","componentDidRender","suspendShortcuts","suspend","validate","isValid","render","okButtonEnabled","footerJustifySpaceBetween","Host","onKeyPress","model","cancelCallback","btnCancel","btnConfirm"],"sources":["src/components/data-selector/data-selector.scss?tag=gx-ide-data-selector&encapsulation=shadow","src/components/data-selector/data-selector.tsx"],"sourcesContent":["@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\"; // for the tabular-grid-cell-layout mixin\n\n:host {\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n overflow: auto;\n block-size: 100%;\n}\n\n.section {\n display: contents;\n}\n\n.header__field-group {\n display: grid;\n grid-template-columns: 1fr 1fr;\n}\n\n.tabular-grid {\n contain: size;\n}\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".data\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n\nch-tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\nch-tabular-grid-rowset-empty {\n // to make the loader be positioned relative to 'ch-tabular-grid-rowset-empty'\n position: relative;\n}\n","/* eslint-disable @stencil-community/own-props-must-be-private */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n getAssetPath,\n JSX\n} from \"@stencil/core\";\n\nimport { Locale } from \"../../common/locale\";\n\nimport { config } from \"../../common/config\";\nimport { EntityData } from \"../../common/types\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { TabularGridSelectionChangedEvent } from \"@genexus/chameleon-controls-library\";\n\n// Best performance bundle\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/edit\",\n \"components/tabular-grid\",\n \"components/icon\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\n\n@Component({\n tag: \"gx-ide-data-selector\",\n styleUrl: \"data-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/data-selector\"]\n})\nexport class GxIdeDataSelector {\n #firstGridObjectId: string; // used to select the first item after \"loadItemsCallback\"\n #loadItemsCallbackJustCalled: boolean = false; // used to select the first item after \"loadItemsCallback\"\n\n #componentLocale: any;\n #animateEmptyState: boolean = false;\n #shortcutsSrc = getAssetPath(`./gx-ide-assets/data-selector/shortcuts.json`);\n /* References needed to collect data */\n #filterPatternEl!: HTMLChEditElement;\n #filterObjectEl!: HTMLGxIdeEntitySelectorElement;\n #chShortcutsEl: HTMLChShortcutsElement;\n #chTabularGridObjectsEl: HTMLChTabularGridElement;\n\n @Element() el: HTMLGxIdeDataSelectorElement;\n\n /**\n * True if loadItemsCallback has been called and has not been resolved yet.\n */\n @State() loading: boolean = true;\n\n /**\n * The objects rendered in the table\n */\n @State() objects: ItemData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIds: 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 * Callback invoked when the user presses the 'OK' button\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: 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 presses the edit button. Receives the first\n * selected element id as a parameter.\n */\n @Prop() readonly editCallback: EditCallback;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadItemsCallback!: LoadItemsCallback;\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 user presses the 'New' button.\n */\n @Prop() readonly newVariableCallback: NewVariableCallback;\n\n /**\n * Callback invoked when the action is executed in the Object filter. It returns\n * the information of the selected object (id and name) or 'undefined' if it was\n * canceled.\n */\n @Prop() readonly selectObjectCallback: SelectObjectCallback;\n\n /**\n * Single if multiple object selection is not allowed. Default is multiple\n */\n @Prop() readonly selectionType: \"single\" | \"multiple\" = \"multiple\";\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n connectedCallback() {\n this.#refreshUIWithNewConfiguration();\n }\n\n componentDidLoad() {\n this.#filterPatternEl.focus();\n }\n\n componentDidRender() {\n this.#evaluateFirstRowSelection();\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 * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n /**\n * After items have been loaded and rendered, the first row should be selected.\n */\n #evaluateFirstRowSelection = () => {\n if (this.#loadItemsCallbackJustCalled) {\n this.#chTabularGridObjectsEl.selectRow(this.#firstGridObjectId);\n }\n this.#loadItemsCallbackJustCalled = false;\n };\n\n #chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.#confirmCallbackHandler(e);\n }\n };\n\n #confirmCallbackHandler = (e: MouseEvent | KeyboardEvent): void => {\n e.stopPropagation();\n this.confirmCallback(this.selectedObjectsIds);\n };\n\n #editCallbackHandler = async (e: MouseEvent): Promise<void> => {\n e.stopPropagation();\n if (this.selectedObjectsIds[0]) {\n const result = await this.editCallback(this.selectedObjectsIds[0]);\n if (result) {\n this.#refreshUIWithNewConfiguration();\n }\n }\n };\n\n #hostKeyPressHandler = (e: KeyboardEvent) => {\n // TODO : revise why this is necessary\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n #objectsSelectionChangedHandler = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n this.selectedObjectsIds = event.detail.rowsId;\n };\n\n #newVariableCallbackHandler = async () => {\n const response = await this.newVariableCallback();\n if (response) {\n this.#refreshUIWithNewConfiguration();\n }\n };\n #refreshUIWithNewConfiguration = (): void => {\n this.objects = [];\n const filters: FiltersData = {\n pattern: this.#filterPatternEl?.value,\n object: this.#filterObjectEl?.value?.id\n };\n this.loading = true;\n this.loadItemsCallback(filters).then((items: ItemData[]) => {\n if (items.length) {\n this.objects = this.#sortObjectsByName(items);\n this.#firstGridObjectId = this.objects[0].id;\n this.#loadItemsCallbackJustCalled = true;\n }\n this.selectedObjectsIds = [];\n this.loading = false;\n });\n };\n\n #renderFilter = (): Element[] => {\n return [\n <div class=\"header__field-group field-group\">\n <div class=\"field field-block pattern-field\">\n <label class=\"label\" htmlFor=\"filter-pattern\">\n {this.#componentLocale.filter.pattern}\n </label>\n <ch-edit\n autoFocus\n id=\"filter-pattern\"\n name=\"filter-pattern\"\n class=\"input pattern-input\"\n part=\"filter-pattern\"\n debounce={config.inputDebounce}\n onInput={this.#refreshUIWithNewConfiguration}\n ref={(el: HTMLChEditElement) =>\n (this.#filterPatternEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n <gx-ide-entity-selector\n id=\"object-selector\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectObjectCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#filterObjectEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"entity\"\n onValueChanged={this.#refreshUIWithNewConfiguration}\n ></gx-ide-entity-selector>\n </div>\n ];\n };\n\n #renderObjects = (): Element => {\n const gridIsEmpty = !this.objects.length;\n const displayLoader = this.loader && this.loading;\n if (!gridIsEmpty || displayLoader) {\n this.#animateEmptyState = true; // improve performance if is first render\n }\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"empty-result\": this.objects.length === 0,\n \"data\": true\n }}\n rowSelectionMode={this.selectionType}\n onKeyDown={this.#chGridKeyDownHandler}\n part=\"ch-grid-objects\"\n onSelectionChanged={\n this.objects.length ? this.#objectsSelectionChangedHandler : undefined\n }\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chTabularGridObjectsEl = el as HTMLChTabularGridElement)\n }\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.common}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.dataType}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.common}\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.common}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {!gridIsEmpty ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: ItemData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n onDblClick={this.#confirmCallbackHandler}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image\n src={\n obj.type === \"attribute\"\n ? \"objects/attribute\"\n : \"objects-parts/variables\"\n }\n class=\"icon-md\"\n ></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.dataType}\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-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n {displayLoader ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n isAnimated={this.#animateEmptyState}\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 #renderEditButtons = (): JSX.Element | null => {\n if (!this.editCallback && !this.newVariableCallback) {\n return null;\n }\n\n const newVariableButtonEnabled = this.newVariableCallback && !this.loading;\n const editButtonEnabled =\n this.editCallback && !this.loading && this.selectedObjectsIds.length;\n\n return (\n <div class=\"buttons-spacer\">\n {this.newVariableCallback ? (\n <button\n // New Variable Button\n class=\"button-secondary\"\n disabled={!newVariableButtonEnabled}\n part=\"button button-new\"\n type=\"button\"\n onClick={this.#newVariableCallbackHandler}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n ) : (\n []\n )}\n {this.editCallback ? (\n <button\n // Edit Button\n class=\"button-secondary\"\n disabled={!editButtonEnabled}\n part=\"button button-edit\"\n type=\"button\"\n onClick={editButtonEnabled && this.#editCallbackHandler}\n >\n {this.#componentLocale.footer.btnEdit}\n </button>\n ) : (\n []\n )}\n </div>\n );\n };\n\n #sortObjectsByName = (objects: ItemData[]): ItemData[] =>\n // TODO (make this a common helper function\n // and use it in other dialog grids that\n // require filter by name).\n 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 render() {\n const okButtonEnabled = !this.loading;\n const footerJustifySpaceBetween: boolean =\n !!this.newVariableCallback || !!this.editCallback;\n\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.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n\n <section class=\"section\">\n <header class=\"header control-header-with-border spacing-body-block-start spacing-body-inline\">\n {this.#renderFilter()}\n </header>\n {this.#renderObjects()}\n <footer\n class={{\n \"footer\": true,\n \"control-footer-with-border\": true,\n \"control-footer-space-between\": footerJustifySpaceBetween,\n \"spacing-body-inline\": true,\n \"spacing-body-block-end\": true\n }}\n >\n {this.#renderEditButtons()}\n <div class=\"buttons-spacer\">\n <button\n // Cancel Button\n class=\"button-secondary\"\n part=\"button button-cancel\"\n type=\"button\"\n onClick={this.cancelCallback}\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // Confirm Button\n class=\"button-primary\"\n part=\"button button-ok\"\n disabled={!okButtonEnabled}\n type=\"button\"\n onClick={okButtonEnabled && this.#confirmCallbackHandler}\n >\n {this.#componentLocale.footer.btnConfirm}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type NewVariableCallback = () => Promise<boolean> | undefined;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectObjectCallback = () => Promise<EntityData | undefined>;\n\nexport type EditCallback = (id: string) => Promise<boolean> | undefined;\n\nexport type ConfirmCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadItemsCallback = (filters: FiltersData) => Promise<ItemData[]>;\n\nexport type FiltersData = {\n pattern?: string;\n object?: string;\n};\n\nexport type ItemData = {\n type: ItemType;\n id: string;\n name: string;\n dataType: string;\n description: string;\n};\n\nexport type ItemType = \"variable\" | \"attribute\";\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["gamInstallationSettingsCss","CSS_BUNDLES","GxIdeGamInstallationSettings","_GxIdeGamInstallationSettings__componentLocale","set","this","_GxIdeGamInstallationSettings_futureUpgradesComboEl","_GxIdeGamInstallationSettings_panelsCheckboxEl","_GxIdeGamInstallationSettings_webPanelsCheckboxEl","_GxIdeGamInstallationSettings_cancelCallbackHandler","cancelCallback","_GxIdeGamInstallationSettings_repairCallbackHandler","async","saveCallback","data","importWebPanels","__classPrivateFieldGet","value","importPanels","futureUpgrades","repairCallback","_GxIdeGamInstallationSettings_renderFilters","h","class","role","filters","filtersHeading","id","frontEndObjects","checkedValue","_a","defaultConfiguration","undefined","caption","webPanelsCheckbox","ref","el","__classPrivateFieldSet","part","canSelectPanels","panelsCheckbox","disabled","htmlFor","futureUpgradesComboLabel","model","manageFutureUpgrades","installAutomatically","promptMe","neverUpdate","_GxIdeGamInstallationSettings_renderDescription","configurationType","header","headerTextInstallation","firstSentence","secondSentence","thirdSentence","headerTextUpdate","_GxIdeGamInstallationSettings_saveCallbackHandler","componentWillLoad","Locale","getComponentStrings","render","Host","call","onClick"],"sources":["src/components/gam-installation-settings/gam-installation-settings.scss?tag=gx-ide-gam-installation-settings&encapsulation=shadow","src/components/gam-installation-settings/gam-installation-settings.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n height: 100%;\n}\n\n.control-header {\n margin-block-end: var(--mer-spacing--md);\n}\n\n.main-content {\n grid-auto-rows: max-content;\n}\n\n.footer-info {\n margin-bottom: var(--mer-spacing--sm);\n}\n\n.description {\n display: grid;\n grid-auto-rows: max-content;\n gap: 8px;\n}\n","/* eslint-disable @stencil-community/own-props-must-be-private */\n/* STENCIL IMPORTS */\nimport { Component, Host, h, Prop, Element } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/combo-box\",\n \"components/edit\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\"\n];\n@Component({\n tag: \"gx-ide-gam-installation-settings\",\n styleUrl: \"gam-installation-settings.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/gam-installation-settings\"]\n})\nexport class GxIdeGamInstallationSettings {\n /**\n * The component hard-coded strings translations.\n */\n #_componentLocale: any;\n\n @Element() el: HTMLGxIdeGamInstallationSettingsElement;\n\n #futureUpgradesComboEl!: HTMLChComboBoxRenderElement;\n #panelsCheckboxEl!: HTMLChCheckboxElement;\n #webPanelsCheckboxEl!: HTMLChCheckboxElement;\n\n /**\n * Callback invoked when the user wants to cancel the exportation process\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Determines 'Panels' checkbox activation, enabled only if an SD generator is in the KB.\n * Otherwise, the checkbox is disabled.\n */\n @Prop() readonly canSelectPanels: boolean = false;\n\n /**\n * Specifies the configuration type to be used\n */\n @Prop() readonly configurationType: \"installation\" | \"update\" =\n \"installation\";\n\n /**\n * Defines default config for initializing the dialog with stored gam config data\n */\n @Prop() readonly defaultConfiguration: GamConfigData | undefined = {\n importWebPanels: true,\n importPanels: false,\n futureUpgrades: \"prompt\"\n };\n\n /**\n * Callback invoked when the user press repair button\n */\n @Prop() readonly repairCallback: RepairCallback;\n\n /**\n * Callback invoked when the user initiates the export process\n */\n @Prop() readonly saveCallback: SaveCallback;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #cancelCallbackHandler = () => {\n this.cancelCallback();\n };\n\n #repairCallbackHandler = async () => {\n if (this.saveCallback) {\n const data: GamConfigData = {\n importWebPanels: !!this.#webPanelsCheckboxEl.value,\n importPanels: !!this.#panelsCheckboxEl.value,\n futureUpgrades: this.#futureUpgradesComboEl.value\n ? (this.#futureUpgradesComboEl.value as ComboValues)\n : null\n };\n await this.repairCallback(data);\n }\n };\n\n #renderFilters = () => {\n return (\n <div\n class=\"field-group\"\n role=\"region\"\n aria-label={this.#_componentLocale.filters.filtersHeading}\n >\n <h5 class=\"subtitle-regular-s margin-block-end-s\">\n {this.#_componentLocale.filters.filtersHeading}\n </h5>\n\n <div class=\"filters__wrapper\">\n <div\n class=\"field-group\"\n role=\"group\"\n aria-labelledby=\"frontend-objects-label\"\n >\n <div class=\"field field-block\">\n <label id=\"frontend-objects-label\" class=\"label\">\n {this.#_componentLocale.filters.frontEndObjects}\n </label>\n\n <div class=\"field-group-inline\">\n <ch-checkbox\n class=\"checkbox\"\n checkedValue=\"webPanels\"\n value={\n this.defaultConfiguration?.importWebPanels\n ? \"webPanels\"\n : undefined\n }\n caption={this.#_componentLocale.filters.webPanelsCheckbox}\n ref={(el: HTMLChCheckboxElement) =>\n (this.#webPanelsCheckboxEl = el as HTMLChCheckboxElement)\n }\n part=\"web-panels-checkbox\"\n ></ch-checkbox>\n\n <ch-checkbox\n class=\"checkbox\"\n checkedValue=\"panels\"\n value={\n this.defaultConfiguration.importPanels &&\n this.canSelectPanels\n ? \"panels\"\n : undefined\n }\n caption={this.#_componentLocale.filters.panelsCheckbox}\n disabled={!this.canSelectPanels}\n ref={(el: HTMLChCheckboxElement) =>\n (this.#panelsCheckboxEl = el as HTMLChCheckboxElement)\n }\n part=\"panels-checkbox\"\n ></ch-checkbox>\n </div>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"future-upgrades-combo\">\n {this.#_componentLocale.filters.futureUpgradesComboLabel}\n </label>\n <ch-combo-box-render\n id=\"future-upgrades-combo\"\n class=\"combo-box\"\n value={this.defaultConfiguration.futureUpgrades}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#futureUpgradesComboEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={[\n {\n value: \"automatic\",\n caption:\n this.#_componentLocale.manageFutureUpgrades\n .installAutomatically\n },\n {\n value: \"prompt\",\n caption:\n this.#_componentLocale.manageFutureUpgrades.promptMe\n },\n {\n value: \"never\",\n caption:\n this.#_componentLocale.manageFutureUpgrades.neverUpdate\n }\n ]}\n part=\"future-upgrades-combo\"\n ></ch-combo-box-render>\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n #renderDescription = () => {\n return (\n <div class=\"description\">\n {this.configurationType === \"installation\"\n ? [\n <p class=\"text-body\">\n {\n this.#_componentLocale.header.headerTextInstallation\n .firstSentence\n }\n </p>,\n <p class=\"text-body\">\n {\n this.#_componentLocale.header.headerTextInstallation\n .secondSentence\n }\n </p>,\n <p class=\"text-body\">\n {\n this.#_componentLocale.header.headerTextInstallation\n .thirdSentence\n }\n </p>\n ]\n : [\n <p class=\"text-body\">\n {this.#_componentLocale.header.headerTextUpdate.firstSentence}\n </p>,\n <p class=\"text-body\">\n {this.#_componentLocale.header.headerTextUpdate.secondSentence}\n </p>\n ]}\n {/* header text */}\n </div>\n );\n };\n\n #saveCallbackHandler = async () => {\n if (this.saveCallback) {\n const data: GamConfigData = {\n importWebPanels: !!this.#webPanelsCheckboxEl.value,\n importPanels: !!this.#panelsCheckboxEl.value,\n futureUpgrades: this.#futureUpgradesComboEl.value\n ? (this.#futureUpgradesComboEl.value as ComboValues)\n : null\n };\n await this.saveCallback(data);\n }\n };\n\n render() {\n return (\n <Host class=\"widget spacing-body\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <div class=\"control-header control-header-with-border\">\n {this.#renderDescription()}\n </div>\n <div class=\"main-content field-group\">{this.#renderFilters()}</div>\n\n <div class=\"footer\">\n {this.configurationType === \"update\" && (\n <div class=\"footer-info\">\n <p>Use Repair to import GAM components again</p>\n </div>\n )}\n\n <div class=\"control-footer-with-border control-footer-space-between\">\n {this.configurationType === \"update\" && (\n <button\n id=\"repair-button\"\n class=\"button-secondary\"\n onClick={this.#repairCallbackHandler}\n part=\"button button--repair\"\n >\n Repair\n </button>\n )}\n <div class=\"buttons-spacer\">\n <button\n id=\"cancel-button\"\n class=\"button-secondary\"\n onClick={this.#cancelCallbackHandler}\n part=\"button button--cancel\"\n >\n Cancel\n </button>\n <button\n id=\"confirm-button\"\n class=\"button-primary\"\n onClick={this.#saveCallbackHandler}\n part=\"button button--confirm\"\n >\n Save\n </button>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n\nexport type CancelCallback = () => Promise<void>;\ntype ComboValues = \"automatic\" | \"prompt\" | \"never\";\nexport type GamConfigData = {\n importWebPanels: boolean;\n importPanels: boolean;\n futureUpgrades: \"never\" | \"prompt\" | \"automatic\";\n};\n\nexport type RepairCallback = (config: GamConfigData) => Promise<void>;\nexport type SaveCallback = (data: GamConfigData) => Promise<void>;\n"],"mappings":";;;;AAAA,MAAMA,IAA6B;;;;;;;;;;;;;;;;;ACQnC,MAAMC,IAA8B,EAClC,qBACA,qBACA,uBACA,wBACA,mBACA,cACA,gBACA;;MAQWC,IAA4B;;;;;eAIvCC,EAAAC,IAAAC,WAAA;IAIAC,EAAAF,IAAAC,WAAA;IACAE,EAAAH,IAAAC,WAAA;IACAG,EAAAJ,IAAAC,WAAA;IA0CAI,EAAAL,IAAAC,OAAyB;MACvBA,KAAKK;AAAgB;IAGvBC,EAAAP,IAAAC,OAAyBO;MACvB,IAAIP,KAAKQ,cAAc;QACrB,MAAMC,IAAsB;UAC1BC,mBAAmBC,EAAAX,MAAIG,GAAA,KAAsBS;UAC7CC,gBAAgBF,EAAAX,MAAIE,GAAA,KAAmBU;UACvCE,gBAAgBH,EAAAX,MAAIC,GAAA,KAAwBW,QACvCD,EAAAX,MAAIC,GAAA,KAAwBW,QAC7B;;cAEAZ,KAAKe,eAAeN;;;IAI9BO,EAAAjB,IAAAC,OAAiB;;MACf,OACEiB,EAAA;QACEC,OAAM;QACNC,MAAK;QAAQ,cACDR,EAAAX,MAAIF,GAAA,KAAmBsB,QAAQC;SAE3CJ,EAAA;QAAIC,OAAM;SACPP,EAAAX,MAAIF,GAAA,KAAmBsB,QAAQC,iBAGlCJ,EAAA;QAAKC,OAAM;SACTD,EAAA;QACEC,OAAM;QACNC,MAAK;QAAO,mBACI;SAEhBF,EAAA;QAAKC,OAAM;SACTD,EAAA;QAAOK,IAAG;QAAyBJ,OAAM;SACtCP,EAAAX,MAAIF,GAAA,KAAmBsB,QAAQG,kBAGlCN,EAAA;QAAKC,OAAM;SACTD,EAAA;QACEC,OAAM;QACNM,cAAa;QACbZ,SACEa,IAAAzB,KAAK0B,0BAAoB,QAAAD,WAAA,aAAAA,EAAEf,mBACvB,cACAiB;QAENC,SAASjB,EAAAX,MAAIF,GAAA,KAAmBsB,QAAQS;QACxCC,KAAMC,KACHC,EAAAhC,MAAIG,GAAwB4B,GAA2B;QAE1DE,MAAK;UAGPhB,EAAA;QACEC,OAAM;QACNM,cAAa;QACbZ,OACEZ,KAAK0B,qBAAqBb,gBAC1Bb,KAAKkC,kBACD,WACAP;QAENC,SAASjB,EAAAX,MAAIF,GAAA,KAAmBsB,QAAQe;QACxCC,WAAWpC,KAAKkC;QAChBJ,KAAMC,KACHC,EAAAhC,MAAIE,GAAqB6B,GAA2B;QAEvDE,MAAK;YAKXhB,EAAA;QAAKC,OAAM;SACTD,EAAA;QAAOC,OAAM;QAAQmB,SAAQ;SAC1B1B,EAAAX,MAAIF,GAAA,KAAmBsB,QAAQkB,2BAElCrB,EAAA;QACEK,IAAG;QACHJ,OAAM;QACNN,OAAOZ,KAAK0B,qBAAqBZ;QACjCgB,KAAMC,KACHC,EAAAhC,MAAIC,GACH8B,GAAiC;QAErCQ,OAAO,EACL;UACE3B,OAAO;UACPgB,SACEjB,EAAAX,MAAIF,GAAA,KAAmB0C,qBACpBC;WAEP;UACE7B,OAAO;UACPgB,SACEjB,EAAAX,MAAIF,GAAA,KAAmB0C,qBAAqBE;WAEhD;UACE9B,OAAO;UACPgB,SACEjB,EAAAX,MAAIF,GAAA,KAAmB0C,qBAAqBG;;QAGlDV,MAAK;;AAKT;IAIVW,EAAA7C,IAAAC,OAAqB,MAEjBiB,EAAA;MAAKC,OAAM;OACRlB,KAAK6C,sBAAsB,iBACxB,EACE5B,EAAA;MAAGC,OAAM;OAELP,EAAAX,MAAIF,GAAA,KAAmBgD,OAAOC,uBAC3BC,gBAGP/B,EAAA;MAAGC,OAAM;OAELP,EAAAX,MAAIF,GAAA,KAAmBgD,OAAOC,uBAC3BE,iBAGPhC,EAAA;MAAGC,OAAM;OAELP,EAAAX,MAAIF,GAAA,KAAmBgD,OAAOC,uBAC3BG,mBAIT,EACEjC,EAAA;MAAGC,OAAM;OACNP,EAAAX,MAAIF,GAAA,KAAmBgD,OAAOK,iBAAiBH,gBAElD/B,EAAA;MAAGC,OAAM;OACNP,EAAAX,MAAIF,GAAA,KAAmBgD,OAAOK,iBAAiBF;IAQ9DG,EAAArD,IAAAC,OAAuBO;MACrB,IAAIP,KAAKQ,cAAc;QACrB,MAAMC,IAAsB;UAC1BC,mBAAmBC,EAAAX,MAAIG,GAAA,KAAsBS;UAC7CC,gBAAgBF,EAAAX,MAAIE,GAAA,KAAmBU;UACvCE,gBAAgBH,EAAAX,MAAIC,GAAA,KAAwBW,QACvCD,EAAAX,MAAIC,GAAA,KAAwBW,QAC7B;;cAEAZ,KAAKQ,aAAaC;;;;2BA9LgB;6BAM1C;gCAKiE;MACjEC,iBAAiB;MACjBG,cAAc;MACdC,gBAAgB;;;;;EAalB,uBAAMuC;IACJrB,EAAAhC,MAAIF,SAA2BwD,EAAOC,oBAAoBvD,KAAK+B,KAAG;;EAsKpE,MAAAyB;IACE,OACEvC,EAACwC,GAAI;MAACvC,OAAM;OACVD,EAAA;MAAUsB,OAAO3C;QAEjBqB,EAAA;MAAKC,OAAM;OACRP,EAAAX,MAAI4C,GAAA,KAAmBc,KAAvB1D,QAEHiB,EAAA;MAAKC,OAAM;OAA4BP,EAAAX,MAAIgB,GAAA,KAAe0C,KAAnB1D,QAEvCiB,EAAA;MAAKC,OAAM;OACRlB,KAAK6C,sBAAsB,YAC1B5B,EAAA;MAAKC,OAAM;OACTD,EAAA,0DAIJA,EAAA;MAAKC,OAAM;OACRlB,KAAK6C,sBAAsB,YAC1B5B,EAAA;MACEK,IAAG;MACHJ,OAAM;MACNyC,SAAShD,EAAAX,MAAIM,GAAA;MACb2B,MAAK;OAAuB,WAKhChB,EAAA;MAAKC,OAAM;OACTD,EAAA;MACEK,IAAG;MACHJ,OAAM;MACNyC,SAAShD,EAAAX,MAAII,GAAA;MACb6B,MAAK;OAAuB,WAI9BhB,EAAA;MACEK,IAAG;MACHJ,OAAM;MACNyC,SAAShD,EAAAX,MAAIoD,GAAA;MACbnB,MAAK;OAAwB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["ASSETS_FOLDER","COMPONENT_PREFIX","DEFAULT_LANGUAGE","LANGS_FOLDER","LANG_PREFIX","LANG_EXTENSION","Locale","getLang","lang","_b","_a","document","getElementsByTagName","getAttribute","valueOf","getStrings","component","folder","path","Promise","resolve","reject","fetch","then","langFile","ok","json","getComponentStrings","element","tagName","toLowerCase","replace","format","text","parms","ret","forEach","parm","indexOf","commonAssetsPath"],"sources":["src/common/locale.ts"],"sourcesContent":["import { Build } from \"@stencil/core\";\n\nconst ASSETS_FOLDER = \"gx-ide-assets/\";\nconst COMPONENT_PREFIX = \"gx-ide-\";\nconst DEFAULT_LANGUAGE = \"en\";\nconst LANGS_FOLDER = \"langs/\";\nconst LANG_PREFIX = \".lang.\";\nconst LANG_EXTENSION = \".json\";\n\nexport class Locale {\n public static commonAssetsPath = \"\";\n\n private static getLang(): string {\n const lang =\n document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf() ?? DEFAULT_LANGUAGE;\n\n // Normalize en-US\n return lang === \"en-US\" ? \"en\" : lang;\n }\n\n private static getStrings(\n component: string,\n lang: string,\n folder: string\n ): Promise<any> {\n if (folder === \"\") {\n folder = `${component}/`;\n }\n const path =\n `${ASSETS_FOLDER}${folder}${LANGS_FOLDER}${component}${LANG_PREFIX}${lang}${LANG_EXTENSION}` as const;\n\n return new Promise((resolve, reject): void => {\n fetch(Build.isTesting ? \"/build/\" + path : path).then(langFile => {\n if (langFile.ok) {\n resolve(langFile.json());\n } else {\n reject();\n }\n }, reject);\n });\n }\n\n public static async getComponentStrings(\n element: HTMLElement,\n folder = \"\",\n component = \"\"\n ): Promise<any> {\n if (component === \"\") {\n component = element.tagName.toLowerCase().replace(COMPONENT_PREFIX, \"\");\n }\n const lang = Locale.getLang();\n return await Locale.getStrings(component, lang, folder);\n }\n\n public static format(text: string, parms: string[]): string {\n let ret: string = text;\n parms.forEach(parm => {\n ret = ret.replace(`{${parms.indexOf(parm)}}`, parm);\n });\n return ret;\n }\n}\n"],"mappings":"AAEA,MAAMA,IAAgB;;AACtB,MAAMC,IAAmB;;AACzB,MAAMC,IAAmB;;AACzB,MAAMC,IAAe;;AACrB,MAAMC,IAAc;;AACpB,MAAMC,IAAiB;;MAEVC;EAGH,cAAOC;;IACb,MAAMC,KACJC,KAAAC,IAAAC,SACGC,qBAAqB,QAAQ,GAC7BC,aAAa,aAAO,QAAAH,WAAA,aAAAA,EACnBI,eAAS,QAAAL,WAAA,IAAAA,IAAIP;;QAGnB,OAAOM,MAAS,UAAU,OAAOA;;EAG3B,iBAAOO,CACbC,GACAR,GACAS;IAEA,IAAIA,MAAW,IAAI;MACjBA,IAAS,GAAGD;;IAEd,MAAME,IACJ,GAAGlB,IAAgBiB,IAASd,IAAea,IAAYZ,IAAcI,IAAOH;IAE9E,OAAO,IAAIc,SAAQ,CAACC,GAASC;MAC3BC,MAA2CJ,GAAMK,MAAKC;QACpD,IAAIA,EAASC,IAAI;UACfL,EAAQI,EAASE;eACZ;UACLL;;UAEDA;AAAO;;EAIP,gCAAaM,CAClBC,GACAX,IAAS,IACTD,IAAY;IAEZ,IAAIA,MAAc,IAAI;MACpBA,IAAYY,EAAQC,QAAQC,cAAcC,QAAQ9B,GAAkB;;IAEtE,MAAMO,IAAOF,EAAOC;IACpB,aAAaD,EAAOS,WAAWC,GAAWR,GAAMS;;EAG3C,aAAOe,CAAOC,GAAcC;IACjC,IAAIC,IAAcF;IAClBC,EAAME,SAAQC;MACZF,IAAMA,EAAIJ,QAAQ,IAAIG,EAAMI,QAAQD,OAAUA;AAAK;IAErD,OAAOF;;;;AApDK7B,EAAAiC,mBAAmB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["directorySelectorCss","GxIdeDirectorySelector","this","defaultIcon","evaluateLabelPosition","label","labelPosition","centerLabel","btnSelectClickHandler","selectDirectoryCallback","then","result","value","valueChangedHandler","e","detail","buttonSelectMouseEnterHandler","icon","buttonSelectMouseLeaveHandler","buttonSelectLabel","componentWillLoad","render","h","Host","center","class","part","onValueChanged","onClick","_a","accessibilityLabels","type","disabled","onMouseEnter","onMouseLeave"],"sources":["src/components/_helpers/directory-selector/directory-selector.scss?tag=gx-ide-directory-selector&encapsulation=shadow","src/components/_helpers/directory-selector/directory-selector.tsx"],"sourcesContent":["@import \"../../../../node_modules/@genexus/gemini/dist/collection/globals/mixins.scss\";\n\n:host {\n display: flex;\n flex-direction: column;\n\n .container {\n display: flex;\n flex-direction: column;\n gap: 30px;\n }\n /*label*/\n label {\n font-size: 14px;\n }\n /*wrapper*/\n .wrapper {\n display: inline-flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n }\n}\n/*label position*/\n:host([label-position=\"start\"]) {\n flex-direction: row;\n .wrapper {\n flex: 1;\n }\n}\n","/* STENCIL IMPORTS */\nimport { Component, Host, h, Prop, State } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\n\n@Component({\n tag: \"gx-ide-directory-selector\",\n styleUrl: \"directory-selector.scss\",\n shadow: true\n})\nexport class GxIdeDirectorySelector {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES | WATCH'S //\n\n private defaultIcon = \"objects/folder\";\n\n // 2. REFERENCE TO ELEMENTS //\n\n // 3.STATE() VARIABLES //\n\n @State() icon = this.defaultIcon;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * This property provides the user a way to define custom aria-label descriptions.\n */\n @Prop() readonly accessibilityLabels: DirectorySelectorLabels = {\n buttonSelectLabel: \"displays the directory selector\"\n };\n\n /**\n * The label associated with the input (optional)\n */\n @Prop() readonly label?: string;\n\n /**\n * The label position\n */\n @Prop({ reflect: true }) readonly labelPosition?: LabelPosition = \"start\";\n\n /**\n * Centers the label\n */\n @Prop({ mutable: true }) centerLabel = true;\n\n /**\n * The label width\n */\n @Prop() readonly labelWidth: string;\n\n /**\n * Callback that will be called when the user presses the action button. Returns the new value (directory path) assigned to the component.\n */\n @Prop() readonly selectDirectoryCallback: () => Promise<string>;\n\n /**\n * Value currently assigned.\n */\n @Prop({ mutable: true }) value: string;\n\n // 5.EVENTS (EMIT) //\n\n // 6.METHODS //\n\n componentWillLoad() {\n this.evaluateLabelPosition();\n }\n\n private evaluateLabelPosition = (): void => {\n if (this.label && this.labelPosition === \"above\") {\n this.centerLabel = false;\n }\n };\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private btnSelectClickHandler = () => {\n this.selectDirectoryCallback &&\n this.selectDirectoryCallback().then(result => {\n if (result) {\n this.value = result;\n } else {\n // to be defined\n }\n });\n };\n\n private valueChangedHandler = (e: CustomEvent<string>) => {\n this.value = e.detail;\n };\n\n private buttonSelectMouseEnterHandler = (): void => {\n this.icon = \"objects/folder-open\";\n };\n\n private buttonSelectMouseLeaveHandler = (): void => {\n this.icon = this.defaultIcon;\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host>\n {this.label ? (\n <gxg-label\n labelPosition={this.labelPosition}\n center={this.centerLabel}\n >\n {this.label}\n </gxg-label>\n ) : null}\n <div class=\"wrapper\">\n <gxg-form-text\n part=\"input\"\n value={this.value}\n onValueChanged={this.valueChangedHandler}\n ></gxg-form-text>\n <gxg-button\n part=\"button-select\"\n onClick={this.btnSelectClickHandler}\n aria-label={this.accessibilityLabels?.buttonSelectLabel}\n type=\"secondary-icon-only\"\n icon={this.icon}\n disabled={!this.selectDirectoryCallback}\n onMouseEnter={this.buttonSelectMouseEnterHandler}\n onMouseLeave={this.buttonSelectMouseLeaveHandler}\n ></gxg-button>\n </div>\n </Host>\n );\n }\n}\n\nexport type DirectorySelectorLabels = {\n buttonSelectLabel: string;\n};\nexport type LabelPosition = \"start\" | \"above\";\n"],"mappings":";;AAAA,MAAMA,IAAuB;;MCUhBC,IAAsB;;;;;;;;;;;;;;;;;QAiBzBC,KAAAC,cAAc;IAuDdD,KAAAE,wBAAwB;MAC9B,IAAIF,KAAKG,SAASH,KAAKI,kBAAkB,SAAS;QAChDJ,KAAKK,cAAc;;;;;;QAUfL,KAAAM,wBAAwB;MAC9BN,KAAKO,2BACHP,KAAKO,0BAA0BC,MAAKC;QAClC,IAAIA,GAAQ;UACVT,KAAKU,QAAQD;;;AAIf;IAGET,KAAAW,sBAAuBC;MAC7BZ,KAAKU,QAAQE,EAAEC;AAAM;IAGfb,KAAAc,gCAAgC;MACtCd,KAAKe,OAAO;AAAqB;IAG3Bf,KAAAgB,gCAAgC;MACtChB,KAAKe,OAAOf,KAAKC;AAAW;gBAjFdD,KAAKC;+BAO2C;MAC9DgB,mBAAmB;;;yBAW6C;uBAK3B;;;;;;;EAqBvC,iBAAAC;IACElB,KAAKE;;;EAwCP,MAAAiB;;IACE,OACEC,EAACC,GAAI,MACFrB,KAAKG,QACJiB,EAAA;MACEhB,eAAeJ,KAAKI;MACpBkB,QAAQtB,KAAKK;OAEZL,KAAKG,SAEN,MACJiB,EAAA;MAAKG,OAAM;OACTH,EAAA;MACEI,MAAK;MACLd,OAAOV,KAAKU;MACZe,gBAAgBzB,KAAKW;QAEvBS,EAAA;MACEI,MAAK;MACLE,SAAS1B,KAAKM;MAAqB,eACvBqB,IAAA3B,KAAK4B,yBAAmB,QAAAD,WAAA,aAAAA,EAAEV;MACtCY,MAAK;MACLd,MAAMf,KAAKe;MACXe,WAAW9B,KAAKO;MAChBwB,cAAc/B,KAAKc;MACnBkB,cAAchC,KAAKgB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["bpmTimerDurationCss","GxIdeBpmTimerDuration","this","renderedFirstTime","confirmCallbackHandler","async","confirmCallback","data","years","parseInt","yearsEl","value","months","monthsEl","days","daysEl","hours","hoursEl","minutes","minutesEl","seconds","secondsEl","componentWillLoad","_componentLocale","Locale","getComponentStrings","el","componentDidRender","componentDidRenderFirstTime","emit","componentName","render","h","Host","class","containerTitle","displayTitle","slimmerFooter","config","gxIdeContainer","htmlFor","controls","type","id","_a","duration","toString","ref","_b","_c","_d","_e","_f","onClick","ok","cancelCallback","cancel"],"sources":["src/components/bpm/timer-duration/bpm-timer-duration.scss?tag=gx-ide-bpm-timer-duration&encapsulation=shadow","src/components/bpm/timer-duration/bpm-timer-duration.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../global/temporary-tokens-chameleon.scss\";\n\n:host {\n display: block;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { config } from \"../../../common/config\";\nimport { Locale } from \"../../../common/locale\";\n\n@Component({\n tag: \"gx-ide-bpm-timer-duration\",\n styleUrl: \"bpm-timer-duration.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-timer-duration\"]\n})\nexport class GxIdeBpmTimerDuration {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmTimerDurationElement;\n\n private yearsEl!: HTMLInputElement;\n private monthsEl!: HTMLInputElement;\n private daysEl!: HTMLInputElement;\n private hoursEl!: HTMLInputElement;\n private minutesEl!: HTMLInputElement;\n private secondsEl!: HTMLInputElement;\n\n // 3.STATE() VARIABLES //\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Current value for timer.\n */\n @Prop() readonly duration?: TimerDuration;\n\n /**\n * Callback invoked when user confirms application declaration, (OK Button)\n */\n @Prop() readonly confirmCallback: (data: TimerDuration) => Promise<void>;\n\n /**\n * Callback invoked when user cancels application declaration */\n @Prop() readonly cancelCallback: () => Promise<void>;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private confirmCallbackHandler = async () => {\n if (this.confirmCallback) {\n const data: TimerDuration = {\n years: parseInt(this.yearsEl.value),\n months: parseInt(this.monthsEl.value),\n days: parseInt(this.daysEl.value),\n hours: parseInt(this.hoursEl.value),\n minutes: parseInt(this.minutesEl.value),\n seconds: parseInt(this.secondsEl.value)\n };\n\n await this.confirmCallback(data);\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"control-wrapper control-wrapper--vertical\">\n <label htmlFor=\"years\">\n {this._componentLocale.controls.years}\n </label>\n <input\n type=\"number\"\n id=\"years\"\n class=\"input-text input-text--full-width\"\n value={this.duration?.years.toString()}\n ref={el => (this.yearsEl = el as HTMLInputElement)}\n />\n </div>\n\n <div class=\"control-wrapper control-wrapper--vertical\">\n <label htmlFor=\"months\">\n {this._componentLocale.controls.months}\n </label>\n <input\n type=\"number\"\n id=\"months\"\n class=\"input-text input-text--full-width\"\n value={this.duration?.months.toString()}\n ref={el => (this.monthsEl = el as HTMLInputElement)}\n />\n </div>\n\n <div class=\"control-wrapper control-wrapper--vertical\">\n <label htmlFor=\"days\">\n {this._componentLocale.controls.days}\n </label>\n <input\n type=\"number\"\n id=\"days\"\n class=\"input-text input-text--full-width\"\n value={this.duration?.days.toString()}\n ref={el => (this.daysEl = el as HTMLInputElement)}\n />\n </div>\n\n <div class=\"control-wrapper control-wrapper--vertical\">\n <label htmlFor=\"hours\">\n {this._componentLocale.controls.hours}\n </label>\n <input\n type=\"number\"\n id=\"hours\"\n class=\"input-text input-text--full-width\"\n value={this.duration?.hours.toString()}\n ref={el => (this.hoursEl = el as HTMLInputElement)}\n />\n </div>\n\n <div class=\"control-wrapper control-wrapper--vertical\">\n <label htmlFor=\"minutes\">\n {this._componentLocale.controls.minutes}\n </label>\n <input\n type=\"number\"\n id=\"minutes\"\n class=\"input-text input-text--full-width\"\n value={this.duration?.minutes.toString()}\n ref={el => (this.minutesEl = el as HTMLInputElement)}\n />\n </div>\n\n <div class=\"control-wrapper control-wrapper--vertical\">\n <label htmlFor=\"seconds\">\n {this._componentLocale.controls.seconds}\n </label>\n <input\n type=\"number\"\n id=\"seconds\"\n class=\"input-text input-text--full-width\"\n value={this.duration?.seconds.toString()}\n ref={el => (this.secondsEl = el as HTMLInputElement)}\n />\n </div>\n\n <div class=\"controls-wrapper\">\n <button onClick={this.confirmCallbackHandler}>\n {this._componentLocale.controls.ok}\n </button>\n <button onClick={this.cancelCallback}>\n {this._componentLocale.controls.cancel}\n </button>\n </div>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type TimerDuration = {\n years: number;\n months: number;\n days: number;\n hours: number;\n minutes: number;\n seconds: number;\n};\n"],"mappings":"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"}
|