@genexus/genexus-ide-ui 0.0.118 → 0.0.120
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/gx-ide-manage-module-references.cjs.entry.js +19 -17
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
- package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +7 -3
- package/dist/collection/components/modules/manage-module-references/manage-module-references.css +3 -0
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js +18 -16
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
- package/dist/collection/components/modules/types.js.map +1 -1
- package/dist/components/gx-ide-manage-module-references.js +19 -17
- package/dist/components/gx-ide-manage-module-references.js.map +1 -1
- package/dist/esm/gx-ide-manage-module-references.entry.js +19 -17
- package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +7 -3
- package/dist/genexus-ide-ui/{p-b19e8dbf.entry.js → p-2de4f2e1.entry.js} +19 -21
- package/dist/genexus-ide-ui/p-2de4f2e1.entry.js.map +1 -0
- package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +3 -3
- package/dist/types/components/modules/types.d.ts +1 -1
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-b19e8dbf.entry.js.map +0 -1
|
@@ -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__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)}';
|
|
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__action-container--uninstallable:before{background-color:var(--mer-icon__warning)}.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) {
|
|
@@ -128,10 +128,10 @@ const n = class {
|
|
|
128
128
|
}
|
|
129
129
|
return o;
|
|
130
130
|
};
|
|
131
|
-
this.moduleActionHandler = () => {
|
|
131
|
+
this.moduleActionHandler = e => () => {
|
|
132
132
|
this.actionCompleted = false;
|
|
133
133
|
this.closeProgressBar = false;
|
|
134
|
-
this.executeActionCallbackHandler(
|
|
134
|
+
this.executeActionCallbackHandler(e);
|
|
135
135
|
};
|
|
136
136
|
this.renderModulesGrid = () => i("gxg-grid", {
|
|
137
137
|
noBorder: true,
|
|
@@ -168,7 +168,7 @@ const n = class {
|
|
|
168
168
|
disabled: !this.actionCompleted || this.getModuleData(e, "action") === "incompatible" || this.getModuleData(e, "action") === "not-installable",
|
|
169
169
|
fit: true,
|
|
170
170
|
part: "module-action",
|
|
171
|
-
onClick: this.moduleActionHandler
|
|
171
|
+
onClick: this.moduleActionHandler(e)
|
|
172
172
|
}, this.getActionFromCurrentModuleVersion()) : null))))));
|
|
173
173
|
this.renderEmptyStateModules = () => i("gx-ide-empty-state", {
|
|
174
174
|
stateIcon: "mercury/filters",
|
|
@@ -176,24 +176,22 @@ const n = class {
|
|
|
176
176
|
});
|
|
177
177
|
this.moduleVersionIconColor = e => {
|
|
178
178
|
const t = this.getModuleData(e, "action");
|
|
179
|
+
const i = e.currentVersion;
|
|
179
180
|
if (t === "not-installable" || t === "incompatible") {
|
|
180
181
|
return "warning";
|
|
181
|
-
} else if (
|
|
182
|
+
} else if (!i) {
|
|
182
183
|
return "mercury-primary-disabled";
|
|
183
184
|
} else {
|
|
184
185
|
return "mercury-primary";
|
|
185
186
|
}
|
|
186
187
|
};
|
|
187
|
-
/* module details/information renders*/ this.
|
|
188
|
+
/* module details/information renders*/ this.renderVersionName = () => i("gxg-title", {
|
|
188
189
|
part: "module-info__name",
|
|
189
190
|
type: "title-05"
|
|
190
191
|
}, i("div", {
|
|
191
192
|
class: "module-info__name"
|
|
192
|
-
},
|
|
193
|
-
|
|
194
|
-
color: this.moduleVersionIconColor(this.selectedModule)
|
|
195
|
-
}), this.getModuleData(this.selectedModule, "name")));
|
|
196
|
-
this.renderModuleAlertMessage = () => {
|
|
193
|
+
}, this.getModuleData(this.selectedModule, "name")));
|
|
194
|
+
this.renderVersionAlertMessage = () => {
|
|
197
195
|
const e = this.getModuleData(this.selectedModule, "alertMessage");
|
|
198
196
|
if (e) {
|
|
199
197
|
return i("p", {
|
|
@@ -201,15 +199,15 @@ const n = class {
|
|
|
201
199
|
}, e);
|
|
202
200
|
}
|
|
203
201
|
};
|
|
204
|
-
this.
|
|
205
|
-
const e = this.
|
|
202
|
+
this.renderInstalledVersion = () => {
|
|
203
|
+
const e = this.selectedModule.currentVersion;
|
|
206
204
|
let t;
|
|
207
205
|
let r = "module-info__action-container";
|
|
208
|
-
if (e
|
|
209
|
-
t =
|
|
210
|
-
} else {
|
|
206
|
+
if (e) {
|
|
207
|
+
t = `${this._componentLocale.modulesInformation.moduleProperties.installed}: ${e}`;
|
|
211
208
|
r += ` module-info__action-container--installed`;
|
|
212
|
-
|
|
209
|
+
} else {
|
|
210
|
+
t = this._componentLocale.modulesInformation.moduleProperties.notInstalled;
|
|
213
211
|
}
|
|
214
212
|
return i("div", {
|
|
215
213
|
class: r
|
|
@@ -368,11 +366,11 @@ const n = class {
|
|
|
368
366
|
type: "secondary-icon-only",
|
|
369
367
|
icon: "gemini-tools/show-more-horizontal",
|
|
370
368
|
onClick: this.showModuleMenu
|
|
371
|
-
}), i("gxg-button", {
|
|
369
|
+
})) : null, i("gxg-button", {
|
|
372
370
|
type: "secondary-icon-only",
|
|
373
371
|
icon: "gemini-tools/reset",
|
|
374
372
|
onClick: this.reloadServer
|
|
375
|
-
}))
|
|
373
|
+
})))), i("div", {
|
|
376
374
|
class: "modules__main"
|
|
377
375
|
}, i("div", {
|
|
378
376
|
class: "modules__main-header"
|
|
@@ -404,7 +402,7 @@ const n = class {
|
|
|
404
402
|
class: "module-info"
|
|
405
403
|
}, i("header", {
|
|
406
404
|
class: "module-info__header"
|
|
407
|
-
}, this.
|
|
405
|
+
}, this.renderVersionName(), this.renderInstalledVersion(), this.renderModuleVersions(), this.renderVersionAlertMessage()), i("div", {
|
|
408
406
|
class: "module-info__properties gxg-scrollbar"
|
|
409
407
|
}, a(this.getModuleData(this.selectedModule, "properties")))) : i("gx-ide-empty-state", {
|
|
410
408
|
class: "recent-objects__empty-state",
|
|
@@ -445,4 +443,4 @@ const n = class {
|
|
|
445
443
|
n.style = l;
|
|
446
444
|
|
|
447
445
|
export { n as gx_ide_manage_module_references };
|
|
448
|
-
//# sourceMappingURL=p-
|
|
446
|
+
//# sourceMappingURL=p-2de4f2e1.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","moduleCurrentVersion","renderVersionName","renderVersionAlertMessage","alertMessage","renderInstalledVersion","caption","cssClass","modulesInformation","moduleProperties","installed","notInstalled","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","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 &--uninstallable:before {\n background-color: var(--mer-icon__warning);\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 = (module: ModuleData) => () => {\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(module)}\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 const moduleCurrentVersion = module.currentVersion;\n if (moduleAction === \"not-installable\" || moduleAction === \"incompatible\") {\n return \"warning\";\n } else if (!moduleCurrentVersion) {\n return \"mercury-primary-disabled\";\n } else {\n return \"mercury-primary\";\n }\n };\n\n /* module details/information renders*/\n private renderVersionName = () => {\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\n private renderVersionAlertMessage = () => {\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\n private renderInstalledVersion = () => {\n const currentVersion = this.selectedModule.currentVersion;\n let caption;\n let cssClass = \"module-info__action-container\";\n if (currentVersion) {\n caption = `${this._componentLocale.modulesInformation.moduleProperties.installed}: ${currentVersion}`;\n cssClass += ` module-info__action-container--installed`;\n } else {\n caption =\n this._componentLocale.modulesInformation.moduleProperties.notInstalled;\n }\n return (\n <div class={cssClass}>\n <gxg-text part=\"module-info__action\">{caption}</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 </span>\n ) : null}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/reset\"\n onClick={this.reloadServer}\n ></gxg-button>\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 version information*/}\n {this.selectedModule ? (\n <div class=\"module-info\">\n <header class=\"module-info__header\">\n {this.renderVersionName()}\n {this.renderInstalledVersion()}\n {this.renderModuleVersions()}\n {/* {this.renderNotInstallable()} */}\n {this.renderVersionAlertMessage()}\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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"}
|
package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts
CHANGED
|
@@ -93,9 +93,9 @@ export declare class GxManageModuleReferences {
|
|
|
93
93
|
private renderModulesGrid;
|
|
94
94
|
private renderEmptyStateModules;
|
|
95
95
|
private moduleVersionIconColor;
|
|
96
|
-
private
|
|
97
|
-
private
|
|
98
|
-
private
|
|
96
|
+
private renderVersionName;
|
|
97
|
+
private renderVersionAlertMessage;
|
|
98
|
+
private renderInstalledVersion;
|
|
99
99
|
private moduleVersionsValueChangedHandler;
|
|
100
100
|
private moduleVersionsItemChangedHandler;
|
|
101
101
|
private updateSelectedModuleVersion;
|
|
@@ -14,7 +14,7 @@ export type ModuleServerType = {
|
|
|
14
14
|
export type ModuleData = {
|
|
15
15
|
id: string;
|
|
16
16
|
versions?: ModuleVersionData[];
|
|
17
|
-
currentVersion?: string;
|
|
17
|
+
currentVersion?: string | undefined;
|
|
18
18
|
};
|
|
19
19
|
export type ModuleActionType = "install" | "restore" | "update" | "not-installable" | "incompatible";
|
|
20
20
|
export type ModuleFilterType = "browse" | "installed" | "updates";
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
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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"}
|