@genexus/genexus-ide-ui 1.0.45 → 1.0.46

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 (78) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +10 -11
  3. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
  4. package/dist/cjs/gx-ide-loader.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +38 -11
  7. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +75 -13
  9. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/collection/components/_helpers/ide-loader/ide-loader.css +1 -1
  12. package/dist/collection/components/current-user-info/current-user-info.css +6 -1
  13. package/dist/collection/components/current-user-info/current-user-info.js +32 -11
  14. package/dist/collection/components/current-user-info/current-user-info.js.map +1 -1
  15. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.en.json +2 -1
  16. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +2 -1
  17. package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +2 -1
  18. package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.en.json +5 -1
  19. package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.ja.json +5 -1
  20. package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.zh.json +5 -1
  21. package/dist/collection/components/select-user-team/helpers.js +1 -1
  22. package/dist/collection/components/select-user-team/helpers.js.map +1 -1
  23. package/dist/collection/components/select-user-team/select-user-team.css +8 -0
  24. package/dist/collection/components/select-user-team/select-user-team.js +42 -9
  25. package/dist/collection/components/select-user-team/select-user-team.js.map +1 -1
  26. package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.en.json +15 -5
  27. package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.ja.json +13 -3
  28. package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.zh.json +13 -3
  29. package/dist/collection/components/sign-in-team/sign-in-team.css +9 -4
  30. package/dist/collection/components/sign-in-team/sign-in-team.js +116 -15
  31. package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -1
  32. package/dist/components/gx-ide-current-user-info.js +12 -12
  33. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  34. package/dist/components/gx-ide-select-user-team.js +48 -13
  35. package/dist/components/gx-ide-select-user-team.js.map +1 -1
  36. package/dist/components/gx-ide-sign-in-team.js +86 -15
  37. package/dist/components/gx-ide-sign-in-team.js.map +1 -1
  38. package/dist/components/ide-loader.js +1 -1
  39. package/dist/components/ide-loader.js.map +1 -1
  40. package/dist/esm/genexus-ide-ui.js +1 -1
  41. package/dist/esm/gx-ide-current-user-info.entry.js +10 -11
  42. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  43. package/dist/esm/gx-ide-loader.entry.js +1 -1
  44. package/dist/esm/gx-ide-loader.entry.js.map +1 -1
  45. package/dist/esm/gx-ide-select-user-team.entry.js +38 -11
  46. package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -1
  47. package/dist/esm/gx-ide-sign-in-team.entry.js +75 -13
  48. package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
  49. package/dist/esm/loader.js +1 -1
  50. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  51. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  52. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.en.json +2 -1
  53. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +2 -1
  54. package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +2 -1
  55. package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.en.json +5 -1
  56. package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.ja.json +5 -1
  57. package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.zh.json +5 -1
  58. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.en.json +15 -5
  59. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.ja.json +13 -3
  60. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.zh.json +13 -3
  61. package/dist/genexus-ide-ui/{p-b12a5426.entry.js → p-a27c088d.entry.js} +45 -41
  62. package/dist/genexus-ide-ui/p-a27c088d.entry.js.map +1 -0
  63. package/dist/genexus-ide-ui/{p-c9b0fd13.entry.js → p-ab653cc2.entry.js} +44 -18
  64. package/dist/genexus-ide-ui/p-ab653cc2.entry.js.map +1 -0
  65. package/dist/genexus-ide-ui/p-b04a0ae3.entry.js +236 -0
  66. package/dist/genexus-ide-ui/p-b04a0ae3.entry.js.map +1 -0
  67. package/dist/genexus-ide-ui/{p-6db2056c.entry.js → p-efebc74b.entry.js} +7 -7
  68. package/dist/genexus-ide-ui/p-efebc74b.entry.js.map +1 -0
  69. package/dist/types/components/current-user-info/current-user-info.d.ts +6 -2
  70. package/dist/types/components/select-user-team/select-user-team.d.ts +9 -0
  71. package/dist/types/components/sign-in-team/sign-in-team.d.ts +13 -1
  72. package/dist/types/components.d.ts +29 -5
  73. package/package.json +1 -1
  74. package/dist/genexus-ide-ui/p-0b33d2f9.entry.js +0 -163
  75. package/dist/genexus-ide-ui/p-0b33d2f9.entry.js.map +0 -1
  76. package/dist/genexus-ide-ui/p-6db2056c.entry.js.map +0 -1
  77. package/dist/genexus-ide-ui/p-b12a5426.entry.js.map +0 -1
  78. package/dist/genexus-ide-ui/p-c9b0fd13.entry.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { r as e, h as t, H as i, g as n } from "./p-49712340.js";
1
+ import { r as e, h as t, H as n, g as i } from "./p-49712340.js";
2
2
 
3
3
  import { g as o } from "./p-617e65ca.js";
4
4
 
5
- import { L as r } from "./p-311eedf3.js";
5
+ import { L as s } from "./p-311eedf3.js";
6
6
 
