@genexus/genexus-ide-ui 1.0.31 → 1.0.32

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 (83) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +79 -0
  3. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +1 -0
  4. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +123 -0
  5. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -0
  6. package/dist/cjs/gx-ide-sign-in.cjs.entry.js +16 -73
  7. package/dist/cjs/gx-ide-sign-in.cjs.entry.js.map +1 -1
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/collection/collection-manifest.json +3 -1
  10. package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/images/copyrights-illustration.png +0 -0
  11. package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/images/icon-next.svg +4 -0
  12. package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.en.json +10 -0
  13. package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.ja.json +10 -0
  14. package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.zh.json +10 -0
  15. package/dist/collection/components/select-user-team/helpers.js +9 -0
  16. package/dist/collection/components/select-user-team/helpers.js.map +1 -0
  17. package/dist/collection/components/select-user-team/select-user-team.css +62 -0
  18. package/dist/collection/components/select-user-team/select-user-team.js +118 -0
  19. package/dist/collection/components/select-user-team/select-user-team.js.map +1 -0
  20. package/dist/collection/components/sign-in/gx-ide-assets/sign-in/langs/sign-in.lang.en.json +7 -15
  21. package/dist/collection/components/sign-in/gx-ide-assets/sign-in/langs/sign-in.lang.ja.json +7 -15
  22. package/dist/collection/components/sign-in/gx-ide-assets/sign-in/langs/sign-in.lang.zh.json +7 -15
  23. package/dist/collection/components/sign-in/sign-in.css +14 -46
  24. package/dist/collection/components/sign-in/sign-in.js +19 -141
  25. package/dist/collection/components/sign-in/sign-in.js.map +1 -1
  26. package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/images/copyrights-illustration.png +0 -0
  27. package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/images/icon-next.svg +4 -0
  28. package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.en.json +18 -0
  29. package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.ja.json +18 -0
  30. package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.zh.json +18 -0
  31. package/dist/collection/components/sign-in-team/helpers.js.map +1 -0
  32. package/dist/collection/components/sign-in-team/sign-in-team.css +92 -0
  33. package/dist/collection/components/sign-in-team/sign-in-team.js +234 -0
  34. package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -0
  35. package/dist/collection/testing/locale.e2e.js +2 -0
  36. package/dist/collection/testing/locale.e2e.js.map +1 -1
  37. package/dist/components/gx-ide-select-user-team.d.ts +11 -0
  38. package/dist/components/gx-ide-select-user-team.js +96 -0
  39. package/dist/components/gx-ide-select-user-team.js.map +1 -0
  40. package/dist/components/gx-ide-sign-in-team.d.ts +11 -0
  41. package/dist/components/gx-ide-sign-in-team.js +147 -0
  42. package/dist/components/gx-ide-sign-in-team.js.map +1 -0
  43. package/dist/components/gx-ide-sign-in.js +17 -81
  44. package/dist/components/gx-ide-sign-in.js.map +1 -1
  45. package/dist/esm/genexus-ide-ui.js +1 -1
  46. package/dist/esm/gx-ide-select-user-team.entry.js +75 -0
  47. package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -0
  48. package/dist/esm/gx-ide-sign-in-team.entry.js +119 -0
  49. package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -0
  50. package/dist/esm/gx-ide-sign-in.entry.js +16 -73
  51. package/dist/esm/gx-ide-sign-in.entry.js.map +1 -1
  52. package/dist/esm/loader.js +1 -1
  53. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  54. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  55. package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/images/copyrights-illustration.png +0 -0
  56. package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/images/icon-next.svg +4 -0
  57. package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.en.json +10 -0
  58. package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.ja.json +10 -0
  59. package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.zh.json +10 -0
  60. package/dist/genexus-ide-ui/gx-ide-assets/sign-in/langs/sign-in.lang.en.json +7 -15
  61. package/dist/genexus-ide-ui/gx-ide-assets/sign-in/langs/sign-in.lang.ja.json +7 -15
  62. package/dist/genexus-ide-ui/gx-ide-assets/sign-in/langs/sign-in.lang.zh.json +7 -15
  63. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/images/copyrights-illustration.png +0 -0
  64. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/images/icon-next.svg +4 -0
  65. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.en.json +18 -0
  66. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.ja.json +18 -0
  67. package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.zh.json +18 -0
  68. package/dist/genexus-ide-ui/p-90c8cb0d.entry.js +92 -0
  69. package/dist/genexus-ide-ui/p-90c8cb0d.entry.js.map +1 -0
  70. package/dist/genexus-ide-ui/p-b189e45d.entry.js +113 -0
  71. package/dist/genexus-ide-ui/p-b189e45d.entry.js.map +1 -0
  72. package/dist/genexus-ide-ui/{p-63f198f5.entry.js → p-fe063c9e.entry.js} +69 -65
  73. package/dist/genexus-ide-ui/p-fe063c9e.entry.js.map +1 -0
  74. package/dist/types/components/select-user-team/helpers.d.ts +3 -0
  75. package/dist/types/components/select-user-team/select-user-team.d.ts +18 -0
  76. package/dist/types/components/sign-in/sign-in.d.ts +3 -29
  77. package/dist/types/components/{sign-in → sign-in-team}/helpers.d.ts +1 -1
  78. package/dist/types/components/sign-in-team/sign-in-team.d.ts +42 -0
  79. package/dist/types/components.d.ts +64 -4
  80. package/package.json +3 -3
  81. package/dist/collection/components/sign-in/helpers.js.map +0 -1
  82. package/dist/genexus-ide-ui/p-63f198f5.entry.js.map +0 -1
  83. /package/dist/collection/components/{sign-in → sign-in-team}/helpers.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["signInCss","COPYRIGHTS_ILLUSTRATION","getAssetPath","ICON_NEXT","CSS_BUNDLES","GxIdeUiSplash","_GxIdeUiSplash_componentLocale","set","this","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","render","h","Host","model","class","role","__classPrivateFieldGet","illustrationAriaLabel","src","alt","illustrationFigureAriaLabel","illustrationAlternativeText","title","hidden","descriptionText","byContinuingTextFirstPart","onClick","termsCallback","byContinuingCallBackText","signInCallback","signInButtonCaption"],"sources":["src/components/sign-in/sign-in.scss?tag=gx-ide-sign-in&encapsulation=shadow","src/components/sign-in/sign-in.tsx"],"sourcesContent":[":host {\n display: grid;\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 max-inline-size: 1100px;\n grid-template-columns: 1fr 550px;\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 max-block-size: 700px;\n }\n\n &__sign-in {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n }\n\n &__sign-in-container {\n display: grid;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n place-self: center;\n }\n\n &__sign-in-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n }\n\n &__sign-in-title {\n font-size: var(--mer-font__size--xl);\n color: var(--mer-text__on-surface);\n letter-spacing: 0.02em;\n font-weight: var(--mer-font__weight--semi-bold);\n }\n\n &__sign-in-description {\n display: grid;\n color: var(--mer-text__complementary);\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 }\n}\n\n.terms-conditions {\n text-decoration: underline;\n}\n.sign-in-btn {\n padding-inline-start: var(--mer-spacing--3xl) !important;\n padding-inline-end: var(--mer-spacing--3xl) !important;\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, getAssetPath } from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\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];\n\n@Component({\n tag: \"gx-ide-sign-in\",\n styleUrl: \"sign-in.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/sign-in\"]\n})\nexport class GxIdeUiSplash {\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\n @Element() el: HTMLGxIdeSignInElement;\n\n /**\n * Callback executed when the user click on the \"term and conditions\" link\n */\n @Prop() readonly termsCallback: () => Promise<void>;\n\n /**\n * Callback executed when the user click the Sign In button\n */\n @Prop() readonly signInCallback: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"slide\">\n <div\n class=\"slide__illustration\"\n role=\"img\"\n aria-label={this.#componentLocale.illustrationAriaLabel}\n >\n <img\n // base image (acts like a background)\n src={COPYRIGHTS_ILLUSTRATION}\n class=\"slide__illustration\"\n alt={this.#componentLocale.illustrationFigureAriaLabel}\n />\n </div>\n\n <div class=\"slide__sign-in\">\n <div class=\"slide__sign-in-container\">\n <header class=\"slide__sign-in-header\">\n <img\n src={ICON_NEXT}\n alt={this.#componentLocale.illustrationAlternativeText}\n />\n <h2 class=\"slide__sign-in-title\">\n {this.#componentLocale.title}\n </h2>\n </header>\n <div class=\"slide__sign-in-description\">\n <p hidden>\n <span>{this.#componentLocale.descriptionText}</span>\n </p>\n <span>\n {this.#componentLocale.byContinuingTextFirstPart}\n <a class=\"terms-conditions\" onClick={this.termsCallback}>\n {this.#componentLocale.byContinuingCallBackText}\n </a>\n </span>\n </div>\n <div>\n <button\n class=\"button-primary sign-in-btn\"\n onClick={this.signInCallback}\n >\n {this.#componentLocale.signInButtonCaption}\n </button>\n </div>\n </div>\n </div>\n </section>\n </Host>\n );\n }\n}\n"],"mappings":";;;;AAAA,MAAMA,IAAY;;;;;;;;;;;;;;;;;ACOlB,MAAMC,IAA0BC,EAC9B;;AAEF,MAAMC,IAAYD,EAChB;;AAEF,MAAME,IAA8B,EAClC,qBACA,oBACA;;MASWC,IAAa;;;;;;;QAKxBC,EAAAC,IAAAC,WAAA;;;;EAcA,uBAAMC;IACJC,EAAAF,MAAIF,SAA0BK,EAAOC,oBAAoBJ,KAAKK,KAAG;;EAGnE,MAAAC;IACE,OACEC,EAACC,GAAI,MACHD,EAAA;MAAUE,OAAOb;QACjBW,EAAA;MAASG,OAAM;OACbH,EAAA;MACEG,OAAM;MACNC,MAAK;MAAK,cACEC,EAAAZ,MAAIF,GAAA,KAAkBe;OAElCN,EAAA;;MAEEO,KAAKrB;MACLiB,OAAM;MACNK,KAAKH,EAAAZ,MAAIF,GAAA,KAAkBkB;SAI/BT,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAQG,OAAM;OACZH,EAAA;MACEO,KAAKnB;MACLoB,KAAKH,EAAAZ,MAAIF,GAAA,KAAkBmB;QAE7BV,EAAA;MAAIG,OAAM;OACPE,EAAAZ,MAAIF,GAAA,KAAkBoB,SAG3BX,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAGY,QAAM;OACPZ,EAAA,cAAOK,EAAAZ,MAAIF,GAAA,KAAkBsB,mBAE/Bb,EAAA,cACGK,EAAAZ,MAAIF,GAAA,KAAkBuB,2BACvBd,EAAA;MAAGG,OAAM;MAAmBY,SAAStB,KAAKuB;OACvCX,EAAAZ,MAAIF,GAAA,KAAkB0B,6BAI7BjB,EAAA,aACEA,EAAA;MACEG,OAAM;MACNY,SAAStB,KAAKyB;OAEbb,EAAAZ,MAAIF,GAAA,KAAkB4B"}
