@malloy-publisher/server 0.0.249 → 0.0.250
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/README.docker.md +5 -0
- package/README.md +5 -0
- package/dist/app/api-doc.html +5 -0
- package/dist/app/api-doc.yaml +48 -10
- package/dist/app/assets/{EnvironmentPage-CB0NkVVs.js → EnvironmentPage-CiuWaYTk.js} +1 -1
- package/dist/app/assets/{HomePage-BEfG37L3.js → HomePage-ZXsmEAjw.js} +1 -1
- package/dist/app/assets/{LightMode--nzFqff1.js → LightMode-10iLdX5H.js} +1 -1
- package/dist/app/assets/{MainPage-owd1ua9R.js → MainPage-u-IAaBdE.js} +1 -1
- package/dist/app/assets/{MaterializationsPage-BqaGRrxZ.js → MaterializationsPage-AcoL_Rnx.js} +1 -1
- package/dist/app/assets/{ModelPage-BydBAuRk.js → ModelPage-BjB-p4Qn.js} +1 -1
- package/dist/app/assets/{PackagePage-BDl_rs-E.js → PackagePage-le809jUO.js} +1 -1
- package/dist/app/assets/{RouteError-CyReblMg.js → RouteError-DTlqmNQd.js} +1 -1
- package/dist/app/assets/{ThemeEditorPage-zW7ndXQ8.js → ThemeEditorPage-DrmSzweH.js} +1 -1
- package/dist/app/assets/{WorkbookPage-CzjOTRw8.js → WorkbookPage-CIRFZXlP.js} +1 -1
- package/dist/app/assets/{core-DFBwNhvb.es-BwyvPM0R.js → core-Cr-9Wkp3.es-YhIv13au.js} +1 -1
- package/dist/app/assets/{index-D6bZJBhc.js → index-CM5d1afN.js} +1 -1
- package/dist/app/assets/{index-Cmp8wg1s.js → index-CSFSsus4.js} +1 -1
- package/dist/app/assets/{index-t7IEDVsK.js → index-DP4bilgp.js} +5 -5
- package/dist/app/assets/{index-Byu4Enw7.js → index-DdUOWgW6.js} +1 -1
- package/dist/app/index.html +6 -1
- package/dist/runtime/publisher.js +3 -0
- package/dist/server.mjs +2635 -123
- package/package.json +3 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/core-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/core-Cr-9Wkp3.es-YhIv13au.js","assets/engine-oniguruma-C4vnmooL.es-jdkXmgTr.js","assets/index-CM5d1afN.js","assets/index-w_0OQJgZ.js","assets/index-DdUOWgW6.js","assets/index-CSFSsus4.js","assets/index-DzaYbhnD.js","assets/MainPage-u-IAaBdE.js","assets/LightMode-10iLdX5H.js","assets/ThemeEditorPage-DrmSzweH.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
function kU(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const o in r)if(o!=="default"&&!(o in e)){const a=Object.getOwnPropertyDescriptor(r,o);a&&Object.defineProperty(e,o,a.get?a:{enumerable:!0,get:()=>r[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const a of o)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const a={};return o.integrity&&(a.integrity=o.integrity),o.referrerPolicy&&(a.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?a.credentials="include":o.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(o){if(o.ep)return;o.ep=!0;const a=n(o);fetch(o.href,a)}})();var s3e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function D6(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var uT={exports:{}},zg={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react-jsx-runtime.production.js
|
|
@@ -390,7 +390,7 @@ import {${t.sourceName}}" from '${t.modelPath}'"
|
|
|
390
390
|
- [ ] `),/^\d+.\s/.test(i)&&(T=`
|
|
391
391
|
`+(parseInt(i)+1)+". "),Hh(r,T)}else if(e.code&&e.code.toLowerCase()==="keyd"&&e.ctrlKey){ix(e);var O={start:r.selectionStart,end:r.selectionEnd},R=O;O=yv({text:r.value,selection:O});var A=r.value.slice(O.start,O.end);s.setSelectionRange({start:O.end,end:O.end}),Hh(r,`
|
|
392
392
|
`+A),s.setSelectionRange({start:R.start,end:R.end})}else e.code&&e.code.toLowerCase()==="arrowup"&&e.altKey?E_(e,-1):e.code&&e.code.toLowerCase()==="arrowdown"&&e.altKey&&E_(e,1)}var uEe=["prefixCls","onChange"],dEe=["markdown","commands","fullscreen","preview","highlightEnable","extraCommands","tabSize","defaultTabEnable","autoFocusEnd","textareaWarp","dispatch"];function fEe(e){var{prefixCls:t,onChange:n}=e,r=qn(e,uEe),o=w.useContext(_m),{markdown:a,commands:i,fullscreen:s,preview:l,highlightEnable:d,extraCommands:c,tabSize:p,defaultTabEnable:g,autoFocusEnd:y,textareaWarp:v,dispatch:S}=o;qn(o,dEe);var E=$t.useRef(null),b=$t.useRef(),C=$t.useRef({fullscreen:s,preview:l});w.useEffect(()=>{C.current={fullscreen:s,preview:l,highlightEnable:d}},[s,l,d]),w.useEffect(()=>{if(E.current&&S){var O=new dO(E.current);b.current=O,S({textarea:E.current,commandOrchestrator:O})}},[]),w.useEffect(()=>{if(y&&E.current&&v){E.current.focus();var O=E.current.value.length;E.current.setSelectionRange(O,O),setTimeout(()=>{v&&(v.scrollTop=v.scrollHeight),E.current&&(E.current.scrollTop=E.current.scrollHeight)},0)}},[v]);var T=O=>{cEe(O,p,g),Y7(O,[...i||[],...c||[]],b.current,S,C.current)};return w.useEffect(()=>(E.current&&E.current.addEventListener("keydown",T),()=>{E.current&&E.current.removeEventListener("keydown",T)}),[]),m.jsx("textarea",Ce({autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1},r,{ref:E,className:t+"-text-input "+(r.className?r.className:""),value:a,onChange:O=>{S&&S({markdown:O.target.value}),n&&n(O)}}))}var pEe=["prefixCls","className","onScroll","renderTextarea"];function hEe(e){var t=e||{},{prefixCls:n,className:r,onScroll:o,renderTextarea:a}=t,i=qn(t,pEe),{markdown:s,scrollTop:l,commands:d,extraCommands:c,dispatch:p}=w.useContext(_m),g=$t.useRef(null),y=$t.useRef(),v=$t.createRef();w.useEffect(()=>{var E={};v.current&&(E.textareaWarp=v.current||void 0,v.current.scrollTop=l||0),p&&p(Ce({},E))},[]),w.useEffect(()=>{if(g.current&&p){var E=new dO(g.current);y.current=E,p({textarea:g.current,commandOrchestrator:E})}},[]);var S={WebkitTextFillColor:"initial",overflow:"auto"};return m.jsx("div",{ref:v,className:n+"-area "+(r||""),onScroll:o,children:m.jsx("div",{className:n+"-text",children:a?$t.cloneElement(a(Ce({},i,{value:s,autoComplete:"off",autoCorrect:"off",spellCheck:"false",autoCapitalize:"off",className:n+"-text-input",style:{WebkitTextFillColor:"inherit",overflow:"auto"}}),{dispatch:p,onChange:i.onChange,shortcuts:Y7,useContext:{commands:d,extraCommands:c,commandOrchestrator:y.current}}),{ref:g}):m.jsx(w.Fragment,{children:m.jsx(fEe,Ce({prefixCls:n},i,{style:S}))})})})}function mEe(e){var{prefixCls:t,groupName:n,commands:r,children:o}=e||{},{barPopup:a={}}=w.useContext(_m);return w.useMemo(()=>m.jsx("div",{className:t+"-toolbar-child "+(n&&a[n]?"active":""),onClick:i=>i.stopPropagation(),children:Array.isArray(r)?m.jsx(J7,Ce({commands:r},e,{isChild:!0})):o}),[r,a,n,t])}function C_(e){var{prefixCls:t,overflow:n}=e,{fullscreen:r,preview:o,barPopup:a={},components:i,commandOrchestrator:s,dispatch:l}=w.useContext(_m),d=w.useRef("");function c(p,g){if(l){var y={barPopup:Ce({},a)};p.keyCommand==="preview"&&(y.preview=p.value),p.keyCommand==="fullscreen"&&(y.fullscreen=!r),e.commands&&p.keyCommand==="group"?e.commands.forEach(v=>{g===v.groupName?y.barPopup[g]=!0:v.keyCommand&&(y.barPopup[v.groupName]=!1)}):(g||p.parent)&&Object.keys(y.barPopup||{}).forEach(v=>{y.barPopup[v]=!1}),Object.keys(y).length&&l(Ce({},y)),s&&s.executeCommand(p)}}return w.useEffect(()=>{document&&n&&(r?document.body.style.overflow="hidden":(d.current||(d.current=window.getComputedStyle(document.body,null).overflow),document.body.style.overflow=d.current))},[r,d,n]),m.jsx("ul",{children:(e.commands||[]).map((p,g)=>{if(p.keyCommand==="divider")return m.jsx("li",Ce({},p.liProps,{className:t+"-toolbar-divider"}),g);if(!p.keyCommand)return m.jsx(w.Fragment,{},g);var y=r&&p.keyCommand==="fullscreen"||p.keyCommand==="preview"&&o===p.value,v=p.children&&typeof p.children=="function"?p.children({getState:()=>s.getState(),textApi:s?s.textApi:void 0,close:()=>c({},p.groupName),execute:()=>c({execute:p.execute}),dispatch:l}):void 0,S=a&&o&&o==="preview"&&!/(preview|fullscreen)/.test(p.keyCommand),E=i?.toolbar||p.render,b=E&&typeof E=="function"?E(p,!!S,c,g):null;return m.jsxs("li",Ce({},p.liProps,{className:y?"active":"",children:[b&&$t.isValidElement(b)&&b,!b&&!p.buttonProps&&p.icon,!b&&p.buttonProps&&$t.createElement("button",Ce({type:"button",key:g,disabled:S,"data-name":p.name},p.buttonProps,{onClick:C=>{C.stopPropagation(),c(p,p.groupName)}}),p.icon),p.children&&m.jsx(mEe,{overflow:n,groupName:p.groupName,prefixCls:t,children:v,commands:Array.isArray(p.children)?p.children:void 0})]}),g)})})}function J7(e){e===void 0&&(e={});var{prefixCls:t,isChild:n,className:r}=e,{commands:o,extraCommands:a}=w.useContext(_m);return m.jsxs("div",{className:t+"-toolbar "+r,children:[m.jsx(C_,Ce({},e,{commands:e.commands||o||[]})),!n&&m.jsx(C_,Ce({},e,{commands:a||[]}))]})}function T_(e){var{hideToolbar:t,toolbarBottom:n,placement:r,overflow:o,prefixCls:a}=e;if(t||r==="bottom"&&!n||r==="top"&&n)return null;var i=n?"bottom":"";return m.jsx(J7,{prefixCls:a,overflow:o,className:i})}var gEe=e=>{var{prefixCls:t,onChange:n}=e||{},r=w.useRef(null),o=w.useRef(),a=w.useRef(e.height);w.useEffect(()=>{a.current!==e.height&&(a.current=e.height)},[e.height]);function i(c){if(o.current){var p,g=c.clientY||((p=c.changedTouches[0])==null?void 0:p.clientY),y=o.current.height+g-o.current.dragY;y>=e.minHeight&&y<=e.maxHeight&&n&&n(o.current.height+(g-o.current.dragY))}}function s(){var c,p;o.current=void 0,document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",s),(c=r.current)==null||c.removeEventListener("touchmove",i),(p=r.current)==null||p.removeEventListener("touchend",s)}function l(c){var p,g,y;c.preventDefault();var v=c.clientY||((p=c.changedTouches[0])==null?void 0:p.clientY);o.current={height:a.current,dragY:v},document.addEventListener("mousemove",i),document.addEventListener("mouseup",s),(g=r.current)==null||g.addEventListener("touchmove",i,{passive:!1}),(y=r.current)==null||y.addEventListener("touchend",s,{passive:!1})}w.useEffect(()=>{if(document){var c,p;(c=r.current)==null||c.addEventListener("touchstart",l,{passive:!1}),(p=r.current)==null||p.addEventListener("mousedown",l)}return()=>{if(document){var g;(g=r.current)==null||g.removeEventListener("touchstart",l),document.removeEventListener("mousemove",i)}}},[]);var d=w.useMemo(()=>m.jsx("svg",{viewBox:"0 0 512 512",height:"100%",children:m.jsx("path",{fill:"currentColor",d:"M304 256c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48 48 21.5 48 48zm120-48c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-336 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"})}),[]);return m.jsx("div",{className:t+"-bar",ref:r,children:d})},yEe=["prefixCls","className","value","commands","commandsFilter","direction","extraCommands","height","enableScroll","visibleDragbar","highlightEnable","preview","fullscreen","overflow","previewOptions","textareaProps","maxHeight","minHeight","autoFocus","autoFocusEnd","tabSize","defaultTabEnable","onChange","onStatistics","onHeightChange","hideToolbar","toolbarBottom","components","renderTextarea"];function vEe(e){return e===void 0&&(e={}),Object.keys(e).forEach(t=>{e[t]=!1}),e}var bEe=$t.forwardRef((e,t)=>{var n=e||{},{prefixCls:r="w-md-editor",className:o,value:a,commands:i=sEe(),commandsFilter:s,direction:l,extraCommands:d=lEe(),height:c=200,enableScroll:p=!0,visibleDragbar:g=typeof e.visiableDragbar=="boolean"?e.visiableDragbar:!0,highlightEnable:y=!0,preview:v="live",fullscreen:S=!1,overflow:E=!0,previewOptions:b={},textareaProps:C,maxHeight:T=1200,minHeight:O=100,autoFocus:R,autoFocusEnd:A=!1,tabSize:I=2,defaultTabEnable:F=!1,onChange:_,onStatistics:z,onHeightChange:$,hideToolbar:k,toolbarBottom:H=!1,components:L,renderTextarea:V}=n,j=qn(n,yEe),Z=i.map(Ie=>s?s(Ie,!1):Ie).filter(Boolean),J=d.map(Ie=>s?s(Ie,!0):Ie).filter(Boolean),[oe,B]=w.useReducer(DSe,{markdown:a,preview:v,components:L,height:c,minHeight:O,highlightEnable:y,tabSize:I,defaultTabEnable:F,scrollTop:0,scrollTopPreview:0,commands:Z,extraCommands:J,fullscreen:S,barPopup:{}}),te=w.useRef(null),re=w.useRef(null),G=w.useRef(p);w.useImperativeHandle(t,()=>Ce({},oe,{container:te.current,dispatch:B})),w.useMemo(()=>G.current=p,[p]),w.useEffect(()=>{var Ie={};te.current&&(Ie.container=te.current||void 0),Ie.markdown=a||"",Ie.barPopup={},B&&B(Ce({},oe,Ie))},[]);var le=[o,"wmde-markdown-var",l?r+"-"+l:null,r,oe.preview?r+"-show-"+oe.preview:null,oe.fullscreen?r+"-fullscreen":null].filter(Boolean).join(" ").trim();w.useMemo(()=>a!==oe.markdown&&B({markdown:a||""}),[a,oe.markdown]),w.useMemo(()=>v!==oe.preview&&B({preview:v}),[v]),w.useMemo(()=>I!==oe.tabSize&&B({tabSize:I}),[I]),w.useMemo(()=>y!==oe.highlightEnable&&B({highlightEnable:y}),[y]),w.useMemo(()=>R!==oe.autoFocus&&B({autoFocus:R}),[R]),w.useMemo(()=>A!==oe.autoFocusEnd&&B({autoFocusEnd:A}),[A]),w.useMemo(()=>S!==oe.fullscreen&&B({fullscreen:S}),[S]),w.useMemo(()=>c!==oe.height&&B({height:c}),[c]),w.useMemo(()=>c!==oe.height&&$&&$(oe.height,c,oe),[c,$,oe]),w.useMemo(()=>i!==oe.commands&&B({commands:Z}),[e.commands]),w.useMemo(()=>d!==oe.extraCommands&&B({extraCommands:J}),[e.extraCommands]);var se=w.useRef(),ne=w.useRef("preview"),ie=w.useRef(!1);w.useMemo(()=>{se.current=oe.textareaWarp,oe.textareaWarp&&(oe.textareaWarp.addEventListener("mouseover",()=>{ne.current="text"}),oe.textareaWarp.addEventListener("mouseleave",()=>{ne.current="preview"}))},[oe.textareaWarp]);var ue=(Ie,de)=>{if(G.current){var gt=se.current,Ue=re.current?re.current:void 0;if(ie.current||(ne.current=de,ie.current=!0),gt&&Ue){var ut=(gt.scrollHeight-gt.offsetHeight)/(Ue.scrollHeight-Ue.offsetHeight);Ie.target===gt&&ne.current==="text"&&(Ue.scrollTop=gt.scrollTop/ut),Ie.target===Ue&&ne.current==="preview"&&(gt.scrollTop=Ue.scrollTop*ut);var it=0;ne.current==="text"?it=gt.scrollTop||0:ne.current==="preview"&&(it=Ue.scrollTop||0),B({scrollTop:it})}}},ve=r+"-preview "+(b.className||""),we=Ie=>ue(Ie,"preview"),Se=w.useMemo(()=>m.jsx("div",{ref:re,className:ve,children:m.jsx(q7,Ce({},b,{onScroll:we,source:oe.markdown||""}))}),[ve,b,oe.markdown]),Fe=L?.preview&&L?.preview(oe.markdown||"",oe,B);Fe&&$t.isValidElement(Fe)&&(Se=m.jsx("div",{className:ve,ref:re,onScroll:we,children:Fe}));var he=Ce({},j.style,{height:oe.height||"100%"}),ge=()=>B({barPopup:Ce({},vEe(oe.barPopup))}),Ke=Ie=>B({height:Ie}),ze=Ie=>{if(_&&_(Ie.target.value,Ie,oe),C&&C.onChange&&C.onChange(Ie),oe.textarea&&oe.textarea instanceof HTMLTextAreaElement&&z){var de=new dO(oe.textarea),gt=de.getState()||{};z(Ce({},gt,{lineCount:Ie.target.value.split(`
|
|
393
|
-
`).length,length:Ie.target.value.length}))}};return m.jsx(_m.Provider,{value:Ce({},oe,{dispatch:B}),children:m.jsxs("div",Ce({ref:te,className:le},j,{onClick:ge,style:he,children:[m.jsx(T_,{hideToolbar:k,toolbarBottom:H,prefixCls:r,overflow:E,placement:"top"}),m.jsxs("div",{className:r+"-content",children:[/(edit|live)/.test(oe.preview||"")&&m.jsx(hEe,Ce({className:r+"-input",prefixCls:r,autoFocus:R},C,{onChange:ze,renderTextarea:L?.textarea||V,onScroll:Ie=>ue(Ie,"text")})),/(live|preview)/.test(oe.preview||"")&&Se]}),g&&!oe.fullscreen&&m.jsx(gEe,{prefixCls:r,height:oe.height,maxHeight:T,minHeight:O,onChange:Ke}),m.jsx(T_,{hideToolbar:k,toolbarBottom:H,prefixCls:r,overflow:E,placement:"bottom"})]}))})}),e9=bEe;e9.Markdown=q7;const Lw={scopeName:"source.malloy",patterns:[{include:"#malloy-language"}],repository:{"malloy-language":{patterns:[{include:"#sql-string"},{include:"#comments"},{include:"#tags"},{include:"#strings"},{include:"#numbers"},{include:"#keywords"},{include:"#properties"},{include:"#functions"},{include:"#datetimes"},{include:"#identifiers-quoted"},{include:"#types"},{include:"#constants"},{include:"#timeframes"},{include:"#identifiers-unquoted"}]},"malloy-matched":{begin:"{",end:"}",patterns:[{include:"#malloy-matched"},{include:"#malloy-language"}]},"malloy-in-sql":{begin:"%{",name:"source.malloy-in-sql",end:"}%?",patterns:[{include:"#malloy-matched"},{include:"#malloy-language"}]},"sql-string":{patterns:[{begin:'(\\b[A-Za-z_][A-Za-z_0-9]*)(\\s*\\.\\s*)(sql)(\\s*\\(\\s*)(""")',end:'"""',beginCaptures:{1:{name:"variable.other"},3:{name:"keyword.control.sql"},5:{name:"punctuation.sql-block.open"}},endCaptures:{0:{name:"punctuation.sql-block.close"}},name:"source.sql",patterns:[{include:"#malloy-in-sql"},{include:"source.sql"}]}]},functions:{patterns:[{match:"(?i)\\b(count)(\\s*\\()(distinct)",captures:{1:{name:"entity.name.function"},3:{name:"entity.name.function.modifier"}}},{match:"(?i)\\b(AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE|UNGROUPED)(\\s*\\()",captures:{1:{name:"entity.name.function"}}},{match:"(?i)\\b([a-zA-Z_][a-zA-Z_0-9]*)(\\s*\\()",captures:{1:{name:"entity.name.function"}}},{match:"(?i)\\b([a-zA-Z_][a-zA-Z_0-9]*)(!)(timestamp|number|string|boolean|date)?(\\s*\\()",captures:{1:{name:"entity.name.function"},3:{name:"entity.name.type"}}}]},datetimes:{patterns:[{match:"(?i)@[0-9]{4}-[0-9]{2}-[0-9]{2}[ T][0-9]{2}:[0-9]{2}((:[0-9]{2})(([\\.,][0-9]+)(\\[[A-Za-z_/]+\\])?)?)?",name:"constant.numeric.timestamp"},{match:"(?i)@[0-9]{4}(-Q[1-4]|-[0-9]{2}(-[0-9]{2}(-WK)?)?)?",name:"constant.numeric.date"}]},"identifiers-quoted":{patterns:[{match:"`[^`]*`",name:"variable.other.quoted"}]},"identifiers-unquoted":{patterns:[{match:"(?i)\\b[A-Za-z_][A-Za-z_0-9]*\\b",name:"variable.other"}]},timeframes:{patterns:[{match:"(?i)\\b((year|quarter|month|week|day|hour|minute|second)s?)\\b",name:"keyword.other.timeframe"},{match:"(?i)\\b(day_of_year|day_of_month)\\b",name:"keyword.other.timeframe"}]},comments:{patterns:[{begin:"/\\*",end:"\\*/",beginCaptures:{0:{name:"punctuation.definition.comment.begin"}},endCaptures:{0:{name:"punctuation.definition.comment.end"}},name:"comment.block"},{begin:"//",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-slash"},{begin:"--",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-hyphen"}]},tags:{patterns:[{match:"##\\n",name:"string.quoted",captures:{0:{name:"string.quoted"}}},{begin:'#"',end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-slash"},{match:"#\\n",name:"string.quoted",captures:{0:{name:"string.quoted"}}},{begin:"#\\s",end:"\\n",beginCaptures:{0:{name:"support.type.property-name.json"}},name:"comment.line.double-slash",patterns:[{include:"#tag-values"}]},{begin:"##\\s",end:"\\n",beginCaptures:{0:{name:"support.type.property-name.json"}},name:"comment.line.double-slash",patterns:[{include:"#tag-values"}]},{begin:"#",end:"\\n",beginCaptures:{0:{name:"string.quoted"}},name:"string.quoted"}],repository:{"tag-values":{name:"support.type.property-name.json",match:'(-)?((?:[^\\s=#]+)|(?:"[^#]+"))(?:\\s*(=)\\s*((?:[^\\s=#]+)|(?:"[^#]+")))?',captures:{1:{name:"keyword.control.negate"},2:{name:"support.type.property-name.json"},3:{name:"keyword.operator.comparison.ts"},4:{name:"string.quoted"}}}}},strings:{patterns:[{begin:"'",end:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin"}},endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.single",patterns:[{include:"#escapes"}]},{begin:'"',end:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin"}},endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.double",patterns:[{include:"#escapes"}]},{begin:'"""',end:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin"}},endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.triple"},{begin:"(?i)[r|/]'",end:"'",name:"string.regexp",patterns:[{include:"#regex-escapes"}]}],repository:{escapes:{name:"constant.character.escape",match:"\\\\(u[A-Fa-f0-9]{4}|.)",captures:{0:{name:"constant.character.escape"}}},"regex-escapes":{name:"constant.character.escape",match:"\\\\.",captures:{0:{name:"constant.character.escape"}}}}},numbers:{match:"(?i)(\\b((0|[1-9][0-9]*)(E[+-]?[0-9]+|\\.[0-9]*)?)|\\.[0-9]+)",name:"constant.numeric"},constants:{patterns:[{match:"(?i)\\bnull\\b",name:"constant.language.null"},{match:"(?i)\\btrue\\b",name:"constant.language.true"},{match:"(?i)\\bfalse\\b",name:"constant.language.false"}]},types:{patterns:[{match:"(?i)\\bstring\\b",name:"entity.name.type.string"},{match:"(?i)\\bnumber\\b",name:"entity.name.type.number"},{match:"(?i)\\bdate\\b",name:"entity.name.type.date"},{match:"(?i)\\btimestamp\\b",name:"entity.name.type.timestamp"},{match:"(?i)\\bboolean\\b",name:"entity.name.type.boolean"}]},properties:{patterns:[{match:"(?i)\\baccept\\b",name:"keyword.control.accept"},{match:"(?i)\\bselect\\b",name:"keyword.control.select"},{match:"(?i)\\bconnection\\b",name:"keyword.control.connection"},{match:"(?i)\\brun\\b",name:"keyword.control.run"},{match:"(?i)\\bextend\\b",name:"keyword.control.extend"},{match:"(?i)\\brefine\\b",name:"keyword.control.refine"},{match:"(?i)\\baggregate\\b",name:"keyword.control.aggregate"},{match:"(?i)\\bsample\\b",name:"keyword.control.sample"},{match:"(?i)\\bcalculate\\b",name:"keyword.control.calculate"},{match:"(?i)\\btimezone\\b",name:"keyword.control.timezone"},{match:"(?i)\\bdimension\\b",name:"keyword.control.dimension"},{match:"(?i)\\bexcept\\b",name:"keyword.control.except"},{match:"(?i)\\bsource\\b",name:"keyword.control.source"},{match:"(?i)\\bgroup_by\\b",name:"keyword.control.group_by"},{match:"(?i)\\bhaving\\b",name:"keyword.control.having"},{match:"(?i)\\bindex\\b",name:"keyword.control.index"},{match:"(?i)\\bjoin_one\\b",name:"keyword.control.join_one"},{match:"(?i)\\bwith\\b",name:"keyword.control.with"},{match:"(?i)\\bjoin_many\\b",name:"keyword.control.join_many"},{match:"(?i)\\bjoin_cross\\b",name:"keyword.control.join_cross"},{match:"(?i)\\blimit\\b",name:"keyword.control.limit"},{match:"(?i)\\bmeasure\\b",name:"keyword.control.measure"},{match:"(?i)\\bnest\\b",name:"keyword.control.nest"},{match:"(?i)\\border_by\\b",name:"keyword.control.order_by"},{match:"(?i)\\bpartition_by\\b",name:"keyword.control.partition_by"},{match:"(?i)\\bprimary_key\\b",name:"keyword.control.primary_key"},{match:"(?i)\\bproject\\b",name:"keyword.control.project"},{match:"(?i)\\bquery\\b",name:"keyword.control.query"},{match:"(?i)\\brename\\b",name:"keyword.control.rename"},{match:"(?i)\\btop\\b",name:"keyword.control.top"},{match:"(?i)\\bview\\b",name:"keyword.control.view"},{match:"(?i)\\bwhere\\b",name:"keyword.control.where"},{match:"(?i)\\bdeclare\\b",name:"keyword.control.declare"}]},keywords:{patterns:[{match:"(?i)\\bis\\b",name:"keyword.control.is"},{match:"(?i)\\bon\\b",name:"keyword.control.on"},{match:"(?i)\\bnot\\b",name:"keyword.other.not"},{match:"(?i)\\bor\\b",name:"keyword.other.or"},{match:"(?i)\\bdesc\\b",name:"keyword.control.desc"},{match:"(?i)\\bby\\b",name:"keyword.control.by"},{match:"(?i)\\band\\b",name:"keyword.other.and"},{match:"(?i)\\basc\\b",name:"keyword.control.asc"},{match:"(?i)\\bfor\\b",name:"keyword.other.for"},{match:"(?i)\\belse\\b",name:"keyword.other.else"},{match:"(?i)\\bto\\b",name:"keyword.other.to"},{match:"(?i)\\bwhen\\b",name:"keyword.other.when"},{match:"(?i)\\bpick\\b",name:"keyword.other.pick"},{match:"(?i)\\bimport\\b",name:"keyword.control.import"}]}}},xEe={...Lw,patterns:[...Lw.patterns,{include:"#docvar"}],repository:{...Lw.repository,docvar:{patterns:[{match:"\\<\\<[^(\\>\\>)]*\\>\\>",beginCaptures:{0:{name:"punctuation.definition.comment.begin"}},endCaptures:{0:{name:"punctuation.definition.comment.end"}},name:"markup.italic.markdown"}]}}},SEe={name:"Malloy SQL",scopeName:"source.malloy-sql",patterns:[{include:"#malloysql-sql"}],repository:{"malloysql-sql":{beginCaptures:{0:{name:"entity.other.attribute.malloy-sql"},1:{name:"entity.other.attribute.malloy-sql"},3:{name:"comment.line.double-slash"}},name:"meta.embedded.block.malloysql.sql",patterns:[{include:"#comments"},{begin:"%{",end:"}%",beginCaptures:{0:{name:"punctuation.definition.malloy-sql"}},endCaptures:{0:{name:"punctuation.definition.malloy-sql"}},name:"meta.embedded.block.malloy",patterns:[{include:"source.malloy"}]},{include:"source.sql"}]},comments:{patterns:[{begin:"/\\*",end:"\\*/",beginCaptures:{0:{name:"punctuation.definition.comment.begin"}},endCaptures:{0:{name:"punctuation.definition.comment.end"}},name:"comment.block"},{begin:"//",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-slash"},{begin:"--",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-hyphen"}]}}},EEe="github-light",CEe="github-dark";let _w;function TEe(){return _w||(_w=(async()=>{const[{createHighlighterCore:e},{createOnigurumaEngine:t},{default:n},{default:r},{default:o},{default:a},{default:i}]=await Promise.all([jo(()=>import("./core-DFBwNhvb.es-BwyvPM0R.js"),__vite__mapDeps([0,1])),jo(()=>import("./engine-oniguruma-C4vnmooL.es-jdkXmgTr.js"),[]),jo(()=>import("./sql-DCkt643-.es-COK4E0Yg.js"),[]),jo(()=>import("./json-71t8ZF9g.es-BQoSv7ci.js"),[]),jo(()=>import("./typescript-buWNZFwO.es-Dj6nwHGl.js"),[]),jo(()=>import("./github-light-JYsPkUQd.es-DAi9KRSo.js"),[]),jo(()=>import("./github-dark-DenFmJkN.es-DHJKELXO.js"),[])]);return e({engine:t(jo(()=>import("./wasm-DQxwEHae.es-CG6Dc4jp.js"),[])),themes:[a,i],langs:[n,r,o,{name:"malloy",scopeName:"source.malloy",embeddedLangs:["sql"],...xEe},{name:"malloysql",scopeName:"source.malloy-sql",embeddedLangs:["sql"],...SEe}]})})()),_w}async function Kx(e,t,n="light"){return(await TEe()).codeToHtml(e,{lang:t,theme:n==="dark"?CEe:EEe})}function So(e){const{server:t}=zr(),n={...e,queryKey:[...e.queryKey,t],queryFn:async()=>{try{return await e.queryFn()}catch(r){if(r&&typeof r=="object"&&"response"in r){const o=r;if(o.response?.data){const a=new Error(o.response.data.message||o.message);throw a.status=o.response.status,a.data=o.response.data,a}}throw r}},retry:!1,throwOnError:!1};return Vj(n,sD)}function ma(e){const t={...e,mutationFn:async n=>{try{return await e.mutationFn(n)}catch(r){if(r&&typeof r=="object"&&"response"in r){const o=r;if(o.response?.data){const a=new Error(o.response.data.message||o.message);throw a.status=o.response.status,a.data=o.response.data,a}}throw r}},retry:!1,throwOnError:!1};return Toe(t,sD)}const Co=e=>{const t=new URL(e),n={};if(t.protocol!=="publisher:")throw new Error(`Failed to parse resource URI: ${e}`);const r=(t.hostname+t.pathname).split("/");for(let o=0;o<r.length;o+=2){const a=r[o];a==="environments"?n.environmentName=decodeURI(r[o+1])||void 0:a==="packages"?n.packageName=decodeURI(r[o+1])||void 0:a==="connections"?n.connectionName=decodeURI(r[o+1])||void 0:a==="models"&&(n.modelPath=decodeURI(r.slice(o+1).join("/"))||void 0)}if(n.versionId=t.searchParams.get("versionId")||void 0,!n.environmentName)throw new Error(`Failed to parse resource URI: ${e}`);return n},fO=e=>{if(!e.environmentName)throw new Error(`Failed to encode resource URI, missing environment name: ${e}`);let t=`publisher://environments/${e.environmentName}`;return e.packageName&&(t+=`/packages/${e.packageName}`),e.connectionName&&(t+=`/connections/${e.connectionName}`),e.modelPath&&(t+=`/models/${e.modelPath}`),e.packageName&&e.versionId&&(t+=`?versionId=${e.versionId}`),t};function t9({sourceAndPaths:e,selectedSourceIndex:t,existingQuery:n,onQueryChange:r,onSourceChange:o,resourceUri:a}){return $t.useEffect(()=>{o&&o(t)},[t,o]),m.jsx(aD,{children:m.jsxs(sK,{spacing:2,component:"section",children:[m.jsx(kEe,{sourceAndPath:e[t],existingQuery:n,onChange:i=>{r&&r(i)},resourceUri:a}),m.jsx(SF,{height:"5px"})]})})}function sx(){return{query:void 0,malloyQuery:void 0,malloyResult:void 0}}function wEe({sourceAndPath:e,onChange:t,existingQuery:n,explorerComponents:r,QueryBuilder:o,resourceUri:a}){const[i,s]=$t.useState(n||sx()),[l,d]=$t.useState(void 0);$t.useEffect(()=>{n&&s(n)},[n]);const[c,p]=$t.useState([]),{MalloyExplorerProvider:g,QueryPanel:y,ResizableCollapsiblePanel:v,ResultPanel:S,SourcePanel:E}=r;$t.useEffect(()=>{t&&t(i)},[t,i]);const{environmentName:b,packageName:C,versionId:T}=Co(a),{apiClients:O}=zr(),R=ma({mutationFn:()=>{const _=typeof i?.malloyQuery=="string"?i.malloyQuery:new o.ASTQuery({source:e.sourceInfo,query:i?.malloyQuery}).toMalloy();return d({executionState:"running",query:i?.malloyQuery,queryResolutionStartMillis:Date.now(),onCancel:()=>{R.reset(),d(void 0)},response:{result:{}}}),s({...i,query:_}),O.models.executeQueryModel(b,C,e.modelPath,{query:_,sourceName:void 0,queryName:void 0,versionId:T})},onSuccess:_=>{if(_){const z=JSON.parse(_.data.result);s({...i,malloyResult:z}),d($=>$?{...$,executionState:"finished",response:{result:z}}:void 0)}},onError:_=>{d(void 0),console.error("Query execution error:",_)}}),[A,I]=$t.useState(e.sourceInfo.name);$t.useEffect(()=>{A!==e.sourceInfo.name&&(I(e.sourceInfo.name),s(sx()),d(void 0))},[e,A]);const F=$t.useCallback(_=>{s({...i,malloyQuery:_,malloyResult:void 0})},[i]);return A!==e.sourceInfo.name?m.jsx("div",{children:"Loading..."}):m.jsx(v$,{sx:{border:"1px solid #e0e0e0",borderRadius:"8px",overflow:"hidden"},children:m.jsx(g,{source:e.sourceInfo,query:i?.malloyQuery,topValues:[],onFocusedNestViewPathChange:p,focusedNestViewPath:c,onQueryChange:F,children:m.jsxs("div",{style:{display:"flex",height:"100%",overflowY:"auto"},children:[m.jsx(v,{isInitiallyExpanded:!0,initialWidth:180,minWidth:180,icon:"database",title:e.sourceInfo.name,children:m.jsx(E,{onRefresh:()=>s(sx())})}),m.jsx(v,{isInitiallyExpanded:!0,initialWidth:280,minWidth:280,icon:"filterSliders",title:"Query",children:m.jsx(y,{runQuery:()=>{console.log(`running query with: ${i?.malloyQuery}`);try{R.mutate()}catch(_){console.error("Error running query:",_)}}})}),m.jsx(S,{source:e.sourceInfo,draftQuery:i?.malloyQuery,setDraftQuery:_=>s({...i,malloyQuery:_}),submittedQuery:l,options:{showRawQuery:!0}})]})})},e.sourceInfo.name)}function kEe(e){const[t,n]=w.useState(null),[r,o]=w.useState(null),[a,i]=w.useState(!0);return w.useEffect(()=>{let s=!0;return Promise.all([jo(()=>import("./index-D6bZJBhc.js"),__vite__mapDeps([2,3,4,5,6])),jo(()=>import("./index-Byu4Enw7.js").then(l=>l.i),__vite__mapDeps([4,3]))]).then(([l,d])=>{s&&(n(l),o(d),i(!1))}).catch(l=>{console.error("Failed to load Malloy components:",l),s&&i(!1)}),()=>{s=!1}},[]),a||!t||!r?m.jsx(Aie,{children:m.jsx(v$,{children:m.jsx(SF,{sx:{alignItems:"center",justifyContent:"center",height:"200px",color:"text.secondary"},children:"Loading explorer..."})})}):m.jsx(wEe,{...e,explorerComponents:t,QueryBuilder:r,resourceUri:e.resourceUri})}const n9=lr(m.jsx("path",{d:"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8"}));function wa({text:e,size:t=20,color:n="primary",thickness:r=3.6,centered:o=!0,spacing:a=2,textVariant:i="body2"}){const s=m.jsxs(Nt,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:a},children:[m.jsx(mb,{size:t,color:n,thickness:r}),e&&m.jsx(xt,{variant:i,color:"text.secondary",children:e})]});return o?m.jsx(Nt,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"200px",width:"100%"},children:s}):s}const AEe=new Set(["warn","error"]);function DEe(e){if(!e?.length)return;const t=[];let n=!1;for(const r of e)!r.message||!AEe.has(r.severity??"")||(r.severity==="error"&&(n=!0),t.includes(r.message)||t.push(r.message));if(t.length)return{severity:n?"error":"warn",title:t.join(`
|
|
393
|
+
`).length,length:Ie.target.value.length}))}};return m.jsx(_m.Provider,{value:Ce({},oe,{dispatch:B}),children:m.jsxs("div",Ce({ref:te,className:le},j,{onClick:ge,style:he,children:[m.jsx(T_,{hideToolbar:k,toolbarBottom:H,prefixCls:r,overflow:E,placement:"top"}),m.jsxs("div",{className:r+"-content",children:[/(edit|live)/.test(oe.preview||"")&&m.jsx(hEe,Ce({className:r+"-input",prefixCls:r,autoFocus:R},C,{onChange:ze,renderTextarea:L?.textarea||V,onScroll:Ie=>ue(Ie,"text")})),/(live|preview)/.test(oe.preview||"")&&Se]}),g&&!oe.fullscreen&&m.jsx(gEe,{prefixCls:r,height:oe.height,maxHeight:T,minHeight:O,onChange:Ke}),m.jsx(T_,{hideToolbar:k,toolbarBottom:H,prefixCls:r,overflow:E,placement:"bottom"})]}))})}),e9=bEe;e9.Markdown=q7;const Lw={scopeName:"source.malloy",patterns:[{include:"#malloy-language"}],repository:{"malloy-language":{patterns:[{include:"#sql-string"},{include:"#comments"},{include:"#tags"},{include:"#strings"},{include:"#numbers"},{include:"#keywords"},{include:"#properties"},{include:"#functions"},{include:"#datetimes"},{include:"#identifiers-quoted"},{include:"#types"},{include:"#constants"},{include:"#timeframes"},{include:"#identifiers-unquoted"}]},"malloy-matched":{begin:"{",end:"}",patterns:[{include:"#malloy-matched"},{include:"#malloy-language"}]},"malloy-in-sql":{begin:"%{",name:"source.malloy-in-sql",end:"}%?",patterns:[{include:"#malloy-matched"},{include:"#malloy-language"}]},"sql-string":{patterns:[{begin:'(\\b[A-Za-z_][A-Za-z_0-9]*)(\\s*\\.\\s*)(sql)(\\s*\\(\\s*)(""")',end:'"""',beginCaptures:{1:{name:"variable.other"},3:{name:"keyword.control.sql"},5:{name:"punctuation.sql-block.open"}},endCaptures:{0:{name:"punctuation.sql-block.close"}},name:"source.sql",patterns:[{include:"#malloy-in-sql"},{include:"source.sql"}]}]},functions:{patterns:[{match:"(?i)\\b(count)(\\s*\\()(distinct)",captures:{1:{name:"entity.name.function"},3:{name:"entity.name.function.modifier"}}},{match:"(?i)\\b(AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE|UNGROUPED)(\\s*\\()",captures:{1:{name:"entity.name.function"}}},{match:"(?i)\\b([a-zA-Z_][a-zA-Z_0-9]*)(\\s*\\()",captures:{1:{name:"entity.name.function"}}},{match:"(?i)\\b([a-zA-Z_][a-zA-Z_0-9]*)(!)(timestamp|number|string|boolean|date)?(\\s*\\()",captures:{1:{name:"entity.name.function"},3:{name:"entity.name.type"}}}]},datetimes:{patterns:[{match:"(?i)@[0-9]{4}-[0-9]{2}-[0-9]{2}[ T][0-9]{2}:[0-9]{2}((:[0-9]{2})(([\\.,][0-9]+)(\\[[A-Za-z_/]+\\])?)?)?",name:"constant.numeric.timestamp"},{match:"(?i)@[0-9]{4}(-Q[1-4]|-[0-9]{2}(-[0-9]{2}(-WK)?)?)?",name:"constant.numeric.date"}]},"identifiers-quoted":{patterns:[{match:"`[^`]*`",name:"variable.other.quoted"}]},"identifiers-unquoted":{patterns:[{match:"(?i)\\b[A-Za-z_][A-Za-z_0-9]*\\b",name:"variable.other"}]},timeframes:{patterns:[{match:"(?i)\\b((year|quarter|month|week|day|hour|minute|second)s?)\\b",name:"keyword.other.timeframe"},{match:"(?i)\\b(day_of_year|day_of_month)\\b",name:"keyword.other.timeframe"}]},comments:{patterns:[{begin:"/\\*",end:"\\*/",beginCaptures:{0:{name:"punctuation.definition.comment.begin"}},endCaptures:{0:{name:"punctuation.definition.comment.end"}},name:"comment.block"},{begin:"//",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-slash"},{begin:"--",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-hyphen"}]},tags:{patterns:[{match:"##\\n",name:"string.quoted",captures:{0:{name:"string.quoted"}}},{begin:'#"',end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-slash"},{match:"#\\n",name:"string.quoted",captures:{0:{name:"string.quoted"}}},{begin:"#\\s",end:"\\n",beginCaptures:{0:{name:"support.type.property-name.json"}},name:"comment.line.double-slash",patterns:[{include:"#tag-values"}]},{begin:"##\\s",end:"\\n",beginCaptures:{0:{name:"support.type.property-name.json"}},name:"comment.line.double-slash",patterns:[{include:"#tag-values"}]},{begin:"#",end:"\\n",beginCaptures:{0:{name:"string.quoted"}},name:"string.quoted"}],repository:{"tag-values":{name:"support.type.property-name.json",match:'(-)?((?:[^\\s=#]+)|(?:"[^#]+"))(?:\\s*(=)\\s*((?:[^\\s=#]+)|(?:"[^#]+")))?',captures:{1:{name:"keyword.control.negate"},2:{name:"support.type.property-name.json"},3:{name:"keyword.operator.comparison.ts"},4:{name:"string.quoted"}}}}},strings:{patterns:[{begin:"'",end:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin"}},endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.single",patterns:[{include:"#escapes"}]},{begin:'"',end:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin"}},endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.double",patterns:[{include:"#escapes"}]},{begin:'"""',end:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin"}},endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.triple"},{begin:"(?i)[r|/]'",end:"'",name:"string.regexp",patterns:[{include:"#regex-escapes"}]}],repository:{escapes:{name:"constant.character.escape",match:"\\\\(u[A-Fa-f0-9]{4}|.)",captures:{0:{name:"constant.character.escape"}}},"regex-escapes":{name:"constant.character.escape",match:"\\\\.",captures:{0:{name:"constant.character.escape"}}}}},numbers:{match:"(?i)(\\b((0|[1-9][0-9]*)(E[+-]?[0-9]+|\\.[0-9]*)?)|\\.[0-9]+)",name:"constant.numeric"},constants:{patterns:[{match:"(?i)\\bnull\\b",name:"constant.language.null"},{match:"(?i)\\btrue\\b",name:"constant.language.true"},{match:"(?i)\\bfalse\\b",name:"constant.language.false"}]},types:{patterns:[{match:"(?i)\\bstring\\b",name:"entity.name.type.string"},{match:"(?i)\\bnumber\\b",name:"entity.name.type.number"},{match:"(?i)\\bdate\\b",name:"entity.name.type.date"},{match:"(?i)\\btimestamp\\b",name:"entity.name.type.timestamp"},{match:"(?i)\\bboolean\\b",name:"entity.name.type.boolean"}]},properties:{patterns:[{match:"(?i)\\baccept\\b",name:"keyword.control.accept"},{match:"(?i)\\bselect\\b",name:"keyword.control.select"},{match:"(?i)\\bconnection\\b",name:"keyword.control.connection"},{match:"(?i)\\brun\\b",name:"keyword.control.run"},{match:"(?i)\\bextend\\b",name:"keyword.control.extend"},{match:"(?i)\\brefine\\b",name:"keyword.control.refine"},{match:"(?i)\\baggregate\\b",name:"keyword.control.aggregate"},{match:"(?i)\\bsample\\b",name:"keyword.control.sample"},{match:"(?i)\\bcalculate\\b",name:"keyword.control.calculate"},{match:"(?i)\\btimezone\\b",name:"keyword.control.timezone"},{match:"(?i)\\bdimension\\b",name:"keyword.control.dimension"},{match:"(?i)\\bexcept\\b",name:"keyword.control.except"},{match:"(?i)\\bsource\\b",name:"keyword.control.source"},{match:"(?i)\\bgroup_by\\b",name:"keyword.control.group_by"},{match:"(?i)\\bhaving\\b",name:"keyword.control.having"},{match:"(?i)\\bindex\\b",name:"keyword.control.index"},{match:"(?i)\\bjoin_one\\b",name:"keyword.control.join_one"},{match:"(?i)\\bwith\\b",name:"keyword.control.with"},{match:"(?i)\\bjoin_many\\b",name:"keyword.control.join_many"},{match:"(?i)\\bjoin_cross\\b",name:"keyword.control.join_cross"},{match:"(?i)\\blimit\\b",name:"keyword.control.limit"},{match:"(?i)\\bmeasure\\b",name:"keyword.control.measure"},{match:"(?i)\\bnest\\b",name:"keyword.control.nest"},{match:"(?i)\\border_by\\b",name:"keyword.control.order_by"},{match:"(?i)\\bpartition_by\\b",name:"keyword.control.partition_by"},{match:"(?i)\\bprimary_key\\b",name:"keyword.control.primary_key"},{match:"(?i)\\bproject\\b",name:"keyword.control.project"},{match:"(?i)\\bquery\\b",name:"keyword.control.query"},{match:"(?i)\\brename\\b",name:"keyword.control.rename"},{match:"(?i)\\btop\\b",name:"keyword.control.top"},{match:"(?i)\\bview\\b",name:"keyword.control.view"},{match:"(?i)\\bwhere\\b",name:"keyword.control.where"},{match:"(?i)\\bdeclare\\b",name:"keyword.control.declare"}]},keywords:{patterns:[{match:"(?i)\\bis\\b",name:"keyword.control.is"},{match:"(?i)\\bon\\b",name:"keyword.control.on"},{match:"(?i)\\bnot\\b",name:"keyword.other.not"},{match:"(?i)\\bor\\b",name:"keyword.other.or"},{match:"(?i)\\bdesc\\b",name:"keyword.control.desc"},{match:"(?i)\\bby\\b",name:"keyword.control.by"},{match:"(?i)\\band\\b",name:"keyword.other.and"},{match:"(?i)\\basc\\b",name:"keyword.control.asc"},{match:"(?i)\\bfor\\b",name:"keyword.other.for"},{match:"(?i)\\belse\\b",name:"keyword.other.else"},{match:"(?i)\\bto\\b",name:"keyword.other.to"},{match:"(?i)\\bwhen\\b",name:"keyword.other.when"},{match:"(?i)\\bpick\\b",name:"keyword.other.pick"},{match:"(?i)\\bimport\\b",name:"keyword.control.import"}]}}},xEe={...Lw,patterns:[...Lw.patterns,{include:"#docvar"}],repository:{...Lw.repository,docvar:{patterns:[{match:"\\<\\<[^(\\>\\>)]*\\>\\>",beginCaptures:{0:{name:"punctuation.definition.comment.begin"}},endCaptures:{0:{name:"punctuation.definition.comment.end"}},name:"markup.italic.markdown"}]}}},SEe={name:"Malloy SQL",scopeName:"source.malloy-sql",patterns:[{include:"#malloysql-sql"}],repository:{"malloysql-sql":{beginCaptures:{0:{name:"entity.other.attribute.malloy-sql"},1:{name:"entity.other.attribute.malloy-sql"},3:{name:"comment.line.double-slash"}},name:"meta.embedded.block.malloysql.sql",patterns:[{include:"#comments"},{begin:"%{",end:"}%",beginCaptures:{0:{name:"punctuation.definition.malloy-sql"}},endCaptures:{0:{name:"punctuation.definition.malloy-sql"}},name:"meta.embedded.block.malloy",patterns:[{include:"source.malloy"}]},{include:"source.sql"}]},comments:{patterns:[{begin:"/\\*",end:"\\*/",beginCaptures:{0:{name:"punctuation.definition.comment.begin"}},endCaptures:{0:{name:"punctuation.definition.comment.end"}},name:"comment.block"},{begin:"//",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-slash"},{begin:"--",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-hyphen"}]}}},EEe="github-light",CEe="github-dark";let _w;function TEe(){return _w||(_w=(async()=>{const[{createHighlighterCore:e},{createOnigurumaEngine:t},{default:n},{default:r},{default:o},{default:a},{default:i}]=await Promise.all([jo(()=>import("./core-Cr-9Wkp3.es-YhIv13au.js"),__vite__mapDeps([0,1])),jo(()=>import("./engine-oniguruma-C4vnmooL.es-jdkXmgTr.js"),[]),jo(()=>import("./sql-DCkt643-.es-COK4E0Yg.js"),[]),jo(()=>import("./json-71t8ZF9g.es-BQoSv7ci.js"),[]),jo(()=>import("./typescript-buWNZFwO.es-Dj6nwHGl.js"),[]),jo(()=>import("./github-light-JYsPkUQd.es-DAi9KRSo.js"),[]),jo(()=>import("./github-dark-DenFmJkN.es-DHJKELXO.js"),[])]);return e({engine:t(jo(()=>import("./wasm-DQxwEHae.es-CG6Dc4jp.js"),[])),themes:[a,i],langs:[n,r,o,{name:"malloy",scopeName:"source.malloy",embeddedLangs:["sql"],...xEe},{name:"malloysql",scopeName:"source.malloy-sql",embeddedLangs:["sql"],...SEe}]})})()),_w}async function Kx(e,t,n="light"){return(await TEe()).codeToHtml(e,{lang:t,theme:n==="dark"?CEe:EEe})}function So(e){const{server:t}=zr(),n={...e,queryKey:[...e.queryKey,t],queryFn:async()=>{try{return await e.queryFn()}catch(r){if(r&&typeof r=="object"&&"response"in r){const o=r;if(o.response?.data){const a=new Error(o.response.data.message||o.message);throw a.status=o.response.status,a.data=o.response.data,a}}throw r}},retry:!1,throwOnError:!1};return Vj(n,sD)}function ma(e){const t={...e,mutationFn:async n=>{try{return await e.mutationFn(n)}catch(r){if(r&&typeof r=="object"&&"response"in r){const o=r;if(o.response?.data){const a=new Error(o.response.data.message||o.message);throw a.status=o.response.status,a.data=o.response.data,a}}throw r}},retry:!1,throwOnError:!1};return Toe(t,sD)}const Co=e=>{const t=new URL(e),n={};if(t.protocol!=="publisher:")throw new Error(`Failed to parse resource URI: ${e}`);const r=(t.hostname+t.pathname).split("/");for(let o=0;o<r.length;o+=2){const a=r[o];a==="environments"?n.environmentName=decodeURI(r[o+1])||void 0:a==="packages"?n.packageName=decodeURI(r[o+1])||void 0:a==="connections"?n.connectionName=decodeURI(r[o+1])||void 0:a==="models"&&(n.modelPath=decodeURI(r.slice(o+1).join("/"))||void 0)}if(n.versionId=t.searchParams.get("versionId")||void 0,!n.environmentName)throw new Error(`Failed to parse resource URI: ${e}`);return n},fO=e=>{if(!e.environmentName)throw new Error(`Failed to encode resource URI, missing environment name: ${e}`);let t=`publisher://environments/${e.environmentName}`;return e.packageName&&(t+=`/packages/${e.packageName}`),e.connectionName&&(t+=`/connections/${e.connectionName}`),e.modelPath&&(t+=`/models/${e.modelPath}`),e.packageName&&e.versionId&&(t+=`?versionId=${e.versionId}`),t};function t9({sourceAndPaths:e,selectedSourceIndex:t,existingQuery:n,onQueryChange:r,onSourceChange:o,resourceUri:a}){return $t.useEffect(()=>{o&&o(t)},[t,o]),m.jsx(aD,{children:m.jsxs(sK,{spacing:2,component:"section",children:[m.jsx(kEe,{sourceAndPath:e[t],existingQuery:n,onChange:i=>{r&&r(i)},resourceUri:a}),m.jsx(SF,{height:"5px"})]})})}function sx(){return{query:void 0,malloyQuery:void 0,malloyResult:void 0}}function wEe({sourceAndPath:e,onChange:t,existingQuery:n,explorerComponents:r,QueryBuilder:o,resourceUri:a}){const[i,s]=$t.useState(n||sx()),[l,d]=$t.useState(void 0);$t.useEffect(()=>{n&&s(n)},[n]);const[c,p]=$t.useState([]),{MalloyExplorerProvider:g,QueryPanel:y,ResizableCollapsiblePanel:v,ResultPanel:S,SourcePanel:E}=r;$t.useEffect(()=>{t&&t(i)},[t,i]);const{environmentName:b,packageName:C,versionId:T}=Co(a),{apiClients:O}=zr(),R=ma({mutationFn:()=>{const _=typeof i?.malloyQuery=="string"?i.malloyQuery:new o.ASTQuery({source:e.sourceInfo,query:i?.malloyQuery}).toMalloy();return d({executionState:"running",query:i?.malloyQuery,queryResolutionStartMillis:Date.now(),onCancel:()=>{R.reset(),d(void 0)},response:{result:{}}}),s({...i,query:_}),O.models.executeQueryModel(b,C,e.modelPath,{query:_,sourceName:void 0,queryName:void 0,versionId:T})},onSuccess:_=>{if(_){const z=JSON.parse(_.data.result);s({...i,malloyResult:z}),d($=>$?{...$,executionState:"finished",response:{result:z}}:void 0)}},onError:_=>{d(void 0),console.error("Query execution error:",_)}}),[A,I]=$t.useState(e.sourceInfo.name);$t.useEffect(()=>{A!==e.sourceInfo.name&&(I(e.sourceInfo.name),s(sx()),d(void 0))},[e,A]);const F=$t.useCallback(_=>{s({...i,malloyQuery:_,malloyResult:void 0})},[i]);return A!==e.sourceInfo.name?m.jsx("div",{children:"Loading..."}):m.jsx(v$,{sx:{border:"1px solid #e0e0e0",borderRadius:"8px",overflow:"hidden"},children:m.jsx(g,{source:e.sourceInfo,query:i?.malloyQuery,topValues:[],onFocusedNestViewPathChange:p,focusedNestViewPath:c,onQueryChange:F,children:m.jsxs("div",{style:{display:"flex",height:"100%",overflowY:"auto"},children:[m.jsx(v,{isInitiallyExpanded:!0,initialWidth:180,minWidth:180,icon:"database",title:e.sourceInfo.name,children:m.jsx(E,{onRefresh:()=>s(sx())})}),m.jsx(v,{isInitiallyExpanded:!0,initialWidth:280,minWidth:280,icon:"filterSliders",title:"Query",children:m.jsx(y,{runQuery:()=>{console.log(`running query with: ${i?.malloyQuery}`);try{R.mutate()}catch(_){console.error("Error running query:",_)}}})}),m.jsx(S,{source:e.sourceInfo,draftQuery:i?.malloyQuery,setDraftQuery:_=>s({...i,malloyQuery:_}),submittedQuery:l,options:{showRawQuery:!0}})]})})},e.sourceInfo.name)}function kEe(e){const[t,n]=w.useState(null),[r,o]=w.useState(null),[a,i]=w.useState(!0);return w.useEffect(()=>{let s=!0;return Promise.all([jo(()=>import("./index-CM5d1afN.js"),__vite__mapDeps([2,3,4,5,6])),jo(()=>import("./index-DdUOWgW6.js").then(l=>l.i),__vite__mapDeps([4,3]))]).then(([l,d])=>{s&&(n(l),o(d),i(!1))}).catch(l=>{console.error("Failed to load Malloy components:",l),s&&i(!1)}),()=>{s=!1}},[]),a||!t||!r?m.jsx(Aie,{children:m.jsx(v$,{children:m.jsx(SF,{sx:{alignItems:"center",justifyContent:"center",height:"200px",color:"text.secondary"},children:"Loading explorer..."})})}):m.jsx(wEe,{...e,explorerComponents:t,QueryBuilder:r,resourceUri:e.resourceUri})}const n9=lr(m.jsx("path",{d:"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8"}));function wa({text:e,size:t=20,color:n="primary",thickness:r=3.6,centered:o=!0,spacing:a=2,textVariant:i="body2"}){const s=m.jsxs(Nt,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:a},children:[m.jsx(mb,{size:t,color:n,thickness:r}),e&&m.jsx(xt,{variant:i,color:"text.secondary",children:e})]});return o?m.jsx(Nt,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"200px",width:"100%"},children:s}):s}const AEe=new Set(["warn","error"]);function DEe(e){if(!e?.length)return;const t=[];let n=!1;for(const r of e)!r.message||!AEe.has(r.severity??"")||(r.severity==="error"&&(n=!0),t.includes(r.message)||t.push(r.message));if(t.length)return{severity:n?"error":"warn",title:t.join(`
|
|
394
394
|
`)}}const OEe=w.lazy(()=>Promise.resolve().then(()=>U5e)),REe=2e3;function $b({result:e,maxHeight:t,maxResultSize:n=0,renderLogs:r,drill:o}){const a=w.useRef(null),[i,s]=w.useState(Math.min(t,REe)),[l,d]=w.useState(!1),c=DEe(r);if(!e)return null;if(n>0&&e.length>n&&!l)return m.jsxs(Nt,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,p:4,backgroundColor:"#fafafa",border:"1px solid",borderColor:"#e0e0e0",borderRadius:1},children:[m.jsx(Qse,{sx:{fontSize:48,color:"#757575"}}),m.jsx(xt,{variant:"h6",color:"text.secondary",align:"center",children:"Processing large results may cause browser performance issues. Proceed?"}),m.jsx(ro,{variant:"contained",color:"primary",onClick:()=>d(!0),children:"Proceed"})]});const p=m.jsx(wa,{text:"Loading...",centered:!0,size:32}),g=Math.min(t,i);return m.jsxs(Nt,{ref:a,sx:{position:"relative",height:"auto",border:"0px",borderRadius:0,overflow:"hidden"},children:[e&&m.jsx(w.Suspense,{fallback:p,children:m.jsx(OEe,{result:e,height:g,onSizeChange:s,drill:o})}),c&&m.jsx(Nt,{sx:{position:"absolute",top:4,right:4,zIndex:1},children:m.jsx(Do,{title:c.title,slotProps:{tooltip:{sx:{whiteSpace:"pre-line"}}},children:m.jsx(Ar,{size:"small","aria-label":"Render tag warnings",sx:{backgroundColor:"rgba(255, 255, 255, 0.9)","&:hover":{backgroundColor:"rgba(255, 255, 255, 1)"}},children:m.jsx(n9,{fontSize:"small",color:c.severity==="error"?"error":"warning"})})})})]})}function MEe({cell:e,sourceAndPaths:t,resourceUri:n,onQueryChange:r,onSourceChange:o}){const a={query:e.value,malloyResult:e.result?JSON.parse(e.result):void 0,malloyQuery:e.queryInfo?JSON.parse(e.queryInfo):void 0},i=t.findIndex(s=>s.sourceInfo.name===e.sourceName);return m.jsx(t9,{resourceUri:n,sourceAndPaths:t,selectedSourceIndex:i>=0?i:0,existingQuery:a,onQueryChange:r,onSourceChange:o})}function PEe({cell:e,editingMalloy:t,editingMarkdown:n,sourceAndPaths:r,resourceUri:o,onCellChange:a,onClose:i,onEdit:s,onDelete:l,addButtonCallback:d}){const[c,p]=w.useState(e.value),[g,y]=$t.useState(!1),[v,S]=$t.useState(!1),[E,b]=$t.useState(),[C]=$t.useState(),[T,O]=$t.useState(sx()),[R,A]=$t.useState(!1),[I,F]=$t.useState(e.sourceName?r.findIndex(re=>re.sourceInfo.name===e.sourceName):0),{mode:_}=kb();w.useEffect(()=>{e.isMarkdown||Kx(e.value,"malloy",_).then(re=>{b(re)})},[e,_]),$t.useEffect(()=>{document.documentElement.setAttribute("data-color-mode","light")});const[z,$]=w.useState(!1),k=()=>{l(),$(!1)},H=r.length===0,L=$t.useCallback(()=>{const re=r[I],G=re?.modelPath||e.modelPath||"",le=re?.sourceInfo.name||e.sourceName||"";a({...e,value:e.isMarkdown?c:T.query,result:T.malloyResult?JSON.stringify(T.malloyResult):void 0,queryInfo:T.malloyQuery?JSON.stringify(T.malloyQuery):void 0,sourceName:le,modelPath:G})},[e,c,T,a,I,r]),V=m.jsx(Do,{title:"Delete Cell",children:m.jsx(Ar,{size:"small",onClick:()=>$(!0),children:m.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:m.jsx("path",{d:"M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2m2 0v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6h14zM10 11v6M14 11v6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})}),j=m.jsxs(ts,{open:z,onClose:()=>$(!1),children:[m.jsx(rs,{children:"Confirm Delete"}),m.jsx(ns,{children:m.jsx(xt,{children:"Are you sure you want to delete this cell?"})}),m.jsxs(Cm,{children:[m.jsx(ro,{onClick:()=>$(!1),children:"Cancel"}),m.jsx(ro,{onClick:k,color:"error",children:"Delete"})]})]}),Z=()=>{L(),i()},J=e.isMarkdown?m.jsxs(m.Fragment,{children:[n?m.jsx(Do,{title:"Save",children:m.jsx(Ar,{size:"small",onClick:Z,children:m.jsx(g1,{})})}):m.jsx(Do,{title:"Edit",children:m.jsx(Ar,{size:"small",onClick:s,children:m.jsx(W3,{})})}),!n&&V]}):m.jsxs(m.Fragment,{children:[!t&&m.jsx(Do,{title:g?"Hide Code":"View Code",children:m.jsx(Ar,{size:"small",onClick:()=>{y(!g)},children:m.jsx(MB,{})})}),!t&&e.result&&m.jsx(Do,{title:v?"Hide Embedding":"View Embedding",children:m.jsx(Ar,{size:"small",onClick:()=>{S(!v)},children:m.jsx(ND,{})})}),t&&m.jsx(Do,{title:"Save",children:m.jsx(Ar,{size:"small",onClick:Z,children:m.jsx(g1,{})})}),!t&&m.jsx(Do,{title:"Edit",children:m.jsx(Ar,{size:"small",onClick:s,children:m.jsx(W3,{})})}),!t&&V]}),oe=t||n,B=n?m.jsx(Do,{title:"Save",children:m.jsx(Ar,{size:"small",onClick:Z,children:m.jsx(g1,{})})}):t?m.jsx(Do,{title:"Save",children:m.jsx(Ar,{size:"small",onClick:Z,children:m.jsx(g1,{})})}):null,te=R&&m.jsx(Nt,{sx:{position:"absolute",top:"4px",right:"4px",display:"flex",gap:"8px",backgroundColor:"background.paper",border:"1px solid",borderColor:"divider",borderRadius:"8px",padding:"2px 4px",boxShadow:1,zIndex:10},children:!oe&&m.jsxs(m.Fragment,{children:[d(!0),d(!1),J]})||B});return m.jsxs(Rx,{sx:re=>({position:"relative",marginTop:"5px",marginBottom:"5px",borderWidth:"1.5px",backgroundColor:re.palette.background.paper,minHeight:"50px"}),onMouseEnter:()=>A(!0),onMouseLeave:()=>{A(!1)},children:[te,e.isMarkdown?m.jsx(m.Fragment,{children:n?m.jsx(e9,{value:c,preview:"edit",autoFocus:!0,onChange:re=>{p(re),a({...e,value:re})},onBlur:()=>{L(),R||Z()}}):m.jsx(Nt,{sx:{px:.5,pt:0,mt:0,"& h1, & h2, & h3, & h4, & h5, & h6":{mt:.5,mb:.5},"& p":{mt:.5,mb:.5},"& ul, & ol":{mt:.5,mb:.5},"& li":{mt:0,mb:0},"& pre, & code":{mt:.5,mb:.5},"& blockquote":{mt:.5,mb:.5}},children:e.value?m.jsx(Nt,{onClick:s,sx:{cursor:"pointer"},children:m.jsx(Mx,{children:e.value})}):m.jsxs(Nt,{onClick:s,sx:{cursor:"pointer"},children:[m.jsx(xt,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Markdown is empty"}),m.jsx(xt,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})})}):m.jsxs(m.Fragment,{children:[m.jsx(xx,{in:v,timeout:"auto",unmountOnExit:!0,children:m.jsx(_r,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:m.jsx(xt,{component:"div",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:C}})})}),m.jsx(xx,{in:g,timeout:"auto",unmountOnExit:!0,children:m.jsx(_r,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:m.jsx(xt,{component:"div",className:"content",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:E}})})}),t&&(H?m.jsxs(m.Fragment,{children:[m.jsx(xt,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"No Model Imports"}),m.jsx(xt,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Please add a model import above."})]}):m.jsx(MEe,{sourceAndPaths:r,resourceUri:o,onQueryChange:re=>{O(re)},onSourceChange:re=>{F(re)},cell:e})),!t&&e.result&&m.jsx(Rx,{variant:"outlined",sx:{borderRadius:0},children:m.jsx($b,{result:e.result,maxHeight:800})}),!t&&!e.result&&m.jsxs(Nt,{onClick:s,sx:{cursor:"pointer"},children:[m.jsx(xt,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Explore is empty"}),m.jsx(xt,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})]}),z&&j]})}const r9=w.createContext(void 0);function NEe({children:e,workbookStorage:t}){const n=w.useMemo(()=>({workbookStorage:t}),[t]);return m.jsx(r9.Provider,{value:n,children:e})}function IEe(){const e=w.useContext(r9);if(!e)throw new Error("useWorkbookStorage must be used within a WorkbookStorageProvider");return e}const yl=lr(m.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})),LEe=lr(m.jsx("path",{d:"M18 15v3H6v-3H4v3c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-3zM7 9l1.41 1.41L11 7.83V16h2V7.83l2.59 2.58L17 9l-5-5z"}));function ka({error:e,context:t}){const n=e.data?.message||"Unknown Error";return m.jsxs(m.Fragment,{children:[t&&m.jsx(xt,{variant:"body2",sx:{p:"10px",m:"auto"},children:t}),m.jsx("pre",{style:{whiteSpace:"pre-wrap",color:"red",padding:"10px",margin:"auto"},children:n})]})}function _Ee({initialSelectedModels:e,onModelChange:t,resourceUri:n}){const{environmentName:r,packageName:o,versionId:a}=Co(n),{apiClients:i}=zr(),{data:s,isLoading:l,isSuccess:d,isError:c,error:p}=So({queryKey:["models",r,o,a],queryFn:()=>i.models.listModels(r,o,a)}),[g,y]=$t.useState(e||[]),[v,S]=$t.useState(null);$t.useEffect(()=>{y(e||[])},[e]);const E=T=>{const O=g.filter(R=>R!==T);y(O),t(O)},b=T=>{const O=[...g,T];y(O),t(O),S(null)};let C=[];return d&&s?.data&&(C=s.data.filter(T=>!g.includes(T.path)).map(T=>T.path)),c?m.jsx(ka,{error:p,context:`${r} > ${o} > Model Picker`}):m.jsxs(m.Fragment,{children:[m.jsxs(wx,{fullWidth:!0,children:[l&&m.jsx(xt,{children:"Loading..."}),m.jsxs(_r,{direction:"row",spacing:1,children:[g.map(T=>m.jsx(Ff,{label:T,onDelete:()=>E(T),deleteIcon:m.jsx(yl,{}),sx:{marginBottom:"5px"}},T)),m.jsx(ro,{size:"small",startIcon:m.jsx(LEe,{}),onClick:T=>S(T.currentTarget),disabled:l||c||C.length===0,children:"Add Model"})]})]}),m.jsxs(kd,{anchorEl:v,open:!!v,onClose:()=>S(null),children:[m.jsx(xt,{variant:"subtitle2",sx:{ml:1},children:"Models"}),m.jsx(cc,{}),C.length===0?m.jsx(uc,{disabled:!0,children:"No models available"}):C.map(T=>m.jsx(uc,{onClick:()=>b(T),children:m.jsx(xt,{variant:"body2",children:T})},T))]})]})}function FEe(){const e=sS();return(t,n)=>{if(!n||!n.metaKey&&!n.ctrlKey&&!n.shiftKey&&n.button!==1){e(t);return}const r=new URL(t,window.location.href).href;(n.metaKey||n.ctrlKey||n.button===1||n.shiftKey)&&window.open(r,"_blank")}}function V3e({workbookPath:e,resourceUri:t}){const n=FEe(),{server:r,getAccessToken:o}=zr(),{apiClients:a}=zr(),{workbookStorage:i}=IEe(),{environmentName:s,packageName:l}=Co(t),[d,c]=$t.useState(void 0),[p,g]=$t.useState(void 0);if(!i)throw new Error("Workbook storage be provided via WorkbookStorageProvider");const[y,v]=$t.useState(),[S,E]=$t.useState(),[b,C]=$t.useState(),[T,O]=$t.useState([]),[R,A]=$t.useState(null),[I,F]=$t.useState(null),_=!!R,z=()=>{A(null),F(null)},$=(te,re)=>{y&&(v(y.insertCell(re,{isMarkdown:te,value:""})),te?C(re):E(re),z(),console.log("handleAddCell",te,re))},[k,H]=$t.useState(!1),L=()=>{H(!0)},V=async()=>{e&&i&&await i.deleteWorkbook(e).then(()=>{g(void 0),c(void 0)}).catch(te=>{g(`Error deleting workbook: ${te.message}`),c(void 0)}),H(!1),n(`/${s}/${l}`)},j=()=>{H(!1)},Z=$t.useCallback(async()=>{if(!y){console.log("No workbook data ref");return}try{v(await y.saveWorkbook()),g(void 0),c("Workbook saved")}catch(te){g(`Error saving workbook: ${te.message}`),c(void 0)}},[y]);if($t.useEffect(()=>{y&&(async()=>{const te=new Map(T.map(({modelPath:le,sourceInfos:se})=>[le,se])),re=[],G=[];for(const le of y.getModels())te.has(le)?re.push({modelPath:le,sourceInfos:te.get(le)}):(console.log("Fetching model from Publisher",le),G.push(a.models.getModel(s,l,le,void 0).then(se=>({modelPath:le,sourceInfos:se.data.sourceInfos.map(ne=>JSON.parse(ne))}))));if(G.length>0){const le=await Promise.all(G);O([...re,...le])}else O(re)})()},[o,y,l,s,r]),$t.useEffect(()=>{e&&sv.loadWorkbook(i,e).then(te=>{v(te)})},[e,i]),!y)return m.jsx("div",{children:"Loading..."});const J=te=>{const re=[];for(const G of te)for(const le of G.sourceInfos)re.push({modelPath:G.modelPath,sourceInfo:le});return re},oe=(te,re)=>m.jsx(ro,{size:"small",startIcon:m.jsx(om,{}),onClick:()=>$(te,re),variant:"contained",sx:{backgroundColor:G=>G.palette.background.paper,color:G=>G.palette.mode==="dark"?G.palette.grey[100]:G.palette.grey[700],boxShadow:"none","&:hover":{backgroundColor:G=>G.palette.mode==="dark"?G.palette.grey[500]:G.palette.grey[300],boxShadow:"none"}},children:te?"Markdown":"Explore"}),B=m.jsxs(Nt,{sx:{display:"flex",gap:1,justifyContent:"center",flex:2},children:[oe(!1,y.getCells().length),oe(!0,y.getCells().length)]});return m.jsxs(Rx,{variant:"outlined",children:[m.jsxs(y$,{children:[m.jsx(Nt,{sx:{mb:2},children:m.jsx(Nt,{sx:{minHeight:"24px"},children:p?m.jsx(xt,{color:"error",variant:"body2",children:p}):d?m.jsx(xt,{color:"success",variant:"body2",children:d}):m.jsx("span",{children:" "})})}),m.jsxs(fh,{sx:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},children:[m.jsxs(fh,{direction:"row",spacing:1,alignItems:"center",children:[m.jsx(xt,{variant:"overline",sx:{fontSize:"13px",fontWeight:"bold",verticalAlign:"middle"},children:"Workbook"}),m.jsx(xt,{variant:"subtitle2",sx:{fontSize:"13px",fontWeight:"normal",verticalAlign:"middle",ml:1},children:`${e.workspace} > ${e.path}`})]}),m.jsxs(fh,{sx:{display:"flex",flexDirection:"row",gap:1},children:[m.jsx(Nt,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:m.jsx(jEe,{workbookData:y})}),m.jsxs(Nt,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:[m.jsx(ro,{color:"error",onClick:L,size:"small",children:"Delete"}),m.jsxs(ts,{open:k,onClose:j,children:[m.jsx(rs,{children:"Delete Workbook"}),m.jsx(ns,{children:m.jsxs(LS,{children:['Are you sure you want to delete the workbook "',e.path,'"? This action cannot be undone.']})}),m.jsxs(Cm,{children:[m.jsx(ro,{onClick:j,color:"primary",size:"small",children:"Cancel"}),m.jsx(ro,{onClick:V,color:"error",autoFocus:!0,size:"small",children:"Delete"})]})]})]})]})]}),m.jsx(cc,{}),m.jsxs(fh,{sx:{display:"flex",flexDirection:"row",width:"100%",mt:2},children:[m.jsx(Nt,{sx:{flex:1},children:m.jsx(_Ee,{initialSelectedModels:y.getModels(),onModelChange:te=>{v(y.setModels(te)),Z()},resourceUri:t})}),m.jsx(Nt,{sx:{flex:1}})]})]}),m.jsx(aD,{children:m.jsxs(fh,{children:[y.getCells().length===0&&m.jsxs(m.Fragment,{children:[m.jsx(xt,{sx:{textAlign:"center",p:2,variant:"subtitle2",fontWeight:"medium"},children:"Workbook is empty"}),m.jsx(xt,{variant:"body2",sx:{textAlign:"center",mb:2,variant:"body2"},children:"Click the + buttons to add a markdown or code cell."})]}),y.getCells().map((te,re)=>m.jsx($t.Fragment,{children:m.jsx(PEe,{cell:te,resourceUri:t,addButtonCallback:G=>oe(G,re),sourceAndPaths:J(T),editingMarkdown:b===re,editingMalloy:S===re,onDelete:()=>{v(y.deleteCell(re)),Z()},onCellChange:G=>{v(y.setCell(re,G))},onEdit:()=>{te.isMarkdown?C(re):E(re)},onClose:()=>{te.isMarkdown?C(void 0):E(void 0),Z()}},`${re}-${te.isMarkdown}-${e.workspace}-${e.path}`)},`${re}-${y.getCells().length}`)),B,m.jsxs(kd,{anchorEl:R,open:_,onClose:z,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[m.jsx(uc,{onClick:()=>$(!0,I??0),children:"Add Markdown"}),m.jsx(uc,{onClick:()=>$(!1,I??0),children:"Add Malloy"})]}),m.jsx(fh,{sx:{flexDirection:"row",justifyContent:"flex-end",p:1}})]})})]})}function jEe({workbookData:e}){const[t,n]=$t.useState(!1);return m.jsx(ro,{color:"primary",onClick:async()=>{if(!e)return;const r=e.toMalloyWorkbook();try{await navigator.clipboard.writeText(r),n(!0),setTimeout(()=>n(!1),1500)}catch{n(!1),alert("Failed to copy to clipboard")}},size:"small",children:t?"Copied!":"Export"})}const w_="Local";class $Ee{async listWorkspaces(t){return Promise.resolve([{name:w_,description:"Stored locally- only accessible to this browser",writeable:!0}])}async listWorkbooks(t){const n=[];for(let r=0;r<localStorage.length;r++){const o=localStorage.key(r);n.push({path:o,workspace:w_})}return n}async getWorkbook(t){const n=localStorage.getItem(t.path);if(n===null)throw new Error(`Notebook not found at path: ${t}`);return n}async deleteWorkbook(t){if(localStorage.getItem(t.path)===null)throw new Error(`Notebook not found at path: ${t}`);localStorage.removeItem(t.path)}async saveWorkbook(t,n){localStorage.setItem(t.path,n)}async moveWorkbook(t,n){const r=localStorage.getItem(t.path);if(r===null)throw new Error(`Notebook not found at path: ${t.path}`);localStorage.setItem(n.path,r),localStorage.removeItem(t.path)}}function vf(e){return(e??"").startsWith("filter<")}function vv(e){const t=/^filter<(.+)>$/.exec(e??"");return t?t[1]:void 0}function pO(e){const t=e.filter(n=>n.trim()!=="");return t.length===0?"":Am.StringFilterExpression.unparse({operator:"=",values:[...t]})}function BEe(e){if(e.trim()==="")return[];const{parsed:t}=Am.StringFilterExpression.parse(e);return o9(t)?t.values:[e]}function zEe(e){return e===void 0||e.trim()===""?!0:o9(Am.StringFilterExpression.parse(e).parsed)}function o9(e){return e!==null&&Am.isStringCondition(e)&&e.operator==="="&&e.not!==!0}function HEe(e){return Am.NumberFilterExpression.unparse({operator:">=",values:[String(e)]})}function k_(e){const t=e.trim();if(t==="")return;const{parsed:n}=Am.NumberFilterExpression.parse(t);if(n===null||n.operator!==">="||n.not===!0||n.values?.length!==1)return;const r=Number(n.values[0]);return Number.isFinite(r)?r:void 0}function UEe(e,t){if(e!=null){if(e instanceof Date)return s9(e,t);if(!Array.isArray(e))return String(e)}}function VEe(e,t){return new Date(Date.UTC(e.year(),e.month(),e.date(),t?.getUTCHours()??0,t?.getUTCMinutes()??0,t?.getUTCSeconds()??0,t?.getUTCMilliseconds()??0))}const WEe=/^(\d{4})-(\d{1,2})-(\d{1,2})(?:[T\s]+(\d{1,2}):(\d{2})(?::(\d{2}))?(?:\.(\d{1,9}))?)?\s*(Z|[+-]\d{2}:?\d{2}|[+-]\d{2}|UTC|GMT)?$/i;function a9(e){const t=e.trim();return t===""?e:t.replace(/^(\d{4}-\d{1,2}-\d{1,2}[T\s]+\d{1,2}:\d{2}(?::\d{2})?(?:\.\d{1,9})?)\s+(\d{2}:?\d{2}|\d{2})$/,"$1+$2")}function qEe(e,t=!1){const n=a9(e);if(n==="")return;const r=WEe.exec(n);if(!r)return;const[,o,a,i,s,l,d,c,p]=r,g={year:Number(o),month:Number(a),day:Number(i),hour:Number(s??0),minute:Number(l??0),second:Number(d??0),milli:Number((c??"").slice(0,3).padEnd(3,"0")||0)},y=Date.UTC(g.year,g.month-1,g.day,g.hour,g.minute,g.second,g.milli),v=new Date(y);if(!(v.getUTCFullYear()===g.year&&v.getUTCMonth()===g.month-1&&v.getUTCDate()===g.day&&v.getUTCHours()===g.hour&&v.getUTCMinutes()===g.minute&&v.getUTCSeconds()===g.second)||p!==void 0&&s===void 0)return;const S=GEe(p);if(S===void 0)return;const E=new Date(y-S*6e4);if(!(t&&p!==void 0&&E.getUTCDate()!==g.day))return E}function GEe(e){if(e===void 0)return 0;const t=e.toUpperCase();if(t==="Z"||t==="UTC"||t==="GMT")return 0;const n=/^([+-])(\d{2}):?(\d{2})?$/.exec(t);if(!n)return;const r=Number(n[3]??0);if(r>59)return;const o=Number(n[2])*60+r,a=n[1]!=="-";if(!(o>(a?840:720)))return a?o:-o}function YEe(e){return!KEe.has(e??"")}const KEe=new Set(["boolean","number","date","timestamp","timestamptz"]);function i9(e,t){if(t===""&&!YEe(e))return null;if(vf(e))return t;switch(e){case"number":{const n=t.trim()===""?NaN:Number(t);return Number.isFinite(n)?n:t}case"boolean":return t==="true"?!0:t==="false"?!1:t;case"date":case"timestamp":case"timestamptz":{const n=a9(t);return qEe(n,e==="date")??n}default:return t}}function QEe(e,t){const n={};for(const[r,o]of e){const a=UEe(o,t.get(r));a!==void 0&&(n[r]=a)}return n}function s9(e,t){const n=e.toISOString();switch(t){case"timestamptz":return n;case"timestamp":return n.slice(0,-1);default:return n.slice(0,10)}}function l9(e,t,n){const r=n?new Set(n):void 0,o={};for(const[a,i]of e)r&&!r.has(a)||i!=null&&(Array.isArray(i)||(o[a]=i instanceof Date?s9(i,t.get(a)):i));return o}function A_(e,t){const n=new Map;for(const[r,o]of Object.entries(e))t.has(r)&&n.set(r,i9(t.get(r),o));return n}function D_(e,t){const n=Array.from(e.keys()).filter(o=>!t.has(o));if(n.length===0)return e;const r=new Map(e);for(const o of n)r.delete(o);return r}function O_(e){return Object.entries(e??{}).sort(([t],[n])=>t<n?-1:1)}function XEe(e,t){const n=Object.keys(e);return n.length!==Object.keys(t).length?!1:n.every(r=>e[r]===t[r])}function c9({declaredTypes:e,startingValues:t,params:n,onParamsChange:r,documentKey:o,autorun:a}){const i=w.useMemo(()=>A_(t??{},e),[e,JSON.stringify(t)]),s=w.useMemo(()=>A_({...t??{},...n??{}},e),[e,JSON.stringify(t),JSON.stringify(n)]),l=w.useMemo(()=>JSON.stringify([o??null,O_(t),O_(n)]),[o,JSON.stringify(t),JSON.stringify(n)]),[d,c]=w.useState(null),p=d?.key===l?d:null;w.useEffect(()=>{d!==null&&d.key!==l&&c(null)},[d,l]);const g=w.useMemo(()=>D_(p?.draft??s,e),[p,s,e]),y=w.useMemo(()=>D_(p?.applied??s,e),[p,s,e]),v=w.useCallback(R=>R?.key===l?R:{key:l,draft:s,applied:s},[l,s]),S=w.useMemo(()=>QEe(y,e),[y,e]),E=w.useRef(S);w.useEffect(()=>{r&&(XEe(E.current,S)||(E.current=S,r(S)))},[S,r]);const b=w.useCallback((R,A)=>{c(I=>{const F=v(I),_=new Map(F.draft);return A===null?_.delete(R):_.set(R,A),{key:F.key,draft:_,applied:a?_:F.applied}})},[a,v]),C=w.useCallback(()=>{c(R=>({key:v(R).key,draft:i,applied:i}))},[v,i]),T=w.useCallback(()=>{c(R=>{const A=v(R);return{key:A.key,draft:A.draft,applied:A.draft}})},[v]),O=w.useMemo(()=>{if(a)return!1;if(g.size!==y.size)return!0;for(const[R,A]of g){const I=y.get(R);if(A instanceof Date&&I instanceof Date){if(A.getTime()!==I.getTime())return!0}else if(Array.isArray(A)&&Array.isArray(I)){if(String(A)!==String(I))return!0}else if(A!==I)return!0}return!1},[a,g,y]);return{draft:g,applied:y,setGiven:b,reset:C,apply:T,pending:O}}const ZEe=1e3;function u9(e){const t=e.split(".");return t[t.length-1]}function JEe(e,t){return`run: ${e} -> {
|
|
395
395
|
group_by: ${t}
|
|
396
396
|
order_by: ${u9(t)} asc
|
|
@@ -510,12 +510,12 @@ import {${t.sourceName}}" from '${t.modelPath}'"
|
|
|
510
510
|
`):void 0}function JMe({given:e,value:t,onChange:n,options:r,optionsLoading:o,optionsFailed:a}){const i=e.label??e.name??"",s=e.type??"string",l=ZMe(e),d=KMe(s,e.default),c=d!==void 0?`Default: ${d===""?"(empty)":d}`:void 0,p=l||c?m.jsxs(m.Fragment,{children:[l,l&&c?m.jsx("br",{}):null,c]}):void 0,g=s==="string"||vv(s)==="string",y=!vf(s)||typeof t!="string"||zEe(t),v=L=>m.jsx(Zc,{label:i,value:String(t),error:!0,inputProps:{readOnly:!0},helperText:m.jsxs(m.Fragment,{children:[`Not a ${L}. Clear it to pick one.`,p?m.jsx("br",{}):null,p]}),slotProps:{input:{endAdornment:m.jsx(Uw,{onClear:()=>n(null)})}},fullWidth:!0,size:"small"}),S=vf(s),E=e.control==="multiselect"&&S,b=vf(s),C=e.control==="select"||e.control==="multiselect",T=C?b?typeof t=="string"?BEe(t):[]:typeof t=="string"&&t!==""?[t]:[]:[];if(C&&g&&y&&!(!E&&T.length>1)){const L=V=>{const j=b?pO(V):void 0;if(V.length===0||j===""){n(null);return}n(b?j:V[0])};return m.jsx(QZ,{multiple:E,disableCloseOnSelect:E,freeSolo:!0,forcePopupIcon:!0,autoSelect:!0,options:r??[],loading:o,noOptionsText:a?"Options unavailable":"No matching values",value:E?T:T[0]??null,onChange:(V,j)=>L(j===null?[]:Array.isArray(j)?j:[j]),renderInput:V=>m.jsx(Zc,{...V,label:i,size:"small",placeholder:T.length!==0?void 0:t===""?"All":d??"All",error:a,helperText:a?m.jsxs(m.Fragment,{children:["Could not load the options for this control. Type a value to filter anyway.",p?m.jsx("br",{}):null,p]}):p,slotProps:{input:{...V.InputProps,endAdornment:m.jsxs(m.Fragment,{children:[o&&m.jsx(mb,{size:16}),V.InputProps.endAdornment]})}}}),fullWidth:!0})}const O=vf(s)&&vv(s)==="number",{rangeMin:R,rangeMax:A}=e,I=!O||t===void 0||t===null||t===""||typeof t=="string"&&k_(t)!==void 0;if((O||s==="number")&&R!==void 0&&A!==void 0&&I){const L=O?typeof t=="string"?k_(t):void 0:typeof t=="number"?t:void 0;if(L===void 0&&t!==void 0&&t!==null&&t!=="")return v("number");const V=L??R,j=O&&t==="",Z=L!==void 0||j;return m.jsxs(wx,{fullWidth:!0,children:[m.jsxs(Nt,{sx:{height:XMe,px:`${j4}px`,display:"flex",flexDirection:"column",justifyContent:"center"},children:[m.jsxs(_r,{direction:"row",alignItems:"center",spacing:1,children:[m.jsx(xt,{variant:"body2",color:"text.secondary",noWrap:!0,children:i}),m.jsx(xt,{variant:"body2",sx:{fontWeight:600},children:Z?j?"Any":O?`≥ ${V}`:String(V):O?"Any":d??"Unset"}),Z&&m.jsx(Ar,{size:"small","aria-label":"clear value",onClick:()=>n(null),sx:{p:0},children:m.jsx(k2,{fontSize:"small"})})]}),m.jsx(qne,{size:"small",min:R,max:A,value:V,valueLabelDisplay:"auto","aria-label":i,sx:{py:0,mt:.5},onChange:(J,oe)=>{const B=Array.isArray(oe)?oe[0]:oe;if(O&&B<=R){n(null);return}n(O?HEe(B):B)}})]}),p&&m.jsx(Sk,{sx:{mx:`${j4}px`},children:p})]})}const F=vf(s)?vv(s):void 0,_=F==="date"||F==="timestamp"||F==="timestamptz",z=typeof t=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(t),$=t==null||z;if(_&&$){const L=z?Fo.utc(t):null;return m.jsx(L2,{dateAdapter:$_,children:m.jsx(_4,{label:i,value:L?.isValid()?L:null,onChange:V=>n(V?V.format("YYYY-MM-DD"):null),slotProps:{textField:{fullWidth:!0,size:"small",helperText:p},field:{clearable:!0,onClear:()=>n(null)}}})})}if(s==="boolean"){const L=typeof t=="boolean";if(!L&&t!==void 0&&t!==null)return v("true or false");const V=e.default?.trim()==="true";return m.jsxs(wx,{children:[m.jsxs(_r,{direction:"row",alignItems:"center",children:[m.jsx(_h,{control:m.jsx(bk,{checked:L?t:V,onChange:j=>n(j.target.checked)}),label:i}),L&&m.jsx(Ar,{size:"small","aria-label":"clear value",onClick:()=>n(null),edge:"end",children:m.jsx(k2,{fontSize:"small"})})]}),p&&m.jsx(Sk,{children:p})]})}if(s==="number"){const L=typeof t=="number"?t:"",V=t!=null;return V&&t!==""&&typeof t!="number"?v("number"):m.jsx(Zc,{label:i,type:"number",value:L,onChange:j=>{const Z=j.target.value;n(Z===""?null:Number(Z))},placeholder:d,helperText:p,slotProps:{input:{endAdornment:V&&m.jsx(Uw,{onClear:()=>n(null)})}},fullWidth:!0,size:"small"})}if(s==="date"||s==="timestamp"||s==="timestamptz"){const L=t instanceof Date?t:typeof t=="string"?(j=>j instanceof Date?j:null)(i9(s,t)):null,V=L?Fo.utc(L):null;return t!=null&&t!==""&&L===null?v("date"):m.jsx(L2,{dateAdapter:$_,children:m.jsx(_4,{label:i,value:V,onChange:j=>n(j?VEe(j,L??void 0):null),slotProps:{textField:{fullWidth:!0,size:"small",helperText:p},field:{clearable:!0,onClear:()=>n(null)}}})})}const k=typeof t=="string"?t:"",H=t!=null;return m.jsx(Zc,{label:i,value:k,onChange:L=>n(L.target.value),placeholder:H?void 0:d??(s.startsWith("filter<")?s:void 0),helperText:p,slotProps:{input:{endAdornment:H&&m.jsx(Uw,{onClear:()=>n(null)})}},fullWidth:!0,size:"small"})}function Uw({onClear:e}){return m.jsx(ste,{position:"end",children:m.jsx(Ar,{size:"small","aria-label":"clear value",onClick:e,edge:"end",children:m.jsx(k2,{fontSize:"small"})})})}function jz({givens:e,values:t,onChange:n,onReset:r,layout:o="panel",options:a,optionsLoading:i,optionsFailed:s,apply:l,title:d}){if(e.length===0)return null;const c=Array.from(t.values()).some(y=>y!==null),p=e.map(y=>m.jsx(Nt,{sx:o==="bar"?{minWidth:200,flex:"1 1 200px",maxWidth:320}:void 0,children:m.jsx(JMe,{given:y,value:y.name?t.get(y.name):void 0,onChange:v=>y.name&&n(y.name,v),options:y.name?a?.get(y.name):void 0,optionsLoading:i,optionsFailed:y.name?s?.has(y.name):void 0})},y.name)),g=m.jsxs(_r,{direction:"row",alignItems:"center",spacing:1,children:[l&&m.jsx(ro,{variant:"contained",size:"small",disableElevation:!0,onClick:l.onApply,disabled:!l.pending,sx:{textTransform:"none"},children:"Apply"}),c&&m.jsx(ro,{variant:"text",size:"small",onClick:r,sx:{textTransform:"none"},children:"Reset"})]});return o==="bar"?m.jsx(Si,{elevation:0,sx:{p:2,border:1,borderColor:"divider",borderRadius:1,backgroundColor:"background.paper"},children:m.jsxs(_r,{direction:"row",alignItems:"flex-start",spacing:2,useFlexGap:!0,sx:{flexWrap:"wrap"},children:[p,m.jsx(Nt,{sx:{flex:"0 0 auto",ml:"auto",pt:.5},children:g})]})}):m.jsxs(Si,{elevation:0,sx:{p:3,backgroundColor:"transparent",border:"none",boxShadow:"none"},children:[m.jsxs(_r,{direction:"row",alignItems:"center",justifyContent:"space-between",sx:{mb:2},children:[m.jsx(xt,{variant:"subtitle2",sx:{fontWeight:600,color:"#333"},children:d??"Parameters"}),g]}),m.jsx(Nt,{sx:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))",alignItems:"start",columnGap:3,rowGap:2.5},children:p})]})}function ePe(e){const t=e.split("->").at(-1)?.trim()??e;return/^[A-Za-z_][\w-]*$/.test(t)?p9(t):e}function $4({environmentName:e,packageName:t,modelPath:n,queryName:r,tile:o,givens:a,declaredTypes:i,givenNames:s,height:l,maxResultSize:d,drill:c}){const{apiClients:p}=zr(),g=l9(a,i,s),{data:y,isSuccess:v,isError:S,error:E}=So({queryKey:["dashboardTile",e,t,n,r,o,JSON.stringify(g)],queryFn:()=>p.models.executeQueryModel(e,t,n,{queryName:r,query:o!==void 0?`run: ${o}`:void 0,givens:g}),...S$});return m.jsxs(Si,{elevation:0,sx:{border:1,borderColor:"divider",borderRadius:1,overflow:"hidden",minHeight:120},children:[o!==void 0&&m.jsx(Nt,{sx:{px:2.5,pt:2},children:m.jsx(xt,{variant:"subtitle2",sx:{fontWeight:500,color:"text.secondary"},title:o,children:ePe(o)})}),!v&&!S&&m.jsx(wa,{text:"Running…"}),v&&m.jsx($b,{result:y.data.result,maxHeight:l,maxResultSize:d,renderLogs:y.data.renderLogs,drill:c}),S&&m.jsx(Nt,{sx:{p:2},children:m.jsx(ka,{context:o??r??n,error:E})})]})}const tPe=400,nPe=2e4;function W3e({resourceUri:e,dashboard:t,givens:n,onGivensChange:r,onNavigate:o,height:a,maxResultSize:i}){const s=Co(e),{apiClients:l}=zr(),d=s.environmentName??"",c=s.packageName??"",p=!!s.environmentName&&!!s.packageName,{data:g,isSuccess:y,isError:v,error:S}=So({queryKey:["dashboard",d,c,t],queryFn:()=>l.dashboards.getDashboard(d,c,t),enabled:p}),E=g?.data,b=w.useMemo(()=>E?.givens??[],[E]),C=w.useMemo(()=>new Map(b.filter(te=>te.name!==void 0).map(te=>[te.name,te.type])),[b]),T=w.useCallback(te=>{y&&r?.(te,Array.from(C.keys()))},[y,r,C]),{draft:O,applied:R,setGiven:A,reset:I,apply:F,pending:_}=c9({declaredTypes:C,startingValues:E?.startingGivens,params:n,onParamsChange:y?T:void 0,documentKey:`${d}/${c}/${t}`,autorun:E?.autorun!==!1}),{options:z,isLoading:$,failed:k}=d9(d,c,E?.path,b),H=w.useMemo(()=>{const te=new Map;for(const re of C.keys())te.has(re.toLowerCase())||te.set(re.toLowerCase(),re);return te},[C]),L=w.useCallback(te=>C.has(te)?te:H.get(te.toLowerCase()),[C,H]),V=w.useCallback(te=>L(te)!==void 0,[L]),j=w.useCallback((te,re)=>{const G=L(te);if(G===void 0)return;const le=C.get(G),se=m9(re,le);if(se===void 0){console.warn(`Drill declined: ${JSON.stringify(re)} cannot be a value for given "${G}"`+(le?` of type ${le}`:""));return}A(G,se)},[C,L,A]),{drill:Z,drillMenu:J}=g9({onNavigate:o,onSelf:j,canSelf:V,selfLabel:"Filter this dashboard"});if(!p)return m.jsxs($y,{severity:"error",children:["A dashboard resource URI must name an environment and a package. Received: ",e]});if(v)return m.jsx(ka,{context:`${d} > ${c} > ${t}`,error:S});if(!y||!E)return m.jsx(wa,{text:"Loading dashboard…"});if(E.error)return m.jsxs(_r,{spacing:2,children:[m.jsx(B4,{manifest:E}),m.jsx($y,{severity:"error",children:E.error})]});const oe=E.path,B=E.tiles??[];return m.jsxs(_r,{spacing:2,children:[m.jsx(B4,{manifest:E}),m.jsx(jz,{givens:b,values:O,onChange:A,onReset:I,layout:"bar",options:z,optionsLoading:$,optionsFailed:k,apply:E.autorun===!1?{onApply:F,pending:_}:void 0}),oe===void 0?m.jsx($y,{severity:"error",children:"This dashboard has no model path, so there is nothing to run."}):E.query!==void 0?m.jsx($4,{environmentName:d,packageName:c,modelPath:oe,queryName:E.query,givens:R,declaredTypes:C,height:a??nPe,maxResultSize:i,drill:Z}):B.length>0?m.jsx(Nt,{sx:{display:"grid",gridTemplateColumns:{xs:"1fr",md:`repeat(${E.dashboardColumns??2}, minmax(0, 1fr))`},gap:2},children:B.map((te,re)=>m.jsx($4,{environmentName:d,packageName:c,modelPath:oe,tile:te.query,givens:R,declaredTypes:C,givenNames:te.givenNames,height:a??tPe,maxResultSize:i,drill:Z},`${re}:${te.query}`))}):m.jsx($y,{severity:"warning",children:"This dashboard names neither a query nor any tiles."}),J]})}function B4({manifest:e}){return m.jsxs(Nt,{children:[m.jsx(xt,{variant:"h5",sx:{fontWeight:600},children:e.title??e.name}),e.description&&m.jsx(xt,{variant:"body2",color:"text.secondary",children:e.description})]})}const $z=lr(m.jsx("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3z"})),rPe="publisher:resize";function oPe(e){return typeof e=="object"&&e!==null&&e.type===rPe&&typeof e.height=="number"}function HO(e){return e.replace(/\/api\/v0\/?$/,"")}function aPe({server:e,environmentName:t,packageName:n,path:r}){const o=r.startsWith("public/")?r.slice(7):r;return`${HO(e)}/environments/${encodeURIComponent(t)}/packages/${encodeURIComponent(n)}/`+o}function iPe(e){try{const{environmentName:t,packageName:n,modelPath:r}=Co(e);return!t||!n||!r?null:{environmentName:t,packageName:n,dataAppPath:r}}catch{return null}}function q3e({resourceUri:e}){const{server:t,apiClients:n}=zr(),r=iPe(e),o=r?.environmentName??"",a=r?.packageName??"",i=r?.dataAppPath??"",s=w.useMemo(()=>aPe({server:t,environmentName:o,packageName:a,path:i}),[t,o,a,i]),l=So({queryKey:["data-apps",o,a],queryFn:()=>n.dataApps.listDataApps(o,a),enabled:!!r}).data?.data?.find(v=>v.path===i),d=l?.title??i,c=l?.fit==="viewport",p=w.useRef(null),[g,y]=w.useState(120);return w.useEffect(()=>{if(c)return;function v(S){oPe(S.data)&&S.source===p.current?.contentWindow&&S.data.height>0&&y(Math.ceil(S.data.height))}return window.addEventListener("message",v),()=>window.removeEventListener("message",v)},[c]),r?m.jsxs(Nt,{sx:{p:3,...c?{height:"100%",display:"flex",flexDirection:"column"}:{maxWidth:1200,mx:"auto"}},children:[m.jsxs(_r,{direction:"row",alignItems:"baseline",spacing:1,sx:{mb:1,flexShrink:0},children:[m.jsx(xt,{variant:"h6",sx:{fontWeight:600,letterSpacing:"-0.025em"},children:d}),m.jsx(xt,{variant:"caption",color:"text.secondary",sx:{fontFamily:Yi},children:i}),m.jsx(Nt,{sx:{flex:1}}),m.jsx(Do,{title:"Open standalone in new tab",children:m.jsx(Ar,{size:"small",href:s,target:"_blank",rel:"noopener noreferrer","aria-label":"Open standalone in new tab",sx:{color:"text.secondary"},children:m.jsx($z,{fontSize:"small"})})})]}),m.jsx(Nt,{sx:{border:"1px solid",borderColor:"divider",borderRadius:1.5,overflow:"hidden",backgroundColor:"background.paper",...c?{flex:1,minHeight:0}:{}},children:m.jsx("iframe",{ref:p,src:s,title:d,sandbox:"allow-scripts allow-same-origin allow-forms",style:{display:"block",width:"100%",height:c?"100%":g,border:0}})})]}):m.jsxs(Nt,{sx:{p:3,maxWidth:1200,mx:"auto"},children:[m.jsx(xt,{variant:"h6",sx:{fontWeight:600},children:"Can't open data app"}),m.jsxs(xt,{variant:"body2",color:"text.secondary",sx:{mt:1},children:["This data app link is missing an environment, package, or path:",m.jsx(Nt,{component:"span",sx:{fontFamily:Yi,ml:1},children:e})]})]})}const Bz=lr(m.jsx("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z"}));function sPe({onSubmit:e,isSubmitting:t,disabled:n,disabledReason:r}){const[o,a]=w.useState(!1),[i,s]=w.useState(!1),l=()=>a(!1),d=async()=>{try{await e({forceRefresh:i}),a(!1)}catch{}},c=m.jsx("span",{children:m.jsx(ro,{variant:"contained",startIcon:m.jsx(om,{}),onClick:()=>a(!0),disabled:n,"aria-label":"New materialization",children:"New materialization"})});return m.jsxs(m.Fragment,{children:[n&&r?m.jsx(Do,{title:r,children:c}):c,m.jsxs(ts,{open:o,onClose:l,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"create-materialization-title",children:[m.jsx(rs,{id:"create-materialization-title",children:"New materialization"}),m.jsxs(ns,{children:[m.jsx(LS,{sx:{mb:2},children:"Materialize every persist source in this package: compile, build the tables, and load them so queries serve from the materialized tables."}),m.jsx(mj,{children:m.jsx(_h,{control:m.jsx(KA,{checked:i,onChange:p=>s(p.target.checked)}),label:"Force refresh (rebuild even if unchanged)"})})]}),m.jsxs(Cm,{children:[m.jsx(ro,{onClick:l,children:"Cancel"}),m.jsx(ro,{variant:"contained",loading:t,onClick:d,children:"Materialize"})]})]})]})}function q2({children:e}){return m.jsx(xt,{variant:"caption",component:"h6",sx:{display:"block",textTransform:"uppercase",letterSpacing:"0.06em",fontWeight:600,color:"text.secondary",mb:1},children:e})}function rb(e){return e===Ya.Pending||e===Ya.ManifestRowsReady}function lPe(e){return e===Ya.ManifestFileReady||e===Ya.Failed||e===Ya.Cancelled}function zz(e){switch(e){case Ya.ManifestFileReady:return"Done";case Ya.Failed:return"Failed";case Ya.Cancelled:return"Cancelled";case Ya.Pending:case Ya.ManifestRowsReady:return"Pending";default:return"Unknown"}}function Hz(e){switch(e){case Ya.ManifestRowsReady:return"info";case Ya.ManifestFileReady:return"success";case Ya.Failed:return"error";case Ya.Cancelled:return"warning";case Ya.Pending:default:return"default"}}function Uz(e){return e.metadata??{}}function cPe(e){return e.trigger==="SCHEDULER"?"Scheduled":"Manual"}function Vz(e,t){if(!e)return"-";const n=new Date(e).getTime(),r=t?new Date(t).getTime():Date.now(),o=Math.max(0,r-n);if(o<1e3)return`${o}ms`;const a=Math.round(o/1e3);if(a<60)return`${a}s`;const i=Math.floor(a/60),s=a%60;if(i<60)return`${i}m ${s}s`;const l=Math.floor(i/60),d=i%60;return`${l}h ${d}m`}function G2(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?"—":t.toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function uPe(e){if(!e)return"-";const t=new Date(e).getTime(),n=Math.round((Date.now()-t)/1e3);if(n<60)return"just now";const r=Math.floor(n/60);if(r<60)return`${r}m ago`;const o=Math.floor(r/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}function dPe({entries:e,builtAt:t}){const n=Object.entries(e??{});return m.jsxs(Nt,{children:[m.jsxs(_r,{direction:"row",alignItems:"baseline",justifyContent:"space-between",children:[m.jsx(q2,{children:"Build manifest"}),t&&m.jsxs(xt,{variant:"caption",color:"text.secondary",children:["Built ",G2(t)]})]}),n.length===0?m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{fontStyle:"italic"},children:"No materialized tables yet."}):m.jsxs(bb,{size:"small",children:[m.jsx(Sb,{children:m.jsxs(dc,{children:[m.jsx(rr,{children:"Source"}),m.jsx(rr,{children:"Table name"}),m.jsx(rr,{children:"Connection"}),m.jsx(rr,{children:"Realization"}),m.jsx(rr,{align:"right",children:"Rows"})]})}),m.jsx(xb,{children:n.map(([r,o])=>m.jsxs(dc,{children:[m.jsx(rr,{sx:{fontFamily:Yi},children:o.sourceName??r}),m.jsx(rr,{sx:{fontFamily:Yi},children:o.physicalTableName??"-"}),m.jsx(rr,{sx:{fontFamily:Yi},children:o.connectionName??"-"}),m.jsx(rr,{children:o.realization??"-"}),m.jsx(rr,{align:"right",children:o.rowCount??"-"})]},r))})]})]})}const tS=lr([m.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"},"0"),m.jsx("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"},"1")]),fPe=lr(m.jsx("path",{d:"M9 11.24V7.5C9 6.12 10.12 5 11.5 5S14 6.12 14 7.5v3.74c1.21-.81 2-2.18 2-3.74C16 5.01 13.99 3 11.5 3S7 5.01 7 7.5c0 1.56.79 2.93 2 3.74m9.84 4.63-4.54-2.26c-.17-.07-.35-.11-.54-.11H13v-6c0-.83-.67-1.5-1.5-1.5S10 6.67 10 7.5v10.74c-3.6-.76-3.54-.75-3.67-.75-.31 0-.59.13-.79.33l-.79.8 4.94 4.94c.27.27.65.44 1.06.44h6.79c.75 0 1.33-.55 1.44-1.28l.75-5.27c.01-.07.02-.14.02-.2 0-.62-.38-1.16-.91-1.38"}));function Wz({meta:e}){const t=e.trigger==="SCHEDULER";return m.jsx(Do,{title:t?"Fired by the materialization schedule":"Triggered manually",children:m.jsx(Ff,{size:"small",variant:"outlined",color:t?"info":"default",icon:t?m.jsx(tS,{fontSize:"small"}):m.jsx(fPe,{fontSize:"small"}),label:cPe(e)})})}function qz({materialization:e,buildPlan:t,showBuildPlan:n=!0,onClose:r}){const o=e?Uz(e):{},a=Object.values(t?.sources??{});return m.jsx(ts,{open:e!==null,onClose:r,maxWidth:"md",fullWidth:!0,"aria-labelledby":"materialization-detail-title",children:e&&m.jsxs(m.Fragment,{children:[m.jsxs(rs,{sx:{pr:6,pb:1.5},id:"materialization-detail-title",children:[m.jsxs(_r,{direction:"row",alignItems:"center",spacing:1,sx:{mb:.75},children:[m.jsx(Ff,{size:"small",label:zz(e.status),color:Hz(e.status),variant:rb(e.status)?"filled":"outlined"}),m.jsx(Wz,{meta:o})]}),m.jsx(xt,{variant:"subtitle1",sx:{fontWeight:600},children:e.packageName??"Materialization"}),m.jsx(xt,{variant:"caption",color:"text.secondary",sx:{fontFamily:Yi,wordBreak:"break-all"},children:e.id}),m.jsx(Ar,{"aria-label":"close",onClick:r,sx:{position:"absolute",right:8,top:8},children:m.jsx(yl,{fontSize:"small"})})]}),m.jsxs(ns,{dividers:!0,children:[m.jsxs(Nt,{sx:{bgcolor:"action.hover",borderRadius:2,p:2,mb:3,display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(140px, 1fr))",gap:2},children:[m.jsx(wy,{label:"Started",value:G2(e.startedAt??e.createdAt)}),m.jsx(wy,{label:"Completed",value:G2(e.completedAt)}),m.jsx(wy,{label:"Duration",value:Vz(e.startedAt,e.completedAt)}),m.jsx(wy,{label:"Sources",value:`${o.sourcesBuilt??0} built · ${o.sourcesReused??0} reused`}),m.jsx(wy,{label:"Force refresh",value:o.forceRefresh?"Yes":"No"})]}),e.error&&m.jsxs(Nt,{sx:{borderRadius:2,p:2,mb:3,border:"1px solid",borderColor:"error.main"},children:[m.jsx(q2,{children:m.jsx(Nt,{component:"span",sx:{color:"error.main"},children:"Error"})}),m.jsx(xt,{variant:"body2",sx:{fontFamily:Yi,whiteSpace:"pre-wrap"},children:e.error})]}),n&&m.jsxs(Nt,{sx:{mb:3},children:[m.jsx(q2,{children:"Build plan"}),a.length===0?m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{fontStyle:"italic"},children:"This package has no persist sources."}):m.jsxs(bb,{size:"small",children:[m.jsx(Sb,{children:m.jsxs(dc,{children:[m.jsx(rr,{children:"Source"}),m.jsx(rr,{children:"Connection"}),m.jsx(rr,{children:"Dialect"}),m.jsx(rr,{align:"right",children:"Columns"}),m.jsx(rr,{children:"Source Entity ID"})]})}),m.jsx(xb,{children:a.map(i=>m.jsxs(dc,{children:[m.jsx(rr,{sx:{fontFamily:Yi},children:i.name}),m.jsx(rr,{sx:{fontFamily:Yi},children:i.connectionName}),m.jsx(rr,{children:i.dialect??"-"}),m.jsx(rr,{align:"right",children:i.columns?.length??0}),m.jsx(rr,{sx:{fontFamily:Yi,fontSize:"0.75rem",wordBreak:"break-all",maxWidth:220},children:i.sourceEntityId})]},i.sourceID))})]})]}),m.jsx(dPe,{entries:e.manifest?.entries,builtAt:e.manifest?.builtAt})]})]})})}function wy({label:e,value:t}){return m.jsxs(Nt,{children:[m.jsx(xt,{variant:"caption",color:"text.secondary",display:"block",children:e}),m.jsx(xt,{variant:"body2",children:t})]})}const pPe=lr(m.jsx("path",{d:"M6 6h12v12H6z"}));function hPe(e){return yn("PrivateSwitchBase",e)}un("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const mPe=e=>{const{classes:t,checked:n,disabled:r,edge:o}=e,a={root:["root",n&&"checked",r&&"disabled",o&&`edge${jt(o)}`],input:["input"]};return hn(a,hPe,t)},gPe=Ye(Gf,{name:"MuiSwitchBase"})({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:e,ownerState:t})=>e==="start"&&t.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:e,ownerState:t})=>e==="end"&&t.size!=="small",style:{marginRight:-12}}]}),yPe=Ye("input",{name:"MuiSwitchBase",shouldForwardProp:Za})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),vPe=w.forwardRef(function(e,t){const{autoFocus:n,checked:r,checkedIcon:o,defaultChecked:a,disabled:i,disableFocusRipple:s=!1,edge:l=!1,icon:d,id:c,inputProps:p,inputRef:g,name:y,onBlur:v,onChange:S,onFocus:E,readOnly:b,required:C=!1,tabIndex:T,type:O,value:R,slots:A={},slotProps:I={},...F}=e,[_,z]=Zi({controlled:r,default:!!a,name:"SwitchBase",state:"checked"}),$=is(),k=le=>{E&&E(le),$&&$.onFocus&&$.onFocus(le)},H=le=>{v&&v(le),$&&$.onBlur&&$.onBlur(le)},L=le=>{if(le.nativeEvent.defaultPrevented)return;const se=le.target.checked;z(se),S&&S(le,se)};let V=i;$&&typeof V>"u"&&(V=$.disabled);const j=O==="checkbox"||O==="radio",Z={...e,checked:_,disabled:V,disableFocusRipple:s,edge:l},J=mPe(Z),oe={slots:A,slotProps:{input:p,...I}},[B,te]=Tr("root",{ref:t,elementType:gPe,className:J.root,shouldForwardComponentProp:!0,externalForwardedProps:{...oe,component:"span",...F},getSlotProps:le=>({...le,onFocus:se=>{le.onFocus?.(se),k(se)},onBlur:se=>{le.onBlur?.(se),H(se)}}),ownerState:Z,additionalProps:{centerRipple:!0,focusRipple:!s,disabled:V,role:void 0,tabIndex:null}}),[re,G]=Tr("input",{ref:g,elementType:yPe,className:J.input,externalForwardedProps:oe,getSlotProps:le=>({...le,onChange:se=>{le.onChange?.(se),L(se)}}),ownerState:Z,additionalProps:{autoFocus:n,checked:r,defaultChecked:a,disabled:V,id:j?c:void 0,name:y,readOnly:b,required:C,tabIndex:T,type:O,...O==="checkbox"&&R===void 0?{}:{value:R}}});return m.jsxs(B,{...te,children:[m.jsx(re,{...G}),_?o:d]})}),bPe=lr(m.jsx("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"})),xPe=lr(m.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"})),SPe=lr(m.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}));function EPe(e){return yn("MuiCheckbox",e)}const Vw=un("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),CPe=e=>{const{classes:t,indeterminate:n,color:r,size:o}=e,a={root:["root",n&&"indeterminate",`color${jt(r)}`,`size${jt(o)}`]},i=hn(a,EPe,t);return{...t,...i}},TPe=Ye(vPe,{shouldForwardProp:e=>Za(e)||e==="classes",name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${jt(n.size)}`],n.color!=="default"&&t[`color${jt(n.color)}`]]}})(ar(({theme:e})=>({color:(e.vars||e).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(Qa()).map(([t])=>({props:{color:t,disableRipple:!1},style:{"&:hover":{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(Qa()).map(([t])=>({props:{color:t},style:{[`&.${Vw.checked}, &.${Vw.indeterminate}`]:{color:(e.vars||e).palette[t].main},[`&.${Vw.disabled}`]:{color:(e.vars||e).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),wPe=m.jsx(xPe,{}),kPe=m.jsx(bPe,{}),APe=m.jsx(SPe,{}),UO=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiCheckbox"}),{checkedIcon:r=wPe,color:o="primary",icon:a=kPe,indeterminate:i=!1,indeterminateIcon:s=APe,inputProps:l,size:d="medium",disableRipple:c=!1,className:p,slots:g={},slotProps:y={},...v}=n,S=i?s:a,E=i?s:r,b={...n,disableRipple:c,color:o,indeterminate:i,size:d},C=CPe(b),T=y.input??l,[O,R]=Tr("root",{ref:t,elementType:TPe,className:Kt(C.root,p),shouldForwardComponentProp:!0,externalForwardedProps:{slots:g,slotProps:y,...v},ownerState:b,additionalProps:{type:"checkbox",icon:w.cloneElement(S,{fontSize:S.props.fontSize??d}),checkedIcon:w.cloneElement(E,{fontSize:E.props.fontSize??d}),disableRipple:c,slots:g,slotProps:{input:RB(typeof T=="function"?T(b):T,{"data-indeterminate":i})}}});return m.jsx(O,{...R,classes:C})}),DPe=e=>{const{classes:t}=e;return hn({root:["root"]},RMe,t)},OPe=Ye(Nr,{name:"MuiDialogTitle",slot:"Root"})({padding:"16px 24px",flex:"0 0 auto"}),pu=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiDialogTitle"}),{className:r,id:o,...a}=n,i=n,s=DPe(i),{titleId:l=o}=w.useContext(Lz);return m.jsx(OPe,{component:"h2",className:Kt(s.root,r),ownerState:i,ref:t,variant:"h6",id:o??l,...a})});function RPe(e){return yn("MuiFormControlLabel",e)}const Gy=un("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),MPe=e=>{const{classes:t,disabled:n,labelPlacement:r,error:o,required:a}=e,i={root:["root",n&&"disabled",`labelPlacement${jt(r)}`,o&&"error",a&&"required"],label:["label",n&&"disabled"],asterisk:["asterisk",o&&"error"]};return hn(i,RPe,t)},PPe=Ye("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Gy.label}`]:t.label},t.root,t[`labelPlacement${jt(n.labelPlacement)}`]]}})(ar(({theme:e})=>({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${Gy.disabled}`]:{cursor:"default"},[`& .${Gy.label}`]:{[`&.${Gy.disabled}`]:{color:(e.vars||e).palette.text.disabled}},variants:[{props:{labelPlacement:"start"},style:{flexDirection:"row-reverse",marginRight:-11}},{props:{labelPlacement:"top"},style:{flexDirection:"column-reverse"}},{props:{labelPlacement:"bottom"},style:{flexDirection:"column"}},{props:({labelPlacement:t})=>t==="start"||t==="top"||t==="bottom",style:{marginLeft:16}}]}))),NPe=Ye("span",{name:"MuiFormControlLabel",slot:"Asterisk"})(ar(({theme:e})=>({[`&.${Gy.error}`]:{color:(e.vars||e).palette.error.main}}))),IPe=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiFormControlLabel"}),{checked:r,className:o,componentsProps:a={},control:i,disabled:s,disableTypography:l,inputRef:d,label:c,labelPlacement:p="end",name:g,onChange:y,required:v,slots:S={},slotProps:E={},value:b,...C}=n,T=is(),O=s??i.props.disabled??T?.disabled,R=v??i.props.required,A={disabled:O,required:R};["checked","name","onChange","value","inputRef"].forEach(L=>{typeof i.props[L]>"u"&&typeof n[L]<"u"&&(A[L]=n[L])});const I=ip({props:n,muiFormControl:T,states:["error"]}),F={...n,disabled:O,labelPlacement:p,required:R,error:I.error},_=MPe(F),z={slots:S,slotProps:{...a,...E}},[$,k]=Tr("typography",{elementType:Nr,externalForwardedProps:z,ownerState:F});let H=c;return H!=null&&H.type!==Nr&&!l&&(H=m.jsx($,{component:"span",...k,className:Kt(_.label,k?.className),children:H})),m.jsxs(PPe,{className:Kt(_.root,o),ownerState:F,ref:t,...C,children:[w.cloneElement(i,A),R?m.jsxs("div",{children:[H,m.jsxs(NPe,{ownerState:F,"aria-hidden":!0,className:_.asterisk,children:[" ","*"]})]}):H]})});function LPe(e){return yn("MuiListItemIcon",e)}const z4=un("MuiListItemIcon",["root","alignItemsFlexStart"]),_Pe=e=>{const{alignItems:t,classes:n}=e;return hn({root:["root",t==="flex-start"&&"alignItemsFlexStart"]},LPe,n)},FPe=Ye("div",{name:"MuiListItemIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.alignItems==="flex-start"&&t.alignItemsFlexStart]}})(ar(({theme:e})=>({minWidth:56,color:(e.vars||e).palette.action.active,flexShrink:0,display:"inline-flex",variants:[{props:{alignItems:"flex-start"},style:{marginTop:8}}]}))),VO=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiListItemIcon"}),{className:r,...o}=n,a=w.useContext(tu),i={...n,alignItems:a.alignItems},s=_Pe(i);return m.jsx(FPe,{className:Kt(s.root,r),ownerState:i,ref:t,...o})});function jPe(e){return yn("MuiListItemText",e)}const Mh=un("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),$Pe=e=>{const{classes:t,inset:n,primary:r,secondary:o,dense:a}=e;return hn({root:["root",n&&"inset",a&&"dense",r&&o&&"multiline"],primary:["primary"],secondary:["secondary"]},jPe,t)},BPe=Ye("div",{name:"MuiListItemText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Mh.primary}`]:t.primary},{[`& .${Mh.secondary}`]:t.secondary},t.root,n.inset&&t.inset,n.primary&&n.secondary&&t.multiline,n.dense&&t.dense]}})({flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4,[`.${Q_.root}:where(& .${Mh.primary})`]:{display:"block"},[`.${Q_.root}:where(& .${Mh.secondary})`]:{display:"block"},variants:[{props:({ownerState:e})=>e.primary&&e.secondary,style:{marginTop:6,marginBottom:6}},{props:({ownerState:e})=>e.inset,style:{paddingLeft:56}}]}),WO=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiListItemText"}),{children:r,className:o,disableTypography:a=!1,inset:i=!1,primary:s,primaryTypographyProps:l,secondary:d,secondaryTypographyProps:c,slots:p={},slotProps:g={},...y}=n,{dense:v}=w.useContext(tu);let S=s??r,E=d;const b={...n,disableTypography:a,inset:i,primary:!!S,secondary:!!E,dense:v},C=$Pe(b),T={slots:p,slotProps:{primary:l,secondary:c,...g}},[O,R]=Tr("root",{className:Kt(C.root,o),elementType:BPe,externalForwardedProps:{...T,...y},ownerState:b,ref:t}),[A,I]=Tr("primary",{className:C.primary,elementType:Nr,externalForwardedProps:T,ownerState:b}),[F,_]=Tr("secondary",{className:C.secondary,elementType:Nr,externalForwardedProps:T,ownerState:b});return S!=null&&S.type!==Nr&&!a&&(S=m.jsx(A,{variant:v?"body2":"body1",component:I?.variant?void 0:"span",...I,children:S})),E!=null&&E.type!==Nr&&!a&&(E=m.jsx(F,{variant:"body2",color:"textSecondary",..._,children:E})),m.jsxs(O,{...R,children:[S,E]})}),H4=un("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]);function zPe(e){return yn("MuiMenuItem",e)}const ky=un("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),HPe=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},UPe=e=>{const{disabled:t,dense:n,divider:r,disableGutters:o,selected:a,classes:i}=e,s=hn({root:["root",n&&"dense",t&&"disabled",!o&&"gutters",r&&"divider",a&&"selected"]},zPe,i);return{...i,...s}},VPe=Ye(Gf,{shouldForwardProp:e=>Za(e)||e==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:HPe})(ar(({theme:e})=>({...e.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ky.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${ky.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}},[`&.${ky.selected}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity)}},[`&.${ky.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${ky.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${H4.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${H4.inset}`]:{marginLeft:52},[`& .${Mh.root}`]:{marginTop:0,marginBottom:0},[`& .${Mh.inset}`]:{paddingLeft:36},[`& .${z4.root}`]:{minWidth:36},variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:t})=>!t.dense,style:{[e.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:t})=>t.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${z4.root} svg`]:{fontSize:"1.25rem"}}}]}))),Ga=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiMenuItem"}),{autoFocus:r=!1,component:o="li",dense:a=!1,divider:i=!1,disableGutters:s=!1,focusVisibleClassName:l,role:d="menuitem",tabIndex:c,className:p,...g}=n,y=w.useContext(tu),v=w.useMemo(()=>({dense:a||y.dense||!1,disableGutters:s}),[y.dense,a,s]),S=w.useRef(null);sa(()=>{r&&S.current&&S.current.focus()},[r]);const E={...n,dense:v.dense,divider:i,disableGutters:s},b=UPe(n),C=Or(S,t);let T;return n.disabled||(T=c!==void 0?c:-1),m.jsx(tu.Provider,{value:v,children:m.jsx(VPe,{ref:C,role:d,tabIndex:T,component:o,focusVisibleClassName:Kt(b.focusVisible,l),className:Kt(b.root,p),...g,ownerState:E,classes:b})})});function WPe({materialization:e,onCloseDialog:t,isMutating:n,onDelete:r}){const[o,a]=w.useState(!1),[i,s]=w.useState(!1),l=()=>a(!0),d=()=>{a(!1),s(!1),t()};return m.jsxs($t.Fragment,{children:[m.jsxs(Ga,{"aria-label":`Delete materialization ${e?.id??""}`.trim(),onClick:c=>{c.stopPropagation(),l()},sx:{color:"error.main"},children:[m.jsx(VO,{sx:{color:"inherit"},children:m.jsx(VS,{fontSize:"small"})}),m.jsx(WO,{children:"Delete"})]}),m.jsxs(Sc,{onClose:d,open:o,"aria-labelledby":"delete-materialization-title",children:[m.jsx(pu,{sx:{m:0,p:2},id:"delete-materialization-title",children:"Delete Materialization"}),m.jsx(Qs,{"aria-label":"close",onClick:d,sx:c=>({position:"absolute",right:8,top:8,color:c.palette.grey[500]}),children:m.jsx(yl,{})}),m.jsxs(xc,{dividers:!0,children:[m.jsx(Nr,{gutterBottom:!0,children:"Are you sure you want to delete this materialization record? This action cannot be undone."}),m.jsx(IPe,{control:m.jsx(UO,{checked:i,onChange:c=>s(c.target.checked)}),label:"Also drop the materialized table(s) this run produced"})]}),m.jsx(bc,{children:m.jsx(Eo,{loading:n,variant:"contained",autoFocus:!0,onClick:()=>r(i),color:"error",children:"Delete"})})]})]})}function Gz({materializations:e,mutable:t,isMutating:n,showPackage:r=!1,onClickPackage:o,onStop:a,onDelete:i,onViewDetails:s}){return e.length===0?m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{py:1,fontStyle:"italic"},children:"No materializations yet."}):m.jsxs(bb,{size:"small",children:[m.jsx(Sb,{children:m.jsxs(dc,{children:[r&&m.jsx(rr,{children:"Package"}),m.jsx(rr,{children:"Status"}),m.jsx(rr,{children:"Trigger"}),m.jsx(rr,{children:"Started"}),m.jsx(rr,{children:"Duration"}),m.jsx(rr,{children:"Sources"}),m.jsx(rr,{align:"right",children:"Actions"})]})}),m.jsx(xb,{children:e.map(l=>m.jsx(qPe,{materialization:l,mutable:t,isMutating:n,showPackage:r,onClickPackage:o,onStop:a,onDelete:i,onViewDetails:s},l.id))})]})}function qPe({materialization:e,mutable:t,isMutating:n,showPackage:r,onClickPackage:o,onStop:a,onDelete:i,onViewDetails:s}){const[l,d]=w.useState(null),c=!!l,p=()=>d(null),g=Uz(e),y=g.sourcesBuilt!==void 0||g.sourcesReused!==void 0?`${g.sourcesBuilt??0} built, ${g.sourcesReused??0} reused`:"-",v=rb(e.status),S=lPe(e.status),E=e.error??void 0,b=t&&(v||S);return m.jsxs(dc,{hover:!0,sx:{cursor:"pointer","&:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"-2px"}},onClick:()=>s(e),onKeyDown:C=>{(C.key==="Enter"||C.key===" ")&&(C.preventDefault(),s(e))},role:"button",tabIndex:0,"aria-label":`View materialization ${e.id??""} details`.trim(),children:[r&&m.jsx(rr,{onClick:C=>C.stopPropagation(),children:o?m.jsx(VA,{component:"button",underline:"hover",onClick:()=>o(e.packageName??""),sx:{fontWeight:500},children:e.packageName}):e.packageName}),m.jsx(rr,{children:m.jsxs(Nt,{sx:{display:"flex",alignItems:"center",gap:.5},children:[m.jsx(Ff,{size:"small",label:zz(e.status),color:Hz(e.status),variant:v?"filled":"outlined"}),E&&m.jsx(Do,{title:E,children:m.jsx(n9,{fontSize:"small",color:"error"})})]})}),m.jsx(rr,{children:m.jsx(Wz,{meta:g})}),m.jsx(rr,{children:uPe(e.startedAt??e.createdAt)}),m.jsx(rr,{children:Vz(e.startedAt,e.completedAt)}),m.jsx(rr,{children:y}),m.jsx(rr,{align:"right",onClick:C=>C.stopPropagation(),children:b&&m.jsxs(m.Fragment,{children:[m.jsx(Ar,{size:"small","aria-label":`Materialization actions for ${e.id??""}`.trim(),onClick:C=>d(C.currentTarget),children:m.jsx(WS,{fontSize:"small"})}),m.jsxs(kd,{anchorEl:l,open:c,onClose:p,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[t&&v&&m.jsxs(uc,{"aria-label":`Stop materialization ${e.id??""}`.trim(),disabled:n,onClick:()=>{p(),a(e)},children:[m.jsx(vb,{children:m.jsx(pPe,{fontSize:"small"})}),m.jsx(Zf,{children:"Stop"})]}),t&&S&&m.jsx(WPe,{materialization:e,isMutating:n,onCloseDialog:p,onDelete:C=>i(e,C)})]})]})})]})}var vh={},Fi={},Ay={},bh={},U4={},V4;function GPe(){return V4||(V4=1,Object.defineProperty(U4,"__esModule",{value:!0})),U4}var Dy={},Oy={},W4;function sp(){if(W4)return Oy;W4=1,Object.defineProperty(Oy,"__esModule",{value:!0}),Oy.CronField=void 0;let e=class Yz{#e=!1;#t=!1;#n=!1;#o=[];options={rawValue:""};static get min(){throw new Error("min must be overridden")}static get max(){throw new Error("max must be overridden")}static get chars(){return Object.freeze([])}static get validChars(){return/^[?,*\dH/-]+$|^.*H\(\d+-\d+\)\/\d+.*$|^.*H\(\d+-\d+\).*$|^.*H\/\d+.*$/}static get constraints(){return{min:this.min,max:this.max,chars:this.chars,validChars:this.validChars}}constructor(n,r={rawValue:""}){if(!Array.isArray(n))throw new Error(`${this.constructor.name} Validation error, values is not an array`);if(!(n.length>0))throw new Error(`${this.constructor.name} Validation error, values contains no values`);this.options={...r,rawValue:r.rawValue??""},this.#o=n.sort(Yz.sorter),this.#n=this.options.wildcard!==void 0?this.options.wildcard:this.#r(),this.#e=this.options.rawValue.includes("L")||n.includes("L"),this.#t=this.options.rawValue.includes("?")||n.includes("?")}get min(){return this.constructor.min}get max(){return this.constructor.max}get chars(){return this.constructor.chars}get hasLastChar(){return this.#e}get hasQuestionMarkChar(){return this.#t}get isWildcard(){return this.#n}get values(){return this.#o}static sorter(n,r){const o=typeof n=="number",a=typeof r=="number";return o&&a?n-r:!o&&!a?n.localeCompare(r):o?-1:1}static findNearestValueInList(n,r,o){if(o){for(let a=n.length-1;a>=0;a--)if(n[a]<r)return n[a];return null}for(let a=0;a<n.length;a++)if(n[a]>r)return n[a];return null}findNearestValue(n,r){return this.constructor.findNearestValueInList(this.values,n,r)}serialize(){return{wildcard:this.#n,values:this.#o}}validate(){let n;const r=this.chars.length>0?` or chars ${this.chars.join("")}`:"",o=s=>l=>new RegExp(`^\\d{0,2}${l}$`).test(s),a=s=>(n=s,typeof s=="number"?s>=this.min&&s<=this.max:this.chars.some(o(s)));if(!this.#o.every(a))throw new Error(`${this.constructor.name} Validation error, got value ${n} expected range ${this.min}-${this.max}${r}`);const i=this.#o.find((s,l)=>this.#o.indexOf(s)!==l);if(i)throw new Error(`${this.constructor.name} Validation error, duplicate values found: ${i}`)}#r(){return this.options.rawValue.length>0?["*","?"].includes(this.options.rawValue):Array.from({length:this.max-this.min+1},(n,r)=>r+this.min).every(n=>this.#o.includes(n))}};return Oy.CronField=e,Oy}var q4;function YPe(){if(q4)return Dy;q4=1,Object.defineProperty(Dy,"__esModule",{value:!0}),Dy.CronDayOfMonth=void 0;const e=sp(),t=1,n=31,r=Object.freeze(["L"]);let o=class extends e.CronField{static get min(){return t}static get max(){return n}static get chars(){return r}static get validChars(){return/^[?,*\dLH/-]+$|^.*H\(\d+-\d+\)\/\d+.*$|^.*H\(\d+-\d+\).*$|^.*H\/\d+.*$/}constructor(a,i){super(a,i),this.validate()}get values(){return super.values}};return Dy.CronDayOfMonth=o,Dy}var Ry={},G4;function KPe(){if(G4)return Ry;G4=1,Object.defineProperty(Ry,"__esModule",{value:!0}),Ry.CronDayOfWeek=void 0;const e=sp(),t=0,n=7,r=Object.freeze(["L"]);let o=class extends e.CronField{static get min(){return t}static get max(){return n}static get chars(){return r}static get validChars(){return/^[?,*\dLH#/-]+$|^.*H\(\d+-\d+\)\/\d+.*$|^.*H\(\d+-\d+\).*$|^.*H\/\d+.*$/}constructor(a,i){super(a,i),this.validate()}get values(){return super.values}get nthDay(){return this.options.nthDayOfWeek??0}};return Ry.CronDayOfWeek=o,Ry}var My={},Y4;function QPe(){if(Y4)return My;Y4=1,Object.defineProperty(My,"__esModule",{value:!0}),My.CronHour=void 0;const e=sp(),t=0,n=23,r=Object.freeze([]);let o=class extends e.CronField{static get min(){return t}static get max(){return n}static get chars(){return r}constructor(a,i){super(a,i),this.validate()}get values(){return super.values}};return My.CronHour=o,My}var Py={},K4;function XPe(){if(K4)return Py;K4=1,Object.defineProperty(Py,"__esModule",{value:!0}),Py.CronMinute=void 0;const e=sp(),t=0,n=59,r=Object.freeze([]);let o=class extends e.CronField{static get min(){return t}static get max(){return n}static get chars(){return r}constructor(a,i){super(a,i),this.validate()}get values(){return super.values}};return Py.CronMinute=o,Py}var Ny={},Q4={},si={},X4;function ZPe(){if(X4)return si;X4=1,Object.defineProperty(si,"__esModule",{value:!0});class e extends Error{}class t extends e{constructor(M){super(`Invalid DateTime: ${M.toMessage()}`)}}class n extends e{constructor(M){super(`Invalid Interval: ${M.toMessage()}`)}}class r extends e{constructor(M){super(`Invalid Duration: ${M.toMessage()}`)}}class o extends e{}class a extends e{constructor(M){super(`Invalid unit ${M}`)}}class i extends e{}class s extends e{constructor(){super("Zone is an abstract class")}}const l="numeric",d="short",c="long",p={year:l,month:l,day:l},g={year:l,month:d,day:l},y={year:l,month:d,day:l,weekday:d},v={year:l,month:c,day:l},S={year:l,month:c,day:l,weekday:c},E={hour:l,minute:l},b={hour:l,minute:l,second:l},C={hour:l,minute:l,second:l,timeZoneName:d},T={hour:l,minute:l,second:l,timeZoneName:c},O={hour:l,minute:l,hourCycle:"h23"},R={hour:l,minute:l,second:l,hourCycle:"h23"},A={hour:l,minute:l,second:l,hourCycle:"h23",timeZoneName:d},I={hour:l,minute:l,second:l,hourCycle:"h23",timeZoneName:c},F={year:l,month:l,day:l,hour:l,minute:l},_={year:l,month:l,day:l,hour:l,minute:l,second:l},z={year:l,month:d,day:l,hour:l,minute:l},$={year:l,month:d,day:l,hour:l,minute:l,second:l},k={year:l,month:d,day:l,weekday:d,hour:l,minute:l},H={year:l,month:c,day:l,hour:l,minute:l,timeZoneName:d},L={year:l,month:c,day:l,hour:l,minute:l,second:l,timeZoneName:d},V={year:l,month:c,day:l,weekday:c,hour:l,minute:l,timeZoneName:c},j={year:l,month:c,day:l,weekday:c,hour:l,minute:l,second:l,timeZoneName:c};class Z{get type(){throw new s}get name(){throw new s}get ianaName(){return this.name}get isUniversal(){throw new s}offsetName(M,W){throw new s}formatOffset(M,W){throw new s}offset(M){throw new s}equals(M){throw new s}get isValid(){throw new s}}let J=null;class oe extends Z{static get instance(){return J===null&&(J=new oe),J}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(M,{format:W,locale:Q}){return Md(M,W,Q)}formatOffset(M,W){return Ol(this.offset(M),W)}offset(M){return-new Date(M).getTimezoneOffset()}equals(M){return M.type==="system"}get isValid(){return!0}}const B=new Map;function te(Y){let M=B.get(Y);return M===void 0&&(M=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:Y,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),B.set(Y,M)),M}const re={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function G(Y,M){const W=Y.format(M).replace(/\u200E/g,""),Q=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(W),[,ae,ke,$e,qe,Xe,Ht,Mn]=Q;return[$e,ae,ke,qe,Xe,Ht,Mn]}function le(Y,M){const W=Y.formatToParts(M),Q=[];for(let ae=0;ae<W.length;ae++){const{type:ke,value:$e}=W[ae],qe=re[ke];ke==="era"?Q[qe]=$e:st(qe)||(Q[qe]=parseInt($e,10))}return Q}const se=new Map;class ne extends Z{static create(M){let W=se.get(M);return W===void 0&&se.set(M,W=new ne(M)),W}static resetCache(){se.clear(),B.clear()}static isValidSpecifier(M){return this.isValidZone(M)}static isValidZone(M){if(!M)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:M}).format(),!0}catch{return!1}}constructor(M){super(),this.zoneName=M,this.valid=ne.isValidZone(M)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(M,{format:W,locale:Q}){return Md(M,W,Q,this.name)}formatOffset(M,W){return Ol(this.offset(M),W)}offset(M){if(!this.valid)return NaN;const W=new Date(M);if(isNaN(W))return NaN;const Q=te(this.name);let[ae,ke,$e,qe,Xe,Ht,Mn]=Q.formatToParts?le(Q,W):G(Q,W);qe==="BC"&&(ae=-Math.abs(ae)+1);const Xn=Dl({year:ae,month:ke,day:$e,hour:Xe===24?0:Xe,minute:Ht,second:Mn,millisecond:0});let kr=+W;const _n=kr%1e3;return kr-=_n>=0?_n:1e3+_n,(Xn-kr)/(60*1e3)}equals(M){return M.type==="iana"&&M.name===this.name}get isValid(){return this.valid}}let ie={};function ue(Y,M={}){const W=JSON.stringify([Y,M]);let Q=ie[W];return Q||(Q=new Intl.ListFormat(Y,M),ie[W]=Q),Q}const ve=new Map;function we(Y,M={}){const W=JSON.stringify([Y,M]);let Q=ve.get(W);return Q===void 0&&(Q=new Intl.DateTimeFormat(Y,M),ve.set(W,Q)),Q}const Se=new Map;function Fe(Y,M={}){const W=JSON.stringify([Y,M]);let Q=Se.get(W);return Q===void 0&&(Q=new Intl.NumberFormat(Y,M),Se.set(W,Q)),Q}const he=new Map;function ge(Y,M={}){const{base:W,...Q}=M,ae=JSON.stringify([Y,Q]);let ke=he.get(ae);return ke===void 0&&(ke=new Intl.RelativeTimeFormat(Y,M),he.set(ae,ke)),ke}let Ke=null;function ze(){return Ke||(Ke=new Intl.DateTimeFormat().resolvedOptions().locale,Ke)}const Ie=new Map;function de(Y){let M=Ie.get(Y);return M===void 0&&(M=new Intl.DateTimeFormat(Y).resolvedOptions(),Ie.set(Y,M)),M}const gt=new Map;function Ue(Y){let M=gt.get(Y);if(!M){const W=new Intl.Locale(Y);M="getWeekInfo"in W?W.getWeekInfo():W.weekInfo,"minimalDays"in M||(M={...We,...M}),gt.set(Y,M)}return M}function ut(Y){const M=Y.indexOf("-x-");M!==-1&&(Y=Y.substring(0,M));const W=Y.indexOf("-u-");if(W===-1)return[Y];{let Q,ae;try{Q=we(Y).resolvedOptions(),ae=Y}catch{const qe=Y.substring(0,W);Q=we(qe).resolvedOptions(),ae=qe}const{numberingSystem:ke,calendar:$e}=Q;return[ae,ke,$e]}}function it(Y,M,W){return(W||M)&&(Y.includes("-u-")||(Y+="-u"),W&&(Y+=`-ca-${W}`),M&&(Y+=`-nu-${M}`)),Y}function Zt(Y){const M=[];for(let W=1;W<=12;W++){const Q=Rn.utc(2009,W,1);M.push(Y(Q))}return M}function Qt(Y){const M=[];for(let W=1;W<=7;W++){const Q=Rn.utc(2016,11,13+W);M.push(Y(Q))}return M}function tt(Y,M,W,Q){const ae=Y.listingMode();return ae==="error"?null:ae==="en"?W(M):Q(M)}function xe(Y){return Y.numberingSystem&&Y.numberingSystem!=="latn"?!1:Y.numberingSystem==="latn"||!Y.locale||Y.locale.startsWith("en")||de(Y.locale).numberingSystem==="latn"}class Pe{constructor(M,W,Q){this.padTo=Q.padTo||0,this.floor=Q.floor||!1;const{padTo:ae,floor:ke,...$e}=Q;if(!W||Object.keys($e).length>0){const qe={useGrouping:!1,...Q};Q.padTo>0&&(qe.minimumIntegerDigits=Q.padTo),this.inf=Fe(M,qe)}}format(M){if(this.inf){const W=this.floor?Math.floor(M):M;return this.inf.format(W)}else{const W=this.floor?Math.floor(M):hu(M,3);return wr(W,this.padTo)}}}class Re{constructor(M,W,Q){this.opts=Q,this.originalZone=void 0;let ae;if(this.opts.timeZone)this.dt=M;else if(M.zone.type==="fixed"){const $e=-1*(M.offset/60),qe=$e>=0?`Etc/GMT+${$e}`:`Etc/GMT${$e}`;M.offset!==0&&ne.create(qe).valid?(ae=qe,this.dt=M):(ae="UTC",this.dt=M.offset===0?M:M.setZone("UTC").plus({minutes:M.offset}),this.originalZone=M.zone)}else M.zone.type==="system"?this.dt=M:M.zone.type==="iana"?(this.dt=M,ae=M.zone.name):(ae="UTC",this.dt=M.setZone("UTC").plus({minutes:M.offset}),this.originalZone=M.zone);const ke={...this.opts};ke.timeZone=ke.timeZone||ae,this.dtf=we(W,ke)}format(){return this.originalZone?this.formatToParts().map(({value:M})=>M).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const M=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?M.map(W=>{if(W.type==="timeZoneName"){const Q=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...W,value:Q}}else return W}):M}resolvedOptions(){return this.dtf.resolvedOptions()}}class me{constructor(M,W,Q){this.opts={style:"long",...Q},!W&&je()&&(this.rtf=ge(M,Q))}format(M,W){return this.rtf?this.rtf.format(M,W):vu(W,M,this.opts.numeric,this.opts.style!=="long")}formatToParts(M,W){return this.rtf?this.rtf.formatToParts(M,W):[]}}const We={firstDay:1,minimalDays:4,weekend:[6,7]};class Ne{static fromOpts(M){return Ne.create(M.locale,M.numberingSystem,M.outputCalendar,M.weekSettings,M.defaultToEN)}static create(M,W,Q,ae,ke=!1){const $e=M||rt.defaultLocale,qe=$e||(ke?"en-US":ze()),Xe=W||rt.defaultNumberingSystem,Ht=Q||rt.defaultOutputCalendar,Mn=dn(ae)||rt.defaultWeekSettings;return new Ne(qe,Xe,Ht,Mn,$e)}static resetCache(){Ke=null,ve.clear(),Se.clear(),he.clear(),Ie.clear(),gt.clear()}static fromObject({locale:M,numberingSystem:W,outputCalendar:Q,weekSettings:ae}={}){return Ne.create(M,W,Q,ae)}constructor(M,W,Q,ae,ke){const[$e,qe,Xe]=ut(M);this.locale=$e,this.numberingSystem=W||qe||null,this.outputCalendar=Q||Xe||null,this.weekSettings=ae,this.intl=it(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=ke,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=xe(this)),this.fastNumbersCached}listingMode(){const M=this.isEnglish(),W=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return M&&W?"en":"intl"}clone(M){return!M||Object.getOwnPropertyNames(M).length===0?this:Ne.create(M.locale||this.specifiedLocale,M.numberingSystem||this.numberingSystem,M.outputCalendar||this.outputCalendar,dn(M.weekSettings)||this.weekSettings,M.defaultToEN||!1)}redefaultToEN(M={}){return this.clone({...M,defaultToEN:!0})}redefaultToSystem(M={}){return this.clone({...M,defaultToEN:!1})}months(M,W=!1){return tt(this,M,Tc,()=>{const Q=this.intl==="ja"||this.intl.startsWith("ja-");W&=!Q;const ae=W?{month:M,day:"numeric"}:{month:M},ke=W?"format":"standalone";if(!this.monthsCache[ke][M]){const $e=Q?qe=>this.dtFormatter(qe,ae).format():qe=>this.extract(qe,ae,"month");this.monthsCache[ke][M]=Zt($e)}return this.monthsCache[ke][M]})}weekdays(M,W=!1){return tt(this,M,el,()=>{const Q=W?{weekday:M,year:"numeric",month:"long",day:"numeric"}:{weekday:M},ae=W?"format":"standalone";return this.weekdaysCache[ae][M]||(this.weekdaysCache[ae][M]=Qt(ke=>this.extract(ke,Q,"weekday"))),this.weekdaysCache[ae][M]})}meridiems(){return tt(this,void 0,()=>Nd,()=>{if(!this.meridiemCache){const M={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[Rn.utc(2016,11,13,9),Rn.utc(2016,11,13,19)].map(W=>this.extract(W,M,"dayperiod"))}return this.meridiemCache})}eras(M){return tt(this,M,Ja,()=>{const W={era:M};return this.eraCache[M]||(this.eraCache[M]=[Rn.utc(-40,1,1),Rn.utc(2017,1,1)].map(Q=>this.extract(Q,W,"era"))),this.eraCache[M]})}extract(M,W,Q){const ae=this.dtFormatter(M,W),ke=ae.formatToParts(),$e=ke.find(qe=>qe.type.toLowerCase()===Q);return $e?$e.value:null}numberFormatter(M={}){return new Pe(this.intl,M.forceSimple||this.fastNumbers,M)}dtFormatter(M,W={}){return new Re(M,this.intl,W)}relFormatter(M={}){return new me(this.intl,this.isEnglish(),M)}listFormatter(M={}){return ue(this.intl,M)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||de(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:nt()?Ue(this.locale):We}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(M){return this.locale===M.locale&&this.numberingSystem===M.numberingSystem&&this.outputCalendar===M.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let Ot=null;class Rt extends Z{static get utcInstance(){return Ot===null&&(Ot=new Rt(0)),Ot}static instance(M){return M===0?Rt.utcInstance:new Rt(M)}static parseSpecifier(M){if(M){const W=M.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(W)return new Rt(Ec(W[1],W[2]))}return null}constructor(M){super(),this.fixed=M}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Ol(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Ol(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(M,W){return Ol(this.fixed,W)}get isUniversal(){return!0}offset(){return this.fixed}equals(M){return M.type==="fixed"&&M.fixed===this.fixed}get isValid(){return!0}}class yt extends Z{constructor(M){super(),this.zoneName=M}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function Le(Y,M){if(st(Y)||Y===null)return M;if(Y instanceof Z)return Y;if(Dn(Y)){const W=Y.toLowerCase();return W==="default"?M:W==="local"||W==="system"?oe.instance:W==="utc"||W==="gmt"?Rt.utcInstance:Rt.parseSpecifier(W)||ne.create(Y)}else return vn(Y)?Rt.instance(Y):typeof Y=="object"&&"offset"in Y&&typeof Y.offset=="function"?Y:new yt(Y)}const ot={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},Mt={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Pt=ot.hanidec.replace(/[\[|\]]/g,"").split("");function pn(Y){let M=parseInt(Y,10);if(isNaN(M)){M="";for(let W=0;W<Y.length;W++){const Q=Y.charCodeAt(W);if(Y[W].search(ot.hanidec)!==-1)M+=Pt.indexOf(Y[W]);else for(const ae in Mt){const[ke,$e]=Mt[ae];Q>=ke&&Q<=$e&&(M+=Q-ke)}}return parseInt(M,10)}else return M}const Nn=new Map;function Kn(){Nn.clear()}function nn({numberingSystem:Y},M=""){const W=Y||"latn";let Q=Nn.get(W);Q===void 0&&(Q=new Map,Nn.set(W,Q));let ae=Q.get(M);return ae===void 0&&(ae=new RegExp(`${ot[W]}${M}`),Q.set(M,ae)),ae}let kn=()=>Date.now(),Ae="system",Tn=null,An=null,sn=null,fe=60,He,Ve=null;class rt{static get now(){return kn}static set now(M){kn=M}static set defaultZone(M){Ae=M}static get defaultZone(){return Le(Ae,oe.instance)}static get defaultLocale(){return Tn}static set defaultLocale(M){Tn=M}static get defaultNumberingSystem(){return An}static set defaultNumberingSystem(M){An=M}static get defaultOutputCalendar(){return sn}static set defaultOutputCalendar(M){sn=M}static get defaultWeekSettings(){return Ve}static set defaultWeekSettings(M){Ve=dn(M)}static get twoDigitCutoffYear(){return fe}static set twoDigitCutoffYear(M){fe=M%100}static get throwOnInvalid(){return He}static set throwOnInvalid(M){He=M}static resetCaches(){Ne.resetCache(),ne.resetCache(),Rn.resetCache(),Kn()}}class St{constructor(M,W){this.reason=M,this.explanation=W}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const Jt=[0,31,59,90,120,151,181,212,243,273,304,334],rn=[0,31,60,91,121,152,182,213,244,274,305,335];function Gt(Y,M){return new St("unit out of range",`you specified ${M} (of type ${typeof M}) as a ${Y}, which is invalid`)}function wt(Y,M,W){const Q=new Date(Date.UTC(Y,M-1,W));Y<100&&Y>=0&&Q.setUTCFullYear(Q.getUTCFullYear()-1900);const ae=Q.getUTCDay();return ae===0?7:ae}function Xt(Y,M,W){return W+(ss(Y)?rn:Jt)[M-1]}function zt(Y,M){const W=ss(Y)?rn:Jt,Q=W.findIndex(ke=>ke<M),ae=M-W[Q];return{month:Q+1,day:ae}}function _t(Y,M){return(Y-M+7)%7+1}function an(Y,M=4,W=1){const{year:Q,month:ae,day:ke}=Y,$e=Xt(Q,ae,ke),qe=_t(wt(Q,ae,ke),W);let Xe=Math.floor(($e-qe+14-M)/7),Ht;return Xe<1?(Ht=Q-1,Xe=Zs(Ht,M,W)):Xe>Zs(Q,M,W)?(Ht=Q+1,Xe=1):Ht=Q,{weekYear:Ht,weekNumber:Xe,weekday:qe,...Cc(Y)}}function Un(Y,M=4,W=1){const{weekYear:Q,weekNumber:ae,weekday:ke}=Y,$e=_t(wt(Q,1,M),W),qe=Al(Q);let Xe=ae*7+ke-$e-7+M,Ht;Xe<1?(Ht=Q-1,Xe+=Al(Ht)):Xe>qe?(Ht=Q+1,Xe-=Al(Q)):Ht=Q;const{month:Mn,day:Xn}=zt(Ht,Xe);return{year:Ht,month:Mn,day:Xn,...Cc(Y)}}function cr(Y){const{year:M,month:W,day:Q}=Y,ae=Xt(M,W,Q);return{year:M,ordinal:ae,...Cc(Y)}}function In(Y){const{year:M,ordinal:W}=Y,{month:Q,day:ae}=zt(M,W);return{year:M,month:Q,day:ae,...Cc(Y)}}function wn(Y,M){if(!st(Y.localWeekday)||!st(Y.localWeekNumber)||!st(Y.localWeekYear)){if(!st(Y.weekday)||!st(Y.weekNumber)||!st(Y.weekYear))throw new o("Cannot mix locale-based week fields with ISO-based week fields");return st(Y.localWeekday)||(Y.weekday=Y.localWeekday),st(Y.localWeekNumber)||(Y.weekNumber=Y.localWeekNumber),st(Y.localWeekYear)||(Y.weekYear=Y.localWeekYear),delete Y.localWeekday,delete Y.localWeekNumber,delete Y.localWeekYear,{minDaysInFirstWeek:M.getMinDaysInFirstWeek(),startOfWeek:M.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function ye(Y,M=4,W=1){const Q=En(Y.weekYear),ae=Ln(Y.weekNumber,1,Zs(Y.weekYear,M,W)),ke=Ln(Y.weekday,1,7);return Q?ae?ke?!1:Gt("weekday",Y.weekday):Gt("week",Y.weekNumber):Gt("weekYear",Y.weekYear)}function be(Y){const M=En(Y.year),W=Ln(Y.ordinal,1,Al(Y.year));return M?W?!1:Gt("ordinal",Y.ordinal):Gt("year",Y.year)}function et(Y){const M=En(Y.year),W=Ln(Y.month,1,12),Q=Ln(Y.day,1,na(Y.year,Y.month));return M?W?Q?!1:Gt("day",Y.day):Gt("month",Y.month):Gt("year",Y.year)}function At(Y){const{hour:M,minute:W,second:Q,millisecond:ae}=Y,ke=Ln(M,0,23)||M===24&&W===0&&Q===0&&ae===0,$e=Ln(W,0,59),qe=Ln(Q,0,59),Xe=Ln(ae,0,999);return ke?$e?qe?Xe?!1:Gt("millisecond",ae):Gt("second",Q):Gt("minute",W):Gt("hour",M)}function st(Y){return typeof Y>"u"}function vn(Y){return typeof Y=="number"}function En(Y){return typeof Y=="number"&&Y%1===0}function Dn(Y){return typeof Y=="string"}function Te(Y){return Object.prototype.toString.call(Y)==="[object Date]"}function je(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function nt(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function kt(Y){return Array.isArray(Y)?Y:[Y]}function Ut(Y,M,W){if(Y.length!==0)return Y.reduce((Q,ae)=>{const ke=[M(ae),ae];return Q&&W(Q[0],ke[0])===Q[0]?Q:ke},null)[1]}function Ft(Y,M){return M.reduce((W,Q)=>(W[Q]=Y[Q],W),{})}function It(Y,M){return Object.prototype.hasOwnProperty.call(Y,M)}function dn(Y){if(Y==null)return null;if(typeof Y!="object")throw new i("Week settings must be an object");if(!Ln(Y.firstDay,1,7)||!Ln(Y.minimalDays,1,7)||!Array.isArray(Y.weekend)||Y.weekend.some(M=>!Ln(M,1,7)))throw new i("Invalid week settings");return{firstDay:Y.firstDay,minimalDays:Y.minimalDays,weekend:Array.from(Y.weekend)}}function Ln(Y,M,W){return En(Y)&&Y>=M&&Y<=W}function Rr(Y,M){return Y-M*Math.floor(Y/M)}function wr(Y,M=2){const W=Y<0;let Q;return W?Q="-"+(""+-Y).padStart(M,"0"):Q=(""+Y).padStart(M,"0"),Q}function Ti(Y){if(!(st(Y)||Y===null||Y===""))return parseInt(Y,10)}function Xs(Y){if(!(st(Y)||Y===null||Y===""))return parseFloat(Y)}function kl(Y){if(!(st(Y)||Y===null||Y==="")){const M=parseFloat("0."+Y)*1e3;return Math.floor(M)}}function hu(Y,M,W="round"){const Q=10**M;switch(W){case"expand":return Y>0?Math.ceil(Y*Q)/Q:Math.floor(Y*Q)/Q;case"trunc":return Math.trunc(Y*Q)/Q;case"round":return Math.round(Y*Q)/Q;case"floor":return Math.floor(Y*Q)/Q;case"ceil":return Math.ceil(Y*Q)/Q;default:throw new RangeError(`Value rounding ${W} is out of range`)}}function ss(Y){return Y%4===0&&(Y%100!==0||Y%400===0)}function Al(Y){return ss(Y)?366:365}function na(Y,M){const W=Rr(M-1,12)+1,Q=Y+(M-W)/12;return W===2?ss(Q)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][W-1]}function Dl(Y){let M=Date.UTC(Y.year,Y.month-1,Y.day,Y.hour,Y.minute,Y.second,Y.millisecond);return Y.year<100&&Y.year>=0&&(M=new Date(M),M.setUTCFullYear(Y.year,Y.month-1,Y.day)),+M}function Rd(Y,M,W){return-_t(wt(Y,1,M),W)+M-1}function Zs(Y,M=4,W=1){const Q=Rd(Y,M,W),ae=Rd(Y+1,M,W);return(Al(Y)-Q+ae)/7}function ls(Y){return Y>99?Y:Y>rt.twoDigitCutoffYear?1900+Y:2e3+Y}function Md(Y,M,W,Q=null){const ae=new Date(Y),ke={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};Q&&(ke.timeZone=Q);const $e={timeZoneName:M,...ke},qe=new Intl.DateTimeFormat(W,$e).formatToParts(ae).find(Xe=>Xe.type.toLowerCase()==="timezonename");return qe?qe.value:null}function Ec(Y,M){let W=parseInt(Y,10);Number.isNaN(W)&&(W=0);const Q=parseInt(M,10)||0,ae=W<0||Object.is(W,-0)?-Q:Q;return W*60+ae}function Js(Y){const M=Number(Y);if(typeof Y=="boolean"||Y===""||!Number.isFinite(M))throw new i(`Invalid unit value ${Y}`);return M}function mu(Y,M){const W={};for(const Q in Y)if(It(Y,Q)){const ae=Y[Q];if(ae==null)continue;W[M(Q)]=Js(ae)}return W}function Ol(Y,M){const W=Math.trunc(Math.abs(Y/60)),Q=Math.trunc(Math.abs(Y%60)),ae=Y>=0?"+":"-";switch(M){case"short":return`${ae}${wr(W,2)}:${wr(Q,2)}`;case"narrow":return`${ae}${W}${Q>0?`:${Q}`:""}`;case"techie":return`${ae}${wr(W,2)}${wr(Q,2)}`;default:throw new RangeError(`Value format ${M} is out of range for property format`)}}function Cc(Y){return Ft(Y,["hour","minute","second","millisecond"])}const Pd=["January","February","March","April","May","June","July","August","September","October","November","December"],lp=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Bm=["J","F","M","A","M","J","J","A","S","O","N","D"];function Tc(Y){switch(Y){case"narrow":return[...Bm];case"short":return[...lp];case"long":return[...Pd];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const gu=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],yu=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],Rl=["M","T","W","T","F","S","S"];function el(Y){switch(Y){case"narrow":return[...Rl];case"short":return[...yu];case"long":return[...gu];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const Nd=["AM","PM"],Id=["Before Christ","Anno Domini"],cp=["BC","AD"],wc=["B","A"];function Ja(Y){switch(Y){case"narrow":return[...wc];case"short":return[...cp];case"long":return[...Id];default:return null}}function Ld(Y){return Nd[Y.hour<12?0:1]}function kc(Y,M){return el(M)[Y.weekday-1]}function cs(Y,M){return Tc(M)[Y.month-1]}function _d(Y,M){return Ja(M)[Y.year<0?0:1]}function vu(Y,M,W="always",Q=!1){const ae={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},ke=["hours","minutes","seconds"].indexOf(Y)===-1;if(W==="auto"&&ke){const Xn=Y==="days";switch(M){case 1:return Xn?"tomorrow":`next ${ae[Y][0]}`;case-1:return Xn?"yesterday":`last ${ae[Y][0]}`;case 0:return Xn?"today":`this ${ae[Y][0]}`}}const $e=Object.is(M,-0)||M<0,qe=Math.abs(M),Xe=qe===1,Ht=ae[Y],Mn=Q?Xe?Ht[1]:Ht[2]||Ht[1]:Xe?ae[Y][0]:Y;return $e?`${qe} ${Mn} ago`:`in ${qe} ${Mn}`}function Fd(Y,M){let W="";for(const Q of Y)Q.literal?W+=Q.val:W+=M(Q.val);return W}const bu={D:p,DD:g,DDD:v,DDDD:S,t:E,tt:b,ttt:C,tttt:T,T:O,TT:R,TTT:A,TTTT:I,f:F,ff:z,fff:H,ffff:V,F:_,FF:$,FFF:L,FFFF:j};class To{static create(M,W={}){return new To(M,W)}static parseFormat(M){let W=null,Q="",ae=!1;const ke=[];for(let $e=0;$e<M.length;$e++){const qe=M.charAt($e);qe==="'"?((Q.length>0||ae)&&ke.push({literal:ae||/^\s+$/.test(Q),val:Q===""?"'":Q}),W=null,Q="",ae=!ae):ae||qe===W?Q+=qe:(Q.length>0&&ke.push({literal:/^\s+$/.test(Q),val:Q}),Q=qe,W=qe)}return Q.length>0&&ke.push({literal:ae||/^\s+$/.test(Q),val:Q}),ke}static macroTokenToFormatOpts(M){return bu[M]}constructor(M,W){this.opts=W,this.loc=M,this.systemLoc=null}formatWithSystemDefault(M,W){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(M,{...this.opts,...W}).format()}dtFormatter(M,W={}){return this.loc.dtFormatter(M,{...this.opts,...W})}formatDateTime(M,W){return this.dtFormatter(M,W).format()}formatDateTimeParts(M,W){return this.dtFormatter(M,W).formatToParts()}formatInterval(M,W){return this.dtFormatter(M.start,W).dtf.formatRange(M.start.toJSDate(),M.end.toJSDate())}resolvedOptions(M,W){return this.dtFormatter(M,W).resolvedOptions()}num(M,W=0,Q=void 0){if(this.opts.forceSimple)return wr(M,W);const ae={...this.opts};return W>0&&(ae.padTo=W),Q&&(ae.signDisplay=Q),this.loc.numberFormatter(ae).format(M)}formatDateTimeFromString(M,W){const Q=this.loc.listingMode()==="en",ae=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",ke=(_n,go)=>this.loc.extract(M,_n,go),$e=_n=>M.isOffsetFixed&&M.offset===0&&_n.allowZ?"Z":M.isValid?M.zone.formatOffset(M.ts,_n.format):"",qe=()=>Q?Ld(M):ke({hour:"numeric",hourCycle:"h12"},"dayperiod"),Xe=(_n,go)=>Q?cs(M,_n):ke(go?{month:_n}:{month:_n,day:"numeric"},"month"),Ht=(_n,go)=>Q?kc(M,_n):ke(go?{weekday:_n}:{weekday:_n,month:"long",day:"numeric"},"weekday"),Mn=_n=>{const go=To.macroTokenToFormatOpts(_n);return go?this.formatWithSystemDefault(M,go):_n},Xn=_n=>Q?_d(M,_n):ke({era:_n},"era"),kr=_n=>{switch(_n){case"S":return this.num(M.millisecond);case"u":case"SSS":return this.num(M.millisecond,3);case"s":return this.num(M.second);case"ss":return this.num(M.second,2);case"uu":return this.num(Math.floor(M.millisecond/10),2);case"uuu":return this.num(Math.floor(M.millisecond/100));case"m":return this.num(M.minute);case"mm":return this.num(M.minute,2);case"h":return this.num(M.hour%12===0?12:M.hour%12);case"hh":return this.num(M.hour%12===0?12:M.hour%12,2);case"H":return this.num(M.hour);case"HH":return this.num(M.hour,2);case"Z":return $e({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return $e({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return $e({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return M.zone.offsetName(M.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return M.zone.offsetName(M.ts,{format:"long",locale:this.loc.locale});case"z":return M.zoneName;case"a":return qe();case"d":return ae?ke({day:"numeric"},"day"):this.num(M.day);case"dd":return ae?ke({day:"2-digit"},"day"):this.num(M.day,2);case"c":return this.num(M.weekday);case"ccc":return Ht("short",!0);case"cccc":return Ht("long",!0);case"ccccc":return Ht("narrow",!0);case"E":return this.num(M.weekday);case"EEE":return Ht("short",!1);case"EEEE":return Ht("long",!1);case"EEEEE":return Ht("narrow",!1);case"L":return ae?ke({month:"numeric",day:"numeric"},"month"):this.num(M.month);case"LL":return ae?ke({month:"2-digit",day:"numeric"},"month"):this.num(M.month,2);case"LLL":return Xe("short",!0);case"LLLL":return Xe("long",!0);case"LLLLL":return Xe("narrow",!0);case"M":return ae?ke({month:"numeric"},"month"):this.num(M.month);case"MM":return ae?ke({month:"2-digit"},"month"):this.num(M.month,2);case"MMM":return Xe("short",!1);case"MMMM":return Xe("long",!1);case"MMMMM":return Xe("narrow",!1);case"y":return ae?ke({year:"numeric"},"year"):this.num(M.year);case"yy":return ae?ke({year:"2-digit"},"year"):this.num(M.year.toString().slice(-2),2);case"yyyy":return ae?ke({year:"numeric"},"year"):this.num(M.year,4);case"yyyyyy":return ae?ke({year:"numeric"},"year"):this.num(M.year,6);case"G":return Xn("short");case"GG":return Xn("long");case"GGGGG":return Xn("narrow");case"kk":return this.num(M.weekYear.toString().slice(-2),2);case"kkkk":return this.num(M.weekYear,4);case"W":return this.num(M.weekNumber);case"WW":return this.num(M.weekNumber,2);case"n":return this.num(M.localWeekNumber);case"nn":return this.num(M.localWeekNumber,2);case"ii":return this.num(M.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(M.localWeekYear,4);case"o":return this.num(M.ordinal);case"ooo":return this.num(M.ordinal,3);case"q":return this.num(M.quarter);case"qq":return this.num(M.quarter,2);case"X":return this.num(Math.floor(M.ts/1e3));case"x":return this.num(M.ts);default:return Mn(_n)}};return Fd(To.parseFormat(W),kr)}formatDurationFromString(M,W){const Q=this.opts.signMode==="negativeLargestOnly"?-1:1,ae=Mn=>{switch(Mn[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},ke=(Mn,Xn)=>kr=>{const _n=ae(kr);if(_n){const go=Xn.isNegativeDuration&&_n!==Xn.largestUnit?Q:1;let ca;return this.opts.signMode==="negativeLargestOnly"&&_n!==Xn.largestUnit?ca="never":this.opts.signMode==="all"?ca="always":ca="auto",this.num(Mn.get(_n)*go,kr.length,ca)}else return kr},$e=To.parseFormat(W),qe=$e.reduce((Mn,{literal:Xn,val:kr})=>Xn?Mn:Mn.concat(kr),[]),Xe=M.shiftTo(...qe.map(ae).filter(Mn=>Mn)),Ht={isNegativeDuration:Xe<0,largestUnit:Object.keys(Xe.values)[0]};return Fd($e,ke(Xe,Ht))}}const jd=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function U(...Y){const M=Y.reduce((W,Q)=>W+Q.source,"");return RegExp(`^${M}$`)}function zo(...Y){return M=>Y.reduce(([W,Q,ae],ke)=>{const[$e,qe,Xe]=ke(M,ae);return[{...W,...$e},qe||Q,Xe]},[{},null,1]).slice(0,2)}function wo(Y,...M){if(Y==null)return[null,null];for(const[W,Q]of M){const ae=W.exec(Y);if(ae)return Q(ae)}return[null,null]}function wi(...Y){return(M,W)=>{const Q={};let ae;for(ae=0;ae<Y.length;ae++)Q[Y[ae]]=Ti(M[W+ae]);return[Q,null,W+ae]}}const _e=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,tl=`(?:${_e.source}?(?:\\[(${jd.source})\\])?)?`,Qn=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,la=RegExp(`${Qn.source}${tl}`),Ml=RegExp(`(?:[Tt]${la.source})?`),$d=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,up=/(\d{4})-?W(\d\d)(?:-?(\d))?/,dp=/(\d{4})-?(\d{3})/,dt=wi("weekYear","weekNumber","weekDay"),Bd=wi("year","ordinal"),zd=/(\d{4})-(\d\d)-(\d\d)/,xu=RegExp(`${Qn.source} ?(?:${_e.source}|(${jd.source}))?`),fp=RegExp(`(?: ${xu.source})?`);function Pl(Y,M,W){const Q=Y[M];return st(Q)?W:Ti(Q)}function Ac(Y,M){return[{year:Pl(Y,M),month:Pl(Y,M+1,1),day:Pl(Y,M+2,1)},null,M+3]}function nl(Y,M){return[{hours:Pl(Y,M,0),minutes:Pl(Y,M+1,0),seconds:Pl(Y,M+2,0),milliseconds:kl(Y[M+3])},null,M+4]}function Nl(Y,M){const W=!Y[M]&&!Y[M+1],Q=Ec(Y[M+1],Y[M+2]),ae=W?null:Rt.instance(Q);return[{},ae,M+3]}function Aa(Y,M){const W=Y[M]?ne.create(Y[M]):null;return[{},W,M+1]}const zm=RegExp(`^T?${Qn.source}$`),Hm=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function Dc(Y){const[M,W,Q,ae,ke,$e,qe,Xe,Ht]=Y,Mn=M[0]==="-",Xn=Xe&&Xe[0]==="-",kr=(_n,go=!1)=>_n!==void 0&&(go||_n&&Mn)?-_n:_n;return[{years:kr(Xs(W)),months:kr(Xs(Q)),weeks:kr(Xs(ae)),days:kr(Xs(ke)),hours:kr(Xs($e)),minutes:kr(Xs(qe)),seconds:kr(Xs(Xe),Xe==="-0"),milliseconds:kr(kl(Ht),Xn)}]}const pp={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Hd(Y,M,W,Q,ae,ke,$e){const qe={year:M.length===2?ls(Ti(M)):Ti(M),month:lp.indexOf(W)+1,day:Ti(Q),hour:Ti(ae),minute:Ti(ke)};return $e&&(qe.second=Ti($e)),Y&&(qe.weekday=Y.length>3?gu.indexOf(Y)+1:yu.indexOf(Y)+1),qe}const Um=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function hp(Y){const[,M,W,Q,ae,ke,$e,qe,Xe,Ht,Mn,Xn]=Y,kr=Hd(M,ae,Q,W,ke,$e,qe);let _n;return Xe?_n=pp[Xe]:Ht?_n=0:_n=Ec(Mn,Xn),[kr,new Rt(_n)]}function Vm(Y){return Y.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const mp=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Ud=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Wm=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Su(Y){const[,M,W,Q,ae,ke,$e,qe]=Y;return[Hd(M,ae,Q,W,ke,$e,qe),Rt.utcInstance]}function qm(Y){const[,M,W,Q,ae,ke,$e,qe]=Y;return[Hd(M,qe,W,Q,ae,ke,$e),Rt.utcInstance]}const Gm=U($d,Ml),Ym=U(up,Ml),Km=U(dp,Ml),Vd=U(la),Il=zo(Ac,nl,Nl,Aa),Qm=zo(dt,nl,Nl,Aa),gp=zo(Bd,nl,Nl,Aa),yp=zo(nl,Nl,Aa);function vp(Y){return wo(Y,[Gm,Il],[Ym,Qm],[Km,gp],[Vd,yp])}function bp(Y){return wo(Vm(Y),[Um,hp])}function xp(Y){return wo(Y,[mp,Su],[Ud,Su],[Wm,qm])}function Ll(Y){return wo(Y,[Hm,Dc])}const Xm=zo(nl);function Zm(Y){return wo(Y,[zm,Xm])}const Jm=U(zd,fp),Sp=U(xu),Ep=zo(nl,Nl,Aa);function Oc(Y){return wo(Y,[Jm,Il],[Sp,Ep])}const vr="Invalid Duration",rl={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},mo={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...rl},q=146097/400,X=146097/4800,K={years:{quarters:4,months:12,weeks:q/7,days:q,hours:q*24,minutes:q*24*60,seconds:q*24*60*60,milliseconds:q*24*60*60*1e3},quarters:{months:3,weeks:q/28,days:q/4,hours:q*24/4,minutes:q*24*60/4,seconds:q*24*60*60/4,milliseconds:q*24*60*60*1e3/4},months:{weeks:X/7,days:X,hours:X*24,minutes:X*24*60,seconds:X*24*60*60,milliseconds:X*24*60*60*1e3},...rl},Me=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],cn=Me.slice(0).reverse();function on(Y,M,W=!1){const Q={values:W?M.values:{...Y.values,...M.values||{}},loc:Y.loc.clone(M.loc),conversionAccuracy:M.conversionAccuracy||Y.conversionAccuracy,matrix:M.matrix||Y.matrix};return new ln(Q)}function Vn(Y,M){var W;let Q=(W=M.milliseconds)!=null?W:0;for(const ae of cn.slice(1))M[ae]&&(Q+=M[ae]*Y[ae].milliseconds);return Q}function ur(Y,M){const W=Vn(Y,M)<0?-1:1;Me.reduceRight((Q,ae)=>{if(st(M[ae]))return Q;if(Q){const ke=M[Q]*W,$e=Y[ae][Q],qe=Math.floor(ke/$e);M[ae]+=qe*W,M[Q]-=qe*$e*W}return ae},null),Me.reduce((Q,ae)=>{if(st(M[ae]))return Q;if(Q){const ke=M[Q]%1;M[Q]-=ke,M[ae]+=ke*Y[Q][ae]}return ae},null)}function dr(Y){const M={};for(const[W,Q]of Object.entries(Y))Q!==0&&(M[W]=Q);return M}class ln{constructor(M){const W=M.conversionAccuracy==="longterm"||!1;let Q=W?K:mo;M.matrix&&(Q=M.matrix),this.values=M.values,this.loc=M.loc||Ne.create(),this.conversionAccuracy=W?"longterm":"casual",this.invalid=M.invalid||null,this.matrix=Q,this.isLuxonDuration=!0}static fromMillis(M,W){return ln.fromObject({milliseconds:M},W)}static fromObject(M,W={}){if(M==null||typeof M!="object")throw new i(`Duration.fromObject: argument expected to be an object, got ${M===null?"null":typeof M}`);return new ln({values:mu(M,ln.normalizeUnit),loc:Ne.fromObject(W),conversionAccuracy:W.conversionAccuracy,matrix:W.matrix})}static fromDurationLike(M){if(vn(M))return ln.fromMillis(M);if(ln.isDuration(M))return M;if(typeof M=="object")return ln.fromObject(M);throw new i(`Unknown duration argument ${M} of type ${typeof M}`)}static fromISO(M,W){const[Q]=Ll(M);return Q?ln.fromObject(Q,W):ln.invalid("unparsable",`the input "${M}" can't be parsed as ISO 8601`)}static fromISOTime(M,W){const[Q]=Zm(M);return Q?ln.fromObject(Q,W):ln.invalid("unparsable",`the input "${M}" can't be parsed as ISO 8601`)}static invalid(M,W=null){if(!M)throw new i("need to specify a reason the Duration is invalid");const Q=M instanceof St?M:new St(M,W);if(rt.throwOnInvalid)throw new r(Q);return new ln({invalid:Q})}static normalizeUnit(M){const W={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[M&&M.toLowerCase()];if(!W)throw new a(M);return W}static isDuration(M){return M&&M.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(M,W={}){const Q={...W,floor:W.round!==!1&&W.floor!==!1};return this.isValid?To.create(this.loc,Q).formatDurationFromString(this,M):vr}toHuman(M={}){if(!this.isValid)return vr;const W=M.showZeros!==!1,Q=Me.map(ae=>{const ke=this.values[ae];return st(ke)||ke===0&&!W?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...M,unit:ae.slice(0,-1)}).format(ke)}).filter(ae=>ae);return this.loc.listFormatter({type:"conjunction",style:M.listStyle||"narrow",...M}).format(Q)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let M="P";return this.years!==0&&(M+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(M+=this.months+this.quarters*3+"M"),this.weeks!==0&&(M+=this.weeks+"W"),this.days!==0&&(M+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(M+="T"),this.hours!==0&&(M+=this.hours+"H"),this.minutes!==0&&(M+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(M+=hu(this.seconds+this.milliseconds/1e3,3)+"S"),M==="P"&&(M+="T0S"),M}toISOTime(M={}){if(!this.isValid)return null;const W=this.toMillis();return W<0||W>=864e5?null:(M={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...M,includeOffset:!1},Rn.fromMillis(W,{zone:"UTC"}).toISOTime(M))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?Vn(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(M){if(!this.isValid)return this;const W=ln.fromDurationLike(M),Q={};for(const ae of Me)(It(W.values,ae)||It(this.values,ae))&&(Q[ae]=W.get(ae)+this.get(ae));return on(this,{values:Q},!0)}minus(M){if(!this.isValid)return this;const W=ln.fromDurationLike(M);return this.plus(W.negate())}mapUnits(M){if(!this.isValid)return this;const W={};for(const Q of Object.keys(this.values))W[Q]=Js(M(this.values[Q],Q));return on(this,{values:W},!0)}get(M){return this[ln.normalizeUnit(M)]}set(M){if(!this.isValid)return this;const W={...this.values,...mu(M,ln.normalizeUnit)};return on(this,{values:W})}reconfigure({locale:M,numberingSystem:W,conversionAccuracy:Q,matrix:ae}={}){const ke={loc:this.loc.clone({locale:M,numberingSystem:W}),matrix:ae,conversionAccuracy:Q};return on(this,ke)}as(M){return this.isValid?this.shiftTo(M).get(M):NaN}normalize(){if(!this.isValid)return this;const M=this.toObject();return ur(this.matrix,M),on(this,{values:M},!0)}rescale(){if(!this.isValid)return this;const M=dr(this.normalize().shiftToAll().toObject());return on(this,{values:M},!0)}shiftTo(...M){if(!this.isValid)return this;if(M.length===0)return this;M=M.map($e=>ln.normalizeUnit($e));const W={},Q={},ae=this.toObject();let ke;for(const $e of Me)if(M.indexOf($e)>=0){ke=$e;let qe=0;for(const Ht in Q)qe+=this.matrix[Ht][$e]*Q[Ht],Q[Ht]=0;vn(ae[$e])&&(qe+=ae[$e]);const Xe=Math.trunc(qe);W[$e]=Xe,Q[$e]=(qe*1e3-Xe*1e3)/1e3}else vn(ae[$e])&&(Q[$e]=ae[$e]);for(const $e in Q)Q[$e]!==0&&(W[ke]+=$e===ke?Q[$e]:Q[$e]/this.matrix[ke][$e]);return ur(this.matrix,W),on(this,{values:W},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const M={};for(const W of Object.keys(this.values))M[W]=this.values[W]===0?0:-this.values[W];return on(this,{values:M},!0)}removeZeros(){if(!this.isValid)return this;const M=dr(this.values);return on(this,{values:M},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(M){if(!this.isValid||!M.isValid||!this.loc.equals(M.loc))return!1;function W(Q,ae){return Q===void 0||Q===0?ae===void 0||ae===0:Q===ae}for(const Q of Me)if(!W(this.values[Q],M.values[Q]))return!1;return!0}}const Ur="Invalid Interval";function Vr(Y,M){return!Y||!Y.isValid?Cn.invalid("missing or invalid start"):!M||!M.isValid?Cn.invalid("missing or invalid end"):M<Y?Cn.invalid("end before start",`The end of an interval must be after its start, but you had start=${Y.toISO()} and end=${M.toISO()}`):null}class Cn{constructor(M){this.s=M.start,this.e=M.end,this.invalid=M.invalid||null,this.isLuxonInterval=!0}static invalid(M,W=null){if(!M)throw new i("need to specify a reason the Interval is invalid");const Q=M instanceof St?M:new St(M,W);if(rt.throwOnInvalid)throw new n(Q);return new Cn({invalid:Q})}static fromDateTimes(M,W){const Q=Mi(M),ae=Mi(W);return Vr(Q,ae)??new Cn({start:Q,end:ae})}static after(M,W){const Q=ln.fromDurationLike(W),ae=Mi(M);return Cn.fromDateTimes(ae,ae.plus(Q))}static before(M,W){const Q=ln.fromDurationLike(W),ae=Mi(M);return Cn.fromDateTimes(ae.minus(Q),ae)}static fromISO(M,W){const[Q,ae]=(M||"").split("/",2);if(Q&&ae){let ke,$e;try{ke=Rn.fromISO(Q,W),$e=ke.isValid}catch{$e=!1}let qe,Xe;try{qe=Rn.fromISO(ae,W),Xe=qe.isValid}catch{Xe=!1}if($e&&Xe)return Cn.fromDateTimes(ke,qe);if($e){const Ht=ln.fromISO(ae,W);if(Ht.isValid)return Cn.after(ke,Ht)}else if(Xe){const Ht=ln.fromISO(Q,W);if(Ht.isValid)return Cn.before(qe,Ht)}}return Cn.invalid("unparsable",`the input "${M}" can't be parsed as ISO 8601`)}static isInterval(M){return M&&M.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(M="milliseconds"){return this.isValid?this.toDuration(M).get(M):NaN}count(M="milliseconds",W){if(!this.isValid)return NaN;const Q=this.start.startOf(M,W);let ae;return W!=null&&W.useLocaleWeeks?ae=this.end.reconfigure({locale:Q.locale}):ae=this.end,ae=ae.startOf(M,W),Math.floor(ae.diff(Q,M).get(M))+(ae.valueOf()!==this.end.valueOf())}hasSame(M){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,M):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(M){return this.isValid?this.s>M:!1}isBefore(M){return this.isValid?this.e<=M:!1}contains(M){return this.isValid?this.s<=M&&this.e>M:!1}set({start:M,end:W}={}){return this.isValid?Cn.fromDateTimes(M||this.s,W||this.e):this}splitAt(...M){if(!this.isValid)return[];const W=M.map(Mi).filter($e=>this.contains($e)).sort(($e,qe)=>$e.toMillis()-qe.toMillis()),Q=[];let{s:ae}=this,ke=0;for(;ae<this.e;){const $e=W[ke]||this.e,qe=+$e>+this.e?this.e:$e;Q.push(Cn.fromDateTimes(ae,qe)),ae=qe,ke+=1}return Q}splitBy(M){const W=ln.fromDurationLike(M);if(!this.isValid||!W.isValid||W.as("milliseconds")===0)return[];let{s:Q}=this,ae=1,ke;const $e=[];for(;Q<this.e;){const qe=this.start.plus(W.mapUnits(Xe=>Xe*ae));ke=+qe>+this.e?this.e:qe,$e.push(Cn.fromDateTimes(Q,ke)),Q=ke,ae+=1}return $e}divideEqually(M){return this.isValid?this.splitBy(this.length()/M).slice(0,M):[]}overlaps(M){return this.e>M.s&&this.s<M.e}abutsStart(M){return this.isValid?+this.e==+M.s:!1}abutsEnd(M){return this.isValid?+M.e==+this.s:!1}engulfs(M){return this.isValid?this.s<=M.s&&this.e>=M.e:!1}equals(M){return!this.isValid||!M.isValid?!1:this.s.equals(M.s)&&this.e.equals(M.e)}intersection(M){if(!this.isValid)return this;const W=this.s>M.s?this.s:M.s,Q=this.e<M.e?this.e:M.e;return W>=Q?null:Cn.fromDateTimes(W,Q)}union(M){if(!this.isValid)return this;const W=this.s<M.s?this.s:M.s,Q=this.e>M.e?this.e:M.e;return Cn.fromDateTimes(W,Q)}static merge(M){const[W,Q]=M.sort((ae,ke)=>ae.s-ke.s).reduce(([ae,ke],$e)=>ke?ke.overlaps($e)||ke.abutsStart($e)?[ae,ke.union($e)]:[ae.concat([ke]),$e]:[ae,$e],[[],null]);return Q&&W.push(Q),W}static xor(M){let W=null,Q=0;const ae=[],ke=M.map(Xe=>[{time:Xe.s,type:"s"},{time:Xe.e,type:"e"}]),$e=Array.prototype.concat(...ke),qe=$e.sort((Xe,Ht)=>Xe.time-Ht.time);for(const Xe of qe)Q+=Xe.type==="s"?1:-1,Q===1?W=Xe.time:(W&&+W!=+Xe.time&&ae.push(Cn.fromDateTimes(W,Xe.time)),W=null);return Cn.merge(ae)}difference(...M){return Cn.xor([this].concat(M)).map(W=>this.intersection(W)).filter(W=>W&&!W.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Ur}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(M=p,W={}){return this.isValid?To.create(this.s.loc.clone(W),M).formatInterval(this):Ur}toISO(M){return this.isValid?`${this.s.toISO(M)}/${this.e.toISO(M)}`:Ur}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Ur}toISOTime(M){return this.isValid?`${this.s.toISOTime(M)}/${this.e.toISOTime(M)}`:Ur}toFormat(M,{separator:W=" – "}={}){return this.isValid?`${this.s.toFormat(M)}${W}${this.e.toFormat(M)}`:Ur}toDuration(M,W){return this.isValid?this.e.diff(this.s,M,W):ln.invalid(this.invalidReason)}mapEndpoints(M){return Cn.fromDateTimes(M(this.s),M(this.e))}}class jr{static hasDST(M=rt.defaultZone){const W=Rn.now().setZone(M).set({month:12});return!M.isUniversal&&W.offset!==W.set({month:6}).offset}static isValidIANAZone(M){return ne.isValidZone(M)}static normalizeZone(M){return Le(M,rt.defaultZone)}static getStartOfWeek({locale:M=null,locObj:W=null}={}){return(W||Ne.create(M)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:M=null,locObj:W=null}={}){return(W||Ne.create(M)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:M=null,locObj:W=null}={}){return(W||Ne.create(M)).getWeekendDays().slice()}static months(M="long",{locale:W=null,numberingSystem:Q=null,locObj:ae=null,outputCalendar:ke="gregory"}={}){return(ae||Ne.create(W,Q,ke)).months(M)}static monthsFormat(M="long",{locale:W=null,numberingSystem:Q=null,locObj:ae=null,outputCalendar:ke="gregory"}={}){return(ae||Ne.create(W,Q,ke)).months(M,!0)}static weekdays(M="long",{locale:W=null,numberingSystem:Q=null,locObj:ae=null}={}){return(ae||Ne.create(W,Q,null)).weekdays(M)}static weekdaysFormat(M="long",{locale:W=null,numberingSystem:Q=null,locObj:ae=null}={}){return(ae||Ne.create(W,Q,null)).weekdays(M,!0)}static meridiems({locale:M=null}={}){return Ne.create(M).meridiems()}static eras(M="short",{locale:W=null}={}){return Ne.create(W,null,"gregory").eras(M)}static features(){return{relative:je(),localeWeek:nt()}}}function io(Y,M){const W=ae=>ae.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),Q=W(M)-W(Y);return Math.floor(ln.fromMillis(Q).as("days"))}function uo(Y,M,W){const Q=[["years",(Xe,Ht)=>Ht.year-Xe.year],["quarters",(Xe,Ht)=>Ht.quarter-Xe.quarter+(Ht.year-Xe.year)*4],["months",(Xe,Ht)=>Ht.month-Xe.month+(Ht.year-Xe.year)*12],["weeks",(Xe,Ht)=>{const Mn=io(Xe,Ht);return(Mn-Mn%7)/7}],["days",io]],ae={},ke=Y;let $e,qe;for(const[Xe,Ht]of Q)W.indexOf(Xe)>=0&&($e=Xe,ae[Xe]=Ht(Y,M),qe=ke.plus(ae),qe>M?(ae[Xe]--,Y=ke.plus(ae),Y>M&&(qe=Y,ae[Xe]--,Y=ke.plus(ae))):Y=qe);return[Y,ae,qe,$e]}function ki(Y,M,W,Q){let[ae,ke,$e,qe]=uo(Y,M,W);const Xe=M-ae,Ht=W.filter(Xn=>["hours","minutes","seconds","milliseconds"].indexOf(Xn)>=0);Ht.length===0&&($e<M&&($e=ae.plus({[qe]:1})),$e!==ae&&(ke[qe]=(ke[qe]||0)+Xe/($e-ae)));const Mn=ln.fromObject(ke,Q);return Ht.length>0?ln.fromMillis(Xe,Q).shiftTo(...Ht).plus(Mn):Mn}const za="missing Intl.DateTimeFormat.formatToParts support";function Jn(Y,M=W=>W){return{regex:Y,deser:([W])=>M(pn(W))}}const Rc="[ ]",Ha=new RegExp(Rc,"g");function ol(Y){return Y.replace(/\./g,"\\.?").replace(Ha,Rc)}function Da(Y){return Y.replace(/\./g,"").replace(Ha," ").toLowerCase()}function ko(Y,M){return Y===null?null:{regex:RegExp(Y.map(ol).join("|")),deser:([W])=>Y.findIndex(Q=>Da(W)===Da(Q))+M}}function Mc(Y,M){return{regex:Y,deser:([,W,Q])=>Ec(W,Q),groups:M}}function Ho(Y){return{regex:Y,deser:([M])=>M}}function Eu(Y){return Y.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function eg(Y,M){const W=nn(M),Q=nn(M,"{2}"),ae=nn(M,"{3}"),ke=nn(M,"{4}"),$e=nn(M,"{6}"),qe=nn(M,"{1,2}"),Xe=nn(M,"{1,3}"),Ht=nn(M,"{1,6}"),Mn=nn(M,"{1,9}"),Xn=nn(M,"{2,4}"),kr=nn(M,"{4,6}"),_n=ca=>({regex:RegExp(Eu(ca.val)),deser:([ei])=>ei,literal:!0}),go=(ca=>{if(Y.literal)return _n(ca);switch(ca.val){case"G":return ko(M.eras("short"),0);case"GG":return ko(M.eras("long"),0);case"y":return Jn(Ht);case"yy":return Jn(Xn,ls);case"yyyy":return Jn(ke);case"yyyyy":return Jn(kr);case"yyyyyy":return Jn($e);case"M":return Jn(qe);case"MM":return Jn(Q);case"MMM":return ko(M.months("short",!0),1);case"MMMM":return ko(M.months("long",!0),1);case"L":return Jn(qe);case"LL":return Jn(Q);case"LLL":return ko(M.months("short",!1),1);case"LLLL":return ko(M.months("long",!1),1);case"d":return Jn(qe);case"dd":return Jn(Q);case"o":return Jn(Xe);case"ooo":return Jn(ae);case"HH":return Jn(Q);case"H":return Jn(qe);case"hh":return Jn(Q);case"h":return Jn(qe);case"mm":return Jn(Q);case"m":return Jn(qe);case"q":return Jn(qe);case"qq":return Jn(Q);case"s":return Jn(qe);case"ss":return Jn(Q);case"S":return Jn(Xe);case"SSS":return Jn(ae);case"u":return Ho(Mn);case"uu":return Ho(qe);case"uuu":return Jn(W);case"a":return ko(M.meridiems(),0);case"kkkk":return Jn(ke);case"kk":return Jn(Xn,ls);case"W":return Jn(qe);case"WW":return Jn(Q);case"E":case"c":return Jn(W);case"EEE":return ko(M.weekdays("short",!1),1);case"EEEE":return ko(M.weekdays("long",!1),1);case"ccc":return ko(M.weekdays("short",!0),1);case"cccc":return ko(M.weekdays("long",!0),1);case"Z":case"ZZ":return Mc(new RegExp(`([+-]${qe.source})(?::(${Q.source}))?`),2);case"ZZZ":return Mc(new RegExp(`([+-]${qe.source})(${Q.source})?`),2);case"z":return Ho(/[a-z_+-/]{1,256}?/i);case" ":return Ho(/[^\S\n\r]/);default:return _n(ca)}})(Y)||{invalidReason:za};return go.token=Y,go}const qb={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function Pc(Y,M,W){const{type:Q,value:ae}=Y;if(Q==="literal"){const Xe=/^\s+$/.test(ae);return{literal:!Xe,val:Xe?" ":ae}}const ke=M[Q];let $e=Q;Q==="hour"&&(M.hour12!=null?$e=M.hour12?"hour12":"hour24":M.hourCycle!=null?M.hourCycle==="h11"||M.hourCycle==="h12"?$e="hour12":$e="hour24":$e=W.hour12?"hour12":"hour24");let qe=qb[$e];if(typeof qe=="object"&&(qe=qe[ke]),qe)return{literal:!1,val:qe}}function Gb(Y){return[`^${Y.map(M=>M.regex).reduce((M,W)=>`${M}(${W.source})`,"")}$`,Y]}function Yb(Y,M,W){const Q=Y.match(M);if(Q){const ae={};let ke=1;for(const $e in W)if(It(W,$e)){const qe=W[$e],Xe=qe.groups?qe.groups+1:1;!qe.literal&&qe.token&&(ae[qe.token.val[0]]=qe.deser(Q.slice(ke,ke+Xe))),ke+=Xe}return[Q,ae]}else return[Q,{}]}function Kb(Y){const M=ae=>{switch(ae){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let W=null,Q;return st(Y.z)||(W=ne.create(Y.z)),st(Y.Z)||(W||(W=new Rt(Y.Z)),Q=Y.Z),st(Y.q)||(Y.M=(Y.q-1)*3+1),st(Y.h)||(Y.h<12&&Y.a===1?Y.h+=12:Y.h===12&&Y.a===0&&(Y.h=0)),Y.G===0&&Y.y&&(Y.y=-Y.y),st(Y.u)||(Y.S=kl(Y.u)),[Object.keys(Y).reduce((ae,ke)=>{const $e=M(ke);return $e&&(ae[$e]=Y[ke]),ae},{}),W,Q]}let tg=null;function _E(){return tg||(tg=Rn.fromMillis(1555555555555)),tg}function FE(Y,M){if(Y.literal)return Y;const W=To.macroTokenToFormatOpts(Y.val),Q=og(W,M);return Q==null||Q.includes(void 0)?Y:Q}function ng(Y,M){return Array.prototype.concat(...Y.map(W=>FE(W,M)))}class rg{constructor(M,W){if(this.locale=M,this.format=W,this.tokens=ng(To.parseFormat(W),M),this.units=this.tokens.map(Q=>eg(Q,M)),this.disqualifyingUnit=this.units.find(Q=>Q.invalidReason),!this.disqualifyingUnit){const[Q,ae]=Gb(this.units);this.regex=RegExp(Q,"i"),this.handlers=ae}}explainFromTokens(M){if(this.isValid){const[W,Q]=Yb(M,this.regex,this.handlers),[ae,ke,$e]=Q?Kb(Q):[null,null,void 0];if(It(Q,"a")&&It(Q,"H"))throw new o("Can't include meridiem when specifying 24-hour format");return{input:M,tokens:this.tokens,regex:this.regex,rawMatches:W,matches:Q,result:ae,zone:ke,specificOffset:$e}}else return{input:M,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function Cp(Y,M,W){return new rg(Y,W).explainFromTokens(M)}function Ai(Y,M,W){const{result:Q,zone:ae,specificOffset:ke,invalidReason:$e}=Cp(Y,M,W);return[Q,ae,ke,$e]}function og(Y,M){if(!Y)return null;const W=To.create(M,Y).dtFormatter(_E()),Q=W.formatToParts(),ae=W.resolvedOptions();return Q.map(ke=>Pc(ke,Y,ae))}const Oa="Invalid DateTime",Ua=864e13;function us(Y){return new St("unsupported zone",`the zone "${Y.name}" is not supported`)}function Wd(Y){return Y.weekData===null&&(Y.weekData=an(Y.c)),Y.weekData}function Cu(Y){return Y.localWeekData===null&&(Y.localWeekData=an(Y.c,Y.loc.getMinDaysInFirstWeek(),Y.loc.getStartOfWeek())),Y.localWeekData}function ds(Y,M){const W={ts:Y.ts,zone:Y.zone,c:Y.c,o:Y.o,loc:Y.loc,invalid:Y.invalid};return new Rn({...W,...M,old:W})}function Tp(Y,M,W){let Q=Y-M*60*1e3;const ae=W.offset(Q);if(M===ae)return[Q,M];Q-=(ae-M)*60*1e3;const ke=W.offset(Q);return ae===ke?[Q,ae]:[Y-Math.min(ae,ke)*60*1e3,Math.max(ae,ke)]}function al(Y,M){Y+=M*60*1e3;const W=new Date(Y);return{year:W.getUTCFullYear(),month:W.getUTCMonth()+1,day:W.getUTCDate(),hour:W.getUTCHours(),minute:W.getUTCMinutes(),second:W.getUTCSeconds(),millisecond:W.getUTCMilliseconds()}}function qd(Y,M,W){return Tp(Dl(Y),M,W)}function Gd(Y,M){const W=Y.o,Q=Y.c.year+Math.trunc(M.years),ae=Y.c.month+Math.trunc(M.months)+Math.trunc(M.quarters)*3,ke={...Y.c,year:Q,month:ae,day:Math.min(Y.c.day,na(Q,ae))+Math.trunc(M.days)+Math.trunc(M.weeks)*7},$e=ln.fromObject({years:M.years-Math.trunc(M.years),quarters:M.quarters-Math.trunc(M.quarters),months:M.months-Math.trunc(M.months),weeks:M.weeks-Math.trunc(M.weeks),days:M.days-Math.trunc(M.days),hours:M.hours,minutes:M.minutes,seconds:M.seconds,milliseconds:M.milliseconds}).as("milliseconds"),qe=Dl(ke);let[Xe,Ht]=Tp(qe,W,Y.zone);return $e!==0&&(Xe+=$e,Ht=Y.zone.offset(Xe)),{ts:Xe,o:Ht}}function Di(Y,M,W,Q,ae,ke){const{setZone:$e,zone:qe}=W;if(Y&&Object.keys(Y).length!==0||M){const Xe=M||qe,Ht=Rn.fromObject(Y,{...W,zone:Xe,specificOffset:ke});return $e?Ht:Ht.setZone(qe)}else return Rn.invalid(new St("unparsable",`the input "${ae}" can't be parsed as ${Q}`))}function wp(Y,M,W=!0){return Y.isValid?To.create(Ne.create("en-US"),{allowZ:W,forceSimple:!0}).formatDateTimeFromString(Y,M):null}function ya(Y,M,W){const Q=Y.c.year>9999||Y.c.year<0;let ae="";if(Q&&Y.c.year>=0&&(ae+="+"),ae+=wr(Y.c.year,Q?6:4),W==="year")return ae;if(M){if(ae+="-",ae+=wr(Y.c.month),W==="month")return ae;ae+="-"}else if(ae+=wr(Y.c.month),W==="month")return ae;return ae+=wr(Y.c.day),ae}function kp(Y,M,W,Q,ae,ke,$e){let qe=!W||Y.c.millisecond!==0||Y.c.second!==0,Xe="";switch($e){case"day":case"month":case"year":break;default:if(Xe+=wr(Y.c.hour),$e==="hour")break;if(M){if(Xe+=":",Xe+=wr(Y.c.minute),$e==="minute")break;qe&&(Xe+=":",Xe+=wr(Y.c.second))}else{if(Xe+=wr(Y.c.minute),$e==="minute")break;qe&&(Xe+=wr(Y.c.second))}if($e==="second")break;qe&&(!Q||Y.c.millisecond!==0)&&(Xe+=".",Xe+=wr(Y.c.millisecond,3))}return ae&&(Y.isOffsetFixed&&Y.offset===0&&!ke?Xe+="Z":Y.o<0?(Xe+="-",Xe+=wr(Math.trunc(-Y.o/60)),Xe+=":",Xe+=wr(Math.trunc(-Y.o%60))):(Xe+="+",Xe+=wr(Math.trunc(Y.o/60)),Xe+=":",Xe+=wr(Math.trunc(Y.o%60)))),ke&&(Xe+="["+Y.zone.ianaName+"]"),Xe}const fs={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Qb={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Ap={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ps=["year","month","day","hour","minute","second","millisecond"],ag=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],ig=["year","ordinal","hour","minute","second","millisecond"];function il(Y){const M={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[Y.toLowerCase()];if(!M)throw new a(Y);return M}function Nc(Y){switch(Y.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return il(Y)}}function Dp(Y){if(Oi===void 0&&(Oi=rt.now()),Y.type!=="iana")return Y.offset(Oi);const M=Y.name;let W=Ri.get(M);return W===void 0&&(W=Y.offset(Oi),Ri.set(M,W)),W}function Yd(Y,M){const W=Le(M.zone,rt.defaultZone);if(!W.isValid)return Rn.invalid(us(W));const Q=Ne.fromObject(M);let ae,ke;if(st(Y.year))ae=rt.now();else{for(const Xe of ps)st(Y[Xe])&&(Y[Xe]=fs[Xe]);const $e=et(Y)||At(Y);if($e)return Rn.invalid($e);const qe=Dp(W);[ae,ke]=qd(Y,qe,W)}return new Rn({ts:ae,zone:W,loc:Q,o:ke})}function Va(Y,M,W){const Q=st(W.round)?!0:W.round,ae=st(W.rounding)?"trunc":W.rounding,ke=(qe,Xe)=>(qe=hu(qe,Q||W.calendary?0:2,W.calendary?"round":ae),M.loc.clone(W).relFormatter(W).format(qe,Xe)),$e=qe=>W.calendary?M.hasSame(Y,qe)?0:M.startOf(qe).diff(Y.startOf(qe),qe).get(qe):M.diff(Y,qe).get(qe);if(W.unit)return ke($e(W.unit),W.unit);for(const qe of W.units){const Xe=$e(qe);if(Math.abs(Xe)>=1)return ke(Xe,qe)}return ke(Y>M?-0:0,W.units[W.units.length-1])}function Wa(Y){let M={},W;return Y.length>0&&typeof Y[Y.length-1]=="object"?(M=Y[Y.length-1],W=Array.from(Y).slice(0,Y.length-1)):W=Array.from(Y),[M,W]}let Oi;const Ri=new Map;class Rn{constructor(M){const W=M.zone||rt.defaultZone;let Q=M.invalid||(Number.isNaN(M.ts)?new St("invalid input"):null)||(W.isValid?null:us(W));this.ts=st(M.ts)?rt.now():M.ts;let ae=null,ke=null;if(!Q)if(M.old&&M.old.ts===this.ts&&M.old.zone.equals(W))[ae,ke]=[M.old.c,M.old.o];else{const $e=vn(M.o)&&!M.old?M.o:W.offset(this.ts);ae=al(this.ts,$e),Q=Number.isNaN(ae.year)?new St("invalid input"):null,ae=Q?null:ae,ke=Q?null:$e}this._zone=W,this.loc=M.loc||Ne.create(),this.invalid=Q,this.weekData=null,this.localWeekData=null,this.c=ae,this.o=ke,this.isLuxonDateTime=!0}static now(){return new Rn({})}static local(){const[M,W]=Wa(arguments),[Q,ae,ke,$e,qe,Xe,Ht]=W;return Yd({year:Q,month:ae,day:ke,hour:$e,minute:qe,second:Xe,millisecond:Ht},M)}static utc(){const[M,W]=Wa(arguments),[Q,ae,ke,$e,qe,Xe,Ht]=W;return M.zone=Rt.utcInstance,Yd({year:Q,month:ae,day:ke,hour:$e,minute:qe,second:Xe,millisecond:Ht},M)}static fromJSDate(M,W={}){const Q=Te(M)?M.valueOf():NaN;if(Number.isNaN(Q))return Rn.invalid("invalid input");const ae=Le(W.zone,rt.defaultZone);return ae.isValid?new Rn({ts:Q,zone:ae,loc:Ne.fromObject(W)}):Rn.invalid(us(ae))}static fromMillis(M,W={}){if(vn(M))return M<-Ua||M>Ua?Rn.invalid("Timestamp out of range"):new Rn({ts:M,zone:Le(W.zone,rt.defaultZone),loc:Ne.fromObject(W)});throw new i(`fromMillis requires a numerical input, but received a ${typeof M} with value ${M}`)}static fromSeconds(M,W={}){if(vn(M))return new Rn({ts:M*1e3,zone:Le(W.zone,rt.defaultZone),loc:Ne.fromObject(W)});throw new i("fromSeconds requires a numerical input")}static fromObject(M,W={}){M=M||{};const Q=Le(W.zone,rt.defaultZone);if(!Q.isValid)return Rn.invalid(us(Q));const ae=Ne.fromObject(W),ke=mu(M,Nc),{minDaysInFirstWeek:$e,startOfWeek:qe}=wn(ke,ae),Xe=rt.now(),Ht=st(W.specificOffset)?Q.offset(Xe):W.specificOffset,Mn=!st(ke.ordinal),Xn=!st(ke.year),kr=!st(ke.month)||!st(ke.day),_n=Xn||kr,go=ke.weekYear||ke.weekNumber;if((_n||Mn)&&go)throw new o("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(kr&&Mn)throw new o("Can't mix ordinal dates with month/day");const ca=go||ke.weekday&&!_n;let ei,ti,ni=al(Xe,Ht);ca?(ei=ag,ti=Qb,ni=an(ni,$e,qe)):Mn?(ei=ig,ti=Ap,ni=cr(ni)):(ei=ps,ti=fs);let hs=!1;for(const _l of ei){const Zb=ke[_l];st(Zb)?hs?ke[_l]=ti[_l]:ke[_l]=ni[_l]:hs=!0}const sg=ca?ye(ke,$e,qe):Mn?be(ke):et(ke),Op=sg||At(ke);if(Op)return Rn.invalid(Op);const Kd=ca?Un(ke,$e,qe):Mn?In(ke):ke,[Rp,Ic]=qd(Kd,Ht,Q),Ro=new Rn({ts:Rp,zone:Q,o:Ic,loc:ae});return ke.weekday&&_n&&M.weekday!==Ro.weekday?Rn.invalid("mismatched weekday",`you can't specify both a weekday of ${ke.weekday} and a date of ${Ro.toISO()}`):Ro.isValid?Ro:Rn.invalid(Ro.invalid)}static fromISO(M,W={}){const[Q,ae]=vp(M);return Di(Q,ae,W,"ISO 8601",M)}static fromRFC2822(M,W={}){const[Q,ae]=bp(M);return Di(Q,ae,W,"RFC 2822",M)}static fromHTTP(M,W={}){const[Q,ae]=xp(M);return Di(Q,ae,W,"HTTP",W)}static fromFormat(M,W,Q={}){if(st(M)||st(W))throw new i("fromFormat requires an input string and a format");const{locale:ae=null,numberingSystem:ke=null}=Q,$e=Ne.fromOpts({locale:ae,numberingSystem:ke,defaultToEN:!0}),[qe,Xe,Ht,Mn]=Ai($e,M,W);return Mn?Rn.invalid(Mn):Di(qe,Xe,Q,`format ${W}`,M,Ht)}static fromString(M,W,Q={}){return Rn.fromFormat(M,W,Q)}static fromSQL(M,W={}){const[Q,ae]=Oc(M);return Di(Q,ae,W,"SQL",M)}static invalid(M,W=null){if(!M)throw new i("need to specify a reason the DateTime is invalid");const Q=M instanceof St?M:new St(M,W);if(rt.throwOnInvalid)throw new t(Q);return new Rn({invalid:Q})}static isDateTime(M){return M&&M.isLuxonDateTime||!1}static parseFormatForOpts(M,W={}){const Q=og(M,Ne.fromObject(W));return Q?Q.map(ae=>ae?ae.val:null).join(""):null}static expandFormat(M,W={}){return ng(To.parseFormat(M),Ne.fromObject(W)).map(Q=>Q.val).join("")}static resetCache(){Oi=void 0,Ri.clear()}get(M){return this[M]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Wd(this).weekYear:NaN}get weekNumber(){return this.isValid?Wd(this).weekNumber:NaN}get weekday(){return this.isValid?Wd(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Cu(this).weekday:NaN}get localWeekNumber(){return this.isValid?Cu(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Cu(this).weekYear:NaN}get ordinal(){return this.isValid?cr(this.c).ordinal:NaN}get monthShort(){return this.isValid?jr.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?jr.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?jr.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?jr.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const M=864e5,W=6e4,Q=Dl(this.c),ae=this.zone.offset(Q-M),ke=this.zone.offset(Q+M),$e=this.zone.offset(Q-ae*W),qe=this.zone.offset(Q-ke*W);if($e===qe)return[this];const Xe=Q-$e*W,Ht=Q-qe*W,Mn=al(Xe,$e),Xn=al(Ht,qe);return Mn.hour===Xn.hour&&Mn.minute===Xn.minute&&Mn.second===Xn.second&&Mn.millisecond===Xn.millisecond?[ds(this,{ts:Xe}),ds(this,{ts:Ht})]:[this]}get isInLeapYear(){return ss(this.year)}get daysInMonth(){return na(this.year,this.month)}get daysInYear(){return this.isValid?Al(this.year):NaN}get weeksInWeekYear(){return this.isValid?Zs(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Zs(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(M={}){const{locale:W,numberingSystem:Q,calendar:ae}=To.create(this.loc.clone(M),M).resolvedOptions(this);return{locale:W,numberingSystem:Q,outputCalendar:ae}}toUTC(M=0,W={}){return this.setZone(Rt.instance(M),W)}toLocal(){return this.setZone(rt.defaultZone)}setZone(M,{keepLocalTime:W=!1,keepCalendarTime:Q=!1}={}){if(M=Le(M,rt.defaultZone),M.equals(this.zone))return this;if(M.isValid){let ae=this.ts;if(W||Q){const ke=M.offset(this.ts),$e=this.toObject();[ae]=qd($e,ke,M)}return ds(this,{ts:ae,zone:M})}else return Rn.invalid(us(M))}reconfigure({locale:M,numberingSystem:W,outputCalendar:Q}={}){const ae=this.loc.clone({locale:M,numberingSystem:W,outputCalendar:Q});return ds(this,{loc:ae})}setLocale(M){return this.reconfigure({locale:M})}set(M){if(!this.isValid)return this;const W=mu(M,Nc),{minDaysInFirstWeek:Q,startOfWeek:ae}=wn(W,this.loc),ke=!st(W.weekYear)||!st(W.weekNumber)||!st(W.weekday),$e=!st(W.ordinal),qe=!st(W.year),Xe=!st(W.month)||!st(W.day),Ht=qe||Xe,Mn=W.weekYear||W.weekNumber;if((Ht||$e)&&Mn)throw new o("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(Xe&&$e)throw new o("Can't mix ordinal dates with month/day");let Xn;ke?Xn=Un({...an(this.c,Q,ae),...W},Q,ae):st(W.ordinal)?(Xn={...this.toObject(),...W},st(W.day)&&(Xn.day=Math.min(na(Xn.year,Xn.month),Xn.day))):Xn=In({...cr(this.c),...W});const[kr,_n]=qd(Xn,this.o,this.zone);return ds(this,{ts:kr,o:_n})}plus(M){if(!this.isValid)return this;const W=ln.fromDurationLike(M);return ds(this,Gd(this,W))}minus(M){if(!this.isValid)return this;const W=ln.fromDurationLike(M).negate();return ds(this,Gd(this,W))}startOf(M,{useLocaleWeeks:W=!1}={}){if(!this.isValid)return this;const Q={},ae=ln.normalizeUnit(M);switch(ae){case"years":Q.month=1;case"quarters":case"months":Q.day=1;case"weeks":case"days":Q.hour=0;case"hours":Q.minute=0;case"minutes":Q.second=0;case"seconds":Q.millisecond=0;break}if(ae==="weeks")if(W){const ke=this.loc.getStartOfWeek(),{weekday:$e}=this;$e<ke&&(Q.weekNumber=this.weekNumber-1),Q.weekday=ke}else Q.weekday=1;if(ae==="quarters"){const ke=Math.ceil(this.month/3);Q.month=(ke-1)*3+1}return this.set(Q)}endOf(M,W){return this.isValid?this.plus({[M]:1}).startOf(M,W).minus(1):this}toFormat(M,W={}){return this.isValid?To.create(this.loc.redefaultToEN(W)).formatDateTimeFromString(this,M):Oa}toLocaleString(M=p,W={}){return this.isValid?To.create(this.loc.clone(W),M).formatDateTime(this):Oa}toLocaleParts(M={}){return this.isValid?To.create(this.loc.clone(M),M).formatDateTimeParts(this):[]}toISO({format:M="extended",suppressSeconds:W=!1,suppressMilliseconds:Q=!1,includeOffset:ae=!0,extendedZone:ke=!1,precision:$e="milliseconds"}={}){if(!this.isValid)return null;$e=il($e);const qe=M==="extended";let Xe=ya(this,qe,$e);return ps.indexOf($e)>=3&&(Xe+="T"),Xe+=kp(this,qe,W,Q,ae,ke,$e),Xe}toISODate({format:M="extended",precision:W="day"}={}){return this.isValid?ya(this,M==="extended",il(W)):null}toISOWeekDate(){return wp(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:M=!1,suppressSeconds:W=!1,includeOffset:Q=!0,includePrefix:ae=!1,extendedZone:ke=!1,format:$e="extended",precision:qe="milliseconds"}={}){return this.isValid?(qe=il(qe),(ae&&ps.indexOf(qe)>=3?"T":"")+kp(this,$e==="extended",W,M,Q,ke,qe)):null}toRFC2822(){return wp(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return wp(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?ya(this,!0):null}toSQLTime({includeOffset:M=!0,includeZone:W=!1,includeOffsetSpace:Q=!0}={}){let ae="HH:mm:ss.SSS";return(W||M)&&(Q&&(ae+=" "),W?ae+="z":M&&(ae+="ZZ")),wp(this,ae,!0)}toSQL(M={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(M)}`:null}toString(){return this.isValid?this.toISO():Oa}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(M={}){if(!this.isValid)return{};const W={...this.c};return M.includeConfig&&(W.outputCalendar=this.outputCalendar,W.numberingSystem=this.loc.numberingSystem,W.locale=this.loc.locale),W}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(M,W="milliseconds",Q={}){if(!this.isValid||!M.isValid)return ln.invalid("created by diffing an invalid DateTime");const ae={locale:this.locale,numberingSystem:this.numberingSystem,...Q},ke=kt(W).map(ln.normalizeUnit),$e=M.valueOf()>this.valueOf(),qe=$e?this:M,Xe=$e?M:this,Ht=ki(qe,Xe,ke,ae);return $e?Ht.negate():Ht}diffNow(M="milliseconds",W={}){return this.diff(Rn.now(),M,W)}until(M){return this.isValid?Cn.fromDateTimes(this,M):this}hasSame(M,W,Q){if(!this.isValid)return!1;const ae=M.valueOf(),ke=this.setZone(M.zone,{keepLocalTime:!0});return ke.startOf(W,Q)<=ae&&ae<=ke.endOf(W,Q)}equals(M){return this.isValid&&M.isValid&&this.valueOf()===M.valueOf()&&this.zone.equals(M.zone)&&this.loc.equals(M.loc)}toRelative(M={}){if(!this.isValid)return null;const W=M.base||Rn.fromObject({},{zone:this.zone}),Q=M.padding?this<W?-M.padding:M.padding:0;let ae=["years","months","days","hours","minutes","seconds"],ke=M.unit;return Array.isArray(M.unit)&&(ae=M.unit,ke=void 0),Va(W,this.plus(Q),{...M,numeric:"always",units:ae,unit:ke})}toRelativeCalendar(M={}){return this.isValid?Va(M.base||Rn.fromObject({},{zone:this.zone}),this,{...M,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...M){if(!M.every(Rn.isDateTime))throw new i("min requires all arguments be DateTimes");return Ut(M,W=>W.valueOf(),Math.min)}static max(...M){if(!M.every(Rn.isDateTime))throw new i("max requires all arguments be DateTimes");return Ut(M,W=>W.valueOf(),Math.max)}static fromFormatExplain(M,W,Q={}){const{locale:ae=null,numberingSystem:ke=null}=Q,$e=Ne.fromOpts({locale:ae,numberingSystem:ke,defaultToEN:!0});return Cp($e,M,W)}static fromStringExplain(M,W,Q={}){return Rn.fromFormatExplain(M,W,Q)}static buildFormatParser(M,W={}){const{locale:Q=null,numberingSystem:ae=null}=W,ke=Ne.fromOpts({locale:Q,numberingSystem:ae,defaultToEN:!0});return new rg(ke,M)}static fromFormatParser(M,W,Q={}){if(st(M)||st(W))throw new i("fromFormatParser requires an input string and a format parser");const{locale:ae=null,numberingSystem:ke=null}=Q,$e=Ne.fromOpts({locale:ae,numberingSystem:ke,defaultToEN:!0});if(!$e.equals(W.locale))throw new i(`fromFormatParser called with a locale of ${$e}, but the format parser was created for ${W.locale}`);const{result:qe,zone:Xe,specificOffset:Ht,invalidReason:Mn}=W.explainFromTokens(M);return Mn?Rn.invalid(Mn):Di(qe,Xe,Q,`format ${W.format}`,M,Ht)}static get DATE_SHORT(){return p}static get DATE_MED(){return g}static get DATE_MED_WITH_WEEKDAY(){return y}static get DATE_FULL(){return v}static get DATE_HUGE(){return S}static get TIME_SIMPLE(){return E}static get TIME_WITH_SECONDS(){return b}static get TIME_WITH_SHORT_OFFSET(){return C}static get TIME_WITH_LONG_OFFSET(){return T}static get TIME_24_SIMPLE(){return O}static get TIME_24_WITH_SECONDS(){return R}static get TIME_24_WITH_SHORT_OFFSET(){return A}static get TIME_24_WITH_LONG_OFFSET(){return I}static get DATETIME_SHORT(){return F}static get DATETIME_SHORT_WITH_SECONDS(){return _}static get DATETIME_MED(){return z}static get DATETIME_MED_WITH_SECONDS(){return $}static get DATETIME_MED_WITH_WEEKDAY(){return k}static get DATETIME_FULL(){return H}static get DATETIME_FULL_WITH_SECONDS(){return L}static get DATETIME_HUGE(){return V}static get DATETIME_HUGE_WITH_SECONDS(){return j}}function Mi(Y){if(Rn.isDateTime(Y))return Y;if(Y&&Y.valueOf&&vn(Y.valueOf()))return Rn.fromJSDate(Y);if(Y&&typeof Y=="object")return Rn.fromObject(Y);throw new i(`Unknown datetime argument: ${Y}, of type ${typeof Y}`)}const Xb="3.7.2";return si.DateTime=Rn,si.Duration=ln,si.FixedOffsetZone=Rt,si.IANAZone=ne,si.Info=jr,si.Interval=Cn,si.InvalidZone=yt,si.Settings=rt,si.SystemZone=oe,si.VERSION=Xb,si.Zone=Z,si}var Z4;function qO(){return Z4||(Z4=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CronDate=e.DAYS_IN_MONTH=e.DateMathOp=e.TimeUnit=void 0;const t=ZPe();var n;(function(a){a.Second="Second",a.Minute="Minute",a.Hour="Hour",a.Day="Day",a.Month="Month",a.Year="Year"})(n||(e.TimeUnit=n={}));var r;(function(a){a.Add="Add",a.Subtract="Subtract"})(r||(e.DateMathOp=r={})),e.DAYS_IN_MONTH=Object.freeze([31,29,31,30,31,30,31,31,30,31,30,31]);class o{#e;#t=null;#n=null;constructor(i,s){const l={zone:s};if(i?i instanceof o?(this.#e=i.#e,this.#t=i.#t,this.#n=i.#n):i instanceof Date?this.#e=t.DateTime.fromJSDate(i,l):typeof i=="number"?this.#e=t.DateTime.fromMillis(i,l):(this.#e=t.DateTime.fromISO(i,l),this.#e.isValid||(this.#e=t.DateTime.fromRFC2822(i,l)),this.#e.isValid||(this.#e=t.DateTime.fromSQL(i,l)),this.#e.isValid||(this.#e=t.DateTime.fromFormat(i,"EEE, d MMM yyyy HH:mm:ss",l))):this.#e=t.DateTime.local(),!this.#e.isValid)throw new Error(`CronDate: unhandled timestamp: ${i}`);s&&s!==this.#e.zoneName&&(this.#e=this.#e.setZone(s))}static#o(i){return i%4===0&&i%100!==0||i%400===0}get dstStart(){return this.#t}set dstStart(i){this.#t=i}get dstEnd(){return this.#n}set dstEnd(i){this.#n=i}addYear(){this.#e=this.#e.plus({years:1})}addMonth(){this.#e=this.#e.plus({months:1}).startOf("month")}addDay(){this.#e=this.#e.plus({days:1}).startOf("day")}addHour(){this.#e=this.#e.plus({hours:1}).startOf("hour")}addMinute(){this.#e=this.#e.plus({minutes:1}).startOf("minute")}addSecond(){this.#e=this.#e.plus({seconds:1})}subtractYear(){this.#e=this.#e.minus({years:1})}subtractMonth(){this.#e=this.#e.minus({months:1}).endOf("month").startOf("second")}subtractDay(){this.#e=this.#e.minus({days:1}).endOf("day").startOf("second")}subtractHour(){this.#e=this.#e.minus({hours:1}).endOf("hour").startOf("second")}subtractMinute(){this.#e=this.#e.minus({minutes:1}).endOf("minute").startOf("second")}subtractSecond(){this.#e=this.#e.minus({seconds:1})}addUnit(i){switch(i){case n.Year:return this.addYear();case n.Month:return this.addMonth();case n.Day:return this.addDay();case n.Hour:return this.addHour();case n.Minute:return this.addMinute();case n.Second:return this.addSecond()}}subtractUnit(i){switch(i){case n.Year:return this.subtractYear();case n.Month:return this.subtractMonth();case n.Day:return this.subtractDay();case n.Hour:return this.subtractHour();case n.Minute:return this.subtractMinute();case n.Second:return this.subtractSecond()}}invokeDateOperation(i,s){if(i===r.Add){this.addUnit(s);return}if(i===r.Subtract){this.subtractUnit(s);return}throw new Error(`Invalid verb: ${i}`)}getDate(){return this.#e.day}getFullYear(){return this.#e.year}getDay(){const i=this.#e.weekday;return i===7?0:i}getMonth(){return this.#e.month-1}getHours(){return this.#e.hour}getMinutes(){return this.#e.minute}getSeconds(){return this.#e.second}getMilliseconds(){return this.#e.millisecond}getUTCOffset(){return this.#e.offset}setStartOfDay(){this.#e=this.#e.startOf("day")}setEndOfDay(){this.#e=this.#e.endOf("day")}getTime(){return this.#e.valueOf()}getUTCDate(){return this.#r().day}getUTCFullYear(){return this.#r().year}getUTCDay(){const i=this.#r().weekday;return i===7?0:i}getUTCMonth(){return this.#r().month-1}getUTCHours(){return this.#r().hour}getUTCMinutes(){return this.#r().minute}getUTCSeconds(){return this.#r().second}toISOString(){return this.#e.toUTC().toISO()}toJSON(){return this.#e.toJSON()}setDate(i){this.#e=this.#e.set({day:i})}setFullYear(i){this.#e=this.#e.set({year:i})}setDay(i){this.#e=this.#e.set({weekday:i})}setMonth(i){this.#e=this.#e.set({month:i+1})}setHours(i){this.#e=this.#e.set({hour:i})}setMinutes(i){this.#e=this.#e.set({minute:i})}setSeconds(i){this.#e=this.#e.set({second:i})}setMilliseconds(i){this.#e=this.#e.set({millisecond:i})}toString(){return this.toDate().toString()}toDate(){return this.#e.toJSDate()}isLastDayOfMonth(){const{day:i,month:s}=this.#e;if(s===2){const l=o.#o(this.#e.year);return i===e.DAYS_IN_MONTH[s-1]-(l?0:1)}return i===e.DAYS_IN_MONTH[s-1]}isLastWeekdayOfMonth(){const{day:i,month:s}=this.#e;let l;return s===2?l=e.DAYS_IN_MONTH[s-1]-(o.#o(this.#e.year)?0:1):l=e.DAYS_IN_MONTH[s-1],i>l-7}applyDateOperation(i,s,l){if(s===n.Month||s===n.Day){this.invokeDateOperation(i,s);return}const d=this.getHours();this.invokeDateOperation(i,s);const c=this.getHours(),p=c-d;p===2?l!==24&&(this.dstStart=d+1):p===0&&this.getMinutes()===0&&this.getSeconds()===0&&l!==24&&(this.dstEnd=c)}#r(){return this.#e.toUTC()}}e.CronDate=o,e.default=o})(Q4)),Q4}var J4;function JPe(){if(J4)return Ny;J4=1,Object.defineProperty(Ny,"__esModule",{value:!0}),Ny.CronMonth=void 0;const e=qO(),t=sp(),n=1,r=12,o=Object.freeze([]);let a=class extends t.CronField{static get min(){return n}static get max(){return r}static get chars(){return o}static get daysInMonth(){return e.DAYS_IN_MONTH}constructor(i,s){super(i,s),this.validate()}get values(){return super.values}};return Ny.CronMonth=a,Ny}var Iy={},e6;function eNe(){if(e6)return Iy;e6=1,Object.defineProperty(Iy,"__esModule",{value:!0}),Iy.CronSecond=void 0;const e=sp(),t=0,n=59,r=Object.freeze([]);let o=class extends e.CronField{static get min(){return t}static get max(){return n}static get chars(){return r}constructor(a,i){super(a,i),this.validate()}get values(){return super.values}};return Iy.CronSecond=o,Iy}var t6;function GO(){return t6||(t6=1,(function(e){var t=bh&&bh.__createBinding||(Object.create?(function(r,o,a,i){i===void 0&&(i=a);var s=Object.getOwnPropertyDescriptor(o,a);(!s||("get"in s?!o.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return o[a]}}),Object.defineProperty(r,i,s)}):(function(r,o,a,i){i===void 0&&(i=a),r[i]=o[a]})),n=bh&&bh.__exportStar||function(r,o){for(var a in r)a!=="default"&&!Object.prototype.hasOwnProperty.call(o,a)&&t(o,r,a)};Object.defineProperty(e,"__esModule",{value:!0}),n(GPe(),e),n(YPe(),e),n(KPe(),e),n(sp(),e),n(QPe(),e),n(XPe(),e),n(JPe(),e),n(eNe(),e)})(bh)),bh}var n6;function Kz(){if(n6)return Ay;n6=1,Object.defineProperty(Ay,"__esModule",{value:!0}),Ay.CronFieldCollection=void 0;const e=GO();let t=class Yy{#e;#t;#n;#o;#r;#a;static from(r,o){return new Yy({second:this.resolveField(e.CronSecond,r.second,o.second),minute:this.resolveField(e.CronMinute,r.minute,o.minute),hour:this.resolveField(e.CronHour,r.hour,o.hour),dayOfMonth:this.resolveField(e.CronDayOfMonth,r.dayOfMonth,o.dayOfMonth),month:this.resolveField(e.CronMonth,r.month,o.month),dayOfWeek:this.resolveField(e.CronDayOfWeek,r.dayOfWeek,o.dayOfWeek)})}static resolveField(r,o,a){return a?a instanceof e.CronField?a:new r(a):o}constructor({second:r,minute:o,hour:a,dayOfMonth:i,month:s,dayOfWeek:l}){if(!r)throw new Error("Validation error, Field second is missing");if(!o)throw new Error("Validation error, Field minute is missing");if(!a)throw new Error("Validation error, Field hour is missing");if(!i)throw new Error("Validation error, Field dayOfMonth is missing");if(!s)throw new Error("Validation error, Field month is missing");if(!l)throw new Error("Validation error, Field dayOfWeek is missing");if(s.values.length===1&&!i.hasLastChar&&l.isWildcard&&!(parseInt(i.values[0],10)<=e.CronMonth.daysInMonth[s.values[0]-1]))throw new Error("Invalid explicit day of month definition");this.#e=r,this.#t=o,this.#n=a,this.#r=s,this.#a=l,this.#o=i}get second(){return this.#e}get minute(){return this.#t}get hour(){return this.#n}get dayOfMonth(){return this.#o}get month(){return this.#r}get dayOfWeek(){return this.#a}static compactField(r){if(r.length===0)return[];const o=[];let a;return r.forEach((i,s,l)=>{if(a===void 0){a={start:i,count:1};return}const d=l[s-1]||a.start,c=l[s+1];if(i==="L"||i==="W"){o.push(a),o.push({start:i,count:1}),a=void 0;return}if(a.step===void 0&&c!==void 0){const p=i-d,g=c-i;if(p<=g){a={...a,count:2,end:i,step:p};return}a.step=1}i-(a.end??0)===a.step?(a.count++,a.end=i):(a.count===1?o.push({start:a.start,count:1}):a.count===2?(o.push({start:a.start,count:1}),o.push({start:a.end??d,count:1})):o.push(a),a={start:i,count:1})}),a&&o.push(a),o}static#s(r,o,a){const i=o.step;return i?i===1&&o.start===r.min&&o.end&&o.end>=a?r.hasQuestionMarkChar?"?":"*":i!==1&&o.start===r.min&&o.end&&o.end>=a-i+1?`*/${i}`:null:null}static#i(r,o){const a=r.step;if(a===1)return`${r.start}-${r.end}`;const i=r.start===0?r.count-1:r.count;if(!a)throw new Error("Unexpected range step");if(!r.end)throw new Error("Unexpected range end");if(a*i>r.end){const s=(d,c)=>{if(typeof r.start!="number")throw new Error("Unexpected range start");return c%a===0?r.start+c:null};if(typeof r.start!="number")throw new Error("Unexpected range start");const l={length:r.end-r.start+1};return Array.from(l,s).filter(d=>d!==null).join(",")}return r.end===o-a+1?`${r.start}/${a}`:`${r.start}-${r.end}/${a}`}stringifyField(r){let o=r.max,a=r.values;if(r instanceof e.CronDayOfWeek){o=6;const s=this.#a.values;a=s[s.length-1]===7?s.slice(0,-1):s}r instanceof e.CronDayOfMonth&&(o=this.#r.values.length===1?e.CronMonth.daysInMonth[this.#r.values[0]-1]:r.max);const i=Yy.compactField(a);if(i.length===1){const s=Yy.#s(r,i[0],o);if(s)return s}return i.map(s=>{const l=s.count===1?s.start.toString():Yy.#i(s,o);return r instanceof e.CronDayOfWeek&&r.nthDay>0?`${l}#${r.nthDay}`:l}).join(",")}stringify(r=!1){const o=[];return r&&o.push(this.stringifyField(this.#e)),o.push(this.stringifyField(this.#t),this.stringifyField(this.#n),this.stringifyField(this.#o),this.stringifyField(this.#r),this.stringifyField(this.#a)),o.join(" ")}serialize(){return{second:this.#e.serialize(),minute:this.#t.serialize(),hour:this.#n.serialize(),dayOfMonth:this.#o.serialize(),month:this.#r.serialize(),dayOfWeek:this.#a.serialize()}}};return Ay.CronFieldCollection=t,Ay}var r6={},o6;function Qz(){return o6||(o6=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CronExpression=e.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE=e.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE=void 0;const t=qO();e.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE="Out of the time span range",e.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE="Invalid expression, loop limit exceeded";const n=1e4;class r{#e;#t;#n;#o;#r;#a;#s=null;#i=!1;constructor(a,i){this.#e=i,this.#t=i.tz,this.#o=i.startDate?new t.CronDate(i.startDate,this.#t):null,this.#r=i.endDate?new t.CronDate(i.endDate,this.#t):null;let s=i.currentDate??i.startDate;if(s){const l=new t.CronDate(s,this.#t);this.#o&&l.getTime()<this.#o.getTime()?s=this.#o:this.#r&&l.getTime()>this.#r.getTime()&&(s=this.#r)}this.#n=new t.CronDate(s,this.#t),this.#a=a}get fields(){return this.#a}static fieldsToExpression(a,i){return new r(a,i||{})}static#c(a,i){return i.some(s=>s===a)}#l(a,i){return a[i?a.length-1:0]}#d(a){const i=`${a.getFullYear()}-${a.getMonth()+1}-${a.getDate()}`;if(this.#s===i)return this.#i;const s=new t.CronDate(a);s.setStartOfDay();const l=new t.CronDate(a);return l.setEndOfDay(),this.#s=i,this.#i=s.getUTCOffset()!==l.getUTCOffset(),this.#i}#u(a,i,s){const l=this.#a.second.values,d=a.getSeconds(),c=this.#a.second.findNearestValue(d,s);if(c!==null){a.setSeconds(c);return}a.applyDateOperation(i,t.TimeUnit.Minute,this.#a.hour.values.length),a.setSeconds(this.#l(l,s))}#p(a,i,s){const l=this.#a.minute.values,d=this.#a.second.values,c=a.getMinutes(),p=this.#a.minute.findNearestValue(c,s);if(p!==null){a.setMinutes(p),a.setSeconds(this.#l(d,s));return}a.applyDateOperation(i,t.TimeUnit.Hour,this.#a.hour.values.length),a.setMinutes(this.#l(l,s)),a.setSeconds(this.#l(d,s))}static#f(a,i){const s=i.isLastWeekdayOfMonth();return a.some(l=>{const d=parseInt(l.toString().charAt(0),10)%7;if(Number.isNaN(d))throw new Error(`Invalid last weekday of the month expression: ${l}`);return i.getDay()===d&&s})}next(){return this.#h()}prev(){return this.#h(!0)}hasNext(){const a=this.#n;try{return this.#h(),!0}catch{return!1}finally{this.#n=a}}hasPrev(){const a=this.#n;try{return this.#h(!0),!0}catch{return!1}finally{this.#n=a}}take(a){const i=[];if(a>=0)for(let s=0;s<a;s++)try{i.push(this.next())}catch{return i}else for(let s=0;s>a;s--)try{i.push(this.prev())}catch{return i}return i}reset(a){this.#n=new t.CronDate(a||this.#e.currentDate,this.#t)}stringify(a=!1){return this.#a.stringify(a)}includesDate(a){const{second:i,minute:s,hour:l,month:d}=this.#a,c=new t.CronDate(a,this.#t);return!(!i.values.includes(c.getSeconds())||!s.values.includes(c.getMinutes())||!l.values.includes(c.getHours())||!d.values.includes(c.getMonth()+1)||!this.#m(c)||this.#a.dayOfWeek.nthDay>0&&Math.ceil(c.getDate()/7)!==this.#a.dayOfWeek.nthDay)}toString(){return this.#e.expression||this.stringify(!0)}#m(a){const i=this.#a.dayOfMonth.isWildcard,s=!i,l=this.#a.dayOfWeek.isWildcard,d=!l,c=r.#c(a.getDate(),this.#a.dayOfMonth.values)||this.#a.dayOfMonth.hasLastChar&&a.isLastDayOfMonth(),p=r.#c(a.getDay(),this.#a.dayOfWeek.values)||this.#a.dayOfWeek.hasLastChar&&r.#f(this.#a.dayOfWeek.values,a);return!!(s&&d&&(c||p)||c&&!d||i&&!l&&p)}#g(a,i,s){const l=this.#a.hour.values,d=l,c=a.getHours(),p=r.#c(c,l),g=a.dstEnd===c;if(a.dstStart!==null&&a.dstStart===c-1&&r.#c(a.dstStart,l))return!0;if(g&&!s)return a.dstEnd=null,a.applyDateOperation(t.DateMathOp.Add,t.TimeUnit.Hour,d.length),!1;if(p)return!0;a.dstStart=null;const y=this.#a.hour.findNearestValue(c,s);if(y===null)return a.applyDateOperation(i,t.TimeUnit.Day,d.length),!1;if(this.#d(a)){const v=s?c-y:y-c;for(let S=0;S<v&&(a.applyDateOperation(i,t.TimeUnit.Hour,d.length),!(!s&&a.getHours()>=y||s&&a.getHours()<=y));S++);}else a.setHours(y);return a.setMinutes(this.#l(this.#a.minute.values,s)),a.setSeconds(this.#l(this.#a.second.values,s)),!1}#y(a){if(!this.#o&&!this.#r)return;const i=a.getTime();if(this.#o&&i<this.#o.getTime())throw new Error(e.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE);if(this.#r&&i>this.#r.getTime())throw new Error(e.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE)}#h(a=!1){const i=a?t.DateMathOp.Subtract:t.DateMathOp.Add,s=new t.CronDate(this.#n),l=s.getTime();let d=0;for(;++d<n;){if(this.#y(s),!this.#m(s)){s.applyDateOperation(i,t.TimeUnit.Day,this.#a.hour.values.length);continue}if(!(this.#a.dayOfWeek.nthDay<=0||Math.ceil(s.getDate()/7)===this.#a.dayOfWeek.nthDay)){s.applyDateOperation(i,t.TimeUnit.Day,this.#a.hour.values.length);continue}if(!r.#c(s.getMonth()+1,this.#a.month.values)){s.applyDateOperation(i,t.TimeUnit.Month,this.#a.hour.values.length);continue}if(this.#g(s,i,a)){if(!r.#c(s.getMinutes(),this.#a.minute.values)){this.#p(s,i,a);continue}if(!r.#c(s.getSeconds(),this.#a.second.values)){this.#u(s,i,a);continue}if(l===s.getTime()){(i==="Add"||s.getMilliseconds()===0)&&s.applyDateOperation(i,t.TimeUnit.Second,this.#a.hour.values.length);continue}break}}if(d>n)throw new Error(e.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE);return s.getMilliseconds()!==0&&s.setMilliseconds(0),this.#n=s,s}[Symbol.iterator](){return{next:()=>{try{return{value:this.#h(),done:!1}}catch{return{value:void 0,done:!0}}}}}}e.CronExpression=r,e.default=r})(r6)),r6}var M1={},a6;function tNe(){if(a6)return M1;a6=1,Object.defineProperty(M1,"__esModule",{value:!0}),M1.seededRandom=n;function e(r){let o=2166136261;for(let a=0;a<r.length;a++)o^=r.charCodeAt(a),o=Math.imul(o,16777619);return()=>o>>>0}function t(r){return()=>{let o=r+=1831565813;return o=Math.imul(o^o>>>15,o|1),o^=o+Math.imul(o^o>>>7,o|61),((o^o>>>14)>>>0)/4294967296}}function n(r){const o=r?e(r)():Math.floor(Math.random()*1e10);return t(o)}return M1}var i6;function Y2(){if(i6)return Fi;i6=1,Object.defineProperty(Fi,"__esModule",{value:!0}),Fi.CronExpressionParser=Fi.DayOfWeek=Fi.Months=Fi.CronUnit=Fi.PredefinedExpressions=void 0;const e=Kz(),t=Qz(),n=tNe(),r=GO();var o;(function(d){d["@yearly"]="0 0 0 1 1 *",d["@annually"]="0 0 0 1 1 *",d["@monthly"]="0 0 0 1 * *",d["@weekly"]="0 0 0 * * 0",d["@daily"]="0 0 0 * * *",d["@hourly"]="0 0 * * * *",d["@minutely"]="0 * * * * *",d["@secondly"]="* * * * * *",d["@weekdays"]="0 0 0 * * 1-5",d["@weekends"]="0 0 0 * * 0,6"})(o||(Fi.PredefinedExpressions=o={}));var a;(function(d){d.Second="Second",d.Minute="Minute",d.Hour="Hour",d.DayOfMonth="DayOfMonth",d.Month="Month",d.DayOfWeek="DayOfWeek"})(a||(Fi.CronUnit=a={}));var i;(function(d){d[d.jan=1]="jan",d[d.feb=2]="feb",d[d.mar=3]="mar",d[d.apr=4]="apr",d[d.may=5]="may",d[d.jun=6]="jun",d[d.jul=7]="jul",d[d.aug=8]="aug",d[d.sep=9]="sep",d[d.oct=10]="oct",d[d.nov=11]="nov",d[d.dec=12]="dec"})(i||(Fi.Months=i={}));var s;(function(d){d[d.sun=0]="sun",d[d.mon=1]="mon",d[d.tue=2]="tue",d[d.wed=3]="wed",d[d.thu=4]="thu",d[d.fri=5]="fri",d[d.sat=6]="sat"})(s||(Fi.DayOfWeek=s={}));let l=class Bi{static parse(c,p={}){const{strict:g=!1,hashSeed:y}=p,v=(0,n.seededRandom)(y);c=o[c]||c;const S=Bi.#e(c,g);if(!(S.dayOfMonth==="*"||S.dayOfWeek==="*"||!g))throw new Error("Cannot use both dayOfMonth and dayOfWeek together in strict mode!");const E=Bi.#t(a.Second,S.second,r.CronSecond.constraints,v),b=Bi.#t(a.Minute,S.minute,r.CronMinute.constraints,v),C=Bi.#t(a.Hour,S.hour,r.CronHour.constraints,v),T=Bi.#t(a.Month,S.month,r.CronMonth.constraints,v),O=Bi.#t(a.DayOfMonth,S.dayOfMonth,r.CronDayOfMonth.constraints,v),{dayOfWeek:R,nthDayOfWeek:A}=Bi.#d(S.dayOfWeek),I=Bi.#t(a.DayOfWeek,R,r.CronDayOfWeek.constraints,v),F=new e.CronFieldCollection({second:new r.CronSecond(E,{rawValue:S.second}),minute:new r.CronMinute(b,{rawValue:S.minute}),hour:new r.CronHour(C,{rawValue:S.hour}),dayOfMonth:new r.CronDayOfMonth(O,{rawValue:S.dayOfMonth}),month:new r.CronMonth(T,{rawValue:S.month}),dayOfWeek:new r.CronDayOfWeek(I,{rawValue:S.dayOfWeek,nthDayOfWeek:A})});return new t.CronExpression(F,{...p,expression:c})}static#e(c,p){if(p&&!c.length)throw new Error("Invalid cron expression");c=c||"0 * * * * *";const g=c.trim().split(/\s+/);if(p&&g.length<6)throw new Error("Invalid cron expression, expected 6 fields");if(g.length>6)throw new Error("Invalid cron expression, too many fields");const y=["*","*","*","*","*","0"];g.length<y.length&&g.unshift(...y.slice(g.length));const[v,S,E,b,C,T]=g;return{second:v,minute:S,hour:E,dayOfMonth:b,month:C,dayOfWeek:T}}static#t(c,p,g,y){if((c===a.Month||c===a.DayOfWeek)&&(p=p.replace(/[a-z]{3}/gi,v=>{v=v.toLowerCase();const S=i[v]||s[v];if(S===void 0)throw new Error(`Validation error, cannot resolve alias "${v}"`);return S.toString()})),!g.validChars.test(p))throw new Error(`Invalid characters, got value: ${p}`);return p=this.#n(p,g),p=this.#o(p,g,y),this.#r(c,p,g)}static#n(c,p){return c.replace(/[*?]/g,p.min+"-"+p.max)}static#o(c,p,g){const y=g();return c.replace(/H(?:\((\d+)-(\d+)\))?(?:\/(\d+))?/g,(v,S,E,b)=>{if(S&&E&&b){const C=parseInt(S,10),T=parseInt(E,10),O=parseInt(b,10);if(C>T)throw new Error(`Invalid range: ${C}-${T}, min > max`);if(O<=0)throw new Error(`Invalid step: ${O}, must be positive`);const R=Math.max(C,p.min),A=Math.floor(y*O),I=[];for(let F=Math.floor(R/O)*O+A;F<=T;F+=O)F>=R&&I.push(F);return I.join(",")}else if(S&&E){const C=parseInt(S,10),T=parseInt(E,10);if(C>T)throw new Error(`Invalid range: ${C}-${T}, min > max`);return String(Math.floor(y*(T-C+1))+C)}else if(b){const C=parseInt(b,10);if(C<=0)throw new Error(`Invalid step: ${C}, must be positive`);const T=Math.floor(y*C),O=[];for(let R=Math.floor(p.min/C)*C+T;R<=p.max;R+=C)R>=p.min&&O.push(R);return O.join(",")}else return String(Math.floor(y*(p.max-p.min+1)+p.min))})}static#r(c,p,g){const y=[];function v(S,E){if(Array.isArray(S))y.push(...S);else if(Bi.#u(E,S))y.push(S);else{const b=parseInt(S.toString(),10);if(!(b>=E.min&&b<=E.max))throw new Error(`Constraint error, got value ${S} expected range ${E.min}-${E.max}`);y.push(c===a.DayOfWeek?b%7:S)}}return p.split(",").forEach(S=>{if(!(S.length>0))throw new Error("Invalid list value format");v(Bi.#a(c,S,g),g)}),y}static#a(c,p,g){const y=p.split("/");if(y.length>2)throw new Error(`Invalid repeat: ${p}`);return y.length===2?(y[0].includes("-")||(y[0]=`${y[0]}-${g.max}`),Bi.#l(c,y[0],parseInt(y[1],10),g)):Bi.#l(c,p,1,g)}static#s(c,p,g){if(!(!isNaN(c)&&!isNaN(p)&&c>=g.min&&p<=g.max))throw new Error(`Constraint error, got range ${c}-${p} expected range ${g.min}-${g.max}`);if(c>p)throw new Error(`Invalid range: ${c}-${p}, min(${c}) > max(${p})`)}static#i(c){if(!(!isNaN(c)&&c>0))throw new Error(`Constraint error, cannot repeat at every ${c} time.`)}static#c(c,p,g,y){const v=[];c===a.DayOfWeek&&g%7===0&&v.push(0);for(let S=p;S<=g;S+=y)v.indexOf(S)===-1&&v.push(S);return v}static#l(c,p,g,y){const v=p.split("-");if(v.length<=1)return isNaN(+p)?p:+p;const[S,E]=v.map(b=>parseInt(b,10));return this.#s(S,E,y),this.#i(g),this.#c(c,S,E,g)}static#d(c){const p=c.split("#");if(p.length<=1)return{dayOfWeek:p[0]};const g=+p[p.length-1],y=c.match(/([,-/])/);if(y!==null)throw new Error(`Constraint error, invalid dayOfWeek \`#\` and \`${y?.[0]}\` special characters are incompatible`);if(!(p.length<=2&&!isNaN(g)&&g>=1&&g<=5))throw new Error("Constraint error, invalid dayOfWeek occurrence number (#)");return{dayOfWeek:p[0],nthDayOfWeek:g}}static#u(c,p){return c.chars.some(g=>p.toString().includes(g))}};return Fi.CronExpressionParser=l,Fi}var dl={};const nNe={},rNe=Object.freeze(Object.defineProperty({__proto__:null,default:nNe},Symbol.toStringTag,{value:"Module"})),s6=Ace(rNe);var l6;function oNe(){if(l6)return dl;l6=1;var e=dl&&dl.__createBinding||(Object.create?(function(a,i,s,l){l===void 0&&(l=s);var d=Object.getOwnPropertyDescriptor(i,s);(!d||("get"in d?!i.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return i[s]}}),Object.defineProperty(a,l,d)}):(function(a,i,s,l){l===void 0&&(l=s),a[l]=i[s]})),t=dl&&dl.__setModuleDefault||(Object.create?(function(a,i){Object.defineProperty(a,"default",{enumerable:!0,value:i})}):function(a,i){a.default=i}),n=dl&&dl.__importStar||(function(){var a=function(i){return a=Object.getOwnPropertyNames||function(s){var l=[];for(var d in s)Object.prototype.hasOwnProperty.call(s,d)&&(l[l.length]=d);return l},a(i)};return function(i){if(i&&i.__esModule)return i;var s={};if(i!=null)for(var l=a(i),d=0;d<l.length;d++)l[d]!=="default"&&e(s,i,l[d]);return t(s,i),s}})();Object.defineProperty(dl,"__esModule",{value:!0}),dl.CronFileParser=void 0;const r=Y2();let o=class cx{static async parseFile(i){const{readFile:s}=await Promise.resolve().then(()=>n(s6)),l=await s(i,"utf8");return cx.#e(l)}static parseFileSync(i){const{readFileSync:s}=s6,l=s(i,"utf8");return cx.#e(l)}static#e(i){const s=i.split(`
|
|
511
511
|
`),l={variables:{},expressions:[],errors:{}};for(const d of s){const c=d.trim();if(c.length===0||c.startsWith("#"))continue;const p=c.match(/^(.*)=(.*)$/);if(p){const[,g,y]=p;l.variables[g]=y.replace(/["']/g,"");continue}try{const g=cx.#t(c);l.expressions.push(g.interval)}catch(g){l.errors[c]=g}}return l}static#t(i){const s=i.split(" ");return{interval:r.CronExpressionParser.parse(s.slice(0,5).join(" ")),command:s.slice(5,s.length)}}};return dl.CronFileParser=o,dl}var c6;function aNe(){return c6||(c6=1,(function(e){var t=vh&&vh.__createBinding||(Object.create?(function(d,c,p,g){g===void 0&&(g=p);var y=Object.getOwnPropertyDescriptor(c,p);(!y||("get"in y?!c.__esModule:y.writable||y.configurable))&&(y={enumerable:!0,get:function(){return c[p]}}),Object.defineProperty(d,g,y)}):(function(d,c,p,g){g===void 0&&(g=p),d[g]=c[p]})),n=vh&&vh.__exportStar||function(d,c){for(var p in d)p!=="default"&&!Object.prototype.hasOwnProperty.call(c,p)&&t(c,d,p)};Object.defineProperty(e,"__esModule",{value:!0}),e.CronFileParser=e.CronExpressionParser=e.CronExpression=e.CronFieldCollection=e.CronDate=void 0;const r=Y2();var o=qO();Object.defineProperty(e,"CronDate",{enumerable:!0,get:function(){return o.CronDate}});var a=Kz();Object.defineProperty(e,"CronFieldCollection",{enumerable:!0,get:function(){return a.CronFieldCollection}});var i=Qz();Object.defineProperty(e,"CronExpression",{enumerable:!0,get:function(){return i.CronExpression}});var s=Y2();Object.defineProperty(e,"CronExpressionParser",{enumerable:!0,get:function(){return s.CronExpressionParser}});var l=oNe();Object.defineProperty(e,"CronFileParser",{enumerable:!0,get:function(){return l.CronFileParser}}),n(GO(),e),e.default=r.CronExpressionParser})(vh)),vh}var iNe=aNe(),u6={exports:{}},d6;function sNe(){return d6||(d6=1,(function(e,t){(function(n,r){e.exports=r()})(globalThis,()=>(()=>{var n={949:((i,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.CronParser=void 0;var d=l(515),c=(function(){function p(g,y,v){y===void 0&&(y=!0),v===void 0&&(v=!1),this.expression=g,this.dayOfWeekStartIndexZero=y,this.monthStartIndexZero=v}return p.prototype.parse=function(){var g,y,v=(g=this.expression)!==null&&g!==void 0?g:"";if(v==="@reboot")return y=["@reboot","","","","","",""],y;if(v.startsWith("@")){var S=this.parseSpecial(this.expression);y=this.extractParts(S)}else y=this.extractParts(this.expression);return this.normalize(y),this.validate(y),y},p.prototype.parseSpecial=function(g){var y={"@yearly":"0 0 1 1 *","@annually":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *","@reboot":"@reboot"},v=y[g];if(!v)throw new Error("Unknown special expression.");return v},p.prototype.extractParts=function(g){if(!this.expression)throw new Error("cron expression is empty");for(var y=g.trim().split(/[ ]+/),v=0;v<y.length;v++)if(y[v].includes(",")){var S=y[v].split(",").map(function(b){return b.trim()}).filter(function(b){return b!==""}).map(function(b){return isNaN(Number(b))?b:Number(b)}).filter(function(b){return b!==null&&b!==""});S.length===0&&S.push("*"),S.sort(function(b,C){return b!==null&&C!==null?b-C:0}),y[v]=S.map(function(b){return b!==null?b.toString():""}).join(",")}if(y.length<5)throw new Error("Expression has only ".concat(y.length," part").concat(y.length==1?"":"s",". At least 5 parts are required."));if(y.length==5)y.unshift(""),y.push("");else if(y.length==6){var E=/\d{4}$/.test(y[5])||y[4]=="?"||y[2]=="?";E?y.unshift(""):y.push("")}else if(y.length>7)throw new Error("Expression has ".concat(y.length," parts; too many!"));return y},p.prototype.normalize=function(g){var y=this;if(g[3]=g[3].replace("?","*"),g[5]=g[5].replace("?","*"),g[2]=g[2].replace("?","*"),g[0].indexOf("0/")==0&&(g[0]=g[0].replace("0/","*/")),g[1].indexOf("0/")==0&&(g[1]=g[1].replace("0/","*/")),g[2].indexOf("0/")==0&&(g[2]=g[2].replace("0/","*/")),g[3].indexOf("1/")==0&&(g[3]=g[3].replace("1/","*/")),g[4].indexOf("1/")==0&&(g[4]=g[4].replace("1/","*/")),g[6].indexOf("1/")==0&&(g[6]=g[6].replace("1/","*/")),g[5]=g[5].replace(/(^\d)|([^#/\s]\d)/g,function(R){var A=R.replace(/\D/,""),I=A;return y.dayOfWeekStartIndexZero?A=="7"&&(I="0"):I=(parseInt(A)-1).toString(),R.replace(A,I)}),g[5]=="L"&&(g[5]="6"),g[3]=="?"&&(g[3]="*"),g[3].indexOf("W")>-1&&(g[3].indexOf(",")>-1||g[3].indexOf("-")>-1))throw new Error("The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.");var v={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6};for(var S in v)g[5]=g[5].replace(new RegExp(S,"gi"),v[S].toString());g[4]=g[4].replace(/(^\d{1,2})|([^#/\s]\d{1,2})/g,function(R){var A=R.replace(/\D/,""),I=A;return y.monthStartIndexZero&&(I=(parseInt(A)+1).toString()),R.replace(A,I)});var E={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12};for(var b in E)g[4]=g[4].replace(new RegExp(b,"gi"),E[b].toString());g[0]=="0"&&(g[0]=""),!/\*|\-|\,|\//.test(g[2])&&(/\*|\//.test(g[1])||/\*|\//.test(g[0]))&&(g[2]+="-".concat(g[2]));for(var C=0;C<g.length;C++)if(g[C].indexOf(",")!=-1&&(g[C]=g[C].split(",").filter(function(R){return R!==""}).join(",")||"*"),g[C]=="*/1"&&(g[C]="*"),g[C].indexOf("/")>-1&&!/^\*|\-|\,/.test(g[C])){var T=null;switch(C){case 4:T="12";break;case 5:T="6";break;case 6:T="9999";break;default:T=null;break}if(T!==null){var O=g[C].split("/");g[C]="".concat(O[0],"-").concat(T,"/").concat(O[1])}}},p.prototype.validate=function(g){var y="0-9,\\-*/";this.validateOnlyExpectedCharactersFound(g[0],y),this.validateOnlyExpectedCharactersFound(g[1],y),this.validateOnlyExpectedCharactersFound(g[2],y),this.validateOnlyExpectedCharactersFound(g[3],"0-9,\\-*/LW"),this.validateOnlyExpectedCharactersFound(g[4],y),this.validateOnlyExpectedCharactersFound(g[5],"0-9,\\-*/L#"),this.validateOnlyExpectedCharactersFound(g[6],y),this.validateAnyRanges(g)},p.prototype.validateAnyRanges=function(g){d.default.secondRange(g[0]),d.default.minuteRange(g[1]),d.default.hourRange(g[2]),d.default.dayOfMonthRange(g[3]),d.default.monthRange(g[4],this.monthStartIndexZero),d.default.dayOfWeekRange(g[5],this.dayOfWeekStartIndexZero)},p.prototype.validateOnlyExpectedCharactersFound=function(g,y){var v=g.match(new RegExp("[^".concat(y,"]+"),"gi"));if(v&&v.length)throw new Error("Expression contains invalid values: '".concat(v.toString(),"'"))},p})();s.CronParser=c}),333:((i,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.ExpressionDescriptor=void 0;var d=l(823),c=l(949),p=(function(){function g(y,v){if(this.expression=y,this.options=v,this.expressionParts=new Array(5),!this.options.locale&&g.defaultLocale&&(this.options.locale=g.defaultLocale),!g.locales[this.options.locale]){var S=Object.keys(g.locales)[0];console.warn("Locale '".concat(this.options.locale,"' could not be found; falling back to '").concat(S,"'.")),this.options.locale=S}this.i18n=g.locales[this.options.locale],v.use24HourTimeFormat===void 0&&(v.use24HourTimeFormat=this.i18n.use24HourTimeFormatByDefault())}return g.toString=function(y,v){var S=v===void 0?{}:v,E=S.throwExceptionOnParseError,b=E===void 0?!0:E,C=S.verbose,T=C===void 0?!1:C,O=S.dayOfWeekStartIndexZero,R=O===void 0?!0:O,A=S.monthStartIndexZero,I=A===void 0?!1:A,F=S.use24HourTimeFormat,_=S.locale,z=_===void 0?null:_,$={throwExceptionOnParseError:b,verbose:T,dayOfWeekStartIndexZero:R,monthStartIndexZero:I,use24HourTimeFormat:F,locale:z};$.tzOffset&&console.warn("'tzOffset' option has been deprecated and is no longer supported.");var k=new g(y,$);return k.getFullDescription()},g.initialize=function(y,v){v===void 0&&(v="en"),g.specialCharacters=["/","-",",","*"],g.defaultLocale=v,y.load(g.locales)},g.prototype.getFullDescription=function(){var y,v,S="";try{var E=new c.CronParser(this.expression,this.options.dayOfWeekStartIndexZero,this.options.monthStartIndexZero);if(this.expressionParts=E.parse(),this.expressionParts[0]==="@reboot")return((v=(y=this.i18n).atReboot)===null||v===void 0?void 0:v.call(y))||"Run once, at startup";var b=this.getTimeOfDayDescription(),C=this.getDayOfMonthDescription(),T=this.getMonthDescription(),O=this.getDayOfWeekDescription(),R=this.getYearDescription();S+=b+C+O+T+R,S=this.transformVerbosity(S,!!this.options.verbose),S=S.charAt(0).toLocaleUpperCase()+S.substr(1)}catch(A){if(!this.options.throwExceptionOnParseError)S=this.i18n.anErrorOccuredWhenGeneratingTheExpressionD();else throw"".concat(A)}return S},g.prototype.getTimeOfDayDescription=function(){var y=this.expressionParts[0],v=this.expressionParts[1],S=this.expressionParts[2],E="";if(!d.StringUtilities.containsAny(v,g.specialCharacters)&&!d.StringUtilities.containsAny(S,g.specialCharacters)&&!d.StringUtilities.containsAny(y,g.specialCharacters))E+=this.i18n.atSpace()+this.formatTime(S,v,y);else if(!y&&v.indexOf("-")>-1&&!(v.indexOf(",")>-1)&&!(v.indexOf("/")>-1)&&!d.StringUtilities.containsAny(S,g.specialCharacters)){var b=v.split("-");E+=d.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(),this.formatTime(S,b[0],""),this.formatTime(S,b[1],""))}else if(!y&&S.indexOf(",")>-1&&S.indexOf("-")==-1&&S.indexOf("/")==-1&&!d.StringUtilities.containsAny(v,g.specialCharacters)){var C=S.split(",");E+=this.i18n.at();for(var T=0;T<C.length;T++)E+=" ",E+=this.formatTime(C[T],v,""),T<C.length-2&&(E+=","),T==C.length-2&&(E+=this.i18n.spaceAnd())}else{var O=this.getSecondsDescription(),R=this.getMinutesDescription(),A=this.getHoursDescription();if(E+=O,E&&R&&(E+=", "),E+=R,R===A)return E;E&&A&&(E+=", "),E+=A}return E},g.prototype.getSecondsDescription=function(){var y=this,v=this.getSegmentDescription(this.expressionParts[0],this.i18n.everySecond(),function(S){return S},function(S){return d.StringUtilities.format(y.i18n.everyX0Seconds(S),S)},function(S){return y.i18n.secondsX0ThroughX1PastTheMinute()},function(S){return S=="0"?"":parseInt(S)<20?y.i18n.atX0SecondsPastTheMinute(S):y.i18n.atX0SecondsPastTheMinuteGt20()||y.i18n.atX0SecondsPastTheMinute(S)});return v},g.prototype.getMinutesDescription=function(){var y=this,v=this.expressionParts[0],S=this.expressionParts[2],E=this.getSegmentDescription(this.expressionParts[1],this.i18n.everyMinute(),function(b){return b},function(b){return d.StringUtilities.format(y.i18n.everyX0Minutes(b),b)},function(b){return y.i18n.minutesX0ThroughX1PastTheHour()},function(b){try{return b=="0"&&S.indexOf("/")==-1&&v==""?y.i18n.everyHour():parseInt(b)<20?y.i18n.atX0MinutesPastTheHour(b):y.i18n.atX0MinutesPastTheHourGt20()||y.i18n.atX0MinutesPastTheHour(b)}catch{return y.i18n.atX0MinutesPastTheHour(b)}});return E},g.prototype.getHoursDescription=function(){var y=this,v=this.expressionParts[2],S=0,E=[];v.split("/")[0].split(",").forEach(function(T){var O=T.split("-");O.length===2&&E.push({value:O[1],index:S+1}),S+=O.length});var b=0,C=this.getSegmentDescription(v,this.i18n.everyHour(),function(T){var O=E.find(function(A){return A.value===T&&A.index===b}),R=O&&y.expressionParts[1]!=="0";return b++,R?y.formatTime(T,"59",""):y.formatTime(T,"0","")},function(T){return d.StringUtilities.format(y.i18n.everyX0Hours(T),T)},function(T){return y.i18n.betweenX0AndX1()},function(T){return y.i18n.atX0()});return C},g.prototype.getDayOfWeekDescription=function(){var y=this,v=this.i18n.daysOfTheWeek(),S=null;return this.expressionParts[5]=="*"?S="":S=this.getSegmentDescription(this.expressionParts[5],this.i18n.commaEveryDay(),function(E,b){var C=E;E.indexOf("#")>-1?C=E.substring(0,E.indexOf("#")):E.indexOf("L")>-1&&(C=C.replace("L",""));var T=parseInt(C),O=y.i18n.daysOfTheWeekInCase?y.i18n.daysOfTheWeekInCase(b)[T]:v[T];if(E.indexOf("#")>-1){var R=null,A=E.substring(E.indexOf("#")+1),I=E.substring(0,E.indexOf("#"));switch(A){case"1":R=y.i18n.first(I);break;case"2":R=y.i18n.second(I);break;case"3":R=y.i18n.third(I);break;case"4":R=y.i18n.fourth(I);break;case"5":R=y.i18n.fifth(I);break}O=R+" "+O}return O},function(E){return parseInt(E)==1?"":d.StringUtilities.format(y.i18n.commaEveryX0DaysOfTheWeek(E),E)},function(E){var b=E.substring(0,E.indexOf("-")),C=y.expressionParts[3]!="*";return C?y.i18n.commaAndX0ThroughX1(b):y.i18n.commaX0ThroughX1(b)},function(E){var b=null;if(E.indexOf("#")>-1){var C=E.substring(E.indexOf("#")+1),T=E.substring(0,E.indexOf("#"));b=y.i18n.commaOnThe(C,T).trim()+y.i18n.spaceX0OfTheMonth()}else if(E.indexOf("L")>-1)b=y.i18n.commaOnTheLastX0OfTheMonth(E.replace("L",""));else{var O=y.expressionParts[3]!="*";b=O?y.i18n.commaAndOnX0():y.i18n.commaOnlyOnX0(E)}return b}),S},g.prototype.getMonthDescription=function(){var y=this,v=this.i18n.monthsOfTheYear(),S=this.getSegmentDescription(this.expressionParts[4],"",function(E,b){return b&&y.i18n.monthsOfTheYearInCase?y.i18n.monthsOfTheYearInCase(b)[parseInt(E)-1]:v[parseInt(E)-1]},function(E){return parseInt(E)==1?"":d.StringUtilities.format(y.i18n.commaEveryX0Months(E),E)},function(E){return y.i18n.commaMonthX0ThroughMonthX1()||y.i18n.commaX0ThroughX1()},function(E){return y.i18n.commaOnlyInMonthX0?y.i18n.commaOnlyInMonthX0():y.i18n.commaOnlyInX0()});return S},g.prototype.getDayOfMonthDescription=function(){var y=this,v=null,S=this.expressionParts[3];switch(S){case"L":v=this.i18n.commaOnTheLastDayOfTheMonth();break;case"WL":case"LW":v=this.i18n.commaOnTheLastWeekdayOfTheMonth();break;default:var E=S.match(/(\d{1,2}W)|(W\d{1,2})/);if(E){var b=parseInt(E[0].replace("W","")),C=b==1?this.i18n.firstWeekday():d.StringUtilities.format(this.i18n.weekdayNearestDayX0(),b.toString());v=d.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(),C);break}else{var T=S.match(/L-(\d{1,2})/);if(T){var O=T[1];v=d.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(O),O);break}else{if(S=="*"&&this.expressionParts[5]!="*")return"";v=this.getSegmentDescription(S,this.i18n.commaEveryDay(),function(R){return R=="L"?y.i18n.lastDay():y.i18n.dayX0?d.StringUtilities.format(y.i18n.dayX0(),R):R},function(R){return R=="1"?y.i18n.commaEveryDay():y.i18n.commaEveryX0Days(R)},function(R){return y.i18n.commaBetweenDayX0AndX1OfTheMonth(R)},function(R){return y.i18n.commaOnDayX0OfTheMonth(R)})}break}}return v},g.prototype.getYearDescription=function(){var y=this,v=this.getSegmentDescription(this.expressionParts[6],"",function(S){return/^\d+$/.test(S)?new Date(parseInt(S),1).getFullYear().toString():S},function(S){return d.StringUtilities.format(y.i18n.commaEveryX0Years(S),S)},function(S){return y.i18n.commaYearX0ThroughYearX1()||y.i18n.commaX0ThroughX1()},function(S){return y.i18n.commaOnlyInYearX0?y.i18n.commaOnlyInYearX0():y.i18n.commaOnlyInX0()});return v},g.prototype.getSegmentDescription=function(y,v,S,E,b,C){var T=null,O=y.indexOf("/")>-1,R=y.indexOf("-")>-1,A=y.indexOf(",")>-1;if(!y)T="";else if(y==="*")T=v;else if(!O&&!R&&!A)T=d.StringUtilities.format(C(y),S(y));else if(A){for(var I=y.split(","),F="",_=0;_<I.length;_++)if(_>0&&I.length>2&&(F+=",",_<I.length-1&&(F+=" ")),_>0&&I.length>1&&(_==I.length-1||I.length==2)&&(F+="".concat(this.i18n.spaceAnd()," ")),I[_].indexOf("/")>-1||I[_].indexOf("-")>-1){var z=I[_].indexOf("-")>-1&&I[_].indexOf("/")==-1,$=this.getSegmentDescription(I[_],v,S,E,z?this.i18n.commaX0ThroughX1:b,C);z&&($=$.replace(", ","")),F+=$}else O?F+=this.getSegmentDescription(I[_],v,S,E,b,C):F+=S(I[_]);O?T=F:T=d.StringUtilities.format(C(y),F)}else if(O){var I=y.split("/");if(T=d.StringUtilities.format(E(I[1]),I[1]),I[0].indexOf("-")>-1){var k=this.generateRangeSegmentDescription(I[0],b,S);k.indexOf(", ")!=0&&(T+=", "),T+=k}else if(I[0].indexOf("*")==-1){var H=d.StringUtilities.format(C(I[0]),S(I[0]));H=H.replace(", ",""),T+=d.StringUtilities.format(this.i18n.commaStartingX0(),H)}}else R&&(T=this.generateRangeSegmentDescription(y,b,S));return T},g.prototype.generateRangeSegmentDescription=function(y,v,S){var E="",b=y.split("-"),C=S(b[0],1),T=S(b[1],2),O=v(y);return E+=d.StringUtilities.format(O,C,T),E},g.prototype.formatTime=function(y,v,S){var E=0,b=0,C=parseInt(y)+E,T=parseInt(v)+b;T>=60?(T-=60,C+=1):T<0&&(T+=60,C-=1),C>=24?C=C-24:C<0&&(C=24+C);var O="",R=!1;this.options.use24HourTimeFormat||(R=!!(this.i18n.setPeriodBeforeTime&&this.i18n.setPeriodBeforeTime()),O=R?"".concat(this.getPeriod(C)," "):" ".concat(this.getPeriod(C)),C>12&&(C-=12),C===0&&(C=12));var A="";return S&&(A=":".concat(("00"+S).substring(S.length))),"".concat(R?O:"").concat(("00"+C.toString()).substring(C.toString().length),":").concat(("00"+T.toString()).substring(T.toString().length)).concat(A).concat(R?"":O)},g.prototype.transformVerbosity=function(y,v){if(!v&&(y=y.replace(new RegExp(", ".concat(this.i18n.everyMinute()),"g"),""),y=y.replace(new RegExp(", ".concat(this.i18n.everyHour()),"g"),""),y=y.replace(new RegExp(this.i18n.commaEveryDay(),"g"),""),y=y.replace(/\, ?$/,""),this.i18n.conciseVerbosityReplacements))for(var S=0,E=Object.entries(this.i18n.conciseVerbosityReplacements());S<E.length;S++){var b=E[S],C=b[0],T=b[1];y=y.replace(new RegExp(C,"g"),T)}return y},g.prototype.getPeriod=function(y){return y>=12?this.i18n.pm&&this.i18n.pm()||"PM":this.i18n.am&&this.i18n.am()||"AM"},g.locales={},g})();s.ExpressionDescriptor=p}),747:((i,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.enLocaleLoader=void 0;var d=l(486),c=(function(){function p(){}return p.prototype.load=function(g){g.en=new d.en},p})();s.enLocaleLoader=c}),486:((i,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.en=void 0;var l=(function(){function d(){}return d.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},d.prototype.atX0MinutesPastTheHourGt20=function(){return null},d.prototype.commaMonthX0ThroughMonthX1=function(){return null},d.prototype.commaYearX0ThroughYearX1=function(){return null},d.prototype.use24HourTimeFormatByDefault=function(){return!1},d.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"An error occurred when generating the expression description. Check the cron expression syntax."},d.prototype.everyMinute=function(){return"every minute"},d.prototype.everyHour=function(){return"every hour"},d.prototype.atSpace=function(){return"At "},d.prototype.everyMinuteBetweenX0AndX1=function(){return"Every minute between %s and %s"},d.prototype.at=function(){return"At"},d.prototype.spaceAnd=function(){return" and"},d.prototype.everySecond=function(){return"every second"},d.prototype.everyX0Seconds=function(){return"every %s seconds"},d.prototype.secondsX0ThroughX1PastTheMinute=function(){return"seconds %s through %s past the minute"},d.prototype.atX0SecondsPastTheMinute=function(){return"at %s seconds past the minute"},d.prototype.everyX0Minutes=function(){return"every %s minutes"},d.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutes %s through %s past the hour"},d.prototype.atX0MinutesPastTheHour=function(){return"at %s minutes past the hour"},d.prototype.everyX0Hours=function(){return"every %s hours"},d.prototype.betweenX0AndX1=function(){return"between %s and %s"},d.prototype.atX0=function(){return"at %s"},d.prototype.commaEveryDay=function(){return", every day"},d.prototype.commaEveryX0DaysOfTheWeek=function(){return", every %s days of the week"},d.prototype.commaX0ThroughX1=function(){return", %s through %s"},d.prototype.commaAndX0ThroughX1=function(){return", %s through %s"},d.prototype.first=function(){return"first"},d.prototype.second=function(){return"second"},d.prototype.third=function(){return"third"},d.prototype.fourth=function(){return"fourth"},d.prototype.fifth=function(){return"fifth"},d.prototype.commaOnThe=function(){return", on the "},d.prototype.spaceX0OfTheMonth=function(){return" %s of the month"},d.prototype.lastDay=function(){return"the last day"},d.prototype.commaOnTheLastX0OfTheMonth=function(){return", on the last %s of the month"},d.prototype.commaOnlyOnX0=function(){return", only on %s"},d.prototype.commaAndOnX0=function(){return", and on %s"},d.prototype.commaEveryX0Months=function(){return", every %s months"},d.prototype.commaOnlyInX0=function(){return", only in %s"},d.prototype.commaOnTheLastDayOfTheMonth=function(){return", on the last day of the month"},d.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", on the last weekday of the month"},d.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s days before the last day of the month"},d.prototype.firstWeekday=function(){return"first weekday"},d.prototype.weekdayNearestDayX0=function(){return"weekday nearest day %s"},d.prototype.commaOnTheX0OfTheMonth=function(){return", on the %s of the month"},d.prototype.commaEveryX0Days=function(){return", every %s days"},d.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", between day %s and %s of the month"},d.prototype.commaOnDayX0OfTheMonth=function(){return", on day %s of the month"},d.prototype.commaEveryHour=function(){return", every hour"},d.prototype.commaEveryX0Years=function(){return", every %s years"},d.prototype.commaStartingX0=function(){return", starting %s"},d.prototype.daysOfTheWeek=function(){return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},d.prototype.monthsOfTheYear=function(){return["January","February","March","April","May","June","July","August","September","October","November","December"]},d.prototype.atReboot=function(){return"Run once, at startup"},d})();s.en=l}),515:((i,s)=>{Object.defineProperty(s,"__esModule",{value:!0});function l(c,p){if(!c)throw new Error(p)}var d=(function(){function c(){}return c.secondRange=function(p){for(var g=p.split(","),y=0;y<g.length;y++)if(!isNaN(parseInt(g[y],10))){var v=parseInt(g[y],10);l(v>=0&&v<=59,"seconds part must be >= 0 and <= 59")}},c.minuteRange=function(p){for(var g=p.split(","),y=0;y<g.length;y++)if(!isNaN(parseInt(g[y],10))){var v=parseInt(g[y],10);l(v>=0&&v<=59,"minutes part must be >= 0 and <= 59")}},c.hourRange=function(p){for(var g=p.split(","),y=0;y<g.length;y++)if(!isNaN(parseInt(g[y],10))){var v=parseInt(g[y],10);l(v>=0&&v<=23,"hours part must be >= 0 and <= 23")}},c.dayOfMonthRange=function(p){for(var g=p.split(","),y=0;y<g.length;y++)if(!isNaN(parseInt(g[y],10))){var v=parseInt(g[y],10);l(v>=1&&v<=31,"DOM part must be >= 1 and <= 31")}},c.monthRange=function(p,g){for(var y=p.split(","),v=0;v<y.length;v++)if(!isNaN(parseInt(y[v],10))){var S=parseInt(y[v],10);l(S>=1&&S<=12,g?"month part must be >= 0 and <= 11":"month part must be >= 1 and <= 12")}},c.dayOfWeekRange=function(p,g){for(var y=p.split(","),v=0;v<y.length;v++)if(!isNaN(parseInt(y[v],10))){var S=parseInt(y[v],10);l(S>=0&&S<=6,g?"DOW part must be >= 0 and <= 6":"DOW part must be >= 1 and <= 7")}},c})();s.default=d}),823:((i,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.StringUtilities=void 0;var l=(function(){function d(){}return d.format=function(c){for(var p=[],g=1;g<arguments.length;g++)p[g-1]=arguments[g];return c.replace(/%s/g,function(y){return p.shift()})},d.containsAny=function(c,p){return p.some(function(g){return c.indexOf(g)>-1})},d})();s.StringUtilities=l})},r={};function o(i){var s=r[i];if(s!==void 0)return s.exports;var l=r[i]={exports:{}};return n[i](l,l.exports,o),l.exports}var a={};return(()=>{var i=a;Object.defineProperty(i,"__esModule",{value:!0}),i.toString=void 0;var s=o(333),l=o(747);s.ExpressionDescriptor.initialize(new l.enLocaleLoader),i.default=s.ExpressionDescriptor;var d=s.ExpressionDescriptor.toString;i.toString=d})(),a})())})(u6)),u6.exports}var lNe=sNe();const cNe=qs(lNe),uNe=new Set(["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC","SUN","MON","TUE","WED","THU","FRI","SAT"]);function dNe(e){for(const t of e.trim().split(/\s+/)){if(/[#?]/.test(t))return!1;for(const n of t.split(/[,\-/]/))if(!(n===""||n==="*")&&/[A-Za-z]/.test(n)&&!uNe.has(n.toUpperCase()))return!1}return!0}function Xz(e){const t=(e??"").trim();if(t.split(/\s+/).filter(Boolean).length!==5)return{valid:!1,description:"",nextRun:null,error:"Expected a 5-field UNIX cron: minute hour day-of-month month day-of-week."};if(!dNe(t))return{valid:!1,description:"",nextRun:null,error:"Unsupported cron syntax: L, W, #, and ? extensions are not allowed (plain 5-field UNIX cron only)."};try{const n=cNe.toString(t,{use24HourTimeFormat:!0,verbose:!1}),r=iNe.CronExpressionParser.parse(t,{tz:"UTC"}).next().toDate();return{valid:!0,description:n,nextRun:r}}catch(n){return{valid:!1,description:"",nextRun:null,error:n instanceof Error?n.message:"Invalid cron expression."}}}function Zz(e){return e?e.toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",timeZone:"UTC",hour12:!1})+" UTC":"—"}const f6="0 6 * * *";function fNe({currentSchedule:e,isSubmitting:t,disabled:n,disabledReason:r,onSubmit:o}){const[a,i]=w.useState(!1),[s,l]=w.useState(e??f6),d=()=>{l(e??f6),i(!0)},c=()=>i(!1),p=Xz(s),g=async v=>{try{await o(v),i(!1)}catch{}},y=m.jsx("span",{children:m.jsx(ro,{variant:"outlined",size:"small",startIcon:m.jsx(tS,{}),onClick:d,disabled:n,"aria-label":e?"Edit schedule":"Set schedule",children:e?"Edit schedule":"Set schedule"})});return m.jsxs(m.Fragment,{children:[n&&r?m.jsx(Do,{title:r,children:y}):y,m.jsxs(ts,{open:a,onClose:c,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"set-schedule-title",children:[m.jsx(rs,{id:"set-schedule-title",children:e?"Edit schedule":"Set schedule"}),m.jsxs(ns,{children:[m.jsx(LS,{sx:{mb:2},children:"The publisher rebuilds the materializations in this package on this cadence. Enter a 5-field UNIX cron, evaluated in UTC. In a hosted deployment, the change takes effect on your next publish."}),m.jsx(Zc,{autoFocus:!0,fullWidth:!0,label:"Cron expression",value:s,onChange:v=>l(v.target.value),error:s.trim()!==""&&!p.valid,slotProps:{htmlInput:{style:{fontFamily:Yi}}}}),m.jsx(Nt,{sx:{mt:1.5,minHeight:48},children:p.valid?m.jsxs(m.Fragment,{children:[m.jsx(xt,{variant:"body2",children:p.description}),m.jsxs(xt,{variant:"body2",color:"text.secondary",children:["Next run: ",Zz(p.nextRun)]})]}):m.jsx(xt,{variant:"body2",color:"error",children:p.error})}),m.jsxs($y,{severity:"info",sx:{mt:2},children:["A schedule runs only on version-scoped packages, so saving one sets ",m.jsx("code",{children:"scope: version"})," for this package."]})]}),m.jsxs(Cm,{sx:{justifyContent:"space-between",px:3},children:[m.jsx(Nt,{children:e&&m.jsx(ro,{color:"error",loading:t,onClick:()=>g(null),children:"Clear schedule"})}),m.jsxs(Nt,{children:[m.jsx(ro,{onClick:c,children:"Cancel"}),m.jsx(ro,{variant:"contained",loading:t,disabled:!p.valid,onClick:()=>g(s.trim()),sx:{ml:1},children:"Save"})]})]})]})]})}function pNe({schedule:e,scope:t,manifestLocation:n,hasFreshness:r,mutable:o,isSubmitting:a,isScopeMutating:i,onSubmit:s,onScopeChange:l}){const d=!!n,c=e?Xz(e):null,p=!!e;return m.jsx(Sm,{variant:"outlined",sx:{borderRadius:2,mb:6},children:m.jsx(Em,{children:m.jsxs(_r,{direction:"row",justifyContent:"space-between",alignItems:"flex-start",spacing:2,children:[m.jsxs(Nt,{sx:{minWidth:0},children:[m.jsxs(_r,{direction:"row",alignItems:"center",spacing:1,sx:{mb:1},children:[m.jsx(tS,{fontSize:"small",color:"action"}),m.jsx(xt,{variant:"h6",sx:{fontWeight:600,letterSpacing:"-0.025em"},children:"Schedule"})]}),d?m.jsxs(Nt,{children:[m.jsx(Ff,{size:"small",color:"default",variant:"outlined",label:"Control-plane managed",sx:{mb:1}}),m.jsx(xt,{variant:"body2",color:"text.secondary",children:"Refresh is driven by the control plane; the built-in scheduler does not fire this package."})]}):c?m.jsxs(Nt,{children:[m.jsxs(_r,{direction:"row",alignItems:"center",spacing:1,sx:{mb:.5,flexWrap:"wrap"},children:[m.jsx(Ff,{size:"small",color:"success",variant:"outlined",icon:m.jsx(tS,{fontSize:"small"}),label:"Active"}),m.jsx(Nt,{component:"code",sx:{fontFamily:Yi,fontSize:"0.8125rem",px:.75,py:.25,borderRadius:1,bgcolor:"action.hover"},children:e})]}),m.jsx(xt,{variant:"body2",children:c.valid?c.description:"Unrecognized cron expression."}),c.valid&&m.jsxs(xt,{variant:"body2",color:"text.secondary",children:["Next run: ",Zz(c.nextRun)]})]}):r?m.jsx(xt,{variant:"body2",color:"text.secondary",children:"This package uses a freshness policy; a cron schedule is not applicable."}):m.jsx(xt,{variant:"body2",color:"text.secondary",children:"On-demand only — no schedule set."}),!d&&m.jsxs(Nt,{sx:{mt:2},children:[m.jsx(xt,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Scope"}),m.jsx(Do,{title:p?"A schedule requires version scope. Clear the schedule to change it.":"",children:m.jsx("span",{children:m.jsxs(Yre,{size:"small",exclusive:!0,value:t,disabled:!o||!l||p||!!i,onChange:(g,y)=>{y&&y!==t&&l?.(y)},children:[m.jsx(XI,{value:"package",children:"package"}),m.jsx(XI,{value:"version",children:"version"})]})})}),m.jsx(xt,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.5},children:t==="version"?"Materialized artifacts are per version (required for a schedule).":"Materialized artifacts are shared across versions."})]}),m.jsxs(xt,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:1.5},children:["Declared in ",m.jsx("code",{children:"publisher.json"}),".",!d&&m.jsxs(m.Fragment,{children:[" ","In a hosted deployment, a change takes effect on your next publish."]})]})]}),o&&!d&&m.jsx(fNe,{currentSchedule:e,isSubmitting:a,disabled:r,disabledReason:"This package declares a freshness policy; a schedule and freshness are mutually exclusive.",onSubmit:s})]})})})}const hNe=3e3;function G3e({resourceUri:e,onClickPackageFile:t}){const{apiClients:n,mutable:r}=zr(),o=Ws(),{environmentName:a,packageName:i}=Co(e),[s,l]=w.useState(""),[d,c]=w.useState(null),p=t??(_=>{window.location.href=_});if(!i)throw new Error("Materializations requires a package in the resource URI");const g=So({queryKey:["materializations",a,i],queryFn:()=>n.materializations.listMaterializations(a,i),refetchInterval:_=>(_.state.data?.data??[]).some(z=>rb(z.status))?hNe:!1}),y=So({queryKey:["package",a,i],queryFn:()=>n.packages.getPackage(a,i)}),v=()=>o.invalidateQueries({queryKey:["materializations",a,i]}),S=ma({mutationFn:_=>n.materializations.createMaterialization(a,i,{forceRefresh:_.forceRefresh}),onSuccess(){l("Materialization requested"),v()},onError(_){l(_.message),v()}}),E=ma({mutationFn:_=>n.materializations.materializationAction(a,i,_.id,g$.Stop),onSuccess(){l("Materialization stopped"),v()},onError(_){l(_.message)}}),b=ma({mutationFn:({materialization:_,dropTables:z})=>n.materializations.deleteMaterialization(a,i,_.id,z),onSuccess(){l("Materialization deleted"),v()},onError(_){l(_.message)}}),C=y.data?.data,T=ma({mutationFn:_=>n.packages.updatePackage(a,i,{name:i,description:C?.description,..._?{scope:l1.Version}:{},materialization:{schedule:_}}),onSuccess(_,z){l(z?"Schedule updated":"Schedule cleared"),o.invalidateQueries({queryKey:["package",a,i]})},onError(_){l(_.message)}}),O=ma({mutationFn:_=>n.packages.updatePackage(a,i,{name:i,description:C?.description,scope:_}),onSuccess(){l("Scope updated"),o.invalidateQueries({queryKey:["package",a,i]})},onError(_){l(_.message)}}),R=g.data?.data??[],A=R.find(_=>_.id===d)??null,I=R.some(_=>rb(_.status)),F=S.isPending||E.isPending||b.isPending;return m.jsxs(IS,{maxWidth:!1,sx:{maxWidth:1024,mx:"auto",px:3,py:6},children:[m.jsxs(Nt,{sx:{mb:4},children:[m.jsxs(VA,{onClick:_=>p(`/${a}/${i}`,_),underline:"none",sx:{display:"inline-flex",alignItems:"center",gap:.5,cursor:"pointer",color:"text.secondary",fontSize:"0.875rem",mb:2,"&:hover":{color:"primary.main"}},children:[m.jsx(Bz,{sx:{fontSize:18}}),"Back to ",i]}),m.jsxs(_r,{direction:"row",alignItems:"flex-start",justifyContent:"space-between",children:[m.jsxs(Nt,{children:[m.jsx(xt,{variant:"h4",component:"h1",sx:{fontWeight:600,letterSpacing:"-0.025em",mb:.5},children:"Materializations"}),m.jsxs(xt,{variant:"body2",color:"text.secondary",children:["Materialize the persist sources in ",i," into tables and serve queries from them"]})]}),r&&m.jsx(sPe,{onSubmit:_=>S.mutateAsync(_),isSubmitting:S.isPending,disabled:I,disabledReason:"A materialization is already pending or running for this package."})]})]}),y.isSuccess&&m.jsx(pNe,{schedule:C?.materialization?.schedule??null,scope:C?.scope===l1.Version?"version":"package",manifestLocation:C?.manifestLocation??null,hasFreshness:!!C?.materialization?.freshness,mutable:r,isSubmitting:T.isPending,isScopeMutating:O.isPending,onSubmit:_=>T.mutateAsync(_),onScopeChange:_=>O.mutateAsync(_==="version"?l1.Version:l1.Package)}),m.jsxs(Nt,{sx:{mb:6},children:[m.jsx(xt,{variant:"h6",sx:{fontWeight:600,letterSpacing:"-0.025em",mb:1},children:"Runs"}),g.isError&&m.jsx(ka,{error:g.error,context:`${a} > ${i} > Materializations`}),!g.isSuccess&&!g.isError&&m.jsx(wa,{text:"Loading materializations..."}),g.isSuccess&&m.jsx(Gz,{materializations:R,mutable:r,isMutating:F,onStop:_=>E.mutate(_),onDelete:(_,z)=>b.mutate({materialization:_,dropTables:z}),onViewDetails:_=>c(_.id??null)})]}),m.jsx(qz,{materialization:A,buildPlan:y.data?.data?.buildPlan??null,onClose:()=>c(null)}),m.jsx(xl,{open:s!=="",autoHideDuration:6e3,onClose:()=>l(""),message:s})]})}function mNe({packages:e,onSubmit:t,isSubmitting:n,disabled:r}){const[o,a]=w.useState(!1),[i,s]=w.useState({}),[l,d]=w.useState(!1),c=()=>{s({}),d(!1),a(!0)},p=()=>a(!1),g=e.map(E=>E.name).filter(E=>i[E]),y=E=>s(b=>({...b,[E]:!b[E]})),v=e.length>0&&g.length===e.length,S=async()=>{try{await t({packageNames:g,forceRefresh:l}),a(!1)}catch{}};return m.jsxs(m.Fragment,{children:[m.jsx(ro,{variant:"contained",startIcon:m.jsx(om,{}),onClick:c,disabled:r,"aria-label":"New materialization",children:"New materialization"}),m.jsxs(ts,{open:o,onClose:p,maxWidth:"xs",fullWidth:!0,"aria-labelledby":"create-env-materialization-title",children:[m.jsx(rs,{id:"create-env-materialization-title",children:"New materialization"}),m.jsxs(ns,{children:[m.jsx(LS,{sx:{mb:1},children:"Pick the packages to materialize. Each runs an independent build of every persist source in that package."}),e.length===0?m.jsx(xt,{variant:"body2",color:"text.secondary",children:"No packages in this environment."}):m.jsxs(m.Fragment,{children:[m.jsx(_h,{control:m.jsx(bk,{checked:v,indeterminate:g.length>0&&!v,onChange:E=>{const b={};E.target.checked&&e.forEach(C=>b[C.name]=!0),s(b)}}),label:m.jsx(xt,{variant:"body2",children:"Select all"})}),m.jsx(Nt,{sx:{maxHeight:240,overflowY:"auto",pl:1,borderLeft:"2px solid",borderColor:"divider"},children:m.jsx(mj,{children:e.map(E=>m.jsx(_h,{control:m.jsx(bk,{checked:!!i[E.name],onChange:()=>y(E.name)}),label:E.name},E.name))})}),m.jsx(_h,{sx:{mt:1},control:m.jsx(KA,{checked:l,onChange:E=>d(E.target.checked)}),label:"Force refresh (rebuild even if unchanged)"})]})]}),m.jsxs(Cm,{children:[m.jsx(ro,{onClick:p,children:"Cancel"}),m.jsxs(ro,{variant:"contained",loading:n,disabled:g.length===0,onClick:S,children:["Materialize",g.length>0?` (${g.length})`:""]})]})]})]})}const gNe=3e3,p6=10;function yNe({resourceUri:e,onClickPackageFile:t}){const{apiClients:n,mutable:r}=zr(),o=Ws(),{environmentName:a}=Co(e),[i,s]=w.useState(""),[l,d]=w.useState(null),[c,p]=w.useState(p6),g=t??(F=>{window.location.href=F}),y=So({queryKey:["env-materializations",a,c],queryFn:()=>n.materializations.listEnvironmentMaterializations(a,c),placeholderData:F=>F,refetchInterval:F=>(F.state.data?.data??[]).some(_=>rb(_.status))?gNe:!1}),v=So({queryKey:["packages",a],queryFn:()=>n.packages.listPackages(a)}),S=()=>o.invalidateQueries({queryKey:["env-materializations",a]}),E=ma({mutationFn:async F=>{const _=(await Promise.allSettled(F.packageNames.map(z=>n.materializations.createMaterialization(a,z,{forceRefresh:F.forceRefresh})))).filter(z=>z.status==="rejected").length;return{total:F.packageNames.length,failed:_}},onSuccess(F){const _=F.total-F.failed;s(F.failed===0?`Started ${_} materialization${_===1?"":"s"}`:`Started ${_} of ${F.total} (${F.failed} could not start — a build may already be active)`),S()},onError(F){s(F.message),S()}}),b=ma({mutationFn:F=>n.materializations.materializationAction(a,F.packageName,F.id,g$.Stop),onSuccess(){s("Materialization stopped"),S()},onError(F){s(F.message)}}),C=ma({mutationFn:({materialization:F,dropTables:_})=>n.materializations.deleteMaterialization(a,F.packageName,F.id,_),onSuccess(){s("Materialization deleted"),S()},onError(F){s(F.message)}}),T=y.data?.data??[],O=v.data?.data??[],R=T.find(F=>F.id===l)??null,A=E.isPending||b.isPending||C.isPending,I=T.length>=c;return m.jsxs(Nt,{children:[m.jsxs(Nt,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",mb:3},children:[m.jsxs(Nt,{children:[m.jsx(xt,{variant:"h6",sx:{fontWeight:600,letterSpacing:"-0.025em"},children:"Materializations"}),m.jsx(xt,{variant:"body2",color:"text.secondary",children:"All materialization builds across the packages in this environment"})]}),r&&m.jsx(mNe,{packages:O,onSubmit:F=>E.mutateAsync(F),isSubmitting:E.isPending})]}),y.isError&&m.jsx(ka,{error:y.error,context:`${a} > Materializations`}),!y.isSuccess&&!y.isError&&m.jsx(wa,{text:"Loading materializations..."}),y.isSuccess&&m.jsx(Gz,{materializations:T,mutable:r,isMutating:A,showPackage:!0,onClickPackage:F=>g(`/${a}/${F}/materializations`),onStop:F=>b.mutate(F),onDelete:(F,_)=>C.mutate({materialization:F,dropTables:_}),onViewDetails:F=>d(F.id??null)}),y.isSuccess&&T.length>0&&m.jsxs(_r,{direction:"row",alignItems:"center",justifyContent:"center",spacing:2,sx:{mt:2},children:[m.jsx(xt,{variant:"caption",color:"text.secondary",children:I?`Showing ${T.length} most recent`:`${T.length} materialization${T.length===1?"":"s"}`}),I&&m.jsx(ro,{size:"small",onClick:()=>p(F=>F+p6),disabled:y.isFetching,children:"Show more"})]}),m.jsx(qz,{materialization:R,buildPlan:null,showBuildPlan:!1,onClose:()=>d(null)}),m.jsx(xl,{open:i!=="",autoHideDuration:6e3,onClose:()=>s(""),message:i})]})}function vNe({resourceUri:e}){const{environmentName:t}=Co(e),{apiClients:n}=zr(),[r,o]=w.useState(!1),a=90,{data:i,isSuccess:s,isError:l,error:d}=So({queryKey:["about",t],queryFn:()=>n.environments.getEnvironment(t,!1)}),c=i?.data?.readme||"",p=c.split(/\s+/),g=p.length>a,y=p.slice(0,a).join(" ");return m.jsxs(m.Fragment,{children:[!s&&!l&&m.jsx(wa,{text:"Fetching About..."}),s&&c&&m.jsx(Die,{children:m.jsxs(Oie,{children:[m.jsx(Rie,{children:"Readme"}),m.jsxs(Nt,{sx:{mt:1,fontSize:"0.875rem",lineHeight:1.6},children:[m.jsx(Mx,{options:{overrides:{h1:{component:"p",props:{style:{fontSize:"inherit",fontWeight:"italic"}}},h2:{component:"p",props:{style:{fontSize:"inherit",fontWeight:"italic"}}},h3:{component:"p",props:{style:{fontSize:"inherit",fontWeight:"italic"}}}}},children:r||!g?c:y}),g&&m.jsxs(Nt,{sx:{mt:1},children:[" ",m.jsx(ro,{variant:"text",size:"small",onClick:()=>o(!r),children:r?"Read less":"Read more"})]})]})]})}),l&&m.jsx(ka,{error:d,context:`${t} > About`})]})}const Jz="https://docs.malloydata.dev/documentation",Ww=`${Jz}/user_guides/publishing`,xh="https://github.com/malloydata/publisher/blob/main/docs",Jl={docsHome:`${Jz}/`,publishing:`${Ww}/publishing`,explorer:`${Ww}/explorer`,mcpAgents:`${Ww}/mcp_agents`,surfaces:`${xh}/choosing-a-surface.md`,dashboards:`${xh}/dashboards.md`,dataApps:`${xh}/html-data-apps.md`,givens:`${xh}/givens.md`,materialization:`${xh}/materialization.md`,connections:`${xh}/connections.md`};function bNe({resourceUri:e}){const[t,n]=w.useState(!1),{apiClients:r}=zr(),o=Ws(),[a,i]=w.useState(""),{environmentName:s}=Co(e),l=ma({async mutationFn(c){return r.packages.createPackage(s,{name:c.name,description:c.description,location:c.location})},onSuccess(){n(!1),i("Package created successfully"),o.invalidateQueries({queryKey:["packages",s]})},onError(c){i(c instanceof Error?c.message:"An unknown error occurred")}}),d=c=>{c.preventDefault();const p=new FormData(c.currentTarget),g=p.get("name")?.toString(),y=p.get("description")?.toString(),v=p.get("location")?.toString();l.mutate({name:g,description:y,location:v})};return m.jsxs(m.Fragment,{children:[m.jsx(ro,{onClick:()=>n(!0),variant:"contained",color:"primary",startIcon:m.jsx(Yse,{}),children:"Add Package"}),m.jsxs(ts,{open:t,onClose:()=>n(!1),maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{borderRadius:2}},children:[m.jsx(rs,{sx:{fontSize:"1.25rem",fontWeight:600,letterSpacing:"-0.025em",pt:3,pb:1,px:3},children:"Create New Package"}),m.jsxs(ns,{sx:{px:3,pb:0},children:[m.jsxs(Nt,{sx:{mb:3},children:[m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:"Create a new Malloy package to start exploring your data."}),m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:"The location can be a GitHub/S3/GCP URL containing a package (zipped or unzipped), or an absolute path to a directory the publisher server has access to."}),m.jsxs(xt,{variant:"body2",color:"text.secondary",children:["Make sure to conform to the"," ",m.jsx(Nt,{component:"a",href:Jl.publishing,target:"_blank",rel:"noopener noreferrer",sx:{color:"text.primary",textDecoration:"underline"},children:"Malloy Package Format"}),"."]})]}),m.jsx("form",{onSubmit:d,id:"package-form",children:m.jsxs(_r,{spacing:2.5,children:[m.jsx(Zc,{autoFocus:!0,required:!0,id:"name",name:"name",label:"Package Name",type:"text",fullWidth:!0,variant:"outlined",size:"small",InputLabelProps:{shrink:!0}}),m.jsx(Zc,{id:"description",name:"description",label:"Description",multiline:!0,rows:3,fullWidth:!0,variant:"outlined",size:"small",InputLabelProps:{shrink:!0}}),m.jsx(Zc,{id:"location",name:"location",label:"Location",type:"text",placeholder:"e.g. s3://my-bucket/my-package.zip",fullWidth:!0,variant:"outlined",size:"small",InputLabelProps:{shrink:!0}})]})})]}),m.jsxs(Cm,{sx:{px:3,pt:2,pb:3,gap:1},children:[m.jsx(ro,{variant:"outlined",disabled:l.isPending,onClick:()=>n(!1),children:"Cancel"}),m.jsx(ro,{type:"submit",form:"package-form",variant:"contained",loading:l.isPending,children:"Save Changes"})]})]}),m.jsx(xl,{open:a!=="",autoHideDuration:6e3,onClose:()=>i(""),message:a})]})}const xNe=lr(m.jsx("path",{d:"M2 20h20v-4H2zm2-3h2v2H4zM2 4v4h20V4zm4 3H4V5h2zm-4 7h20v-4H2zm2-3h2v2H4z"})),eH=lr(m.jsx("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"})),SNe=un("MuiBox",["root"]),ENe=kB(),fi=xA({themeId:Om,defaultTheme:ENe,defaultClassName:SNe.root,generateClassName:dB.generate});function CNe(e){return yn("MuiDialogContentText",e)}un("MuiDialogContentText",["root"]);const TNe=e=>{const{classes:t}=e,n=hn({root:["root"]},CNe,t);return{...t,...n}},wNe=Ye(Nr,{shouldForwardProp:e=>Za(e)||e==="classes",name:"MuiDialogContentText",slot:"Root"})({}),Wb=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiDialogContentText"}),{children:r,className:o,...a}=n,i=TNe(a);return m.jsx(wNe,{component:"p",variant:"body1",color:"textSecondary",ref:t,ownerState:a,className:Kt(i.root,o),...n,classes:i})}),eu={postgres:[{label:"Host",name:"host",type:"text",required:!1},{label:"Port",name:"port",type:"number",required:!1},{label:"Database Name",name:"databaseName",type:"text",required:!1},{label:"User Name",name:"userName",type:"text",required:!1},{label:"Password",name:"password",type:"password",required:!1},{label:"Connection String",name:"connectionString",type:"text",required:!1}],bigquery:[{label:"Project ID",name:"defaultProjectId",type:"text",required:!1},{label:"Billing Project ID",name:"billingProjectId",type:"text",required:!1},{label:"Location",name:"location",type:"text",required:!1},{label:"Service Account Key JSON",name:"serviceAccountKeyJson",type:"text",required:!0},{label:"Maximum Bytes Billed",name:"maximumBytesBilled",type:"text",required:!1},{label:"Query Timeout Milliseconds",name:"queryTimeoutMilliseconds",type:"text",required:!1}],snowflake:[{label:"Account",name:"account",type:"text",required:!0},{label:"Username",name:"username",type:"text",required:!0},{label:"Password",name:"password",type:"password",required:!1},{label:"Role",name:"role",type:"text",required:!1},{label:"Warehouse",name:"warehouse",type:"text",required:!0},{label:"Database",name:"database",type:"text",required:!1},{label:"Schema",name:"schema",type:"text",required:!1},{label:"Response Timeout Milliseconds",name:"responseTimeoutMilliseconds",type:"text",required:!1},{label:"Private Key",name:"privateKey",type:"password",required:!1},{label:"Private Key Passphrase",name:"privateKeyPass",type:"password",required:!1}],trino:[{label:"Server",name:"server",type:"text",required:!0},{label:"Port",name:"port",type:"number",required:!1},{label:"Catalog",name:"catalog",type:"text",required:!1},{label:"Schema",name:"schema",type:"text",required:!1},{label:"User",name:"user",type:"text",required:!0},{label:"Password",name:"password",type:"password",required:!1},{label:"Peaka Key",name:"peakaKey",type:"password",required:!1}],databricks:[{label:"Host",name:"host",type:"text",required:!0},{label:"HTTP Path",name:"path",type:"text",required:!0},{label:"Access Token",name:"token",type:"password",required:!1},{label:"OAuth Client ID",name:"oauthClientId",type:"text",required:!1},{label:"OAuth Client Secret",name:"oauthClientSecret",type:"password",required:!1},{label:"Default Catalog",name:"defaultCatalog",type:"text",required:!1},{label:"Default Schema",name:"defaultSchema",type:"text",required:!1}],mysql:[{label:"Host",name:"host",type:"text",required:!0},{label:"Port",name:"port",type:"number",required:!0},{label:"User",name:"user",type:"text",required:!0},{label:"Password",name:"password",type:"password",required:!0},{label:"Database",name:"database",type:"text",required:!0}],duckdb:[],motherduck:[{label:"Access Token",name:"accessToken",type:"text",required:!0},{label:"Database",name:"database",type:"text",required:!1}],ducklake:[],publisher:[]},ux={postgres:"postgresConnection",bigquery:"bigqueryConnection",snowflake:"snowflakeConnection",trino:"trinoConnection",databricks:"databricksConnection",mysql:"mysqlConnection",duckdb:"duckdbConnection",motherduck:"motherduckConnection",ducklake:"ducklakeConnection",publisher:"publisherConnection"},tH=Object.values(T5).filter(e=>e!==T5.Publisher),K2={postgres:"postgresConnection",bigquery:"bigqueryConnection",snowflake:"snowflakeConnection",gcs:"gcsConnection",s3:"s3Connection",azure:"azureConnection"},ob=[{label:"Access Key ID",name:"accessKeyId",type:"text",required:!0},{label:"Secret Access Key",name:"secretAccessKey",type:"password",required:!0},{label:"Region",name:"region",type:"text",required:!1},{label:"Endpoint",name:"endpoint",type:"text",required:!1},{label:"Session Token",name:"sessionToken",type:"password",required:!1}],ab=[{label:"Key ID",name:"keyId",type:"text",required:!0},{label:"Secret",name:"secret",type:"password",required:!0}],kNe=[{label:"Auth Type",name:"authType",type:"text",required:!0,selectOptions:[{label:"SAS Token",value:"sas_token"},{label:"Service Principal (SPN)",value:"service_principal"}]},{label:"SAS URL (e.g. https://account.blob.core.windows.net/container/file.parquet?sp=r&st=...)",name:"sasUrl",type:"text",required:!1,visibleWhen:{field:"authType",value:"sas_token"}},{label:"Tenant ID",name:"tenantId",type:"text",required:!1,visibleWhen:{field:"authType",value:"service_principal"}},{label:"Client ID",name:"clientId",type:"text",required:!1,visibleWhen:{field:"authType",value:"service_principal"}},{label:"Client Secret",name:"clientSecret",type:"password",required:!1,visibleWhen:{field:"authType",value:"service_principal"}},{label:"Account Name",name:"accountName",type:"text",required:!1,visibleWhen:{field:"authType",value:"service_principal"}},{label:"File URL (e.g. abfss://container/path/file.parquet)",name:"fileUrl",type:"text",required:!1,visibleWhen:{field:"authType",value:"service_principal"}}];function nS(e){return e==="postgres"||e==="bigquery"||e==="snowflake"?eu[e]||[]:e==="s3"?ob:e==="gcs"?ab:e==="azure"?kNe:[]}function ANe({onSubmit:e,isSubmitting:t}){const[n,r]=w.useState(!1),[o,a]=w.useState("postgres"),[i,s]=w.useState([]),[l,d]=w.useState("postgres"),[c,p]=w.useState("s3"),g=()=>{r(!0)},y=()=>{r(!1),s([]),a("postgres"),d("postgres"),p("s3")},v=async C=>{C.preventDefault();const T=new FormData(C.currentTarget),O=T.get("name")?.toString(),R=T.get("type")?.toString(),A=eu[R];if(!O)throw new Error("Name is required");if(!R)throw new Error("Type is required");let I;if(R==="ducklake"){const F={};if(l==="postgres"){const $=eu.postgres,k={};if($.forEach(H=>{const L=T.get(`ducklake_pg_${H.name}`)?.toString();L&&(k[H.name]=L)}),Object.keys(k).length===0)throw new Error("DuckLake requires catalog connection");F.postgresConnection=k}const _=T.get("ducklake_bucketUrl")?.toString();if(!_)throw new Error("DuckLake requires a bucket URL");const z={bucketUrl:_};if(c==="s3"){const $={};if(ob.forEach(k=>{const H=T.get(`ducklake_s3_${k.name}`)?.toString();H&&($[k.name]=H)}),!$.accessKeyId)throw new Error("S3 Access Key ID is required");if(!$.secretAccessKey)throw new Error("S3 Secret Access Key is required");Object.keys($).length>0&&(z.s3Connection=$)}else if(c==="gcs"){const $={};if(ab.forEach(k=>{const H=T.get(`ducklake_gcs_${k.name}`)?.toString();H&&($[k.name]=H)}),!$.keyId)throw new Error("GCS Key ID is required");if(!$.secret)throw new Error("GCS Secret is required");Object.keys($).length>0&&(z.gcsConnection=$)}I={name:O,type:R,ducklakeConnection:{catalog:F,storage:z}}}else if(R==="duckdb"){if(i.length===0)throw new Error("DuckDB connection must have at least one attached database");const F=i.map((_,z)=>{const $=_.dbType,k=T.get(`attachedDb_${z}_name`)?.toString();if(!k)throw new Error(`Attached database at index ${z} must have a name`);const H={name:k,type:$},L=nS($);if(L&&L.length>0){const V={};L.forEach(Z=>{const J=T.get(`attachedDb_${z}_${Z.name}`)?.toString();J&&(V[Z.name]=J)});const j=K2[$];j&&(H[j]=V)}return H});I={name:O,type:R,duckdbConnection:{attachedDatabases:F}}}else{const F={};if(A.forEach(_=>{const z=T.get(_.name)?.toString();z&&(F[_.name]=z)}),R==="postgres"){if(!F.connectionString?.trim()){const _=["host","port","databaseName","userName","password"];for(const z of _)if(!F[z])throw new Error(`${A.find($=>$.name===z)?.label||z} is required`)}}else if(R==="bigquery"){if(!F.serviceAccountKeyJson)throw new Error("Service Account Key JSON is required")}else if(R==="snowflake"){if(!F.account)throw new Error("Account is required");if(!F.username)throw new Error("Username is required");if(!F.warehouse)throw new Error("Warehouse is required");if(!F.password&&!F.privateKey)throw new Error("Either password or private key is required")}else if(R==="trino"){if(!F.server)throw new Error("Server is required");if(!F.user)throw new Error("User is required");if(F.server.trim().startsWith("https://")&&!F.password&&!F.peakaKey)throw new Error("Password is required for HTTPS connections (or use Peaka Key)")}else if(R==="mysql"){const _=["host","port","database","user","password"];for(const z of _)if(!F[z])throw new Error(`${A.find($=>$.name===z)?.label||z} is required`)}else if(R==="motherduck"){if(!F.accessToken)throw new Error("Access Token is required")}else if(R==="databricks"){if(!F.host)throw new Error("Host is required");if(!F.path)throw new Error("HTTP Path is required");const _=F.oauthClientId&&F.oauthClientSecret;if(!F.token&&!_)throw new Error("Either Access Token or OAuth Client ID + Secret is required")}I={name:O,type:R,[ux[R]]:F}}await e(I),y()},S=()=>{s([...i,{name:"",dbType:"postgres"}])},E=C=>{s(i.filter((T,O)=>O!==C))},b=(C,T)=>{const O=[...i];O[C]={...O[C],dbType:T},s(O)};return m.jsxs($t.Fragment,{children:[m.jsx(Eo,{variant:"contained",color:"primary",startIcon:m.jsx(om,{}),onClick:g,children:"Add Connection"}),m.jsxs(Sc,{open:n,onClose:y,children:[m.jsx(pu,{children:"Create New Connection"}),m.jsxs(xc,{children:[m.jsx(Wb,{children:"Add a new connection to query your data database using Malloy."}),m.jsxs("form",{onSubmit:v,id:"connection-form",children:[m.jsx(Lr,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Connection Name",type:"text",fullWidth:!0,variant:"standard"}),m.jsx(Lr,{margin:"dense",id:"type",name:"type",label:"Connection Type",fullWidth:!0,variant:"standard",value:o,select:!0,onChange:C=>a(C.target.value),children:tH.map(C=>m.jsx(Ga,{value:C,children:C},C))}),o==="ducklake"?m.jsxs(fi,{sx:{mt:2},children:[m.jsxs(fi,{sx:{mb:3,p:2,border:"1px solid",borderColor:"divider",borderRadius:1},children:[m.jsx(Nr,{variant:"subtitle2",sx:{mb:2},fontWeight:500,children:"Catalog"}),m.jsx(Lr,{margin:"dense",id:"ducklake_catalogType",label:"Catalog Type",fullWidth:!0,variant:"standard",value:l,select:!0,onChange:C=>d(C.target.value),children:m.jsx(Ga,{value:"postgres",children:"PostgreSQL"})}),l==="postgres"&&m.jsx(m.Fragment,{children:eu.postgres.map(C=>m.jsx(Lr,{margin:"dense",id:`ducklake_pg_${C.name}`,name:`ducklake_pg_${C.name}`,label:C.label,type:C.type,fullWidth:!0,variant:"standard"},`pg_${C.name}`))})]}),m.jsxs(fi,{sx:{mb:3,p:2,border:"1px solid",borderColor:"divider",borderRadius:1},children:[m.jsx(Nr,{variant:"subtitle2",sx:{mb:2},fontWeight:500,children:"Storage"}),m.jsxs(Lr,{margin:"dense",id:"ducklake_storageType",label:"Storage Type",fullWidth:!0,variant:"standard",value:c,select:!0,onChange:C=>p(C.target.value),children:[m.jsx(Ga,{value:"s3",children:"S3"}),m.jsx(Ga,{value:"gcs",children:"GCS"})]}),m.jsx(Lr,{margin:"dense",required:!0,id:"ducklake_bucketUrl",name:"ducklake_bucketUrl",label:c==="s3"?"Bucket URL (e.g. s3://my-bucket/path)":"Bucket URL (e.g. gs://my-bucket/path)",type:"text",fullWidth:!0,variant:"standard"}),c==="s3"&&m.jsxs(m.Fragment,{children:[m.jsx(Nr,{variant:"caption",sx:{mt:2,mb:1,display:"block"},color:"text.secondary",children:"S3 Credentials"}),ob.map(C=>m.jsx(Lr,{margin:"dense",id:`ducklake_s3_${C.name}`,name:`ducklake_s3_${C.name}`,label:C.label,type:C.type,fullWidth:!0,variant:"standard",required:C.required,placeholder:C.name==="region"?"us-east-1":void 0},`s3_${C.name}`))]}),c==="gcs"&&m.jsxs(m.Fragment,{children:[m.jsx(Nr,{variant:"caption",sx:{mt:2,mb:1,display:"block"},color:"text.secondary",children:"GCS Credentials"}),ab.map(C=>m.jsx(Lr,{margin:"dense",id:`ducklake_gcs_${C.name}`,name:`ducklake_gcs_${C.name}`,label:C.label,type:C.type,fullWidth:!0,variant:"standard",required:C.required},`gcs_${C.name}`))]})]})]}):o==="duckdb"?m.jsxs(fi,{sx:{mt:2},children:[m.jsxs(fi,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[m.jsx(Nr,{variant:"subtitle1",fontWeight:500,children:"Attached Databases"}),m.jsx(Eo,{startIcon:m.jsx(om,{}),onClick:S,size:"small",variant:"outlined",children:"Add Database"})]}),i.length===0&&m.jsx(Nr,{variant:"body2",color:"text.secondary",sx:{mb:2},children:'DuckDB connections require at least one attached database. Click "Add Database" to get started.'}),i.map((C,T)=>{const O=nS(C.dbType);return m.jsxs(fi,{sx:{mb:3,p:2,border:"1px solid",borderColor:"divider",borderRadius:1},children:[m.jsxs(fi,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[m.jsxs(Nr,{variant:"subtitle2",children:["Database ",T+1]}),m.jsx(Qs,{onClick:()=>E(T),size:"small",color:"error",children:m.jsx(eH,{fontSize:"small"})})]}),m.jsx(Lr,{margin:"dense",required:!0,id:`attachedDb_${T}_name`,name:`attachedDb_${T}_name`,label:"Database Name",type:"text",fullWidth:!0,variant:"standard",defaultValue:C.name}),m.jsx(Lr,{margin:"dense",id:`attachedDb_${T}_type`,name:`attachedDb_${T}_type`,label:"Database Type",fullWidth:!0,variant:"standard",value:C.dbType,select:!0,onChange:R=>b(T,R.target.value),children:Object.values(m$).map(R=>m.jsx(Ga,{value:R,children:R},R))}),O.filter(R=>R.visibleWhen?(C[R.visibleWhen.field]||O.find(A=>A.name===R.visibleWhen?.field)?.selectOptions?.[0]?.value)===R.visibleWhen.value:!0).map(R=>m.jsx(Lr,{margin:"dense",id:`attachedDb_${T}_${R.name}`,name:`attachedDb_${T}_${R.name}`,label:R.label,type:R.selectOptions?void 0:R.type,fullWidth:!0,variant:"standard",required:R.required,select:!!R.selectOptions,defaultValue:R.selectOptions?.[0]?.value,onChange:R.selectOptions?A=>{const I=[...i];I[T]={...I[T],[R.name]:A.target.value},s(I)}:void 0,children:R.selectOptions?.map(A=>m.jsx(Ga,{value:A.value,children:A.label},A.value))},R.name))]},T)})]}):eu[o].map(C=>m.jsx(Lr,{margin:"dense",id:C.name,name:C.name,label:C.label,type:C.type,fullWidth:!0,variant:"standard",required:C.required},C.name))]})]}),m.jsxs(bc,{children:[m.jsx(Eo,{disabled:t,onClick:y,children:"Cancel"}),m.jsx(Eo,{type:"submit",form:"connection-form",loading:t,children:"Create Connection"})]})]})]})}function DNe({connection:e,onCloseDialog:t,isMutating:n,onDelete:r}){const[o,a]=w.useState(!1),[i,s]=w.useState(""),l=()=>{a(!0)},d=()=>{a(!1),t()};return m.jsxs($t.Fragment,{children:[m.jsxs(Ga,{"aria-label":`Delete connection ${e?.name??""}`.trim(),onClick:c=>{c.stopPropagation(),l()},sx:{color:"error.main"},children:[m.jsx(VO,{sx:{color:"inherit"},children:m.jsx(VS,{fontSize:"small"})}),m.jsx(WO,{children:"Delete"})]}),m.jsxs(Sc,{onClose:d,"aria-labelledby":"customized-dialog-title",open:o,children:[m.jsx(pu,{sx:{m:0,p:2},id:"customized-dialog-title",children:"Delete Connection"}),m.jsx(Qs,{"aria-label":"close",onClick:d,sx:c=>({position:"absolute",right:8,top:8,color:c.palette.grey[500]}),children:m.jsx(yl,{})}),m.jsx(xc,{dividers:!0,children:m.jsxs(Nr,{gutterBottom:!0,children:['Are you sure you want to delete "',e.name,'"? This action cannot be undone.']})}),m.jsx(bc,{children:m.jsx(Eo,{loading:n,variant:"contained",autoFocus:!0,onClick:()=>r(),color:"error",children:"Delete"})}),m.jsx(xl,{open:i!=="",autoHideDuration:6e3,onClose:()=>s(""),message:i})]})]})}function h6(e){const t=e.duckdbConnection?.attachedDatabases;return!t||t.length===0?[]:t.map(n=>({name:n.name||"",dbType:n.type||"postgres"}))}function m6(e){const t=e.ducklakeConnection;return t&&t.storage?.gcsConnection?"gcs":"s3"}function ONe({connection:e,onSubmit:t,isSubmitting:n,onCloseDialog:r}){const[o,a]=w.useState(!1),[i,s]=w.useState(e.type),[l,d]=w.useState(()=>h6(e)),[c,p]=w.useState("postgres"),[g,y]=w.useState(()=>m6(e)),v=()=>{d(h6(e)),s(e.type),p("postgres"),y(m6(e)),a(!0)},S=()=>{a(!1),r?.()},E=async A=>{A.preventDefault();const I=new FormData(A.currentTarget),F=I.get("name")?.toString(),_=I.get("type")?.toString(),z=eu[_];if(!F)throw new Error("Name is required");if(!_)throw new Error("Type is required");let $;if(_==="ducklake"){const k={};if(c==="postgres"){const V=eu.postgres,j={};if(V.forEach(Z=>{const J=I.get(`ducklake_pg_${Z.name}`)?.toString();J&&(j[Z.name]=J)}),Object.keys(j).length===0)throw new Error("DuckLake requires catalog connection");k.postgresConnection=j}const H=I.get("ducklake_bucketUrl")?.toString();if(!H)throw new Error("DuckLake requires a bucket URL");const L={bucketUrl:H};if(g==="s3"){const V={};ob.forEach(Z=>{const J=I.get(`ducklake_s3_${Z.name}`)?.toString();J&&(V[Z.name]=J)});const j=e.ducklakeConnection?.storage?.s3Connection;if(j&&(!V.accessKeyId&&j.accessKeyId&&(V.accessKeyId=j.accessKeyId),!V.secretAccessKey&&j.secretAccessKey&&(V.secretAccessKey=j.secretAccessKey)),!V.accessKeyId)throw new Error("S3 Access Key ID is required");if(!V.secretAccessKey)throw new Error("S3 Secret Access Key is required");Object.keys(V).length>0&&(L.s3Connection=V)}else if(g==="gcs"){const V={};ab.forEach(Z=>{const J=I.get(`ducklake_gcs_${Z.name}`)?.toString();J&&(V[Z.name]=J)});const j=e.ducklakeConnection?.storage?.gcsConnection;if(j&&(!V.keyId&&j.keyId&&(V.keyId=j.keyId),!V.secret&&j.secret&&(V.secret=j.secret)),!V.keyId)throw new Error("GCS Key ID is required");if(!V.secret)throw new Error("GCS Secret is required");Object.keys(V).length>0&&(L.gcsConnection=V)}$={name:F,type:_,ducklakeConnection:{catalog:k,storage:L}}}else if(_==="duckdb"){if(l.length===0)throw new Error("DuckDB connection must have at least one attached database");const k=l.map((H,L)=>{const V=H.dbType,j=I.get(`attachedDb_${L}_name`)?.toString();if(!j)throw new Error(`Attached database at index ${L} must have a name`);const Z={name:j,type:V},J=nS(V);if(J&&J.length>0){const oe={};J.forEach(te=>{const re=I.get(`attachedDb_${L}_${te.name}`)?.toString();re&&(oe[te.name]=re)});const B=K2[V];B&&(Z[B]=oe)}return Z});$={name:F,type:_,duckdbConnection:{attachedDatabases:k}}}else{const k=e[ux[_]]||{},H={};if(z.forEach(L=>{const V=I.get(L.name)?.toString(),j=k[L.name],Z=L.type==="password"||L.name==="password"||L.name==="secretAccessKey"||L.name==="secret"||L.name==="accessToken"||L.name==="privateKey";V?H[L.name]=V:Z&&j?H[L.name]=j:V!==void 0?H[L.name]=V:j&&(H[L.name]=j)}),_==="postgres"){if(!H.connectionString?.trim()){const L=["host","port","databaseName","userName","password"];for(const V of L)if(!H[V])throw new Error(`${z.find(j=>j.name===V)?.label||V} is required`)}}else if(_==="bigquery"){if(!H.serviceAccountKeyJson)throw new Error("Service Account Key JSON is required")}else if(_==="snowflake"){if(!H.account)throw new Error("Account is required");if(!H.username)throw new Error("Username is required");if(!H.warehouse)throw new Error("Warehouse is required");if(!H.password&&!H.privateKey)throw new Error("Either password or private key is required")}else if(_==="trino"){if(!H.server)throw new Error("Server is required");if(!H.user)throw new Error("User is required");if(H.server.trim().startsWith("https://")&&!H.password&&!H.peakaKey)throw new Error("Password is required for HTTPS connections (or use Peaka Key)")}else if(_==="mysql"){const L=["host","port","database","user","password"];for(const V of L)if(!H[V])throw new Error(`${z.find(j=>j.name===V)?.label||V} is required`)}else if(_==="motherduck"){if(!H.accessToken)throw new Error("Access Token is required")}else if(_==="databricks"){if(!H.host)throw new Error("Host is required");if(!H.path)throw new Error("HTTP Path is required");const L=H.oauthClientId&&H.oauthClientSecret;if(!H.token&&!L)throw new Error("Either Access Token or OAuth Client ID + Secret is required")}$={name:F,type:_,[ux[_]]:H}}await t($),S()},b=()=>{d([...l,{name:"",dbType:"postgres"}])},C=A=>{d(l.filter((I,F)=>F!==A))},T=(A,I)=>{const F=[...l];F[A]={...F[A],dbType:I},d(F)},O=(A,I)=>{const F=e.duckdbConnection?.attachedDatabases;if(!F||!F[A])return"";const _=F[A],z=K2[_.type||""];return z&&_[z]?_[z][I]??"":""},R=A=>{const I=e.ducklakeConnection;if(!I)return"";if(A.startsWith("pg_")){const F=A.replace("pg_","");return I.catalog?.postgresConnection?.[F]??""}if(A==="bucketUrl")return I.storage?.bucketUrl??"";if(A.startsWith("s3_")){const F=A.replace("s3_","");return I.storage?.s3Connection?.[F]??""}if(A.startsWith("gcs_")){const F=A.replace("gcs_","");return I.storage?.gcsConnection?.[F]??""}return""};return m.jsxs($t.Fragment,{children:[m.jsxs(Ga,{"aria-label":`Edit connection ${e?.name??""}`.trim(),onClick:A=>{A.preventDefault(),A.stopPropagation(),v()},children:[m.jsx(VO,{children:m.jsx(uD,{fontSize:"small"})}),m.jsx(WO,{children:"Edit"})]}),m.jsxs(Sc,{open:o,onClose:S,children:[m.jsx(pu,{onClick:A=>{A.stopPropagation()},children:"Edit Connection"}),m.jsxs(xc,{onClick:A=>{A.stopPropagation()},children:[m.jsx(Wb,{children:"Edit a connection to query your data database using Malloy."}),m.jsxs("form",{onSubmit:E,id:"connection-form",children:[m.jsx(Lr,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Connection Name",type:"text",fullWidth:!0,variant:"standard",defaultValue:e.name}),m.jsx(Lr,{margin:"dense",id:"type",name:"type",label:"Connection Type",fullWidth:!0,variant:"standard",value:i,select:!0,onChange:A=>s(A.target.value),children:tH.map(A=>m.jsx(Ga,{value:A,children:A},A))}),i==="ducklake"?m.jsxs(fi,{sx:{mt:2},children:[m.jsxs(fi,{sx:{mb:3,p:2,border:"1px solid",borderColor:"divider",borderRadius:1},children:[m.jsx(Nr,{variant:"subtitle2",sx:{mb:2},fontWeight:500,children:"Catalog"}),m.jsx(Lr,{margin:"dense",id:"ducklake_catalogType",label:"Catalog Type",fullWidth:!0,variant:"standard",value:c,select:!0,onChange:A=>p(A.target.value),children:m.jsx(Ga,{value:"postgres",children:"PostgreSQL"})}),c==="postgres"&&m.jsx(m.Fragment,{children:eu.postgres.map(A=>m.jsx(Lr,{margin:"dense",id:`ducklake_pg_${A.name}`,name:`ducklake_pg_${A.name}`,label:A.label,type:A.type,fullWidth:!0,variant:"standard",defaultValue:R(`pg_${A.name}`)},`pg_${A.name}`))})]}),m.jsxs(fi,{sx:{mb:3,p:2,border:"1px solid",borderColor:"divider",borderRadius:1},children:[m.jsx(Nr,{variant:"subtitle2",sx:{mb:2},fontWeight:500,children:"Storage"}),m.jsxs(Lr,{margin:"dense",id:"ducklake_storageType",label:"Storage Type",fullWidth:!0,variant:"standard",value:g,select:!0,onChange:A=>y(A.target.value),children:[m.jsx(Ga,{value:"s3",children:"S3"}),m.jsx(Ga,{value:"gcs",children:"GCS"})]}),m.jsx(Lr,{margin:"dense",required:!0,id:"ducklake_bucketUrl",name:"ducklake_bucketUrl",label:g==="s3"?"Bucket URL (e.g. s3://my-bucket/path)":"Bucket URL (e.g. gs://my-bucket/path)",type:"text",fullWidth:!0,variant:"standard",defaultValue:R("bucketUrl")}),g==="s3"&&m.jsxs(m.Fragment,{children:[m.jsx(Nr,{variant:"caption",sx:{mt:2,mb:1,display:"block"},color:"text.secondary",children:"S3 Credentials"}),ob.map(A=>m.jsx(Lr,{margin:"dense",id:`ducklake_s3_${A.name}`,name:`ducklake_s3_${A.name}`,label:A.label,type:A.type,fullWidth:!0,variant:"standard",required:A.required&&A.name!=="secretAccessKey",defaultValue:R(`s3_${A.name}`),placeholder:A.name==="region"?"us-east-1":A.name==="secretAccessKey"?"Leave empty to keep existing":void 0},`s3_${A.name}`))]}),g==="gcs"&&m.jsxs(m.Fragment,{children:[m.jsx(Nr,{variant:"caption",sx:{mt:2,mb:1,display:"block"},color:"text.secondary",children:"GCS Credentials"}),ab.map(A=>m.jsx(Lr,{margin:"dense",id:`ducklake_gcs_${A.name}`,name:`ducklake_gcs_${A.name}`,label:A.label,type:A.type,fullWidth:!0,variant:"standard",required:A.required&&A.name!=="secret",defaultValue:R(`gcs_${A.name}`),placeholder:A.name==="secret"?"Leave empty to keep existing":void 0},`gcs_${A.name}`))]})]})]}):i==="duckdb"?m.jsxs(fi,{sx:{mt:2},children:[m.jsxs(fi,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[m.jsx(Nr,{variant:"subtitle1",fontWeight:500,children:"Attached Databases"}),m.jsx(Eo,{startIcon:m.jsx(om,{}),onClick:b,size:"small",variant:"outlined",children:"Add Database"})]}),l.length===0&&m.jsx(Nr,{variant:"body2",color:"text.secondary",sx:{mb:2},children:'DuckDB connections require at least one attached database. Click "Add Database" to get started.'}),l.map((A,I)=>{const F=nS(A.dbType);return m.jsxs(fi,{sx:{mb:3,p:2,border:"1px solid",borderColor:"divider",borderRadius:1},children:[m.jsxs(fi,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2},children:[m.jsxs(Nr,{variant:"subtitle2",children:["Database ",I+1]}),m.jsx(Qs,{"aria-label":`Remove attached database ${I+1}`,onClick:()=>C(I),size:"small",color:"error",children:m.jsx(eH,{fontSize:"small"})})]}),m.jsx(Lr,{margin:"dense",required:!0,id:`attachedDb_${I}_name`,name:`attachedDb_${I}_name`,label:"Database Name",type:"text",fullWidth:!0,variant:"standard",defaultValue:A.name}),m.jsx(Lr,{margin:"dense",id:`attachedDb_${I}_type`,name:`attachedDb_${I}_type`,label:"Database Type",fullWidth:!0,variant:"standard",value:A.dbType,select:!0,onChange:_=>T(I,_.target.value),children:Object.values(m$).map(_=>m.jsx(Ga,{value:_,children:_},_))}),F.filter(_=>_.visibleWhen?(A[_.visibleWhen.field]||O(I,_.visibleWhen.field)||F.find(z=>z.name===_.visibleWhen?.field)?.selectOptions?.[0]?.value)===_.visibleWhen.value:!0).map(_=>m.jsx(Lr,{margin:"dense",id:`attachedDb_${I}_${_.name}`,name:`attachedDb_${I}_${_.name}`,label:_.label,type:_.selectOptions?void 0:_.type,fullWidth:!0,variant:"standard",required:_.required,select:!!_.selectOptions,defaultValue:O(I,_.name)||_.selectOptions?.[0]?.value,onChange:_.selectOptions?z=>{const $=[...l];$[I]={...$[I],[_.name]:z.target.value},d($)}:void 0,children:_.selectOptions?.map(z=>m.jsx(Ga,{value:z.value,children:z.label},z.value))},_.name))]},I)})]}):eu[i].map(A=>{const I=e?.[ux[i]??""]?.[A.name??""]??"",F=A.type==="password"||A.name==="password"||A.name==="secretAccessKey"||A.name==="secret"||A.name==="accessToken"||A.name==="privateKey";return m.jsx(Lr,{margin:"dense",id:A.name,name:A.name,label:A.label,type:A.type,fullWidth:!0,variant:"standard",required:A.required&&!F&&!I,defaultValue:I,placeholder:F&&I?"Leave empty to keep existing":void 0},A.name)})]})]}),m.jsxs(bc,{onClick:A=>{A.stopPropagation()},children:[m.jsx(Eo,{disabled:n,onClick:S,children:"Cancel"}),m.jsx(Eo,{type:"submit",form:"connection-form",loading:n,children:"Edit Connection"})]})]})]})}function g6(e,t){return!e||e.type!=="duckdb"?!1:(e.duckdbConnection?.attachedDatabases||[]).some(n=>n.type==="azure"&&n.name===t)}function RNe(e){return e.startsWith("gs://")||e.startsWith("s3://")||e.startsWith("https://")||e.startsWith("abfss://")||e.startsWith("az://")}function MNe({connectionName:e,resourceUri:t,schema:n,connection:r}){const{apiClients:o}=zr(),{environmentName:a}=Co(t),[i,s]=$t.useState(null),[l,d]=$t.useState(n||null),[c,p]=$t.useState(!1),{data:g,isError:y,isLoading:v,error:S}=So({queryKey:["schemas",a,e],queryFn:()=>o.connections.listSchemas(a,e)}),E=g?.data||[];return m.jsxs(Ps,{container:!0,spacing:1,children:[!n&&m.jsx(Ps,{size:{xs:12,md:4},children:m.jsxs(Si,{sx:{p:1,m:0},children:[m.jsxs(Nt,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:0},children:[m.jsx(xt,{variant:"overline",fontWeight:"bold",children:"Table Paths"}),m.jsx(_h,{control:m.jsx(KA,{checked:c,onChange:b=>p(b.target.checked)}),label:"Hidden Schemas"})]}),m.jsx(cc,{sx:{mt:"2px"}}),m.jsxs(Nt,{sx:{mt:"2px",maxHeight:"600px",overflowY:"auto"},children:[v&&m.jsx(wa,{text:"Loading schemas..."}),y&&m.jsx(ka,{error:S,context:`${a} > ${e} > Schemas`}),!v&&!y&&E.length===0&&m.jsx(xt,{variant:"body2",children:"No Schemas"}),!v&&!y&&E.length>0&&m.jsx(WA,{dense:!0,disablePadding:!0,children:E.map(b=>{const C=b.name;return b.isHidden&&!c?null:m.jsx(gj,{selected:l===C,onClick:()=>{d(C),s(null)},children:m.jsx(Zf,{primary:C})},C)})})]})]})}),m.jsx(Ps,{size:{xs:12,md:n?6:4},children:l&&m.jsx(Si,{sx:{p:1,m:0},children:m.jsx(INe,{connectionName:e,schemaName:l,onTableSelect:b=>{s(b)},resourceUri:t,connection:r})})}),m.jsx(Ps,{size:{xs:12,md:n?6:4},children:l&&i&&m.jsx(PNe,{environmentName:a,connectionName:e,schemaName:l,tableResource:i})})]})}function PNe({environmentName:e,connectionName:t,schemaName:n,tableResource:r}){const{apiClients:o}=zr(),{data:a,isLoading:i,isError:s,error:l}=So({queryKey:["connectionTableDetail",e,t,n,r],queryFn:()=>o.connections.getTable(e,t,n,r),enabled:!!n&&!!r}),d={resource:a?.data?.resource??r,columns:a?.data?.columns??[]};return m.jsxs(Si,{sx:{p:1,m:0},children:[s&&m.jsx(ka,{error:l,context:`${e} > ${t} > ${n} > ${r}`}),!s&&m.jsx(NNe,{table:d,loading:i})]})}function NNe({table:e,loading:t}){return t?m.jsx(wa,{text:"Loading columns..."}):m.jsxs(m.Fragment,{children:[m.jsxs(xt,{variant:"overline",fontWeight:"bold",sx:{display:"block",wordBreak:"break-all"},children:[e.resource.includes("://")||/\.(parquet|csv|json|tsv|ndjson)$/i.test(e.resource)?"File":"Table",": ",e.resource]}),m.jsx(cc,{}),m.jsx(Nt,{sx:{mt:"10px",maxHeight:"600px",overflowY:"auto"},children:m.jsx(Ore,{children:m.jsxs(bb,{size:"small",sx:{"& .MuiTableCell-root":{padding:"10px"}},children:[m.jsx(Sb,{children:m.jsxs(dc,{children:[m.jsx(rr,{children:"NAME"}),m.jsx(rr,{children:"TYPE"})]})}),m.jsx(xb,{children:e.columns?.sort((n,r)=>n.name.localeCompare(r.name))?.map(n=>m.jsxs(dc,{children:[m.jsx(rr,{children:n.name}),m.jsx(rr,{children:n.type})]},n.name))})]})})})]})}function INe({connectionName:e,schemaName:t,onTableSelect:n,resourceUri:r,connection:o}){const{environmentName:a}=Co(r),{apiClients:i}=zr(),[s,l]=w.useState(""),{data:d,isSuccess:c,isError:p,error:g,isLoading:y}=So({queryKey:["tablesInSchema",a,e,t],queryFn:()=>i.connections.listTables(a,e,t)}),v=g6(o,t),S=b=>v?b:b.split(".").pop()||b,E=c&&d?.data?d.data.filter(b=>S(b.resource).toLowerCase().includes(s.toLowerCase())).sort((b,C)=>S(b.resource).localeCompare(S(C.resource))):[];return m.jsxs(m.Fragment,{children:[m.jsx(xt,{variant:"overline",fontWeight:"bold",children:RNe(t)||g6(o,t)?`Files in ${t}`:`Tables in ${t}`}),m.jsx(cc,{}),m.jsx(Nt,{sx:{mt:1,mb:1},children:m.jsx(Zc,{size:"small",fullWidth:!0,placeholder:"Search tables...",value:s,onChange:b=>l(b.target.value),variant:"outlined"})}),m.jsx(cc,{}),m.jsxs(Nt,{sx:{mt:"2px",maxHeight:"600px",overflowY:"auto"},children:[y&&m.jsx(wa,{text:"Fetching Tables..."}),p&&m.jsx(ka,{error:g,context:`${a} > ${e} > ${t}`}),c&&E.length===0&&m.jsx(xt,{variant:"body2",children:"No Tables"}),c&&d?.data&&d.data.length>0&&m.jsx(WA,{dense:!0,disablePadding:!0,children:E.map(b=>{let C=S(b.resource);return!v&&b.resource.includes("://")&&(C=b.resource.split("/").pop()||b.resource),m.jsx(gj,{onClick:()=>n(b.resource),children:m.jsx(Zf,{primary:C,secondary:b.columns.length>0?`${b.columns.length} columns`:void 0})},b.resource)})})]})]})}const LNe={bigquery:"BigQuery",snowflake:"Snowflake",postgres:"PostgreSQL",mysql:"MySQL",trino:"Trino",databricks:"Databricks",duckdb:"DuckDB",ducklake:"DuckLake",s3:"S3",gcs:"GCS",azure:"Azure"};function _Ne(e){return e?LNe[e]??e:""}function FNe({resourceUri:e}){const{apiClients:t,mutable:n}=zr(),r=Ws(),{environmentName:o}=Co(e),[a,i]=w.useState(""),[s,l]=w.useState(null),d=fO({environmentName:o,connectionName:s}),{data:c,isSuccess:p,isError:g,error:y}=So({queryKey:["connections",o],queryFn:()=>t.connections.listConnections(o)}),v=()=>{l(null)},S=ma({mutationFn:O=>t.environments.updateEnvironment(o,{name:o,connections:[...c.data,O]}),onSuccess(){i("Connection added successfully"),r.invalidateQueries({queryKey:["connections",o]})},onError(O){i(O.message)}}),E=ma({mutationFn:O=>t.environments.updateEnvironment(o,{name:o,connections:c.data.map(R=>R.name===O.name?O:R)}),onSuccess(O,R){i(`Connection ${R.name} updated successfully`),r.invalidateQueries({queryKey:["connections",o]})},onError(O){i(O.message)}}),b=ma({mutationFn:O=>t.environments.updateEnvironment(o,{name:o,connections:c.data.filter(R=>R.name!==O.name)}),onSuccess(O,R){i(`Connection ${R.name} deleted successfully`),r.invalidateQueries({queryKey:["connections",o]})},onError(O){i(O.message)}}),C=p?[...c.data].sort((O,R)=>(O.name??"").localeCompare(R.name??"")):[],T=S.isPending||E.isPending||b.isPending;return m.jsxs(Nt,{children:[m.jsxs(Nt,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",mb:3},children:[m.jsxs(Nt,{children:[m.jsx(xt,{variant:"h6",sx:{fontWeight:600,letterSpacing:"-0.025em"},children:"Connections"}),m.jsx(xt,{variant:"body2",color:"text.secondary",children:"Database connections available to packages in this environment"})]}),n&&p&&m.jsx(ANe,{onSubmit:O=>S.mutateAsync(O),isSubmitting:S.isPending})]}),!p&&!g&&m.jsx(xt,{variant:"body2",color:"text.secondary",children:"Fetching Connections..."}),g&&m.jsx(ka,{error:y,context:`${o} > Connections`}),p&&C.length===0&&m.jsx(xt,{variant:"body2",color:"text.secondary",children:"No connections yet."}),p&&C.length>0&&m.jsx(Ps,{container:!0,spacing:2,children:C.map(O=>m.jsx(Ps,{size:{xs:12,sm:6,md:4},children:m.jsx(jNe,{connection:O,mutable:n,isMutating:T,onOpenExplorer:()=>l(O.name??null),onEdit:R=>E.mutateAsync(R),onDelete:R=>{O.resource?i("Cannot delete this connection"):b.mutateAsync(R)}})},O.name))}),m.jsx(xl,{open:a!=="",autoHideDuration:6e3,onClose:()=>i(""),message:a}),m.jsxs(ts,{open:s!==null,onClose:v,maxWidth:"lg",fullWidth:!0,children:[m.jsxs(rs,{children:["Connection Explorer: ",s,m.jsx(Ar,{"aria-label":"close",onClick:v,sx:{position:"absolute",right:8,top:8},children:m.jsx(Nt,{sx:{width:24,height:24,display:"flex",alignItems:"center",justifyContent:"center"},children:"X"})})]}),m.jsx(ns,{children:s&&m.jsx(MNe,{resourceUri:d,connectionName:s,connection:c?.data?.find(O=>O.name===s)})})]})]})}function jNe({connection:e,mutable:t,isMutating:n,onOpenExplorer:r,onEdit:o,onDelete:a}){const[i,s]=w.useState(null),l=!!i,d=p=>{p.stopPropagation(),s(p.currentTarget)},c=()=>{s(null)};return m.jsx(Sm,{variant:"outlined",onClick:r,sx:{height:"100%",cursor:"pointer",borderRadius:3,borderColor:"divider",boxShadow:"none",transition:"all 0.2s ease-in-out","&:hover":{boxShadow:2,borderColor:"primary.main"}},children:m.jsx(Em,{sx:{p:2.5,"&:last-child":{pb:2.5}},children:m.jsxs(Nt,{sx:{display:"flex",alignItems:"flex-start",gap:1.5},children:[m.jsx(Nt,{sx:{width:36,height:36,borderRadius:1.5,bgcolor:"warning.light",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"warning.main"},children:m.jsx(xNe,{sx:{fontSize:20}})}),m.jsxs(Nt,{sx:{flex:1,minWidth:0},children:[m.jsx(xt,{variant:"subtitle1",component:"h6",noWrap:!0,sx:{fontWeight:600,mb:.5},children:e.name}),m.jsx(xt,{variant:"body2",color:"text.secondary",noWrap:!0,children:_Ne(e.type)})]}),t&&m.jsxs(m.Fragment,{children:[m.jsx(Ar,{size:"small",onClick:d,"aria-label":`Connection actions for ${e.name??""}`.trim(),sx:{flexShrink:0,mt:-.5,mr:-.5},children:m.jsx(WS,{fontSize:"small"})}),m.jsxs(kd,{anchorEl:i,open:l,onClose:c,onClick:p=>p.stopPropagation(),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[m.jsx(ONe,{connection:e,onSubmit:o,isSubmitting:n,onCloseDialog:c}),m.jsx(DNe,{connection:e,onCloseDialog:c,isMutating:n,onDelete:()=>a(e)})]})]})]})})})}const $Ne=lr([m.jsx("path",{d:"M20 2H4c-1 0-2 .9-2 2v3.01c0 .72.43 1.34 1 1.69V20c0 1.1 1.1 2 2 2h14c.9 0 2-.9 2-2V8.7c.57-.35 1-.97 1-1.69V4c0-1.1-1-2-2-2m-1 18H5V9h14zm1-13H4V4h16z"},"0"),m.jsx("path",{d:"M9 12h6v2H9z"},"1")]);function BNe({resourceUri:e,onCloseDialog:t}){const[n,r]=w.useState(!1),{apiClients:o}=zr(),a=Ws(),[i,s]=w.useState(""),l=()=>{r(!0)},d=()=>{r(!1),t()},{environmentName:c,packageName:p}=Co(e),g=ma({mutationFn:()=>o.packages.deletePackage(c,p),onSuccess(){d(),a.invalidateQueries({queryKey:["packages"]}),s("Package deleted successfully")},onError(y){s(y instanceof Error?y.message:"An unknown error occurred")}});return m.jsxs($t.Fragment,{children:[m.jsxs(uc,{onClick:l,children:[m.jsx(vb,{children:m.jsx(VS,{fontSize:"small"})}),m.jsx(Zf,{children:"Delete"})]}),m.jsxs(Sc,{onClose:d,"aria-labelledby":"customized-dialog-title",open:n,children:[m.jsx(pu,{sx:{m:0,p:2},id:"customized-dialog-title",children:"Delete Package"}),m.jsx(Qs,{"aria-label":"close",onClick:d,sx:y=>({position:"absolute",right:8,top:8,color:y.palette.grey[500]}),children:m.jsx(yl,{})}),m.jsx(xc,{dividers:!0,children:m.jsxs(Nr,{gutterBottom:!0,children:['Are you sure you want to delete "',p,'"? This action cannot be undone.']})}),m.jsxs(bc,{children:[m.jsx(Eo,{variant:"outlined",onClick:d,style:{borderColor:Ls.teal,color:Ls.teal},children:"Cancel"}),m.jsx(Eo,{variant:"contained",autoFocus:!0,onClick:()=>g.mutate(),color:"error",loading:g.isPending,children:"Delete"})]}),m.jsx(xl,{open:i!=="",autoHideDuration:6e3,onClose:()=>s(""),message:i})]})]})}function zNe({package:e,resourceUri:t,onCloseDialog:n}){const[r,o]=w.useState(!1),{apiClients:a}=zr(),i=Ws(),[s,l]=w.useState(""),d=()=>{o(!0)},c=()=>{o(!1),n()},{packageName:p,environmentName:g}=Co(t),y=ma({async mutationFn(S){return a.packages.updatePackage(g,p,{name:p,description:S.description})},onSuccess(){c(),l("Package updated successfully"),i.invalidateQueries({queryKey:["packages",g]})},onError(S){l(S instanceof Error?S.message:"An unknown error occurred")}}),v=S=>{S.preventDefault();const E=new FormData(S.currentTarget).get("description")?.toString();y.mutate({description:E})};return m.jsxs($t.Fragment,{children:[m.jsxs(uc,{onClick:d,children:[m.jsx(vb,{children:m.jsx(uD,{fontSize:"small"})}),m.jsx(Zf,{children:"Edit"})]}),m.jsxs(Sc,{open:r,onClose:c,children:[m.jsx(pu,{children:"Edit Package"}),m.jsxs(xc,{children:[m.jsxs(Wb,{children:['Update the details for "',e.name,'".']}),m.jsxs("form",{onSubmit:v,id:"package-form",children:[m.jsx(Lr,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Package Name",disabled:!0,type:"text",fullWidth:!0,variant:"standard",defaultValue:e.name}),m.jsx(Lr,{id:"description",name:"description",label:"Description",multiline:!0,fullWidth:!0,rows:4,defaultValue:e.description,variant:"standard"})]})]}),m.jsxs(bc,{children:[m.jsx(Eo,{disabled:y.isPending,onClick:c,children:"Cancel"}),m.jsx(Eo,{type:"submit",form:"package-form",loading:y.isPending,children:"Save Changes"})]})]}),m.jsx(xl,{open:s!=="",autoHideDuration:6e3,onClose:()=>l(""),message:s})]})}function HNe({onSelectPackage:e,resourceUri:t}){const{apiClients:n}=zr(),{environmentName:r}=Co(t),{data:o,isSuccess:a,isError:i,error:s}=So({queryKey:["packages",r],queryFn:()=>n.packages.listPackages(r)});if(i)return m.jsx(ka,{error:s,context:`${r} > Packages`});if(!a)return m.jsx(wa,{text:"Fetching Packages..."});const l=[...o.data].sort((d,c)=>d.name.localeCompare(c.name));return m.jsx(Ps,{container:!0,spacing:2,children:l.map(d=>{const c=fO({environmentName:r,packageName:d.name});return m.jsx(Ps,{size:{xs:12,sm:6,md:4},children:m.jsx(UNe,{pkg:d,packageResourceUri:c,onSelectPackage:e})},d.name)})})}function UNe({pkg:e,packageResourceUri:t,onSelectPackage:n}){const{mutable:r}=zr(),[o,a]=w.useState(null),i=!!o,s=p=>{n(e.name,p)},l=p=>{p.stopPropagation(),a(p.currentTarget)},d=()=>{a(null)},c=e.description??"";return m.jsx(Sm,{variant:"outlined",onClick:s,sx:{height:"100%",cursor:"pointer",borderRadius:3,borderColor:"divider",boxShadow:"none",transition:"all 0.2s ease-in-out","&:hover":{boxShadow:2,borderColor:"primary.main"}},children:m.jsx(Em,{sx:{p:2.5,"&:last-child":{pb:2.5}},children:m.jsxs(Nt,{sx:{display:"flex",alignItems:"flex-start",gap:1.5},children:[m.jsx(Nt,{sx:p=>({width:36,height:36,borderRadius:1.5,bgcolor:p.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"grey.100",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"text.primary"}),children:m.jsx($Ne,{sx:{fontSize:20}})}),m.jsxs(Nt,{sx:{flex:1,minWidth:0},children:[m.jsx(xt,{variant:"subtitle1",component:"h6",noWrap:!0,sx:{fontWeight:600,mb:.5},children:e.name}),m.jsx(Do,{title:c,followCursor:!0,enterDelay:1e3,children:m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",lineHeight:1.5},children:c})})]}),r&&m.jsxs(m.Fragment,{children:[m.jsx(Ar,{size:"small",onClick:l,"aria-label":`Package actions for ${e.name}`,sx:{flexShrink:0,mt:-.5,mr:-.5},children:m.jsx(WS,{fontSize:"small"})}),m.jsxs(kd,{anchorEl:o,open:i,onClose:d,onClick:p=>p.stopPropagation(),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[m.jsx(zNe,{package:e,resourceUri:t,onCloseDialog:d}),m.jsx(BNe,{resourceUri:t,onCloseDialog:d})]})]})]})})})}function Y3e({onSelectPackage:e,resourceUri:t}){const{mutable:n}=zr(),{environmentName:r}=Co(t);return w.useEffect(()=>{window.scrollTo({top:0,behavior:"auto"})},[]),m.jsxs(IS,{maxWidth:!1,sx:{maxWidth:1024,mx:"auto",px:4,py:3},children:[m.jsxs(Nt,{sx:{mb:5},children:[m.jsx(xt,{variant:"h4",component:"h1",sx:{fontWeight:600,letterSpacing:"-0.025em",mb:.5},children:r}),m.jsx(xt,{variant:"body2",color:"text.secondary",children:"Manage packages and database connections in this environment. Open a package to explore its models and notebooks."})]}),m.jsxs(Nt,{sx:{mb:5},children:[m.jsxs(_r,{direction:"row",justifyContent:"space-between",alignItems:"flex-start",sx:{mb:3},children:[m.jsxs(Nt,{children:[m.jsx(xt,{variant:"h6",sx:{fontWeight:600,letterSpacing:"-0.025em"},children:"Packages"}),m.jsx(xt,{variant:"body2",color:"text.secondary",children:"Published packages available for use in this environment"})]}),n&&m.jsx(bNe,{resourceUri:t})]}),m.jsx(HNe,{onSelectPackage:e,resourceUri:t})]}),m.jsx(Nt,{sx:{mb:5},children:m.jsx(FNe,{resourceUri:t})}),m.jsx(Nt,{sx:{mb:5},children:m.jsx(yNe,{resourceUri:t,onClickPackageFile:e})}),m.jsx(vNe,{resourceUri:t})]})}function y6({array1:e,array2:t,parser:n=r=>r}){return e&&t&&e.length===t.length&&e.every((r,o)=>n(r)===n(t[o]))}function v6(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function VNe(e={}){const{ignoreAccents:t=!0,ignoreCase:n=!0,limit:r,matchFrom:o="any",stringify:a,trim:i=!1}=e;return(s,{inputValue:l,getOptionLabel:d})=>{let c=i?l.trim():l;n&&(c=c.toLowerCase()),t&&(c=v6(c));const p=c?s.filter(g=>{let y=(a||d)(g);return n&&(y=y.toLowerCase()),t&&(y=v6(y)),o==="start"?y.startsWith(c):y.includes(c)}):s;return typeof r=="number"?p.slice(0,r):p}}const WNe=VNe(),b6=5,qNe=e=>e.current!==null&&e.current.parentElement?.contains(document.activeElement),GNe=[];function x6(e,t,n,r){if(t||e==null||r)return"";const o=n(e);return typeof o=="string"?o:""}function YNe(e){const{unstable_isActiveElementInListbox:t=qNe,unstable_classNamePrefix:n="Mui",autoComplete:r=!1,autoHighlight:o=!1,autoSelect:a=!1,blurOnSelect:i=!1,clearOnBlur:s=!e.freeSolo,clearOnEscape:l=!1,componentName:d="useAutocomplete",defaultValue:c=e.multiple?GNe:null,disableClearable:p=!1,disableCloseOnSelect:g=!1,disabled:y,disabledItemsFocusable:v=!1,disableListWrap:S=!1,filterOptions:E=WNe,filterSelectedOptions:b=!1,freeSolo:C=!1,getOptionDisabled:T,getOptionKey:O,getOptionLabel:R=ye=>ye.label??ye,groupBy:A,handleHomeEndKeys:I=!e.freeSolo,id:F,includeInputInList:_=!1,inputValue:z,isOptionEqualToValue:$=(ye,be)=>ye===be,multiple:k=!1,onChange:H,onClose:L,onHighlightChange:V,onInputChange:j,onOpen:Z,open:J,openOnFocus:oe=!1,options:B,readOnly:te=!1,renderValue:re,selectOnFocus:G=!e.freeSolo,value:le}=e,se=Tl(F);let ne=R;ne=ye=>{const be=R(ye);return typeof be!="string"?String(be):be};const ie=w.useRef(!1),ue=w.useRef(!0),ve=w.useRef(null),we=w.useRef(null),[Se,Fe]=w.useState(null),[he,ge]=w.useState(-1),Ke=o?0:-1,ze=w.useRef(Ke),Ie=w.useRef(x6(c??le,k,ne)).current,[de,gt]=Zi({controlled:le,default:c,name:d}),[Ue,ut]=Zi({controlled:z,default:Ie,name:d,state:"inputValue"}),[it,Zt]=w.useState(!1),Qt=w.useCallback((ye,be,et)=>{if(!(k?de.length<be.length:be!==null)&&!s)return;const At=x6(be,k,ne,re);Ue!==At&&(ut(At),j&&j(ye,At,et))},[ne,Ue,k,j,ut,s,de,re]),[tt,xe]=Zi({controlled:J,default:!1,name:d,state:"open"}),[Pe,Re]=w.useState(!0),me=!k&&de!=null&&Ue===ne(de),We=tt&&!te,Ne=We?E(B.filter(ye=>!(b&&(k?de:[de]).some(be=>be!==null&&$(ye,be)))),{inputValue:me&&Pe?"":Ue,getOptionLabel:ne}):[],Ot=jCe({filteredOptions:Ne,value:de,inputValue:Ue});w.useEffect(()=>{const ye=de!==Ot.value;it&&!ye||C&&!ye||Qt(null,de,"reset")},[de,Qt,it,Ot.value,C]);const Rt=tt&&Ne.length>0&&!te,yt=en(ye=>{if(ye===-1)ve.current.focus();else{const be=re?"data-item-index":"data-tag-index";Se.querySelector(`[${be}="${ye}"]`).focus()}});w.useEffect(()=>{k&&he>de.length-1&&(ge(-1),yt(-1))},[de,k,he,yt]);function Le(ye,be){if(!we.current||ye<0||ye>=Ne.length)return-1;let et=ye;for(;;){const At=we.current.querySelector(`[data-option-index="${et}"]`),st=v?!1:!At||At.disabled||At.getAttribute("aria-disabled")==="true";if(At&&At.hasAttribute("tabindex")&&!st)return et;if(be==="next"?et=(et+1)%Ne.length:et=(et-1+Ne.length)%Ne.length,et===ye)return-1}}const ot=en(({event:ye,index:be,reason:et})=>{if(ze.current=be,be===-1?ve.current.removeAttribute("aria-activedescendant"):ve.current.setAttribute("aria-activedescendant",`${se}-option-${be}`),V&&["mouse","keyboard","touch"].includes(et)&&V(ye,be===-1?null:Ne[be],et),!we.current)return;const At=we.current.querySelector(`[role="option"].${n}-focused`);At&&(At.classList.remove(`${n}-focused`),At.classList.remove(`${n}-focusVisible`));let st=we.current;if(we.current.getAttribute("role")!=="listbox"&&(st=we.current.parentElement.querySelector('[role="listbox"]')),!st)return;if(be===-1){st.scrollTop=0;return}const vn=we.current.querySelector(`[data-option-index="${be}"]`);if(vn&&(vn.classList.add(`${n}-focused`),et==="keyboard"&&vn.classList.add(`${n}-focusVisible`),st.scrollHeight>st.clientHeight&&et!=="mouse"&&et!=="touch")){const En=vn,Dn=st.clientHeight+st.scrollTop,Te=En.offsetTop+En.offsetHeight;Te>Dn?st.scrollTop=Te-st.clientHeight:En.offsetTop-En.offsetHeight*(A?1.3:0)<st.scrollTop&&(st.scrollTop=En.offsetTop-En.offsetHeight*(A?1.3:0))}}),Mt=en(({event:ye,diff:be,direction:et="next",reason:At})=>{if(!We)return;const st=Le((()=>{const vn=Ne.length-1;if(be==="reset")return Ke;if(be==="start")return 0;if(be==="end")return vn;const En=ze.current+be;return En<0?En===-1&&_?-1:S&&ze.current!==-1||Math.abs(be)>1?0:vn:En>vn?En===vn+1&&_?-1:S||Math.abs(be)>1?vn:0:En})(),et);if(ot({index:st,reason:At,event:ye}),r&&be!=="reset")if(st===-1)ve.current.value=Ue;else{const vn=ne(Ne[st]);ve.current.value=vn,vn.toLowerCase().indexOf(Ue.toLowerCase())===0&&Ue.length>0&&ve.current.setSelectionRange(Ue.length,vn.length)}}),Pt=!y6({array1:Ot.filteredOptions,array2:Ne,parser:ne}),pn=()=>{const ye=(be,et)=>{const At=be?ne(be):"",st=et?ne(et):"";return At===st};if(ze.current!==-1&&!y6({array1:Ot.filteredOptions,array2:Ne,parser:ne})&&Ot.inputValue===Ue&&(k?de.length===Ot.value.length&&Ot.value.every((be,et)=>ne(de[et])===ne(be)):ye(Ot.value,de))){const be=Ot.filteredOptions[ze.current];if(be)return Ne.findIndex(et=>ne(et)===ne(be))}return-1},Nn=w.useCallback(()=>{if(!We)return;const ye=pn();if(ye!==-1){ze.current=ye;return}const be=k?de[0]:de;if(Ne.length===0||be==null){Mt({diff:"reset"});return}if(we.current){if(be!=null){const et=Ne[ze.current];if(k&&et&&de.findIndex(st=>$(et,st))!==-1)return;const At=Ne.findIndex(st=>$(st,be));At===-1?Mt({diff:"reset"}):ot({index:At});return}if(ze.current>=Ne.length-1){ot({index:Ne.length-1});return}ot({index:ze.current})}},[Ne.length,k?!1:de,b,Mt,ot,We,Ue,k]),Kn=en(ye=>{r2(we,ye),ye&&Nn()});w.useEffect(()=>{Pt&&Nn()},[Nn,Pt]);const nn=ye=>{tt||(xe(!0),Re(!0),Z&&Z(ye))},kn=(ye,be)=>{tt&&(xe(!1),L&&L(ye,be))},Ae=(ye,be,et,At)=>{if(k){if(de.length===be.length&&de.every((st,vn)=>st===be[vn]))return}else if(de===be)return;H&&H(ye,be,et,At),gt(be)},Tn=w.useRef(!1),An=(ye,be,et="selectOption",At="options")=>{let st=et,vn=be;if(k){vn=Array.isArray(de)?de.slice():[];const En=vn.findIndex(Dn=>$(be,Dn));En===-1?vn.push(be):At!=="freeSolo"&&(vn.splice(En,1),st="removeOption")}Qt(ye,vn,st),Ae(ye,vn,st,{option:be}),!g&&(!ye||!ye.ctrlKey&&!ye.metaKey)&&kn(ye,st),(i===!0||i==="touch"&&Tn.current||i==="mouse"&&!Tn.current)&&ve.current.blur()};function sn(ye,be){if(ye===-1)return-1;let et=ye;for(;;){if(be==="next"&&et===de.length||be==="previous"&&et===-1)return-1;const At=re?"data-item-index":"data-tag-index",st=Se.querySelector(`[${At}="${et}"]`);if(!st||!st.hasAttribute("tabindex")||st.disabled||st.getAttribute("aria-disabled")==="true")et+=be==="next"?1:-1;else return et}}const fe=(ye,be)=>{if(!k)return;Ue===""&&kn(ye,"toggleInput");let et=he;he===-1?Ue===""&&be==="previous"&&(et=de.length-1):(et+=be==="next"?1:-1,et<0&&(et=0),et===de.length&&(et=-1)),et=sn(et,be),ge(et),yt(et)},He=ye=>{ie.current=!0,ut(""),j&&j(ye,"","clear"),Ae(ye,k?[]:null,"clear")},Ve=ye=>be=>{if(ye.onKeyDown&&ye.onKeyDown(be),!be.defaultMuiPrevented&&(he!==-1&&!["ArrowLeft","ArrowRight"].includes(be.key)&&(ge(-1),yt(-1)),be.which!==229))switch(be.key){case"Home":We&&I&&(be.preventDefault(),Mt({diff:"start",direction:"next",reason:"keyboard",event:be}));break;case"End":We&&I&&(be.preventDefault(),Mt({diff:"end",direction:"previous",reason:"keyboard",event:be}));break;case"PageUp":be.preventDefault(),Mt({diff:-b6,direction:"previous",reason:"keyboard",event:be}),nn(be);break;case"PageDown":be.preventDefault(),Mt({diff:b6,direction:"next",reason:"keyboard",event:be}),nn(be);break;case"ArrowDown":be.preventDefault(),Mt({diff:1,direction:"next",reason:"keyboard",event:be}),nn(be);break;case"ArrowUp":be.preventDefault(),Mt({diff:-1,direction:"previous",reason:"keyboard",event:be}),nn(be);break;case"ArrowLeft":!k&&re?yt(0):fe(be,"previous");break;case"ArrowRight":!k&&re?yt(-1):fe(be,"next");break;case"Enter":if(ze.current!==-1&&We){const et=Ne[ze.current],At=T?T(et):!1;if(be.preventDefault(),At)return;An(be,et,"selectOption"),r&&ve.current.setSelectionRange(ve.current.value.length,ve.current.value.length)}else C&&Ue!==""&&me===!1&&(k&&be.preventDefault(),An(be,Ue,"createOption","freeSolo"));break;case"Escape":We?(be.preventDefault(),be.stopPropagation(),kn(be,"escape")):l&&(Ue!==""||k&&de.length>0||re)&&(be.preventDefault(),be.stopPropagation(),He(be));break;case"Backspace":if(k&&!te&&Ue===""&&de.length>0){const et=he===-1?de.length-1:he,At=de.slice();At.splice(et,1),Ae(be,At,"removeOption",{option:de[et]})}!k&&re&&!te&&(gt(null),yt(-1));break;case"Delete":if(k&&!te&&Ue===""&&de.length>0&&he!==-1){const et=he,At=de.slice();At.splice(et,1),Ae(be,At,"removeOption",{option:de[et]})}!k&&re&&!te&&(gt(null),yt(-1));break}},rt=ye=>{Zt(!0),oe&&!ie.current&&nn(ye)},St=ye=>{if(t(we)){ve.current.focus();return}Zt(!1),ue.current=!0,ie.current=!1,a&&ze.current!==-1&&We?An(ye,Ne[ze.current],"blur"):a&&C&&Ue!==""?An(ye,Ue,"blur","freeSolo"):s&&Qt(ye,de,"blur"),kn(ye,"blur")},Jt=ye=>{const be=ye.target.value;Ue!==be&&(ut(be),Re(!1),j&&j(ye,be,"input")),be===""?!p&&!k&&Ae(ye,null,"clear"):nn(ye)},rn=ye=>{const be=Number(ye.currentTarget.getAttribute("data-option-index"));ze.current!==be&&ot({event:ye,index:be,reason:"mouse"})},Gt=ye=>{ot({event:ye,index:Number(ye.currentTarget.getAttribute("data-option-index")),reason:"touch"}),Tn.current=!0},wt=ye=>{const be=Number(ye.currentTarget.getAttribute("data-option-index"));An(ye,Ne[be],"selectOption"),Tn.current=!1},Xt=ye=>be=>{const et=de.slice();et.splice(ye,1),Ae(be,et,"removeOption",{option:de[ye]})},zt=ye=>{Ae(ye,null,"removeOption",{option:de})},_t=ye=>{tt?kn(ye,"toggleInput"):nn(ye)},an=ye=>{ye.currentTarget.contains(ye.target)&&ye.target.getAttribute("id")!==se&&ye.preventDefault()},Un=ye=>{ye.currentTarget.contains(ye.target)&&(ve.current.focus(),G&&ue.current&&ve.current.selectionEnd-ve.current.selectionStart===0&&ve.current.select(),ue.current=!1)},cr=ye=>{!y&&(Ue===""||!tt)&&_t(ye)};let In=C&&Ue.length>0;In=In||(k?de.length>0:de!==null);let wn=Ne;return A&&(wn=Ne.reduce((ye,be,et)=>{const At=A(be);return ye.length>0&&ye[ye.length-1].group===At?ye[ye.length-1].options.push(be):ye.push({key:et,index:et,group:At,options:[be]}),ye},[])),y&&it&&St(),{getRootProps:(ye={})=>({...ye,onKeyDown:Ve(ye),onMouseDown:an,onClick:Un}),getInputLabelProps:()=>({id:`${se}-label`,htmlFor:se}),getInputProps:()=>({id:se,value:Ue,onBlur:St,onFocus:rt,onChange:Jt,onMouseDown:cr,"aria-activedescendant":We?"":null,"aria-autocomplete":r?"both":"list","aria-controls":Rt?`${se}-listbox`:void 0,"aria-expanded":Rt,autoComplete:"off",ref:ve,autoCapitalize:"none",spellCheck:"false",role:"combobox",disabled:y}),getClearProps:()=>({tabIndex:-1,type:"button",onClick:He}),getItemProps:({index:ye=0}={})=>({...k&&{key:ye},...re?{"data-item-index":ye}:{"data-tag-index":ye},tabIndex:-1,...!te&&{onDelete:k?Xt(ye):zt}}),getPopupIndicatorProps:()=>({tabIndex:-1,type:"button",onClick:_t}),getTagProps:({index:ye})=>({key:ye,"data-tag-index":ye,tabIndex:-1,...!te&&{onDelete:Xt(ye)}}),getListboxProps:()=>({role:"listbox",id:`${se}-listbox`,"aria-labelledby":`${se}-label`,ref:Kn,onMouseDown:ye=>{ye.preventDefault()}}),getOptionProps:({index:ye,option:be})=>{const et=(k?de:[de]).some(st=>st!=null&&$(be,st)),At=T?T(be):!1;return{key:O?.(be)??ne(be),tabIndex:-1,role:"option",id:`${se}-option-${ye}`,onMouseMove:rn,onClick:wt,onTouchStart:Gt,"data-option-index":ye,"aria-disabled":At,"aria-selected":et}},id:se,inputValue:Ue,value:de,dirty:In,expanded:We&&Se,popupOpen:We,focused:it||he!==-1,anchorEl:Se,setAnchorEl:Fe,focusedItem:he,focusedTag:he,groupedOptions:wn}}function KNe(e){return yn("MuiListSubheader",e)}un("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);const QNe=e=>{const{classes:t,color:n,disableGutters:r,inset:o,disableSticky:a}=e,i={root:["root",n!=="default"&&`color${jt(n)}`,!r&&"gutters",o&&"inset",!a&&"sticky"]};return hn(i,KNe,t)},XNe=Ye("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.color!=="default"&&t[`color${jt(n.color)}`],!n.disableGutters&&t.gutters,n.inset&&t.inset,!n.disableSticky&&t.sticky]}})(ar(({theme:e})=>({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(e.vars||e).palette.text.secondary,fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(14),variants:[{props:{color:"primary"},style:{color:(e.vars||e).palette.primary.main}},{props:{color:"inherit"},style:{color:"inherit"}},{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.inset,style:{paddingLeft:72}},{props:({ownerState:t})=>!t.disableSticky,style:{position:"sticky",top:0,zIndex:1,backgroundColor:(e.vars||e).palette.background.paper}}]}))),Q2=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiListSubheader"}),{className:r,color:o="default",component:a="li",disableGutters:i=!1,disableSticky:s=!1,inset:l=!1,...d}=n,c={...n,color:o,component:a,disableGutters:i,disableSticky:s,inset:l},p=QNe(c);return m.jsx(XNe,{as:a,className:Kt(p.root,r),ref:t,ownerState:c,...d})});Q2&&(Q2.muiSkipListHighlight=!0);const ZNe=lr(m.jsx("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}));function JNe(e){return yn("MuiAutocomplete",e)}const pr=un("MuiAutocomplete",["root","expanded","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]);var S6,E6;const eIe=e=>{const{classes:t,disablePortal:n,expanded:r,focused:o,fullWidth:a,hasClearIcon:i,hasPopupIcon:s,inputFocused:l,popupOpen:d,size:c}=e,p={root:["root",r&&"expanded",o&&"focused",a&&"fullWidth",i&&"hasClearIcon",s&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${jt(c)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",d&&"popupIndicatorOpen"],popper:["popper",n&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return hn(p,JNe,t)},tIe=Ye("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e,{fullWidth:r,hasClearIcon:o,hasPopupIcon:a,inputFocused:i,size:s}=n;return[{[`& .${pr.tag}`]:t.tag},{[`& .${pr.tag}`]:t[`tagSize${jt(s)}`]},{[`& .${pr.inputRoot}`]:t.inputRoot},{[`& .${pr.input}`]:t.input},{[`& .${pr.input}`]:i&&t.inputFocused},t.root,r&&t.fullWidth,a&&t.hasPopupIcon,o&&t.hasClearIcon]}})({[`&.${pr.focused} .${pr.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${pr.clearIndicator}`]:{visibility:"visible"}},[`& .${pr.tag}`]:{margin:3,maxWidth:"calc(100% - 6px)"},[`& .${pr.inputRoot}`]:{[`.${pr.hasPopupIcon}&, .${pr.hasClearIcon}&`]:{paddingRight:30},[`.${pr.hasPopupIcon}.${pr.hasClearIcon}&`]:{paddingRight:56},[`& .${pr.input}`]:{width:0,minWidth:30}},[`& .${nd.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${nd.root}.${Wi.sizeSmall}`]:{[`& .${nd.input}`]:{padding:"2px 4px 3px 0"}},[`& .${Ss.root}`]:{padding:9,[`.${pr.hasPopupIcon}&, .${pr.hasClearIcon}&`]:{paddingRight:39},[`.${pr.hasPopupIcon}.${pr.hasClearIcon}&`]:{paddingRight:65},[`& .${pr.input}`]:{padding:"7.5px 4px 7.5px 5px"},[`& .${pr.endAdornment}`]:{right:9}},[`& .${Ss.root}.${Wi.sizeSmall}`]:{paddingTop:6,paddingBottom:6,paddingLeft:6,[`& .${pr.input}`]:{padding:"2.5px 4px 2.5px 8px"}},[`& .${qi.root}`]:{paddingTop:19,paddingLeft:8,[`.${pr.hasPopupIcon}&, .${pr.hasClearIcon}&`]:{paddingRight:39},[`.${pr.hasPopupIcon}.${pr.hasClearIcon}&`]:{paddingRight:65},[`& .${qi.input}`]:{padding:"7px 4px"},[`& .${pr.endAdornment}`]:{right:9}},[`& .${qi.root}.${Wi.sizeSmall}`]:{paddingBottom:1,[`& .${qi.input}`]:{padding:"2.5px 4px"}},[`& .${Wi.hiddenLabel}`]:{paddingTop:8},[`& .${qi.root}.${Wi.hiddenLabel}`]:{paddingTop:0,paddingBottom:0,[`& .${pr.input}`]:{paddingTop:16,paddingBottom:17}},[`& .${qi.root}.${Wi.hiddenLabel}.${Wi.sizeSmall}`]:{[`& .${pr.input}`]:{paddingTop:8,paddingBottom:9}},[`& .${pr.input}`]:{flexGrow:1,textOverflow:"ellipsis",opacity:0},variants:[{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{[`& .${pr.tag}`]:{margin:2,maxWidth:"calc(100% - 4px)"}}},{props:{inputFocused:!0},style:{[`& .${pr.input}`]:{opacity:1}}},{props:{multiple:!0},style:{[`& .${pr.inputRoot}`]:{flexWrap:"wrap"}}}]}),nIe=Ye("div",{name:"MuiAutocomplete",slot:"EndAdornment"})({position:"absolute",right:0,top:"50%",transform:"translate(0, -50%)"}),rIe=Ye(Qs,{name:"MuiAutocomplete",slot:"ClearIndicator"})({marginRight:-2,padding:4,visibility:"hidden"}),oIe=Ye(Qs,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.popupIndicator,n.popupOpen&&t.popupIndicatorOpen]}})({padding:2,marginRight:-2,variants:[{props:{popupOpen:!0},style:{transform:"rotate(180deg)"}}]}),aIe=Ye(RO,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${pr.option}`]:t.option},t.popper,n.disablePortal&&t.popperDisablePortal]}})(ar(({theme:e})=>({zIndex:(e.vars||e).zIndex.modal,variants:[{props:{disablePortal:!0},style:{position:"absolute"}}]}))),iIe=Ye(ap,{name:"MuiAutocomplete",slot:"Paper"})(ar(({theme:e})=>({...e.typography.body1,overflow:"auto"}))),sIe=Ye("div",{name:"MuiAutocomplete",slot:"Loading"})(ar(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"}))),lIe=Ye("div",{name:"MuiAutocomplete",slot:"NoOptions"})(ar(({theme:e})=>({color:(e.vars||e).palette.text.secondary,padding:"14px 16px"}))),cIe=Ye("ul",{name:"MuiAutocomplete",slot:"Listbox"})(ar(({theme:e})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",position:"relative",[`& .${pr.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[e.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${pr.focused}`]:{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${pr.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${pr.focused}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:(e.vars||e).palette.action.selected}},[`&.${pr.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}}}}))),uIe=Ye(Q2,{name:"MuiAutocomplete",slot:"GroupLabel"})(ar(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,top:-8}))),dIe=Ye("ul",{name:"MuiAutocomplete",slot:"GroupUl"})({padding:0,[`& .${pr.option}`]:{paddingLeft:24}}),fIe=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiAutocomplete"}),{autoComplete:r=!1,autoHighlight:o=!1,autoSelect:a=!1,blurOnSelect:i=!1,ChipProps:s,className:l,clearIcon:d=S6||(S6=m.jsx(ZNe,{fontSize:"small"})),clearOnBlur:c=!n.freeSolo,clearOnEscape:p=!1,clearText:g="Clear",closeText:y="Close",componentsProps:v,defaultValue:S=n.multiple?[]:null,disableClearable:E=!1,disableCloseOnSelect:b=!1,disabled:C=!1,disabledItemsFocusable:T=!1,disableListWrap:O=!1,disablePortal:R=!1,filterOptions:A,filterSelectedOptions:I=!1,forcePopupIcon:F="auto",freeSolo:_=!1,fullWidth:z=!1,getLimitTagsText:$=Te=>`+${Te}`,getOptionDisabled:k,getOptionKey:H,getOptionLabel:L,isOptionEqualToValue:V,groupBy:j,handleHomeEndKeys:Z=!n.freeSolo,id:J,includeInputInList:oe=!1,inputValue:B,limitTags:te=-1,ListboxComponent:re,ListboxProps:G,loading:le=!1,loadingText:se="Loading…",multiple:ne=!1,noOptionsText:ie="No options",onChange:ue,onClose:ve,onHighlightChange:we,onInputChange:Se,onOpen:Fe,open:he,openOnFocus:ge=!1,openText:Ke="Open",options:ze,PaperComponent:Ie,PopperComponent:de,popupIcon:gt=E6||(E6=m.jsx(bz,{})),readOnly:Ue=!1,renderGroup:ut,renderInput:it,renderOption:Zt,renderTags:Qt,renderValue:tt,selectOnFocus:xe=!n.freeSolo,size:Pe="medium",slots:Re={},slotProps:me={},value:We,...Ne}=n,{getRootProps:Ot,getInputProps:Rt,getInputLabelProps:yt,getPopupIndicatorProps:Le,getClearProps:ot,getItemProps:Mt,getListboxProps:Pt,getOptionProps:pn,value:Nn,dirty:Kn,expanded:nn,id:kn,popupOpen:Ae,focused:Tn,focusedItem:An,anchorEl:sn,setAnchorEl:fe,inputValue:He,groupedOptions:Ve}=YNe({...n,componentName:"Autocomplete"}),rt=!E&&!C&&Kn&&!Ue,St=(!_||F===!0)&&F!==!1,{onMouseDown:Jt}=Rt(),{ref:rn,...Gt}=Pt(),wt=L||(Te=>Te.label??Te),Xt={...n,disablePortal:R,expanded:nn,focused:Tn,fullWidth:z,getOptionLabel:wt,hasClearIcon:rt,hasPopupIcon:St,inputFocused:An===-1,popupOpen:Ae,size:Pe},zt=eIe(Xt),_t={slots:{paper:Ie,popper:de,...Re},slotProps:{chip:s,listbox:G,...v,...me}},[an,Un]=Tr("listbox",{elementType:cIe,externalForwardedProps:_t,ownerState:Xt,className:zt.listbox,additionalProps:Gt,ref:rn}),[cr,In]=Tr("paper",{elementType:ap,externalForwardedProps:_t,ownerState:Xt,className:zt.paper}),[wn,ye]=Tr("popper",{elementType:RO,externalForwardedProps:_t,ownerState:Xt,className:zt.popper,additionalProps:{disablePortal:R,style:{width:sn?sn.clientWidth:null},role:"presentation",anchorEl:sn,open:Ae}});let be;const et=Te=>({className:zt.tag,disabled:C,...Mt(Te)});if(ne?Nn.length>0&&(Qt?be=Qt(Nn,et,Xt):tt?be=tt(Nn,et,Xt):be=Nn.map((Te,je)=>{const{key:nt,...kt}=et({index:je});return m.jsx(iz,{label:wt(Te),size:Pe,...kt,..._t.slotProps.chip},nt)})):tt&&Nn!=null&&(be=tt(Nn,et,Xt)),te>-1&&Array.isArray(be)){const Te=be.length-te;!Tn&&Te>0&&(be=be.splice(0,te),be.push(m.jsx("span",{className:zt.tag,children:$(Te)},be.length)))}const At=ut||(Te=>m.jsxs("li",{children:[m.jsx(uIe,{className:zt.groupLabel,ownerState:Xt,component:"div",children:Te.group}),m.jsx(dIe,{className:zt.groupUl,ownerState:Xt,children:Te.children})]},Te.key)),st=Zt||((Te,je)=>{const{key:nt,...kt}=Te;return m.jsx("li",{...kt,children:wt(je)},nt)}),vn=(Te,je)=>{const nt=pn({option:Te,index:je});return st({...nt,className:zt.option},Te,{selected:nt["aria-selected"],index:je,inputValue:He},Xt)},En=_t.slotProps.clearIndicator,Dn=_t.slotProps.popupIndicator;return m.jsxs(w.Fragment,{children:[m.jsx(tIe,{ref:t,className:Kt(zt.root,l),ownerState:Xt,...Ot(Ne),children:it({id:kn,disabled:C,fullWidth:!0,size:Pe==="small"?"small":void 0,InputLabelProps:yt(),InputProps:{ref:fe,className:zt.inputRoot,startAdornment:be,onMouseDown:Te=>{Te.target===Te.currentTarget&&Jt(Te)},...(rt||St)&&{endAdornment:m.jsxs(nIe,{className:zt.endAdornment,ownerState:Xt,children:[rt?m.jsx(rIe,{...ot(),"aria-label":g,title:g,ownerState:Xt,...En,className:Kt(zt.clearIndicator,En?.className),children:d}):null,St?m.jsx(oIe,{...Le(),disabled:C,"aria-label":Ae?y:Ke,title:Ae?y:Ke,ownerState:Xt,...Dn,className:Kt(zt.popupIndicator,Dn?.className),children:gt}):null]})}},inputProps:{className:zt.input,disabled:C,readOnly:Ue,...Rt()}})}),sn?m.jsx(aIe,{as:wn,...ye,children:m.jsxs(iIe,{as:cr,...In,children:[le&&Ve.length===0?m.jsx(sIe,{className:zt.loading,ownerState:Xt,children:se}):null,Ve.length===0&&!_&&!le?m.jsx(lIe,{className:zt.noOptions,ownerState:Xt,role:"presentation",onMouseDown:Te=>{Te.preventDefault()},children:ie}):null,Ve.length>0?m.jsx(an,{as:re,...Un,children:Ve.map((Te,je)=>j?At({key:Te.key,group:Te.group,children:Te.options.map((nt,kt)=>vn(nt,Te.index+kt))}):vn(Te,je))}):null]})}):null]})});Fo.extend(Fz);const nH=lr(m.jsx("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"})),rH=e=>{if(!e)return"Explore semantic models, run queries, and build dashboards";const t=e.replace(/^#+\s+/gm,"").replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/`([^`]+)`/g,"$1").trim(),n=t.split(/\n\s*\n/)[1]||t;if(n.length<=120)return n;const r=n.substring(0,120).split(" ");return r.pop(),r.join(" ")+"..."},oH=(e,t)=>{const n=(e.readme||void 0)?.split(`
|
|
512
512
|
`)??[];return n.length===0&&(n.push(`# ${e.name}`),n.push("")),(e.readme?.length??0)>0&&t?n.splice(2,1,t):t&&n.push(t),n.join(`
|
|
513
|
-
`)};function pIe(e={}){const{autoHideDuration:t=null,disableWindowBlurListener:n=!1,onClose:r,open:o,resumeHideDuration:a}=e,i=TE();w.useEffect(()=>{if(!o)return;function E(b){b.defaultPrevented||b.key==="Escape"&&r?.(b,"escapeKeyDown")}return document.addEventListener("keydown",E),()=>{document.removeEventListener("keydown",E)}},[o,r]);const s=en((E,b)=>{r?.(E,b)}),l=en(E=>{!r||E==null||i.start(E,()=>{s(null,"timeout")})});w.useEffect(()=>(o&&l(t),i.clear),[o,t,l,i]);const d=E=>{r?.(E,"clickaway")},c=i.clear,p=w.useCallback(()=>{t!=null&&l(a??t*.5)},[t,a,l]),g=E=>b=>{const C=E.onBlur;C?.(b),p()},y=E=>b=>{const C=E.onFocus;C?.(b),c()},v=E=>b=>{const C=E.onMouseEnter;C?.(b),c()},S=E=>b=>{const C=E.onMouseLeave;C?.(b),p()};return w.useEffect(()=>{if(!n&&o)return window.addEventListener("focus",p),window.addEventListener("blur",c),()=>{window.removeEventListener("focus",p),window.removeEventListener("blur",c)}},[n,o,p,c]),{getRootProps:(E={})=>{const b={...zi(e),...zi(E)};return{role:"presentation",...E,...b,onBlur:g(b),onFocus:y(b),onMouseEnter:v(b),onMouseLeave:S(b)}},onClickAway:d}}function C6(e){return e.substring(2).toLowerCase()}function hIe(e,t){return t.documentElement.clientWidth<e.clientX||t.documentElement.clientHeight<e.clientY}function mIe(e){const{children:t,disableReactTree:n=!1,mouseEvent:r="onClick",onClickAway:o,touchEvent:a="onTouchEnd"}=e,i=w.useRef(!1),s=w.useRef(null),l=w.useRef(!1),d=w.useRef(!1);w.useEffect(()=>(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const c=Or(jm(t),s),p=en(v=>{const S=d.current;d.current=!1;const E=ia(s.current);if(!l.current||!s.current||"clientX"in v&&hIe(v,E))return;if(i.current){i.current=!1;return}let b;v.composedPath?b=v.composedPath().includes(s.current):b=!E.documentElement.contains(v.target)||s.current.contains(v.target),!b&&(n||!S)&&o(v)}),g=v=>S=>{d.current=!0;const E=t.props[v];E&&E(S)},y={ref:c};return a!==!1&&(y[a]=g(a)),w.useEffect(()=>{if(a!==!1){const v=C6(a),S=ia(s.current),E=()=>{i.current=!0};return S.addEventListener(v,p),S.addEventListener("touchmove",E),()=>{S.removeEventListener(v,p),S.removeEventListener("touchmove",E)}}},[p,a]),r!==!1&&(y[r]=g(r)),w.useEffect(()=>{if(r!==!1){const v=C6(r),S=ia(s.current);return S.addEventListener(v,p),()=>{S.removeEventListener(v,p)}}},[p,r]),w.cloneElement(t,y)}function gIe(e){return yn("MuiSnackbarContent",e)}un("MuiSnackbarContent",["root","message","action"]);const yIe=e=>{const{classes:t}=e;return hn({root:["root"],action:["action"],message:["message"]},gIe,t)},vIe=Ye(ap,{name:"MuiSnackbarContent",slot:"Root"})(ar(({theme:e})=>{const t=e.palette.mode==="light"?.8:.98;return{...e.typography.body2,color:e.vars?e.vars.palette.SnackbarContent.color:e.palette.getContrastText(Jk(e.palette.background.default,t)),backgroundColor:e.vars?e.vars.palette.SnackbarContent.bg:Jk(e.palette.background.default,t),display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",flexGrow:1,[e.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),bIe=Ye("div",{name:"MuiSnackbarContent",slot:"Message"})({padding:"8px 0"}),xIe=Ye("div",{name:"MuiSnackbarContent",slot:"Action"})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),SIe=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiSnackbarContent"}),{action:r,className:o,message:a,role:i="alert",...s}=n,l=n,d=yIe(l);return m.jsxs(vIe,{role:i,elevation:6,className:Kt(d.root,o),ownerState:l,ref:t,...s,children:[m.jsx(bIe,{className:d.message,ownerState:l,children:a}),r?m.jsx(xIe,{className:d.action,ownerState:l,children:r}):null]})});function EIe(e){return yn("MuiSnackbar",e)}un("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]);const CIe=e=>{const{classes:t,anchorOrigin:n}=e,r={root:["root",`anchorOrigin${jt(n.vertical)}${jt(n.horizontal)}`]};return hn(r,EIe,t)},TIe=Ye("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`anchorOrigin${jt(n.anchorOrigin.vertical)}${jt(n.anchorOrigin.horizontal)}`]]}})(ar(({theme:e})=>({zIndex:(e.vars||e).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:t})=>t.anchorOrigin.vertical==="top",style:{top:8,[e.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:t})=>t.anchorOrigin.vertical!=="top",style:{bottom:8,[e.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="left",style:{justifyContent:"flex-start",[e.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="right",style:{justifyContent:"flex-end",[e.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="center",style:{[e.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}))),wIe=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiSnackbar"}),r=Ad(),o={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{action:a,anchorOrigin:{vertical:i,horizontal:s}={vertical:"bottom",horizontal:"left"},autoHideDuration:l=null,children:d,className:c,ClickAwayListenerProps:p,ContentProps:g,disableWindowBlurListener:y=!1,message:v,onBlur:S,onClose:E,onFocus:b,onMouseEnter:C,onMouseLeave:T,open:O,resumeHideDuration:R,slots:A={},slotProps:I={},TransitionComponent:F,transitionDuration:_=o,TransitionProps:{onEnter:z,onExited:$,...k}={},...H}=n,L={...n,anchorOrigin:{vertical:i,horizontal:s},autoHideDuration:l,disableWindowBlurListener:y,TransitionComponent:F,transitionDuration:_},V=CIe(L),{getRootProps:j,onClickAway:Z}=pIe({...L}),[J,oe]=w.useState(!0),B=Fe=>{oe(!0),$&&$(Fe)},te=(Fe,he)=>{oe(!1),z&&z(Fe,he)},re={slots:{transition:F,...A},slotProps:{content:g,clickAwayListener:p,transition:k,...I}},[G,le]=Tr("root",{ref:t,className:[V.root,c],elementType:TIe,getSlotProps:j,externalForwardedProps:{...re,...H},ownerState:L}),[se,{ownerState:ne,...ie}]=Tr("clickAwayListener",{elementType:mIe,externalForwardedProps:re,getSlotProps:Fe=>({onClickAway:(...he)=>{const ge=he[0];Fe.onClickAway?.(...he),!ge?.defaultMuiPrevented&&Z(...he)}}),ownerState:L}),[ue,ve]=Tr("content",{elementType:SIe,shouldForwardComponentProp:!0,externalForwardedProps:re,additionalProps:{message:v,action:a},ownerState:L}),[we,Se]=Tr("transition",{elementType:Jv,externalForwardedProps:re,getSlotProps:Fe=>({onEnter:(...he)=>{Fe.onEnter?.(...he),te(...he)},onExited:(...he)=>{Fe.onExited?.(...he),B(...he)}}),additionalProps:{appear:!0,in:O,timeout:_,direction:i==="top"?"down":"up"},ownerState:L});return!O&&J?null:m.jsx(se,{...ie,...A.clickAwayListener&&{ownerState:ne},children:m.jsx(G,{...le,children:m.jsx(we,{...Se,children:d||m.jsx(ue,{...ve})})})})});function T6(){const[e,t]=w.useState(!1),{apiClients:n}=zr(),[r,o]=w.useState(""),a=()=>{t(!0)},i=()=>{t(!1)},s=Ws(),l=ma({async mutationFn(c){return n.environments.createEnvironment({name:c.name,readme:oH({name:c.name,readme:""},c.description)})},onSuccess(){i(),s.invalidateQueries({queryKey:["environments"]}),o("Environment created successfully")},onError(c){o(c instanceof Error?c.message:"An unknown error occurred")}}),d=async c=>{c.preventDefault();const p=new FormData(c.currentTarget),g=p.get("name")?.toString(),y=p.get("description")?.toString();if(!g)throw new Error("Name is required");l.mutate({name:g,description:y})};return m.jsxs($t.Fragment,{children:[m.jsx(Eo,{variant:"contained",onClick:a,startIcon:m.jsx(Kse,{}),sx:{mt:2},children:"Create New Environment"}),m.jsxs(Sc,{open:e,onClose:i,children:[m.jsx(pu,{children:"Create New Environment"}),m.jsxs(xc,{children:[m.jsx(Wb,{children:"Add a new environment to start exploring semantic models and analyzing data."}),m.jsxs("form",{onSubmit:d,id:"environment-form",children:[m.jsx(Lr,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Environment Name",type:"text",fullWidth:!0,variant:"standard"}),m.jsx(Lr,{margin:"dense",id:"description",name:"description",label:"Environment Description",placeholder:"Explore semantic models, run queries, and build dashboards",type:"text",fullWidth:!0,variant:"standard"})]})]}),m.jsxs(bc,{children:[m.jsx(Eo,{disabled:l.isPending,onClick:i,children:"Cancel"}),m.jsx(Eo,{type:"submit",form:"environment-form",loading:l.isPending,children:"Create Environment"})]})]}),m.jsx(wIe,{open:r!=="",autoHideDuration:6e3,onClose:()=>o(""),message:r})]})}function kIe({environment:e,onCloseDialog:t}){const[n,r]=w.useState(!1),{apiClients:o}=zr(),a=Ws(),[i,s]=w.useState(""),l=()=>{r(!0)},d=()=>{r(!1),t()},c=ma({mutationFn:()=>o.environments.deleteEnvironment(e.name),onSuccess(){d(),a.invalidateQueries({queryKey:["environments"]}),s("Environment deleted successfully")},onError(p){s(p instanceof Error?p.message:"An unknown error occurred")}});return m.jsxs($t.Fragment,{children:[m.jsxs(uc,{onClick:l,children:[m.jsx(vb,{children:m.jsx(VS,{fontSize:"small"})}),m.jsx(Zf,{children:"Delete"})]}),m.jsxs(Sc,{onClose:d,"aria-labelledby":"customized-dialog-title",open:n,children:[m.jsx(pu,{sx:{m:0,p:2},id:"customized-dialog-title",children:"Delete Environment"}),m.jsx(Qs,{"aria-label":"close",onClick:d,sx:p=>({position:"absolute",right:8,top:8,color:p.palette.grey[500]}),children:m.jsx(yl,{})}),m.jsx(xc,{dividers:!0,children:m.jsxs(Nr,{gutterBottom:!0,children:['Are you sure you want to delete "',e.name,'"? This action cannot be undone.']})}),m.jsxs(bc,{children:[m.jsx(Eo,{variant:"outlined",onClick:d,style:{borderColor:Ls.teal,color:Ls.teal},children:"Cancel"}),m.jsx(Eo,{loading:c.isPending,variant:"contained",autoFocus:!0,onClick:()=>c.mutate(),color:"error",children:"Delete"})]}),m.jsx(xl,{open:i!=="",autoHideDuration:6e3,onClose:()=>s(""),message:i})]})]})}function AIe({environment:e,onCloseDialog:t}){const[n,r]=w.useState(!1),{apiClients:o}=zr(),a=Ws(),[i,s]=w.useState(""),l=()=>{r(!0)},d=()=>{r(!1),t()},c=ma({async mutationFn(g){return o.environments.updateEnvironment(e.name,{name:e.name,readme:oH({name:e.name,readme:e.readme},g.description)})},onSuccess(){d(),a.invalidateQueries({queryKey:["environments"]}),s("Environment updated successfully")},onError(g){s(g instanceof Error?g.message:"An unknown error occurred")}}),p=g=>{g.preventDefault();const y=new FormData(g.currentTarget).get("description")?.toString();c.mutate({description:y})};return m.jsxs($t.Fragment,{children:[m.jsxs(uc,{onClick:l,children:[m.jsx(vb,{children:m.jsx(uD,{fontSize:"small"})}),m.jsx(Zf,{children:"Edit"})]}),m.jsxs(Sc,{open:n,onClose:d,children:[m.jsx(pu,{children:"Edit Environment"}),m.jsxs(xc,{children:[m.jsx(Wb,{children:"Edit this environment's description."}),m.jsxs("form",{onSubmit:p,id:"environment-form",children:[m.jsx(Lr,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Environment Name",disabled:!0,type:"text",fullWidth:!0,variant:"standard",defaultValue:e.name}),m.jsx(Lr,{margin:"dense",id:"description",name:"description",label:"Environment Description",type:"text",fullWidth:!0,variant:"standard",defaultValue:rH(e.readme)})]})]}),m.jsxs(bc,{children:[m.jsx(Eo,{disabled:c.isPending,onClick:d,children:"Cancel"}),m.jsx(Eo,{type:"submit",form:"environment-form",loading:c.isPending,children:"Save Changes"})]})]}),m.jsx(xl,{open:i!=="",autoHideDuration:6e3,onClose:()=>s(""),message:i})]})}const DIe=[{title:"Ad-hoc analysis",body:"Browse the semantic sources on this server and build nested queries in Explorer. Every click writes valid Malloy, so metrics stay correct even across joins.",href:Jl.explorer},{title:"Notebooks",body:"A data story: markdown and live query cells in one file, versioned beside the model it reads. Any givens it imports become a panel of filter controls above the cells.",href:Jl.surfaces},{title:"Dashboards",body:"A tagged Malloy file is the page. Tags lay out the grid, the filter row is rendered from the query's parameters, and a tagged dimension clicks through to a detail page. No front-end code.",href:Jl.dashboards},{title:"Data apps",body:"Hand-author an HTML page in a package's public directory and Publisher serves it, backed by that package's models. No build step, and it embeds in a host page.",href:Jl.dataApps},{title:"AI data agents",body:"One MCP endpoint. Agents discover the sources, compile-check the Malloy they write, and ask well-formed questions instead of guessing at raw tables.",href:Jl.mcpAgents},{title:"Governed access",body:"Runtime parameters, row-level filters, and per-source access gates are declared in the model, so every surface reads the same rules rather than reimplementing them.",href:Jl.givens}];function P1({href:e,external:t=!0,children:n}){return m.jsx(Nt,{component:"a",href:e,target:t?"_blank":void 0,rel:t?"noopener noreferrer":void 0,sx:{color:"text.primary",textDecoration:"underline"},children:n})}function K3e({onClickEnvironment:e}){const{apiClients:t,mutable:n,server:r}=zr(),{data:o,isSuccess:a,isError:i,error:s}=So({queryKey:["environments"],queryFn:()=>t.environments.listEnvironments()});if(i)return m.jsx(ka,{error:s,context:"Environments List"});if(!a)return m.jsx(wa,{text:"Loading environments..."});const l=o.data??[];return m.jsxs(IS,{maxWidth:"md",sx:{py:6},children:[m.jsxs(Nt,{sx:{mb:5},children:[m.jsx(xt,{variant:"h3",component:"h1",sx:{fontWeight:500,letterSpacing:"-0.025em",mb:1},children:"Publisher"}),m.jsx(xt,{variant:"body1",color:"text.secondary",sx:{mb:3},children:"The open-source semantic model server for the Malloy data language."}),m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{maxWidth:720,lineHeight:1.6},children:"Define semantic models once and use them everywhere. Publisher serves Malloy models over a REST API and a single MCP endpoint, so applications, BI tools, and AI agents compose queries against the model instead of writing SQL, and the numbers come back right by construction."})]}),m.jsx(Ps,{container:!0,spacing:4,sx:{mb:5},children:DIe.map(d=>m.jsx(Ps,{size:{xs:12,sm:6},children:m.jsxs(_r,{spacing:1,children:[m.jsx(xt,{variant:"body2",component:"a",href:d.href,target:"_blank",rel:"noopener noreferrer",sx:{fontWeight:500,color:"text.primary",textDecoration:"none","&:hover":{textDecoration:"underline"}},children:d.title}),m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{lineHeight:1.6},children:d.body})]})},d.title))}),m.jsx(cc,{sx:{my:4}}),l.length>0?m.jsxs(Nt,{sx:{mb:4},children:[m.jsxs(_r,{direction:"row",justifyContent:"space-between",alignItems:"flex-start",sx:{mb:3},children:[m.jsxs(Nt,{children:[m.jsx(xt,{variant:"h5",sx:{fontWeight:500,letterSpacing:"-0.025em",mb:.5},children:"Environments"}),m.jsx(xt,{variant:"body2",color:"text.secondary",children:"Published environments available on this server"})]}),n&&m.jsx(T6,{})]}),m.jsx(Ps,{container:!0,spacing:2,children:l.map(d=>m.jsx(Ps,{size:{xs:12,sm:6,md:4},children:m.jsx(OIe,{environment:d,onClickEnvironment:e})},d.name))})]}):m.jsxs(Nt,{sx:{mb:4},children:[m.jsx(xt,{variant:"h5",sx:{fontWeight:500,letterSpacing:"-0.025em",mb:1},children:"Get started"}),m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{mb:3,maxWidth:600},children:"Create your first Malloy environment to start exploring semantic models and building data experiences."}),n?m.jsx(T6,{}):m.jsx(ro,{variant:"contained",color:"primary",href:Jl.publishing,target:"_blank",rel:"noopener noreferrer",children:"Learn how to create models"})]}),m.jsx(cc,{sx:{my:4}}),m.jsxs(xt,{variant:"body2",color:"text.secondary",sx:{maxWidth:720,lineHeight:1.6},children:["Also here:"," ",m.jsx(P1,{href:Jl.connections,children:"connections"})," to BigQuery, Snowflake, Postgres, MySQL, Trino, DuckDB and more;"," ",m.jsx(P1,{href:Jl.materialization,children:"materialized tables"})," ","built on demand or on a schedule; and a"," ",m.jsx(P1,{href:`${HO(r)}/api-doc.html`,external:!1,children:"REST API"})," ","that does everything this console does."]}),m.jsxs(xt,{variant:"body2",color:"text.secondary",sx:{maxWidth:720,lineHeight:1.6,mt:2},children:["Publisher is built on fully open infrastructure and designed for the AI era. Join the"," ",m.jsx(P1,{href:"https://join.slack.com/t/malloy-community/shared_invite/zt-1kgfwgi5g-CrsdaRqs81QY67QW0~t_uw",children:"Malloy Slack community"})," ","to ask questions, share ideas, and contribute."]})]})}function OIe({environment:e,onClickEnvironment:t}){const{mutable:n}=zr(),[r,o]=w.useState(null),a=!!r,i=rH(e.readme),s=c=>{e.name&&t&&t(`/${e.name}/`,c)},l=c=>{c.stopPropagation(),o(c.currentTarget)},d=()=>{o(null)};return m.jsx(Sm,{variant:"outlined",onClick:s,sx:{height:"100%",cursor:"pointer",borderRadius:3,borderColor:"divider",boxShadow:"none",transition:"all 0.2s ease-in-out","&:hover":{boxShadow:2,borderColor:"primary.main"}},children:m.jsx(Em,{sx:{p:2.5,"&:last-child":{pb:2.5}},children:m.jsxs(Nt,{sx:{display:"flex",alignItems:"flex-start",gap:1.5},children:[m.jsx(Nt,{sx:c=>({width:36,height:36,borderRadius:1.5,bgcolor:c.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"grey.100",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"text.primary"}),children:m.jsx(nH,{sx:{fontSize:20}})}),m.jsxs(Nt,{sx:{flex:1,minWidth:0},children:[m.jsx(xt,{variant:"subtitle1",component:"h6",noWrap:!0,sx:{fontWeight:600,mb:.5},children:e.name}),m.jsx(Do,{title:i,followCursor:!0,enterDelay:1e3,children:m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",lineHeight:1.5},children:i})})]}),n&&m.jsxs(m.Fragment,{children:[m.jsx(Ar,{size:"small",onClick:l,"aria-label":`Environment actions for ${e.name}`,sx:{flexShrink:0,mt:-.5,mr:-.5},children:m.jsx(WS,{fontSize:"small"})}),m.jsxs(kd,{anchorEl:r,open:a,onClose:d,onClick:c=>c.stopPropagation(),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[m.jsx(AIe,{environment:e,onCloseDialog:d}),m.jsx(kIe,{environment:e,onCloseDialog:d})]})]})]})})})}const rS=lr(m.jsx("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"})),RIe=lr(m.jsx("path",{d:"M8 5v14l11-7z"}));function aH({open:e,onClose:t,result:n,title:r="Results",renderLogs:o,drill:a}){return m.jsxs(ts,{open:e,onClose:t,maxWidth:!1,fullWidth:!0,sx:{"& .MuiDialog-paper":{width:"95vw",height:"95vh",maxWidth:"none"}},children:[m.jsxs(rs,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[r,m.jsx(Ar,{onClick:t,sx:{color:"text.secondary"},children:m.jsx(yl,{})})]}),m.jsx(ns,{sx:{height:"calc(95vh - 120px)",overflow:"auto",padding:"0 16px"},children:m.jsx($b,{result:n,maxHeight:800,maxResultSize:1e6,renderLogs:o,drill:a})})]})}function MIe({queryName:e,annotations:t,resourceUri:n,runOnDemand:r=!1,maxResultSize:o=0}){const[a,i]=$t.useState(),[s,l]=$t.useState(!1),[d,c]=$t.useState(!1),{packageName:p,environmentName:g,versionId:y,modelPath:v}=Co(n),{apiClients:S}=zr(),{data:E,isSuccess:b,isLoading:C}=So({queryKey:["namedQueryResult",n,e],queryFn:()=>S.models.executeQueryModel(g,p,v,{query:void 0,sourceName:void 0,queryName:e,versionId:y}),enabled:r?d:!0,...S$}),{mode:T}=kb();return w.useEffect(()=>{if(t&&t.length>0){const O=t.map(R=>`// ${R}`).join(`
|
|
513
|
+
`)};function pIe(e={}){const{autoHideDuration:t=null,disableWindowBlurListener:n=!1,onClose:r,open:o,resumeHideDuration:a}=e,i=TE();w.useEffect(()=>{if(!o)return;function E(b){b.defaultPrevented||b.key==="Escape"&&r?.(b,"escapeKeyDown")}return document.addEventListener("keydown",E),()=>{document.removeEventListener("keydown",E)}},[o,r]);const s=en((E,b)=>{r?.(E,b)}),l=en(E=>{!r||E==null||i.start(E,()=>{s(null,"timeout")})});w.useEffect(()=>(o&&l(t),i.clear),[o,t,l,i]);const d=E=>{r?.(E,"clickaway")},c=i.clear,p=w.useCallback(()=>{t!=null&&l(a??t*.5)},[t,a,l]),g=E=>b=>{const C=E.onBlur;C?.(b),p()},y=E=>b=>{const C=E.onFocus;C?.(b),c()},v=E=>b=>{const C=E.onMouseEnter;C?.(b),c()},S=E=>b=>{const C=E.onMouseLeave;C?.(b),p()};return w.useEffect(()=>{if(!n&&o)return window.addEventListener("focus",p),window.addEventListener("blur",c),()=>{window.removeEventListener("focus",p),window.removeEventListener("blur",c)}},[n,o,p,c]),{getRootProps:(E={})=>{const b={...zi(e),...zi(E)};return{role:"presentation",...E,...b,onBlur:g(b),onFocus:y(b),onMouseEnter:v(b),onMouseLeave:S(b)}},onClickAway:d}}function C6(e){return e.substring(2).toLowerCase()}function hIe(e,t){return t.documentElement.clientWidth<e.clientX||t.documentElement.clientHeight<e.clientY}function mIe(e){const{children:t,disableReactTree:n=!1,mouseEvent:r="onClick",onClickAway:o,touchEvent:a="onTouchEnd"}=e,i=w.useRef(!1),s=w.useRef(null),l=w.useRef(!1),d=w.useRef(!1);w.useEffect(()=>(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const c=Or(jm(t),s),p=en(v=>{const S=d.current;d.current=!1;const E=ia(s.current);if(!l.current||!s.current||"clientX"in v&&hIe(v,E))return;if(i.current){i.current=!1;return}let b;v.composedPath?b=v.composedPath().includes(s.current):b=!E.documentElement.contains(v.target)||s.current.contains(v.target),!b&&(n||!S)&&o(v)}),g=v=>S=>{d.current=!0;const E=t.props[v];E&&E(S)},y={ref:c};return a!==!1&&(y[a]=g(a)),w.useEffect(()=>{if(a!==!1){const v=C6(a),S=ia(s.current),E=()=>{i.current=!0};return S.addEventListener(v,p),S.addEventListener("touchmove",E),()=>{S.removeEventListener(v,p),S.removeEventListener("touchmove",E)}}},[p,a]),r!==!1&&(y[r]=g(r)),w.useEffect(()=>{if(r!==!1){const v=C6(r),S=ia(s.current);return S.addEventListener(v,p),()=>{S.removeEventListener(v,p)}}},[p,r]),w.cloneElement(t,y)}function gIe(e){return yn("MuiSnackbarContent",e)}un("MuiSnackbarContent",["root","message","action"]);const yIe=e=>{const{classes:t}=e;return hn({root:["root"],action:["action"],message:["message"]},gIe,t)},vIe=Ye(ap,{name:"MuiSnackbarContent",slot:"Root"})(ar(({theme:e})=>{const t=e.palette.mode==="light"?.8:.98;return{...e.typography.body2,color:e.vars?e.vars.palette.SnackbarContent.color:e.palette.getContrastText(Jk(e.palette.background.default,t)),backgroundColor:e.vars?e.vars.palette.SnackbarContent.bg:Jk(e.palette.background.default,t),display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",flexGrow:1,[e.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),bIe=Ye("div",{name:"MuiSnackbarContent",slot:"Message"})({padding:"8px 0"}),xIe=Ye("div",{name:"MuiSnackbarContent",slot:"Action"})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),SIe=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiSnackbarContent"}),{action:r,className:o,message:a,role:i="alert",...s}=n,l=n,d=yIe(l);return m.jsxs(vIe,{role:i,elevation:6,className:Kt(d.root,o),ownerState:l,ref:t,...s,children:[m.jsx(bIe,{className:d.message,ownerState:l,children:a}),r?m.jsx(xIe,{className:d.action,ownerState:l,children:r}):null]})});function EIe(e){return yn("MuiSnackbar",e)}un("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]);const CIe=e=>{const{classes:t,anchorOrigin:n}=e,r={root:["root",`anchorOrigin${jt(n.vertical)}${jt(n.horizontal)}`]};return hn(r,EIe,t)},TIe=Ye("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`anchorOrigin${jt(n.anchorOrigin.vertical)}${jt(n.anchorOrigin.horizontal)}`]]}})(ar(({theme:e})=>({zIndex:(e.vars||e).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:t})=>t.anchorOrigin.vertical==="top",style:{top:8,[e.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:t})=>t.anchorOrigin.vertical!=="top",style:{bottom:8,[e.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="left",style:{justifyContent:"flex-start",[e.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="right",style:{justifyContent:"flex-end",[e.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="center",style:{[e.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}))),wIe=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiSnackbar"}),r=Ad(),o={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{action:a,anchorOrigin:{vertical:i,horizontal:s}={vertical:"bottom",horizontal:"left"},autoHideDuration:l=null,children:d,className:c,ClickAwayListenerProps:p,ContentProps:g,disableWindowBlurListener:y=!1,message:v,onBlur:S,onClose:E,onFocus:b,onMouseEnter:C,onMouseLeave:T,open:O,resumeHideDuration:R,slots:A={},slotProps:I={},TransitionComponent:F,transitionDuration:_=o,TransitionProps:{onEnter:z,onExited:$,...k}={},...H}=n,L={...n,anchorOrigin:{vertical:i,horizontal:s},autoHideDuration:l,disableWindowBlurListener:y,TransitionComponent:F,transitionDuration:_},V=CIe(L),{getRootProps:j,onClickAway:Z}=pIe({...L}),[J,oe]=w.useState(!0),B=Fe=>{oe(!0),$&&$(Fe)},te=(Fe,he)=>{oe(!1),z&&z(Fe,he)},re={slots:{transition:F,...A},slotProps:{content:g,clickAwayListener:p,transition:k,...I}},[G,le]=Tr("root",{ref:t,className:[V.root,c],elementType:TIe,getSlotProps:j,externalForwardedProps:{...re,...H},ownerState:L}),[se,{ownerState:ne,...ie}]=Tr("clickAwayListener",{elementType:mIe,externalForwardedProps:re,getSlotProps:Fe=>({onClickAway:(...he)=>{const ge=he[0];Fe.onClickAway?.(...he),!ge?.defaultMuiPrevented&&Z(...he)}}),ownerState:L}),[ue,ve]=Tr("content",{elementType:SIe,shouldForwardComponentProp:!0,externalForwardedProps:re,additionalProps:{message:v,action:a},ownerState:L}),[we,Se]=Tr("transition",{elementType:Jv,externalForwardedProps:re,getSlotProps:Fe=>({onEnter:(...he)=>{Fe.onEnter?.(...he),te(...he)},onExited:(...he)=>{Fe.onExited?.(...he),B(...he)}}),additionalProps:{appear:!0,in:O,timeout:_,direction:i==="top"?"down":"up"},ownerState:L});return!O&&J?null:m.jsx(se,{...ie,...A.clickAwayListener&&{ownerState:ne},children:m.jsx(G,{...le,children:m.jsx(we,{...Se,children:d||m.jsx(ue,{...ve})})})})});function T6(){const[e,t]=w.useState(!1),{apiClients:n}=zr(),[r,o]=w.useState(""),a=()=>{t(!0)},i=()=>{t(!1)},s=Ws(),l=ma({async mutationFn(c){return n.environments.createEnvironment({name:c.name,readme:oH({name:c.name,readme:""},c.description)})},onSuccess(){i(),s.invalidateQueries({queryKey:["environments"]}),o("Environment created successfully")},onError(c){o(c instanceof Error?c.message:"An unknown error occurred")}}),d=async c=>{c.preventDefault();const p=new FormData(c.currentTarget),g=p.get("name")?.toString(),y=p.get("description")?.toString();if(!g)throw new Error("Name is required");l.mutate({name:g,description:y})};return m.jsxs($t.Fragment,{children:[m.jsx(Eo,{variant:"contained",onClick:a,startIcon:m.jsx(Kse,{}),sx:{mt:2},children:"Create New Environment"}),m.jsxs(Sc,{open:e,onClose:i,children:[m.jsx(pu,{children:"Create New Environment"}),m.jsxs(xc,{children:[m.jsx(Wb,{children:"Add a new environment to start exploring semantic models and analyzing data."}),m.jsxs("form",{onSubmit:d,id:"environment-form",children:[m.jsx(Lr,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Environment Name",type:"text",fullWidth:!0,variant:"standard"}),m.jsx(Lr,{margin:"dense",id:"description",name:"description",label:"Environment Description",placeholder:"Explore semantic models, run queries, and build dashboards",type:"text",fullWidth:!0,variant:"standard"})]})]}),m.jsxs(bc,{children:[m.jsx(Eo,{disabled:l.isPending,onClick:i,children:"Cancel"}),m.jsx(Eo,{type:"submit",form:"environment-form",loading:l.isPending,children:"Create Environment"})]})]}),m.jsx(wIe,{open:r!=="",autoHideDuration:6e3,onClose:()=>o(""),message:r})]})}function kIe({environment:e,onCloseDialog:t}){const[n,r]=w.useState(!1),{apiClients:o}=zr(),a=Ws(),[i,s]=w.useState(""),l=()=>{r(!0)},d=()=>{r(!1),t()},c=ma({mutationFn:()=>o.environments.deleteEnvironment(e.name),onSuccess(){d(),a.invalidateQueries({queryKey:["environments"]}),s("Environment deleted successfully")},onError(p){s(p instanceof Error?p.message:"An unknown error occurred")}});return m.jsxs($t.Fragment,{children:[m.jsxs(uc,{onClick:l,children:[m.jsx(vb,{children:m.jsx(VS,{fontSize:"small"})}),m.jsx(Zf,{children:"Delete"})]}),m.jsxs(Sc,{onClose:d,"aria-labelledby":"customized-dialog-title",open:n,children:[m.jsx(pu,{sx:{m:0,p:2},id:"customized-dialog-title",children:"Delete Environment"}),m.jsx(Qs,{"aria-label":"close",onClick:d,sx:p=>({position:"absolute",right:8,top:8,color:p.palette.grey[500]}),children:m.jsx(yl,{})}),m.jsx(xc,{dividers:!0,children:m.jsxs(Nr,{gutterBottom:!0,children:['Are you sure you want to delete "',e.name,'"? This action cannot be undone.']})}),m.jsxs(bc,{children:[m.jsx(Eo,{variant:"outlined",onClick:d,style:{borderColor:Ls.teal,color:Ls.teal},children:"Cancel"}),m.jsx(Eo,{loading:c.isPending,variant:"contained",autoFocus:!0,onClick:()=>c.mutate(),color:"error",children:"Delete"})]}),m.jsx(xl,{open:i!=="",autoHideDuration:6e3,onClose:()=>s(""),message:i})]})]})}function AIe({environment:e,onCloseDialog:t}){const[n,r]=w.useState(!1),{apiClients:o}=zr(),a=Ws(),[i,s]=w.useState(""),l=()=>{r(!0)},d=()=>{r(!1),t()},c=ma({async mutationFn(g){return o.environments.updateEnvironment(e.name,{name:e.name,readme:oH({name:e.name,readme:e.readme},g.description)})},onSuccess(){d(),a.invalidateQueries({queryKey:["environments"]}),s("Environment updated successfully")},onError(g){s(g instanceof Error?g.message:"An unknown error occurred")}}),p=g=>{g.preventDefault();const y=new FormData(g.currentTarget).get("description")?.toString();c.mutate({description:y})};return m.jsxs($t.Fragment,{children:[m.jsxs(uc,{onClick:l,children:[m.jsx(vb,{children:m.jsx(uD,{fontSize:"small"})}),m.jsx(Zf,{children:"Edit"})]}),m.jsxs(Sc,{open:n,onClose:d,children:[m.jsx(pu,{children:"Edit Environment"}),m.jsxs(xc,{children:[m.jsx(Wb,{children:"Edit this environment's description."}),m.jsxs("form",{onSubmit:p,id:"environment-form",children:[m.jsx(Lr,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Environment Name",disabled:!0,type:"text",fullWidth:!0,variant:"standard",defaultValue:e.name}),m.jsx(Lr,{margin:"dense",id:"description",name:"description",label:"Environment Description",type:"text",fullWidth:!0,variant:"standard",defaultValue:rH(e.readme)})]})]}),m.jsxs(bc,{children:[m.jsx(Eo,{disabled:c.isPending,onClick:d,children:"Cancel"}),m.jsx(Eo,{type:"submit",form:"environment-form",loading:c.isPending,children:"Save Changes"})]})]}),m.jsx(xl,{open:i!=="",autoHideDuration:6e3,onClose:()=>s(""),message:i})]})}const DIe=[{title:"Ad-hoc analysis",body:"Browse the semantic sources on this server and build nested queries in Explorer. Every click writes valid Malloy, so metrics stay correct even across joins.",href:Jl.explorer},{title:"Notebooks",body:"A data story: markdown and live query cells in one file, versioned beside the model it reads. Any givens it imports become a panel of filter controls above the cells.",href:Jl.surfaces},{title:"Dashboards",body:"A tagged Malloy file is the page. Tags lay out the grid, the filter row is rendered from the query's parameters, and a tagged dimension clicks through to a detail page. No front-end code.",href:Jl.dashboards},{title:"Data apps",body:"Hand-author an HTML page in a package's public directory and Publisher serves it, backed by that package's models. No build step, and it embeds in a host page.",href:Jl.dataApps},{title:"AI data agents",body:"One MCP endpoint. Agents discover the sources, compile-check the Malloy they write, and ask well-formed questions instead of guessing at raw tables.",href:Jl.mcpAgents},{title:"Governed access",body:"Runtime parameters, row-level filters, and per-source access gates are declared in the model, so every surface reads the same rules rather than reimplementing them.",href:Jl.givens}];function P1({href:e,children:t}){return m.jsx(Nt,{component:"a",href:e,target:"_blank",rel:"noopener noreferrer",sx:{color:"text.primary",textDecoration:"underline"},children:t})}function K3e({onClickEnvironment:e}){const{apiClients:t,mutable:n,server:r}=zr(),{data:o,isSuccess:a,isError:i,error:s}=So({queryKey:["environments"],queryFn:()=>t.environments.listEnvironments()});if(i)return m.jsx(ka,{error:s,context:"Environments List"});if(!a)return m.jsx(wa,{text:"Loading environments..."});const l=o.data??[];return m.jsxs(IS,{maxWidth:"md",sx:{py:6},children:[m.jsxs(Nt,{sx:{mb:5},children:[m.jsx(xt,{variant:"h3",component:"h1",sx:{fontWeight:500,letterSpacing:"-0.025em",mb:1},children:"Publisher"}),m.jsx(xt,{variant:"body1",color:"text.secondary",sx:{mb:3},children:"The open-source semantic model server for the Malloy data language."}),m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{maxWidth:720,lineHeight:1.6},children:"Define semantic models once and use them everywhere. Publisher serves Malloy models over a REST API and a single MCP endpoint, so applications, BI tools, and AI agents compose queries against the model instead of writing SQL, and the numbers come back right by construction."})]}),m.jsx(Ps,{container:!0,spacing:4,sx:{mb:5},children:DIe.map(d=>m.jsx(Ps,{size:{xs:12,sm:6},children:m.jsxs(_r,{spacing:1,children:[m.jsx(xt,{variant:"body2",component:"a",href:d.href,target:"_blank",rel:"noopener noreferrer",sx:{fontWeight:500,color:"text.primary",textDecoration:"none","&:hover":{textDecoration:"underline"}},children:d.title}),m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{lineHeight:1.6},children:d.body})]})},d.title))}),m.jsx(cc,{sx:{my:4}}),l.length>0?m.jsxs(Nt,{sx:{mb:4},children:[m.jsxs(_r,{direction:"row",justifyContent:"space-between",alignItems:"flex-start",sx:{mb:3},children:[m.jsxs(Nt,{children:[m.jsx(xt,{variant:"h5",sx:{fontWeight:500,letterSpacing:"-0.025em",mb:.5},children:"Environments"}),m.jsx(xt,{variant:"body2",color:"text.secondary",children:"Published environments available on this server"})]}),n&&m.jsx(T6,{})]}),m.jsx(Ps,{container:!0,spacing:2,children:l.map(d=>m.jsx(Ps,{size:{xs:12,sm:6,md:4},children:m.jsx(OIe,{environment:d,onClickEnvironment:e})},d.name))})]}):m.jsxs(Nt,{sx:{mb:4},children:[m.jsx(xt,{variant:"h5",sx:{fontWeight:500,letterSpacing:"-0.025em",mb:1},children:"Get started"}),m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{mb:3,maxWidth:600},children:"Create your first Malloy environment to start exploring semantic models and building data experiences."}),n?m.jsx(T6,{}):m.jsx(ro,{variant:"contained",color:"primary",href:Jl.publishing,target:"_blank",rel:"noopener noreferrer",children:"Learn how to create models"})]}),m.jsx(cc,{sx:{my:4}}),m.jsxs(xt,{variant:"body2",color:"text.secondary",sx:{maxWidth:720,lineHeight:1.6},children:["Also here:"," ",m.jsx(P1,{href:Jl.connections,children:"connections"})," to BigQuery, Snowflake, Postgres, MySQL, Trino, DuckDB and more;"," ",m.jsx(P1,{href:Jl.materialization,children:"materialized tables"})," ","built on demand or on a schedule; and a"," ",m.jsx(P1,{href:`${HO(r)}/api-doc.html`,children:"REST API"})," ","that does everything this console does."]}),m.jsxs(xt,{variant:"body2",color:"text.secondary",sx:{maxWidth:720,lineHeight:1.6,mt:2},children:["Publisher is built on fully open infrastructure and designed for the AI era. Join the"," ",m.jsx(P1,{href:"https://join.slack.com/t/malloy-community/shared_invite/zt-1kgfwgi5g-CrsdaRqs81QY67QW0~t_uw",children:"Malloy Slack community"})," ","to ask questions, share ideas, and contribute."]})]})}function OIe({environment:e,onClickEnvironment:t}){const{mutable:n}=zr(),[r,o]=w.useState(null),a=!!r,i=rH(e.readme),s=c=>{e.name&&t&&t(`/${e.name}/`,c)},l=c=>{c.stopPropagation(),o(c.currentTarget)},d=()=>{o(null)};return m.jsx(Sm,{variant:"outlined",onClick:s,sx:{height:"100%",cursor:"pointer",borderRadius:3,borderColor:"divider",boxShadow:"none",transition:"all 0.2s ease-in-out","&:hover":{boxShadow:2,borderColor:"primary.main"}},children:m.jsx(Em,{sx:{p:2.5,"&:last-child":{pb:2.5}},children:m.jsxs(Nt,{sx:{display:"flex",alignItems:"flex-start",gap:1.5},children:[m.jsx(Nt,{sx:c=>({width:36,height:36,borderRadius:1.5,bgcolor:c.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"grey.100",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,color:"text.primary"}),children:m.jsx(nH,{sx:{fontSize:20}})}),m.jsxs(Nt,{sx:{flex:1,minWidth:0},children:[m.jsx(xt,{variant:"subtitle1",component:"h6",noWrap:!0,sx:{fontWeight:600,mb:.5},children:e.name}),m.jsx(Do,{title:i,followCursor:!0,enterDelay:1e3,children:m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{overflow:"hidden",textOverflow:"ellipsis",display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",lineHeight:1.5},children:i})})]}),n&&m.jsxs(m.Fragment,{children:[m.jsx(Ar,{size:"small",onClick:l,"aria-label":`Environment actions for ${e.name}`,sx:{flexShrink:0,mt:-.5,mr:-.5},children:m.jsx(WS,{fontSize:"small"})}),m.jsxs(kd,{anchorEl:r,open:a,onClose:d,onClick:c=>c.stopPropagation(),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[m.jsx(AIe,{environment:e,onCloseDialog:d}),m.jsx(kIe,{environment:e,onCloseDialog:d})]})]})]})})})}const rS=lr(m.jsx("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"})),RIe=lr(m.jsx("path",{d:"M8 5v14l11-7z"}));function aH({open:e,onClose:t,result:n,title:r="Results",renderLogs:o,drill:a}){return m.jsxs(ts,{open:e,onClose:t,maxWidth:!1,fullWidth:!0,sx:{"& .MuiDialog-paper":{width:"95vw",height:"95vh",maxWidth:"none"}},children:[m.jsxs(rs,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[r,m.jsx(Ar,{onClick:t,sx:{color:"text.secondary"},children:m.jsx(yl,{})})]}),m.jsx(ns,{sx:{height:"calc(95vh - 120px)",overflow:"auto",padding:"0 16px"},children:m.jsx($b,{result:n,maxHeight:800,maxResultSize:1e6,renderLogs:o,drill:a})})]})}function MIe({queryName:e,annotations:t,resourceUri:n,runOnDemand:r=!1,maxResultSize:o=0}){const[a,i]=$t.useState(),[s,l]=$t.useState(!1),[d,c]=$t.useState(!1),{packageName:p,environmentName:g,versionId:y,modelPath:v}=Co(n),{apiClients:S}=zr(),{data:E,isSuccess:b,isLoading:C}=So({queryKey:["namedQueryResult",n,e],queryFn:()=>S.models.executeQueryModel(g,p,v,{query:void 0,sourceName:void 0,queryName:e,versionId:y}),enabled:r?d:!0,...S$}),{mode:T}=kb();return w.useEffect(()=>{if(t&&t.length>0){const O=t.map(R=>`// ${R}`).join(`
|
|
514
514
|
`);Kx(O,"typescript",T).then(R=>{i(R)})}},[t,T]),m.jsxs(Bk,{children:[a&&m.jsx(Nt,{sx:{marginBottom:"16px"},children:m.jsx(xt,{fontSize:"12px",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},children:m.jsx("div",{className:"content",dangerouslySetInnerHTML:{__html:a}})})}),m.jsxs(Nt,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"8px"},children:[m.jsx(xt,{variant:"body2",sx:{fontSize:"15px",fontWeight:"600",color:"#495057",padding:"8px 16px",backgroundColor:"#f8f9fa",borderRadius:"6px",border:"1px solid #e9ecef"},children:e}),m.jsx(Ar,{sx:{backgroundColor:"rgba(255, 255, 255, 0.9)","&:hover":{backgroundColor:"rgba(255, 255, 255, 1)"},width:"32px",height:"32px"},onClick:()=>l(!0),children:m.jsx(rS,{sx:{fontSize:"18px",color:"text.secondary"}})})]}),m.jsxs(zy,{sx:{position:"relative"},children:[r&&!d&&m.jsxs(Nt,{sx:{padding:"40px 20px",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",gap:"16px"},children:[m.jsx(xt,{variant:"body2",color:"text.secondary",children:"Click Run to execute the query"}),m.jsx(ro,{variant:"contained",startIcon:m.jsx(RIe,{}),onClick:()=>c(!0),sx:{backgroundColor:"#1976d2","&:hover":{backgroundColor:"#1565c0"},textTransform:"none",fontSize:"14px",fontWeight:600,padding:"8px 24px"},children:"Run Query"})]}),(!r||d)&&C&&m.jsx(Nt,{sx:{padding:"20px",textAlign:"center"},children:m.jsx(xt,{children:"Loading results..."})}),(!r||d)&&b&&E?.data?.result&&m.jsx($b,{result:E.data.result,maxHeight:600,maxResultSize:o,renderLogs:E.data.renderLogs})]}),m.jsx(aH,{open:s,onClose:()=>l(!1),result:E?.data?.result||"",renderLogs:E?.data?.renderLogs,title:`Query: ${e}`})]})}function iH(e,t=!0){const{modelPath:n,environmentName:r,packageName:o,versionId:a}=Co(e),{apiClients:i}=zr();return So({queryKey:["package",r,o,n,a],queryFn:async()=>(await i.models.getModel(r,o,n,a)).data,enabled:t})}function sH({data:e,onChange:t,existingQuery:n,initialSelectedSourceIndex:r=0,onSourceChange:o,resourceUri:a}){const[i,s]=$t.useState(r);$t.useEffect(()=>{s(r)},[r]);const{data:l,isError:d,isLoading:c,error:p}=iH(a,!e),{modelPath:g}=Co(a),y=e||l;if(c&&!e)return m.jsx(wa,{text:"Fetching Model..."});if(d&&!e)return console.log("error",p),m.jsx(ka,{error:p,context:`ModelExplorer > ${g}`});if(!y)return m.jsx(wa,{text:"Loading..."});const v=(y?.sourceInfos||[]).map((E,b)=>{try{return JSON.parse(E)?.name||`Source ${b+1}`}catch{return`Source ${b+1}`}}),S=v[i]||"";return m.jsxs(Rx,{variant:"outlined",children:[m.jsx(y$,{children:m.jsx(_r,{sx:{flexDirection:"row"},children:m.jsx(fIe,{size:"small",id:"size-small-standard",disablePortal:!0,options:v,value:S,onChange:(E,b)=>{if(!b)return;const C=v.indexOf(b);C>=0&&(s(C),o?.(C))},renderInput:E=>m.jsx(Lr,{...E}),style:{width:350,marginTop:"3px",marginLeft:"6px",marginBottom:"8px"}})})}),m.jsx(aD,{children:m.jsxs(_r,{spacing:2,component:"section",children:[Array.isArray(y.sourceInfos)&&y.sourceInfos.length>0&&m.jsx(t9,{sourceAndPaths:y.sourceInfos.map(E=>({sourceInfo:JSON.parse(E),modelPath:g})),selectedSourceIndex:i,existingQuery:n,onQueryChange:t,resourceUri:a}),m.jsx(Nt,{height:"5px"})]})})]})}function lH({open:e,onClose:t,resourceUri:n,data:r,title:o="Data Sources",hasValidImport:a=!0,existingQuery:i,initialSelectedSourceIndex:s,onChange:l,onSourceChange:d}){return m.jsxs(ts,{open:e,onClose:t,fullScreen:!0,children:[m.jsxs(rs,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[o,m.jsx(Ar,{onClick:t,sx:{color:"text.secondary"},children:m.jsx(yl,{})})]}),m.jsx(ns,{children:a?m.jsx(sH,{resourceUri:n,data:r,existingQuery:i,initialSelectedSourceIndex:s,onChange:l,onSourceChange:d}):m.jsx("div",{children:"No valid import statement found in cell"})})]})}function Q3e({onChange:e,resourceUri:t,runOnDemand:n=!1,maxResultSize:r=0}){const{modelPath:o}=Co(t),{data:a,isError:i,isLoading:s,error:l}=iH(t),[d,c]=$t.useState(!1),[p,g]=$t.useState(),[y,v]=$t.useState(0),[S,E]=w.useState(""),b=a?.modelDef,C=$t.useMemo(()=>{if(!b)return!1;try{const A=JSON.parse(b);return Array.isArray(A.imports)&&A.imports.length>0}catch{return!1}},[b]);if(s)return m.jsx(wa,{text:"Fetching Model..."});if(i)return console.log("error",l),m.jsx(ka,{error:l,context:`Model > ${o}`});const T=A=>{g(A),e&&e(A)},O=A=>{v(A)},R=()=>{const A=window.location.href;navigator.clipboard.writeText(A).then(()=>E("URL copied to clipboard!")).catch(()=>E("Failed to copy URL"))};return m.jsxs(m.Fragment,{children:[m.jsxs(Nt,{sx:{position:"relative",maxWidth:"1200px",margin:"0 auto",paddingTop:"24px"},children:[Array.isArray(a?.sourceInfos)&&a.sourceInfos.length>0&&m.jsxs(_r,{spacing:2,component:"section",children:[m.jsxs(Nt,{sx:{padding:"0 0 16px 0",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[m.jsx(xt,{variant:"h1",sx:{fontSize:"28px",fontWeight:"600",color:"#1a1a1a",marginBottom:"8px",marginTop:"0",paddingLeft:"0"},children:"Sources"}),m.jsx(Do,{title:"Click to copy link",children:m.jsx(ND,{sx:{fontSize:"24px",color:"text.secondary",cursor:"pointer"},onClick:R})})]}),m.jsx(sH,{data:a,onChange:T,onSourceChange:O,existingQuery:p,initialSelectedSourceIndex:y,resourceUri:t}),m.jsx(Ar,{sx:{position:"absolute",top:"90px",right:"4px",backgroundColor:"rgba(255, 255, 255, 0.9)","&:hover":{backgroundColor:"rgba(255, 255, 255, 1)"},width:"32px",height:"32px",zIndex:2},onClick:()=>c(!0),children:m.jsx(rS,{sx:{fontSize:"18px",color:"text.secondary",marginBottom:"5px"}})})]}),a?.queries?.length>0&&m.jsxs(_r,{spacing:2,component:"section",sx:{marginTop:"24px"},children:[m.jsx(Nt,{sx:{padding:"0 0 16px 0"},children:m.jsx(xt,{variant:"h2",sx:{fontSize:"24px",fontWeight:"600",color:"#1a1a1a",marginBottom:"0",marginTop:"8px",paddingLeft:"0"},children:"Named Queries"})}),a.queries.map(A=>m.jsx(MIe,{queryName:A.name,annotations:A.annotations,resourceUri:t,runOnDemand:n,maxResultSize:r},A.name))]}),(!Array.isArray(a?.sourceInfos)||a.sourceInfos.length===0)&&!(a?.queries&&a.queries.length>0)&&m.jsxs(Nt,{sx:{textAlign:"center",py:6},children:[m.jsx(xt,{variant:"body1",sx:{color:"text.secondary",marginBottom:"8px"},children:"This model exposes no sources or queries."}),C&&m.jsxs(xt,{variant:"body2",color:"text.secondary",children:["It imports other files but re-exports nothing. Add"," ",m.jsxs("code",{children:["export ","{ source_name }"]})," to surface imported sources here."]})]}),m.jsx(lH,{open:d,onClose:()=>c(!1),resourceUri:t,data:a,title:`Model: ${o.split("/").pop()}`,existingQuery:p,initialSelectedSourceIndex:y,onChange:T,onSourceChange:O})]}),m.jsx(xl,{open:S!=="",autoHideDuration:6e3,onClose:()=>E(""),message:S})]})}function PIe({ready:e,lastRunKey:t,pendingKey:n,runKey:r,documentKey:o}){if(!e)return{cancelPending:n!==void 0,dispatch:"none"};const a=n!==void 0&&n!==r;if(t===r)return{cancelPending:a,dispatch:"none"};if(n===r)return{cancelPending:a,dispatch:"none"};const i=t===null||!t.startsWith(`${o}|`);return{cancelPending:a,dispatch:i?"now":"settle"}}function NIe(e){return w.useMemo(()=>{if(!e?.sources?.length)return[];const t=new Map;for(const n of e.sources)if(n.givens?.length)for(const r of n.givens)r.name&&!t.has(r.name)&&t.set(r.name,r);return Array.from(t.values())},[e])}const IIe=lr(m.jsx("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z"}));function LIe(e){const{environmentName:t,packageName:n}=Co(e.resourceUri);if(!t||!n)throw new Error("Environment and Package name must be provided for query embedding.");return JSON.stringify({...e})}const _Ie=700;function FIe({href:e,title:t,children:n,envName:r,pkgName:o,sourceDir:a,onNavigate:i}){const s=!!e&&/^[a-z][a-z0-9+.-]*:/i.test(e);if(!(e&&!s&&!e.startsWith("/")&&!e.startsWith("#"))||!e){const p=s&&!/^(https?|mailto|tel):/i.test(e??"");return m.jsx("a",{href:p?void 0:e,title:t,...s?{target:"_blank",rel:"noopener noreferrer"}:{},children:n})}const l=new URL(e,`https://malloy.invalid/${a}`),d=l.pathname.slice(1)+l.search+l.hash,c=`/${r}/${o}/${d}`;return m.jsx("a",{href:c,title:t,onClick:i?p=>{p.preventDefault(),i(c,p)}:void 0,children:n})}function jIe({cell:e,hideCodeCellIcon:t,hideEmbeddingIcon:n,resourceUri:r,index:o,maxResultSize:a,isExecuting:i,pendingRerun:s,onNavigate:l,onDrillSelf:d,canDrillSelf:c,onDrillNavigate:p}){const[g,y]=$t.useState(!1),[v,S]=$t.useState(!1),[E,b]=$t.useState(!1),[C,T]=$t.useState(),[O,R]=$t.useState(),[A,I]=$t.useState(!1),[F,_]=w.useState(""),{environmentName:z,packageName:$,modelPath:k}=Co(r),{drill:H,drillMenu:L}=g9({onNavigate:p,onSelf:d,canSelf:c,selfLabel:"Filter this notebook"}),V=k&&k.includes("/")?k.slice(0,k.lastIndexOf("/")+1):"",j={overrides:{a:{component:FIe,props:{envName:z,pkgName:$,sourceDir:V,onNavigate:l}}}},Z=/import\s*\{([^}]+)\}\s*from\s*['"`][^'"`]+['"`]/,J=/import\s*(?:\{[^}]*\}\s*from\s*)?['"`]([^'"`]+)['"`]/,oe=ne=>ne.split(`
|
|
515
515
|
`).filter(ie=>!ie.trimStart().startsWith("##")).join(`
|
|
516
516
|
`),B=!!e.text&&(Z.test(e.text)||J.test(e.text)),te=()=>{if(!e.newSources||e.newSources.length===0)return 0;let ne=[],ie="";if(e.text){const ue=e.text.match(Z);ue&&(ne=ue[1].split(",").map(we=>we.trim()));const ve=e.text.match(J);ve&&(ie=ve[1].trim())}for(let ue=0;ue<e.newSources.length;ue++)try{const ve=JSON.parse(e.newSources[ue]);if(ne.length>0&&ne.includes(ve.name)||ie&&ie===ve.path)return ue}catch{continue}return 0},re=e.newSources&&e.newSources.length>0?{sourceInfos:e.newSources,resource:r}:void 0,G=LIe({query:e.text,resourceUri:r}),{mode:le}=kb();w.useEffect(()=>{e.type==="code"&&Kx(oe(e.text),"malloy",le).then(ne=>{T(ne)})},[e,le]),w.useEffect(()=>{Kx(G,"typescript",le).then(ne=>{R(ne)})},[G,le]);const se=()=>{const ne=window.location.href;navigator.clipboard.writeText(ne).then(()=>_("URL copied to clipboard!")).catch(()=>_("Failed to copy URL"))};return e.type==="markdown"&&m.jsx(Bk,{children:m.jsxs(Nt,{sx:ne=>({"& h1, & h2, & h3, & h4, & h5, & h6":{fontWeight:"600",color:ne.palette.text.primary,marginBottom:"8px",marginTop:"16px"},"& h1":{fontSize:"28px"},"& h2":{fontSize:"24px"},"& h3":{fontSize:"20px"},"& p":{color:ne.palette.text.primary,lineHeight:"1.7",marginBottom:"8px",fontSize:"16px"},"& ul, & ol":{color:ne.palette.text.primary,lineHeight:"1.7",marginBottom:"8px",fontSize:"16px"},"& li":{marginBottom:"4px"}}),children:[o===0?m.jsxs(_r,{direction:"row",alignItems:"flex-start",justifyContent:"space-between",children:[m.jsx(Mx,{options:j,children:e.text}),m.jsx(Do,{title:"Click to copy link",children:m.jsx(ND,{sx:{fontSize:"24px",color:"text.secondary",cursor:"pointer",marginTop:"26px"},onClick:se})})]}):m.jsx(Mx,{options:j,children:e.text}),m.jsx(xl,{open:F!=="",autoHideDuration:6e3,onClose:()=>_(""),message:F})]})})||e.type==="code"&&m.jsxs(Bk,{children:[(!t||!n&&e.result||e.newSources&&e.newSources.length>0)&&m.jsx(_r,{sx:{flexDirection:"column",gap:"8px",marginBottom:"2px"},children:e.newSources&&e.newSources.length>0&&m.jsx(zy,{sx:{position:"relative",padding:"0"},children:m.jsxs(Nt,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",paddingLeft:"24px",paddingRight:"8px"},children:[C&&m.jsx("span",{dangerouslySetInnerHTML:{__html:C},style:{fontFamily:"monospace",fontSize:"14px",flex:1,marginRight:"8px"}}),B&&m.jsx(Ar,{sx:{backgroundColor:"rgba(255, 255, 255, 0.9)","&:hover":{backgroundColor:"rgba(255, 255, 255, 1)"},width:"32px",height:"32px",flexShrink:0},onClick:()=>I(!0),children:m.jsx(rS,{sx:{fontSize:"18px",color:"grey.700"}})})]})})}),m.jsx(lH,{open:A,onClose:()=>I(!1),title:"Data Sources",hasValidImport:B,resourceUri:r,data:re,initialSelectedSourceIndex:te()}),m.jsxs(ts,{open:g,onClose:()=>y(!1),maxWidth:"lg",fullWidth:!0,children:[m.jsxs(rs,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:["Malloy Code",m.jsx(Ar,{onClick:()=>y(!1),sx:{color:"text.secondary"},children:m.jsx(yl,{})})]}),m.jsx(ns,{children:m.jsx(Nt,{sx:ne=>({border:`1px solid ${ne.palette.divider}`,borderRadius:"8px",padding:"16px",fontFamily:"monospace",fontSize:"14px",lineHeight:"1.5",overflow:"auto",maxHeight:"70vh",backgroundColor:ne.palette.background.paper,color:ne.palette.text.primary}),children:m.jsx("pre",{className:"code-display",style:{margin:0},dangerouslySetInnerHTML:{__html:C}})})})]}),m.jsxs(ts,{open:v,onClose:()=>S(!1),maxWidth:"lg",fullWidth:!0,children:[m.jsxs(rs,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:["Embeddable Code",m.jsx(Ar,{onClick:()=>S(!1),sx:{color:"text.secondary"},children:m.jsx(yl,{})})]}),m.jsx(ns,{children:m.jsxs(_r,{sx:{flexDirection:"row",justifyContent:"space-between",alignItems:"flex-start"},children:[m.jsx(xt,{component:"div",sx:{fontSize:"12px",fontFamily:"monospace","& .line":{textWrap:"wrap"},flex:1},dangerouslySetInnerHTML:{__html:O}}),m.jsx(Do,{title:"Copy Embeddable Code",children:m.jsx(Ar,{sx:{width:"24px",height:"24px",marginLeft:"8px",color:"text.secondary"},onClick:()=>{navigator.clipboard.writeText(G)},children:m.jsx(IIe,{})})})]})})]}),m.jsx(aH,{open:E,onClose:()=>b(!1),result:e.result||"",title:"Results",drill:H}),i&&!e.result&&!e.error&&!B&&!(e.newSources&&e.newSources.length>0)&&m.jsx(zy,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:200},children:m.jsx(mb,{size:32})}),!e.result&&e.error&&m.jsxs(zy,{sx:{p:2},children:[m.jsx(xt,{variant:"body2",sx:{color:"error.main"},children:"This cell could not be run."}),m.jsx(xt,{variant:"body2",component:"pre",sx:{color:"text.secondary",whiteSpace:"pre-wrap",m:0,mt:1},children:e.error})]}),e.result&&s&&m.jsx(Ste,{"aria-label":"a re-run is pending",sx:{mb:1,height:2,borderRadius:1}}),e.result&&m.jsxs(zy,{sx:{position:"relative"},children:[m.jsx(Nt,{sx:{paddingTop:"24px"},children:m.jsx($b,{result:e.result,maxHeight:_Ie,maxResultSize:a,drill:H})}),L,m.jsxs(_r,{sx:{position:"absolute",top:"-12px",right:"8px",flexDirection:"row",gap:"8px",alignItems:"center",zIndex:2},children:[!t&&m.jsx(Ar,{sx:{backgroundColor:"rgba(255, 255, 255, 0.9)","&:hover":{backgroundColor:"rgba(255, 255, 255, 1)"},width:"32px",height:"32px"},onClick:ne=>{ne.stopPropagation(),y(!0)},children:m.jsx(MB,{sx:{fontSize:"18px",color:"grey.700"}})}),m.jsx(Ar,{sx:{backgroundColor:"rgba(255, 255, 255, 0.9)","&:hover":{backgroundColor:"rgba(255, 255, 255, 1)"},width:"32px",height:"32px"},onClick:()=>b(!0),children:m.jsx(rS,{sx:{fontSize:"18px",color:"grey.700"}})})]})]})]})}const $Ie=4,BIe=400;function zIe(e){const t=e?.response?.data?.message;return typeof t=="string"&&t!==""?t:e instanceof Error&&e.message!==""?e.message:"The server did not say why."}function HIe({resourceUri:e,maxResultSize:t=0,givens:n,onGivensChange:r,onNavigate:o,onDrillNavigate:a}){const{apiClients:i}=zr(),{environmentName:s,packageName:l,versionId:d,modelPath:c}=Co(e),{data:p,isSuccess:g,isError:y,error:v}=So({queryKey:[e],queryFn:async()=>(await i.notebooks.getNotebook(s,l,c,d)).data}),[S,E]=w.useState([]),[b,C]=w.useState(!1),[T,O]=w.useState(!1),R=w.useRef(void 0),[A,I]=w.useState(null),F=NIe(p),_=w.useMemo(()=>new Map(F.filter(ge=>ge.name!==void 0).map(ge=>[ge.name,ge.type])),[F]),z=w.useCallback(ge=>{g&&r?.(ge,Array.from(_.keys()))},[g,r,_]),$=p?.autorun!==!1,{draft:k,applied:H,setGiven:L,reset:V,apply:j,pending:Z}=c9({declaredTypes:_,startingValues:p?.startingGivens,params:n,onParamsChange:g?z:void 0,documentKey:e,autorun:$}),{options:J,isLoading:oe,failed:B}=d9(s,l,c,F),te=w.useMemo(()=>{const ge=new Map;for(const Ke of _.keys())ge.has(Ke.toLowerCase())||ge.set(Ke.toLowerCase(),Ke);return ge},[_]),re=w.useCallback(ge=>_.has(ge)?ge:te.get(ge.toLowerCase()),[_,te]),G=w.useCallback(ge=>re(ge)!==void 0,[re]),le=w.useCallback((ge,Ke)=>{const ze=re(ge);if(ze===void 0){console.warn(`# drill { to=self } tried to set '${ge}', which '${c}' does not declare as a given. Name the given with 'given=' on the drill tag.`);return}const Ie=_.get(ze),de=m9(Ke,Ie);if(de===void 0){console.warn(`Drill declined: ${JSON.stringify(Ke)} cannot be a value for given "${ze}"`+(Ie?` of type ${Ie}`:""));return}L(ze,de)},[_,c,re,L]),se=w.useCallback(ge=>{const Ke=l9(ge,_);return Object.keys(Ke).length>0?JSON.stringify(Ke):void 0},[_]),ne=w.useRef(0),ie=w.useRef(null),ue=w.useRef(null),ve=w.useRef(void 0);w.useEffect(()=>()=>{ie.current?.abort(),ue.current=null,clearTimeout(ve.current?.timer),ve.current=void 0},[]);const we=w.useCallback(async(ge=new Map)=>{if(!g||!p?.notebookCells)return;const Ke=++ne.current;ie.current?.abort();const ze=new AbortController;ie.current=ze,E(p.notebookCells.map(de=>({...de}))),C(!0),I(null);const Ie=se(ge);try{const de=[];for(let Ue=0;Ue<p.notebookCells.length;Ue++){const ut=p.notebookCells[Ue];if(ut.type==="markdown")continue;const it=Ue,Zt=async()=>{try{const Qt=await i.notebooks.executeNotebookCell(s,l,c,it,d,void 0,void 0,Ie,{signal:ze.signal});if(ne.current!==Ke)return;const tt=Qt.data,xe=tt.result,Pe=ut.newSources||tt.newSources;E(Re=>{const me=[...Re];return me[it]||(me[it]={...ut}),me[it]={...me[it],result:xe,newSources:Pe},me})}catch(Qt){if(ze.signal.aborted||ne.current!==Ke)return;console.error(`Error executing cell ${it}:`,Qt);const tt=zIe(Qt);E(xe=>{const Pe=[...xe];return Pe[it]||(Pe[it]={...ut}),Pe[it]={...Pe[it],error:tt},Pe})}};de.push(Zt)}const gt=[];for(const Ue of de){const ut=Ue().then(()=>{gt.splice(gt.indexOf(ut),1)});gt.push(ut),gt.length>=$Ie&&await Promise.race(gt)}await Promise.all(gt)}catch(de){if(ze.signal.aborted||ne.current!==Ke)return;console.error("Error executing notebook cells:",de),I(de)}finally{ne.current===Ke&&(C(!1),ie.current=null)}},[g,p,se,s,l,c,d,i.notebooks]),Se=w.useRef(0),Fe=w.useRef(void 0);Fe.current!==p&&(Fe.current=p,Se.current+=1);const he=Se.current;return w.useEffect(()=>{const ge=`${e}|${he}`,Ke=`${ge}|${se(H)??""}`;R.current!==void 0&&R.current!==ge&&(ie.current?.abort(),ie.current=null),R.current=ge;const ze=PIe({ready:g&&!!p?.notebookCells,lastRunKey:ue.current,pendingKey:ve.current?.key,runKey:Ke,documentKey:ge});if(ze.cancelPending&&(clearTimeout(ve.current?.timer),ve.current=void 0,O(!1)),ze.dispatch==="none")return;const Ie=()=>{ve.current=void 0,O(!1),ue.current=Ke,we(H)};if(ze.dispatch==="now"){Ie();return}O(!0),ve.current={key:Ke,timer:setTimeout(Ie,BIe)}},[g,p,he,e,H,se,we]),m.jsx(wie,{children:m.jsx(kie,{children:m.jsxs(_r,{spacing:3,component:"section",children:[m.jsx(jz,{givens:F,values:k,onChange:L,onReset:V,options:J,optionsLoading:oe,optionsFailed:B,apply:$?void 0:{onApply:j,pending:Z}}),!g&&!y&&m.jsx(wa,{text:"Fetching Notebook..."}),g&&(S.length>0?S:p?.notebookCells||[]).map((ge,Ke)=>m.jsx(jIe,{cell:ge,index:Ke,resourceUri:e,maxResultSize:t,isExecuting:b,pendingRerun:T,onNavigate:o,onDrillNavigate:a,onDrillSelf:F.length>0?le:void 0,canDrillSelf:G},Ke)),y&&v.status===404&&m.jsxs(xt,{variant:"body2",sx:{color:"text.secondary"},children:[m.jsx("code",{children:`${s} > ${l} > ${c}`})," ","not found."]}),y&&v.status!==404&&m.jsx(ka,{error:v,context:`${s} > ${l} > ${c}`}),A&&m.jsx(ka,{error:{message:A.message,status:500,name:"ExecutionError"},context:"Notebook Execution"})]})})})}const UIe={dashboard:Ls.orange,report:Ls.teal,model:Ls.darkBlue,dataApp:$T.violet,data:$T.moss,materialization:$T.magenta};function VIe({type:e,size:t=18,sx:n,...r}){return m.jsx($x,{...r,viewBox:"0 0 24 24",sx:{width:t,height:t,fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",...n},children:WIe[e]()})}const WIe={report:qIe,model:GIe,data:YIe,materialization:KIe,dataApp:XIe,dashboard:QIe};function qIe(){return m.jsxs(m.Fragment,{children:[m.jsx("path",{d:"M14 3 H6 a2 2 0 0 0 -2 2 v14 a2 2 0 0 0 2 2 h12 a2 2 0 0 0 2 -2 V9 z"}),m.jsx("path",{d:"M14 3 v4 a2 2 0 0 0 2 2 h4"}),m.jsx("path",{d:"M8 17 v-3"}),m.jsx("path",{d:"M12 17 v-6"}),m.jsx("path",{d:"M16 17 v-4"})]})}function GIe(){return m.jsxs(m.Fragment,{children:[m.jsx("path",{d:"M12 3 L4 7 v10 l8 4 l8 -4 V7 z"}),m.jsx("path",{d:"M4 7 l8 4 l8 -4"}),m.jsx("path",{d:"M12 11 v10"})]})}function YIe(){return m.jsxs(m.Fragment,{children:[m.jsx("rect",{x:"3.5",y:"3.5",width:"17",height:"17",rx:"2"}),m.jsx("path",{d:"M3.5 9.5 H20.5"}),m.jsx("path",{d:"M9.5 3.5 V20.5"})]})}function KIe(){return m.jsxs(m.Fragment,{children:[m.jsx("path",{d:"M12 3 L21 7.5 L12 12 L3 7.5 Z"}),m.jsx("path",{d:"M3 12 L12 16.5 L21 12"}),m.jsx("path",{d:"M3 16.5 L12 21 L21 16.5"})]})}function QIe(){return m.jsxs(m.Fragment,{children:[m.jsx("rect",{x:"3.5",y:"3.5",width:"17",height:"17",rx:"2"}),m.jsx("path",{d:"M3.5 9.5 H20.5"}),m.jsx("path",{d:"M12 9.5 V20.5"}),m.jsx("path",{d:"M12 15 H20.5"})]})}function XIe(){return m.jsxs(m.Fragment,{children:[m.jsx("rect",{x:"3.5",y:"4.5",width:"17",height:"15",rx:"2"}),m.jsx("path",{d:"M3.5 9.5 H20.5"}),m.jsx("path",{d:"M7 13.5 H17"}),m.jsx("path",{d:"M7 16.5 H13"})]})}const w6="README.malloynb";function X3e({onClickPackageFile:e,resourceUri:t}){const{apiClients:n,server:r}=zr(),o=e??($=>{window.location.href=$}),{environmentName:a,packageName:i,versionId:s}=Co(t),[l,d]=w.useState(null),c=So({queryKey:["package",a,i,s],queryFn:()=>n.packages.getPackage(a,i,s,!1)}),p=So({queryKey:["notebooks",a,i,s],queryFn:()=>n.notebooks.listNotebooks(a,i,s)}),g=So({queryKey:["models",a,i,s],queryFn:()=>n.models.listModels(a,i,s)}),y=So({queryKey:["databases",a,i,s],queryFn:()=>n.databases.listDatabases(a,i,s)}),v=So({queryKey:["data-apps",a,i],queryFn:async()=>{try{return await n.dataApps.listDataApps(a,i)}catch($){const k=$?.response?.status;if(k===404||k===void 0)return{data:[]};throw $}}}).data?.data??[],S=So({queryKey:["dashboards",a,i],queryFn:async()=>{try{return await n.dashboards.listDashboards(a,i)}catch($){const k=$?.response?.status;if(k===404||k===void 0)return{data:[]};throw $}}}),E=$=>$.title&&$.title!==$.name?$.title:$.name??"",b=$=>$.title&&$.title!==$.path?$.title:$.path??"",C=(S.data?.data??[]).slice().sort(($,k)=>E($).localeCompare(E(k))),T=(p.data?.data??[]).slice().sort(($,k)=>b($).localeCompare(b(k))),O=new Set(C.map($=>$.path).filter($=>$!==void 0)),R=(g.data?.data??[]).slice().filter($=>!O.has($.path)).sort(($,k)=>$.path.localeCompare(k.path)),A=(y.data?.data??[]).slice().sort(($,k)=>$.path.localeCompare(k.path)),I=c.data?.data?.description??"",F=T.some($=>$.path===w6),_=fO({environmentName:a,packageName:i,versionId:s,modelPath:w6}),z=!p.isSuccess&&!p.isError||!S.isSuccess&&!S.isError;return c.isError?m.jsx(ka,{error:c.error,context:`${a} > ${i}`}):m.jsxs(IS,{maxWidth:!1,sx:{maxWidth:1024,mx:"auto",px:3,py:6},children:[m.jsxs(Nt,{sx:{mb:4},children:[m.jsxs(VA,{onClick:$=>o(`/${a}/`,$),underline:"none",sx:{display:"inline-flex",alignItems:"center",gap:.5,cursor:"pointer",color:"text.secondary",fontSize:"0.875rem",mb:2,"&:hover":{color:"primary.main"}},children:[m.jsx(Bz,{sx:{fontSize:18}}),"Back to ",a]}),m.jsx(xt,{variant:"h4",component:"h1",sx:{fontWeight:600,letterSpacing:"-0.025em",mb:.5},children:i}),I&&m.jsx(xt,{variant:"body2",color:"text.secondary",children:I})]}),z&&m.jsx(wa,{text:"Loading package..."}),!z&&m.jsxs(m.Fragment,{children:[C.length>0&&m.jsx(Sh,{title:"Dashboards",count:C.length,children:C.map($=>{const k=!!$.title&&$.title!==$.name;return m.jsx(Eh,{type:"dashboard",label:k?$.title:$.name,rightLabel:k?$.name:void 0,onClick:H=>o(`/${a}/${i}/dashboards/`+encodeURIComponent($.name??""),H)},$.name)})}),m.jsxs(Sh,{title:"Notebooks",count:T.length,children:[T.map($=>{const k=!!$.title&&$.title!==$.path;return m.jsx(Eh,{type:"report",label:k?$.title:$.path,rightLabel:k?$.path:void 0,onClick:H=>o(`/${a}/${i}/${$.path}`,H)},$.path)}),T.length===0&&m.jsx(qw,{label:"No notebooks"})]}),v.length>0&&m.jsx(Sh,{title:"Data Apps",count:v.length,children:v.map($=>{const k=!!$.title&&$.title!==$.path,H=`${HO(r)}${$.resource}`;return m.jsx(Eh,{type:"dataApp",label:k?$.title:$.path,rightLabel:k?$.path:void 0,onClick:L=>{e?e(`/${a}/${i}/data-apps/${$.path}`,L):L&&(L.metaKey||L.ctrlKey)?window.open(H,"_blank"):window.location.href=H},trailingAction:m.jsx(Do,{title:"Open standalone in new tab",children:m.jsx(Ar,{size:"small",href:H,target:"_blank",rel:"noopener noreferrer","aria-label":"Open standalone in new tab",onClick:L=>L.stopPropagation(),sx:{color:"text.secondary"},children:m.jsx($z,{fontSize:"small"})})})},$.path)})}),m.jsxs(Sh,{title:"Semantic Models",count:R.length,children:[R.map($=>m.jsx(Eh,{type:"model",label:$.path,onClick:k=>o(`/${a}/${i}/${$.path}`,k)},$.path)),R.length===0&&m.jsx(qw,{label:"No models"})]}),m.jsxs(Sh,{title:"Package Data",count:A.length,children:[A.map($=>m.jsx(Eh,{type:"data",label:$.path,rightLabel:$.info?ZIe($.info.rowCount):"Unreadable",onClick:()=>d($)},$.path)),A.length===0&&m.jsx(qw,{label:"No data files"})]}),m.jsx(Sh,{title:"Materializations",children:m.jsx(Eh,{type:"materialization",label:"Materializations",onClick:$=>o(`/${a}/${i}/materializations`,$)})}),F&&m.jsx(Nt,{sx:{mt:6},children:m.jsx(HIe,{resourceUri:_,onNavigate:o})})]}),m.jsxs(ts,{open:l!==null,onClose:()=>d(null),maxWidth:"sm",fullWidth:!0,children:[m.jsxs(rs,{sx:{pr:6},children:[l?.path,m.jsx(Ar,{"aria-label":"close",onClick:()=>d(null),sx:{position:"absolute",right:8,top:8},children:m.jsx(yl,{fontSize:"small"})})]}),m.jsxs(ns,{children:[l?.error&&m.jsx(xt,{variant:"body2",color:"error",children:l.error}),l?.info?.columns&&m.jsxs(bb,{size:"small",children:[m.jsx(Sb,{children:m.jsxs(dc,{children:[m.jsx(rr,{children:"Column"}),m.jsx(rr,{children:"Type"})]})}),m.jsx(xb,{children:l.info.columns.map($=>m.jsxs(dc,{children:[m.jsx(rr,{component:"th",scope:"row",children:$.name}),m.jsx(rr,{children:$.type})]},$.name))})]})]})]})]})}function Sh({title:e,count:t,children:n}){return m.jsxs(Nt,{sx:{mb:4},children:[m.jsxs(_r,{direction:"row",alignItems:"baseline",spacing:1,sx:{mb:1},children:[m.jsx(xt,{variant:"h6",sx:{fontWeight:600,letterSpacing:"-0.025em"},children:e}),t!==void 0&&m.jsxs(xt,{variant:"caption",color:"text.secondary",children:["(",t,")"]})]}),m.jsx(Nt,{children:n})]})}function Eh({type:e,label:t,rightLabel:n,onClick:r,trailingAction:o}){const a=!!r;return m.jsxs(Nt,{onClick:r,onKeyDown:a?i=>{r&&(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),r(i))}:void 0,role:a?"button":void 0,tabIndex:a?0:void 0,sx:i=>({display:"flex",alignItems:"center",gap:1.5,py:1,px:1,mx:-1,cursor:a?"pointer":"default",borderRadius:1.5,transition:"background-color 0.1s","&:hover":a?{backgroundColor:i.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"grey.100"}:void 0,"&:focus-visible":a?{outline:"2px solid",outlineColor:"primary.main",outlineOffset:2}:void 0}),children:[m.jsx(Nt,{sx:{width:32,height:32,borderRadius:1,bgcolor:UIe[e],color:"#FFFFFF",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:m.jsx(VIe,{type:e})}),m.jsx(xt,{variant:"body2",sx:{fontFamily:Yi,flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:t}),n&&m.jsx(xt,{variant:"caption",color:"text.secondary",sx:{flexShrink:0},children:n}),o&&m.jsx(Nt,{sx:{flexShrink:0,display:"flex",alignItems:"center"},children:o})]})}function qw({label:e}){return m.jsx(xt,{variant:"body2",color:"text.secondary",sx:{py:1,fontStyle:"italic"},children:e})}function ZIe(e){return e>=1e9?`${(e/1e9).toFixed(1)} B rows`:e>=1e6?`${(e/1e6).toFixed(1)} M rows`:e>=1e3?`${(e/1e3).toFixed(1)} K rows`:`${e} rows`}function JIe(e){return yn("MuiCollapse",e)}un("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]);const e5e=e=>{const{orientation:t,classes:n}=e,r={root:["root",`${t}`],entered:["entered"],hidden:["hidden"],wrapper:["wrapper",`${t}`],wrapperInner:["wrapperInner",`${t}`]};return hn(r,JIe,n)},t5e=Ye("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.orientation],n.state==="entered"&&t.entered,n.state==="exited"&&!n.in&&n.collapsedSize==="0px"&&t.hidden]}})(ar(({theme:e})=>({height:0,overflow:"hidden",transition:e.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:e.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:({ownerState:t})=>t.state==="exited"&&!t.in&&t.collapsedSize==="0px",style:{visibility:"hidden"}}]}))),n5e=Ye("div",{name:"MuiCollapse",slot:"Wrapper"})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),r5e=Ye("div",{name:"MuiCollapse",slot:"WrapperInner"})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),ib=w.forwardRef(function(e,t){const n=er({props:e,name:"MuiCollapse"}),{addEndListener:r,children:o,className:a,collapsedSize:i="0px",component:s,easing:l,in:d,onEnter:c,onEntered:p,onEntering:g,onExit:y,onExited:v,onExiting:S,orientation:E="vertical",style:b,timeout:C=EB.standard,TransitionComponent:T=Ks,...O}=n,R={...n,orientation:E,collapsedSize:i},A=e5e(R),I=Ad(),F=TE(),_=w.useRef(null),z=w.useRef(),$=typeof i=="number"?`${i}px`:i,k=E==="horizontal",H=k?"width":"height",L=w.useRef(null),V=Or(t,L),j=le=>se=>{if(le){const ne=L.current;se===void 0?le(ne):le(ne,se)}},Z=()=>_.current?_.current[k?"clientWidth":"clientHeight"]:0,J=j((le,se)=>{_.current&&k&&(_.current.style.position="absolute"),le.style[H]=$,c&&c(le,se)}),oe=j((le,se)=>{const ne=Z();_.current&&k&&(_.current.style.position="");const{duration:ie,easing:ue}=um({style:b,timeout:C,easing:l},{mode:"enter"});if(C==="auto"){const ve=I.transitions.getAutoHeightDuration(ne);le.style.transitionDuration=`${ve}ms`,z.current=ve}else le.style.transitionDuration=typeof ie=="string"?ie:`${ie}ms`;le.style[H]=`${ne}px`,le.style.transitionTimingFunction=ue,g&&g(le,se)}),B=j((le,se)=>{le.style[H]="auto",p&&p(le,se)}),te=j(le=>{le.style[H]=`${Z()}px`,y&&y(le)}),re=j(v),G=j(le=>{const se=Z(),{duration:ne,easing:ie}=um({style:b,timeout:C,easing:l},{mode:"exit"});if(C==="auto"){const ue=I.transitions.getAutoHeightDuration(se);le.style.transitionDuration=`${ue}ms`,z.current=ue}else le.style.transitionDuration=typeof ne=="string"?ne:`${ne}ms`;le.style[H]=$,le.style.transitionTimingFunction=ie,S&&S(le)});return m.jsx(T,{in:d,onEnter:J,onEntered:B,onEntering:oe,onExit:te,onExited:re,onExiting:G,addEndListener:le=>{C==="auto"&&F.start(z.current||0,le),r&&r(L.current,le)},nodeRef:L,timeout:C==="auto"?null:C,...O,children:(le,{ownerState:se,...ne})=>m.jsx(t5e,{as:s,className:Kt(A.root,a,{entered:A.entered,exited:!d&&$==="0px"&&A.hidden}[le]),style:{[k?"minWidth":"minHeight"]:$,...b},ref:V,ownerState:{...R,state:le},...ne,children:m.jsx(n5e,{ownerState:{...R,state:le},className:A.wrapper,ref:_,children:m.jsx(r5e,{ownerState:{...R,state:le},className:A.wrapperInner,children:o})})})})});ib&&(ib.muiSupportAuto=!0);const o5e=w.createContext(null),$m=()=>{const e=w.useContext(o5e);if(e==null)throw new Error(["MUI X: Could not find the Tree View context.","It looks like you rendered your component outside of a SimpleTreeView or RichTreeView parent component.","This can also happen if you are bundling multiple versions of the Tree View."].join(`
|
|
517
517
|
`));return e},a5e=({props:e})=>{const{instance:t}=$m(),{label:n,itemId:r}=e,[o,a]=w.useState(n),i=t.isItemBeingEdited(r);return w.useEffect(()=>{i||a(n)},[i,n]),{propsEnhancers:{labelInput:({externalEventHandlers:s,interactions:l})=>t.isItemEditable(r)?{value:o??"","data-element":"labelInput",onChange:d=>{s.onChange?.(d),a(d.target.value)},onKeyDown:d=>{if(s.onKeyDown?.(d),d.defaultMuiPrevented)return;const c=d.target;d.key==="Enter"&&c.value?l.handleSaveItemLabel(d,c.value):d.key==="Escape"&&l.handleCancelItemLabelEditing(d)},onBlur:d=>{s.onBlur?.(d),!d.defaultMuiPrevented&&d.target.value&&l.handleSaveItemLabel(d,d.target.value)},autoFocus:!0,type:"text"}:{}}}},sc=({instance:e,state:t,setState:n,params:r})=>{const o=w.useRef(t.editedItemId),a=p=>o.current===p,i=p=>{n(g=>Ce({},g,{editedItemId:p})),o.current=p},s=p=>p===t.editedItemId,l=!!r.isItemEditable,d=p=>{if(p==null||!l)return!1;const g=e.getItem(p);return g?typeof r.isItemEditable=="function"?r.isItemEditable(g):!!r.isItemEditable:!1},c=(p,g)=>{if(!g)throw new Error(["MUI X: The Tree View component requires all items to have a `label` property.","The label of an item cannot be empty.",p].join(`
|
|
518
|
-
`));n(y=>{const v=y.items.itemMetaMap[p];return v.label!==g?Ce({},y,{items:Ce({},y.items,{itemMetaMap:Ce({},y.items.itemMetaMap,{[p]:Ce({},v,{label:g})})})}):y}),r.onItemLabelChange&&r.onItemLabelChange(p,g)};return{instance:{setEditedItemId:i,isItemBeingEdited:s,updateItemLabel:c,isItemEditable:d,isTreeViewEditable:l,isItemBeingEditedRef:a},publicAPI:{updateItemLabel:c}}};sc.itemPlugin=a5e;sc.getDefaultizedParams=({params:e,experimentalFeatures:t})=>{const n=t?.labelEditing;return Ce({},e,{isItemEditable:n?e.isItemEditable??!1:!1})};sc.getInitialState=()=>({editedItemId:null});sc.params={onItemLabelChange:!0,isItemEditable:!0};const qh=(e,t)=>e.getAvailablePlugins().has(t),cH=e=>Array.isArray(e)?e.length>0&&e.some(cH):!!e,i5e=({itemId:e,children:t})=>{const{instance:n,selection:{multiSelect:r},publicAPI:o}=$m(),a={expandable:cH(t),expanded:n.isItemExpanded(e),focused:n.isItemFocused(e),selected:n.isItemSelected(e),disabled:n.isItemDisabled(e),editing:n?.isItemBeingEdited?n?.isItemBeingEdited(e):!1,editable:n.isItemEditable?n.isItemEditable(e):!1},i=c=>{if(a.disabled)return;a.focused||n.focusItem(c,e);const p=r&&(c.shiftKey||c.ctrlKey||c.metaKey);a.expandable&&!(p&&n.isItemExpanded(e))&&n.toggleItemExpansion(c,e)},s=c=>{a.disabled||(!a.focused&&!a.editing&&n.focusItem(c,e),r&&(c.shiftKey||c.ctrlKey||c.metaKey)?c.shiftKey?n.expandSelectionRange(c,e):n.selectItem({event:c,itemId:e,keepExistingSelection:!0}):n.selectItem({event:c,itemId:e,shouldBeSelected:!0}))},l=c=>{const p=c.nativeEvent.shiftKey;r&&p?n.expandSelectionRange(c,e):n.selectItem({event:c,itemId:e,keepExistingSelection:r,shouldBeSelected:c.target.checked})},d=()=>{qh(n,sc)&&n.isItemEditable(e)&&(n.isItemBeingEdited(e)?n.setEditedItemId(null):n.setEditedItemId(e))};return{interactions:{handleExpansion:i,handleSelection:s,handleCheckboxSelection:l,toggleItemEditing:d,handleSaveItemLabel:(c,p)=>{qh(n,sc)&&n.isItemBeingEditedRef(e)&&(n.updateItemLabel(e,p),d(),n.focusItem(c,e))},handleCancelItemLabelEditing:c=>{qh(n,sc)&&n.isItemBeingEditedRef(e)&&(d(),n.focusItem(c,e))}},status:a,publicAPI:o}},s5e=w.createContext(()=>-1),k6=(e,t)=>t!==e.closest('*[role="treeitem"]'),l5e=({id:e,treeId:t="",itemId:n})=>e??`${t}-${n}`,c5e=e=>{const{runItemPlugins:t,items:{onItemClick:n,disabledItemsFocusable:r,indentationAtItemLevel:o},selection:{disableSelection:a,checkboxSelection:i},expansion:{expansionTrigger:s},treeId:l,instance:d,publicAPI:c}=$m(),p=w.useContext(s5e),{id:g,itemId:y,label:v,children:S,rootRef:E}=e,{rootRef:b,contentRef:C,propsEnhancers:T}=t(e),{interactions:O,status:R}=i5e({itemId:y,children:S}),A=w.useRef(null),I=w.useRef(null),F=Or(E,b,A),_=Or(C,I),z=w.useRef(null),$=l5e({itemId:y,treeId:l,id:g}),k=d.canItemBeTabbed(y)?0:-1,H={rootRefObject:A,contentRefObject:I,interactions:O},L=re=>G=>{if(re.onFocus?.(G),G.defaultMuiPrevented)return;const le=!R.disabled||r;!R.focused&&le&&G.currentTarget===G.target&&d.focusItem(G,y)},V=re=>G=>{if(re.onBlur?.(G),G.defaultMuiPrevented)return;const le=d.getItemDOMElement(y);R.editing||G.relatedTarget&&k6(G.relatedTarget,le)&&(G.target&&G.target?.dataset?.element==="labelInput"&&k6(G.target,le)||G.relatedTarget?.dataset?.element==="labelInput")||d.removeFocusedItem()},j=re=>G=>{re.onKeyDown?.(G),!(G.defaultMuiPrevented||G.target?.dataset?.element==="labelInput")&&d.handleItemKeyDown(G,y)},Z=re=>G=>{re.onDoubleClick?.(G),!G.defaultMuiPrevented&&O.toggleItemEditing()},J=re=>G=>{re.onClick?.(G),n?.(G,y),!(G.defaultMuiPrevented||z.current?.contains(G.target))&&(s==="content"&&O.handleExpansion(G),i||O.handleSelection(G))},oe=re=>G=>{re.onMouseDown?.(G),!G.defaultMuiPrevented&&(G.shiftKey||G.ctrlKey||G.metaKey||R.disabled)&&G.preventDefault()},B=re=>G=>{re.onChange?.(G),!G.defaultMuiPrevented&&(a||R.disabled||O.handleCheckboxSelection(G))},te=re=>G=>{re.onClick?.(G),!G.defaultMuiPrevented&&s==="iconContainer"&&O.handleExpansion(G)};return{getRootProps:(re={})=>{const G=Ce({},zi(e),zi(re));let le;R.selected?le=!0:a||R.disabled?le=void 0:le=!1;const se=Ce({},G,{ref:F,role:"treeitem",tabIndex:k,id:$,"aria-expanded":R.expandable?R.expanded:void 0,"aria-selected":le,"aria-disabled":R.disabled||void 0},re,{onFocus:L(G),onBlur:V(G),onKeyDown:j(G)});o&&(se.style={"--TreeView-itemDepth":typeof p=="function"?p(y):p});const ne=T.root?.(Ce({},H,{externalEventHandlers:G}))??{};return Ce({},se,ne)},getContentProps:(re={})=>{const G=zi(re),le=Ce({},G,re,{ref:_,onClick:J(G),onMouseDown:oe(G),status:R});o&&(le.indentationAtItemLevel=!0);const se=T.content?.(Ce({},H,{externalEventHandlers:G}))??{};return Ce({},le,se)},getGroupTransitionProps:(re={})=>{const G=zi(re),le=Ce({},G,{unmountOnExit:!0,component:"ul",role:"group",in:R.expanded,children:S},re);return o&&(le.indentationAtItemLevel=!0),le},getIconContainerProps:(re={})=>{const G=zi(re);return Ce({},G,re,{onClick:te(G)})},getCheckboxProps:(re={})=>{const G=zi(re);return Ce({},G,{visible:i,ref:z,checked:R.selected,disabled:a||R.disabled,tabIndex:-1},re,{onChange:B(G)})},getLabelProps:(re={})=>{const G=Ce({},zi(re)),le=Ce({},G,{children:v},re,{onDoubleClick:Z(G)});return d.isTreeViewEditable&&(le.editable=R.editable),le},getLabelInputProps:(re={})=>{const G=zi(re),le=T.labelInput?.({rootRefObject:A,contentRefObject:I,externalEventHandlers:G,interactions:O})??{};return Ce({},re,le)},getDragAndDropOverlayProps:(re={})=>{const G=zi(re),le=T.dragAndDropOverlay?.(Ce({},H,{externalEventHandlers:G}))??{};return Ce({},re,le)},rootRef:F,status:R,publicAPI:c}},u5e=c5e;function d5e(e){const{instance:t,items:{onItemClick:n},selection:{multiSelect:r,checkboxSelection:o,disableSelection:a},expansion:{expansionTrigger:i}}=$m(),s=t.isItemExpandable(e),l=t.isItemExpanded(e),d=t.isItemFocused(e),c=t.isItemSelected(e),p=t.isItemDisabled(e),g=t?.isItemBeingEdited?t?.isItemBeingEdited(e):!1,y=t.isItemEditable?t.isItemEditable(e):!1,v=T=>{if(!p){d||t.focusItem(T,e);const O=r&&(T.shiftKey||T.ctrlKey||T.metaKey);s&&!(O&&t.isItemExpanded(e))&&t.toggleItemExpansion(T,e)}},S=T=>{p||(!d&&!g&&t.focusItem(T,e),r&&(T.shiftKey||T.ctrlKey||T.metaKey)?T.shiftKey?t.expandSelectionRange(T,e):t.selectItem({event:T,itemId:e,keepExistingSelection:!0}):t.selectItem({event:T,itemId:e,shouldBeSelected:!0}))},E=T=>{if(a||p)return;const O=T.nativeEvent.shiftKey;r&&O?t.expandSelectionRange(T,e):t.selectItem({event:T,itemId:e,keepExistingSelection:r,shouldBeSelected:T.target.checked})},b=T=>{(T.shiftKey||T.ctrlKey||T.metaKey||p)&&T.preventDefault()},C=()=>{qh(t,sc)&&t.isItemEditable(e)&&(t.isItemBeingEdited(e)?t.setEditedItemId(null):t.setEditedItemId(e))};return{disabled:p,expanded:l,selected:c,focused:d,editable:y,editing:g,disableSelection:a,checkboxSelection:o,handleExpansion:v,handleSelection:S,handleCheckboxSelection:E,handleContentClick:n,preventSelection:b,expansionTrigger:i,toggleItemEditing:C,handleSaveItemLabel:(T,O)=>{qh(t,sc)&&t.isItemBeingEditedRef(e)&&(t.updateItemLabel(e,O),C(),t.focusItem(T,e))},handleCancelItemLabelEditing:T=>{qh(t,sc)&&t.isItemBeingEditedRef(e)&&(C(),t.focusItem(T,e))}}}const f5e=Ye("div",{name:"MuiTreeItem2DragAndDropOverlay",slot:"Root",overridesResolver:(e,t)=>t.root,shouldForwardProp:e=>Qy(e)&&e!=="action"})(({theme:e})=>({position:"absolute",left:0,display:"flex",top:0,bottom:0,right:0,pointerEvents:"none",variants:[{props:{action:"make-child"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",borderRadius:e.shape.borderRadius,backgroundColor:e.vars?`rgba(${e.vars.palette.primary.darkChannel} / ${e.vars.palette.action.focusOpacity})`:ea(e.palette.primary.dark,e.palette.action.focusOpacity)}},{props:{action:"reorder-above"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",borderTop:`1px solid ${(e.vars||e).palette.action.active}`}},{props:{action:"reorder-below"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",borderBottom:`1px solid ${(e.vars||e).palette.action.active}`}},{props:{action:"move-to-parent"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * calc(var(--TreeView-itemDepth) - 1))",borderBottom:`1px solid ${(e.vars||e).palette.action.active}`}}]}));function p5e(e){return e.action==null?null:m.jsx(f5e,Ce({},e))}const h5e=Ye("input",{name:"MuiTreeItem2",slot:"LabelInput",overridesResolver:(e,t)=>t.labelInput})(({theme:e})=>Ce({},e.typography.body1,{width:"100%",backgroundColor:e.palette.background.paper,borderRadius:e.shape.borderRadius,border:"none",padding:"0 2px",boxSizing:"border-box","&:focus":{outline:`1px solid ${e.palette.primary.main}`}})),m5e=["classes","className","displayIcon","expansionIcon","icon","label","itemId","onClick","onMouseDown","dragAndDropOverlayProps","labelInputProps"],g5e=w.forwardRef(function(e,t){const{classes:n,className:r,displayIcon:o,expansionIcon:a,icon:i,label:s,itemId:l,onClick:d,onMouseDown:c,dragAndDropOverlayProps:p,labelInputProps:g}=e,y=qn(e,m5e),{disabled:v,expanded:S,selected:E,focused:b,editing:C,editable:T,disableSelection:O,checkboxSelection:R,handleExpansion:A,handleSelection:I,handleCheckboxSelection:F,handleContentClick:_,preventSelection:z,expansionTrigger:$,toggleItemEditing:k}=d5e(l),H=i||a||o,L=w.useRef(null),V=J=>{z(J),c&&c(J)},j=J=>{_?.(J,l),!L.current?.contains(J.target)&&($==="content"&&A(J),R||I(J),d&&d(J))},Z=J=>{J.defaultMuiPrevented||k()};return m.jsxs("div",Ce({},y,{className:Kt(n.root,r,S&&n.expanded,E&&n.selected,b&&n.focused,v&&n.disabled,C&&n.editing,T&&n.editable),onClick:j,onMouseDown:V,ref:t,children:[m.jsx("div",{className:n.iconContainer,children:H}),R&&m.jsx(UO,{className:n.checkbox,checked:E,onChange:F,disabled:v||O,ref:L,tabIndex:-1}),C?m.jsx(h5e,Ce({},g,{className:n.labelInput})):m.jsx("div",Ce({className:n.label},T&&{onDoubleClick:Z},{children:s})),p&&m.jsx(p5e,Ce({},p))]}))}),Kc=un("MuiTreeItem",["root","groupTransition","content","expanded","selected","focused","disabled","iconContainer","label","checkbox","labelInput","editable","editing","dragAndDropOverlay"]),y5e=lr(m.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})),v5e=lr(m.jsx("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}));function uH(e){const{children:t,itemId:n}=e,{wrapItem:r,instance:o}=$m();return r({children:t,itemId:n,instance:o})}uH.propTypes={children:ht.node,itemId:ht.string.isRequired};Ye("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0});Ye(g5e,{name:"MuiTreeItem",slot:"Content",overridesResolver:(e,t)=>[t.content,t.iconContainer&&{[`& .${Kc.iconContainer}`]:t.iconContainer},t.label&&{[`& .${Kc.label}`]:t.label}],shouldForwardProp:e=>hd(e)&&e!=="indentationAtItemLevel"})(({theme:e})=>({padding:e.spacing(.5,1),borderRadius:e.shape.borderRadius,width:"100%",boxSizing:"border-box",position:"relative",display:"flex",alignItems:"center",gap:e.spacing(1),cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Kc.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"},[`&.${Kc.focused}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${Kc.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:ea(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:ea(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:ea(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${Kc.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:ea(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`& .${Kc.iconContainer}`]:{width:16,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}},[`& .${Kc.label}`]:Ce({width:"100%",boxSizing:"border-box",minWidth:0,position:"relative"},e.typography.body1),[`& .${Kc.checkbox}`]:{padding:0},variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:`calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`}}]}));Ye(ib,{name:"MuiTreeItem",slot:"GroupTransition",overridesResolver:(e,t)=>t.groupTransition,shouldForwardProp:e=>hd(e)&&e!=="indentationAtItemLevel"})({margin:0,padding:0,paddingLeft:"var(--TreeView-itemChildrenIndentation)",variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:0}}]});function b5e(e){const{slots:t,slotProps:n,status:r}=e,o=$m(),a=Ce({},o.icons.slots,{expandIcon:o.icons.slots.expandIcon??y5e,collapseIcon:o.icons.slots.collapseIcon??v5e}),i=o.icons.slotProps;let s;t?.icon?s="icon":r.expandable?r.expanded?s="collapseIcon":s="expandIcon":s="endIcon";const l=t?.[s]??a[s],d=Fr({elementType:l,externalSlotProps:c=>Ce({},cm(i[s],c),cm(n?.[s],c)),ownerState:{}});return l?m.jsx(l,Ce({},d)):null}const x5e=["visible"],S5e=Ye("li",{name:"MuiTreeItem2",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),E5e=Ye("div",{name:"MuiTreeItem2",slot:"Content",overridesResolver:(e,t)=>t.content,shouldForwardProp:e=>hd(e)&&e!=="status"&&e!=="indentationAtItemLevel"})(({theme:e})=>({padding:e.spacing(.5,1),borderRadius:e.shape.borderRadius,width:"100%",boxSizing:"border-box",position:"relative",display:"flex",alignItems:"center",gap:e.spacing(1),cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:`calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`}},{props:({status:t})=>t.disabled,style:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"}},{props:({status:t})=>t.focused,style:{backgroundColor:(e.vars||e).palette.action.focus}},{props:({status:t})=>t.selected,style:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:ea(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:ea(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:ea(e.palette.primary.main,e.palette.action.selectedOpacity)}}}},{props:({status:t})=>t.selected&&t.focused,style:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:ea(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}]})),C5e=Ye("div",{name:"MuiTreeItem2",slot:"Label",overridesResolver:(e,t)=>t.label,shouldForwardProp:e=>hd(e)&&e!=="editable"})(({theme:e})=>Ce({width:"100%",boxSizing:"border-box",minWidth:0,position:"relative",overflow:"hidden"},e.typography.body1,{variants:[{props:({editable:t})=>t,style:{paddingLeft:"2px"}}]})),T5e=Ye("div",{name:"MuiTreeItem2",slot:"IconContainer",overridesResolver:(e,t)=>t.iconContainer})({width:16,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}});Ye(ib,{name:"MuiTreeItem2",slot:"GroupTransition",overridesResolver:(e,t)=>t.groupTransition,shouldForwardProp:e=>hd(e)&&e!=="indentationAtItemLevel"})({margin:0,padding:0,paddingLeft:"var(--TreeView-itemChildrenIndentation)",variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:0}}]});Ye(w.forwardRef((e,t)=>{const{visible:n}=e,r=qn(e,x5e);return n?m.jsx(UO,Ce({},r,{ref:t})):null}),{name:"MuiTreeItem2",slot:"Checkbox",overridesResolver:(e,t)=>t.checkbox})({padding:0});un("MuiRichTreeView",["root"]);Ye("ul",{name:"MuiRichTreeView",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:0,margin:0,listStyle:"none",outline:0,position:"relative"});const w5e=lr([m.jsx("path",{d:"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"},"0"),m.jsx("path",{d:"M14 17H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z"},"1")]),k5e=lr(m.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"})),A5e=lr(m.jsx("path",{d:"M19 15v4H5v-4zm1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1M7 18.5c-.82 0-1.5-.67-1.5-1.5s.68-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5M19 5v4H5V5zm1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1M7 8.5c-.82 0-1.5-.67-1.5-1.5S6.18 5.5 7 5.5s1.5.68 1.5 1.5S7.83 8.5 7 8.5"})),D5e=lr(m.jsx("path",{d:"M15 4v2h3v12h-3v2h5V4zM4 20h5v-2H6V6h3V4H4z"})),O5e=wce(ib);function R5e(e){const t=dce({to:{opacity:e.in?1:0,transform:`translate3d(0,${e.in?0:20}px,0)`}});return m.jsx(O5e,{style:t,...e})}function M5e({item:e,...t}){const n=m.jsxs(C5e,{...t,sx:{display:"flex",alignItems:"center",color:e.error?"error.main":"grey.600"},children:[e.fileType==="directory"&&m.jsx(nH,{})||e.fileType==="notebook"&&m.jsx(w5e,{})||e.fileType==="model"&&m.jsx(D5e,{})||e.fileType=="database"&&m.jsx(A5e,{})||m.jsx(k5e,{}),m.jsx(xt,{variant:"body2",sx:{marginLeft:"5px"},color:e.error?"error.main":e.link?"primary.main":"grey.600",children:e.label})]});return e.error?m.jsx(Do,{title:e.error,placement:"right",children:n}):n}w.forwardRef(function(e,t){const{id:n,itemId:r,label:o,children:a,disabled:i,...s}=e,{getRootProps:l,getContentProps:d,getLabelProps:c,getIconContainerProps:p,getGroupTransitionProps:g,status:y,publicAPI:v}=u5e({id:n,itemId:r,children:a,label:o,disabled:i,rootRef:t}),S=v.getItem(r);return y.selected=!1,y.focused=!1,m.jsx(uH,{itemId:r,children:m.jsxs(S5e,{...l(s),children:[m.jsxs(E5e,{...d(),...S.link&&{onClick:E=>S.link(E)},sx:{pointerEvents:!S.selectable&&"none"},children:[m.jsx(T5e,{...p(),children:m.jsx(b5e,{status:y})}),m.jsx(M5e,{...c({item:S})})]}),a&&m.jsx(R5e,{...g()})]})})});function P5e(e){return{background:e.dashboardRoot,tableBackground:e.tableBackground,tableHeaderColor:e.tableHeader,tableBodyColor:e.tableBody,tableBorder:e.border,tablePinnedBackground:e.tableHeaderBackground,tablePinnedBorder:e.pinnedBorder,tableFontSize:`${e.font.size}px`,fontFamily:e.font.family,mapColor:e.mapColor}}function N5e(e){return{"--malloy-render--font-family":e.font.family,"--malloy-render--table-font-size":`${e.font.size}px`,"--malloy-render--table-header-color":e.tableHeader,"--malloy-render--table-body-color":e.tableBody,"--malloy-render--table-border":e.border,"--malloy-render--table-pinned-border":e.pinnedBorder,"--malloy-render--tile-background":e.tile,"--publisher-dashboard-root":e.dashboardRoot,"--malloy-render--label-color":e.tileTitle,"--malloy-render--value-color":e.valueColor,"--publisher-drill-link":e.drillLink}}function I5e(e){const{foreground:t,axisFaint:n,font:r}=e,o={background:e.background,font:r.family,title:{color:t,font:r.family},axis:{labelColor:t,titleColor:t,domainColor:n,tickColor:n,gridColor:n,labelFont:r.family,titleFont:r.family},legend:{labelColor:t,titleColor:t,labelFont:r.family,titleFont:r.family},header:{labelColor:t,titleColor:t},range:{category:e.series}};return a=>o}function L5e(e){if(!e)return;const t=e.tag("theme");if(!t)return;const n={},r=t.tag("palette");if(r){const a={},i=r.textArray("series");i&&i.length>0&&(a.series=i);for(const s of b$){const l=r.tag(s);if(!l)continue;const d={},c=l.text("light"),p=l.text("dark");c&&(d.light=c),p&&(d.dark=p),Object.keys(d).length>0&&(a[s]=d)}Object.keys(a).length>0&&(n.palette=a)}const o=t.tag("font");if(o){const a={},i=o.text("family");i&&(a.family=i);const s=o.numeric("size");typeof s=="number"&&Number.isFinite(s)&&(a.size=s),Object.keys(a).length>0&&(n.font=a)}return Object.keys(n).length>0?n:void 0}const _5e=async(e,t)=>{if(typeof window>"u")throw new Error("MalloyRenderer can only be used in browser environment");const{MalloyRenderer:n}=await jo(async()=>{const{MalloyRenderer:r}=await import("./index-DzaYbhnD.js");return{MalloyRenderer:r}},[]);return new n({onClick:t,vegaConfigOverride:I5e(e),theme:P5e(e),onError:r=>{console.error("Error rendering visualization:",typeof r,r)}}).createViz()};typeof window<"u"&&jo(()=>import("./index-DzaYbhnD.js"),[]);async function F5e(e){if(!e||typeof e!="object")return;const t=e,n=[...Array.isArray(t.model_annotations)?t.model_annotations:[],...Array.isArray(t.source_annotations)?t.source_annotations:[],...Array.isArray(t.annotations)?t.annotations:[]].map(o=>typeof o?.value=="string"?o.value:void 0).filter(o=>!!o);if(n.length===0)return;let r;try{({parseAnnotation:r}=await jo(()=>import("./index-Cmp8wg1s.js").then(o=>o.i),__vite__mapDeps([5,3])))}catch{return}try{const{tag:o}=r(n);return L5e(o)}catch(o){console.warn("Failed to parse # theme.* annotations; chart will render with the shell theme.",{error:o,lines:n});return}}function j5e(e,t){const n=N5e(t);for(const[r,o]of Object.entries(n))e.style.setProperty(r,o)}const $5e=`
|
|
518
|
+
`));n(y=>{const v=y.items.itemMetaMap[p];return v.label!==g?Ce({},y,{items:Ce({},y.items,{itemMetaMap:Ce({},y.items.itemMetaMap,{[p]:Ce({},v,{label:g})})})}):y}),r.onItemLabelChange&&r.onItemLabelChange(p,g)};return{instance:{setEditedItemId:i,isItemBeingEdited:s,updateItemLabel:c,isItemEditable:d,isTreeViewEditable:l,isItemBeingEditedRef:a},publicAPI:{updateItemLabel:c}}};sc.itemPlugin=a5e;sc.getDefaultizedParams=({params:e,experimentalFeatures:t})=>{const n=t?.labelEditing;return Ce({},e,{isItemEditable:n?e.isItemEditable??!1:!1})};sc.getInitialState=()=>({editedItemId:null});sc.params={onItemLabelChange:!0,isItemEditable:!0};const qh=(e,t)=>e.getAvailablePlugins().has(t),cH=e=>Array.isArray(e)?e.length>0&&e.some(cH):!!e,i5e=({itemId:e,children:t})=>{const{instance:n,selection:{multiSelect:r},publicAPI:o}=$m(),a={expandable:cH(t),expanded:n.isItemExpanded(e),focused:n.isItemFocused(e),selected:n.isItemSelected(e),disabled:n.isItemDisabled(e),editing:n?.isItemBeingEdited?n?.isItemBeingEdited(e):!1,editable:n.isItemEditable?n.isItemEditable(e):!1},i=c=>{if(a.disabled)return;a.focused||n.focusItem(c,e);const p=r&&(c.shiftKey||c.ctrlKey||c.metaKey);a.expandable&&!(p&&n.isItemExpanded(e))&&n.toggleItemExpansion(c,e)},s=c=>{a.disabled||(!a.focused&&!a.editing&&n.focusItem(c,e),r&&(c.shiftKey||c.ctrlKey||c.metaKey)?c.shiftKey?n.expandSelectionRange(c,e):n.selectItem({event:c,itemId:e,keepExistingSelection:!0}):n.selectItem({event:c,itemId:e,shouldBeSelected:!0}))},l=c=>{const p=c.nativeEvent.shiftKey;r&&p?n.expandSelectionRange(c,e):n.selectItem({event:c,itemId:e,keepExistingSelection:r,shouldBeSelected:c.target.checked})},d=()=>{qh(n,sc)&&n.isItemEditable(e)&&(n.isItemBeingEdited(e)?n.setEditedItemId(null):n.setEditedItemId(e))};return{interactions:{handleExpansion:i,handleSelection:s,handleCheckboxSelection:l,toggleItemEditing:d,handleSaveItemLabel:(c,p)=>{qh(n,sc)&&n.isItemBeingEditedRef(e)&&(n.updateItemLabel(e,p),d(),n.focusItem(c,e))},handleCancelItemLabelEditing:c=>{qh(n,sc)&&n.isItemBeingEditedRef(e)&&(d(),n.focusItem(c,e))}},status:a,publicAPI:o}},s5e=w.createContext(()=>-1),k6=(e,t)=>t!==e.closest('*[role="treeitem"]'),l5e=({id:e,treeId:t="",itemId:n})=>e??`${t}-${n}`,c5e=e=>{const{runItemPlugins:t,items:{onItemClick:n,disabledItemsFocusable:r,indentationAtItemLevel:o},selection:{disableSelection:a,checkboxSelection:i},expansion:{expansionTrigger:s},treeId:l,instance:d,publicAPI:c}=$m(),p=w.useContext(s5e),{id:g,itemId:y,label:v,children:S,rootRef:E}=e,{rootRef:b,contentRef:C,propsEnhancers:T}=t(e),{interactions:O,status:R}=i5e({itemId:y,children:S}),A=w.useRef(null),I=w.useRef(null),F=Or(E,b,A),_=Or(C,I),z=w.useRef(null),$=l5e({itemId:y,treeId:l,id:g}),k=d.canItemBeTabbed(y)?0:-1,H={rootRefObject:A,contentRefObject:I,interactions:O},L=re=>G=>{if(re.onFocus?.(G),G.defaultMuiPrevented)return;const le=!R.disabled||r;!R.focused&&le&&G.currentTarget===G.target&&d.focusItem(G,y)},V=re=>G=>{if(re.onBlur?.(G),G.defaultMuiPrevented)return;const le=d.getItemDOMElement(y);R.editing||G.relatedTarget&&k6(G.relatedTarget,le)&&(G.target&&G.target?.dataset?.element==="labelInput"&&k6(G.target,le)||G.relatedTarget?.dataset?.element==="labelInput")||d.removeFocusedItem()},j=re=>G=>{re.onKeyDown?.(G),!(G.defaultMuiPrevented||G.target?.dataset?.element==="labelInput")&&d.handleItemKeyDown(G,y)},Z=re=>G=>{re.onDoubleClick?.(G),!G.defaultMuiPrevented&&O.toggleItemEditing()},J=re=>G=>{re.onClick?.(G),n?.(G,y),!(G.defaultMuiPrevented||z.current?.contains(G.target))&&(s==="content"&&O.handleExpansion(G),i||O.handleSelection(G))},oe=re=>G=>{re.onMouseDown?.(G),!G.defaultMuiPrevented&&(G.shiftKey||G.ctrlKey||G.metaKey||R.disabled)&&G.preventDefault()},B=re=>G=>{re.onChange?.(G),!G.defaultMuiPrevented&&(a||R.disabled||O.handleCheckboxSelection(G))},te=re=>G=>{re.onClick?.(G),!G.defaultMuiPrevented&&s==="iconContainer"&&O.handleExpansion(G)};return{getRootProps:(re={})=>{const G=Ce({},zi(e),zi(re));let le;R.selected?le=!0:a||R.disabled?le=void 0:le=!1;const se=Ce({},G,{ref:F,role:"treeitem",tabIndex:k,id:$,"aria-expanded":R.expandable?R.expanded:void 0,"aria-selected":le,"aria-disabled":R.disabled||void 0},re,{onFocus:L(G),onBlur:V(G),onKeyDown:j(G)});o&&(se.style={"--TreeView-itemDepth":typeof p=="function"?p(y):p});const ne=T.root?.(Ce({},H,{externalEventHandlers:G}))??{};return Ce({},se,ne)},getContentProps:(re={})=>{const G=zi(re),le=Ce({},G,re,{ref:_,onClick:J(G),onMouseDown:oe(G),status:R});o&&(le.indentationAtItemLevel=!0);const se=T.content?.(Ce({},H,{externalEventHandlers:G}))??{};return Ce({},le,se)},getGroupTransitionProps:(re={})=>{const G=zi(re),le=Ce({},G,{unmountOnExit:!0,component:"ul",role:"group",in:R.expanded,children:S},re);return o&&(le.indentationAtItemLevel=!0),le},getIconContainerProps:(re={})=>{const G=zi(re);return Ce({},G,re,{onClick:te(G)})},getCheckboxProps:(re={})=>{const G=zi(re);return Ce({},G,{visible:i,ref:z,checked:R.selected,disabled:a||R.disabled,tabIndex:-1},re,{onChange:B(G)})},getLabelProps:(re={})=>{const G=Ce({},zi(re)),le=Ce({},G,{children:v},re,{onDoubleClick:Z(G)});return d.isTreeViewEditable&&(le.editable=R.editable),le},getLabelInputProps:(re={})=>{const G=zi(re),le=T.labelInput?.({rootRefObject:A,contentRefObject:I,externalEventHandlers:G,interactions:O})??{};return Ce({},re,le)},getDragAndDropOverlayProps:(re={})=>{const G=zi(re),le=T.dragAndDropOverlay?.(Ce({},H,{externalEventHandlers:G}))??{};return Ce({},re,le)},rootRef:F,status:R,publicAPI:c}},u5e=c5e;function d5e(e){const{instance:t,items:{onItemClick:n},selection:{multiSelect:r,checkboxSelection:o,disableSelection:a},expansion:{expansionTrigger:i}}=$m(),s=t.isItemExpandable(e),l=t.isItemExpanded(e),d=t.isItemFocused(e),c=t.isItemSelected(e),p=t.isItemDisabled(e),g=t?.isItemBeingEdited?t?.isItemBeingEdited(e):!1,y=t.isItemEditable?t.isItemEditable(e):!1,v=T=>{if(!p){d||t.focusItem(T,e);const O=r&&(T.shiftKey||T.ctrlKey||T.metaKey);s&&!(O&&t.isItemExpanded(e))&&t.toggleItemExpansion(T,e)}},S=T=>{p||(!d&&!g&&t.focusItem(T,e),r&&(T.shiftKey||T.ctrlKey||T.metaKey)?T.shiftKey?t.expandSelectionRange(T,e):t.selectItem({event:T,itemId:e,keepExistingSelection:!0}):t.selectItem({event:T,itemId:e,shouldBeSelected:!0}))},E=T=>{if(a||p)return;const O=T.nativeEvent.shiftKey;r&&O?t.expandSelectionRange(T,e):t.selectItem({event:T,itemId:e,keepExistingSelection:r,shouldBeSelected:T.target.checked})},b=T=>{(T.shiftKey||T.ctrlKey||T.metaKey||p)&&T.preventDefault()},C=()=>{qh(t,sc)&&t.isItemEditable(e)&&(t.isItemBeingEdited(e)?t.setEditedItemId(null):t.setEditedItemId(e))};return{disabled:p,expanded:l,selected:c,focused:d,editable:y,editing:g,disableSelection:a,checkboxSelection:o,handleExpansion:v,handleSelection:S,handleCheckboxSelection:E,handleContentClick:n,preventSelection:b,expansionTrigger:i,toggleItemEditing:C,handleSaveItemLabel:(T,O)=>{qh(t,sc)&&t.isItemBeingEditedRef(e)&&(t.updateItemLabel(e,O),C(),t.focusItem(T,e))},handleCancelItemLabelEditing:T=>{qh(t,sc)&&t.isItemBeingEditedRef(e)&&(C(),t.focusItem(T,e))}}}const f5e=Ye("div",{name:"MuiTreeItem2DragAndDropOverlay",slot:"Root",overridesResolver:(e,t)=>t.root,shouldForwardProp:e=>Qy(e)&&e!=="action"})(({theme:e})=>({position:"absolute",left:0,display:"flex",top:0,bottom:0,right:0,pointerEvents:"none",variants:[{props:{action:"make-child"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",borderRadius:e.shape.borderRadius,backgroundColor:e.vars?`rgba(${e.vars.palette.primary.darkChannel} / ${e.vars.palette.action.focusOpacity})`:ea(e.palette.primary.dark,e.palette.action.focusOpacity)}},{props:{action:"reorder-above"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",borderTop:`1px solid ${(e.vars||e).palette.action.active}`}},{props:{action:"reorder-below"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",borderBottom:`1px solid ${(e.vars||e).palette.action.active}`}},{props:{action:"move-to-parent"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * calc(var(--TreeView-itemDepth) - 1))",borderBottom:`1px solid ${(e.vars||e).palette.action.active}`}}]}));function p5e(e){return e.action==null?null:m.jsx(f5e,Ce({},e))}const h5e=Ye("input",{name:"MuiTreeItem2",slot:"LabelInput",overridesResolver:(e,t)=>t.labelInput})(({theme:e})=>Ce({},e.typography.body1,{width:"100%",backgroundColor:e.palette.background.paper,borderRadius:e.shape.borderRadius,border:"none",padding:"0 2px",boxSizing:"border-box","&:focus":{outline:`1px solid ${e.palette.primary.main}`}})),m5e=["classes","className","displayIcon","expansionIcon","icon","label","itemId","onClick","onMouseDown","dragAndDropOverlayProps","labelInputProps"],g5e=w.forwardRef(function(e,t){const{classes:n,className:r,displayIcon:o,expansionIcon:a,icon:i,label:s,itemId:l,onClick:d,onMouseDown:c,dragAndDropOverlayProps:p,labelInputProps:g}=e,y=qn(e,m5e),{disabled:v,expanded:S,selected:E,focused:b,editing:C,editable:T,disableSelection:O,checkboxSelection:R,handleExpansion:A,handleSelection:I,handleCheckboxSelection:F,handleContentClick:_,preventSelection:z,expansionTrigger:$,toggleItemEditing:k}=d5e(l),H=i||a||o,L=w.useRef(null),V=J=>{z(J),c&&c(J)},j=J=>{_?.(J,l),!L.current?.contains(J.target)&&($==="content"&&A(J),R||I(J),d&&d(J))},Z=J=>{J.defaultMuiPrevented||k()};return m.jsxs("div",Ce({},y,{className:Kt(n.root,r,S&&n.expanded,E&&n.selected,b&&n.focused,v&&n.disabled,C&&n.editing,T&&n.editable),onClick:j,onMouseDown:V,ref:t,children:[m.jsx("div",{className:n.iconContainer,children:H}),R&&m.jsx(UO,{className:n.checkbox,checked:E,onChange:F,disabled:v||O,ref:L,tabIndex:-1}),C?m.jsx(h5e,Ce({},g,{className:n.labelInput})):m.jsx("div",Ce({className:n.label},T&&{onDoubleClick:Z},{children:s})),p&&m.jsx(p5e,Ce({},p))]}))}),Kc=un("MuiTreeItem",["root","groupTransition","content","expanded","selected","focused","disabled","iconContainer","label","checkbox","labelInput","editable","editing","dragAndDropOverlay"]),y5e=lr(m.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})),v5e=lr(m.jsx("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}));function uH(e){const{children:t,itemId:n}=e,{wrapItem:r,instance:o}=$m();return r({children:t,itemId:n,instance:o})}uH.propTypes={children:ht.node,itemId:ht.string.isRequired};Ye("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0});Ye(g5e,{name:"MuiTreeItem",slot:"Content",overridesResolver:(e,t)=>[t.content,t.iconContainer&&{[`& .${Kc.iconContainer}`]:t.iconContainer},t.label&&{[`& .${Kc.label}`]:t.label}],shouldForwardProp:e=>hd(e)&&e!=="indentationAtItemLevel"})(({theme:e})=>({padding:e.spacing(.5,1),borderRadius:e.shape.borderRadius,width:"100%",boxSizing:"border-box",position:"relative",display:"flex",alignItems:"center",gap:e.spacing(1),cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Kc.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"},[`&.${Kc.focused}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${Kc.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:ea(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:ea(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:ea(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${Kc.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:ea(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`& .${Kc.iconContainer}`]:{width:16,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}},[`& .${Kc.label}`]:Ce({width:"100%",boxSizing:"border-box",minWidth:0,position:"relative"},e.typography.body1),[`& .${Kc.checkbox}`]:{padding:0},variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:`calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`}}]}));Ye(ib,{name:"MuiTreeItem",slot:"GroupTransition",overridesResolver:(e,t)=>t.groupTransition,shouldForwardProp:e=>hd(e)&&e!=="indentationAtItemLevel"})({margin:0,padding:0,paddingLeft:"var(--TreeView-itemChildrenIndentation)",variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:0}}]});function b5e(e){const{slots:t,slotProps:n,status:r}=e,o=$m(),a=Ce({},o.icons.slots,{expandIcon:o.icons.slots.expandIcon??y5e,collapseIcon:o.icons.slots.collapseIcon??v5e}),i=o.icons.slotProps;let s;t?.icon?s="icon":r.expandable?r.expanded?s="collapseIcon":s="expandIcon":s="endIcon";const l=t?.[s]??a[s],d=Fr({elementType:l,externalSlotProps:c=>Ce({},cm(i[s],c),cm(n?.[s],c)),ownerState:{}});return l?m.jsx(l,Ce({},d)):null}const x5e=["visible"],S5e=Ye("li",{name:"MuiTreeItem2",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),E5e=Ye("div",{name:"MuiTreeItem2",slot:"Content",overridesResolver:(e,t)=>t.content,shouldForwardProp:e=>hd(e)&&e!=="status"&&e!=="indentationAtItemLevel"})(({theme:e})=>({padding:e.spacing(.5,1),borderRadius:e.shape.borderRadius,width:"100%",boxSizing:"border-box",position:"relative",display:"flex",alignItems:"center",gap:e.spacing(1),cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:`calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`}},{props:({status:t})=>t.disabled,style:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"}},{props:({status:t})=>t.focused,style:{backgroundColor:(e.vars||e).palette.action.focus}},{props:({status:t})=>t.selected,style:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:ea(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:ea(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:ea(e.palette.primary.main,e.palette.action.selectedOpacity)}}}},{props:({status:t})=>t.selected&&t.focused,style:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:ea(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}]})),C5e=Ye("div",{name:"MuiTreeItem2",slot:"Label",overridesResolver:(e,t)=>t.label,shouldForwardProp:e=>hd(e)&&e!=="editable"})(({theme:e})=>Ce({width:"100%",boxSizing:"border-box",minWidth:0,position:"relative",overflow:"hidden"},e.typography.body1,{variants:[{props:({editable:t})=>t,style:{paddingLeft:"2px"}}]})),T5e=Ye("div",{name:"MuiTreeItem2",slot:"IconContainer",overridesResolver:(e,t)=>t.iconContainer})({width:16,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}});Ye(ib,{name:"MuiTreeItem2",slot:"GroupTransition",overridesResolver:(e,t)=>t.groupTransition,shouldForwardProp:e=>hd(e)&&e!=="indentationAtItemLevel"})({margin:0,padding:0,paddingLeft:"var(--TreeView-itemChildrenIndentation)",variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:0}}]});Ye(w.forwardRef((e,t)=>{const{visible:n}=e,r=qn(e,x5e);return n?m.jsx(UO,Ce({},r,{ref:t})):null}),{name:"MuiTreeItem2",slot:"Checkbox",overridesResolver:(e,t)=>t.checkbox})({padding:0});un("MuiRichTreeView",["root"]);Ye("ul",{name:"MuiRichTreeView",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:0,margin:0,listStyle:"none",outline:0,position:"relative"});const w5e=lr([m.jsx("path",{d:"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"},"0"),m.jsx("path",{d:"M14 17H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z"},"1")]),k5e=lr(m.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"})),A5e=lr(m.jsx("path",{d:"M19 15v4H5v-4zm1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1M7 18.5c-.82 0-1.5-.67-1.5-1.5s.68-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5M19 5v4H5V5zm1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1M7 8.5c-.82 0-1.5-.67-1.5-1.5S6.18 5.5 7 5.5s1.5.68 1.5 1.5S7.83 8.5 7 8.5"})),D5e=lr(m.jsx("path",{d:"M15 4v2h3v12h-3v2h5V4zM4 20h5v-2H6V6h3V4H4z"})),O5e=wce(ib);function R5e(e){const t=dce({to:{opacity:e.in?1:0,transform:`translate3d(0,${e.in?0:20}px,0)`}});return m.jsx(O5e,{style:t,...e})}function M5e({item:e,...t}){const n=m.jsxs(C5e,{...t,sx:{display:"flex",alignItems:"center",color:e.error?"error.main":"grey.600"},children:[e.fileType==="directory"&&m.jsx(nH,{})||e.fileType==="notebook"&&m.jsx(w5e,{})||e.fileType==="model"&&m.jsx(D5e,{})||e.fileType=="database"&&m.jsx(A5e,{})||m.jsx(k5e,{}),m.jsx(xt,{variant:"body2",sx:{marginLeft:"5px"},color:e.error?"error.main":e.link?"primary.main":"grey.600",children:e.label})]});return e.error?m.jsx(Do,{title:e.error,placement:"right",children:n}):n}w.forwardRef(function(e,t){const{id:n,itemId:r,label:o,children:a,disabled:i,...s}=e,{getRootProps:l,getContentProps:d,getLabelProps:c,getIconContainerProps:p,getGroupTransitionProps:g,status:y,publicAPI:v}=u5e({id:n,itemId:r,children:a,label:o,disabled:i,rootRef:t}),S=v.getItem(r);return y.selected=!1,y.focused=!1,m.jsx(uH,{itemId:r,children:m.jsxs(S5e,{...l(s),children:[m.jsxs(E5e,{...d(),...S.link&&{onClick:E=>S.link(E)},sx:{pointerEvents:!S.selectable&&"none"},children:[m.jsx(T5e,{...p(),children:m.jsx(b5e,{status:y})}),m.jsx(M5e,{...c({item:S})})]}),a&&m.jsx(R5e,{...g()})]})})});function P5e(e){return{background:e.dashboardRoot,tableBackground:e.tableBackground,tableHeaderColor:e.tableHeader,tableBodyColor:e.tableBody,tableBorder:e.border,tablePinnedBackground:e.tableHeaderBackground,tablePinnedBorder:e.pinnedBorder,tableFontSize:`${e.font.size}px`,fontFamily:e.font.family,mapColor:e.mapColor}}function N5e(e){return{"--malloy-render--font-family":e.font.family,"--malloy-render--table-font-size":`${e.font.size}px`,"--malloy-render--table-header-color":e.tableHeader,"--malloy-render--table-body-color":e.tableBody,"--malloy-render--table-border":e.border,"--malloy-render--table-pinned-border":e.pinnedBorder,"--malloy-render--tile-background":e.tile,"--publisher-dashboard-root":e.dashboardRoot,"--malloy-render--label-color":e.tileTitle,"--malloy-render--value-color":e.valueColor,"--publisher-drill-link":e.drillLink}}function I5e(e){const{foreground:t,axisFaint:n,font:r}=e,o={background:e.background,font:r.family,title:{color:t,font:r.family},axis:{labelColor:t,titleColor:t,domainColor:n,tickColor:n,gridColor:n,labelFont:r.family,titleFont:r.family},legend:{labelColor:t,titleColor:t,labelFont:r.family,titleFont:r.family},header:{labelColor:t,titleColor:t},range:{category:e.series}};return a=>o}function L5e(e){if(!e)return;const t=e.tag("theme");if(!t)return;const n={},r=t.tag("palette");if(r){const a={},i=r.textArray("series");i&&i.length>0&&(a.series=i);for(const s of b$){const l=r.tag(s);if(!l)continue;const d={},c=l.text("light"),p=l.text("dark");c&&(d.light=c),p&&(d.dark=p),Object.keys(d).length>0&&(a[s]=d)}Object.keys(a).length>0&&(n.palette=a)}const o=t.tag("font");if(o){const a={},i=o.text("family");i&&(a.family=i);const s=o.numeric("size");typeof s=="number"&&Number.isFinite(s)&&(a.size=s),Object.keys(a).length>0&&(n.font=a)}return Object.keys(n).length>0?n:void 0}const _5e=async(e,t)=>{if(typeof window>"u")throw new Error("MalloyRenderer can only be used in browser environment");const{MalloyRenderer:n}=await jo(async()=>{const{MalloyRenderer:r}=await import("./index-DzaYbhnD.js");return{MalloyRenderer:r}},[]);return new n({onClick:t,vegaConfigOverride:I5e(e),theme:P5e(e),onError:r=>{console.error("Error rendering visualization:",typeof r,r)}}).createViz()};typeof window<"u"&&jo(()=>import("./index-DzaYbhnD.js"),[]);async function F5e(e){if(!e||typeof e!="object")return;const t=e,n=[...Array.isArray(t.model_annotations)?t.model_annotations:[],...Array.isArray(t.source_annotations)?t.source_annotations:[],...Array.isArray(t.annotations)?t.annotations:[]].map(o=>typeof o?.value=="string"?o.value:void 0).filter(o=>!!o);if(n.length===0)return;let r;try{({parseAnnotation:r}=await jo(()=>import("./index-CSFSsus4.js").then(o=>o.i),__vite__mapDeps([5,3])))}catch{return}try{const{tag:o}=r(n);return L5e(o)}catch(o){console.warn("Failed to parse # theme.* annotations; chart will render with the shell theme.",{error:o,lines:n});return}}function j5e(e,t){const n=N5e(t);for(const[r,o]of Object.entries(n))e.style.setProperty(r,o)}const $5e=`
|
|
519
519
|
/* dashboard.css hardcodes background: #f7f9fc on .malloy-dashboard
|
|
520
520
|
and .dashboard-row-header, which would paint light grey in dark
|
|
521
521
|
mode and also bleed an operator-picked palette.background across
|
|
@@ -612,4 +612,4 @@ div.malloy-render .malloy-dashboard .dashboard-row-header {
|
|
|
612
612
|
color: var(--publisher-drill-link) !important;
|
|
613
613
|
text-decoration: underline;
|
|
614
614
|
}
|
|
615
|
-
`,A6="publisher-malloy-renderer-overrides";function B5e(){if(typeof document>"u"||document.getElementById(A6))return;const e=document.createElement("style");e.id=A6,e.textContent=$5e,document.head.appendChild(e)}function z5e({result:e,height:t,drill:n,onSizeChange:r}){const o=w.useRef(null),a=w.useRef(n);a.current=n;const i=w.useCallback(v=>{a.current?.onClick(v)},[]),s=n!==void 0,l=w.useRef(!1),d=w.useRef(null),c=w.useRef(0),{theme:p,layers:g,mode:y}=kb();return w.useEffect(()=>()=>{c.current+=1,d.current?.viz.remove(),d.current=null},[]),w.useLayoutEffect(()=>{if(!o.current||!e)return;B5e();const v=o.current,S=c.current+=1;let E=!1;const b=()=>!E&&S===c.current;let C,T,O=null,R=0,A=null,I=null,F=null,_=null,z=null,$=null;l.current=!1;const k=H=>{if(l.current||E||!H.firstElementChild)return;const L=H.firstElementChild.firstElementChild;if(!L)return;const V=L.firstElementChild;let j=L.scrollHeight||L.offsetHeight||0;V&&L.classList.contains("malloy-dashboard")&&(j=V.scrollHeight||V.offsetHeight||0),j>0&&(l.current=!0,r&&r(j))};return(async()=>{let H;try{H=JSON.parse(e)}catch(te){console.error("Error parsing visualization result:",te);return}const L=await F5e(H),V=L?iD([...g,L],y):p;if(!b())return;try{T=await _5e(V,i)}catch(te){console.error("Failed to create renderer:",te);return}if(!b()){T.remove(),T=void 0;return}const j=d.current;C=document.createElement("div"),C.style.width="100%",C.style.height="100%",j5e(C,V),j&&(v.style.position="relative",C.style.position="absolute",C.style.inset="0",C.style.visibility="hidden"),v.appendChild(C);const Z=C;_=new MutationObserver(()=>{z&&clearTimeout(z),z=setTimeout(()=>{k(Z),_?.disconnect()},100)}),_.observe(C,{childList:!0,subtree:!0,attributes:!0});const J=T;let oe=!1;const B=()=>{oe||!b()||(oe=!0,$&&(clearTimeout($),$=null),j&&(j.viz.remove(),j.node.parentNode===v&&v.removeChild(j.node)),Z.style.position="",Z.style.inset="",Z.style.visibility="",v.style.position="",d.current={viz:J,node:Z},k(Z))};try{T.setResult(H),T.render(C);const te=a.current;try{if(te){const re=tCe(T,te.canDrill),G=()=>{try{nCe(Z,re)}catch(ie){console.warn("Drill affordance skipped:",ie)}};G();const le=ie=>{const ue=ie.querySelector(".cell-content")??ie,ve=ue.getBoundingClientRect();ue.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:ue.ownerDocument.defaultView,clientX:Math.round(ve.left+ve.width/2),clientY:Math.round(ve.bottom)}))},se=ie=>ie.target?.closest?.(`.${Jc}`)??null,ne=(ie,ue)=>{R_(ie,ue)?.focus()};A=ie=>{const ue=se(ie);if(!ue)return;const ve=ie.key==="ArrowDown"?1:ie.key==="ArrowUp"?-1:ie.key==="Home"?"first":ie.key==="End"?"last":void 0;if(ve!==void 0){ie.preventDefault(),ne(ue,ve);return}ie.key==="Enter"?(ie.preventDefault(),le(ue)):ie.key===" "&&ie.preventDefault()},I=ie=>{if(ie.key!==" ")return;const ue=se(ie);ue&&(ie.preventDefault(),le(ue))},F=ie=>{const ue=ie.target?.closest?.(`.${Jc}`);ue&&R_(ue,0)},Z.addEventListener("keydown",A),Z.addEventListener("keyup",I),Z.addEventListener("focusin",F),re.size>0&&typeof MutationObserver<"u"&&(O=new MutationObserver(()=>{cancelAnimationFrame(R),R=requestAnimationFrame(G)}),O.observe(Z,{childList:!0,subtree:!0}))}}catch(re){console.warn("Drill affordance skipped:",re)}T.onReady(B),$=setTimeout(B,1e4)}catch(te){console.error("Error rendering visualization:",te),_?.disconnect(),O?.disconnect(),T.remove(),T=void 0,Z.parentNode===v&&v.removeChild(Z)}})(),()=>{E=!0,_?.disconnect(),z&&clearTimeout(z),$&&clearTimeout($),C&&d.current?.node!==C&&(A&&C.removeEventListener("keydown",A),I&&C.removeEventListener("keyup",I),F&&C.removeEventListener("focusin",F),O?.disconnect(),cancelAnimationFrame(R),T?.remove(),C.parentNode===v&&v.removeChild(C),v.style.position="")}},[e,i,s,r,p,g,y]),m.jsx("div",{ref:o,style:{width:"100%",height:t?`${t}px`:"400px"}})}function H5e(e){return typeof window>"u"?m.jsx(Nt,{sx:{width:"100%",height:e.height?`${e.height}px`:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"text.secondary"},children:"Loading..."}):m.jsx(w.Suspense,{fallback:m.jsx(Nt,{sx:{width:"100%",height:e.height?`${e.height}px`:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"text.secondary"},children:"Loading visualization..."}),children:m.jsx(z5e,{...e})})}const U5e=Object.freeze(Object.defineProperty({__proto__:null,default:H5e},Symbol.toStringTag,{value:"Module"})),Qo={white:"#FFFFFF",offWhite:"#F8F8F6",grey:{light:"#E6E4E1",mid:"#91908F"},black:"#30302E",semantic:{success:{main:"#7A9461",light:"#E8EDDF",dark:"#5F7A4B"},warning:{main:"#B5943A",light:"#F3ECDA",dark:"#8E7430"},error:{main:"#BF6050",light:"#F2DDD9",dark:"#9C4D40"},info:{main:"#628698",light:"#DDE6EA",dark:"#4D6B79"}}},Z3e='"JetBrains Mono", "ui-monospace", "SFMono-Regular", "Menlo", monospace',N1='"Inter", "Helvetica Neue", "Arial", sans-serif',bs={50:Qo.offWhite,100:"#F4F3F1",200:Qo.grey.light,300:"#D4D2CF",400:"#B3B1AF",500:Qo.grey.mid,600:"#73726F",700:"#555450",800:"#424140",900:Qo.black},J3e={headerHeight:56},Gw="0 1px 3px rgba(0, 0, 0, 0.1)",V5e="#0f172a",W5e="#1e293b",q5e="#f1f5f9",G5e="#cbd5e1",Y5e="#334155",dH=(e="light")=>{const t=e==="dark",n=t?V5e:Qo.white,r=t?W5e:Qo.white,o=t?q5e:Qo.black,a=t?G5e:Qo.grey.mid,i=t?Y5e:Qo.grey.light,s=t?"#334155":"#555450",l=t?"#475569":"#73726f";return TS({cssVariables:{nativeColor:!0},palette:{mode:e,primary:{main:s,light:Qo.grey.light,dark:l,contrastText:"#ffffff"},secondary:{main:Qo.grey.mid,light:Qo.grey.light,dark:Qo.black},grey:bs,success:Qo.semantic.success,warning:Qo.semantic.warning,error:Qo.semantic.error,info:Qo.semantic.info,background:{default:n,paper:r},text:{primary:o,secondary:a},divider:i},typography:{fontFamily:N1,h1:{fontWeight:500,letterSpacing:"-0.025em"},h2:{fontWeight:500,letterSpacing:"-0.025em"},h3:{fontWeight:500,letterSpacing:"-0.025em"},h4:{fontWeight:500,letterSpacing:"-0.025em"},h5:{fontWeight:500,letterSpacing:"-0.025em"},h6:{fontWeight:500,letterSpacing:"-0.025em"},subtitle1:{fontWeight:500,letterSpacing:"-0.025em"},subtitle2:{fontWeight:500,letterSpacing:"-0.025em"},body1:{letterSpacing:"-0.025em"},body2:{letterSpacing:"-0.025em"},button:{fontWeight:500,letterSpacing:"-0.025em",textTransform:"none"}},shape:{borderRadius:4},components:{MuiButtonBase:{defaultProps:{disableRipple:!0,disableTouchRipple:!0}},MuiCssBaseline:{styleOverrides:{"*":{scrollbarWidth:"thin",scrollbarColor:t?"#475569 #1e293b":`${bs[300]} ${bs[100]}`,"&::-webkit-scrollbar":{width:"8px",height:"8px"},"&::-webkit-scrollbar-track":{background:t?"#1e293b":bs[100],borderRadius:"4px"},"&::-webkit-scrollbar-thumb":{background:t?"#475569":bs[300],borderRadius:"4px","&:hover":{background:t?"#64748b":bs[400]}},"&::-webkit-scrollbar-corner":{background:t?"#1e293b":bs[100]}},"div[data-radix-popper-content-wrapper]":{zIndex:"1300 !important"}}},MuiButton:{styleOverrides:{root:{borderRadius:20,textTransform:"none",fontWeight:500,boxShadow:"none","&:hover":{boxShadow:Gw}},contained:{"&:hover":{boxShadow:"0 2px 4px rgba(0, 0, 0, 0.1)"}},outlined:{color:o,borderColor:t?"#475569":bs[300],"&:hover":{borderColor:t?"#64748b":bs[400],backgroundColor:t?"rgba(255, 255, 255, 0.06)":"rgba(0, 0, 0, 0.04)"}}}},MuiCard:{styleOverrides:{root:{borderRadius:4,boxShadow:Gw,border:"1px solid",borderColor:i,backgroundColor:r}}},MuiChip:{styleOverrides:{root:{borderRadius:4,fontWeight:500}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:4},"& .MuiInputLabel-outlined":{backgroundColor:r,paddingLeft:4,paddingRight:4,"&.MuiInputLabel-shrink":{transform:"translate(14px, -9px) scale(0.75)"}}}}},MuiDialog:{styleOverrides:{paper:{borderRadius:4,boxShadow:"0px 20px 25px -5px rgba(0, 0, 0, 0.1), 0px 10px 10px -5px rgba(0, 0, 0, 0.04)"}}},MuiSelect:{styleOverrides:{select:{fontFamily:N1,fontSize:"0.875rem",color:a}}},MuiInputLabel:{styleOverrides:{root:{"&.MuiInputLabel-outlined":{backgroundColor:r,paddingLeft:4,paddingRight:4}}}},MuiOutlinedInput:{styleOverrides:{notchedOutline:{border:"none"},root:{border:`1px solid ${i}`,borderRadius:8,transition:"border-color 120ms ease-in",backgroundColor:r,"&:hover":{borderColor:t?"#475569":bs[300]},"&.Mui-focused":{borderColor:t?"#64748b":bs[400],outline:"none"}}}},MuiMenuItem:{styleOverrides:{root:{fontFamily:N1,fontSize:"0.875rem"}}},MuiInputBase:{styleOverrides:{root:{fontFamily:N1}}},MuiMenu:{styleOverrides:{paper:{borderRadius:4,boxShadow:"0px 10px 15px -3px rgba(0, 0, 0, 0.1), 0px 4px 6px -2px rgba(0, 0, 0, 0.05)",border:`1px solid ${i}`,backgroundColor:r,color:o}}},MuiBreadcrumbs:{styleOverrides:{root:{"& .MuiBreadcrumbs-separator":{margin:"0 6px",color:bs[400]}}}},MuiDivider:{styleOverrides:{root:{borderColor:i}},defaultProps:{sx:{my:1}}},MuiListItemButton:{styleOverrides:{root:{borderRadius:28,margin:"2px 8px",padding:"8px 16px","&:hover":{backgroundColor:t?"rgba(255, 255, 255, 0.08)":Qo.offWhite},"&.Mui-selected":{backgroundColor:t?"rgba(255, 255, 255, 0.12)":Qo.offWhite,color:o,"& .MuiListItemIcon-root":{color:o},"& .MuiListItemText-primary":{color:o},"&:hover":{backgroundColor:t?"rgba(255, 255, 255, 0.16)":Qo.grey.light}}}}},MuiAppBar:{styleOverrides:{root:{backgroundColor:r,color:o,boxShadow:Gw}}}}})};dH("light");function K5e({children:e}){const{mode:t}=kb(),n=w.useMemo(()=>dH(t),[t]);return m.jsxs(zK,{theme:n,children:[m.jsx(UJ,{}),e]})}const Q5e=w.lazy(()=>jo(()=>import("./HomePage-BEfG37L3.js"),[])),X5e=w.lazy(()=>jo(()=>import("./MainPage-owd1ua9R.js"),__vite__mapDeps([7,8]))),Z5e=w.lazy(()=>jo(()=>import("./ModelPage-BydBAuRk.js"),[])),J5e=w.lazy(()=>jo(()=>import("./PackagePage-BDl_rs-E.js"),[])),e3e=w.lazy(()=>jo(()=>import("./MaterializationsPage-BqaGRrxZ.js"),[])),t3e=w.lazy(()=>jo(()=>import("./EnvironmentPage-CB0NkVVs.js"),[])),n3e=w.lazy(()=>jo(()=>import("./RouteError-CyReblMg.js"),[])),r3e=w.lazy(()=>jo(()=>import("./WorkbookPage-CzjOTRw8.js"),[])),o3e=w.lazy(()=>jo(()=>import("./ThemeEditorPage-zW7ndXQ8.js"),__vite__mapDeps([9,8]))),a3e=(e="/",t,n)=>_W([{path:e,element:m.jsx($ie,{children:m.jsx(NEe,{workbookStorage:t,children:m.jsx(K5e,{children:m.jsx(w.Suspense,{fallback:m.jsx(wa,{}),children:m.jsx(X5e,{headerProps:n})})})})}),errorElement:m.jsx(n3e,{}),children:[{index:!0,element:m.jsx(Q5e,{})},{path:"settings/theme",element:m.jsx(o3e,{})},{path:"settings",element:m.jsx(dW,{to:"/settings/theme",replace:!0})},{path:":environmentName",element:m.jsx(t3e,{})},{path:":environmentName/:packageName",element:m.jsx(J5e,{})},{path:":environmentName/:packageName/materializations",element:m.jsx(e3e,{})},{path:":environmentName/:packageName/*",element:m.jsx(Z5e,{})},{path:":environmentName/:packageName/workbook/:workspace/:workbookPath",element:m.jsx(r3e,{})}]}]),i3e=a3e("/",new $Ee,void 0);LU.createRoot(document.getElementById("root")).render(m.jsx(w.StrictMode,{children:m.jsx(YW,{router:i3e})}));export{wa as $,HF as A,bd as B,Yn as C,pt as D,Fa as E,rc as F,kb as G,Do as H,Ar as I,l3e as J,Nt as K,Ff as L,pj as M,cu as N,WA as O,Si as P,zr as Q,kv as R,lk as S,FEe as T,Vj as U,Jl as V,gj as W,vb as X,Zf as Y,J3e as Z,c3e as _,xi as a,u3e as a0,sS as a1,W3e as a2,fO as a3,HIe as a4,dW as a5,q3e as a6,Q3e as a7,aPe as a8,Z3e as a9,rs as aA,ns as aB,LS as aC,Cm as aD,tp as aE,Nb as aF,Wve as aG,YD as aH,fE as aI,ID as aJ,_D as aK,DL as aL,PB as aM,ole as aN,s3e as aO,rd as aP,cb as aQ,Am as aR,D6 as aS,VA as aa,X3e as ab,G3e as ac,Y3e as ad,rW as ae,IS as af,_r as ag,V3e as ah,eI as ai,$t as aj,Zc as ak,Vte as al,iD as am,ro as an,Yse as ao,k5 as ap,uc as aq,Ws as ar,Toe as as,$y as at,Yre as au,XI as av,Sm as aw,Em as ax,xl as ay,ts as az,bn as b,ja as c,mn as d,ok as e,xn as f,sY as g,Wl as h,Vt as i,m as j,gn as k,xt as l,fn as m,uu as n,bl as o,Oo as p,Xf as q,w as r,lt as s,ru as t,yA as u,zF as v,Kh as w,qF as x,K3e as y,hb as z};
|
|
615
|
+
`,A6="publisher-malloy-renderer-overrides";function B5e(){if(typeof document>"u"||document.getElementById(A6))return;const e=document.createElement("style");e.id=A6,e.textContent=$5e,document.head.appendChild(e)}function z5e({result:e,height:t,drill:n,onSizeChange:r}){const o=w.useRef(null),a=w.useRef(n);a.current=n;const i=w.useCallback(v=>{a.current?.onClick(v)},[]),s=n!==void 0,l=w.useRef(!1),d=w.useRef(null),c=w.useRef(0),{theme:p,layers:g,mode:y}=kb();return w.useEffect(()=>()=>{c.current+=1,d.current?.viz.remove(),d.current=null},[]),w.useLayoutEffect(()=>{if(!o.current||!e)return;B5e();const v=o.current,S=c.current+=1;let E=!1;const b=()=>!E&&S===c.current;let C,T,O=null,R=0,A=null,I=null,F=null,_=null,z=null,$=null;l.current=!1;const k=H=>{if(l.current||E||!H.firstElementChild)return;const L=H.firstElementChild.firstElementChild;if(!L)return;const V=L.firstElementChild;let j=L.scrollHeight||L.offsetHeight||0;V&&L.classList.contains("malloy-dashboard")&&(j=V.scrollHeight||V.offsetHeight||0),j>0&&(l.current=!0,r&&r(j))};return(async()=>{let H;try{H=JSON.parse(e)}catch(te){console.error("Error parsing visualization result:",te);return}const L=await F5e(H),V=L?iD([...g,L],y):p;if(!b())return;try{T=await _5e(V,i)}catch(te){console.error("Failed to create renderer:",te);return}if(!b()){T.remove(),T=void 0;return}const j=d.current;C=document.createElement("div"),C.style.width="100%",C.style.height="100%",j5e(C,V),j&&(v.style.position="relative",C.style.position="absolute",C.style.inset="0",C.style.visibility="hidden"),v.appendChild(C);const Z=C;_=new MutationObserver(()=>{z&&clearTimeout(z),z=setTimeout(()=>{k(Z),_?.disconnect()},100)}),_.observe(C,{childList:!0,subtree:!0,attributes:!0});const J=T;let oe=!1;const B=()=>{oe||!b()||(oe=!0,$&&(clearTimeout($),$=null),j&&(j.viz.remove(),j.node.parentNode===v&&v.removeChild(j.node)),Z.style.position="",Z.style.inset="",Z.style.visibility="",v.style.position="",d.current={viz:J,node:Z},k(Z))};try{T.setResult(H),T.render(C);const te=a.current;try{if(te){const re=tCe(T,te.canDrill),G=()=>{try{nCe(Z,re)}catch(ie){console.warn("Drill affordance skipped:",ie)}};G();const le=ie=>{const ue=ie.querySelector(".cell-content")??ie,ve=ue.getBoundingClientRect();ue.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:ue.ownerDocument.defaultView,clientX:Math.round(ve.left+ve.width/2),clientY:Math.round(ve.bottom)}))},se=ie=>ie.target?.closest?.(`.${Jc}`)??null,ne=(ie,ue)=>{R_(ie,ue)?.focus()};A=ie=>{const ue=se(ie);if(!ue)return;const ve=ie.key==="ArrowDown"?1:ie.key==="ArrowUp"?-1:ie.key==="Home"?"first":ie.key==="End"?"last":void 0;if(ve!==void 0){ie.preventDefault(),ne(ue,ve);return}ie.key==="Enter"?(ie.preventDefault(),le(ue)):ie.key===" "&&ie.preventDefault()},I=ie=>{if(ie.key!==" ")return;const ue=se(ie);ue&&(ie.preventDefault(),le(ue))},F=ie=>{const ue=ie.target?.closest?.(`.${Jc}`);ue&&R_(ue,0)},Z.addEventListener("keydown",A),Z.addEventListener("keyup",I),Z.addEventListener("focusin",F),re.size>0&&typeof MutationObserver<"u"&&(O=new MutationObserver(()=>{cancelAnimationFrame(R),R=requestAnimationFrame(G)}),O.observe(Z,{childList:!0,subtree:!0}))}}catch(re){console.warn("Drill affordance skipped:",re)}T.onReady(B),$=setTimeout(B,1e4)}catch(te){console.error("Error rendering visualization:",te),_?.disconnect(),O?.disconnect(),T.remove(),T=void 0,Z.parentNode===v&&v.removeChild(Z)}})(),()=>{E=!0,_?.disconnect(),z&&clearTimeout(z),$&&clearTimeout($),C&&d.current?.node!==C&&(A&&C.removeEventListener("keydown",A),I&&C.removeEventListener("keyup",I),F&&C.removeEventListener("focusin",F),O?.disconnect(),cancelAnimationFrame(R),T?.remove(),C.parentNode===v&&v.removeChild(C),v.style.position="")}},[e,i,s,r,p,g,y]),m.jsx("div",{ref:o,style:{width:"100%",height:t?`${t}px`:"400px"}})}function H5e(e){return typeof window>"u"?m.jsx(Nt,{sx:{width:"100%",height:e.height?`${e.height}px`:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"text.secondary"},children:"Loading..."}):m.jsx(w.Suspense,{fallback:m.jsx(Nt,{sx:{width:"100%",height:e.height?`${e.height}px`:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"text.secondary"},children:"Loading visualization..."}),children:m.jsx(z5e,{...e})})}const U5e=Object.freeze(Object.defineProperty({__proto__:null,default:H5e},Symbol.toStringTag,{value:"Module"})),Qo={white:"#FFFFFF",offWhite:"#F8F8F6",grey:{light:"#E6E4E1",mid:"#91908F"},black:"#30302E",semantic:{success:{main:"#7A9461",light:"#E8EDDF",dark:"#5F7A4B"},warning:{main:"#B5943A",light:"#F3ECDA",dark:"#8E7430"},error:{main:"#BF6050",light:"#F2DDD9",dark:"#9C4D40"},info:{main:"#628698",light:"#DDE6EA",dark:"#4D6B79"}}},Z3e='"JetBrains Mono", "ui-monospace", "SFMono-Regular", "Menlo", monospace',N1='"Inter", "Helvetica Neue", "Arial", sans-serif',bs={50:Qo.offWhite,100:"#F4F3F1",200:Qo.grey.light,300:"#D4D2CF",400:"#B3B1AF",500:Qo.grey.mid,600:"#73726F",700:"#555450",800:"#424140",900:Qo.black},J3e={headerHeight:56},Gw="0 1px 3px rgba(0, 0, 0, 0.1)",V5e="#0f172a",W5e="#1e293b",q5e="#f1f5f9",G5e="#cbd5e1",Y5e="#334155",dH=(e="light")=>{const t=e==="dark",n=t?V5e:Qo.white,r=t?W5e:Qo.white,o=t?q5e:Qo.black,a=t?G5e:Qo.grey.mid,i=t?Y5e:Qo.grey.light,s=t?"#334155":"#555450",l=t?"#475569":"#73726f";return TS({cssVariables:{nativeColor:!0},palette:{mode:e,primary:{main:s,light:Qo.grey.light,dark:l,contrastText:"#ffffff"},secondary:{main:Qo.grey.mid,light:Qo.grey.light,dark:Qo.black},grey:bs,success:Qo.semantic.success,warning:Qo.semantic.warning,error:Qo.semantic.error,info:Qo.semantic.info,background:{default:n,paper:r},text:{primary:o,secondary:a},divider:i},typography:{fontFamily:N1,h1:{fontWeight:500,letterSpacing:"-0.025em"},h2:{fontWeight:500,letterSpacing:"-0.025em"},h3:{fontWeight:500,letterSpacing:"-0.025em"},h4:{fontWeight:500,letterSpacing:"-0.025em"},h5:{fontWeight:500,letterSpacing:"-0.025em"},h6:{fontWeight:500,letterSpacing:"-0.025em"},subtitle1:{fontWeight:500,letterSpacing:"-0.025em"},subtitle2:{fontWeight:500,letterSpacing:"-0.025em"},body1:{letterSpacing:"-0.025em"},body2:{letterSpacing:"-0.025em"},button:{fontWeight:500,letterSpacing:"-0.025em",textTransform:"none"}},shape:{borderRadius:4},components:{MuiButtonBase:{defaultProps:{disableRipple:!0,disableTouchRipple:!0}},MuiCssBaseline:{styleOverrides:{"*":{scrollbarWidth:"thin",scrollbarColor:t?"#475569 #1e293b":`${bs[300]} ${bs[100]}`,"&::-webkit-scrollbar":{width:"8px",height:"8px"},"&::-webkit-scrollbar-track":{background:t?"#1e293b":bs[100],borderRadius:"4px"},"&::-webkit-scrollbar-thumb":{background:t?"#475569":bs[300],borderRadius:"4px","&:hover":{background:t?"#64748b":bs[400]}},"&::-webkit-scrollbar-corner":{background:t?"#1e293b":bs[100]}},"div[data-radix-popper-content-wrapper]":{zIndex:"1300 !important"}}},MuiButton:{styleOverrides:{root:{borderRadius:20,textTransform:"none",fontWeight:500,boxShadow:"none","&:hover":{boxShadow:Gw}},contained:{"&:hover":{boxShadow:"0 2px 4px rgba(0, 0, 0, 0.1)"}},outlined:{color:o,borderColor:t?"#475569":bs[300],"&:hover":{borderColor:t?"#64748b":bs[400],backgroundColor:t?"rgba(255, 255, 255, 0.06)":"rgba(0, 0, 0, 0.04)"}}}},MuiCard:{styleOverrides:{root:{borderRadius:4,boxShadow:Gw,border:"1px solid",borderColor:i,backgroundColor:r}}},MuiChip:{styleOverrides:{root:{borderRadius:4,fontWeight:500}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:4},"& .MuiInputLabel-outlined":{backgroundColor:r,paddingLeft:4,paddingRight:4,"&.MuiInputLabel-shrink":{transform:"translate(14px, -9px) scale(0.75)"}}}}},MuiDialog:{styleOverrides:{paper:{borderRadius:4,boxShadow:"0px 20px 25px -5px rgba(0, 0, 0, 0.1), 0px 10px 10px -5px rgba(0, 0, 0, 0.04)"}}},MuiSelect:{styleOverrides:{select:{fontFamily:N1,fontSize:"0.875rem",color:a}}},MuiInputLabel:{styleOverrides:{root:{"&.MuiInputLabel-outlined":{backgroundColor:r,paddingLeft:4,paddingRight:4}}}},MuiOutlinedInput:{styleOverrides:{notchedOutline:{border:"none"},root:{border:`1px solid ${i}`,borderRadius:8,transition:"border-color 120ms ease-in",backgroundColor:r,"&:hover":{borderColor:t?"#475569":bs[300]},"&.Mui-focused":{borderColor:t?"#64748b":bs[400],outline:"none"}}}},MuiMenuItem:{styleOverrides:{root:{fontFamily:N1,fontSize:"0.875rem"}}},MuiInputBase:{styleOverrides:{root:{fontFamily:N1}}},MuiMenu:{styleOverrides:{paper:{borderRadius:4,boxShadow:"0px 10px 15px -3px rgba(0, 0, 0, 0.1), 0px 4px 6px -2px rgba(0, 0, 0, 0.05)",border:`1px solid ${i}`,backgroundColor:r,color:o}}},MuiBreadcrumbs:{styleOverrides:{root:{"& .MuiBreadcrumbs-separator":{margin:"0 6px",color:bs[400]}}}},MuiDivider:{styleOverrides:{root:{borderColor:i}},defaultProps:{sx:{my:1}}},MuiListItemButton:{styleOverrides:{root:{borderRadius:28,margin:"2px 8px",padding:"8px 16px","&:hover":{backgroundColor:t?"rgba(255, 255, 255, 0.08)":Qo.offWhite},"&.Mui-selected":{backgroundColor:t?"rgba(255, 255, 255, 0.12)":Qo.offWhite,color:o,"& .MuiListItemIcon-root":{color:o},"& .MuiListItemText-primary":{color:o},"&:hover":{backgroundColor:t?"rgba(255, 255, 255, 0.16)":Qo.grey.light}}}}},MuiAppBar:{styleOverrides:{root:{backgroundColor:r,color:o,boxShadow:Gw}}}}})};dH("light");function K5e({children:e}){const{mode:t}=kb(),n=w.useMemo(()=>dH(t),[t]);return m.jsxs(zK,{theme:n,children:[m.jsx(UJ,{}),e]})}const Q5e=w.lazy(()=>jo(()=>import("./HomePage-ZXsmEAjw.js"),[])),X5e=w.lazy(()=>jo(()=>import("./MainPage-u-IAaBdE.js"),__vite__mapDeps([7,8]))),Z5e=w.lazy(()=>jo(()=>import("./ModelPage-BjB-p4Qn.js"),[])),J5e=w.lazy(()=>jo(()=>import("./PackagePage-le809jUO.js"),[])),e3e=w.lazy(()=>jo(()=>import("./MaterializationsPage-AcoL_Rnx.js"),[])),t3e=w.lazy(()=>jo(()=>import("./EnvironmentPage-CiuWaYTk.js"),[])),n3e=w.lazy(()=>jo(()=>import("./RouteError-DTlqmNQd.js"),[])),r3e=w.lazy(()=>jo(()=>import("./WorkbookPage-CIRFZXlP.js"),[])),o3e=w.lazy(()=>jo(()=>import("./ThemeEditorPage-DrmSzweH.js"),__vite__mapDeps([9,8]))),a3e=(e="/",t,n)=>_W([{path:e,element:m.jsx($ie,{children:m.jsx(NEe,{workbookStorage:t,children:m.jsx(K5e,{children:m.jsx(w.Suspense,{fallback:m.jsx(wa,{}),children:m.jsx(X5e,{headerProps:n})})})})}),errorElement:m.jsx(n3e,{}),children:[{index:!0,element:m.jsx(Q5e,{})},{path:"settings/theme",element:m.jsx(o3e,{})},{path:"settings",element:m.jsx(dW,{to:"/settings/theme",replace:!0})},{path:":environmentName",element:m.jsx(t3e,{})},{path:":environmentName/:packageName",element:m.jsx(J5e,{})},{path:":environmentName/:packageName/materializations",element:m.jsx(e3e,{})},{path:":environmentName/:packageName/*",element:m.jsx(Z5e,{})},{path:":environmentName/:packageName/workbook/:workspace/:workbookPath",element:m.jsx(r3e,{})}]}]),i3e=a3e("/",new $Ee,void 0);LU.createRoot(document.getElementById("root")).render(m.jsx(w.StrictMode,{children:m.jsx(YW,{router:i3e})}));export{wa as $,Yn as A,bd as B,FEe as C,pt as D,Fa as E,rc as F,kb as G,Do as H,Ar as I,l3e as J,Nt as K,Ff as L,pj as M,cu as N,WA as O,Si as P,zr as Q,kv as R,lk as S,xt as T,Vj as U,Jl as V,gj as W,vb as X,Zf as Y,J3e as Z,c3e as _,sY as a,u3e as a0,sS as a1,W3e as a2,fO as a3,HIe as a4,dW as a5,q3e as a6,Q3e as a7,aPe as a8,Z3e as a9,rs as aA,ns as aB,LS as aC,Cm as aD,tp as aE,Nb as aF,Wve as aG,YD as aH,fE as aI,ID as aJ,_D as aK,DL as aL,PB as aM,ole as aN,s3e as aO,rd as aP,cb as aQ,Am as aR,D6 as aS,VA as aa,X3e as ab,G3e as ac,Y3e as ad,rW as ae,IS as af,_r as ag,V3e as ah,eI as ai,$t as aj,Zc as ak,Vte as al,iD as am,ro as an,Yse as ao,k5 as ap,uc as aq,Ws as ar,Toe as as,$y as at,Yre as au,XI as av,Sm as aw,Em as ax,xl as ay,ts as az,xi as b,ja as c,bn as d,ok as e,mn as f,K3e as g,xn as h,Wl as i,m as j,Vt as k,gn as l,fn as m,uu as n,bl as o,Oo as p,Xf as q,w as r,lt as s,ru as t,yA as u,zF as v,Kh as w,qF as x,hb as y,HF as z};
|