@datarecce/ui 1.54.0-nightly.20260622 → 1.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/advanced.d.ts +3 -3
  2. package/dist/advanced.js +1 -1
  3. package/dist/advanced.js.map +1 -1
  4. package/dist/components-run.js +1 -1
  5. package/dist/components.d.ts +3 -3
  6. package/dist/components.js +1 -1
  7. package/dist/hooks-CeTKVd72.js +7 -0
  8. package/dist/hooks-CeTKVd72.js.map +1 -0
  9. package/dist/hooks.js +1 -1
  10. package/dist/{index-DLRkZLJr.d.ts → index-DqNK3h9o.d.ts} +2 -2
  11. package/dist/{index-DLRkZLJr.d.ts.map → index-DqNK3h9o.d.ts.map} +1 -1
  12. package/dist/index.d.ts +3 -3
  13. package/dist/index.js +1 -1
  14. package/dist/{lineage-B4FPl66F.d.ts → lineage-Cqlo57P1.d.ts} +4 -4
  15. package/dist/{lineage-B4FPl66F.d.ts.map → lineage-Cqlo57P1.d.ts.map} +1 -1
  16. package/dist/{primitives-B80gtNJl.d.ts → primitives-4OaWN3IW.d.ts} +2 -2
  17. package/dist/{primitives-B80gtNJl.d.ts.map → primitives-4OaWN3IW.d.ts.map} +1 -1
  18. package/dist/primitives.d.ts +1 -1
  19. package/dist/primitives.js +1 -1
  20. package/dist/result.js +1 -1
  21. package/dist/src-DH5i0LSg.js +12 -0
  22. package/dist/src-DH5i0LSg.js.map +1 -0
  23. package/dist/{theme-DuHMu70W.js → theme-u98ih3Tv.js} +2 -2
  24. package/dist/{theme-DuHMu70W.js.map → theme-u98ih3Tv.js.map} +1 -1
  25. package/dist/theme.js +1 -1
  26. package/dist/types.d.ts +2 -2
  27. package/dist/utils-Dl2dMzK8.js +6 -0
  28. package/dist/utils-Dl2dMzK8.js.map +1 -0
  29. package/dist/utils.js +1 -1
  30. package/package.json +2 -2
  31. package/dist/dataGridFactory-CptRZuPt.js +0 -7
  32. package/dist/dataGridFactory-CptRZuPt.js.map +0 -1
  33. package/dist/src-sLCwWVSa.js +0 -12
  34. package/dist/src-sLCwWVSa.js.map +0 -1
  35. package/dist/utils-DTMaQi8v.js +0 -6
  36. package/dist/utils-DTMaQi8v.js.map +0 -1
