@genexus/genexus-ide-ui 1.1.61 → 1.1.62

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.
Files changed (115) hide show
  1. package/dist/cjs/{common-f2540d3e.js → common-51d68918.js} +1 -31
  2. package/dist/cjs/common-51d68918.js.map +1 -0
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +111 -49
  5. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +358 -266
  9. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-progress-bar.cjs.entry.js +141 -0
  13. package/dist/cjs/gx-ide-progress-bar.cjs.entry.js.map +1 -0
  14. package/dist/cjs/gx-ide-splash.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  16. package/dist/cjs/loader.cjs.js +1 -1
  17. package/dist/collection/collection-manifest.json +1 -0
  18. package/dist/collection/common/common.js +0 -21
  19. package/dist/collection/common/common.js.map +1 -1
  20. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +1 -1
  21. package/dist/collection/components/_helpers/progress-bar/gx-ide-assets/progress-bar/langs/progress-bar.lang.en.json +5 -0
  22. package/dist/collection/components/_helpers/progress-bar/gx-ide-assets/progress-bar/langs/progress-bar.lang.ja.json +5 -0
  23. package/dist/collection/components/_helpers/progress-bar/gx-ide-assets/progress-bar/langs/progress-bar.lang.zh.json +5 -0
  24. package/dist/collection/components/_helpers/progress-bar/progress-bar.css +210 -0
  25. package/dist/collection/components/_helpers/progress-bar/progress-bar.js +320 -0
  26. package/dist/collection/components/_helpers/progress-bar/progress-bar.js.map +1 -0
  27. package/dist/collection/components/modules/edit-module-server/edit-module-server.css +30 -639
  28. package/dist/collection/components/modules/edit-module-server/edit-module-server.js +179 -110
  29. package/dist/collection/components/modules/edit-module-server/edit-module-server.js.map +1 -1
  30. package/dist/collection/components/modules/edit-module-server/gx-ide-assets/edit-module-server/shortcuts.json +15 -0
  31. package/dist/collection/components/modules/edit-module-server/helpers.js +12 -0
  32. package/dist/collection/components/modules/edit-module-server/helpers.js.map +1 -0
  33. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +6 -2
  34. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +6 -2
  35. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +6 -2
  36. package/dist/collection/components/modules/manage-module-references/helpers.js +32 -0
  37. package/dist/collection/components/modules/manage-module-references/helpers.js.map +1 -0
  38. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +116 -789
  39. package/dist/collection/components/modules/manage-module-references/manage-module-references.js +378 -373
  40. package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
  41. package/dist/collection/testing/locale.e2e.js +1 -0
  42. package/dist/collection/testing/locale.e2e.js.map +1 -1
  43. package/dist/components/common.js +1 -30
  44. package/dist/components/common.js.map +1 -1
  45. package/dist/components/gx-ide-edit-module-server.js +118 -68
  46. package/dist/components/gx-ide-edit-module-server.js.map +1 -1
  47. package/dist/components/gx-ide-empty-state2.js +1 -1
  48. package/dist/components/gx-ide-empty-state2.js.map +1 -1
  49. package/dist/components/gx-ide-manage-module-references.js +384 -291
  50. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  51. package/dist/components/gx-ide-progress-bar.d.ts +11 -0
  52. package/dist/components/gx-ide-progress-bar.js +8 -0
  53. package/dist/components/gx-ide-progress-bar.js.map +1 -0
  54. package/dist/components/gx-ide-ww-images.js +1 -1
  55. package/dist/components/progress-bar.js +166 -0
  56. package/dist/components/progress-bar.js.map +1 -0
  57. package/dist/esm/{common-b811a822.js → common-dc966e64.js} +2 -31
  58. package/dist/esm/common-dc966e64.js.map +1 -0
  59. package/dist/esm/genexus-ide-ui.js +1 -1
  60. package/dist/esm/gx-ide-edit-module-server.entry.js +112 -50
  61. package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
  62. package/dist/esm/gx-ide-empty-state.entry.js +1 -1
  63. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
  64. package/dist/esm/gx-ide-manage-module-references.entry.js +359 -267
  65. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  66. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  67. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  68. package/dist/esm/gx-ide-progress-bar.entry.js +137 -0
  69. package/dist/esm/gx-ide-progress-bar.entry.js.map +1 -0
  70. package/dist/esm/gx-ide-splash.entry.js +1 -1
  71. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  72. package/dist/esm/loader.js +1 -1
  73. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  74. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  75. package/dist/genexus-ide-ui/gx-ide-assets/edit-module-server/shortcuts.json +15 -0
  76. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +6 -2
  77. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +6 -2
  78. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +6 -2
  79. package/dist/genexus-ide-ui/gx-ide-assets/progress-bar/langs/progress-bar.lang.en.json +5 -0
  80. package/dist/genexus-ide-ui/gx-ide-assets/progress-bar/langs/progress-bar.lang.ja.json +5 -0
  81. package/dist/genexus-ide-ui/gx-ide-assets/progress-bar/langs/progress-bar.lang.zh.json +5 -0
  82. package/dist/genexus-ide-ui/p-29ac6b13.entry.js +582 -0
  83. package/dist/genexus-ide-ui/p-29ac6b13.entry.js.map +1 -0
  84. package/dist/genexus-ide-ui/p-3a22af5d.entry.js +249 -0
  85. package/dist/genexus-ide-ui/p-3a22af5d.entry.js.map +1 -0
  86. package/dist/genexus-ide-ui/p-45d9dcbc.entry.js +166 -0
  87. package/dist/genexus-ide-ui/p-45d9dcbc.entry.js.map +1 -0
  88. package/dist/genexus-ide-ui/{p-84d39fc6.entry.js → p-5f7de718.entry.js} +2 -2
  89. package/dist/genexus-ide-ui/{p-84d39fc6.entry.js.map → p-5f7de718.entry.js.map} +1 -1
  90. package/dist/genexus-ide-ui/{p-f5734cc7.entry.js → p-630581df.entry.js} +2 -2
  91. package/dist/genexus-ide-ui/{p-d41d52f6.entry.js → p-70038e09.entry.js} +2 -2
  92. package/dist/genexus-ide-ui/{p-b5aadc8d.entry.js → p-8f2f8995.entry.js} +2 -2
  93. package/dist/genexus-ide-ui/{p-ae33da9a.entry.js → p-9606ebed.entry.js} +19 -19
  94. package/dist/genexus-ide-ui/p-97bbd54c.js +132 -0
  95. package/dist/genexus-ide-ui/p-97bbd54c.js.map +1 -0
  96. package/dist/types/common/common.d.ts +0 -2
  97. package/dist/types/components/_helpers/progress-bar/progress-bar.d.ts +61 -0
  98. package/dist/types/components/modules/edit-module-server/edit-module-server.d.ts +15 -30
  99. package/dist/types/components/modules/edit-module-server/helpers.d.ts +3 -0
  100. package/dist/types/components/modules/manage-module-references/helpers.d.ts +5 -0
  101. package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +43 -88
  102. package/dist/types/components.d.ts +109 -42
  103. package/package.json +1 -1
  104. package/dist/cjs/common-f2540d3e.js.map +0 -1
  105. package/dist/esm/common-b811a822.js.map +0 -1
  106. package/dist/genexus-ide-ui/p-67e3486a.entry.js +0 -498
  107. package/dist/genexus-ide-ui/p-67e3486a.entry.js.map +0 -1
  108. package/dist/genexus-ide-ui/p-714b37c0.js +0 -159
  109. package/dist/genexus-ide-ui/p-714b37c0.js.map +0 -1
  110. package/dist/genexus-ide-ui/p-e13998a5.entry.js +0 -141
  111. package/dist/genexus-ide-ui/p-e13998a5.entry.js.map +0 -1
  112. /package/dist/genexus-ide-ui/{p-f5734cc7.entry.js.map → p-630581df.entry.js.map} +0 -0
  113. /package/dist/genexus-ide-ui/{p-d41d52f6.entry.js.map → p-70038e09.entry.js.map} +0 -0
  114. /package/dist/genexus-ide-ui/{p-b5aadc8d.entry.js.map → p-8f2f8995.entry.js.map} +0 -0
  115. /package/dist/genexus-ide-ui/{p-ae33da9a.entry.js.map → p-9606ebed.entry.js.map} +0 -0
