@genexus/genexus-ide-ui 3.1.2 → 3.2.0

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 (37) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +46 -13
  3. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  4. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/collection/components/new-kb/gx-ide-assets/new-kb/langs/new-kb.lang.en.json +2 -0
  8. package/dist/collection/components/new-kb/gx-ide-assets/new-kb/langs/new-kb.lang.ja.json +2 -0
  9. package/dist/collection/components/new-kb/gx-ide-assets/new-kb/langs/new-kb.lang.zh.json +2 -0
  10. package/dist/collection/components/new-kb/new-kb.css +15 -5
  11. package/dist/collection/components/new-kb/new-kb.js +64 -12
  12. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  13. package/dist/collection/components/sign-in-team/sign-in-team.css +1 -0
  14. package/dist/components/gx-ide-new-kb.js +48 -13
  15. package/dist/components/gx-ide-new-kb.js.map +1 -1
  16. package/dist/components/gx-ide-sign-in-team.js +1 -1
  17. package/dist/components/gx-ide-sign-in-team.js.map +1 -1
  18. package/dist/esm/genexus-ide-ui.js +1 -1
  19. package/dist/esm/gx-ide-new-kb.entry.js +46 -13
  20. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  21. package/dist/esm/gx-ide-sign-in-team.entry.js +1 -1
  22. package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
  23. package/dist/esm/loader.js +1 -1
  24. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  25. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  26. package/dist/genexus-ide-ui/gx-ide-assets/new-kb/langs/new-kb.lang.en.json +2 -0
  27. package/dist/genexus-ide-ui/gx-ide-assets/new-kb/langs/new-kb.lang.ja.json +2 -0
  28. package/dist/genexus-ide-ui/gx-ide-assets/new-kb/langs/new-kb.lang.zh.json +2 -0
  29. package/dist/genexus-ide-ui/{p-c24ea55d.entry.js → p-1d44dd0a.entry.js} +59 -59
  30. package/dist/genexus-ide-ui/p-1d44dd0a.entry.js.map +1 -0
  31. package/dist/genexus-ide-ui/{p-217bd2d7.entry.js → p-76e1c357.entry.js} +178 -137
  32. package/dist/genexus-ide-ui/p-76e1c357.entry.js.map +1 -0
  33. package/dist/types/components/new-kb/new-kb.d.ts +7 -0
  34. package/dist/types/components.d.ts +8 -0
  35. package/package.json +1 -1
  36. package/dist/genexus-ide-ui/p-217bd2d7.entry.js.map +0 -1
  37. package/dist/genexus-ide-ui/p-c24ea55d.entry.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { g as i, r as e, h as s, H as n, a as t } from "./p-9b9ccd0c.js";
1
+ import { g as i, r as e, h as n, H as s, a as t } from "./p-9b9ccd0c.js";
2
2
 
3
3
  import { L as a } from "./p-311eedf3.js";
4
4
 
@@ -12,24 +12,24 @@ const mapTeamsToComboBoxItemModel = i => {
12
12
  })));
13
13
  };
14
14
 
15
- const l = ":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}\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(--color-accent-surface-elevation-1);\n border-radius: var(--dialog-border-radius, 16px);\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: 48px;\n transform: translateY(4px);\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(--spacing-gap-xxl);\n max-inline-size: 480px;\n}\n.slide__main-header {\n display: grid;\n gap: var(--spacing-gap-xxl);\n}\n.slide__main-title {\n display: flex;\n flex-direction: column;\n letter-spacing: 0.02em;\n}\n.slide__main-description {\n display: grid;\n gap: 40px;\n color: var(--color-text-neutral-disabled);\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}";
15
+ const l = ":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}\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(--color-accent-surface-elevation-1);\n border-radius: var(--dialog-border-radius, 16px);\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: 48px;\n transform: translateY(4px);\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(--spacing-gap-xxl);\n max-inline-size: 480px;\n}\n.slide__main-header {\n display: grid;\n gap: var(--spacing-gap-xxl);\n}\n.slide__main-title {\n display: flex;\n flex-direction: column;\n letter-spacing: 0.02em;\n}\n.slide__main-description {\n display: grid;\n gap: 40px;\n color: var(--color-text-neutral-disabled);\n max-inline-size: 370px;\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n --ch-combo-box__popover-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
16
 
