dash-button-web 0.0.22 → 0.0.23-beta.1
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/app-globals-cd54EKuF.js +15 -0
- package/dist/cjs/dash-button.cjs.entry.js +2172 -2070
- package/dist/cjs/index-BfwSK14n.js +1507 -0
- package/dist/cjs/index.cjs.js +0 -2
- package/dist/cjs/loader.cjs.js +5 -7
- package/dist/cjs/web-compnont.cjs.js +15 -15
- package/dist/collection/collection-manifest.json +5 -3
- package/dist/collection/components/my-component/dash-button.js +135 -38
- package/dist/collection/global/app.js +7 -0
- package/dist/collection/index.js +0 -1
- package/dist/collection/services/config.js +2 -1
- package/dist/collection/services/menu.js +0 -1
- package/dist/components/dash-button.js +1 -4247
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +1 -3
- package/dist/esm/app-globals-B2hgy9FG.js +13 -0
- package/dist/esm/dash-button.entry.js +2172 -2068
- package/dist/esm/index-6_Ga3Eox.js +1499 -0
- package/dist/esm/index.js +0 -2
- package/dist/esm/loader.js +6 -6
- package/dist/esm/web-compnont.js +15 -14
- package/dist/types/components/my-component/dash-button.d.ts +3 -0
- package/dist/types/components.d.ts +75 -3
- package/dist/types/global/app.d.ts +2 -0
- package/dist/types/services/config.d.ts +2 -0
- package/dist/types/stencil-public-runtime.d.ts +268 -70
- package/dist/web-compnont/index.esm.js +0 -2
- package/dist/web-compnont/p-6_Ga3Eox.js +3 -0
- package/dist/web-compnont/p-7de50cbc.entry.js +1 -0
- package/dist/web-compnont/p-DiU1T8CW.js +1 -0
- package/dist/web-compnont/web-compnont.esm.js +1 -2
- package/loader/cdn.js +1 -3
- package/loader/index.cjs.js +1 -3
- package/loader/index.d.ts +4 -1
- package/loader/index.es2017.js +1 -3
- package/loader/index.js +1 -3
- package/package.json +3 -2
- package/readme.md +21 -0
- package/dist/cjs/dash-button.cjs.entry.js.map +0 -1
- package/dist/cjs/index-87d4993d.js +0 -1793
- package/dist/cjs/index-87d4993d.js.map +0 -1
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/web-compnont.cjs.js.map +0 -1
- package/dist/collection/components/my-component/dash-button.e2e.js +0 -26
- package/dist/collection/components/my-component/dash-button.e2e.js.map +0 -1
- package/dist/collection/components/my-component/dash-button.js.map +0 -1
- package/dist/collection/components/my-component/dash-button.spec.js +0 -35
- package/dist/collection/components/my-component/dash-button.spec.js.map +0 -1
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/services/config.js.map +0 -1
- package/dist/collection/services/menu.js.map +0 -1
- package/dist/components/dash-button.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/esm/dash-button.entry.js.map +0 -1
- package/dist/esm/index-e3df5eaf.js +0 -1766
- package/dist/esm/index-e3df5eaf.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/polyfills/core-js.js +0 -11
- package/dist/esm/polyfills/dom.js +0 -79
- package/dist/esm/polyfills/es5-html-element.js +0 -1
- package/dist/esm/polyfills/index.js +0 -34
- package/dist/esm/polyfills/system.js +0 -6
- package/dist/esm/web-compnont.js.map +0 -1
- package/dist/web-compnont/index.esm.js.map +0 -1
- package/dist/web-compnont/p-ad318f06.entry.js +0 -10
- package/dist/web-compnont/p-ad318f06.entry.js.map +0 -1
- package/dist/web-compnont/p-c1ec12fe.js +0 -3
- package/dist/web-compnont/p-c1ec12fe.js.map +0 -1
- package/dist/web-compnont/web-compnont.esm.js.map +0 -1
- package/loader/package.json +0 -11
package/dist/cjs/index.cjs.js
CHANGED
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var index = require('./index-BfwSK14n.js');
|
|
4
|
+
var appGlobals = require('./app-globals-cd54EKuF.js');
|
|
4
5
|
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
const defineCustomElements = (win, options) => {
|
|
6
|
+
const defineCustomElements = async (win, options) => {
|
|
8
7
|
if (typeof window === 'undefined') return undefined;
|
|
9
|
-
|
|
8
|
+
await appGlobals.globalScripts();
|
|
9
|
+
return index.bootstrapLazy([["dash-button.cjs",[[1,"dash-button",{"showPostLoginText":[4,"show-post-login-text"],"silentCheckSso":[4,"silent-check-sso"],"redirectUri":[1,"redirect-uri"],"authMethod":[1,"auth-method"],"portalApiUrl":[1,"portal-api-url"],"plmUrl":[1,"plm-url"],"showUnauthorizedModal":[4,"show-unauthorized-modal"],"primaryColor":[1,"primary-color"],"accentColor":[1,"accent-color"],"notificationPosition":[1,"notification-position"],"keycloak":[32],"isAuth":[32],"givenUserName":[32],"silentCheckSsoRedirectUri":[32],"appList":[32],"avatarSvg":[32],"isLoading":[32],"config":[32],"localMenuLinks":[32],"organizationUrl":[32],"isRestricted":[32]}]]]], options);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
exports.setNonce = index.setNonce;
|
|
13
13
|
exports.defineCustomElements = defineCustomElements;
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=loader.cjs.js.map
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const index = require('./index-87d4993d.js');
|
|
3
|
+
var index = require('./index-BfwSK14n.js');
|
|
4
|
+
var appGlobals = require('./app-globals-cd54EKuF.js');
|
|
6
5
|
|
|
6
|
+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
7
7
|
/*
|
|
8
|
-
Stencil Client Patch Browser v4.
|
|
8
|
+
Stencil Client Patch Browser v4.45.0 | MIT Licensed | https://stenciljs.com
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
|
|
11
|
+
var patchBrowser = () => {
|
|
12
|
+
const importMeta = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('web-compnont.cjs.js', document.baseURI).href));
|
|
13
|
+
const opts = {};
|
|
14
|
+
if (importMeta !== "") {
|
|
15
|
+
opts.resourcesUrl = new URL(".", importMeta).href;
|
|
16
|
+
}
|
|
17
|
+
return index.promiseResolve(opts);
|
|
17
18
|
};
|
|
18
19
|
|
|
19
|
-
patchBrowser().then(options => {
|
|
20
|
-
|
|
20
|
+
patchBrowser().then(async (options) => {
|
|
21
|
+
await appGlobals.globalScripts();
|
|
22
|
+
return index.bootstrapLazy([["dash-button.cjs",[[1,"dash-button",{"showPostLoginText":[4,"show-post-login-text"],"silentCheckSso":[4,"silent-check-sso"],"redirectUri":[1,"redirect-uri"],"authMethod":[1,"auth-method"],"portalApiUrl":[1,"portal-api-url"],"plmUrl":[1,"plm-url"],"showUnauthorizedModal":[4,"show-unauthorized-modal"],"primaryColor":[1,"primary-color"],"accentColor":[1,"accent-color"],"notificationPosition":[1,"notification-position"],"keycloak":[32],"isAuth":[32],"givenUserName":[32],"silentCheckSsoRedirectUri":[32],"appList":[32],"avatarSvg":[32],"isLoading":[32],"config":[32],"localMenuLinks":[32],"organizationUrl":[32],"isRestricted":[32]}]]]], options);
|
|
21
23
|
});
|
|
22
24
|
|
|
23
25
|
exports.setNonce = index.setNonce;
|
|
24
|
-
|
|
25
|
-
//# sourceMappingURL=web-compnont.cjs.js.map
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
"entries": [
|
|
3
3
|
"components/my-component/dash-button.js"
|
|
4
4
|
],
|
|
5
|
+
"mixins": [],
|
|
5
6
|
"compiler": {
|
|
6
7
|
"name": "@stencil/core",
|
|
7
|
-
"version": "4.
|
|
8
|
-
"typescriptVersion": "5.
|
|
8
|
+
"version": "4.45.0",
|
|
9
|
+
"typescriptVersion": "5.8.3"
|
|
9
10
|
},
|
|
10
11
|
"collections": [],
|
|
11
|
-
"bundles": []
|
|
12
|
+
"bundles": [],
|
|
13
|
+
"global": "global/app.js"
|
|
12
14
|
}
|
|
@@ -7,13 +7,13 @@ export class DashButtonComponent {
|
|
|
7
7
|
constructor() {
|
|
8
8
|
this.showPostLoginText = false;
|
|
9
9
|
this.silentCheckSso = false;
|
|
10
|
-
this.redirectUri = undefined;
|
|
11
10
|
this.authMethod = "check-sso";
|
|
12
11
|
this.portalApiUrl = "";
|
|
13
12
|
this.plmUrl = "https://productlicensemanager-zdzw.cloud.zdzw-project.com";
|
|
14
13
|
this.showUnauthorizedModal = false;
|
|
15
14
|
this.primaryColor = "";
|
|
16
15
|
this.accentColor = "";
|
|
16
|
+
this.notificationPosition = "left";
|
|
17
17
|
this.keycloak = null;
|
|
18
18
|
this.isAuth = false;
|
|
19
19
|
this.givenUserName = "";
|
|
@@ -21,11 +21,41 @@ export class DashButtonComponent {
|
|
|
21
21
|
this.appList = [];
|
|
22
22
|
this.avatarSvg = toSvg("init-avatar", 40);
|
|
23
23
|
this.isLoading = false;
|
|
24
|
-
this.config = undefined;
|
|
25
|
-
this.localMenuLinks = undefined;
|
|
26
|
-
this.organizationUrl = undefined;
|
|
27
24
|
this.isRestricted = false;
|
|
28
25
|
}
|
|
26
|
+
componentDidLoad() {
|
|
27
|
+
console.log("New version!!!");
|
|
28
|
+
// Add a click listener to this specific component instance
|
|
29
|
+
this.el.addEventListener('click', (event) => {
|
|
30
|
+
const path = event.composedPath();
|
|
31
|
+
// Ensure this click originated from inside the notification module
|
|
32
|
+
const isInsideNotification = path.some((target) => target && target.tagName === 'NOTIFICATION-COMPONENT');
|
|
33
|
+
// If the click is outside the notification module (e.g., somewhere else in dash-button), exit early
|
|
34
|
+
if (!isInsideNotification) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
// 2. Identify the specific link element inside the path array
|
|
38
|
+
const clickedLink = path.find((target) => target && (target.tagName === 'A' || (typeof target.hasAttribute === 'function' && target.hasAttribute('href'))));
|
|
39
|
+
if (clickedLink) {
|
|
40
|
+
const destinationUrl = clickedLink.getAttribute('href');
|
|
41
|
+
if (destinationUrl) {
|
|
42
|
+
// Prevent the default behavior ONLY for the notification component links
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
event.stopPropagation();
|
|
45
|
+
// Check if the link contains the unique class name
|
|
46
|
+
const isHomeIconLink = clickedLink.classList.contains('button-link');
|
|
47
|
+
if (isHomeIconLink) {
|
|
48
|
+
console.log('Notification module home link intercepted. Opening in new tab:', destinationUrl);
|
|
49
|
+
window.open(destinationUrl, '_blank', 'noopener,noreferrer');
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
console.log('Notification module standard link intercepted. Navigating in current view:', destinationUrl);
|
|
53
|
+
window.location.href = destinationUrl;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
29
59
|
async componentWillLoad() {
|
|
30
60
|
var _a, _b, _c, _d;
|
|
31
61
|
// Fetch config from API
|
|
@@ -68,16 +98,17 @@ export class DashButtonComponent {
|
|
|
68
98
|
onLoad: this.authMethod,
|
|
69
99
|
checkLoginIframe: false,
|
|
70
100
|
silentCheckSsoRedirectUri: this.silentCheckSso ? this.silentCheckSsoRedirectUri : '',
|
|
71
|
-
}).then(res => {
|
|
101
|
+
}).then((res) => {
|
|
102
|
+
var _a, _b, _c;
|
|
72
103
|
if (res) {
|
|
73
104
|
this.isAuth = true;
|
|
74
105
|
localStorage.setItem("keycloak", JSON.stringify(this.keycloak));
|
|
75
106
|
// document.cookie = "DASH_BTN=" + JSON.parse(localStorage.getItem('keycloak')).token;
|
|
76
|
-
document.cookie = this.config.cookieName + "=" + JSON.parse(localStorage.getItem('keycloak')).token;
|
|
107
|
+
document.cookie = this.config.cookieName + "=" + JSON.parse((_a = localStorage.getItem('keycloak')) !== null && _a !== void 0 ? _a : '{}').token;
|
|
77
108
|
// Set userName
|
|
78
|
-
this.givenUserName = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.preferred_username;
|
|
109
|
+
this.givenUserName = JSON.parse((_b = localStorage.getItem('keycloak')) !== null && _b !== void 0 ? _b : '{}').idTokenParsed.preferred_username;
|
|
79
110
|
// Set user avatar
|
|
80
|
-
this.avatarSvg = toSvg(JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.sub, 40);
|
|
111
|
+
this.avatarSvg = toSvg(JSON.parse((_c = localStorage.getItem('keycloak')) !== null && _c !== void 0 ? _c : '{}').idTokenParsed.sub, 40);
|
|
81
112
|
}
|
|
82
113
|
});
|
|
83
114
|
}
|
|
@@ -108,27 +139,44 @@ export class DashButtonComponent {
|
|
|
108
139
|
}
|
|
109
140
|
}
|
|
110
141
|
}
|
|
142
|
+
// First, check global links
|
|
143
|
+
// Then, check the token's organization URL
|
|
144
|
+
// Finally, check against dashbutton configuration: allowedGlobalDomain and whitelistedUrls
|
|
111
145
|
validateAppAccessByUrl() {
|
|
112
|
-
var _a, _b, _c, _d;
|
|
113
|
-
const
|
|
114
|
-
const
|
|
146
|
+
var _a, _b, _c, _d, _e, _f;
|
|
147
|
+
const normalizeUrl = (url) => url.replace(/\/+$/, '');
|
|
148
|
+
const currentUrl = normalizeUrl(window.location.href);
|
|
149
|
+
const currentOrigin = normalizeUrl(window.location.origin);
|
|
115
150
|
const globalLinks = ((_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.menu) === null || _b === void 0 ? void 0 : _b.global) === null || _c === void 0 ? void 0 : _c.links) || [];
|
|
116
|
-
|
|
151
|
+
const allowedGlobalDomain = ((_d = this.config) === null || _d === void 0 ? void 0 : _d.allowedGlobalDomain) || '';
|
|
152
|
+
const whitelistedUrls = ((_e = this.config) === null || _e === void 0 ? void 0 : _e.whitelistedUrls) || '';
|
|
153
|
+
// First, check global links
|
|
117
154
|
const matchGlobal = globalLinks.some(link => {
|
|
118
155
|
try {
|
|
119
|
-
const linkOrigin = new URL(link.url).origin;
|
|
156
|
+
const linkOrigin = normalizeUrl(new URL(link.url).origin);
|
|
120
157
|
return currentOrigin === linkOrigin;
|
|
121
158
|
}
|
|
122
159
|
catch (_a) {
|
|
123
160
|
return false;
|
|
124
161
|
}
|
|
125
162
|
});
|
|
126
|
-
//
|
|
127
|
-
const tokenParsed = (
|
|
163
|
+
// Then check the token organization URL
|
|
164
|
+
const tokenParsed = (_f = this.keycloak) === null || _f === void 0 ? void 0 : _f.tokenParsed;
|
|
128
165
|
const allowedOrg = tokenParsed === null || tokenParsed === void 0 ? void 0 : tokenParsed.organizationUrl;
|
|
129
|
-
const matchOrganization = allowedOrg && currentUrl.includes(allowedOrg);
|
|
130
|
-
//
|
|
131
|
-
const
|
|
166
|
+
const matchOrganization = allowedOrg && currentUrl.includes(normalizeUrl(allowedOrg));
|
|
167
|
+
// Check allowedGlobalDomain (single domain)
|
|
168
|
+
const matchAllowedDomain = allowedGlobalDomain &&
|
|
169
|
+
currentOrigin.includes(normalizeUrl(allowedGlobalDomain));
|
|
170
|
+
// Check whitelistedUrls (comma-separated string)
|
|
171
|
+
const whitelistedArray = whitelistedUrls
|
|
172
|
+
? whitelistedUrls.split(',').map(url => normalizeUrl(url.trim()))
|
|
173
|
+
: [];
|
|
174
|
+
const matchWhitelisted = whitelistedArray.some(url => currentUrl.includes(url));
|
|
175
|
+
// Final validation
|
|
176
|
+
const isAllowed = matchGlobal ||
|
|
177
|
+
matchOrganization ||
|
|
178
|
+
matchAllowedDomain ||
|
|
179
|
+
matchWhitelisted;
|
|
132
180
|
this.isRestricted = !isAllowed;
|
|
133
181
|
}
|
|
134
182
|
login() {
|
|
@@ -148,10 +196,20 @@ export class DashButtonComponent {
|
|
|
148
196
|
const appModal = this.el.shadowRoot.querySelector('#appListModal');
|
|
149
197
|
appModal.style.display = "none";
|
|
150
198
|
}
|
|
199
|
+
renderNotificationComponent() {
|
|
200
|
+
var _a;
|
|
201
|
+
const token = (_a = this.keycloak) === null || _a === void 0 ? void 0 : _a.idTokenParsed;
|
|
202
|
+
const owner = (token === null || token === void 0 ? void 0 : token.preferred_username) || (token === null || token === void 0 ? void 0 : token.sub) || '';
|
|
203
|
+
const orgUrlRaw = (token === null || token === void 0 ? void 0 : token.organizationUrl) || '';
|
|
204
|
+
const orgHost = orgUrlRaw
|
|
205
|
+
? new URL(orgUrlRaw.startsWith('http') ? orgUrlRaw : `https://${orgUrlRaw}`).hostname
|
|
206
|
+
: '';
|
|
207
|
+
return orgHost && owner ? (h("notification-component", { owner: owner, "max-records": 10, "display-type": "icon", "notification-url": `https://notifications.${orgHost}/notifications-api`, "socket-connect": true, "socket-url": `wss://repository.${orgHost}/socket`, "list-url": `https://notifications.${orgHost}/notifications` })) : null;
|
|
208
|
+
}
|
|
151
209
|
render() {
|
|
152
210
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
|
|
153
|
-
return h("div", { key: '
|
|
154
|
-
var _a, _b, _c, _d, _e, _f;
|
|
211
|
+
return h("div", { key: 'a2d1650d96fcbbfa5128da4315e70dc0c2682dfd' }, h("div", { key: '975ab012c618442f627f00a9ee29773c08d55824' }, (() => {
|
|
212
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
155
213
|
// GLOBAL LOADING SPINNER
|
|
156
214
|
if (this.isLoading) {
|
|
157
215
|
return (h("a", { id: "login-btn", class: "button button-link" }, h("div", { class: "lds-ring" }, h("div", null), h("div", null), h("div", null), h("div", null))));
|
|
@@ -163,21 +221,23 @@ export class DashButtonComponent {
|
|
|
163
221
|
return (h("a", { style: { background: this.primaryColor != undefined ? this.primaryColor : "" }, href: this.redirectUri, id: "login-btn", class: "button button-link" }, h("span", { style: { color: this.accentColor != undefined ? this.accentColor : "" }, class: "button-text button-text-full-width" }, "Go to Dashboard")));
|
|
164
222
|
}
|
|
165
223
|
else if (this.isAuth) {
|
|
166
|
-
return (h("div", { id: "profile-btn", class: "dropdown" }, h("button", { style: { background: this.primaryColor != undefined ? this.primaryColor : "" }, type: "button", class: "button" }, h("span", { class: "button-profile" }, JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.imageUrl ?
|
|
224
|
+
return (h("div", { class: "profile-actions", style: { display: "inline-flex", alignItems: "center", gap: "15px" } }, this.notificationPosition !== "right" && this.renderNotificationComponent(), h("div", { id: "profile-btn", class: "dropdown" }, h("button", { style: { background: this.primaryColor != undefined ? this.primaryColor : "" }, type: "button", class: "button" }, h("span", { class: "button-profile" }, JSON.parse((_g = localStorage.getItem('keycloak')) !== null && _g !== void 0 ? _g : '{}').idTokenParsed.imageUrl ?
|
|
167
225
|
h("img", { class: "profile-image", src: "https://s-damith.github.io/test-avatar/images/e24da9c5-0b1f-46fa-82cd-7c711c77b5c7.png" })
|
|
168
226
|
:
|
|
169
|
-
h("div", { innerHTML: this.avatarSvg })), h("span", { style: { color: this.accentColor != undefined ? this.accentColor : "" }, id: "given-name", class: "button-text" }, this.givenUserName), h("div", { class: "button-icon" }, (this.config.menuViewType == "grid") ? h("i", { class: "fa-solid fa-grip-vertical" }) : h("i", { class: "fa-solid fa-bars" }))), h("div", { class: "dropdown-content" }, h("div", { class: "dropdown-user-profile" }, h("div", { class: "username" }, "@", this.givenUserName), h("div", { class: "first-last-name" }, JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.name)), (this.config.menuViewType == "grid") ? (h("div", null, h("div", { class: "grid-view-menu" }, this.config.menu.global.links.map(item => {
|
|
227
|
+
h("div", { innerHTML: this.avatarSvg })), h("span", { style: { color: this.accentColor != undefined ? this.accentColor : "" }, id: "given-name", class: "button-text" }, this.givenUserName), h("div", { class: "button-icon" }, (this.config.menuViewType == "grid") ? h("i", { class: "fa-solid fa-grip-vertical" }) : h("i", { class: "fa-solid fa-bars" }))), h("div", { class: "dropdown-content" }, h("div", { class: "dropdown-user-profile" }, h("div", { class: "username" }, "@", this.givenUserName), h("div", { class: "first-last-name" }, JSON.parse((_h = localStorage.getItem('keycloak')) !== null && _h !== void 0 ? _h : '{}').idTokenParsed.name)), (this.config.menuViewType == "grid") ? (h("div", null, h("div", { class: "grid-view-menu" }, this.config.menu.global.links.map(item => {
|
|
170
228
|
return (h("a", { href: item.url, target: '_blank', class: "grid-view-link" }, h("i", { class: item.icon + " fa-2x" }), h("div", { class: "grid-view-link-text" }, item.name)));
|
|
171
|
-
})), this.config.menu.global.links.length != 0 && h("hr", { class: "solid" }), h("div", { class: "grid-view-menu", style: this.config.menu.global.links.length
|
|
229
|
+
})), this.config.menu.global.links.length != 0 && h("hr", { class: "solid" }), h("div", { class: "grid-view-menu", style: this.config.menu.global.links.length === 0
|
|
230
|
+
? { marginBottom: '12px' }
|
|
231
|
+
: undefined }, h("a", { onClick: this.showModal.bind(this), class: "grid-view-link" }, h("i", { class: "fa-regular fa-window-restore fa-2x" }), h("div", { class: "grid-view-link-text" }, "Modules")), h("a", { href: this.config.defaultLink.url, target: '_blank', class: "grid-view-link" }, h("i", { class: "fa-solid fa-globe fa-2x" }), h("div", { class: "grid-view-link-text" }, this.config.defaultLink.name)), h("a", { onClick: this.logout.bind(this), class: "grid-view-link" }, h("i", { class: "fa-solid fa-right-from-bracket fa-2x" }), h("div", { class: "grid-view-link-text" }, "Logout"))))) : (
|
|
172
232
|
// List View
|
|
173
233
|
h("div", { class: "dropdown-content-link" }, this.config.menu.global.links.map(item => {
|
|
174
234
|
return (h("a", { href: item.url, target: '_blank', id: "applications-btn" }, h("i", { class: item.icon + " menu-bar-icons" }), item.name));
|
|
175
|
-
}), h("a", { onClick: this.showModal.bind(this), id: "applications-btn" }, h("i", { class: "fa-regular fa-window-restore menu-bar-icons" }), "Modules"), h("a", { href: this.config.defaultLink.url, target: '_blank', id: "applications-btn" }, h("i", { class: "fa-solid fa-globe menu-bar-icons" }), this.config.defaultLink.name), h("a", { onClick: this.logout.bind(this), id: "logout-btn" }, h("i", { class: "fa-solid fa-right-from-bracket menu-bar-icons" }), "Logout"))))));
|
|
235
|
+
}), h("a", { onClick: this.showModal.bind(this), id: "applications-btn" }, h("i", { class: "fa-regular fa-window-restore menu-bar-icons" }), "Modules"), h("a", { href: this.config.defaultLink.url, target: '_blank', id: "applications-btn" }, h("i", { class: "fa-solid fa-globe menu-bar-icons" }), this.config.defaultLink.name), h("a", { onClick: this.logout.bind(this), id: "logout-btn" }, h("i", { class: "fa-solid fa-right-from-bracket menu-bar-icons" }), "Logout"))))), this.notificationPosition === "right" && this.renderNotificationComponent()));
|
|
176
236
|
}
|
|
177
237
|
else {
|
|
178
238
|
return (h("button", { style: { background: this.primaryColor != undefined ? this.primaryColor : "" }, onClick: this.login.bind(this), id: "login-btn", type: "button", class: "button" }, h("span", { style: { color: this.accentColor != undefined ? this.accentColor : "" }, class: "button-text" }, "Login")));
|
|
179
239
|
}
|
|
180
|
-
})()), h("div", { key: '
|
|
240
|
+
})()), h("div", { key: '3a9e8bd2730ba8d71f1e8416bab4d745a68dda9a', id: "appListModal", class: "modal" }, h("div", { key: '8f85ebe690af26900e003755e68fa5cd1401b502', class: "modal-content" }, h("span", { key: '445d67c3803859bbec76177291fd71389ccf5917', onClick: this.closeModal.bind(this), class: "close" }, "\u00D7"), h("div", { key: '0a0df9bb6fc5258568fb9363353f58486a30f744', class: "box" }, h("input", { key: 'eec587753688b1ac0bd1a3b87975f0b9692d7719', type: "radio", class: "tab-toggle", name: "tab-toggle", id: "tab1", checked: true }), h("ul", { key: '4db9fff924d2f38e3e42b83bd96fe2589dc2c701', class: "tab-list" }, h("li", { key: '99e9a21d90012e521aa10d21194f44013dbd5931', class: "tab-item" }, h("label", { key: 'c4fadd0b70b3e944860056a37e9d5f52b7c625b5', class: "tab-trigger", htmlFor: "tab1" }, h("i", { key: '5252821523386c869725b0e13bf662ec03f24d81', class: "fa-solid fa-table-list menu-bar-icons" }), " ", this.config.menu.local.name))), h("div", { key: '2da9e2383580f6d5130883051c4b0d1cba1354a7', class: "tab-container" }, h("div", { key: 'a51f2e9b923836b63b9ff2453d08dc3ee93213e6', class: "tab-content" }, h("div", { key: '9c7146fa59070eace7bcb1b76fb2b59468e23b5c', class: "modal-body" }, !((_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.menu) === null || _b === void 0 ? void 0 : _b.local) === null || _c === void 0 ? void 0 : _c.enableCustomLocalMenu) ? (
|
|
181
241
|
// <div>{this.localMenuLinks}</div>
|
|
182
242
|
(_d = this.localMenuLinks) === null || _d === void 0 ? void 0 : _d.map((app, index) => {
|
|
183
243
|
const isDisabled = !app.url;
|
|
@@ -185,7 +245,7 @@ export class DashButtonComponent {
|
|
|
185
245
|
})) : ((_e = this.config.menu.local.links) === null || _e === void 0 ? void 0 : _e.map((app, index) => (h("a", { key: index, class: "external-app-link", target: "_blank", rel: "noopener noreferrer", href: app.url }, h("div", { class: "modal-app" }, h("div", null, app.name)))))), !this.organizationUrl ? (h("div", null, h("h3", { class: "gray-text" }, "Organization Domain URL not set"), h("p", { class: "gray-text" }, "Please set your Organization Domain URL on the Portal profile page."))) : (((!((_h = (_g = (_f = this.config) === null || _f === void 0 ? void 0 : _f.menu) === null || _g === void 0 ? void 0 : _g.local) === null || _h === void 0 ? void 0 : _h.enableCustomLocalMenu) &&
|
|
186
246
|
((_k = (_j = this.localMenuLinks) === null || _j === void 0 ? void 0 : _j.length) !== null && _k !== void 0 ? _k : 0) === 0) ||
|
|
187
247
|
(((_o = (_m = (_l = this.config) === null || _l === void 0 ? void 0 : _l.menu) === null || _m === void 0 ? void 0 : _m.local) === null || _o === void 0 ? void 0 : _o.enableCustomLocalMenu) &&
|
|
188
|
-
((_t = (_s = (_r = (_q = (_p = this.config) === null || _p === void 0 ? void 0 : _p.menu) === null || _q === void 0 ? void 0 : _q.local) === null || _r === void 0 ? void 0 : _r.links) === null || _s === void 0 ? void 0 : _s.length) !== null && _t !== void 0 ? _t : 0) === 0)) && (h("div", null, h("h3", { class: "gray-text" }, "No installed ", ((_w = (_v = (_u = this.config) === null || _u === void 0 ? void 0 : _u.menu) === null || _v === void 0 ? void 0 : _v.local) === null || _w === void 0 ? void 0 : _w.name) || "menu", " found."), h("p", { class: "gray-text" }, "Please contact administration.")))))))))), h("div", { key: '
|
|
248
|
+
((_t = (_s = (_r = (_q = (_p = this.config) === null || _p === void 0 ? void 0 : _p.menu) === null || _q === void 0 ? void 0 : _q.local) === null || _r === void 0 ? void 0 : _r.links) === null || _s === void 0 ? void 0 : _s.length) !== null && _t !== void 0 ? _t : 0) === 0)) && (h("div", null, h("h3", { class: "gray-text" }, "No installed ", ((_w = (_v = (_u = this.config) === null || _u === void 0 ? void 0 : _u.menu) === null || _v === void 0 ? void 0 : _v.local) === null || _w === void 0 ? void 0 : _w.name) || "menu", " found."), h("p", { class: "gray-text" }, "Please contact administration.")))))))))), h("div", { key: '2a36c585f0f83380bc08b30141df91c1532b4a28', id: "appPermissionErrorModal", class: "modal" }, h("div", { key: '8fbbb80e22591c105c5010689d2f91909652ed8c', class: "modal-content" }, h("img", { key: '1621c2b97802968da0e6429e1b1571eb4080ef68', src: "data:image/png;base64,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" }), h("h2", { key: 'f9a6ba63c8d9ca116ad61a1eae25fca676b88767', class: "green-text margin-b" }, "You don't have permission to access this application."), h("h3", { key: '12783289a6b8ef86c096457555f3371cbbde39dc', class: "green-text" }, "Please contact the administration."), (this.config.defaultLink.url && this.showUnauthorizedModal) ?
|
|
189
249
|
h("div", null, h("h4", { class: "gray-text" }, "You will be automatically redirected to the portal."), h("div", { id: "countdown" }, h("div", { id: "countdown-number" }), h("svg", null, h("circle", { r: "18", cx: "20", cy: "20" }))))
|
|
190
250
|
: h("div", null))));
|
|
191
251
|
}
|
|
@@ -217,8 +277,10 @@ export class DashButtonComponent {
|
|
|
217
277
|
"tags": [],
|
|
218
278
|
"text": ""
|
|
219
279
|
},
|
|
220
|
-
"
|
|
280
|
+
"getter": false,
|
|
281
|
+
"setter": false,
|
|
221
282
|
"reflect": false,
|
|
283
|
+
"attribute": "show-post-login-text",
|
|
222
284
|
"defaultValue": "false"
|
|
223
285
|
},
|
|
224
286
|
"silentCheckSso": {
|
|
@@ -235,8 +297,10 @@ export class DashButtonComponent {
|
|
|
235
297
|
"tags": [],
|
|
236
298
|
"text": ""
|
|
237
299
|
},
|
|
238
|
-
"
|
|
300
|
+
"getter": false,
|
|
301
|
+
"setter": false,
|
|
239
302
|
"reflect": false,
|
|
303
|
+
"attribute": "silent-check-sso",
|
|
240
304
|
"defaultValue": "false"
|
|
241
305
|
},
|
|
242
306
|
"redirectUri": {
|
|
@@ -247,14 +311,16 @@ export class DashButtonComponent {
|
|
|
247
311
|
"resolved": "string",
|
|
248
312
|
"references": {}
|
|
249
313
|
},
|
|
250
|
-
"required":
|
|
314
|
+
"required": true,
|
|
251
315
|
"optional": false,
|
|
252
316
|
"docs": {
|
|
253
317
|
"tags": [],
|
|
254
318
|
"text": ""
|
|
255
319
|
},
|
|
256
|
-
"
|
|
257
|
-
"
|
|
320
|
+
"getter": false,
|
|
321
|
+
"setter": false,
|
|
322
|
+
"reflect": false,
|
|
323
|
+
"attribute": "redirect-uri"
|
|
258
324
|
},
|
|
259
325
|
"authMethod": {
|
|
260
326
|
"type": "string",
|
|
@@ -270,8 +336,10 @@ export class DashButtonComponent {
|
|
|
270
336
|
"tags": [],
|
|
271
337
|
"text": ""
|
|
272
338
|
},
|
|
273
|
-
"
|
|
339
|
+
"getter": false,
|
|
340
|
+
"setter": false,
|
|
274
341
|
"reflect": false,
|
|
342
|
+
"attribute": "auth-method",
|
|
275
343
|
"defaultValue": "\"check-sso\""
|
|
276
344
|
},
|
|
277
345
|
"portalApiUrl": {
|
|
@@ -288,8 +356,10 @@ export class DashButtonComponent {
|
|
|
288
356
|
"tags": [],
|
|
289
357
|
"text": ""
|
|
290
358
|
},
|
|
291
|
-
"
|
|
359
|
+
"getter": false,
|
|
360
|
+
"setter": false,
|
|
292
361
|
"reflect": false,
|
|
362
|
+
"attribute": "portal-api-url",
|
|
293
363
|
"defaultValue": "\"\""
|
|
294
364
|
},
|
|
295
365
|
"plmUrl": {
|
|
@@ -306,8 +376,10 @@ export class DashButtonComponent {
|
|
|
306
376
|
"tags": [],
|
|
307
377
|
"text": ""
|
|
308
378
|
},
|
|
309
|
-
"
|
|
379
|
+
"getter": false,
|
|
380
|
+
"setter": false,
|
|
310
381
|
"reflect": false,
|
|
382
|
+
"attribute": "plm-url",
|
|
311
383
|
"defaultValue": "\"https://productlicensemanager-zdzw.cloud.zdzw-project.com\""
|
|
312
384
|
},
|
|
313
385
|
"showUnauthorizedModal": {
|
|
@@ -324,8 +396,10 @@ export class DashButtonComponent {
|
|
|
324
396
|
"tags": [],
|
|
325
397
|
"text": ""
|
|
326
398
|
},
|
|
327
|
-
"
|
|
399
|
+
"getter": false,
|
|
400
|
+
"setter": false,
|
|
328
401
|
"reflect": false,
|
|
402
|
+
"attribute": "show-unauthorized-modal",
|
|
329
403
|
"defaultValue": "false"
|
|
330
404
|
},
|
|
331
405
|
"primaryColor": {
|
|
@@ -342,8 +416,10 @@ export class DashButtonComponent {
|
|
|
342
416
|
"tags": [],
|
|
343
417
|
"text": ""
|
|
344
418
|
},
|
|
345
|
-
"
|
|
419
|
+
"getter": false,
|
|
420
|
+
"setter": false,
|
|
346
421
|
"reflect": false,
|
|
422
|
+
"attribute": "primary-color",
|
|
347
423
|
"defaultValue": "\"\""
|
|
348
424
|
},
|
|
349
425
|
"accentColor": {
|
|
@@ -360,9 +436,31 @@ export class DashButtonComponent {
|
|
|
360
436
|
"tags": [],
|
|
361
437
|
"text": ""
|
|
362
438
|
},
|
|
363
|
-
"
|
|
439
|
+
"getter": false,
|
|
440
|
+
"setter": false,
|
|
364
441
|
"reflect": false,
|
|
442
|
+
"attribute": "accent-color",
|
|
365
443
|
"defaultValue": "\"\""
|
|
444
|
+
},
|
|
445
|
+
"notificationPosition": {
|
|
446
|
+
"type": "string",
|
|
447
|
+
"mutable": false,
|
|
448
|
+
"complexType": {
|
|
449
|
+
"original": "\"left\" | \"right\"",
|
|
450
|
+
"resolved": "\"left\" | \"right\"",
|
|
451
|
+
"references": {}
|
|
452
|
+
},
|
|
453
|
+
"required": false,
|
|
454
|
+
"optional": false,
|
|
455
|
+
"docs": {
|
|
456
|
+
"tags": [],
|
|
457
|
+
"text": ""
|
|
458
|
+
},
|
|
459
|
+
"getter": false,
|
|
460
|
+
"setter": false,
|
|
461
|
+
"reflect": false,
|
|
462
|
+
"attribute": "notification-position",
|
|
463
|
+
"defaultValue": "\"left\""
|
|
366
464
|
}
|
|
367
465
|
};
|
|
368
466
|
}
|
|
@@ -383,4 +481,3 @@ export class DashButtonComponent {
|
|
|
383
481
|
}
|
|
384
482
|
static get elementRef() { return "el"; }
|
|
385
483
|
}
|
|
386
|
-
//# sourceMappingURL=dash-button.js.map
|
package/dist/collection/index.js
CHANGED
|
@@ -22,6 +22,8 @@ const DEFAULT_CONFIG = {
|
|
|
22
22
|
isLoading: true,
|
|
23
23
|
duration: 800
|
|
24
24
|
},
|
|
25
|
+
allowedGlobalDomain: '',
|
|
26
|
+
whitelistedUrls: ''
|
|
25
27
|
};
|
|
26
28
|
// Fetch config from API
|
|
27
29
|
class ConfigService {
|
|
@@ -56,4 +58,3 @@ class ConfigService {
|
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
export const configService = ConfigService.getInstance();
|
|
59
|
-
//# sourceMappingURL=config.js.map
|