@@ -1,498 +0,0 @@
1
- import { r as e, c as t, h as i, H as r, a } from "./p-9b9ccd0c.js";
2
-
3
- import { g as o } from "./p-d42e842b.js";
4
-
5
- import "./p-d4ecd3bb.js";
6
-
7
- import "lit";
8
-
9
- import "lit/directives/when.js";
10
-
11
- import "lit/directives/if-defined.js";
12
-
13
- import { r as s } from "./p-714b37c0.js";
14
-
15
- import { L as l } from "./p-311eedf3.js";
16
-
17
- const n = ':root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.pill-tag{padding:1px 4px;border-radius:2px;min-inline-size:40px;text-align:center;margin-inline-end:10px;font-size:11px}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}.giu-static-pill-icon-and-text,.giu-static-pill{background-color:var(--elevation-background-color, var(--mer-surface__elevation--01));padding-inline:var(--mer-spacing--xs);color:var(--mer-text__on-elevation);font-size:var(--font-size-body-s);line-height:1.4;font-weight:var(--font-weight-regular);border-radius:var(--mer-border__width--lg);min-block-size:25px;display:inline-grid;align-items:center;pointer-events:none}.giu-static-pill-icon-and-text{display:inline-grid;grid-auto-flow:column;grid-auto-columns:max-content;gap:var(--mer-spacing--xs)}.tab-full-width-buttons::part(tab-list block-start),.tab-full-width-buttons::part(tab-list block-end){grid-auto-columns:1fr}.tab-full-width-buttons::part(tab block-start){justify-content:center}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=install]{filter:brightness(2)}.grid-cell-module__info{display:flex;flex-direction:column;align-items:flex-start;gap:var(--mer-spacing--3xs)}.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__title{display:flex;align-items:center;gap:var(--mer-spacing--xs)}.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__warning-message{margin-block-start:var(--mer-spacing--2xs);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--2xs)}.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--2xs);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--2xs);height:var(--mer-spacing--2xs);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)}.button-wrapper{display:grid;align-items:center;justify-content:center}';
18
-
19
- var d = undefined && undefined.__classPrivateFieldGet || function(e, t, i, r) {
20
- if (i === "a" && !r) throw new TypeError("Private accessor was defined without a getter");
21
- if (typeof t === "function" ? e !== t || !r : !t.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
22
- return i === "m" ? r : i === "a" ? r.call(e) : r ? r.value : t.get(e);
23
- };
24
-
25
- var c, g;
26
-
27
- const h = [ "resets/box-sizing",
28
- // "utils/form",
29
- // "utils/layout",
30
- // "utils/typography",
31
- // "components/button",
32
- // "components/checkbox",
33
- // "components/edit",
34
- "components/tabular-grid" ];
35
-
36
- const f = class {
37
- constructor(r) {
38
- e(this, r);
39
- this.componentDidRenderFirstTime = t(this, "componentDidRenderFirstTime", 7);
40
- this.renderedFirstTime = false;
41
- c.set(this, o({
42
- category: "system",
43
- name: "filters",
44
- colorType: "on-elevation"
45
- }));
46
- g.set(this, o({
47
- category: "objects",
48
- name: "module"
49
- }));
50
- // 9.LOCAL METHODS //
51
- this.updateModulesSelectedVersion = e => {
52
- if (this.selectedServerId !== this.selectedServerIdOnModulesAllUpdate) {
53
- // the server has changed. clear the updateModulesSelectedVersion
54
- this.modulesSelectedVersion.clear();
55
- e.forEach((e => {
56
- // this.modulesSelectedVersion.set(module.id, module.versions[0].id);
57
- this.modulesSelectedVersion.set(e.id, e.versions[e.versions.length - 1].id);
58
- }));
59
- } else {
60
- // the server has't changed. only add the module to the map, if it is a new module.
61
- e.forEach((e => {
62
- const t = this.modulesSelectedVersion.get(e.id) === undefined;
63
- if (t) {
64
- this.modulesSelectedVersion.set(e.id, e.versions[0].id);
65
- }
66
- }));
67
- }
68
- this.selectedServerIdOnModulesAllUpdate = this.selectedServerId;
69
- };
70
- this.getActionFromCurrentModuleVersion = () => {
71
- const e = this.getModuleData(this.selectedModule, "action");
72
- return e || "install";
73
- };
74
- /**
75
- * Callback invoked to get the progress when module is performing an action
76
- */ this.onProgress = (e, t, i) => {
77
- const r = {
78
- message: e,
79
- progress: t,
80
- state: i
81
- };
82
- this.selectedModuleAction = Object.assign({}, r);
83
- this.progressValue = this.selectedModuleAction.progress;
84
- this.progressState = this.selectedModuleAction.state;
85
- };
86
- // 10.LOCAL METHODS //
87
- /**
88
- * Used for changing the selected module
89
- */ this.handleModuleChange = e => {
90
- const t = e.detail.rowsId[0];
91
- const i = this.modulesAll.find((e => e.id === t));
92
- if (i) {
93
- this.selectedModule = i;
94
- }
95
- };
96
- /**
97
- * Change the server selected value in response to callbackServerSelected callback
98
- */ this.serverSelectedCallbackHandler = async (e, t) => {
99
- if (this.serverSelectedCallback) {
100
- this.loadingServer = true;
101
- const i = await this.serverSelectedCallback(e, t);
102
- this.selectedServerId = e;
103
- this.modulesAll = [ ...i ];
104
- this.filterModulesByType("browse");
105
- this.selectedModule = this.filteredModules[0];
106
- this.loadingServer = false;
107
- }
108
- };
109
- this.handleFilterChange = e => {
110
- e = e.trim().toLowerCase();
111
- if (e) {
112
- this.filteredModules = this.modulesAll.filter((t => {
113
- const i = this.getModuleData(t, "name");
114
- return i === null || i === void 0 ? void 0 : i.toLowerCase().includes(e);
115
- }));
116
- } else {
117
- this.filteredModules = this.modulesAll;
118
- }
119
- };
120
- this.handleFilterChangeHandler = e => {
121
- const t = e.detail;
122
- return this.handleFilterChange(t);
123
- };
124
- /**
125
- * Perform an action relative to a module using callbackExecuteAction callback and receive the state of that action with onProgress callback
126
- */ this.executeActionCallbackHandler = async e => {
127
- if (this.executeActionCallback) {
128
- const t = this.modulesSelectedVersion.get(e.id);
129
- const i = await this.executeActionCallback(this.selectedServerId, e.id, t, this.getActionFromCurrentModuleVersion(), this.onProgress);
130
- if (i) {
131
- this.serverSelectedCallbackHandler(this.selectedServerId, false);
132
- }
133
- this.actionCompleted = i;
134
- }
135
- };
136
- this.filterModulesByType = e => {
137
- // browse
138
- if (e === "browse") {
139
- this.filteredModules = this.modulesAll;
140
- }
141
- // installed
142
- else if (e === "installed") {
143
- this.filteredModules = this.modulesAll.filter((e => e.currentVersion));
144
- } else if (e === "updates") {
145
- this.filteredModules = this.modulesAll.filter((e => e.versions.find((e => e.action === "update"))));
146
- }
147
- };
148
- this.showModuleMenu = async e => {
149
- if (this.serverContextMenuCallback) {
150
- const t = e.target.getBoundingClientRect();
151
- await this.serverContextMenuCallback({
152
- selection: [ this.selectedServerId ],
153
- clientX: t.x,
154
- clientY: t.y
155
- });
156
- }
157
- };
158
- this.getModuleData = (e, t) => {
159
- const i = this.modulesSelectedVersion.get(e.id);
160
- let r;
161
- let a;
162
- if (i) {
163
- r = e.versions.find((e => e.id === i));
164
- }
165
- if (r) {
166
- a = r[t];
167
- }
168
- return a;
169
- };
170
- this.moduleActionHandler = e => () => {
171
- this.actionCompleted = false;
172
- this.closeProgressBar = false;
173
- this.executeActionCallbackHandler(e);
174
- };
175
- this.renderModulesGrid = () => i("ch-tabular-grid", {
176
- rowSelectionMode: "single",
177
- part: "ch-grid-pending-commits",
178
- class: "tabular-grid servers-detail no-border",
179
- onSelectionChanged: this.handleModuleChange
180
- }, i("ch-tabular-grid-columnset", {
181
- class: "tabular-grid-column-set"
182
- }, i("ch-tabular-grid-column", {
183
- class: "tabular-grid-column",
184
- settingable: false,
185
- size: "min-content"
186
- }), i("ch-tabular-grid-column", {
187
- class: "tabular-grid-column",
188
- settingable: false
189
- }), i("ch-tabular-grid-column", {
190
- class: "tabular-grid-column",
191
- settingable: false,
192
- size: "min-content"
193
- })), this.filteredModules.map((e => i("ch-tabular-grid-row", {
194
- class: "tabular-grid-row",
195
- rowid: e.id,
196
- key: e.id,
197
- selected: this.selectedModule && this.selectedModule.id === e.id
198
- }, i("ch-tabular-grid-cell", {
199
- class: "tabular-grid-cell"
200
- }, i("gxg-icon", {
201
- type: "objects/module",
202
- "data-action": this.moduleVersionIconColor(e),
203
- color: this.moduleVersionIconColor(e),
204
- size: "small"
205
- })), i("ch-tabular-grid-cell", {
206
- class: "tabular-grid-cell grid-cell-module__info"
207
- }, i("span", {
208
- class: "grid-cell-module__name"
209
- }, this.getModuleData(e, "name")), i("span", {
210
- class: "grid-cell-module__description"
211
- }, this.getModuleData(e, "description"))), i("ch-tabular-grid-cell", {
212
- class: "tabular-grid-cell"
213
- }, this.selectedModule && this.selectedModule.id === e.id ? i("div", {
214
- class: "button-wrapper"
215
- }, i("gxg-button", {
216
- disabled: !this.actionCompleted || this.getModuleData(e, "action") === "incompatible" || this.getModuleData(e, "action") === "not-installable",
217
- fit: true,
218
- part: "module-action",
219
- onClick: this.moduleActionHandler(e)
220
- }, this.getActionFromCurrentModuleVersion())) : null)))));
221
- this.renderEmptyStateModules = () => i("gx-ide-empty-state", {
222
- stateIconSrc: d(this, c, "f"),
223
- stateTitle: this._componentLocale.modules.noModulesFilter
224
- });
225
- this.moduleVersionIconColor = e => {
226
- const t = this.getModuleData(e, "action");
227
- const i = e.currentVersion;
228
- if (t === "not-installable" || t === "incompatible") {
229
- return "warning";
230
- } else if (!i) {
231
- return "mercury-primary-disabled";
232
- } else {
233
- return "mercury-primary";
234
- }
235
- };
236
- /* module details/information renders*/ this.renderVersionName = () => i("gxg-title", {
237
- part: "module-info__name",
238
- type: "title-05"
239
- }, i("div", {
240
- class: "module-info__name"
241
- }, this.getModuleData(this.selectedModule, "name")));
242
- this.renderVersionWarningMessage = () => {
243
- const e = this.getModuleData(this.selectedModule, "warningMessage");
244
- if (e) {
245
- return i("p", {
246
- class: "module-info__alert-message"
247
- }, e);
248
- }
249
- };
250
- this.renderInstalledVersion = () => {
251
- const e = this.selectedModule.currentVersion;
252
- let t;
253
- let r = "module-info__action-container";
254
- if (e) {
255
- t = `${this._componentLocale.modulesInformation.moduleProperties.installed}: ${e}`;
256
- r += ` module-info__action-container--installed`;
257
- } else {
258
- t = this._componentLocale.modulesInformation.moduleProperties.notInstalled;
259
- }
260
- return i("div", {
261
- class: r
262
- }, i("gxg-text", {
263
- part: "module-info__action"
264
- }, t));
265
- };
266
- this.moduleVersionsValueChangedHandler = e => {
267
- const t = e.detail;
268
- this.updateSelectedModuleVersion(t);
269
- };
270
- this.moduleVersionsItemChangedHandler = e => {
271
- const t = e.detail.value;
272
- this.updateSelectedModuleVersion(t);
273
- };
274
- this.updateSelectedModuleVersion = e => {
275
- if (e) {
276
- this.modulesSelectedVersion.set(this.selectedModule.id, e);
277
- this.reRenderCounter++;
278
- }
279
- };
280
- this.renderModuleVersions = () => i("div", {
281
- part: "available-versions"
282
- }, i("gxg-combo-box", {
283
- id: "versions-combo-box",
284
- "disable-filter": true,
285
- value: this.getModuleData(this.selectedModule, "id"),
286
- part: "module-versions",
287
- "display-validation-styles": true,
288
- "display-validation-message": true,
289
- label: this._componentLocale.modulesInformation.moduleProperties.availableVersions,
290
- labelPosition: "start",
291
- centerLabel: true,
292
- onValueChanged: this.moduleVersionsValueChangedHandler,
293
- disabled: this.loadingServer
294
- }, this.selectedModule.versions.map((e => i("gxg-combo-box-item", {
295
- value: e.id,
296
- onItemSelected: this.moduleVersionsItemChangedHandler
297
- }, e.id)))));
298
- this.selectedButtonChangedHandler = e => {
299
- const t = e.detail.replace("btn-", "");
300
- this.filterModulesByType(t);
301
- };
302
- this.serverItemSelectedHandler = e => {
303
- const t = e.detail.value;
304
- this.serverSelectedCallbackHandler(t, false);
305
- };
306
- this.serverValueChangedHandler = e => {
307
- const t = e.detail;
308
- this.serverSelectedCallbackHandler(t, false);
309
- };
310
- this.progressBarCloseHandler = () => {
311
- setTimeout((() => {
312
- this.actionCompleted = true;
313
- this.closeProgressBar = true;
314
- // reset
315
- this.progressValue = 0;
316
- this.progressState = "in-progress";
317
- }), 400);
318
- // delay to force the footer line disappear after the top-state-bar has been closed.
319
- };
320
- this.reloadServer = () => {
321
- this.serverSelectedCallbackHandler(this.selectedServerId, true);
322
- };
323
- this.modulesAll = [];
324
- this.filteredModules = [];
325
- this.selectedModule = undefined;
326
- this.selectedServerId = undefined;
327
- this.selectedModuleAction = {
328
- message: "",
329
- progress: 0,
330
- state: "in-progress"
331
- };
332
- this.modulesSelectedVersion = new Map;
333
- this.actionCompleted = true;
334
- this.closeProgressBar = true;
335
- this.progressValue = 0;
336
- this.progressState = "in-progress";
337
- this.loadingServer = false;
338
- this.reRenderCounter = 0;
339
- this.displayTitle = false;
340
- this.servers = [];
341
- this.serverSelectedCallback = undefined;
342
- this.executeActionCallback = undefined;
343
- this.addServerCallback = undefined;
344
- this.serverContextMenuCallback = undefined;
345
- this.showServerCommands = false;
346
- }
347
- modulesAllWatcher(e) {
348
- this.updateModulesSelectedVersion(e);
349
- }
350
- loadingServerHandler(e) {
351
- if (e) {
352
- this.loaderEl.show = true;
353
- } else {
354
- this.loaderEl.show = false;
355
- }
356
- }
357
- // 6.COMPONENT LIFECYCLE EVENTS //
358
- componentDidRender() {
359
- if (!this.renderedFirstTime) {
360
- this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
361
- this.renderedFirstTime = true;
362
- }
363
- }
364
- async componentWillLoad() {
365
- this._componentLocale = await l.getComponentStrings(this.el);
366
- }
367
- async componentDidLoad() {
368
- await this.serverSelectedCallbackHandler(this.servers[0].id, false);
369
- }
370
- // 7.LISTENERS //
371
- onPropValueChange(e) {
372
- this.filteredModules = [ ...e ];
373
- }
374
- // 8.PUBLIC METHODS API //
375
- /**
376
- * validate
377
- */
378
- async validate() {
379
- return true;
380
- }
381
- // 11.RENDER() FUNCTION //
382
- render() {
383
- return i(r, {
384
- class: {
385
- "gx-ide-component": true
386
- }
387
- }, i("ch-theme", {
388
- model: h
389
- }), i("div", {
390
- class: "gx-ide-main-wrapper"
391
- }, i("gx-ide-container", {
392
- noContentPadding: true,
393
- noAboveFooterPadding: true,
394
- noBorderAboveFooter: this.closeProgressBar,
395
- part: "servers",
396
- containerTitle: this.displayTitle ? this._componentLocale.componentName : null
397
- }, i("main", {
398
- class: "main"
399
- }, i("div", {
400
- class: "modules__container"
401
- }, i("header", {
402
- class: "modules__header"
403
- }, i("div", {
404
- class: "modules__combo-container"
405
- }, i("gxg-label", null, this._componentLocale.modules.selectServer), i("div", {
406
- class: "modules__combo"
407
- }, i("gxg-combo-box", {
408
- disableFilter: true,
409
- onValueChanged: this.serverValueChangedHandler
410
- }, this.servers.map((e => i("gxg-combo-box-item", {
411
- value: e.id,
412
- onItemSelected: this.serverItemSelectedHandler
413
- }, e.name)))), this.showServerCommands ? i("span", {
414
- class: "modules__server-commands"
415
- }, i("gxg-button", {
416
- type: "secondary-icon-only",
417
- icon: "gemini-tools/show-more-horizontal",
418
- onClick: this.showModuleMenu
419
- })) : null, i("gxg-button", {
420
- type: "secondary-icon-only",
421
- icon: "gemini-tools/reset",
422
- onClick: this.reloadServer
423
- })))), i("div", {
424
- class: "modules__main"
425
- }, i("div", {
426
- class: "modules__main-header"
427
- }, i("gxg-form-text", {
428
- label: this._componentLocale.modules.searchModules,
429
- labelPosition: "above",
430
- centerLabel: false,
431
- onValueChanged: this.handleFilterChangeHandler,
432
- disabled: this.loadingServer
433
- }), i("gxg-buttons-container", {
434
- reduced: true,
435
- fullWidth: true,
436
- class: "modules__browser",
437
- onSelectedButtonChanged: this.selectedButtonChangedHandler
438
- }, i("gxg-button", {
439
- id: "btn-browse",
440
- selected: true,
441
- disabled: this.loadingServer
442
- }, this._componentLocale.modules.buttonsContainer.browse), i("gxg-button", {
443
- id: "btn-installed",
444
- disabled: this.loadingServer
445
- }, this._componentLocale.modules.buttonsContainer.installed), i("gxg-button", {
446
- id: "btn-updates",
447
- disabled: this.loadingServer
448
- }, this._componentLocale.modules.buttonsContainer.updates))), i("div", {
449
- class: "grid-container",
450
- ref: e => this.serversDetail = e
451
- }, this.filteredModules.length > 0 ? this.renderModulesGrid() : this.renderEmptyStateModules()))), this.selectedModule ? i("div", {
452
- class: "module-info"
453
- }, i("header", {
454
- class: "module-info__header"
455
- }, this.renderVersionName(), this.renderInstalledVersion(), this.renderModuleVersions(), this.renderVersionWarningMessage()), i("div", {
456
- class: "module-info__properties gxg-scrollbar"
457
- }, s(this.getModuleData(this.selectedModule, "properties")))) : i("gx-ide-empty-state", {
458
- class: "recent-objects__empty-state",
459
- stateIconSrc: d(this, g, "f"),
460
- stateTitle: this._componentLocale.modulesInformation.emptyState.title,
461
- stateDescription: this._componentLocale.modulesInformation.emptyState.description
462
- })), i("gxg-top-state-bar", {
463
- slot: "footer-above",
464
- part: "progress-bar",
465
- stateType: this.progressState,
466
- noBorder: true,
467
- caption: this.selectedModuleAction.message || this._componentLocale.progressBar.defaultCaption,
468
- progress: this.progressValue,
469
- active: !this.actionCompleted || !this.closeProgressBar,
470
- closeType: "not-progress",
471
- closedCallback: this.progressBarCloseHandler
472
- }))), i("gxg-ide-loader", {
473
- loaderTitle: this._componentLocale.servers.loading,
474
- ref: e => this.loaderEl = e,
475
- container: this.serversDetail,
476
- borderRadius: "0 0 0 8px"
477
- }));
478
- }
479
- static get assetsDirs() {
480
- return [ "gx-ide-assets/manage-module-references" ];
481
- }
482
- get el() {
483
- return a(this);
484
- }
485
- static get watchers() {
486
- return {
487
- modulesAll: [ "modulesAllWatcher", "onPropValueChange" ],
488
- loadingServer: [ "loadingServerHandler" ]
489
- };
490
- }
491
- };
492
-
493
- c = new WeakMap, g = new WeakMap;
494
-
495
- f.style = n;
496
-
497
- export { f as gx_ide_manage_module_references };
498
- //# sourceMappingURL=p-67e3486a.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["manageModuleReferencesCss","CSS_BUNDLES","GxManageModuleReferences","this","renderedFirstTime","_GxManageModuleReferences_filterIcon","set","getIconPath","category","name","colorType","_GxManageModuleReferences_moduleIcon","updateModulesSelectedVersion","modulesAll","selectedServerId","selectedServerIdOnModulesAllUpdate","modulesSelectedVersion","clear","forEach","module","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","trim","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","rowSelectionMode","part","class","onSelectionChanged","settingable","size","map","rowid","key","selected","moduleVersionIconColor","color","disabled","fit","onClick","renderEmptyStateModules","stateIconSrc","__classPrivateFieldGet","stateTitle","_componentLocale","modules","noModulesFilter","moduleAction","moduleCurrentVersion","renderVersionName","renderVersionWarningMessage","warningMessage","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","model","noContentPadding","noAboveFooterPadding","noBorderAboveFooter","containerTitle","displayTitle","selectServer","disableFilter","showServerCommands","icon","searchModules","reduced","fullWidth","onSelectedButtonChanged","buttonsContainer","browse","updates","ref","serversDetail","renderModuleDataProperties","emptyState","title","stateDescription","description","slot","stateType","noBorder","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=\"install\"] {\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--3xs);\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 &__title {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n }\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 &__warning-message {\n margin-block-start: var(--mer-spacing--2xs);\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--2xs);\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--2xs);\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--2xs);\n height: var(--mer-spacing--2xs);\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\n.button-wrapper {\n display: grid;\n align-items: center;\n justify-content: center;\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 { TabularGridSelectionChangedEvent } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\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\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n // \"components/button\",\n // \"components/checkbox\",\n // \"components/edit\",\n \"components/tabular-grid\"\n];\n\n@Component({\n tag: \"gx-ide-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 #filterIcon = getIconPath({\n category: \"system\",\n name: \"filters\",\n colorType: \"on-elevation\"\n });\n #moduleIcon = getIconPath({\n category: \"objects\",\n name: \"module\"\n });\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(module.id, module.versions[0].id);\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<TabularGridSelectionChangedEvent>\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 value = value.trim().toLowerCase();\n if (value) {\n this.filteredModules = this.modulesAll.filter(module => {\n const selectedVersionName = this.getModuleData(\n module,\n \"name\"\n ) as string;\n return selectedVersionName?.toLowerCase().includes(value);\n });\n } else {\n this.filteredModules = this.modulesAll;\n }\n };\n\n private handleFilterChangeHandler = (e: CustomEvent<string>) => {\n const value = e.detail;\n return this.handleFilterChange(value);\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, false);\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 <ch-tabular-grid\n rowSelectionMode=\"single\"\n part=\"ch-grid-pending-commits\"\n class=\"tabular-grid servers-detail no-border\"\n onSelectionChanged={this.handleModuleChange}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"min-content\"\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"min-content\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.filteredModules.map((module: ModuleData) => (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n rowid={module.id}\n key={module.id}\n selected={\n this.selectedModule && this.selectedModule.id === module.id\n }\n >\n <ch-tabular-grid-cell class=\"tabular-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-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell 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-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.selectedModule && this.selectedModule.id === module.id ? (\n <div class=\"button-wrapper\">\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 </div>\n ) : null}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n private renderEmptyStateModules = () => {\n return (\n <gx-ide-empty-state\n stateIconSrc={this.#filterIcon}\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 renderVersionWarningMessage = () => {\n const warningMessage = this.getModuleData(\n this.selectedModule,\n \"warningMessage\"\n );\n if (warningMessage) {\n return <p class=\"module-info__alert-message\">{warningMessage}</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 <ch-theme model={CSS_BUNDLES}></ch-theme>\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.renderVersionWarningMessage()}\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 stateIconSrc={this.#moduleIcon}\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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"}