dash-button-web 0.0.4 → 0.0.6

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.
Files changed (30) hide show
  1. package/dist/cjs/dash-button.cjs.entry.js +105 -32
  2. package/dist/cjs/dash-button.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-d91975cd.js → index-991e75df.js} +13 -13
  4. package/dist/cjs/index-991e75df.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/web-compnont.cjs.js +2 -2
  7. package/dist/collection/components/my-component/dash-button.css +10 -0
  8. package/dist/collection/components/my-component/dash-button.js +140 -30
  9. package/dist/collection/components/my-component/dash-button.js.map +1 -1
  10. package/dist/components/dash-button.js +108 -32
  11. package/dist/components/dash-button.js.map +1 -1
  12. package/dist/esm/dash-button.entry.js +105 -32
  13. package/dist/esm/dash-button.entry.js.map +1 -1
  14. package/dist/esm/{index-1c7e21da.js → index-8310c457.js} +13 -13
  15. package/dist/{web-compnont/p-aa686508.js.map → esm/index-8310c457.js.map} +1 -1
  16. package/dist/esm/loader.js +3 -3
  17. package/dist/esm/web-compnont.js +3 -3
  18. package/dist/types/components/my-component/dash-button.d.ts +6 -2
  19. package/dist/types/components.d.ts +4 -0
  20. package/dist/web-compnont/{p-ccad140c.entry.js → p-392f1e3f.entry.js} +3 -3
  21. package/dist/web-compnont/p-392f1e3f.entry.js.map +1 -0
  22. package/dist/web-compnont/p-4bd42d49.js +3 -0
  23. package/dist/web-compnont/p-4bd42d49.js.map +1 -0
  24. package/dist/web-compnont/web-compnont.esm.js +1 -1
  25. package/dist/web-compnont/web-compnont.esm.js.map +1 -1
  26. package/package.json +1 -1
  27. package/dist/cjs/index-d91975cd.js.map +0 -1
  28. package/dist/esm/index-1c7e21da.js.map +0 -1
  29. package/dist/web-compnont/p-aa686508.js +0 -3
  30. package/dist/web-compnont/p-ccad140c.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-d91975cd.js');
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}.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}}";
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 {
@@ -2492,6 +2492,8 @@ const DashButtonComponent = class {
2492
2492
  this.clientId = "";
2493
2493
  this.appId = "";
2494
2494
  this.portalUrl = "";
2495
+ this.marketplaceUrl = "";
2496
+ this.showUnauthorizedModal = false;
2495
2497
  this.keycloak = new Keycloak({
2496
2498
  url: this.keycloakUri,
2497
2499
  realm: this.realm,
@@ -2500,37 +2502,95 @@ const DashButtonComponent = class {
2500
2502
  this.isAuth = false;
2501
2503
  this.givenName = "";
2502
2504
  this.silentCheckSsoRedirectUri = window.location.origin + '/assets/verificar-sso.html';
2505
+ this.appList = [];
2503
2506
  }
2504
2507
  ;
2505
- componentDidRender() {
2506
- const appIdList = this.appId.replace(/'/g, '').split(',');
2507
- if (this.appId) {
2508
- const appList = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.APP_ID;
2509
- // Check if the user has permission to access the selected application
2510
- if (appIdList.filter(id => appList.includes(id)).length == 0) {
2511
- // Show modal
2512
- const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');
2513
- appErrorModal.style.display = "block";
2514
- // If a redirect URL is provided, show the loading spinner
2515
- if (this.portalUrl) {
2516
- var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');
2517
- var countdown = 6;
2518
- countdownNumberEl.textContent = countdown.toString();
2519
- setInterval(() => {
2520
- countdown = --countdown <= 0 ? 6 : countdown;
2521
- countdownNumberEl.textContent = countdown.toString();
2522
- // Once the countdown finishes, redirect to the provided URL
2523
- if (countdown == 1) {
2524
- // appErrorModal.style.display = "none";
2525
- window.location.replace(this.portalUrl.toString());
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
+ // Update local storage app permission
2523
+ localStorage.setItem("ZDZW_app_permission", JSON.stringify(false));
2524
+ // Show modal
2525
+ const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');
2526
+ appErrorModal.style.display = "block";
2527
+ // If a redirect URL is provided, show the loading spinner
2528
+ if (this.portalUrl && this.showUnauthorizedModal) {
2529
+ var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');
2530
+ var countdown = 6;
2531
+ countdownNumberEl.textContent = countdown.toString();
2532
+ setInterval(() => {
2533
+ countdown = --countdown <= 0 ? 6 : countdown;
2534
+ countdownNumberEl.textContent = countdown.toString();
2535
+ // Once the countdown finishes, redirect to the provided URL
2536
+ if (countdown == 1) {
2537
+ // appErrorModal.style.display = "none";
2538
+ window.location.replace(this.portalUrl.toString());
2539
+ }
2540
+ }, 1000);
2541
+ }
2526
2542
  }
2527
- }, 1000);
2528
- }
2543
+ else {
2544
+ // The user is authenticated and has the necessary permissions
2545
+ // Update local storage app permission
2546
+ localStorage.setItem("ZDZW_app_permission", JSON.stringify(true));
2547
+ }
2548
+ }
2549
+ });
2529
2550
  }
2530
- }
2531
- }
2532
- connectedCallback() {
2533
- this.keycloak.init({
2551
+ });
2552
+ // // Get all application data associated with organization ID
2553
+ // const appIdList = this.appId.replace(/'/g, '').split(',');
2554
+ // var appListIds:Array<string> = []
2555
+ // if(this.appId) {
2556
+ // // const appList:Array<string> = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.APP_ID;
2557
+ // // Get app ID from marketplace (Compare product_id with app_id)
2558
+ // this.getAppList().then((response: Response) => response.json())
2559
+ // .then(response => {
2560
+ // // Save application data to a global array
2561
+ // if(this.appList.length <= 0 ) {
2562
+ // this.appList = response
2563
+ // }
2564
+ // // Save application IDs to a local array
2565
+ // appListIds.push(...this.appList.map(obj => obj['product_id']))
2566
+ // // Check if the user has permission to access the selected application
2567
+ // if(appIdList.filter(id => appListIds.includes(id)).length == 0) {
2568
+ // // Show modal
2569
+ // const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');
2570
+ // appErrorModal.style.display = "block";
2571
+ // // If a redirect URL is provided, show the loading spinner
2572
+ // if (this.portalUrl) {
2573
+ // var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');
2574
+ // var countdown = 6;
2575
+ // countdownNumberEl.textContent = countdown.toString();
2576
+ // setInterval(() => {
2577
+ // countdown = --countdown <= 0 ? 6 : countdown;
2578
+ // countdownNumberEl.textContent = countdown.toString();
2579
+ // // Once the countdown finishes, redirect to the provided URL
2580
+ // if(countdown == 1) {
2581
+ // // appErrorModal.style.display = "none";
2582
+ // window.location.replace(this.portalUrl.toString());
2583
+ // }
2584
+ // }, 1000);
2585
+ // }
2586
+ // }
2587
+ // })
2588
+ // }
2589
+ }
2590
+ async initKeycloak() {
2591
+ // Remove the initiation time permission localstorage object
2592
+ localStorage.removeItem("ZDZW_app_permission");
2593
+ await this.keycloak.init({
2534
2594
  onLoad: this.authMethod,
2535
2595
  checkLoginIframe: false,
2536
2596
  silentCheckSsoRedirectUri: this.silentCheckSso ? this.silentCheckSsoRedirectUri : '',
@@ -2543,6 +2603,17 @@ const DashButtonComponent = class {
2543
2603
  }
2544
2604
  });
2545
2605
  }
2606
+ async getAppList() {
2607
+ // const token = await JSON.parse(localStorage.getItem('keycloak')).token;
2608
+ // const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName', {
2609
+ // headers: new Headers({
2610
+ // 'Authorization': 'Bearer ' + token,
2611
+ // }),
2612
+ // })
2613
+ const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName');
2614
+ const jsonObj = await response.json();
2615
+ return jsonObj;
2616
+ }
2546
2617
  login() {
2547
2618
  this.keycloak.login();
2548
2619
  }
@@ -2560,17 +2631,19 @@ const DashButtonComponent = class {
2560
2631
  appModal.style.display = "none";
2561
2632
  }
2562
2633
  render() {
2563
- return index.h("div", { key: '174f38009e4cf79f3922504b3e58cae9480da12f' }, index.h("div", { key: '98ac40683307425d63dfa07342800fa661dd5dde' }, (() => {
2634
+ return index.h("div", { key: '45d3cee1eb5857f688bf82eccfa5fcf31ec0e649' }, index.h("div", { key: '2e0fbfe2fd3e969f03d31eba64732407abc9319f' }, (() => {
2564
2635
  if (this.isAuth && this.showPostLoginText) {
2565
2636
  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")));
2566
2637
  }
2567
2638
  else if (this.isAuth) {
2568
- return (index.h("div", { id: "profile-btn", class: "dropdown" }, index.h("button", { type: "button", class: "button" }, index.h("span", { class: "button-profile" }, index.h("img", { src: "https://i.pravatar.cc/100?img=32", alt: "" })), index.h("span", { id: "given-name", class: "button-text" }, this.givenName), index.h("div", { class: "button-icon" }, index.h("span", { class: "gg-menu-grid-r" }))), index.h("div", { class: "dropdown-content" }, index.h("a", { onClick: this.showModal.bind(this), id: "applications-btn" }, "Applications"), index.h("a", { onClick: this.logout.bind(this), id: "logout-btn" }, "Logout"))));
2639
+ return (index.h("div", { id: "profile-btn", class: "dropdown" }, index.h("button", { type: "button", class: "button" }, index.h("span", { class: "button-profile" }, index.h("img", { src: "https://i.pravatar.cc/100?img=32", alt: "" })), index.h("span", { id: "given-name", class: "button-text" }, this.givenName), index.h("div", { class: "button-icon" }, index.h("span", { class: "gg-menu-grid-r" }))), index.h("div", { class: "dropdown-content" }, index.h("a", { onClick: this.showModal.bind(this), id: "applications-btn" }, "Applications"), index.h("a", { href: this.portalUrl, target: '_blank', id: "applications-btn" }, "Portal"), index.h("a", { href: this.marketplaceUrl, target: '_blank', id: "applications-btn" }, "Marketplace"), index.h("a", { onClick: this.logout.bind(this), id: "logout-btn" }, "Logout"))));
2569
2640
  }
2570
2641
  else {
2571
2642
  return (index.h("button", { onClick: this.login.bind(this), id: "login-btn", type: "button", class: "button" }, index.h("span", { class: "button-text" }, "Login")));
2572
2643
  }
2573
- })()), index.h("div", { key: 'a649dabfe9b8390f2b78144af4ee3ca3a5d338d5', id: "appListModal", class: "modal" }, index.h("div", { key: '23d0ca8f3e3d27e79730bee0421f56c630ae27f7', class: "modal-content" }, index.h("span", { key: '033f11afb71f4288102cd12b9bc597bacac8fd2e', onClick: this.closeModal.bind(this), class: "close" }, "\u00D7"), index.h("h3", { key: '63a889af82d6967c35066116cf4e12468fd0df26' }, "Applications"), index.h("div", { key: '3ac459af6d9404b09c54783f049d92b7fe206dfd', class: "modal-app" }, "App 1"), index.h("div", { key: 'ff78172956914519e61512b124d47f6e5258914c', class: "modal-app" }, "App 2"))), index.h("div", { key: '60ecbc8a455fe3d3482691d8e4c08d93d48caad3', id: "appPermissionErrorModal", class: "modal" }, index.h("div", { key: 'f40c0ff8698a44ab27f866f421a937644d32db7b', class: "modal-content" }, index.h("img", { key: 'c89ba5ac1b5bbd66b198af671bc8d5bfe1ae574a', src: "data:image/png;base64,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" }), index.h("h2", { key: 'bacb8e6a87554c057b594ebd082736f4baf660b0', class: "green-text margin-b" }, "You don't have permission to access this application."), index.h("h3", { key: '21d91222652b96f17a7c9d47f49b8e27769d2900', class: "green-text" }, "Please contact the administration."), this.portalUrl ?
2644
+ })()), index.h("div", { key: 'fc06bdd5f74a4b79a21f1ddab5629f6a898a261a', id: "appListModal", class: "modal" }, index.h("div", { key: '667fa5a708f790818d2694bb5a7c811a64fbbff3', class: "modal-content" }, index.h("span", { key: 'ec1df58c4d4ed0a3231e9fc9457cd596ca8e048b', onClick: this.closeModal.bind(this), class: "close" }, "\u00D7"), index.h("h3", { key: '2f9bae87a635e8904f5f0fe4ad8076a347370404' }, "Applications"), index.h("div", { key: '930a0de8699c574a7d9438ab0ac973830734327a', class: "modal-body" }, this.appList.length > 0 ? this.appList.map(app => {
2645
+ return (index.h("a", { class: "external-app-link", target: '_blank', href: "https://" + app.shortname + "-zdzw" + this.portalUrl.replace(/(^\w+:|^)\/\//, '').replace('.portal-frontend-zdzw', '') }, index.h("div", { class: "modal-app" }, index.h("div", null, app.name))));
2646
+ }) : 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: 'c01ee35c13b76484278a3a6bc38917784aa1f4d0', id: "appPermissionErrorModal", class: "modal" }, index.h("div", { key: 'cb330533d75233c44a520851adfee2aad581f192', class: "modal-content" }, index.h("img", { key: 'b8ef10fdc78a54a35ae91b6798f3eeaa13b05cf6', src: "data:image/png;base64,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" }), index.h("h2", { key: '64db3526910c2eff61f8f59d445ba8fd2fe0cae1', class: "green-text margin-b" }, "You don't have permission to access this application."), index.h("h3", { key: '845136246b4bdaa80c71cb44d9e483ed11b8727f', class: "green-text" }, "Please contact the administration."), (this.portalUrl && this.showUnauthorizedModal) ?
2574
2647
  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" }))))
2575
2648
  : index.h("div", null))));
2576
2649
  }