@genexus/genexus-ide-ui 1.1.49 → 1.1.50
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/{form-validation-178cf461.js → form-validation-54acc775.js} +11 -1
- package/dist/cjs/form-validation-54acc775.js.map +1 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-curl-inspector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-json-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-name-picker.cjs.entry.js +2 -1
- package/dist/cjs/gx-ide-name-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-new-version.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-plugin-details.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-plugin-details.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +17 -13
- 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 +1 -1
- package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js +61 -30
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +39 -20
- package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-ww-files.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
- package/dist/cjs/{helpers-21c9cd02.js → helpers-263b5f4e.js} +3 -7
- package/dist/cjs/helpers-263b5f4e.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{tabular-grid-render-4350dbaf.js → tabular-grid-render-b1767da2.js} +2 -2
- package/dist/cjs/{tabular-grid-render-4350dbaf.js.map → tabular-grid-render-b1767da2.js.map} +1 -1
- package/dist/collection/collection-manifest.json +0 -4
- package/dist/collection/common/form-validation.js +9 -0
- package/dist/collection/common/form-validation.js.map +1 -1
- package/dist/collection/common/helpers.js +3 -7
- package/dist/collection/common/helpers.js.map +1 -1
- package/dist/collection/components/curl-inspector/gx-ide-assets/curl-inspector/langs/curl-inspector.lang.ja.json +6 -6
- package/dist/collection/components/details-acknowledgements/gx-ide-assets/details-acknowledgements/langs/details-acknowledgements.lang.ja.json +10 -10
- package/dist/collection/components/json-import/gx-ide-assets/json-import/langs/json-import.lang.ja.json +10 -10
- package/dist/collection/components/json-import/gx-ide-assets/json-import/langs/json-import.lang.zh.json +10 -10
- package/dist/collection/components/kb-manager-export/kb-manager-export.css +5 -1
- package/dist/collection/components/kb-manager-import/kb-manager-import.js +1 -1
- package/dist/collection/components/name-picker/gx-ide-assets/name-picker/langs/name-picker.lang.ja.json +5 -5
- package/dist/collection/components/name-picker/name-picker.js +2 -1
- package/dist/collection/components/name-picker/name-picker.js.map +1 -1
- package/dist/collection/components/plugin-details/plugin-details.css +3 -1
- package/dist/collection/components/references/references.js +2 -2
- package/dist/collection/components/references/references.js.map +1 -1
- package/dist/collection/components/select-kb-items/select-kb-items.js +36 -13
- package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
- package/dist/collection/components/select-user-team/select-user-team.css +0 -2
- package/dist/collection/components/sign-in-result/gx-ide-assets/sign-in-result/images/left-side-illustration.svg +4 -26
- package/dist/collection/components/sign-in-result/gx-ide-assets/sign-in-result/images/right-side-illustration.svg +12 -12
- package/dist/collection/components/sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.en.json +1 -1
- package/dist/collection/components/sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.ja.json +4 -4
- package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.en.json +5 -0
- package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.ja.json +5 -0
- package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.zh.json +5 -0
- package/dist/collection/components/start-page/start-page.css +100 -13
- package/dist/collection/components/start-page/start-page.js +107 -46
- package/dist/collection/components/start-page/start-page.js.map +1 -1
- package/dist/collection/components/team-dev/server-selector/gx-ide-assets/server-selector/langs/server-selector.lang.ja.json +14 -14
- package/dist/collection/components/team-dev/server-selector/server-selector.css +4 -0
- package/dist/collection/components/team-dev/server-selector/server-selector.js +72 -32
- package/dist/collection/components/team-dev/server-selector/server-selector.js.map +1 -1
- package/dist/collection/components/team-dev/update/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.ja.json +48 -48
- package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +0 -1
- package/dist/collection/components/team-dev/version-control/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +60 -60
- package/dist/collection/components/ww-files/gx-ide-assets/ww-files/langs/ww-files.lang.ja.json +5 -5
- package/dist/collection/pages/assets/images/plugin/python-logo.svg +16 -0
- package/dist/collection/testing/locale.e2e.js +0 -5
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/form-validation.js +10 -1
- package/dist/components/form-validation.js.map +1 -1
- package/dist/components/gx-ide-kb-manager-export.js +1 -1
- package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
- package/dist/components/gx-ide-name-picker.js +2 -1
- package/dist/components/gx-ide-name-picker.js.map +1 -1
- package/dist/components/gx-ide-plugin-details.js +1 -1
- package/dist/components/gx-ide-plugin-details.js.map +1 -1
- package/dist/components/gx-ide-references.js +2 -2
- package/dist/components/gx-ide-references.js.map +1 -1
- package/dist/components/gx-ide-select-user-team.js +1 -1
- package/dist/components/gx-ide-select-user-team.js.map +1 -1
- package/dist/components/gx-ide-server-selector.js +61 -31
- package/dist/components/gx-ide-server-selector.js.map +1 -1
- package/dist/components/gx-ide-start-page.js +44 -23
- package/dist/components/gx-ide-start-page.js.map +1 -1
- package/dist/components/gx-ide-team-dev-update-partial-selection.js +1 -1
- package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
- package/dist/components/helpers.js +2 -6
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/select-kb-items.js +19 -13
- package/dist/components/select-kb-items.js.map +1 -1
- package/dist/esm/{form-validation-cd0215c6.js → form-validation-21ab3766.js} +11 -2
- package/dist/esm/form-validation-21ab3766.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
- package/dist/esm/gx-ide-curl-inspector.entry.js +1 -1
- package/dist/esm/gx-ide-json-import.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
- package/dist/esm/gx-ide-name-picker.entry.js +2 -1
- package/dist/esm/gx-ide-name-picker.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +2 -2
- package/dist/esm/gx-ide-new-kb.entry.js +2 -2
- package/dist/esm/gx-ide-new-version.entry.js +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +1 -1
- package/dist/esm/gx-ide-plugin-details.entry.js +1 -1
- package/dist/esm/gx-ide-plugin-details.entry.js.map +1 -1
- package/dist/esm/gx-ide-references.entry.js +2 -2
- package/dist/esm/gx-ide-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-kb-items.entry.js +17 -13
- package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-user-team.entry.js +1 -1
- package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -1
- package/dist/esm/gx-ide-server-selector.entry.js +61 -30
- package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +39 -20
- package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-commit.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-history.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +2 -2
- package/dist/esm/gx-ide-ww-files.entry.js +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +1 -1
- package/dist/esm/{helpers-7960f084.js → helpers-b180a2d1.js} +3 -7
- package/dist/esm/helpers-b180a2d1.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{tabular-grid-render-f7eb612b.js → tabular-grid-render-96d67a8c.js} +2 -2
- package/dist/esm/{tabular-grid-render-f7eb612b.js.map → tabular-grid-render-96d67a8c.js.map} +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.css +0 -107
- 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/curl-inspector/langs/curl-inspector.lang.ja.json +6 -6
- package/dist/genexus-ide-ui/gx-ide-assets/details-acknowledgements/langs/details-acknowledgements.lang.ja.json +10 -10
- package/dist/genexus-ide-ui/gx-ide-assets/json-import/langs/json-import.lang.ja.json +10 -10
- package/dist/genexus-ide-ui/gx-ide-assets/json-import/langs/json-import.lang.zh.json +10 -10
- package/dist/genexus-ide-ui/gx-ide-assets/name-picker/langs/name-picker.lang.ja.json +5 -5
- package/dist/genexus-ide-ui/gx-ide-assets/server-selector/langs/server-selector.lang.ja.json +14 -14
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in-result/images/left-side-illustration.svg +4 -26
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in-result/images/right-side-illustration.svg +12 -12
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.en.json +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.ja.json +4 -4
- package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.en.json +5 -0
- package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.ja.json +5 -0
- package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.zh.json +5 -0
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +60 -60
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update/langs/team-dev-update.lang.ja.json +48 -48
- package/dist/genexus-ide-ui/gx-ide-assets/ww-files/langs/ww-files.lang.ja.json +5 -5
- package/dist/genexus-ide-ui/{p-b7aafbf6.entry.js → p-05fa08d7.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-05fa08d7.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-4b06b578.entry.js → p-06561f7e.entry.js} +147 -121
- package/dist/genexus-ide-ui/p-06561f7e.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-8c867f9a.entry.js → p-072419f9.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ed87224f.entry.js → p-083d8e94.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-16a88fc3.entry.js → p-098a7288.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-b80bd861.entry.js → p-0c5b7e75.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-b80bd861.entry.js.map → p-0c5b7e75.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-646ddf49.entry.js → p-11a60dbe.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-60302626.entry.js → p-18bbaa49.entry.js} +26 -26
- package/dist/genexus-ide-ui/p-18bbaa49.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-8c15538c.js → p-1972b953.js} +10 -13
- package/dist/genexus-ide-ui/p-1972b953.js.map +1 -0
- package/dist/genexus-ide-ui/{p-59908901.entry.js → p-24573081.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-198a7cce.entry.js → p-46147e3c.entry.js} +112 -106
- package/dist/genexus-ide-ui/p-46147e3c.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-2b38e18e.entry.js → p-57ed2623.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-0ae0616f.entry.js → p-5f65a4bb.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-443fc479.entry.js → p-5fe6189e.entry.js} +11 -11
- package/dist/genexus-ide-ui/{p-12b563fe.entry.js → p-67cf4af1.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-4cc2b3e6.entry.js → p-6f5cf136.entry.js} +6 -6
- package/dist/genexus-ide-ui/p-6f5cf136.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-4e3ad78d.entry.js → p-a58048e9.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-e2b0ee82.entry.js → p-b25d91e5.entry.js} +577 -549
- package/dist/genexus-ide-ui/p-b25d91e5.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-b32b6b1f.js +49 -0
- package/dist/genexus-ide-ui/p-b32b6b1f.js.map +1 -0
- package/dist/genexus-ide-ui/{p-7f091892.entry.js → p-b6a75c44.entry.js} +10 -10
- package/dist/genexus-ide-ui/p-b6a75c44.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-77c2e69d.js → p-c8270f7d.js} +2 -2
- package/dist/genexus-ide-ui/{p-d01bbc7a.entry.js → p-cccd6565.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-a7883e6b.entry.js → p-d18c51fe.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-b34ecbdc.entry.js → p-d24c1115.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-09a634fc.entry.js → p-db07c544.entry.js} +8 -8
- package/dist/genexus-ide-ui/{p-4b680e46.entry.js → p-eacc81c8.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-e3bce13e.entry.js → p-ee7232f2.entry.js} +33 -32
- package/dist/genexus-ide-ui/p-ee7232f2.entry.js.map +1 -0
- package/dist/types/common/form-validation.d.ts +1 -0
- package/dist/types/components/select-kb-items/select-kb-items.d.ts +8 -0
- package/dist/types/components/start-page/start-page.d.ts +31 -19
- package/dist/types/components/team-dev/server-selector/server-selector.d.ts +2 -6
- package/dist/types/components.d.ts +38 -372
- package/package.json +1 -1
- package/dist/cjs/form-validation-178cf461.js.map +0 -1
- package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +0 -297
- package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js.map +0 -1
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js +0 -97
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +0 -1
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +0 -179
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +0 -1
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +0 -333
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +0 -1
- package/dist/cjs/helpers-21c9cd02.js.map +0 -1
- package/dist/collection/components/ai-assistant/ai-assistant.css +0 -1024
- package/dist/collection/components/ai-assistant/ai-assistant.js +0 -526
- package/dist/collection/components/ai-assistant/ai-assistant.js.map +0 -1
- package/dist/collection/components/ai-assistant/ai-message.css +0 -237
- package/dist/collection/components/ai-assistant/ai-message.js +0 -221
- package/dist/collection/components/ai-assistant/ai-message.js.map +0 -1
- package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +0 -9
- package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +0 -9
- package/dist/collection/components/ai-assistant/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.zh.json +0 -9
- package/dist/collection/components/ai-assistant/gx-ide-assets/ai-message/langs/ai-message.lang.en.json +0 -4
- package/dist/collection/components/ai-assistant/gx-ide-assets/ai-message/langs/ai-message.lang.ja.json +0 -4
- package/dist/collection/components/ai-assistant/gx-ide-assets/ai-message/langs/ai-message.lang.zh.json +0 -4
- package/dist/collection/components/dashboard-home/dashboard-home.css +0 -1069
- package/dist/collection/components/dashboard-home/dashboard-home.js +0 -439
- package/dist/collection/components/dashboard-home/dashboard-home.js.map +0 -1
- package/dist/collection/components/dashboard-home/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.en.json +0 -43
- package/dist/collection/components/dashboard-home/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.ja.json +0 -43
- package/dist/collection/components/dashboard-home/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.zh.json +0 -43
- package/dist/collection/components/modules/manage-module-references-v2/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.en.json +0 -39
- package/dist/collection/components/modules/manage-module-references-v2/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.ja.json +0 -39
- package/dist/collection/components/modules/manage-module-references-v2/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.zh.json +0 -39
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js +0 -498
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js.map +0 -1
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references.css +0 -848
- package/dist/components/ai-message.js +0 -116
- package/dist/components/ai-message.js.map +0 -1
- package/dist/components/gx-ide-ai-assistant.d.ts +0 -11
- package/dist/components/gx-ide-ai-assistant.js +0 -336
- package/dist/components/gx-ide-ai-assistant.js.map +0 -1
- package/dist/components/gx-ide-ai-message.d.ts +0 -11
- package/dist/components/gx-ide-ai-message.js +0 -8
- package/dist/components/gx-ide-ai-message.js.map +0 -1
- package/dist/components/gx-ide-dashboard-home.d.ts +0 -11
- package/dist/components/gx-ide-dashboard-home.js +0 -215
- package/dist/components/gx-ide-dashboard-home.js.map +0 -1
- package/dist/components/gx-ide-manage-module-references-v2.d.ts +0 -11
- package/dist/components/gx-ide-manage-module-references-v2.js +0 -389
- package/dist/components/gx-ide-manage-module-references-v2.js.map +0 -1
- package/dist/esm/form-validation-cd0215c6.js.map +0 -1
- package/dist/esm/gx-ide-ai-assistant.entry.js +0 -293
- package/dist/esm/gx-ide-ai-assistant.entry.js.map +0 -1
- package/dist/esm/gx-ide-ai-message.entry.js +0 -93
- package/dist/esm/gx-ide-ai-message.entry.js.map +0 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +0 -175
- package/dist/esm/gx-ide-dashboard-home.entry.js.map +0 -1
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js +0 -329
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +0 -1
- package/dist/esm/helpers-7960f084.js.map +0 -1
- package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.en.json +0 -9
- package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.ja.json +0 -9
- package/dist/genexus-ide-ui/gx-ide-assets/ai-assistant/langs/ai-assistant.lang.zh.json +0 -9
- package/dist/genexus-ide-ui/gx-ide-assets/ai-message/langs/ai-message.lang.en.json +0 -4
- package/dist/genexus-ide-ui/gx-ide-assets/ai-message/langs/ai-message.lang.ja.json +0 -4
- package/dist/genexus-ide-ui/gx-ide-assets/ai-message/langs/ai-message.lang.zh.json +0 -4
- package/dist/genexus-ide-ui/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.en.json +0 -43
- package/dist/genexus-ide-ui/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.ja.json +0 -43
- package/dist/genexus-ide-ui/gx-ide-assets/dashboard-home/langs/dashboard-home.lang.zh.json +0 -43
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.en.json +0 -39
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.ja.json +0 -39
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references-v2/langs/manage-module-references-v2.lang.zh.json +0 -39
- package/dist/genexus-ide-ui/p-198a7cce.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-289c3290.js +0 -39
- package/dist/genexus-ide-ui/p-289c3290.js.map +0 -1
- package/dist/genexus-ide-ui/p-47f78f65.entry.js +0 -473
- package/dist/genexus-ide-ui/p-47f78f65.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-4b06b578.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-4cc2b3e6.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-5624d287.entry.js +0 -137
- package/dist/genexus-ide-ui/p-5624d287.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-60302626.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-7f091892.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-8c15538c.js.map +0 -1
- package/dist/genexus-ide-ui/p-b7aafbf6.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-c1ad1cc6.entry.js +0 -303
- package/dist/genexus-ide-ui/p-c1ad1cc6.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-d0c2dde3.entry.js +0 -331
- package/dist/genexus-ide-ui/p-d0c2dde3.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-e2b0ee82.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-e3bce13e.entry.js.map +0 -1
- package/dist/types/components/ai-assistant/ai-assistant.d.ts +0 -104
- package/dist/types/components/ai-assistant/ai-message.d.ts +0 -48
- package/dist/types/components/dashboard-home/dashboard-home.d.ts +0 -119
- package/dist/types/components/modules/manage-module-references-v2/manage-module-references-v2.d.ts +0 -108
- /package/dist/genexus-ide-ui/{p-8c867f9a.entry.js.map → p-072419f9.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ed87224f.entry.js.map → p-083d8e94.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-16a88fc3.entry.js.map → p-098a7288.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-646ddf49.entry.js.map → p-11a60dbe.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-59908901.entry.js.map → p-24573081.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2b38e18e.entry.js.map → p-57ed2623.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0ae0616f.entry.js.map → p-5f65a4bb.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-443fc479.entry.js.map → p-5fe6189e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-12b563fe.entry.js.map → p-67cf4af1.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-4e3ad78d.entry.js.map → p-a58048e9.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-77c2e69d.js.map → p-c8270f7d.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d01bbc7a.entry.js.map → p-cccd6565.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a7883e6b.entry.js.map → p-d18c51fe.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-b34ecbdc.entry.js.map → p-d24c1115.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-09a634fc.entry.js.map → p-db07c544.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-4b680e46.entry.js.map → p-eacc81c8.entry.js.map} +0 -0
|
@@ -8,11 +8,11 @@ import { u as s, a as l } from "./p-c9b9e260.js";
|
|
|
8
8
|
|
|
9
9
|
import { r as o } from "./p-a24571ca.js";
|
|
10
10
|
|
|
11
|
-
import { f as c } from "./p-
|
|
11
|
+
import { f as c } from "./p-1972b953.js";
|
|
12
12
|
|
|
13
13
|
import { c as d } from "./p-9a03ac9f.js";
|
|
14
14
|
|
|
15
|
-
import { C as h } from "./p-
|
|
15
|
+
import { C as h } from "./p-c8270f7d.js";
|
|
16
16
|
|
|
17
17
|
import { s as p } from "./p-02fb496a.js";
|
|
18
18
|
|
|
@@ -791,4 +791,4 @@ D = new WeakMap;
|
|
|
791
791
|
ne.style = u;
|
|
792
792
|
|
|
793
793
|
export { ne as gx_ide_team_dev_update };
|
|
794
|
-
//# sourceMappingURL=p-
|
|
794
|
+
//# sourceMappingURL=p-083d8e94.entry.js.map
|
|
@@ -4,7 +4,7 @@ import { g as o } from "./p-401bfc97.js";
|
|
|
4
4
|
|
|
5
5
|
import { c as r } from "./p-9a03ac9f.js";
|
|
6
6
|
|
|
7
|
-
import { v as l } from "./p-
|
|
7
|
+
import { v as l } from "./p-b32b6b1f.js";
|
|
8
8
|
|
|
9
9
|
import { L as h } from "./p-311eedf3.js";
|
|
10
10
|
|
|
@@ -263,4 +263,4 @@ C = new WeakMap, E = new WeakMap, $ = new WeakMap;
|
|
|
263
263
|
S.style = c;
|
|
264
264
|
|
|
265
265
|
export { S as gx_ide_share_kb };
|
|
266
|
-
//# sourceMappingURL=p-
|
|
266
|
+
//# sourceMappingURL=p-098a7288.entry.js.map
|
|
@@ -290,7 +290,7 @@ const C = class {
|
|
|
290
290
|
}, r("section", {
|
|
291
291
|
class: "section__referenced-by"
|
|
292
292
|
}, r("h2", {
|
|
293
|
-
class: "control-header control-header-with-border control-header__referenced-by heading-5 text-align-center spacing-body-inline"
|
|
293
|
+
class: "control-header control-header-with-border control-header__referenced-by heading-5 text-align-center spacing-body-inline subtitle-regular-xs"
|
|
294
294
|
}, l(this, f, "f").main.isReferencedBy), r("div", {
|
|
295
295
|
// is referenced by
|
|
296
296
|
class: "main__referenced-by spacing-body-block-start spacing-body-block-end"
|
|
@@ -313,7 +313,7 @@ const C = class {
|
|
|
313
313
|
}))), r("section", {
|
|
314
314
|
class: "section__references-to"
|
|
315
315
|
}, r("h2", {
|
|
316
|
-
class: "control-header control-header-with-border control-header__references-to heading-5 text-align-center spacing-body-inline"
|
|
316
|
+
class: "control-header control-header-with-border control-header__references-to heading-5 text-align-center spacing-body-inline subtitle-regular-xs"
|
|
317
317
|
}, l(this, f, "f").main.hasReferencesTo), r("div", {
|
|
318
318
|
// has references to
|
|
319
319
|
class: "main__references-to spacing-body-block-start spacing-body-block-end"
|
|
@@ -357,4 +357,4 @@ x = new WeakMap, w = new WeakMap, k = new WeakMap, _ = new WeakMap;
|
|
|
357
357
|
C.style = n;
|
|
358
358
|
|
|
359
359
|
export { C as gx_ide_references };
|
|
360
|
-
//# sourceMappingURL=p-
|
|
360
|
+
//# sourceMappingURL=p-0c5b7e75.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["convertToTreeItem","item","caption","name","id","items","_a","map","lazy","hasChildren","length","leaf","startImgSrc","icon","convertReferenceDataToTreeViewData","referenceData","treeData","forEach","push","mapSelectorCategoryDataToComboBoxModel","categoryData","category","mappedGroup","value","expandable","expanded","description","referencesCss","CSS_BUNDLES","GEMINI_TOOLS_SHOW_MORE_HORIZONTAL","getIconPath","colorType","NAVIGATION_ARROW_DOWN_SKY_BLUE","SUGGEST_OPTIONS","alreadyProcessed","autoExpand","hideMatchesAndShowNonMatches","highlightMatchedItems","matchCase","regularExpression","strict","renderActiveItemIconOnExpand","GxIdeReferences","_GxIdeReferences_objectDataMap","set","this","Map","_GxIdeReferences_shortcutsSrc","getAssetPath","_GxIdeReferences__componentLocale","_GxIdeReferences_selectObjectSuggestEl","_GxIdeReferences_evaluateInitialReferenceData","selectedObject","selectedObjectChanged","_GxIdeReferences_hideBarButtonClickedHandler","barHidden","_GxIdeReferences_loadReferencesHandler","async","to","loadReferencesCallback","then","result","referencesToTreeData","referencedByTreeData","_GxIdeReferences_openObjectCallbackHandler","openObjectCallback","_GxIdeReferences_openSelectorDialogCallbackHandler","objectDataResult","openSelectorDialogCallback","_GxIdeReferences_referenceSelectedHandler","event","selectReferenceCallback","selectedItems","detail","_GxIdeReferences_referencesItemOpenReferenceCallback","itemOpened","itemId","_GxIdeReferences_referencesLazyLoadCallbackHandler","ref","treeItemId","referencesLazyChildren","treeLazyChildren","Promise","resolve","_GxIdeReferences_selectObjectChangedHandler","newSelectedValue","objectData","__classPrivateFieldGet","get","_GxIdeReferences_selectObjectInputHandler","typedValue","selectorSourceCallback","selectorCategoryDataArray","clear","selectorCategoryData","typeName","objectsSuggestions","newSelectedObject","call","componentDidLoad","focus","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","render","h","Host","class","model","type","header","toggleBar","part","onClick","src","containerRef","htmlFor","selectObject","accessibleName","suggest","onInput","onChange","suggestOptions","openSelectorButton","header__bottom","main","selectedObjectLink","_b","_c","isReferencedBy","_d","referencedByTreeAccessible","lazyLoadTreeItemsCallback","onSelectedItemsChange","dragDisabled","dropDisabled","onItemOpenReference","showLines","_e","stateTitle","_f","isReferencedByEmpty","isReferencedByError","hasReferencesTo","_g","referencesToTreeAccessible","_h","_j","hasReferencesEmpty","hasReferencesToError"],"sources":["src/components/references/helpers.ts","src/components/references/references.scss?tag=gx-ide-references&encapsulation=shadow","src/components/references/references.tsx"],"sourcesContent":["/* Tree View */\nimport {\n ComboBoxModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\n\n/* References Types*/\nimport { ObjectData, SelectorCategoryData } from \"./references\";\nimport { ReferenceData } from \"./references\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\n\n/**\n * @description This function converts SelectorCategoryData[] SuggestData\n */\n\nconst convertToTreeItem = (item: ReferenceData): TreeViewItemModel => ({\n caption: item.name,\n id: item.id,\n items: (item.items ?? []).map(convertToTreeItem),\n lazy: item.hasChildren && (item.items == null || item.items.length === 0),\n leaf: item.hasChildren === false,\n startImgSrc: item.icon\n});\n\n/**\n * @description This function converts ReferenceData[] data to TreeItemData[]\n */\nexport const convertReferenceDataToTreeViewData = (\n referenceData: ReferenceData[] | undefined\n): TreeViewItemModel[] => {\n const treeData: TreeViewItemModel[] = [];\n if (!referenceData) {\n return treeData;\n }\n\n referenceData.forEach(item => {\n treeData.push(convertToTreeItem(item));\n });\n return treeData;\n};\n\nexport const mapObjectDataToComboBoxItemModel = (\n options: ObjectData[]\n): ComboBoxModel => {\n return options.map(option => {\n return {\n value: option.id,\n caption: option.name,\n startImgSrc: option.icon ?? \"\"\n };\n });\n};\n\nexport const mapSelectorCategoryDataToComboBoxModel = (\n categoryData: SelectorCategoryData[]\n): ComboBoxModel => {\n return categoryData.map((category: SelectorCategoryData) => {\n const mappedGroup: ComboBoxItemModel = {\n value: category.name,\n caption: category.name,\n expandable: true,\n expanded: true,\n items: category.items.map((item: ObjectData) => ({\n value: item.id,\n caption: item.description,\n startImgSrc: item.icon\n }))\n };\n\n return mappedGroup;\n });\n};\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr;\n}\n.section {\n display: contents;\n}\n\n.header {\n /*Top*/\n &__top {\n grid-template-columns: max-content 1fr max-content;\n }\n /*Bottom*/\n &__bottom {\n display: grid;\n grid-template-rows: 1fr;\n transition: var(--mer-timing--fast) grid-template-rows;\n &--hidden {\n grid-template-rows: 0fr;\n }\n\n .outer-wrapper {\n overflow: hidden;\n }\n\n .inner-wrapper {\n padding-top: var(--content-block-spacing);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n &__left {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-row-gap);\n }\n }\n }\n}\n\n.main {\n display: grid;\n grid-template-columns: 1fr 1fr;\n}\n.section__referenced-by,\n.section__references-to {\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n.control-header__referenced-by,\n.control-header__references-to {\n padding-block-start: var(--mer-spacing--md);\n}\n.main__referenced-by,\n.main__references-to {\n grid-auto-rows: max-content;\n overflow: auto;\n}\n.main__referenced-by {\n border-inline-end: var(--section-common-border);\n}\n\n.text-align-center {\n text-align: center;\n}\n","/* eslint-disable @stencil-community/own-props-must-be-private */\n/* STENCIL IMPORTS */\nimport {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport {\n ChComboBoxRenderCustomEvent,\n ComboBoxModel,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport {\n convertReferenceDataToTreeViewData,\n mapSelectorCategoryDataToComboBoxModel\n} from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/pills\",\n \"components/combo-box\",\n \"components/icon\",\n \"components/checkbox\",\n \"components/tree-view\",\n \"utils/spacing\",\n \"utils/layout\",\n \"utils/form\",\n \"utils/typography\"\n];\n\nconst GEMINI_TOOLS_SHOW_MORE_HORIZONTAL = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"primary\"\n});\nconst NAVIGATION_ARROW_DOWN_SKY_BLUE = getIconPath({\n category: \"navigation\",\n name: \"arrow-down-skyblue\",\n colorType: \"primary\"\n});\n\nconst SUGGEST_OPTIONS = {\n alreadyProcessed: true,\n autoExpand: false,\n hideMatchesAndShowNonMatches: false,\n highlightMatchedItems: false,\n matchCase: false,\n regularExpression: false,\n strict: false,\n renderActiveItemIconOnExpand: true\n};\n\n@Component({\n tag: \"gx-ide-references\",\n styleUrl: \"references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/references\"]\n})\nexport class GxIdeReferences {\n #objectDataMap: objectDataMap = new Map();\n #shortcutsSrc = getAssetPath(`./gx-ide-assets/references/shortcuts.json`);\n #_componentLocale: any;\n\n @Element() el: HTMLGxIdeReferencesElement;\n #selectObjectSuggestEl!: HTMLChComboBoxRenderElement;\n\n /**\n * Displays or hides the header-bottom section\n */\n @State() barHidden = false;\n\n /**\n * Objects suggestions that will appear on the suggest\n */\n @State() objectsSuggestions: ComboBoxModel;\n\n @State() referencedByTreeData: TreeViewItemModel[];\n\n @State() referencesToTreeData: TreeViewItemModel[];\n\n /**\n * Callback invoked when a node is expanded in any references panels\n */\n @Prop() readonly loadReferencesCallback?: LoadReferencesCallback;\n\n /**\n * Callback invoked when user wants to open an object\n */\n @Prop() readonly openObjectCallback?: OpenObjectCallback;\n\n /**\n * Callback invoked when user wants to show object selection dialog\n */\n @Prop() readonly openSelectorDialogCallback?: OpenSelectorDialogCallback;\n\n /**\n * Callback invoked when any item from the references panels is selected\n */\n @Prop() readonly selectReferenceCallback?: SelectReferenceCallback;\n\n /**\n * Callback invoked when user writes on object selector input\n */\n @Prop() readonly selectorSourceCallback?: SelectorSourceCallback;\n\n /**\n * Currently selected object\n */\n @Prop({ mutable: true }) selectedObject?: ObjectData;\n\n @Watch(\"selectedObject\")\n selectedObjectChanged(newSelectedObject: ObjectData) {\n if (newSelectedObject?.id) {\n /* update \"is referenced by*/\n this.#loadReferencesHandler(newSelectedObject.id, false);\n /* update \"has references to*/\n this.#loadReferencesHandler(newSelectedObject.id, true);\n }\n }\n\n componentDidLoad() {\n this.#selectObjectSuggestEl.focus();\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#evaluateInitialReferenceData();\n }\n\n /**\n * Evaluates whether to call loadReferencesCallback based on the presence of a selected object.\n */\n #evaluateInitialReferenceData = () => {\n if (this.selectedObject) {\n this.selectedObjectChanged(this.selectedObject);\n }\n };\n\n /**\n * Hides or shows the bar (the bottom section of the header).\n */\n #hideBarButtonClickedHandler = () => {\n this.barHidden = !this.barHidden;\n };\n\n /**\n * Invokes 'loadReferencesCallback' for 'Is Referenced By' and 'Has References To' panels.\n */\n #loadReferencesHandler = async (id: string, to = false) => {\n if (this.loadReferencesCallback) {\n this.loadReferencesCallback(id, to).then(result => {\n if (to) {\n this.referencesToTreeData =\n convertReferenceDataToTreeViewData(result);\n } else {\n this.referencedByTreeData =\n convertReferenceDataToTreeViewData(result);\n }\n });\n }\n };\n\n #openObjectCallbackHandler = () => {\n // Returns an empty Promise\n this.openObjectCallback(this.selectedObject?.id);\n };\n\n /**\n * Fired when user clicks the ch-suggest button (...)\n */\n #openSelectorDialogCallbackHandler = async () => {\n const objectDataResult = await this.openSelectorDialogCallback();\n if (objectDataResult) {\n this.selectedObject = objectDataResult;\n }\n };\n\n #referenceSelectedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n if (this.selectReferenceCallback) {\n const selectedItems: string[] = event.detail.map(item => item.item.id);\n this.selectReferenceCallback(selectedItems[0]);\n // returns void\n }\n };\n\n #referencesItemOpenReferenceCallback = (\n itemOpened: CustomEvent<{ id: string; leaf: boolean; metadata: string }>\n ) => {\n const itemId = itemOpened.detail.id;\n if (this.openObjectCallback) {\n this.openObjectCallback(itemId);\n // returns void\n }\n };\n\n #referencesLazyLoadCallbackHandler =\n (ref: \"references-to\" | \"referenced-by\") =>\n async (treeItemId: string): Promise<TreeViewItemModel[]> => {\n if (this.loadReferencesCallback) {\n const to = ref === \"references-to\";\n const referencesLazyChildren = await this.loadReferencesCallback(\n treeItemId,\n to\n );\n const treeLazyChildren = convertReferenceDataToTreeViewData(\n referencesLazyChildren\n );\n return new Promise(resolve => {\n resolve(treeLazyChildren);\n });\n }\n return new Promise(resolve => {\n resolve([]);\n });\n };\n\n #selectObjectChangedHandler = (\n event: ChComboBoxRenderCustomEvent<string> | InputEvent\n ) => {\n const newSelectedValue = event.detail as string;\n\n const objectData = this.#objectDataMap.get(newSelectedValue);\n if (objectData) {\n this.selectedObject = objectData;\n }\n };\n\n #selectObjectInputHandler = (\n event: ChComboBoxRenderCustomEvent<string> | InputEvent\n ) => {\n // WA to know if the event was from searching on the input or an item selection.\n // const partValue = (e.target as HTMLElement).getAttribute(\"part\");\n const typedValue = event.detail as string;\n if (this.selectorSourceCallback) {\n this.selectorSourceCallback(typedValue).then(\n selectorCategoryDataArray => {\n // update map\n this.#objectDataMap.clear();\n selectorCategoryDataArray?.forEach(selectorCategoryData => {\n selectorCategoryData.items.forEach(objectData => {\n this.#objectDataMap.set(objectData.description, {\n id: objectData.id,\n typeName: objectData.typeName,\n icon: objectData.icon,\n name: objectData.name,\n description: objectData.description\n });\n });\n });\n\n this.objectsSuggestions = mapSelectorCategoryDataToComboBoxModel(\n selectorCategoryDataArray\n );\n }\n );\n }\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header class=\"header control-header-with-border spacing-body-inline spacing-body-block-start\">\n <div class=\"header__top field-group\">\n <button\n type=\"button\"\n class=\"button-tertiary button-icon-only\"\n aria-label={this.#_componentLocale.header.toggleBar}\n part=\"toggle-bar-button\"\n onClick={this.#hideBarButtonClickedHandler}\n >\n <ch-image\n class=\"icon-md\"\n src={NAVIGATION_ARROW_DOWN_SKY_BLUE}\n containerRef={this.el}\n ></ch-image>\n </button>\n\n <div class=\"field field-inline\">\n <label\n // select object\n class=\"label\"\n part=\"select-object-label\"\n htmlFor=\"object-selector-suggest\"\n >\n {this.#_componentLocale.header.selectObject}\n </label>\n <ch-combo-box-render\n accessibleName={this.#_componentLocale.header.selectObject}\n class=\"combo-box\"\n model={this.objectsSuggestions}\n suggest\n onInput={this.#selectObjectInputHandler}\n onChange={this.#selectObjectChangedHandler}\n value={this.selectedObject?.name}\n part=\"object-selector-suggest\"\n suggestOptions={SUGGEST_OPTIONS}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#selectObjectSuggestEl =\n el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <button\n type=\"button\"\n class=\"button-tertiary button-icon-only\"\n aria-label={this.#_componentLocale.header.openSelectorButton}\n onClick={this.#openSelectorDialogCallbackHandler}\n part=\"open-selector-dialog-button\"\n >\n <ch-image\n class=\"icon-md\"\n src={GEMINI_TOOLS_SHOW_MORE_HORIZONTAL}\n containerRef={this.el}\n ></ch-image>\n </button>\n </div>\n\n <div\n class={{\n \"header__bottom\": true,\n \"header__bottom--hidden\": this.barHidden\n }}\n >\n <div class=\"outer-wrapper\">\n <div class=\"inner-wrapper\">\n <div class=\"inner-wrapper__left\">\n <ch-image\n class=\"icon-md\"\n src={this.selectedObject.icon}\n containerRef={this.el}\n ></ch-image>\n <a\n class=\"text-link\"\n onClick={this.#openObjectCallbackHandler}\n part=\"open-object-text-link\"\n aria-label={\n this.#_componentLocale.main.selectedObjectLink\n }\n >\n {`${this.selectedObject?.name} : ${this.selectedObject?.description}`}\n </a>\n </div>\n {/* <div class=\"inner-wrapper__right\">\n TODO: Add this feature \"Group References by Type\".\n <ch-checkbox\n class=\"checkbox\"\n id=\"references-by-type\"\n part=\"references-type-checkbox\"\n checkedValue=\"referencesByType\"\n caption=\"Group references by type\"\n ></ch-checkbox>\n </div> */}\n </div>\n </div>\n </div>\n </header>\n <div class=\"main\">\n <section class=\"section__referenced-by\">\n <h2 class=\"control-header control-header-with-border control-header__referenced-by heading-5 text-align-center spacing-body-inline\">\n {this.#_componentLocale.main.isReferencedBy}\n </h2>\n\n <div\n // is referenced by\n class=\"main__referenced-by spacing-body-block-start spacing-body-block-end\"\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencedByTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-by-tree\"\n model={this.referencedByTreeData}\n aria-label={\n this.#_componentLocale.main.referencedByTreeAccessible\n }\n lazyLoadTreeItemsCallback={this.#referencesLazyLoadCallbackHandler(\n \"referenced-by\"\n )}\n onSelectedItemsChange={this.#referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.#referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencedByTreeData?.length && (\n <gx-ide-empty-state\n stateTitle={\n this.referencedByTreeData?.length === 0\n ? this.#_componentLocale.main.isReferencedByEmpty\n : this.#_componentLocale.main.isReferencedByError\n }\n ></gx-ide-empty-state>\n )}\n </div>\n </section>\n\n <section class=\"section__references-to\">\n <h2 class=\"control-header control-header-with-border control-header__references-to heading-5 text-align-center spacing-body-inline\">\n {this.#_componentLocale.main.hasReferencesTo}\n </h2>\n\n <div\n // has references to\n class=\"main__references-to spacing-body-block-start spacing-body-block-end\"\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencesToTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-to-tree\"\n model={this.referencesToTreeData}\n aria-label={\n this.#_componentLocale.main.referencesToTreeAccessible\n }\n lazyLoadTreeItemsCallback={this.#referencesLazyLoadCallbackHandler(\n \"references-to\"\n )}\n onSelectedItemsChange={this.#referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.#referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencesToTreeData?.length && (\n <gx-ide-empty-state\n stateTitle={\n this.referencesToTreeData?.length === 0\n ? this.#_componentLocale.main.hasReferencesEmpty\n : this.#_componentLocale.main.hasReferencesToError\n }\n ></gx-ide-empty-state>\n )}\n </div>\n </section>\n </div>\n </section>\n\n <ch-shortcuts src={this.#shortcutsSrc}></ch-shortcuts>\n </Host>\n );\n }\n}\n\nexport type LoadReferencesCallback = (\n id: string,\n to: boolean\n) => Promise<ReferenceData[]>;\n\nexport type ObjectData = {\n id: string;\n typeName: string;\n icon: string;\n name: string;\n description?: string;\n};\n\nexport type OpenObjectCallback = (id: string) => Promise<void>;\n\nexport type OpenSelectorDialogCallback = () => Promise<ObjectData | undefined>;\n\nexport type ReferenceData = ObjectData & {\n hasChildren: boolean;\n items?: ReferenceData[];\n};\n\nexport type SelectReferenceCallback = (id: string) => Promise<void>;\n\nexport type SelectorCategoryData = {\n name: string;\n items: ObjectData[];\n};\n\nexport type SelectorSourceCallback = (\n prefix: string\n) => Promise<SelectorCategoryData[]>;\n\nexport type objectDataMap = Map<string, ObjectData>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["convertToTreeItem","item","caption","name","id","items","_a","map","lazy","hasChildren","length","leaf","startImgSrc","icon","convertReferenceDataToTreeViewData","referenceData","treeData","forEach","push","mapSelectorCategoryDataToComboBoxModel","categoryData","category","mappedGroup","value","expandable","expanded","description","referencesCss","CSS_BUNDLES","GEMINI_TOOLS_SHOW_MORE_HORIZONTAL","getIconPath","colorType","NAVIGATION_ARROW_DOWN_SKY_BLUE","SUGGEST_OPTIONS","alreadyProcessed","autoExpand","hideMatchesAndShowNonMatches","highlightMatchedItems","matchCase","regularExpression","strict","renderActiveItemIconOnExpand","GxIdeReferences","_GxIdeReferences_objectDataMap","set","this","Map","_GxIdeReferences_shortcutsSrc","getAssetPath","_GxIdeReferences__componentLocale","_GxIdeReferences_selectObjectSuggestEl","_GxIdeReferences_evaluateInitialReferenceData","selectedObject","selectedObjectChanged","_GxIdeReferences_hideBarButtonClickedHandler","barHidden","_GxIdeReferences_loadReferencesHandler","async","to","loadReferencesCallback","then","result","referencesToTreeData","referencedByTreeData","_GxIdeReferences_openObjectCallbackHandler","openObjectCallback","_GxIdeReferences_openSelectorDialogCallbackHandler","objectDataResult","openSelectorDialogCallback","_GxIdeReferences_referenceSelectedHandler","event","selectReferenceCallback","selectedItems","detail","_GxIdeReferences_referencesItemOpenReferenceCallback","itemOpened","itemId","_GxIdeReferences_referencesLazyLoadCallbackHandler","ref","treeItemId","referencesLazyChildren","treeLazyChildren","Promise","resolve","_GxIdeReferences_selectObjectChangedHandler","newSelectedValue","objectData","__classPrivateFieldGet","get","_GxIdeReferences_selectObjectInputHandler","typedValue","selectorSourceCallback","selectorCategoryDataArray","clear","selectorCategoryData","typeName","objectsSuggestions","newSelectedObject","call","componentDidLoad","focus","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","render","h","Host","class","model","type","header","toggleBar","part","onClick","src","containerRef","htmlFor","selectObject","accessibleName","suggest","onInput","onChange","suggestOptions","openSelectorButton","header__bottom","main","selectedObjectLink","_b","_c","isReferencedBy","_d","referencedByTreeAccessible","lazyLoadTreeItemsCallback","onSelectedItemsChange","dragDisabled","dropDisabled","onItemOpenReference","showLines","_e","stateTitle","_f","isReferencedByEmpty","isReferencedByError","hasReferencesTo","_g","referencesToTreeAccessible","_h","_j","hasReferencesEmpty","hasReferencesToError"],"sources":["src/components/references/helpers.ts","src/components/references/references.scss?tag=gx-ide-references&encapsulation=shadow","src/components/references/references.tsx"],"sourcesContent":["/* Tree View */\nimport {\n ComboBoxModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\n\n/* References Types*/\nimport { ObjectData, SelectorCategoryData } from \"./references\";\nimport { ReferenceData } from \"./references\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\n\n/**\n * @description This function converts SelectorCategoryData[] SuggestData\n */\n\nconst convertToTreeItem = (item: ReferenceData): TreeViewItemModel => ({\n caption: item.name,\n id: item.id,\n items: (item.items ?? []).map(convertToTreeItem),\n lazy: item.hasChildren && (item.items == null || item.items.length === 0),\n leaf: item.hasChildren === false,\n startImgSrc: item.icon\n});\n\n/**\n * @description This function converts ReferenceData[] data to TreeItemData[]\n */\nexport const convertReferenceDataToTreeViewData = (\n referenceData: ReferenceData[] | undefined\n): TreeViewItemModel[] => {\n const treeData: TreeViewItemModel[] = [];\n if (!referenceData) {\n return treeData;\n }\n\n referenceData.forEach(item => {\n treeData.push(convertToTreeItem(item));\n });\n return treeData;\n};\n\nexport const mapObjectDataToComboBoxItemModel = (\n options: ObjectData[]\n): ComboBoxModel => {\n return options.map(option => {\n return {\n value: option.id,\n caption: option.name,\n startImgSrc: option.icon ?? \"\"\n };\n });\n};\n\nexport const mapSelectorCategoryDataToComboBoxModel = (\n categoryData: SelectorCategoryData[]\n): ComboBoxModel => {\n return categoryData.map((category: SelectorCategoryData) => {\n const mappedGroup: ComboBoxItemModel = {\n value: category.name,\n caption: category.name,\n expandable: true,\n expanded: true,\n items: category.items.map((item: ObjectData) => ({\n value: item.id,\n caption: item.description,\n startImgSrc: item.icon\n }))\n };\n\n return mappedGroup;\n });\n};\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr;\n}\n.section {\n display: contents;\n}\n\n.header {\n /*Top*/\n &__top {\n grid-template-columns: max-content 1fr max-content;\n }\n /*Bottom*/\n &__bottom {\n display: grid;\n grid-template-rows: 1fr;\n transition: var(--mer-timing--fast) grid-template-rows;\n &--hidden {\n grid-template-rows: 0fr;\n }\n\n .outer-wrapper {\n overflow: hidden;\n }\n\n .inner-wrapper {\n padding-top: var(--content-block-spacing);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n &__left {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-row-gap);\n }\n }\n }\n}\n\n.main {\n display: grid;\n grid-template-columns: 1fr 1fr;\n}\n.section__referenced-by,\n.section__references-to {\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n.control-header__referenced-by,\n.control-header__references-to {\n padding-block-start: var(--mer-spacing--md);\n}\n.main__referenced-by,\n.main__references-to {\n grid-auto-rows: max-content;\n overflow: auto;\n}\n.main__referenced-by {\n border-inline-end: var(--section-common-border);\n}\n\n.text-align-center {\n text-align: center;\n}\n","/* eslint-disable @stencil-community/own-props-must-be-private */\n/* STENCIL IMPORTS */\nimport {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport {\n ChComboBoxRenderCustomEvent,\n ComboBoxModel,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport {\n convertReferenceDataToTreeViewData,\n mapSelectorCategoryDataToComboBoxModel\n} from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/pills\",\n \"components/combo-box\",\n \"components/icon\",\n \"components/checkbox\",\n \"components/tree-view\",\n \"utils/spacing\",\n \"utils/layout\",\n \"utils/form\",\n \"utils/typography\"\n];\n\nconst GEMINI_TOOLS_SHOW_MORE_HORIZONTAL = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"primary\"\n});\nconst NAVIGATION_ARROW_DOWN_SKY_BLUE = getIconPath({\n category: \"navigation\",\n name: \"arrow-down-skyblue\",\n colorType: \"primary\"\n});\n\nconst SUGGEST_OPTIONS = {\n alreadyProcessed: true,\n autoExpand: false,\n hideMatchesAndShowNonMatches: false,\n highlightMatchedItems: false,\n matchCase: false,\n regularExpression: false,\n strict: false,\n renderActiveItemIconOnExpand: true\n};\n\n@Component({\n tag: \"gx-ide-references\",\n styleUrl: \"references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/references\"]\n})\nexport class GxIdeReferences {\n #objectDataMap: objectDataMap = new Map();\n #shortcutsSrc = getAssetPath(`./gx-ide-assets/references/shortcuts.json`);\n #_componentLocale: any;\n\n @Element() el: HTMLGxIdeReferencesElement;\n #selectObjectSuggestEl!: HTMLChComboBoxRenderElement;\n\n /**\n * Displays or hides the header-bottom section\n */\n @State() barHidden = false;\n\n /**\n * Objects suggestions that will appear on the suggest\n */\n @State() objectsSuggestions: ComboBoxModel;\n\n @State() referencedByTreeData: TreeViewItemModel[];\n\n @State() referencesToTreeData: TreeViewItemModel[];\n\n /**\n * Callback invoked when a node is expanded in any references panels\n */\n @Prop() readonly loadReferencesCallback?: LoadReferencesCallback;\n\n /**\n * Callback invoked when user wants to open an object\n */\n @Prop() readonly openObjectCallback?: OpenObjectCallback;\n\n /**\n * Callback invoked when user wants to show object selection dialog\n */\n @Prop() readonly openSelectorDialogCallback?: OpenSelectorDialogCallback;\n\n /**\n * Callback invoked when any item from the references panels is selected\n */\n @Prop() readonly selectReferenceCallback?: SelectReferenceCallback;\n\n /**\n * Callback invoked when user writes on object selector input\n */\n @Prop() readonly selectorSourceCallback?: SelectorSourceCallback;\n\n /**\n * Currently selected object\n */\n @Prop({ mutable: true }) selectedObject?: ObjectData;\n\n @Watch(\"selectedObject\")\n selectedObjectChanged(newSelectedObject: ObjectData) {\n if (newSelectedObject?.id) {\n /* update \"is referenced by*/\n this.#loadReferencesHandler(newSelectedObject.id, false);\n /* update \"has references to*/\n this.#loadReferencesHandler(newSelectedObject.id, true);\n }\n }\n\n componentDidLoad() {\n this.#selectObjectSuggestEl.focus();\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#evaluateInitialReferenceData();\n }\n\n /**\n * Evaluates whether to call loadReferencesCallback based on the presence of a selected object.\n */\n #evaluateInitialReferenceData = () => {\n if (this.selectedObject) {\n this.selectedObjectChanged(this.selectedObject);\n }\n };\n\n /**\n * Hides or shows the bar (the bottom section of the header).\n */\n #hideBarButtonClickedHandler = () => {\n this.barHidden = !this.barHidden;\n };\n\n /**\n * Invokes 'loadReferencesCallback' for 'Is Referenced By' and 'Has References To' panels.\n */\n #loadReferencesHandler = async (id: string, to = false) => {\n if (this.loadReferencesCallback) {\n this.loadReferencesCallback(id, to).then(result => {\n if (to) {\n this.referencesToTreeData =\n convertReferenceDataToTreeViewData(result);\n } else {\n this.referencedByTreeData =\n convertReferenceDataToTreeViewData(result);\n }\n });\n }\n };\n\n #openObjectCallbackHandler = () => {\n // Returns an empty Promise\n this.openObjectCallback(this.selectedObject?.id);\n };\n\n /**\n * Fired when user clicks the ch-suggest button (...)\n */\n #openSelectorDialogCallbackHandler = async () => {\n const objectDataResult = await this.openSelectorDialogCallback();\n if (objectDataResult) {\n this.selectedObject = objectDataResult;\n }\n };\n\n #referenceSelectedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n if (this.selectReferenceCallback) {\n const selectedItems: string[] = event.detail.map(item => item.item.id);\n this.selectReferenceCallback(selectedItems[0]);\n // returns void\n }\n };\n\n #referencesItemOpenReferenceCallback = (\n itemOpened: CustomEvent<{ id: string; leaf: boolean; metadata: string }>\n ) => {\n const itemId = itemOpened.detail.id;\n if (this.openObjectCallback) {\n this.openObjectCallback(itemId);\n // returns void\n }\n };\n\n #referencesLazyLoadCallbackHandler =\n (ref: \"references-to\" | \"referenced-by\") =>\n async (treeItemId: string): Promise<TreeViewItemModel[]> => {\n if (this.loadReferencesCallback) {\n const to = ref === \"references-to\";\n const referencesLazyChildren = await this.loadReferencesCallback(\n treeItemId,\n to\n );\n const treeLazyChildren = convertReferenceDataToTreeViewData(\n referencesLazyChildren\n );\n return new Promise(resolve => {\n resolve(treeLazyChildren);\n });\n }\n return new Promise(resolve => {\n resolve([]);\n });\n };\n\n #selectObjectChangedHandler = (\n event: ChComboBoxRenderCustomEvent<string> | InputEvent\n ) => {\n const newSelectedValue = event.detail as string;\n\n const objectData = this.#objectDataMap.get(newSelectedValue);\n if (objectData) {\n this.selectedObject = objectData;\n }\n };\n\n #selectObjectInputHandler = (\n event: ChComboBoxRenderCustomEvent<string> | InputEvent\n ) => {\n // WA to know if the event was from searching on the input or an item selection.\n // const partValue = (e.target as HTMLElement).getAttribute(\"part\");\n const typedValue = event.detail as string;\n if (this.selectorSourceCallback) {\n this.selectorSourceCallback(typedValue).then(\n selectorCategoryDataArray => {\n // update map\n this.#objectDataMap.clear();\n selectorCategoryDataArray?.forEach(selectorCategoryData => {\n selectorCategoryData.items.forEach(objectData => {\n this.#objectDataMap.set(objectData.description, {\n id: objectData.id,\n typeName: objectData.typeName,\n icon: objectData.icon,\n name: objectData.name,\n description: objectData.description\n });\n });\n });\n\n this.objectsSuggestions = mapSelectorCategoryDataToComboBoxModel(\n selectorCategoryDataArray\n );\n }\n );\n }\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header class=\"header control-header-with-border spacing-body-inline spacing-body-block-start\">\n <div class=\"header__top field-group\">\n <button\n type=\"button\"\n class=\"button-tertiary button-icon-only\"\n aria-label={this.#_componentLocale.header.toggleBar}\n part=\"toggle-bar-button\"\n onClick={this.#hideBarButtonClickedHandler}\n >\n <ch-image\n class=\"icon-md\"\n src={NAVIGATION_ARROW_DOWN_SKY_BLUE}\n containerRef={this.el}\n ></ch-image>\n </button>\n\n <div class=\"field field-inline\">\n <label\n // select object\n class=\"label\"\n part=\"select-object-label\"\n htmlFor=\"object-selector-suggest\"\n >\n {this.#_componentLocale.header.selectObject}\n </label>\n <ch-combo-box-render\n accessibleName={this.#_componentLocale.header.selectObject}\n class=\"combo-box\"\n model={this.objectsSuggestions}\n suggest\n onInput={this.#selectObjectInputHandler}\n onChange={this.#selectObjectChangedHandler}\n value={this.selectedObject?.name}\n part=\"object-selector-suggest\"\n suggestOptions={SUGGEST_OPTIONS}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#selectObjectSuggestEl =\n el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <button\n type=\"button\"\n class=\"button-tertiary button-icon-only\"\n aria-label={this.#_componentLocale.header.openSelectorButton}\n onClick={this.#openSelectorDialogCallbackHandler}\n part=\"open-selector-dialog-button\"\n >\n <ch-image\n class=\"icon-md\"\n src={GEMINI_TOOLS_SHOW_MORE_HORIZONTAL}\n containerRef={this.el}\n ></ch-image>\n </button>\n </div>\n\n <div\n class={{\n \"header__bottom\": true,\n \"header__bottom--hidden\": this.barHidden\n }}\n >\n <div class=\"outer-wrapper\">\n <div class=\"inner-wrapper\">\n <div class=\"inner-wrapper__left\">\n <ch-image\n class=\"icon-md\"\n src={this.selectedObject.icon}\n containerRef={this.el}\n ></ch-image>\n <a\n class=\"text-link\"\n onClick={this.#openObjectCallbackHandler}\n part=\"open-object-text-link\"\n aria-label={\n this.#_componentLocale.main.selectedObjectLink\n }\n >\n {`${this.selectedObject?.name} : ${this.selectedObject?.description}`}\n </a>\n </div>\n {/* <div class=\"inner-wrapper__right\">\n TODO: Add this feature \"Group References by Type\".\n <ch-checkbox\n class=\"checkbox\"\n id=\"references-by-type\"\n part=\"references-type-checkbox\"\n checkedValue=\"referencesByType\"\n caption=\"Group references by type\"\n ></ch-checkbox>\n </div> */}\n </div>\n </div>\n </div>\n </header>\n <div class=\"main\">\n <section class=\"section__referenced-by\">\n <h2 class=\"control-header control-header-with-border control-header__referenced-by heading-5 text-align-center spacing-body-inline subtitle-regular-xs\">\n {this.#_componentLocale.main.isReferencedBy}\n </h2>\n\n <div\n // is referenced by\n class=\"main__referenced-by spacing-body-block-start spacing-body-block-end\"\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencedByTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-by-tree\"\n model={this.referencedByTreeData}\n aria-label={\n this.#_componentLocale.main.referencedByTreeAccessible\n }\n lazyLoadTreeItemsCallback={this.#referencesLazyLoadCallbackHandler(\n \"referenced-by\"\n )}\n onSelectedItemsChange={this.#referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.#referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencedByTreeData?.length && (\n <gx-ide-empty-state\n stateTitle={\n this.referencedByTreeData?.length === 0\n ? this.#_componentLocale.main.isReferencedByEmpty\n : this.#_componentLocale.main.isReferencedByError\n }\n ></gx-ide-empty-state>\n )}\n </div>\n </section>\n\n <section class=\"section__references-to\">\n <h2 class=\"control-header control-header-with-border control-header__references-to heading-5 text-align-center spacing-body-inline subtitle-regular-xs\">\n {this.#_componentLocale.main.hasReferencesTo}\n </h2>\n\n <div\n // has references to\n class=\"main__references-to spacing-body-block-start spacing-body-block-end\"\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencesToTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-to-tree\"\n model={this.referencesToTreeData}\n aria-label={\n this.#_componentLocale.main.referencesToTreeAccessible\n }\n lazyLoadTreeItemsCallback={this.#referencesLazyLoadCallbackHandler(\n \"references-to\"\n )}\n onSelectedItemsChange={this.#referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.#referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencesToTreeData?.length && (\n <gx-ide-empty-state\n stateTitle={\n this.referencesToTreeData?.length === 0\n ? this.#_componentLocale.main.hasReferencesEmpty\n : this.#_componentLocale.main.hasReferencesToError\n }\n ></gx-ide-empty-state>\n )}\n </div>\n </section>\n </div>\n </section>\n\n <ch-shortcuts src={this.#shortcutsSrc}></ch-shortcuts>\n </Host>\n );\n }\n}\n\nexport type LoadReferencesCallback = (\n id: string,\n to: boolean\n) => Promise<ReferenceData[]>;\n\nexport type ObjectData = {\n id: string;\n typeName: string;\n icon: string;\n name: string;\n description?: string;\n};\n\nexport type OpenObjectCallback = (id: string) => Promise<void>;\n\nexport type OpenSelectorDialogCallback = () => Promise<ObjectData | undefined>;\n\nexport type ReferenceData = ObjectData & {\n hasChildren: boolean;\n items?: ReferenceData[];\n};\n\nexport type SelectReferenceCallback = (id: string) => Promise<void>;\n\nexport type SelectorCategoryData = {\n name: string;\n items: ObjectData[];\n};\n\nexport type SelectorSourceCallback = (\n prefix: string\n) => Promise<SelectorCategoryData[]>;\n\nexport type objectDataMap = Map<string, ObjectData>;\n"],"mappings":";;;;;;;;GAeA,OAAMA,oBAAqBC;;EAA2C;IACpEC,SAASD,EAAKE;IACdC,IAAIH,EAAKG;IACTC,SAAQC,IAAAL,EAAKI,WAAK,QAAAC,WAAA,IAAAA,IAAI,IAAIC,IAAIP;IAC9BQ,MAAMP,EAAKQ,gBAAgBR,EAAKI,SAAS,QAAQJ,EAAKI,MAAMK,WAAW;IACvEC,MAAMV,EAAKQ,gBAAgB;IAC3BG,aAAaX,EAAKY;;AACnB;;;;GAKM,OAAMC,qCACXC;EAEA,MAAMC,IAAgC;EACtC,KAAKD,GAAe;IAClB,OAAOC;;EAGTD,EAAcE,SAAQhB;IACpBe,EAASE,KAAKlB,kBAAkBC;AAAM;EAExC,OAAOe;AAAQ;;AAeV,MAAMG,yCACXC,KAEOA,EAAab,KAAKc;EACvB,MAAMC,IAAiC;IACrCC,OAAOF,EAASlB;IAChBD,SAASmB,EAASlB;IAClBqB,YAAY;IACZC,UAAU;IACVpB,OAAOgB,EAAShB,MAAME,KAAKN,MAAgB;MACzCsB,OAAOtB,EAAKG;MACZF,SAASD,EAAKyB;MACdd,aAAaX,EAAKY;;;EAItB,OAAOS;AAAW;;ACrEtB,MAAMK,IAAgB;;;;;;;;;;;;;;;;;AC2BtB,MAAMC,IAA8B,EAClC,qBACA,qBACA,oBACA,wBACA,mBACA,uBACA,wBACA,iBACA,gBACA,cACA;;AAGF,MAAMC,IAAoCC,EAAY;EACpDT,UAAU;EACVlB,MAAM;EACN4B,WAAW;;;AAEb,MAAMC,IAAiCF,EAAY;EACjDT,UAAU;EACVlB,MAAM;EACN4B,WAAW;;;AAGb,MAAME,IAAkB;EACtBC,kBAAkB;EAClBC,YAAY;EACZC,8BAA8B;EAC9BC,uBAAuB;EACvBC,WAAW;EACXC,mBAAmB;EACnBC,QAAQ;EACRC,8BAA8B;;;MASnBC,IAAe;;;IAC1BC,EAAAC,IAAAC,MAAgC,IAAIC;IACpCC,EAAAH,IAAAC,MAAgBG,EAAa;IAC7BC,EAAAL,IAAAC,WAAA;IAGAK,EAAAN,IAAAC,WAAA;;;eAoEAM,EAAAP,IAAAC,OAAgC;MAC9B,IAAIA,KAAKO,gBAAgB;QACvBP,KAAKQ,sBAAsBR,KAAKO;;;;;eAOpCE,EAAAV,IAAAC,OAA+B;MAC7BA,KAAKU,aAAaV,KAAKU;AAAS;;;eAMlCC,EAAAZ,IAAAC,OAAyBY,OAAOrD,GAAYsD,IAAK;MAC/C,IAAIb,KAAKc,wBAAwB;QAC/Bd,KAAKc,uBAAuBvD,GAAIsD,GAAIE,MAAKC;UACvC,IAAIH,GAAI;YACNb,KAAKiB,uBACHhD,mCAAmC+C;iBAChC;YACLhB,KAAKkB,uBACHjD,mCAAmC+C;;;;;IAM7CG,EAAApB,IAAAC,OAA6B;;;YAE3BA,KAAKoB,oBAAmB3D,IAAAuC,KAAKO,oBAAc,QAAA9C,WAAA,aAAAA,EAAEF;AAAG;;;eAMlD8D,EAAAtB,IAAAC,OAAqCY;MACnC,MAAMU,UAAyBtB,KAAKuB;MACpC,IAAID,GAAkB;QACpBtB,KAAKO,iBAAiBe;;;IAI1BE,EAAAzB,IAAAC,OACEyB;MAEA,IAAIzB,KAAK0B,yBAAyB;QAChC,MAAMC,IAA0BF,EAAMG,OAAOlE,KAAIN,KAAQA,EAAKA,KAAKG;QACnEyC,KAAK0B,wBAAwBC,EAAc;;;;IAK/CE,EAAA9B,IAAAC,OACE8B;MAEA,MAAMC,IAASD,EAAWF,OAAOrE;MACjC,IAAIyC,KAAKoB,oBAAoB;QAC3BpB,KAAKoB,mBAAmBW;;;;IAK5BC,EAAAjC,IAAAC,OACGiC,KACDrB,MAAOsB;MACL,IAAIlC,KAAKc,wBAAwB;QAC/B,MAAMD,IAAKoB,MAAQ;QACnB,MAAME,UAA+BnC,KAAKc,uBACxCoB,GACArB;QAEF,MAAMuB,IAAmBnE,mCACvBkE;QAEF,OAAO,IAAIE,SAAQC;UACjBA,EAAQF;AAAiB;;MAG7B,OAAO,IAAIC,SAAQC;QACjBA,EAAQ;AAAG;AACX;IAGNC,EAAAxC,IAAAC,OACEyB;MAEA,MAAMe,IAAmBf,EAAMG;MAE/B,MAAMa,IAAaC,EAAA1C,MAAIF,GAAA,KAAgB6C,IAAIH;MAC3C,IAAIC,GAAY;QACdzC,KAAKO,iBAAiBkC;;;IAI1BG,EAAA7C,IAAAC,OACEyB;;;MAIA,MAAMoB,IAAapB,EAAMG;MACzB,IAAI5B,KAAK8C,wBAAwB;QAC/B9C,KAAK8C,uBAAuBD,GAAY9B,MACtCgC;;UAEEL,EAAA1C,MAAIF,GAAA,KAAgBkD;UACpBD,MAAyB,QAAzBA,WAAyB,aAAzBA,EAA2B3E,SAAQ6E;YACjCA,EAAqBzF,MAAMY,SAAQqE;cACjCC,EAAA1C,MAAIF,GAAA,KAAgBC,IAAI0C,EAAW5D,aAAa;gBAC9CtB,IAAIkF,EAAWlF;gBACf2F,UAAUT,EAAWS;gBACrBlF,MAAMyE,EAAWzE;gBACjBV,MAAMmF,EAAWnF;gBACjBuB,aAAa4D,EAAW5D;;AACxB;AACF;UAGJmB,KAAKmD,qBAAqB7E,uCACxByE;AACD;;;qBAzLY;;;;;;;;;;;EA0CrB,qBAAAvC,CAAsB4C;IACpB,IAAIA,MAAiB,QAAjBA,WAAiB,aAAjBA,EAAmB7F,IAAI;;MAEzBmF,EAAA1C,MAAIW,GAAA,KAAuB0C,KAA3BrD,MAA4BoD,EAAkB7F,IAAI;0CAElDmF,EAAA1C,MAAIW,GAAA,KAAuB0C,KAA3BrD,MAA4BoD,EAAkB7F,IAAI;;;EAItD,gBAAA+F;IACEZ,EAAA1C,MAAIK,GAAA,KAAwBkD;;EAG9B,uBAAMC;IACJC,EAAAzD,MAAII,SAA2BsD,EAAOC,oBAAoB3D,KAAK4D,KAAG;IAClElB,EAAA1C,MAAIM,GAAA,KAA8B+C,KAAlCrD;;EAsIF,MAAA6D;;IACE,OACEC,EAACC,GAAI;MAACC,OAAM;OACVF,EAAA;MAAUG,OAAOlF;QAEjB+E,EAAA;MAASE,OAAM;OACbF,EAAA;MAAQE,OAAM;OACZF,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEI,MAAK;MACLF,OAAM;MAAkC,cAC5BtB,EAAA1C,MAAII,GAAA,KAAmB+D,OAAOC;MAC1CC,MAAK;MACLC,SAAS5B,EAAA1C,MAAIS,GAAA;OAEbqD,EAAA;MACEE,OAAM;MACNO,KAAKpF;MACLqF,cAAcxE,KAAK4D;SAIvBE,EAAA;MAAKE,OAAM;OACTF,EAAA;;MAEEE,OAAM;MACNK,MAAK;MACLI,SAAQ;OAEP/B,EAAA1C,MAAII,GAAA,KAAmB+D,OAAOO,eAEjCZ,EAAA;MACEa,gBAAgBjC,EAAA1C,MAAII,GAAA,KAAmB+D,OAAOO;MAC9CV,OAAM;MACNC,OAAOjE,KAAKmD;MACZyB,SAAO;MACPC,SAASnC,EAAA1C,MAAI4C,GAAA;MACbkC,UAAUpC,EAAA1C,MAAIuC,GAAA;MACd7D,QAAOjB,IAAAuC,KAAKO,oBAAc,QAAA9C,WAAA,aAAAA,EAAEH;MAC5B+G,MAAK;MACLU,gBAAgB3F;MAChB6C,KAAM2B,KACHH,EAAAzD,MAAIK,GACHuD,GAAiC;SAKzCE,EAAA;MACEI,MAAK;MACLF,OAAM;MAAkC,cAC5BtB,EAAA1C,MAAII,GAAA,KAAmB+D,OAAOa;MAC1CV,SAAS5B,EAAA1C,MAAIqB,GAAA;MACbgD,MAAK;OAELP,EAAA;MACEE,OAAM;MACNO,KAAKvF;MACLwF,cAAcxE,KAAK4D;UAKzBE,EAAA;MACEE,OAAO;QACLiB,gBAAkB;QAClB,0BAA0BjF,KAAKU;;OAGjCoD,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEE,OAAM;MACNO,KAAKvE,KAAKO,eAAevC;MACzBwG,cAAcxE,KAAK4D;QAErBE,EAAA;MACEE,OAAM;MACNM,SAAS5B,EAAA1C,MAAImB,GAAA;MACbkD,MAAK;MAAuB,cAE1B3B,EAAA1C,MAAII,GAAA,KAAmB8E,KAAKC;OAG7B,IAAGC,IAAApF,KAAKO,oBAAc,QAAA6E,WAAA,aAAAA,EAAE9H,WAAU+H,IAAArF,KAAKO,oBAAc,QAAA8E,WAAA,aAAAA,EAAExG,qBAiBpEiF,EAAA;MAAKE,OAAM;OACTF,EAAA;MAASE,OAAM;OACbF,EAAA;MAAIE,OAAM;OACPtB,EAAA1C,MAAII,GAAA,KAAmB8E,KAAKI,iBAG/BxB,EAAA;;MAEEE,OAAM;OAENF,EAAA;MACEE,OAAO;QACL,iBAAeuB,IAAAvF,KAAKkB,0BAAoB,QAAAqE,WAAA,aAAAA,EAAE1H;QAC1C,aAAa;;MAEfwG,MAAK;MACLJ,OAAOjE,KAAKkB;MAAoB,cAE9BwB,EAAA1C,MAAII,GAAA,KAAmB8E,KAAKM;MAE9BC,2BAA2B/C,EAAA1C,MAAIgC,GAAA,KAAmCqB,KAAvCrD,MACzB;MAEF0F,uBAAuBhD,EAAA1C,MAAIwB,GAAA;MAC3BmE,cAAc;MACdC,cAAc;MACdC,qBACEnD,EAAA1C,MAAI6B,GAAA;MAENiE,WAAU;WAEVC,IAAA/F,KAAKkB,0BAAoB,QAAA6E,WAAA,aAAAA,EAAElI,WAC3BiG,EAAA;MACEkC,cACEC,IAAAjG,KAAKkB,0BAAoB,QAAA+E,WAAA,aAAAA,EAAEpI,YAAW,IAClC6E,EAAA1C,MAAII,GAAA,KAAmB8E,KAAKgB,sBAC5BxD,EAAA1C,MAAII,GAAA,KAAmB8E,KAAKiB;UAO1CrC,EAAA;MAASE,OAAM;OACbF,EAAA;MAAIE,OAAM;OACPtB,EAAA1C,MAAII,GAAA,KAAmB8E,KAAKkB,kBAG/BtC,EAAA;;MAEEE,OAAM;OAENF,EAAA;MACEE,OAAO;QACL,iBAAeqC,IAAArG,KAAKiB,0BAAoB,QAAAoF,WAAA,aAAAA,EAAExI;QAC1C,aAAa;;MAEfwG,MAAK;MACLJ,OAAOjE,KAAKiB;MAAoB,cAE9ByB,EAAA1C,MAAII,GAAA,KAAmB8E,KAAKoB;MAE9Bb,2BAA2B/C,EAAA1C,MAAIgC,GAAA,KAAmCqB,KAAvCrD,MACzB;MAEF0F,uBAAuBhD,EAAA1C,MAAIwB,GAAA;MAC3BmE,cAAc;MACdC,cAAc;MACdC,qBACEnD,EAAA1C,MAAI6B,GAAA;MAENiE,WAAU;WAEVS,IAAAvG,KAAKiB,0BAAoB,QAAAsF,WAAA,aAAAA,EAAE1I,WAC3BiG,EAAA;MACEkC,cACEQ,IAAAxG,KAAKiB,0BAAoB,QAAAuF,WAAA,aAAAA,EAAE3I,YAAW,IAClC6E,EAAA1C,MAAII,GAAA,KAAmB8E,KAAKuB,qBAC5B/D,EAAA1C,MAAII,GAAA,KAAmB8E,KAAKwB;YAS9C5C,EAAA;MAAcS,KAAK7B,EAAA1C,MAAIE,GAAA"}
|
|
@@ -6,7 +6,7 @@ import { L as o } from "./p-311eedf3.js";
|
|
|
6
6
|
|
|
7
7
|
import { c as r } from "./p-9a03ac9f.js";
|
|
8
8
|
|
|
9
|
-
import { f as n } from "./p-
|
|
9
|
+
import { f as n } from "./p-1972b953.js";
|
|
10
10
|
|
|
11
11
|
import { F as c } from "./p-13feb5cf.js";
|
|
12
12
|
|
|
@@ -522,4 +522,4 @@ L = new WeakMap, K = new WeakMap, V = new WeakMap, A = new WeakMap, B = new Weak
|
|
|
522
522
|
O.style = d;
|
|
523
523
|
|
|
524
524
|
export { O as gx_ide_object_selector };
|
|
525
|
-
//# sourceMappingURL=p-
|
|
525
|
+
//# sourceMappingURL=p-11a60dbe.entry.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { g as i, r as e, h as t, H as s, a } from "./p-97107ecc.js";
|
|
1
|
+
import { g as i, r as e, h as t, H as s, a as n } from "./p-97107ecc.js";
|
|
2
2
|
|
|
3
|
-
import { g as
|
|
3
|
+
import { g as a } from "./p-401bfc97.js";
|
|
4
4
|
|
|
5
5
|
import { L as o } from "./p-311eedf3.js";
|
|
6
6
|
|
|
7
|
-
const r = ':host{display:grid;block-size:100%;grid-template-areas:"header header" "main aside";grid-template-rows:max-content 1fr;grid-template-columns:1fr 280px;row-gap:12px}.section{display:contents}.header{display:grid;grid-area:header;grid-template-areas:"plugin-icon plugin-details";grid-template-columns:64px 1fr;column-gap:16px;padding:24px 24px 16px 24px}.plugin__icon{grid-area:plugin-icon;
|
|
7
|
+
const r = ':host{display:grid;block-size:100%;grid-template-areas:"header header" "main aside";grid-template-rows:max-content 1fr;grid-template-columns:1fr 280px;row-gap:12px}.section{display:contents}.header{display:grid;grid-area:header;grid-template-areas:"plugin-icon plugin-details";grid-template-columns:64px 1fr;column-gap:16px;padding:24px 24px 16px 24px}.plugin__icon{grid-area:plugin-icon;inline-size:100%;block-size:auto;display:block}.plugin__details{grid-area:plugin-details;display:flex;flex-direction:column;gap:8px}.plugin__publisher{display:flex;align-items:center;gap:4px}.plugin__description{line-height:1.5}.plugin__actions-container{margin-block-start:8px;align-items:center}.action-button{min-inline-size:100px}.action-button.more-versions-available{border-start-end-radius:0 !important;border-end-end-radius:0 !important}.installed-container{display:flex;align-items:center;gap:6px}.installed-container ch-image{--ch-image-size:20px}.main{grid-area:main}.docsTab{block-size:100%}.aside{grid-area:aside;overflow:auto;border-block-start:1px solid var(--items-container__border-color)}.fields__list{list-style:none;padding:0;margin:0;font-size:12px}.plugin__info-category{display:flex;flex-direction:column;gap:8px}.plugin__info-category:not(:first-child){padding-block-start:16px;margin-block-start:16px;border-block-start:1px solid var(--mer-border-color__on-elevation--01)}.fields__list:not(.fields__list--as-tags){display:flex;flex-direction:column;gap:8px}.fields__list:not(.fields__list--as-tags) .field__li{display:flex;gap:16px}.fields__list--as-tags{display:flex;flex-wrap:wrap;gap:6px}.fields__list--as-tags .field__li{border:1px solid var(--mer-border-color__on-elevation--01);padding:2px 8px;border-radius:4px;text-transform:lowercase}.fields__list--as-tags .field__link{color:var(--mer-text__on-surface)}.fields__list--as-tags .field__link:hover{color:var(--mer-accent__primary)}.fields__list--as-tags .field__link:active{color:var(--mer-accent__primary--hover)}.field__name,.field__value{flex:1}.field__link{color:var(--mer-accent__primary)}.field__link:hover{color:var(--mer-accent__primary--hover)}.field__link:active{color:var(--mer-accent__primary--active)}.docsTab{background-color:transparent !important}.dropdown.button-icon-only::part(expandable-button){padding:calc( ( var(--control__block-size) - 2 * var(--control__border-width) - var(--mer-icon__box--md) ) / 2 ) !important;border-start-start-radius:0 !important;border-end-start-radius:0 !important}.version-buttons-container{display:flex;align-items:center;gap:1px}ch-markdown-viewer{block-size:100%;overflow:auto}.text-underline{text-decoration:underline}';
|
|
8
8
|
|
|
9
9
|
var l = undefined && undefined.__classPrivateFieldGet || function(i, e, t, s) {
|
|
10
10
|
if (t === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
|
|
@@ -12,28 +12,28 @@ var l = undefined && undefined.__classPrivateFieldGet || function(i, e, t, s) {
|
|
|
12
12
|
return t === "m" ? s : t === "a" ? s.call(i) : s ? s.value : e.get(i);
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
var c = undefined && undefined.__classPrivateFieldSet || function(i, e, t, s,
|
|
15
|
+
var c = undefined && undefined.__classPrivateFieldSet || function(i, e, t, s, n) {
|
|
16
16
|
if (s === "m") throw new TypeError("Private method is not writable");
|
|
17
|
-
if (s === "a" && !
|
|
18
|
-
if (typeof e === "function" ? i !== e || !
|
|
19
|
-
return s === "a" ?
|
|
17
|
+
if (s === "a" && !n) throw new TypeError("Private accessor was defined without a setter");
|
|
18
|
+
if (typeof e === "function" ? i !== e || !n : !e.has(i)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
19
|
+
return s === "a" ? n.call(i, t) : n ? n.value = t : e.set(i, t), t;
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
var d, p, h, f, m, u, _, g, b, v, w, x, y, k, M, W;
|
|
23
23
|
|
|
24
|
-
const T =
|
|
24
|
+
const T = a({
|
|
25
25
|
category: "system",
|
|
26
26
|
name: "user",
|
|
27
27
|
colorType: "on-elevation"
|
|
28
28
|
});
|
|
29
29
|
|
|
30
|
-
const z =
|
|
30
|
+
const z = a({
|
|
31
31
|
category: "system",
|
|
32
32
|
name: "chevron-down",
|
|
33
33
|
colorType: "on-primary"
|
|
34
34
|
});
|
|
35
35
|
|
|
36
|
-
const C =
|
|
36
|
+
const C = a({
|
|
37
37
|
category: "system",
|
|
38
38
|
name: "check-circle",
|
|
39
39
|
colorType: "success"
|
|
@@ -91,26 +91,26 @@ const L = class {
|
|
|
91
91
|
var i;
|
|
92
92
|
let e;
|
|
93
93
|
let s = "button-primary action-button";
|
|
94
|
-
let
|
|
95
|
-
const
|
|
94
|
+
let n;
|
|
95
|
+
const a = (i = this.data.versions) === null || i === void 0 ? void 0 : i.length;
|
|
96
96
|
if (!this.data.installed) {
|
|
97
97
|
e = l(this, d, "f").actions.install;
|
|
98
|
-
|
|
98
|
+
n = l(this, _, "f");
|
|
99
99
|
} else if (this.data.updateVersion) {
|
|
100
100
|
e = `${l(this, d, "f").actions.updateTo} ${this.data.updateVersion}`;
|
|
101
|
-
|
|
101
|
+
n = l(this, g, "f").call(this, this.data.updateVersion);
|
|
102
102
|
} else {
|
|
103
103
|
e = l(this, d, "f").actions.installed;
|
|
104
104
|
}
|
|
105
|
-
if (
|
|
105
|
+
if (a) {
|
|
106
106
|
s = `${s} more-versions-available`;
|
|
107
107
|
}
|
|
108
108
|
return [ t("div", {
|
|
109
109
|
class: "version-buttons-container"
|
|
110
110
|
}, t("button", {
|
|
111
111
|
class: s,
|
|
112
|
-
onClick:
|
|
113
|
-
}, e),
|
|
112
|
+
onClick: n
|
|
113
|
+
}, e), a ? t("ch-action-menu-render", {
|
|
114
114
|
class: "dropdown button-primary button-icon-only",
|
|
115
115
|
blockAlign: "outside-end",
|
|
116
116
|
inlineAlign: "inside-start",
|
|
@@ -138,13 +138,13 @@ const L = class {
|
|
|
138
138
|
}
|
|
139
139
|
}))));
|
|
140
140
|
k.set(this, (i => i.toLowerCase().replace(/\s+/g, "-")));
|
|
141
|
-
M.set(this, ((i, e, s,
|
|
141
|
+
M.set(this, ((i, e, s, n) => t("a", {
|
|
142
142
|
href: i,
|
|
143
143
|
target: "_blank",
|
|
144
144
|
onClick: l(this, b, "f").call(this, i),
|
|
145
145
|
class: s
|
|
146
|
-
},
|
|
147
|
-
src:
|
|
146
|
+
}, n && t("ch-image", {
|
|
147
|
+
src: n,
|
|
148
148
|
class: "icon-md"
|
|
149
149
|
}), e)));
|
|
150
150
|
W.set(this, (() => this.data.infoCategories.map((i => t("div", {
|
|
@@ -209,8 +209,8 @@ const L = class {
|
|
|
209
209
|
render() {
|
|
210
210
|
const i = !this.data.installed || this.data.installed && !!this.data.updateVersion;
|
|
211
211
|
const e = this.data.name.text;
|
|
212
|
-
const
|
|
213
|
-
const
|
|
212
|
+
const n = this.data.name.url;
|
|
213
|
+
const a = e && n;
|
|
214
214
|
const o = e || this.data.name;
|
|
215
215
|
const r = this.data.publisher.text;
|
|
216
216
|
const c = this.data.publisher.url;
|
|
@@ -230,9 +230,9 @@ const L = class {
|
|
|
230
230
|
alt: "plugin extension icon"
|
|
231
231
|
}), t("div", {
|
|
232
232
|
class: "plugin__details"
|
|
233
|
-
},
|
|
233
|
+
}, a ? t("h2", {
|
|
234
234
|
class: "heading-5 has-link"
|
|
235
|
-
}, l(this, M, "f").call(this,
|
|
235
|
+
}, l(this, M, "f").call(this, n, o, "text-underline")) : t("h2", {
|
|
236
236
|
class: "heading-5"
|
|
237
237
|
}, o), p ? l(this, M, "f").call(this, c, o, "text-underline plugin__publisher tiny-semi-bold-l", T) : t("p", {
|
|
238
238
|
class: "plugin__publisher tiny-semi-bold-l"
|
|
@@ -268,7 +268,7 @@ const L = class {
|
|
|
268
268
|
return [ "gx-ide-assets/plugin-details" ];
|
|
269
269
|
}
|
|
270
270
|
get el() {
|
|
271
|
-
return
|
|
271
|
+
return n(this);
|
|
272
272
|
}
|
|
273
273
|
};
|
|
274
274
|
|
|
@@ -280,4 +280,4 @@ W = new WeakMap;
|
|
|
280
280
|
L.style = r;
|
|
281
281
|
|
|
282
282
|
export { L as gx_ide_plugin_details };
|
|
283
|
-
//# sourceMappingURL=p-
|
|
283
|
+
//# sourceMappingURL=p-18bbaa49.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pluginDetailsCss","USER_ICON","getIconPath","category","name","colorType","CHEVRON_DOWN_ICON","CHECK_CIRCLE_ICON","EXTENSION_ICON_IMG","getAssetPath","CSS_BUNDLES","GxIdePluginDetails","_GxIdePluginDetails_componentLocale","set","this","_GxIdePluginDetails_chMarkdownViewer","_GxIdePluginDetails_docSectionIdDescriptionMap","Map","_GxIdePluginDetails_versionsMenuOptionsModel","versionsToUpdateMenusModel","_a","data","versions","map","version","id","caption","_GxIdePluginDetails_menuVersionSelectedHandler","event","selectedVersion","detail","installCallback","_GxIdePluginDetails_renderUninstallButton","h","class","onClick","__classPrivateFieldGet","_GxIdePluginDetails_uninstallClickedHandler","actions","uninstall","_GxIdePluginDetails_installClickedHandler","_GxIdePluginDetails_updateVersionHandler","_GxIdePluginDetails_openLinkHandler","link","openLinkCallback","preventDefault","uninstallCallback","_GxIdePluginDetails_renderActionButtons","actionButtonCaption","actionButtonClasses","actionButtonCallback","moreVersionsToUpdate","length","installed","install","updateVersion","updateTo","call","blockAlign","inlineAlign","model","onButtonClick","src","_GxIdePluginDetails_tabSelectionChangedHandler","selectedTabId","newSelectedId","_GxIdePluginDetails_renderDocSectionsSlots","docsTabModel","docSectionTab","markdownValue","get","ref","el","__classPrivateFieldSet","slot","key","theme","value","_GxIdePluginDetails_returnFormatedId","rawId","toLowerCase","replace","_GxIdePluginDetails_renderLinkTag","href","label","cssClass","chImageSrc","target","_GxIdePluginDetails_renderAsideContent","infoCategories","infoCategory","fields__list","displayAsTags","fields","field","fieldValue","url","text","componentWillLoad","Locale","getComponentStrings","docSections","docSection","i","formatedId","content","componentDidLoad","addEventListener","path","composedPath","find","HTMLAnchorElement","render","renderActionButtons","titleLinkDataText","titleLinkDataUrl","titleHasLink","titleText","publisherDataText","publisher","publisherDataUrl","publisherHasLink","publisherText","Host","iconUrl","alt","description","tabListPosition","overflow","contain","onSelectedItemChange","selectedId"],"sources":["src/components/plugin-details/plugin-details.scss?tag=gx-ide-plugin-details&encapsulation=shadow","src/components/plugin-details/plugin-details.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n grid-template-areas:\n \"header header\"\n \"main aside\";\n grid-template-rows: max-content 1fr;\n grid-template-columns: 1fr 280px;\n row-gap: 12px;\n}\n\n.section {\n display: contents;\n}\n\n// header\n.header {\n display: grid;\n grid-area: header;\n grid-template-areas: \"plugin-icon plugin-details\";\n grid-template-columns: 64px 1fr;\n column-gap: 16px;\n padding: 24px 24px 16px 24px;\n}\n.plugin__icon {\n grid-area: plugin-icon;\n inline-size: 100%;\n block-size: auto;\n display: block;\n}\n.plugin__details {\n grid-area: plugin-details;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.plugin__publisher {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.plugin__description {\n line-height: 1.5; // WA: Text appears too tight.\n}\n.plugin__actions-container {\n margin-block-start: 8px;\n align-items: center;\n}\n.action-button {\n min-inline-size: 100px;\n\n &.more-versions-available {\n border-start-end-radius: 0 !important;\n border-end-end-radius: 0 !important;\n }\n}\n.installed-container {\n display: flex;\n align-items: center;\n gap: 6px;\n\n // WA Biggest Mercury icon (icon-md) looks small in this case.\n // Mercury should expose more icon sizes.\n ch-image {\n --ch-image-size: 20px;\n }\n}\n\n// main\n.main {\n grid-area: main;\n}\n.docsTab {\n block-size: 100%;\n}\n\n// aside\n.aside {\n grid-area: aside;\n overflow: auto;\n border-block-start: 1px solid var(--items-container__border-color);\n}\n.fields__list {\n list-style: none;\n padding: 0;\n margin: 0;\n font-size: 12px;\n}\n.plugin__info-category {\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n &:not(:first-child) {\n $space: 16px;\n padding-block-start: $space;\n margin-block-start: $space;\n border-block-start: 1px solid var(--mer-border-color__on-elevation--01);\n }\n}\n.fields__list:not(.fields__list--as-tags) {\n display: flex;\n flex-direction: column;\n gap: 8px;\n .field__li {\n display: flex;\n gap: 16px;\n }\n}\n.fields__list--as-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n\n .field__li {\n border: 1px solid var(--mer-border-color__on-elevation--01);\n padding: 2px 8px;\n border-radius: 4px;\n\n text-transform: lowercase;\n }\n .field__link {\n color: var(--mer-text__on-surface);\n\n &:hover {\n color: var(--mer-accent__primary);\n }\n &:active {\n color: var(--mer-accent__primary--hover);\n }\n }\n}\n\n.field__name,\n.field__value {\n flex: 1;\n}\n// WA: Link styles should be defined Mercury\n.field__link {\n color: var(--mer-accent__primary);\n &:hover {\n color: var(--mer-accent__primary--hover);\n }\n &:active {\n color: var(--mer-accent__primary--active);\n }\n}\n// WA: Remove tab elevation background color\n.docsTab {\n background-color: transparent !important;\n}\n\n// WA: Styles for \"button-icon-only\" should be defined on mercury\n.dropdown.button-icon-only::part(expandable-button) {\n padding: calc(\n (\n var(--control__block-size) - 2 *\n var(--control__border-width) - var(--mer-icon__box--md)\n ) /\n 2\n ) !important;\n border-start-start-radius: 0 !important;\n border-end-start-radius: 0 !important;\n}\n\n.version-buttons-container {\n display: flex;\n align-items: center;\n gap: 1px;\n}\n\nch-markdown-viewer {\n block-size: 100%;\n overflow: auto;\n}\n\n// WA: Need text with underline. This should be defined on Mercury\n.text-underline {\n text-decoration: underline;\n}\n","import {\n Component,\n Host,\n State,\n Prop,\n Element,\n h,\n getAssetPath,\n JSX\n} from \"@stencil/core\";\n\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ActionMenuModel, TabModel } from \"@genexus/chameleon-controls-library\";\nimport { TabItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/tab/types\";\n\nconst USER_ICON = getIconPath({\n category: \"system\",\n name: \"user\",\n colorType: \"on-elevation\"\n});\nconst CHEVRON_DOWN_ICON = getIconPath({\n category: \"system\",\n name: \"chevron-down\",\n colorType: \"on-primary\"\n});\nconst CHECK_CIRCLE_ICON = getIconPath({\n category: \"system\",\n name: \"check-circle\",\n colorType: \"success\"\n});\n\n// plugin icon if no iconUri was provided\nconst EXTENSION_ICON_IMG = getAssetPath(\n `./gx-ide-assets/plugin-manager/images/plugin-icon.svg`\n);\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"chameleon/scrollbar\",\n \"components/button\",\n \"components/dropdown\",\n \"components/edit\",\n \"components/icon\",\n \"components/list-box\",\n \"components/tab\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-plugin-details\",\n styleUrl: \"plugin-details.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/plugin-details\"]\n})\nexport class GxIdePluginDetails {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n #chMarkdownViewer: HTMLChMarkdownViewerElement;\n\n // A map between docSection \"id\", and docSection \"description\".\n // \"id\" is generated inside this component.\n #docSectionIdDescriptionMap: Map<string, string> = new Map();\n\n @Element() el: HTMLGxIdePluginDetailsElement;\n\n @State() docsTabModel: TabModel = [];\n @State() selectedTabId: string;\n\n /**\n * Specifies all the information related to a plugin.\n */\n @Prop() readonly data!: PluginDetailsData;\n\n /**\n * Callback that should be invoked when the user performs the install or update action.\n * Receives an optional version string when a specific version is selected.\n */\n @Prop() readonly installCallback!: (version?: string) => Promise<void>;\n\n /**\n * Callback that should be invoked when the user attempts to open any link displayed in this component.\n */\n @Prop() readonly openLinkCallback!: (url: string) => Promise<void>;\n\n /**\n * Callback that should be invoked when the user performs the uninstall action.\n */\n @Prop() readonly uninstallCallback!: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n if (this.data.docSections?.length) {\n this.docsTabModel = this.data.docSections.map((docSection, i) => {\n const formatedId = this.#returnFormatedId(docSection.name);\n\n this.#docSectionIdDescriptionMap.set(formatedId, docSection.content);\n\n if (i === 0) {\n this.selectedTabId = formatedId;\n }\n return {\n id: formatedId,\n name: docSection.name\n } as TabItemModel;\n });\n }\n }\n\n componentDidLoad() {\n this.#chMarkdownViewer.addEventListener(\"click\", event => {\n // Listens for clicks on links inside <ch-markdown-viewer>.\n // If a link (<a>) is clicked and openLinkCallback is defined,\n // it prevents the default navigation and delegates the event\n // to this.#openLinkHandler, passing the link's href.\n const path = event.composedPath() as EventTarget[];\n\n const link = path.find(el => el instanceof HTMLAnchorElement) as\n | HTMLAnchorElement\n | undefined;\n\n if (link?.href) {\n this.#openLinkHandler(link.href)(event);\n }\n });\n }\n\n #versionsMenuOptionsModel = (): ActionMenuModel => {\n const versionsToUpdateMenusModel: ActionMenuModel = this.data.versions?.map(\n version => {\n return { id: version, caption: version };\n }\n );\n return versionsToUpdateMenusModel;\n };\n\n #menuVersionSelectedHandler = (\n event: CustomEvent<{\n id?: string;\n }>\n ) => {\n const selectedVersion = event.detail.id;\n this.installCallback(selectedVersion);\n };\n\n #renderUninstallButton = (): JSX.Element => {\n return (\n <button class=\"button-tertiary\" onClick={this.#uninstallClickedHandler}>\n {this.#componentLocale.actions.uninstall}\n </button>\n );\n };\n\n #installClickedHandler = () => {\n this.installCallback();\n };\n\n #updateVersionHandler = (id: string) => () => {\n this.installCallback(id);\n };\n\n #openLinkHandler = (link: string) => (event: MouseEvent) => {\n if (this.openLinkCallback) {\n event.preventDefault();\n this.openLinkCallback(link);\n }\n };\n\n #uninstallClickedHandler = () => {\n this.uninstallCallback();\n };\n\n #renderActionButtons = (): JSX.Element => {\n let actionButtonCaption;\n let actionButtonClasses = \"button-primary action-button\";\n let actionButtonCallback;\n const moreVersionsToUpdate = this.data.versions?.length;\n\n if (!this.data.installed) {\n actionButtonCaption = this.#componentLocale.actions.install;\n actionButtonCallback = this.#installClickedHandler;\n } else if (this.data.updateVersion) {\n actionButtonCaption = `${this.#componentLocale.actions.updateTo} ${\n this.data.updateVersion\n }`;\n actionButtonCallback = this.#updateVersionHandler(\n this.data.updateVersion\n );\n } else {\n actionButtonCaption = this.#componentLocale.actions.installed;\n }\n\n if (moreVersionsToUpdate) {\n actionButtonClasses = `${actionButtonClasses} more-versions-available`;\n }\n\n return [\n <div class=\"version-buttons-container\">\n <button class={actionButtonClasses} onClick={actionButtonCallback}>\n {actionButtonCaption}\n </button>\n {moreVersionsToUpdate ? (\n <ch-action-menu-render\n class=\"dropdown button-primary button-icon-only\"\n blockAlign=\"outside-end\"\n inlineAlign=\"inside-start\"\n model={this.#versionsMenuOptionsModel()}\n onButtonClick={this.#menuVersionSelectedHandler}\n >\n <ch-image src={CHEVRON_DOWN_ICON} class=\"icon-md\"></ch-image>\n </ch-action-menu-render>\n ) : null}\n </div>\n ];\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n this.selectedTabId = event.detail.newSelectedId;\n };\n\n #renderDocSectionsSlots = (): JSX.Element => {\n return this.docsTabModel.map(docSectionTab => {\n if (docSectionTab.id === this.selectedTabId) {\n const markdownValue = this.#docSectionIdDescriptionMap.get(\n docSectionTab.id\n );\n\n return (\n <ch-markdown-viewer\n ref={(el: HTMLChMarkdownViewerElement) =>\n (this.#chMarkdownViewer = el as HTMLChMarkdownViewerElement)\n }\n slot={docSectionTab.id}\n key={docSectionTab.id}\n class=\"markdown spacing-body scrollable\"\n theme=\"components/markdown-viewer\"\n value={markdownValue}\n ></ch-markdown-viewer>\n );\n }\n });\n };\n\n #returnFormatedId = (rawId: string): string => {\n return rawId.toLowerCase().replace(/\\s+/g, \"-\");\n };\n\n #renderLinkTag = (\n href: string,\n label: string,\n cssClass?: string,\n chImageSrc?: string\n ): HTMLAnchorElement => {\n return (\n <a\n href={href}\n target=\"_blank\"\n onClick={this.#openLinkHandler(href)}\n class={cssClass}\n >\n {chImageSrc && <ch-image src={chImageSrc} class=\"icon-md\"></ch-image>}\n {label}\n </a>\n );\n };\n\n #renderAsideContent = (): JSX.Element => {\n return this.data.infoCategories.map(infoCategory => {\n return (\n <div class=\"plugin__info-category\">\n <h3 class=\"subtitle-semi-bold-s\">{infoCategory.name}</h3>\n <ul\n class={{\n \"fields__list\": true,\n \"fields__list--as-tags\": infoCategory.displayAsTags\n }}\n >\n {infoCategory.fields.map(field => {\n // If the field name isn’t specified, only the value is shown — usually a link.\n const fieldValue: string | HTMLAnchorElement =\n typeof field.value === \"string\"\n ? (field.value as string)\n : this.#renderLinkTag(\n (field.value as LinkData).url,\n (field.value as LinkData).text,\n \"field__link\"\n );\n return (\n <li class=\"field__li\">\n {field.name && !infoCategory.displayAsTags\n ? // displaysAsTags forces the items to be displayed as tags\n // no span.field__name and span.field__value\n [\n <span class=\"field__name body-semi-bold-s\">\n {field.name}\n </span>,\n <span class=\"field__value body-regular-s\">\n {fieldValue}\n </span>\n ]\n : fieldValue}\n </li>\n );\n })}\n </ul>\n </div>\n );\n });\n };\n\n render() {\n const renderActionButtons =\n !this.data.installed ||\n (this.data.installed && !!this.data.updateVersion);\n\n const titleLinkDataText = (this.data.name as LinkData).text;\n const titleLinkDataUrl = (this.data.name as LinkData).url;\n const titleHasLink = titleLinkDataText && titleLinkDataUrl;\n const titleText = titleLinkDataText || this.data.name;\n\n const publisherDataText = (this.data.publisher as LinkData).text;\n const publisherDataUrl = (this.data.publisher as LinkData).url;\n const publisherHasLink = publisherDataText && publisherDataUrl;\n const publisherText = publisherDataText || this.data.publisher;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header class=\"header\">\n <img\n class=\"plugin__icon\"\n src={this.data.iconUrl || EXTENSION_ICON_IMG}\n alt=\"plugin extension icon\"\n />\n <div class=\"plugin__details\">\n {titleHasLink ? (\n <h2 class=\"heading-5 has-link\">\n {this.#renderLinkTag(\n titleLinkDataUrl,\n titleText as string,\n \"text-underline\"\n )}\n </h2>\n ) : (\n <h2 class=\"heading-5\">{titleText}</h2>\n )}\n {publisherHasLink ? (\n this.#renderLinkTag(\n publisherDataUrl,\n titleText as string,\n \"text-underline plugin__publisher tiny-semi-bold-l\",\n USER_ICON\n )\n ) : (\n <p class=\"plugin__publisher tiny-semi-bold-l\">\n <ch-image src={USER_ICON} class=\"icon-md\"></ch-image>\n {publisherText}\n </p>\n )}\n\n <p class=\"plugin__description\">{this.data.description}</p>\n <div class=\"buttons-spacer plugin__actions-container\">\n {renderActionButtons ? (\n this.#renderActionButtons()\n ) : (\n // installed and no updates\n <p class=\"installed-container subtitle-semi-bold-s\">\n <ch-image\n src={CHECK_CIRCLE_ICON}\n class=\"icon-md\"\n ></ch-image>\n {this.#componentLocale.actions.installed}\n </p>\n )}\n {this.data.installed && this.#renderUninstallButton()}\n </div>\n </div>\n </header>\n <div class=\"main\">\n {this.docsTabModel.length > 0 && (\n <ch-tab-render\n class=\"tab docsTab scrollable\"\n tabListPosition=\"block-start\"\n overflow=\"auto\"\n contain=\"size\"\n model={this.docsTabModel}\n onSelectedItemChange={this.#tabSelectionChangedHandler}\n selectedId={this.selectedTabId}\n >\n {this.#renderDocSectionsSlots()}\n </ch-tab-render>\n )}\n </div>\n <div class=\"aside spacing-body scrollable\">\n {this.#renderAsideContent()}\n </div>\n </section>\n {/* <slot></slot> */}\n </Host>\n );\n }\n}\n\n// plugin-details.types.ts\n\nexport type LinkData = {\n text: string;\n url: string;\n};\n\nexport type PluginFieldData = {\n name?: string;\n value: string | LinkData;\n};\n\nexport type PluginInfoCategoryData = {\n name: string;\n fields: PluginFieldData[];\n displayAsTags: boolean;\n};\n\nexport type DocSectionData = {\n name: string;\n content: string;\n};\n\nexport type PluginDetailsData = {\n id: string;\n name: string | LinkData;\n publisher: string | LinkData;\n installed: boolean;\n updateVersion?: string;\n versions: string[];\n iconUrl: string;\n description: string;\n docSections: DocSectionData[];\n infoCategories: PluginInfoCategoryData[];\n};\n"],"mappings":"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"}
|
|
@@ -54,39 +54,36 @@ const formatDate = (e, t = "date-time") => {
|
|
|
54
54
|
const u = String(e.getMonth() + 1).padStart(2, "0");
|
|
55
55
|
const l = String(e.getDate()).padStart(2, "0");
|
|
56
56
|
const d = String(e.getHours()).padStart(2, "0");
|
|
57
|
-
const
|
|
58
|
-
const
|
|
57
|
+
const f = String(e.getMinutes()).padStart(2, "0");
|
|
58
|
+
const $ = `${d}:${f}`;
|
|
59
59
|
if (t === "date-time") {
|
|
60
60
|
o += ` ${e.toLocaleTimeString()}`;
|
|
61
61
|
} else if (t === "date-time-short") {
|
|
62
62
|
// No seconds
|
|
63
|
-
|
|
64
|
-
o = `${i}-${u}-${l} ${f}`;
|
|
65
|
-
} else {
|
|
66
|
-
o = `${u}/${l}/${i} ${f}`;
|
|
67
|
-
}
|
|
63
|
+
o = `${i}/${u}/${l} ${$}`;
|
|
68
64
|
} else {
|
|
65
|
+
// pretty
|
|
69
66
|
const t = daysFromToday(e);
|
|
70
67
|
const s = new Date;
|
|
71
68
|
const r = s.getFullYear();
|
|
72
69
|
if (isToday(e)) {
|
|
73
|
-
return `Today ${
|
|
70
|
+
return `Today ${$}`;
|
|
74
71
|
} else if (isYesterday(e)) {
|
|
75
|
-
return `Yesterday ${
|
|
72
|
+
return `Yesterday ${$}`;
|
|
76
73
|
} else if (t <= 7) {
|
|
77
74
|
// If one week or less, just show the day of the week, and the time
|
|
78
75
|
const t = n[e.getDay()];
|
|
79
|
-
return `${t} ${
|
|
76
|
+
return `${t} ${$}`;
|
|
80
77
|
} else if (r === i) {
|
|
81
78
|
// If current year, show day number and month name. Example: November 17th
|
|
82
79
|
if (c === "es-ES") {
|
|
83
80
|
o = `${l} de ${e.toLocaleString("es-ES", {
|
|
84
81
|
month: "long"
|
|
85
|
-
})} ${
|
|
82
|
+
})} ${$}`;
|
|
86
83
|
} else {
|
|
87
84
|
o = `${e.toLocaleString("en-US", {
|
|
88
85
|
month: "long"
|
|
89
|
-
})} ${l} ${
|
|
86
|
+
})} ${l} ${$}`;
|
|
90
87
|
}
|
|
91
88
|
} else {
|
|
92
89
|
// Display date as usual
|
|
@@ -143,4 +140,4 @@ const renderChCheckboxItems = (n, t, s) => n === null || n === void 0 ? void 0 :
|
|
|
143
140
|
}));
|
|
144
141
|
|
|
145
142
|
export { closeOnOutsideClickHandler as c, formatDate as f, hiChar as h, mapOptionsToComboBoxItemModel as m, renderChCheckboxItems as r };
|
|
146
|
-
//# sourceMappingURL=p-
|
|
143
|
+
//# sourceMappingURL=p-1972b953.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["daysOfWeek","daysFromToday","date","today","Date","timeDifference","getTime","daysDifference","Math","floor","isToday","toDateString","isYesterday","yesterday","setDate","getDate","formatDate","type","formattedDate","undefined","dateIsValid","locale","lang","_a","document","getElementsByTagName","getAttribute","valueOf","toLocaleDateString","year","getFullYear","month","String","getMonth","padStart","day","hours","getHours","minutes","getMinutes","time","toLocaleTimeString","daysPassedFromToday","currentYear","getDay","toLocaleString","escapeRegExp","str","replace","hiChar","text","filterValue","escapedFilterValue","re","RegExp","h","innerHTML","closeOnOutsideClickHandler","eventInfo","ref","composedPath","includes","mapOptionsToComboBoxItemModel","options","map","option","value","id","caption","label","renderChCheckboxItems","frontEndCheckboxInputHandler","checkedIds","find","name","class","checkedValue","disabled","onInput","startImgSrc","iconName","key"],"sources":["src/common/helpers.tsx"],"sourcesContent":["import { h } from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n ComboBoxModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\nexport type ChCheckboxArray = HTMLChCheckboxElement[] | null;\n\nimport { GxOption } from \"./types\";\n\nconst daysOfWeek = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n];\n\n/**\n * @param element an HTMLElement\n * @returns an alphabetically ordered array of all the parts and exportparts the element contains.\n */\nexport const getElementSelectorParts = (element: HTMLElement) => {\n const queries: string[] = [];\n const elementParts = element.shadowRoot?.querySelectorAll(`[part]`);\n const elementExportParts =\n element.shadowRoot?.querySelectorAll(`[exportparts]`);\n\n elementParts?.forEach(el => {\n queries.push(\n `${element.tagName.toLowerCase()}::part(${el.getAttribute(\"part\")})`\n );\n });\n elementExportParts?.forEach(el => {\n queries.push(\n ...[\n ...el.getAttribute(\"exportparts\").matchAll(/(?:[\\w-]+:)?([\\w-]+)/g)\n ].map(item => `${element.tagName.toLowerCase()}::part(${item[1]})`)\n );\n });\n\n return queries.sort();\n};\n\n/**\n * @param selector a part selector\n * @returns A reference to the element the part belongs to.\n */\nexport const querySelectorPart = (selector: string) => {\n const querySelectorDeep = (\n element: HTMLElement,\n parts: string\n ): HTMLElement => {\n const shadow = element.shadowRoot;\n const partList = parts.split(\" \");\n\n const partElement: HTMLElement = shadow.querySelector(\n partList.map(partName => `[part~=\"${partName}\"]`).join(\"\")\n );\n if (partElement) {\n return partElement;\n }\n\n const exportPartElement: HTMLElement = shadow.querySelector(\n partList.map(partName => `[exportparts*=\"${partName}\"]`).join(\"\")\n );\n if (exportPartElement) {\n const exportPartList: string[] = [];\n const exportparts = exportPartElement.getAttribute(\"exportparts\");\n\n partList.forEach(partItem => {\n const exportPartName = exportparts.match(\n `(?:([\\\\w-]+):)?(${partItem})`\n )[1];\n if (exportPartName) {\n exportPartList.push(exportPartName);\n }\n });\n\n if (partList.length === exportPartList.length) {\n return querySelectorDeep(exportPartElement, exportPartList.join(\" \"));\n }\n }\n\n return null;\n };\n\n const selectorItems = selector.match(\"(.*)::part\\\\(([^)]+)\\\\)\");\n const entity = selectorItems[1];\n const partName = selectorItems[2];\n\n return querySelectorDeep(document.querySelector(entity), partName);\n};\n\nconst daysFromToday = (date: Date): number => {\n const today = new Date();\n // To calculate the time difference of two dates\n const timeDifference = today.getTime() - date.getTime();\n // To calculate the no. of days between two dates\n const daysDifference = timeDifference / (1000 * 3600 * 24);\n return Math.floor(daysDifference);\n};\n\n// - - - - - - - - - - - -\n// Date Functions\n// - - - - - - - - - - - -\n\nconst isToday = (date: Date): boolean => {\n const today = new Date();\n if (today.toDateString() === date.toDateString()) {\n return true;\n }\n return false;\n};\n\nconst isYesterday = (date: Date): boolean => {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n if (yesterday.toDateString() === date.toDateString()) {\n return true;\n }\n return false;\n};\n\nexport const formatDate = (\n date: Date,\n type: FormatDateType = \"date-time\"\n): string => {\n let formattedDate;\n // validate date\n // undefined or null\n if (date === undefined || date === null) {\n return \"\";\n }\n // If the date object is invalid it will return 'NaN' on getTime() and NaN is never equal to itself\n const dateIsValid = date.getTime() === date.getTime();\n if (!dateIsValid) {\n return \"Invalid date\";\n }\n let locale = \"en-US\";\n const lang = document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf();\n if (lang === \"es\") {\n locale = \"es-ES\";\n }\n formattedDate = date.toLocaleDateString(locale);\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n const time = `${hours}:${minutes}`;\n if (type === \"date-time\") {\n formattedDate += ` ${date.toLocaleTimeString()}`;\n } else if (type === \"date-time-short\") {\n // No seconds\n formattedDate = `${year}/${month}/${day} ${time}`;\n } else {\n // pretty\n const daysPassedFromToday = daysFromToday(date);\n const today = new Date();\n const currentYear = today.getFullYear();\n if (isToday(date)) {\n return `Today ${time}`;\n } else if (isYesterday(date)) {\n return `Yesterday ${time}`;\n } else if (daysPassedFromToday <= 7) {\n // If one week or less, just show the day of the week, and the time\n const day = daysOfWeek[date.getDay()];\n return `${day} ${time}`;\n } else if (currentYear === year) {\n // If current year, show day number and month name. Example: November 17th\n if (locale === \"es-ES\") {\n formattedDate = `${day} de ${date.toLocaleString(\"es-ES\", {\n month: \"long\"\n })} ${time}`;\n } else {\n formattedDate = `${date.toLocaleString(\"en-US\", {\n month: \"long\"\n })} ${day} ${time}`;\n }\n } else {\n // Display date as usual\n formattedDate = formatDate(date, \"date-time-short\");\n }\n }\n return formattedDate;\n};\n\nexport type FormatDateType =\n | \"date\"\n | \"date-time\"\n | \"date-time-short\"\n | \"pretty\";\n\n// - - - - - - - - - - - -\n// /End of Date Functions\n// - - - - - - - - - - - -\n\n/* Count the total tree nodes (by default it does not count the first level nodes)*/\nexport const countTreeItems = (\n treeModel: TreeViewItemModel[],\n children = false\n): number => {\n let totalNodes = 0;\n treeModel.forEach(node => {\n children && totalNodes++;\n if (node.items) {\n totalNodes += countTreeItems(node.items, true);\n }\n });\n return totalNodes;\n};\n\n/**\n * @description it evaluates the initial selected combo item\n * @param options an array of GxOption\n * @returns the initial combo value, which in this case is the id\n */\nexport const setInitialComboValue = (options: GxOption[]): string => {\n const selected = options.find(option => option.selected);\n if (selected) {\n return selected.value || selected.id;\n } else {\n return options[0].value || options[0].id;\n }\n};\n\nexport const escapeRegExp = (str: string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n/**\n * @description this function highlights the character(s) that match(es) the filter value.\n * hiChar comes from (hi)light (Char)acters\n * @param text the string to find the filter value on\n * @param filterValue the filter value\n * @returns a span element\n */\nexport const hiChar = function (text: string, filterValue: string) {\n if (text && filterValue) {\n const escapedFilterValue = escapeRegExp(filterValue);\n const re = new RegExp(escapedFilterValue, \"gi\");\n return (\n <span\n innerHTML={text.replace(re, '<span class=\"hiChar\">$&</span>')}\n ></span>\n );\n } else {\n return text;\n }\n};\n\nexport const closeOnOutsideClickHandler = (\n eventInfo: PointerEvent,\n ref: HTMLElement\n): true | void => {\n if (!eventInfo.composedPath().includes(ref)) {\n return true;\n }\n};\n\nexport const mapOptionsToComboBoxItemModel = (\n options: GxOption[]\n): ComboBoxModel =>\n options.map(option => ({\n value: option.id,\n caption: option.label\n // startImgSrc: option.iconName\n }));\n\nexport const renderChCheckboxItems = (\n options: GxOption[] | undefined,\n frontEndCheckboxInputHandler: (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => void,\n checkedIds: string[]\n): HTMLChCheckboxElement[] => {\n return options?.map(option => {\n const value = checkedIds?.find(\n id => option.value === id || option.id === id\n );\n return (\n <ch-checkbox\n name={option.name}\n class=\"checkbox\"\n checkedValue={option.value || option.id}\n caption={option.label}\n disabled={option.disabled}\n value={value}\n onInput={frontEndCheckboxInputHandler}\n startImgSrc={option.iconName}\n key={option.value || option.id}\n ></ch-checkbox>\n );\n });\n};\n"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { a as l } from "./p-8c2e9df4.js";
|
|
|
8
8
|
|
|
9
9
|
import { F as n } from "./p-13feb5cf.js";
|
|
10
10
|
|
|
11
|
-
import { c as d, h as g, f as c } from "./p-
|
|
11
|
+
import { c as d, h as g, f as c } from "./p-1972b953.js";
|
|
12
12
|
|
|
13
13
|
const h = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.pill-tag{padding:1px 4px;border-radius:2px;min-inline-size:40px;text-align:center;margin-inline-end:10px;font-size:11px}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}:host{display:block}.module-folder::part(wrapper){padding-block:1.5px;margin-block-start:var(--gxg-label-separation-vertical)}.filter--padding{padding:var(--gx-ide-container__padding)}.filter--gap{gap:var(--gx-ide-grid-row-gap)}.filter{display:flex;flex-direction:column}.filter__first-row{display:flex;gap:var(--gx-ide-grid-column-gap)}.filter__first-row .name,.filter__first-row .module-folder{flex:1}.filter__first-row .filter-btn{flex:none}.filter__first-row .second-column{display:flex;flex-direction:row;align-items:end;gap:var(--gx-ide-grid-column-gap)}.filter__first-row>*{flex:1}.filter .checkboxes-label-wrapper{display:flex;flex-direction:column;gap:0}.filter .checkboxes-wrapper{display:flex;gap:var(--gx-ide-grid-column-gap);border-radius:var(--border-radius-sm);height:var(--gxg-form-text-height);box-sizing:border-box;align-items:center;padding-inline-start:var(--mer-spacing--2xs)}.filter .user{max-width:100% !important}.filters-outer-wrapper{display:grid;grid-template-rows:1fr;transition:grid-template-rows 200ms}.filters-outer-wrapper--hidden{grid-template-rows:0fr}.filters-inner-wrapper{padding-top:var(--gx-ide-container__padding);display:grid;overflow:hidden;grid-template-columns:repeat(12, 1fr);grid-template-rows:repeat(3, 1fr)}.filters-inner-wrapper .search-contents{grid-area:1/1/2/5}.filters-inner-wrapper .category{grid-area:1/5/2/9}.filters-inner-wrapper .options{grid-area:1/9/2/13}.filters-inner-wrapper .date-time{grid-area:2/1/3/5}.filters-inner-wrapper .after-date-time{grid-area:2/5/3/9}.filters-inner-wrapper .user{grid-area:2/9/3/13}.filters-inner-wrapper .style{grid-area:3/1/4/4}.filters-inner-wrapper .language{grid-area:3/4/4/7}.filters-inner-wrapper .density{grid-area:3/7/4/10}.filters-inner-wrapper .layer{grid-area:3/10/4/13}gxg-date-picker{position:absolute;inline-size:calc(33% - 16px)}gxg-date-picker::part(input){block-size:26px}.master-wrapper{height:100%;position:relative;display:grid;grid-template-rows:auto 1fr}.grid-images-container{border-top:1px solid var(--gx-ide-container-border-color);display:grid;grid-template-columns:1fr 220px;grid-column-gap:0;grid-row-gap:0;overflow:auto}.images-information__header{display:flex;align-items:center;gap:var(--gx-ide-grid-column-gap)}.images-information__header-title{flex:none}.images-grid{grid-template-columns:repeat(2, 1fr);grid-column-gap:0}.images-grid>:nth-child(1){grid-area:1/1/1/3}.images-container .image-item{display:inline-block;width:50%;height:110px;}.images-container .image-item__container{padding:var(--gx-ide-container__padding)}.images-container .image-item__container img{width:100%;height:100%;object-fit:scale-down}.images-container .image-item__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;width:100%;display:block;font-size:10px;padding:4px 8px;box-sizing:border-box;background-color:var(--gray-00)}.images-container .image-item:nth-child(odd) .image-item__name{border-inline-end:1px solid var(--gray-02)}.objects-count{grid-template-columns:repeat(2, 1fr)}.objects-count *:nth-child(2){justify-content:flex-end;align-items:flex-start}.hiChar{color:var(--mer-color__primary--200);filter:brightness(1.3)}.tabular-grid-ww-images ch-tabular-grid-cell:is(:nth-child(4)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-inline-size:0}";
|
|
14
14
|
|
|
@@ -608,4 +608,4 @@ const b = class {
|
|
|
608
608
|
b.style = h;
|
|
609
609
|
|
|
610
610
|
export { b as gx_ide_ww_images };
|
|
611
|
-
//# sourceMappingURL=p-
|
|
611
|
+
//# sourceMappingURL=p-24573081.entry.js.map
|