dash-button-web 0.0.2 → 0.0.5
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/dash-button.cjs.entry.js +101 -6
- package/dist/cjs/dash-button.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-8282b36b.js → index-991e75df.js} +45 -10
- package/dist/cjs/index-991e75df.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/web-compnont.cjs.js +2 -2
- package/dist/collection/components/my-component/dash-button.css +61 -0
- package/dist/collection/components/my-component/dash-button.js +173 -5
- package/dist/collection/components/my-component/dash-button.js.map +1 -1
- package/dist/components/dash-button.js +106 -6
- package/dist/components/dash-button.js.map +1 -1
- package/dist/esm/dash-button.entry.js +101 -6
- package/dist/esm/dash-button.entry.js.map +1 -1
- package/dist/esm/{index-2b6c17bc.js → index-8310c457.js} +45 -10
- package/dist/esm/index-8310c457.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/web-compnont.js +3 -3
- package/dist/types/components/my-component/dash-button.d.ts +8 -1
- package/dist/types/components.d.ts +8 -0
- package/dist/web-compnont/p-4bd42d49.js +3 -0
- package/dist/web-compnont/p-4bd42d49.js.map +1 -0
- package/dist/web-compnont/{p-4356bec1.entry.js → p-89ceb862.entry.js} +3 -3
- package/dist/web-compnont/p-89ceb862.entry.js.map +1 -0
- package/dist/web-compnont/web-compnont.esm.js +1 -1
- package/dist/web-compnont/web-compnont.esm.js.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/index-8282b36b.js.map +0 -1
- package/dist/esm/index-2b6c17bc.js.map +0 -1
- package/dist/web-compnont/p-35259f64.js +0 -3
- package/dist/web-compnont/p-35259f64.js.map +0 -1
- package/dist/web-compnont/p-4356bec1.entry.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h, g as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, h, g as getElement } from './index-8310c457.js';
|
|
2
2
|
|
|
3
3
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
4
4
|
|
|
@@ -2473,7 +2473,7 @@ function Keycloak (config) {
|
|
|
2473
2473
|
}
|
|
2474
2474
|
}
|
|
2475
2475
|
|
|
2476
|
-
const dashButtonCss = ".button{display:flex;height:50px;padding:0;background:#3e7671;border:none;outline:none;border-radius:5px;overflow:hidden;font-size:16px;font-weight:500;cursor:pointer;min-width:220px;max-width:220px}.button:hover{background:#008168}.button:active{background:#3e7671}.button-text{display:block;margin:auto;padding:0 24px;color:#fff;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:80px}.button-icon{margin:auto;padding:10px}.button-profile{display:inline-flex;align-items:center;color:#fff}.button-profile img{height:50px}.button-text-full-width{width:auto!important}.button-link{text-decoration:none!important}.gg-menu-grid-r{color:#fff;box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs,1));width:16px;height:16px}.gg-menu-grid-r::before{content:\"\";display:block;box-sizing:border-box;position:absolute;width:4px;height:4px;background:currentColor;box-shadow:0 6px 0,\n 6px 6px 0,\n 12px 6px 0,\n 6px 12px 0,\n 12px 12px 0,\n 6px 0 0,\n 12px 0 0,\n 0 12px 0}.dropdown{position:relative;display:inline-block}.dropdown-content{display:none;position:absolute;right:0;background-color:#f9f9f9;min-width:180px;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);z-index:1;border-radius:5px}.dropdown-content a{color:#71797E;padding:16px 20px;text-decoration:none;display:block;cursor:pointer}.dropdown-content a:hover{background-color:#f1f1f1;color:#000;opacity:0.7}.dropdown:hover .dropdown-content{display:block}.modal{display:none;position:fixed;z-index:1;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4);text-align:center}.modal-content{background-color:#fefefe;margin:auto;padding:20px;border:1px solid #888;width:40%}.close{color:#aaaaaa;float:right;font-size:28px;font-weight:bold}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal-app{background-color:#c3e9bc;padding:15px;margin:10px;border-radius:5px}";
|
|
2476
|
+
const dashButtonCss = ".button{display:flex;height:50px;padding:0;background:#3e7671;border:none;outline:none;border-radius:5px;overflow:hidden;font-size:16px;font-weight:500;cursor:pointer;min-width:220px;max-width:220px}.button:hover{background:#008168}.button:active{background:#3e7671}.button-text{display:block;margin:auto;padding:0 24px;color:#fff;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:80px}.button-icon{margin:auto;padding:10px}.button-profile{display:inline-flex;align-items:center;color:#fff}.button-profile img{height:50px}.button-text-full-width{width:auto!important}.button-link{text-decoration:none!important}.gg-menu-grid-r{color:#fff;box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs,1));width:16px;height:16px}.gg-menu-grid-r::before{content:\"\";display:block;box-sizing:border-box;position:absolute;width:4px;height:4px;background:currentColor;box-shadow:0 6px 0,\n 6px 6px 0,\n 12px 6px 0,\n 6px 12px 0,\n 12px 12px 0,\n 6px 0 0,\n 12px 0 0,\n 0 12px 0}.dropdown{position:relative;display:inline-block}.dropdown-content{display:none;position:absolute;right:0;background-color:#f9f9f9;min-width:180px;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);z-index:1;border-radius:5px}.dropdown-content a{color:#71797E;padding:16px 20px;text-decoration:none;display:block;cursor:pointer}.dropdown-content a:hover{background-color:#f1f1f1;color:#000;opacity:0.7}.dropdown:hover .dropdown-content{display:block}.modal{display:none;position:fixed;z-index:1;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4);text-align:center}.modal-content{background-color:#fefefe;margin:auto;padding:20px;border:1px solid #888;width:40%}.modal-body{max-height:50vh;overflow-y:auto}.close{color:#aaaaaa;float:right;font-size:28px;font-weight:bold}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal-app{background-color:#c3e9bc;padding:15px;margin:10px;border-radius:5px}.external-app-link{text-decoration:none;color:#000}.gray-text{color:#606060}.green-text{color:#3e7671}#countdown{position:relative;margin:auto;margin-top:30px;height:40px;width:40px;text-align:center}#countdown-number{color:#2e2e2e;display:inline-block;line-height:40px}svg{position:absolute;top:0;right:0;width:40px;height:40px;transform:rotateY(-180deg) rotateZ(-90deg)}svg circle{stroke-dasharray:113px;stroke-dashoffset:0px;stroke-linecap:round;stroke-width:4px;stroke:#008168;fill:none;animation:countdown 6s linear infinite forwards}@keyframes countdown{from{stroke-dashoffset:0px}to{stroke-dashoffset:113px}}";
|
|
2477
2477
|
const DashButtonStyle0 = dashButtonCss;
|
|
2478
2478
|
|
|
2479
2479
|
const DashButtonComponent = class {
|
|
@@ -2486,6 +2486,10 @@ const DashButtonComponent = class {
|
|
|
2486
2486
|
this.keycloakUri = "http://localhost:8080";
|
|
2487
2487
|
this.realm = "";
|
|
2488
2488
|
this.clientId = "";
|
|
2489
|
+
this.appId = "";
|
|
2490
|
+
this.portalUrl = "";
|
|
2491
|
+
this.marketplaceUrl = "";
|
|
2492
|
+
this.showUnauthorizedModal = false;
|
|
2489
2493
|
this.keycloak = new Keycloak({
|
|
2490
2494
|
url: this.keycloakUri,
|
|
2491
2495
|
realm: this.realm,
|
|
@@ -2494,10 +2498,86 @@ const DashButtonComponent = class {
|
|
|
2494
2498
|
this.isAuth = false;
|
|
2495
2499
|
this.givenName = "";
|
|
2496
2500
|
this.silentCheckSsoRedirectUri = window.location.origin + '/assets/verificar-sso.html';
|
|
2501
|
+
this.appList = [];
|
|
2497
2502
|
}
|
|
2498
2503
|
;
|
|
2499
|
-
|
|
2500
|
-
this.
|
|
2504
|
+
componentWillLoad() {
|
|
2505
|
+
this.initKeycloak().then(() => {
|
|
2506
|
+
// Check if the user is authenticated
|
|
2507
|
+
if (this.isAuth) {
|
|
2508
|
+
this.getAppList().then(res => {
|
|
2509
|
+
this.appList = res;
|
|
2510
|
+
// If the user has set an app ID, check if they have permission to access
|
|
2511
|
+
if (this.appId) {
|
|
2512
|
+
// Retrieve the list of buttons that are configured to set the app ID
|
|
2513
|
+
const appIdList = this.appId.replace(/'/g, '').split(',');
|
|
2514
|
+
// Remote appID list parsed from object
|
|
2515
|
+
const tempAppList = this.appList.map(obj => obj['shortname']);
|
|
2516
|
+
// Check if the user has permission to access the selected application
|
|
2517
|
+
if (appIdList.filter(id => tempAppList.includes(id)).length == 0) {
|
|
2518
|
+
// Show modal
|
|
2519
|
+
const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');
|
|
2520
|
+
appErrorModal.style.display = "block";
|
|
2521
|
+
// If a redirect URL is provided, show the loading spinner
|
|
2522
|
+
if (this.portalUrl && this.showUnauthorizedModal) {
|
|
2523
|
+
var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');
|
|
2524
|
+
var countdown = 6;
|
|
2525
|
+
countdownNumberEl.textContent = countdown.toString();
|
|
2526
|
+
setInterval(() => {
|
|
2527
|
+
countdown = --countdown <= 0 ? 6 : countdown;
|
|
2528
|
+
countdownNumberEl.textContent = countdown.toString();
|
|
2529
|
+
// Once the countdown finishes, redirect to the provided URL
|
|
2530
|
+
if (countdown == 1) {
|
|
2531
|
+
// appErrorModal.style.display = "none";
|
|
2532
|
+
window.location.replace(this.portalUrl.toString());
|
|
2533
|
+
}
|
|
2534
|
+
}, 1000);
|
|
2535
|
+
}
|
|
2536
|
+
}
|
|
2537
|
+
}
|
|
2538
|
+
});
|
|
2539
|
+
}
|
|
2540
|
+
});
|
|
2541
|
+
// // Get all application data associated with organization ID
|
|
2542
|
+
// const appIdList = this.appId.replace(/'/g, '').split(',');
|
|
2543
|
+
// var appListIds:Array<string> = []
|
|
2544
|
+
// if(this.appId) {
|
|
2545
|
+
// // const appList:Array<string> = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.APP_ID;
|
|
2546
|
+
// // Get app ID from marketplace (Compare product_id with app_id)
|
|
2547
|
+
// this.getAppList().then((response: Response) => response.json())
|
|
2548
|
+
// .then(response => {
|
|
2549
|
+
// // Save application data to a global array
|
|
2550
|
+
// if(this.appList.length <= 0 ) {
|
|
2551
|
+
// this.appList = response
|
|
2552
|
+
// }
|
|
2553
|
+
// // Save application IDs to a local array
|
|
2554
|
+
// appListIds.push(...this.appList.map(obj => obj['product_id']))
|
|
2555
|
+
// // Check if the user has permission to access the selected application
|
|
2556
|
+
// if(appIdList.filter(id => appListIds.includes(id)).length == 0) {
|
|
2557
|
+
// // Show modal
|
|
2558
|
+
// const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');
|
|
2559
|
+
// appErrorModal.style.display = "block";
|
|
2560
|
+
// // If a redirect URL is provided, show the loading spinner
|
|
2561
|
+
// if (this.portalUrl) {
|
|
2562
|
+
// var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');
|
|
2563
|
+
// var countdown = 6;
|
|
2564
|
+
// countdownNumberEl.textContent = countdown.toString();
|
|
2565
|
+
// setInterval(() => {
|
|
2566
|
+
// countdown = --countdown <= 0 ? 6 : countdown;
|
|
2567
|
+
// countdownNumberEl.textContent = countdown.toString();
|
|
2568
|
+
// // Once the countdown finishes, redirect to the provided URL
|
|
2569
|
+
// if(countdown == 1) {
|
|
2570
|
+
// // appErrorModal.style.display = "none";
|
|
2571
|
+
// window.location.replace(this.portalUrl.toString());
|
|
2572
|
+
// }
|
|
2573
|
+
// }, 1000);
|
|
2574
|
+
// }
|
|
2575
|
+
// }
|
|
2576
|
+
// })
|
|
2577
|
+
// }
|
|
2578
|
+
}
|
|
2579
|
+
async initKeycloak() {
|
|
2580
|
+
await this.keycloak.init({
|
|
2501
2581
|
onLoad: this.authMethod,
|
|
2502
2582
|
checkLoginIframe: false,
|
|
2503
2583
|
silentCheckSsoRedirectUri: this.silentCheckSso ? this.silentCheckSsoRedirectUri : '',
|
|
@@ -2510,6 +2590,17 @@ const DashButtonComponent = class {
|
|
|
2510
2590
|
}
|
|
2511
2591
|
});
|
|
2512
2592
|
}
|
|
2593
|
+
async getAppList() {
|
|
2594
|
+
// const token = await JSON.parse(localStorage.getItem('keycloak')).token;
|
|
2595
|
+
// const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName', {
|
|
2596
|
+
// headers: new Headers({
|
|
2597
|
+
// 'Authorization': 'Bearer ' + token,
|
|
2598
|
+
// }),
|
|
2599
|
+
// })
|
|
2600
|
+
const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName');
|
|
2601
|
+
const jsonObj = await response.json();
|
|
2602
|
+
return jsonObj;
|
|
2603
|
+
}
|
|
2513
2604
|
login() {
|
|
2514
2605
|
this.keycloak.login();
|
|
2515
2606
|
}
|
|
@@ -2527,7 +2618,7 @@ const DashButtonComponent = class {
|
|
|
2527
2618
|
appModal.style.display = "none";
|
|
2528
2619
|
}
|
|
2529
2620
|
render() {
|
|
2530
|
-
return h("div", { key: '
|
|
2621
|
+
return h("div", { key: '518e0da154542073e372b6befd2a8e7e174af702' }, h("div", { key: '97353368ee021f8a2343f12950287978ba4af8c9' }, (() => {
|
|
2531
2622
|
if (this.isAuth && this.showPostLoginText) {
|
|
2532
2623
|
return (h("a", { href: this.redirectUri, id: "login-btn", class: "button button-link" }, h("span", { class: "button-text button-text-full-width" }, "Go to Dashboard")));
|
|
2533
2624
|
}
|
|
@@ -2537,7 +2628,11 @@ const DashButtonComponent = class {
|
|
|
2537
2628
|
else {
|
|
2538
2629
|
return (h("button", { onClick: this.login.bind(this), id: "login-btn", type: "button", class: "button" }, h("span", { class: "button-text" }, "Login")));
|
|
2539
2630
|
}
|
|
2540
|
-
})()), h("div", { key: '
|
|
2631
|
+
})()), h("div", { key: 'f0171bcfecf92c61280a7e5af8bac5a89b29c997', id: "appListModal", class: "modal" }, h("div", { key: '29db22476317b8c76e09769eda047ada47a8ddee', class: "modal-content" }, h("span", { key: '1632ec033b67f1fc059027739022b64077e5f651', onClick: this.closeModal.bind(this), class: "close" }, "\u00D7"), h("h3", { key: '9d5e4048ac0ea51a4fef045c5546aec65822990e' }, "Applications"), h("div", { key: 'c983f0617428ec20581d6d69ad2df492a213f366', class: "modal-body" }, this.appList.length > 0 ? this.appList.map(app => {
|
|
2632
|
+
return (h("a", { class: "external-app-link", target: '_blank', href: "https://" + app.shortname + "-zdzw." + this.portalUrl.replace(/(^\w+:|^)\/\//, '') }, h("div", { class: "modal-app" }, h("div", null, app.name))));
|
|
2633
|
+
}) : h("div", null, h("h3", { class: "gray-text" }, "Not installed application found."), " ", h("p", { class: "gray-text" }, "Please contact administration."))))), h("div", { key: 'fb01669525955798b4aaf2b9e88d35efe78693da', id: "appPermissionErrorModal", class: "modal" }, h("div", { key: '6e06bc1824b0a1641795f69d30f6c68dad1930a6', class: "modal-content" }, h("img", { key: '5cb3d79f1abcc875188586e720b0ce5135fa80d1', src: "data:image/png;base64,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" }), h("h2", { key: '7698274b668f8681cbc232dcab0c6ae93b8b2be5', class: "green-text margin-b" }, "You don't have permission to access this application."), h("h3", { key: 'dbafa7836eb959c051af3acb6883955f66ea64d7', class: "green-text" }, "Please contact the administration."), (this.portalUrl && this.showUnauthorizedModal) ?
|
|
2634
|
+
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" }))))
|
|
2635
|
+
: h("div", null))));
|
|
2541
2636
|
}
|
|
2542
2637
|
get el() { return getElement(this); }
|
|
2543
2638
|
};
|