@genexus/genexus-ide-ui 3.2.10 → 3.2.11
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-team-or-org.cjs.entry.js +128 -0
- package/dist/cjs/gx-ide-select-team-or-org.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-sign-in-organization.cjs.entry.js +187 -0
- package/dist/cjs/gx-ide-sign-in-organization.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/select-team-or-org/gx-ide-assets/select-team-or-org/langs/select-team-or-org.lang.en.json +18 -0
- package/dist/collection/components/select-team-or-org/gx-ide-assets/select-team-or-org/langs/select-team-or-org.lang.ja.json +18 -0
- package/dist/collection/components/select-team-or-org/gx-ide-assets/select-team-or-org/langs/select-team-or-org.lang.zh.json +18 -0
- package/dist/collection/components/select-team-or-org/helpers.js +9 -0
- package/dist/collection/components/select-team-or-org/helpers.js.map +1 -0
- package/dist/collection/components/{select-user-team/select-user-team.css → select-team-or-org/select-team-or-org.css} +7 -4
- package/dist/collection/components/select-team-or-org/select-team-or-org.js +220 -0
- package/dist/collection/components/select-team-or-org/select-team-or-org.js.map +1 -0
- package/dist/{genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.en.json → collection/components/sign-in-organization/gx-ide-assets/sign-in-organization/langs/sign-in-organization.lang.en.json} +5 -5
- package/dist/{genexus-ide-ui/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.ja.json → collection/components/sign-in-organization/gx-ide-assets/sign-in-organization/langs/sign-in-organization.lang.ja.json} +5 -5
- package/dist/collection/components/{sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.en.json → sign-in-organization/gx-ide-assets/sign-in-organization/langs/sign-in-organization.lang.zh.json} +5 -5
- package/dist/collection/components/sign-in-organization/helpers.js +10 -0
- package/dist/collection/components/sign-in-organization/helpers.js.map +1 -0
- package/dist/collection/components/{sign-in-team/sign-in-team.js → sign-in-organization/sign-in-organization.js} +72 -72
- package/dist/collection/components/sign-in-organization/sign-in-organization.js.map +1 -0
- package/dist/collection/testing/locale.e2e.js +2 -2
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/gx-ide-select-team-or-org.d.ts +11 -0
- package/dist/components/gx-ide-select-team-or-org.js +157 -0
- package/dist/components/gx-ide-select-team-or-org.js.map +1 -0
- package/dist/components/gx-ide-sign-in-organization.d.ts +11 -0
- package/dist/components/gx-ide-sign-in-organization.js +221 -0
- package/dist/components/gx-ide-sign-in-organization.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-select-team-or-org.entry.js +124 -0
- package/dist/esm/gx-ide-select-team-or-org.entry.js.map +1 -0
- package/dist/esm/gx-ide-sign-in-organization.entry.js +183 -0
- package/dist/esm/gx-ide-sign-in-organization.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/select-team-or-org/langs/select-team-or-org.lang.en.json +18 -0
- package/dist/genexus-ide-ui/gx-ide-assets/select-team-or-org/langs/select-team-or-org.lang.ja.json +18 -0
- package/dist/genexus-ide-ui/gx-ide-assets/select-team-or-org/langs/select-team-or-org.lang.zh.json +18 -0
- package/dist/genexus-ide-ui/gx-ide-assets/{sign-in-team/langs/sign-in-team.lang.zh.json → sign-in-organization/langs/sign-in-organization.lang.en.json} +5 -5
- package/dist/{collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.ja.json → genexus-ide-ui/gx-ide-assets/sign-in-organization/langs/sign-in-organization.lang.ja.json} +5 -5
- package/dist/{collection/components/sign-in-team/gx-ide-assets/sign-in-team/langs/sign-in-team.lang.zh.json → genexus-ide-ui/gx-ide-assets/sign-in-organization/langs/sign-in-organization.lang.zh.json} +5 -5
- package/dist/genexus-ide-ui/{p-1d44dd0a.entry.js → p-15b1c9be.entry.js} +72 -72
- package/dist/genexus-ide-ui/p-15b1c9be.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-2129d0d2.entry.js +164 -0
- package/dist/genexus-ide-ui/p-2129d0d2.entry.js.map +1 -0
- package/dist/types/components/select-team-or-org/helpers.d.ts +3 -0
- package/dist/types/components/select-team-or-org/select-team-or-org.d.ts +38 -0
- package/dist/types/components/sign-in-organization/helpers.d.ts +3 -0
- package/dist/types/components/{sign-in-team/sign-in-team.d.ts → sign-in-organization/sign-in-organization.d.ts} +8 -8
- package/dist/types/components.d.ts +54 -46
- package/package.json +1 -1
- package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +0 -121
- package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +0 -1
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +0 -187
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +0 -1
- package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.en.json +0 -10
- package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.ja.json +0 -10
- package/dist/collection/components/select-user-team/gx-ide-assets/select-user-team/langs/select-user-team.lang.zh.json +0 -10
- package/dist/collection/components/select-user-team/helpers.js +0 -9
- package/dist/collection/components/select-user-team/helpers.js.map +0 -1
- package/dist/collection/components/select-user-team/select-user-team.js +0 -189
- package/dist/collection/components/select-user-team/select-user-team.js.map +0 -1
- package/dist/collection/components/sign-in-team/helpers.js +0 -10
- package/dist/collection/components/sign-in-team/helpers.js.map +0 -1
- package/dist/collection/components/sign-in-team/sign-in-team.js.map +0 -1
- package/dist/components/gx-ide-select-user-team.d.ts +0 -11
- package/dist/components/gx-ide-select-user-team.js +0 -149
- package/dist/components/gx-ide-select-user-team.js.map +0 -1
- package/dist/components/gx-ide-sign-in-team.d.ts +0 -11
- package/dist/components/gx-ide-sign-in-team.js +0 -221
- package/dist/components/gx-ide-sign-in-team.js.map +0 -1
- package/dist/esm/gx-ide-select-user-team.entry.js +0 -117
- package/dist/esm/gx-ide-select-user-team.entry.js.map +0 -1
- package/dist/esm/gx-ide-sign-in-team.entry.js +0 -183
- package/dist/esm/gx-ide-sign-in-team.entry.js.map +0 -1
- package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.en.json +0 -10
- package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.ja.json +0 -10
- package/dist/genexus-ide-ui/gx-ide-assets/select-user-team/langs/select-user-team.lang.zh.json +0 -10
- package/dist/genexus-ide-ui/p-1d44dd0a.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-2317ffcb.entry.js +0 -156
- package/dist/genexus-ide-ui/p-2317ffcb.entry.js.map +0 -1
- package/dist/types/components/select-user-team/helpers.d.ts +0 -3
- package/dist/types/components/select-user-team/select-user-team.d.ts +0 -32
- package/dist/types/components/sign-in-team/helpers.d.ts +0 -3
- /package/dist/collection/components/{select-user-team/gx-ide-assets/select-user-team → select-team-or-org/gx-ide-assets/select-team-or-org}/images/copyrights-illustration.png +0 -0
- /package/dist/collection/components/{select-user-team/gx-ide-assets/select-user-team → select-team-or-org/gx-ide-assets/select-team-or-org}/images/icon-next.svg +0 -0
- /package/dist/collection/components/{sign-in-team/gx-ide-assets/sign-in-team → sign-in-organization/gx-ide-assets/sign-in-organization}/images/copyrights-illustration.png +0 -0
- /package/dist/collection/components/{sign-in-team/gx-ide-assets/sign-in-team → sign-in-organization/gx-ide-assets/sign-in-organization}/images/icon-next.svg +0 -0
- /package/dist/collection/components/{sign-in-team/sign-in-team.css → sign-in-organization/sign-in-organization.css} +0 -0
- /package/dist/genexus-ide-ui/gx-ide-assets/{select-user-team → select-team-or-org}/images/copyrights-illustration.png +0 -0
- /package/dist/genexus-ide-ui/gx-ide-assets/{select-user-team → select-team-or-org}/images/icon-next.svg +0 -0
- /package/dist/genexus-ide-ui/gx-ide-assets/{sign-in-team → sign-in-organization}/images/copyrights-illustration.png +0 -0
- /package/dist/genexus-ide-ui/gx-ide-assets/{sign-in-team → sign-in-organization}/images/icon-next.svg +0 -0
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
"description": "The most advanced professional IDE to build and evolve Intelligent Enterprise Systems.",
|
|
7
7
|
"buttonCaption": "Sign In"
|
|
8
8
|
},
|
|
9
|
-
"
|
|
9
|
+
"selectOrganization": {
|
|
10
10
|
"titlePart1": "You have successfully ",
|
|
11
11
|
"titlePart2": "signed in",
|
|
12
|
-
"infoMessage": "Before proceeding please select your Organization
|
|
13
|
-
"label": "Organization
|
|
12
|
+
"infoMessage": "Before proceeding please select your Organization from the list below",
|
|
13
|
+
"label": "Organization",
|
|
14
14
|
"buttonCaption": "Continue"
|
|
15
15
|
},
|
|
16
16
|
"agreement": {
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"privacyAndPolicyLink": "privacy policy"
|
|
21
21
|
},
|
|
22
22
|
"loader": {
|
|
23
|
-
"
|
|
24
|
-
"
|
|
23
|
+
"fetchingOrganizationsTitle": "Fetching user data",
|
|
24
|
+
"fetchingOrganizationsDescription": "Thanks for your patience!",
|
|
25
25
|
"settingUpSessionTitle": "Setting up session",
|
|
26
26
|
"settingUpDescription": "Thanks for your patience!"
|
|
27
27
|
}
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
"description": "インテリジェントエンタープライズシステムを構築・進化させるための最も先進的なプロフェッショナルIDE。",
|
|
7
7
|
"buttonCaption": "ログイン"
|
|
8
8
|
},
|
|
9
|
-
"
|
|
9
|
+
"selectOrganization": {
|
|
10
10
|
"titlePart1": "ログインに",
|
|
11
11
|
"titlePart2": "成功しました",
|
|
12
|
-
"infoMessage": "
|
|
13
|
-
"label": "
|
|
12
|
+
"infoMessage": "続行する前に、下のリストから組織を選択してください",
|
|
13
|
+
"label": "組織",
|
|
14
14
|
"buttonCaption": "続行"
|
|
15
15
|
},
|
|
16
16
|
"agreement": {
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"privacyAndPolicyLink": "プライバシーポリシー"
|
|
21
21
|
},
|
|
22
22
|
"loader": {
|
|
23
|
-
"
|
|
24
|
-
"
|
|
23
|
+
"fetchingOrganizationsTitle": "ユーザーデータを取得中",
|
|
24
|
+
"fetchingOrganizationsDescription": "しばらくお待ちください",
|
|
25
25
|
"settingUpSessionTitle": "セッションを設定中",
|
|
26
26
|
"settingUpDescription": "しばらくお待ちください"
|
|
27
27
|
}
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
"description": "The most advanced professional IDE to build and evolve Intelligent Enterprise Systems.",
|
|
7
7
|
"buttonCaption": "Sign In"
|
|
8
8
|
},
|
|
9
|
-
"
|
|
9
|
+
"selectOrganization": {
|
|
10
10
|
"titlePart1": "You have successfully ",
|
|
11
11
|
"titlePart2": "signed in",
|
|
12
|
-
"infoMessage": "Before proceeding please select your Organization
|
|
13
|
-
"label": "Organization
|
|
12
|
+
"infoMessage": "Before proceeding please select your Organization from the list below",
|
|
13
|
+
"label": "Organization",
|
|
14
14
|
"buttonCaption": "Continue"
|
|
15
15
|
},
|
|
16
16
|
"agreement": {
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"privacyAndPolicyLink": "privacy policy"
|
|
21
21
|
},
|
|
22
22
|
"loader": {
|
|
23
|
-
"
|
|
24
|
-
"
|
|
23
|
+
"fetchingOrganizationsTitle": "Fetching user data",
|
|
24
|
+
"fetchingOrganizationsDescription": "Thanks for your patience!",
|
|
25
25
|
"settingUpSessionTitle": "Setting up session",
|
|
26
26
|
"settingUpDescription": "Thanks for your patience!"
|
|
27
27
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { g as i, r as
|
|
1
|
+
import { g as i, r as n, h as e, H as s, a as t } from "./p-9b9ccd0c.js";
|
|
2
2
|
|
|
3
3
|
import { L as a } from "./p-311eedf3.js";
|
|
4
4
|
|
|
5
|
-
const
|
|
5
|
+
const mapOrganizationsToComboBoxItemModel = i => {
|
|
6
6
|
if (!i) {
|
|
7
7
|
return [];
|
|
8
8
|
}
|
|
@@ -12,22 +12,22 @@ const mapTeamsToComboBoxItemModel = i => {
|
|
|
12
12
|
})));
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
const
|
|
15
|
+
const o = ":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--color-accent-surface-elevation-1);\n border-radius: var(--dialog-border-radius, 16px);\n overflow: hidden;\n}\n.slide__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n}\n.slide__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: 48px;\n transform: translateY(4px);\n transition: var(--switch-step-transtion-time) all;\n opacity: 0;\n}\n.slide__main--visible {\n transform: translateY(0);\n opacity: 1;\n}\n.slide__main-container {\n display: grid;\n place-self: center;\n gap: var(--spacing-gap-xxl);\n max-inline-size: 480px;\n}\n.slide__main-header {\n display: grid;\n gap: var(--spacing-gap-xxl);\n}\n.slide__main-title {\n display: flex;\n flex-direction: column;\n letter-spacing: 0.02em;\n}\n.slide__main-description {\n display: grid;\n gap: 40px;\n color: var(--color-text-neutral-disabled);\n max-inline-size: 370px;\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n --ch-combo-box__popover-max-inline-size: 400px;\n}\n\n.main-btn {\n inline-size: 100%;\n max-inline-size: 124px;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}\n.hyperlink {\n text-decoration: underline;\n cursor: pointer;\n}\n\n.field-inline > .label-agreement {\n margin-block-start: 0 !important;\n}";
|
|
16
16
|
|
|
17
|
-
var r = undefined && undefined.__classPrivateFieldGet || function(i,
|
|
18
|
-
if (
|
|
19
|
-
if (typeof
|
|
20
|
-
return
|
|
17
|
+
var r = undefined && undefined.__classPrivateFieldGet || function(i, n, e, s) {
|
|
18
|
+
if (e === "a" && !s) throw new TypeError("Private accessor was defined without a getter");
|
|
19
|
+
if (typeof n === "function" ? i !== n || !s : !n.has(i)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
20
|
+
return e === "m" ? s : e === "a" ? s.call(i) : s ? s.value : n.get(i);
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
var
|
|
23
|
+
var l = undefined && undefined.__classPrivateFieldSet || function(i, n, e, s, t) {
|
|
24
24
|
if (s === "m") throw new TypeError("Private method is not writable");
|
|
25
25
|
if (s === "a" && !t) throw new TypeError("Private accessor was defined without a setter");
|
|
26
|
-
if (typeof
|
|
27
|
-
return s === "a" ? t.call(i,
|
|
26
|
+
if (typeof n === "function" ? i !== n || !t : !n.has(i)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
27
|
+
return s === "a" ? t.call(i, e) : t ? t.value = e : n.set(i, e), e;
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
var h, c, d, p, f, m,
|
|
30
|
+
var h, c, d, p, f, m, g, u, b, x, w, v, k, _;
|
|
31
31
|
|
|
32
32
|
const y = i(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
|
|
33
33
|
|
|
@@ -37,51 +37,51 @@ const W = [ "resets/box-sizing", "utils/typography", "components/button", "compo
|
|
|
37
37
|
|
|
38
38
|
const M = "on";
|
|
39
39
|
|
|
40
|
-
const
|
|
40
|
+
const C = class {
|
|
41
41
|
constructor(i) {
|
|
42
|
-
|
|
42
|
+
n(this, i);
|
|
43
43
|
/**
|
|
44
44
|
* The component hard-coded strings translations.
|
|
45
45
|
*/
|
|
46
46
|
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
47
47
|
h.set(this, void 0);
|
|
48
|
-
// Select
|
|
48
|
+
// Select Organization References :
|
|
49
49
|
c.set(this, []);
|
|
50
50
|
d.set(this, void 0);
|
|
51
51
|
p.set(this, 100);
|
|
52
52
|
f.set(this, void 0);
|
|
53
53
|
m.set(this, void 0);
|
|
54
|
-
|
|
54
|
+
g.set(this, (() => {
|
|
55
55
|
if (this.authStep === "signIn") {
|
|
56
56
|
this.signInCallback();
|
|
57
|
-
} else if (this.authStep === "
|
|
58
|
-
r(this,
|
|
57
|
+
} else if (this.authStep === "selectOrganization") {
|
|
58
|
+
r(this, u, "f").call(this);
|
|
59
59
|
}
|
|
60
60
|
}));
|
|
61
|
-
|
|
61
|
+
u.set(this, (async () => {
|
|
62
62
|
await this.continueCallback(r(this, d, "f").value);
|
|
63
63
|
}));
|
|
64
|
-
b.set(this, (() =>
|
|
64
|
+
b.set(this, (() => e("header", {
|
|
65
65
|
class: "slide__main-header"
|
|
66
|
-
},
|
|
66
|
+
}, e("img", {
|
|
67
67
|
src: z,
|
|
68
68
|
alt: ""
|
|
69
|
-
}),
|
|
69
|
+
}), e("h2", {
|
|
70
70
|
// Split the title into two spans for better styling
|
|
71
71
|
class: "slide__main-title heading-2"
|
|
72
|
-
},
|
|
72
|
+
}, e("span", null, r(this, h, "f")[this.authStepInternal].titlePart1), e("span", null, r(this, h, "f")[this.authStepInternal].titlePart2)))));
|
|
73
73
|
x.set(this, (() => {
|
|
74
74
|
const i = this.authStep === "signIn" && this.termsConfirmationRequired && !this.termsAndConditionsAccepted;
|
|
75
|
-
return
|
|
75
|
+
return e("div", null, e("button", {
|
|
76
76
|
class: "button-primary main-btn",
|
|
77
|
-
onClick: r(this,
|
|
77
|
+
onClick: r(this, g, "f"),
|
|
78
78
|
disabled: i
|
|
79
79
|
}, r(this, h, "f")[this.authStepInternal].buttonCaption));
|
|
80
80
|
}));
|
|
81
81
|
w.set(this, (() => {
|
|
82
82
|
const i = r(this, f, "f").value === M;
|
|
83
|
-
const
|
|
84
|
-
this.termsAndConditionsAccepted = i &&
|
|
83
|
+
const n = r(this, m, "f").value === M;
|
|
84
|
+
this.termsAndConditionsAccepted = i && n;
|
|
85
85
|
}));
|
|
86
86
|
v.set(this, (i => {
|
|
87
87
|
i.preventDefault();
|
|
@@ -94,71 +94,71 @@ const T = class {
|
|
|
94
94
|
_.set(this, (() => {
|
|
95
95
|
var i;
|
|
96
96
|
if (this.authStepInternal === "signIn") {
|
|
97
|
-
return [ r(this, b, "f").call(this),
|
|
97
|
+
return [ r(this, b, "f").call(this), e("p", {
|
|
98
98
|
class: "body-regular-l"
|
|
99
|
-
}, r(this, h, "f").signIn.description), this.termsConfirmationRequired &&
|
|
99
|
+
}, r(this, h, "f").signIn.description), this.termsConfirmationRequired && e("div", {
|
|
100
100
|
class: "field-group"
|
|
101
|
-
},
|
|
101
|
+
}, e("div", {
|
|
102
102
|
// terms and conditions
|
|
103
103
|
class: "field field-inline"
|
|
104
|
-
},
|
|
104
|
+
}, e("ch-checkbox", {
|
|
105
105
|
checkedValue: M,
|
|
106
106
|
id: "terms-and-conditions",
|
|
107
107
|
class: "checkbox",
|
|
108
|
-
ref: i =>
|
|
108
|
+
ref: i => l(this, f, i, "f"),
|
|
109
109
|
onInput: r(this, w, "f")
|
|
110
|
-
}),
|
|
110
|
+
}), e("span", null, e("label", {
|
|
111
111
|
htmlFor: "terms-and-conditions",
|
|
112
112
|
class: "label label-agreement"
|
|
113
|
-
}, r(this, h, "f").agreement.termsAndConditionsLabel,
|
|
113
|
+
}, r(this, h, "f").agreement.termsAndConditionsLabel, e("span", {
|
|
114
114
|
class: {
|
|
115
115
|
hyperlink: !!this.termsCallback
|
|
116
116
|
},
|
|
117
117
|
onClick: this.termsCallback && r(this, v, "f")
|
|
118
|
-
}, r(this, h, "f").agreement.termsAndConditionsLink)))),
|
|
118
|
+
}, r(this, h, "f").agreement.termsAndConditionsLink)))), e("div", {
|
|
119
119
|
// privacy policy
|
|
120
120
|
class: "field field-inline"
|
|
121
|
-
},
|
|
121
|
+
}, e("ch-checkbox", {
|
|
122
122
|
checkedValue: M,
|
|
123
123
|
id: "privacy-policy",
|
|
124
124
|
class: "checkbox",
|
|
125
|
-
ref: i =>
|
|
125
|
+
ref: i => l(this, m, i, "f"),
|
|
126
126
|
onInput: r(this, w, "f")
|
|
127
|
-
}),
|
|
127
|
+
}), e("span", null, e("label", {
|
|
128
128
|
htmlFor: "privacy-policy",
|
|
129
129
|
class: "label label-agreement"
|
|
130
|
-
}, r(this, h, "f").agreement.privacyAndPolicyLabel,
|
|
130
|
+
}, r(this, h, "f").agreement.privacyAndPolicyLabel, e("span", {
|
|
131
131
|
class: {
|
|
132
132
|
hyperlink: !!this.privacyCallback
|
|
133
133
|
},
|
|
134
134
|
onClick: this.privacyCallback && r(this, k, "f")
|
|
135
135
|
}, r(this, h, "f").agreement.privacyAndPolicyLink))))), r(this, x, "f").call(this) ];
|
|
136
|
-
} else if (this.authStepInternal === "
|
|
137
|
-
const i = this.authStepInternal === "
|
|
138
|
-
const
|
|
139
|
-
return
|
|
136
|
+
} else if (this.authStepInternal === "fetchOrganizations" || this.authStepInternal === "settingUpSession") {
|
|
137
|
+
const i = this.authStepInternal === "fetchOrganizations" ? r(this, h, "f").loader.fetchingOrganizationsTitle : r(this, h, "f").loader.settingUpSessionTitle;
|
|
138
|
+
const n = this.authStepInternal === "fetchOrganizations" ? r(this, h, "f").loader.fetchingOrganizationsDescription : r(this, h, "f").loader.settingUpDescription;
|
|
139
|
+
return e("gx-ide-loader", {
|
|
140
140
|
show: true,
|
|
141
141
|
loaderTitle: i,
|
|
142
|
-
description:
|
|
142
|
+
description: n
|
|
143
143
|
});
|
|
144
|
-
} else if (this.authStepInternal === "
|
|
145
|
-
return [ r(this, b, "f").call(this),
|
|
146
|
-
class: "slide__select-
|
|
147
|
-
},
|
|
144
|
+
} else if (this.authStepInternal === "selectOrganization") {
|
|
145
|
+
return [ r(this, b, "f").call(this), e("div", {
|
|
146
|
+
class: "slide__select-organization-description"
|
|
147
|
+
}, e("p", {
|
|
148
148
|
class: "body-semi-bold-l"
|
|
149
|
-
}, r(this, h, "f").
|
|
149
|
+
}, r(this, h, "f").selectOrganization.infoMessage)), e("div", {
|
|
150
150
|
class: "field-group"
|
|
151
|
-
},
|
|
151
|
+
}, e("div", {
|
|
152
152
|
class: "field field-block"
|
|
153
|
-
},
|
|
154
|
-
htmlFor: "
|
|
155
|
-
}, r(this, h, "f").
|
|
156
|
-
id: "
|
|
157
|
-
accessibleName: "
|
|
158
|
-
class: "combo-box
|
|
153
|
+
}, e("label", {
|
|
154
|
+
htmlFor: "organizations"
|
|
155
|
+
}, r(this, h, "f").selectOrganization.label), e("ch-combo-box-render", {
|
|
156
|
+
id: "organizations",
|
|
157
|
+
accessibleName: "Organizations",
|
|
158
|
+
class: "combo-box organizations-list",
|
|
159
159
|
model: r(this, c, "f"),
|
|
160
160
|
value: (i = r(this, c, "f")[0]) === null || i === void 0 ? void 0 : i.value,
|
|
161
|
-
ref: i =>
|
|
161
|
+
ref: i => l(this, d, i, "f")
|
|
162
162
|
}))), r(this, x, "f").call(this) ];
|
|
163
163
|
}
|
|
164
164
|
}));
|
|
@@ -169,7 +169,7 @@ const T = class {
|
|
|
169
169
|
this.continueCallback = undefined;
|
|
170
170
|
this.signInCallback = undefined;
|
|
171
171
|
this.termsConfirmationRequired = false;
|
|
172
|
-
this.
|
|
172
|
+
this.organizations = undefined;
|
|
173
173
|
this.termsCallback = undefined;
|
|
174
174
|
this.privacyCallback = undefined;
|
|
175
175
|
}
|
|
@@ -184,36 +184,36 @@ const T = class {
|
|
|
184
184
|
this.slideIsVisible = true;
|
|
185
185
|
}), r(this, p, "f") * 2);
|
|
186
186
|
}
|
|
187
|
-
|
|
188
|
-
|
|
187
|
+
organizationsChanged(i) {
|
|
188
|
+
l(this, c, mapOrganizationsToComboBoxItemModel(i), "f");
|
|
189
189
|
}
|
|
190
190
|
async componentWillLoad() {
|
|
191
|
-
|
|
191
|
+
l(this, h, await a.getComponentStrings(this.el), "f");
|
|
192
192
|
this.el.style.setProperty("--switch-step-transtion-time", r(this, p, "f").toString() + "ms");
|
|
193
193
|
// Initialize values
|
|
194
194
|
this.authStepInternal = this.authStep;
|
|
195
|
-
this.
|
|
195
|
+
this.organizationsChanged(this.organizations);
|
|
196
196
|
}
|
|
197
197
|
render() {
|
|
198
|
-
return
|
|
198
|
+
return e(s, null, e("ch-theme", {
|
|
199
199
|
model: W
|
|
200
|
-
}),
|
|
200
|
+
}), e("section", {
|
|
201
201
|
class: "slide"
|
|
202
|
-
},
|
|
202
|
+
}, e("img", {
|
|
203
203
|
src: y,
|
|
204
204
|
class: "slide__illustration",
|
|
205
205
|
alt: ""
|
|
206
|
-
}),
|
|
206
|
+
}), e("div", {
|
|
207
207
|
class: {
|
|
208
208
|
slide__main: true,
|
|
209
209
|
"slide__main--visible": this.slideIsVisible
|
|
210
210
|
}
|
|
211
|
-
},
|
|
211
|
+
}, e("div", {
|
|
212
212
|
class: "slide__main-container"
|
|
213
213
|
}, r(this, _, "f").call(this)))));
|
|
214
214
|
}
|
|
215
215
|
static get assetsDirs() {
|
|
216
|
-
return [ "gx-ide-assets/sign-in-
|
|
216
|
+
return [ "gx-ide-assets/sign-in-organization" ];
|
|
217
217
|
}
|
|
218
218
|
get el() {
|
|
219
219
|
return t(this);
|
|
@@ -221,16 +221,16 @@ const T = class {
|
|
|
221
221
|
static get watchers() {
|
|
222
222
|
return {
|
|
223
223
|
authStep: [ "authStepChanged" ],
|
|
224
|
-
|
|
224
|
+
organizations: [ "organizationsChanged" ]
|
|
225
225
|
};
|
|
226
226
|
}
|
|
227
227
|
};
|
|
228
228
|
|
|
229
229
|
h = new WeakMap, c = new WeakMap, d = new WeakMap, p = new WeakMap, f = new WeakMap,
|
|
230
|
-
m = new WeakMap,
|
|
230
|
+
m = new WeakMap, g = new WeakMap, u = new WeakMap, b = new WeakMap, x = new WeakMap,
|
|
231
231
|
w = new WeakMap, v = new WeakMap, k = new WeakMap, _ = new WeakMap;
|
|
232
232
|
|
|
233
|
-
|
|
233
|
+
C.style = o;
|
|
234
234
|
|
|
235
|
-
export {
|
|
236
|
-
//# sourceMappingURL=p-
|
|
235
|
+
export { C as gx_ide_sign_in_organization };
|
|
236
|
+
//# sourceMappingURL=p-15b1c9be.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mapOrganizationsToComboBoxItemModel","organizations","map","organization","value","id","caption","name","signInOrganizationCss","COPYRIGHTS_ILLUSTRATION","getAssetPath","ICON_NEXT","CSS_BUNDLES","CHECKED_VALUE","GxIdeSignInOrganization","_GxIdeSignInOrganization_componentLocale","set","this","_GxIdeSignInOrganization_organizationsModel","_GxIdeSignInOrganization_chSelectOrganizationEl","_GxIdeSignInOrganization_switchStepTransitionTime","_GxIdeSignInOrganization_termsAndConditionsCheckboxEl","_GxIdeSignInOrganization_privacyPolicyCheckboxEl","_GxIdeSignInOrganization_authStepCallback","authStep","signInCallback","__classPrivateFieldGet","_GxIdeSignInOrganization_continueHandler","call","async","continueCallback","_GxIdeSignInOrganization_renderStepHeader","h","class","src","alt","authStepInternal","titlePart1","titlePart2","_GxIdeSignInOrganization_renderStepFooter","signInDisabled","termsConfirmationRequired","termsAndConditionsAccepted","onClick","disabled","buttonCaption","_GxIdeSignInOrganization_evaluateTermsConditionsAndPrivacyAccepted","privacyPolicyAccepted","_GxIdeSignInOrganization_termsAndConditionsClickedHandler","event","preventDefault","termsCallback","_GxIdeSignInOrganization_privacyPolicyClickedHandler","privacyCallback","_GxIdeSignInOrganization_evaluateStepRender","signIn","description","checkedValue","ref","el","__classPrivateFieldSet","onInput","htmlFor","agreement","termsAndConditionsLabel","hyperlink","termsAndConditionsLink","privacyAndPolicyLabel","privacyAndPolicyLink","loaderTitle","loader","fetchingOrganizationsTitle","settingUpSessionTitle","loaderDescription","fetchingOrganizationsDescription","settingUpDescription","show","selectOrganization","infoMessage","label","accessibleName","model","_a","authStepChanged","newAuthStep","slideIsVisible","setTimeout","organizationsChanged","newOrganizations","componentWillLoad","Locale","getComponentStrings","style","setProperty","toString","render","Host","slide__main"],"sources":["src/components/sign-in-organization/helpers.ts","src/components/sign-in-organization/sign-in-organization.scss?tag=gx-ide-sign-in-organization&encapsulation=shadow","src/components/sign-in-organization/sign-in-organization.tsx"],"sourcesContent":["import { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { OrganizationData } from \"./sign-in-organization\";\n\nexport const mapOrganizationsToComboBoxItemModel = (\n organizations?: OrganizationData[]\n): ComboBoxItemModel[] | undefined => {\n if (!organizations) {\n return [];\n }\n return organizations.map(organization => ({\n value: organization.id,\n caption: organization.name\n }));\n};\n",":host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--color-accent-surface-elevation-1);\n border-radius: var(--dialog-border-radius, 16px);\n overflow: hidden;\n\n &__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n }\n\n &__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: 48px;\n transform: translateY(4px);\n transition: var(--switch-step-transtion-time) all;\n opacity: 0;\n\n &--visible {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n &__main-container {\n display: grid;\n place-self: center;\n gap: var(--spacing-gap-xxl);\n max-inline-size: 480px;\n }\n\n &__main-header {\n display: grid;\n gap: var(--spacing-gap-xxl);\n }\n\n &__main-title {\n display: flex;\n flex-direction: column;\n letter-spacing: 0.02em;\n }\n\n &__main-description {\n display: grid;\n gap: 40px;\n color: var(--color-text-neutral-disabled);\n max-inline-size: 370px;\n }\n}\n\n.teams-list {\n inline-size: 100%;\n max-inline-size: 400px;\n --ch-combo-box__popover-max-inline-size: 400px;\n}\n\n.main-btn {\n inline-size: 100%;\n max-inline-size: 124px;\n}\n\n@container host-container (max-width: 768px) {\n .slide {\n grid-template-columns: 1fr 2fr;\n }\n}\n\n@container host-container (max-width: 640px) {\n .slide {\n grid-template-columns: 1fr 5fr;\n }\n}\n\n// WA (this class should be defined on Mercury\n.hyperlink {\n text-decoration: underline;\n cursor: pointer;\n}\n// WA checkboxes labels should not include margin-block-start when\n// placed inside a field-inline.\n.field-inline > .label-agreement {\n margin-block-start: 0 !important;\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Watch,\n Element,\n getAssetPath\n} from \"@stencil/core\";\n// Other Libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\n// Custom Imports\nimport { Locale } from \"../../common/locale\";\nimport { mapOrganizationsToComboBoxItemModel } 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-organization\",\n styleUrl: \"sign-in-organization.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/sign-in-organization\"]\n})\nexport class GxIdeSignInOrganization {\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 Organization References :\n #organizationsModel: ComboBoxItemModel[] = [];\n #chSelectOrganizationEl: HTMLChComboBoxRenderElement;\n #switchStepTransitionTime: number = 100;\n #termsAndConditionsCheckboxEl!: HTMLChCheckboxElement;\n #privacyPolicyCheckboxEl!: HTMLChCheckboxElement;\n\n @Element() el: HTMLGxIdeSignInOrganizationElement;\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!: (organizationId: 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 organizations\n */\n @Prop() readonly organizations!: OrganizationData[];\n @Watch(\"organizations\")\n organizationsChanged(newOrganizations: OrganizationData[]) {\n this.#organizationsModel =\n mapOrganizationsToComboBoxItemModel(newOrganizations);\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.organizationsChanged(this.organizations);\n }\n\n #authStepCallback = () => {\n if (this.authStep === \"signIn\") {\n this.signInCallback();\n } else if (this.authStep === \"selectOrganization\") {\n this.#continueHandler();\n }\n };\n\n #continueHandler = async () => {\n await this.continueCallback(this.#chSelectOrganizationEl.value);\n };\n\n #renderStepHeader = (): HTMLElement => {\n return (\n <header class=\"slide__main-header\">\n <img\n src={ICON_NEXT}\n alt=\"\" // decorative\n />\n <h2\n // Split the title into two spans for better styling\n class=\"slide__main-title heading-2\"\n >\n <span>{this.#componentLocale[this.authStepInternal].titlePart1}</span>\n <span>{this.#componentLocale[this.authStepInternal].titlePart2}</span>\n </h2>\n </header>\n );\n };\n\n #renderStepFooter = (): HTMLElement => {\n const signInDisabled =\n this.authStep === \"signIn\" &&\n this.termsConfirmationRequired &&\n !this.termsAndConditionsAccepted;\n return (\n <div>\n <button\n class=\"button-primary main-btn\"\n onClick={this.#authStepCallback}\n disabled={signInDisabled}\n >\n {this.#componentLocale[this.authStepInternal].buttonCaption}\n </button>\n </div>\n );\n };\n\n #evaluateTermsConditionsAndPrivacyAccepted = () => {\n const termsAndConditionsAccepted =\n this.#termsAndConditionsCheckboxEl.value === CHECKED_VALUE;\n const privacyPolicyAccepted =\n this.#privacyPolicyCheckboxEl.value === CHECKED_VALUE;\n this.termsAndConditionsAccepted =\n termsAndConditionsAccepted && privacyPolicyAccepted;\n };\n\n #termsAndConditionsClickedHandler = (event: MouseEvent) => {\n event.preventDefault();\n this.termsCallback();\n };\n\n #privacyPolicyClickedHandler = (event: MouseEvent) => {\n event.preventDefault();\n this.privacyCallback();\n };\n\n #evaluateStepRender = () => {\n if (this.authStepInternal === \"signIn\") {\n return [\n this.#renderStepHeader(),\n <p class=\"body-regular-l\">\n {this.#componentLocale.signIn.description}\n </p>,\n this.termsConfirmationRequired && (\n <div class=\"field-group\">\n <div\n // terms and conditions\n class=\"field field-inline\"\n >\n <ch-checkbox\n checkedValue={CHECKED_VALUE}\n id=\"terms-and-conditions\"\n class=\"checkbox\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#termsAndConditionsCheckboxEl =\n el as HTMLChCheckboxElement)\n }\n onInput={this.#evaluateTermsConditionsAndPrivacyAccepted}\n ></ch-checkbox>\n <span>\n {/*\n WA: this span prevents field-inline applying padding-block-start on the label\n TODO: See how to ignore padding-block-start when using field-inline with a control\n that is not an input, combo-box, etc..\n */}\n <label\n htmlFor=\"terms-and-conditions\"\n class=\"label label-agreement\"\n >\n {this.#componentLocale.agreement.termsAndConditionsLabel}\n <span\n class={{ hyperlink: !!this.termsCallback }}\n onClick={\n this.termsCallback &&\n this.#termsAndConditionsClickedHandler\n }\n >\n {this.#componentLocale.agreement.termsAndConditionsLink}\n </span>\n </label>\n </span>\n </div>\n <div\n // privacy policy\n class=\"field field-inline\"\n >\n <ch-checkbox\n checkedValue={CHECKED_VALUE}\n id=\"privacy-policy\"\n class=\"checkbox\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#privacyPolicyCheckboxEl = el as HTMLChCheckboxElement)\n }\n onInput={this.#evaluateTermsConditionsAndPrivacyAccepted}\n ></ch-checkbox>\n <span>\n {/*\n WA: this span prevents field-inline applying padding-block-start on the label\n TODO: See how to ignore padding-block-start when using field-inline with a control\n that is not an input, combo-box, etc..\n */}\n <label htmlFor=\"privacy-policy\" class=\"label label-agreement\">\n {this.#componentLocale.agreement.privacyAndPolicyLabel}\n <span\n class={{ hyperlink: !!this.privacyCallback }}\n onClick={\n this.privacyCallback && this.#privacyPolicyClickedHandler\n }\n >\n {this.#componentLocale.agreement.privacyAndPolicyLink}\n </span>\n </label>\n </span>\n </div>\n </div>\n ),\n\n this.#renderStepFooter()\n ];\n } else if (\n this.authStepInternal === \"fetchOrganizations\" ||\n this.authStepInternal === \"settingUpSession\"\n ) {\n const loaderTitle =\n this.authStepInternal === \"fetchOrganizations\"\n ? this.#componentLocale.loader.fetchingOrganizationsTitle\n : this.#componentLocale.loader.settingUpSessionTitle;\n const loaderDescription =\n this.authStepInternal === \"fetchOrganizations\"\n ? this.#componentLocale.loader.fetchingOrganizationsDescription\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 === \"selectOrganization\") {\n return [\n this.#renderStepHeader(),\n <div class=\"slide__select-organization-description\">\n <p class=\"body-semi-bold-l\">\n {this.#componentLocale.selectOrganization.infoMessage}\n </p>\n </div>,\n <div class=\"field-group\">\n <div class=\"field field-block\">\n <label htmlFor=\"organizations\">\n {this.#componentLocale.selectOrganization.label}\n </label>\n <ch-combo-box-render\n id=\"organizations\"\n accessibleName=\"Organizations\"\n class=\"combo-box organizations-list\"\n model={this.#organizationsModel}\n value={this.#organizationsModel[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#chSelectOrganizationEl =\n 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 | \"fetchOrganizations\"\n | \"selectOrganization\"\n | \"settingUpSession\";\n\nexport type OrganizationData = {\n id: string;\n name: string;\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { g as n, r as e, h as i, H as t, a as s } from "./p-9b9ccd0c.js";
|
|
2
|
+
|
|
3
|
+
import { L as a } from "./p-311eedf3.js";
|
|
4
|
+
|
|
5
|
+
const mapItemsToComboBoxItemModel = n => n === null || n === void 0 ? void 0 : n.map((n => ({
|
|
6
|
+
value: n.id,
|
|
7
|
+
caption: n.name
|
|
8
|
+
})));
|
|
9
|
+
|
|
10
|
+
const o = "button.button-secondary {\n border-color: var(--color-border-neutral-default);\n}\n\n:host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n border-radius: var(--border-radius-m);\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--color-accent-surface-elevation-1);\n overflow: hidden;\n}\n.slide__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n}\n.slide__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: 48px;\n transform: translateY(4px);\n transition: var(--display-items-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(--spacing-gap-xxl);\n inline-size: 100%;\n max-inline-size: 480px;\n}\n.slide__main-header {\n display: grid;\n gap: var(--spacing-gap-xxl);\n}\n.slide__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--font-size-header-h2);\n font-weight: var(--font-style-semi-bold);\n letter-spacing: 0.02em;\n line-height: var(--line-height-tight);\n color: var(--color-text-neutral-strawberry);\n}\n.slide__main-description {\n display: grid;\n gap: 40px;\n font-size: var(--font-size-body-l);\n font-weight: var(--font-style-regular);\n line-height: var(--line-height-spacious);\n color: var(--color-text-neutral-disabled);\n}\n\n.terms-conditions {\n text-decoration: underline;\n}\n\n.items-list {\n inline-size: 100%;\n --ch-combo-box__popover-max-inline-size: 100%;\n}\n\n.buttons-container {\n display: flex;\n inline-size: 100%;\n gap: var(--spacing-gap-xl);\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
|
+
|
|
12
|
+
var r = undefined && undefined.__classPrivateFieldGet || function(n, e, i, t) {
|
|
13
|
+
if (i === "a" && !t) throw new TypeError("Private accessor was defined without a getter");
|
|
14
|
+
if (typeof e === "function" ? n !== e || !t : !e.has(n)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
15
|
+
return i === "m" ? t : i === "a" ? t.call(n) : t ? t.value : e.get(n);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
var l = undefined && undefined.__classPrivateFieldSet || function(n, e, i, t, s) {
|
|
19
|
+
if (t === "m") throw new TypeError("Private method is not writable");
|
|
20
|
+
if (t === "a" && !s) throw new TypeError("Private accessor was defined without a setter");
|
|
21
|
+
if (typeof e === "function" ? n !== e || !s : !e.has(n)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
22
|
+
return t === "a" ? s.call(n, i) : s ? s.value = i : e.set(n, i), i;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
var d, c, h, m, f, p;
|
|
26
|
+
|
|
27
|
+
const u = n(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
|
|
28
|
+
|
|
29
|
+
const g = n(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
|
|
30
|
+
|
|
31
|
+
const v = [ "resets/box-sizing", "utils/typography", "components/button", "components/combo-box" ];
|
|
32
|
+
|
|
33
|
+
const b = class {
|
|
34
|
+
constructor(n) {
|
|
35
|
+
e(this, n);
|
|
36
|
+
/**
|
|
37
|
+
* The component hard-coded strings translations.
|
|
38
|
+
*/
|
|
39
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
40
|
+
d.set(this, void 0);
|
|
41
|
+
c.set(this, []);
|
|
42
|
+
h.set(this, void 0);
|
|
43
|
+
m.set(this, 100);
|
|
44
|
+
f.set(this, (async () => {
|
|
45
|
+
await this.confirmCallback(r(this, h, "f").value);
|
|
46
|
+
}));
|
|
47
|
+
p.set(this, (async () => {
|
|
48
|
+
await this.cancelCallback();
|
|
49
|
+
}));
|
|
50
|
+
this.slideIsVisible = false;
|
|
51
|
+
this.itemsModelReady = false;
|
|
52
|
+
this.cancelCallback = undefined;
|
|
53
|
+
this.confirmCallback = undefined;
|
|
54
|
+
this.selectionType = "team";
|
|
55
|
+
this.items = undefined;
|
|
56
|
+
}
|
|
57
|
+
itemsChanged(n) {
|
|
58
|
+
this.slideIsVisible = false;
|
|
59
|
+
if (!(n === null || n === void 0 ? void 0 : n.length)) {
|
|
60
|
+
this.itemsModelReady = false;
|
|
61
|
+
setTimeout((() => {
|
|
62
|
+
this.slideIsVisible = true;
|
|
63
|
+
}), r(this, m, "f"));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// switch step
|
|
67
|
+
setTimeout((() => {
|
|
68
|
+
l(this, c, mapItemsToComboBoxItemModel(n), "f");
|
|
69
|
+
this.itemsModelReady = true;
|
|
70
|
+
}), r(this, m, "f"));
|
|
71
|
+
// show slide
|
|
72
|
+
setTimeout((() => {
|
|
73
|
+
this.slideIsVisible = true;
|
|
74
|
+
}), r(this, m, "f") * 2);
|
|
75
|
+
}
|
|
76
|
+
async componentWillLoad() {
|
|
77
|
+
var n;
|
|
78
|
+
l(this, d, await a.getComponentStrings(this.el), "f");
|
|
79
|
+
if ((n = this.items) === null || n === void 0 ? void 0 : n.length) {
|
|
80
|
+
l(this, c, mapItemsToComboBoxItemModel(this.items), "f");
|
|
81
|
+
this.itemsModelReady = true;
|
|
82
|
+
}
|
|
83
|
+
this.el.style.setProperty("--display-items-transtion-time", r(this, m, "f").toString() + "ms");
|
|
84
|
+
}
|
|
85
|
+
componentDidLoad() {
|
|
86
|
+
this.slideIsVisible = true;
|
|
87
|
+
}
|
|
88
|
+
render() {
|
|
89
|
+
var n;
|
|
90
|
+
const e = r(this, d, "f")[this.selectionType];
|
|
91
|
+
return i(t, null, i("ch-theme", {
|
|
92
|
+
model: v
|
|
93
|
+
}), i("section", {
|
|
94
|
+
class: "slide"
|
|
95
|
+
}, i("img", {
|
|
96
|
+
src: u,
|
|
97
|
+
class: "slide__illustration",
|
|
98
|
+
alt: ""
|
|
99
|
+
}), i("div", {
|
|
100
|
+
class: {
|
|
101
|
+
slide__main: true,
|
|
102
|
+
"slide__main--visible": this.slideIsVisible
|
|
103
|
+
}
|
|
104
|
+
}, i("div", {
|
|
105
|
+
class: "slide__main-container"
|
|
106
|
+
}, this.itemsModelReady ? [ i("header", {
|
|
107
|
+
class: "slide__main-header"
|
|
108
|
+
}, i("img", {
|
|
109
|
+
src: g,
|
|
110
|
+
alt: ""
|
|
111
|
+
}), i("h2", {
|
|
112
|
+
// Split the title into two spans for better styling
|
|
113
|
+
class: "slide__main-title"
|
|
114
|
+
}, i("span", null, e.title))), i("div", {
|
|
115
|
+
class: "slide__select-item-description"
|
|
116
|
+
}, i("p", {
|
|
117
|
+
class: "body-semi-bold-l"
|
|
118
|
+
}, e.infoMessage)), i("div", {
|
|
119
|
+
class: "field-group"
|
|
120
|
+
}, i("div", {
|
|
121
|
+
class: "field field-block"
|
|
122
|
+
}, i("label", {
|
|
123
|
+
htmlFor: "items"
|
|
124
|
+
}, e.label), i("ch-combo-box-render", {
|
|
125
|
+
id: "items",
|
|
126
|
+
accessibleName: e.label,
|
|
127
|
+
class: "combo-box items-list",
|
|
128
|
+
model: r(this, c, "f"),
|
|
129
|
+
value: r(this, c, "f") && ((n = r(this, c, "f")[0]) === null || n === void 0 ? void 0 : n.value),
|
|
130
|
+
ref: n => l(this, h, n, "f")
|
|
131
|
+
}))), i("div", {
|
|
132
|
+
class: "buttons-container"
|
|
133
|
+
}, i("button", {
|
|
134
|
+
class: "button-primary continue-btn",
|
|
135
|
+
onClick: r(this, f, "f")
|
|
136
|
+
}, r(this, d, "f").confirmButtonCaption), i("button", {
|
|
137
|
+
class: "button-secondary cancel-btn",
|
|
138
|
+
onClick: r(this, p, "f")
|
|
139
|
+
}, r(this, d, "f").cancelButtonCaption)) ] : i("gx-ide-loader", {
|
|
140
|
+
show: true,
|
|
141
|
+
loaderTitle: r(this, d, "f").loader.title,
|
|
142
|
+
description: r(this, d, "f").loader.description
|
|
143
|
+
})))));
|
|
144
|
+
}
|
|
145
|
+
static get assetsDirs() {
|
|
146
|
+
return [ "gx-ide-assets/select-team-or-org" ];
|
|
147
|
+
}
|
|
148
|
+
get el() {
|
|
149
|
+
return s(this);
|
|
150
|
+
}
|
|
151
|
+
static get watchers() {
|
|
152
|
+
return {
|
|
153
|
+
items: [ "itemsChanged" ]
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
d = new WeakMap, c = new WeakMap, h = new WeakMap, m = new WeakMap, f = new WeakMap,
|
|
159
|
+
p = new WeakMap;
|
|
160
|
+
|
|
161
|
+
b.style = o;
|
|
162
|
+
|
|
163
|
+
export { b as gx_ide_select_team_or_org };
|
|
164
|
+
//# sourceMappingURL=p-2129d0d2.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mapItemsToComboBoxItemModel","items","map","item","value","id","caption","name","selectTeamOrOrgCss","COPYRIGHTS_ILLUSTRATION","getAssetPath","ICON_NEXT","CSS_BUNDLES","GxIdeSelectTeamOrOrg","_GxIdeSelectTeamOrOrg_componentLocale","set","this","_GxIdeSelectTeamOrOrg_itemsModel","_GxIdeSelectTeamOrOrg_chSelectItemEl","_GxIdeSelectTeamOrOrg_displayItemsTransitionTime","_GxIdeSelectTeamOrOrg_continueHandler","async","confirmCallback","__classPrivateFieldGet","_GxIdeSelectTeamOrOrg_cancelHandler","cancelCallback","itemsChanged","newItems","slideIsVisible","length","itemsModelReady","setTimeout","__classPrivateFieldSet","componentWillLoad","Locale","getComponentStrings","el","_a","style","setProperty","toString","componentDidLoad","render","kindLocale","selectionType","h","Host","model","class","src","alt","slide__main","title","infoMessage","htmlFor","label","accessibleName","ref","onClick","confirmButtonCaption","cancelButtonCaption","show","loaderTitle","loader","description"],"sources":["src/components/select-team-or-org/helpers.tsx","src/components/select-team-or-org/select-team-or-org.scss?tag=gx-ide-select-team-or-org&encapsulation=shadow","src/components/select-team-or-org/select-team-or-org.tsx"],"sourcesContent":["import { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { SelectableItem } from \"./select-team-or-org\";\n\nexport const mapItemsToComboBoxItemModel = (\n items: SelectableItem[]\n): ComboBoxItemModel[] => {\n return items?.map(item => {\n return {\n value: item.id,\n caption: item.name\n };\n });\n};\n","@import \"../../global/temporary-mercury-overrides/_button.scss\";\n\n:host {\n display: grid;\n container-type: inline-size;\n container-name: host-container;\n block-size: 100%;\n inline-size: 100%;\n align-items: center;\n justify-content: center;\n}\n\n.slide {\n display: grid;\n grid-template-columns: 1fr 1fr;\n block-size: 100%;\n border-radius: var(--border-radius-m);\n max-block-size: 700px;\n max-inline-size: 1100px;\n background-color: var(--color-accent-surface-elevation-1);\n overflow: hidden;\n\n &__illustration {\n overflow: hidden;\n object-fit: cover;\n object-position: left;\n block-size: 100%;\n inline-size: 100%;\n }\n\n &__main {\n display: grid;\n block-size: 100%;\n inline-size: 100%;\n padding: 48px;\n transform: translateY(4px);\n transition: var(--display-items-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(--spacing-gap-xxl);\n inline-size: 100%;\n max-inline-size: 480px;\n }\n\n &__main-header {\n display: grid;\n gap: var(--spacing-gap-xxl);\n }\n\n &__main-title {\n display: flex;\n flex-direction: column;\n font-size: var(--font-size-header-h2);\n font-weight: var(--font-style-semi-bold);\n letter-spacing: 0.02em;\n line-height: var(--line-height-tight);\n color: var(--color-text-neutral-strawberry);\n }\n\n &__main-description {\n display: grid;\n gap: 40px;\n font-size: var(--font-size-body-l);\n font-weight: var(--font-style-regular);\n line-height: var(--line-height-spacious);\n color: var(--color-text-neutral-disabled);\n }\n}\n\n.terms-conditions {\n text-decoration: underline;\n}\n\n.items-list {\n inline-size: 100%;\n --ch-combo-box__popover-max-inline-size: 100%;\n}\n\n.buttons-container {\n display: flex;\n inline-size: 100%;\n gap: var(--spacing-gap-xl);\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 { mapItemsToComboBoxItemModel } 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-team-or-org\",\n styleUrl: \"select-team-or-org.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-team-or-org\"]\n})\nexport class GxIdeSelectTeamOrOrg {\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 #itemsModel: ComboBoxItemModel[] = [];\n #chSelectItemEl: HTMLChComboBoxRenderElement;\n #displayItemsTransitionTime: number = 100;\n\n @Element() el: HTMLGxIdeSelectTeamOrOrgElement;\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 items model is ready to be rendered.\n */\n @State() itemsModelReady: 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 'Confirm' button\n */\n @Prop() readonly confirmCallback!: (itemId: string) => Promise<void>;\n\n /**\n * Whether the picker is selecting a team or an organization.\n * Drives the title, info message and combo label.\n */\n @Prop() readonly selectionType: SelectionType = \"team\";\n\n /**\n * Array that contains the selectable items (teams or organizations).\n */\n @Prop() readonly items!: SelectableItem[];\n @Watch(\"items\")\n itemsChanged(newItems: SelectableItem[]) {\n this.slideIsVisible = false;\n\n if (!newItems?.length) {\n this.itemsModelReady = false;\n setTimeout(() => {\n this.slideIsVisible = true;\n }, this.#displayItemsTransitionTime);\n return;\n }\n\n // switch step\n setTimeout(() => {\n this.#itemsModel = mapItemsToComboBoxItemModel(newItems);\n this.itemsModelReady = true;\n }, this.#displayItemsTransitionTime);\n // show slide\n setTimeout(() => {\n this.slideIsVisible = true;\n }, this.#displayItemsTransitionTime * 2);\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n if (this.items?.length) {\n this.#itemsModel = mapItemsToComboBoxItemModel(this.items);\n this.itemsModelReady = true;\n }\n\n this.el.style.setProperty(\n \"--display-items-transtion-time\",\n this.#displayItemsTransitionTime.toString() + \"ms\"\n );\n }\n\n componentDidLoad() {\n this.slideIsVisible = true;\n }\n\n #continueHandler = async () => {\n await this.confirmCallback(this.#chSelectItemEl.value);\n };\n\n #cancelHandler = async () => {\n await this.cancelCallback();\n };\n\n render() {\n const kindLocale = this.#componentLocale[this.selectionType];\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.itemsModelReady ? (\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>{kindLocale.title}</span>\n </h2>\n </header>,\n <div class=\"slide__select-item-description\">\n <p class=\"body-semi-bold-l\">{kindLocale.infoMessage}</p>\n </div>,\n <div class=\"field-group\">\n <div class=\"field field-block\">\n <label htmlFor=\"items\">{kindLocale.label}</label>\n <ch-combo-box-render\n id=\"items\"\n accessibleName={kindLocale.label}\n class=\"combo-box items-list\"\n model={this.#itemsModel}\n value={this.#itemsModel && this.#itemsModel[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#chSelectItemEl =\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.confirmButtonCaption}\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 SelectableItem = {\n id: string;\n name: string;\n};\n\nexport type SelectionType = \"team\" | \"organization\";\n"],"mappings":"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"}
|