@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
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { g as getAssetPath, r as registerInstance, h, H as Host, a as getElement } from './index-b153bfd0.js';
|
|
2
|
+
import { L as Locale } from './locale-e5107fad.js';
|
|
3
|
+
|
|
4
|
+
const mapItemsToComboBoxItemModel = (items) => {
|
|
5
|
+
return items === null || items === void 0 ? void 0 : items.map(item => {
|
|
6
|
+
return {
|
|
7
|
+
value: item.id,
|
|
8
|
+
caption: item.name
|
|
9
|
+
};
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const selectTeamOrOrgCss = "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}";
|
|
14
|
+
|
|
15
|
+
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
16
|
+
if (kind === "a" && !f)
|
|
17
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
18
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
19
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
20
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
21
|
+
};
|
|
22
|
+
var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
23
|
+
if (kind === "m")
|
|
24
|
+
throw new TypeError("Private method is not writable");
|
|
25
|
+
if (kind === "a" && !f)
|
|
26
|
+
throw new TypeError("Private accessor was defined without a setter");
|
|
27
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
28
|
+
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
29
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
30
|
+
};
|
|
31
|
+
var _GxIdeSelectTeamOrOrg_componentLocale, _GxIdeSelectTeamOrOrg_itemsModel, _GxIdeSelectTeamOrOrg_chSelectItemEl, _GxIdeSelectTeamOrOrg_displayItemsTransitionTime, _GxIdeSelectTeamOrOrg_continueHandler, _GxIdeSelectTeamOrOrg_cancelHandler;
|
|
32
|
+
const COPYRIGHTS_ILLUSTRATION = getAssetPath(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
|
|
33
|
+
const ICON_NEXT = getAssetPath(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
|
|
34
|
+
const CSS_BUNDLES = [
|
|
35
|
+
"resets/box-sizing",
|
|
36
|
+
"utils/typography",
|
|
37
|
+
"components/button",
|
|
38
|
+
"components/combo-box"
|
|
39
|
+
];
|
|
40
|
+
const GxIdeSelectTeamOrOrg = class {
|
|
41
|
+
constructor(hostRef) {
|
|
42
|
+
registerInstance(this, hostRef);
|
|
43
|
+
/**
|
|
44
|
+
* The component hard-coded strings translations.
|
|
45
|
+
*/
|
|
46
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
47
|
+
_GxIdeSelectTeamOrOrg_componentLocale.set(this, void 0);
|
|
48
|
+
_GxIdeSelectTeamOrOrg_itemsModel.set(this, []);
|
|
49
|
+
_GxIdeSelectTeamOrOrg_chSelectItemEl.set(this, void 0);
|
|
50
|
+
_GxIdeSelectTeamOrOrg_displayItemsTransitionTime.set(this, 100);
|
|
51
|
+
_GxIdeSelectTeamOrOrg_continueHandler.set(this, async () => {
|
|
52
|
+
await this.confirmCallback(__classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_chSelectItemEl, "f").value);
|
|
53
|
+
});
|
|
54
|
+
_GxIdeSelectTeamOrOrg_cancelHandler.set(this, async () => {
|
|
55
|
+
await this.cancelCallback();
|
|
56
|
+
});
|
|
57
|
+
this.slideIsVisible = false;
|
|
58
|
+
this.itemsModelReady = false;
|
|
59
|
+
this.cancelCallback = undefined;
|
|
60
|
+
this.confirmCallback = undefined;
|
|
61
|
+
this.selectionType = "team";
|
|
62
|
+
this.items = undefined;
|
|
63
|
+
}
|
|
64
|
+
itemsChanged(newItems) {
|
|
65
|
+
this.slideIsVisible = false;
|
|
66
|
+
if (!(newItems === null || newItems === void 0 ? void 0 : newItems.length)) {
|
|
67
|
+
this.itemsModelReady = false;
|
|
68
|
+
setTimeout(() => {
|
|
69
|
+
this.slideIsVisible = true;
|
|
70
|
+
}, __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_displayItemsTransitionTime, "f"));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
// switch step
|
|
74
|
+
setTimeout(() => {
|
|
75
|
+
__classPrivateFieldSet(this, _GxIdeSelectTeamOrOrg_itemsModel, mapItemsToComboBoxItemModel(newItems), "f");
|
|
76
|
+
this.itemsModelReady = true;
|
|
77
|
+
}, __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_displayItemsTransitionTime, "f"));
|
|
78
|
+
// show slide
|
|
79
|
+
setTimeout(() => {
|
|
80
|
+
this.slideIsVisible = true;
|
|
81
|
+
}, __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_displayItemsTransitionTime, "f") * 2);
|
|
82
|
+
}
|
|
83
|
+
async componentWillLoad() {
|
|
84
|
+
var _a;
|
|
85
|
+
__classPrivateFieldSet(this, _GxIdeSelectTeamOrOrg_componentLocale, await Locale.getComponentStrings(this.el), "f");
|
|
86
|
+
if ((_a = this.items) === null || _a === void 0 ? void 0 : _a.length) {
|
|
87
|
+
__classPrivateFieldSet(this, _GxIdeSelectTeamOrOrg_itemsModel, mapItemsToComboBoxItemModel(this.items), "f");
|
|
88
|
+
this.itemsModelReady = true;
|
|
89
|
+
}
|
|
90
|
+
this.el.style.setProperty("--display-items-transtion-time", __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_displayItemsTransitionTime, "f").toString() + "ms");
|
|
91
|
+
}
|
|
92
|
+
componentDidLoad() {
|
|
93
|
+
this.slideIsVisible = true;
|
|
94
|
+
}
|
|
95
|
+
render() {
|
|
96
|
+
var _a;
|
|
97
|
+
const kindLocale = __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_componentLocale, "f")[this.selectionType];
|
|
98
|
+
return (h(Host, null, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "slide" }, h("img", { src: COPYRIGHTS_ILLUSTRATION, class: "slide__illustration", alt: "" // decorative
|
|
99
|
+
}), h("div", { class: {
|
|
100
|
+
"slide__main": true,
|
|
101
|
+
"slide__main--visible": this.slideIsVisible
|
|
102
|
+
} }, h("div", { class: "slide__main-container" }, this.itemsModelReady ? ([
|
|
103
|
+
h("header", { class: "slide__main-header" }, h("img", { src: ICON_NEXT, alt: "" // decorative
|
|
104
|
+
}), h("h2", {
|
|
105
|
+
// Split the title into two spans for better styling
|
|
106
|
+
class: "slide__main-title"
|
|
107
|
+
}, h("span", null, kindLocale.title))),
|
|
108
|
+
h("div", { class: "slide__select-item-description" }, h("p", { class: "body-semi-bold-l" }, kindLocale.infoMessage)),
|
|
109
|
+
h("div", { class: "field-group" }, h("div", { class: "field field-block" }, h("label", { htmlFor: "items" }, kindLocale.label), h("ch-combo-box-render", { id: "items", accessibleName: kindLocale.label, class: "combo-box items-list", model: __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_itemsModel, "f"), value: __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_itemsModel, "f") && ((_a = __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_itemsModel, "f")[0]) === null || _a === void 0 ? void 0 : _a.value), ref: (el) => (__classPrivateFieldSet(this, _GxIdeSelectTeamOrOrg_chSelectItemEl, el, "f")) }))),
|
|
110
|
+
h("div", { class: "buttons-container" }, h("button", { class: "button-primary continue-btn", onClick: __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_continueHandler, "f") }, __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_componentLocale, "f").confirmButtonCaption), h("button", { class: "button-secondary cancel-btn", onClick: __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_cancelHandler, "f") }, __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_componentLocale, "f").cancelButtonCaption))
|
|
111
|
+
]) : (h("gx-ide-loader", { show: true, loaderTitle: __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_componentLocale, "f").loader.title, description: __classPrivateFieldGet(this, _GxIdeSelectTeamOrOrg_componentLocale, "f").loader.description })))))));
|
|
112
|
+
}
|
|
113
|
+
static get assetsDirs() { return ["gx-ide-assets/select-team-or-org"]; }
|
|
114
|
+
get el() { return getElement(this); }
|
|
115
|
+
static get watchers() { return {
|
|
116
|
+
"items": ["itemsChanged"]
|
|
117
|
+
}; }
|
|
118
|
+
};
|
|
119
|
+
_GxIdeSelectTeamOrOrg_componentLocale = new WeakMap(), _GxIdeSelectTeamOrOrg_itemsModel = new WeakMap(), _GxIdeSelectTeamOrOrg_chSelectItemEl = new WeakMap(), _GxIdeSelectTeamOrOrg_displayItemsTransitionTime = new WeakMap(), _GxIdeSelectTeamOrOrg_continueHandler = new WeakMap(), _GxIdeSelectTeamOrOrg_cancelHandler = new WeakMap();
|
|
120
|
+
GxIdeSelectTeamOrOrg.style = selectTeamOrOrgCss;
|
|
121
|
+
|
|
122
|
+
export { GxIdeSelectTeamOrOrg as gx_ide_select_team_or_org };
|
|
123
|
+
|
|
124
|
+
//# sourceMappingURL=gx-ide-select-team-or-org.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"gx-ide-select-team-or-org.entry.js","mappings":"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","names":[],"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"],"version":3}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { g as getAssetPath, r as registerInstance, h, H as Host, a as getElement } from './index-b153bfd0.js';
|
|
2
|
+
import { L as Locale } from './locale-e5107fad.js';
|
|
3
|
+
|
|
4
|
+
const mapOrganizationsToComboBoxItemModel = (organizations) => {
|
|
5
|
+
if (!organizations) {
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
return organizations.map(organization => ({
|
|
9
|
+
value: organization.id,
|
|
10
|
+
caption: organization.name
|
|
11
|
+
}));
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const signInOrganizationCss = ":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}";
|
|
15
|
+
|
|
16
|
+
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
17
|
+
if (kind === "a" && !f)
|
|
18
|
+
throw new TypeError("Private accessor was defined without a getter");
|
|
19
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
20
|
+
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
21
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
22
|
+
};
|
|
23
|
+
var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
24
|
+
if (kind === "m")
|
|
25
|
+
throw new TypeError("Private method is not writable");
|
|
26
|
+
if (kind === "a" && !f)
|
|
27
|
+
throw new TypeError("Private accessor was defined without a setter");
|
|
28
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
|
|
29
|
+
throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
30
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
31
|
+
};
|
|
32
|
+
var _GxIdeSignInOrganization_componentLocale, _GxIdeSignInOrganization_organizationsModel, _GxIdeSignInOrganization_chSelectOrganizationEl, _GxIdeSignInOrganization_switchStepTransitionTime, _GxIdeSignInOrganization_termsAndConditionsCheckboxEl, _GxIdeSignInOrganization_privacyPolicyCheckboxEl, _GxIdeSignInOrganization_authStepCallback, _GxIdeSignInOrganization_continueHandler, _GxIdeSignInOrganization_renderStepHeader, _GxIdeSignInOrganization_renderStepFooter, _GxIdeSignInOrganization_evaluateTermsConditionsAndPrivacyAccepted, _GxIdeSignInOrganization_termsAndConditionsClickedHandler, _GxIdeSignInOrganization_privacyPolicyClickedHandler, _GxIdeSignInOrganization_evaluateStepRender;
|
|
33
|
+
const COPYRIGHTS_ILLUSTRATION = getAssetPath(`./gx-ide-assets/welcome-page/images/copyrights-illustration.png`);
|
|
34
|
+
const ICON_NEXT = getAssetPath(`./gx-ide-assets/welcome-page/images/icon-next.svg`);
|
|
35
|
+
const CSS_BUNDLES = [
|
|
36
|
+
"resets/box-sizing",
|
|
37
|
+
"utils/typography",
|
|
38
|
+
"components/button",
|
|
39
|
+
"components/combo-box",
|
|
40
|
+
"components/checkbox",
|
|
41
|
+
"utils/form"
|
|
42
|
+
];
|
|
43
|
+
const CHECKED_VALUE = "on";
|
|
44
|
+
const GxIdeSignInOrganization = class {
|
|
45
|
+
constructor(hostRef) {
|
|
46
|
+
registerInstance(this, hostRef);
|
|
47
|
+
/**
|
|
48
|
+
* The component hard-coded strings translations.
|
|
49
|
+
*/
|
|
50
|
+
// eslint-disable-next-line @stencil-community/own-props-must-be-private
|
|
51
|
+
_GxIdeSignInOrganization_componentLocale.set(this, void 0);
|
|
52
|
+
// Select Organization References :
|
|
53
|
+
_GxIdeSignInOrganization_organizationsModel.set(this, []);
|
|
54
|
+
_GxIdeSignInOrganization_chSelectOrganizationEl.set(this, void 0);
|
|
55
|
+
_GxIdeSignInOrganization_switchStepTransitionTime.set(this, 100);
|
|
56
|
+
_GxIdeSignInOrganization_termsAndConditionsCheckboxEl.set(this, void 0);
|
|
57
|
+
_GxIdeSignInOrganization_privacyPolicyCheckboxEl.set(this, void 0);
|
|
58
|
+
_GxIdeSignInOrganization_authStepCallback.set(this, () => {
|
|
59
|
+
if (this.authStep === "signIn") {
|
|
60
|
+
this.signInCallback();
|
|
61
|
+
}
|
|
62
|
+
else if (this.authStep === "selectOrganization") {
|
|
63
|
+
__classPrivateFieldGet(this, _GxIdeSignInOrganization_continueHandler, "f").call(this);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
_GxIdeSignInOrganization_continueHandler.set(this, async () => {
|
|
67
|
+
await this.continueCallback(__classPrivateFieldGet(this, _GxIdeSignInOrganization_chSelectOrganizationEl, "f").value);
|
|
68
|
+
});
|
|
69
|
+
_GxIdeSignInOrganization_renderStepHeader.set(this, () => {
|
|
70
|
+
return (h("header", { class: "slide__main-header" }, h("img", { src: ICON_NEXT, alt: "" // decorative
|
|
71
|
+
}), h("h2", {
|
|
72
|
+
// Split the title into two spans for better styling
|
|
73
|
+
class: "slide__main-title heading-2"
|
|
74
|
+
}, h("span", null, __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f")[this.authStepInternal].titlePart1), h("span", null, __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f")[this.authStepInternal].titlePart2))));
|
|
75
|
+
});
|
|
76
|
+
_GxIdeSignInOrganization_renderStepFooter.set(this, () => {
|
|
77
|
+
const signInDisabled = this.authStep === "signIn" &&
|
|
78
|
+
this.termsConfirmationRequired &&
|
|
79
|
+
!this.termsAndConditionsAccepted;
|
|
80
|
+
return (h("div", null, h("button", { class: "button-primary main-btn", onClick: __classPrivateFieldGet(this, _GxIdeSignInOrganization_authStepCallback, "f"), disabled: signInDisabled }, __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f")[this.authStepInternal].buttonCaption)));
|
|
81
|
+
});
|
|
82
|
+
_GxIdeSignInOrganization_evaluateTermsConditionsAndPrivacyAccepted.set(this, () => {
|
|
83
|
+
const termsAndConditionsAccepted = __classPrivateFieldGet(this, _GxIdeSignInOrganization_termsAndConditionsCheckboxEl, "f").value === CHECKED_VALUE;
|
|
84
|
+
const privacyPolicyAccepted = __classPrivateFieldGet(this, _GxIdeSignInOrganization_privacyPolicyCheckboxEl, "f").value === CHECKED_VALUE;
|
|
85
|
+
this.termsAndConditionsAccepted =
|
|
86
|
+
termsAndConditionsAccepted && privacyPolicyAccepted;
|
|
87
|
+
});
|
|
88
|
+
_GxIdeSignInOrganization_termsAndConditionsClickedHandler.set(this, (event) => {
|
|
89
|
+
event.preventDefault();
|
|
90
|
+
this.termsCallback();
|
|
91
|
+
});
|
|
92
|
+
_GxIdeSignInOrganization_privacyPolicyClickedHandler.set(this, (event) => {
|
|
93
|
+
event.preventDefault();
|
|
94
|
+
this.privacyCallback();
|
|
95
|
+
});
|
|
96
|
+
_GxIdeSignInOrganization_evaluateStepRender.set(this, () => {
|
|
97
|
+
var _a;
|
|
98
|
+
if (this.authStepInternal === "signIn") {
|
|
99
|
+
return [
|
|
100
|
+
__classPrivateFieldGet(this, _GxIdeSignInOrganization_renderStepHeader, "f").call(this),
|
|
101
|
+
h("p", { class: "body-regular-l" }, __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f").signIn.description),
|
|
102
|
+
this.termsConfirmationRequired && (h("div", { class: "field-group" }, h("div", {
|
|
103
|
+
// terms and conditions
|
|
104
|
+
class: "field field-inline"
|
|
105
|
+
}, h("ch-checkbox", { checkedValue: CHECKED_VALUE, id: "terms-and-conditions", class: "checkbox", ref: (el) => (__classPrivateFieldSet(this, _GxIdeSignInOrganization_termsAndConditionsCheckboxEl, el, "f")), onInput: __classPrivateFieldGet(this, _GxIdeSignInOrganization_evaluateTermsConditionsAndPrivacyAccepted, "f") }), h("span", null, h("label", { htmlFor: "terms-and-conditions", class: "label label-agreement" }, __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f").agreement.termsAndConditionsLabel, h("span", { class: { hyperlink: !!this.termsCallback }, onClick: this.termsCallback &&
|
|
106
|
+
__classPrivateFieldGet(this, _GxIdeSignInOrganization_termsAndConditionsClickedHandler, "f") }, __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f").agreement.termsAndConditionsLink)))), h("div", {
|
|
107
|
+
// privacy policy
|
|
108
|
+
class: "field field-inline"
|
|
109
|
+
}, h("ch-checkbox", { checkedValue: CHECKED_VALUE, id: "privacy-policy", class: "checkbox", ref: (el) => (__classPrivateFieldSet(this, _GxIdeSignInOrganization_privacyPolicyCheckboxEl, el, "f")), onInput: __classPrivateFieldGet(this, _GxIdeSignInOrganization_evaluateTermsConditionsAndPrivacyAccepted, "f") }), h("span", null, h("label", { htmlFor: "privacy-policy", class: "label label-agreement" }, __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f").agreement.privacyAndPolicyLabel, h("span", { class: { hyperlink: !!this.privacyCallback }, onClick: this.privacyCallback && __classPrivateFieldGet(this, _GxIdeSignInOrganization_privacyPolicyClickedHandler, "f") }, __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f").agreement.privacyAndPolicyLink)))))),
|
|
110
|
+
__classPrivateFieldGet(this, _GxIdeSignInOrganization_renderStepFooter, "f").call(this)
|
|
111
|
+
];
|
|
112
|
+
}
|
|
113
|
+
else if (this.authStepInternal === "fetchOrganizations" ||
|
|
114
|
+
this.authStepInternal === "settingUpSession") {
|
|
115
|
+
const loaderTitle = this.authStepInternal === "fetchOrganizations"
|
|
116
|
+
? __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f").loader.fetchingOrganizationsTitle
|
|
117
|
+
: __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f").loader.settingUpSessionTitle;
|
|
118
|
+
const loaderDescription = this.authStepInternal === "fetchOrganizations"
|
|
119
|
+
? __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f").loader.fetchingOrganizationsDescription
|
|
120
|
+
: __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f").loader.settingUpDescription;
|
|
121
|
+
return (h("gx-ide-loader", { show: true, loaderTitle: loaderTitle, description: loaderDescription }));
|
|
122
|
+
}
|
|
123
|
+
else if (this.authStepInternal === "selectOrganization") {
|
|
124
|
+
return [
|
|
125
|
+
__classPrivateFieldGet(this, _GxIdeSignInOrganization_renderStepHeader, "f").call(this),
|
|
126
|
+
h("div", { class: "slide__select-organization-description" }, h("p", { class: "body-semi-bold-l" }, __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f").selectOrganization.infoMessage)),
|
|
127
|
+
h("div", { class: "field-group" }, h("div", { class: "field field-block" }, h("label", { htmlFor: "organizations" }, __classPrivateFieldGet(this, _GxIdeSignInOrganization_componentLocale, "f").selectOrganization.label), h("ch-combo-box-render", { id: "organizations", accessibleName: "Organizations", class: "combo-box organizations-list", model: __classPrivateFieldGet(this, _GxIdeSignInOrganization_organizationsModel, "f"), value: (_a = __classPrivateFieldGet(this, _GxIdeSignInOrganization_organizationsModel, "f")[0]) === null || _a === void 0 ? void 0 : _a.value, ref: (el) => (__classPrivateFieldSet(this, _GxIdeSignInOrganization_chSelectOrganizationEl, el, "f")) }))),
|
|
128
|
+
__classPrivateFieldGet(this, _GxIdeSignInOrganization_renderStepFooter, "f").call(this)
|
|
129
|
+
];
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
this.authStepInternal = undefined;
|
|
133
|
+
this.slideIsVisible = true;
|
|
134
|
+
this.termsAndConditionsAccepted = false;
|
|
135
|
+
this.authStep = "signIn";
|
|
136
|
+
this.continueCallback = undefined;
|
|
137
|
+
this.signInCallback = undefined;
|
|
138
|
+
this.termsConfirmationRequired = false;
|
|
139
|
+
this.organizations = undefined;
|
|
140
|
+
this.termsCallback = undefined;
|
|
141
|
+
this.privacyCallback = undefined;
|
|
142
|
+
}
|
|
143
|
+
authStepChanged(newAuthStep) {
|
|
144
|
+
this.slideIsVisible = false;
|
|
145
|
+
// switch step
|
|
146
|
+
setTimeout(() => {
|
|
147
|
+
this.authStepInternal = newAuthStep;
|
|
148
|
+
}, __classPrivateFieldGet(this, _GxIdeSignInOrganization_switchStepTransitionTime, "f"));
|
|
149
|
+
// show slide
|
|
150
|
+
setTimeout(() => {
|
|
151
|
+
this.slideIsVisible = true;
|
|
152
|
+
}, __classPrivateFieldGet(this, _GxIdeSignInOrganization_switchStepTransitionTime, "f") * 2);
|
|
153
|
+
}
|
|
154
|
+
organizationsChanged(newOrganizations) {
|
|
155
|
+
__classPrivateFieldSet(this, _GxIdeSignInOrganization_organizationsModel, mapOrganizationsToComboBoxItemModel(newOrganizations), "f");
|
|
156
|
+
}
|
|
157
|
+
async componentWillLoad() {
|
|
158
|
+
__classPrivateFieldSet(this, _GxIdeSignInOrganization_componentLocale, await Locale.getComponentStrings(this.el), "f");
|
|
159
|
+
this.el.style.setProperty("--switch-step-transtion-time", __classPrivateFieldGet(this, _GxIdeSignInOrganization_switchStepTransitionTime, "f").toString() + "ms");
|
|
160
|
+
// Initialize values
|
|
161
|
+
this.authStepInternal = this.authStep;
|
|
162
|
+
this.organizationsChanged(this.organizations);
|
|
163
|
+
}
|
|
164
|
+
render() {
|
|
165
|
+
return (h(Host, null, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "slide" }, h("img", { src: COPYRIGHTS_ILLUSTRATION, class: "slide__illustration", alt: "" // decorative
|
|
166
|
+
}), h("div", { class: {
|
|
167
|
+
"slide__main": true,
|
|
168
|
+
"slide__main--visible": this.slideIsVisible
|
|
169
|
+
} }, h("div", { class: "slide__main-container" }, __classPrivateFieldGet(this, _GxIdeSignInOrganization_evaluateStepRender, "f").call(this))))));
|
|
170
|
+
}
|
|
171
|
+
static get assetsDirs() { return ["gx-ide-assets/sign-in-organization"]; }
|
|
172
|
+
get el() { return getElement(this); }
|
|
173
|
+
static get watchers() { return {
|
|
174
|
+
"authStep": ["authStepChanged"],
|
|
175
|
+
"organizations": ["organizationsChanged"]
|
|
176
|
+
}; }
|
|
177
|
+
};
|
|
178
|
+
_GxIdeSignInOrganization_componentLocale = new WeakMap(), _GxIdeSignInOrganization_organizationsModel = new WeakMap(), _GxIdeSignInOrganization_chSelectOrganizationEl = new WeakMap(), _GxIdeSignInOrganization_switchStepTransitionTime = new WeakMap(), _GxIdeSignInOrganization_termsAndConditionsCheckboxEl = new WeakMap(), _GxIdeSignInOrganization_privacyPolicyCheckboxEl = new WeakMap(), _GxIdeSignInOrganization_authStepCallback = new WeakMap(), _GxIdeSignInOrganization_continueHandler = new WeakMap(), _GxIdeSignInOrganization_renderStepHeader = new WeakMap(), _GxIdeSignInOrganization_renderStepFooter = new WeakMap(), _GxIdeSignInOrganization_evaluateTermsConditionsAndPrivacyAccepted = new WeakMap(), _GxIdeSignInOrganization_termsAndConditionsClickedHandler = new WeakMap(), _GxIdeSignInOrganization_privacyPolicyClickedHandler = new WeakMap(), _GxIdeSignInOrganization_evaluateStepRender = new WeakMap();
|
|
179
|
+
GxIdeSignInOrganization.style = signInOrganizationCss;
|
|
180
|
+
|
|
181
|
+
export { GxIdeSignInOrganization as gx_ide_sign_in_organization };
|
|
182
|
+
|
|
183
|
+
//# sourceMappingURL=gx-ide-sign-in-organization.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"gx-ide-sign-in-organization.entry.js","mappings":"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","names":[],"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"],"version":3}
|