@@ -0,0 +1,113 @@
1
+ import { a as e, r as i, h as t, H as s, g as a } from "./p-49712340.js";
2
+
3
+ import { L as r } from "./p-311eedf3.js";
4
+
5
+ const mapTeamsToComboBoxItemModel = e => e.map((e => ({
6
+ value: e.id,
7
+ caption: e.name
8
+ })));
9
+
10
+ const n = ":host{display:grid;block-size:100%;inline-size:100%;align-items:center;justify-content:center;padding:var(--mer-spacing--xl)}.slide{display:grid;max-inline-size:1100px;grid-template-columns:1fr 550px;background-color:var(--mer-surface__elevation--01);border-radius:var(--mer-spacing--md);overflow:hidden;transition:var(--slide-fade-duration) opacity}.slide__illustration{overflow:hidden;max-block-size:700px}.slide__select-team{display:grid;block-size:100%;inline-size:100%;padding:var(--mer-spacing--3xl)}.slide__select-team-container{display:grid;gap:var(--mer-spacing--lg);max-inline-size:480px;place-self:center}.slide__select-team-header{display:grid;gap:var(--mer-spacing--lg)}.slide__select-team-title{font-size:var(--mer-font__size--xl);color:var(--mer-text__on-surface);letter-spacing:0.02em;font-weight:var(--mer-font__weight--semi-bold)}.slide__select-team-description{display:grid;color:var(--mer-text__complementary);gap:var(--mer-spacing--md);font-size:var(--mer-font__size--sm);font-weight:var(--mer-font__weight--light);line-height:var(--mer-line-height--spaced)}.info-message{font-weight:bold;color:var(--mer-text__on-surface)}.continue-button{padding-inline-start:var(--mer-spacing--3xl) !important;padding-inline-end:var(--mer-spacing--3xl) !important}";
11
+
12
+ var o = undefined && undefined.__classPrivateFieldGet || function(e, i, t, s) {
13
+ if (t === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
14
+ 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");
15
+ return t === "m" ? s : t === "a" ? s.call(e) : s ? s.value : i.get(e);
16
+ };
17
+
18
+ var l = undefined && undefined.__classPrivateFieldSet || function(e, i, t, s, a) {
19
+ if (s === "m") throw new TypeError("Private method is not writable");
20
+ if (s === "a" && !a) throw new TypeError("Private accessor was defined without a setter");
21
+ if (typeof i === "function" ? e !== i || !a : !i.has(e)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
22
+ return s === "a" ? a.call(e, t) : a ? a.value = t : i.set(e, t), t;
23
+ };
24
+
25
+ var c, d, m, p;
26
+
27
+ const f = e(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
28
+
29
+ const g = e(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
30
+
31
+ const h = [ "resets/box-sizing", "utils/typography", "components/combo-box", "components/button", "utils/form" ];
32
+
33
+ const u = class {
34
+ constructor(e) {
35
+ i(this, e);
36
+ /**
37
+ * The component hard-coded strings translations.
38
+ */
39
+ // eslint-disable-next-line @stencil-community/own-props-must-be-private
40
+ c.set(this, void 0);
41
+ d.set(this, []);
42
+ m.set(this, void 0);
43
+ p.set(this, (async () => {
44
+ await this.continueCallback(o(this, m, "f").value);
45
+ }));
46
+ this.teams = undefined;
47
+ this.continueCallback = undefined;
48
+ }
49
+ async componentWillLoad() {
50
+ l(this, c, await r.getComponentStrings(this.el), "f");
51
+ l(this, d, mapTeamsToComboBoxItemModel(this.teams), "f");
52
+ }
53
+ render() {
54
+ return t(s, null, t("ch-theme", {
55
+ model: h
56
+ }), t("section", {
57
+ class: "slide"
58
+ }, t("div", {
59
+ class: "slide__illustration",
60
+ role: "img",
61
+ "aria-label": o(this, c, "f").illustrationAriaLabel
62
+ }, t("img", {
63
+ // base image (acts like a background)
64
+ src: f,
65
+ class: "slide__illustration",
66
+ alt: o(this, c, "f").illustrationFigureAriaLabel
67
+ })), t("section", {
68
+ class: "slide__select-team"
69
+ }, t("div", {
70
+ class: "slide__select-team-container"
71
+ }, t("header", {
72
+ class: "slide__select-team-header"
73
+ }, t("img", {
74
+ src: g,
75
+ alt: o(this, c, "f").illustrationAlternativeText
76
+ }), t("h2", {
77
+ class: "slide__select-team-title"
78
+ }, o(this, c, "f").title)), t("div", {
79
+ class: "slide__select-team-description"
80
+ }, t("p", null, t("span", {
81
+ class: "info-message"
82
+ }, o(this, c, "f").infoMessage))), t("div", {
83
+ class: "field-group"
84
+ }, t("div", {
85
+ class: "field field-block"
86
+ }, t("label", {
87
+ htmlFor: "teams"
88
+ }, o(this, c, "f").teams), t("ch-combo-box-render", {
89
+ id: "teams",
90
+ accessibleName: "Teams",
91
+ class: "combo-box",
92
+ model: o(this, d, "f"),
93
+ value: o(this, d, "f")[0].value,
94
+ ref: e => l(this, m, e, "f")
95
+ }))), t("div", null, t("button", {
96
+ class: "button-primary continue-button",
97
+ onClick: o(this, p, "f")
98
+ }, o(this, c, "f").continueButtonCaption))))));
99
+ }
100
+ static get assetsDirs() {
101
+ return [ "gx-ide-assets/select-user-team" ];
102
+ }
103
+ get el() {
104
+ return a(this);
105
+ }
106
+ };
107
+
108
+ c = new WeakMap, d = new WeakMap, m = new WeakMap, p = new WeakMap;
109
+
110
+ u.style = n;
111
+
112
+ export { u as gx_ide_select_user_team };
113
+ //# sourceMappingURL=p-b189e45d.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","GxIdeUiSplash","_GxIdeUiSplash_componentLocale","set","this","_GxIdeUiSplash_userTeamsModel","_GxIdeUiSplash_chSelectTeamEl","_GxIdeUiSplash_continueHandle","async","continueCallback","__classPrivateFieldGet","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","render","h","Host","model","class","role","illustrationAriaLabel","src","alt","illustrationFigureAriaLabel","illustrationAlternativeText","title","infoMessage","htmlFor","accessibleName","ref","onClick","continueButtonCaption"],"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 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 max-inline-size: 1100px;\n grid-template-columns: 1fr 550px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n transition: var(--slide-fade-duration) opacity;\n\n &__illustration {\n overflow: hidden;\n max-block-size: 700px;\n }\n\n &__select-team {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n }\n\n &__select-team-container {\n display: grid;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n place-self: center;\n }\n\n &__select-team-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n }\n\n &__select-team-title {\n font-size: var(--mer-font__size--xl);\n color: var(--mer-text__on-surface);\n letter-spacing: 0.02em;\n font-weight: var(--mer-font__weight--semi-bold);\n }\n\n &__select-team-description {\n display: grid;\n color: var(--mer-text__complementary);\n gap: var(--mer-spacing--md);\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 }\n}\n\n.info-message {\n font-weight: bold;\n color: var(--mer-text__on-surface);\n}\n.continue-button {\n padding-inline-start: var(--mer-spacing--3xl) !important;\n padding-inline-end: var(--mer-spacing--3xl) !important;\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, getAssetPath } from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\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);\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/combo-box\",\n \"components/button\",\n \"utils/form\"\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 GxIdeUiSplash {\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 #userTeamsModel: ComboBoxItemModel[] = [];\n #chSelectTeamEl: HTMLChComboBoxRenderElement;\n\n /**\n * Array that contain the user's teams\n */\n @Prop() readonly teams!: TeamData[];\n\n /**\n * Callback executed when the user click the 'continue' button\n */\n @Prop() readonly continueCallback!: (teamId: string) => Promise<void>;\n\n @Element() el: HTMLGxIdeSelectUserTeamElement;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#userTeamsModel = mapTeamsToComboBoxItemModel(this.teams);\n }\n\n #continueHandle = async () => {\n await this.continueCallback(this.#chSelectTeamEl.value);\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"slide\">\n <div\n class=\"slide__illustration\"\n role=\"img\"\n aria-label={this.#componentLocale.illustrationAriaLabel}\n >\n <img\n // base image (acts like a background)\n src={COPYRIGHTS_ILLUSTRATION}\n class=\"slide__illustration\"\n alt={this.#componentLocale.illustrationFigureAriaLabel}\n />\n </div>\n\n <section class=\"slide__select-team\">\n <div class=\"slide__select-team-container\">\n <header class=\"slide__select-team-header\">\n <img\n src={ICON_NEXT}\n alt={this.#componentLocale.illustrationAlternativeText}\n />\n <h2 class=\"slide__select-team-title\">\n {this.#componentLocale.title}\n </h2>\n </header>\n\n <div class=\"slide__select-team-description\">\n <p>\n <span class=\"info-message\">\n {this.#componentLocale.infoMessage}\n </span>\n </p>\n </div>\n\n <div class=\"field-group\">\n <div class=\"field field-block\">\n <label htmlFor=\"teams\">{this.#componentLocale.teams}</label>\n <ch-combo-box-render\n id=\"teams\"\n accessibleName=\"Teams\"\n class=\"combo-box\"\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\n <div>\n <button\n class=\"button-primary continue-button\"\n onClick={this.#continueHandle}\n >\n {this.#componentLocale.continueButtonCaption}\n </button>\n </div>\n </div>\n </section>\n </section>\n </Host>\n );\n }\n}\n\nexport type TeamData = {\n id: string;\n name: string;\n};\n"],"mappings":";;;;AAGO,MAAMA,8BACXC,KAEOA,EAAMC,KAAIC,MACR;EACLC,OAAOD,EAAKE;EACZC,SAASH,EAAKI;;;ACTpB,MAAMC,IAAoB;;;;;;;;;;;;;;;;;ACS1B,MAAMC,IAA0BC,EAC9B;;AAEF,MAAMC,IAAYD,EAChB;;AAGF,MAAME,IAA8B,EAClC,qBACA,oBACA,wBACA,qBACA;;MASWC,IAAa;;;;;;;QAKxBC,EAAAC,IAAAC,WAAA;IACAC,EAAAF,IAAAC,MAAuC;IACvCE,EAAAH,IAAAC,WAAA;IAmBAG,EAAAJ,IAAAC,OAAkBI;YACVJ,KAAKK,iBAAiBC,EAAAN,MAAIE,GAAA,KAAiBd;AAAM;;;;EANzD,uBAAMmB;IACJC,EAAAR,MAAIF,SAA0BW,EAAOC,oBAAoBV,KAAKW,KAAG;IACjEH,EAAAR,MAAIC,GAAmBjB,4BAA4BgB,KAAKf,QAAM;;EAOhE,MAAA2B;IACE,OACEC,EAACC,GAAI,MACHD,EAAA;MAAUE,OAAOnB;QACjBiB,EAAA;MAASG,OAAM;OACbH,EAAA;MACEG,OAAM;MACNC,MAAK;MAAK,cACEX,EAAAN,MAAIF,GAAA,KAAkBoB;OAElCL,EAAA;;MAEEM,KAAK1B;MACLuB,OAAM;MACNI,KAAKd,EAAAN,MAAIF,GAAA,KAAkBuB;SAI/BR,EAAA;MAASG,OAAM;OACbH,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAQG,OAAM;OACZH,EAAA;MACEM,KAAKxB;MACLyB,KAAKd,EAAAN,MAAIF,GAAA,KAAkBwB;QAE7BT,EAAA;MAAIG,OAAM;OACPV,EAAAN,MAAIF,GAAA,KAAkByB,SAI3BV,EAAA;MAAKG,OAAM;OACTH,EAAA,WACEA,EAAA;MAAMG,OAAM;OACTV,EAAAN,MAAIF,GAAA,KAAkB0B,gBAK7BX,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAOY,SAAQ;OAASnB,EAAAN,MAAIF,GAAA,KAAkBb,QAC9C4B,EAAA;MACExB,IAAG;MACHqC,gBAAe;MACfV,OAAM;MACND,OAAOT,EAAAN,MAAIC,GAAA;MACXb,OAAOkB,EAAAN,MAAIC,GAAA,KAAiB,GAAGb;MAC/BuC,KAAMhB,KACHH,EAAAR,MAAIE,GAAmBS,GAAiC;UAMjEE,EAAA,aACEA,EAAA;MACEG,OAAM;MACNY,SAAStB,EAAAN,MAAIG,GAAA;OAEZG,EAAAN,MAAIF,GAAA,KAAkB+B"}
@@ -1,76 +1,78 @@
1
- import { a as n, r as i, h as e, H as t, g as s } from "./p-49712340.js";
1
+ 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 = n => {
6
- if (!n) {
5
+ const mapTeamsToComboBoxItemModel = e => {
6
+ if (!e) {
7
7
  return [];
8
8
  }
9
- return n.map((n => ({
10
- value: n.id,
11
- caption: n.name
9
+ return e.map((e => ({
10
+ value: e.id,
11
+ caption: e.name
12
12
  })));
13
13
  };
14
14
 
15
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}\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.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}";
16
16
 
17
- var o = undefined && undefined.__classPrivateFieldGet || function(n, i, e, t) {
18
- if (e === "a" && !t) throw new TypeError("Private accessor was defined without a getter");
19
- if (typeof i === "function" ? n !== i || !t : !i.has(n)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
- return e === "m" ? t : e === "a" ? t.call(n) : t ? t.value : i.get(n);
17
+ var o = undefined && undefined.__classPrivateFieldGet || function(e, n, i, t) {
18
+ if (i === "a" && !t) throw new TypeError("Private accessor was defined without a getter");
19
+ if (typeof n === "function" ? e !== n || !t : !n.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
20
+ return i === "m" ? t : i === "a" ? t.call(e) : t ? t.value : n.get(e);
21
21
  };
22
22
 
23
- var l = undefined && undefined.__classPrivateFieldSet || function(n, i, e, t, s) {
23
+ var l = undefined && undefined.__classPrivateFieldSet || function(e, n, i, t, s) {
24
24
  if (t === "m") throw new TypeError("Private method is not writable");
25
25
  if (t === "a" && !s) throw new TypeError("Private accessor was defined without a setter");
26
- if (typeof i === "function" ? n !== i || !s : !i.has(n)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
27
- return t === "a" ? s.call(n, e) : s ? s.value = e : i.set(n, e), e;
26
+ if (typeof n === "function" ? e !== n || !s : !n.has(e)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
27
+ return t === "a" ? s.call(e, i) : s ? s.value = i : n.set(e, i), i;
28
28
  };
29
29
 
30
- var d, c, h, m, p, f, g;
30
+ var c, d, h, m, p, f;
31
31
 
32
- const u = n(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
32
+ const g = e(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
33
33
 
34
- const _ = n(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
34
+ const u = e(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
35
35
 
36
- const v = [ "resets/box-sizing", "utils/typography", "components/button", "components/combo-box" ];
36
+ const _ = [ "resets/box-sizing", "utils/typography", "components/button", "components/combo-box" ];
37
37
 
38
- const w = class {
39
- constructor(n) {
40
- i(this, n);
38
+ const v = class {
39
+ constructor(e) {
40
+ n(this, e);
41
41
  /**
42
42
  * The component hard-coded strings translations.
43
43
  */
44
44
  // eslint-disable-next-line @stencil-community/own-props-must-be-private
45
- d.set(this, void 0);
45
+ c.set(this, void 0);
46
46
  // Select User Team References :
47
- c.set(this, []);
47
+ d.set(this, []);
48
48
  h.set(this, void 0);
49
49
  m.set(this, 100);
50
- p.set(this, "signIn");
51
- f.set(this, (() => {
50
+ p.set(this, (() => {
51
+ console.log("authStepCallback called");
52
52
  if (this.authStep === "signIn") {
53
53
  this.signInCallback();
54
54
  } else if (this.authStep === "selectUserTeam") {
55
- o(this, g, "f").call(this);
55
+ o(this, f, "f").call(this);
56
56
  }
57
57
  }));
58
- g.set(this, (async () => {
58
+ f.set(this, (async () => {
59
+ console.log("continueHandler called");
59
60
  await this.continueCallback(o(this, h, "f").value);
60
61
  }));
61
- this.authStepInternal = o(this, p, "f");
62
+ this.authStepInternal = undefined;
62
63
  this.slideIsVisible = true;
63
- this.authStep = o(this, p, "f");
64
+ this.authStep = "signIn";
64
65
  this.continueCallback = undefined;
65
66
  this.signInCallback = undefined;
66
67
  this.teams = undefined;
67
68
  this.termsCallback = undefined;
68
69
  }
69
- authStepChanged(n) {
70
+ authStepChanged(e) {
71
+ console.log("authStep changed");
70
72
  this.slideIsVisible = false;
71
73
  // switch step
72
74
  setTimeout((() => {
73
- this.authStepInternal = n;
75
+ this.authStepInternal = e;
74
76
  }), o(this, m, "f"));
75
77
  // show slide
76
78
  setTimeout((() => {
@@ -78,66 +80,68 @@ const w = class {
78
80
  }), o(this, m, "f") * 2);
79
81
  }
80
82
  async componentWillLoad() {
81
- l(this, d, await a.getComponentStrings(this.el), "f");
82
- l(this, c, mapTeamsToComboBoxItemModel(this.teams), "f");
83
+ l(this, c, await a.getComponentStrings(this.el), "f");
84
+ this.authStepInternal = this.authStep;
85
+ l(this, d, mapTeamsToComboBoxItemModel(this.teams), "f");
83
86
  this.el.style.setProperty("--switch-step-transtion-time", o(this, m, "f").toString() + "ms");
84
87
  }
85
88
  render() {
86
- var n;
87
- return e(t, null, e("ch-theme", {
88
- model: v
89
- }), e("section", {
89
+ var e;
90
+ console.log("userTeams comboBox model", o(this, d, "f"));
91
+ return i(t, null, i("ch-theme", {
92
+ model: _
93
+ }), i("section", {
90
94
  class: "slide"
91
- }, e("img", {
92
- src: u,
95
+ }, i("img", {
96
+ src: g,
93
97
  class: "slide__illustration",
94
98
  alt: ""
95
- }), e("div", {
99
+ }), i("div", {
96
100
  class: {
97
101
  slide__main: true,
98
102
  "slide__main--visible": this.slideIsVisible
99
103
  }
100
- }, e("div", {
104
+ }, i("div", {
101
105
  class: "slide__main-container"
102
- }, e("header", {
106
+ }, i("header", {
103
107
  class: "slide__main-header"
104
- }, e("img", {
105
- src: _,
108
+ }, i("img", {
109
+ src: u,
106
110
  alt: ""
107
- }), e("h2", {
111
+ }), i("h2", {
108
112
  // Split the title into two spans for better styling
109
113
  class: "slide__main-title"
110
- }, e("span", null, o(this, d, "f")[this.authStepInternal].titlePart1), e("span", null, o(this, d, "f")[this.authStepInternal].titlePart2))), this.authStepInternal === "signIn" ? e("div", {
114
+ }, i("span", null, o(this, c, "f")[this.authStepInternal].titlePart1), i("span", null, o(this, c, "f")[this.authStepInternal].titlePart2))), this.authStepInternal === "signIn" ? i("div", {
111
115
  class: "slide__main-description"
112
- }, e("p", {
116
+ }, i("p", {
113
117
  hidden: true
114
- }, e("span", null, o(this, d, "f").descriptionText)), e("span", null, o(this, d, "f").signIn.byContinuingText, e("a", {
118
+ }, i("span", null, o(this, c, "f").descriptionText)), i("span", null, o(this, c, "f").signIn.byContinuingText, i("a", {
115
119
  class: "terms-conditions",
116
120
  onClick: this.termsCallback
117
- }, o(this, d, "f").signIn.byContinuingCallBackText))) : [ e("div", {
121
+ }, o(this, c, "f").signIn.byContinuingCallBackText))) : [ i("div", {
118
122
  class: "slide__select-team-description"
119
- }, e("p", {
123
+ }, i("p", {
120
124
  class: "text-body-highlighted-l"
121
- }, o(this, d, "f").selectUserTeam.infoMessage)), e("div", {
125
+ }, o(this, c, "f").selectUserTeam.infoMessage)), i("div", {
122
126
  class: "field-group"
123
- }, e("div", {
127
+ }, i("div", {
124
128
  class: "field field-block"
125
- }, e("label", {
129
+ }, i("label", {
126
130
  htmlFor: "teams"
127
- }, o(this, d, "f").teams), e("ch-combo-box-render", {
131
+ }, o(this, c, "f").teams), i("ch-combo-box-render", {
128
132
  id: "teams",
129
133
  accessibleName: "Teams",
130
134
  class: "combo-box teams-list",
131
- model: o(this, c, "f"),
132
- value: (n = o(this, c, "f")[0]) === null || n === void 0 ? void 0 : n.value,
133
- ref: n => l(this, h, n, "f")
134
- }))) ], e("div", null, e("button", {
135
+ model: o(this, d, "f"),
136
+ value: (e = o(this, d, "f")[0]) === null || e === void 0 ? void 0 : e.value,
137
+ ref: e => l(this, h, e, "f")
138
+ }))) ], i("div", null, i("button", {
135
139
  class: "button-primary main-btn",
136
- onClick: o(this, f, "f")
137
- }, o(this, d, "f")[this.authStepInternal].buttonCaption))))));
140
+ onClick: o(this, p, "f")
141
+ }, o(this, c, "f")[this.authStepInternal].buttonCaption))))));
138
142
  }
139
143
  static get assetsDirs() {
140
- return [ "gx-ide-assets/sign-in" ];
144
+ return [ "gx-ide-assets/sign-in-team" ];
141
145
  }
142
146
  get el() {
143
147
  return s(this);
@@ -149,10 +153,10 @@ const w = class {
149
153
  }
150
154
  };
151
155
 
152
- d = new WeakMap, c = new WeakMap, h = new WeakMap, m = new WeakMap, p = new WeakMap,
153
- f = new WeakMap, g = new WeakMap;
156
+ c = new WeakMap, d = new WeakMap, h = new WeakMap, m = new WeakMap, p = new WeakMap,
157
+ f = new WeakMap;
154
158
 
155
- w.style = r;
159
+ v.style = r;
156
160
 
157
- export { w as gx_ide_sign_in };
158
- //# sourceMappingURL=p-63f198f5.entry.js.map
161
+ export { v as gx_ide_sign_in_team };
162
+ //# sourceMappingURL=p-fe063c9e.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","GxIdeUiSplash","_GxIdeUiSplash_componentLocale","set","this","_GxIdeUiSplash_userTeamsModel","_GxIdeUiSplash_chSelectTeamEl","_GxIdeUiSplash_switchStepTransitionTime","_GxIdeUiSplash_authStepCallback","console","log","authStep","signInCallback","__classPrivateFieldGet","_GxIdeUiSplash_continueHandler","call","async","continueCallback","authStepChanged","newAuthStep","slideIsVisible","setTimeout","authStepInternal","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","style","setProperty","toString","render","h","Host","model","class","src","alt","slide__main","titlePart1","titlePart2","hidden","descriptionText","signIn","byContinuingText","onClick","termsCallback","byContinuingCallBackText","selectUserTeam","infoMessage","htmlFor","accessibleName","_a","ref","buttonCaption"],"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 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(--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(--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.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","// 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-sign-in-team\",\n styleUrl: \"sign-in-team.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/sign-in-team\"]\n})\nexport class GxIdeUiSplash {\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\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 * The authentication step to display\n */\n @Prop() readonly authStep: AuthStep = \"signIn\";\n @Watch(\"authStep\")\n authStepChanged(newAuthStep: AuthStep) {\n console.log(\"authStep changed\");\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 * Array that contains the user's teams\n */\n @Prop() readonly teams!: TeamData[];\n\n /**\n * Callback executed when the user clicks on the \"term and conditions\" link\n */\n @Prop() readonly termsCallback: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.authStepInternal = this.authStep;\n this.#userTeamsModel = mapTeamsToComboBoxItemModel(this.teams);\n this.el.style.setProperty(\n \"--switch-step-transtion-time\",\n this.#switchStepTransitionTime.toString() + \"ms\"\n );\n }\n\n #authStepCallback = () => {\n console.log(\"authStepCallback called\");\n if (this.authStep === \"signIn\") {\n this.signInCallback();\n } else if (this.authStep === \"selectUserTeam\") {\n this.#continueHandler();\n }\n };\n\n #continueHandler = async () => {\n console.log(\"continueHandler called\");\n await this.continueCallback(this.#chSelectTeamEl.value);\n };\n\n render() {\n console.log(\"userTeams comboBox model\", this.#userTeamsModel);\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 <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>\n {this.#componentLocale[this.authStepInternal].titlePart1}\n </span>\n <span>\n {this.#componentLocale[this.authStepInternal].titlePart2}\n </span>\n </h2>\n </header>\n\n {this.authStepInternal === \"signIn\" ? (\n <div class=\"slide__main-description\">\n <p hidden>\n <span>{this.#componentLocale.descriptionText}</span>\n </p>\n <span>\n {this.#componentLocale.signIn.byContinuingText}\n <a class=\"terms-conditions\" onClick={this.termsCallback}>\n {this.#componentLocale.signIn.byContinuingCallBackText}\n </a>\n </span>\n </div>\n ) : (\n [\n <div class=\"slide__select-team-description\">\n <p class=\"text-body-highlighted-l\">\n {this.#componentLocale.selectUserTeam.infoMessage}\n </p>\n </div>,\n\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={this.#userTeamsModel[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#chSelectTeamEl =\n el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n </div>\n ]\n )}\n\n <div>\n <button\n class=\"button-primary main-btn\"\n onClick={this.#authStepCallback}\n >\n {this.#componentLocale[this.authStepInternal].buttonCaption}\n </button>\n </div>\n </div>\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type AuthStep = \"signIn\" | \"selectUserTeam\";\n\nexport type TeamData = {\n id: string;\n name: string;\n};\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ComboBoxItemModel } from "@genexus/chameleon-controls-library/dist/types/components/combo-box/types";
2
+ import { TeamData } from "./select-user-team";
3
+ export declare const mapTeamsToComboBoxItemModel: (teams: TeamData[]) => ComboBoxItemModel[];
@@ -0,0 +1,18 @@
1
+ export declare class GxIdeUiSplash {
2
+ #private;
3
+ /**
4
+ * Array that contain the user's teams
5
+ */
6
+ readonly teams: TeamData[];
7
+ /**
8
+ * Callback executed when the user click the 'continue' button
9
+ */
10
+ readonly continueCallback: (teamId: string) => Promise<void>;
11
+ el: HTMLGxIdeSelectUserTeamElement;
12
+ componentWillLoad(): Promise<void>;
13
+ render(): any;
14
+ }
15
+ export type TeamData = {
16
+ id: string;
17
+ name: string;
18
+ };
@@ -2,39 +2,13 @@ export declare class GxIdeUiSplash {
2
2
  #private;
3
3
  el: HTMLGxIdeSignInElement;
4
4
  /**
5
- * This is a hand over from "authStep", that allows updating descriptions once the slide is hidden. This allows a smooth transition between descriptions.
5
+ * Callback executed when the user click on the "term and conditions" link
6
6
  */
7
- authStepInternal: AuthStep;
8
- /**
9
- * Defines iv the main slide is visible or not. Used to do a smooth transition between slides.
10
- */
11
- slideIsVisible: boolean;
12
- /**
13
- * The authentication step to display
14
- */
15
- readonly authStep: AuthStep;
16
- authStepChanged(newAuthStep: AuthStep): void;
17
- /**
18
- * Callback executed when the user clicks the 'Continue' button
19
- */
20
- readonly continueCallback: (teamId: string) => Promise<void>;
7
+ readonly termsCallback: () => Promise<void>;
21
8
  /**
22
- * Callback executed when the user click the "Sign In" button
9
+ * Callback executed when the user click the Sign In button
23
10
  */
24
11
  readonly signInCallback: () => Promise<void>;
25
- /**
26
- * Array that contains the user's teams
27
- */
28
- readonly teams: TeamData[];
29
- /**
30
- * Callback executed when the user clicks on the "term and conditions" link
31
- */
32
- readonly termsCallback: () => Promise<void>;
33
12
  componentWillLoad(): Promise<void>;
34
13
  render(): any;
35
14
  }
36
- export type AuthStep = "signIn" | "selectUserTeam";
37
- export type TeamData = {
38
- id: string;
39
- name: string;
40
- };
@@ -1,3 +1,3 @@
1
1
  import { ComboBoxItemModel } from "@genexus/chameleon-controls-library/dist/types/components/combo-box/types";
2
- import { TeamData } from "./sign-in";
2
+ import { TeamData } from "./sign-in-team";
3
3
  export declare const mapTeamsToComboBoxItemModel: (teams?: TeamData[]) => ComboBoxItemModel[] | undefined;
@@ -0,0 +1,42 @@
1
+ export declare class GxIdeUiSplash {
2
+ #private;
3
+ el: HTMLGxIdeSignInTeamElement;
4
+ /**
5
+ * This is a handover from "authStep" that allows updating descriptions once
6
+ * the slide is hidden. This enables a smooth transition between descriptions.
7
+ */
8
+ authStepInternal: AuthStep;
9
+ /**
10
+ * Defines if the main slide is visible or not. Used for smooth transitions
11
+ * between slides.
12
+ */
13
+ slideIsVisible: boolean;
14
+ /**
15
+ * The authentication step to display
16
+ */
17
+ readonly authStep: AuthStep;
18
+ authStepChanged(newAuthStep: AuthStep): void;
19
+ /**
20
+ * Callback executed when the user clicks the 'Continue' button
21
+ */
22
+ readonly continueCallback: (teamId: string) => Promise<void>;
23
+ /**
24
+ * Callback executed when the user click the "Sign In" button
25
+ */
26
+ readonly signInCallback: () => Promise<void>;
27
+ /**
28
+ * Array that contains the user's teams
29
+ */
30
+ readonly teams: TeamData[];
31
+ /**
32
+ * Callback executed when the user clicks on the "term and conditions" link
33
+ */
34
+ readonly termsCallback: () => Promise<void>;
35
+ componentWillLoad(): Promise<void>;
36
+ render(): any;
37
+ }
38
+ export type AuthStep = "signIn" | "selectUserTeam";
39
+ export type TeamData = {
40
+ id: string;
41
+ name: string;
42
+ };