dash-button-web 0.0.1 → 0.0.4

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 (32) hide show
  1. package/dist/cjs/dash-button.cjs.entry.js +39 -5
  2. package/dist/cjs/dash-button.cjs.entry.js.map +1 -1
  3. package/dist/cjs/{index-8282b36b.js → index-d91975cd.js} +37 -2
  4. package/dist/cjs/index-d91975cd.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 +51 -0
  8. package/dist/collection/components/my-component/dash-button.js +91 -3
  9. package/dist/collection/components/my-component/dash-button.js.map +1 -1
  10. package/dist/components/dash-button.js +41 -4
  11. package/dist/components/dash-button.js.map +1 -1
  12. package/dist/esm/dash-button.entry.js +39 -5
  13. package/dist/esm/dash-button.entry.js.map +1 -1
  14. package/dist/esm/{index-2b6c17bc.js → index-1c7e21da.js} +37 -2
  15. package/dist/esm/index-1c7e21da.js.map +1 -0
  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 +4 -0
  19. package/dist/types/components.d.ts +6 -0
  20. package/dist/web-compnont/p-aa686508.js +3 -0
  21. package/dist/web-compnont/p-aa686508.js.map +1 -0
  22. package/dist/web-compnont/{p-97a6df2d.entry.js → p-ccad140c.entry.js} +3 -3
  23. package/dist/web-compnont/p-ccad140c.entry.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/readme.md +10 -2
  28. package/dist/cjs/index-8282b36b.js.map +0 -1
  29. package/dist/esm/index-2b6c17bc.js.map +0 -1
  30. package/dist/web-compnont/p-35259f64.js +0 -3
  31. package/dist/web-compnont/p-35259f64.js.map +0 -1
  32. package/dist/web-compnont/p-97a6df2d.entry.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { r as registerInstance, h, g as getElement } from './index-2b6c17bc.js';
1
+ import { r as registerInstance, h, g as getElement } from './index-1c7e21da.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%}.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}}";
2477
2477
  const DashButtonStyle0 = dashButtonCss;
2478
2478
 
