@jaspersoft/jv-tools
Version:
Tools for working with JasperReports Server's Visualize.js
3 lines (2 loc) • 1.59 kB
JavaScript
(function(r,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],s):(r=typeof globalThis<"u"?globalThis:r||self,s(r["@jaspersoft/jv-tools"]={},r.react))})(this,function(r,s){"use strict";const h=(e,t)=>{e!=null&&e.errorCallback?e==null||e.errorCallback(t):console.error(String(t))},b=(e,t)=>{const[a,p]=s.useState(null),n=s.useRef();return s.useEffect(()=>{if(JSON.stringify(n.current)===JSON.stringify(e))return;n.current=e,j(e.visualizePath)().then(o=>{let m={server:e.server,auth:e.auth||{}};e.publicPath&&(m={...m,publicPath:e.publicPath}),o(m,i=>{const z=i.server!==void 0?i:{...i,server:e.server};p({v:z})},i=>h(t,i))}).catch(o=>h(t,o))},[e]),a};let l;const c={},T="",V=(e,t=6e4)=>new Promise((a,p)=>{const n=setTimeout(()=>{p(`Failed to load visualizejs. Either error or timeout occurred. url: [${e}]`)},t),u=document.createElement("script");u.addEventListener("load",function(){clearTimeout(n),a()});const o=document.head||document.getElementsByTagName("head")[0];u.src=e,o.insertBefore(u,o.firstChild)}),d=()=>{const e=window.visualize;return e&&e.noConflict()},f=()=>Promise.reject("No visualizejs found in the global scope. Please add script tag to your page or use url parameter to load visualizejs"),v=()=>(l||(l=d()),l?Promise.resolve(l):f()),j=(e,t)=>!e&&d()?v:(e||(e=T),async()=>{if(c[e])return c[e];await V(e,t);const a=d();return a?(c[e]=a,a):f()});r.useVisualize=b,r.visualizejsLoader=j,Object.defineProperty(r,Symbol.toStringTag,{value:"Module"})});
//# sourceMappingURL=index.umd.js.map