@genexus/genexus-ide-ui 1.1.13 → 1.1.15

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 (142) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-about.cjs.entry.js +29 -15
  3. package/dist/cjs/gx-ide-about.cjs.entry.js.map +1 -1
  4. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +2 -2
  5. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +121 -40
  7. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +2 -2
  9. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +0 -13
  11. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-plugin-details.cjs.entry.js +201 -0
  13. package/dist/cjs/gx-ide-plugin-details.cjs.entry.js.map +1 -0
  14. package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js +159 -0
  15. package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js.map +1 -0
  16. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +0 -1
  17. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
  18. package/dist/cjs/loader.cjs.js +1 -1
  19. package/dist/collection/collection-manifest.json +3 -1
  20. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +4 -0
  21. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js +1 -1
  22. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js.map +1 -1
  23. package/dist/collection/components/{_branding/about → about}/about.css +44 -15
  24. package/dist/collection/components/{_branding/about → about}/about.js +46 -62
  25. package/dist/collection/components/about/about.js.map +1 -0
  26. package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/langs/about.lang.en.json +3 -3
  27. package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/langs/about.lang.ja.json +3 -3
  28. package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/langs/about.lang.zh.json +3 -3
  29. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.js +2 -2
  30. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.js.map +1 -1
  31. package/dist/collection/components/data-type-selector/data-type-selector.css +1 -0
  32. package/dist/collection/components/data-type-selector/data-type-selector.js +165 -43
  33. package/dist/collection/components/data-type-selector/data-type-selector.js.map +1 -1
  34. package/dist/collection/components/data-type-selector/gx-ide-assets/data-type-selector/langs/data-type-selector.lang.en.json +1 -1
  35. package/dist/collection/components/data-type-selector/helpers.js +2 -0
  36. package/dist/collection/components/data-type-selector/helpers.js.map +1 -1
  37. package/dist/collection/components/file-uploader/file-uploader.js +0 -13
  38. package/dist/collection/components/file-uploader/file-uploader.js.map +1 -1
  39. package/dist/collection/components/plugin-details/gx-ide-assets/plugin-details/langs/plugin-details.lang.en.json +9 -0
  40. package/dist/collection/components/plugin-details/gx-ide-assets/plugin-details/langs/plugin-details.lang.ja.json +9 -0
  41. package/dist/collection/components/plugin-details/gx-ide-assets/plugin-details/langs/plugin-details.lang.zh.json +9 -0
  42. package/dist/collection/components/plugin-details/plugin-details.css +168 -0
  43. package/dist/collection/components/plugin-details/plugin-details.js +292 -0
  44. package/dist/collection/components/plugin-details/plugin-details.js.map +1 -0
  45. package/dist/collection/components/plugin-explorer/gx-ide-assets/plugin-explorer/images/plugin-icon.svg +10 -0
  46. package/dist/collection/components/plugin-explorer/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.en.json +10 -0
  47. package/dist/collection/components/plugin-explorer/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.ja.json +10 -0
  48. package/dist/collection/components/plugin-explorer/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.zh.json +10 -0
  49. package/dist/collection/components/plugin-explorer/plugin-explorer.css +106 -0
  50. package/dist/collection/components/plugin-explorer/plugin-explorer.js +263 -0
  51. package/dist/collection/components/plugin-explorer/plugin-explorer.js.map +1 -0
  52. package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.ja.json +45 -45
  53. package/dist/collection/pages/assets/images/plugin/docker-iso.svg +12 -0
  54. package/dist/collection/showcase/chat-container/callbacks.js +0 -1
  55. package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
  56. package/dist/collection/testing/locale.e2e.js +2 -0
  57. package/dist/collection/testing/locale.e2e.js.map +1 -1
  58. package/dist/components/gx-ide-about.js +32 -19
  59. package/dist/components/gx-ide-about.js.map +1 -1
  60. package/dist/components/gx-ide-bpm-export-xpdl.js +2 -2
  61. package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -1
  62. package/dist/components/gx-ide-data-type-selector.js +126 -42
  63. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  64. package/dist/components/gx-ide-empty-state2.js +2 -2
  65. package/dist/components/gx-ide-empty-state2.js.map +1 -1
  66. package/dist/components/gx-ide-file-uploader.js +0 -13
  67. package/dist/components/gx-ide-file-uploader.js.map +1 -1
  68. package/dist/components/gx-ide-plugin-details.d.ts +11 -0
  69. package/dist/components/gx-ide-plugin-details.js +222 -0
  70. package/dist/components/gx-ide-plugin-details.js.map +1 -0
  71. package/dist/components/gx-ide-plugin-explorer.d.ts +11 -0
  72. package/dist/components/gx-ide-plugin-explorer.js +194 -0
  73. package/dist/components/gx-ide-plugin-explorer.js.map +1 -0
  74. package/dist/components/gx-ide-sc-chat-container.js +0 -1
  75. package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
  76. package/dist/esm/genexus-ide-ui.js +1 -1
  77. package/dist/esm/gx-ide-about.entry.js +29 -15
  78. package/dist/esm/gx-ide-about.entry.js.map +1 -1
  79. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +2 -2
  80. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
  81. package/dist/esm/gx-ide-data-type-selector.entry.js +121 -40
  82. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  83. package/dist/esm/gx-ide-empty-state.entry.js +2 -2
  84. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
  85. package/dist/esm/gx-ide-file-uploader.entry.js +0 -13
  86. package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
  87. package/dist/esm/gx-ide-plugin-details.entry.js +197 -0
  88. package/dist/esm/gx-ide-plugin-details.entry.js.map +1 -0
  89. package/dist/esm/gx-ide-plugin-explorer.entry.js +155 -0
  90. package/dist/esm/gx-ide-plugin-explorer.entry.js.map +1 -0
  91. package/dist/esm/gx-ide-sc-chat-container.entry.js +0 -1
  92. package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
  93. package/dist/esm/loader.js +1 -1
  94. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  95. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  96. package/dist/genexus-ide-ui/gx-ide-assets/about/langs/about.lang.en.json +3 -3
  97. package/dist/genexus-ide-ui/gx-ide-assets/about/langs/about.lang.ja.json +3 -3
  98. package/dist/genexus-ide-ui/gx-ide-assets/about/langs/about.lang.zh.json +3 -3
  99. package/dist/genexus-ide-ui/gx-ide-assets/data-type-selector/langs/data-type-selector.lang.en.json +1 -1
  100. package/dist/genexus-ide-ui/gx-ide-assets/plugin-details/langs/plugin-details.lang.en.json +9 -0
  101. package/dist/genexus-ide-ui/gx-ide-assets/plugin-details/langs/plugin-details.lang.ja.json +9 -0
  102. package/dist/genexus-ide-ui/gx-ide-assets/plugin-details/langs/plugin-details.lang.zh.json +9 -0
  103. package/dist/genexus-ide-ui/gx-ide-assets/plugin-explorer/images/plugin-icon.svg +10 -0
  104. package/dist/genexus-ide-ui/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.en.json +10 -0
  105. package/dist/genexus-ide-ui/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.ja.json +10 -0
  106. package/dist/genexus-ide-ui/gx-ide-assets/plugin-explorer/langs/plugin-explorer.lang.zh.json +10 -0
  107. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.ja.json +45 -45
  108. package/dist/genexus-ide-ui/{p-a47d71eb.entry.js → p-4328be14.entry.js} +7 -7
  109. package/dist/genexus-ide-ui/p-4328be14.entry.js.map +1 -0
  110. package/dist/genexus-ide-ui/p-476b74a1.entry.js +109 -0
  111. package/dist/genexus-ide-ui/p-476b74a1.entry.js.map +1 -0
  112. package/dist/genexus-ide-ui/{p-6d996621.entry.js → p-4e6425f3.entry.js} +1 -2
  113. package/dist/genexus-ide-ui/p-4e6425f3.entry.js.map +1 -0
  114. package/dist/genexus-ide-ui/p-641c79a9.entry.js +198 -0
  115. package/dist/genexus-ide-ui/p-641c79a9.entry.js.map +1 -0
  116. package/dist/genexus-ide-ui/p-6b4fdf55.entry.js +344 -0
  117. package/dist/genexus-ide-ui/p-6b4fdf55.entry.js.map +1 -0
  118. package/dist/genexus-ide-ui/{p-17dc4c9c.entry.js → p-7d7cf30d.entry.js} +35 -51
  119. package/dist/genexus-ide-ui/p-7d7cf30d.entry.js.map +1 -0
  120. package/dist/genexus-ide-ui/p-84c1c1bb.entry.js +270 -0
  121. package/dist/genexus-ide-ui/p-84c1c1bb.entry.js.map +1 -0
  122. package/dist/genexus-ide-ui/{p-844b7117.entry.js → p-86365635.entry.js} +3 -3
  123. package/dist/genexus-ide-ui/p-86365635.entry.js.map +1 -0
  124. package/dist/types/components/{_branding/about → about}/about.d.ts +6 -10
  125. package/dist/types/components/data-type-selector/data-type-selector.d.ts +16 -12
  126. package/dist/types/components/plugin-details/plugin-details.d.ts +55 -0
  127. package/dist/types/components/plugin-explorer/plugin-explorer.d.ts +43 -0
  128. package/dist/types/components.d.ts +126 -26
  129. package/package.json +1 -1
  130. package/dist/collection/components/_branding/about/about.js.map +0 -1
  131. package/dist/genexus-ide-ui/p-0550fd5f.entry.js +0 -96
  132. package/dist/genexus-ide-ui/p-0550fd5f.entry.js.map +0 -1
  133. package/dist/genexus-ide-ui/p-17dc4c9c.entry.js.map +0 -1
  134. package/dist/genexus-ide-ui/p-6d996621.entry.js.map +0 -1
  135. package/dist/genexus-ide-ui/p-844b7117.entry.js.map +0 -1
  136. package/dist/genexus-ide-ui/p-a47d71eb.entry.js.map +0 -1
  137. package/dist/genexus-ide-ui/p-ca6eb9fd.entry.js +0 -255
  138. package/dist/genexus-ide-ui/p-ca6eb9fd.entry.js.map +0 -1
  139. /package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/images/copyrights-illustration.png +0 -0
  140. /package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/images/next-arrow.svg +0 -0
  141. /package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/images/next-logo.svg +0 -0
  142. /package/dist/collection/components/{_branding/about → about}/gx-ide-assets/about/images/next-square.svg +0 -0
