@datarecce/ui 1.59.0 → 1.60.0-nightly.20260805

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.
@@ -0,0 +1,6 @@
1
+ "use client";
2
+ import{n as e}from"./colors-4aGxuAVw.js";import{createContext as t,useCallback as n,useContext as r,useEffect as i,useState as a}from"react";import{Fragment as o,jsx as s,jsxs as c}from"react/jsx-runtime";import l from"@mui/material/Box";import u from"@mui/material/Stack";import d from"@mui/material/Typography";import f from"@mui/material/IconButton";import p from"@mui/material/CircularProgress";import m from"@mui/material/Tooltip";import{PiCopy as h,PiDotsThreeVertical as g}from"react-icons/pi";import _ from"file-saver";import v from"write-excel-file/universal";import{useCopyToClipboard as y}from"usehooks-ts";import b from"@mui/material/Alert";import x from"@mui/material/Snackbar";import ee from"@mui/material/Menu";import te from"@mui/material/MenuItem";import S from"lodash";import{VscClose as ne,VscKebabVertical as re,VscKey as ie,VscPin as ae,VscPinned as oe}from"react-icons/vsc";import{format as se,formatDistance as ce,parseISO as le}from"date-fns";const C=t(null);C.displayName=`RecceThemeContext`;function ue(){let e=r(C);if(!e)throw Error(`useRecceTheme must be used within RecceProvider`);return e}function de(){return r(C)}function fe({children:e,defaultMode:t=`system`}){let[n,r]=a(t),[o,c]=a(()=>typeof window>`u`?`light`:t===`system`?window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:t);return i(()=>{if(n===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`);c(e.matches?`dark`:`light`);let t=e=>{c(e.matches?`dark`:`light`)};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)}c(n)},[n]),i(()=>{typeof window>`u`||document.documentElement.classList.toggle(`dark`,o===`dark`)},[o]),s(C.Provider,{value:{mode:n,resolvedMode:o,setMode:r},children:e})}function pe(){let e=de(),[t,n]=a(!1),[r,o]=a(!1);return i(()=>{if(n(!0),!e){let e=()=>{o(document.documentElement.classList.contains(`dark`))};e();let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),()=>t.disconnect()}},[e]),t?e?e.resolvedMode===`dark`:r:!1}function me(e,t){return`${e}_${t}`}function he(e,t,n){return n?.has(me(e,t))??!1}function ge(e,t){let n=new Blob([e],{type:`text/csv;charset=utf-8`});_(n,t)}function _e(e,t){let n=new Blob([e],{type:`text/tab-separated-values;charset=utf-8`});_(n,t)}function ve(e,t){_(e,t)}async function ye(e){if(typeof navigator>`u`||!navigator.clipboard?.writeText)throw Error(`Clipboard API not available. Ensure you're using HTTPS or localhost.`);await navigator.clipboard.writeText(e)}function be(e){return e==null?null:typeof e==`object`?{value:JSON.stringify(e),type:String}:typeof e==`number`?{value:e,type:Number}:typeof e==`boolean`?{value:e,type:Boolean}:{value:String(e),type:String}}function xe(e,t){let n=e.map(e=>({value:e,type:String})),r=t.map(e=>e.map(be));return v([n,...r]).toBlob()}function Se(e,t){return(e==null?``:String(e))===(t==null?``:String(t))?e:`${e==null?``:`(${e})`} ${t==null?``:`(${t})`}`.trim()}function w(e){return!e?.columns||!e.data?null:{columns:e.columns.map(e=>e.name),rows:e.data.map(e=>[...e])}}function Ce(e){return w(e)}function we(e){return w(e)}function Te(e,t){let n=e,r=t?.displayMode??`inline`,i=t?.primaryKeys??[];return n?.diff?Ee(n.diff,r,i):De(n,r)}function Ee(e,t,n){if(!e?.columns||!e?.data)return null;let r=e.columns.findIndex(e=>e.key.toLowerCase()===`in_a`),i=e.columns.findIndex(e=>e.key.toLowerCase()===`in_b`),a=e.columns.filter(e=>e.key.toLowerCase()!==`in_a`&&e.key.toLowerCase()!==`in_b`),o=a.map(e=>e.name),s=a.map(t=>e.columns.findIndex(e=>e.key===t.key)),c=n.map(t=>e.columns.findIndex(e=>e.key===t)).filter(e=>e>=0),l=e=>s.map(t=>e[t]),u=e=>c.length===0?``:c.map(t=>String(e[t]??``)).join(`|||`),d=new Map,f=[];if(e.data.forEach((e,t)=>{let n=r>=0?e[r]:!0,a=i>=0?e[i]:!0,o=u(e);o===``&&(o=String(t)),d.has(o)||(d.set(o,{base:null,current:null}),f.push(o));let s=d.get(o);if(!s)return;let c=l(e);n&&(s.base=c),a&&(s.current=c)}),t===`side_by_side`){let e=[];o.forEach(t=>{e.push(`base__${t}`,`current__${t}`)});let t=[];for(let e of f){let n=d.get(e);if(!n)continue;let r=n.base,i=n.current,a=[];o.forEach((e,t)=>{a.push(r?r[t]:null),a.push(i?i[t]:null)}),t.push(a)}return{columns:e,rows:t}}let p=[...o],m=[];for(let e of f){let t=d.get(e);if(!t)continue;let n=t.base,r=t.current,i=[];o.forEach((e,t)=>{let a=n?n[t]:null,o=r?r[t]:null;i.push(Se(a,o))}),m.push(i)}return{columns:p,rows:m}}function De(e,t){let n=e?.current||e?.base;if(!n)return null;if(!e?.base||!e?.current)return w(n);let r=e.current.columns.map(e=>e.name);if(t===`side_by_side`){let t=[];r.forEach(e=>{t.push(`base__${e}`,`current__${e}`)});let n=[],i=Math.max(e.base.data.length,e.current.data.length);for(let t=0;t<i;t++){let i=[],a=t<e.base.data.length?e.base.data[t]:null,o=t<e.current.data.length?e.current.data[t]:null;r.forEach((e,t)=>{i.push(a?a[t]:null),i.push(o?o[t]:null)}),n.push(i)}return{columns:t,rows:n}}let i=[...r],a=[],o=Math.max(e.base.data.length,e.current.data.length);for(let t=0;t<o;t++){let n=t<e.base.data.length?e.base.data[t]:null,i=t<e.current.data.length?e.current.data[t]:null,o=[];r.forEach((e,t)=>{let r=n?n[t]:null,a=i?i[t]:null;o.push(Se(r,a))}),a.push(o)}return{columns:i,rows:a}}function Oe(e){let t=e,n=t?.current||t?.base;if(!n)return null;if(t?.base&&t?.current){let e=[`_source`,...t.current.columns.map(e=>e.name)],n=[];return t.base.data.forEach(e=>{n.push([`base`,...e])}),t.current.data.forEach(e=>{n.push([`current`,...e])}),{columns:e,rows:n}}return w(n)}function ke(e){let t=e;if(!t||typeof t!=`object`)return null;let n=[`node`,`base_count`,`current_count`,`diff`,`diff_percent`],r=[];for(let[e,n]of Object.entries(t))if(n&&typeof n==`object`){let t=n.base,i=n.curr,a=t!=null&&i!=null?i-t:null,o=t&&a!==null?(a/t*100).toFixed(2)+`%`:null;r.push([e,t,i,a,o])}return{columns:n,rows:r}}function Ae(e){let t=e;return t?.data?w(t.data):null}function je(e){return w(e)}function Me(e){let t=e,n=!!t?.base?.values,r=!!t?.current?.values;if(!n&&!r)return null;let i=[`_source`,`value`,`count`],a=[];return t?.base?.values&&t.base.values.forEach((e,n)=>{a.push([`base`,e,t.base.counts[n]])}),t?.current?.values&&t.current.values.forEach((e,n)=>{a.push([`current`,e,t.current.counts[n]])}),{columns:i,rows:a}}const Ne={query:Ce,query_base:we,query_diff:Te,profile:Oe,profile_diff:Oe,row_count:ke,row_count_diff:ke,value_diff:Ae,value_diff_detail:je,top_k_diff:Me};function Pe(e,t,n){let r=Ne[e];if(!r)return null;try{return r(t,n)}catch(t){return console.error(`Failed to extract CSV data for run type "${e}":`,t),null}}function Fe(e){return e in Ne}function Ie(e){if(e==null)return``;let t=typeof e==`object`?JSON.stringify(e):String(e);return t.includes(`,`)||t.includes(`"`)||t.includes(`
3
+ `)||t.includes(`\r`)?`"${t.replace(/"/g,`""`)}"`:t}function Le(e,t){return``+[e.map(Ie).join(`,`),...t.map(e=>e.map(Ie).join(`,`))].join(`\r
4
+ `)}function Re(e){return e==null?``:(typeof e==`object`?JSON.stringify(e):String(e)).replace(/[\t\r\n]+/g,` `)}function ze(e,t){return[e.map(Re).join(` `),...t.map(e=>e.map(Re).join(` `))].join(`\r
5
+ `)}function Be(e){let t=e===1?`row`:`rows`;if(e<1e3)return`${e} ${t}`;if(e<1e6){let n=e/1e3;return n>=999.95?`1M ${t}`:`${n%1==0?String(n):n.toFixed(1)}k ${t}`}let n=e/1e6;return`${n%1==0?String(n):n.toFixed(1)}M ${t}`}function Ve(){let e=new Date;return`${e.getFullYear()}${String(e.getMonth()+1).padStart(2,`0`)}${String(e.getDate()).padStart(2,`0`)}-${String(e.getHours()).padStart(2,`0`)}${String(e.getMinutes()).padStart(2,`0`)}${String(e.getSeconds()).padStart(2,`0`)}`}function He(e,t){let n=Ve(),r=e.replace(/_/g,`-`),i;return t?.node_names&&Array.isArray(t.node_names)&&t.node_names.length===1?i=String(t.node_names[0]):t?.model&&typeof t.model==`string`&&(i=t.model),i?(i=i.replace(/[^a-zA-Z0-9_.-]/g,`-`).toLowerCase(),`${r}-${i}-${n}.csv`):`${r}-result-${n}.csv`}function Ue(e){let{primaryKeys:t,pinnedColumns:n,allColumns:r,excludeColumns:i=[]}=e,a=[],o=new Set,s=e=>i.includes(e);return t.forEach(e=>{!o.has(e)&&!s(e)&&(a.push(e),o.add(e))}),n.forEach(e=>{!o.has(e)&&!s(e)&&(a.push(e),o.add(e))}),r.forEach(e=>{!o.has(e)&&!s(e)&&(a.push(e),o.add(e))}),a}function We(e,t,n){return!t||!n||e===`added`||e===`removed`||e===`modified`}function T(e,t){return t.includes(e)}function Ge(e,t){return t.includes(e)}function E(e,t){return t.includes(e)}function Ke(e,t){return e[t]}function D(e){let{columnMap:t,primaryKeys:n,pinnedColumns:r,columnsRenderMode:i,changedOnly:a=!1,rowStats:o,excludeColumns:s=[],strictMode:c=!1}=e,l=(o?.modified??0)>0,u=[];return n.forEach(e=>{let n=Ke(t,e);if(!n){if(c)throw Error(`Primary key column "${e}" not found in columnMap`);return}u.push({key:e,name:e,columnType:n.colType,columnStatus:n.status,columnRenderMode:i[e],frozen:!0,isPrimaryKey:!0})}),r.forEach(e=>{if(T(e,n)||E(e,s))return;let r=Ke(t,e);if(!r){if(c)throw Error(`Pinned column "${e}" not found in columnMap`);return}u.push({key:e,name:e,columnType:r.colType,columnStatus:r.status,columnRenderMode:i[e],frozen:!0})}),Object.entries(t).forEach(([e,t])=>{T(e,n)||Ge(e,r)||E(e,s)||We(t.status,a,l)&&u.push({key:e,name:e,columnType:t.colType,columnStatus:t.status,columnRenderMode:i[e]})}),u}function qe(e){let{columnMap:t,primaryKeys:n,pinnedColumns:r,columnsRenderMode:i,excludeColumns:a=[],strictMode:o=!1}=e,s=[];return n.forEach(e=>{let n=t[e];if(!n){if(o)throw Error(`Primary key column "${e}" not found in columnMap`);return}s.push({key:e,name:e,columnType:n.colType,columnRenderMode:i[e],frozen:!0,isPrimaryKey:!0})}),r.forEach(e=>{if(n.includes(e)||a.includes(e))return;let r=t[e];if(!r){if(o)throw Error(`Pinned column "${e}" not found in columnMap`);return}s.push({key:r.key,name:e,columnType:r.colType,columnRenderMode:i[e],frozen:!0})}),Object.entries(t).forEach(([e,t])=>{n.includes(e)||r.includes(e)||a.includes(e)||s.push({key:t.key,name:e,columnType:t.colType,columnRenderMode:i[e]})}),s}function O(e,t){return[{value:`Show raw value`,onClick:()=>{t({[e]:`raw`})}},{value:`Show 2 decimal points`,onClick:()=>{t({[e]:2})}},{value:`Show as percentage`,onClick:()=>{t({[e]:`percent`})}},{value:`Show with net change`,onClick:()=>{t({[e]:`delta`})}}]}function k({value:t,colorPalette:n,grayOut:r,noCopy:i,fontSize:o,onCopy:u}){let[d,f]=a(!1),p=pe(),m=p?e[n][300]:e[n][800],h=p?e[n][900]:e[n][100];return c(l,{sx:{display:`flex`,p:`2px 5px`,minWidth:`30px`,maxWidth:`200px`,overflow:`hidden`,textOverflow:`ellipsis`,color:m,bgcolor:h,alignItems:`center`,gap:`2px`,borderRadius:`8px`,fontSize:o,flexShrink:i?0:`inherit`},onMouseEnter:()=>{f(!0)},onMouseLeave:()=>{f(!1)},children:[s(l,{sx:{overflow:`hidden`,textOverflow:`ellipsis`,color:r?`text.disabled`:`inherit`},children:t}),s(Je,{value:t,noCopy:i,grayOut:r,isHovered:d,onCopy:u})]})}function Je({value:e,noCopy:t,grayOut:n,isHovered:r,onCopy:i}){return t||n||!r?null:s(m,{title:`Copy Value`,children:s(f,{"aria-label":`Copy`,size:`small`,onClick:()=>{i?i(e):typeof navigator<`u`&&navigator.clipboard&&navigator.clipboard.writeText(e)},sx:{minWidth:`0.625rem`,height:`0.625rem`,display:`flex`,alignItems:`center`,justifyContent:`center`,p:0,color:`inherit`},children:s(h,{size:`0.625rem`})})})}const Ye=t(null);let A=0;function Xe({children:e}){let[t,r]=a([]),i=n(e=>{let t=e.id||`toast-${++A}`,n={id:t,open:!0,duration:e.type===`loading`?null:e.duration??5e3,closable:e.closable??!0,...e};return r(e=>[...e.filter(e=>e.id!==t),n]),t},[]),o=n(e=>{r(t=>t.map(t=>t.id===e?{...t,open:!1}:t)),setTimeout(()=>{r(t=>t.filter(t=>t.id!==e))},300)},[]),l={toast:i,success:e=>i({...e,type:`success`}),error:e=>i({...e,type:`error`}),warning:e=>i({...e,type:`warning`}),info:e=>i({...e,type:`info`}),loading:e=>i({...e,type:`loading`}),dismiss:o,update:n((e,t)=>{r(n=>n.map(n=>n.id===e?{...n,...t}:n))},[])};return c(Ye.Provider,{value:l,children:[e,t.map(e=>s(x,{open:e.open,autoHideDuration:e.duration,onClose:()=>e.closable&&o(e.id),anchorOrigin:{vertical:`bottom`,horizontal:`right`},children:s(b,{severity:e.type===`loading`?`info`:e.type||`info`,onClose:e.closable?()=>o(e.id):void 0,icon:e.type===`loading`?s(p,{size:20,color:`inherit`}):void 0,sx:{width:`100%`,minWidth:300},children:c(u,{spacing:.5,children:[e.title&&s(d,{variant:`subtitle2`,sx:{fontWeight:`bold`},children:e.title}),e.description&&s(d,{variant:`body2`,component:`div`,children:e.description})]})})},e.id))]})}function Ze(){let e=r(Ye);if(!e)throw Error(`useToaster must be used within ToasterProvider`);return e}const j=new Set,M={create:e=>{let t=e.id||`toast-${++A}`;return j.forEach(n=>n({type:`create`,options:{...e,id:t}})),t},success:e=>M.create({...e,type:`success`}),error:e=>M.create({...e,type:`error`}),warning:e=>M.create({...e,type:`warning`}),info:e=>M.create({...e,type:`info`}),loading:e=>M.create({...e,type:`loading`}),dismiss:e=>{j.forEach(t=>t({type:`dismiss`,id:e}))},remove:e=>{j.forEach(t=>t({type:`dismiss`,id:e}))},update:(e,t)=>{j.forEach(n=>n({type:`update`,id:e,options:t}))},subscribe:e=>(j.add(e),()=>j.delete(e))};function Qe(){let[e,t]=a([]);a(()=>M.subscribe(e=>{if(e.type===`create`&&e.options){let n={id:e.options.id||`toast-${++A}`,open:!0,duration:e.options.type===`loading`?void 0:e.options.duration??5e3,closable:e.options.closable??!0,...e.options};t(e=>[...e.filter(e=>e.id!==n.id),n])}else if(e.type===`dismiss`&&e.id){let n=e.id;t(e=>e.map(e=>e.id===n?{...e,open:!1}:e)),setTimeout(()=>{t(e=>e.filter(e=>e.id!==n))},300)}else e.type===`update`&&e.id&&e.options&&t(t=>t.map(t=>t.id===e.id?{...t,...e.options}:t))}));let n=e=>{t(t=>t.map(t=>t.id===e?{...t,open:!1}:t)),setTimeout(()=>{t(t=>t.filter(t=>t.id!==e))},300)};return s(o,{children:e.map(e=>s(x,{open:e.open,autoHideDuration:e.duration,onClose:()=>e.closable&&n(e.id),anchorOrigin:{vertical:`bottom`,horizontal:`right`},children:s(b,{severity:e.type===`loading`?`info`:e.type||`info`,onClose:e.closable?()=>n(e.id):void 0,icon:e.type===`loading`?s(p,{size:20,color:`inherit`}):void 0,sx:{width:`100%`,minWidth:300},children:c(u,{spacing:.5,children:[e.title&&s(d,{variant:`subtitle2`,sx:{fontWeight:`bold`},children:e.title}),e.description&&s(d,{variant:`body2`,component:`div`,children:e.description})]})})},e.id))})}function $e(){function e(e){M.create({description:e,type:`info`,duration:5e3,closable:!0})}function t(e,t){M.create({title:e,description:String(t),type:`error`,duration:5e3,closable:!0})}return{successToast:e,failToast:t}}function et(e){let[,t]=y(),{successToast:n}=$e(),r=e=>{t(e),n(`${e} copied`)};return s(k,{...e,onCopy:r})}function tt({name:e,columnStatus:t,columnType:n,primaryKeys:r=[],onPrimaryKeyChange:i,pinnedColumns:u=[],onPinnedColumnsChange:d,onColumnsRenderModeChanged:p}){let[m,h]=a(null),g=!!m,_=e=>{h(e.currentTarget)},v=()=>{h(null)};if(e===`index`)return s(o,{});let y=r.includes(e),b=u.includes(e),x=t!==`added`&&t!==`removed`,S=[];return p&&(S=O(e,p)),c(l,{sx:{display:`flex`,alignItems:`center`,gap:`10px`,width:`100%`},className:`grid-header`,children:[y&&s(ie,{}),s(l,{sx:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e}),x&&i&&s(l,{component:y?ne:ie,className:y?`close-icon`:`key-icon`,sx:{display:y?`block`:`none`,cursor:`pointer`},onClick:y?()=>{i&&i(r.filter(t=>t!==e))}:()=>{i&&i([...r.filter(e=>e!==`index`),e])}}),!y&&d&&s(l,{component:b?oe:ae,className:b?`unpin-icon`:`pin-icon`,sx:{display:b?`block`:`none`,cursor:`pointer`},onClick:b?()=>{d&&d(u.filter(t=>t!==e))}:()=>{d&&d([...u,e])}}),!y&&(n===`number`||n===`float`)&&S.length>0&&c(o,{children:[s(f,{"aria-label":`Options`,size:`small`,className:`!size-4 !min-w-4`,onClick:_,children:s(re,{})}),s(ee,{anchorEl:m,open:g,onClose:v,children:S.map(e=>s(te,{onClick:()=>{e.onClick(),v()},children:e.value},e.value))})]})]})}function nt({name:e,pinnedColumns:t=[],onPinnedColumnsChange:n=()=>{},columnType:r,onColumnsRenderModeChanged:i}){let[u,d]=a(null),p=!!u,m=e=>{d(e.currentTarget)},h=()=>{d(null)},_=[];i&&(_=O(e,i));let v=t.includes(e);return c(l,{sx:{display:`flex`,alignItems:`center`,width:`100%`},className:`grid-header`,children:[s(l,{sx:{flex:1},children:e}),s(l,{component:v?oe:ae,className:v?`unpin-icon`:`pin-icon`,sx:{display:v?`block`:`none`,cursor:`pointer`},onClick:v?()=>{n(t.filter(t=>t!==e))}:()=>{n([...t,e])}}),(r===`number`||r===`float`)&&c(o,{children:[s(f,{"aria-label":`Options`,size:`small`,className:`size-6!`,sx:{p:0},onClick:m,children:s(g,{})}),s(ee,{anchorEl:u,open:p,onClose:h,children:_.map(e=>s(te,{onClick:()=>{e.onClick(),h()},children:e.value},e.value))})]})]})}function N(e,t=`en-US`,n){return typeof e==`number`?new Intl.NumberFormat(t,n).format(e):e}function rt(e){let t=e>0&&e<=.001,n=e<1&&e>=.999,r=(t=e)=>N(t,`en-US`,{style:`percent`,minimumFractionDigits:1});return t?`<${r(.001)}`:n?`>${r(.999)}`:r()}function it(e){if(typeof e!=`number`)return e;{let t=Math.abs(e),n=10**-2,r=10**3,i=10**6,a=10**9,o=10**12,s=10**15,c=t>=n,l=t>=1,u=t>=r,d=t>=i,f=t>=a,p=t>=o,m=t>=s;if(m||p)return new Intl.NumberFormat(`en-US`,{style:`unit`,unit:`liter`,unitDisplay:`narrow`,maximumFractionDigits:m?0:2}).format(e/0xe8d4a51000).replace(`L`,`T`);if(f||d||u){let t={base:f?a:d?i:r,unit:f?`B`:d?`M`:`K`};return new Intl.NumberFormat(`en-US`,{style:`unit`,unit:`liter`,unitDisplay:`narrow`,maximumFractionDigits:1}).format(e/t.base).replace(`L`,t.unit)}return l?new Intl.NumberFormat(`en-US`,{maximumFractionDigits:2}).format(e):new Intl.NumberFormat(`en-US`,{maximumFractionDigits:c?3:2,notation:c||t===0?`standard`:`scientific`}).format(e)}}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function F(e){return e.data.map((t,n)=>({...e.columns.reduce((e,n,r)=>(e[n.key]=t[r],e),{}),__status:void 0,_index:n+1}))}function at(e){let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)?t:I(e)}function I(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t&=t}return Math.abs(t)}function ot(e,t){let n=t.toLowerCase();if(n in e)return e[n];let r=Object.keys(e).find(e=>e.toLowerCase()===n);return r?e[r]:void 0}function st(e,t){let n=e[t.toLowerCase()];return n||=e[t.toUpperCase()],n||=e[t],n}function L(e,t){let n=[...e],r=[...t],i=[];for(;n.length>0&&r.length>0;)if(i.includes(n[0]))n.shift();else if(i.includes(r[0]))r.shift();else if(n[0]===r[0])i.push(n[0]),n.shift(),r.shift();else if(r.includes(n[0])){let e=r.indexOf(n[0]);for(let t=0;t<e;t++)i.includes(r[t])||i.push(r[t]);i.push(n[0]),n.shift(),r.splice(0,e+1)}else i.push(n[0]),n.shift();return n.forEach(e=>{i.includes(e)||i.push(e)}),r.forEach(e=>{i.includes(e)||i.push(e)}),i}function R(e,t){let n=L(e,t),r={};for(let i of n)r[i]=e.includes(i)?t.includes(i)?void 0:`removed`:`added`;let i={};e.forEach((e,t)=>{i[e]=t});let a=-1;for(let e of n){let t=i[e];t!=null&&(t>a?a=t:r[e]=`reordered`)}return r}function ct(e){let t={};return e.columns.forEach((e,n)=>{t[e.name]={key:e.key,index:n,colType:e.type}}),t}function lt(e){let t={};if(e.columns.forEach((e,n)=>{t[e.key]={key:e.key,index:n,colType:e.type}}),!t.in_a)throw Error(`Joined DataFrame missing required 'in_a' column`);if(!t.in_b)throw Error(`Joined DataFrame missing required 'in_b' column`);return t}function ut(e,t){let n={},r=R(e.columns.map(e=>e.key),t.columns.map(e=>e.key));return Object.entries(r).forEach(([r,i])=>{let a=e.columns.find(e=>e.key===r),o=t.columns.find(e=>e.key===r);n[r]={status:i,baseColumnKey:a?.key??`unknown`,currentColumnKey:o?.key??`unknown`,colType:a?.type??o?.type??`unknown`,key:a?.key??o?.key??`unknown`}}),n}function z(e,t){let n=[];for(let r of t){let t=e.find(e=>e.key===r);if(!t)throw Error(`Column ${r} not found`);n.push(t.key)}return n}function B(e,t,n){if(t.length===0)return String(n._index);let r=[];for(let i of t){let t=e.find(e=>e.key===i);if(!t)throw Error(`Primary Column ${i} not found`);let a=n[i];r.push(`${t.name}=${a}`)}return r.join(`|`)}function dt(e,t){return Math.abs(e-t)<=Math.max(1e-9*Math.max(Math.abs(e),Math.abs(t)),1e-12)}function ft(e){let t=e.trim();return t===``?NaN:Number(t)}const pt=/^[+-]?\d+(?:\.\d+)?$/;function mt(e){let t=e.trim();if(!pt.test(t))return;let n=t.startsWith(`-`),[r,i=``]=t.replace(/^[+-]/,``).split(`.`),a=r.replace(/^0+(?=\d)/,``),o=i.replace(/0+$/,``),s=o?`${a}.${o}`:a;return n&&s!==`0`?`-${s}`:s}function ht(e,t){if(typeof e==`number`&&typeof t==`number`&&Number.isFinite(e)&&Number.isFinite(t))return dt(e,t);if(typeof e==`string`&&typeof t==`string`){let n=ft(e),r=ft(t);if(Number.isFinite(n)&&Number.isFinite(r))return dt(n,r)}}function gt(e,t){if(typeof e!=`string`||typeof t!=`string`)return;let n=mt(e),r=mt(t);if(n!==void 0&&r!==void 0)return n===r}function V(e,t,n){return n===`float`?!S.isEqualWith(e,t,ht):n===`number`||n===`integer`?!S.isEqualWith(e,t,gt):!S.isEqual(e,t)}function _t(e,t,n,r){if(!e)return`added`;if(!t)return`removed`;let i=e===t;for(let[a,o]of Object.entries(n)){if(a===`index`||r.includes(a))continue;let n,s;if(i){let r=`base__${o.key}`,i=`current__${o.key}`;n=e[r],s=t[i]}else n=e[o.key],s=t[o.key];if(V(n,s,o.colType))return`modified`}}function H(e,t=2){let n=N(Object.is(e,-0)?0:e,`en-US`,{maximumFractionDigits:t,roundingMode:`halfEven`})??String(e);return n===`-0`?`0`:n}function U(e,t){return Number.isNaN(e)?`NaN`:Number.isFinite(e)?t===`raw`?String(e):typeof t==`number`?H(e,t):t===`percent`?N(e,`en-US`,{style:`percent`,maximumFractionDigits:2})??String(e):H(e,2):e>0?`∞`:`-∞`}function W(e,t,n,r){let i=ot(e,t);if(i==null)return[`-`,!0];let a,o=!1;return typeof i==`boolean`?a=i.toString():i===``?(a=`(empty)`,o=!0):a=typeof i==`number`?U(i,r):n===`number`||n===`float`?U(parseFloat(i),r):String(i),[a,o]}function vt(e,t,n,r,i){let a=e.__status;if(a===`removed`)return`diff-cell-removed`;if(a===`added`)return`diff-cell-added`;if(t===`added`||t===`removed`)return;let o=`base__${n}`.toLowerCase(),s=`current__${n}`.toLowerCase();if(V(e[o],e[s],i))return r?`diff-cell-removed`:`diff-cell-added`}function yt(e){if(e===`added`)return`diff-header-added`;if(e===`removed`)return`diff-header-removed`}const bt=e=>{let t=e.colDef,n=t?.context?.columnType,r=t?.context?.columnRenderMode,i=t?.field??``;if(!e.data)return null;let[a,o]=W(e.data,i,n,r);return s(d,{component:`span`,style:{color:o?`gray`:`inherit`},children:a})};function xt(e={}){let t=e.DiffTextComponent??k;return e=>{let n=e.colDef,r=n?.context?.columnType,i=n?.context?.columnRenderMode,a=n?.field??``;if(!e.data)return null;let o=e.data,u=`base__${a}`.toLowerCase(),f=`current__${a}`.toLowerCase();if(!P(o,u)&&!P(o,f))return`-`;let p=P(o,u),h=P(o,f),[g,_]=W(o,`base__${a}`.toLowerCase(),r,i),[v,y]=W(o,`current__${a}`.toLowerCase(),r,i);if(!V(o[u],o[f],r))return s(d,{component:`span`,style:{color:y?`gray`:`inherit`},children:v});if(i===`delta`&&(r===`number`||r===`float`||r===`integer`)&&p&&h){let e=Ct(o[u]),n=Ct(o[f]);if(Number.isFinite(e)&&Number.isFinite(n)){let r=n-e,i=e===0?0:r/e*100,a=H(n),o=H(r),u=`(${r>=0?`+`:``}${o})`,f=`Base: ${e}\nCurrent: ${n}\nChange: ${r>=0?`+`:``}${r} (${i>=0?`+`:``}${i.toFixed(2)}%)`;return s(m,{title:f,slotProps:{tooltip:{sx:{whiteSpace:`pre-line`}}},enterDelay:300,placement:`top`,children:c(l,{sx:{gap:`5px`,display:`flex`,alignItems:`center`,lineHeight:`normal`,height:`100%`},children:[s(t,{value:a,colorPalette:`green`,grayOut:y}),s(d,{sx:{color:r>=0?`green.600`:`red.600`,fontSize:`0.75rem`},children:u})]})})}}return c(l,{sx:{display:`flex`,gap:`5px`,alignItems:`center`,lineHeight:`normal`,height:`100%`},children:[p&&s(t,{value:g,colorPalette:`red`,grayOut:_}),h&&s(t,{value:v,colorPalette:`green`,grayOut:y})]})}}const St=xt({DiffTextComponent:et});function Ct(e){if(typeof e==`number`)return e;if(typeof e==`string`){let t=Number.parseFloat(e);return Number.isNaN(t)?0:t}return 0}function wt(e,t,n){return r=>{let i=r.data;if(!i)return;let a=i.__status;if(a===`removed`)return`diff-cell-removed`;if(a===`added`)return`diff-cell-added`;if(t===`added`||t===`removed`)return;let o=`base__${e}`.toLowerCase(),s=`current__${e}`.toLowerCase();if(V(i[o],i[s],n))return`diff-cell-removed`}}function Tt(e,t,n){return r=>{let i=r.data;if(!i)return;let a=i.__status;if(a===`removed`)return`diff-cell-removed`;if(a===`added`)return`diff-cell-added`;if(t===`added`||t===`removed`)return;let o=`base__${e}`.toLowerCase(),s=`current__${e}`.toLowerCase();if(V(i[o],i[s],n))return`diff-cell-added`}}function G(e){let{name:t,columnStatus:n,columnType:r,columnRenderMode:i,displayMode:a,baseTitle:o=`Base`,currentTitle:c=`Current`,headerProps:l={},renderComponents:u}=e,{DataFrameColumnGroupHeader:d,defaultRenderCell:f,inlineRenderCell:p}=u,m=yt(n),h=()=>s(d,{name:t,columnStatus:n,columnType:r,...l});if(a===`inline`)return{field:t,headerName:t,headerClass:m,headerComponent:h,cellRenderer:p,context:{columnType:r,columnRenderMode:i}};let g=wt(t,n,r),_=Tt(t,n,r);return{headerName:t,headerClass:m,headerGroupComponent:h,context:{columnType:r,columnRenderMode:i},children:[{field:`base__${t}`,headerName:o,headerClass:m,cellClass:g,cellRenderer:f,context:{columnType:r,columnRenderMode:i}},{field:`current__${t}`,headerName:c,headerClass:m,cellClass:_,cellRenderer:f,context:{columnType:r,columnRenderMode:i}}]}}function Et(){return{field:`_index`,headerName:``,width:50,maxWidth:100,cellClass:`index-column`,resizable:!1,pinned:`left`}}function Dt(e,t,n){let{key:r,name:i,columnType:a,columnStatus:o,columnRenderMode:c}=e,{DataFrameColumnGroupHeader:l,defaultRenderCell:u}=n;return{field:r,headerName:i,headerComponent:()=>s(l,{name:i,columnStatus:o??``,columnType:a,...t}),pinned:`left`,cellClass:e=>{if(e.data?.__status)return`diff-header-${e.data.__status}`},cellRenderer:u,context:{columnType:a,columnRenderMode:c}}}function Ot(e,t,n,r,i,a){let{name:o,columnType:s,columnStatus:c,columnRenderMode:l}=e;return G({name:o,columnStatus:c??``,columnType:s,columnRenderMode:l,displayMode:t,baseTitle:i,currentTitle:a,headerProps:n,renderComponents:r})}function K(e){let{columns:t,displayMode:n,headerProps:r,baseTitle:i,currentTitle:a,allowIndexFallback:o=!1,renderComponents:s}=e,c=[],l=!1;!t.some(e=>e.isPrimaryKey)&&o&&(c.push(Et()),l=!0);for(let e of t)if(e.isPrimaryKey)c.push(Dt(e,r,s));else{let t=Ot(e,n,r,s,i,a);c.push({...t,pinned:e.frozen?`left`:void 0})}return{columns:c,usedIndexFallback:l}}function kt(e){return`baseColumnKey`in e&&`currentColumnKey`in e}function At(e,t){return t.includes(e)}function jt(e){return kt(e)?{baseKey:e.baseColumnKey,currentKey:e.currentColumnKey}:{baseKey:e.key,currentKey:e.key}}function Mt(e,t,n,r,i){n.forEach(n=>{let a=n.key;At(a,i)?e[String(a).toLowerCase()]=t[a]:e[`${r}${a}`.toLowerCase()]=t[a]})}function Nt(e,t,n,r){let i=!1;for(let[a,o]of Object.entries(n)){if(a===`index`||At(a,r))continue;let{baseKey:n,currentKey:s}=jt(o);if(n===`unknown`||s===`unknown`)continue;let c=e[n],l=t[s];V(c,l,o.colType)&&(i=!0,o.status=`modified`)}return i}function q(e){let{baseMap:t,currentMap:n,baseColumns:r,currentColumns:i,columnMap:a,primaryKeys:o,changedOnly:s=!1}=e,c=R(Object.keys(t),Object.keys(n)),l={added:0,removed:0,modified:0},u=Object.entries(c).map(([e])=>{let s=t[e],c=n[e],u={_index:at(e),__status:void 0};return s&&Mt(u,s,r,`base__`,o),c&&Mt(u,c,i,`current__`,o),s?c?Nt(s,c,a,o)&&(u.__status=`modified`,l.modified++):(u.__status=`removed`,l.removed++):(u.__status=`added`,l.added++),u});return s&&(u=u.filter(e=>e.__status===`added`||e.__status===`removed`||e.__status===`modified`)),{rows:u,rowStats:l}}var J=class extends Error{context;details;constructor(e,t,n){super(t?`[${t}] ${e}`:e),this.context=t,this.details=n,this.name=`DataGridValidationError`}};function Y(e,t=`DataFrame`){if(e!=null){if(typeof e!=`object`)throw new J(`Expected an object, got ${typeof e}`,t);if(!(`columns`in e))throw new J(`Missing 'columns' property`,t,{receivedKeys:Object.keys(e)});if(!Array.isArray(e.columns))throw new J(`'columns' must be an array, got ${typeof e.columns}`,t);if(!(`data`in e))throw new J(`Missing 'data' property`,t,{receivedKeys:Object.keys(e)});if(!Array.isArray(e.data))throw new J(`'data' must be an array, got ${typeof e.data}`,t);Pt(e.columns,t),e.data.length>0&&Ft(e,t)}}function Pt(e,t=`DataFrame`){e.forEach((e,n)=>{if(!e||typeof e!=`object`)throw new J(`Column at index ${n} is not an object`,t,{column:e});if(typeof e.key!=`string`||e.key===``)throw new J(`Column at index ${n} has invalid 'key': expected non-empty string, got ${JSON.stringify(e.key)}`,t,{column:e});if(typeof e.name!=`string`)throw new J(`Column '${e.key}' has invalid 'name': expected string, got ${typeof e.name}`,t,{column:e});if(typeof e.type!=`string`)throw new J(`Column '${e.key}' has invalid 'type': expected string, got ${typeof e.type}`,t,{column:e})})}function Ft(e,t=`DataFrame`){let n=e.columns.length;for(let r=0;r<e.data.length;r++){let i=e.data[r];if(!Array.isArray(i))throw new J(`Row at index ${r} is not an array`,t,{row:i,rowType:typeof i});if(i.length!==n)throw new J(`Row ${r} has ${i.length} values but expected ${n} (column count)`,t,{rowIndex:r,rowLength:i.length,columnCount:n,columns:e.columns.map(e=>e.key)})}}function X(e,t,n={}){let{required:r=!1,caseInsensitive:i=!1,context:a=`primaryKeys`}=n;if(r&&(!e||e.length===0))throw new J(`Primary keys are required but none were provided`,a);if(!e||e.length===0)return;let o=t.map(e=>e.key),s=i?o.map(e=>e.toLowerCase()):o;for(let t of e){let e=i?t.toLowerCase():t;if(!(i?s.includes(e):o.includes(t)))throw new J(`Primary key column '${t}' not found in columns`,a,{requestedKey:t,availableColumns:o,caseInsensitive:i})}let c=new Set;for(let t of e){let n=i?t.toLowerCase():t;if(c.has(n))throw new J(`Duplicate primary key: '${t}'`,a,{primaryKeys:e});c.add(n)}}function It(e,t){Y(e,`dataframe`),e&&t?.primaryKeys&&X(t.primaryKeys,e.columns,{context:`toDataGrid`})}function Lt(e,t,n){if(Y(e,`base`),Y(t,`current`),n?.primaryKeys&&n.primaryKeys.length>0){let r=e?.columns??[],i=t?.columns??[],a=new Set([...r.map(e=>e.key),...i.map(e=>e.key)]);for(let e of n.primaryKeys)if(!a.has(e))throw new J(`Primary key column '${e}' not found in either base or current DataFrame`,`toDataDiffGrid`,{requestedKey:e,baseColumns:r.map(e=>e.key),currentColumns:i.map(e=>e.key)})}}function Rt(e,t){if(!e)throw new J(`DataFrame is required for value diff`);if(Y(e),!t||t.length===0)throw new J(`Primary keys are required for value diff`);X(t,e.columns,{required:!0,context:`toValueDiffGrid`});let n=e.columns.map(e=>e.key);if(!n.includes(`in_a`))throw new J(`Value diff DataFrame must include lowercase 'in_a' column`);if(!n.includes(`in_b`))throw new J(`Value diff DataFrame must include lowercase 'in_b' column`)}function zt(e,t,n,r){Lt(e,t,n);let i=e??{columns:[],data:[]},a=t??{columns:[],data:[]},o=n?.primaryKeys??[],s=n?.pinnedColumns??[],c=n?.changedOnly??!1,l=n?.displayMode??`side_by_side`,u=n?.columnsRenderMode??{},d=F(i),f=F(a),p=ut(i,a),m={},h={},g=!1,_=!1;if(o.length===0)d.forEach(e=>{m[String(e._index)]=e}),f.forEach(e=>{h[String(e._index)]=e});else{let e=z(i.columns,o);d.forEach(t=>{let n=B(i.columns,e,t);n in m&&(g=!0),m[n]=t});let t=z(a.columns,o);f.forEach(e=>{let n=B(a.columns,t,e);n in h&&(_=!0),h[n]=e})}let{rows:v,rowStats:y}=q({baseMap:m,currentMap:h,baseColumns:i.columns,currentColumns:a.columns,columnMap:p,primaryKeys:o,changedOnly:c}),{columns:b}=K({columns:D({columnMap:p,primaryKeys:o,pinnedColumns:s,columnsRenderMode:u,changedOnly:c,rowStats:y,excludeColumns:[`index`],strictMode:!1}),displayMode:l,allowIndexFallback:!0,baseTitle:n?.baseTitle,currentTitle:n?.currentTitle,headerProps:{primaryKeys:o,pinnedColumns:s,onPrimaryKeyChange:n?.onPrimaryKeyChange,onPinnedColumnsChange:n?.onPinnedColumnsChange,onColumnsRenderModeChanged:n?.onColumnsRenderModeChanged},renderComponents:r?.renderComponents??{DataFrameColumnGroupHeader:()=>null,defaultRenderCell:()=>null,inlineRenderCell:()=>null}});return{columns:b,rows:v,invalidPKeyBase:g,invalidPKeyCurrent:_}}function Bt(){return{field:`_index`,headerName:``,width:50,cellClass:`index-column`,resizable:!1,pinned:`left`}}function Vt(e,t,n){let{key:r,name:i,columnType:a,columnRenderMode:o}=e,{DataFrameColumnGroupHeader:c,defaultRenderCell:l}=n;return{field:r,headerName:i,headerComponent:()=>s(c,{name:i,columnStatus:``,columnType:a,pinnedColumns:t.pinnedColumns,onPinnedColumnsChange:t.onPinnedColumnsChange,onColumnsRenderModeChanged:t.onColumnsRenderModeChanged}),pinned:`left`,cellRenderer:l,context:{columnType:a,columnRenderMode:o}}}function Ht(e,t,n){let{key:r,name:i,columnType:a,columnRenderMode:o}=e,{DataFrameColumnHeader:c,defaultRenderCell:l}=n;return{field:r,headerName:i,headerComponent:()=>s(c,{name:i,columnType:a,pinnedColumns:t.pinnedColumns,onPinnedColumnsChange:t.onPinnedColumnsChange,onColumnsRenderModeChanged:t.onColumnsRenderModeChanged}),cellRenderer:l,context:{columnType:a,columnRenderMode:o}}}function Z(e){let{columns:t,headerProps:n,allowIndexFallback:r=!0,renderComponents:i}=e,a=[],o=!1;!t.some(e=>e.isPrimaryKey)&&r&&(a.push(Bt()),o=!0);for(let e of t)if(e.isPrimaryKey)a.push(Vt(e,n,i));else{let t=Ht(e,n,i);a.push({...t,pinned:e.frozen?`left`:void 0})}return{columns:a,usedIndexFallback:o}}function Ut(e,t,n){It(e,t);let r=t.primaryKeys??[],i=t.pinnedColumns??[],a=t.columnsRenderMode??{},{columns:o}=Z({columns:qe({columnMap:ct(e),primaryKeys:r,pinnedColumns:i,columnsRenderMode:a}),headerProps:{pinnedColumns:i,onPinnedColumnsChange:t.onPinnedColumnsChange,onColumnsRenderModeChanged:t.onColumnsRenderModeChanged},allowIndexFallback:!0,renderComponents:n.renderComponents});return{columns:o,rows:F(e)}}function Wt(e,t,n,r){Rt(e,t);let i=n?.pinnedColumns??[],a=n?.changedOnly??!1,o=n?.displayMode??`inline`,s=n?.columnsRenderMode??{},c=F(e),l=lt(e),u={},d={},f=z(e.columns,t),p=l.in_a.key,m=l.in_b.key;c.forEach(t=>{let n=B(e.columns,f,t);t[p]&&(u[n.toLowerCase()]=t),t[m]&&(d[n.toLowerCase()]=t)});let{rows:h,rowStats:g}=q({baseMap:u,currentMap:d,baseColumns:e.columns,currentColumns:e.columns,columnMap:l,primaryKeys:t,changedOnly:a}),{columns:_}=K({columns:D({columnMap:l,primaryKeys:t,pinnedColumns:i,columnsRenderMode:s,changedOnly:a,rowStats:g,excludeColumns:[`in_a`,`in_b`],strictMode:!0}),displayMode:o,allowIndexFallback:!1,baseTitle:n?.baseTitle,currentTitle:n?.currentTitle,headerProps:{primaryKeys:t,pinnedColumns:i,onPinnedColumnsChange:n?.onPinnedColumnsChange,onColumnsRenderModeChanged:n?.onColumnsRenderModeChanged},renderComponents:r?.renderComponents??{DataFrameColumnGroupHeader:()=>null,defaultRenderCell:()=>null,inlineRenderCell:()=>null}});return{columns:_,rows:h}}const Q={DataFrameColumnGroupHeader:tt,defaultRenderCell:bt,inlineRenderCell:St},$={DataFrameColumnGroupHeader:tt,DataFrameColumnHeader:nt,defaultRenderCell:bt};function Gt(e){return G({...e,renderComponents:Q})}function Kt(e){return K({...e,renderComponents:Q})}function qt(e,t,n){return zt(e,t,n,{renderComponents:Q})}function Jt(e,t,n){return Wt(e,t,n,{renderComponents:Q})}function Yt(e,t){return Ut(e,t,{renderComponents:$})}function Xt(e){return Z({...e,renderComponents:$})}function Zt(e,t){if(e===0&&t!==0)return`N/A`;if(e<t){let n=(t-e)/e*100;return`+${n>=.1?n.toFixed(1):` <0.1 `}%`}if(e>t){let n=(e-t)/e*100;return`-${n>=.1?n.toFixed(1):` <0.1 `}%`}return`0`}function Qt(e,t){return e!==null&&t!==null?e===t?`0`:Zt(e,t):e===t?`N/A`:e===null?`Added`:t===null?`Removed`:`N/A`}function $t(e){return{columns:[{key:`name`,name:`Name`,type:`text`},{key:`base`,name:`Base Rows`,type:`number`},{key:`current`,name:`Current Rows`,type:`number`},{key:`delta`,name:`Delta`,type:`text`}],data:Object.entries(e).map(([e,t])=>{let n=typeof t.base==`number`?t.base:null,r=typeof t.curr==`number`?t.curr:null;return[e,n,r,Qt(n,r)]})}}function en(e){return{columns:[{key:`name`,name:`Name`,type:`text`},{key:`current`,name:`Row Count`,type:`number`}],data:Object.entries(e).map(([e,t])=>[e,typeof t.curr==`number`?t.curr:null])}}function tn(e,t){if(e===null&&t!==null)return`added`;if(e!==null&&t===null)return`removed`;if(e!==null&&t!==null&&e!==t)return`modified`}function nn(e){return{columns:[{field:`name`,headerName:`Name`,resizable:!0},{field:`current`,headerName:`Row Count`,resizable:!0}],rows:F(en(e)).map(e=>({...e,current:e.current??`N/A`,__status:void 0}))}}function rn(){return e=>{let t=e.data;if(!t)return;let n=t.base,r=t.current,i=n===`N/A`?null:n,a=r===`N/A`?null:r;if(i!==a){if(i===null||typeof i==`number`&&typeof a==`number`&&i<a)return`diff-cell-added`;if(a===null||typeof i==`number`&&typeof a==`number`&&i>a)return`diff-cell-removed`}}}function an(e){let t=F($t(e)).map(e=>{let t=e.base,n=e.current;return{...e,base:t??`N/A`,current:n??`N/A`,__status:tn(typeof t==`number`?t:null,typeof n==`number`?n:null)}}),n=rn();return{columns:[{field:`name`,headerName:`Name`,resizable:!0,cellClass:n},{field:`base`,headerName:`Base Rows`,resizable:!0,cellClass:n},{field:`current`,headerName:`Current Rows`,resizable:!0,cellClass:n},{field:`delta`,headerName:`Delta`,resizable:!0,cellClass:n}],rows:t}}function on(e){let t=new Set,n=new Set;if(e?.nodes){let r=Object.values(e.nodes);for(let e of r){let r=e.data.baseSchema??e.data.schema;r&&e.data.changeStatus!==`added`&&t.add(r),e.data.schema&&e.data.changeStatus!==`removed`&&n.add(e.data.schema)}}return[t,n]}function sn(e,t){let n=L(e,t);if(n.length===0)return[];if(e.length===0||t.length===0)return n.map((e,t)=>t===n.length-1?e:e+`,`);let r=``;return n.forEach(n=>{e.includes(n)&&t.includes(n)&&(r=n)}),n.map((i,a)=>{let o;return o=e.includes(i)?t.includes(i)?i:`--- ${i} (Removed)`:`--- ${i} (Added)`,i===r||a===n.length-1?o:o+`,`})}function cn(e){let t=Math.floor(e);return{hours:Math.floor(t/3600),minutes:Math.floor(t%3600/60),seconds:t%60}}function ln({hours:e,minutes:t,seconds:n}){return e>0?`${e}:${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}`:`${t}:${n.toString().padStart(2,`0`)}`}function un({hours:e,minutes:t,seconds:n}){let r=[];return e>0&&r.push(`${e} hour${e===1?``:`s`}`),t>0&&r.push(`${t} min${t===1?``:`s`}`),e===0&&(r.length===0||n>0)&&r.push(`${n} second${n===1?``:`s`}`),r.join(` `)}function dn(e,t=`verbose`){let n=cn(e);return t===`compact`?ln(n):un(n)}function fn(e){if(!Number.isFinite(e))return String(e);let{hours:t,minutes:n,seconds:r}=cn((Math.floor(e)%86400+86400)%86400),i=e=>e.toString().padStart(2,`0`);return`${i(t)}:${i(n)}:${i(r)}`}function pn(e,t=!1){let n=new Date(e*1e3);if(Number.isNaN(n.getTime()))return String(e);let r=n.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`,timeZone:`UTC`});if(!t)return r;let i=e=>e.toString().padStart(2,`0`),a=i(n.getUTCHours()),o=i(n.getUTCMinutes());return`${r} ${t===`seconds`?`${a}:${o}:${i(n.getUTCSeconds())}`:`${a}:${o}`}`}function mn(e){let t=le(e);return se(t,`yyyy-MM-dd'T'HH:mm:ss`)}function hn(e){let t=le(e);return ce(t,new Date,{addSuffix:!0})}function gn(e,t){if(!e||!t)return;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!0;for(let e=0;e<n.length;e++)if(n[e]!==r[e])return!0;for(let n of r)if(!e[n]||e[n].type!==t[n]?.type)return!0;return!1}function _n(e,t){return e?.organization_name&&e.web_url?`${e.web_url}/organizations/${e.organization_name}/settings`:t}export{L as $,Ft as A,Pe as At,Tt as B,fe as Bt,Gt as C,T as Ct,Z as D,Be as Dt,Ut as E,Ve as Et,It as F,ve as Ft,U as G,ct as H,de as Ht,Rt as I,_e as It,vt as J,_t as K,q as L,me as Lt,Y as M,xe as Mt,X as N,ye as Nt,zt as O,Le as Ot,Lt as P,ge as Pt,z as Q,K as R,he as Rt,Yt as S,Ge as St,Wt as T,He as Tt,lt as U,G as V,ue as Vt,ut as W,B as X,yt as Y,W as Z,Kt as _,O as _t,fn as a,at,$ as b,qe as bt,sn as c,rt as ct,nn as d,$e as dt,R as et,Qt as f,Qe as ft,Zt as g,k as gt,en as h,Ze as ht,pn as i,I as it,Pt as j,Fe as jt,J as k,ze as kt,on as l,N as lt,$t as m,M as mt,gn as n,ot as nt,hn as o,P as ot,tn as p,Xe as pt,H as q,dn as r,st as rt,mn as s,it as st,_n as t,F as tt,an as u,et as ut,Xt as v,Ue as vt,Jt as w,We as wt,qt as x,E as xt,Q as y,D as yt,wt as z,pe as zt};
6
+ //# sourceMappingURL=utils-B1ahusiP.js.map