UNPKG

@sencha/reext

Version:

ReExt - Sencha Ext JS components in React

1,186 lines (1,185 loc) 93.7 kB
(function(global, factory) { typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("react/jsx-runtime"), require("react"), require("react-dom")) : typeof define === "function" && define.amd ? define(["exports", "react/jsx-runtime", "react", "react-dom"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.ReExt = {}, global.jsxRuntime, global.React, global.ReactDOM)); })(this, function(exports2, jsxRuntime, React, reactDom) { "use strict";var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var _a, _b, _c, _d, _e2, _f, _g; const version = "1.1.2"; function o$1(r, e2) { if (r === e2) return true; if (r == null || e2 == null) return r === e2; if (typeof r != typeof e2) return false; if (r instanceof Date && e2 instanceof Date) return r.getTime() === e2.getTime(); if (Array.isArray(r) && Array.isArray(e2)) { if (r.length !== e2.length) return false; for (let t2 = 0; t2 < r.length; t2++) if (!o$1(r[t2], e2[t2])) return false; return true; } if (r instanceof Object && e2 instanceof Object) { let t2 = Object.keys(r), s = Object.keys(e2); if (t2.length !== s.length) return false; for (let n2 of t2) if (!e2.hasOwnProperty(n2) || !o$1(r[n2], e2[n2])) return false; return true; } return false; } __name(o$1, "o$1"); function l$3(r) { try { let e2 = [], t2 = JSON.stringify(r, function(s, n2) { if (typeof n2 == "object" && n2 !== null) { if (e2.indexOf(n2) !== -1) return; e2.push(n2); } return n2; }); return e2 = null, t2; } catch (e2) { return console.log("stringify error", e2), ""; } } __name(l$3, "l$3"); var a$2 = /* @__PURE__ */ __name((r) => { var e2 = null, t2 = r.slice(0, 2); if (t2 === "on") { var s = r.charAt(2), n2 = r.charAt(2).toUpperCase(); s === n2 && (e2 = r.slice(2).toLowerCase()); } return window.Ext.isClassic === true && e2 === "tap" && (e2 = "click"), e2; }, "a$2"); var p$1 = /* @__PURE__ */ __name((r, e2, t2) => { if (!(typeof window === void 0 || typeof window > "u")) { var s = /* @__PURE__ */ __name((d2) => { let i2 = d2.charAt(0).toUpperCase(), f = d2.slice(1); var u2 = "set" + (i2 + f); return u2; }, "s"), n2; window.Ext.isClassic === true ? e2 === "items" ? (r.removeAll(true), r.add(t2)) : e2 !== "layout" && (n2 = s(e2), r[n2] !== void 0 ? r[n2](t2) : r[e2] = t2) : (n2 = s(e2), r[n2] !== void 0 && r[n2](t2)); } }, "p$1"); function y(r, e2, t2, s, n2) { try { delete e2.children, delete t2.children; for (let [i2] of Object.entries(e2)) { if (a$2(i2) != null || i2 === "xtype" || i2 === "items") return; t2[i2] !== void 0 && t2[i2] !== null && t2[i2].listeners !== void 0 && delete t2[i2].listeners, e2[i2] !== void 0 && e2[i2] !== null && e2[i2].listeners !== void 0 && delete e2[i2].listeners; let f; if (i2 === "series") f = true; else { var d2 = l$3(t2[i2]), c2 = l$3(e2[i2]); f = o$1(c2, d2); } f === false && (i2 === "store" ? s.reconfigure && s.reconfigure(t2[i2]) : p$1(s, i2, t2[i2])); } } catch (i2) { console.log("compareOldAndNewProps error", i2); } } __name(y, "y"); var l$2 = /* @__PURE__ */ __name((d2) => { var t2 = null, n2 = d2.slice(0, 2); if (n2 === "on") { var r = d2.charAt(2), e2 = d2.charAt(2).toUpperCase(); r === e2 && (t2 = d2.slice(2).toLowerCase()); } return window.Ext.isClassic === true && t2 === "tap" && (t2 = "click"), t2; }, "l$2"); var u = /* @__PURE__ */ __name((d2, t2, n2, r) => { if (!(typeof window === void 0 || typeof window > "u")) { var e2 = {}; if (e2.xtype = d2, t2 !== void 0) for (let [i2, o2] of Object.entries(t2)) e2[i2] = o2; if (n2.references === true && (e2.controller = window.Ext.create("Ext.app.ViewController")), e2.store !== void 0 && (e2.store.listeners !== void 0 ? e2.store.listeners.load === void 0 && (e2.store.listeners.load = (i2) => { n2.storeloaded !== void 0 && n2.storeloaded(i2, r()), n2.onStoreloaded !== void 0 && n2.onStoreloaded(i2, r()); }) : e2.store.listeners = { load: /* @__PURE__ */ __name((i2) => { n2.storeloaded !== void 0 && n2.storeloaded(i2, r()), n2.onStoreloaded !== void 0 && n2.onStoreloaded(i2, r()); }, "load") }), e2.listeners === void 0) { e2.listeners = {}; for (let [i2, o2] of Object.entries(n2)) { var f = l$2(i2); f !== null && (e2.listeners[f] = function() { o2(...arguments); }); } Object.keys(e2.listeners).length === 0 && delete e2.listeners; } return e2; } }, "u"); var T$1 = /* @__PURE__ */ __name((o2, d2, f, s, p2) => { var l2 = []; if (!(typeof window === void 0 || typeof window > "u")) { var n2 = [], u2 = [], r = []; if (o2 === void 0) return { childarray: [] }; o2.length === void 0 ? n2.push(o2) : n2 = o2, d2.length === void 0 ? u2.push(d2) : u2 = d2; var a2 = 0; try { n2.forEach((t2, N2) => { var P2 = u2[N2]; if (f.xtype !== "tabpanel") { var c2 = t2.props.childHeight, y2 = t2.props.childWidth, x2 = t2.props.childFlex, m2 = t2.props.childRegion, w2 = t2.props.childSplit; let e2 = {}; e2.xtype = "container", e2.layout = "fit", e2.name = "portalcontainer", e2.cls = "portalcontainer"; var v = false; c2 !== void 0 && (e2.height = c2, v = true), y2 !== void 0 && (e2.width = y2, v = true), v === false && (x2 !== void 0 ? e2.flex = x2 : e2.flex = 1), m2 !== void 0 && (e2.region = m2), w2 !== void 0 && (e2.split = w2), e2.items = [{ xtype: "container", layout: "fit", name: "portalroot", cls: "portalroot", style: { flex: 1, display: "flex", height: "100%", width: "100%" }, listeners: { render: /* @__PURE__ */ __name((i2) => { r.push(i2.el.dom), a2++, a2 === n2.length && p2(r); var R2 = i2.el.dom.parentNode; s.observe(R2); }, "render") } }], l2.push(e2); } if (f.xtype == "tabpanel") { var h; window.Ext.ReExtTheme === "classic" ? h = "Ext.panel.Panel" : h = "Ext.Panel"; var g2; g2 = window.Ext.create(h, { layout: "fit", title: t2.props.title, cls: "ReExtTabChildRoot", items: [{ xtype: "component", listeners: { activate: /* @__PURE__ */ __name((e2) => { r.push(e2.el.dom), a2++, a2 === n2.length && p2(r); var i2 = e2.el.dom.parentNode; s.observe(i2); }, "activate"), render: /* @__PURE__ */ __name((e2) => { r.push(e2.el.dom), a2++, a2 === n2.length && p2(r); var i2 = e2.el.dom.parentNode; s.observe(i2); }, "render") }, style: { display: "flex", height: "100%", width: "100%" } }] }), l2.push(g2); } }), l2.length > 0 && (f.removeAll(), f.add(l2)); var E = { childarray: l2 }; return E; } catch (t2) { return console.error("iteratechildren:", t2.toString()), []; } } }, "T$1"); var a$1 = /* @__PURE__ */ __name(() => { var t2; return typeof ResizeObserver < "u" ? (t2 = new ResizeObserver((o2) => { if (!(typeof window === void 0 || typeof window > "u")) for (let n2 of o2) { var r = 0, e2 = n2.target.children.item(r); if (e2 !== null && n2.contentBoxSize) { let i2 = n2.contentBoxSize[0]; var s = i2.inlineSize, f = window.Ext.getCmp(e2.id); if (f !== void 0) window.Ext.getCmp(e2.id).setWidth(s), window.Ext.getCmp(e2.id).setHeight(i2.blockSize); else if (!e2.classList.contains("wm")) { console.log("child not found", e2.id); var d2 = e2.getAttribute("w"); d2 !== "w" && console.warn("child not resized", e2); } } } }), t2) : null; }, "a$1"); async function o() { return await new Promise((e2) => { function t2() { window.Ext !== void 0 && window.Ext.onReady(function() { return clearInterval(n2), e2(1); }); } __name(t2, "t"); var n2 = setInterval(t2, 5); }); } __name(o, "o"); var d$1 = /* @__PURE__ */ __name((t2, n2, l2) => { if (typeof window > "u") return; let e2 = document.createElement("div"); e2.style.display = "block !important", e2.style.zIndex = 2e4, e2.style.position = "absolute", e2.style.bottom = "0px", e2.style.right = "0px", e2.style.color = "white", e2.style.fontSize = "10px", e2.style.fontWeight = "bold", e2.style.fontStyle = "italic", e2.style.background = "#B87333", e2.style.padding = "1px 3px 1px 1px", e2.style.border = "1px solid lightgray", e2.style.borderRadius = "3px 3px 3px 3px", e2.innerText = "ReExt " + n2; l2 !== null ? l2.appendChild(e2) : t2.el !== void 0 && t2.el.dom.appendChild(e2); }, "d$1"); function doLogo(props, version2, type, React2) { var nextVersion = null; try { const nextPackage = require("next/package.json"); nextVersion = nextPackage.version; } catch (e2) { } var extlocation = ""; var extver = ""; var exttoolkit = ""; var exttheme = ""; if (window["Ext"] !== void 0) { if (window["Ext"].versions !== null) { if (window["Ext"].versions !== void 0) { extver = window["Ext"].versions.core.version; exttheme = window["Ext"].ReExtTheme; extlocation = window["Ext"].ReExtLocation; var classic = window["Ext"].isClassic; if (classic === true) { exttoolkit = "classic"; } else { exttoolkit = "modern"; } } } } return /* @__PURE__ */ jsxRuntime.jsxs( "div", { name: "ReExtRootLogo", "data-rid": props.rid, style: { ...{ display: "flex", flexDirection: props.flexdirection, alignItems: "center", color: "black", padding: 5 }, ...props.style }, children: [ /* @__PURE__ */ jsxRuntime.jsx("img", { style: { height: 40, width: 80 }, src: "../ReExt/ReExt.png" }), /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { margin: "0 0 0 3px" }, children: [ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { ...{ margin: "0 0 0 1px", fontSize: 12, color: "black" } }, children: /* @__PURE__ */ jsxRuntime.jsx("a", { xstyle: props.style, target: "_blank", rel: "noreferrer", href: "https://www.npmjs.com/package/@sencha/reext", children: /* @__PURE__ */ jsxRuntime.jsxs("i", { children: [ "ReExt ", version2 ] }) }) }), /* @__PURE__ */ jsxRuntime.jsx("div", { style: { fontSize: "10px", margin: "2px 0 0 0" } }), /* @__PURE__ */ jsxRuntime.jsx("div", { style: { fontSize: "10px", margin: "2px 0 0 0" }, children: /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { margin: "0 0 0 0" }, children: [ "React: ", /* @__PURE__ */ jsxRuntime.jsx("b", { children: React2.version }) ] }) }), /* @__PURE__ */ jsxRuntime.jsx("div", { style: { fontSize: "10px", margin: "2px 0 0 0" }, children: /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { margin: "0 0 0 0" }, children: [ "ExtJS: ", /* @__PURE__ */ jsxRuntime.jsxs("b", { children: [ extver, " (", extlocation, ")" ] }) ] }) }), nextVersion !== null && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { fontSize: "10px", margin: "2px 0 0 0" }, children: /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { margin: "0 0 0 0" }, children: [ "Next.js: ", /* @__PURE__ */ jsxRuntime.jsx("b", { children: nextVersion }) ] }) }), /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { fontSize: "10px", margin: "2px 0 0 0" }, children: [ /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { margin: "0 0 0 0" }, children: [ "toolkit: ", /* @__PURE__ */ jsxRuntime.jsx("b", { children: exttoolkit }) ] }), /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { margin: "0 0 0 5px" }, children: [ "theme: ", /* @__PURE__ */ jsxRuntime.jsx("b", { children: exttheme }) ] }) ] }) ] }) ] } ); } __name(doLogo, "doLogo"); function l$1(n2) { var t2 = []; Array.isArray(n2) ? t2 = n2 : t2 = [n2]; var a2 = []; for (let i2 of t2) { var e2 = { ...i2.props }; if (delete e2.listeners, i2.type.name === void 0 ? e2.name = i2.type : e2.name = i2.type.name, e2.name.startsWith("ReExt")) { if (e2.children !== void 0) { var r = []; Array.isArray(e2.children) ? r = e2.children : r = [e2.children], e2.children = l$1(r); } a2.push(e2); } else delete e2.children, a2.push(e2); } return a2; } __name(l$1, "l$1"); function i(n2) { try { let t2 = [], e2 = JSON.stringify(n2, function(f, r) { if (typeof r == "object" && r !== null) { if (t2.indexOf(r) !== -1) return; t2.push(r); } return r; }); return t2 = null, e2; } catch (t2) { return console.log("stringify error", t2), ""; } } __name(i, "i"); function e$1(t2, r) { if (t2 === r) return true; if (t2 == null || r == null) return t2 === r; if (typeof t2 != typeof r) return false; if (t2 instanceof Date && r instanceof Date) return t2.getTime() === r.getTime(); if (Array.isArray(t2) && Array.isArray(r)) { if (t2.length !== r.length) return false; for (let n2 = 0; n2 < t2.length; n2++) if (!e$1(t2[n2], r[n2])) return false; return true; } if (t2 instanceof Object && r instanceof Object) { let n2 = Object.keys(t2), i2 = Object.keys(r); if (n2.length !== i2.length) return false; for (let f of n2) if (!r.hasOwnProperty(f) || !e$1(t2[f], r[f])) return false; return true; } return false; } __name(e$1, "e$1"); const ReExt = /* @__PURE__ */ __name((props) => { if (typeof window === void 0 || typeof window === "undefined") { return; } if (props.xtype === "window") { return null; } var type = window.tt; const [dom, setDom] = React.useState(null); const [rootstyle, setRootStyle] = React.useState(null); const [rootclassname, setRootClassName] = React.useState(null); const [extcmp, setExtCmp] = React.useState(null); const extcmpRef = React.useRef(null); extcmpRef.current = extcmp; const getExtCmp = /* @__PURE__ */ __name(() => { return extcmpRef.current; }, "getExtCmp"); const [currchildren, setCurrChildren] = React.useState(null); const [currconfig, setCurrConfig] = React.useState(null); const [currstyle, setCurrStyle] = React.useState(null); const currconfigRef = React.useRef(null); currconfigRef.current = currconfig; const getCurrConfig = /* @__PURE__ */ __name(() => { return currconfigRef.current; }, "getCurrConfig"); const ReExtRootRef = React.useRef(null); var resizeObserver = a$1(); if (props.xtype === "logo") { return doLogo(props, version, type, React); } React.useEffect(() => { setCurrStyle(props.style); setCurrConfig(props.config); setCurrChildren(props.children); var cmp; var returnHit = "false"; if (typeof window === void 0 || typeof window === "undefined") { return; } (async () => { await o(); if (returnHit === "false") { if (props.xtype !== "logo") { var latestconfig; if (getCurrConfig() == null) { latestconfig = props.config; } else { latestconfig = getCurrConfig(); } try { var o$12 = u(props.xtype, latestconfig, props, getExtCmp); var f = Ext.ClassManager.getByAlias("widget." + o$12.xtype); if (f === void 0) { var message = "ReExt " + o$12.xtype + " could not be created"; o$12 = { xtype: "label", text: message, style: { color: "red", background: "lightgray" } }; } if (o$12.height === void 0) { if (o$12.xtype !== "window") { if (window["Ext"].isClassic === true && o$12.xtype === "grid") { o$12.height = 0; } else { o$12.height = "100%"; } } } if (o$12.width === void 0) { if (o$12.xtype !== "window") { if (window["Ext"].isClassic === true && o$12.xtype === "grid") { o$12.width = 0; } else { o$12.width = "100%"; } } } if (window["Ext"].isClassic === true) { const boxready = /* @__PURE__ */ __name((c2) => { var parent2 = c2.el.dom.parentNode; resizeObserver.observe(parent2); }, "boxready"); if (o$12.listeners === void 0) { o$12.listeners = { boxready }; } else { o$12.listeners.boxready = boxready; } } if (o$12.xtype !== "window") { o$12.renderTo = ReExtRootRef.current; } if (o$12.xtype === "tabpanel") { o$12.deferredRender = false; } if (o$12.xtype === "panel" || o$12.xtype === "container") { if (o$12.layout === void 0) { o$12.layout = { type: "vbox", align: "stretch" }; } } cmp = window["Ext"].create(o$12); setExtCmp(cmp); extcmpRef.current = cmp; if (o$12.xtype.startsWith("d3-")) { var parent = ReExtRootRef.current; resizeObserver.observe(parent); } if (props.config !== void 0) { if (props.config.reference !== void 0) { if (props.ReExtParent !== void 0) { if (props.ReExtParent.ReExtChildren === void 0) { props.ReExtParent.ReExtChildren = []; } props.ReExtParent.ReExtChildren.push(cmp); } } } if (type !== null) { if (type !== "production") { d$1(cmp, o$12.xtype, ReExtRootRef.current); } } const a2 = T$1(props.children, {}, extcmpRef.current, resizeObserver, setDom); setCurrChildren(props.children); if (props.ready !== void 0) { props.ready(cmp); } } catch (e2) { console.error("ReExt.jsx:", e2); } } } })(); return () => { returnHit = "true"; if (typeof window === void 0 || typeof window === "undefined") { return; } if (window["Ext"] !== void 0) { if (window["Ext"].destroy !== void 0) { if (cmp !== null && cmp !== void 0) { setExtCmp(null); window["Ext"].destroy(cmp); } } } }; }, []); React.useEffect(() => { if (typeof window === void 0 || typeof window === "undefined") { return; } setCurrConfig(props.config); if (props.config === void 0) { return; } if (extcmpRef.current === null) { return; } var oldconfig = currconfigRef.current; var newconfig = props.config; var extcmp2 = extcmpRef.current; y("config", oldconfig, newconfig, extcmp2, props.xtype); }, [props.config, extcmpRef.current]); React.useEffect(() => { if (typeof window === void 0 || typeof window === "undefined") { return; } if (props.children === void 0) { return; } if (currchildren === null) { return; } if (extcmpRef.current === null) { return; } { if (props.children.length !== currchildren.length) { T$1(props.children, currchildren, extcmpRef.current, resizeObserver, setDom); } else { let whichPropsAreDifferent = /* @__PURE__ */ __name(function(newPropsArray, oldPropsArray) { const differences = []; function compareProps(newProps, oldProps, path = "") { const allKeys = /* @__PURE__ */ new Set([...Object.keys(newProps), ...Object.keys(oldProps)]); allKeys.forEach((key) => { const newValue = newProps[key]; const oldValue = oldProps[key]; const currentPath = path ? `${path}.${key}` : key; if (typeof newValue === "object" && newValue !== null && typeof oldValue === "object" && oldValue !== null) { compareProps(newValue, oldValue, currentPath); } else if (newValue !== oldValue) { differences.push(currentPath); } }); } __name(compareProps, "compareProps"); newPropsArray.forEach((newProps, index) => { const oldProps = oldPropsArray[index]; compareProps(newProps, oldProps, `index${index}`); }); return differences; }, "whichPropsAreDifferent"); var newpropschildarray = l$1(props.children); var oldpropschildarray = l$1(currchildren); var newS = i(newpropschildarray); var oldS = i(oldpropschildarray); var i$1 = e$1(oldS, newS); if (!i$1) { const differences = whichPropsAreDifferent(newpropschildarray, oldpropschildarray); const hasChildDifferences = differences.some((diff) => { var r = diff.includes("childRegion") || diff.includes("childSplit") || diff.includes("childHeight") || diff.includes("childWidth"); return r; }); if (hasChildDifferences) { T$1(props.children, currchildren, extcmpRef.current, resizeObserver, setDom); } } } } setCurrChildren(props.children); }, [props.children, extcmpRef.current]); React.useEffect(() => { if (typeof window === void 0 || typeof window === "undefined") { return; } var rootConfigs = {}; if (props.flex !== void 0) { rootConfigs.flex = props.flex; } else { if (props.rootStyle !== void 0) { if (props.rootStyle.flex !== void 0) { rootConfigs.flex = props.rootStyle.flex; } else { rootConfigs.flex = 1; } } else { rootConfigs.flex = 1; } } var propsstyle = {}; if (props.style !== void 0) { propsstyle = props.style; } if (props.rootStyle !== void 0) { propsstyle = props.rootStyle; } if (propsstyle.width !== void 0) { delete rootConfigs.flex; } var rootstyle2 = { ...rootConfigs, ...propsstyle, ...{ position: "relative", display: "flex", overflow: "hidden" } }; setRootStyle(rootstyle2); var propsclassname = ""; if (props.className !== void 0) { propsclassname = props.className; } if (props.rootClassName !== void 0) { propsclassname = props.rootClassName; } setRootClassName(propsclassname); }, [dom, props.style, props.rootStyle, props.className, props.rootClassName]); if (rootstyle !== null && rootclassname !== null) { return /* @__PURE__ */ jsxRuntime.jsx( "div", { name: "ReExtRoot-" + props.xtype, "data-rid": props.rid, className: rootclassname, style: rootstyle, ref: ReExtRootRef, children: dom !== null && dom.map((domitem, i2) => { if (dom.length === 1) { if (props.children.length !== void 0) { return; } var child = props.children; var style = {}; if (child.props === void 0) { style = { display: "flex", flex: 1 }; } else { if (child.props.style === void 0) { style = { display: "flex", flex: 1 }; } else { style = { ...child.props.style, flex: 1 }; } } var modifiedChild = React.cloneElement(child, { style }); var p2 = reactDom.createPortal(modifiedChild, domitem); return p2; } else { if (dom.length !== props.children.length) { return; } var child = props.children[i2]; var style = {}; if (child.props === void 0) { style = { display: "flex", flex: 1 }; } else { if (child.props.style === void 0) { style = { display: "flex", flex: 1 }; } else { style = { ...child.props.style, flex: 1 }; } } var modifiedChild = React.cloneElement(child, { style }); var p2 = reactDom.createPortal(modifiedChild, domitem); return p2; } }) } ); } }, "ReExt"); var n = Object.defineProperty; var t = /* @__PURE__ */ __name((o2, d2) => n(o2, "name", { value: d2, configurable: true }), "t"); async function e() { if (typeof window === void 0 || typeof window > "u") return; function o2(d2) { d2.style.width = "100%", d2.style.height = "100%", d2.style.margin = "0", d2.style.padding = "0", d2.style.padding = "0", d2.style.boxSizing = "border-box", d2.style.overflow = "hidden"; } __name(o2, "o"); t(o2, "doFill"), document.documentElement && o2(document.documentElement), document.body && o2(document.body), document.getElementById("root") && o2(document.getElementById("root")); } __name(e, "e"); t(e, "Fill"); function ReExtSplash() { return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "splash", style: { fontSize: "36px", border: "10px solid #0960a5", width: "100%", height: "100%", margin: 0, padding: 0, boxSizing: "border-box", overflow: "hidden", display: "flex", flexDirection: "column", flex: 1, justifyContent: "center", alignItems: "center" }, children: /* @__PURE__ */ jsxRuntime.jsx("img", { style: { height: 500, width: 1e3 }, src: "../ReExt/ReExt.png" }) }); } __name(ReExtSplash, "ReExtSplash"); var we = /* @__PURE__ */ __name((e2, r) => () => (r || e2((r = { exports: {} }).exports, r), r.exports), "we"); var Ee = we(() => { }); var w = crypto, R = /* @__PURE__ */ __name((e2) => e2 instanceof CryptoKey, "R"); var g = new TextEncoder(), d = new TextDecoder(); function re(...e2) { let r = e2.reduce((i2, { length: s }) => i2 + s, 0), n2 = new Uint8Array(r), t2 = 0; for (let i2 of e2) n2.set(i2, t2), t2 += i2.length; return n2; } __name(re, "re"); var ge = /* @__PURE__ */ __name((e2) => { let r = atob(e2), n2 = new Uint8Array(r.length); for (let t2 = 0; t2 < r.length; t2++) n2[t2] = r.charCodeAt(t2); return n2; }, "ge"), x = /* @__PURE__ */ __name((e2) => { let r = e2; r instanceof Uint8Array && (r = d.decode(r)), r = r.replace(/-/g, "+").replace(/_/g, "/").replace(/\s/g, ""); try { return ge(r); } catch { throw new TypeError("The input to be decoded is not correctly encoded."); } }, "x"); var _ = (_a = class extends Error { static get code() { return "ERR_JOSE_GENERIC"; } constructor(r) { var _a2; super(r), this.code = "ERR_JOSE_GENERIC", this.name = this.constructor.name, (_a2 = Error.captureStackTrace) == null ? void 0 : _a2.call(Error, this, this.constructor); } }, __name(_a, "_"), _a), p = (_b = class extends _ { static get code() { return "ERR_JWT_CLAIM_VALIDATION_FAILED"; } constructor(r, n2, t2 = "unspecified", i2 = "unspecified") { super(r), this.code = "ERR_JWT_CLAIM_VALIDATION_FAILED", this.claim = t2, this.reason = i2, this.payload = n2; } }, __name(_b, "p"), _b), I = (_c = class extends _ { static get code() { return "ERR_JWT_EXPIRED"; } constructor(r, n2, t2 = "unspecified", i2 = "unspecified") { super(r), this.code = "ERR_JWT_EXPIRED", this.claim = t2, this.reason = i2, this.payload = n2; } }, __name(_c, "I"), _c), m = (_d = class extends _ { constructor() { super(...arguments), this.code = "ERR_JOSE_NOT_SUPPORTED"; } static get code() { return "ERR_JOSE_NOT_SUPPORTED"; } }, __name(_d, "m"), _d); var l = (_e2 = class extends _ { constructor() { super(...arguments), this.code = "ERR_JWS_INVALID"; } static get code() { return "ERR_JWS_INVALID"; } }, __name(_e2, "l"), _e2), a = (_f = class extends _ { constructor() { super(...arguments), this.code = "ERR_JWT_INVALID"; } static get code() { return "ERR_JWT_INVALID"; } }, __name(_f, "a"), _f); var P = (_g = class extends _ { constructor() { super(...arguments), this.code = "ERR_JWS_SIGNATURE_VERIFICATION_FAILED", this.message = "signature verification failed"; } static get code() { return "ERR_JWS_SIGNATURE_VERIFICATION_FAILED"; } }, __name(_g, "P"), _g); function b(e2, r = "algorithm.name") { return new TypeError(`CryptoKey does not support this operation, its ${r} must be ${e2}`); } __name(b, "b"); function C(e2, r) { return e2.name === r; } __name(C, "C"); function K(e2) { return parseInt(e2.name.slice(4), 10); } __name(K, "K"); function Ie(e2) { switch (e2) { case "ES256": return "P-256"; case "ES384": return "P-384"; case "ES512": return "P-521"; default: throw new Error("unreachable"); } } __name(Ie, "Ie"); function De(e2, r) { if (r.length && !r.some((n2) => e2.usages.includes(n2))) { let n2 = "CryptoKey does not support this operation, its usages must include "; if (r.length > 2) { let t2 = r.pop(); n2 += `one of ${r.join(", ")}, or ${t2}.`; } else r.length === 2 ? n2 += `one of ${r[0]} or ${r[1]}.` : n2 += `${r[0]}.`; throw new TypeError(n2); } } __name(De, "De"); function ne(e2, r, ...n2) { switch (r) { case "HS256": case "HS384": case "HS512": { if (!C(e2.algorithm, "HMAC")) throw b("HMAC"); let t2 = parseInt(r.slice(2), 10); if (K(e2.algorithm.hash) !== t2) throw b(`SHA-${t2}`, "algorithm.hash"); break; } case "RS256": case "RS384": case "RS512": { if (!C(e2.algorithm, "RSASSA-PKCS1-v1_5")) throw b("RSASSA-PKCS1-v1_5"); let t2 = parseInt(r.slice(2), 10); if (K(e2.algorithm.hash) !== t2) throw b(`SHA-${t2}`, "algorithm.hash"); break; } case "PS256": case "PS384": case "PS512": { if (!C(e2.algorithm, "RSA-PSS")) throw b("RSA-PSS"); let t2 = parseInt(r.slice(2), 10); if (K(e2.algorithm.hash) !== t2) throw b(`SHA-${t2}`, "algorithm.hash"); break; } case "EdDSA": { if (e2.algorithm.name !== "Ed25519" && e2.algorithm.name !== "Ed448") throw b("Ed25519 or Ed448"); break; } case "ES256": case "ES384": case "ES512": { if (!C(e2.algorithm, "ECDSA")) throw b("ECDSA"); let t2 = Ie(r); if (e2.algorithm.namedCurve !== t2) throw b(t2, "algorithm.namedCurve"); break; } default: throw new TypeError("CryptoKey does not support this operation"); } De(e2, n2); } __name(ne, "ne"); function te(e2, r, ...n2) { var _a2; if (n2.length > 2) { let t2 = n2.pop(); e2 += `one of type ${n2.join(", ")}, or ${t2}.`; } else n2.length === 2 ? e2 += `one of type ${n2[0]} or ${n2[1]}.` : e2 += `of type ${n2[0]}.`; return r == null ? e2 += ` Received ${r}` : typeof r == "function" && r.name ? e2 += ` Received function ${r.name}` : typeof r == "object" && r != null && ((_a2 = r.constructor) == null ? void 0 : _a2.name) && (e2 += ` Received an instance of ${r.constructor.name}`), e2; } __name(te, "te"); var j = /* @__PURE__ */ __name((e2, ...r) => te("Key must be ", e2, ...r), "j"); function M(e2, r, ...n2) { return te(`Key for the ${e2} algorithm must be `, r, ...n2); } __name(M, "M"); var J = /* @__PURE__ */ __name((e2) => R(e2) ? true : (e2 == null ? void 0 : e2[Symbol.toStringTag]) === "KeyObject", "J"), A = ["CryptoKey"]; var Re = /* @__PURE__ */ __name((...e2) => { let r = e2.filter(Boolean); if (r.length === 0 || r.length === 1) return true; let n2; for (let t2 of r) { let i2 = Object.keys(t2); if (!n2 || n2.size === 0) { n2 = new Set(i2); continue; } for (let s of i2) { if (n2.has(s)) return false; n2.add(s); } } return true; }, "Re"), ie = Re; function $e(e2) { return typeof e2 == "object" && e2 !== null; } __name($e, "$e"); function k(e2) { if (!$e(e2) || Object.prototype.toString.call(e2) !== "[object Object]") return false; if (Object.getPrototypeOf(e2) === null) return true; let r = e2; for (; Object.getPrototypeOf(r) !== null; ) r = Object.getPrototypeOf(r); return Object.getPrototypeOf(e2) === r; } __name(k, "k"); var se = /* @__PURE__ */ __name((e2, r) => { if (e2.startsWith("RS") || e2.startsWith("PS")) { let { modulusLength: n2 } = r.algorithm; if (typeof n2 != "number" || n2 < 2048) throw new TypeError(`${e2} requires key modulusLength to be 2048 bits or larger`); } }, "se"); function Pe(e2) { let r, n2; switch (e2.kty) { case "RSA": { switch (e2.alg) { case "PS256": case "PS384": case "PS512": r = { name: "RSA-PSS", hash: `SHA-${e2.alg.slice(-3)}` }, n2 = e2.d ? ["sign"] : ["verify"]; break; case "RS256": case "RS384": case "RS512": r = { name: "RSASSA-PKCS1-v1_5", hash: `SHA-${e2.alg.slice(-3)}` }, n2 = e2.d ? ["sign"] : ["verify"]; break; case "RSA-OAEP": case "RSA-OAEP-256": case "RSA-OAEP-384": case "RSA-OAEP-512": r = { name: "RSA-OAEP", hash: `SHA-${parseInt(e2.alg.slice(-3), 10) || 1}` }, n2 = e2.d ? ["decrypt", "unwrapKey"] : ["encrypt", "wrapKey"]; break; default: throw new m('Invalid or unsupported JWK "alg" (Algorithm) Parameter value'); } break; } case "EC": { switch (e2.alg) { case "ES256": r = { name: "ECDSA", namedCurve: "P-256" }, n2 = e2.d ? ["sign"] : ["verify"]; break; case "ES384": r = { name: "ECDSA", namedCurve: "P-384" }, n2 = e2.d ? ["sign"] : ["verify"]; break; case "ES512": r = { name: "ECDSA", namedCurve: "P-521" }, n2 = e2.d ? ["sign"] : ["verify"]; break; case "ECDH-ES": case "ECDH-ES+A128KW": case "ECDH-ES+A192KW": case "ECDH-ES+A256KW": r = { name: "ECDH", namedCurve: e2.crv }, n2 = e2.d ? ["deriveBits"] : []; break; default: throw new m('Invalid or unsupported JWK "alg" (Algorithm) Parameter value'); } break; } case "OKP": { switch (e2.alg) { case "EdDSA": r = { name: e2.crv }, n2 = e2.d ? ["sign"] : ["verify"]; break; case "ECDH-ES": case "ECDH-ES+A128KW": case "ECDH-ES+A192KW": case "ECDH-ES+A256KW": r = { name: e2.crv }, n2 = e2.d ? ["deriveBits"] : []; break; default: throw new m('Invalid or unsupported JWK "alg" (Algorithm) Parameter value'); } break; } default: throw new m('Invalid or unsupported JWK "kty" (Key Type) Parameter value'); } return { algorithm: r, keyUsages: n2 }; } __name(Pe, "Pe"); var Ce = /* @__PURE__ */ __name(async (e2) => { if (!e2.alg) throw new TypeError('"alg" argument is required when "jwk.alg" is not present'); let { algorithm: r, keyUsages: n2 } = Pe(e2), t2 = [r, e2.ext ?? false, e2.key_ops ?? n2], i2 = { ...e2 }; return delete i2.alg, delete i2.use, w.subtle.importKey("jwk", i2, ...t2); }, "Ce"), ue = Ce; var oe = /* @__PURE__ */ __name((e2) => x(e2), "oe"), N, q, ce = /* @__PURE__ */ __name((e2) => (e2 == null ? void 0 : e2[Symbol.toStringTag]) === "KeyObject", "ce"), le = /* @__PURE__ */ __name(async (e2, r, n2, t2) => { let i2 = e2.get(r); if (i2 == null ? void 0 : i2[t2]) return i2[t2]; let s = await ue({ ...n2, alg: t2 }); return i2 ? i2[t2] = s : e2.set(r, { [t2]: s }), s; }, "le"), Oe = /* @__PURE__ */ __name((e2, r) => { if (ce(e2)) { let n2 = e2.export({ format: "jwk" }); return delete n2.d, delete n2.dp, delete n2.dq, delete n2.p, delete n2.q, delete n2.qi, n2.k ? oe(n2.k) : (q || (q = /* @__PURE__ */ new WeakMap()), le(q, e2, n2, r)); } return e2; }, "Oe"), Te = /* @__PURE__ */ __name((e2, r) => { if (ce(e2)) { let n2 = e2.export({ format: "jwk" }); return n2.k ? oe(n2.k) : (N || (N = /* @__PURE__ */ new WeakMap()), le(N, e2, n2, r)); } return e2; }, "Te"), L = { normalizePublicKey: Oe, normalizePrivateKey: Te }; var S = /* @__PURE__ */ __name((e2) => e2 == null ? void 0 : e2[Symbol.toStringTag], "S"), We = /* @__PURE__ */ __name((e2, r) => { if (!(r instanceof Uint8Array)) { if (!J(r)) throw new TypeError(M(e2, r, ...A, "Uint8Array")); if (r.type !== "secret") throw new TypeError(`${S(r)} instances for symmetric algorithms must be of type "secret"`); } }, "We"), Ke = /* @__PURE__ */ __name((e2, r, n2) => { if (!J(r)) throw new TypeError(M(e2, r, ...A)); if (r.type === "secret") throw new TypeError(`${S(r)} instances for asymmetric algorithms must not be of type "secret"`); if (n2 === "sign" && r.type === "public") throw new TypeError(`${S(r)} instances for asymmetric algorithm signing must be of type "private"`); if (n2 === "decrypt" && r.type === "public") throw new TypeError(`${S(r)} instances for asymmetric algorithm decryption must be of type "private"`); if (r.algorithm && n2 === "verify" && r.type === "private") throw new TypeError(`${S(r)} instances for asymmetric algorithm verifying must be of type "public"`); if (r.algorithm && n2 === "encrypt" && r.type === "private") throw new TypeError(`${S(r)} instances for asymmetric algorithm encryption must be of type "public"`); }, "Ke"), je = /* @__PURE__ */ __name((e2, r, n2) => { e2.startsWith("HS") || e2 === "dir" || e2.startsWith("PBES2") || /^A\d{3}(?:GCM)?KW$/.test(e2) ? We(e2, r) : Ke(e2, r, n2); }, "je"), fe = je; function Me(e2, r, n2, t2, i2) { if (i2.crit !== void 0 && (t2 == null ? void 0 : t2.crit) === void 0) throw new e2('"crit" (Critical) Header Parameter MUST be integrity protected'); if (!t2 || t2.crit === void 0) return /* @__PURE__ */ new Set(); if (!Array.isArray(t2.crit) || t2.crit.length === 0 || t2.crit.some((u2) => typeof u2 != "string" || u2.length === 0)) throw new e2('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present'); let s; n2 !== void 0 ? s = new Map([...Object.entries(n2), ...r.entries()]) : s = r; for (let u2 of t2.crit) { if (!s.has(u2)) throw new m(`Extension Header Parameter "${u2}" is not recognized`); if (i2[u2] === void 0) throw new e2(`Extension Header Parameter "${u2}" is missing`); if (s.get(u2) && t2[u2] === void 0) throw new e2(`Extension Header Parameter "${u2}" MUST be integrity protected`); } return new Set(t2.crit); } __name(Me, "Me"); var ae = Me; function H(e2, r) { let n2 = `SHA-${e2.slice(-3)}`; switch (e2) { case "HS256": case "HS384": case "HS512": return { hash: n2, name: "HMAC" }; case "PS256": case "PS384": case "PS512": return { hash: n2, name: "RSA-PSS", saltLength: e2.slice(-3) >> 3 }; case "RS256": case "RS384": case "RS512": return { hash: n2, name: "RSASSA-PKCS1-v1_5" }; case "ES256": case "ES384": case "ES512": return { hash: n2, name: "ECDSA", namedCurve: r.namedCurve }; case "EdDSA": return { name: r.name }; default: throw new m(`alg ${e2} is not supported either by JOSE or your javascript runtime`); } } __name(H, "H"); async function G(e2, r, n2) { if (r = await L.normalizePublicKey(r, e2), R(r)) return ne(r, e2, n2), r; if (r instanceof Uint8Array) { if (!e2.startsWith("HS")) throw new TypeError(j(r, ...A)); return w.subtle.importKey("raw", r, { hash: `SHA-${e2.slice(-3)}`, name: "HMAC" }, false, [n2]); } throw new TypeError(j(r, ...A, "Uint8Array")); } __name(G, "G"); var Ne = /* @__PURE__ */ __name(async (e2, r, n2, t2) => { let i2 = await G(e2, r, "verify"); se(e2, i2); let s = H(e2, i2.algorithm); try { return await w.subtle.verify(s, i2, n2, t2); } catch { return false; } }, "Ne"), ye = Ne; async function he(e2, r, n2) { if (!k(e2)) throw new l("Flattened JWS must be an object"); if (e2.protected === void 0 && e2.header === void 0) throw new l('Flattened JWS must have either of the "protected" or "header" members'); if (e2.protected !== void 0 && typeof e2.protected != "string") throw new l("JWS Protected Header incorrect type"); if (e2.payload === void 0) throw new l("JWS Payload missing"); if (typeof e2.signature != "string") throw new l("JWS Signature missing or incorrect type"); if (e2.header !== void 0 && !k(e2.header)) throw new l("JWS Unprotected Header incorrect type"); let t2 = {}; if (e2.protected) try { let W = x(e2.protected); t2 = JSON.parse(d.decode(W)); } catch { throw new l("JWS Protected Header is invalid"); } if (!ie(t2, e2.header)) throw new l("JWS Protected and JWS Unprotected Header Parameter names must be disjoint"); let i2 = { ...t2, ...e2.header }, s = ae(l, /* @__PURE__ */ new Map([["b64", true]]), n2 == null ? void 0 : n2.crit, t2, i2), u2 = true; if (s.has("b64") && (u2 = t2.b64, typeof u2 != "boolean")) throw new l('The "b64" (base64url-encode payload) Header Parameter must be a boolean'); let { alg: o2 } = i2; if (typeof o2 != "string" || !o2) throw new l('JWS "alg" (Algorithm) Header Parameter missing or invalid'); if (u2) { if (typeof e2.payload != "string") throw new l("JWS Payload must be a string"); } else if (typeof e2.payload != "string" && !(e2.payload instanceof Uint8Array)) throw new l("JWS Payload must be a string or an Uint8Array instance"); let f = false; typeof r == "function" && (r = await r(t2, e2), f = true), fe(o2, r, "verify"); let y2 = re(g.encode(e2.protected ?? ""), g.encode("."), typeof e2.payload == "string" ? g.encode(e2.payload) : e2.payload), v; try { v = x(e2.signature); } catch { throw new l("Failed to base64url decode the signature"); } if (!await ye(o2, r, v, y2)) throw new P(); let E; if (u2) try { E = x(e2.payload); } catch { throw new l("Failed to base64url decode the payload"); } else typeof e2.payload == "string" ? E = g.encode(e2.payload) : E = e2.payload; let h = { payload: E }; return e2.protected !== void 0 && (h.protectedHeader = t2), e2.header !== void 0 && (h.unprotectedHeader = e2.header), f ? { ...h, key: r } : h; } __name(he, "he"); async function me(e2, r, n2) { if (e2 instanceof Uint8Array && (e2 = d.decode(e2)), typeof e2 != "string") throw new l("Compact JWS must be a string or Uint8Array"); let { 0: t2, 1: i2, 2: s, length: u2 } = e2.split("."); if (u2 !== 3) throw new l("Invalid Compact JWS"); let o2 = await he({ payload: i2, protected: t2, signature: s }, r, n2), c2 = { payload: o2.payload, protectedHeader: o2.protectedHeader }; return typeof r == "function" ? { ...c2, key: o2.key } : c2; } __name(me, "me"); var ve = /* @__PURE__ */ __name((e2) => Math.floor(e2.getTime() / 1e3), "ve"); var qe = /^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i, U = /* @__PURE__ */ __name((e2) => { let r = qe.exec(e2); if (!r || r[4] && r[1]) throw new TypeError("Invalid time period format"); let n2 = parseFloat(r[2]), t2 = r[3].toLowerCase(), i2; switch (t2) { case "sec": case "secs": case "second": case "seconds": case "s": i2 = Math.round(n2); break; case "minute": case "minutes": case "min": case "mins": case "m": i2 = Math.round(n2 * 60); break; case "hour": case "hours": case "hr": case "hrs": case "h": i2 = Math.round(n2 * 3600); break; case "day": case "days": case "d": i2 = Math.round(n2 * 86400); break; case "week": case "weeks": case "w": i2 = Math.round(n2 * 604800); break; default: i2 = Math.round(n2 * 31557600); break; } return r[1] === "-" || r[4] === "ago" ? -i2 : i2; }, "U"); var de = /* @__PURE__ */ __name((e2) => e2.toLowerCase().replace(/^application\//, ""), "de"), Le = /* @__PURE__ */ __name((e2, r) => typeof e2 == "string" ? r.includes(e2) : Array.isArray(e2) ? r.some(Set.prototype.has.bind(new Set(e2))) : false, "Le"), _e = /* @__PURE__ */ __name((e2, r, n2 = {}) => { let t2; try { t2 = JSON.parse(d.decode(r)); } catch { } if (!k(t2)) throw new a("JWT Claims Set must be a top-level JSON object"); let { typ: i2 } = n2; if (i2 && (typeof e2.typ != "string" || de(e2.typ) !== de(i2))) throw new p('unexpected "typ" JWT header value', t2, "typ", "check_failed"); let { requiredClaims: s = [], issuer: u2, subject: o2, audience: c2, maxTokenAge: f } = n2, y2 = [...s]; f !== void 0 && y2.push("iat"), c2 !== void 0 && y2.push("aud"), o2 !== void 0 && y2.push("sub"), u2 !== void 0 && y2.push("iss"); for (let h of new Set(y2.reverse())) if (!(h in t2)) throw new p(`missing required "${h}" claim`, t2, h, "missing"); if (u2 && !(Array.isArray(u2) ? u2 : [u2]).includes(t2.iss)) throw new p('unexpected "iss" claim value', t2, "iss", "check_failed"); if (o2 && t2.sub !== o2) throw new p('unexpected "sub" claim value', t2, "sub", "check_failed"); if (c2 && !Le(t2.aud, typeof c2 == "string" ? [c2] : c2)) throw new p('unexpected "aud" claim value', t2, "aud", "check_failed"); let v; switch (typeof n2.clockTolerance) { case "string": v = U(n2.clockTolerance); break; case "number": v = n2.clockTolerance; break; case "undefined": v = 0; break; default: throw new TypeError("Invalid clockTolerance option type"); } let { currentDate: ee } = n2, E = ve(ee || /* @__PURE__ */ new Date()); if ((t2.iat !== void 0 || f) && typeof t2.iat != "number") throw new p('"iat" claim must be a number', t2, "iat", "invalid"); if (t2.nbf !== void 0) { if (typeof t2.nbf != "number") throw new p('"nbf" claim must be a number', t2, "nbf", "invalid"); if (t2.nbf > E + v) throw new p('"nbf" claim timestamp check failed', t2, "nbf", "check_failed"); } if (t2.exp !== void 0) { if (typeof t2.exp != "number") throw new p('"exp" claim must be a number', t2, "exp", "invalid"); if (t2.exp <= E - v) throw new I('"exp" claim timestamp check failed', t2, "exp", "check_failed"); } if (f) { let h = E - t2.iat, W = typeof f == "number" ? f : U(f); if (h - v > W) throw new I('"iat" claim timestamp check failed (too far in the past)', t2, "iat", "check_failed"); if (h < 0 - v) throw new p('"iat" claim timestamp check failed (it should be in the past)', t2, "iat", "check_failed"); } return t2; }, "_e"); async function z$1(e2, r, n2) { var _a2; let t2 = await me(e2, r, n2); if (((_a2 = t2.protectedHeader.crit) == null ? void 0 : _a2.includes("b64")) && t2.protectedHeader.b64 === false) throw new a("JWTs MUST NOT use unencoded payload"); let s = { payload: _e(t2.protectedHeader, t2.payload, n2), protectedHeader: t2.protectedHeader }; return typeof r == "function" ? { ...s, key: t2.key } : s; } __name(z$1, "z$1"); var be = x; function V(e2) { if (typeof e2 != "string") throw new a("JWTs must use Compact JWS serialization, JWT must be a string"); let { 1: r, length: n2 } = e2.split("."); if (n2 === 5) throw new a("Only JWTs using Compact JWS serialization can be decoded"); if (n2 !=