@@ -1,8 +1,15 @@
1
1
  import { proxyCustomElement, HTMLElement, getAssetPath, h, Host } from '@stencil/core/internal/client';
2
2
  import { L as Locale } from './locale.js';
3
3
 
4
- const aboutCss = ":host{--spacing-body-block-start:var(--mer-spacing--lg);--spacing-body-block-end:var(--mer-spacing--lg);--spacing-body-inline-start:var(--mer-spacing--md);--spacing-body-inline-end:var(--mer-spacing--md);display:grid;block-size:100%;overflow:auto;grid-template-rows:1fr max-content;background-color:var(--elevation-background-color, var(--mer-surface));color:var(--mer-text__on-elevation);text-align:center}.section{display:contents}.main{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px}.version__container{display:flex;justify-content:center;flex-direction:column;gap:var(--mer-spacing--xs)}.logo__container{display:flex;flex-direction:column;gap:var(--mer-spacing--sm);align-items:center;margin:unset}.logo__img{inline-size:28px;block-size:28px}.link-underlined{text-decoration:underline;color:var(--mer-text__on-elevation)}.link-underlined:hover{color:var(--mer-text__highlighted)}.link-underlined:active{color:var(--mer-text__elevation)}.links-container{display:flex;gap:var(--mer-spacing--xs)}.copyrights{color:var(--mer-text__complementary)}";
4
+ const aboutCss = ":host{--spacing-body-block-start:var(--mer-spacing--lg);--spacing-body-block-end:var(--mer-spacing--lg);--spacing-body-inline-start:var(--mer-spacing--md);--spacing-body-inline-end:var(--mer-spacing--md);display:grid;inline-size:100%;block-size:100%;gap:var(--mer-spacing--md);overflow:auto;grid-template-rows:max-content 1fr max-content;background-color:var(--elevation-background-color, var(--mer-surface__elevation--02));color:var(--mer-text__on-elevation);text-align:center}.section{display:contents}.main{overflow:auto;display:grid;grid-template-rows:1fr max-content;gap:var(--mer-spacing--lg)}.logo__container{display:flex;flex-direction:column;gap:var(--mer-spacing--sm);align-items:center;margin:unset}.logo__img{inline-size:28px;block-size:28px}.logotype{color:var(--mer-text__bright)}.versions__container{overflow:hidden;border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--sm);display:grid;grid-template-rows:1fr max-content;inline-size:100%}.versions__container button{justify-self:center;min-inline-size:72px}.versions__container-footer{padding:14px}.versions__list{overflow:auto;list-style:none;margin:0;padding:14px;display:flex;flex-direction:column;gap:var(--mer-spacing--xs)}.link-underlined{text-decoration:underline;color:var(--mer-text__on-elevation)}.link-underlined:hover{color:var(--mer-text__highlighted)}.link-underlined:active{color:var(--mer-text__elevation)}.links-container{display:flex;gap:var(--mer-spacing--xs)}.footer{display:flex;align-items:center;flex-direction:column;gap:var(--mer-spacing--xs);color:var(--mer-text__complementary)}";
5
5
 
6
+ var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
7
+ if (kind === "a" && !f)
8
+ throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
10
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
6
13
  var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
14
  if (kind === "m")
8
15
  throw new TypeError("Private method is not writable");
@@ -12,18 +19,13 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
12
19
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
13
20
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
14
21
  };
15
- var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
16
- if (kind === "a" && !f)
17
- throw new TypeError("Private accessor was defined without a getter");
18
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
19
- throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
21
- };
22
- var _GxIdeAbout_componentLocale, _GxIdeAbout_nextLogo;
22
+ var _GxIdeAbout_componentLocale, _GxIdeAbout_nextLogo, _GxIdeAbout_copyVersionsHandler;
23
23
  const CSS_BUNDLES = [
24
24
  "resets/box-sizing",
25
25
  "utils/typography",
26
- "components/button"
26
+ "utils/elevation",
27
+ "components/button",
28
+ "chameleon/scrollbar"
27
29
  ];
28
30
  const GxIdeAbout$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeAbout extends HTMLElement {
29
31
  constructor() {
@@ -32,12 +34,20 @@ const GxIdeAbout$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeAbout extends H
32
34
  this.__attachShadow();
33
35
  _GxIdeAbout_componentLocale.set(this, void 0);
34
36
  _GxIdeAbout_nextLogo.set(this, getAssetPath(`./gx-ide-assets/about/images/next-logo.svg`));
35
- this.version = undefined;
36
- this.ideVersion = undefined;
37
- this.blVersion = undefined;
37
+ _GxIdeAbout_copyVersionsHandler.set(this, () => {
38
+ this.copying = true;
39
+ setTimeout(() => {
40
+ this.copying = false;
41
+ }, 1000);
42
+ navigator.clipboard.writeText(`${__classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").copyVersionsAdditionalText}${this.versions
43
+ .map(version => `- ${version}`)
44
+ .join("\n")}`);
45
+ });
46
+ this.versions = [];
38
47
  this.detailsCallback = undefined;
39
48
  this.privacyPolicyCallback = undefined;
40
49
  this.termsAndConditionsCallback = undefined;
50
+ this.copying = false;
41
51
  }
42
52
  async componentWillLoad() {
43
53
  __classPrivateFieldSet(this, _GxIdeAbout_componentLocale, await Locale.getComponentStrings(this.el), "f");
@@ -45,20 +55,23 @@ const GxIdeAbout$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeAbout extends H
45
55
  render() {
46
56
  const renderPrivacyAndTerms = this.privacyPolicyCallback && this.termsAndConditionsCallback;
47
57
  const renderPrivacyOrTerms = this.privacyPolicyCallback || this.termsAndConditionsCallback;
48
- return (h(Host, { class: "scrollable" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("div", { class: "main" }, h("figure", { class: "logo__container" }, h("img", { class: "logo__img", src: __classPrivateFieldGet(this, _GxIdeAbout_nextLogo, "f"), alt: __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").logoAlt }), h("figcaption", { class: "body-semi-bold-m" }, "GeneXus Next")), h("div", { class: "version__container" }, h("p", { class: "body-semi-bold-s" }, __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").version, " ", this.version), h("p", { class: "body-regular-m" }, `(${__classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").ide}=${this.ideVersion}, ${__classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").bl}=${this.blVersion})`)), this.detailsCallback && (h("button", { class: "button-tertiary", type: "button", onClick: this.detailsCallback }, __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").detailsAndAcknowledgmentes)), renderPrivacyOrTerms && (h("div", { class: "links-container", hidden: !renderPrivacyAndTerms }, this.privacyPolicyCallback && (h("button", { class: "link-underlined tiny-regular-s", type: "button", onClick: this.privacyPolicyCallback }, __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").privacyPolicy)), renderPrivacyAndTerms && "|", this.termsAndConditionsCallback && (h("button", { class: "link-underlined tiny-regular-s", type: "button", onClick: this.termsAndConditionsCallback }, __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").termsAndConditions))))), h("footer", { class: "body-regular-s copyrights" }, __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").copyright))));
58
+ return (h(Host, { class: "scrollable" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("header", null, h("figure", { class: "logo__container" }, h("img", { class: "logo__img", src: __classPrivateFieldGet(this, _GxIdeAbout_nextLogo, "f"), alt: __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").logoAlt }), h("figcaption", { class: "body-semi-bold-m logotype" }, "GeneXus Next"))), h("div", { class: "main" }, this.versions.length ? (h("div", { class: "versions__container elevation-1" }, h("ul", { class: "versions__list scrollable" }, this.versions.map(version => {
59
+ return h("li", { class: "body-regular-s" }, version);
60
+ })), h("div", { class: "versions__container-footer" }, h("button", { class: "button-secondary", type: "button", onClick: __classPrivateFieldGet(this, _GxIdeAbout_copyVersionsHandler, "f"), disabled: this.copying }, this.copying
61
+ ? __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").copied
62
+ : __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").copy)))) : null, this.detailsCallback && (h("button", { class: "button-tertiary", type: "button", onClick: this.detailsCallback }, __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").detailsAndAcknowledgmentes))), h("footer", { class: "body-regular-s footer" }, renderPrivacyOrTerms && (h("div", { class: "links-container", hidden: !renderPrivacyAndTerms }, this.privacyPolicyCallback && (h("button", { class: "link-underlined tiny-regular-s", type: "button", onClick: this.privacyPolicyCallback }, __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").privacyPolicy)), renderPrivacyAndTerms && "|", this.termsAndConditionsCallback && (h("button", { class: "link-underlined tiny-regular-s", type: "button", onClick: this.termsAndConditionsCallback }, __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").termsAndConditions)))), __classPrivateFieldGet(this, _GxIdeAbout_componentLocale, "f").copyright))));
49
63
  }
