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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-991e75df.js');
|
|
6
6
|
|
|
7
7
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
8
8
|
|
|
@@ -2477,7 +2477,7 @@ function Keycloak (config) {
|
|
|
2477
2477
|
}
|
|
2478
2478
|
}
|
|
2479
2479
|
|
|
2480
|
-
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}";
|
|
2480
|
+
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}}";
|
|
2481
2481
|
const DashButtonStyle0 = dashButtonCss;
|
|
2482
2482
|
|
|
2483
2483
|
const DashButtonComponent = class {
|
|
@@ -2490,6 +2490,10 @@ const DashButtonComponent = class {
|
|
|
2490
2490
|
this.keycloakUri = "http://localhost:8080";
|
|
2491
2491
|
this.realm = "";
|
|
2492
2492
|
this.clientId = "";
|
|
2493
|
+
this.appId = "";
|
|
2494
|
+
this.portalUrl = "";
|
|
2495
|
+
this.marketplaceUrl = "";
|
|
2496
|
+
this.showUnauthorizedModal = false;
|
|
2493
2497
|
this.keycloak = new Keycloak({
|
|
2494
2498
|
url: this.keycloakUri,
|
|
2495
2499
|
realm: this.realm,
|
|
@@ -2498,10 +2502,86 @@ const DashButtonComponent = class {
|
|
|
2498
2502
|
this.isAuth = false;
|
|
2499
2503
|
this.givenName = "";
|
|
2500
2504
|
this.silentCheckSsoRedirectUri = window.location.origin + '/assets/verificar-sso.html';
|
|
2505
|
+
this.appList = [];
|
|
2501
2506
|
}
|
|
2502
2507
|
;
|
|
2503
|
-
|
|
2504
|
-
this.
|
|
2508
|
+
componentWillLoad() {
|
|
2509
|
+
this.initKeycloak().then(() => {
|
|
2510
|
+
// Check if the user is authenticated
|
|
2511
|
+
if (this.isAuth) {
|
|
2512
|
+
this.getAppList().then(res => {
|
|
2513
|
+
this.appList = res;
|
|
2514
|
+
// If the user has set an app ID, check if they have permission to access
|
|
2515
|
+
if (this.appId) {
|
|
2516
|
+
// Retrieve the list of buttons that are configured to set the app ID
|
|
2517
|
+
const appIdList = this.appId.replace(/'/g, '').split(',');
|
|
2518
|
+
// Remote appID list parsed from object
|
|
2519
|
+
const tempAppList = this.appList.map(obj => obj['shortname']);
|
|
2520
|
+
// Check if the user has permission to access the selected application
|
|
2521
|
+
if (appIdList.filter(id => tempAppList.includes(id)).length == 0) {
|
|
2522
|
+
// Show modal
|
|
2523
|
+
const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');
|
|
2524
|
+
appErrorModal.style.display = "block";
|
|
2525
|
+
// If a redirect URL is provided, show the loading spinner
|
|
2526
|
+
if (this.portalUrl && this.showUnauthorizedModal) {
|
|
2527
|
+
var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');
|
|
2528
|
+
var countdown = 6;
|
|
2529
|
+
countdownNumberEl.textContent = countdown.toString();
|
|
2530
|
+
setInterval(() => {
|
|
2531
|
+
countdown = --countdown <= 0 ? 6 : countdown;
|
|
2532
|
+
countdownNumberEl.textContent = countdown.toString();
|
|
2533
|
+
// Once the countdown finishes, redirect to the provided URL
|
|
2534
|
+
if (countdown == 1) {
|
|
2535
|
+
// appErrorModal.style.display = "none";
|
|
2536
|
+
window.location.replace(this.portalUrl.toString());
|
|
2537
|
+
}
|
|
2538
|
+
}, 1000);
|
|
2539
|
+
}
|
|
2540
|
+
}
|
|
2541
|
+
}
|
|
2542
|
+
});
|
|
2543
|
+
}
|
|
2544
|
+
});
|
|
2545
|
+
// // Get all application data associated with organization ID
|
|
2546
|
+
// const appIdList = this.appId.replace(/'/g, '').split(',');
|
|
2547
|
+
// var appListIds:Array<string> = []
|
|
2548
|
+
// if(this.appId) {
|
|
2549
|
+
// // const appList:Array<string> = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.APP_ID;
|
|
2550
|
+
// // Get app ID from marketplace (Compare product_id with app_id)
|
|
2551
|
+
// this.getAppList().then((response: Response) => response.json())
|
|
2552
|
+
// .then(response => {
|
|
2553
|
+
// // Save application data to a global array
|
|
2554
|
+
// if(this.appList.length <= 0 ) {
|
|
2555
|
+
// this.appList = response
|
|
2556
|
+
// }
|
|
2557
|
+
// // Save application IDs to a local array
|
|
2558
|
+
// appListIds.push(...this.appList.map(obj => obj['product_id']))
|
|
2559
|
+
// // Check if the user has permission to access the selected application
|
|
2560
|
+
// if(appIdList.filter(id => appListIds.includes(id)).length == 0) {
|
|
2561
|
+
// // Show modal
|
|
2562
|
+
// const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');
|
|
2563
|
+
// appErrorModal.style.display = "block";
|
|
2564
|
+
// // If a redirect URL is provided, show the loading spinner
|
|
2565
|
+
// if (this.portalUrl) {
|
|
2566
|
+
// var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');
|
|
2567
|
+
// var countdown = 6;
|
|
2568
|
+
// countdownNumberEl.textContent = countdown.toString();
|
|
2569
|
+
// setInterval(() => {
|
|
2570
|
+
// countdown = --countdown <= 0 ? 6 : countdown;
|
|
2571
|
+
// countdownNumberEl.textContent = countdown.toString();
|
|
2572
|
+
// // Once the countdown finishes, redirect to the provided URL
|
|
2573
|
+
// if(countdown == 1) {
|
|
2574
|
+
// // appErrorModal.style.display = "none";
|
|
2575
|
+
// window.location.replace(this.portalUrl.toString());
|
|
2576
|
+
// }
|
|
2577
|
+
// }, 1000);
|
|
2578
|
+
// }
|
|
2579
|
+
// }
|
|
2580
|
+
// })
|
|
2581
|
+
// }
|
|
2582
|
+
}
|
|
2583
|
+
async initKeycloak() {
|
|
2584
|
+
await this.keycloak.init({
|
|
2505
2585
|
onLoad: this.authMethod,
|
|
2506
2586
|
checkLoginIframe: false,
|
|
2507
2587
|
silentCheckSsoRedirectUri: this.silentCheckSso ? this.silentCheckSsoRedirectUri : '',
|
|
@@ -2514,6 +2594,17 @@ const DashButtonComponent = class {
|
|
|
2514
2594
|
}
|
|
2515
2595
|
});
|
|
2516
2596
|
}
|
|
2597
|
+
async getAppList() {
|
|
2598
|
+
// const token = await JSON.parse(localStorage.getItem('keycloak')).token;
|
|
2599
|
+
// const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName', {
|
|
2600
|
+
// headers: new Headers({
|
|
2601
|
+
// 'Authorization': 'Bearer ' + token,
|
|
2602
|
+
// }),
|
|
2603
|
+
// })
|
|
2604
|
+
const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName');
|
|
2605
|
+
const jsonObj = await response.json();
|
|
2606
|
+
return jsonObj;
|
|
2607
|
+
}
|
|
2517
2608
|
login() {
|
|
2518
2609
|
this.keycloak.login();
|
|
2519
2610
|
}
|
|
@@ -2531,7 +2622,7 @@ const DashButtonComponent = class {
|
|
|
2531
2622
|
appModal.style.display = "none";
|
|
2532
2623
|
}
|
|
2533
2624
|
render() {
|
|
2534
|
-
return index.h("div", { key: '
|
|
2625
|
+
return index.h("div", { key: '518e0da154542073e372b6befd2a8e7e174af702' }, index.h("div", { key: '97353368ee021f8a2343f12950287978ba4af8c9' }, (() => {
|
|
2535
2626
|
if (this.isAuth && this.showPostLoginText) {
|
|
2536
2627
|
return (index.h("a", { href: this.redirectUri, id: "login-btn", class: "button button-link" }, index.h("span", { class: "button-text button-text-full-width" }, "Go to Dashboard")));
|
|
2537
2628
|
}
|
|
@@ -2541,7 +2632,11 @@ const DashButtonComponent = class {
|
|
|
2541
2632
|
else {
|
|
2542
2633
|
return (index.h("button", { onClick: this.login.bind(this), id: "login-btn", type: "button", class: "button" }, index.h("span", { class: "button-text" }, "Login")));
|
|
2543
2634
|
}
|
|
2544
|
-
})()), index.h("div", { key: '
|
|
2635
|
+
})()), index.h("div", { key: 'f0171bcfecf92c61280a7e5af8bac5a89b29c997', id: "appListModal", class: "modal" }, index.h("div", { key: '29db22476317b8c76e09769eda047ada47a8ddee', class: "modal-content" }, index.h("span", { key: '1632ec033b67f1fc059027739022b64077e5f651', onClick: this.closeModal.bind(this), class: "close" }, "\u00D7"), index.h("h3", { key: '9d5e4048ac0ea51a4fef045c5546aec65822990e' }, "Applications"), index.h("div", { key: 'c983f0617428ec20581d6d69ad2df492a213f366', class: "modal-body" }, this.appList.length > 0 ? this.appList.map(app => {
|
|
2636
|
+
return (index.h("a", { class: "external-app-link", target: '_blank', href: "https://" + app.shortname + "-zdzw." + this.portalUrl.replace(/(^\w+:|^)\/\//, '') }, index.h("div", { class: "modal-app" }, index.h("div", null, app.name))));
|
|
2637
|
+
}) : index.h("div", null, index.h("h3", { class: "gray-text" }, "Not installed application found."), " ", index.h("p", { class: "gray-text" }, "Please contact administration."))))), index.h("div", { key: 'fb01669525955798b4aaf2b9e88d35efe78693da', id: "appPermissionErrorModal", class: "modal" }, index.h("div", { key: '6e06bc1824b0a1641795f69d30f6c68dad1930a6', class: "modal-content" }, index.h("img", { key: '5cb3d79f1abcc875188586e720b0ce5135fa80d1', src: "data:image/png;base64,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" }), index.h("h2", { key: '7698274b668f8681cbc232dcab0c6ae93b8b2be5', class: "green-text margin-b" }, "You don't have permission to access this application."), index.h("h3", { key: 'dbafa7836eb959c051af3acb6883955f66ea64d7', class: "green-text" }, "Please contact the administration."), (this.portalUrl && this.showUnauthorizedModal) ?
|
|
2638
|
+
index.h("div", null, index.h("h4", { class: "gray-text" }, "You will be automatically redirected to the portal."), index.h("div", { id: "countdown" }, index.h("div", { id: "countdown-number" }), index.h("svg", null, index.h("circle", { r: "18", cx: "20", cy: "20" }))))
|
|
2639
|
+
: index.h("div", null))));
|
|
2545
2640
|
}
|
|
2546
2641
|
get el() { return index.getElement(this); }
|
|
2547
2642
|
};
|