2479
2479
  const DashButtonComponent = class {
@@ -2482,9 +2482,12 @@ const DashButtonComponent = class {
2482
2482
  this.showPostLoginText = false;
2483
2483
  this.silentCheckSso = false;
2484
2484
  this.redirectUri = undefined;
2485
+ this.authMethod = "check-sso";
2485
2486
  this.keycloakUri = "http://localhost:8080";
2486
2487
  this.realm = "";
2487
2488
  this.clientId = "";
2489
+ this.appId = "";
2490
+ this.portalUrl = "";
2488
2491
  this.keycloak = new Keycloak({
2489
2492
  url: this.keycloakUri,
2490
2493
  realm: this.realm,
@@ -2495,15 +2498,43 @@ const DashButtonComponent = class {
2495
2498
  this.silentCheckSsoRedirectUri = window.location.origin + '/assets/verificar-sso.html';
2496
2499
  }
2497
2500
  ;
2501
+ componentDidRender() {
2502
+ const appIdList = this.appId.replace(/'/g, '').split(',');
2503
+ if (this.appId) {
2504
+ const appList = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.APP_ID;
2505
+ // Check if the user has permission to access the selected application
2506
+ if (appIdList.filter(id => appList.includes(id)).length == 0) {
2507
+ // Show modal
2508
+ const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');
2509
+ appErrorModal.style.display = "block";
2510
+ // If a redirect URL is provided, show the loading spinner
2511
+ if (this.portalUrl) {
2512
+ var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');
2513
+ var countdown = 6;
2514
+ countdownNumberEl.textContent = countdown.toString();
2515
+ setInterval(() => {
2516
+ countdown = --countdown <= 0 ? 6 : countdown;
2517
+ countdownNumberEl.textContent = countdown.toString();
2518
+ // Once the countdown finishes, redirect to the provided URL
2519
+ if (countdown == 1) {
2520
+ // appErrorModal.style.display = "none";
2521
+ window.location.replace(this.portalUrl.toString());
2522
+ }
2523
+ }, 1000);
2524
+ }
2525
+ }
2526
+ }
2527
+ }
2498
2528
  connectedCallback() {
2499
2529
  this.keycloak.init({
2500
- onLoad: 'check-sso',
2530
+ onLoad: this.authMethod,
2501
2531
  checkLoginIframe: false,
2502
2532
  silentCheckSsoRedirectUri: this.silentCheckSso ? this.silentCheckSsoRedirectUri : '',
2503
2533
  }).then(res => {
2504
2534
  if (res) {
2505
2535
  this.isAuth = true;
2506
2536
  localStorage.setItem("keycloak", JSON.stringify(this.keycloak));
2537
+ document.cookie = "ZDZW_cookie=" + JSON.parse(localStorage.getItem('keycloak')).token;
2507
2538
  this.givenName = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.given_name;
2508
2539
  }
2509
2540
  });
@@ -2513,6 +2544,7 @@ const DashButtonComponent = class {
2513
2544
  }
2514
2545
  logout() {
2515
2546
  localStorage.removeItem("keycloak");
2547
+ document.cookie = "ZDZW_cookie=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
2516
2548
  this.keycloak.logout();
2517
2549
  }
2518
2550
  showModal() {
@@ -2524,7 +2556,7 @@ const DashButtonComponent = class {
2524
2556
  appModal.style.display = "none";
2525
2557
  }
2526
2558
  render() {
2527
- return h("div", { key: '29a7944051bce29ea8ff3f1db8f2b44b5a157e84' }, h("div", { key: 'a44011e412f06a00bca1a6de134391cc1eb248c2' }, (() => {
2559
+ return h("div", { key: '174f38009e4cf79f3922504b3e58cae9480da12f' }, h("div", { key: '98ac40683307425d63dfa07342800fa661dd5dde' }, (() => {
2528
2560
  if (this.isAuth && this.showPostLoginText) {
2529
2561
  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")));
2530
2562
  }
@@ -2534,7 +2566,9 @@ const DashButtonComponent = class {
2534
2566
  else {
2535
2567
  return (h("button", { onClick: this.login.bind(this), id: "login-btn", type: "button", class: "button" }, h("span", { class: "button-text" }, "Login")));
2536
2568
  }
2537
- })()), h("div", { key: '475cbe51090c78848032e9044c9f11e460969121', id: "appListModal", class: "modal" }, h("div", { key: 'e0a2a1ffa3de0d45001f40fb46d258ade64dc933', class: "modal-content" }, h("span", { key: '5fa70d2fcac6816d9a9ee41c329bd9c787014cbb', onClick: this.closeModal.bind(this), class: "close" }, "\u00D7"), h("h3", { key: 'de74b78ba75d815758e0d7c68474d7cdb7673ae7' }, "Applications"), h("div", { key: '1ed88b256cb82aef902f08179e24cbd0be810bd9', class: "modal-app" }, "App 1"), h("div", { key: 'e3e32a260fa06452fb38e64e4593cae1d8530c7b', class: "modal-app" }, "App 2"))));
2569
+ })()), h("div", { key: 'a649dabfe9b8390f2b78144af4ee3ca3a5d338d5', id: "appListModal", class: "modal" }, h("div", { key: '23d0ca8f3e3d27e79730bee0421f56c630ae27f7', class: "modal-content" }, h("span", { key: '033f11afb71f4288102cd12b9bc597bacac8fd2e', onClick: this.closeModal.bind(this), class: "close" }, "\u00D7"), h("h3", { key: '63a889af82d6967c35066116cf4e12468fd0df26' }, "Applications"), h("div", { key: '3ac459af6d9404b09c54783f049d92b7fe206dfd', class: "modal-app" }, "App 1"), h("div", { key: 'ff78172956914519e61512b124d47f6e5258914c', class: "modal-app" }, "App 2"))), h("div", { key: '60ecbc8a455fe3d3482691d8e4c08d93d48caad3', id: "appPermissionErrorModal", class: "modal" }, h("div", { key: 'f40c0ff8698a44ab27f866f421a937644d32db7b', class: "modal-content" }, h("img", { key: 'c89ba5ac1b5bbd66b198af671bc8d5bfe1ae574a', src: "data:image/png;base64,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" }), h("h2", { key: 'bacb8e6a87554c057b594ebd082736f4baf660b0', class: "green-text margin-b" }, "You don't have permission to access this application."), h("h3", { key: '21d91222652b96f17a7c9d47f49b8e27769d2900', class: "green-text" }, "Please contact the administration."), this.portalUrl ?
2570
+ 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" }))))
2571
+ : h("div", null))));
2538
2572
  }
2539
2573
  get el() { return getElement(this); }
2540
2574
  };