@@ -1,6 +0,0 @@
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/IconButton";import d from"@mui/material/Stack";import f from"@mui/material/Tooltip";import p from"@mui/material/Typography";import m from"lodash";import{PiCopy as h,PiDotsThreeVertical as g}from"react-icons/pi";import _ from"file-saver";import v from"write-excel-file/universal";import y from"@mui/material/Menu";import b from"@mui/material/MenuItem";import{VscClose as ee,VscKebabVertical as te,VscKey as ne,VscPin as re,VscPinned as ie}from"react-icons/vsc";import x from"@mui/material/CircularProgress";import{format as S,formatDistance as ae,parseISO as C}from"date-fns";import oe from"@mui/material/Alert";import{useCopyToClipboard as se}from"usehooks-ts";import ce from"@mui/material/Snackbar";function le(e,t){return`${e}_${t}`}function ue(e,t,n){return n?.has(le(e,t))??!1}function de(e,t){_(new Blob([e],{type:`text/csv;charset=utf-8`}),t)}function fe(e,t){_(new Blob([e],{type:`text/tab-separated-values;charset=utf-8`}),t)}function pe(e,t){_(e,t)}async function me(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 he(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 ge(e,t){return v([e.map(e=>({value:e,type:String})),...t.map(e=>e.map(he))]).toBlob()}function _e(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 ve(e){return w(e)}function ye(e){return w(e)}function be(e,t){let n=e,r=t?.displayMode??`inline`,i=t?.primaryKeys??[];return n?.diff?xe(n.diff,r,i):Se(n,r)}function xe(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(_e(a,o))}),m.push(i)}return{columns:p,rows:m}}function Se(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(_e(r,a))}),a.push(o)}return{columns:i,rows:a}}function Ce(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 we(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 Te(e){let t=e;return t?.data?w(t.data):null}function Ee(e){return w(e)}function De(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 Oe={query:ve,query_base:ye,query_diff:be,profile:Ce,profile_diff:Ce,row_count:we,row_count_diff:we,value_diff:Te,value_diff_detail:Ee,top_k_diff:De};function ke(e,t,n){let r=Oe[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 Ae(e){return e in Oe}function T(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 je(e,t){return``+[e.map(T).join(`,`),...t.map(e=>e.map(T).join(`,`))].join(`\r
4
- `)}function Me(e){return e==null?``:(typeof e==`object`?JSON.stringify(e):String(e)).replace(/[\t\r\n]+/g,` `)}function Ne(e,t){return[e.map(Me).join(` `),...t.map(e=>e.map(Me).join(` `))].join(`\r
5
- `)}function Pe(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 Fe(){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 Ie(e,t){let n=Fe(),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 Le(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 Re(e,t,n){return!t||!n?!0:e===`added`||e===`removed`||e===`modified`}function E(e,t){return t.includes(e)}function ze(e,t){return t.includes(e)}function D(e,t){return t.includes(e)}function Be(e,t){return e[t]}function O(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=Be(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(E(e,n)||D(e,s))return;let r=Be(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])=>{E(e,n)||ze(e,r)||D(e,s)||Re(t.status,a,l)&&u.push({key:e,name:e,columnType:t.colType,columnStatus:t.status,columnRenderMode:i[e]})}),u}function Ve(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 k(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`})}}]}const A=t(null);A.displayName=`RecceThemeContext`;function He(){let e=r(A);if(!e)throw Error(`useRecceTheme must be used within RecceProvider`);return e}function Ue(){return r(A)}function We({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)}else c(n)},[n]),i(()=>{typeof window>`u`||document.documentElement.classList.toggle(`dark`,o===`dark`)},[o]),s(A.Provider,{value:{mode:n,resolvedMode:o,setMode:r},children:e})}function Ge(){let e=Ue(),[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 j({value:t,colorPalette:n,grayOut:r,noCopy:i,fontSize:o,onCopy:u}){let[d,f]=a(!1),p=Ge();return c(l,{sx:{display:`flex`,p:`2px 5px`,minWidth:`30px`,maxWidth:`200px`,overflow:`hidden`,textOverflow:`ellipsis`,color:p?e[n][300]:e[n][800],bgcolor:p?e[n][900]:e[n][100],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(Ke,{value:t,noCopy:i,grayOut:r,isHovered:d,onCopy:u})]})}function Ke({value:e,noCopy:t,grayOut:n,isHovered:r,onCopy:i}){return t||n||!r?null:s(f,{title:`Copy Value`,children:s(u,{"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`})})})}function qe({name:e,columnStatus:t,columnType:n,primaryKeys:r=[],onPrimaryKeyChange:i,pinnedColumns:d=[],onPinnedColumnsChange:f,onColumnsRenderModeChanged:p}){let[m,h]=a(null),g=!!m,_=e=>{h(e.currentTarget)},v=()=>{h(null)};if(e===`index`)return s(o,{});let x=r.includes(e),S=d.includes(e),ae=t!==`added`&&t!==`removed`,C=[];return p&&(C=k(e,p)),c(l,{sx:{display:`flex`,alignItems:`center`,gap:`10px`,width:`100%`},className:`grid-header`,children:[x&&s(ne,{}),s(l,{sx:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e}),ae&&i&&s(l,{component:x?ee:ne,className:x?`close-icon`:`key-icon`,sx:{display:x?`block`:`none`,cursor:`pointer`},onClick:x?()=>{i&&i(r.filter(t=>t!==e))}:()=>{i&&i([...r.filter(e=>e!==`index`),e])}}),!x&&f&&s(l,{component:S?ie:re,className:S?`unpin-icon`:`pin-icon`,sx:{display:S?`block`:`none`,cursor:`pointer`},onClick:S?()=>{f&&f(d.filter(t=>t!==e))}:()=>{f&&f([...d,e])}}),!x&&n===`number`&&C.length>0&&c(o,{children:[s(u,{"aria-label":`Options`,size:`small`,className:`!size-4 !min-w-4`,onClick:_,children:s(te,{})}),s(y,{anchorEl:m,open:g,onClose:v,children:C.map(e=>s(b,{onClick:()=>{e.onClick(),v()},children:e.value},e.value))})]})]})}function Je({name:e,pinnedColumns:t=[],onPinnedColumnsChange:n=()=>{},columnType:r,onColumnsRenderModeChanged:i}){let[d,f]=a(null),p=!!d,m=e=>{f(e.currentTarget)},h=()=>{f(null)},_=[];i&&(_=k(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?ie:re,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`&&c(o,{children:[s(u,{"aria-label":`Options`,size:`small`,className:`size-6!`,sx:{p:0},onClick:m,children:s(g,{})}),s(y,{anchorEl:d,open:p,onClose:h,children:_.map(e=>s(b,{onClick:()=>{e.onClick(),h()},children:e.value},e.value))})]})]})}function M(e,t=`en-US`,n){return typeof e==`number`?new Intl.NumberFormat(t,n).format(e):e}function Ye(e){let t=e>0&&e<=.001,n=e<1&&e>=.999,r=(t=e)=>M(t,`en-US`,{style:`percent`,minimumFractionDigits:1});return t?`<${r(.001)}`:n?`>${r(.999)}`:r()}function Xe(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)}else if(l)return new Intl.NumberFormat(`en-US`,{maximumFractionDigits:2}).format(e);else return new Intl.NumberFormat(`en-US`,{maximumFractionDigits:c?3:2,notation:c||t===0?`standard`:`scientific`}).format(e)}}const N=t(null);let P=0;function Ze({children:e}){let[t,r]=a([]),i=n(e=>{let t=e.id||`toast-${++P}`,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(N.Provider,{value:l,children:[e,t.map(e=>s(ce,{open:e.open,autoHideDuration:e.duration,onClose:()=>e.closable&&o(e.id),anchorOrigin:{vertical:`bottom`,horizontal:`right`},children:s(oe,{severity:e.type===`loading`?`info`:e.type||`info`,onClose:e.closable?()=>o(e.id):void 0,icon:e.type===`loading`?s(x,{size:20,color:`inherit`}):void 0,sx:{width:`100%`,minWidth:300},children:c(d,{spacing:.5,children:[e.title&&s(p,{variant:`subtitle2`,sx:{fontWeight:`bold`},children:e.title}),e.description&&s(p,{variant:`body2`,component:`div`,children:e.description})]})})},e.id))]})}function Qe(){let e=r(N);if(!e)throw Error(`useToaster must be used within ToasterProvider`);return e}const F=new Set,I={create:e=>{let t=e.id||`toast-${++P}`;return F.forEach(n=>n({type:`create`,options:{...e,id:t}})),t},success:e=>I.create({...e,type:`success`}),error:e=>I.create({...e,type:`error`}),warning:e=>I.create({...e,type:`warning`}),info:e=>I.create({...e,type:`info`}),loading:e=>I.create({...e,type:`loading`}),dismiss:e=>{F.forEach(t=>t({type:`dismiss`,id:e}))},remove:e=>{F.forEach(t=>t({type:`dismiss`,id:e}))},update:(e,t)=>{F.forEach(n=>n({type:`update`,id:e,options:t}))},subscribe:e=>(F.add(e),()=>F.delete(e))};function $e(){let[e,t]=a([]);a(()=>I.subscribe(e=>{if(e.type===`create`&&e.options){let n={id:e.options.id||`toast-${++P}`,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(ce,{open:e.open,autoHideDuration:e.duration,onClose:()=>e.closable&&n(e.id),anchorOrigin:{vertical:`bottom`,horizontal:`right`},children:s(oe,{severity:e.type===`loading`?`info`:e.type||`info`,onClose:e.closable?()=>n(e.id):void 0,icon:e.type===`loading`?s(x,{size:20,color:`inherit`}):void 0,sx:{width:`100%`,minWidth:300},children:c(d,{spacing:.5,children:[e.title&&s(p,{variant:`subtitle2`,sx:{fontWeight:`bold`},children:e.title}),e.description&&s(p,{variant:`body2`,component:`div`,children:e.description})]})})},e.id))})}function et(){function e(e){I.create({description:e,type:`info`,duration:5e3,closable:!0})}function t(e,t){I.create({title:e,description:String(t),type:`error`,duration:5e3,closable:!0})}return{successToast:e,failToast:t}}function tt(e){let[,t]=se(),{successToast:n}=et(),r=e=>{t(e),n(`${e} copied`)};return s(j,{...e,onCopy:r})}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)e.includes(i)?t.includes(i)?r[i]=void 0:r[i]=`removed`:r[i]=`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 nt(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 rt(e){let t=Math.floor(e);return{hours:Math.floor(t/3600),minutes:Math.floor(t%3600/60),seconds:t%60}}function it({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 at({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 ot(e,t=`verbose`){let n=rt(e);return t===`compact`?it(n):at(n)}function st(e){if(!Number.isFinite(e))return String(e);let{hours:t,minutes:n,seconds:r}=rt((Math.floor(e)%86400+86400)%86400),i=e=>e.toString().padStart(2,`0`);return`${i(t)}:${i(n)}:${i(r)}`}function ct(e){let t=new Date(e*1e3);return Number.isNaN(t.getTime())?String(e):t.toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`,timeZone:`UTC`})}function lt(e){return S(C(e),`yyyy-MM-dd'T'HH:mm:ss`)}function ut(e){return ae(C(e),new Date,{addSuffix:!0})}function z(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 dt(e){let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)?t:ft(e)}function ft(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 pt(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 mt(e,t){let n=e[t.toLowerCase()];return n||=e[t.toUpperCase()],n||=e[t],n}function ht(e){let t={};return e.columns.forEach((e,n)=>{t[e.name]={key:e.key,index:n,colType:e.type}}),t}function gt(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 _t(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 B(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 V(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 vt(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(!m.isEqual(n,s))return`modified`}}function H(e,t=2){let n=M(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`?M(e,`en-US`,{style:`percent`,maximumFractionDigits:2})??String(e):H(e,2):e>0?`∞`:`-∞`}function W(e,t,n,r){let i=pt(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`?U(parseFloat(i),r):String(i),[a,o]}function yt(e,t,n,r){let i=e.__status;if(i===`removed`)return`diff-cell-removed`;if(i===`added`)return`diff-cell-added`;if(t===`added`||t===`removed`)return;let a=`base__${n}`.toLowerCase(),o=`current__${n}`.toLowerCase();if(!m.isEqual(e[a],e[o]))return r?`diff-cell-removed`:`diff-cell-added`}function bt(e){if(e===`added`)return`diff-header-added`;if(e===`removed`)return`diff-header-removed`}const xt=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(p,{component:`span`,style:{color:o?`gray`:`inherit`},children:a})};function St(e={}){let t=e.DiffTextComponent??j;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(),d=`current__${a}`.toLowerCase();if(!Object.hasOwn(o,u)&&!Object.hasOwn(o,d))return`-`;let m=Object.hasOwn(o,u),h=Object.hasOwn(o,d),[g,_]=W(o,`base__${a}`.toLowerCase(),r,i),[v,y]=W(o,`current__${a}`.toLowerCase(),r,i);if(o[u]===o[d])return s(p,{component:`span`,style:{color:y?`gray`:`inherit`},children:v});if(i===`delta`&&(r===`number`||r===`integer`)&&m&&h){let e=wt(o[u]),n=wt(o[d]);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})`;return s(f,{title:`Base: ${e}\nCurrent: ${n}\nChange: ${r>=0?`+`:``}${r} (${i>=0?`+`:``}${i.toFixed(2)}%)`,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(p,{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:[m&&s(t,{value:g,colorPalette:`red`,grayOut:_}),h&&s(t,{value:v,colorPalette:`green`,grayOut:y})]})}}const Ct=St({DiffTextComponent:tt});function wt(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 Tt(e,t){return n=>{let r=n.data;if(!r)return;let i=r.__status;if(i===`removed`)return`diff-cell-removed`;if(i===`added`)return`diff-cell-added`;if(t===`added`||t===`removed`)return;let a=`base__${e}`.toLowerCase(),o=`current__${e}`.toLowerCase();if(!m.isEqual(r[a],r[o]))return`diff-cell-removed`}}function Et(e,t){return n=>{let r=n.data;if(!r)return;let i=r.__status;if(i===`removed`)return`diff-cell-removed`;if(i===`added`)return`diff-cell-added`;if(t===`added`||t===`removed`)return;let a=`base__${e}`.toLowerCase(),o=`current__${e}`.toLowerCase();if(!m.isEqual(r[a],r[o]))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=bt(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=Tt(t,n),_=Et(t,n);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 Dt(){return{field:`_index`,headerName:``,width:50,maxWidth:100,cellClass:`index-column`,resizable:!1,pinned:`left`}}function Ot(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 kt(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(Dt()),l=!0);for(let e of t)if(e.isPrimaryKey)c.push(Ot(e,r,s));else{let t=kt(e,n,r,s,i,a);c.push({...t,pinned:e.frozen?`left`:void 0})}return{columns:c,usedIndexFallback:l}}function At(e){return`baseColumnKey`in e&&`currentColumnKey`in e}function jt(e,t){return t.includes(e)}function Mt(e){return At(e)?{baseKey:e.baseColumnKey,currentKey:e.currentColumnKey}:{baseKey:e.key,currentKey:e.key}}function Nt(e,t,n,r,i){n.forEach(n=>{let a=n.key;jt(a,i)?e[String(a).toLowerCase()]=t[a]:e[`${r}${a}`.toLowerCase()]=t[a]})}function Pt(e,t,n,r){let i=!1;for(let[a,o]of Object.entries(n)){if(a===`index`||jt(a,r))continue;let{baseKey:n,currentKey:s}=Mt(o);if(n===`unknown`||s===`unknown`)continue;let c=e[n],l=t[s];m.isEqual(c,l)||(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:dt(e),__status:void 0};return s&&Nt(u,s,r,`base__`,o),c&&Nt(u,c,i,`current__`,o),s?c?Pt(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);Ft(e.columns,t),e.data.length>0&&It(e,t)}}function Ft(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 It(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 Lt(e,t){Y(e,`dataframe`),e&&t?.primaryKeys&&X(t.primaryKeys,e.columns,{context:`toDataGrid`})}function Rt(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 zt(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 Bt(e,t,n,r){Rt(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=z(i),f=z(a),p=_t(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=B(i.columns,o);d.forEach(t=>{let n=V(i.columns,e,t);n in m&&(g=!0),m[n]=t});let t=B(a.columns,o);f.forEach(e=>{let n=V(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:O({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 Vt(){return{field:`_index`,headerName:``,width:50,cellClass:`index-column`,resizable:!1,pinned:`left`}}function Ht(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 Ut(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(Vt()),o=!0);for(let e of t)if(e.isPrimaryKey)a.push(Ht(e,n,i));else{let t=Ut(e,n,i);a.push({...t,pinned:e.frozen?`left`:void 0})}return{columns:a,usedIndexFallback:o}}function Wt(e,t,n){Lt(e,t);let r=t.primaryKeys??[],i=t.pinnedColumns??[],a=t.columnsRenderMode??{},{columns:o}=Z({columns:Ve({columnMap:ht(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:z(e)}}function Gt(e,t,n,r){zt(e,t);let i=n?.pinnedColumns??[],a=n?.changedOnly??!1,o=n?.displayMode??`inline`,s=n?.columnsRenderMode??{},c=z(e),l=gt(e),u={},d={},f=B(e.columns,t),p=l.in_a.key,m=l.in_b.key;c.forEach(t=>{let n=V(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:O({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:qe,defaultRenderCell:xt,inlineRenderCell:Ct},$={DataFrameColumnGroupHeader:qe,DataFrameColumnHeader:Je,defaultRenderCell:xt};function Kt(e){return G({...e,renderComponents:Q})}function qt(e){return K({...e,renderComponents:Q})}function Jt(e,t,n){return Bt(e,t,n,{renderComponents:Q})}function Yt(e,t,n){return Gt(e,t,n,{renderComponents:Q})}function Xt(e,t){return Wt(e,t,{renderComponents:$})}function Zt(e){return Z({...e,renderComponents:$})}function Qt(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 `}%`}else if(e>t){let n=(e-t)/e*100;return`-${n>=.1?n.toFixed(1):` <0.1 `}%`}else return`0`}function $t(e,t){return e!==null&&t!==null?e===t?`0`:Qt(e,t):e===t?`N/A`:e===null?`Added`:t===null?`Removed`:`N/A`}function en(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,$t(n,r)]})}}function tn(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 nn(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 rn(e){return{columns:[{field:`name`,headerName:`Name`,resizable:!0},{field:`current`,headerName:`Row Count`,resizable:!0}],rows:z(tn(e)).map(e=>({...e,current:e.current??`N/A`,__status:void 0}))}}function an(){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 on(e){let t=z(en(e)).map(e=>{let t=e.base,n=e.current;return{...e,base:t??`N/A`,current:n??`N/A`,__status:nn(typeof t==`number`?t:null,typeof n==`number`?n:null)}}),n=an();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 sn(e){let t=new Set,n=new Set;if(e?.nodes){let r=Object.values(e.nodes);for(let e of r)e.data.schema&&(e.data.changeStatus!==`added`&&t.add(e.data.schema),e.data.changeStatus!==`removed`&&n.add(e.data.schema))}return[t,n]}function cn(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 ln(e,t){return e?.organization_name&&e.web_url?`${e.web_url}/organizations/${e.organization_name}/settings`:t}export{ct as $,zt as A,Pe as At,vt as B,le as Bt,J as C,Ve as Ct,X as D,Re as Dt,Y as E,E as Et,G as F,ge as Ft,W as G,yt as H,ht as I,me as It,pt as J,B as K,gt as L,de as Lt,K as M,Ne as Mt,Tt as N,ke as Nt,Rt as O,Ie as Ot,Et as P,Ae as Pt,ot as Q,_t as R,pe as Rt,Bt as S,O as St,Ft as T,ze as Tt,bt as U,H as V,ue as Vt,V as W,ft as X,mt as Y,dt as Z,Kt as _,We as _t,rn as a,R as at,Wt as b,k as bt,en as c,$e as ct,qt as d,Qe as dt,st as et,Zt as f,Xe as ft,Xt as g,Ge as gt,Jt as h,j as ht,on as i,L as it,q as j,je as jt,Lt as k,Fe as kt,tn as l,Ze as lt,$ as m,M as mt,cn as n,lt as nt,$t as o,tt as ot,Q as p,Ye as pt,z as q,sn as r,nt as rt,nn as s,et as st,ln as t,ut as tt,Qt as u,I as ut,Yt as v,He as vt,It as w,D as wt,Z as x,Le as xt,Gt as y,Ue as yt,U as z,fe as zt};
6
- //# sourceMappingURL=utils-DTMaQi8v.js.map