@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.
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +79 -0
- package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +123 -0
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-sign-in.cjs.entry.js +16 -73
- package/dist/cjs/gx-ide-sign-in.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +3 -1
- package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/images/copyrights-illustration.png +0 -0
- package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/images/icon-next.svg +4 -0
- package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.en.json +10 -0
- package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.ja.json +10 -0
- package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.zh.json +10 -0
- package/dist/collection/components/select-user-team/helpers.js +9 -0
- package/dist/collection/components/select-user-team/helpers.js.map +1 -0
- package/dist/collection/components/select-user-team/select-user-team.css +62 -0
- package/dist/collection/components/select-user-team/select-user-team.js +118 -0
- package/dist/collection/components/select-user-team/select-user-team.js.map +1 -0
- package/dist/collection/components/sign-in/gx-ide-assets/sign-in/langs/sign-in.lang.en.json +7 -15
- package/dist/collection/components/sign-in/gx-ide-assets/sign-in/langs/sign-in.lang.ja.json +7 -15
- package/dist/collection/components/sign-in/gx-ide-assets/sign-in/langs/sign-in.lang.zh.json +7 -15
- package/dist/collection/components/sign-in/sign-in.css +14 -46
- package/dist/collection/components/sign-in/sign-in.js +19 -141
- package/dist/collection/components/sign-in/sign-in.js.map +1 -1
- package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/images/copyrights-illustration.png +0 -0
- package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/images/icon-next.svg +4 -0
- package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.en.json +18 -0
- package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.ja.json +18 -0
- package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.zh.json +18 -0
- package/dist/collection/components/sign-in-team/helpers.js.map +1 -0
- package/dist/collection/components/sign-in-team/sign-in-team.css +92 -0
- package/dist/collection/components/sign-in-team/sign-in-team.js +234 -0
- package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -0
- package/dist/collection/testing/locale.e2e.js +2 -0
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/gx-ide-select-user-team.d.ts +11 -0
- package/dist/components/gx-ide-select-user-team.js +96 -0
- package/dist/components/gx-ide-select-user-team.js.map +1 -0
- package/dist/components/gx-ide-sign-in-team.d.ts +11 -0
- package/dist/components/gx-ide-sign-in-team.js +147 -0
- package/dist/components/gx-ide-sign-in-team.js.map +1 -0
- package/dist/components/gx-ide-sign-in.js +17 -81
- package/dist/components/gx-ide-sign-in.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-select-user-team.entry.js +75 -0
- package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -0
- package/dist/esm/gx-ide-sign-in-team.entry.js +119 -0
- package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -0
- package/dist/esm/gx-ide-sign-in.entry.js +16 -73
- package/dist/esm/gx-ide-sign-in.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/images/copyrights-illustration.png +0 -0
- package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/images/icon-next.svg +4 -0
- package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.en.json +10 -0
- package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.ja.json +10 -0
- package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.zh.json +10 -0
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in/langs/sign-in.lang.en.json +7 -15
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in/langs/sign-in.lang.ja.json +7 -15
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in/langs/sign-in.lang.zh.json +7 -15
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/images/copyrights-illustration.png +0 -0
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/images/icon-next.svg +4 -0
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.en.json +18 -0
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.ja.json +18 -0
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.zh.json +18 -0
- package/dist/genexus-ide-ui/p-90c8cb0d.entry.js +92 -0
- package/dist/genexus-ide-ui/p-90c8cb0d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-b189e45d.entry.js +113 -0
- package/dist/genexus-ide-ui/p-b189e45d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-63f198f5.entry.js → p-fe063c9e.entry.js} +69 -65
- package/dist/genexus-ide-ui/p-fe063c9e.entry.js.map +1 -0
- package/dist/types/components/select-user-team/helpers.d.ts +3 -0
- package/dist/types/components/select-user-team/select-user-team.d.ts +18 -0
- package/dist/types/components/sign-in/sign-in.d.ts +3 -29
- package/dist/types/components/{sign-in → sign-in-team}/helpers.d.ts +1 -1
- package/dist/types/components/sign-in-team/sign-in-team.d.ts +42 -0
- package/dist/types/components.d.ts +64 -4
- package/package.json +3 -3
- package/dist/collection/components/sign-in/helpers.js.map +0 -1
- package/dist/genexus-ide-ui/p-63f198f5.entry.js.map +0 -1
- /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
|
|
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 =
|
|
6
|
-
if (!
|
|
5
|
+
const mapTeamsToComboBoxItemModel = e => {
|
|
6
|
+
if (!e) {
|
|
7
7
|
return [];
|
|
8
8
|
}
|
|
9
|
-
return
|
|
10
|
-
value:
|
|
11
|
-
caption:
|
|
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,
|
|
18
|
-
if (
|
|
19
|
-
if (typeof
|
|
20
|
-
return
|
|
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,
|
|
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
|
|
27
|
-
return t === "a" ? s.call(
|
|
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
|
|
30
|
+
var c, d, h, m, p, f;
|
|
31
31
|
|
|
32
|
-
const
|
|
32
|
+
const g = e(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
|
|
33
33
|
|
|
34
|
-
const
|
|
34
|
+
const u = e(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
|
|
35
35
|
|
|
36
|
-
const
|
|
36
|
+
const _ = [ "resets/box-sizing", "utils/typography", "components/button", "components/combo-box" ];
|
|
37
37
|
|
|
38
|
-
const
|
|
39
|
-
constructor(
|
|
40
|
-
|
|
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
|
-
|
|
45
|
+
c.set(this, void 0);
|
|
46
46
|
// Select User Team References :
|
|
47
|
-
|
|
47
|
+
d.set(this, []);
|
|
48
48
|
h.set(this, void 0);
|
|
49
49
|
m.set(this, 100);
|
|
50
|
-
p.set(this,
|
|
51
|
-
|
|
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,
|
|
55
|
+
o(this, f, "f").call(this);
|
|
56
56
|
}
|
|
57
57
|
}));
|
|
58
|
-
|
|
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 =
|
|
62
|
+
this.authStepInternal = undefined;
|
|
62
63
|
this.slideIsVisible = true;
|
|
63
|
-
this.authStep =
|
|
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(
|
|
70
|
+
authStepChanged(e) {
|
|
71
|
+
console.log("authStep changed");
|
|
70
72
|
this.slideIsVisible = false;
|
|
71
73
|
// switch step
|
|
72
74
|
setTimeout((() => {
|
|
73
|
-
this.authStepInternal =
|
|
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,
|
|
82
|
-
|
|
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
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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
|
-
},
|
|
92
|
-
src:
|
|
95
|
+
}, i("img", {
|
|
96
|
+
src: g,
|
|
93
97
|
class: "slide__illustration",
|
|
94
98
|
alt: ""
|
|
95
|
-
}),
|
|
99
|
+
}), i("div", {
|
|
96
100
|
class: {
|
|
97
101
|
slide__main: true,
|
|
98
102
|
"slide__main--visible": this.slideIsVisible
|
|
99
103
|
}
|
|
100
|
-
},
|
|
104
|
+
}, i("div", {
|
|
101
105
|
class: "slide__main-container"
|
|
102
|
-
},
|
|
106
|
+
}, i("header", {
|
|
103
107
|
class: "slide__main-header"
|
|
104
|
-
},
|
|
105
|
-
src:
|
|
108
|
+
}, i("img", {
|
|
109
|
+
src: u,
|
|
106
110
|
alt: ""
|
|
107
|
-
}),
|
|
111
|
+
}), i("h2", {
|
|
108
112
|
// Split the title into two spans for better styling
|
|
109
113
|
class: "slide__main-title"
|
|
110
|
-
},
|
|
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
|
-
},
|
|
116
|
+
}, i("p", {
|
|
113
117
|
hidden: true
|
|
114
|
-
},
|
|
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,
|
|
121
|
+
}, o(this, c, "f").signIn.byContinuingCallBackText))) : [ i("div", {
|
|
118
122
|
class: "slide__select-team-description"
|
|
119
|
-
},
|
|
123
|
+
}, i("p", {
|
|
120
124
|
class: "text-body-highlighted-l"
|
|
121
|
-
}, o(this,
|
|
125
|
+
}, o(this, c, "f").selectUserTeam.infoMessage)), i("div", {
|
|
122
126
|
class: "field-group"
|
|
123
|
-
},
|
|
127
|
+
}, i("div", {
|
|
124
128
|
class: "field field-block"
|
|
125
|
-
},
|
|
129
|
+
}, i("label", {
|
|
126
130
|
htmlFor: "teams"
|
|
127
|
-
}, o(this,
|
|
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,
|
|
132
|
-
value: (
|
|
133
|
-
ref:
|
|
134
|
-
}))) ],
|
|
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,
|
|
137
|
-
}, o(this,
|
|
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
|
-
|
|
153
|
-
f = 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
|
-
|
|
159
|
+
v.style = r;
|
|
156
160
|
|
|
157
|
-
export {
|
|
158
|
-
//# sourceMappingURL=p-
|
|
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,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
|
-
*
|
|
5
|
+
* Callback executed when the user click on the "term and conditions" link
|
|
6
6
|
*/
|
|
7
|
-
|
|
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
|
|
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
|
+
};
|