@genexus/genexus-ide-ui 0.0.115 → 0.0.117
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/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +138 -0
- package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js.map +1 -0
- package/dist/cjs/{gx-ide-container_3.cjs.entry.js → gx-ide-container_2.cjs.entry.js} +127 -53
- package/dist/cjs/gx-ide-container_2.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +26 -24
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-title_2.cjs.entry.js +77 -0
- package/dist/cjs/gx-ide-title_2.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/components/{bpm-application-declaration → bpm/application-declaration}/bpm-app-declaration.js +19 -19
- package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js.map +1 -0
- package/dist/collection/components/bpm/application-declaration/helpers.js.map +1 -0
- package/dist/collection/components/bpm/assign-roles/assign-roles.css +557 -0
- package/dist/collection/components/bpm/assign-roles/assign-roles.js +265 -0
- package/dist/collection/components/bpm/assign-roles/assign-roles.js.map +1 -0
- package/dist/collection/components/bpm/assign-roles/gx-ide-assets/bpm-assign-roles/langs/bpm-assign-roles.lang.en.json +24 -0
- package/dist/collection/components/bpm/assign-roles/gx-ide-assets/bpm-assign-roles/langs/bpm-assign-roles.lang.ja.json +3 -0
- package/dist/collection/components/bpm/assign-roles/gx-ide-assets/bpm-assign-roles/langs/bpm-assign-roles.lang.zh.json +3 -0
- package/dist/collection/components/modules/manage-module-references/manage-module-references.css +4 -0
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js +29 -26
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
- package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
- package/dist/components/gx-ide-bpm-assign-roles.d.ts +11 -0
- package/dist/components/gx-ide-bpm-assign-roles.js +236 -0
- package/dist/components/gx-ide-bpm-assign-roles.js.map +1 -0
- package/dist/components/gx-ide-manage-module-references.js +27 -24
- package/dist/components/gx-ide-manage-module-references.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js +134 -0
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js.map +1 -0
- package/dist/esm/{gx-ide-container_3.entry.js → gx-ide-container_2.entry.js} +128 -53
- package/dist/esm/gx-ide-container_2.entry.js.map +1 -0
- package/dist/esm/gx-ide-manage-module-references.entry.js +26 -24
- package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-title_2.entry.js +72 -0
- package/dist/esm/gx-ide-title_2.entry.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.css +2 -2
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/bpm-assign-roles/langs/bpm-assign-roles.lang.en.json +24 -0
- package/dist/genexus-ide-ui/gx-ide-assets/bpm-assign-roles/langs/bpm-assign-roles.lang.ja.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/bpm-assign-roles/langs/bpm-assign-roles.lang.zh.json +3 -0
- package/dist/genexus-ide-ui/{p-9d7a1451.entry.js → p-3ad793aa.entry.js} +89 -165
- package/dist/genexus-ide-ui/p-3ad793aa.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-6b0ea3c8.entry.js → p-7a5810d6.entry.js} +192 -116
- package/dist/genexus-ide-ui/p-7a5810d6.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-874d336e.entry.js +232 -0
- package/dist/genexus-ide-ui/p-874d336e.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-ef061e8e.entry.js → p-b19e8dbf.entry.js} +31 -27
- package/dist/genexus-ide-ui/p-b19e8dbf.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-b4294776.entry.js.map +1 -1
- package/dist/types/components/{bpm-application-declaration → bpm/application-declaration}/bpm-app-declaration.d.ts +1 -1
- package/dist/types/components/bpm/assign-roles/assign-roles.d.ts +59 -0
- package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +5 -1
- package/dist/types/components.d.ts +132 -58
- package/package.json +3 -3
- package/dist/cjs/gx-ide-container_3.cjs.entry.js.map +0 -1
- package/dist/cjs/gxg-form-checkbox.cjs.entry.js +0 -151
- package/dist/cjs/gxg-form-checkbox.cjs.entry.js.map +0 -1
- package/dist/collection/components/bpm-application-declaration/bpm-app-declaration.js.map +0 -1
- package/dist/collection/components/bpm-application-declaration/helpers.js.map +0 -1
- package/dist/esm/gx-ide-container_3.entry.js.map +0 -1
- package/dist/esm/gxg-form-checkbox.entry.js +0 -147
- package/dist/esm/gxg-form-checkbox.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-6b0ea3c8.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-9d7a1451.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-ef061e8e.entry.js.map +0 -1
- /package/dist/collection/components/{bpm-application-declaration → bpm/application-declaration}/bpm-app-declaration.css +0 -0
- /package/dist/collection/components/{bpm-application-declaration → bpm/application-declaration}/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.en.json +0 -0
- /package/dist/collection/components/{bpm-application-declaration → bpm/application-declaration}/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.ja.json +0 -0
- /package/dist/collection/components/{bpm-application-declaration → bpm/application-declaration}/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.zh.json +0 -0
- /package/dist/collection/components/{bpm-application-declaration → bpm/application-declaration}/gx-ide-assets/bpm-app-declaration/shortcuts.json +0 -0
- /package/dist/collection/components/{bpm-application-declaration → bpm/application-declaration}/helpers.js +0 -0
- /package/dist/types/components/{bpm-application-declaration → bpm/application-declaration}/helpers.d.ts +0 -0
|
@@ -4,7 +4,7 @@ import { a } from "./p-350f49ac.js";
|
|
|
4
4
|
|
|
5
5
|
import { L as s } from "./p-74d59062.js";
|
|
6
6
|
|
|
7
|
-
const l = ':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)}.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-container{display:flex;height:100%;width:100%;box-sizing:border-box}p{margin:0}p,ul{font-size:var(--font-size-lg);margin:0}p{line-height:1.6em}.header{align-items:center;grid-template-columns:1fr auto;grid-template-rows:1fr}.main{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;height:100%;overflow:auto}ch-grid-columnset{display:none}ch-grid-row[selected] gxg-icon[data-action=mercury-primary-disabled]{filter:brightness(2)}.grid-cell-module__info{display:flex;flex-direction:column;align-items:flex-start;gap:var(--mer-spacing--xxxs)}.grid-cell-module__name{font-weight:var(--mer-font__weight--bold)}.grid-cell-module__name,.grid-cell-module__description{line-height:1.55em}.grid-container{height:100%;overflow:auto}.grid-container gx-ide-empty-state{height:100%}.servers-container{display:none;height:100%}.servers-container__header{display:flex;align-items:center;justify-content:space-between;padding:var(--gxg-list-box-main__padding) var(--gxg-list-box-main__padding) 0 var(--gxg-list-box-main__padding)}.servers-container__header gxg-button{width:100%}.modules__header{padding:var(--gxg-list-box-main__padding);display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.modules__combo-container{display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.modules__combo{display:flex;flex-direction:row;gap:var(--mer-spacing--xs)}.modules__combo gxg-combo-box{flex:1}.modules__container{border-inline-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color);display:grid;grid-template-rows:auto 1fr;height:100%;overflow:auto}.modules__main{display:grid;grid-template-rows:auto 1fr;height:100%;overflow:auto}.modules__main-header{display:flex;padding:var(--mer-spacing--xs);flex-direction:column;gap:var(--mer-spacing--xs)}.module-info{display:grid;grid-template-rows:auto 1fr;height:100%;overflow:auto}.module-info__name{display:flex;align-items:center;gap:var(--mer-spacing--sm);--ds-icon-size-box--regular:24px;--ds-icon-size--regular:24px;font-weight:var(--mer-font__weight--bold)}.module-info__header{padding:var(--gx-ide-container__padding);display:flex;flex-direction:column;gap:var(--mer-spacing--xs);border-block-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color)}.module-info__action-container{display:flex;flex-direction:row;align-items:center;gap:var(--mer-spacing--xs)}.module-info__action-container:before{content:"";width:var(--mer-spacing--xs);height:var(--mer-spacing--xs);border-radius:50%;display:block;background-color:var(--mer-icon__primary--disabled)}.module-info__action-container--installed:before{background-color:var(--mer-icon__primary)}.module-info__alert-message{margin-block-start:var(--mer-spacing--xxs);background-color:var(--mer-color__tinted-yellow--5);color:var(--mer-text__on-elevation);border:var(--mer-border__width--sm) solid var(--mer-border-color__warning);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--xs) var(--mer-spacing--md)}.module-info__divider{width:calc(100% - var(--gx-ide-container__padding) * 4);padding:0 var(--gx-ide-container__padding);margin:0 auto;border:0;border-block-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color)}.module-info__properties{display:flex;flex-direction:column;padding:var(--gx-ide-container__padding);gap:var(--mer-spacing--xs);overflow:auto}.md-property{display:grid;gap:var(--mer-spacing--xs)}.md-property--inline{grid-template-columns:auto 1fr}.md-property__key{font-weight:var(--font-weight-bold);max-width:150px}.md-property__value{font-size:var(--mer-font__size--xxs)}.md-property__key>*,.md-property__value>*{display:inline-block}.md-property__list{display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.md-property__list>ul{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:var(--mer-spacing--xxs);margin-inline-start:var(--mer-spacing--xs)}.md-property__list>ul li{position:relative;padding-inline-start:12px;line-height:var(--ds-base-font-line-height--comfortable)}.md-property__list>ul li::before{content:"";position:absolute;left:0;top:7px;display:inline-block;width:var(--mer-spacing--xxs);height:var(--mer-spacing--xxs);background-color:var(--mer-text__on-surface)}.md-property,.md-property__list{border-block-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color);padding-block-end:var(--mer-spacing--xs)}.md-property:last-child,.md-property__list:last-child{border-block-end:0;padding-block-end:0}gxg-ide-loader{border-radius:var(--mer-border__radius--md)}';
|
|
7
|
+
const l = ':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)}.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-container{display:flex;height:100%;width:100%;box-sizing:border-box}p{margin:0}p,ul{font-size:var(--font-size-lg);margin:0}p{line-height:1.6em}.header{align-items:center;grid-template-columns:1fr auto;grid-template-rows:1fr}.main{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;height:100%;overflow:auto}ch-grid-columnset{display:none}ch-grid-row[selected] gxg-icon[data-action=mercury-primary-disabled]{filter:brightness(2)}.grid-cell-module__info{display:flex;flex-direction:column;align-items:flex-start;gap:var(--mer-spacing--xxxs)}.grid-cell-module__name{font-weight:var(--mer-font__weight--bold)}.grid-cell-module__name,.grid-cell-module__description{line-height:1.55em}.grid-container{height:100%;overflow:auto}.grid-container gx-ide-empty-state{height:100%}.servers-container{display:none;height:100%}.servers-container__header{display:flex;align-items:center;justify-content:space-between;padding:var(--gxg-list-box-main__padding) var(--gxg-list-box-main__padding) 0 var(--gxg-list-box-main__padding)}.servers-container__header gxg-button{width:100%}.modules__header{padding:var(--gxg-list-box-main__padding);display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.modules__combo-container{display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.modules__server-commands{display:flex;gap:var(--mer-spacing--xs)}.modules__combo{display:flex;flex-direction:row;gap:var(--mer-spacing--xs)}.modules__combo gxg-combo-box{flex:1}.modules__container{border-inline-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color);display:grid;grid-template-rows:auto 1fr;height:100%;overflow:auto}.modules__main{display:grid;grid-template-rows:auto 1fr;height:100%;overflow:auto}.modules__main-header{display:flex;padding:var(--mer-spacing--xs);flex-direction:column;gap:var(--mer-spacing--xs)}.module-info{display:grid;grid-template-rows:auto 1fr;height:100%;overflow:auto}.module-info__name{display:flex;align-items:center;gap:var(--mer-spacing--sm);--ds-icon-size-box--regular:24px;--ds-icon-size--regular:24px;font-weight:var(--mer-font__weight--bold)}.module-info__header{padding:var(--gx-ide-container__padding);display:flex;flex-direction:column;gap:var(--mer-spacing--xs);border-block-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color)}.module-info__action-container{display:flex;flex-direction:row;align-items:center;gap:var(--mer-spacing--xs)}.module-info__action-container:before{content:"";width:var(--mer-spacing--xs);height:var(--mer-spacing--xs);border-radius:50%;display:block;background-color:var(--mer-icon__primary--disabled)}.module-info__action-container--installed:before{background-color:var(--mer-icon__primary)}.module-info__alert-message{margin-block-start:var(--mer-spacing--xxs);background-color:var(--mer-color__tinted-yellow--5);color:var(--mer-text__on-elevation);border:var(--mer-border__width--sm) solid var(--mer-border-color__warning);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--xs) var(--mer-spacing--md)}.module-info__divider{width:calc(100% - var(--gx-ide-container__padding) * 4);padding:0 var(--gx-ide-container__padding);margin:0 auto;border:0;border-block-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color)}.module-info__properties{display:flex;flex-direction:column;padding:var(--gx-ide-container__padding);gap:var(--mer-spacing--xs);overflow:auto}.md-property{display:grid;gap:var(--mer-spacing--xs)}.md-property--inline{grid-template-columns:auto 1fr}.md-property__key{font-weight:var(--font-weight-bold);max-width:150px}.md-property__value{font-size:var(--mer-font__size--xxs)}.md-property__key>*,.md-property__value>*{display:inline-block}.md-property__list{display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.md-property__list>ul{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:var(--mer-spacing--xxs);margin-inline-start:var(--mer-spacing--xs)}.md-property__list>ul li{position:relative;padding-inline-start:12px;line-height:var(--ds-base-font-line-height--comfortable)}.md-property__list>ul li::before{content:"";position:absolute;left:0;top:7px;display:inline-block;width:var(--mer-spacing--xxs);height:var(--mer-spacing--xxs);background-color:var(--mer-text__on-surface)}.md-property,.md-property__list{border-block-end:var(--mer-border__width--sm) solid var(--gx-ide-container-border-color);padding-block-end:var(--mer-spacing--xs)}.md-property:last-child,.md-property__list:last-child{border-block-end:0;padding-block-end:0}gxg-ide-loader{border-radius:var(--mer-border__radius--md)}';
|
|
8
8
|
|
|
9
9
|
const n = class {
|
|
10
10
|
constructor(r) {
|
|
@@ -58,12 +58,12 @@ const n = class {
|
|
|
58
58
|
};
|
|
59
59
|
/**
|
|
60
60
|
* Change the server selected value in response to callbackServerSelected callback
|
|
61
|
-
*/ this.serverSelectedCallbackHandler = async e => {
|
|
61
|
+
*/ this.serverSelectedCallbackHandler = async (e, t) => {
|
|
62
62
|
if (this.serverSelectedCallback) {
|
|
63
63
|
this.loadingServer = true;
|
|
64
|
-
const
|
|
64
|
+
const i = await this.serverSelectedCallback(e, t);
|
|
65
65
|
this.selectedServerId = e;
|
|
66
|
-
this.modulesAll = [ ...
|
|
66
|
+
this.modulesAll = [ ...i ];
|
|
67
67
|
this.filterModulesByType("browse");
|
|
68
68
|
this.selectedModule = this.filteredModules[0];
|
|
69
69
|
this.loadingServer = false;
|
|
@@ -81,6 +81,7 @@ const n = class {
|
|
|
81
81
|
this.filteredModules = this.modulesAll;
|
|
82
82
|
}
|
|
83
83
|
};
|
|
84
|
+
this.handleFilterChangeHandler = e => this.handleFilterChange(e);
|
|
84
85
|
/**
|
|
85
86
|
* Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback
|
|
86
87
|
*/ this.executeActionCallbackHandler = async e => {
|
|
@@ -88,7 +89,7 @@ const n = class {
|
|
|
88
89
|
const t = this.modulesSelectedVersion.get(e.id);
|
|
89
90
|
const i = await this.executeActionCallback(this.selectedServerId, e.id, t, this.getActionFromCurrentModuleVersion(), this.onProgress);
|
|
90
91
|
if (i) {
|
|
91
|
-
this.serverSelectedCallbackHandler(this.selectedServerId);
|
|
92
|
+
this.serverSelectedCallbackHandler(this.selectedServerId, true);
|
|
92
93
|
}
|
|
93
94
|
this.actionCompleted = i;
|
|
94
95
|
}
|
|
@@ -127,6 +128,11 @@ const n = class {
|
|
|
127
128
|
}
|
|
128
129
|
return o;
|
|
129
130
|
};
|
|
131
|
+
this.moduleActionHandler = () => {
|
|
132
|
+
this.actionCompleted = false;
|
|
133
|
+
this.closeProgressBar = false;
|
|
134
|
+
this.executeActionCallbackHandler(module);
|
|
135
|
+
};
|
|
130
136
|
this.renderModulesGrid = () => i("gxg-grid", {
|
|
131
137
|
noBorder: true,
|
|
132
138
|
fullHeight: true
|
|
@@ -162,11 +168,7 @@ const n = class {
|
|
|
162
168
|
disabled: !this.actionCompleted || this.getModuleData(e, "action") === "incompatible" || this.getModuleData(e, "action") === "not-installable",
|
|
163
169
|
fit: true,
|
|
164
170
|
part: "module-action",
|
|
165
|
-
onClick:
|
|
166
|
-
this.actionCompleted = false;
|
|
167
|
-
this.closeProgressBar = false;
|
|
168
|
-
this.executeActionCallbackHandler(e);
|
|
169
|
-
}
|
|
171
|
+
onClick: this.moduleActionHandler
|
|
170
172
|
}, this.getActionFromCurrentModuleVersion()) : null))))));
|
|
171
173
|
this.renderEmptyStateModules = () => i("gx-ide-empty-state", {
|
|
172
174
|
stateIcon: "mercury/filters",
|
|
@@ -203,13 +205,11 @@ const n = class {
|
|
|
203
205
|
const e = this.getActionFromCurrentModuleVersion();
|
|
204
206
|
let t;
|
|
205
207
|
let r = "module-info__action-container";
|
|
206
|
-
if (e === "
|
|
207
|
-
t = `${this._componentLocale.modulesInformation.moduleProperties.installed}: ${this.selectedModule.currentVersion}`;
|
|
208
|
-
r += ` module-info__action-container--installed`;
|
|
209
|
-
} else if (e === "incompatible" || e === "not-installable") {
|
|
208
|
+
if (e === "incompatible" || e === "not-installable") {
|
|
210
209
|
t = "Can not be installed";
|
|
211
210
|
} else {
|
|
212
|
-
|
|
211
|
+
r += ` module-info__action-container--installed`;
|
|
212
|
+
t = `${this._componentLocale.modulesInformation.moduleProperties.installed}: ${this.selectedModule.currentVersion}`;
|
|
213
213
|
}
|
|
214
214
|
return i("div", {
|
|
215
215
|
class: r
|
|
@@ -227,10 +227,8 @@ const n = class {
|
|
|
227
227
|
};
|
|
228
228
|
this.updateSelectedModuleVersion = e => {
|
|
229
229
|
if (e) {
|
|
230
|
-
this.selectedModule = Object.assign(Object.assign({}, this.selectedModule), {
|
|
231
|
-
currentVersion: e
|
|
232
|
-
});
|
|
233
230
|
this.modulesSelectedVersion.set(this.selectedModule.id, e);
|
|
231
|
+
this.reRenderCounter++;
|
|
234
232
|
}
|
|
235
233
|
};
|
|
236
234
|
this.renderModuleVersions = () => i("div", {
|
|
@@ -257,11 +255,11 @@ const n = class {
|
|
|
257
255
|
};
|
|
258
256
|
this.serverItemSelectedHandler = e => {
|
|
259
257
|
const t = e.detail.value;
|
|
260
|
-
this.serverSelectedCallbackHandler(t);
|
|
258
|
+
this.serverSelectedCallbackHandler(t, false);
|
|
261
259
|
};
|
|
262
260
|
this.serverValueChangedHandler = e => {
|
|
263
261
|
const t = e.detail;
|
|
264
|
-
this.serverSelectedCallbackHandler(t);
|
|
262
|
+
this.serverSelectedCallbackHandler(t, false);
|
|
265
263
|
};
|
|
266
264
|
this.progressBarCloseHandler = () => {
|
|
267
265
|
setTimeout((() => {
|
|
@@ -273,6 +271,9 @@ const n = class {
|
|
|
273
271
|
}), 400);
|
|
274
272
|
// delay to force the footer line disappear after the top-state-bar has been closed.
|
|
275
273
|
};
|
|
274
|
+
this.reloadServer = () => {
|
|
275
|
+
this.serverSelectedCallbackHandler(this.selectedServerId, true);
|
|
276
|
+
};
|
|
276
277
|
this.modulesAll = [];
|
|
277
278
|
this.filteredModules = [];
|
|
278
279
|
this.selectedModule = undefined;
|
|
@@ -288,13 +289,14 @@ const n = class {
|
|
|
288
289
|
this.progressValue = 0;
|
|
289
290
|
this.progressState = "in-progress";
|
|
290
291
|
this.loadingServer = false;
|
|
292
|
+
this.reRenderCounter = 0;
|
|
291
293
|
this.displayTitle = false;
|
|
292
294
|
this.servers = [];
|
|
293
295
|
this.serverSelectedCallback = undefined;
|
|
294
296
|
this.executeActionCallback = undefined;
|
|
295
297
|
this.addServerCallback = undefined;
|
|
296
298
|
this.serverContextMenuCallback = undefined;
|
|
297
|
-
this.showServerCommands =
|
|
299
|
+
this.showServerCommands = false;
|
|
298
300
|
}
|
|
299
301
|
modulesAllWatcher(e) {
|
|
300
302
|
this.updateModulesSelectedVersion(e);
|
|
@@ -317,7 +319,7 @@ const n = class {
|
|
|
317
319
|
this._componentLocale = await s.getComponentStrings(this.el);
|
|
318
320
|
}
|
|
319
321
|
async componentDidLoad() {
|
|
320
|
-
await this.serverSelectedCallbackHandler(this.servers[0].id);
|
|
322
|
+
await this.serverSelectedCallbackHandler(this.servers[0].id, false);
|
|
321
323
|
}
|
|
322
324
|
// 7.LISTENERS //
|
|
323
325
|
onPropValueChange(e) {
|
|
@@ -361,11 +363,15 @@ const n = class {
|
|
|
361
363
|
value: e.id,
|
|
362
364
|
onItemSelected: this.serverItemSelectedHandler
|
|
363
365
|
}, e.name)))), this.showServerCommands ? i("span", {
|
|
364
|
-
class: "
|
|
366
|
+
class: "modules__server-commands"
|
|
365
367
|
}, i("gxg-button", {
|
|
366
368
|
type: "secondary-icon-only",
|
|
367
369
|
icon: "gemini-tools/show-more-horizontal",
|
|
368
370
|
onClick: this.showModuleMenu
|
|
371
|
+
}), i("gxg-button", {
|
|
372
|
+
type: "secondary-icon-only",
|
|
373
|
+
icon: "gemini-tools/reset",
|
|
374
|
+
onClick: this.reloadServer
|
|
369
375
|
})) : null))), i("div", {
|
|
370
376
|
class: "modules__main"
|
|
371
377
|
}, i("div", {
|
|
@@ -374,9 +380,7 @@ const n = class {
|
|
|
374
380
|
label: this._componentLocale.modules.searchModules,
|
|
375
381
|
labelPosition: "above",
|
|
376
382
|
centerLabel: false,
|
|
377
|
-
onValueChanged:
|
|
378
|
-
this.handleFilterChange(e.detail);
|
|
379
|
-
},
|
|
383
|
+
onValueChanged: this.handleFilterChangeHandler,
|
|
380
384
|
disabled: this.loadingServer
|
|
381
385
|
}), i("gxg-buttons-container", {
|
|
382
386
|
reduced: true,
|
|
@@ -441,4 +445,4 @@ const n = class {
|
|
|
441
445
|
n.style = l;
|
|
442
446
|
|
|
443
447
|
export { n as gx_ide_manage_module_references };
|
|
444
|
-
//# sourceMappingURL=p-
|
|
448
|
+
//# sourceMappingURL=p-b19e8dbf.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["manageModuleReferencesCss","GxManageModuleReferences","this","renderedFirstTime","updateModulesSelectedVersion","modulesAll","selectedServerId","selectedServerIdOnModulesAllUpdate","modulesSelectedVersion","clear","forEach","module","set","id","versions","length","newModule","get","undefined","getActionFromCurrentModuleVersion","action","getModuleData","selectedModule","onProgress","message","progress","state","data","selectedModuleAction","Object","assign","progressValue","progressState","handleModuleChange","event","selectedModuleId","detail","rowsId","foundModule","find","item","serverSelectedCallbackHandler","async","reload","serverSelectedCallback","loadingServer","resolvedObjects","filterModulesByType","filteredModules","handleFilterChange","value","trimmedValue","trim","lowerCaseValue","toLowerCase","filter","selectedVersionName","includes","handleFilterChangeHandler","e","executeActionCallbackHandler","executeActionCallback","moduleSelectedVersionId","actionCompleted","type","currentVersion","version","showModuleMenu","serverContextMenuCallback","buttonBoundingClientRect","target","getBoundingClientRect","selection","clientX","x","clientY","y","dataType","selectedVersionId","selectedVersion","selectedVersionData","moduleActionHandler","closeProgressBar","renderModulesGrid","h","noBorder","fullHeight","rowSelectionMode","part","class","onSelectionChanged","settingable","size","map","rowid","key","selected","moduleVersionIconColor","color","disabled","fit","onClick","renderEmptyStateModules","stateIcon","stateTitle","_componentLocale","modules","noModulesFilter","moduleAction","renderModuleName","renderModuleAlertMessage","alertMessage","renderModuleAction","actionDescription","cssClass","modulesInformation","moduleProperties","installed","moduleVersionsValueChangedHandler","versionId","updateSelectedModuleVersion","moduleVersionsItemChangedHandler","reRenderCounter","renderModuleVersions","label","availableVersions","labelPosition","centerLabel","onValueChanged","onItemSelected","selectedButtonChangedHandler","replace","serverItemSelectedHandler","serverId","serverValueChangedHandler","progressBarCloseHandler","setTimeout","reloadServer","Map","modulesAllWatcher","loadingServerHandler","loading","loaderEl","show","componentDidRender","componentDidRenderFirstTime","emit","componentName","componentWillLoad","Locale","getComponentStrings","el","componentDidLoad","servers","onPropValueChange","newModulesData","validate","render","Host","noContentPadding","noAboveFooterPadding","noBorderAboveFooter","containerTitle","displayTitle","selectServer","disableFilter","name","showServerCommands","icon","searchModules","reduced","fullWidth","onSelectedButtonChanged","buttonsContainer","browse","updates","ref","serversDetail","renderModuleDataProperties","emptyState","title","stateDescription","description","slot","stateType","caption","progressBar","defaultCaption","active","closeType","closedCallback","loaderTitle","container","borderRadius"],"sources":["src/components/modules/manage-module-references/manage-module-references.scss?tag=gx-ide-manage-module-references&encapsulation=shadow","src/components/modules/manage-module-references/manage-module-references.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n\n/*--- General ---*/\np,\nul {\n font-size: var(--font-size-lg);\n margin: 0;\n}\np {\n line-height: 1.6em;\n}\n/*--- Header ---*/\n.header {\n align-items: center;\n grid-template-columns: 1fr auto;\n grid-template-rows: 1fr;\n}\n.main {\n display: grid;\n //grid-template-columns: 1fr 2fr 1fr;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr;\n height: 100%;\n overflow: auto;\n}\nch-grid-columnset {\n display: none;\n}\nch-grid-row[selected] {\n gxg-icon[data-action=\"mercury-primary-disabled\"] {\n //WA to improve visibility\n filter: brightness(2);\n }\n}\n.grid-cell-module {\n &__info {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--mer-spacing--xxxs);\n }\n &__name {\n font-weight: var(--mer-font__weight--bold);\n }\n &__name,\n &__description {\n line-height: 1.55em;\n }\n}\n\n/*--- Servers Container ---*/\n.grid-container {\n height: 100%;\n overflow: auto;\n gx-ide-empty-state {\n height: 100%;\n }\n}\n.servers-container {\n display: none;\n height: 100%;\n &__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--gxg-list-box-main__padding) var(--gxg-list-box-main__padding)\n 0 var(--gxg-list-box-main__padding);\n\n gxg-button {\n width: 100%;\n }\n }\n}\n\n/*--- Modules (Header) ---*/\n.modules {\n &__header {\n padding: var(--gxg-list-box-main__padding);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n }\n &__combo-container {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n }\n &__server-commands {\n display: flex;\n gap: var(--mer-spacing--xs);\n }\n &__combo {\n gxg-combo-box {\n flex: 1;\n }\n display: flex;\n flex-direction: row;\n gap: var(--mer-spacing--xs);\n }\n &__container {\n border-inline-end: var(--mer-border__width--sm) solid\n var(--gx-ide-container-border-color);\n display: grid;\n grid-template-rows: auto 1fr;\n height: 100%;\n overflow: auto;\n }\n &__main {\n display: grid;\n grid-template-rows: auto 1fr;\n height: 100%;\n overflow: auto;\n\n &-header {\n display: flex;\n padding: var(--mer-spacing--xs);\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n }\n }\n}\n\n/*--- Module Info ---*/\n.module-info {\n display: grid;\n grid-template-rows: auto 1fr;\n height: 100%;\n overflow: auto;\n\n &__name {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n --ds-icon-size-box--regular: 24px;\n --ds-icon-size--regular: 24px;\n font-weight: var(--mer-font__weight--bold);\n }\n\n &__header {\n padding: var(--gx-ide-container__padding);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n border-block-end: var(--mer-border__width--sm) solid\n var(--gx-ide-container-border-color);\n }\n\n &__action-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--mer-spacing--xs);\n &:before {\n content: \"\";\n width: var(--mer-spacing--xs);\n height: var(--mer-spacing--xs);\n border-radius: 50%;\n display: block;\n background-color: var(--mer-icon__primary--disabled);\n }\n &--installed:before {\n background-color: var(--mer-icon__primary);\n }\n }\n\n &__alert-message {\n margin-block-start: var(--mer-spacing--xxs);\n background-color: var(--mer-color__tinted-yellow--5);\n color: var(--mer-text__on-elevation);\n border: var(--mer-border__width--sm) solid var(--mer-border-color__warning);\n border-radius: var(--mer-border__radius--sm);\n padding: var(--mer-spacing--xs) var(--mer-spacing--md);\n }\n\n &__divider {\n width: calc(100% - var(--gx-ide-container__padding) * 4);\n padding: 0 var(--gx-ide-container__padding);\n margin: 0 auto;\n border: 0;\n border-block-end: var(--mer-border__width--sm) solid\n var(--gx-ide-container-border-color);\n }\n &__properties {\n display: flex;\n flex-direction: column;\n padding: var(--gx-ide-container__padding);\n gap: var(--mer-spacing--xs);\n overflow: auto;\n }\n}\n\n.md-property {\n display: grid;\n gap: var(--mer-spacing--xs);\n\n &--inline {\n grid-template-columns: auto 1fr;\n }\n &--block {\n }\n &__key {\n font-weight: var(--font-weight-bold);\n max-width: 150px;\n }\n &__value {\n font-size: var(--mer-font__size--xxs);\n }\n &__key,\n &__value {\n > * {\n display: inline-block;\n }\n }\n &__list {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n > ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xxs);\n margin-inline-start: var(--mer-spacing--xs);\n\n li {\n position: relative;\n padding-inline-start: 12px;\n line-height: var(--ds-base-font-line-height--comfortable);\n &::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 7px;\n display: inline-block;\n width: var(--mer-spacing--xxs);\n height: var(--mer-spacing--xxs);\n background-color: var(--mer-text__on-surface);\n }\n }\n }\n }\n}\n\n.md-property,\n.md-property__list {\n border-block-end: var(--mer-border__width--sm) solid\n var(--gx-ide-container-border-color);\n padding-block-end: var(--mer-spacing--xs);\n\n &:last-child {\n border-block-end: 0;\n padding-block-end: 0;\n }\n}\n\ngxg-ide-loader {\n border-radius: var(--mer-border__radius--md);\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n EventEmitter,\n Method,\n State,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color } from \"@genexus/gemini\";\nimport { topStateBarType } from \"@genexus/gemini\";\nimport { ChGridSelectionChangedEvent } from \"@genexus/chameleon-controls-library\";\n/* CUSTOM IMPORTS */\nimport {\n ModuleServerData,\n ModuleData,\n ModuleActionType,\n ModuleFilterType,\n ModulePropertyData,\n ModuleVersionData\n} from \"../types\";\nimport { renderModuleDataProperties } from \"../../../common/common\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../common/types\";\n\n@Component({\n tag: \"gx-ide-manage-module-references\",\n styleUrl: \"manage-module-references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/manage-module-references\"]\n})\nexport class GxManageModuleReferences {\n // 1.OWN PROPERTIES | WATCH'S //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n /* selectedServerIdOnModulesAllUpdate is updated every time modulesAll is modified, in order to determine if the server is the same or not.*/\n private selectedServerIdOnModulesAllUpdate: string;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeManageModuleReferencesElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n private serversDetail!: HTMLDivElement;\n\n // 3.STATE() VARIABLES //\n\n @State() modulesAll: ModuleData[] = [];\n @Watch(\"modulesAll\")\n modulesAllWatcher(modulesAll: ModuleData[]) {\n this.updateModulesSelectedVersion(modulesAll);\n }\n @State() filteredModules: ModuleData[] = [];\n @State() selectedModule: ModuleData;\n @State() selectedServerId: string;\n @State() selectedModuleAction: ActionInfo = {\n message: \"\",\n progress: 0,\n state: \"in-progress\"\n };\n @State() modulesSelectedVersion: Map<string, string> = new Map();\n @State() actionCompleted = true;\n @State() closeProgressBar = true;\n @State() progressValue: number = 0;\n @State() progressState: topStateBarType = \"in-progress\";\n @State() loadingServer = false;\n @State() reRenderCounter: number = 0;\n @Watch(\"loadingServer\")\n loadingServerHandler(loading: boolean) {\n if (loading) {\n this.loaderEl.show = true;\n } else {\n this.loaderEl.show = false;\n }\n }\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * List of module servers currently cataloged\n */\n @Prop() readonly servers: ModuleServerData[] = [];\n\n /**\n * Callback invoked when a server is selected. Returns the set of modules available on that server.\n */\n @Prop() readonly serverSelectedCallback: ServerSelectedCallback;\n\n /**\n * Callback invoked when the user wants to execute the action corresponding to a selected module. When the action begins to be executed, the component must be able to show the progress of the action. For this, the onProgress parameter is available, which is in turn a callback used by the host to notify the progress by text message and percentage.\n */\n @Prop() readonly executeActionCallback: ExecuteActionCallback;\n\n /**\n * Callback invoked when Add button is clicked\n */\n @Prop() readonly addServerCallback: AddServerCallback;\n\n /**\n * Callback invoked when an element is right clicked on servers list\n */\n @Prop() readonly serverContextMenuCallback: ServerContextMenuCallback;\n\n /**\n * Allows you to hide the button (...) that executes serverContextMenuCallback, if we do not implement the commands in a first version\n */\n @Prop() readonly showServerCommands: boolean = false;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n async componentDidLoad() {\n await this.serverSelectedCallbackHandler(this.servers[0].id, false);\n }\n\n // 7.LISTENERS //\n\n @Watch(\"modulesAll\")\n onPropValueChange(newModulesData: ModuleData[]) {\n this.filteredModules = [...newModulesData];\n }\n\n // 8.PUBLIC METHODS API //\n\n /**\n * validate\n */\n @Method()\n async validate(): Promise<boolean> {\n return true;\n }\n\n // 9.LOCAL METHODS //\n\n private updateModulesSelectedVersion = (modulesAll: ModuleData[]) => {\n if (this.selectedServerId !== this.selectedServerIdOnModulesAllUpdate) {\n // the server has changed. clear the updateModulesSelectedVersion\n this.modulesSelectedVersion.clear();\n modulesAll.forEach(module => {\n this.modulesSelectedVersion.set(\n module.id,\n module.versions[module.versions.length - 1].id\n );\n });\n } else {\n // the server has't changed. only add the module to the map, if it is a new module.\n modulesAll.forEach(module => {\n const newModule =\n this.modulesSelectedVersion.get(module.id) === undefined;\n if (newModule) {\n this.modulesSelectedVersion.set(module.id, module.versions[0].id);\n }\n });\n }\n this.selectedServerIdOnModulesAllUpdate = this.selectedServerId;\n };\n\n private getActionFromCurrentModuleVersion = (): ModuleActionType => {\n const action = this.getModuleData(\n this.selectedModule,\n \"action\"\n ) as ModuleActionType;\n return action || \"install\";\n };\n\n /**\n * Callback invoked to get the progress when module is performing an action\n */\n private onProgress = (\n message: string,\n progress: number,\n state: topStateBarType\n ): void => {\n const data = { message, progress, state };\n this.selectedModuleAction = { ...data };\n this.progressValue = this.selectedModuleAction.progress;\n this.progressState = this.selectedModuleAction.state;\n };\n\n // 10.LOCAL METHODS //\n\n /**\n * Used for changing the selected module\n */\n private handleModuleChange = (\n event: CustomEvent<ChGridSelectionChangedEvent>\n ) => {\n const selectedModuleId = event.detail.rowsId[0];\n const foundModule = this.modulesAll.find(\n item => item.id === selectedModuleId\n );\n if (foundModule) {\n this.selectedModule = foundModule;\n }\n };\n\n /**\n * Change the server selected value in response to callbackServerSelected callback\n */\n private serverSelectedCallbackHandler = async (id: any, reload: boolean) => {\n if (this.serverSelectedCallback) {\n this.loadingServer = true;\n const resolvedObjects = await this.serverSelectedCallback(id, reload);\n this.selectedServerId = id;\n this.modulesAll = [...resolvedObjects];\n this.filterModulesByType(\"browse\");\n this.selectedModule = this.filteredModules[0];\n this.loadingServer = false;\n }\n };\n\n private handleFilterChange = (value: string) => {\n const trimmedValue = value.trim();\n\n if (trimmedValue) {\n const lowerCaseValue = trimmedValue.toLowerCase();\n this.filteredModules = this.modulesAll.filter(module => {\n const selectedVersionName = this.getModuleData(\n module,\n \"name\"\n ) as string;\n return selectedVersionName?.toLowerCase().includes(lowerCaseValue);\n });\n } else {\n this.filteredModules = this.modulesAll;\n }\n };\n\n private handleFilterChangeHandler = (e: any) => {\n return this.handleFilterChange(e);\n };\n\n /**\n * Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback\n */\n private executeActionCallbackHandler = async (module: ModuleData) => {\n if (this.executeActionCallback) {\n const moduleSelectedVersionId = this.modulesSelectedVersion.get(\n module.id\n );\n const actionCompleted = await this.executeActionCallback(\n this.selectedServerId,\n module.id,\n moduleSelectedVersionId,\n this.getActionFromCurrentModuleVersion(),\n this.onProgress\n );\n if (actionCompleted) {\n this.serverSelectedCallbackHandler(this.selectedServerId, true);\n }\n this.actionCompleted = actionCompleted;\n }\n };\n\n private filterModulesByType = (type: ModuleFilterType) => {\n // browse\n if (type === \"browse\") {\n this.filteredModules = this.modulesAll;\n }\n // installed\n else if (type === \"installed\") {\n this.filteredModules = this.modulesAll.filter((module: ModuleData) => {\n // if the module has a currentVersion (not undefined) it means it is installed\n return module.currentVersion;\n });\n } else if (type === \"updates\") {\n this.filteredModules = this.modulesAll.filter((module: ModuleData) => {\n return module.versions.find(version => version.action === \"update\");\n });\n }\n };\n\n private showModuleMenu = async (e: MouseEvent) => {\n if (this.serverContextMenuCallback) {\n const buttonBoundingClientRect = (\n e.target as HTMLElement\n ).getBoundingClientRect();\n await this.serverContextMenuCallback({\n selection: [this.selectedServerId],\n clientX: buttonBoundingClientRect.x,\n clientY: buttonBoundingClientRect.y\n });\n }\n };\n\n private getModuleData = (\n module: ModuleData,\n dataType: keyof ModuleVersionData\n ): string | ModulePropertyData[] | undefined => {\n const selectedVersionId = this.modulesSelectedVersion.get(module.id);\n let selectedVersion;\n let selectedVersionData;\n if (selectedVersionId) {\n selectedVersion = module.versions.find(\n version => version.id === selectedVersionId\n );\n }\n if (selectedVersion) {\n selectedVersionData = selectedVersion[dataType];\n }\n return selectedVersionData;\n };\n\n private moduleActionHandler = () => {\n this.actionCompleted = false;\n this.closeProgressBar = false;\n this.executeActionCallbackHandler(module);\n };\n\n private renderModulesGrid = (): Element => {\n return (\n <gxg-grid noBorder fullHeight>\n <ch-grid\n rowSelectionMode=\"single\"\n part=\"ch-grid-pending-commits\"\n class=\"servers-detail no-border\"\n onSelectionChanged={this.handleModuleChange}\n >\n <ch-grid-columnset>\n <ch-grid-column\n settingable={false}\n size=\"min-content\"\n ></ch-grid-column>\n\n <ch-grid-column settingable={false}></ch-grid-column>\n <ch-grid-column\n settingable={false}\n size=\"min-content\"\n ></ch-grid-column>\n </ch-grid-columnset>\n\n {this.filteredModules.map((module: ModuleData) => (\n <ch-grid-row\n rowid={module.id}\n key={module.id}\n selected={\n this.selectedModule && this.selectedModule.id === module.id\n }\n >\n <ch-grid-cell>\n <gxg-icon\n type=\"objects/module\"\n data-action={this.moduleVersionIconColor(module)}\n color={this.moduleVersionIconColor(module)}\n size=\"small\"\n ></gxg-icon>\n </ch-grid-cell>\n <ch-grid-cell class=\"grid-cell-module__info\">\n <span class=\"grid-cell-module__name\">\n {this.getModuleData(module, \"name\")}\n </span>\n <span class=\"grid-cell-module__description\">\n {this.getModuleData(module, \"description\")}\n </span>\n </ch-grid-cell>\n\n <ch-grid-cell>\n {this.selectedModule && this.selectedModule.id === module.id ? (\n <gxg-button\n disabled={\n !this.actionCompleted ||\n this.getModuleData(module, \"action\") === \"incompatible\" ||\n this.getModuleData(module, \"action\") === \"not-installable\"\n }\n fit\n part=\"module-action\"\n onClick={this.moduleActionHandler}\n >\n {this.getActionFromCurrentModuleVersion()}\n </gxg-button>\n ) : null}\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n private renderEmptyStateModules = () => {\n return (\n <gx-ide-empty-state\n stateIcon=\"mercury/filters\"\n stateTitle={this._componentLocale.modules.noModulesFilter}\n ></gx-ide-empty-state>\n );\n };\n\n private moduleVersionIconColor = (module: ModuleData): Color => {\n const moduleAction = this.getModuleData(module, \"action\");\n if (moduleAction === \"not-installable\" || moduleAction === \"incompatible\") {\n return \"warning\";\n } else if (moduleAction === \"install\") {\n return \"mercury-primary-disabled\";\n } else {\n return \"mercury-primary\";\n }\n };\n\n /* module details/information renders*/\n private renderModuleName = () => {\n return (\n <gxg-title part=\"module-info__name\" type=\"title-05\">\n <div class=\"module-info__name\">\n <gxg-icon\n type=\"objects/module\"\n color={this.moduleVersionIconColor(this.selectedModule)}\n ></gxg-icon>\n {this.getModuleData(this.selectedModule, \"name\")}\n </div>\n </gxg-title>\n );\n };\n private renderModuleAlertMessage = () => {\n const alertMessage = this.getModuleData(\n this.selectedModule,\n \"alertMessage\"\n );\n if (alertMessage) {\n return <p class=\"module-info__alert-message\">{alertMessage}</p>;\n }\n };\n private renderModuleAction = () => {\n const action = this.getActionFromCurrentModuleVersion();\n let actionDescription;\n let cssClass = \"module-info__action-container\";\n if (action === \"incompatible\" || action === \"not-installable\") {\n actionDescription = \"Can not be installed\";\n } else {\n cssClass += ` module-info__action-container--installed`;\n actionDescription = `${this._componentLocale.modulesInformation.moduleProperties.installed}: ${this.selectedModule.currentVersion}`;\n }\n return (\n <div class={cssClass}>\n <gxg-text part=\"module-info__action\">{actionDescription}</gxg-text>\n </div>\n );\n };\n\n private moduleVersionsValueChangedHandler = (e: CustomEvent<any>) => {\n const versionId = e.detail;\n this.updateSelectedModuleVersion(versionId);\n };\n private moduleVersionsItemChangedHandler = (e: CustomEvent<any>) => {\n const versionId = e.detail.value;\n this.updateSelectedModuleVersion(versionId);\n };\n private updateSelectedModuleVersion = (versionId: string) => {\n if (versionId) {\n this.modulesSelectedVersion.set(this.selectedModule.id, versionId);\n this.reRenderCounter++;\n }\n };\n\n private renderModuleVersions = () => {\n return (\n <div part=\"available-versions\">\n <gxg-combo-box\n id=\"versions-combo-box\"\n disable-filter\n value={this.getModuleData(this.selectedModule, \"id\")}\n part=\"module-versions\"\n display-validation-styles\n display-validation-message\n label={\n this._componentLocale.modulesInformation.moduleProperties\n .availableVersions\n }\n labelPosition=\"start\"\n centerLabel\n onValueChanged={this.moduleVersionsValueChangedHandler}\n disabled={this.loadingServer}\n >\n {this.selectedModule.versions.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.moduleVersionsItemChangedHandler}\n >\n {item.id}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n </div>\n );\n };\n\n private selectedButtonChangedHandler = (e: CustomEvent<string>) => {\n const type = e.detail.replace(\"btn-\", \"\") as ModuleFilterType;\n this.filterModulesByType(type);\n };\n\n private serverItemSelectedHandler = (\n e: CustomEvent<{\n el: HTMLGxgComboBoxItemElement;\n index: number;\n value: any;\n icon?: string;\n }>\n ) => {\n const serverId = e.detail.value;\n this.serverSelectedCallbackHandler(serverId, false);\n };\n\n private serverValueChangedHandler = (e: CustomEvent<any>) => {\n const serverId = e.detail;\n this.serverSelectedCallbackHandler(serverId, false);\n };\n\n private progressBarCloseHandler = () => {\n setTimeout(() => {\n this.actionCompleted = true;\n this.closeProgressBar = true;\n // reset\n this.progressValue = 0;\n this.progressState = \"in-progress\";\n }, 400);\n // delay to force the footer line disappear after the top-state-bar has been closed.\n };\n\n private reloadServer = () => {\n this.serverSelectedCallbackHandler(this.selectedServerId, true);\n };\n\n // 11.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host\n class={{\n \"gx-ide-component\": true\n }}\n >\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noAboveFooterPadding\n noBorderAboveFooter={this.closeProgressBar}\n part=\"servers\"\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {/* Servers*/}\n <main class=\"main\">\n <div class=\"modules__container\">\n <header class=\"modules__header\">\n <div class=\"modules__combo-container\">\n <gxg-label>\n {this._componentLocale.modules.selectServer}\n </gxg-label>\n <div class=\"modules__combo\">\n <gxg-combo-box\n disableFilter\n onValueChanged={this.serverValueChangedHandler}\n >\n {this.servers.map(item => (\n <gxg-combo-box-item\n value={item.id}\n onItemSelected={this.serverItemSelectedHandler}\n >\n {item.name}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n {this.showServerCommands ? (\n <span class=\"modules__server-commands\">\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.showModuleMenu}\n ></gxg-button>\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/reset\"\n onClick={this.reloadServer}\n ></gxg-button>\n </span>\n ) : null}\n </div>\n </div>\n </header>\n\n <div class=\"modules__main\">\n <div class=\"modules__main-header\">\n <gxg-form-text\n label={this._componentLocale.modules.searchModules}\n labelPosition=\"above\"\n centerLabel={false}\n onValueChanged={this.handleFilterChangeHandler}\n disabled={this.loadingServer}\n ></gxg-form-text>\n <gxg-buttons-container\n reduced\n fullWidth\n class=\"modules__browser\"\n onSelectedButtonChanged={\n this.selectedButtonChangedHandler\n }\n >\n <gxg-button\n id=\"btn-browse\"\n selected\n disabled={this.loadingServer}\n >\n {this._componentLocale.modules.buttonsContainer.browse}\n </gxg-button>\n <gxg-button\n id=\"btn-installed\"\n disabled={this.loadingServer}\n >\n {\n this._componentLocale.modules.buttonsContainer\n .installed\n }\n </gxg-button>\n <gxg-button\n id=\"btn-updates\"\n disabled={this.loadingServer}\n >\n {this._componentLocale.modules.buttonsContainer.updates}\n </gxg-button>\n </gxg-buttons-container>\n </div>\n {/* modules grid*/}\n <div\n class=\"grid-container\"\n ref={el => (this.serversDetail = el as HTMLDivElement)}\n >\n {this.filteredModules.length > 0\n ? this.renderModulesGrid()\n : this.renderEmptyStateModules()}\n </div>\n </div>\n </div>\n\n {/* Module Information*/}\n {this.selectedModule ? (\n <div class=\"module-info\">\n <header class=\"module-info__header\">\n {this.renderModuleName()}\n {this.renderModuleAlertMessage()}\n {this.renderModuleAction()}\n {this.renderModuleVersions()}\n </header>\n <div class=\"module-info__properties gxg-scrollbar\">\n {renderModuleDataProperties(\n this.getModuleData(\n this.selectedModule,\n \"properties\"\n ) as ModulePropertyData[]\n )}\n </div>\n </div>\n ) : (\n <gx-ide-empty-state\n class=\"recent-objects__empty-state\"\n stateIcon=\"objects/module\"\n stateTitle={\n this._componentLocale.modulesInformation.emptyState.title\n }\n stateDescription={\n this._componentLocale.modulesInformation.emptyState\n .description\n }\n ></gx-ide-empty-state>\n )}\n </main>\n {/* Top State Bar*/}\n <gxg-top-state-bar\n slot=\"footer-above\"\n part=\"progress-bar\"\n stateType={this.progressState}\n noBorder\n caption={\n this.selectedModuleAction.message ||\n this._componentLocale.progressBar.defaultCaption\n }\n progress={this.progressValue}\n active={!this.actionCompleted || !this.closeProgressBar}\n closeType=\"not-progress\"\n closedCallback={this.progressBarCloseHandler}\n ></gxg-top-state-bar>\n </gx-ide-container>\n </div>\n <gxg-ide-loader\n loaderTitle={this._componentLocale.servers.loading}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n container={this.serversDetail}\n borderRadius=\"0 0 0 8px\"\n ></gxg-ide-loader>\n </Host>\n );\n }\n}\n\nexport type ExecuteActionCallback = (\n serverId: string,\n moduleId: string,\n moduleVersionId: string,\n action: ModuleActionType,\n onProgress: (\n message: string,\n progress: number,\n state: topStateBarType\n ) => void\n) => Promise<boolean>;\n\nexport type ServerSelectedCallback = (\n id: string,\n reload: boolean\n) => Promise<ModuleData[]>;\n\nexport type AddServerCallback = () => Promise<void>;\n\nexport type ServerContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport interface ActionInfo {\n message: string;\n progress: number;\n state: topStateBarType;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["convertSuggestedApplicationsToSuggestItems","suggestedApplications","suggestData","suggestItems","suggestLists","length","suggestList","label","items","forEach","suggestedApplication","suggestItem","value","description","icon","push","bpmAppDeclarationCss","GxIdeBpmAppDeclaration","this","renderedFirstTime","shortcutsSrc","getAssetPath","listenApplicationSelected","async","applicationSuggestEl","addEventListener","e","getDataMappingCallbackHandler","detail","applicationSuggestValueChangedHandler","suggestApplicationsCallback","then","result","catch","applicationName","application","getDataMappingCallback","selectApplicationCallbackHandler","callbackResult","selectApplicationCallback","confirmCallbackHandler","confirmCallback","cancelCallbackHandler","cancelCallback","selectMappingCallbackHandler","parameter","selectMappingCallback","newRelevantData","dataIndex","applicationState","mappings","findIndex","mapping","found","relevantDataOptions","find","option","relevantData","Object","assign","dataOptionsToComboItems","gxOptions","id","_componentLocale","dataMappings","emptyOption","relevantOption","gxOption","clearApplicationHandler","undefined","renderDataMappingsGrid","h","noBorder","part","columnName","_a","typeIcon","firstColName","firstColNameParameter","settingable","size","gridCommon","colSize","common","secondColName","sortable","auto","map","obj","index","rowId","class","access","disableFilter","renderComboItems","type","onClick","watchApplicationHandler","newApplication","componentWillLoad","Locale","getComponentStrings","el","componentDidLoad","focus","componentDidRender","componentDidRenderFirstTime","emit","componentName","render","Host","noContentPadding","slimmerFooter","config","gxIdeContainer","containerTitle","displayTitle","slot","name","onValueChanged","ref","renderSuggestLists","title","buttons","cancelButton","confirmButton","src"],"sources":["src/components/bpm-application-declaration/helpers.ts","src/components/bpm-application-declaration/bpm-app-declaration.scss?tag=gx-ide-bpm-app-declaration&encapsulation=shadow","src/components/bpm-application-declaration/bpm-app-declaration.tsx"],"sourcesContent":["/* Ch Suggest*/\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/components/suggest/ch-suggest\";\n\n/* References Types*/\n\n/**\n * @description This function converts string[] to SuggestItemData[]\n */\nexport const convertSuggestedApplicationsToSuggestItems = (\n suggestedApplications: string[]\n): SuggestData => {\n const suggestData: SuggestData = {\n suggestItems: null,\n suggestLists: []\n };\n if (suggestedApplications.length) {\n const suggestList: SuggestListData = {\n label: \"Applications\",\n items: []\n };\n suggestedApplications.forEach((suggestedApplication: string) => {\n const suggestItem: SuggestItemData = {\n value: suggestedApplication,\n description: null,\n icon: null\n };\n suggestList.items.push(suggestItem);\n });\n suggestData.suggestLists.push(suggestList);\n }\n return suggestData;\n};\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n .header {\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-grid-row-gap);\n &__first-row {\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-column-gap);\n .application-suggest {\n flex: 1;\n }\n }\n }\n /*data mappings*/\n .data-mappings {\n display: flex;\n flex-direction: column;\n }\n .row-button {\n display: flex;\n align-items: center;\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Watch,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/components/suggest/ch-suggest\";\nimport { renderSuggestLists } from \"../../common/render-suggest\";\nimport { renderComboItems } from \"../../common/render-combo-items\";\nimport { convertSuggestedApplicationsToSuggestItems } from \"./helpers\";\nimport { gridCommon } from \"../../common/grid\";\nimport { GxOption } from \"../../common/types\";\n@Component({\n tag: \"gx-ide-bpm-app-declaration\",\n styleUrl: \"bpm-app-declaration.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-app-declaration\"]\n})\nexport class GxIdeBpmAppDeclaration {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/bpm-app-declaration/shortcuts.json`\n );\n\n /**\n * The state of the actual application. Used to add a new 'Relevant data' option on 'selectMappingCallback', and update the application with the new option\n */\n private applicationState: ApplicationDeclarationData;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmAppDeclarationElement;\n private applicationSuggestEl: HTMLChSuggestElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * Possible suggestions for the applications\n */\n @State() suggestedApplications: SuggestData;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Current application value\n */\n @Prop({ mutable: true }) application: ApplicationDeclarationData;\n\n @Watch(\"application\")\n watchApplicationHandler(newApplication: ApplicationDeclarationData) {\n this.applicationState = newApplication;\n }\n\n /**\n * Callback invoked to get options for application input suggest\n */\n @Prop() readonly suggestApplicationsCallback: SuggestApplicationsCallback;\n\n /**\n * Callback invoked to get access to selection application dialog\n */\n @Prop() readonly selectApplicationCallback: SelectApplicationCallback;\n\n /**\n * Callback invoked when user press mapping auto-def button\n */\n @Prop() readonly selectMappingCallback: SelectMappingCallback;\n\n /**\n * Callback invoked when user confirms application declaration\n */\n @Prop() readonly confirmCallback: ConfirmCallback;\n\n /**\n * Callback invoked when user cancels application declaration\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user select one of the options provided by the suggest\n */\n @Prop() readonly getDataMappingCallback: GetDataMappingCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.applicationState = this.application;\n }\n\n async componentDidLoad() {\n /* this.applicationSuggestValueChangedHandler(this.applicationText); */\n this.listenApplicationSelected();\n this.applicationSuggestEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private listenApplicationSelected = async () => {\n this.applicationSuggestEl.addEventListener(\"itemSelected\", (e: any) => {\n this.getDataMappingCallbackHandler(e.detail.value);\n });\n };\n\n private applicationSuggestValueChangedHandler = async (\n e: CustomEvent<string>\n ) => {\n const value = e.detail;\n this.suggestApplicationsCallback(value)\n .then(result => {\n this.suggestedApplications =\n convertSuggestedApplicationsToSuggestItems(result);\n })\n .catch(() => {\n // to do\n });\n };\n\n private getDataMappingCallbackHandler = async (applicationName: string) => {\n this.application = await this.getDataMappingCallback(applicationName);\n };\n\n private selectApplicationCallbackHandler = async () => {\n const callbackResult = await this.selectApplicationCallback();\n if (callbackResult) {\n this.application = callbackResult;\n }\n };\n\n private confirmCallbackHandler = async () => {\n await this.confirmCallback(this.application);\n };\n\n private cancelCallbackHandler = async () => {\n await this.cancelCallback();\n };\n\n private selectMappingCallbackHandler = (parameter: string) => async () => {\n if (this.selectMappingCallback) {\n const newRelevantData = await this.selectMappingCallback(parameter);\n if (newRelevantData) {\n // update actual application with new relevant data option\n // first find mapping index\n const dataIndex: number = this.applicationState.mappings.findIndex(\n mapping => {\n return mapping.parameter === parameter;\n }\n );\n if (dataIndex !== -1) {\n // new relevant data could be new, or already existent.\n const found = this.applicationState.mappings[\n dataIndex\n ].relevantDataOptions.find(option => {\n return option === newRelevantData;\n });\n if (!found) {\n // new. add.\n this.applicationState.mappings[dataIndex].relevantDataOptions.push(\n newRelevantData\n );\n }\n // always set this data as selected\n this.applicationState.mappings[dataIndex].relevantData =\n newRelevantData;\n // update\n this.application = { ...this.applicationState };\n }\n }\n }\n };\n\n private dataOptionsToComboItems = (\n relevantDataOptions: string[]\n ): GxOption[] => {\n const gxOptions: GxOption[] = [\n { id: this._componentLocale.dataMappings.emptyOption }\n ];\n relevantDataOptions.forEach(relevantOption => {\n const gxOption: GxOption = { id: relevantOption };\n gxOptions.push(gxOption);\n });\n return gxOptions;\n };\n\n private clearApplicationHandler = () => {\n this.application = {\n application: undefined,\n mappings: []\n };\n };\n\n private renderDataMappingsGrid = (): Element => {\n return (\n <gxg-grid ellipsis-cell-wrapper noBorder>\n <ch-grid part=\"ch-grid-data-mappings\">\n <ch-grid-columnset>\n <ch-grid-column\n columnName={\n this.application.application?.typeIcon === \"objects/transaction\"\n ? this._componentLocale.dataMappings.firstColName\n : this._componentLocale.dataMappings.firstColNameParameter\n }\n settingable={false}\n size={gridCommon.colSize.common}\n ></ch-grid-column>\n\n <ch-grid-column\n columnName={this._componentLocale.dataMappings.secondColName}\n settingable={false}\n sortable={false}\n size={gridCommon.colSize.common}\n ></ch-grid-column>\n <ch-grid-column\n settingable={false}\n sortable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n </ch-grid-columnset>\n\n {this.application.mappings.map((obj: DataMappingData, index) => (\n <ch-grid-row rowId={index + obj.parameter}>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${obj.access}: ${obj.parameter}`}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">\n <gxg-combo-box disableFilter value={obj.relevantData}>\n {renderComboItems(\n this.dataOptionsToComboItems(obj.relevantDataOptions) ??\n []\n )}\n </gxg-combo-box>\n {/* <div class=\"row-button\">{obj.relevantData}</div> */}\n </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">\n <gxg-button\n data-index={index}\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/add\"\n onClick={this.selectMappingCallbackHandler(obj.parameter)}\n class=\"select-mapping-callback-button\"\n ></gxg-button>\n </span>\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n <header slot=\"header\" class=\"header\">\n <div class=\"header__first-row\">\n <gxg-suggest class=\"application-suggest\">\n <ch-suggest\n value={this.application.application?.name || null}\n onValueChanged={this.applicationSuggestValueChangedHandler}\n ref={el =>\n (this.applicationSuggestEl = el as HTMLChSuggestElement)\n }\n part=\"application-suggest\"\n >\n {renderSuggestLists(this.suggestedApplications)}\n </ch-suggest>\n </gxg-suggest>\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.selectApplicationCallbackHandler}\n class=\"selector-dialog-button\"\n part=\"open-selector-dialog-button\"\n ></gxg-button>\n <gxg-button\n type=\"outlined\"\n part=\"clear-application-button\"\n onClick={this.clearApplicationHandler}\n >\n Clear\n </gxg-button>\n </div>\n <div class=\"header__second-row\">\n <gx-ide-title type=\"secondary\">\n {this._componentLocale.dataMappings.title}\n </gx-ide-title>\n </div>\n </header>\n\n <div class=\"data-mappings\">{this.renderDataMappingsGrid()}</div>\n <gxg-button\n type=\"secondary-text-only\"\n slot=\"footer-end\"\n onClick={this.cancelCallbackHandler}\n part=\"cancel-button\"\n >\n {this._componentLocale.buttons.cancelButton}\n </gxg-button>\n <gxg-button\n type=\"primary-text-only\"\n slot=\"footer-end\"\n icon=\"general/datastore\"\n onClick={this.confirmCallbackHandler}\n part=\"confirm-button\"\n >\n {this._componentLocale.buttons.confirmButton}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type ApplicationDeclarationData = {\n application?: ApplicationData;\n mappings: DataMappingData[];\n};\nexport type ApplicationData = {\n name: string;\n typeIcon: string;\n};\n\nexport type DataMappingData = {\n parameter: string;\n access: \"in\" | \"out\" | \"in-out\";\n relevantDataOptions: string[];\n relevantData?: string;\n};\n\nexport type SuggestApplicationsCallback = (\n prefix: string\n) => Promise<string[] | undefined>;\n\nexport type SelectApplicationCallback = () => Promise<\n ApplicationDeclarationData | undefined\n>;\n\nexport type SelectMappingCallback = (parameter: string) => Promise<string>;\n\nexport type ConfirmCallback = (\n data: ApplicationDeclarationData\n) => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type GetDataMappingCallback = (\n applicationName: string\n) => Promise<ApplicationDeclarationData>;\n"],"mappings":";;;;;;;;;;;;;;;GAUO,OAAMA,6CACXC;EAEA,MAAMC,IAA2B;IAC/BC,cAAc;IACdC,cAAc;;EAEhB,IAAIH,EAAsBI,QAAQ;IAChC,MAAMC,IAA+B;MACnCC,OAAO;MACPC,OAAO;;IAETP,EAAsBQ,SAASC;MAC7B,MAAMC,IAA+B;QACnCC,OAAOF;QACPG,aAAa;QACbC,MAAM;;MAERR,EAAYE,MAAMO,KAAKJ;AAAY;IAErCT,EAAYE,aAAaW,KAAKT;;EAEhC,OAAOJ;AAAW;;AChCpB,MAAMc,IAAuB;;MC6BhBC,IAAsB;;;;IAqBzBC,KAAAC,oBAAoB;IACpBD,KAAAE,eAAeC,EACrB;;;;QAsGMH,KAAAI,4BAA4BC;MAClCL,KAAKM,qBAAqBC,iBAAiB,iBAAiBC;QAC1DR,KAAKS,8BAA8BD,EAAEE,OAAOhB;AAAM;AAClD;IAGIM,KAAAW,wCAAwCN,MAC9CG;MAEA,MAAMd,IAAQc,EAAEE;MAChBV,KAAKY,4BAA4BlB,GAC9BmB,MAAKC;QACJd,KAAKjB,wBACHD,2CAA2CgC;AAAO,UAErDC,OAAM;AAEL;IAGEf,KAAAS,gCAAgCJ,MAAOW;MAC7ChB,KAAKiB,oBAAoBjB,KAAKkB,uBAAuBF;AAAgB;IAG/DhB,KAAAmB,mCAAmCd;MACzC,MAAMe,UAAuBpB,KAAKqB;MAClC,IAAID,GAAgB;QAClBpB,KAAKiB,cAAcG;;;IAIfpB,KAAAsB,yBAAyBjB;YACzBL,KAAKuB,gBAAgBvB,KAAKiB;AAAY;IAGtCjB,KAAAwB,wBAAwBnB;YACxBL,KAAKyB;AAAgB;IAGrBzB,KAAA0B,+BAAgCC,KAAsBtB;MAC5D,IAAIL,KAAK4B,uBAAuB;QAC9B,MAAMC,UAAwB7B,KAAK4B,sBAAsBD;QACzD,IAAIE,GAAiB;;;UAGnB,MAAMC,IAAoB9B,KAAK+B,iBAAiBC,SAASC,WACvDC,KACSA,EAAQP,cAAcA;UAGjC,IAAIG,OAAe,GAAG;;YAEpB,MAAMK,IAAQnC,KAAK+B,iBAAiBC,SAClCF,GACAM,oBAAoBC,MAAKC,KAClBA,MAAWT;YAEpB,KAAKM,GAAO;;cAEVnC,KAAK+B,iBAAiBC,SAASF,GAAWM,oBAAoBvC,KAC5DgC;;;wBAIJ7B,KAAK+B,iBAAiBC,SAASF,GAAWS,eACxCV;;wBAEF7B,KAAKiB,cAAWuB,OAAAC,OAAA,IAAQzC,KAAK+B;;;;;IAM7B/B,KAAA0C,0BACNN;MAEA,MAAMO,IAAwB,EAC5B;QAAEC,IAAI5C,KAAK6C,iBAAiBC,aAAaC;;MAE3CX,EAAoB7C,SAAQyD;QAC1B,MAAMC,IAAqB;UAAEL,IAAII;;QACjCL,EAAU9C,KAAKoD;AAAS;MAE1B,OAAON;AAAS;IAGV3C,KAAAkD,0BAA0B;MAChClD,KAAKiB,cAAc;QACjBA,aAAakC;QACbnB,UAAU;;AACX;IAGKhC,KAAAoD,yBAAyB;;MAC/B,OACEC,EAAA;QAAA;QAAgCC,UAAQ;SACtCD,EAAA;QAASE,MAAK;SACZF,EAAA,2BACEA,EAAA;QACEG,cACEC,IAAAzD,KAAKiB,YAAYA,iBAAW,QAAAwC,WAAA,aAAAA,EAAEC,cAAa,wBACvC1D,KAAK6C,iBAAiBC,aAAaa,eACnC3D,KAAK6C,iBAAiBC,aAAac;QAEzCC,aAAa;QACbC,MAAMC,EAAWC,QAAQC;UAG3BZ,EAAA;QACEG,YAAYxD,KAAK6C,iBAAiBC,aAAaoB;QAC/CL,aAAa;QACbM,UAAU;QACVL,MAAMC,EAAWC,QAAQC;UAE3BZ,EAAA;QACEQ,aAAa;QACbM,UAAU;QACVL,MAAMC,EAAWC,QAAQI;WAI5BpE,KAAKiB,YAAYe,SAASqC,KAAI,CAACC,GAAsBC;;QAAU,OAC9DlB,EAAA;UAAamB,OAAOD,IAAQD,EAAI3C;WAC9B0B,EAAA,sBACEA,EAAA;UAAMoB,OAAM;WAAgB,GAAGH,EAAII,WAAWJ,EAAI3C,eAEpD0B,EAAA,sBACEA,EAAA;UAAMoB,OAAM;WACVpB,EAAA;UAAesB,eAAa;UAACjF,OAAO4E,EAAI/B;WACrCqC,GACCnB,IAAAzD,KAAK0C,wBAAwB4B,EAAIlC,0BAAoB,QAAAqB,WAAA,IAAAA,IACnD,QAMVJ,EAAA,sBACEA,EAAA;UAAMoB,OAAM;WACVpB,EAAA;UAAA,cACckB;UACZM,MAAK;UACLjF,MAAK;UACLkF,SAAS9E,KAAK0B,6BAA6B4C,EAAI3C;UAC/C8C,OAAM;;AAIA;AAGT;;wBApOiB;;;;;;;;;EAQhC,uBAAAM,CAAwBC;IACtBhF,KAAK+B,mBAAmBiD;;;EA0C1B,uBAAMC;IACJjF,KAAK6C,yBAAyBqC,EAAOC,oBAAoBnF,KAAKoF;IAC9DpF,KAAK+B,mBAAmB/B,KAAKiB;;EAG/B,sBAAMoE;;IAEJrF,KAAKI;IACLJ,KAAKM,qBAAqBgF;;EAG5B,kBAAAC;IACE,KAAKvF,KAAKC,mBAAmB;MAC3BD,KAAKwF,4BAA4BC,KAC/BzF,KAAK6C,iBAAiB6C;MAExB1F,KAAKC,oBAAoB;;;;EAuK7B,MAAA0F;;IACE,OACEtC,EAACuC,GAAI;MAACnB,OAAM;OACVpB,EAAA;MAAKoB,OAAM;OACTpB,EAAA;MACEwC,kBAAgB;MAChBC,eAAeC,EAAOC,eAAeF;MACrCG,gBACEjG,KAAKkG,eAAelG,KAAK6C,iBAAiB6C,gBAAgB;OAG5DrC,EAAA;MAAQ8C,MAAK;MAAS1B,OAAM;OAC1BpB,EAAA;MAAKoB,OAAM;OACTpB,EAAA;MAAaoB,OAAM;OACjBpB,EAAA;MACE3D,SAAO+D,IAAAzD,KAAKiB,YAAYA,iBAAW,QAAAwC,WAAA,aAAAA,EAAE2C,SAAQ;MAC7CC,gBAAgBrG,KAAKW;MACrB2F,KAAKlB,KACFpF,KAAKM,uBAAuB8E;MAE/B7B,MAAK;OAEJgD,EAAmBvG,KAAKjB,0BAG7BsE,EAAA;MACEwB,MAAK;MACLjF,MAAK;MACLkF,SAAS9E,KAAKmB;MACdsD,OAAM;MACNlB,MAAK;QAEPF,EAAA;MACEwB,MAAK;MACLtB,MAAK;MACLuB,SAAS9E,KAAKkD;OAAuB,WAKzCG,EAAA;MAAKoB,OAAM;OACTpB,EAAA;MAAcwB,MAAK;OAChB7E,KAAK6C,iBAAiBC,aAAa0D,UAK1CnD,EAAA;MAAKoB,OAAM;OAAiBzE,KAAKoD,2BACjCC,EAAA;MACEwB,MAAK;MACLsB,MAAK;MACLrB,SAAS9E,KAAKwB;MACd+B,MAAK;OAEJvD,KAAK6C,iBAAiB4D,QAAQC,eAEjCrD,EAAA;MACEwB,MAAK;MACLsB,MAAK;MACLvG,MAAK;MACLkF,SAAS9E,KAAKsB;MACdiC,MAAK;OAEJvD,KAAK6C,iBAAiB4D,QAAQE,kBAIrCtD,EAAA;MAAeuD,KAAK5G,KAAKE"}
|
|
1
|
+
{"version":3,"names":["convertSuggestedApplicationsToSuggestItems","suggestedApplications","suggestData","suggestItems","suggestLists","length","suggestList","label","items","forEach","suggestedApplication","suggestItem","value","description","icon","push","bpmAppDeclarationCss","GxIdeBpmAppDeclaration","this","renderedFirstTime","shortcutsSrc","getAssetPath","listenApplicationSelected","async","applicationSuggestEl","addEventListener","e","getDataMappingCallbackHandler","detail","applicationSuggestValueChangedHandler","suggestApplicationsCallback","then","result","catch","applicationName","application","getDataMappingCallback","selectApplicationCallbackHandler","callbackResult","selectApplicationCallback","confirmCallbackHandler","confirmCallback","cancelCallbackHandler","cancelCallback","selectMappingCallbackHandler","parameter","selectMappingCallback","newRelevantData","dataIndex","applicationState","mappings","findIndex","mapping","found","relevantDataOptions","find","option","relevantData","Object","assign","dataOptionsToComboItems","gxOptions","id","_componentLocale","dataMappings","emptyOption","relevantOption","gxOption","clearApplicationHandler","undefined","renderDataMappingsGrid","h","noBorder","part","columnName","_a","typeIcon","firstColName","firstColNameParameter","settingable","size","gridCommon","colSize","common","secondColName","sortable","auto","map","obj","index","rowId","class","access","disableFilter","renderComboItems","type","onClick","watchApplicationHandler","newApplication","componentWillLoad","Locale","getComponentStrings","el","componentDidLoad","focus","componentDidRender","componentDidRenderFirstTime","emit","componentName","render","Host","noContentPadding","slimmerFooter","config","gxIdeContainer","containerTitle","displayTitle","slot","name","onValueChanged","ref","renderSuggestLists","title","buttons","cancelButton","confirmButton","src"],"sources":["src/components/bpm/application-declaration/helpers.ts","src/components/bpm/application-declaration/bpm-app-declaration.scss?tag=gx-ide-bpm-app-declaration&encapsulation=shadow","src/components/bpm/application-declaration/bpm-app-declaration.tsx"],"sourcesContent":["/* Ch Suggest*/\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/components/suggest/ch-suggest\";\n\n/* References Types*/\n\n/**\n * @description This function converts string[] to SuggestItemData[]\n */\nexport const convertSuggestedApplicationsToSuggestItems = (\n suggestedApplications: string[]\n): SuggestData => {\n const suggestData: SuggestData = {\n suggestItems: null,\n suggestLists: []\n };\n if (suggestedApplications.length) {\n const suggestList: SuggestListData = {\n label: \"Applications\",\n items: []\n };\n suggestedApplications.forEach((suggestedApplication: string) => {\n const suggestItem: SuggestItemData = {\n value: suggestedApplication,\n description: null,\n icon: null\n };\n suggestList.items.push(suggestItem);\n });\n suggestData.suggestLists.push(suggestList);\n }\n return suggestData;\n};\n","@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n .header {\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-grid-row-gap);\n &__first-row {\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-column-gap);\n .application-suggest {\n flex: 1;\n }\n }\n }\n /*data mappings*/\n .data-mappings {\n display: flex;\n flex-direction: column;\n }\n .row-button {\n display: flex;\n align-items: center;\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Watch,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../../common/locale\";\nimport { config } from \"../../../common/config\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/components/suggest/ch-suggest\";\nimport { renderSuggestLists } from \"../../../common/render-suggest\";\nimport { renderComboItems } from \"../../../common/render-combo-items\";\nimport { convertSuggestedApplicationsToSuggestItems } from \"./helpers\";\nimport { gridCommon } from \"../../../common/grid\";\nimport { GxOption } from \"../../../common/types\";\n@Component({\n tag: \"gx-ide-bpm-app-declaration\",\n styleUrl: \"bpm-app-declaration.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-app-declaration\"]\n})\nexport class GxIdeBpmAppDeclaration {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/bpm-app-declaration/shortcuts.json`\n );\n\n /**\n * The state of the actual application. Used to add a new 'Relevant data' option on 'selectMappingCallback', and update the application with the new option\n */\n private applicationState: ApplicationDeclarationData;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmAppDeclarationElement;\n private applicationSuggestEl: HTMLChSuggestElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * Possible suggestions for the applications\n */\n @State() suggestedApplications: SuggestData;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Current application value\n */\n @Prop({ mutable: true }) application: ApplicationDeclarationData;\n\n @Watch(\"application\")\n watchApplicationHandler(newApplication: ApplicationDeclarationData) {\n this.applicationState = newApplication;\n }\n\n /**\n * Callback invoked to get options for application input suggest\n */\n @Prop() readonly suggestApplicationsCallback: SuggestApplicationsCallback;\n\n /**\n * Callback invoked to get access to selection application dialog\n */\n @Prop() readonly selectApplicationCallback: SelectApplicationCallback;\n\n /**\n * Callback invoked when user press mapping auto-def button\n */\n @Prop() readonly selectMappingCallback: SelectMappingCallback;\n\n /**\n * Callback invoked when user confirms application declaration\n */\n @Prop() readonly confirmCallback: ConfirmCallback;\n\n /**\n * Callback invoked when user cancels application declaration\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user select one of the options provided by the suggest\n */\n @Prop() readonly getDataMappingCallback: GetDataMappingCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.applicationState = this.application;\n }\n\n async componentDidLoad() {\n /* this.applicationSuggestValueChangedHandler(this.applicationText); */\n this.listenApplicationSelected();\n this.applicationSuggestEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private listenApplicationSelected = async () => {\n this.applicationSuggestEl.addEventListener(\"itemSelected\", (e: any) => {\n this.getDataMappingCallbackHandler(e.detail.value);\n });\n };\n\n private applicationSuggestValueChangedHandler = async (\n e: CustomEvent<string>\n ) => {\n const value = e.detail;\n this.suggestApplicationsCallback(value)\n .then(result => {\n this.suggestedApplications =\n convertSuggestedApplicationsToSuggestItems(result);\n })\n .catch(() => {\n // to do\n });\n };\n\n private getDataMappingCallbackHandler = async (applicationName: string) => {\n this.application = await this.getDataMappingCallback(applicationName);\n };\n\n private selectApplicationCallbackHandler = async () => {\n const callbackResult = await this.selectApplicationCallback();\n if (callbackResult) {\n this.application = callbackResult;\n }\n };\n\n private confirmCallbackHandler = async () => {\n await this.confirmCallback(this.application);\n };\n\n private cancelCallbackHandler = async () => {\n await this.cancelCallback();\n };\n\n private selectMappingCallbackHandler = (parameter: string) => async () => {\n if (this.selectMappingCallback) {\n const newRelevantData = await this.selectMappingCallback(parameter);\n if (newRelevantData) {\n // update actual application with new relevant data option\n // first find mapping index\n const dataIndex: number = this.applicationState.mappings.findIndex(\n mapping => {\n return mapping.parameter === parameter;\n }\n );\n if (dataIndex !== -1) {\n // new relevant data could be new, or already existent.\n const found = this.applicationState.mappings[\n dataIndex\n ].relevantDataOptions.find(option => {\n return option === newRelevantData;\n });\n if (!found) {\n // new. add.\n this.applicationState.mappings[dataIndex].relevantDataOptions.push(\n newRelevantData\n );\n }\n // always set this data as selected\n this.applicationState.mappings[dataIndex].relevantData =\n newRelevantData;\n // update\n this.application = { ...this.applicationState };\n }\n }\n }\n };\n\n private dataOptionsToComboItems = (\n relevantDataOptions: string[]\n ): GxOption[] => {\n const gxOptions: GxOption[] = [\n { id: this._componentLocale.dataMappings.emptyOption }\n ];\n relevantDataOptions.forEach(relevantOption => {\n const gxOption: GxOption = { id: relevantOption };\n gxOptions.push(gxOption);\n });\n return gxOptions;\n };\n\n private clearApplicationHandler = () => {\n this.application = {\n application: undefined,\n mappings: []\n };\n };\n\n private renderDataMappingsGrid = (): Element => {\n return (\n <gxg-grid ellipsis-cell-wrapper noBorder>\n <ch-grid part=\"ch-grid-data-mappings\">\n <ch-grid-columnset>\n <ch-grid-column\n columnName={\n this.application.application?.typeIcon === \"objects/transaction\"\n ? this._componentLocale.dataMappings.firstColName\n : this._componentLocale.dataMappings.firstColNameParameter\n }\n settingable={false}\n size={gridCommon.colSize.common}\n ></ch-grid-column>\n\n <ch-grid-column\n columnName={this._componentLocale.dataMappings.secondColName}\n settingable={false}\n sortable={false}\n size={gridCommon.colSize.common}\n ></ch-grid-column>\n <ch-grid-column\n settingable={false}\n sortable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n </ch-grid-columnset>\n\n {this.application.mappings.map((obj: DataMappingData, index) => (\n <ch-grid-row rowId={index + obj.parameter}>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${obj.access}: ${obj.parameter}`}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">\n <gxg-combo-box disableFilter value={obj.relevantData}>\n {renderComboItems(\n this.dataOptionsToComboItems(obj.relevantDataOptions) ??\n []\n )}\n </gxg-combo-box>\n {/* <div class=\"row-button\">{obj.relevantData}</div> */}\n </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">\n <gxg-button\n data-index={index}\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/add\"\n onClick={this.selectMappingCallbackHandler(obj.parameter)}\n class=\"select-mapping-callback-button\"\n ></gxg-button>\n </span>\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n <header slot=\"header\" class=\"header\">\n <div class=\"header__first-row\">\n <gxg-suggest class=\"application-suggest\">\n <ch-suggest\n value={this.application.application?.name || null}\n onValueChanged={this.applicationSuggestValueChangedHandler}\n ref={el =>\n (this.applicationSuggestEl = el as HTMLChSuggestElement)\n }\n part=\"application-suggest\"\n >\n {renderSuggestLists(this.suggestedApplications)}\n </ch-suggest>\n </gxg-suggest>\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.selectApplicationCallbackHandler}\n class=\"selector-dialog-button\"\n part=\"open-selector-dialog-button\"\n ></gxg-button>\n <gxg-button\n type=\"outlined\"\n part=\"clear-application-button\"\n onClick={this.clearApplicationHandler}\n >\n Clear\n </gxg-button>\n </div>\n <div class=\"header__second-row\">\n <gx-ide-title type=\"secondary\">\n {this._componentLocale.dataMappings.title}\n </gx-ide-title>\n </div>\n </header>\n\n <div class=\"data-mappings\">{this.renderDataMappingsGrid()}</div>\n <gxg-button\n type=\"secondary-text-only\"\n slot=\"footer-end\"\n onClick={this.cancelCallbackHandler}\n part=\"cancel-button\"\n >\n {this._componentLocale.buttons.cancelButton}\n </gxg-button>\n <gxg-button\n type=\"primary-text-only\"\n slot=\"footer-end\"\n icon=\"general/datastore\"\n onClick={this.confirmCallbackHandler}\n part=\"confirm-button\"\n >\n {this._componentLocale.buttons.confirmButton}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type ApplicationDeclarationData = {\n application?: ApplicationData;\n mappings: DataMappingData[];\n};\nexport type ApplicationData = {\n name: string;\n typeIcon: string;\n};\n\nexport type DataMappingData = {\n parameter: string;\n access: \"in\" | \"out\" | \"in-out\";\n relevantDataOptions: string[];\n relevantData?: string;\n};\n\nexport type SuggestApplicationsCallback = (\n prefix: string\n) => Promise<string[] | undefined>;\n\nexport type SelectApplicationCallback = () => Promise<\n ApplicationDeclarationData | undefined\n>;\n\nexport type SelectMappingCallback = (parameter: string) => Promise<string>;\n\nexport type ConfirmCallback = (\n data: ApplicationDeclarationData\n) => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type GetDataMappingCallback = (\n applicationName: string\n) => Promise<ApplicationDeclarationData>;\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventEmitter } from "
|
|
1
|
+
import { EventEmitter } from "../../../stencil-public-runtime";
|
|
2
2
|
import { SuggestData } from "@genexus/chameleon-controls-library/dist/types/components/suggest/ch-suggest";
|
|
3
3
|
export declare class GxIdeBpmAppDeclaration {
|
|
4
4
|
/**
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { EventEmitter } from "../../../stencil-public-runtime";
|
|
2
|
+
export declare class GxIdeBpmAssignRoles {
|
|
3
|
+
/**
|
|
4
|
+
* The component hard-coded strings translations.
|
|
5
|
+
*/
|
|
6
|
+
private _componentLocale;
|
|
7
|
+
private renderedFirstTime;
|
|
8
|
+
el: HTMLGxIdeBpmAssignRolesElement;
|
|
9
|
+
private unassignedRolesEL;
|
|
10
|
+
private assignedRolesEl;
|
|
11
|
+
unassignedRolesState: string[];
|
|
12
|
+
assignedRolesState: string[];
|
|
13
|
+
filterUnassignedInput: string;
|
|
14
|
+
filterAssignedInput: string;
|
|
15
|
+
unassignedSelected: boolean;
|
|
16
|
+
assignedSelected: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* If true it displays the component title on the header
|
|
19
|
+
*/
|
|
20
|
+
readonly displayTitle = false;
|
|
21
|
+
/**
|
|
22
|
+
* Array with all available roles
|
|
23
|
+
*/
|
|
24
|
+
readonly roles: string[];
|
|
25
|
+
/**
|
|
26
|
+
* Array with currently assigned roles
|
|
27
|
+
*/
|
|
28
|
+
readonly assignedRoles: string[];
|
|
29
|
+
/**
|
|
30
|
+
* Callback invoked when user confirms assignation
|
|
31
|
+
*/
|
|
32
|
+
readonly confirmCallback: ConfirmCallback;
|
|
33
|
+
/**
|
|
34
|
+
* Callback invoked when user cancels assignation
|
|
35
|
+
*/
|
|
36
|
+
readonly cancelCallback: CancelCallback;
|
|
37
|
+
/**
|
|
38
|
+
* @description Gets fired when the component has rendered for the first time.
|
|
39
|
+
*/
|
|
40
|
+
componentDidRenderFirstTime: EventEmitter<string>;
|
|
41
|
+
componentWillLoad(): Promise<void>;
|
|
42
|
+
componentDidRender(): void;
|
|
43
|
+
private confirmCallbackHandler;
|
|
44
|
+
private cancelCallbackHandler;
|
|
45
|
+
private handleAssignedCheckedChange;
|
|
46
|
+
private handleUnassignedCheckedChange;
|
|
47
|
+
private handleUnassignedInput;
|
|
48
|
+
private handleAssignedInput;
|
|
49
|
+
private getCheckedItems;
|
|
50
|
+
private addAll;
|
|
51
|
+
private addSelectedRoles;
|
|
52
|
+
private removeAll;
|
|
53
|
+
private removeSelectedRoles;
|
|
54
|
+
private renderRolesToAdd;
|
|
55
|
+
private renderRolesToRemove;
|
|
56
|
+
render(): any;
|
|
57
|
+
}
|
|
58
|
+
export type ConfirmCallback = (assignedRoles: string[]) => Promise<void>;
|
|
59
|
+
export type CancelCallback = () => Promise<void>;
|
package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export declare class GxManageModuleReferences {
|
|
|
24
24
|
progressValue: number;
|
|
25
25
|
progressState: topStateBarType;
|
|
26
26
|
loadingServer: boolean;
|
|
27
|
+
reRenderCounter: number;
|
|
27
28
|
loadingServerHandler(loading: boolean): void;
|
|
28
29
|
/**
|
|
29
30
|
* If true it displays the component title on the header
|
|
@@ -80,6 +81,7 @@ export declare class GxManageModuleReferences {
|
|
|
80
81
|
*/
|
|
81
82
|
private serverSelectedCallbackHandler;
|
|
82
83
|
private handleFilterChange;
|
|
84
|
+
private handleFilterChangeHandler;
|
|
83
85
|
/**
|
|
84
86
|
* Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback
|
|
85
87
|
*/
|
|
@@ -87,6 +89,7 @@ export declare class GxManageModuleReferences {
|
|
|
87
89
|
private filterModulesByType;
|
|
88
90
|
private showModuleMenu;
|
|
89
91
|
private getModuleData;
|
|
92
|
+
private moduleActionHandler;
|
|
90
93
|
private renderModulesGrid;
|
|
91
94
|
private renderEmptyStateModules;
|
|
92
95
|
private moduleVersionIconColor;
|
|
@@ -101,10 +104,11 @@ export declare class GxManageModuleReferences {
|
|
|
101
104
|
private serverItemSelectedHandler;
|
|
102
105
|
private serverValueChangedHandler;
|
|
103
106
|
private progressBarCloseHandler;
|
|
107
|
+
private reloadServer;
|
|
104
108
|
render(): void;
|
|
105
109
|
}
|
|
106
110
|
export type ExecuteActionCallback = (serverId: string, moduleId: string, moduleVersionId: string, action: ModuleActionType, onProgress: (message: string, progress: number, state: topStateBarType) => void) => Promise<boolean>;
|
|
107
|
-
export type ServerSelectedCallback = (id: string) => Promise<ModuleData[]>;
|
|
111
|
+
export type ServerSelectedCallback = (id: string, reload: boolean) => Promise<ModuleData[]>;
|
|
108
112
|
export type AddServerCallback = () => Promise<void>;
|
|
109
113
|
export type ServerContextMenuCallback = (contextMenuInfo: ContextMenuInfo) => Promise<void>;
|
|
110
114
|
export interface ActionInfo {
|