17
- var r = undefined && undefined.__classPrivateFieldGet || function(i, e, s, n) {
18
- if (s === "a" && !n) throw new TypeError("Private accessor was defined without a getter");
19
- if (typeof e === "function" ? i !== e || !n : !e.has(i)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
- return s === "m" ? n : s === "a" ? n.call(i) : n ? n.value : e.get(i);
17
+ var r = undefined && undefined.__classPrivateFieldGet || function(i, e, n, s) {
18
+ if (n === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
19
+ if (typeof e === "function" ? i !== e || !s : !e.has(i)) 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(i) : s ? s.value : e.get(i);
21
21
  };
22
22
 
23
- var o = undefined && undefined.__classPrivateFieldSet || function(i, e, s, n, t) {
24
- if (n === "m") throw new TypeError("Private method is not writable");
25
- if (n === "a" && !t) throw new TypeError("Private accessor was defined without a setter");
23
+ var o = undefined && undefined.__classPrivateFieldSet || function(i, e, 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
26
  if (typeof e === "function" ? i !== e || !t : !e.has(i)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
27
- return n === "a" ? t.call(i, s) : t ? t.value = s : e.set(i, s), s;
27
+ return s === "a" ? t.call(i, n) : t ? t.value = n : e.set(i, n), n;
28
28
  };
29
29
 
30
- var h, c, d, f, p, m, u, g, b, w, x, v, k, y;
30
+ var h, c, d, p, f, m, u, g, b, x, w, v, k, _;
31
31
 
32
- const _ = i(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
32
+ const y = i(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
33
33
 
34
34
  const z = i(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
35
35
 
@@ -48,8 +48,8 @@ const T = class {
48
48
  // Select User Team References :
49
49
  c.set(this, []);
50
50
  d.set(this, void 0);
51
- f.set(this, 100);
52
- p.set(this, void 0);
51
+ p.set(this, 100);
52
+ f.set(this, void 0);
53
53
  m.set(this, void 0);
54
54
  u.set(this, (() => {
55
55
  if (this.authStep === "signIn") {
@@ -61,25 +61,25 @@ const T = class {
61
61
  g.set(this, (async () => {
62
62
  await this.continueCallback(r(this, d, "f").value);
63
63
  }));
64
- b.set(this, (() => s("header", {
64
+ b.set(this, (() => n("header", {
65
65
  class: "slide__main-header"
66
- }, s("img", {
66
+ }, n("img", {
67
67
  src: z,
68
68
  alt: ""
69
- }), s("h2", {
69
+ }), n("h2", {
70
70
  // Split the title into two spans for better styling
71
71
  class: "slide__main-title heading-2"
72
- }, s("span", null, r(this, h, "f")[this.authStepInternal].titlePart1), s("span", null, r(this, h, "f")[this.authStepInternal].titlePart2)))));
73
- w.set(this, (() => {
72
+ }, n("span", null, r(this, h, "f")[this.authStepInternal].titlePart1), n("span", null, r(this, h, "f")[this.authStepInternal].titlePart2)))));
73
+ x.set(this, (() => {
74
74
  const i = this.authStep === "signIn" && this.termsConfirmationRequired && !this.termsAndConditionsAccepted;
75
- return s("div", null, s("button", {
75
+ return n("div", null, n("button", {
76
76
  class: "button-primary main-btn",
77
77
  onClick: r(this, u, "f"),
78
78
  disabled: i
79
79
  }, r(this, h, "f")[this.authStepInternal].buttonCaption));
80
80
  }));
81
- x.set(this, (() => {
82
- const i = r(this, p, "f").value === M;
81
+ w.set(this, (() => {
82
+ const i = r(this, f, "f").value === M;
83
83
  const e = r(this, m, "f").value === M;
84
84
  this.termsAndConditionsAccepted = i && e;
85
85
  }));
@@ -91,75 +91,75 @@ const T = class {
91
91
  i.preventDefault();
92
92
  this.privacyCallback();
93
93
  }));
94
- y.set(this, (() => {
94
+ _.set(this, (() => {
95
95
  var i;
96
96
  if (this.authStepInternal === "signIn") {
97
- return [ r(this, b, "f").call(this), s("p", {
97
+ return [ r(this, b, "f").call(this), n("p", {
98
98
  class: "body-regular-l"
99
- }, r(this, h, "f").signIn.description), this.termsConfirmationRequired && s("div", {
99
+ }, r(this, h, "f").signIn.description), this.termsConfirmationRequired && n("div", {
100
100
  class: "field-group"
101
- }, s("div", {
101
+ }, n("div", {
102
102
  // terms and conditions
103
103
  class: "field field-inline"
104
- }, s("ch-checkbox", {
104
+ }, n("ch-checkbox", {
105
105
  checkedValue: M,
106
106
  id: "terms-and-conditions",
107
107
  class: "checkbox",
108
- ref: i => o(this, p, i, "f"),
109
- onInput: r(this, x, "f")
110
- }), s("span", null, s("label", {
108
+ ref: i => o(this, f, i, "f"),
109
+ onInput: r(this, w, "f")
110
+ }), n("span", null, n("label", {
111
111
  htmlFor: "terms-and-conditions",
112
112
  class: "label label-agreement"
113
- }, r(this, h, "f").agreement.termsAndConditionsLabel, s("span", {
113
+ }, r(this, h, "f").agreement.termsAndConditionsLabel, n("span", {
114
114
  class: {
115
115
  hyperlink: !!this.termsCallback
116
116
  },
117
117
  onClick: this.termsCallback && r(this, v, "f")
118
- }, r(this, h, "f").agreement.termsAndConditionsLink)))), s("div", {
118
+ }, r(this, h, "f").agreement.termsAndConditionsLink)))), n("div", {
119
119
  // privacy policy
120
120
  class: "field field-inline"
121
- }, s("ch-checkbox", {
121
+ }, n("ch-checkbox", {
122
122
  checkedValue: M,
123
123
  id: "privacy-policy",
124
124
  class: "checkbox",
125
125
  ref: i => o(this, m, i, "f"),
126
- onInput: r(this, x, "f")
127
- }), s("span", null, s("label", {
126
+ onInput: r(this, w, "f")
127
+ }), n("span", null, n("label", {
128
128
  htmlFor: "privacy-policy",
129
129
  class: "label label-agreement"
130
- }, r(this, h, "f").agreement.privacyAndPolicyLabel, s("span", {
130
+ }, r(this, h, "f").agreement.privacyAndPolicyLabel, n("span", {
131
131
  class: {
132
132
  hyperlink: !!this.privacyCallback
133
133
  },
134
134
  onClick: this.privacyCallback && r(this, k, "f")
135
- }, r(this, h, "f").agreement.privacyAndPolicyLink))))), r(this, w, "f").call(this) ];
135
+ }, r(this, h, "f").agreement.privacyAndPolicyLink))))), r(this, x, "f").call(this) ];
136
136
  } else if (this.authStepInternal === "fetchUserTeams" || this.authStepInternal === "settingUpSession") {
137
137
  const i = this.authStepInternal === "fetchUserTeams" ? r(this, h, "f").loader.fetchingTeamsTitle : r(this, h, "f").loader.settingUpSessionTitle;
138
138
  const e = this.authStepInternal === "fetchUserTeams" ? r(this, h, "f").loader.fetchingTeamsDescription : r(this, h, "f").loader.settingUpDescription;
139
- return s("gx-ide-loader", {
139
+ return n("gx-ide-loader", {
140
140
  show: true,
141
141
  loaderTitle: i,
142
142
  description: e
143
143
  });
144
144
  } else if (this.authStepInternal === "selectUserTeam") {
145
- return [ r(this, b, "f").call(this), s("div", {
145
+ return [ r(this, b, "f").call(this), n("div", {
146
146
  class: "slide__select-team-description"
147
- }, s("p", {
147
+ }, n("p", {
148
148
  class: "body-semi-bold-l"
149
- }, r(this, h, "f").selectUserTeam.infoMessage)), s("div", {
149
+ }, r(this, h, "f").selectUserTeam.infoMessage)), n("div", {
150
150
  class: "field-group"
151
- }, s("div", {
151
+ }, n("div", {
152
152
  class: "field field-block"
153
- }, s("label", {
153
+ }, n("label", {
154
154
  htmlFor: "teams"
155
- }, r(this, h, "f").selectUserTeam.label), s("ch-combo-box-render", {
155
+ }, r(this, h, "f").selectUserTeam.label), n("ch-combo-box-render", {
156
156
  id: "teams",
157
157
  accessibleName: "Teams",
158
158
  class: "combo-box teams-list",
159
159
  model: r(this, c, "f"),
160
160
  value: (i = r(this, c, "f")[0]) === null || i === void 0 ? void 0 : i.value,
161
161
  ref: i => o(this, d, i, "f")
162
- }))), r(this, w, "f").call(this) ];
162
+ }))), r(this, x, "f").call(this) ];
163
163
  }
164
164
  }));
165
165
  this.authStepInternal = undefined;
@@ -178,39 +178,39 @@ const T = class {
178
178
  // switch step
179
179
  setTimeout((() => {
180
180
  this.authStepInternal = i;
181
- }), r(this, f, "f"));
181
+ }), r(this, p, "f"));
182
182
  // show slide
183
183
  setTimeout((() => {
184
184
  this.slideIsVisible = true;
185
- }), r(this, f, "f") * 2);
185
+ }), r(this, p, "f") * 2);
186
186
  }
187
187
  teamsChanged(i) {
188
188
  o(this, c, mapTeamsToComboBoxItemModel(i), "f");
189
189
  }
190
190
  async componentWillLoad() {
191
191
  o(this, h, await a.getComponentStrings(this.el), "f");
192
- this.el.style.setProperty("--switch-step-transtion-time", r(this, f, "f").toString() + "ms");
192
+ this.el.style.setProperty("--switch-step-transtion-time", r(this, p, "f").toString() + "ms");
193
193
  // Initialize values
194
194
  this.authStepInternal = this.authStep;
195
195
  this.teamsChanged(this.teams);
196
196
  }
197
197
  render() {
198
- return s(n, null, s("ch-theme", {
198
+ return n(s, null, n("ch-theme", {
199
199
  model: W
200
- }), s("section", {
200
+ }), n("section", {
201
201
  class: "slide"
202
- }, s("img", {
203
- src: _,
202
+ }, n("img", {
203
+ src: y,
204
204
  class: "slide__illustration",
205
205
  alt: ""
206
- }), s("div", {
206
+ }), n("div", {
207
207
  class: {
208
208
  slide__main: true,
209
209
  "slide__main--visible": this.slideIsVisible
210
210
  }
211
- }, s("div", {
211
+ }, n("div", {
212
212
  class: "slide__main-container"
213
- }, r(this, y, "f").call(this)))));
213
+ }, r(this, _, "f").call(this)))));
214
214
  }
215
215
  static get assetsDirs() {
216
216
  return [ "gx-ide-assets/sign-in-team" ];
@@ -226,11 +226,11 @@ const T = class {
226
226
  }
227
227
  };
228
228
 
229
- h = new WeakMap, c = new WeakMap, d = new WeakMap, f = new WeakMap, p = new WeakMap,
230
- m = new WeakMap, u = new WeakMap, g = new WeakMap, b = new WeakMap, w = new WeakMap,
231
- x = new WeakMap, v = new WeakMap, k = new WeakMap, y = new WeakMap;
229
+ h = new WeakMap, c = new WeakMap, d = new WeakMap, p = new WeakMap, f = new WeakMap,
230
+ m = new WeakMap, u = new WeakMap, g = new WeakMap, b = new WeakMap, x = new WeakMap,
231
+ w = new WeakMap, v = new WeakMap, k = new WeakMap, _ = new WeakMap;
232
232
 
233
233
  T.style = l;
234
234
 
235
235
  export { T as gx_ide_sign_in_team };
236
- //# sourceMappingURL=p-c24ea55d.entry.js.map
236
+ //# sourceMappingURL=p-1d44dd0a.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mapTeamsToComboBoxItemModel","teams","map","team","value","id","caption","name","signInTeamCss","COPYRIGHTS_ILLUSTRATION","getAssetPath","ICON_NEXT","CSS_BUNDLES","CHECKED_VALUE","GxIdeSignInTeam","_GxIdeSignInTeam_componentLocale","set","this","_GxIdeSignInTeam_userTeamsModel","_GxIdeSignInTeam_chSelectTeamEl","_GxIdeSignInTeam_switchStepTransitionTime","_GxIdeSignInTeam_termsAndConditionsCheckboxEl","_GxIdeSignInTeam_privacyPolicyCheckboxEl","_GxIdeSignInTeam_authStepCallback","authStep","signInCallback","__classPrivateFieldGet","_GxIdeSignInTeam_continueHandler","call","async","continueCallback","_GxIdeSignInTeam_renderStepHeader","h","class","src","alt","authStepInternal","titlePart1","titlePart2","_GxIdeSignInTeam_renderStepFooter","signInDisabled","termsConfirmationRequired","termsAndConditionsAccepted","onClick","disabled","buttonCaption","_GxIdeSignInTeam_evaluateTermsConditionsAndPrivacyAccepted","privacyPolicyAccepted","_GxIdeSignInTeam_termsAndConditionsClickedHandler","event","preventDefault","termsCallback","_GxIdeSignInTeam_privacyPolicyClickedHandler","privacyCallback","_GxIdeSignInTeam_evaluateStepRender","signIn","description","checkedValue","ref","el","__classPrivateFieldSet","onInput","htmlFor","agreement","termsAndConditionsLabel","hyperlink","termsAndConditionsLink","privacyAndPolicyLabel","privacyAndPolicyLink","loaderTitle","loader","fetchingTeamsTitle","settingUpSessionTitle","loaderDescription","fetchingTeamsDescription","settingUpDescription","show","selectUserTeam","infoMessage","label","accessibleName","model","_a","authStepChanged","newAuthStep","slideIsVisible","setTimeout","teamsChanged","newTeams","componentWillLoad","Locale","getComponentStrings","style","setProperty","toString","render","Host","slide__main"],"sources":["src/components/sign-in-team/helpers.ts","src/components/sign-in-team/sign-in-team.scss?tag=gx-ide-sign-in-team&encapsulation=shadow","src/components/sign-in-team/sign-in-team.tsx"],"sourcesContent":["import { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { TeamData } from \"./sign-in-team\";\n\nexport const mapTeamsToComboBoxItemModel = (\n teams?: TeamData[]\n): ComboBoxItemModel[] | undefined => {\n if (!teams) {\n return [];\n }\n return teams.map(team => ({\n value: team.id,\n caption: team.name\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}\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(--color-accent-surface-elevation-1);\n border-radius: var(--dialog-border-radius, 16px);\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: 48px;\n transform: translateY(4px);\n transition: var(--switch-step-transtion-time) all;\n opacity: 0;\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(--spacing-gap-xxl);\n max-inline-size: 480px;\n }\n\n &__main-header {\n display: grid;\n gap: var(--spacing-gap-xxl);\n }\n\n &__main-title {\n display: flex;\n flex-direction: column;\n letter-spacing: 0.02em;\n }\n\n &__main-description {\n display: grid;\n gap: 40px;\n color: var(--color-text-neutral-disabled);\n max-inline-size: 370px;\n }\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n --ch-combo-box__popover-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\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}\n\n// WA (this class should be defined on Mercury\n.hyperlink {\n text-decoration: underline;\n cursor: pointer;\n}\n// WA checkboxes labels should not include margin-block-start when\n// placed inside a field-inline.\n.field-inline > .label-agreement {\n margin-block-start: 0 !important;\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 \"components/checkbox\",\n \"utils/form\"\n];\n\nconst CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-sign-in-team\",\n styleUrl: \"sign-in-team.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/sign-in-team\"]\n})\nexport class GxIdeSignInTeam {\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 #switchStepTransitionTime: number = 100;\n #termsAndConditionsCheckboxEl!: HTMLChCheckboxElement;\n #privacyPolicyCheckboxEl!: HTMLChCheckboxElement;\n\n @Element() el: HTMLGxIdeSignInTeamElement;\n\n /**\n * This is a handover from \"authStep\" that allows updating descriptions once\n * the slide is hidden. This enables a smooth transition between descriptions.\n */\n\n @State() authStepInternal: AuthStep;\n\n /**\n * Defines if the main slide is visible or not. Used for smooth transitions\n * between slides.\n */\n @State() slideIsVisible: boolean = true;\n\n /**\n * True if terms and conditions are accepted.\n */\n @State() termsAndConditionsAccepted: boolean = false;\n\n /**\n * The authentication step to display\n */\n @Prop() readonly authStep: AuthStep = \"signIn\";\n @Watch(\"authStep\")\n authStepChanged(newAuthStep: AuthStep) {\n this.slideIsVisible = false;\n // switch step\n setTimeout(() => {\n this.authStepInternal = newAuthStep;\n }, this.#switchStepTransitionTime);\n // show slide\n setTimeout(() => {\n this.slideIsVisible = true;\n }, this.#switchStepTransitionTime * 2);\n }\n\n /**\n * Callback executed when the user clicks the 'Continue' button\n */\n @Prop() readonly continueCallback!: (teamId: string) => Promise<void>;\n\n /**\n * Callback executed when the user click the \"Sign In\" button\n */\n @Prop() readonly signInCallback!: () => Promise<void>;\n\n /**\n * When true, it will diplay checkboxes for the user to confirm terms and conditions\n */\n @Prop() readonly termsConfirmationRequired: boolean = false;\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.#userTeamsModel = mapTeamsToComboBoxItemModel(newTeams);\n }\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.el.style.setProperty(\n \"--switch-step-transtion-time\",\n this.#switchStepTransitionTime.toString() + \"ms\"\n );\n // Initialize values\n this.authStepInternal = this.authStep;\n this.teamsChanged(this.teams);\n }\n\n #authStepCallback = () => {\n if (this.authStep === \"signIn\") {\n this.signInCallback();\n } else if (this.authStep === \"selectUserTeam\") {\n this.#continueHandler();\n }\n };\n\n #continueHandler = async () => {\n await this.continueCallback(this.#chSelectTeamEl.value);\n };\n\n #renderStepHeader = (): HTMLElement => {\n return (\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 heading-2\"\n >\n <span>{this.#componentLocale[this.authStepInternal].titlePart1}</span>\n <span>{this.#componentLocale[this.authStepInternal].titlePart2}</span>\n </h2>\n </header>\n );\n };\n\n #renderStepFooter = (): HTMLElement => {\n const signInDisabled =\n this.authStep === \"signIn\" &&\n this.termsConfirmationRequired &&\n !this.termsAndConditionsAccepted;\n return (\n <div>\n <button\n class=\"button-primary main-btn\"\n onClick={this.#authStepCallback}\n disabled={signInDisabled}\n >\n {this.#componentLocale[this.authStepInternal].buttonCaption}\n </button>\n </div>\n );\n };\n\n #evaluateTermsConditionsAndPrivacyAccepted = () => {\n const termsAndConditionsAccepted =\n this.#termsAndConditionsCheckboxEl.value === CHECKED_VALUE;\n const privacyPolicyAccepted =\n this.#privacyPolicyCheckboxEl.value === CHECKED_VALUE;\n this.termsAndConditionsAccepted =\n termsAndConditionsAccepted && privacyPolicyAccepted;\n };\n\n #termsAndConditionsClickedHandler = (event: MouseEvent) => {\n event.preventDefault();\n this.termsCallback();\n };\n\n #privacyPolicyClickedHandler = (event: MouseEvent) => {\n event.preventDefault();\n this.privacyCallback();\n };\n\n #evaluateStepRender = () => {\n if (this.authStepInternal === \"signIn\") {\n return [\n this.#renderStepHeader(),\n <p class=\"body-regular-l\">\n {this.#componentLocale.signIn.description}\n </p>,\n this.termsConfirmationRequired && (\n <div class=\"field-group\">\n <div\n // terms and conditions\n class=\"field field-inline\"\n >\n <ch-checkbox\n checkedValue={CHECKED_VALUE}\n id=\"terms-and-conditions\"\n class=\"checkbox\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#termsAndConditionsCheckboxEl =\n el as HTMLChCheckboxElement)\n }\n onInput={this.#evaluateTermsConditionsAndPrivacyAccepted}\n ></ch-checkbox>\n <span>\n {/*\n WA: this span prevents field-inline applying padding-block-start on the label\n TODO: See how to ignore padding-block-start when using field-inline with a control\n that is not an input, combo-box, etc..\n */}\n <label\n htmlFor=\"terms-and-conditions\"\n class=\"label label-agreement\"\n >\n {this.#componentLocale.agreement.termsAndConditionsLabel}\n <span\n class={{ hyperlink: !!this.termsCallback }}\n onClick={\n this.termsCallback &&\n this.#termsAndConditionsClickedHandler\n }\n >\n {this.#componentLocale.agreement.termsAndConditionsLink}\n </span>\n </label>\n </span>\n </div>\n <div\n // privacy policy\n class=\"field field-inline\"\n >\n <ch-checkbox\n checkedValue={CHECKED_VALUE}\n id=\"privacy-policy\"\n class=\"checkbox\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#privacyPolicyCheckboxEl = el as HTMLChCheckboxElement)\n }\n onInput={this.#evaluateTermsConditionsAndPrivacyAccepted}\n ></ch-checkbox>\n <span>\n {/*\n WA: this span prevents field-inline applying padding-block-start on the label\n TODO: See how to ignore padding-block-start when using field-inline with a control\n that is not an input, combo-box, etc..\n */}\n <label htmlFor=\"privacy-policy\" class=\"label label-agreement\">\n {this.#componentLocale.agreement.privacyAndPolicyLabel}\n <span\n class={{ hyperlink: !!this.privacyCallback }}\n onClick={\n this.privacyCallback && this.#privacyPolicyClickedHandler\n }\n >\n {this.#componentLocale.agreement.privacyAndPolicyLink}\n </span>\n </label>\n </span>\n </div>\n </div>\n ),\n\n this.#renderStepFooter()\n ];\n } else if (\n this.authStepInternal === \"fetchUserTeams\" ||\n this.authStepInternal === \"settingUpSession\"\n ) {\n const loaderTitle =\n this.authStepInternal === \"fetchUserTeams\"\n ? this.#componentLocale.loader.fetchingTeamsTitle\n : this.#componentLocale.loader.settingUpSessionTitle;\n const loaderDescription =\n this.authStepInternal === \"fetchUserTeams\"\n ? this.#componentLocale.loader.fetchingTeamsDescription\n : this.#componentLocale.loader.settingUpDescription;\n return (\n <gx-ide-loader\n show\n loaderTitle={loaderTitle}\n description={loaderDescription}\n ></gx-ide-loader>\n );\n } else if (this.authStepInternal === \"selectUserTeam\") {\n return [\n this.#renderStepHeader(),\n <div class=\"slide__select-team-description\">\n <p class=\"body-semi-bold-l\">\n {this.#componentLocale.selectUserTeam.infoMessage}\n </p>\n </div>,\n <div class=\"field-group\">\n <div class=\"field field-block\">\n <label htmlFor=\"teams\">\n {this.#componentLocale.selectUserTeam.label}\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={this.#userTeamsModel[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#chSelectTeamEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n </div>,\n this.#renderStepFooter()\n ];\n }\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.#evaluateStepRender()}\n </div>\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type AuthStep =\n | \"signIn\"\n | \"fetchUserTeams\"\n | \"selectUserTeam\"\n | \"settingUpSession\";\n\nexport type TeamData = {\n id: string;\n name: string;\n};\n"],"mappings":"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"}