7
7
  /**
8
8
  * Returns initials from the first two words of a name. Returns "X" for invalid input.
@@ -50,28 +50,28 @@ import { L as r } from "./p-311eedf3.js";
50
50
  }
51
51
  };
52
52
 
53
- const s = "@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}:host{display:inline-grid;justify-items:end;block-size:100%}.user-login__button{all:unset;display:grid;grid-template-columns:max-content max-content max-content;align-items:center;gap:var(--mer-spacing--sm);block-size:auto;cursor:pointer}.user-login__details{display:grid;grid-template-rows:max-content max-content;gap:var(--mer-spacing--3xs);justify-items:end}.user-login__name{font-weight:var(--mer-font__weight--medium);font-size:var(--mer-font__size--3xs);color:var(--mer-text__on-elevation)}.user-login__organization{font-weight:var(--mer-font__weight--light);font-size:var(--mer-font__size--4xs);color:var(--mer-text__neutral)}.user-login__name,.user-login__organization{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-inline-size:120px;display:inline-block}.user-login__avatar{font-size:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;block-size:var(--mer-spacing--lg);inline-size:var(--mer-spacing--lg);color:var(--mer-text__on-elevation);border-radius:50%;background-color:var(--mer-color__tinted-primary--10);border:var(--mer-border__width--sm) solid var(--mer-color__primary--200)}.privacy-policy{text-decoration:underline;cursor:pointer}";
53
+ const r = "@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}:host{display:inline-grid;justify-items:end;block-size:100%}.user-login__button{all:unset;display:grid;grid-template-columns:max-content max-content max-content;align-items:center;gap:var(--mer-spacing--sm);block-size:auto;cursor:pointer}.user-login__details{display:grid;grid-template-rows:max-content max-content;gap:var(--mer-spacing--3xs);justify-items:end}.user-login__name{font-weight:var(--mer-font__weight--medium);font-size:var(--mer-font__size--3xs);color:var(--mer-text__on-elevation)}.user-login__organization{font-weight:var(--mer-font__weight--light);font-size:var(--mer-font__size--4xs);color:var(--mer-text__neutral)}.user-login__name,.user-login__organization{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-inline-size:120px;display:inline-block}.user-login__avatar{font-size:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;block-size:var(--mer-spacing--lg);inline-size:var(--mer-spacing--lg);color:var(--mer-text__on-elevation);border-radius:50%;background-color:var(--mer-color__tinted-primary--10);border:var(--mer-border__width--sm) solid var(--mer-color__primary--200)}.user-login__footer{display:flex;flex-direction:column;gap:var(--mer-spacing--2xs)}.agreement-link{text-decoration:underline;cursor:pointer}";
54
54
 
55
- var a = undefined && undefined.__classPrivateFieldSet || function(e, t, i, n, o) {
56
- if (n === "m") throw new TypeError("Private method is not writable");
57
- if (n === "a" && !o) throw new TypeError("Private accessor was defined without a setter");
55
+ var a = undefined && undefined.__classPrivateFieldSet || function(e, t, n, i, o) {
56
+ if (i === "m") throw new TypeError("Private method is not writable");
57
+ if (i === "a" && !o) throw new TypeError("Private accessor was defined without a setter");
58
58
  if (typeof t === "function" ? e !== t || !o : !t.has(e)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
59
- return n === "a" ? o.call(e, i) : o ? o.value = i : t.set(e, i), i;
59
+ return i === "a" ? o.call(e, n) : o ? o.value = n : t.set(e, n), n;
60
60
  };
61
61
 
62
- var l = undefined && undefined.__classPrivateFieldGet || function(e, t, i, n) {
63
- if (i === "a" && !n) throw new TypeError("Private accessor was defined without a getter");
64
- if (typeof t === "function" ? e !== t || !n : !t.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
65
- return i === "m" ? n : i === "a" ? n.call(e) : n ? n.value : t.get(e);
62
+ var l = undefined && undefined.__classPrivateFieldGet || function(e, t, n, i) {
63
+ if (n === "a" && !i) throw new TypeError("Private accessor was defined without a getter");
64
+ if (typeof t === "function" ? e !== t || !i : !t.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
65
+ return n === "m" ? i : n === "a" ? i.call(e) : i ? i.value : t.get(e);
66
66
  };
67
67
 
68
- var c, d, f, u, p;
68
+ var c, d, f, u, m;
69
69
 
70
- const h = [
70
+ const p = [
71
71
  // TODO: review if "utils/form--full" is required.
72
72
  "resets/box-sizing", "components/tooltip", "components/switch", "components/icon", "components/dropdown", "utils/layout", "utils/typography", "utils/spacing", "chameleon/scrollbar" ];
73
73
 
74
- const m = o({
74
+ const h = o({
75
75
  category: "navigation",
76
76
  name: "chevron-down",
77
77
  colorType: "neutral"
@@ -99,14 +99,12 @@ const y = class {
99
99
  // this.changeModeCallback(this.#mode);
100
100
  // }
101
101
  // };
102
- p.set(this, ((e, t, i) => {
103
- if (i === g) {
104
- this.myAccountCallback();
105
- } else if (i === _) {
102
+ m.set(this, ((e, t, n) => {
103
+ if (n === g) ; else if (n === _) {
106
104
  this.changeTeamCallback();
107
- } else if (i === v) {
105
+ } else if (n === v) {
108
106
  this.signOutCallback();
109
- } else if (i === w) {
107
+ } else if (n === w) {
110
108
  this.changeLanguageCallback();
111
109
  }
112
110
  }));
@@ -117,16 +115,19 @@ const y = class {
117
115
  this.changeLanguageCallback = undefined;
118
116
  this.changeModeCallback = undefined;
119
117
  this.signOutCallback = undefined;
120
- this.showTermsCallback = undefined;
118
+ this.termsCallback = undefined;
119
+ this.privacyCallback = undefined;
121
120
  }
122
121
  async componentWillLoad() {
123
- a(this, c, await r.getComponentStrings(this.el), "f");
122
+ a(this, c, await s.getComponentStrings(this.el), "f");
124
123
  a(this, d, getInitialsFromName(this.userInfo.name), "f");
125
- a(this, f, [ {
126
- id: g,
127
- caption: l(this, c, "f").myAccountLabel,
128
- showSeparator: false
129
- }, {
124
+ a(this, f, [
125
+ // {
126
+ // id: MY_ACCOUNT_ID,
127
+ // caption: this.#componentLocale.myAccountLabel,
128
+ // showSeparator: false
129
+ // },
130
+ {
130
131
  id: _,
131
132
  caption: l(this, c, "f").changeTeamLabel,
132
133
  showSeparator: false
@@ -137,17 +138,17 @@ const y = class {
137
138
  } ], "f");
138
139
  }
139
140
  render() {
140
- var e, n;
141
+ var e, i;
141
142
  const o = limitFullName((e = this.userInfo) === null || e === void 0 ? void 0 : e.name);
142
- return t(i, {
143
+ return t(n, {
143
144
  class: "widget"
144
145
  }, t("ch-theme", {
145
- model: h
146
+ model: p
146
147
  }), t("ch-dropdown-render", {
147
148
  class: "dropdown",
148
149
  model: l(this, f, "f"),
149
150
  position: "InsideEnd_OutsideEnd",
150
- itemClickCallback: l(this, p, "f")
151
+ itemClickCallback: l(this, m, "f")
151
152
  }, t("button", {
152
153
  class: "user-login__button",
153
154
  ref: e => a(this, u, e, "f"),
@@ -156,33 +157,36 @@ const y = class {
156
157
  class: "user-login__details"
157
158
  }, o ? t("span", {
158
159
  class: "user-login__name"
159
- }, o) : null, ((n = this.userInfo) === null || n === void 0 ? void 0 : n.team) ? t("span", {
160
+ }, o) : null, ((i = this.userInfo) === null || i === void 0 ? void 0 : i.team) ? t("span", {
160
161
  class: "user-login__organization"
161
162
  }, this.userInfo.team) : null), t("div", {
162
163
  class: "user-login__avatar"
163
164
  }, l(this, d, "f")), t("ch-image", {
164
- src: m,
165
+ src: h,
165
166
  class: "icon-md",
166
167
  containerRef: l(this, u, "f")
167
168
  })), t("div", {
168
169
  class: "user-login__footer footer-slot",
169
170
  slot: "footer"
170
- }, t("p", {
171
- class: "text-body-regular-s privacy-policy",
172
- onClick: this.showTermsCallback
173
- }, l(this, c, "f").privacyAndTerms))));
171
+ }, t("span", {
172
+ class: "text-body-regular-s agreement-link",
173
+ onClick: this.termsCallback
174
+ }, l(this, c, "f").termsAndConditionsText), t("span", {
175
+ class: "text-body-regular-s agreement-link",
176
+ onClick: this.privacyCallback
177
+ }, l(this, c, "f").privacyPolicyText))));
174
178
  }
175
179
  static get assetsDirs() {
176
180
  return [ "gx-ide-assets/current-user-info" ];
177
181
  }
178
182
  get el() {
179
- return n(this);
183
+ return i(this);
180
184
  }
181
185
  };
182
186
 
183
- c = new WeakMap, d = new WeakMap, f = new WeakMap, u = new WeakMap, p = new WeakMap;
187
+ c = new WeakMap, d = new WeakMap, f = new WeakMap, u = new WeakMap, m = new WeakMap;
184
188
 
185
- y.style = s;
189
+ y.style = r;
186
190
 
187
191
  export { y as gx_ide_current_user_info };
188
- //# sourceMappingURL=p-b12a5426.entry.js.map
192
+ //# sourceMappingURL=p-a27c088d.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getInitialsFromName","name","trim","nameData","split","filter","Boolean","length","toUpperCase","limitFullName","fullName","fullNameData","currentUserInfoCss","CSS_BUNDLES","CHEVRON_DOWN_ICON","getIconPath","category","colorType","MY_ACCOUNT_ID","CHANGE_TEAM_ID","SIGN_OUT_ID","LANGUAGE_ID","GxIdeNewEnvironment","_GxIdeNewEnvironment_componentLocale","set","this","_GxIdeNewEnvironment_initials","_GxIdeNewEnvironment_menuDropdownModel","_GxIdeNewEnvironment_userLoginButton","_GxIdeNewEnvironment_dropDownitemClickHandler","_event","_target","itemId","changeTeamCallback","signOutCallback","changeLanguageCallback","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","userInfo","id","caption","__classPrivateFieldGet","changeTeamLabel","showSeparator","signOutLabel","render","userName","_a","h","Host","class","model","position","itemClickCallback","ref","slot","_b","team","src","containerRef","onClick","termsCallback","termsAndConditionsText","privacyCallback","privacyPolicyText"],"sources":["src/components/current-user-info/helpers.tsx","src/components/current-user-info/current-user-info.scss?tag=gx-ide-current-user-info&encapsulation=shadow","src/components/current-user-info/current-user-info.tsx"],"sourcesContent":["/**\n * Returns initials from the first two words of a name. Returns \"X\" for invalid input.\n *\n * @param name - The full name string.\n * @returns Initials of the first two words, or \"X\" if invalid.\n *\n * Example:\n * getInitialsFromName(\"John Doe\") -> \"JD\"\n * getInitialsFromName(\"Jane\") -> \"J\"\n * getInitialsFromName(\"\") -> \"X\"\n */\nexport const getInitialsFromName = (name: string): string | null => {\n if (typeof name !== \"string\" || name.trim() === \"\") {\n return \"X\";\n }\n\n const nameData = name.split(\" \").filter(Boolean); // Remove any empty strings from splitting\n if (nameData.length === 1) {\n return nameData[0][0].toUpperCase();\n } else {\n return `${nameData[0][0].toUpperCase()}${nameData[1][0].toUpperCase()}`;\n }\n};\n\n/**\n * Limits the full name to the first two words. Returns null for invalid input.\n *\n * @param fullName - The full name string to be limited.\n * @returns The first two words of the full name, or null if invalid.\n *\n * Example:\n * limitFullName(\"John Doe Smith\") -> \"John Doe\"\n * limitFullName(\"Jane\") -> \"Jane\"\n * limitFullName(\"\") -> null\n */\nexport const limitFullName = (fullName: string): string | null => {\n if (typeof fullName !== \"string\" || fullName.trim() === \"\") {\n return null;\n }\n\n const fullNameData = fullName.split(\" \").filter(Boolean); // Remove any empty strings from splitting\n if (fullNameData.length === 1) {\n return fullNameData[0];\n } else {\n return `${fullNameData[0]} ${fullNameData[1]}`;\n }\n};\n","@import \"../../../node_modules/@genexus/mercury/dist/mercury.scss\";\n\n:host {\n display: inline-grid;\n justify-items: end;\n block-size: 100%;\n}\n\n.user-login {\n &__button {\n all: unset;\n display: grid;\n grid-template-columns: max-content max-content max-content;\n align-items: center;\n gap: var(--mer-spacing--sm);\n block-size: auto;\n cursor: pointer;\n }\n &__details {\n display: grid;\n grid-template-rows: max-content max-content;\n gap: var(--mer-spacing--3xs);\n justify-items: end;\n }\n &__name {\n font-weight: var(--mer-font__weight--medium);\n font-size: var(--mer-font__size--3xs);\n color: var(--mer-text__on-elevation);\n }\n &__organization {\n font-weight: var(--mer-font__weight--light);\n font-size: var(--mer-font__size--4xs);\n color: var(--mer-text__neutral);\n }\n &__name,\n &__organization {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-inline-size: 120px;\n display: inline-block;\n }\n &__avatar {\n font-size: 9px;\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: var(--mer-spacing--lg);\n inline-size: var(--mer-spacing--lg);\n color: var(--mer-text__on-elevation);\n border-radius: 50%;\n background-color: var(--mer-color__tinted-primary--10);\n border: var(--mer-border__width--sm) solid var(--mer-color__primary--200);\n }\n\n &__footer {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--2xs);\n }\n}\n\n.agreement-link {\n text-decoration: underline;\n cursor: pointer;\n}\n","/* STENCIL IMPORTS */\nimport { Component, Element, Host, Prop, State, h } from \"@stencil/core\";\n\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { getInitialsFromName, limitFullName } from \"./helpers\";\nimport { DropdownModel } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n // TODO: review if \"utils/form--full\" is required.\n \"resets/box-sizing\",\n \"components/tooltip\",\n \"components/switch\",\n \"components/icon\",\n \"components/dropdown\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst CHEVRON_DOWN_ICON = getIconPath({\n category: \"navigation\",\n name: \"chevron-down\",\n colorType: \"neutral\"\n});\n\nconst MY_ACCOUNT_ID = \"my-account\";\nconst CHANGE_TEAM_ID = \"change-team\";\nconst SIGN_OUT_ID = \"sign-out\";\nconst LANGUAGE_ID = \"language\";\n\n@Component({\n tag: \"gx-ide-current-user-info\",\n styleUrl: \"current-user-info.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/current-user-info\"]\n})\nexport class GxIdeNewEnvironment {\n #componentLocale: any;\n #initials: string = \"\";\n // #mode: Mode;\n #menuDropdownModel: DropdownModel;\n\n @Element() el: HTMLGxIdeCurrentUserInfoElement;\n #userLoginButton: HTMLButtonElement;\n\n @State() showMenu: boolean = false;\n\n /**\n * User data\n */\n @Prop() readonly userInfo: UserInfo;\n\n /**\n * Callback executed when the user click \"My Account\" link\n */\n @Prop() readonly myAccountCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user click \"change team\" link\n */\n @Prop() readonly changeTeamCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user click \"Language\" link\n */\n @Prop() readonly changeLanguageCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user switch the \"Mode\" status\n */\n @Prop() readonly changeModeCallback!: (mode: Mode) => Promise<void>;\n\n /**\n * Callback executed when the user click \"Sign Out\" link\n */\n @Prop() readonly signOutCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks on the \"term and conditions\" link\n */\n @Prop() readonly termsCallback: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks on the \"privacy policy\" link\n */\n @Prop() readonly privacyCallback: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#initials = getInitialsFromName(this.userInfo.name);\n this.#menuDropdownModel = [\n // {\n // id: MY_ACCOUNT_ID,\n // caption: this.#componentLocale.myAccountLabel,\n // showSeparator: false\n // },\n {\n id: CHANGE_TEAM_ID,\n caption: this.#componentLocale.changeTeamLabel,\n showSeparator: false\n },\n {\n id: SIGN_OUT_ID,\n caption: this.#componentLocale.signOutLabel,\n showSeparator: true\n }\n // {\n // id: LANGUAGE_ID,\n // caption: this.#componentLocale.languageLabel,\n // showSeparator: true\n // }\n ];\n }\n\n // #handleModeSwitch = () => {\n // this.#mode = this.#mode === \"dark\" ? \"light\" : \"dark\";\n // if (this.changeModeCallback) {\n // this.changeModeCallback(this.#mode);\n // }\n // };\n\n #dropDownitemClickHandler = (\n _event: UIEvent,\n _target: string,\n itemId: string\n ): void => {\n if (itemId === MY_ACCOUNT_ID) {\n // this.myAccountCallback();\n } else if (itemId === CHANGE_TEAM_ID) {\n this.changeTeamCallback();\n } else if (itemId === SIGN_OUT_ID) {\n this.signOutCallback();\n } else if (itemId === LANGUAGE_ID) {\n this.changeLanguageCallback();\n }\n };\n\n render() {\n const userName = limitFullName(this.userInfo?.name);\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-dropdown-render\n class=\"dropdown\"\n model={this.#menuDropdownModel}\n position=\"InsideEnd_OutsideEnd\"\n itemClickCallback={this.#dropDownitemClickHandler}\n >\n <button\n class=\"user-login__button\"\n ref={el => (this.#userLoginButton = el as HTMLButtonElement)}\n slot=\"action\"\n >\n <div class=\"user-login__details\">\n {userName ? (\n <span class=\"user-login__name\">{userName}</span>\n ) : null}\n {this.userInfo?.team ? (\n <span class=\"user-login__organization\">\n {this.userInfo.team}\n </span>\n ) : null}\n </div>\n\n <div class=\"user-login__avatar\">{this.#initials}</div>\n <ch-image\n src={CHEVRON_DOWN_ICON}\n class=\"icon-md\"\n containerRef={this.#userLoginButton}\n ></ch-image>\n </button>\n <div class=\"user-login__footer footer-slot\" slot=\"footer\">\n <span\n class=\"text-body-regular-s agreement-link\"\n onClick={this.termsCallback}\n >\n {this.#componentLocale.termsAndConditionsText}\n </span>\n <span\n class=\"text-body-regular-s agreement-link\"\n onClick={this.privacyCallback}\n >\n {this.#componentLocale.privacyPolicyText}\n </span>\n </div>\n </ch-dropdown-render>\n </Host>\n );\n }\n}\n\nexport type UserInfo = {\n name: string;\n team: string;\n};\n\nexport type Mode = \"dark\" | \"light\";\n"],"mappings":";;;;;;;;;;;;;;;;GAWO,OAAMA,sBAAuBC;EAClC,WAAWA,MAAS,YAAYA,EAAKC,WAAW,IAAI;IAClD,OAAO;;EAGT,MAAMC,IAAWF,EAAKG,MAAM,KAAKC,OAAOC;;IACxC,IAAIH,EAASI,WAAW,GAAG;IACzB,OAAOJ,EAAS,GAAG,GAAGK;SACjB;IACL,OAAO,GAAGL,EAAS,GAAG,GAAGK,gBAAgBL,EAAS,GAAG,GAAGK;;;;;;;;;;;;;;GAerD,OAAMC,gBAAiBC;EAC5B,WAAWA,MAAa,YAAYA,EAASR,WAAW,IAAI;IAC1D,OAAO;;EAGT,MAAMS,IAAeD,EAASN,MAAM,KAAKC,OAAOC;;IAChD,IAAIK,EAAaJ,WAAW,GAAG;IAC7B,OAAOI,EAAa;SACf;IACL,OAAO,GAAGA,EAAa,MAAMA,EAAa;;;;AC5C9C,MAAMC,IAAqB;;;;;;;;;;;;;;;;;ACS3B,MAAMC,IAA8B;;AAElC,qBACA,sBACA,qBACA,mBACA,uBACA,gBACA,oBACA,iBACA;;AAGF,MAAMC,IAAoBC,EAAY;EACpCC,UAAU;EACVf,MAAM;EACNgB,WAAW;;;AAGb,MAAMC,IAAgB;;AACtB,MAAMC,IAAiB;;AACvB,MAAMC,IAAc;;AACpB,MAAMC,IAAc;;MAQPC,IAAmB;;;IAC9BC,EAAAC,IAAAC,WAAA;IACAC,EAAAF,IAAAC,MAAoB;;QAEpBE,EAAAH,IAAAC,WAAA;IAGAG,EAAAJ,IAAAC,WAAA;;;;;;;QA8EAI,EAAAL,IAAAC,OAA4B,CAC1BK,GACAC,GACAC;MAEA,IAAIA,MAAWd,UAER,IAAIc,MAAWb,GAAgB;QACpCM,KAAKQ;aACA,IAAID,MAAWZ,GAAa;QACjCK,KAAKS;aACA,IAAIF,MAAWX,GAAa;QACjCI,KAAKU;;;oBAxFoB;;;;;;;;;;EA0C7B,uBAAMC;IACJC,EAAAZ,MAAIF,SAA0Be,EAAOC,oBAAoBd,KAAKe,KAAG;IACjEH,EAAAZ,MAAIC,GAAa1B,oBAAoByB,KAAKgB,SAASxC,OAAK;IACxDoC,EAAAZ,MAAIE,GAAsB;;;;;;IAMxB;MACEe,IAAIvB;MACJwB,SAASC,EAAAnB,MAAIF,GAAA,KAAkBsB;MAC/BC,eAAe;OAEjB;MACEJ,IAAItB;MACJuB,SAASC,EAAAnB,MAAIF,GAAA,KAAkBwB;MAC/BD,eAAe;SAOlB;;EA0BH,MAAAE;;IACE,MAAMC,IAAWxC,eAAcyC,IAAAzB,KAAKgB,cAAQ,QAAAS,WAAA,aAAAA,EAAEjD;IAC9C,OACEkD,EAACC,GAAI;MAACC,OAAM;OACVF,EAAA;MAAUG,OAAOzC;QACjBsC,EAAA;MACEE,OAAM;MACNC,OAAOV,EAAAnB,MAAIE,GAAA;MACX4B,UAAS;MACTC,mBAAmBZ,EAAAnB,MAAII,GAAA;OAEvBsB,EAAA;MACEE,OAAM;MACNI,KAAKjB,KAAOH,EAAAZ,MAAIG,GAAoBY,GAAuB;MAC3DkB,MAAK;OAELP,EAAA;MAAKE,OAAM;OACRJ,IACCE,EAAA;MAAME,OAAM;OAAoBJ,KAC9B,QACHU,IAAAlC,KAAKgB,cAAQ,QAAAkB,WAAA,aAAAA,EAAEC,QACdT,EAAA;MAAME,OAAM;OACT5B,KAAKgB,SAASmB,QAEf,OAGNT,EAAA;MAAKE,OAAM;OAAsBT,EAAAnB,MAAIC,GAAA,OACrCyB,EAAA;MACEU,KAAK/C;MACLuC,OAAM;MACNS,cAAclB,EAAAnB,MAAIG,GAAA;SAGtBuB,EAAA;MAAKE,OAAM;MAAiCK,MAAK;OAC/CP,EAAA;MACEE,OAAM;MACNU,SAAStC,KAAKuC;OAEbpB,EAAAnB,MAAIF,GAAA,KAAkB0C,yBAEzBd,EAAA;MACEE,OAAM;MACNU,SAAStC,KAAKyC;OAEbtB,EAAAnB,MAAIF,GAAA,KAAkB4C"}
@@ -2,12 +2,12 @@ import { a as e, r as n, h as i, H as t, g as s } from "./p-49712340.js";
2
2
 