50
64
  static get assetsDirs() { return ["gx-ide-assets/about"]; }
51
65
  get el() { return this; }
52
66
  static get style() { return aboutCss; }
53
67
  }, [1, "gx-ide-about", {
54
- "version": [1],
55
- "ideVersion": [1, "ide-version"],
56
- "blVersion": [1, "bl-version"],
68
+ "versions": [16],
57
69
  "detailsCallback": [16],
58
70
  "privacyPolicyCallback": [16],
59
- "termsAndConditionsCallback": [16]
71
+ "termsAndConditionsCallback": [16],
72
+ "copying": [32]
60
73
  }]);
61
- _GxIdeAbout_componentLocale = new WeakMap(), _GxIdeAbout_nextLogo = new WeakMap();
74
+ _GxIdeAbout_componentLocale = new WeakMap(), _GxIdeAbout_nextLogo = new WeakMap(), _GxIdeAbout_copyVersionsHandler = new WeakMap();
62
75
  function defineCustomElement$1() {
63
76
  if (typeof customElements === "undefined") {
64
77
  return;
@@ -1 +1 @@
1
- {"file":"gx-ide-about.js","mappings":";;;AAAA,MAAM,QAAQ,GAAG,+jCAA+jC;;;;;;;;;;;;;;;;;;;ACKhlC,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;CACpB,CAAC;MAQWA,YAAU;;;;;QACrB,8CAAsB;QACtB,+BAAY,YAAY,CAAC,4CAA4C,CAAC,EAAC;;;;;;;;IAkCvE,MAAM,iBAAiB;QACrB,uBAAA,IAAI,+BAAoB,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,CAAC;KACnE;IAED,MAAM;QACJ,MAAM,qBAAqB,GACzB,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,0BAA0B,CAAC;QAChE,MAAM,oBAAoB,GACxB,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,0BAA0B,CAAC;QAEhE,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,YAAY,IACtB,gBAAU,KAAK,EAAE,WAAW,GAAa,EACzC,eAAS,KAAK,EAAC,SAAS,IACtB,WAAK,KAAK,EAAC,MAAM,IACf,cAAQ,KAAK,EAAC,iBAAiB,IAC7B,WACE,KAAK,EAAC,WAAW,EACjB,GAAG,EAAE,uBAAA,IAAI,4BAAU,EACnB,GAAG,EAAE,uBAAA,IAAI,mCAAiB,CAAC,OAAO,GAClC,EACF,kBAAY,KAAK,EAAC,kBAAkB,mBAA0B,CACvD,EAET,WAAK,KAAK,EAAC,oBAAoB,IAC7B,SAAG,KAAK,EAAC,kBAAkB,IACxB,uBAAA,IAAI,mCAAiB,CAAC,OAAO,OAAG,IAAI,CAAC,OAAO,CAC3C,EACJ,SAAG,KAAK,EAAC,gBAAgB,IACtB,IAAI,uBAAA,IAAI,mCAAiB,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,KAC/C,uBAAA,IAAI,mCAAiB,CAAC,EACxB,IAAI,IAAI,CAAC,SAAS,GAAG,CACnB,CACA,EAEL,IAAI,CAAC,eAAe,KACnB,cACE,KAAK,EAAC,iBAAiB,EACvB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,eAAe,IAE5B,uBAAA,IAAI,mCAAiB,CAAC,0BAA0B,CAC1C,CACV,EAEA,oBAAoB,KACnB,WAAK,KAAK,EAAC,iBAAiB,EAAC,MAAM,EAAE,CAAC,qBAAqB,IACxD,IAAI,CAAC,qBAAqB,KACzB,cACE,KAAK,EAAC,gCAAgC,EACtC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,qBAAqB,IAElC,uBAAA,IAAI,mCAAiB,CAAC,aAAa,CAC7B,CACV,EAEA,qBAAqB,IAAI,GAAG,EAE5B,IAAI,CAAC,0BAA0B,KAC9B,cACE,KAAK,EAAC,gCAAgC,EACtC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,0BAA0B,IAEvC,uBAAA,IAAI,mCAAiB,CAAC,kBAAkB,CAClC,CACV,CACG,CACP,CACG,EAEN,cAAQ,KAAK,EAAC,2BAA2B,IACtC,uBAAA,IAAI,mCAAiB,CAAC,SAAS,CACzB,CACD,CACL,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["GxIdeAbout"],"sources":["src/components/_branding/about/about.scss?tag=gx-ide-about&encapsulation=shadow","src/components/_branding/about/about.tsx"],"sourcesContent":[":host {\n --spacing-body-block-start: var(--mer-spacing--lg);\n --spacing-body-block-end: var(--mer-spacing--lg);\n --spacing-body-inline-start: var(--mer-spacing--md);\n --spacing-body-inline-end: var(--mer-spacing--md);\n\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: 1fr max-content;\n\n background-color: var(--elevation-background-color, var(--mer-surface));\n color: var(--mer-text__on-elevation);\n text-align: center;\n}\n.section {\n // section was addad for semantics, in order to allow a footer tag.\n display: contents;\n}\n\n.main {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: 20px;\n}\n\n.version__container {\n display: flex;\n justify-content: center;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n}\n.logo {\n &__container {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n align-items: center;\n margin: unset;\n }\n &__img {\n $logoSize: 28px;\n inline-size: $logoSize;\n block-size: $logoSize;\n }\n}\n\n.link-underlined {\n // TODO: Add link helper class in Mercury\n text-decoration: underline;\n color: var(--mer-text__on-elevation);\n &:hover {\n color: var(--mer-text__highlighted);\n }\n &:active {\n color: var(--mer-text__elevation);\n }\n}\n\n.links-container {\n display: flex;\n gap: var(--mer-spacing--xs);\n}\n\n.copyrights {\n // TODO: Add color helper classes in Mercury\n color: var(--mer-text__complementary);\n}\n","import { Component, Host, h, Prop, Element, getAssetPath } from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../../common/locale\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/button\"\n];\n\n@Component({\n tag: \"gx-ide-about\",\n styleUrl: \"about.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/about\"]\n})\nexport class GxIdeAbout {\n #componentLocale: any;\n #nextLogo = getAssetPath(`./gx-ide-assets/about/images/next-logo.svg`);\n\n @Element() el: HTMLGxIdeAboutElement;\n\n /**\n * The version of GeneXus\n */\n @Prop() readonly version: string;\n\n /**\n * The version of GeneXus IDE\n */\n @Prop() readonly ideVersion: string;\n\n /**\n * The version of GeneXus BL\n */\n @Prop() readonly blVersion: string;\n\n /**\n * Callback invoked when the user clicks on \"Details & Acknowledgements\"\n */\n @Prop() readonly detailsCallback: DetailsCallback;\n\n /**\n * Callback invoked when the user clicks on \"Privacy policy\"\n */\n @Prop() readonly privacyPolicyCallback: PrivacyPolicyCallback;\n\n /**\n * Callback invoked when the user clicks on \"Terms and conditions\"\n */\n @Prop() readonly termsAndConditionsCallback: TermsAndConditionsCallback;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n render() {\n const renderPrivacyAndTerms =\n this.privacyPolicyCallback && this.termsAndConditionsCallback;\n const renderPrivacyOrTerms =\n this.privacyPolicyCallback || this.termsAndConditionsCallback;\n\n return (\n <Host class=\"scrollable\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <div class=\"main\">\n <figure class=\"logo__container\">\n <img\n class=\"logo__img\"\n src={this.#nextLogo}\n alt={this.#componentLocale.logoAlt}\n />\n <figcaption class=\"body-semi-bold-m\">GeneXus Next</figcaption>\n </figure>\n\n <div class=\"version__container\">\n <p class=\"body-semi-bold-s\">\n {this.#componentLocale.version} {this.version}\n </p>\n <p class=\"body-regular-m\">\n {`(${this.#componentLocale.ide}=${this.ideVersion}, ${\n this.#componentLocale.bl\n }=${this.blVersion})`}\n </p>\n </div>\n\n {this.detailsCallback && (\n <button\n class=\"button-tertiary\"\n type=\"button\"\n onClick={this.detailsCallback}\n >\n {this.#componentLocale.detailsAndAcknowledgmentes}\n </button>\n )}\n\n {renderPrivacyOrTerms && (\n <div class=\"links-container\" hidden={!renderPrivacyAndTerms}>\n {this.privacyPolicyCallback && (\n <button\n class=\"link-underlined tiny-regular-s\"\n type=\"button\"\n onClick={this.privacyPolicyCallback}\n >\n {this.#componentLocale.privacyPolicy}\n </button>\n )}\n\n {renderPrivacyAndTerms && \"|\"}\n\n {this.termsAndConditionsCallback && (\n <button\n class=\"link-underlined tiny-regular-s\"\n type=\"button\"\n onClick={this.termsAndConditionsCallback}\n >\n {this.#componentLocale.termsAndConditions}\n </button>\n )}\n </div>\n )}\n </div>\n\n <footer class=\"body-regular-s copyrights\">\n {this.#componentLocale.copyright}\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type DetailsCallback = () => Promise<void>;\nexport type PrivacyPolicyCallback = () => Promise<void>;\nexport type TermsAndConditionsCallback = () => Promise<void>;\n"],"version":3}
1
+ {"file":"gx-ide-about.js","mappings":"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","names":["GxIdeAbout"],"sources":["src/components/about/about.scss?tag=gx-ide-about&encapsulation=shadow","src/components/about/about.tsx"],"sourcesContent":["$versionsListPadding: 14px;\n\n:host {\n --spacing-body-block-start: var(--mer-spacing--lg);\n --spacing-body-block-end: var(--mer-spacing--lg);\n --spacing-body-inline-start: var(--mer-spacing--md);\n --spacing-body-inline-end: var(--mer-spacing--md);\n\n display: grid;\n inline-size: 100%;\n block-size: 100%;\n gap: var(--mer-spacing--md);\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n background-color: var(\n --elevation-background-color,\n var(--mer-surface__elevation--02)\n );\n color: var(--mer-text__on-elevation);\n text-align: center;\n}\n.section {\n // section was addad for semantics, in order to allow a footer tag.\n display: contents;\n}\n\n.main {\n overflow: auto;\n display: grid;\n grid-template-rows: 1fr max-content;\n gap: var(--mer-spacing--lg);\n}\n\n.logo {\n &__container {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n align-items: center;\n margin: unset;\n }\n &__img {\n $logoSize: 28px;\n inline-size: $logoSize;\n block-size: $logoSize;\n }\n}\n.logotype {\n color: var(--mer-text__bright);\n}\n\n.versions__container {\n overflow: hidden;\n border: var(--mer-border__width--sm) solid\n var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--sm);\n display: grid;\n grid-template-rows: 1fr max-content;\n inline-size: 100%;\n\n button {\n justify-self: center;\n min-inline-size: 72px;\n }\n}\n.versions__container-footer {\n padding: $versionsListPadding;\n}\n\n.versions__list {\n overflow: auto;\n list-style: none;\n margin: 0;\n padding: $versionsListPadding;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n}\n\n.link-underlined {\n // TODO: Add link helper class in Mercury\n text-decoration: underline;\n color: var(--mer-text__on-elevation);\n &:hover {\n color: var(--mer-text__highlighted);\n }\n &:active {\n color: var(--mer-text__elevation);\n }\n}\n\n.links-container {\n display: flex;\n gap: var(--mer-spacing--xs);\n}\n\n.footer {\n // TODO: Add color helper classes in Mercury\n display: flex;\n align-items: center;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n color: var(--mer-text__complementary);\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n getAssetPath\n} from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/elevation\",\n \"components/button\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-about\",\n styleUrl: \"about.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/about\"]\n})\nexport class GxIdeAbout {\n #componentLocale: any;\n #nextLogo = getAssetPath(`./gx-ide-assets/about/images/next-logo.svg`);\n\n @Element() el: HTMLGxIdeAboutElement;\n\n /**\n * GeneXus Next version, and also related dependencies versions\n */\n @Prop() readonly versions: string[] = [];\n\n /**\n * Callback invoked when the user clicks on \"Details & Acknowledgements\"\n */\n @Prop() readonly detailsCallback: DetailsCallback;\n\n /**\n * Callback invoked when the user clicks on \"Privacy policy\"\n */\n @Prop() readonly privacyPolicyCallback: PrivacyPolicyCallback;\n\n /**\n * Callback invoked when the user clicks on \"Terms and conditions\"\n */\n @Prop() readonly termsAndConditionsCallback: TermsAndConditionsCallback;\n\n /**\n * True when the user copies the versions\n */\n @State() copying: boolean = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #copyVersionsHandler = () => {\n this.copying = true;\n setTimeout(() => {\n this.copying = false;\n }, 1000);\n\n navigator.clipboard.writeText(\n `${this.#componentLocale.copyVersionsAdditionalText}${this.versions\n .map(version => `- ${version}`)\n .join(\"\\n\")}`\n );\n };\n\n render() {\n const renderPrivacyAndTerms =\n this.privacyPolicyCallback && this.termsAndConditionsCallback;\n const renderPrivacyOrTerms =\n this.privacyPolicyCallback || this.termsAndConditionsCallback;\n\n return (\n <Host class=\"scrollable\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header>\n <figure class=\"logo__container\">\n <img\n class=\"logo__img\"\n src={this.#nextLogo}\n alt={this.#componentLocale.logoAlt}\n />\n <figcaption class=\"body-semi-bold-m logotype\">\n GeneXus Next\n </figcaption>\n </figure>\n </header>\n <div class=\"main\">\n {this.versions.length ? (\n <div class=\"versions__container elevation-1\">\n <ul class=\"versions__list scrollable\">\n {this.versions.map(version => {\n return <li class=\"body-regular-s\">{version}</li>;\n })}\n </ul>\n <div class=\"versions__container-footer\">\n <button\n class=\"button-secondary\"\n type=\"button\"\n onClick={this.#copyVersionsHandler}\n disabled={this.copying}\n >\n {this.copying\n ? this.#componentLocale.copied\n : this.#componentLocale.copy}\n {}\n </button>\n </div>\n </div>\n ) : null}\n\n {this.detailsCallback && (\n <button\n class=\"button-tertiary\"\n type=\"button\"\n onClick={this.detailsCallback}\n >\n {this.#componentLocale.detailsAndAcknowledgmentes}\n </button>\n )}\n </div>\n\n <footer class=\"body-regular-s footer\">\n {renderPrivacyOrTerms && (\n <div class=\"links-container\" hidden={!renderPrivacyAndTerms}>\n {this.privacyPolicyCallback && (\n <button\n class=\"link-underlined tiny-regular-s\"\n type=\"button\"\n onClick={this.privacyPolicyCallback}\n >\n {this.#componentLocale.privacyPolicy}\n </button>\n )}\n\n {renderPrivacyAndTerms && \"|\"}\n\n {this.termsAndConditionsCallback && (\n <button\n class=\"link-underlined tiny-regular-s\"\n type=\"button\"\n onClick={this.termsAndConditionsCallback}\n >\n {this.#componentLocale.termsAndConditions}\n </button>\n )}\n </div>\n )}\n {this.#componentLocale.copyright}\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type DetailsCallback = () => Promise<void>;\nexport type PrivacyPolicyCallback = () => Promise<void>;\nexport type TermsAndConditionsCallback = () => Promise<void>;\n"],"version":3}
@@ -34,8 +34,8 @@ const GxIdeBpmExportXpdl$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeBpmExpo
34
34
  .then(() => {
35
35
  this.notExporting = true;
36
36
  })
37
- .catch(error => {
38
- console.error("Export callback failed:", error);
37
+ .catch(() => {
38
+ // error handling
39
39
  this.notExporting = true;
40
40
  });
41
41
  }
@@ -1 +1 @@
1
- {"file":"gx-ide-bpm-export-xpdl.js","mappings":"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","names":["GxIdeBpmExportXpdl"],"sources":["src/components/bpm/export-xpdl/bpm-export-xpdl.scss?tag=gx-ide-bpm-export-xpdl&encapsulation=shadow","src/components/bpm/export-xpdl/bpm-export-xpdl.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../global/temporary-tokens-chameleon.scss\";\n\n:host {\n display: block;\n}\n\n.header {\n display: grid;\n grid-template-columns: 1fr min-content min-content;\n grid-template-areas:\n \"label label label\"\n \"input cancel export\";\n grid-gap: var(--gx-ide-grid-column-gap);\n\n .label {\n grid-area: label;\n }\n .input {\n grid-area: input;\n }\n .cancel {\n grid-area: cancel;\n }\n .export {\n grid-area: export;\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { config } from \"../../../common/config\";\nimport { Locale } from \"../../../common/locale\";\nimport { ObjectData } from \"../objects-selector/helpers\";\n\n/* import { renderListItems } from \"../../../common/render-list-item\"; */\n\n@Component({\n tag: \"gx-ide-bpm-export-xpdl\",\n styleUrl: \"bpm-export-xpdl.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-export-xpdl\"]\n})\nexport class GxIdeBpmExportXpdl {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmExportXpdlElement;\n private exportInputEl: HTMLInputElement;\n private bpmObjectSelectorEl: HTMLGxIdeBpmObjectsSelectorElement;\n\n // 3.STATE() VARIABLES //\n\n @State() emptyInput = true;\n @State() emptyObjects = true;\n @State() notExporting = true;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Callback function invoked when the user presses the 'Create' button.\n * This function is expected to handle the export process based on the provided export data.\n *\n * @param {ExportData} exportData - The data required for the export process.\n * @returns {Promise<boolean>} A promise that resolves to a boolean indicating the success of the export operation.\n * Returns `true` if the export was successful, and `false` otherwise.\n */\n @Prop() readonly exportCallback: ExportCallback;\n\n /**\n * Callback invoked when user press 'Cancel' button\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when the user presses the 'Add' button. associated with gx-ide-bpm-objects-selector\n * This function is expected to return a list of selected objects' basic information.\n * @returns {Promise<ObjectData[]>} A Promise that resolves to an array of ObjectData. Each ObjectData contains the ID, icon, and name of an object.\n */\n @Prop() readonly addCallback: () => Promise<ObjectData[]>;\n\n /**\n * Callback invoked when the user presses the 'References' button. associated with gx-ide-bpm-objects-selector\n * Receives a parameter which is an array of IDs of the objects currently added to the list.\n * Returns a Promise that resolves to an array of ObjectData, where each ObjectData contains the ID, icon, and name of an object.\n * @param {string[]} ids - An array of IDs of the objects currently added to the list.\n * @returns {Promise<ObjectData[]>} A Promise that resolves to an array of ObjectData. Each ObjectData contains the ID, icon, and name of an object.\n */\n @Prop() readonly referencesCallback: (ids: string[]) => Promise<ObjectData[]>;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private exportHandler = () => {\n if (this.exportCallback) {\n this.notExporting = false;\n\n const data: ExportData = {\n directoryName: this.exportInputEl.value,\n Objects: this.bpmObjectSelectorEl.selection ?? {\n includeAll: false,\n objectIds: []\n }\n };\n\n this.exportCallback(data)\n .then(() => {\n this.notExporting = true;\n })\n .catch(error => {\n console.error(\"Export callback failed:\", error);\n this.notExporting = true;\n });\n }\n };\n\n private inputHandle = async () => {\n this.emptyInput = !this.exportInputEl.value?.length;\n };\n\n private handleSelectionChanged = () => {\n this.emptyObjects = !this.bpmObjectSelectorEl.selection.objectIds.length;\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"header\">\n <label htmlFor=\"export-directory\" class=\"label\">\n {this._componentLocale.main.exportInputLabel}\n </label>\n <input\n type=\"text\"\n id=\"export-directory\"\n class=\"input-text input\"\n onInput={this.inputHandle}\n ref={el => (this.exportInputEl = el as HTMLInputElement)}\n />\n <button\n class=\"export\"\n disabled={this.emptyInput || this.emptyObjects}\n onClick={this.exportHandler}\n >\n {this._componentLocale.main.exportButton}\n </button>\n <button\n class=\"cancel\"\n disabled={this.notExporting}\n onClick={this.cancelCallback}\n >\n {this._componentLocale.main.cancelButton}\n </button>\n </div>\n\n <gx-ide-bpm-objects-selector\n id=\"gx-ide-bpm-objects-selector\"\n addCallback={this.addCallback}\n referencesCallback={this.referencesCallback}\n ref={el =>\n (this.bpmObjectSelectorEl =\n el as HTMLGxIdeBpmObjectsSelectorElement)\n }\n onSelectionChanged={this.handleSelectionChanged}\n ></gx-ide-bpm-objects-selector>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type ExportCallback = (exportData: ExportData) => Promise<boolean>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type ExportData = {\n directoryName: string;\n Objects: SelectionData;\n};\n\nexport type SelectionData = {\n includeAll: boolean;\n objectIds: string[];\n};\n"],"version":3}
1
+ {"file":"gx-ide-bpm-export-xpdl.js","mappings":"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","names":["GxIdeBpmExportXpdl"],"sources":["src/components/bpm/export-xpdl/bpm-export-xpdl.scss?tag=gx-ide-bpm-export-xpdl&encapsulation=shadow","src/components/bpm/export-xpdl/bpm-export-xpdl.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../global/temporary-tokens-chameleon.scss\";\n\n:host {\n display: block;\n}\n\n.header {\n display: grid;\n grid-template-columns: 1fr min-content min-content;\n grid-template-areas:\n \"label label label\"\n \"input cancel export\";\n grid-gap: var(--gx-ide-grid-column-gap);\n\n .label {\n grid-area: label;\n }\n .input {\n grid-area: input;\n }\n .cancel {\n grid-area: cancel;\n }\n .export {\n grid-area: export;\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { config } from \"../../../common/config\";\nimport { Locale } from \"../../../common/locale\";\nimport { ObjectData } from \"../objects-selector/helpers\";\n\n/* import { renderListItems } from \"../../../common/render-list-item\"; */\n\n@Component({\n tag: \"gx-ide-bpm-export-xpdl\",\n styleUrl: \"bpm-export-xpdl.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-export-xpdl\"]\n})\nexport class GxIdeBpmExportXpdl {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmExportXpdlElement;\n private exportInputEl: HTMLInputElement;\n private bpmObjectSelectorEl: HTMLGxIdeBpmObjectsSelectorElement;\n\n // 3.STATE() VARIABLES //\n\n @State() emptyInput = true;\n @State() emptyObjects = true;\n @State() notExporting = true;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Callback function invoked when the user presses the 'Create' button.\n * This function is expected to handle the export process based on the provided export data.\n *\n * @param {ExportData} exportData - The data required for the export process.\n * @returns {Promise<boolean>} A promise that resolves to a boolean indicating the success of the export operation.\n * Returns `true` if the export was successful, and `false` otherwise.\n */\n @Prop() readonly exportCallback: ExportCallback;\n\n /**\n * Callback invoked when user press 'Cancel' button\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when the user presses the 'Add' button. associated with gx-ide-bpm-objects-selector\n * This function is expected to return a list of selected objects' basic information.\n * @returns {Promise<ObjectData[]>} A Promise that resolves to an array of ObjectData. Each ObjectData contains the ID, icon, and name of an object.\n */\n @Prop() readonly addCallback: () => Promise<ObjectData[]>;\n\n /**\n * Callback invoked when the user presses the 'References' button. associated with gx-ide-bpm-objects-selector\n * Receives a parameter which is an array of IDs of the objects currently added to the list.\n * Returns a Promise that resolves to an array of ObjectData, where each ObjectData contains the ID, icon, and name of an object.\n * @param {string[]} ids - An array of IDs of the objects currently added to the list.\n * @returns {Promise<ObjectData[]>} A Promise that resolves to an array of ObjectData. Each ObjectData contains the ID, icon, and name of an object.\n */\n @Prop() readonly referencesCallback: (ids: string[]) => Promise<ObjectData[]>;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private exportHandler = () => {\n if (this.exportCallback) {\n this.notExporting = false;\n\n const data: ExportData = {\n directoryName: this.exportInputEl.value,\n Objects: this.bpmObjectSelectorEl.selection ?? {\n includeAll: false,\n objectIds: []\n }\n };\n\n this.exportCallback(data)\n .then(() => {\n this.notExporting = true;\n })\n .catch(() => {\n // error handling\n this.notExporting = true;\n });\n }\n };\n\n private inputHandle = async () => {\n this.emptyInput = !this.exportInputEl.value?.length;\n };\n\n private handleSelectionChanged = () => {\n this.emptyObjects = !this.bpmObjectSelectorEl.selection.objectIds.length;\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <div class=\"header\">\n <label htmlFor=\"export-directory\" class=\"label\">\n {this._componentLocale.main.exportInputLabel}\n </label>\n <input\n type=\"text\"\n id=\"export-directory\"\n class=\"input-text input\"\n onInput={this.inputHandle}\n ref={el => (this.exportInputEl = el as HTMLInputElement)}\n />\n <button\n class=\"export\"\n disabled={this.emptyInput || this.emptyObjects}\n onClick={this.exportHandler}\n >\n {this._componentLocale.main.exportButton}\n </button>\n <button\n class=\"cancel\"\n disabled={this.notExporting}\n onClick={this.cancelCallback}\n >\n {this._componentLocale.main.cancelButton}\n </button>\n </div>\n\n <gx-ide-bpm-objects-selector\n id=\"gx-ide-bpm-objects-selector\"\n addCallback={this.addCallback}\n referencesCallback={this.referencesCallback}\n ref={el =>\n (this.bpmObjectSelectorEl =\n el as HTMLGxIdeBpmObjectsSelectorElement)\n }\n onSelectionChanged={this.handleSelectionChanged}\n ></gx-ide-bpm-objects-selector>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type ExportCallback = (exportData: ExportData) => Promise<boolean>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type ExportData = {\n directoryName: string;\n Objects: SelectionData;\n};\n\nexport type SelectionData = {\n includeAll: boolean;\n objectIds: string[];\n};\n"],"version":3}
@@ -14,6 +14,7 @@ const mapCategoryToListItemGroup = (category) => {
14
14
  return {
15
15
  caption: type.name,
16
16
  id: type.name,
17
+ selected: type.selected,
17
18
  additionalInformation: {
18
19
  "stretch-start": {
19
20
  center: [{ imgSrc: type.icon }]
@@ -30,6 +31,7 @@ const mapDataTypesToList = (dataTypes) => {
30
31
  return {
31
32
  caption: dataType.name,
32
33
  id: dataType.name,
34
+ selected: dataType.selected,
33
35
  additionalInformation: {
34
36
  "stretch-start": {
35
37
  center: [{ imgSrc: dataType.icon || undefined }]
@@ -41,7 +43,7 @@ const mapDataTypesToList = (dataTypes) => {
41
43
  });
42
44
  };
43
45
 
44
- const dataTypeSelectorCss = ":host{position:relative;display:grid;block-size:100%;overflow:auto;grid-template-rows:1fr max-content;--control__border-width:var(--mer-border__width--sm);--control__border-radius:var(--mer-border__radius--sm)}.main{display:contents}.selected-category{margin:0;text-transform:capitalize;margin-inline-start:var(--mer-spacing--md);white-space:nowrap}.footer{overflow:auto}";
46
+ const dataTypeSelectorCss = ":host{position:relative;display:grid;block-size:100%;overflow:auto;grid-template-rows:1fr max-content;--control__border-width:var(--mer-border__width--sm);--control__border-radius:var(--mer-border__radius--sm)}.main{display:contents}.selected-category{margin:0;text-transform:capitalize;margin-inline-start:var(--mer-spacing--md);white-space:nowrap}.footer{overflow:auto;padding:var(--mer-spacing--xs)}";
45
47
 
46
48
  var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
47
49
  if (kind === "a" && !f)
@@ -59,19 +61,20 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
59
61
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
60
62
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
61
63
  };
62
- var _GxIdeKbManagerImport__componentLocale, _GxIdeKbManagerImport_showAll, _GxIdeKbManagerImport_categoriesActionListItemGroupMap, _GxIdeKbManagerImport_handleSelectionChange, _GxIdeKbManagerImport_updateListBoxModelState, _GxIdeKbManagerImport_showAllObjects, _GxIdeKbManagerImport_showRecentlyObjects, _GxIdeKbManagerImport_renderFooter;
64
+ var _GxIdeKbManagerImport__componentLocale, _GxIdeKbManagerImport_showAll, _GxIdeKbManagerImport_categoriesActionListItemGroupMap, _GxIdeKbManagerImport_dataTypeCategoryMap, _GxIdeKbManagerImport_dataTypeDataIdMap, _GxIdeKbManagerImport_lastArrowKey, _GxIdeKbManagerImport_selectedDataTypeIds, _GxIdeKbManagerImport_focusAlreadySet, _GxIdeKbManagerImport_actionListEl, _GxIdeKbManagerImport_evaluateSelectionChanged, _GxIdeKbManagerImport_listKeyDownHandler, _GxIdeKbManagerImport_listClickHandler, _GxIdeKbManagerImport_showAllObjects, _GxIdeKbManagerImport_showRecentlyObjects, _GxIdeKbManagerImport_handleButtonTab, _GxIdeKbManagerImport_renderFooter, _GxIdeKbManagerImport_setFocus;
63
65
  const CSS_BUNDLES = [
64
66
  "resets/box-sizing",
65
- "components/tab",
66
- "components/tooltip",
67
67
  "components/list-box",
68
- "components/tree-view",
69
68
  "utils/form--full",
70
- "utils/layout",
71
69
  "utils/typography",
70
+ "utils/layout",
72
71
  "utils/spacing",
73
72
  "chameleon/scrollbar"
74
73
  ];
74
+ const ARROW_UP_KEY = "ArrowUp";
75
+ const ARROW_DOWN_KEY = "ArrowDown";
76
+ const ENTER_KEY = "Enter";
77
+ const TAB_KEY = "Tab";
75
78
  const ALL_CATEGORY_ID = "all";
76
79
  const RECENTLY_USED_CATEGORY_ID = "recenttly-used";
77
80
  const CLOCK_ICON = getIconPath({
@@ -87,41 +90,64 @@ const GxIdeKbManagerImport = /*@__PURE__*/ proxyCustomElement(class GxIdeKbManag
87
90
  _GxIdeKbManagerImport__componentLocale.set(this, void 0);
88
91
  _GxIdeKbManagerImport_showAll.set(this, false);
89
92
  _GxIdeKbManagerImport_categoriesActionListItemGroupMap.set(this, new Map());
90
- _GxIdeKbManagerImport_handleSelectionChange.set(this, (event) => {
91
- var _a;
92
- const eventType = (_a = event.detail[0]) === null || _a === void 0 ? void 0 : _a.item.type;
93
- if (eventType === "actionable") {
94
- const name = event.detail[0].item.caption;
95
- const itemAdditionalBase = event.detail[0].item.additionalInformation["stretch-start"].center[0];
96
- const icon = itemAdditionalBase.imgSrc;
97
- this.dataTypeSelectedCallback({
98
- name: name,
99
- icon: icon
100
- });
101
- __classPrivateFieldGet(this, _GxIdeKbManagerImport_updateListBoxModelState, "f").call(this, event.detail[0].item.caption, "actionable");
102
- }
103
- else if (eventType === "group") {
104
- __classPrivateFieldGet(this, _GxIdeKbManagerImport_updateListBoxModelState, "f").call(this, event.detail[0].item.caption, "group");
93
+ _GxIdeKbManagerImport_dataTypeCategoryMap.set(this, new Map());
94
+ _GxIdeKbManagerImport_dataTypeDataIdMap.set(this, new Map());
95
+ _GxIdeKbManagerImport_lastArrowKey.set(this, null);
96
+ _GxIdeKbManagerImport_selectedDataTypeIds.set(this, {
97
+ // For setting focus
98
+ categoryId: undefined,
99
+ dataTypeId: undefined
100
+ });
101
+ _GxIdeKbManagerImport_focusAlreadySet.set(this, false);
102
+ _GxIdeKbManagerImport_actionListEl.set(this, void 0);
103
+ _GxIdeKbManagerImport_evaluateSelectionChanged.set(this, (path) => {
104
+ const chActionListItem = path.find(el => el.tagName === "CH-ACTION-LIST-ITEM");
105
+ if (chActionListItem) {
106
+ const id = chActionListItem.id;
107
+ const dataTypeData = __classPrivateFieldGet(this, _GxIdeKbManagerImport_dataTypeDataIdMap, "f").get(id);
108
+ this.dataTypeSelectedCallback(dataTypeData);
105
109
  }
106
110
  });
107
- _GxIdeKbManagerImport_updateListBoxModelState.set(this, (name, type) => {
108
- if (this.selectedCategory === RECENTLY_USED_CATEGORY_ID) {
109
- this.recentlyUsedActionListModel.forEach(item => {
110
- // clear selected
111
- item.selected = false;
112
- });
113
- const selectedItemIndex = this.recentlyUsed.findIndex(item => item.name === name);
114
- if (selectedItemIndex !== -1) {
115
- this.recentlyUsedActionListModel[selectedItemIndex].selected = true;
111
+ _GxIdeKbManagerImport_listKeyDownHandler.set(this, (event) => {
112
+ const pressedKey = event.key;
113
+ const path = event.composedPath();
114
+ if (pressedKey === ARROW_UP_KEY || pressedKey === ARROW_DOWN_KEY) {
115
+ __classPrivateFieldSet(this, _GxIdeKbManagerImport_lastArrowKey, pressedKey, "f");
116
+ if (pressedKey === ARROW_UP_KEY) {
117
+ // Check if this is the first group. IF it is, let the host know,
118
+ // so it can close the dialog.
119
+ const chActionListItem = path.find(el => el.tagName === "CH-ACTION-LIST-ITEM");
120
+ if (chActionListItem !== undefined) {
121
+ return;
122
+ }
123
+ // This is a ch-action-list-group
124
+ const actionGroup = path.find(el => el.tagName === "CH-ACTION-LIST-GROUP");
125
+ const currentFocusedActionGroupId = actionGroup.id;
126
+ const firstActionListGroupId = __classPrivateFieldGet(this, _GxIdeKbManagerImport_actionListEl, "f").shadowRoot.firstElementChild.id;
127
+ if (currentFocusedActionGroupId === firstActionListGroupId) {
128
+ this.arrowUpOnFirstElement();
129
+ }
116
130
  }
117
131
  }
118
- else if (type === "group" &&
119
- __classPrivateFieldGet(this, _GxIdeKbManagerImport_categoriesActionListItemGroupMap, "f").has(name)) {
120
- const group = __classPrivateFieldGet(this, _GxIdeKbManagerImport_categoriesActionListItemGroupMap, "f").get(name);
121
- const groupUpdated = Object.assign(Object.assign({}, group), { expanded: group.expanded });
122
- __classPrivateFieldGet(this, _GxIdeKbManagerImport_categoriesActionListItemGroupMap, "f").set(name, groupUpdated);
132
+ else if (pressedKey === ENTER_KEY) {
133
+ __classPrivateFieldGet(this, _GxIdeKbManagerImport_evaluateSelectionChanged, "f").call(this, path);
134
+ }
135
+ else if (pressedKey === TAB_KEY) {
136
+ event.stopPropagation();
123
137
  }
124
138
  });
139
+ _GxIdeKbManagerImport_listClickHandler.set(this, (event) => {
140
+ if (__classPrivateFieldGet(this, _GxIdeKbManagerImport_lastArrowKey, "f")) ;
141
+ else if (event.detail === 0) {
142
+ // ignore keyboard Enter (Enter happens by default on buttons on onClick)
143
+ return;
144
+ }
145
+ else {
146
+ const path = event.composedPath();
147
+ __classPrivateFieldGet(this, _GxIdeKbManagerImport_evaluateSelectionChanged, "f").call(this, path);
148
+ }
149
+ __classPrivateFieldSet(this, _GxIdeKbManagerImport_lastArrowKey, null, "f");
150
+ });
125
151
  _GxIdeKbManagerImport_showAllObjects.set(this, () => {
126
152
  if (!__classPrivateFieldGet(this, _GxIdeKbManagerImport_showAll, "f")) {
127
153
  const allCategoriesActionListModel = [];
@@ -152,6 +178,13 @@ const GxIdeKbManagerImport = /*@__PURE__*/ proxyCustomElement(class GxIdeKbManag
152
178
  this.categoriesListBoxModel = newSelectedCategory;
153
179
  __classPrivateFieldSet(this, _GxIdeKbManagerImport_showAll, false, "f");
154
180
  };
181
+ _GxIdeKbManagerImport_handleButtonTab.set(this, (event) => {
182
+ // Prevents bubbling, which causes this component to close, due to how the IDE handles Tab event
183
+ // in a parent element.
184
+ if (event.key === TAB_KEY || event.key === ENTER_KEY) {
185
+ event.stopPropagation();
186
+ }
187
+ });
155
188
  _GxIdeKbManagerImport_renderFooter.set(this, () => {
156
189
  const recentlyUsedBtnClass = this.selectedCategory === RECENTLY_USED_CATEGORY_ID
157
190
  ? "button-secondary"
@@ -170,20 +203,49 @@ const GxIdeKbManagerImport = /*@__PURE__*/ proxyCustomElement(class GxIdeKbManag
170
203
  else {
171
204
  selectedCategoryDescription = this.selectedCategory;
172
205
  }
173
- return (h("footer", { class: "footer control-footer control-footer-start spacing-body-inline spacing-body-block scrollable\n " }, h("div", { class: "buttons-spacer" }, this.recentlyUsed && this.recentlyUsed.length > 0 && (h("button", { class: `button-icon-only ${recentlyUsedBtnClass}`, "aria-label": `${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").select} ${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").fixedTypes.recentlyUsed}`, title: `${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").select} ${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").fixedTypes.recentlyUsed}`, onClick: __classPrivateFieldGet(this, _GxIdeKbManagerImport_showRecentlyObjects, "f") }, h("ch-image", { class: "icon-md", src: CLOCK_ICON }))), h("button", { class: `button-icon-only ${allBtnClass}`, onClick: __classPrivateFieldGet(this, _GxIdeKbManagerImport_showAllObjects, "f"), "aria-label": `${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").select} ${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").fixedTypes.all}`, title: `${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").select} ${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").fixedTypes.all}` }, "[*]"), this.categories.map(category => {
206
+ return (h("footer", { class: "footer control-footer control-footer-start scrollable\n " }, h("div", { class: "buttons-spacer" }, this.recentlyUsed && this.recentlyUsed.length > 0 && (h("button", { class: `button-icon-only ${recentlyUsedBtnClass}`, "aria-label": `${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").select} ${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").fixedTypes.recentlyUsed}`, title: `${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").select} ${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").fixedTypes.recentlyUsed}`, onClick: __classPrivateFieldGet(this, _GxIdeKbManagerImport_showRecentlyObjects, "f"), onKeyDown: __classPrivateFieldGet(this, _GxIdeKbManagerImport_handleButtonTab, "f") }, h("ch-image", { class: "icon-md", src: CLOCK_ICON }))), h("button", { class: `button-icon-only ${allBtnClass}`, onClick: __classPrivateFieldGet(this, _GxIdeKbManagerImport_showAllObjects, "f"), onKeyDown: __classPrivateFieldGet(this, _GxIdeKbManagerImport_handleButtonTab, "f"), "aria-label": `${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").select} ${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").fixedTypes.all}`, title: `${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").select} ${__classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").fixedTypes.all}` }, "[*]"), this.categories.map(category => {
174
207
  const buttonClass = category.name === this.selectedCategory
175
208
  ? "button-secondary"
176
209
  : "button-tertiary";
177
- return (h("button", { class: `button-icon-only ${buttonClass}`, "aria-label": category.name, title: category.name, onClick: this.selectedCategoryHandler, "data-name": category.name }, h("ch-image", { class: "icon-md", src: category.icon })));
210
+ return (h("button", { class: `button-icon-only ${buttonClass}`, "aria-label": category.name, title: category.name, onClick: this.selectedCategoryHandler, onKeyDown: __classPrivateFieldGet(this, _GxIdeKbManagerImport_handleButtonTab, "f"), "data-name": category.name }, h("ch-image", { class: "icon-md", src: category.icon })));
178
211
  })), h("p", { class: "body-regular-s selected-category" }, selectedCategoryDescription)));
179
212
  });
213
+ _GxIdeKbManagerImport_setFocus.set(this, async () => {
214
+ if (__classPrivateFieldGet(this, _GxIdeKbManagerImport_focusAlreadySet, "f")) {
215
+ return;
216
+ }
217
+ let focusableElement;
218
+ setTimeout(() => {
219
+ // setTimeout as a WA, since the list-box elements are not rendered/read immediatelly
220
+ if (this.focusType === "selected" &&
221
+ __classPrivateFieldGet(this, _GxIdeKbManagerImport_selectedDataTypeIds, "f").categoryId &&
222
+ __classPrivateFieldGet(this, _GxIdeKbManagerImport_selectedDataTypeIds, "f").dataTypeId) {
223
+ // set focus on the selected element
224
+ const selectedDataTypeEl = __classPrivateFieldGet(this, _GxIdeKbManagerImport_actionListEl, "f").shadowRoot.getElementById(__classPrivateFieldGet(this, _GxIdeKbManagerImport_selectedDataTypeIds, "f").dataTypeId);
225
+ if (selectedDataTypeEl) {
226
+ focusableElement = selectedDataTypeEl;
227
+ }
228
+ }
229
+ else {
230
+ // set focus of the first element
231
+ const firstActionListGroup = __classPrivateFieldGet(this, _GxIdeKbManagerImport_actionListEl, "f").shadowRoot.firstElementChild;
232
+ const firstButton = firstActionListGroup.shadowRoot.firstElementChild;
233
+ focusableElement = firstButton;
234
+ }
235
+ focusableElement && focusableElement.focus();
236
+ __classPrivateFieldSet(this, _GxIdeKbManagerImport_focusAlreadySet, true, "f");
237
+ }, 150);
238
+ });
180
239
  this.categoriesListBoxModel = [];
181
240
  this.selectedCategory = undefined;
182
- this.statusInfo = [];
183
241
  this.recentlyUsedActionListModel = [];
184
242
  this.loading = true;
243
+ this.categoriesJustChanged = false;
244
+ this.actionListDidRender = false;
185
245
  this.categories = undefined;
186
246
  this.dataTypeSelectedCallback = undefined;
247
+ this.arrowUpOnFirstElement = undefined;
248
+ this.focusType = "first-element";
187
249
  this.recentlyUsed = [];
188
250
  }
189
251
  categoriesChanged(newCategories) {
@@ -194,9 +256,25 @@ const GxIdeKbManagerImport = /*@__PURE__*/ proxyCustomElement(class GxIdeKbManag
194
256
  newCategories.forEach(category => {
195
257
  const categoryListBoxModel = mapCategoryToListItemGroup(category);
196
258
  __classPrivateFieldGet(this, _GxIdeKbManagerImport_categoriesActionListItemGroupMap, "f").set(category.name, categoryListBoxModel);
259
+ category.types.forEach(type => {
260
+ const isSelected = type.selected;
261
+ if (isSelected) {
262
+ // For setting focus
263
+ __classPrivateFieldGet(this, _GxIdeKbManagerImport_selectedDataTypeIds, "f").categoryId = category.name;
264
+ __classPrivateFieldGet(this, _GxIdeKbManagerImport_selectedDataTypeIds, "f").dataTypeId = type.name;
265
+ }
266
+ __classPrivateFieldGet(this, _GxIdeKbManagerImport_dataTypeCategoryMap, "f").set(type.name, category.id);
267
+ __classPrivateFieldGet(this, _GxIdeKbManagerImport_dataTypeDataIdMap, "f").set(type.name, {
268
+ id: category.id,
269
+ name: type.name,
270
+ icon: type.icon,
271
+ selected: type.selected
272
+ });
273
+ });
197
274
  });
198
275
  this.loading = false;
199
276
  __classPrivateFieldGet(this, _GxIdeKbManagerImport_showAllObjects, "f").call(this);
277
+ this.categoriesJustChanged = true;
200
278
  }
201
279
  recentlyUsedChanged(newRecentlyUsed) {
202
280
  this.recentlyUsedActionListModel = null;
@@ -208,7 +286,10 @@ const GxIdeKbManagerImport = /*@__PURE__*/ proxyCustomElement(class GxIdeKbManag
208
286
  this.recentlyUsed.length && this.recentlyUsedChanged(this.recentlyUsed);
209
287
  }
210
288
  render() {
211
- return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), this.loading ? (h("gx-ide-loader", { loaderTitle: __classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").loader.title, description: __classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").loader.description, show: true })) : (h("section", { class: "main" }, h("ch-action-list-render", { class: "list-box", model: this.categoriesListBoxModel, selection: "single", onSelectedItemsChange: __classPrivateFieldGet(this, _GxIdeKbManagerImport_handleSelectionChange, "f") }), __classPrivateFieldGet(this, _GxIdeKbManagerImport_renderFooter, "f").call(this)))));
289
+ return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), this.loading ? (h("gx-ide-loader", { loaderTitle: __classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").loader.title, description: __classPrivateFieldGet(this, _GxIdeKbManagerImport__componentLocale, "f").loader.description, show: true })) : (h("section", { class: "main" }, h("ch-action-list-render", { ref: async (el) => {
290
+ __classPrivateFieldSet(this, _GxIdeKbManagerImport_actionListEl, el, "f");
291
+ __classPrivateFieldGet(this, _GxIdeKbManagerImport_setFocus, "f").call(this);
292
+ }, class: "list-box", model: this.categoriesListBoxModel, selection: "single", onKeyDown: __classPrivateFieldGet(this, _GxIdeKbManagerImport_listKeyDownHandler, "f"), onClick: __classPrivateFieldGet(this, _GxIdeKbManagerImport_listClickHandler, "f") }), __classPrivateFieldGet(this, _GxIdeKbManagerImport_renderFooter, "f").call(this)))));
212
293
  }
213
294
  static get assetsDirs() { return ["gx-ide-assets/data-type-selector"]; }
214
295
  get el() { return this; }
@@ -220,17 +301,20 @@ const GxIdeKbManagerImport = /*@__PURE__*/ proxyCustomElement(class GxIdeKbManag
220
301
  }, [1, "gx-ide-data-type-selector", {
221
302
  "categories": [16],
222
303
  "dataTypeSelectedCallback": [16],
304
+ "arrowUpOnFirstElement": [16],
305
+ "focusType": [1, "focus-type"],
223
306
  "recentlyUsed": [16],
224
307
  "categoriesListBoxModel": [32],
225
308
  "selectedCategory": [32],
226
- "statusInfo": [32],
227
309
  "recentlyUsedActionListModel": [32],
228
- "loading": [32]
310
+ "loading": [32],
311
+ "categoriesJustChanged": [32],
312
+ "actionListDidRender": [32]
229
313
  }, undefined, {
230
314
  "categories": ["categoriesChanged"],
231
315
  "recentlyUsed": ["recentlyUsedChanged"]
232
316
  }]);
233
- _GxIdeKbManagerImport__componentLocale = new WeakMap(), _GxIdeKbManagerImport_showAll = new WeakMap(), _GxIdeKbManagerImport_categoriesActionListItemGroupMap = new WeakMap(), _GxIdeKbManagerImport_handleSelectionChange = new WeakMap(), _GxIdeKbManagerImport_updateListBoxModelState = new WeakMap(), _GxIdeKbManagerImport_showAllObjects = new WeakMap(), _GxIdeKbManagerImport_showRecentlyObjects = new WeakMap(), _GxIdeKbManagerImport_renderFooter = new WeakMap();
317
+ _GxIdeKbManagerImport__componentLocale = new WeakMap(), _GxIdeKbManagerImport_showAll = new WeakMap(), _GxIdeKbManagerImport_categoriesActionListItemGroupMap = new WeakMap(), _GxIdeKbManagerImport_dataTypeCategoryMap = new WeakMap(), _GxIdeKbManagerImport_dataTypeDataIdMap = new WeakMap(), _GxIdeKbManagerImport_lastArrowKey = new WeakMap(), _GxIdeKbManagerImport_selectedDataTypeIds = new WeakMap(), _GxIdeKbManagerImport_focusAlreadySet = new WeakMap(), _GxIdeKbManagerImport_actionListEl = new WeakMap(), _GxIdeKbManagerImport_evaluateSelectionChanged = new WeakMap(), _GxIdeKbManagerImport_listKeyDownHandler = new WeakMap(), _GxIdeKbManagerImport_listClickHandler = new WeakMap(), _GxIdeKbManagerImport_showAllObjects = new WeakMap(), _GxIdeKbManagerImport_showRecentlyObjects = new WeakMap(), _GxIdeKbManagerImport_handleButtonTab = new WeakMap(), _GxIdeKbManagerImport_renderFooter = new WeakMap(), _GxIdeKbManagerImport_setFocus = new WeakMap();
234
318
  function defineCustomElement$1() {
235
319
  if (typeof customElements === "undefined") {
236
320
  return;