@genexus/genexus-ide-ui 1.0.44 → 1.0.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +10 -11
- package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +3 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-loader.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +38 -11
- package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +75 -13
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +244 -0
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/_helpers/entity-selector/entity-selector.js +4 -2
- package/dist/collection/components/_helpers/entity-selector/entity-selector.js.map +1 -1
- package/dist/collection/components/_helpers/ide-loader/ide-loader.css +1 -1
- package/dist/collection/components/current-user-info/current-user-info.css +6 -1
- package/dist/collection/components/current-user-info/current-user-info.js +32 -11
- package/dist/collection/components/current-user-info/current-user-info.js.map +1 -1
- package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.en.json +2 -1
- package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +2 -1
- package/dist/collection/components/current-user-info/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +2 -1
- package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.en.json +5 -1
- package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.ja.json +5 -1
- package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.zh.json +5 -1
- package/dist/collection/components/select-user-team/helpers.js +1 -1
- package/dist/collection/components/select-user-team/helpers.js.map +1 -1
- package/dist/collection/components/select-user-team/select-user-team.css +8 -0
- package/dist/collection/components/select-user-team/select-user-team.js +42 -9
- package/dist/collection/components/select-user-team/select-user-team.js.map +1 -1
- package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.en.json +15 -5
- package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.ja.json +13 -3
- package/dist/collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.zh.json +13 -3
- package/dist/collection/components/sign-in-team/sign-in-team.css +9 -4
- package/dist/collection/components/sign-in-team/sign-in-team.js +116 -15
- package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -1
- package/dist/collection/components/ww-attributes/gx-ide-assets/ww-attributes/langs/ww-attributes.lang.en.json +30 -0
- package/dist/collection/components/ww-attributes/gx-ide-assets/ww-attributes/langs/ww-attributes.lang.ja.json +30 -0
- package/dist/collection/components/ww-attributes/gx-ide-assets/ww-attributes/langs/ww-attributes.lang.zh.json +30 -0
- package/dist/collection/components/ww-attributes/helpers.js +11 -0
- package/dist/collection/components/ww-attributes/helpers.js.map +1 -0
- package/dist/collection/components/ww-attributes/ww-attributes.css +70 -0
- package/dist/collection/components/ww-attributes/ww-attributes.js +468 -0
- package/dist/collection/components/ww-attributes/ww-attributes.js.map +1 -0
- package/dist/collection/testing/locale.e2e.js +1 -0
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/entity-selector.js +3 -1
- package/dist/components/entity-selector.js.map +1 -1
- package/dist/components/gx-ide-current-user-info.js +12 -12
- package/dist/components/gx-ide-current-user-info.js.map +1 -1
- package/dist/components/gx-ide-select-user-team.js +48 -13
- package/dist/components/gx-ide-select-user-team.js.map +1 -1
- package/dist/components/gx-ide-sign-in-team.js +86 -15
- package/dist/components/gx-ide-sign-in-team.js.map +1 -1
- package/dist/components/gx-ide-ww-attributes.d.ts +11 -0
- package/dist/components/gx-ide-ww-attributes.js +294 -0
- package/dist/components/gx-ide-ww-attributes.js.map +1 -0
- package/dist/components/ide-loader.js +1 -1
- package/dist/components/ide-loader.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-current-user-info.entry.js +10 -11
- package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
- package/dist/esm/gx-ide-entity-selector.entry.js +3 -1
- package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-loader.entry.js +1 -1
- package/dist/esm/gx-ide-loader.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-user-team.entry.js +38 -11
- package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -1
- package/dist/esm/gx-ide-sign-in-team.entry.js +75 -13
- package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-attributes.entry.js +240 -0
- package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -0
- 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/current-user-info/langs/current-user-info.lang.en.json +2 -1
- package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.ja.json +2 -1
- package/dist/genexus-ide-ui/gx-ide-assets/current-user-info/langs/current-user-info.lang.zh.json +2 -1
- package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.en.json +5 -1
- package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.ja.json +5 -1
- package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.zh.json +5 -1
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.en.json +15 -5
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.ja.json +13 -3
- package/dist/genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.zh.json +13 -3
- package/dist/genexus-ide-ui/gx-ide-assets/ww-attributes/langs/ww-attributes.lang.en.json +30 -0
- package/dist/genexus-ide-ui/gx-ide-assets/ww-attributes/langs/ww-attributes.lang.ja.json +30 -0
- package/dist/genexus-ide-ui/gx-ide-assets/ww-attributes/langs/ww-attributes.lang.zh.json +30 -0
- package/dist/genexus-ide-ui/{p-04d7f44c.entry.js → p-1693a2d1.entry.js} +4 -2
- package/dist/genexus-ide-ui/p-1693a2d1.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-5619120d.entry.js +341 -0
- package/dist/genexus-ide-ui/p-5619120d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-b12a5426.entry.js → p-a27c088d.entry.js} +45 -41
- package/dist/genexus-ide-ui/p-a27c088d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-c9b0fd13.entry.js → p-ab653cc2.entry.js} +44 -18
- package/dist/genexus-ide-ui/p-ab653cc2.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-b04a0ae3.entry.js +236 -0
- package/dist/genexus-ide-ui/p-b04a0ae3.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-6db2056c.entry.js → p-efebc74b.entry.js} +7 -7
- package/dist/genexus-ide-ui/p-efebc74b.entry.js.map +1 -0
- package/dist/types/components/_helpers/entity-selector/entity-selector.d.ts +1 -1
- package/dist/types/components/current-user-info/current-user-info.d.ts +6 -2
- package/dist/types/components/select-user-team/select-user-team.d.ts +9 -0
- package/dist/types/components/sign-in-team/sign-in-team.d.ts +13 -1
- package/dist/types/components/ww-attributes/helpers.d.ts +3 -0
- package/dist/types/components/ww-attributes/ww-attributes.d.ts +95 -0
- package/dist/types/components.d.ts +128 -17
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-04d7f44c.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-0b33d2f9.entry.js +0 -163
- package/dist/genexus-ide-ui/p-0b33d2f9.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-6db2056c.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-b12a5426.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-c9b0fd13.entry.js.map +0 -1
|
@@ -2,12 +2,12 @@ import { a as e, r as n, h as i, H as t, g as s } from "./p-49712340.js";
|
|
|
2
2
|
|
|
3
3
|
import { L as a } from "./p-311eedf3.js";
|
|
4
4
|
|
|
5
|
-
const mapTeamsToComboBoxItemModel = e => e.map((e => ({
|
|
5
|
+
const mapTeamsToComboBoxItemModel = e => e === null || e === void 0 ? void 0 : e.map((e => ({
|
|
6
6
|
value: e.id,
|
|
7
7
|
caption: e.name
|
|
8
8
|
})));
|
|
9
9
|
|
|
10
|
-
const r = ":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--mer-spacing--xl);\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n}\n.slide__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n}\n.slide__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n}\n.slide__main-container {\n display: grid;\n place-self: center;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n}\n.slide__main-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n}\n.slide__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--mer-font__size--xl);\n font-weight: var(--mer-font__weight--semi-bold);\n letter-spacing: 0.02em;\n color: var(--mer-text__on-surface);\n}\n.slide__main-description {\n display: grid;\n gap: var(--mer-spacing--2xl);\n font-size: var(--mer-font__size--sm);\n font-weight: var(--mer-font__weight--light);\n line-height: var(--mer-line-height--spaced);\n color: var(--mer-text__complementary);\n}\n\n.terms-conditions {\n text-decoration: underline;\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n}\n\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--md);\n}\n\n.continue-btn,\n.cancel-btn {\n flex: 1;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}";
|
|
10
|
+
const r = ":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--mer-spacing--xl);\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n}\n.slide__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n}\n.slide__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n transform: translateY(var(--mer-spacing--2xs));\n transition: var(--display-teams-transtion-time) all;\n opacity: 0;\n position: relative;\n}\n.slide__main--visible {\n transform: translateY(0);\n opacity: 1;\n}\n.slide__main-container {\n display: grid;\n place-self: center;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n}\n.slide__main-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n}\n.slide__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--mer-font__size--xl);\n font-weight: var(--mer-font__weight--semi-bold);\n letter-spacing: 0.02em;\n color: var(--mer-text__on-surface);\n}\n.slide__main-description {\n display: grid;\n gap: var(--mer-spacing--2xl);\n font-size: var(--mer-font__size--sm);\n font-weight: var(--mer-font__weight--light);\n line-height: var(--mer-line-height--spaced);\n color: var(--mer-text__complementary);\n}\n\n.terms-conditions {\n text-decoration: underline;\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n}\n\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--md);\n}\n\n.continue-btn,\n.cancel-btn {\n flex: 1;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}";
|
|
11
11
|
|
|
12
12
|
var o = undefined && undefined.__classPrivateFieldGet || function(e, n, i, t) {
|
|
13
13
|
if (i === "a" && !t) throw new TypeError("Private accessor was defined without a getter");
|
|
@@ -22,13 +22,13 @@ var l = undefined && undefined.__classPrivateFieldSet || function(e, n, i, t, s)
|
|
|
22
22
|
return t === "a" ? s.call(e, i) : s ? s.value = i : n.set(e, i), i;
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
var c, d, m, h, p;
|
|
25
|
+
var c, d, m, h, f, p;
|
|
26
26
|
|
|
27
|
-
const
|
|
27
|
+
const g = e(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
|
|
28
28
|
|
|
29
|
-
const
|
|
29
|
+
const u = e(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
|
|
30
30
|
|
|
31
|
-
const
|
|
31
|
+
const v = [ "resets/box-sizing", "utils/typography", "components/button", "components/combo-box" ];
|
|
32
32
|
|
|
33
33
|
const _ = class {
|
|
34
34
|
constructor(e) {
|
|
@@ -41,43 +41,64 @@ const _ = class {
|
|
|
41
41
|
// Select User Team References :
|
|
42
42
|
d.set(this, []);
|
|
43
43
|
m.set(this, void 0);
|
|
44
|
-
h.set(this,
|
|
44
|
+
h.set(this, 100);
|
|
45
|
+
f.set(this, (async () => {
|
|
45
46
|
await this.continueCallback(o(this, m, "f").value);
|
|
46
47
|
}));
|
|
47
48
|
p.set(this, (async () => {
|
|
48
49
|
await this.cancelCallback();
|
|
49
50
|
}));
|
|
51
|
+
this.slideIsVisible = false;
|
|
52
|
+
this.teamsModelReady = false;
|
|
50
53
|
this.cancelCallback = undefined;
|
|
51
54
|
this.continueCallback = undefined;
|
|
52
55
|
this.teams = undefined;
|
|
53
56
|
}
|
|
54
57
|
teamsChanged(e) {
|
|
55
|
-
|
|
58
|
+
this.slideIsVisible = false;
|
|
59
|
+
// switch step
|
|
60
|
+
setTimeout((() => {
|
|
61
|
+
if (e.length) {
|
|
62
|
+
l(this, d, mapTeamsToComboBoxItemModel(e), "f");
|
|
63
|
+
this.teamsModelReady = true;
|
|
64
|
+
} else {
|
|
65
|
+
this.teamsModelReady = false;
|
|
66
|
+
}
|
|
67
|
+
}), o(this, h, "f"));
|
|
68
|
+
// show slide
|
|
69
|
+
setTimeout((() => {
|
|
70
|
+
this.slideIsVisible = true;
|
|
71
|
+
}), o(this, h, "f") * 2);
|
|
56
72
|
}
|
|
57
73
|
async componentWillLoad() {
|
|
58
74
|
l(this, c, await a.getComponentStrings(this.el), "f");
|
|
59
75
|
this.teamsChanged(this.teams);
|
|
76
|
+
this.el.style.setProperty("--display-teams-transtion-time", o(this, h, "f").toString() + "ms");
|
|
77
|
+
}
|
|
78
|
+
componentDidLoad() {
|
|
79
|
+
this.slideIsVisible = true;
|
|
60
80
|
}
|
|
61
81
|
render() {
|
|
62
82
|
var e;
|
|
63
83
|
return i(t, null, i("ch-theme", {
|
|
64
|
-
model:
|
|
84
|
+
model: v
|
|
65
85
|
}), i("section", {
|
|
66
86
|
class: "slide"
|
|
67
87
|
}, i("img", {
|
|
68
|
-
src:
|
|
88
|
+
src: g,
|
|
69
89
|
class: "slide__illustration",
|
|
70
90
|
alt: ""
|
|
71
91
|
}), i("div", {
|
|
72
92
|
class: {
|
|
73
|
-
slide__main: true
|
|
93
|
+
slide__main: true,
|
|
94
|
+
"slide__main--visible": this.slideIsVisible
|
|
74
95
|
}
|
|
75
96
|
}, i("div", {
|
|
76
97
|
class: "slide__main-container"
|
|
77
|
-
}, i("header", {
|
|
98
|
+
}, this.teamsModelReady ? [ i("header", {
|
|
78
99
|
class: "slide__main-header"
|
|
79
100
|
}, i("img", {
|
|
80
|
-
src:
|
|
101
|
+
src: u,
|
|
81
102
|
alt: ""
|
|
82
103
|
}), i("h2", {
|
|
83
104
|
// Split the title into two spans for better styling
|
|
@@ -97,17 +118,21 @@ const _ = class {
|
|
|
97
118
|
accessibleName: "Teams",
|
|
98
119
|
class: "combo-box teams-list",
|
|
99
120
|
model: o(this, d, "f"),
|
|
100
|
-
value: (e = o(this, d, "f")[0]) === null || e === void 0 ? void 0 : e.value,
|
|
121
|
+
value: o(this, d, "f") && ((e = o(this, d, "f")[0]) === null || e === void 0 ? void 0 : e.value),
|
|
101
122
|
ref: e => l(this, m, e, "f")
|
|
102
123
|
}))), i("div", {
|
|
103
124
|
class: "buttons-container"
|
|
104
125
|
}, i("button", {
|
|
105
126
|
class: "button-primary continue-btn",
|
|
106
|
-
onClick: o(this,
|
|
127
|
+
onClick: o(this, f, "f")
|
|
107
128
|
}, o(this, c, "f").continueButtonCaption), i("button", {
|
|
108
129
|
class: "button-secondary cancel-btn",
|
|
109
130
|
onClick: o(this, p, "f")
|
|
110
|
-
}, o(this, c, "f").cancelButtonCaption))
|
|
131
|
+
}, o(this, c, "f").cancelButtonCaption)) ] : i("gx-ide-loader", {
|
|
132
|
+
show: true,
|
|
133
|
+
loaderTitle: o(this, c, "f").loader.title,
|
|
134
|
+
description: o(this, c, "f").loader.description
|
|
135
|
+
})))));
|
|
111
136
|
}
|
|
112
137
|
static get assetsDirs() {
|
|
113
138
|
return [ "gx-ide-assets/select-user-team" ];
|
|
@@ -122,9 +147,10 @@ const _ = class {
|
|
|
122
147
|
}
|
|
123
148
|
};
|
|
124
149
|
|
|
125
|
-
c = new WeakMap, d = new WeakMap, m = new WeakMap, h = new WeakMap,
|
|
150
|
+
c = new WeakMap, d = new WeakMap, m = new WeakMap, h = new WeakMap, f = new WeakMap,
|
|
151
|
+
p = new WeakMap;
|
|
126
152
|
|
|
127
153
|
_.style = r;
|
|
128
154
|
|
|
129
155
|
export { _ as gx_ide_select_user_team };
|
|
130
|
-
//# sourceMappingURL=p-
|
|
156
|
+
//# sourceMappingURL=p-ab653cc2.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mapTeamsToComboBoxItemModel","teams","map","team","value","id","caption","name","selectUserTeamCss","COPYRIGHTS_ILLUSTRATION","getAssetPath","ICON_NEXT","CSS_BUNDLES","GxIdeSelectUserTeam","_GxIdeSelectUserTeam_componentLocale","set","this","_GxIdeSelectUserTeam_userTeamsModel","_GxIdeSelectUserTeam_chSelectTeamEl","_GxIdeSelectUserTeam_displayTeamsTransitionTime","_GxIdeSelectUserTeam_continueHandler","async","continueCallback","__classPrivateFieldGet","_GxIdeSelectUserTeam_cancelHandler","cancelCallback","teamsChanged","newTeams","slideIsVisible","setTimeout","length","__classPrivateFieldSet","teamsModelReady","componentWillLoad","Locale","getComponentStrings","el","style","setProperty","toString","componentDidLoad","render","h","Host","model","class","src","alt","slide__main","title","infoMessage","htmlFor","accessibleName","_a","ref","onClick","continueButtonCaption","cancelButtonCaption","show","loaderTitle","loader","description"],"sources":["src/components/select-user-team/helpers.tsx","src/components/select-user-team/select-user-team.scss?tag=gx-ide-select-user-team&encapsulation=shadow","src/components/select-user-team/select-user-team.tsx"],"sourcesContent":["import { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { TeamData } from \"./select-user-team\";\n\nexport const mapTeamsToComboBoxItemModel = (\n teams: TeamData[]\n): ComboBoxItemModel[] => {\n return teams?.map(team => {\n return {\n value: team.id,\n caption: team.name\n };\n });\n};\n",":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--mer-spacing--xl);\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n\n &__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n }\n\n &__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n transform: translateY(var(--mer-spacing--2xs));\n transition: var(--display-teams-transtion-time) all;\n opacity: 0;\n\n position: relative;\n\n &--visible {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n &__main-container {\n display: grid;\n place-self: center;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n }\n\n &__main-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n }\n\n &__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--mer-font__size--xl);\n font-weight: var(--mer-font__weight--semi-bold);\n letter-spacing: 0.02em;\n color: var(--mer-text__on-surface);\n }\n\n &__main-description {\n display: grid;\n gap: var(--mer-spacing--2xl);\n font-size: var(--mer-font__size--sm);\n font-weight: var(--mer-font__weight--light);\n line-height: var(--mer-line-height--spaced);\n color: var(--mer-text__complementary);\n }\n}\n\n.terms-conditions {\n text-decoration: underline;\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n}\n\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--md);\n}\n\n.continue-btn,\n.cancel-btn {\n flex: 1;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Watch,\n Element,\n getAssetPath\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport { mapTeamsToComboBoxItemModel } from \"./helpers\";\n\nconst COPYRIGHTS_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/welcome-page/images/copyrights-illustration.png`\n);\nconst ICON_NEXT = getAssetPath(\n `./gx-ide-assets/welcome-page/images/icon-next.svg`\n);\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/button\",\n \"components/combo-box\"\n];\n\n@Component({\n tag: \"gx-ide-select-user-team\",\n styleUrl: \"select-user-team.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-user-team\"]\n})\nexport class GxIdeSelectUserTeam {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n // Select User Team References :\n #userTeamsModel: ComboBoxItemModel[] = [];\n #chSelectTeamEl: HTMLChComboBoxRenderElement;\n #displayTeamsTransitionTime: number = 100;\n\n @Element() el: HTMLGxIdeSelectUserTeamElement;\n\n /**\n * Defines if the main slide is visible or not. Used for smooth transitions between slides.\n */\n @State() slideIsVisible: boolean = false;\n\n /**\n * Defines if the team model is redy to be rendered.\n */\n @State() teamsModelReady: boolean = false;\n\n /**\n * Callback executed when the user clicks the 'Cancel' button\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks the 'Continue' button\n */\n @Prop() readonly continueCallback!: (teamId: string) => Promise<void>;\n\n /**\n * Array that contains the user's teams\n */\n @Prop() readonly teams!: TeamData[];\n @Watch(\"teams\")\n teamsChanged(newTeams: TeamData[]) {\n this.slideIsVisible = false;\n // switch step\n setTimeout(() => {\n if (newTeams.length) {\n this.#userTeamsModel = mapTeamsToComboBoxItemModel(newTeams);\n this.teamsModelReady = true;\n } else {\n this.teamsModelReady = false;\n }\n }, this.#displayTeamsTransitionTime);\n // show slide\n setTimeout(() => {\n this.slideIsVisible = true;\n }, this.#displayTeamsTransitionTime * 2);\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.teamsChanged(this.teams);\n\n this.el.style.setProperty(\n \"--display-teams-transtion-time\",\n this.#displayTeamsTransitionTime.toString() + \"ms\"\n );\n }\n\n componentDidLoad() {\n this.slideIsVisible = true;\n }\n\n #continueHandler = async () => {\n await this.continueCallback(this.#chSelectTeamEl.value);\n };\n\n #cancelHandler = async () => {\n await this.cancelCallback();\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"slide\">\n <img\n src={COPYRIGHTS_ILLUSTRATION}\n class=\"slide__illustration\"\n alt=\"\" // decorative\n />\n\n <div\n class={{\n \"slide__main\": true,\n \"slide__main--visible\": this.slideIsVisible\n }}\n >\n <div class=\"slide__main-container\">\n {this.teamsModelReady ? (\n [\n <header class=\"slide__main-header\">\n <img\n src={ICON_NEXT}\n alt=\"\" // decorative\n />\n <h2\n // Split the title into two spans for better styling\n class=\"slide__main-title\"\n >\n <span>{this.#componentLocale.title}</span>\n </h2>\n </header>,\n <div class=\"slide__select-team-description\">\n <p class=\"text-body-highlighted-l\">\n {this.#componentLocale.infoMessage}\n </p>\n </div>,\n <div class=\"field-group\">\n <div class=\"field field-block\">\n <label htmlFor=\"teams\">\n {this.#componentLocale.teams}\n </label>\n <ch-combo-box-render\n id=\"teams\"\n accessibleName=\"Teams\"\n class=\"combo-box teams-list\"\n model={this.#userTeamsModel}\n value={\n this.#userTeamsModel && this.#userTeamsModel[0]?.value\n }\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#chSelectTeamEl =\n el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n </div>,\n <div class=\"buttons-container\">\n <button\n class=\"button-primary continue-btn\"\n onClick={this.#continueHandler}\n >\n {this.#componentLocale.continueButtonCaption}\n </button>\n <button\n class=\"button-secondary cancel-btn\"\n onClick={this.#cancelHandler}\n >\n {this.#componentLocale.cancelButtonCaption}\n </button>\n </div>\n ]\n ) : (\n <gx-ide-loader\n show\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n ></gx-ide-loader>\n )}\n </div>\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type TeamData = {\n id: string;\n name: string;\n};\n"],"mappings":";;;;AAGO,MAAMA,8BACXC,KAEOA,MAAK,QAALA,WAAK,aAALA,EAAOC,KAAIC,MACT;EACLC,OAAOD,EAAKE;EACZC,SAASH,EAAKI;;;ACTpB,MAAMC,IAAoB;;;;;;;;;;;;;;;;;ACkB1B,MAAMC,IAA0BC,EAC9B;;AAEF,MAAMC,IAAYD,EAChB;;AAEF,MAAME,IAA8B,EAClC,qBACA,oBACA,qBACA;;MASWC,IAAmB;;;;;;;QAK9BC,EAAAC,IAAAC,WAAA;;QAEAC,EAAAF,IAAAC,MAAuC;IACvCE,EAAAH,IAAAC,WAAA;IACAG,EAAAJ,IAAAC,MAAsC;IA4DtCI,EAAAL,IAAAC,OAAmBK;YACXL,KAAKM,iBAAiBC,EAAAP,MAAIE,GAAA,KAAiBd;AAAM;IAGzDoB,EAAAT,IAAAC,OAAiBK;YACTL,KAAKS;AAAgB;0BA1DM;2BAKC;;;;;EAiBpC,YAAAC,CAAaC;IACXX,KAAKY,iBAAiB;;QAEtBC,YAAW;MACT,IAAIF,EAASG,QAAQ;QACnBC,EAAAf,MAAIC,GAAmBjB,4BAA4B2B,IAAS;QAC5DX,KAAKgB,kBAAkB;aAClB;QACLhB,KAAKgB,kBAAkB;;QAExBT,EAAAP,MAAIG,GAAA;;QAEPU,YAAW;MACTb,KAAKY,iBAAiB;AAAI,QACzBL,EAAAP,MAAIG,GAAA,OAA+B;;EAGxC,uBAAMc;IACJF,EAAAf,MAAIF,SAA0BoB,EAAOC,oBAAoBnB,KAAKoB,KAAG;IACjEpB,KAAKU,aAAaV,KAAKf;IAEvBe,KAAKoB,GAAGC,MAAMC,YACZ,kCACAf,EAAAP,MAAIG,GAAA,KAA6BoB,aAAa;;EAIlD,gBAAAC;IACExB,KAAKY,iBAAiB;;EAWxB,MAAAa;;IACE,OACEC,EAACC,GAAI,MACHD,EAAA;MAAUE,OAAOhC;QACjB8B,EAAA;MAASG,OAAM;OACbH,EAAA;MACEI,KAAKrC;MACLoC,OAAM;MACNE,KAAI;QAGNL,EAAA;MACEG,OAAO;QACLG,aAAe;QACf,wBAAwBhC,KAAKY;;OAG/Bc,EAAA;MAAKG,OAAM;OACR7B,KAAKgB,kBAAe,EAEjBU,EAAA;MAAQG,OAAM;OACZH,EAAA;MACEI,KAAKnC;MACLoC,KAAI;QAENL,EAAA;;MAEEG,OAAM;OAENH,EAAA,cAAOnB,EAAAP,MAAIF,GAAA,KAAkBmC,UAGjCP,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAGG,OAAM;OACNtB,EAAAP,MAAIF,GAAA,KAAkBoC,eAG3BR,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAKG,OAAM;OACTH,EAAA;MAAOS,SAAQ;OACZ5B,EAAAP,MAAIF,GAAA,KAAkBb,QAEzByC,EAAA;MACErC,IAAG;MACH+C,gBAAe;MACfP,OAAM;MACND,OAAOrB,EAAAP,MAAIC,GAAA;MACXb,OACEmB,EAAAP,MAAIC,GAAA,UAAoBoC,IAAA9B,EAAAP,MAAIC,GAAA,KAAiB,QAAE,QAAAoC,WAAA,aAAAA,EAAEjD;MAEnDkD,KAAMlB,KACHL,EAAAf,MAAIE,GACHkB,GAAiC;UAK3CM,EAAA;MAAKG,OAAM;OACTH,EAAA;MACEG,OAAM;MACNU,SAAShC,EAAAP,MAAII,GAAA;OAEZG,EAAAP,MAAIF,GAAA,KAAkB0C,wBAEzBd,EAAA;MACEG,OAAM;MACNU,SAAShC,EAAAP,MAAIQ,GAAA;OAEZD,EAAAP,MAAIF,GAAA,KAAkB2C,0BAK7Bf,EAAA;MACEgB,MAAI;MACJC,aAAapC,EAAAP,MAAIF,GAAA,KAAkB8C,OAAOX;MAC1CY,aAAatC,EAAAP,MAAIF,GAAA,KAAkB8C,OAAOC"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { a as e, r as i, h as n, H as s, g as t } from "./p-49712340.js";
|
|
2
|
+
|
|
3
|
+
import { L as a } from "./p-311eedf3.js";
|
|
4
|
+
|
|
5
|
+
const mapTeamsToComboBoxItemModel = e => {
|
|
6
|
+
if (!e) {
|
|
7
|
+
return [];
|
|
8
|
+
}
|
|
9
|
+
return e.map((e => ({
|
|
10
|
+
value: e.id,
|
|
11
|
+
caption: e.name
|
|
12
|
+
})));
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const r = ":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n padding: var(--mer-spacing--xl);\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--md);\n overflow: hidden;\n}\n.slide__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n}\n.slide__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: var(--mer-spacing--3xl);\n transform: translateY(var(--mer-spacing--2xs));\n transition: var(--switch-step-transtion-time) all;\n opacity: 0;\n}\n.slide__main--visible {\n transform: translateY(0);\n opacity: 1;\n}\n.slide__main-container {\n display: grid;\n place-self: center;\n gap: var(--mer-spacing--lg);\n max-inline-size: 480px;\n}\n.slide__main-header {\n display: grid;\n gap: var(--mer-spacing--lg);\n}\n.slide__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--mer-font__size--xl);\n font-weight: var(--mer-font__weight--semi-bold);\n letter-spacing: 0.02em;\n color: var(--mer-text__on-surface);\n}\n.slide__main-description {\n display: grid;\n gap: var(--mer-spacing--2xl);\n font-size: var(--mer-font__size--sm);\n font-weight: var(--mer-font__weight--light);\n line-height: var(--mer-line-height--spaced);\n color: var(--mer-text__complementary);\n max-inline-size: 370px;\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n}\n\n.main-btn {\n inline-size: 100%;\n max-inline-size: 124px;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}\n.hyperlink {\n text-decoration: underline;\n cursor: pointer;\n}\n\n.field-inline > .label-agreement {\n margin-block-start: 0 !important;\n}";
|
|
16
|
+
|
|
17
|
+
var l = undefined && undefined.__classPrivateFieldGet || function(e, i, n, s) {
|
|
18
|
+
if (n === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
|
|
19
|
+
if (typeof i === "function" ? e !== i || !s : !i.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
20
|
+
return n === "m" ? s : n === "a" ? s.call(e) : s ? s.value : i.get(e);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
var o = undefined && undefined.__classPrivateFieldSet || function(e, i, n, s, t) {
|
|
24
|
+
if (s === "m") throw new TypeError("Private method is not writable");
|
|
25
|
+
if (s === "a" && !t) throw new TypeError("Private accessor was defined without a setter");
|
|
26
|
+
if (typeof i === "function" ? e !== i || !t : !i.has(e)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
27
|
+
return s === "a" ? t.call(e, n) : t ? t.value = n : i.set(e, n), n;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
var h, c, d, f, m, p, g, u, v, b, w, _, x, k;
|
|
31
|
+
|
|
32
|
+
const y = e(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
|
|
33
|
+
|
|
34
|
+
const z = e(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
|
|
35
|
+
|
|
36
|
+
const W = [ "resets/box-sizing", "utils/typography", "components/button", "components/combo-box", "components/checkbox", "utils/form" ];
|
|
37
|
+
|
|
38
|
+
const M = "on";
|
|
39
|
+
|
|
40
|
+
const T = class {
|
|
41
|
+
constructor(e) {
|
|
42
|
+
i(this, e);
|
|
43
|
+
/**
|
|
44
|
+
* The component hard-coded strings translations.
|
|
45
|
+
*/
|
|
46
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
47
|
+
h.set(this, void 0);
|
|
48
|
+
// Select User Team References :
|
|
49
|
+
c.set(this, []);
|
|
50
|
+
d.set(this, void 0);
|
|
51
|
+
f.set(this, 100);
|
|
52
|
+
m.set(this, void 0);
|
|
53
|
+
p.set(this, void 0);
|
|
54
|
+
g.set(this, (() => {
|
|
55
|
+
if (this.authStep === "signIn") {
|
|
56
|
+
this.signInCallback();
|
|
57
|
+
} else if (this.authStep === "selectUserTeam") {
|
|
58
|
+
l(this, u, "f").call(this);
|
|
59
|
+
}
|
|
60
|
+
}));
|
|
61
|
+
u.set(this, (async () => {
|
|
62
|
+
await this.continueCallback(l(this, d, "f").value);
|
|
63
|
+
}));
|
|
64
|
+
v.set(this, (() => n("header", {
|
|
65
|
+
class: "slide__main-header"
|
|
66
|
+
}, n("img", {
|
|
67
|
+
src: z,
|
|
68
|
+
alt: ""
|
|
69
|
+
}), n("h2", {
|
|
70
|
+
// Split the title into two spans for better styling
|
|
71
|
+
class: "slide__main-title"
|
|
72
|
+
}, n("span", null, l(this, h, "f")[this.authStepInternal].titlePart1), n("span", null, l(this, h, "f")[this.authStepInternal].titlePart2)))));
|
|
73
|
+
b.set(this, (() => {
|
|
74
|
+
const e = this.authStep === "signIn" && this.termsConfirmationRequired && !this.termsAndConditionsAccepted;
|
|
75
|
+
return n("div", null, n("button", {
|
|
76
|
+
class: "button-primary main-btn",
|
|
77
|
+
onClick: l(this, g, "f"),
|
|
78
|
+
disabled: e
|
|
79
|
+
}, l(this, h, "f")[this.authStepInternal].buttonCaption));
|
|
80
|
+
}));
|
|
81
|
+
w.set(this, (() => {
|
|
82
|
+
const e = l(this, m, "f").value === M;
|
|
83
|
+
const i = l(this, p, "f").value === M;
|
|
84
|
+
this.termsAndConditionsAccepted = e && i;
|
|
85
|
+
}));
|
|
86
|
+
_.set(this, (e => {
|
|
87
|
+
e.preventDefault();
|
|
88
|
+
this.termsCallback();
|
|
89
|
+
}));
|
|
90
|
+
x.set(this, (e => {
|
|
91
|
+
e.preventDefault();
|
|
92
|
+
this.privacyCallback();
|
|
93
|
+
}));
|
|
94
|
+
k.set(this, (() => {
|
|
95
|
+
var e;
|
|
96
|
+
if (this.authStepInternal === "signIn") {
|
|
97
|
+
return [ l(this, v, "f").call(this), n("p", {
|
|
98
|
+
class: "text-body-regular-l"
|
|
99
|
+
}, l(this, h, "f").signIn.description), this.termsConfirmationRequired && n("div", {
|
|
100
|
+
class: "field-group"
|
|
101
|
+
}, n("div", {
|
|
102
|
+
// terms and conditions
|
|
103
|
+
class: "field field-inline"
|
|
104
|
+
}, n("ch-checkbox", {
|
|
105
|
+
checkedValue: M,
|
|
106
|
+
id: "terms-and-conditions",
|
|
107
|
+
class: "checkbox",
|
|
108
|
+
ref: e => o(this, m, e, "f"),
|
|
109
|
+
onInput: l(this, w, "f")
|
|
110
|
+
}), n("label", {
|
|
111
|
+
htmlFor: "terms-and-conditions",
|
|
112
|
+
class: "label label-agreement"
|
|
113
|
+
}, l(this, h, "f").agreement.termsAndConditionsLabel, n("span", {
|
|
114
|
+
class: {
|
|
115
|
+
hyperlink: !!this.termsCallback
|
|
116
|
+
},
|
|
117
|
+
onClick: this.termsCallback && l(this, _, "f")
|
|
118
|
+
}, l(this, h, "f").agreement.termsAndConditionsLink))), n("div", {
|
|
119
|
+
// privacy policy
|
|
120
|
+
class: "field field-inline"
|
|
121
|
+
}, n("ch-checkbox", {
|
|
122
|
+
checkedValue: M,
|
|
123
|
+
id: "privacy-policy",
|
|
124
|
+
class: "checkbox",
|
|
125
|
+
ref: e => o(this, p, e, "f"),
|
|
126
|
+
onInput: l(this, w, "f")
|
|
127
|
+
}), n("label", {
|
|
128
|
+
htmlFor: "privacy-policy",
|
|
129
|
+
class: "label label-agreement"
|
|
130
|
+
}, l(this, h, "f").agreement.privacyAndPolicyLabel, n("span", {
|
|
131
|
+
class: {
|
|
132
|
+
hyperlink: !!this.privacyCallback
|
|
133
|
+
},
|
|
134
|
+
onClick: this.privacyCallback && l(this, x, "f")
|
|
135
|
+
}, l(this, h, "f").agreement.privacyAndPolicyLink)))), l(this, b, "f").call(this) ];
|
|
136
|
+
} else if (this.authStepInternal === "fetchUserTeams" || this.authStepInternal === "settingUpSession") {
|
|
137
|
+
const e = this.authStepInternal === "fetchUserTeams" ? l(this, h, "f").loader.fetchingTeamsTitle : l(this, h, "f").loader.settingUpSessionTitle;
|
|
138
|
+
const i = this.authStepInternal === "fetchUserTeams" ? l(this, h, "f").loader.fetchingTeamsDescription : l(this, h, "f").loader.settingUpDescription;
|
|
139
|
+
return n("gx-ide-loader", {
|
|
140
|
+
show: true,
|
|
141
|
+
loaderTitle: e,
|
|
142
|
+
description: i
|
|
143
|
+
});
|
|
144
|
+
} else if (this.authStepInternal === "selectUserTeam") {
|
|
145
|
+
return [ l(this, v, "f").call(this), n("div", {
|
|
146
|
+
class: "slide__select-team-description"
|
|
147
|
+
}, n("p", {
|
|
148
|
+
class: "text-body-highlighted-l"
|
|
149
|
+
}, l(this, h, "f").selectUserTeam.infoMessage)), n("div", {
|
|
150
|
+
class: "field-group"
|
|
151
|
+
}, n("div", {
|
|
152
|
+
class: "field field-block"
|
|
153
|
+
}, n("label", {
|
|
154
|
+
htmlFor: "teams"
|
|
155
|
+
}, l(this, h, "f").selectUserTeam.label), n("ch-combo-box-render", {
|
|
156
|
+
id: "teams",
|
|
157
|
+
accessibleName: "Teams",
|
|
158
|
+
class: "combo-box teams-list",
|
|
159
|
+
model: l(this, c, "f"),
|
|
160
|
+
value: (e = l(this, c, "f")[0]) === null || e === void 0 ? void 0 : e.value,
|
|
161
|
+
ref: e => o(this, d, e, "f")
|
|
162
|
+
}))), l(this, b, "f").call(this) ];
|
|
163
|
+
}
|
|
164
|
+
}));
|
|
165
|
+
this.authStepInternal = undefined;
|
|
166
|
+
this.slideIsVisible = true;
|
|
167
|
+
this.termsAndConditionsAccepted = false;
|
|
168
|
+
this.authStep = "signIn";
|
|
169
|
+
this.continueCallback = undefined;
|
|
170
|
+
this.signInCallback = undefined;
|
|
171
|
+
this.termsConfirmationRequired = false;
|
|
172
|
+
this.teams = undefined;
|
|
173
|
+
this.termsCallback = undefined;
|
|
174
|
+
this.privacyCallback = undefined;
|
|
175
|
+
}
|
|
176
|
+
authStepChanged(e) {
|
|
177
|
+
this.slideIsVisible = false;
|
|
178
|
+
// switch step
|
|
179
|
+
setTimeout((() => {
|
|
180
|
+
this.authStepInternal = e;
|
|
181
|
+
}), l(this, f, "f"));
|
|
182
|
+
// show slide
|
|
183
|
+
setTimeout((() => {
|
|
184
|
+
this.slideIsVisible = true;
|
|
185
|
+
}), l(this, f, "f") * 2);
|
|
186
|
+
}
|
|
187
|
+
teamsChanged(e) {
|
|
188
|
+
o(this, c, mapTeamsToComboBoxItemModel(e), "f");
|
|
189
|
+
}
|
|
190
|
+
async componentWillLoad() {
|
|
191
|
+
o(this, h, await a.getComponentStrings(this.el), "f");
|
|
192
|
+
this.el.style.setProperty("--switch-step-transtion-time", l(this, f, "f").toString() + "ms");
|
|
193
|
+
// Initialize values
|
|
194
|
+
this.authStepInternal = this.authStep;
|
|
195
|
+
this.teamsChanged(this.teams);
|
|
196
|
+
}
|
|
197
|
+
render() {
|
|
198
|
+
return n(s, null, n("ch-theme", {
|
|
199
|
+
model: W
|
|
200
|
+
}), n("section", {
|
|
201
|
+
class: "slide"
|
|
202
|
+
}, n("img", {
|
|
203
|
+
src: y,
|
|
204
|
+
class: "slide__illustration",
|
|
205
|
+
alt: ""
|
|
206
|
+
}), n("div", {
|
|
207
|
+
class: {
|
|
208
|
+
slide__main: true,
|
|
209
|
+
"slide__main--visible": this.slideIsVisible
|
|
210
|
+
}
|
|
211
|
+
}, n("div", {
|
|
212
|
+
class: "slide__main-container"
|
|
213
|
+
}, l(this, k, "f").call(this)))));
|
|
214
|
+
}
|
|
215
|
+
static get assetsDirs() {
|
|
216
|
+
return [ "gx-ide-assets/sign-in-team" ];
|
|
217
|
+
}
|
|
218
|
+
get el() {
|
|
219
|
+
return t(this);
|
|
220
|
+
}
|
|
221
|
+
static get watchers() {
|
|
222
|
+
return {
|
|
223
|
+
authStep: [ "authStepChanged" ],
|
|
224
|
+
teams: [ "teamsChanged" ]
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
h = new WeakMap, c = new WeakMap, d = new WeakMap, f = new WeakMap, m = new WeakMap,
|
|
230
|
+
p = new WeakMap, g = new WeakMap, u = new WeakMap, v = new WeakMap, b = new WeakMap,
|
|
231
|
+
w = new WeakMap, _ = new WeakMap, x = new WeakMap, k = new WeakMap;
|
|
232
|
+
|
|
233
|
+
T.style = r;
|
|
234
|
+
|
|
235
|
+
export { T as gx_ide_sign_in_team };
|
|
236
|
+
//# sourceMappingURL=p-b04a0ae3.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mapTeamsToComboBoxItemModel","teams","map","team","value","id","caption","name","signInTeamCss","COPYRIGHTS_ILLUSTRATION","getAssetPath","ICON_NEXT","CSS_BUNDLES","CHECKED_VALUE","GxIdeSignInTeam","_GxIdeSignInTeam_componentLocale","set","this","_GxIdeSignInTeam_userTeamsModel","_GxIdeSignInTeam_chSelectTeamEl","_GxIdeSignInTeam_switchStepTransitionTime","_GxIdeSignInTeam_termsAndConditionsCheckboxEl","_GxIdeSignInTeam_privacyPolicyCheckboxEl","_GxIdeSignInTeam_authStepCallback","authStep","signInCallback","__classPrivateFieldGet","_GxIdeSignInTeam_continueHandler","call","async","continueCallback","_GxIdeSignInTeam_renderStepHeader","h","class","src","alt","authStepInternal","titlePart1","titlePart2","_GxIdeSignInTeam_renderStepFooter","signInDisabled","termsConfirmationRequired","termsAndConditionsAccepted","onClick","disabled","buttonCaption","_GxIdeSignInTeam_evaluateTermsConditionsAndPrivacyAccepted","privacyPolicyAccepted","_GxIdeSignInTeam_termsAndConditionsClickedHandler","event","preventDefault","termsCallback","_GxIdeSignInTeam_privacyPolicyClickedHandler","privacyCallback","_GxIdeSignInTeam_evaluateStepRender","signIn","description","checkedValue","ref","el","__classPrivateFieldSet","onInput","htmlFor","agreement","termsAndConditionsLabel","hyperlink","termsAndConditionsLink","privacyAndPolicyLabel","privacyAndPolicyLink","loaderTitle","loader","fetchingTeamsTitle","settingUpSessionTitle","loaderDescription","fetchingTeamsDescription","settingUpDescription","show","selectUserTeam","infoMessage","label","accessibleName","model","_a","authStepChanged","newAuthStep","slideIsVisible","setTimeout","teamsChanged","newTeams","componentWillLoad","Locale","getComponentStrings","style","setProperty","toString","render","Host","slide__main"],"sources":["src/components/sign-in-team/helpers.ts","src/components/sign-in-team/sign-in-team.scss?tag=gx-ide-sign-in-team&encapsulation=shadow","src/components/sign-in-team/sign-in-team.tsx"],"sourcesContent":["import { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { TeamData } from \"./sign-in-team\";\n\nexport const mapTeamsToComboBoxItemModel = (\n teams?: TeamData[]\n): ComboBoxItemModel[] | undefined => {\n if (!teams) {\n return [];\n }\n return teams.map(team => ({\n value: team.id,\n caption: team.name\n }));\n};\n",":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n 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 max-inline-size: 370px;\n }\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\n// WA (this class should be defined on Mercury\n.hyperlink {\n text-decoration: underline;\n cursor: pointer;\n}\n// WA checkboxes labels should not include margin-block-start when\n// placed inside a field-inline.\n.field-inline > .label-agreement {\n margin-block-start: 0 !important;\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Watch,\n Element,\n getAssetPath\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport { mapTeamsToComboBoxItemModel } from \"./helpers\";\n\nconst COPYRIGHTS_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/welcome-page/images/copyrights-illustration.png`\n);\nconst ICON_NEXT = getAssetPath(\n `./gx-ide-assets/welcome-page/images/icon-next.svg`\n);\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/button\",\n \"components/combo-box\",\n \"components/checkbox\",\n \"utils/form\"\n];\n\nconst CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-sign-in-team\",\n styleUrl: \"sign-in-team.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/sign-in-team\"]\n})\nexport class GxIdeSignInTeam {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n // Select User Team References :\n #userTeamsModel: ComboBoxItemModel[] = [];\n #chSelectTeamEl: HTMLChComboBoxRenderElement;\n #switchStepTransitionTime: number = 100;\n #termsAndConditionsCheckboxEl!: HTMLChCheckboxElement;\n #privacyPolicyCheckboxEl!: HTMLChCheckboxElement;\n\n @Element() el: HTMLGxIdeSignInTeamElement;\n\n /**\n * This is a handover from \"authStep\" that allows updating descriptions once\n * the slide is hidden. This enables a smooth transition between descriptions.\n */\n\n @State() authStepInternal: AuthStep;\n\n /**\n * Defines if the main slide is visible or not. Used for smooth transitions\n * between slides.\n */\n @State() slideIsVisible: boolean = true;\n\n /**\n * True if terms and conditions are accepted.\n */\n @State() termsAndConditionsAccepted: boolean = false;\n\n /**\n * The authentication step to display\n */\n @Prop() readonly authStep: AuthStep = \"signIn\";\n @Watch(\"authStep\")\n authStepChanged(newAuthStep: AuthStep) {\n this.slideIsVisible = false;\n // switch step\n setTimeout(() => {\n this.authStepInternal = newAuthStep;\n }, this.#switchStepTransitionTime);\n // show slide\n setTimeout(() => {\n this.slideIsVisible = true;\n }, this.#switchStepTransitionTime * 2);\n }\n\n /**\n * Callback executed when the user clicks the 'Continue' button\n */\n @Prop() readonly continueCallback!: (teamId: string) => Promise<void>;\n\n /**\n * Callback executed when the user click the \"Sign In\" button\n */\n @Prop() readonly signInCallback!: () => Promise<void>;\n\n /**\n * When true, it will diplay checkboxes for the user to confirm terms and conditions\n */\n @Prop() readonly termsConfirmationRequired: boolean = false;\n\n /**\n * Array that contains the user's teams\n */\n @Prop() readonly teams!: TeamData[];\n @Watch(\"teams\")\n teamsChanged(newTeams: TeamData[]) {\n this.#userTeamsModel = mapTeamsToComboBoxItemModel(newTeams);\n }\n\n /**\n * Callback executed when the user clicks on the \"term and conditions\" link\n */\n @Prop() readonly termsCallback: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks on the \"privacy policy\" link\n */\n @Prop() readonly privacyCallback: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.el.style.setProperty(\n \"--switch-step-transtion-time\",\n this.#switchStepTransitionTime.toString() + \"ms\"\n );\n // Initialize values\n this.authStepInternal = this.authStep;\n this.teamsChanged(this.teams);\n }\n\n #authStepCallback = () => {\n if (this.authStep === \"signIn\") {\n this.signInCallback();\n } else if (this.authStep === \"selectUserTeam\") {\n this.#continueHandler();\n }\n };\n\n #continueHandler = async () => {\n await this.continueCallback(this.#chSelectTeamEl.value);\n };\n\n #renderStepHeader = (): HTMLElement => {\n return (\n <header class=\"slide__main-header\">\n <img\n src={ICON_NEXT}\n alt=\"\" // decorative\n />\n <h2\n // Split the title into two spans for better styling\n class=\"slide__main-title\"\n >\n <span>{this.#componentLocale[this.authStepInternal].titlePart1}</span>\n <span>{this.#componentLocale[this.authStepInternal].titlePart2}</span>\n </h2>\n </header>\n );\n };\n\n #renderStepFooter = (): HTMLElement => {\n const signInDisabled =\n this.authStep === \"signIn\" &&\n this.termsConfirmationRequired &&\n !this.termsAndConditionsAccepted;\n return (\n <div>\n <button\n class=\"button-primary main-btn\"\n onClick={this.#authStepCallback}\n disabled={signInDisabled}\n >\n {this.#componentLocale[this.authStepInternal].buttonCaption}\n </button>\n </div>\n );\n };\n\n #evaluateTermsConditionsAndPrivacyAccepted = () => {\n const termsAndConditionsAccepted =\n this.#termsAndConditionsCheckboxEl.value === CHECKED_VALUE;\n const privacyPolicyAccepted =\n this.#privacyPolicyCheckboxEl.value === CHECKED_VALUE;\n this.termsAndConditionsAccepted =\n termsAndConditionsAccepted && privacyPolicyAccepted;\n };\n\n #termsAndConditionsClickedHandler = (event: MouseEvent) => {\n event.preventDefault();\n this.termsCallback();\n };\n\n #privacyPolicyClickedHandler = (event: MouseEvent) => {\n event.preventDefault();\n this.privacyCallback();\n };\n\n #evaluateStepRender = () => {\n if (this.authStepInternal === \"signIn\") {\n return [\n this.#renderStepHeader(),\n <p class=\"text-body-regular-l\">\n {this.#componentLocale.signIn.description}\n </p>,\n this.termsConfirmationRequired && (\n <div class=\"field-group\">\n <div\n // terms and conditions\n class=\"field field-inline\"\n >\n <ch-checkbox\n checkedValue={CHECKED_VALUE}\n id=\"terms-and-conditions\"\n class=\"checkbox\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#termsAndConditionsCheckboxEl =\n el as HTMLChCheckboxElement)\n }\n onInput={this.#evaluateTermsConditionsAndPrivacyAccepted}\n ></ch-checkbox>\n <label\n htmlFor=\"terms-and-conditions\"\n class=\"label label-agreement\"\n >\n {this.#componentLocale.agreement.termsAndConditionsLabel}\n <span\n class={{ hyperlink: !!this.termsCallback }}\n onClick={\n this.termsCallback && this.#termsAndConditionsClickedHandler\n }\n >\n {this.#componentLocale.agreement.termsAndConditionsLink}\n </span>\n </label>\n </div>\n <div\n // privacy policy\n class=\"field field-inline\"\n >\n <ch-checkbox\n checkedValue={CHECKED_VALUE}\n id=\"privacy-policy\"\n class=\"checkbox\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#privacyPolicyCheckboxEl = el as HTMLChCheckboxElement)\n }\n onInput={this.#evaluateTermsConditionsAndPrivacyAccepted}\n ></ch-checkbox>\n <label htmlFor=\"privacy-policy\" class=\"label label-agreement\">\n {this.#componentLocale.agreement.privacyAndPolicyLabel}\n <span\n class={{ hyperlink: !!this.privacyCallback }}\n onClick={\n this.privacyCallback && this.#privacyPolicyClickedHandler\n }\n >\n {this.#componentLocale.agreement.privacyAndPolicyLink}\n </span>\n </label>\n </div>\n </div>\n ),\n\n this.#renderStepFooter()\n ];\n } else if (\n this.authStepInternal === \"fetchUserTeams\" ||\n this.authStepInternal === \"settingUpSession\"\n ) {\n const loaderTitle =\n this.authStepInternal === \"fetchUserTeams\"\n ? this.#componentLocale.loader.fetchingTeamsTitle\n : this.#componentLocale.loader.settingUpSessionTitle;\n const loaderDescription =\n this.authStepInternal === \"fetchUserTeams\"\n ? this.#componentLocale.loader.fetchingTeamsDescription\n : this.#componentLocale.loader.settingUpDescription;\n return (\n <gx-ide-loader\n show\n loaderTitle={loaderTitle}\n description={loaderDescription}\n ></gx-ide-loader>\n );\n } else if (this.authStepInternal === \"selectUserTeam\") {\n return [\n this.#renderStepHeader(),\n <div class=\"slide__select-team-description\">\n <p class=\"text-body-highlighted-l\">\n {this.#componentLocale.selectUserTeam.infoMessage}\n </p>\n </div>,\n <div class=\"field-group\">\n <div class=\"field field-block\">\n <label htmlFor=\"teams\">\n {this.#componentLocale.selectUserTeam.label}\n </label>\n <ch-combo-box-render\n id=\"teams\"\n accessibleName=\"Teams\"\n class=\"combo-box teams-list\"\n model={this.#userTeamsModel}\n value={this.#userTeamsModel[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#chSelectTeamEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n </div>,\n this.#renderStepFooter()\n ];\n }\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"slide\">\n <img\n src={COPYRIGHTS_ILLUSTRATION}\n class=\"slide__illustration\"\n alt=\"\" // decorative\n />\n\n <div\n class={{\n \"slide__main\": true,\n \"slide__main--visible\": this.slideIsVisible\n }}\n >\n <div class=\"slide__main-container\">\n {this.#evaluateStepRender()}\n </div>\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type AuthStep =\n | \"signIn\"\n | \"fetchUserTeams\"\n | \"selectUserTeam\"\n | \"settingUpSession\";\n\nexport type TeamData = {\n id: string;\n name: string;\n};\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as e, c as r, h as a, H as i } from "./p-49712340.js";
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const t = ".loader__wrapper{position:absolute;border:none;opacity:0;transition:var(--show-transition) opacity;inline-size:100%;block-size:100%;display:flex;background-color:var(--mer-surface__elevation--01);backdrop-filter:var(--gxg-ide-loader-wrapper__backdrop-filter);padding:var(--gxg-ide-loader-wrapper__padding);flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;color:var(--gxg-ide-loader-wrapper__color);z-index:99;animation:fadeIn var(--mer-timing--fast) forwards}.loader__wrapper--visible{opacity:1}.loader__spinner{border:var(--gxg-ide-loader-spinner__border);border-block-start:var(--gxg-ide-loader-spinner__border-top);border-radius:50%;animation:spinner 0.6s infinite linear;inline-size:var(--gxg-ide-loader-spinner__width);block-size:var(--gxg-ide-loader-spinner__width);flex-shrink:0;opacity:1}.loader__content-wrapper{display:flex;text-align:center;flex-direction:column;margin-block-start:var(--gxg-ide-loader-content-wrapper__mbs);gap:var(--mer-spacing--xs);max-block-size:var(--gxg-ide-loader-content-wrapper__max-width);opacity:1}.loader__content-wrapper--hidden{display:none}.loader__cancel-button{margin-block-start:var(--mer-spacing--xs)}@keyframes wrapper{0%{background-color:var(--gxg-ide-loader-wrapper__background-color--from)}100%{background-color:var(--gxg-ide-loader-wrapper__background-color--to)}}@keyframes spinner{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}:host([display-border]) .loader__wrapper{border:1px solid var(--mer-color__elevation--02)}@keyframes fadeIn{0%{opacity:0}}";
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var o = undefined && undefined.__classPrivateFieldGet || function(e, r, a, i) {
|
|
6
6
|
if (a === "a" && !i) throw new TypeError("Private accessor was defined without a getter");
|
|
7
7
|
if (typeof r === "function" ? e !== r || !i : !r.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
8
8
|
return a === "m" ? i : a === "a" ? i.call(e) : i ? i.value : r.get(e);
|
|
@@ -21,13 +21,13 @@ const h = class {
|
|
|
21
21
|
if (this.cancelCallback) {
|
|
22
22
|
this.cancelCallback();
|
|
23
23
|
}
|
|
24
|
-
clearTimeout(
|
|
24
|
+
clearTimeout(o(this, n, "f"));
|
|
25
25
|
this.show = false;
|
|
26
26
|
}));
|
|
27
27
|
d.set(this, (() => this.cancelLabel && a("div", null, a("button", {
|
|
28
28
|
class: "button-secondary loader__cancel-button",
|
|
29
29
|
type: "button",
|
|
30
|
-
onClick:
|
|
30
|
+
onClick: o(this, s, "f")
|
|
31
31
|
}, this.cancelLabel))));
|
|
32
32
|
l.set(this, (() => this.description && a("p", {
|
|
33
33
|
class: "text-body-italic-s"
|
|
@@ -61,13 +61,13 @@ const h = class {
|
|
|
61
61
|
"loader__content-wrapper": true,
|
|
62
62
|
"loader__content-wrapper--hidden": !this.description && !this.loaderTitle && !this.cancelLabel
|
|
63
63
|
}
|
|
64
|
-
},
|
|
64
|
+
}, o(this, p, "f").call(this), o(this, l, "f").call(this), o(this, d, "f").call(this))));
|
|
65
65
|
}
|
|
66
66
|
};
|
|
67
67
|
|
|
68
68
|
n = new WeakMap, s = new WeakMap, d = new WeakMap, l = new WeakMap, p = new WeakMap;
|
|
69
69
|
|
|
70
|
-
h.style =
|
|
70
|
+
h.style = t;
|
|
71
71
|
|
|
72
72
|
export { h as gx_ide_loader };
|
|
73
|
-
//# sourceMappingURL=p-
|
|
73
|
+
//# sourceMappingURL=p-efebc74b.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ideLoaderCss","CSS_BUNDLES","IdeLoader","_IdeLoader_timeoutReference","set","this","_IdeLoader_cancelProcess","cancelCallback","clearTimeout","__classPrivateFieldGet","show","_IdeLoader_renderCancelButton","cancelLabel","h","class","type","onClick","_IdeLoader_renderDescription","description","_IdeLoader_renderTitle","loaderTitle","render","Host","model","showWrapper","part","popover","call"],"sources":["src/components/_helpers/ide-loader/ide-loader.scss?tag=gx-ide-loader&encapsulation=shadow","src/components/_helpers/ide-loader/ide-loader.tsx"],"sourcesContent":[".loader {\n &__wrapper {\n position: absolute;\n border: none;\n opacity: 0;\n transition: var(--show-transition) opacity;\n inline-size: 100%;\n block-size: 100%;\n display: flex;\n background-color: var(--mer-surface__elevation--01);\n backdrop-filter: var(--gxg-ide-loader-wrapper__backdrop-filter);\n padding: var(--gxg-ide-loader-wrapper__padding);\n flex-direction: column;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n color: var(--gxg-ide-loader-wrapper__color);\n z-index: 99; // WA to prevent tree-view chevron arrow to appear above.\n animation: fadeIn var(--mer-timing--fast) forwards;\n\n &--visible {\n opacity: 1;\n }\n }\n &__spinner {\n border: var(--gxg-ide-loader-spinner__border);\n border-block-start: var(--gxg-ide-loader-spinner__border-top);\n border-radius: 50%;\n animation: spinner 0.6s infinite linear;\n inline-size: var(--gxg-ide-loader-spinner__width);\n block-size: var(--gxg-ide-loader-spinner__width);\n flex-shrink: 0;\n opacity: 1;\n }\n\n &__content-wrapper {\n display: flex;\n text-align: center;\n flex-direction: column;\n margin-block-start: var(--gxg-ide-loader-content-wrapper__mbs);\n gap: var(--mer-spacing--xs);\n max-block-size: var(--gxg-ide-loader-content-wrapper__max-width);\n &--hidden {\n display: none;\n }\n opacity: 1;\n }\n\n &__cancel-button {\n margin-block-start: var(--mer-spacing--xs);\n }\n}\n\n/*background color animation*/\n@keyframes wrapper {\n 0% {\n background-color: var(--gxg-ide-loader-wrapper__background-color--from);\n }\n 100% {\n background-color: var(--gxg-ide-loader-wrapper__background-color--to);\n }\n}\n@keyframes spinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(359deg);\n }\n}\n\n:host([display-border]) {\n .loader {\n &__wrapper {\n border: 1px solid var(--mer-color__elevation--02);\n }\n }\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"utils/typography\"\n];\n@Component({\n tag: \"gx-ide-loader\",\n styleUrl: \"ide-loader.scss\",\n shadow: true\n})\nexport class IdeLoader {\n #timeoutReference: ReturnType<typeof setTimeout>;\n\n /**\n * shows the '.loader-wrapper'\n */\n @State() showWrapper = true;\n\n /**\n * The time the loader will await before abort.\n */\n @Prop() readonly abortTime: number = 5 * 60 * 1000; // 5 minutes\n\n /**\n * The cancel callback\n */\n @Prop() readonly cancelCallback: IdeLoaderCancelCallback;\n\n /**\n * The cancel button label (optional)\n */\n @Prop() readonly cancelLabel: string;\n\n /**\n * The loader description (optional)\n */\n @Prop() readonly description: string;\n\n /**\n * Displays a border all around\n */\n @Prop({ reflect: true }) readonly displayBorder: boolean = false;\n\n /**\n * The loader title (optional)\n */\n @Prop() readonly loaderTitle: string;\n\n /**\n * It shows the loader\n */\n @Prop({ mutable: true }) show = false;\n\n /**\n * This event is emitted when \"show\" is false.\n */\n @Event() loaderFinished: EventEmitter<void>;\n\n #cancelProcess = (): void => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n clearTimeout(this.#timeoutReference);\n this.show = false;\n };\n\n #renderCancelButton = (): HTMLButtonElement | null =>\n this.cancelLabel && (\n <div>\n <button\n class=\"button-secondary loader__cancel-button\"\n type=\"button\"\n onClick={this.#cancelProcess}\n >\n {this.cancelLabel}\n </button>\n </div>\n );\n\n #renderDescription = (): HTMLParagraphElement | null =>\n this.description && <p class=\"text-body-italic-s\">{this.description}</p>;\n\n #renderTitle = (): HTMLParagraphElement | null =>\n this.loaderTitle && <p class=\"text-body-regular-l\">{this.loaderTitle}</p>;\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.show && (\n <div\n class={{\n [`loader__wrapper`]: true,\n \"loader__wrapper--visible\": this.showWrapper\n }}\n part=\"loader-wrapper\"\n popover=\"\"\n >\n <div class=\"loader__spinner\"></div>\n <div\n class={{\n \"loader__content-wrapper\": true,\n \"loader__content-wrapper--hidden\":\n !this.description && !this.loaderTitle && !this.cancelLabel\n }}\n >\n {this.#renderTitle()}\n {this.#renderDescription()}\n {this.#renderCancelButton()}\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n\nexport type IdeLoaderCancelCallback = () => void;\n"],"mappings":";;AAAA,MAAMA,IAAe;;;;;;;;;;ACYrB,MAAMC,IAA8B,EAClC,qBACA,qBACA;;MAOWC,IAAS;;;;IACpBC,EAAAC,IAAAC,WAAA;IA+CAC,EAAAF,IAAAC,OAAiB;MACf,IAAIA,KAAKE,gBAAgB;QACvBF,KAAKE;;MAEPC,aAAaC,EAAAJ,MAAIF,GAAA;MACjBE,KAAKK,OAAO;AAAK;IAGnBC,EAAAP,IAAAC,OAAsB,MACpBA,KAAKO,eACHC,EAAA,aACEA,EAAA;MACEC,OAAM;MACNC,MAAK;MACLC,SAASP,EAAAJ,MAAIC,GAAA;OAEZD,KAAKO;IAKdK,EAAAb,IAAAC,OAAqB,MACnBA,KAAKa,eAAeL,EAAA;MAAGC,OAAM;OAAsBT,KAAKa;IAE1DC,EAAAf,IAAAC,OAAe,MACbA,KAAKe,eAAeP,EAAA;MAAGC,OAAM;OAAuBT,KAAKe;uBAnEpC;qBAKc,IAAI,KAAK;;;;yBAoBa;;gBAU3B;;EAkChC,MAAAC;IACE,OACER,EAACS,GAAI,MACHT,EAAA;MAAUU,OAAOtB;QAChBI,KAAKK,QACJG,EAAA;MACEC,OAAO;QACL,CAAC,oBAAoB;QACrB,4BAA4BT,KAAKmB;;MAEnCC,MAAK;MACLC,SAAQ;OAERb,EAAA;MAAKC,OAAM;QACXD,EAAA;MACEC,OAAO;QACL,2BAA2B;QAC3B,oCACGT,KAAKa,gBAAgBb,KAAKe,gBAAgBf,KAAKO;;OAGnDH,EAAAJ,MAAIc,GAAA,KAAaQ,KAAjBtB,OACAI,EAAAJ,MAAIY,GAAA,KAAmBU,KAAvBtB,OACAI,EAAAJ,MAAIM,GAAA,KAAoBgB,KAAxBtB"}
|
|
@@ -34,7 +34,7 @@ export declare class GxIdeEntitySelector {
|
|
|
34
34
|
/**
|
|
35
35
|
* Callback invoked when the action button is pressed. Returns the new value.
|
|
36
36
|
*/
|
|
37
|
-
readonly selectEntityCallback: () => Promise<EntityData
|
|
37
|
+
readonly selectEntityCallback: () => Promise<EntityData> | null;
|
|
38
38
|
/**
|
|
39
39
|
* Value currently assigned.
|
|
40
40
|
*/
|
|
@@ -27,9 +27,13 @@ export declare class GxIdeNewEnvironment {
|
|
|
27
27
|
*/
|
|
28
28
|
readonly signOutCallback: () => Promise<void>;
|
|
29
29
|
/**
|
|
30
|
-
* Callback executed when the user
|
|
30
|
+
* Callback executed when the user clicks on the "term and conditions" link
|
|
31
31
|
*/
|
|
32
|
-
readonly
|
|
32
|
+
readonly termsCallback: () => Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Callback executed when the user clicks on the "privacy policy" link
|
|
35
|
+
*/
|
|
36
|
+
readonly privacyCallback: () => Promise<void>;
|
|
33
37
|
componentWillLoad(): Promise<void>;
|
|
34
38
|
render(): any;
|
|
35
39
|
}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
export declare class GxIdeSelectUserTeam {
|
|
2
2
|
#private;
|
|
3
3
|
el: HTMLGxIdeSelectUserTeamElement;
|
|
4
|
+
/**
|
|
5
|
+
* Defines if the main slide is visible or not. Used for smooth transitions between slides.
|
|
6
|
+
*/
|
|
7
|
+
slideIsVisible: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Defines if the team model is redy to be rendered.
|
|
10
|
+
*/
|
|
11
|
+
teamsModelReady: boolean;
|
|
4
12
|
/**
|
|
5
13
|
* Callback executed when the user clicks the 'Cancel' button
|
|
6
14
|
*/
|
|
@@ -15,6 +23,7 @@ export declare class GxIdeSelectUserTeam {
|
|
|
15
23
|
readonly teams: TeamData[];
|
|
16
24
|
teamsChanged(newTeams: TeamData[]): void;
|
|
17
25
|
componentWillLoad(): Promise<void>;
|
|
26
|
+
componentDidLoad(): void;
|
|
18
27
|
render(): any;
|
|
19
28
|
}
|
|
20
29
|
export type TeamData = {
|
|
@@ -11,6 +11,10 @@ export declare class GxIdeSignInTeam {
|
|
|
11
11
|
* between slides.
|
|
12
12
|
*/
|
|
13
13
|
slideIsVisible: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* True if terms and conditions are accepted.
|
|
16
|
+
*/
|
|
17
|
+
termsAndConditionsAccepted: boolean;
|
|
14
18
|
/**
|
|
15
19
|
* The authentication step to display
|
|
16
20
|
*/
|
|
@@ -24,6 +28,10 @@ export declare class GxIdeSignInTeam {
|
|
|
24
28
|
* Callback executed when the user click the "Sign In" button
|
|
25
29
|
*/
|
|
26
30
|
readonly signInCallback: () => Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* When true, it will diplay checkboxes for the user to confirm terms and conditions
|
|
33
|
+
*/
|
|
34
|
+
readonly termsConfirmationRequired: boolean;
|
|
27
35
|
/**
|
|
28
36
|
* Array that contains the user's teams
|
|
29
37
|
*/
|
|
@@ -33,10 +41,14 @@ export declare class GxIdeSignInTeam {
|
|
|
33
41
|
* Callback executed when the user clicks on the "term and conditions" link
|
|
34
42
|
*/
|
|
35
43
|
readonly termsCallback: () => Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Callback executed when the user clicks on the "privacy policy" link
|
|
46
|
+
*/
|
|
47
|
+
readonly privacyCallback: () => Promise<void>;
|
|
36
48
|
componentWillLoad(): Promise<void>;
|
|
37
49
|
render(): any;
|
|
38
50
|
}
|
|
39
|
-
export type AuthStep = "signIn" | "selectUserTeam";
|
|
51
|
+
export type AuthStep = "signIn" | "fetchUserTeams" | "selectUserTeam" | "settingUpSession";
|
|
40
52
|
export type TeamData = {
|
|
41
53
|
id: string;
|
|
42
54
|
name: string;
|