3
3
  import { L as a } from "./p-311eedf3.js";
4
4
 
5
- const mapTeamsToComboBoxItemModel = e => e.map((e => ({
5
+ const mapTeamsToComboBoxItemModel = e => e === null || e === void 0 ? void 0 : e.map((e => ({
6
6
  value: e.id,
7
7
  caption: e.name
8
8
  })));
9
9
 
10
- const r = ":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--mer-spacing--xl);\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n}\n.slide__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n}\n.slide__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n}\n.slide__main-container {\n display: grid;\n place-self: center;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n}\n.slide__main-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n}\n.slide__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--mer-font__size--xl);\n font-weight: var(--mer-font__weight--semi-bold);\n letter-spacing: 0.02em;\n color: var(--mer-text__on-surface);\n}\n.slide__main-description {\n display: grid;\n gap: var(--mer-spacing--2xl);\n font-size: var(--mer-font__size--sm);\n font-weight: var(--mer-font__weight--light);\n line-height: var(--mer-line-height--spaced);\n color: var(--mer-text__complementary);\n}\n\n.terms-conditions {\n text-decoration: underline;\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n}\n\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--md);\n}\n\n.continue-btn,\n.cancel-btn {\n flex: 1;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}";
10
+ const r = ":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--mer-spacing--xl);\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n}\n.slide__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n}\n.slide__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n transform: translateY(var(--mer-spacing--2xs));\n transition: var(--display-teams-transtion-time) all;\n opacity: 0;\n position: relative;\n}\n.slide__main--visible {\n transform: translateY(0);\n opacity: 1;\n}\n.slide__main-container {\n display: grid;\n place-self: center;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n}\n.slide__main-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n}\n.slide__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--mer-font__size--xl);\n font-weight: var(--mer-font__weight--semi-bold);\n letter-spacing: 0.02em;\n color: var(--mer-text__on-surface);\n}\n.slide__main-description {\n display: grid;\n gap: var(--mer-spacing--2xl);\n font-size: var(--mer-font__size--sm);\n font-weight: var(--mer-font__weight--light);\n line-height: var(--mer-line-height--spaced);\n color: var(--mer-text__complementary);\n}\n\n.terms-conditions {\n text-decoration: underline;\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n}\n\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--md);\n}\n\n.continue-btn,\n.cancel-btn {\n flex: 1;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}";
11
11
 
12
12
  var o = undefined && undefined.__classPrivateFieldGet || function(e, n, i, t) {
13
13
  if (i === "a" && !t) throw new TypeError("Private accessor was defined without a getter");
@@ -22,13 +22,13 @@ var l = undefined && undefined.__classPrivateFieldSet || function(e, n, i, t, s)
22
22
  return t === "a" ? s.call(e, i) : s ? s.value = i : n.set(e, i), i;
23
23
  };
24
24
 
25
- var c, d, m, h, p;
25
+ var c, d, m, h, f, p;
26
26
 
27
- const f = e(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
27
+ const g = e(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
28
28
 
29
- const g = e(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
29
+ const u = e(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
30
30
 
31
- const u = [ "resets/box-sizing", "utils/typography", "components/button", "components/combo-box" ];
31
+ const v = [ "resets/box-sizing", "utils/typography", "components/button", "components/combo-box" ];
32
32
 
33
33
  const _ = class {
34
34
  constructor(e) {
@@ -41,43 +41,64 @@ const _ = class {
41
41
  // Select User Team References :
42
42
  d.set(this, []);
43
43
  m.set(this, void 0);
44
- h.set(this, (async () => {
44
+ h.set(this, 100);
45
+ f.set(this, (async () => {
45
46
  await this.continueCallback(o(this, m, "f").value);
46
47
  }));
47
48
  p.set(this, (async () => {
48
49
  await this.cancelCallback();
49
50
  }));
51
+ this.slideIsVisible = false;
52
+ this.teamsModelReady = false;
50
53
  this.cancelCallback = undefined;
51
54
  this.continueCallback = undefined;
52
55
  this.teams = undefined;
53
56
  }
54
57
  teamsChanged(e) {
55
- l(this, d, mapTeamsToComboBoxItemModel(e), "f");
58
+ this.slideIsVisible = false;
59
+ // switch step
60
+ setTimeout((() => {
61
+ if (e.length) {
62
+ l(this, d, mapTeamsToComboBoxItemModel(e), "f");
63
+ this.teamsModelReady = true;
64
+ } else {
65
+ this.teamsModelReady = false;
66
+ }
67
+ }), o(this, h, "f"));
68
+ // show slide
69
+ setTimeout((() => {
70
+ this.slideIsVisible = true;
71
+ }), o(this, h, "f") * 2);
56
72
  }
57
73
  async componentWillLoad() {
58
74
  l(this, c, await a.getComponentStrings(this.el), "f");
59
75
  this.teamsChanged(this.teams);
76
+ this.el.style.setProperty("--display-teams-transtion-time", o(this, h, "f").toString() + "ms");
77
+ }
78
+ componentDidLoad() {
79
+ this.slideIsVisible = true;
60
80
  }
61
81
  render() {
62
82
  var e;
63
83
  return i(t, null, i("ch-theme", {
64
- model: u
84
+ model: v
65
85
  }), i("section", {
66
86
  class: "slide"
67
87
  }, i("img", {
68
- src: f,
88
+ src: g,
69
89
  class: "slide__illustration",
70
90
  alt: ""
71
91
  }), i("div", {
72
92
  class: {
73
- slide__main: true
93
+ slide__main: true,
94
+ "slide__main--visible": this.slideIsVisible
74
95
  }
75
96
  }, i("div", {
76
97
  class: "slide__main-container"
77
- }, i("header", {
98
+ }, this.teamsModelReady ? [ i("header", {
78
99
  class: "slide__main-header"
79
100
  }, i("img", {
80
- src: g,
101
+ src: u,
81
102
  alt: ""
82
103
  }), i("h2", {
83
104
  // Split the title into two spans for better styling
@@ -97,17 +118,21 @@ const _ = class {
97
118
  accessibleName: "Teams",
98
119
  class: "combo-box teams-list",
99
120
  model: o(this, d, "f"),
100
- value: (e = o(this, d, "f")[0]) === null || e === void 0 ? void 0 : e.value,
121
+ value: o(this, d, "f") && ((e = o(this, d, "f")[0]) === null || e === void 0 ? void 0 : e.value),
101
122
  ref: e => l(this, m, e, "f")
102
123
  }))), i("div", {
103
124
  class: "buttons-container"
104
125
  }, i("button", {
105
126
  class: "button-primary continue-btn",
106
- onClick: o(this, h, "f")
127
+ onClick: o(this, f, "f")
107
128
  }, o(this, c, "f").continueButtonCaption), i("button", {
108
129
  class: "button-secondary cancel-btn",
109
130
  onClick: o(this, p, "f")
110
- }, o(this, c, "f").cancelButtonCaption))))));
131
+ }, o(this, c, "f").cancelButtonCaption)) ] : i("gx-ide-loader", {
132
+ show: true,
133
+ loaderTitle: o(this, c, "f").loader.title,
134
+ description: o(this, c, "f").loader.description
135
+ })))));
111
136
  }
112
137
  static get assetsDirs() {
113
138
  return [ "gx-ide-assets/select-user-team" ];
@@ -122,9 +147,10 @@ const _ = class {
122
147
  }
123
148
  };
124
149
 
125
- c = new WeakMap, d = new WeakMap, m = new WeakMap, h = new WeakMap, p = new WeakMap;
150
+ c = new WeakMap, d = new WeakMap, m = new WeakMap, h = new WeakMap, f = new WeakMap,
151
+ p = new WeakMap;
126
152
 
127
153
  _.style = r;
128
154
 
129
155
  export { _ as gx_ide_select_user_team };
130
- //# sourceMappingURL=p-c9b0fd13.entry.js.map
156
+ //# sourceMappingURL=p-ab653cc2.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mapTeamsToComboBoxItemModel","teams","map","team","value","id","caption","name","selectUserTeamCss","COPYRIGHTS_ILLUSTRATION","getAssetPath","ICON_NEXT","CSS_BUNDLES","GxIdeSelectUserTeam","_GxIdeSelectUserTeam_componentLocale","set","this","_GxIdeSelectUserTeam_userTeamsModel","_GxIdeSelectUserTeam_chSelectTeamEl","_GxIdeSelectUserTeam_displayTeamsTransitionTime","_GxIdeSelectUserTeam_continueHandler","async","continueCallback","__classPrivateFieldGet","_GxIdeSelectUserTeam_cancelHandler","cancelCallback","teamsChanged","newTeams","slideIsVisible","setTimeout","length","__classPrivateFieldSet","teamsModelReady","componentWillLoad","Locale","getComponentStrings","el","style","setProperty","toString","componentDidLoad","render","h","Host","model","class","src","alt","slide__main","title","infoMessage","htmlFor","accessibleName","_a","ref","onClick","continueButtonCaption","cancelButtonCaption","show","loaderTitle","loader","description"],"sources":["src/components/select-user-team/helpers.tsx","src/components/select-user-team/select-user-team.scss?tag=gx-ide-select-user-team&encapsulation=shadow","src/components/select-user-team/select-user-team.tsx"],"sourcesContent":["import { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { TeamData } from \"./select-user-team\";\n\nexport const mapTeamsToComboBoxItemModel = (\n teams: TeamData[]\n): ComboBoxItemModel[] => {\n return teams?.map(team => {\n return {\n value: team.id,\n caption: team.name\n };\n });\n};\n",":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--mer-spacing--xl);\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n\n &__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n }\n\n &__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n transform: translateY(var(--mer-spacing--2xs));\n transition: var(--display-teams-transtion-time) all;\n opacity: 0;\n\n position: relative;\n\n &--visible {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n &__main-container {\n display: grid;\n place-self: center;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n }\n\n &__main-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n }\n\n &__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--mer-font__size--xl);\n font-weight: var(--mer-font__weight--semi-bold);\n letter-spacing: 0.02em;\n color: var(--mer-text__on-surface);\n }\n\n &__main-description {\n display: grid;\n gap: var(--mer-spacing--2xl);\n font-size: var(--mer-font__size--sm);\n font-weight: var(--mer-font__weight--light);\n line-height: var(--mer-line-height--spaced);\n color: var(--mer-text__complementary);\n }\n}\n\n.terms-conditions {\n text-decoration: underline;\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n}\n\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--md);\n}\n\n.continue-btn,\n.cancel-btn {\n flex: 1;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Watch,\n Element,\n getAssetPath\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport { mapTeamsToComboBoxItemModel } from \"./helpers\";\n\nconst COPYRIGHTS_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/welcome-page/images/copyrights-illustration.png`\n);\nconst ICON_NEXT = getAssetPath(\n `./gx-ide-assets/welcome-page/images/icon-next.svg`\n);\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/button\",\n \"components/combo-box\"\n];\n\n@Component({\n tag: \"gx-ide-select-user-team\",\n styleUrl: \"select-user-team.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-user-team\"]\n})\nexport class GxIdeSelectUserTeam {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n // Select User Team References :\n #userTeamsModel: ComboBoxItemModel[] = [];\n #chSelectTeamEl: HTMLChComboBoxRenderElement;\n #displayTeamsTransitionTime: number = 100;\n\n @Element() el: HTMLGxIdeSelectUserTeamElement;\n\n /**\n * Defines if the main slide is visible or not. Used for smooth transitions between slides.\n */\n @State() slideIsVisible: boolean = false;\n\n /**\n * Defines if the team model is redy to be rendered.\n */\n @State() teamsModelReady: boolean = false;\n\n /**\n * Callback executed when the user clicks the 'Cancel' button\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks the 'Continue' button\n */\n @Prop() readonly continueCallback!: (teamId: string) => Promise<void>;\n\n /**\n * Array that contains the user's teams\n */\n @Prop() readonly teams!: TeamData[];\n @Watch(\"teams\")\n teamsChanged(newTeams: TeamData[]) {\n this.slideIsVisible = false;\n // switch step\n setTimeout(() => {\n if (newTeams.length) {\n this.#userTeamsModel = mapTeamsToComboBoxItemModel(newTeams);\n this.teamsModelReady = true;\n } else {\n this.teamsModelReady = false;\n }\n }, this.#displayTeamsTransitionTime);\n // show slide\n setTimeout(() => {\n this.slideIsVisible = true;\n }, this.#displayTeamsTransitionTime * 2);\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.teamsChanged(this.teams);\n\n this.el.style.setProperty(\n \"--display-teams-transtion-time\",\n this.#displayTeamsTransitionTime.toString() + \"ms\"\n );\n }\n\n componentDidLoad() {\n this.slideIsVisible = true;\n }\n\n #continueHandler = async () => {\n await this.continueCallback(this.#chSelectTeamEl.value);\n };\n\n #cancelHandler = async () => {\n await this.cancelCallback();\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"slide\">\n <img\n src={COPYRIGHTS_ILLUSTRATION}\n class=\"slide__illustration\"\n alt=\"\" // decorative\n />\n\n <div\n class={{\n \"slide__main\": true,\n \"slide__main--visible\": this.slideIsVisible\n }}\n >\n <div class=\"slide__main-container\">\n {this.teamsModelReady ? (\n [\n <header class=\"slide__main-header\">\n <img\n src={ICON_NEXT}\n alt=\"\" // decorative\n />\n <h2\n // Split the title into two spans for better styling\n class=\"slide__main-title\"\n >\n <span>{this.#componentLocale.title}</span>\n </h2>\n </header>,\n <div class=\"slide__select-team-description\">\n <p class=\"text-body-highlighted-l\">\n {this.#componentLocale.infoMessage}\n </p>\n </div>,\n <div class=\"field-group\">\n <div class=\"field field-block\">\n <label htmlFor=\"teams\">\n {this.#componentLocale.teams}\n </label>\n <ch-combo-box-render\n id=\"teams\"\n accessibleName=\"Teams\"\n class=\"combo-box teams-list\"\n model={this.#userTeamsModel}\n value={\n this.#userTeamsModel && this.#userTeamsModel[0]?.value\n }\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#chSelectTeamEl =\n el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n </div>,\n <div class=\"buttons-container\">\n <button\n class=\"button-primary continue-btn\"\n onClick={this.#continueHandler}\n >\n {this.#componentLocale.continueButtonCaption}\n </button>\n <button\n class=\"button-secondary cancel-btn\"\n onClick={this.#cancelHandler}\n >\n {this.#componentLocale.cancelButtonCaption}\n </button>\n </div>\n ]\n ) : (\n <gx-ide-loader\n show\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n ></gx-ide-loader>\n )}\n </div>\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type TeamData = {\n id: string;\n name: string;\n};\n"],"mappings":";;;;AAGO,MAAMA,8BACXC,KAEOA,MAAK,QAALA,WAAK,aAALA,EAAOC,KAAIC,MACT;EACLC,OAAOD,EAAKE;EACZC,SAASH,EAAKI;;;ACTpB,MAAMC,IAAoB;;;;;;;;;;;;;;;;;ACkB1B,MAAMC,IAA0BC,EAC9B;;AAEF,MAAMC,IAAYD,EAChB;;AAEF,MAAME,IAA8B,EAClC,qBACA,oBACA,qBACA;;MASWC,IAAmB;;;;;;;QAK9BC,EAAAC,IAAAC,WAAA;;QAEAC,EAAAF,IAAAC,MAAuC;IACvCE,EAAAH,IAAAC,WAAA;IACAG,EAAAJ,IAAAC,MAAsC;IA4DtCI,EAAAL,IAAAC,OAAmBK;YACXL,KAAKM,iBAAiBC,EAAAP,MAAIE,GAAA,KAAiBd;AAAM;IAGzDoB,EAAAT,IAAAC,OAAiBK;YACTL,KAAKS;AAAgB;0BA1DM;2BAKC;;;;;EAiBpC,YAAAC,CAAaC;IACXX,KAAKY,iBAAiB;;QAEtBC,YAAW;MACT,IAAIF,EAASG,QAAQ;QACnBC,EAAAf,MAAIC,GAAmBjB,4BAA4B2B,IAAS;QAC5DX,KAAKgB,kBAAkB;aAClB;QACLhB,KAAKgB,kBAAkB;;QAExBT,EAAAP,MAAIG,GAAA;;QAEPU,YAAW;MACTb,KAAKY,iBAAiB;AAAI,QACzBL,EAAAP,MAAIG,GAAA,OAA+B;;EAGxC,uBAAMc;IACJF,EAAAf,MAAIF,SAA0BoB,EAAOC,oBAAoBnB,KAAKoB,KAAG;IACjEpB,KAAKU,aAAaV,KAAKf;IAEvBe,KAAKoB,GAAGC,MAAMC,YACZ,kCACAf,EAAAP,MAAIG,GAAA,KAA6BoB,aAAa;;EAIlD,gBAAAC;IACExB,KAAKY,iBAAiB;;EAWxB,MAAAa;;IACE,OACEC,EAACC,GAAI,MACHD,EAAA;MAAUE,OAAOhC;QACjB8B,EAAA;MAASG,OAAM;OACbH,EAAA;MACEI,KAAKrC;MACLoC,OAAM;MACNE,KAAI;QAGNL,EAAA;MACEG,OAAO;QACLG,aAAe;QACf,wBAAwBhC,KAAKY;;OAG/Bc,EAAA;MAAKG,OAAM;OACR7B,KAAKgB,kBAAe,EAEjBU,EAAA;MAAQG,OAAM;OACZH,EAAA;MACEI,KAAKnC;MACLoC,KAAI;QAENL,EAAA;;MAEEG,OAAM;OAENH,EAAA,cAAOnB,EAAAP,MAAIF,GAAA,KAAkBmC,UAGjCP,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAGG,OAAM;OACNtB,EAAAP,MAAIF,GAAA,KAAkBoC,eAG3BR,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAOS,SAAQ;OACZ5B,EAAAP,MAAIF,GAAA,KAAkBb,QAEzByC,EAAA;MACErC,IAAG;MACH+C,gBAAe;MACfP,OAAM;MACND,OAAOrB,EAAAP,MAAIC,GAAA;MACXb,OACEmB,EAAAP,MAAIC,GAAA,UAAoBoC,IAAA9B,EAAAP,MAAIC,GAAA,KAAiB,QAAE,QAAAoC,WAAA,aAAAA,EAAEjD;MAEnDkD,KAAMlB,KACHL,EAAAf,MAAIE,GACHkB,GAAiC;UAK3CM,EAAA;MAAKG,OAAM;OACTH,EAAA;MACEG,OAAM;MACNU,SAAShC,EAAAP,MAAII,GAAA;OAEZG,EAAAP,MAAIF,GAAA,KAAkB0C,wBAEzBd,EAAA;MACEG,OAAM;MACNU,SAAShC,EAAAP,MAAIQ,GAAA;OAEZD,EAAAP,MAAIF,GAAA,KAAkB2C,0BAK7Bf,EAAA;MACEgB,MAAI;MACJC,aAAapC,EAAAP,MAAIF,GAAA,KAAkB8C,OAAOX;MAC1CY,aAAatC,EAAAP,MAAIF,GAAA,KAAkB8C,OAAOC"}
@@ -0,0 +1,236 @@
1
+ import { a as e, r as i, h as n, H as s, g as t } from "./p-49712340.js";
2
+
3
+ import { L as a } from "./p-311eedf3.js";
4
+
5
+ const mapTeamsToComboBoxItemModel = e => {
6
+ if (!e) {
7
+ return [];
8
+ }
9
+ return e.map((e => ({
10
+ value: e.id,
11
+ caption: e.name
12
+ })));
13
+ };
14
+
15
+ const r = ":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--mer-spacing--xl);\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n}\n.slide__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n}\n.slide__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n transform: translateY(var(--mer-spacing--2xs));\n transition: var(--switch-step-transtion-time) all;\n opacity: 0;\n}\n.slide__main--visible {\n transform: translateY(0);\n opacity: 1;\n}\n.slide__main-container {\n display: grid;\n place-self: center;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n}\n.slide__main-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n}\n.slide__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--mer-font__size--xl);\n font-weight: var(--mer-font__weight--semi-bold);\n letter-spacing: 0.02em;\n color: var(--mer-text__on-surface);\n}\n.slide__main-description {\n display: grid;\n gap: var(--mer-spacing--2xl);\n font-size: var(--mer-font__size--sm);\n font-weight: var(--mer-font__weight--light);\n line-height: var(--mer-line-height--spaced);\n color: var(--mer-text__complementary);\n max-inline-size: 370px;\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n}\n\n.main-btn {\n inline-size: 100%;\n max-inline-size: 124px;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}\n.hyperlink {\n text-decoration: underline;\n cursor: pointer;\n}\n\n.field-inline > .label-agreement {\n margin-block-start: 0 !important;\n}";
16
+
17
+ var l = undefined && undefined.__classPrivateFieldGet || function(e, i, n, s) {
18
+ if (n === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
19
+ if (typeof i === "function" ? e !== i || !s : !i.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
+ return n === "m" ? s : n === "a" ? s.call(e) : s ? s.value : i.get(e);
21
+ };
22
+
23
+ var o = undefined && undefined.__classPrivateFieldSet || function(e, i, n, s, t) {
24
+ if (s === "m") throw new TypeError("Private method is not writable");
25
+ if (s === "a" && !t) throw new TypeError("Private accessor was defined without a setter");
26
+ if (typeof i === "function" ? e !== i || !t : !i.has(e)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
27
+ return s === "a" ? t.call(e, n) : t ? t.value = n : i.set(e, n), n;
28
+ };
29
+
30
+ var h, c, d, f, m, p, g, u, v, b, w, _, x, k;
31
+
32
+ const y = e(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
33
+
34
+ const z = e(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
35
+
36
+ const W = [ "resets/box-sizing", "utils/typography", "components/button", "components/combo-box", "components/checkbox", "utils/form" ];
37
+
38
+ const M = "on";
39
+
40
+ const T = class {
41
+ constructor(e) {
42
+ i(this, e);
43
+ /**
44
+ * The component hard-coded strings translations.
45
+ */
46
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
47
+ h.set(this, void 0);
48
+ // Select User Team References :
49
+ c.set(this, []);
50
+ d.set(this, void 0);
51
+ f.set(this, 100);
52
+ m.set(this, void 0);
53
+ p.set(this, void 0);
54
+ g.set(this, (() => {
55
+ if (this.authStep === "signIn") {
56
+ this.signInCallback();
57
+ } else if (this.authStep === "selectUserTeam") {
58
+ l(this, u, "f").call(this);
59
+ }
60
+ }));
61
+ u.set(this, (async () => {
62
+ await this.continueCallback(l(this, d, "f").value);
63
+ }));
64
+ v.set(this, (() => n("header", {
65
+ class: "slide__main-header"
66
+ }, n("img", {
67
+ src: z,
68
+ alt: ""
69
+ }), n("h2", {
70
+ // Split the title into two spans for better styling
71
+ class: "slide__main-title"
72
+ }, n("span", null, l(this, h, "f")[this.authStepInternal].titlePart1), n("span", null, l(this, h, "f")[this.authStepInternal].titlePart2)))));
73
+ b.set(this, (() => {
74
+ const e = this.authStep === "signIn" && this.termsConfirmationRequired && !this.termsAndConditionsAccepted;
75
+ return n("div", null, n("button", {
76
+ class: "button-primary main-btn",
77
+ onClick: l(this, g, "f"),
78
+ disabled: e
79
+ }, l(this, h, "f")[this.authStepInternal].buttonCaption));
80
+ }));
81
+ w.set(this, (() => {
82
+ const e = l(this, m, "f").value === M;
83
+ const i = l(this, p, "f").value === M;
84
+ this.termsAndConditionsAccepted = e && i;
85
+ }));
86
+ _.set(this, (e => {
87
+ e.preventDefault();
88
+ this.termsCallback();
89
+ }));
90
+ x.set(this, (e => {
91
+ e.preventDefault();
92
+ this.privacyCallback();
93
+ }));
94
+ k.set(this, (() => {
95
+ var e;
96
+ if (this.authStepInternal === "signIn") {
97
+ return [ l(this, v, "f").call(this), n("p", {
98
+ class: "text-body-regular-l"
99
+ }, l(this, h, "f").signIn.description), this.termsConfirmationRequired && n("div", {
100
+ class: "field-group"
101
+ }, n("div", {
102
+ // terms and conditions
103
+ class: "field field-inline"
104
+ }, n("ch-checkbox", {
105
+ checkedValue: M,
106
+ id: "terms-and-conditions",
107
+ class: "checkbox",
108
+ ref: e => o(this, m, e, "f"),
109
+ onInput: l(this, w, "f")
110
+ }), n("label", {
111
+ htmlFor: "terms-and-conditions",
112
+ class: "label label-agreement"
113
+ }, l(this, h, "f").agreement.termsAndConditionsLabel, n("span", {
114
+ class: {
115
+ hyperlink: !!this.termsCallback
116
+ },
117
+ onClick: this.termsCallback && l(this, _, "f")
118
+ }, l(this, h, "f").agreement.termsAndConditionsLink))), n("div", {
119
+ // privacy policy
120
+ class: "field field-inline"
121
+ }, n("ch-checkbox", {
122
+ checkedValue: M,
123
+ id: "privacy-policy",
124
+ class: "checkbox",
125
+ ref: e => o(this, p, e, "f"),
126
+ onInput: l(this, w, "f")
127
+ }), n("label", {
128
+ htmlFor: "privacy-policy",
129
+ class: "label label-agreement"
130
+ }, l(this, h, "f").agreement.privacyAndPolicyLabel, n("span", {
131
+ class: {
132
+ hyperlink: !!this.privacyCallback
133
+ },
134
+ onClick: this.privacyCallback && l(this, x, "f")
135
+ }, l(this, h, "f").agreement.privacyAndPolicyLink)))), l(this, b, "f").call(this) ];
136
+ } else if (this.authStepInternal === "fetchUserTeams" || this.authStepInternal === "settingUpSession") {
137
+ const e = this.authStepInternal === "fetchUserTeams" ? l(this, h, "f").loader.fetchingTeamsTitle : l(this, h, "f").loader.settingUpSessionTitle;
138
+ const i = this.authStepInternal === "fetchUserTeams" ? l(this, h, "f").loader.fetchingTeamsDescription : l(this, h, "f").loader.settingUpDescription;
139
+ return n("gx-ide-loader", {
140
+ show: true,
141
+ loaderTitle: e,
142
+ description: i
143
+ });
144
+ } else if (this.authStepInternal === "selectUserTeam") {
145
+ return [ l(this, v, "f").call(this), n("div", {
146
+ class: "slide__select-team-description"
147
+ }, n("p", {
148
+ class: "text-body-highlighted-l"
149
+ }, l(this, h, "f").selectUserTeam.infoMessage)), n("div", {
150
+ class: "field-group"
151
+ }, n("div", {
152
+ class: "field field-block"
153
+ }, n("label", {
154
+ htmlFor: "teams"
155
+ }, l(this, h, "f").selectUserTeam.label), n("ch-combo-box-render", {
156
+ id: "teams",
157
+ accessibleName: "Teams",
158
+ class: "combo-box teams-list",
159
+ model: l(this, c, "f"),
160
+ value: (e = l(this, c, "f")[0]) === null || e === void 0 ? void 0 : e.value,
161
+ ref: e => o(this, d, e, "f")
162
+ }))), l(this, b, "f").call(this) ];
163
+ }
164
+ }));
165
+ this.authStepInternal = undefined;
166
+ this.slideIsVisible = true;
167
+ this.termsAndConditionsAccepted = false;
168
+ this.authStep = "signIn";
169
+ this.continueCallback = undefined;
170
+ this.signInCallback = undefined;
171
+ this.termsConfirmationRequired = false;
172
+ this.teams = undefined;
173
+ this.termsCallback = undefined;
174
+ this.privacyCallback = undefined;
175
+ }
176
+ authStepChanged(e) {
177
+ this.slideIsVisible = false;
178
+ // switch step
179
+ setTimeout((() => {
180
+ this.authStepInternal = e;
181
+ }), l(this, f, "f"));
182
+ // show slide
183
+ setTimeout((() => {
184
+ this.slideIsVisible = true;
185
+ }), l(this, f, "f") * 2);
186
+ }
187
+ teamsChanged(e) {
188
+ o(this, c, mapTeamsToComboBoxItemModel(e), "f");
189
+ }
190
+ async componentWillLoad() {
191
+ o(this, h, await a.getComponentStrings(this.el), "f");
192
+ this.el.style.setProperty("--switch-step-transtion-time", l(this, f, "f").toString() + "ms");
193
+ // Initialize values
194
+ this.authStepInternal = this.authStep;
195
+ this.teamsChanged(this.teams);
196
+ }
197
+ render() {
198
+ return n(s, null, n("ch-theme", {
199
+ model: W
200
+ }), n("section", {
201
+ class: "slide"
202
+ }, n("img", {
203
+ src: y,
204
+ class: "slide__illustration",
205
+ alt: ""
206
+ }), n("div", {
207
+ class: {
208
+ slide__main: true,
209
+ "slide__main--visible": this.slideIsVisible
210
+ }
211
+ }, n("div", {
212
+ class: "slide__main-container"
213
+ }, l(this, k, "f").call(this)))));
214
+ }
215
+ static get assetsDirs() {
216
+ return [ "gx-ide-assets/sign-in-team" ];
217
+ }
218
+ get el() {
219
+ return t(this);
220
+ }
221
+ static get watchers() {
222
+ return {
223
+ authStep: [ "authStepChanged" ],
224
+ teams: [ "teamsChanged" ]
225
+ };
226
+ }
227
+ };
228
+
229
+ h = new WeakMap, c = new WeakMap, d = new WeakMap, f = new WeakMap, m = new WeakMap,
230
+ p = new WeakMap, g = new WeakMap, u = new WeakMap, v = new WeakMap, b = new WeakMap,
231
+ w = new WeakMap, _ = new WeakMap, x = new WeakMap, k = new WeakMap;
232
+
233
+ T.style = r;
234
+
235
+ export { T as gx_ide_sign_in_team };
236
+ //# sourceMappingURL=p-b04a0ae3.entry.js.map