dts-universal-report-module 1.2.2 → 1.3.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.
- package/dist/index.esm.js +7053 -6914
- package/dist/index.js +26 -26
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
"use strict";var sa=Object.defineProperty;var aa=(e,r,n)=>r in e?sa(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n;var ai=(e,r,n)=>aa(e,typeof r!="symbol"?r+"":r,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),x=require("react"),la=require("xlsx"),z=require("@mui/icons-material"),o=require("@mui/material"),ns=require("react-dom"),ca=require("@emotion/react"),Yt=require("react-dnd"),Pn=require("react-dnd-html5-backend");function is(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:()=>e[n]})}}return r.default=e,Object.freeze(r)}const Vo=is(x),wo=is(la),it={sort:{maxLevels:5},filter:{maxConditions:3,allowedOperators:["equals","contains","startsWith","endsWith","gt","lt","gte","lte","isTrue","isFalse","NULL","NOT_NULL"]},columns:{maxVisible:20,minColumnWidth:60,maxColumnWidth:800},grouping:{maxLevels:3,allowNested:!0,allowCollapse:!0},export:{allowedFormats:["csv","excel","json"]},views:{maxViews:10,isAdmin:!1},dates:{displayFormat:null},display:{showDevPanel:!1}},ss="urm_dev_config";function da(){try{const e=localStorage.getItem(ss);if(!e)return it;const r=JSON.parse(e),n={sort:{...it.sort,...r.sort},filter:{...it.filter,...r.filter},columns:{...it.columns,...r.columns},grouping:{...it.grouping,...r.grouping},export:{...it.export,...r.export},views:{...it.views,...r.views},dates:{...it.dates,...r.dates},display:{...it.display,...r.display}};return n.sort.maxLevels=Math.min(5,Math.max(1,n.sort.maxLevels)),n}catch{return it}}function ua(e){try{localStorage.setItem(ss,JSON.stringify(e))}catch{}}function pa(e,r,n){if(!n||!r)return e;const i={sort:{...e.sort,...r.sort},filter:{...e.filter,...r.filter},columns:{...e.columns,...r.columns},grouping:{...e.grouping,...r.grouping},export:{...e.export,...r.export},views:{...e.views,...r.views},dates:{...e.dates,...r.dates},display:{...e.display,...r.display}};return i.sort.maxLevels=Math.min(5,Math.max(1,i.sort.maxLevels)),i}const as=x.createContext(it);function Tr(){return x.useContext(as)}const xa=/^\d{4}-\d{2}-\d{2}$/,ma=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/,ha=/^(\d{1,2})[\/\-\.](\d{1,2})[\/\-\.](\d{2,4})$|^([A-Za-z]+)\s+\d{1,2},?\s+\d{4}$/,fa=9783072e5,ga=41024448e5,ya=978307200,ba=4102444800;function va(e){return e==null||e===""?"unknown":typeof e=="number"?Number.isInteger(e)&&e>=fa&&e<=ga?"timestamp_ms":Number.isInteger(e)&&e>=ya&&e<=ba?"timestamp_s":"unknown":typeof e!="string"?"unknown":ma.test(e)||xa.test(e)?"iso":ha.test(e.trim())?"locale_string":"unknown"}function Sa(e,r){const n=r.map(a=>a[e]).filter(a=>a!=null&&a!=="");if(n.length===0)return"unknown";const i={iso:0,timestamp_ms:0,timestamp_s:0,locale_string:0,unknown:0};for(const a of n){const c=va(a);i[c]++}const s=n.length,l=.7;for(const a of["iso","timestamp_ms","timestamp_s","locale_string"])if(i[a]/s>=l)return a;return"unknown"}function Ca(e,r){if(e==null||e==="")return null;try{switch(r){case"timestamp_ms":{const n=new Date(Number(e));return isNaN(n.getTime())?null:n}case"timestamp_s":{const n=new Date(Number(e)*1e3);return isNaN(n.getTime())?null:n}case"iso":{const n=new Date(String(e));return isNaN(n.getTime())?null:n}case"locale_string":{const n=new Date(String(e));return isNaN(n.getTime())?null:n}default:return null}}catch{return null}}const li=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ja=["January","February","March","April","May","June","July","August","September","October","November","December"];function Re(e){return String(e).padStart(2,"0")}function wa(e){const r=Date.now()-e.getTime(),n=Math.abs(r),i=r>0,s=Math.floor(n/1e3),l=Math.floor(s/60),a=Math.floor(l/60),c=Math.floor(a/24),u=Math.floor(c/7),g=Math.floor(c/30),y=Math.floor(c/365);let h;return s<60?h="just now":l<60?h=`${l} minute${l!==1?"s":""}`:a<24?h=`${a} hour${a!==1?"s":""}`:c<7?h=`${c} day${c!==1?"s":""}`:u<5?h=`${u} week${u!==1?"s":""}`:g<12?h=`${g} month${g!==1?"s":""}`:h=`${y} year${y!==1?"s":""}`,s<60?h:i?`${h} ago`:`in ${h}`}function ka(e,r){const n=e.getFullYear(),i=e.getMonth(),s=e.getDate(),l=e.getHours(),a=e.getMinutes();switch(r){case"YYYY-MM-DD":return`${n}-${Re(i+1)}-${Re(s)}`;case"DD/MM/YYYY":return`${Re(s)}/${Re(i+1)}/${n}`;case"MM/DD/YYYY":return`${Re(i+1)}/${Re(s)}/${n}`;case"MMM DD, YYYY":return`${li[i]} ${Re(s)}, ${n}`;case"DD MMM YYYY":return`${Re(s)} ${li[i]} ${n}`;case"MMMM D, YYYY":return`${ja[i]} ${s}, ${n}`;case"YYYY-MM-DD HH:mm":return`${n}-${Re(i+1)}-${Re(s)} ${Re(l)}:${Re(a)}`;case"DD/MM/YYYY HH:mm":return`${Re(s)}/${Re(i+1)}/${n} ${Re(l)}:${Re(a)}`;case"MM/DD/YYYY HH:mm":return`${Re(i+1)}/${Re(s)}/${n} ${Re(l)}:${Re(a)}`;case"relative":return wa(e);case"locale":return e.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"});default:return e.toLocaleDateString()}}function Ta(e,r,n){if(!n||r==="unknown")return String(e);const i=Ca(e,r);return!i||isNaN(i.getTime())?String(e):ka(i,n)}function Ba(e){return e==null?"null":Array.isArray(e)?"array":typeof e=="object"?"object":typeof e=="number"?"number":typeof e=="boolean"?"boolean":typeof e=="string"?"string":"mixed"}function ls(e,r="",n=0){if(n>2)return{[r]:e};const i={};for(const s of Object.keys(e)){const l=r?`${r}.${s}`:s,a=e[s];a!==null&&typeof a=="object"&&!Array.isArray(a)&&n<2?Object.assign(i,ls(a,l,n+1)):i[l]=a}return i}function no(e){return e.map(r=>typeof r!="object"||r===null||Array.isArray(r)?r:ls(r))}function eo(e){if(!Array.isArray(e)||e.length===0)return[];const r=no(e),n=new Set;r.forEach(a=>{typeof a=="object"&&a!==null&&Object.keys(a).forEach(c=>n.add(c))});const i=[];n.forEach(a=>{const c=new Set;let u=0;r.forEach(v=>{typeof v=="object"&&v!==null&&a in v&&(u++,c.add(Ba(v[a])))});const g=u===r.length,y=c.size>1&&!c.has("null");let h="mixed";if(c.size===1)h=Array.from(c)[0];else if(c.size===2&&c.has("null")){const v=Array.from(c).filter(S=>S!=="null");v.length===1&&(h=v[0])}i.push({name:a,type:h,required:g,hasConflict:y})});const l=r.slice(0,50);for(const a of i){if(a.type!=="string"&&a.type!=="number")continue;const c=Sa(a.name,l);c!=="unknown"&&(a.type="date",a.dateFormat=c)}return i}function Ia(e){return e.some(r=>r.hasConflict)}function et(e){if(!e)return"";const n=e.replace(/[_-]/g," ").replace(/([a-z])([A-Z])/g,"$1 $2");return n.charAt(0).toUpperCase()+n.slice(1)}function ci(e){return e==null}function za(e){return(r,n,i)=>{const s=ci(r),l=ci(n);if(s&&l)return 0;if(s)return 1;if(l)return-1;let a=0;switch(e){case"number":const c=Number(r),u=Number(n);a=c-u;break;case"boolean":a=(r?1:0)-(n?1:0);break;case"string":a=String(r).localeCompare(String(n));break;case"array":case"object":a=JSON.stringify(r).localeCompare(JSON.stringify(n));break;case"mixed":case"null":default:a=String(r).localeCompare(String(n));break}return i==="asc"?a:-a}}function Ea(e,r,n){if(!n||n.length===0)return e;const i=[...n].sort((s,l)=>s.priority-l.priority);return[...e].sort((s,l)=>{for(const a of i){const c=r.find(y=>y.name===a.column);if(!c)continue;const g=za(c.type)(s[a.column],l[a.column],a.direction);if(g!==0)return g}return 0})}function Da(e){return e===null?"asc":e==="asc"?"desc":null}function $a(e){return e==="string"||e==="boolean"}function Oa(e){return e.filter(r=>$a(r.type))}function _a(e,r){const n={};return r.forEach(i=>{if(i.type==="number"){const s=e.map(l=>l[i.name]).filter(l=>typeof l=="number");s.length>0&&(n[i.name]=s.reduce((l,a)=>l+a,0))}}),n}function Ma(e,r,n){if(!n.enabled||n.levels.length===0)return e;const i=Nn(e,n.levels,r);return cs(i,n.collapsedGroups||[])}function Nn(e,r,n,i="",s=0){if(s>=r.length)return e;const l=r[s].column,a=new Map;e.forEach(g=>{const y=g[l],h=y==null?"(empty)":String(y);a.has(h)||a.set(h,[]),a.get(h).push(g)});const c=[];return Array.from(a.keys()).sort().forEach(g=>{const y=a.get(g),h=`${l}:${g}`,v=i?`${i}|${h}`:h,S=_a(y,n),B=s<r.length-1?Nn(y,r,n,v,s+1):y,C={key:v,level:s,column:l,value:g,rowCount:y.length,aggregates:S,children:B};c.push(C)}),c}function cs(e,r,n=[],i=0){for(const s of e)if("key"in s&&"level"in s&&"children"in s){const l=r.includes(s.key);n.push({isGroupHeader:!0,groupKey:s.key,groupLevel:s.level,groupColumn:s.column,groupValue:s.value,rowCount:s.rowCount,aggregates:s.aggregates,isCollapsed:l}),!l&&s.children&&cs(s.children,r,n,i+1)}else n.push({...s,__urm_is_grouped_data_row__:!0,__urm_group_level__:i});return n}function Aa(e,r,n){if(!n.enabled||n.levels.length===0)return[];const i=Nn(e,n.levels,r),s=[],l=a=>{for(const c of a)"key"in c&&"level"in c&&"children"in c&&(s.push(c.key),l(c.children))};return l(i),s}function Ra(e,r){const n=e.collapsedGroups||[],i=n.includes(r)?n.filter(s=>s!==r):[...n,r];return{...e,collapsedGroups:i}}function ds(e,r){return e==null?"":typeof e=="number"?`Σ ${e.toLocaleString()}`:String(e)}function us(e,r,n){const i=r?et(r):"",s=String(n??"");return i?`${i}: ${s}`:s}function Yr(){return`flt_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function Ne(e){return"children"in e}function wt(){return{id:Yr(),operator:"and",children:[]}}function Me(e){return e?Array.isArray(e)?{id:Yr(),operator:"and",children:e.map(r=>({...r,id:r.id??Yr()}))}:e:wt()}function ht(e){return e?Ne(e)?e.children.reduce((r,n)=>r+ht(n),0):1:0}function $o(e,r){if(e.id===r)return e;for(const n of e.children){if(n.id===r)return n;if(Ne(n)){const i=$o(n,r);if(i)return i}}}function qr(e,r,n){return e.id===r?{...e,children:[...e.children,n]}:{...e,children:e.children.map(i=>Ne(i)?qr(i,r,n):i)}}function Ln(e,r,n){return{...e,children:e.children.map(i=>i.id===r&&!Ne(i)?{...i,...n}:Ne(i)?Ln(i,r,n):i)}}function Fn(e,r,n){return e.id===r?{...e,operator:n}:{...e,children:e.children.map(i=>Ne(i)?Fn(i,r,n):i)}}function Vn(e,r){const n=e.children.filter(i=>i.id!==r).map(i=>Ne(i)?Vn(i,r):i).filter(i=>!Ne(i)||i.children.length>0);return{...e,children:n}}function $n(e,r){return e?Ne(e)?e.children.some(n=>$n(n,r)):e.column===r:!1}function ps(e,r){const n=e.children.filter(i=>Ne(i)||i.column!==r).map(i=>Ne(i)?ps(i,r):i).filter(i=>!Ne(i)||i.children.length>0);return{...e,children:n}}function xs(e){return e?Ne(e)?e.children.flatMap(xs):[e]:[]}function uo(e){if(!e)return null;if(!Ne(e)){const{id:i,...s}=e;return s}const{id:r,...n}=e;return{...n,children:e.children.map(uo)}}function io(e,r){if(!r||!r.enabled||!r.levels||r.levels.length===0)return[...e];const n=r.levels.map(s=>s.column),i=e.filter(s=>!n.includes(s));return[...n,...i]}function Hn(e,r,n){if(!r||!r.enabled||!r.levels||r.levels.length===0)return[...e];const i=r.levels.map(l=>l.column),s=e.filter(l=>!i.includes(l));if(n){const l=[],a=new Set(i),c=new Set(s);let u=0;for(const g of n)a.has(g)?l.push(g):c.has(g)&&u<s.length?(l.push(s[u]),u++):c.has(g)||l.push(g);for(let g=u;g<s.length;g++)l.includes(s[g])||l.push(s[g]);return l}return[...e]}function Sn(e){const r={},n=[],i={};return e.forEach(s=>{r[s.name]=!0,n.push(s.name),i[s.name]=170}),{id:"default-view",name:"Default View",description:"Unfiltered, unsorted baseline view",isDefault:!0,snapshot:{filters:wt(),sortStack:[],columnVisibility:r,columnOrder:n,columnWidths:i,grouping:null}}}function Wa(e,r,n,i,s,l,a,c){const u={},g=[],y={};n.forEach(S=>{u[S.name]=!0,g.push(S.name),y[S.name]=170});const v=Hn(s||g,a||null,c||g);return{filters:Me(e),sortStack:r||[],columnVisibility:i||u,columnOrder:v,columnWidths:l||y,grouping:a||null}}function Pa(e,r){const n=S=>{if(S==null)return S;if(Array.isArray(S))return S.map(B=>n(B));if(typeof S=="object"){const B={};return Object.keys(S).sort().forEach(C=>{B[C]=n(S[C])}),B}return S},i=S=>JSON.stringify(n(S));if(i(uo(e.filters))!==i(uo(r.filters))||i(e.sortStack)!==i(r.sortStack))return!0;const s=e.columnVisibility??{},l=r.columnVisibility??{};if(i(s)!==i(l))return!0;const a=Hn(e.columnOrder||[],e.grouping||null,r.columnOrder||[]),c=[...a].sort().join(","),u=[...r.columnOrder||[]].sort().join(",");if(c!==u)return!1;const g=[...r.columnOrder||[]].sort().join(",");if((r.columnOrder||[]).join(",")!==g){if(a.join(",")!==(r.columnOrder||[]).join(","))return!0}else{const S=[...a].sort().join(",");if(a.join(",")!==S)return!0}const h=e.columnWidths??{},v=r.columnWidths??{};return i(h)!==i(v)||i(e.grouping)!==i(r.grouping)}function Na(e){return!e||e.length===0?"None":e.sort((r,n)=>r.priority-n.priority).map(r=>`${r.column} ${r.direction==="asc"?"↑":"↓"}`).join(", ")}function La(e,r){var C,m,I;const n=[],i=JSON.stringify(uo(e.filters)),s=JSON.stringify(uo(r.filters));if(i!==s){const f=ht(e.filters),O=ht(r.filters);f>O?n.push({category:"filters",label:"Filters Added",description:`${f-O} new filter${f-O>1?"s":""} added`}):f<O?n.push({category:"filters",label:"Filters Removed",description:`${O-f} filter${O-f>1?"s":""} removed`}):n.push({category:"filters",label:"Filters Modified",description:"Filter conditions have been changed"})}const l=JSON.stringify(e.sortStack),a=JSON.stringify(r.sortStack);if(l!==a){const f=e.sortStack.length,O=r.sortStack.length;f>O?n.push({category:"sorting",label:"Sorting Added",description:`${f-O} new sort rule${f-O>1?"s":""} added`}):f<O?n.push({category:"sorting",label:"Sorting Removed",description:`${O-f} sort rule${O-f>1?"s":""} removed`}):n.push({category:"sorting",label:"Sorting Modified",description:"Sort rules or order have been changed"})}const c=JSON.stringify(e.columnVisibility),u=JSON.stringify(r.columnVisibility);if(c!==u){const f=Object.values(e.columnVisibility).filter(j=>j).length,O=Object.values(r.columnVisibility).filter(j=>j).length;f>O?n.push({category:"visibility",label:"Columns Shown",description:`${f-O} column${f-O>1?"s":""} made visible`}):f<O?n.push({category:"visibility",label:"Columns Hidden",description:`${O-f} column${O-f>1?"s":""} hidden`}):n.push({category:"visibility",label:"Column Visibility Changed",description:"Column visibility settings have been modified"})}const g=JSON.stringify(e.columnOrder),y=JSON.stringify(r.columnOrder);g!==y&&n.push({category:"order",label:"Column Order Changed",description:"Columns have been reordered"});const h=JSON.stringify(e.columnWidths),v=JSON.stringify(r.columnWidths);if(h!==v){const f=Object.keys(e.columnWidths).filter(O=>e.columnWidths[O]!==r.columnWidths[O]).length;n.push({category:"widths",label:"Column Widths Adjusted",description:`${f} column width${f>1?"s":""} modified`})}const S=JSON.stringify(e.grouping),B=JSON.stringify(r.grouping);if(S!==B){const f=(C=e.grouping)==null?void 0:C.enabled,O=(m=r.grouping)==null?void 0:m.enabled;if(f&&!O){const j=((I=e.grouping)==null?void 0:I.levels.length)||0;n.push({category:"grouping",label:"Grouping Applied",description:`${j} grouping level${j>1?"s":""} added`})}else!f&&O?n.push({category:"grouping",label:"Grouping Removed",description:"All grouping has been cleared"}):n.push({category:"grouping",label:"Grouping Modified",description:"Grouping configuration has been changed"})}return n}function di(){try{return localStorage.getItem("urm:debug")==="true"}catch{return!1}}function ui(e){return`[${e}]`}const Rt={warn(e,r,...n){di()&&console.warn(ui(e),r,...n)},error(e,r,...n){di()&&console.error(ui(e),r,...n)}},ms="urm_report_";function Fa(e,r){try{const n=`${ms}${e}`;localStorage.setItem(n,JSON.stringify(r))}catch(n){Rt.error("urm:persistence","Failed to save report state",n)}}function Va(e){try{const r=`${ms}${e}`,n=localStorage.getItem(r);return n?JSON.parse(n):null}catch(r){return Rt.error("urm:persistence","Failed to load report state",r),null}}function Ho(e,r,n=0){const i=[];for(const s of e){const l=r.includes(s.key);if(i.push({type:"group",key:s.key,level:n,column:s.column,value:s.value,rowCount:s.rowCount,aggregates:s.aggregates,collapsed:l}),!l&&s.children&&s.children.length>0){const a=s.children[0];if(Ha(a)){const c=s.children,u=Ho(c,r,n+1);i.push(...u)}else{const c=s.children;for(const u of c)i.push({type:"row",parentGroupKey:s.key,level:n+1,data:u})}}}return i}function Ha(e){return e&&typeof e=="object"&&"key"in e&&"level"in e&&"column"in e&&"value"in e&&"rowCount"in e&&"aggregates"in e&&"children"in e}function Un(e){return e.filter(r=>r.type==="row").map(r=>r.type==="row"?r.data:null).filter(r=>r!==null)}function Gn(e,r){const n=new Date,i=n.getFullYear(),s=String(n.getMonth()+1).padStart(2,"0"),l=String(n.getDate()).padStart(2,"0"),a=`${i}-${s}-${l}`;return`${e.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")}_${a}.${r}`}function Ao(e,r,n,i,s,l,a){let c,u;l?(c={...l},u=a||r.map(y=>y.name)):s?(c={...s.snapshot.columnVisibility},u=a||[...s.snapshot.columnOrder]):(c={},u=[],r.forEach(y=>{c[y.name]=!0,u.push(y.name)}));const g=Object.entries(c).filter(([y,h])=>!h).map(([y,h])=>y);return{data:e,schema:r,appliedFilters:n,appliedSortStack:i,columnVisibility:c,columnOrder:u,grouping:(s==null?void 0:s.snapshot.grouping)??null,hiddenColumns:g,viewMeta:s?{id:s.id,name:s.name,isDefault:s.isDefault}:void 0}}function Ro(e,r="export",n){const{data:i,columnOrder:s,grouping:l}=e,a=s.filter(h=>e.columnVisibility[h]);let c;if(l&&l.enabled){const h=l.collapsedGroups??[],v=Ho(i,h);c=Un(v)}else c=i;const u=a.join(","),g=c.map(h=>a.map(v=>{const S=h[v];if(S==null)return"";const B=String(S);return B.includes(",")||B.includes('"')||B.includes(`
|
|
2
|
-
`)?`"${
|
|
3
|
-
`);hs(y,Gn(r,"csv"),"text/csv;charset=utf-8;")}function Wo(e,r="export",n){const{data:i,columnOrder:s,grouping:l}=e,a=s.filter(h=>e.columnVisibility[h]);let c;if(l&&l.enabled){const h=l.collapsedGroups??[],v=Ho(i,h);c=Un(v)}else c=i;const u=[a,...c.map(h=>a.map(v=>h[v]??""))],g=wo.utils.aoa_to_sheet(u),y=wo.utils.book_new();wo.utils.book_append_sheet(y,g,"Data"),wo.writeFile(y,Gn(r,"xlsx"))}function Po(e,r="export",n){const{data:i,appliedFilters:s,appliedSortStack:l,viewMeta:a,hiddenColumns:c,columnOrder:u,grouping:g}=e;let y;if(g&&g.enabled){const S=g.collapsedGroups??[],B=Ho(i,S);y=Un(B)}else y=i;const h={meta:{exportedAt:new Date().toISOString(),reportName:r,view:(a==null?void 0:a.name)||"Default View",filters:xs(s).map(S=>({field:S.column,operator:S.operator,value:S.value})),sortStack:l.map(S=>({field:S.column,direction:S.direction,priority:S.priority})),grouping:g||{},hiddenColumns:c,columnOrder:u,exportConfig:n||{scope:"visible"}},data:y},v=JSON.stringify(h,null,2);hs(v,Gn(r,"json"),"application/json;charset=utf-8;")}function hs(e,r,n){const i=new Blob([e],{type:n}),s=URL.createObjectURL(i),l=document.createElement("a");l.href=s,l.download=r,document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(s)}const pi=10;function Ua(e,r){const n=r.trim();if(!n)return e;const i=e.findIndex(l=>l.query.toLowerCase()===n.toLowerCase());let s;return i!==-1?s=[{...e[i],lastUsed:Date.now()},...e.slice(0,i),...e.slice(i+1)]:s=[{query:n,isFavourite:!1,lastUsed:Date.now()},...e],s.length>pi&&(s=[...s].sort((a,c)=>a.isFavourite&&!c.isFavourite?-1:!a.isFavourite&&c.isFavourite?1:c.lastUsed-a.lastUsed).slice(0,pi)),s}function Ga(e,r){return e.map(n=>n.query===r?{...n,isFavourite:!n.isFavourite}:n)}function Ya(e,r){return e.filter(n=>n.query!==r)}function qa(e){const r=e.filter(i=>i.isFavourite).sort((i,s)=>s.lastUsed-i.lastUsed),n=e.filter(i=>!i.isFavourite).sort((i,s)=>s.lastUsed-i.lastUsed);return[...r,...n]}const Ja={owner:["view_report","edit_columns","edit_filters","edit_sorting","edit_views","create_views","delete_views","delete_report","export_data","promote_global_view"],editor:["view_report","edit_columns","edit_filters","edit_sorting","edit_views","create_views","delete_views","export_data"],viewer:["view_report","export_data"]};function Ka(e,r){return!e||e.owner===r?"owner":e.editors.includes(r)?"editor":(e.viewers.includes(r),"viewer")}function pt(e,r){return Ja[r].includes(e)}function xt(e){return`You do not have permission to ${{view_report:"view this report",edit_columns:"modify columns",edit_filters:"modify filters",edit_sorting:"modify sorting",edit_views:"edit views",create_views:"create views",delete_views:"delete views",delete_report:"delete this report",export_data:"export data",promote_global_view:"promote views to global"}[e]||"perform this action"}.`}function Xa(e){return e==="viewer"}const xi=1e3;function On(e){return e&&e.charAt(0).toUpperCase()+e.slice(1)}function Mt(e){if(!e)return"";const n=e.replace(/[_-]/g," ").replace(/([a-z])([A-Z])/g,"$1 $2");return On(n)}const Qa={equals:"equals",contains:"contains",startsWith:"starts with",endsWith:"ends with",gt:"is greater than",lt:"is less than",gte:"is greater than or equal to",lte:"is less than or equal to",isTrue:"is true",isFalse:"is false",NULL:"is empty",NOT_NULL:"is not empty"};function Za(e){if(!e||!e.column)return"a filter";const r=Mt(e.column),n=Qa[e.operator]??e.operator;return["isTrue","isFalse","NULL","NOT_NULL"].includes(e.operator)?`"${r}" ${n}`:`"${r}" ${n} "${e.value}"`}function Cn(e){return e?typeof e=="string"?e:"children"in e?"a condition group":Za(e):"a filter"}function mi(e){return!e||!e.enabled||e.levels.length===0?"grouping removed":`grouped by ${e.levels.map(n=>`"${Mt(n.column)}"`).join(", ")}`}function el(e){var s,l,a;const{action:r,previousState:n,newState:i}=e;switch(r){case"filter_added":return{summary:`Filter added: ${Cn(i)}`};case"filter_removed":return{summary:`Filter removed: ${Cn(n)}`};case"filter_updated":{if(typeof i=="string")return{summary:`Filter updated: ${i}`};const c=n,u=i;return c!=null&&c.column&&(u!=null&&u.column)&&c.column!==u.column?{summary:`Filter changed on "${Mt(u.column)}"`,detail:`Previously filtered "${Mt(c.column)}"`}:{summary:`Filter updated: ${Cn(u)}`}}case"filter_cleared":{const c=n&&typeof n=="object"&&"count"in n?n.count:0;return{summary:c>0?`All filters cleared (${c} filter${c!==1?"s":""} removed)`:"All filters cleared"}}case"sort_level_added":{const c=i!=null&&i.column?Mt(i.column):"",u=(i==null?void 0:i.direction)==="asc"?"ascending":"descending";return{summary:c?`Sort added: "${c}" ${u}`:"Sort level added"}}case"sort_level_removed":{const c=n!=null&&n.column?Mt(n.column):"";return{summary:c?`Sort removed: "${c}"`:"Sort level removed"}}case"sort_reordered":return{summary:"Sort order changed"};case"sort_cleared":return{summary:"All sorting cleared"};case"group_level_added":return{summary:`Grouping applied: ${mi(i)}`};case"group_level_removed":{const c=n,u=(l=(s=c==null?void 0:c.levels)==null?void 0:s[0])!=null&&l.column?Mt(c.levels[0].column):"";return{summary:u?`Group level removed: "${u}"`:"Group level removed"}}case"group_reordered":return{summary:`Grouping updated: ${mi(i)}`};case"group_cleared":return{summary:"Grouping removed"};case"column_hidden":{const c=(i==null?void 0:i.column)??(typeof i=="string"?i:"");return{summary:c?`Column hidden: "${Mt(c)}"`:"Column hidden"}}case"column_shown":{const c=(i==null?void 0:i.column)??(typeof i=="string"?i:"");return{summary:c?`Column shown: "${Mt(c)}"`:"Column made visible"}}case"column_reordered":{const c=Array.isArray(n)?n:[],u=Array.isArray(i)?i:[];return c.length>0&&u.length>0?{summary:"Column order changed",detail:`${u.length} column${u.length!==1?"s":""} reordered`}:{summary:"Columns reordered"}}case"column_resized":{const c=(i==null?void 0:i.column)??"",u=(i==null?void 0:i.width)??"";return{summary:c?`Column resized: "${Mt(c)}"`:"Column resized",detail:u?`New width: ${u}px`:void 0}}case"view_created":{const c=(i==null?void 0:i.name)??(i==null?void 0:i.viewName)??"";return{summary:c?`View created: "${c}"`:"New view created"}}case"view_updated":{const c=(i==null?void 0:i.name)??(n==null?void 0:n.name)??"";return{summary:c?`View updated: "${c}"`:"View updated"}}case"view_deleted":{const c=(n==null?void 0:n.name)??(n==null?void 0:n.viewName)??"";return{summary:c?`View deleted: "${c}"`:"View deleted"}}case"view_set_default":{const c=(i==null?void 0:i.name)??"";return{summary:c?`Default view set to "${c}"`:"Default view changed"}}case"view_switched":{const c=(n==null?void 0:n.name)??"",u=(i==null?void 0:i.name)??"";return c&&u?{summary:`Switched to view "${u}"`,detail:`From "${c}"`}:u?{summary:`Switched to view "${u}"`}:{summary:"View switched"}}case"export_csv":case"export_excel":case"export_json":{const c=r==="export_csv"?"CSV":r==="export_excel"?"Excel":"JSON",u=i==null?void 0:i.rowCount,g=(i==null?void 0:i.scope)==="all"?"all rows":"filtered rows",y=(i==null?void 0:i.viewName)??"",h=typeof u=="number"?` (${u.toLocaleString()} rows)`:"";return{summary:`Exported as ${c}${h}`,detail:y?`${On(g)} · View: "${y}"`:On(g)}}case"export_triggered":{const c=((a=i==null?void 0:i.format)==null?void 0:a.toUpperCase())??"";return{summary:c?`Export triggered: ${c}`:"Export triggered"}}case"preset_created":{const c=(i==null?void 0:i.name)??"";return{summary:c?`Preset created: "${c}"`:"New preset created"}}case"preset_applied":{const c=(i==null?void 0:i.name)??"";return{summary:c?`Preset applied: "${c}"`:"Preset applied"}}case"preset_deleted":{const c=(n==null?void 0:n.name)??"";return{summary:c?`Preset deleted: "${c}"`:"Preset deleted"}}case"preset_link_copied":{const c=(i==null?void 0:i.name)??"";return{summary:c?`Preset link copied: "${c}"`:"Preset link copied to clipboard"}}case"theme_changed":{const c=typeof n=="string"?n:(n==null?void 0:n.theme)??"",u=typeof i=="string"?i:(i==null?void 0:i.theme)??"";return c&&u?{summary:`Theme changed from "${c}" to "${u}"`}:u?{summary:`Theme changed to "${u}"`}:{summary:"Theme changed"}}case"error_occurred":{const c=(i==null?void 0:i.message)??(i==null?void 0:i.error)??typeof i=="string"?i:"";return{summary:"An error was recorded",detail:c?`Details: ${String(c).slice(0,120)}`:void 0}}default:return{summary:rl(r)}}}function tl(){return`EVT_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function fs(e,r,n,i,s,l){return{id:tl(),user:r,reportId:e,feature:n,action:i,timestamp:new Date().toISOString(),previousState:s,newState:l}}function gs(e,r){const n=[r,...e];return n.length>xi?n.slice(0,xi):n}function rl(e){return{filter_added:"Filter Added",filter_removed:"Filter Removed",filter_updated:"Filter Updated",filter_cleared:"All Filters Cleared",sort_level_added:"Sort Level Added",sort_level_removed:"Sort Level Removed",sort_reordered:"Sort Reordered",sort_cleared:"All Sorting Cleared",group_level_added:"Group Level Added",group_level_removed:"Group Level Removed",group_reordered:"Group Reordered",group_cleared:"All Grouping Cleared",column_hidden:"Column Hidden",column_shown:"Column Shown",column_reordered:"Columns Reordered",column_resized:"Column Resized",view_created:"View Created",view_updated:"View Updated",view_deleted:"View Deleted",view_set_default:"View Set as Default",view_switched:"View Switched",theme_changed:"Theme Changed",export_triggered:"Export Triggered",export_csv:"Exported as CSV",export_excel:"Exported as Excel",export_json:"Exported as JSON",preset_created:"Preset Created",preset_applied:"Preset Applied",preset_deleted:"Preset Deleted",preset_link_copied:"Preset Link Copied",error_occurred:"Error Occurred"}[e]||e}function ol(e){return{filters:"Filters",sorting:"Sorting",grouping:"Grouping",columns:"Columns",views:"Views",theme:"Theme",export:"Export",presets:"Presets",system:"System"}[e]||e}function nl(e){const r=new Date(e),i=new Date().getTime()-r.getTime(),s=Math.floor(i/6e4),l=Math.floor(i/36e5),a=Math.floor(i/864e5);return s<1?"Just now":s<60?`${s} minute${s>1?"s":""} ago`:l<24?`${l} hour${l>1?"s":""} ago`:a<7?`${a} day${a>1?"s":""} ago`:r.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit"})}const hi=100;function il(){return`preset_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function sl(e){var l;const r=(l=e.views)==null?void 0:l.find(a=>a.id===e.activeViewId),n=r==null?void 0:r.snapshot.columnOrder,i=e.columnOrder||[],s=Hn(i,e.grouping||null,n);return{filters:Me(e.filters),sortStack:e.sortStack?[...e.sortStack]:[],columnVisibility:e.columnVisibility?{...e.columnVisibility}:{},columnOrder:s,columnWidths:e.columnWidths?{...e.columnWidths}:{},grouping:e.grouping?{...e.grouping}:null,activeViewId:e.activeViewId}}function al(e,r,n,i){return{id:il(),name:e,description:r,createdBy:n,createdAt:Date.now(),config:i}}function ll(e,r){const n=e||[];if(n.length>=hi)throw new Error(`Maximum of ${hi} presets reached. Please delete old presets first.`);return[...n,r]}function cl(e,r){return(e||[]).filter(i=>i.id!==r)}function fi(e,r){if(e)return e.find(n=>n.id===r)}function dl(){return typeof window>"u"?null:new URLSearchParams(window.location.search).get("preset")}function ul(e){const r=e.columnOrder,n=io(r,e.grouping);return{filters:Me(e.filters),sortStack:e.sortStack.length>0?[...e.sortStack]:void 0,columnVisibility:{...e.columnVisibility},columnOrder:n,columnWidths:{...e.columnWidths},grouping:e.grouping?{...e.grouping}:null,activeViewId:e.activeViewId}}async function pl(e){try{if(navigator.clipboard&&navigator.clipboard.writeText)return await navigator.clipboard.writeText(e),!0}catch(r){Rt.warn("urm:presets","Clipboard API blocked, using fallback method",r)}try{const r=document.createElement("textarea");r.value=e,r.style.position="fixed",r.style.top="0",r.style.left="0",r.style.width="2em",r.style.height="2em",r.style.padding="0",r.style.border="none",r.style.outline="none",r.style.boxShadow="none",r.style.background="transparent",r.style.opacity="0",document.body.appendChild(r),r.focus(),r.select();let n=!1;try{n=document.execCommand("copy")}catch(i){Rt.error("urm:presets","execCommand copy failed",i)}return document.body.removeChild(r),n}catch(r){return Rt.error("urm:presets","Fallback copy method failed",r),!1}}function xl(e,r){return{totalRows:e.length,totalColumns:r.length}}function pr(e,r,n,i){const s=n instanceof Error?n.message:n,l={type:e,context:r,message:s,details:i,timestamp:Date.now(),recoverable:ml(e,r)};return process.env.NODE_ENV==="development"&&Rt.error("urm:error-handling","[Report Error]",{type:e,context:r,message:s,details:i}),l}function ml(e,r){return e==="ui"?!0:r==="export"?!1:e==="processing"&&["filters","sorting","grouping","columns"].includes(r)?!0:e!=="system"}function hl(e){const n={filters:"There was an issue applying filters",sorting:"Sorting could not be applied",grouping:"Grouping configuration failed",columns:"Column configuration could not be updated",views:"View operation failed",presets:"Preset could not be applied",export:"Export failed",upload:"File upload failed",search:"Search operation failed"}[e.context]||"An error occurred";return e.recoverable?`${n}. Your previous state has been restored.`:`${n}. Please refresh the page.`}function fl(e){return{filters:e.filters,sortStack:e.sortStack?[...e.sortStack]:void 0,grouping:e.grouping?{...e.grouping}:void 0,columnVisibility:e.columnVisibility?{...e.columnVisibility}:void 0,columnOrder:e.columnOrder?[...e.columnOrder]:void 0,columnWidths:e.columnWidths?{...e.columnWidths}:void 0,activeViewId:e.activeViewId}}function gl(e,r,n){n(e.id,{filters:Me(r.filters),sortStack:r.sortStack,grouping:r.grouping,columnVisibility:r.columnVisibility,columnOrder:r.columnOrder,columnWidths:r.columnWidths,activeViewId:r.activeViewId})}function yl(e,r,n){return["equals","contains","starts_with","ends_with","gt","gte","lt","lte"].includes(r)&&(n==null||n==="")?{isValid:!1,errorMessage:"Value is required for this operator"}:e==="number"&&["gt","gte","lt","lte","equals"].includes(r)&&isNaN(Number(n))?{isValid:!1,errorMessage:"Value must be a valid number"}:e==="date"&&n&&isNaN(Date.parse(n))?{isValid:!1,errorMessage:"Value must be a valid date"}:{isValid:!0}}function ys(e,r){const n=[],i=[],s=new Set(r.map(l=>l.name));return e.forEach(l=>{s.has(l.column)?n.push(l):i.push(l.column)}),{validRules:n,invalidColumns:i}}function bs(e,r){if(!e||!e.levels||e.levels.length===0)return{validGrouping:null,invalidColumns:[]};const n=new Set(r.map(l=>l.name)),i=[],s=[];return e.levels.forEach(l=>{n.has(l.column)?i.push(l):s.push(l.column)}),i.length===0?{validGrouping:null,invalidColumns:s}:{validGrouping:{...e,levels:i},invalidColumns:s}}function bl(e,r){const n=[],i=new Set(r.map(l=>l.name)),s={...e};if(s.filters){const l=a=>{const c=a.children.filter(u=>{if(Ne(u))return!0;const g=i.has(u.column);return g||n.push(`Filter for column "${u.column}" ignored (column not found)`),g}).map(u=>Ne(u)?l(u):u).filter(u=>!Ne(u)||u.children.length>0);return{...a,children:c}};s.filters=l(Me(s.filters))}if(s.sortStack&&Array.isArray(s.sortStack)){const{validRules:l,invalidColumns:a}=ys(s.sortStack,r);a.length>0&&n.push(`Sort rules for columns ignored: ${a.join(", ")}`),s.sortStack=l.length>0?l:void 0}if(s.grouping){const{validGrouping:l,invalidColumns:a}=bs(s.grouping,r);a.length>0&&n.push(`Grouping for columns ignored: ${a.join(", ")}`),s.grouping=l}if(s.columnVisibility){const l={};Object.entries(s.columnVisibility).forEach(([a,c])=>{i.has(a)?l[a]=c:n.push(`Column visibility for "${a}" ignored (column not found)`)}),s.columnVisibility=Object.keys(l).length>0?l:void 0}if(s.columnOrder&&Array.isArray(s.columnOrder)){const l=s.columnOrder.filter(a=>{const c=i.has(a);return c||n.push(`Column "${a}" in order ignored (column not found)`),c});s.columnOrder=l.length>0?l:void 0}if(s.columnWidths){const l={};Object.entries(s.columnWidths).forEach(([a,c])=>{i.has(a)?l[a]=c:n.push(`Column width for "${a}" ignored (column not found)`)}),s.columnWidths=Object.keys(l).length>0?l:void 0}return{sanitizedConfig:s,warnings:n}}function vl(e,r){return pr("processing","export",e,{retryAvailable:!!(r!=null&&r.onRetry)})}function gi(e,r,n,i){const s=fs(e,r,"system","error_occurred",null,{errorType:n.type,errorContext:n.context,errorMessage:n.message,recoverable:n.recoverable,timestamp:n.timestamp});return gs(i||[],s)}function Sl(e){return e==null}function Cl(e,r,n){const{operator:i,value:s}=r;if(i==="NULL")return e==null;if(i==="NOT_NULL")return e!=null;if(Sl(e))return!1;if(n==="date"){const l=new Date(e).getTime(),a=new Date(s).getTime();switch(i){case"equals":return l===a;case"gt":return l>a;case"lt":return l<a;case"gte":return l>=a;case"lte":return l<=a;default:return!0}}switch(i){case"equals":return String(e)===String(s);case"contains":return String(e).toLowerCase().includes(String(s).toLowerCase());case"startsWith":return String(e).toLowerCase().startsWith(String(s).toLowerCase());case"endsWith":return String(e).toLowerCase().endsWith(String(s).toLowerCase());case"gt":return Number(e)>Number(s);case"lt":return Number(e)<Number(s);case"gte":return Number(e)>=Number(s);case"lte":return Number(e)<=Number(s);case"isTrue":return e===!0;case"isFalse":return e===!1;default:return!0}}function _n(e,r,n){var s;if(Ne(r))return r.children.length===0?!0:r.operator==="and"?r.children.every(l=>_n(e,l,n)):r.children.some(l=>_n(e,l,n));const i=((s=n.find(l=>l.name===r.column))==null?void 0:s.type)??"string";return Cl(e[r.column],r,i)}function jl(e,r,n){return!r||r.children.length===0?e:e.filter(i=>_n(i,r,n))}function No(e){switch(e){case"string":return[{value:"equals",label:"Equals"},{value:"contains",label:"Contains"},{value:"startsWith",label:"Starts with"},{value:"endsWith",label:"Ends with"},{value:"NULL",label:"Is NULL"},{value:"NOT_NULL",label:"Is NOT NULL"}];case"number":return[{value:"equals",label:"="},{value:"gt",label:">"},{value:"lt",label:"<"},{value:"gte",label:"≥"},{value:"lte",label:"≤"}];case"boolean":return[{value:"isTrue",label:"Is true"},{value:"isFalse",label:"Is false"},{value:"NULL",label:"Is NULL"},{value:"NOT_NULL",label:"Is NOT NULL"}];case"date":return[{value:"equals",label:"Is"},{value:"gt",label:"After"},{value:"lt",label:"Before"},{value:"gte",label:"On or after"},{value:"lte",label:"On or before"},{value:"NULL",label:"Is NULL"},{value:"NOT_NULL",label:"Is NOT NULL"}];case"mixed":case"null":case"array":case"object":default:return[]}}function wl(e){return e!=="isTrue"&&e!=="isFalse"&&e!=="NULL"&&e!=="NOT_NULL"}function kl({data:e,filters:r,schema:n}){return{filteredData:x.useMemo(()=>!r||r.children.length===0?e:jl(e,r,n),[e,r,n])}}function Tl(e,r,n,i){if(!n||n.trim()==="")return e;const s=n.toLowerCase().trim(),l=r.filter(a=>i.includes(a.name));return e.filter(a=>l.some(c=>{const u=a[c.name];return u==null?!1:String(u).toLowerCase().includes(s)}))}function Bl({data:e,searchQuery:r,schema:n,visibleColumns:i}){return{searchedData:x.useMemo(()=>!r||r.trim()===""?e:Tl(e,n,r,i),[e,r,n,i])}}function Il({data:e,sortStack:r,schema:n}){return{sortedData:x.useMemo(()=>!r||r.length===0?e:Ea(e,n,r),[e,r,n])}}function zl({data:e,grouping:r,schema:n}){const i=x.useMemo(()=>!r||!r.enabled||r.levels.length===0?e:Ma(e,n,r),[e,r,n]),s=(r==null?void 0:r.enabled)&&((r==null?void 0:r.levels.length)||0)>0;return{groupedData:i,isGrouped:s}}function El({schema:e,columnVisibility:r,columnOrder:n}){const i=x.useMemo(()=>n.filter(c=>r[c]!==!1),[n,r]),s=x.useMemo(()=>Object.entries(r).filter(([c,u])=>!u).map(([c,u])=>c),[r]),l=x.useMemo(()=>n.map(c=>e.find(g=>g.name===c)||{name:c,type:"string"}),[n,e]),a=x.useMemo(()=>i.map(c=>e.find(g=>g.name===c)||{name:c,type:"string"}),[i,e]);return{visibleColumns:i,hiddenColumns:s,allColumns:l,visibleColumnSchemas:a,hiddenCount:s.length}}function Dl({views:e,activeViewId:r,currentState:n}){const i=x.useMemo(()=>e.find(g=>g.id===r),[e,r]),s=x.useMemo(()=>i?Pa(n,i.snapshot):!1,[i,n]),l=x.useMemo(()=>e.find(g=>g.isDefault),[e]),a=x.useMemo(()=>e.filter(g=>!g.isDefault&&!g.isDeleted),[e]),c=x.useMemo(()=>e.filter(g=>g.isFavorite&&!g.isDeleted),[e]),u=x.useMemo(()=>e.filter(g=>g.isDeleted),[e]);return{activeView:i,isDirty:s,defaultView:l,customViews:a,favoriteViews:c,deletedViews:u,isDefaultView:(i==null?void 0:i.isDefault)||!1}}function $l({data:e,enabled:r=!1,pageSize:n=100,initialPage:i=1}){const[s,l]=x.useState(i),a=e.length,c=Math.ceil(a/n),u=x.useMemo(()=>{if(!r)return e;const S=(s-1)*n,B=S+n;return e.slice(S,B)},[e,r,s,n]),g=x.useCallback(S=>{const B=Math.max(1,Math.min(S,c));l(B)},[c]),y=x.useCallback(()=>{s<c&&l(s+1)},[s,c]),h=x.useCallback(()=>{s>1&&l(s-1)},[s]),v=x.useCallback(()=>{l(1)},[]);return{paginatedData:u,currentPage:s,totalPages:c,pageSize:n,totalRows:a,goToPage:g,nextPage:y,prevPage:h,resetPage:v,hasNextPage:s<c,hasPrevPage:s>1}}function Ol(e){const{rawData:r,schema:n,filters:i,sortStack:s,grouping:l,searchQuery:a,columnVisibility:c,columnOrder:u,columnWidths:g,views:y,activeViewId:h,pagination:v}=e,S=x.useMemo(()=>({filters:i,sortStack:s,grouping:l,columnVisibility:c,columnOrder:u,columnWidths:g}),[i,s,l,c,u,g]),B=Dl({views:y,activeViewId:h,currentState:S}),C=El({schema:n,columnVisibility:c,columnOrder:u}),{filteredData:m}=kl({data:r,filters:i,schema:n}),{sortedData:I}=Il({data:m,sortStack:s,schema:n}),{groupedData:f,isGrouped:O}=zl({data:I,grouping:l,schema:n}),{searchedData:j}=Bl({data:f,searchQuery:a,schema:n,visibleColumns:C.visibleColumns}),w=$l({data:j,enabled:(v==null?void 0:v.enabled)||!1,pageSize:(v==null?void 0:v.pageSize)||100,initialPage:(v==null?void 0:v.currentPage)||1}),R=v!=null&&v.enabled?w.paginatedData:j,b=x.useMemo(()=>({totalRows:r.length,filteredRows:m.length,sortedRows:I.length,groupedRows:O?f.length:I.length,searchedRows:j.length,visibleRows:R.length,hiddenColumns:C.hiddenCount,activeFilters:ht(i),activeSorts:s.length,isGrouped:O}),[r.length,m.length,I.length,f.length,j.length,R.length,C.hiddenCount,i,s.length,O]);return{data:R,filteredData:m,sortedData:I,groupedData:f,searchedData:j,viewEngine:B,columnEngine:C,paginationEngine:w,metrics:b,isGrouped:O,isPaginated:(v==null?void 0:v.enabled)||!1}}let _l=0;function Ml(e){e!==null&&e.__urm_row_id__===void 0&&Object.defineProperty(e,"__urm_row_id__",{value:_l++,writable:!1,enumerable:!1,configurable:!1})}const jt="user-demo-001";function Al(e={}){var ri,oi,ni,ii,si;const{mode:r="builder",autoLoad:n=!0,initialData:i,dataSource:s,pagination:l,reportName:a,reportId:c,sharedReportId:u,sharedViewId:g,config:y={}}=e,h=(l==null?void 0:l.mode)??"client",[v,S]=x.useState([]),B=Tr(),[C,m]=x.useState(""),[I,f]=x.useState(!1),[O,j]=x.useState(!1),[w,R]=x.useState({message:"",severity:"info",open:!1}),b=(T,D="info")=>{R({message:T,severity:D,open:!0})},_=()=>R(T=>({...T,open:!1})),V=y.notifDurationMs??2e3,d=v.find(T=>T.id===C),[ee,p]=x.useState("idle"),[P,F]=x.useState(!1),[re,ce]=x.useState(!1),[J,Z]=x.useState(!1),[ge,H]=x.useState(!1),[K,ne]=x.useState(!1),[ae,G]=x.useState(void 0),[te,oe]=x.useState(null),[E,Q]=x.useState(null),[xe,ie]=x.useState(!1),[Te,U]=x.useState(!1),[Ee,Ze]=x.useState(null),[kt,zr]=x.useState(!1),[hr,gt]=x.useState(!1),[Er,Wt]=x.useState({enabled:!1,levels:[],collapsedGroups:[]}),[Tt,fr]=x.useState(""),[Pt,Jt]=x.useState(""),[Nt,yt]=x.useState(new Set),[Kt,ct]=x.useState(1),[rt,Ke]=x.useState(15),[ho,Dr]=x.useState(!1),[Xt,ot]=x.useState(!1),[Qt,$r]=x.useState(!1),[Bt,Lt]=x.useState(null),[We,bt]=x.useState(!1),[Zt,fo]=x.useState(null),[le,er]=x.useState(null),tr=x.useRef(null),ye=x.useMemo(()=>d?Ka(d.permissions,jt):"owner",[d]),Kr=Xa(ye),Or=x.useMemo(()=>!(d!=null&&d.uploadedData)||!(d!=null&&d.schema)?{totalRows:0,totalColumns:0}:xl(d.uploadedData,d.schema),[d==null?void 0:d.uploadedData,d==null?void 0:d.schema]),It=x.useCallback(()=>{d&&(tr.current=fl(d))},[d]),N=x.useCallback((T,D)=>{S(A=>A.map(M=>M.id===T?{...M,...D}:M))},[]),nt=x.useCallback(T=>{if(!d)return;er(T);const D=gi(d.id,jt,T,d.auditHistory||[]);N(d.id,{auditHistory:D}),b(T.message,"error"),T.recoverable&&tr.current&&setTimeout(()=>{gl(d,tr.current,N),b("Previous state restored","success")},100)},[d,N]),be=x.useCallback((T,D,A,M)=>{if(!d)return;const Y=fs(d.id,jt,T,D,A,M),q=d.auditHistory||[],de=gs(q,Y);setTimeout(()=>{N(d.id,{auditHistory:de})},0)},[d,N]);x.useEffect(()=>{if(d!=null&&d.schemaLocked&&d.schema&&(!d.views||d.views.length===0)){const T=Sn(d.schema);(()=>{try{const D=localStorage.getItem("urm_dev_config");return D?JSON.parse(D):null}catch{return null}})(),N(d.id,{views:[T],activeViewId:T.id,filters:T.snapshot.filters,sortStack:T.snapshot.sortStack,columnVisibility:T.snapshot.columnVisibility,columnOrder:T.snapshot.columnOrder,columnWidths:T.snapshot.columnWidths,grouping:T.snapshot.grouping})}},[d==null?void 0:d.schemaLocked,d==null?void 0:d.schema,d==null?void 0:d.id,N]),x.useEffect(()=>{if(i&&n&&!O&&v.length===0){const T=no(i),D={id:c||`auto-report-${Date.now()}`,name:a||(r==="viewer"?"Data View":"Imported Data"),description:"Auto-generated from external data",schemaLocked:!0,uploadedData:T,schema:eo(T),permissions:{owner:jt,editors:[],viewers:[]}};S([D]),m(D.id),j(!0),p("confirmed")}},[i,n,O,v.length,r,a,c]),x.useEffect(()=>{h!=="server"||!O||!C||N(C,{uploadedData:no(i||[])})},[i,h,O,C]),x.useEffect(()=>{if(!s||O)return;let T=!1,D=null;const A=async()=>{try{p("uploading");let M;if(s.type==="api"){const q=await fetch(s.url,{headers:s.headers||{}});if(!q.ok)throw new Error(`HTTP ${q.status}: ${q.statusText}`);M=await q.json()}else M=await s.fetch();if(T)return;if(!Array.isArray(M))throw new Error("Data source must return an array of objects");const Y=eo(M);if(O)S(q=>q.map(de=>de.id===C?{...de,uploadedData:M}:de)),p("confirmed");else{const q={id:c||`auto-report-${Date.now()}`,name:a||(r==="viewer"?"Data View":"Imported Data"),description:`Loaded from ${s.type==="api"?s.url:"callback"}`,schemaLocked:!0,uploadedData:no(M),schema:eo(no(M)),permissions:{owner:jt,editors:[],viewers:[]}};S([q]),m(q.id),j(!0),p("confirmed")}}catch(M){T||(p("error"),d&&N(d.id,{uploadError:(M==null?void 0:M.message)||"Failed to load data from source"}))}};return A(),s.refreshInterval&&s.refreshInterval>0&&(D=setInterval(A,s.refreshInterval)),()=>{T=!0,D&&clearInterval(D)}},[s,a,r,c]);const Xe=(ri=d==null?void 0:d.views)==null?void 0:ri.find(T=>T.id===d.activeViewId),gr=x.useMemo(()=>d!=null&&d.uploadedData?(d.uploadedData.forEach(Ml),d.uploadedData):[],[d==null?void 0:d.uploadedData]),rr=Ol({rawData:gr,schema:(d==null?void 0:d.schema)||[],filters:Me(d==null?void 0:d.filters),sortStack:(d==null?void 0:d.sortStack)||[],grouping:(d==null?void 0:d.grouping)||null,searchQuery:Pt||"",columnVisibility:(d==null?void 0:d.columnVisibility)||(Xe==null?void 0:Xe.snapshot.columnVisibility)||{},columnOrder:(d==null?void 0:d.columnOrder)||(Xe==null?void 0:Xe.snapshot.columnOrder)||[],columnWidths:(d==null?void 0:d.columnWidths)||(Xe==null?void 0:Xe.snapshot.columnWidths)||{},views:(d==null?void 0:d.views)||[],activeViewId:(d==null?void 0:d.activeViewId)||"",pagination:{enabled:h==="client",pageSize:rt,currentPage:Kt}}),{data:yr=[],searchedData:or=[],groupedData:zt=[],sortedData:Ft=[],metrics:nr={totalRows:0,searchedRows:0,isGrouped:!1},isGrouped:ir=!1,paginationEngine:Le}=rr||{},sr=h==="server"?(l==null?void 0:l.totalRows)??0:nr.searchedRows,X=((oi=rr.viewEngine)==null?void 0:oi.activeView)||Xe,dt=((ni=rr.viewEngine)==null?void 0:ni.isDirty)||!1;x.useEffect(()=>{if(!(!X||!d)&&!d.columnOrder){const T=X.snapshot.columnOrder,D=io(T,X.snapshot.grouping);N(d.id,{columnOrder:D})}},[d==null?void 0:d.activeViewId]);const ze=x.useMemo(()=>!(d!=null&&d.schema)||!X?null:Wa(d.filters,d.sortStack||[],d.schema,d.columnVisibility,d.columnOrder,d.columnWidths,d.grouping,X.snapshot.columnOrder),[d==null?void 0:d.filters,d==null?void 0:d.sortStack,d==null?void 0:d.schema,d==null?void 0:d.columnVisibility,d==null?void 0:d.columnOrder,d==null?void 0:d.columnWidths,d==null?void 0:d.grouping,X]),Et=x.useMemo(()=>!X||!ze||!dt?[]:La(ze,X.snapshot),[X,ze,dt]),Dt=x.useCallback((T,D,A)=>{const M={id:`report-${Date.now()}`,name:T,description:D,schemaLocked:!1,permissions:{owner:jt,editors:[],viewers:[]}};if(A&&Array.isArray(A)&&A.length>0){const Y=eo(A),q=Sn(Y);M.uploadedData=A,M.schema=Y,M.schemaLocked=!0,M.views=[q],M.activeViewId=q.id,M.sortStack=q.snapshot.sortStack,M.filters=q.snapshot.filters,M.columnVisibility=q.snapshot.columnVisibility,M.columnOrder=q.snapshot.columnOrder,M.columnWidths=q.snapshot.columnWidths,M.grouping=q.snapshot.grouping}S(Y=>[...Y,M]),m(M.id),f(!1),p("confirmed")},[]),ar=x.useCallback(T=>{d&&(p("uploading"),setTimeout(()=>{const D=eo(T);N(d.id,{uploadedData:T,schema:D,uploadError:void 0}),p("preview")},500))},[d,N]),He=x.useCallback(T=>{d&&(N(d.id,{uploadError:T}),p("idle"))},[d,N]),br=x.useCallback(()=>{d&&(N(d.id,{uploadError:void 0,uploadedData:void 0,schema:void 0}),p("idle"))},[d,N]),fe=x.useCallback(()=>{d&&(N(d.id,{schemaLocked:!0}),p("confirmed"))},[d,N]),Ye=x.useCallback(T=>{if(!d)return;if(!pt("edit_sorting",ye)){b(xt("edit_sorting"),"error");return}const D=d.sortStack??[],A=D.find(M=>M.column===T);if(A){const M=Da(A.direction);if(M===null){const Y=D.filter(q=>q.column!==T).map((q,de)=>({...q,priority:de+1}));N(d.id,{sortStack:Y.length>0?Y:void 0})}else{const Y=M,q=D.map(de=>de.column===T?{...de,direction:Y}:de);N(d.id,{sortStack:q})}}else{if(D.length>=B.sort.maxLevels){b(`Sort limit reached — maximum ${B.sort.maxLevels} sort levels allowed. Remove an existing sort to add a new one.`,"warning");return}const M={column:T,direction:"asc",priority:D.length+1};N(d.id,{sortStack:[...D,M]})}},[d,ye,N]),_r=x.useCallback(T=>{if(d)if(d.schema){const{validRules:D,invalidColumns:A}=ys(T,d.schema);A.length>0&&b(`Removed invalid sort columns: ${A.join(", ")}`),It();try{N(d.id,{sortStack:D.length>0?D:void 0})}catch(M){const Y=pr("processing","sorting",M);nt(Y)}}else N(d.id,{sortStack:T.length>0?T:void 0})},[d,N,It,nt]),ut=x.useCallback(T=>{if(!d)return;const D=d.sortStack??[],A=D.find(M=>M.column===T);if(!(A&&A.direction==="asc"))if(A){const M=D.map(Y=>Y.column===T?{...Y,direction:"asc"}:Y);N(d.id,{sortStack:M})}else{if(D.length>=B.sort.maxLevels){b(`Sort limit reached — maximum ${B.sort.maxLevels} sort levels allowed. Remove an existing sort to add a new one.`,"warning");return}const M={column:T,direction:"asc",priority:D.length+1};N(d.id,{sortStack:[...D,M]})}},[d,N]),vt=x.useCallback(T=>{if(!d)return;const D=d.sortStack??[],A=D.find(M=>M.column===T);if(!(A&&A.direction==="desc"))if(A){const M=D.map(Y=>Y.column===T?{...Y,direction:"desc"}:Y);N(d.id,{sortStack:M})}else{if(D.length>=B.sort.maxLevels){b(`Sort limit reached — maximum ${B.sort.maxLevels} sort levels allowed. Remove an existing sort to add a new one.`,"warning");return}const M={column:T,direction:"desc",priority:D.length+1};N(d.id,{sortStack:[...D,M]})}},[d,N]),$t=x.useCallback((T,D)=>{var M;if(!d)return;if(!pt("edit_filters",ye)){b(xt("edit_filters"),"error");return}const A=(M=d.schema)==null?void 0:M.find(Y=>Y.name===D.column);if(A&&D.value!==void 0){const Y=yl(A.type,D.operator,D.value);if(!Y.isValid){b(Y.errorMessage||"Invalid filter value","error");return}}It();try{const Y=Me(d.filters),q={...D,id:Yr()},de=qr(Y,T,q);be("filters","filter_added",null,q),N(d.id,{filters:de})}catch(Y){const q=pr("processing","filters",Y);nt(q)}},[d,ye,N,It,nt,be]),Mr=x.useCallback(T=>{if(!d)return;if(!pt("edit_filters",ye)){b(xt("edit_filters"),"error");return}const D=Me(d.filters),A=qr(D,T,wt());be("filters","filter_added",null,"a condition group"),N(d.id,{filters:A})},[d,ye,N,be]),lr=x.useCallback((T,D)=>{if(!d)return;if(!pt("edit_filters",ye)){b(xt("edit_filters"),"error");return}const A=Me(d.filters),M=$o(A,T),Y=Ln(A,T,D),q=$o(Y,T);be("filters","filter_updated",M,q),N(d.id,{filters:Y})},[d,ye,N,be]),St=x.useCallback((T,D)=>{if(!d)return;if(!pt("edit_filters",ye)){b(xt("edit_filters"),"error");return}const A=Me(d.filters),M=Fn(A,T,D);be("filters","filter_updated",null,`group operator changed to ${D.toUpperCase()}`),N(d.id,{filters:M})},[d,ye,N,be]),Qe=x.useCallback(T=>{if(!d)return;if(!pt("edit_filters",ye)){b(xt("edit_filters"),"error");return}const D=Me(d.filters),A=$o(D,T),M=Vn(D,T);be("filters","filter_removed",A,null),N(d.id,{filters:M})},[d,ye,N,be]),vr=x.useCallback(()=>{if(!d)return;if(!pt("edit_filters",ye)){b(xt("edit_filters"),"error");return}const T=Me(d.filters);be("filters","filter_cleared",{count:ht(T)},null),N(d.id,{filters:wt()})},[d,ye,N,be]),Ar=x.useCallback(T=>{if(!d)return;if(!pt("edit_filters",ye)){b(xt("edit_filters"),"error");return}const D=Me(d.filters);be("filters","filter_cleared",{count:ht(D)},{count:ht(T)}),N(d.id,{filters:T})},[d,ye,N,be]),Vt=x.useCallback(T=>{var Y;if(!d)return;const D=(Y=d.views)==null?void 0:Y.find(q=>q.id===T);if(!D)return;const A=D.snapshot.columnOrder,M=io(A,D.snapshot.grouping);N(d.id,{filters:D.snapshot.filters,sortStack:D.snapshot.sortStack.length>0?[...D.snapshot.sortStack]:void 0,columnVisibility:{...D.snapshot.columnVisibility},columnOrder:M,columnWidths:{...D.snapshot.columnWidths},grouping:D.snapshot.grouping,activeViewId:T}),yt(new Set)},[d,N]),he=x.useCallback((T,D,A)=>{var Ve;if(!(d!=null&&d.schema)||!ze)return;const M=d.views??[],Y=M.filter(vn=>!vn.isDeleted).length,q=((Ve=B.views)==null?void 0:Ve.maxViews)??10;if(Y>=q){b(`View limit reached — you can have at most ${q} saved views. Delete an existing view to create a new one.`,"error");return}const de={id:`view-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,name:T,description:D||void 0,isDefault:A,isFavorite:!1,isDeleted:!1,scope:"personal",createdBy:jt,createdAt:Date.now(),updatedAt:Date.now(),snapshot:{...ze}},ve=A?M.map(vn=>({...vn,isDefault:!1})):M;N(d.id,{views:[...ve,de],activeViewId:de.id}),b(`"${T}" view created`,"success")},[d,ze,N]),je=x.useCallback(T=>{var de;if(!(d!=null&&d.views))return;const D=d.views.find(ve=>ve.id===T);if(!D)return;const A=d.views,M=A.filter(ve=>!ve.isDeleted).length,Y=((de=B.views)==null?void 0:de.maxViews)??10;if(M>=Y){b(`View limit reached — you can have at most ${Y} saved views. Delete an existing view to create a new one.`,"error");return}const q={...D,id:`view-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,name:`${D.name} (copy)`,scope:"personal",isDefault:!1,isFavorite:!1,isDeleted:!1,createdBy:jt,createdAt:Date.now(),updatedAt:Date.now(),snapshot:{...D.snapshot}};N(d.id,{views:[...A,q]}),b(`"${q.name}" created`,"success")},[d,B,N]),$e=x.useCallback(()=>{var D;if(!X||!ze||!d)return;const T=(D=d.views)==null?void 0:D.map(A=>A.id===X.id?{...A,snapshot:{...ze}}:A);N(d.id,{views:T}),b(`"${X.name}" view updated`,"success")},[X,ze,d,N]),Ot=x.useCallback(T=>{var M;if(!X||!ze||!d)return;const D=T??ze.columnWidths,A=(M=d.views)==null?void 0:M.map(Y=>Y.id===X.id?{...Y,snapshot:{...Y.snapshot,columnVisibility:ze.columnVisibility,columnOrder:ze.columnOrder,columnWidths:D},updatedAt:Date.now()}:Y);N(d.id,{views:A,columnWidths:D}),b(`Column configuration saved to "${X.name}"`,"success")},[X,ze,d,N]),cr=x.useCallback(T=>{var q,de;if(!ze||!d||!X)return;const D=T??ze.columnWidths,A={...X,snapshot:{...X.snapshot,columnVisibility:ze.columnVisibility,columnOrder:ze.columnOrder,columnWidths:D},updatedAt:Date.now()},M=(q=d.views)==null?void 0:q.map(ve=>ve.id===X.id?A:{...ve,snapshot:{...ve.snapshot,columnVisibility:ze.columnVisibility,columnOrder:ze.columnOrder,columnWidths:D},updatedAt:Date.now()});N(d.id,{views:M,columnWidths:D});const Y=(((de=d.views)==null?void 0:de.length)||0)-1;b(`Column configuration saved to current view and ${Y} other view${Y===1?"":"s"}`,"success")},[ze,d,X,N]),go=x.useCallback(()=>{Z(!0)},[]),Rr=x.useCallback(()=>{if(!X||!d)return;const T=X.snapshot.columnOrder,D=io(T,X.snapshot.grouping);N(d.id,{filters:X.snapshot.filters,sortStack:X.snapshot.sortStack.length>0?[...X.snapshot.sortStack]:void 0,columnVisibility:{...X.snapshot.columnVisibility},columnOrder:D,columnWidths:{...X.snapshot.columnWidths},grouping:X.snapshot.grouping}),b("Changes reverted to last saved state","success")},[X,d,N]),yo=x.useCallback(T=>{if(!(d!=null&&d.views))return;const D=d.views.map(M=>({...M,isDefault:M.id===T}));N(d.id,{views:D});const A=d.views.find(M=>M.id===T);A&&b(`"${A.name}" set as default view`,"success")},[d,N]),Sr=x.useCallback(T=>{if(!(d!=null&&d.views))return;const D=d.views.map(M=>M.id===T?{...M,isFavorite:!M.isFavorite,updatedAt:Date.now()}:M);N(d.id,{views:D});const A=d.views.find(M=>M.id===T);A&&!A.isFavorite?b(`"${A.name}" added to favorites`,"success"):A&&b(`"${A.name}" removed from favorites`,"info")},[d,N]),Xr=x.useCallback(T=>{if(!(d!=null&&d.views))return;const D=d.views.find(Ve=>Ve.id===T),A=d.views.filter(Ve=>!Ve.isDeleted||Ve.id===T);if((D==null?void 0:D.isDefault)&&A.filter(Ve=>Ve.isDefault).length===1){b("Cannot delete the last default view","error");return}const Y=d.views.map(Ve=>Ve.id===T?{...Ve,isDeleted:!0,updatedAt:Date.now()}:Ve),q=d.activeViewId===T,de=Y.find(Ve=>Ve.isDefault&&!Ve.isDeleted);N(d.id,{views:Y,activeViewId:q&&de?de.id:d.activeViewId,filters:q&&de?de.snapshot.filters:d.filters,sortStack:q&&de?de.snapshot.sortStack.length>0?de.snapshot.sortStack:void 0:d.sortStack});const ve=d.views.find(Ve=>Ve.id===T);ve&&b(`"${ve.name}" moved to Recently Deleted`,"info")},[d,N]),bo=x.useCallback(T=>{if(!(d!=null&&d.views))return;const D=d.views.map(M=>M.id===T?{...M,isDeleted:!1,updatedAt:Date.now()}:M);N(d.id,{views:D});const A=d.views.find(M=>M.id===T);A&&b(`"${A.name}" restored`,"success")},[d,N]),Ct=x.useCallback(T=>{if(!(d!=null&&d.views))return;const D=d.views.find(ve=>ve.id===T),A=d.views.filter(ve=>!ve.isDeleted||ve.id===T);if((D==null?void 0:D.isDefault)&&A.filter(ve=>ve.isDefault).length===1){b("Cannot delete the last default view","error");return}const Y=d.views.filter(ve=>ve.id!==T),q=d.activeViewId===T,de=Y.find(ve=>ve.isDefault&&!ve.isDeleted);N(d.id,{views:Y,activeViewId:q&&de?de.id:d.activeViewId,filters:q&&de?de.snapshot.filters:d.filters,sortStack:q&&de?de.snapshot.sortStack.length>0?de.snapshot.sortStack:void 0:d.sortStack}),D&&b(`"${D.name}" permanently deleted`,"success")},[d,N]),Wr=x.useCallback(T=>{oe(T),H(!0)},[]),dr=x.useCallback(async T=>{if(!d)return;const D=new URLSearchParams(window.location.search);D.set("reportId",d.id),D.set("view",T);const A=`${window.location.origin}${window.location.pathname}?${D.toString()}`,M=await pl(A);b(M?"Link copied to clipboard":"Failed to copy link",M?"success":"error")},[d]),vo=x.useCallback((T,D)=>{if(!te||!(d!=null&&d.views))return;const A=d.views.map(M=>M.id===te?{...M,name:T,description:D||void 0}:M);N(d.id,{views:A}),oe(null)},[te,d,N]),Pr=x.useCallback(T=>{Q(T),ne(!0)},[]),an=x.useCallback(()=>{if(!E||!(d!=null&&d.views))return;const T=d.views.filter(M=>M.id!==E),D=d.activeViewId===E,A=T.find(M=>M.isDefault);N(d.id,{views:T,activeViewId:D&&A?A.id:d.activeViewId,filters:D&&A?A.snapshot.filters:d.filters,sortStack:D&&A?A.snapshot.sortStack.length>0?A.snapshot.sortStack:void 0:d.sortStack}),Q(null),ne(!1)},[E,d,N]),ln=x.useCallback(T=>{var Y;if(!(d!=null&&d.views))return;if(!(((Y=B.views)==null?void 0:Y.isAdmin)??!1)){b("Only administrators can promote views to Global.","error");return}const A=d.views.find(q=>q.id===T);if(!A)return;if(A.scope==="global"){b(`"${A.name}" is already a Global View.`,"info");return}const M=d.views.map(q=>q.id===T?{...q,scope:"global",isDefault:!0,updatedAt:Date.now()}:q.scope==="global"&&q.isDefault?{...q,isDefault:!1}:q);N(d.id,{views:M}),b(`"${A.name}" promoted to Global View and set as default.`,"success")},[d,B,N]);x.useEffect(()=>{var T;if(h==="server"){ct(1),(T=l==null?void 0:l.onPaginationChange)==null||T.call(l,1,rt);return}Le!=null&&Le.resetPage?Le.resetPage():ct(1)},[d==null?void 0:d.filters,Pt,d==null?void 0:d.activeViewId]);const cn=x.useCallback(T=>{var D;if(h==="server"){ct(T),(D=l==null?void 0:l.onPaginationChange)==null||D.call(l,T,rt);return}Le!=null&&Le.goToPage&&Le.goToPage(T),ct(T)},[h,l,rt,Le]),dn=x.useCallback(T=>{var M;const D=(Kt-1)*rt,A=Math.floor(D/T)+1;if(h==="server"){Ke(T),ct(A),(M=l==null?void 0:l.onPaginationChange)==null||M.call(l,A,T);return}Ke(T),ct(A),Le==null||Le.goToPage(A)},[Kt,rt,h,l,Le]),un=x.useCallback((T,D)=>{if(!d)return;if(!pt("edit_columns",ye)){b(xt("edit_columns"),"error");return}const M={...d.columnVisibility||(X==null?void 0:X.snapshot.columnVisibility)||{},[T]:D};N(d.id,{columnVisibility:M})},[d,X,ye,N]),pn=x.useCallback(T=>{if(d){if(!pt("edit_columns",ye)){b(xt("edit_columns"),"error");return}N(d.id,{columnOrder:T})}},[d,ye,N]),xn=x.useCallback((T,D)=>{if(!d)return;if(!pt("edit_columns",ye)){b(xt("edit_columns"),"error");return}const M={...d.columnWidths||(X==null?void 0:X.snapshot.columnWidths)||{},[T]:D};N(d.id,{columnWidths:M})},[d,X,ye,N]),mn=x.useCallback(T=>{if(!d)return;const D=Me(d.filters),A=ps(D,T);N(d.id,{filters:A})},[d,N]),hn=x.useCallback(()=>{if(!X||!(d!=null&&d.schema))return;const T={},D=[],A={};d.schema.forEach(M=>{T[M.name]=!0,D.push(M.name),A[M.name]=170}),N(d.id,{columnVisibility:T,columnOrder:D,columnWidths:A,filters:void 0,sortStack:void 0}),b("Reset to default layout - all filters and sorts cleared","success")},[X,d,N]);x.useEffect(()=>{const T=setTimeout(()=>Jt(Tt),300);return()=>clearTimeout(T)},[Tt]);const Nr=x.useCallback(T=>{fr(T)},[]),Ht=x.useCallback(T=>{if(!T.trim()||!d)return;const D=d.searchHistory||[],A=Ua(D,T);N(d.id,{searchHistory:A})},[d,N]),fn=x.useCallback(T=>{if(!d)return;const D=d.searchHistory||[],A=Ga(D,T);N(d.id,{searchHistory:A})},[d,N]),gn=x.useCallback(T=>{if(!d)return;const D=d.searchHistory||[],A=Ya(D,T);N(d.id,{searchHistory:A})},[d,N]),Fe=x.useCallback(T=>{const D=T==null?void 0:T.__urm_row_id__;yt(A=>{const M=new Set(A);if(D!==void 0){const Y=Array.from(M).find(q=>(q==null?void 0:q.__urm_row_id__)===D);Y!==void 0?M.delete(Y):M.add(T)}else{const Y=JSON.stringify(T),q=Array.from(M).find(de=>JSON.stringify(de)===Y);q!==void 0?M.delete(q):M.add(T)}return M})},[]),Ut=x.useCallback((T,D)=>{yt(A=>{const M=new Set(A);for(const Y of D)T?M.add(Y):M.delete(Y);return M})},[]),So=x.useCallback((T,D,A)=>{yt(M=>{const Y=new Set(M),q=Math.min(T,D),de=Math.max(T,D);for(let ve=q;ve<=de;ve++)A[ve]!==void 0&&Y.add(A[ve]);return Y})},[]),ei=x.useCallback(()=>{yt(new Set)},[]),Qr=x.useCallback(T=>{const D=T==null?void 0:T.__urm_row_id__;yt(A=>{const M=new Set(A);if(D!==void 0){const Y=Array.from(M).find(q=>(q==null?void 0:q.__urm_row_id__)===D);Y!==void 0&&M.delete(Y)}else M.delete(T);return M})},[]),yn=x.useCallback(T=>{if(d){if(!pt("edit_columns",ye)){b(xt("edit_columns"),"error");return}if(T&&d.schema){const{validGrouping:D,invalidColumns:A}=bs(T,d.schema);A.length>0&&b(`Removed invalid grouping columns: ${A.join(", ")}`,"warning"),It();try{const M=d.grouping;D===null?be("grouping","group_cleared",M,null):M?be("grouping","group_reordered",M,D):be("grouping","group_level_added",null,D);const Y=(X==null?void 0:X.snapshot.columnOrder)||d.columnOrder||[],q=io(Y,D);N(d.id,{grouping:D,columnOrder:q}),JSON.stringify(q)!==JSON.stringify(d.columnOrder)&&be("columns","column_reordered",d.columnOrder,q),gt(!1)}catch(M){const Y=pr("processing","grouping",M);nt(Y)}}else{const D=d.grouping;be("grouping","group_cleared",D,null);const A=(X==null?void 0:X.snapshot.columnOrder)||d.columnOrder||[];N(d.id,{grouping:T,columnOrder:[...A]}),JSON.stringify(A)!==JSON.stringify(d.columnOrder)&&be("columns","column_reordered",d.columnOrder,A),gt(!1)}}},[d,X,ye,N,It,nt,be]),Co=x.useCallback(T=>{if(!d)return;const D=d.grouping;if(!D)return;const A=Ra(D,T);N(d.id,{grouping:A})},[d,N]),jo=x.useCallback(()=>{d!=null&&d.grouping&&N(d.id,{grouping:{...d.grouping,collapsedGroups:[]}})},[d,N]),k=x.useCallback(()=>{if(!(d!=null&&d.grouping)||!d.schema)return;const T=Aa(Ft,d.schema,d.grouping);N(d.id,{grouping:{...d.grouping,collapsedGroups:T}})},[d,Ft,N]),L=x.useCallback(()=>{bt(!0)},[]),ue=x.useCallback(T=>{d!=null&&d.schema&&(ie(!0),setTimeout(()=>{try{let D;T.scope==="visible"?D=or:D=d.uploadedData||[];let A;T.columnScope==="all"?(A={},(d.schema??[]).forEach(ve=>{A[ve.name]=!0})):A=d.columnVisibility||(X==null?void 0:X.snapshot.columnVisibility)||{};const M=d.columnOrder||(X==null?void 0:X.snapshot.columnOrder),Y=Ao(D,d.schema,Me(d.filters),d.sortStack??[],X,A,M),q=d.name;let de;switch(T.format){case"csv":Ro(Y,q,T),de="export_csv";break;case"excel":Wo(Y,q,T),de="export_excel";break;case"json":Po(Y,q,T),de="export_json";break}be("export",de,null,{format:T.format,scope:T.scope,columnScope:T.columnScope,rowCount:D.length,viewName:(X==null?void 0:X.name)||"Default View"}),b(`Export completed successfully (${T.format.toUpperCase()})`,"success")}catch(D){const A=vl(D,{onRetry:()=>ue(T)});b(`Export failed: ${A.message}. Click Export to retry.`,"error");const M=gi(d.id,jt,A,d.auditHistory||[]);N(d.id,{auditHistory:M}),Rt.error("urm:report-engine","Export failed",D)}finally{ie(!1)}},500))},[d,X,or,N,be]),Ue=x.useCallback(T=>{if(d!=null&&d.schema){if(dt&&X&&!X.isDefault){Ze(T.format),U(!0),bt(!1);return}ue(T),bt(!1)}},[d,X,dt,ue]),Pe=x.useCallback(T=>{ue({format:T,scope:"visible",columnScope:"visible"})},[ue]),qe=x.useCallback(()=>{Ee&&Pe(Ee),U(!1),Ze(null)},[Ee,Pe]),Je=x.useCallback(()=>{$e(),Ee&&Pe(Ee),U(!1),Ze(null)},[$e,Ee,Pe]),pe=x.useCallback(()=>{U(!1),Ze(null)},[]),Cr=x.useCallback(T=>{!(d!=null&&d.schema)||Nt.size===0||(ie(!0),setTimeout(()=>{try{const D=Array.from(Nt),A=Ao(D,d.schema,Me(d.filters),d.sortStack??[],X),M=`${d.name.toLowerCase().replace(/\s+/g,"_")}_selected_export`;switch(T){case"csv":Ro(A,M);break;case"excel":Wo(A,M);break;case"json":Po(A,M);break}b(`Exported ${D.length} selected rows`,"info")}catch(D){b("Export failed. Please try again.","error"),Rt.error("urm:report-engine","Bulk export failed",D)}finally{ie(!1)}},500))},[d,X,Nt,zt]),Zr=x.useCallback((T,D)=>{if(d)try{const A=sl(d),M=al(T,D,jt,A),Y=ll(d.presets,M);N(d.id,{presets:Y}),be("presets","preset_created",null,{presetId:M.id,name:M.name}),ot(!1),b(`Preset "${T}" saved successfully`,"success")}catch(A){b(A instanceof Error?A.message:"Failed to create preset","error")}},[d,N,be]),bn=x.useCallback(()=>{Lt(null),b("Exited preset view","info")},[]),Zs=x.useCallback(()=>{$r(!0)},[]),ea=x.useCallback((T,D)=>{if(!d)return;const A=cl(d.presets,T);N(d.id,{presets:A}),be("presets","preset_deleted",{presetId:T,name:D},null),Bt===T&&Lt(null),b(`Preset "${D}" deleted`,"success")},[d,Bt,N,be]);x.useEffect(()=>{if(!u||v.length===0)return;const T=v.find(D=>D.id===u);T&&T.id!==C&&m(T.id)},[u,v,C]);const ti=x.useRef(!1);x.useEffect(()=>{var D;if(!g||ti.current||!d||d.id!==u)return;const T=(D=d.views)==null?void 0:D.find(A=>A.id===g&&!A.isDeleted);T&&Vt(T.id),ti.current=!0},[g,u,d,Vt]),x.useEffect(()=>{if(!d)return;const T=dl();if(T&&d.presets&&d.schemaLocked&&d.schema){const D=fi(d.presets,T);if(D){const{sanitizedConfig:A,warnings:M}=bl(D.config,d.schema);M.length>0&&M.forEach(q=>b(q,"warning"));const Y=ul(A);N(d.id,Y),Lt(T),be("presets","preset_applied",null,{presetId:D.id,name:D.name}),b(`Loaded preset: ${D.name}`,"info")}else b("Preset not found","info")}},[d==null?void 0:d.schemaLocked]);const ta=Bt?fi(d==null?void 0:d.presets,Bt):void 0;x.useEffect(()=>{d!=null&&d.views&&d.views.length>0&&d.activeViewId&&Fa(d.id,{views:d.views,activeViewId:d.activeViewId})},[d==null?void 0:d.views,d==null?void 0:d.activeViewId,d==null?void 0:d.id]),x.useEffect(()=>{if(d!=null&&d.schemaLocked&&d.schema&&(!d.views||d.views.length===0)){const T=Va(d.id);if(T&&T.views.length>0){const D=T.views.find(A=>A.id===T.activeViewId);if(D)N(d.id,{views:T.views,activeViewId:T.activeViewId,filters:Me(D.snapshot.filters),sortStack:D.snapshot.sortStack.length>0?D.snapshot.sortStack:void 0});else{const A=T.views.find(M=>M.isDefault)||Sn(d.schema);N(d.id,{views:T.views,activeViewId:A.id,filters:Me(A.snapshot.filters),sortStack:A.snapshot.sortStack.length>0?A.snapshot.sortStack:void 0})}}}},[d==null?void 0:d.schemaLocked,d==null?void 0:d.schema,d==null?void 0:d.id]);const ra=x.useCallback(T=>{var M;const D=Me(d==null?void 0:d.filters),A=((M=B.filter)==null?void 0:M.maxConditions)??3;if(ht(D)>=A){b(`Filter limit reached — maximum ${A} filters allowed. Remove an existing filter before adding a new one.`,"warning");return}G(T),F(!0)},[d,B,b]),oa=x.useCallback(()=>{F(!1),G(void 0)},[]),na=(ii=d==null?void 0:d.views)==null?void 0:ii.find(T=>T.id===te),ia=(si=d==null?void 0:d.views)==null?void 0:si.find(T=>T.id===E);return{reports:v,activeReport:d,activeReportId:C,setActiveReportId:m,isModalOpen:I,setIsModalOpen:f,createReport:Dt,updateReport:N,uploadState:ee,handleFileUpload:ar,handleUploadError:He,handleRetry:br,handleConfirm:fe,paginatedData:yr,processedData:or,displayData:zt,tableMetrics:nr,isGrouped:ir,tableEngine:rr,activeView:X,isDirty:dt,currentTableState:ze,viewChanges:Et,filters:d==null?void 0:d.filters,showFilterPanel:P,setShowFilterPanel:F,filterFocusColumn:ae,handleAddCondition:$t,handleAddGroup:Mr,handleUpdateCondition:lr,handleSetGroupOperator:St,handleRemoveFilterNode:Qe,handleClearAllFilters:vr,handleReplaceFilters:Ar,handleOpenFilterForColumn:ra,handleCloseFilterPanel:oa,handleClearFiltersForColumn:mn,sortStack:d==null?void 0:d.sortStack,showSortPanel:re,setShowSortPanel:ce,handleSort:Ye,handleUpdateSortStack:_r,handleSortAscending:ut,handleSortDescending:vt,views:d==null?void 0:d.views,showCreateViewModal:J,setShowCreateViewModal:Z,showEditViewModal:ge,setShowEditViewModal:H,showDeleteConfirmation:K,setShowDeleteConfirmation:ne,editingView:na,deletingView:ia,editingViewId:te,deletingViewId:E,handleSelectView:Vt,handleCreateView:he,handleCloneView:je,handleUpdateCurrentView:$e,handleSaveColumnConfigToCurrentView:Ot,handleSaveColumnConfigToAllViews:cr,handleSaveAsNewView:go,handleRevertChanges:Rr,handleToggleDefault:yo,handleToggleFavorite:Sr,handleSoftDelete:Xr,handleRestoreView:bo,handlePermanentDelete:Ct,handleEditView:Wr,handleCopyViewLink:dr,handleSaveEditView:vo,handleDeleteView:Pr,handleConfirmDelete:an,handlePromoteToGlobal:ln,showManageColumns:kt,setShowManageColumns:zr,columnVisibility:d==null?void 0:d.columnVisibility,columnOrder:d==null?void 0:d.columnOrder,columnWidths:d==null?void 0:d.columnWidths,handleUpdateColumnVisibility:un,handleUpdateColumnOrder:pn,handleUpdateColumnWidth:xn,handleResetColumnLayout:hn,showGroupPanel:hr,setShowGroupPanel:gt,grouping:d==null?void 0:d.grouping,groupingState:Er,handleGroup:yn,handleToggleGroupCollapse:Co,handleExpandAllGroups:jo,handleCollapseAllGroups:k,searchQuery:Tt,debouncedSearchQuery:Pt,searchHistory:qa((d==null?void 0:d.searchHistory)||[]),handleSearchChange:Nr,handleAddToSearchHistory:Ht,handleToggleSearchFavourite:fn,handleDeleteSearchHistory:gn,selectedRowIds:Nt,handleToggleRowSelection:Fe,handleToggleAllRows:Ut,handleRangeSelection:So,handleClearSelection:ei,handleUpdateSelectionAfterDelete:Qr,currentPage:Kt,pageSize:rt,paginationEngine:Le,paginationMode:h,paginationTotalRows:sr,handlePageChange:cn,handlePageSizeChange:dn,isExporting:xe,showExportModal:We,setShowExportModal:bt,showDirtyExportWarning:Te,handleExport:L,handleExportWithConfig:Ue,handleExportSelected:Cr,handleExportAnyway:qe,handleSaveAndExport:Je,handleCancelExport:pe,showAuditHistory:ho,setShowAuditHistory:Dr,auditHistory:d==null?void 0:d.auditHistory,showCreatePreset:Xt,setShowCreatePreset:ot,showManagePresets:Qt,setShowManagePresets:$r,activePreset:ta,activePresetId:Bt,handleOpenManagePresets:Zs,handleCreatePreset:Zr,handleClearActivePreset:bn,handleDeletePresetById:ea,userRole:ye,isViewerRole:Kr,currentUserId:jt,featureLimitWarning:Zt,setFeatureLimitWarning:fo,datasetMeta:Or,reportError:le,setReportError:er,handleError:nt,schema:d==null?void 0:d.schema,hasSchemaConflicts:d!=null&&d.schema?Ia(d.schema):!1,snack:w,handleSnackClose:_,showSnack:b,snackDurationMs:V,config:y}}const vs=x.createContext(void 0);function Yn(e){const{children:r,initialData:n,data:i,reportName:s,reportId:l,dataSource:a,pagination:c,mode:u="builder",autoLoad:g=!0,config:y,devConfig:h,showDevPanel:v=!1,sharedReportId:S,sharedViewId:B}=e,m=Al({mode:u,autoLoad:g,initialData:i||n,dataSource:a,pagination:c,reportName:s,reportId:l,sharedReportId:S,sharedViewId:B,config:y}),[I,f]=x.useState(()=>da()),O=(()=>{const b=pa(I,h,!!h);return{...b,display:{...b.display,showDevPanel:v||b.display.showDevPanel}}})(),j=x.useCallback(R=>{f(R),ua(R)},[]),w={...m,activeDevConfig:O,handleDevConfigChange:j};return t.jsx(as.Provider,{value:O,children:t.jsx(vs.Provider,{value:w,children:r})})}function Uo(){const e=x.useContext(vs);if(e===void 0)throw new Error("useReportContext must be used within a ReportProvider. Wrap your component tree with <ReportProvider>...</ReportProvider>");return e}function Rl({onCreateReport:e,reports:r=[],activeReportId:n,onReportClick:i}){const s=r.find(l=>l.id===n);return t.jsx(o.Box,{component:"header",sx:l=>{var y,h,v;const a=((v=(h=(y=l.components)==null?void 0:y.MuiCardHeader)==null?void 0:h.styleOverrides)==null?void 0:v.root)||{},c=a.backgroundColor&&a.backgroundColor!=="transparent"?a.backgroundColor:l.palette.background.paper,u=a.borderBottom&&a.borderBottom!=="none"?a.borderBottom:"1px solid",g=a.boxShadow&&a.boxShadow!=="none"?a.boxShadow:void 0;return{position:"sticky",top:0,zIndex:50,borderBottom:u,borderColor:u!=="none"?"divider":void 0,boxShadow:g,bgcolor:c}},children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,height:64},children:[t.jsxs(o.Breadcrumbs,{separator:t.jsx(z.ChevronRight,{sx:{fontSize:16,color:"text.secondary"}}),sx:{display:"flex",alignItems:"center"},children:[t.jsx(o.Typography,{variant:"h6",component:"h1",sx:{fontWeight:500,fontSize:"1.375rem",color:"text.primary",letterSpacing:"-0.01em",cursor:r.length>0&&s?"pointer":"default","&:hover":r.length>0&&s?{color:"primary.main"}:{}},onClick:()=>{r.length>0},children:"Reports"}),s&&t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:[t.jsx(o.Typography,{sx:{fontWeight:500,fontSize:"1.125rem",color:"primary.main",cursor:"pointer","&:hover":{textDecoration:"underline"}},onClick:()=>i==null?void 0:i(s.id),children:s.name}),t.jsx(o.Tooltip,{title:s.description||"No description",arrow:!0,placement:"bottom",children:t.jsx(z.InfoOutlined,{sx:{fontSize:18,color:"text.secondary",opacity:.7,cursor:"help","&:hover":{opacity:1}}})})]})]}),t.jsx(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5},children:t.jsx(o.Button,{variant:"contained",startIcon:t.jsx(z.Add,{sx:{fontSize:18}}),onClick:e,sx:{borderRadius:"20px",px:3,fontSize:"0.875rem",py:.75},children:"New Report"})})]})})}function kr(e,...r){const n=new URL(`https://mui.com/production-error/?code=${e}`);return r.forEach(i=>n.searchParams.append("args[]",i)),`Minified MUI error #${e}; visit ${n} for the full message.`}const Wl="$$material";function Pl(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ko={exports:{}},To={exports:{}},Se={};/** @license React v16.13.1
|
|
1
|
+
"use strict";var ua=Object.defineProperty;var pa=(e,r,n)=>r in e?ua(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n;var hi=(e,r,n)=>pa(e,typeof r!="symbol"?r+"":r,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),p=require("react"),xa=require("xlsx"),D=require("@mui/icons-material"),o=require("@mui/material"),fs=require("react-dom"),ma=require("@emotion/react"),Jt=require("react-dnd"),Kn=require("react-dnd-html5-backend");function hs(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:()=>e[n]})}}return r.default=e,Object.freeze(r)}const Xo=hs(p),$o=hs(xa),lt={sort:{maxLevels:5},filter:{maxConditions:3,allowedOperators:["equals","contains","startsWith","endsWith","gt","lt","gte","lte","isTrue","isFalse","NULL","NOT_NULL"]},columns:{maxVisible:20,minColumnWidth:60,maxColumnWidth:800},grouping:{maxLevels:3,allowNested:!0,allowCollapse:!0},export:{allowedFormats:["csv","excel","json"]},views:{maxViews:10,isAdmin:!1},dates:{displayFormat:null},display:{showDevPanel:!1}},gs="urm_dev_config";function fa(){try{const e=localStorage.getItem(gs);if(!e)return lt;const r=JSON.parse(e),n={sort:{...lt.sort,...r.sort},filter:{...lt.filter,...r.filter},columns:{...lt.columns,...r.columns},grouping:{...lt.grouping,...r.grouping},export:{...lt.export,...r.export},views:{...lt.views,...r.views},dates:{...lt.dates,...r.dates},display:{...lt.display,...r.display}};return n.sort.maxLevels=Math.min(5,Math.max(1,n.sort.maxLevels)),n}catch{return lt}}function ha(e){try{localStorage.setItem(gs,JSON.stringify(e))}catch{}}function ga(e,r,n){if(!n||!r)return e;const i={sort:{...e.sort,...r.sort},filter:{...e.filter,...r.filter},columns:{...e.columns,...r.columns},grouping:{...e.grouping,...r.grouping},export:{...e.export,...r.export},views:{...e.views,...r.views},dates:{...e.dates,...r.dates},display:{...e.display,...r.display}};return i.sort.maxLevels=Math.min(5,Math.max(1,i.sort.maxLevels)),i}const ys=p.createContext(lt);function wr(){return p.useContext(ys)}const ya=/^\d{4}-\d{2}-\d{2}$/,ba=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/,va=/^(\d{1,2})[\/\-\.](\d{1,2})[\/\-\.](\d{2,4})$|^([A-Za-z]+)\s+\d{1,2},?\s+\d{4}$/,Sa=9783072e5,Ca=41024448e5,ja=978307200,wa=4102444800;function ka(e){return e==null||e===""?"unknown":typeof e=="number"?Number.isInteger(e)&&e>=Sa&&e<=Ca?"timestamp_ms":Number.isInteger(e)&&e>=ja&&e<=wa?"timestamp_s":"unknown":typeof e!="string"?"unknown":ba.test(e)||ya.test(e)?"iso":va.test(e.trim())?"locale_string":"unknown"}function Ta(e,r){const n=r.map(c=>c[e]).filter(c=>c!=null&&c!=="");if(n.length===0)return"unknown";const i={iso:0,timestamp_ms:0,timestamp_s:0,locale_string:0,unknown:0};for(const c of n){const d=ka(c);i[d]++}const a=n.length,l=.7;for(const c of["iso","timestamp_ms","timestamp_s","locale_string"])if(i[c]/a>=l)return c;return"unknown"}function Ba(e,r){if(e==null||e==="")return null;try{switch(r){case"timestamp_ms":{const n=new Date(Number(e));return isNaN(n.getTime())?null:n}case"timestamp_s":{const n=new Date(Number(e)*1e3);return isNaN(n.getTime())?null:n}case"iso":{const n=new Date(String(e));return isNaN(n.getTime())?null:n}case"locale_string":{const n=new Date(String(e));return isNaN(n.getTime())?null:n}default:return null}}catch{return null}}const gi=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Ia=["January","February","March","April","May","June","July","August","September","October","November","December"];function Ve(e){return String(e).padStart(2,"0")}function za(e){const r=Date.now()-e.getTime(),n=Math.abs(r),i=r>0,a=Math.floor(n/1e3),l=Math.floor(a/60),c=Math.floor(l/60),d=Math.floor(c/24),u=Math.floor(d/7),h=Math.floor(d/30),g=Math.floor(d/365);let f;return a<60?f="just now":l<60?f=`${l} minute${l!==1?"s":""}`:c<24?f=`${c} hour${c!==1?"s":""}`:d<7?f=`${d} day${d!==1?"s":""}`:u<5?f=`${u} week${u!==1?"s":""}`:h<12?f=`${h} month${h!==1?"s":""}`:f=`${g} year${g!==1?"s":""}`,a<60?f:i?`${f} ago`:`in ${f}`}function Ea(e,r){const n=e.getFullYear(),i=e.getMonth(),a=e.getDate(),l=e.getHours(),c=e.getMinutes();switch(r){case"YYYY-MM-DD":return`${n}-${Ve(i+1)}-${Ve(a)}`;case"DD/MM/YYYY":return`${Ve(a)}/${Ve(i+1)}/${n}`;case"MM/DD/YYYY":return`${Ve(i+1)}/${Ve(a)}/${n}`;case"MMM DD, YYYY":return`${gi[i]} ${Ve(a)}, ${n}`;case"DD MMM YYYY":return`${Ve(a)} ${gi[i]} ${n}`;case"MMMM D, YYYY":return`${Ia[i]} ${a}, ${n}`;case"YYYY-MM-DD HH:mm":return`${n}-${Ve(i+1)}-${Ve(a)} ${Ve(l)}:${Ve(c)}`;case"DD/MM/YYYY HH:mm":return`${Ve(a)}/${Ve(i+1)}/${n} ${Ve(l)}:${Ve(c)}`;case"MM/DD/YYYY HH:mm":return`${Ve(i+1)}/${Ve(a)}/${n} ${Ve(l)}:${Ve(c)}`;case"relative":return za(e);case"locale":return e.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"});default:return e.toLocaleDateString()}}function Da(e,r,n){if(!n||r==="unknown")return String(e);const i=Ba(e,r);return!i||isNaN(i.getTime())?String(e):Ea(i,n)}function $a(e){return e==null?"null":Array.isArray(e)?"array":typeof e=="object"?"object":typeof e=="number"?"number":typeof e=="boolean"?"boolean":typeof e=="string"?"string":"mixed"}function bs(e,r="",n=0){if(n>2)return{[r]:e};const i={};for(const a of Object.keys(e)){const l=r?`${r}.${a}`:a,c=e[a];c!==null&&typeof c=="object"&&!Array.isArray(c)&&n<2?Object.assign(i,bs(c,l,n+1)):i[l]=c}return i}function po(e){return e.map(r=>typeof r!="object"||r===null||Array.isArray(r)?r:bs(r))}function ao(e){if(!Array.isArray(e)||e.length===0)return[];const r=po(e),n=new Set;r.forEach(c=>{typeof c=="object"&&c!==null&&Object.keys(c).forEach(d=>n.add(d))});const i=[];n.forEach(c=>{const d=new Set;let u=0;r.forEach(b=>{typeof b=="object"&&b!==null&&c in b&&(u++,d.add($a(b[c])))});const h=u===r.length,g=d.size>1&&!d.has("null");let f="mixed";if(d.size===1)f=Array.from(d)[0];else if(d.size===2&&d.has("null")){const b=Array.from(d).filter(y=>y!=="null");b.length===1&&(f=b[0])}i.push({name:c,type:f,required:h,hasConflict:g})});const l=r.slice(0,50);for(const c of i){if(c.type!=="string"&&c.type!=="number")continue;const d=Ta(c.name,l);d!=="unknown"&&(c.type="date",c.dateFormat=d)}return i}function yi(e,r){return r?r.map(n=>e.find(i=>i.name===n)).filter(n=>n!==void 0):e}function Oa(e){return e.some(r=>r.hasConflict)}function dt(e){if(!e)return"";const n=e.replace(/[_-]/g," ").replace(/([a-z])([A-Z])/g,"$1 $2");return n.charAt(0).toUpperCase()+n.slice(1)}function bi(e){return e==null}function _a(e){return(r,n,i)=>{const a=bi(r),l=bi(n);if(a&&l)return 0;if(a)return 1;if(l)return-1;let c=0;switch(e){case"number":const d=Number(r),u=Number(n);c=d-u;break;case"boolean":c=(r?1:0)-(n?1:0);break;case"string":c=String(r).localeCompare(String(n));break;case"array":case"object":c=JSON.stringify(r).localeCompare(JSON.stringify(n));break;case"mixed":case"null":default:c=String(r).localeCompare(String(n));break}return i==="asc"?c:-c}}function Ma(e,r,n){if(!n||n.length===0)return e;const i=[...n].sort((a,l)=>a.priority-l.priority);return[...e].sort((a,l)=>{for(const c of i){const d=r.find(g=>g.name===c.column);if(!d)continue;const h=_a(d.type)(a[c.column],l[c.column],c.direction);if(h!==0)return h}return 0})}function Aa(e){return e===null?"asc":e==="asc"?"desc":null}function Ra(e){return e==="string"||e==="boolean"}function Wa(e){return e.filter(r=>Ra(r.type))}function Pa(e,r){const n={};return r.forEach(i=>{if(i.type==="number"){const a=e.map(l=>l[i.name]).filter(l=>typeof l=="number");a.length>0&&(n[i.name]=a.reduce((l,c)=>l+c,0))}}),n}function Na(e,r,n){if(!n.enabled||n.levels.length===0)return e;const i=Xn(e,n.levels,r);return vs(i,n.collapsedGroups||[])}function Xn(e,r,n,i="",a=0){if(a>=r.length)return e;const l=r[a].column,c=new Map;e.forEach(h=>{const g=h[l],f=g==null?"(empty)":String(g);c.has(f)||c.set(f,[]),c.get(f).push(h)});const d=[];return Array.from(c.keys()).sort().forEach(h=>{const g=c.get(h),f=`${l}:${h}`,b=i?`${i}|${f}`:f,y=Pa(g,n),k=a<r.length-1?Xn(g,r,n,b,a+1):g,v={key:b,level:a,column:l,value:h,rowCount:g.length,aggregates:y,children:k};d.push(v)}),d}function vs(e,r,n=[],i=0){for(const a of e)if("key"in a&&"level"in a&&"children"in a){const l=r.includes(a.key);n.push({isGroupHeader:!0,groupKey:a.key,groupLevel:a.level,groupColumn:a.column,groupValue:a.value,rowCount:a.rowCount,aggregates:a.aggregates,isCollapsed:l}),!l&&a.children&&vs(a.children,r,n,i+1)}else n.push({...a,__urm_is_grouped_data_row__:!0,__urm_group_level__:i});return n}function vi(e,r,n){if(!n.enabled||n.levels.length===0)return[];const i=Xn(e,n.levels,r),a=[],l=c=>{for(const d of c)"key"in d&&"level"in d&&"children"in d&&(a.push(d.key),l(d.children))};return l(i),a}function La(e,r){const n=e.collapsedGroups||[],i=n.includes(r)?n.filter(a=>a!==r):[...n,r];return{...e,collapsedGroups:i}}function Ss(e,r){return e==null?"":typeof e=="number"?`Σ ${e.toLocaleString()}`:String(e)}function Cs(e,r,n){return String(n??"")}function Qr(){return`flt_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function Je(e){return"children"in e}function Bt(){return{id:Qr(),operator:"and",children:[]}}function Pe(e){return e?Array.isArray(e)?{id:Qr(),operator:"and",children:e.map(r=>({...r,id:r.id??Qr()}))}:e:Bt()}function bt(e){return e?Je(e)?e.children.reduce((r,n)=>r+bt(n),0):1:0}function No(e,r){if(e.id===r)return e;for(const n of e.children){if(n.id===r)return n;if(Je(n)){const i=No(n,r);if(i)return i}}}function Zr(e,r,n){return e.id===r?{...e,children:[...e.children,n]}:{...e,children:e.children.map(i=>Je(i)?Zr(i,r,n):i)}}function Qn(e,r,n){return{...e,children:e.children.map(i=>i.id===r&&!Je(i)?{...i,...n}:Je(i)?Qn(i,r,n):i)}}function Zn(e,r,n){return e.id===r?{...e,operator:n}:{...e,children:e.children.map(i=>Je(i)?Zn(i,r,n):i)}}function ei(e,r){const n=e.children.filter(i=>i.id!==r).map(i=>Je(i)?ei(i,r):i).filter(i=>!Je(i)||i.children.length>0);return{...e,children:n}}function Vn(e,r){return e?Je(e)?e.children.some(n=>Vn(n,r)):e.column===r:!1}function js(e,r){const n=e.children.filter(i=>Je(i)||i.column!==r).map(i=>Je(i)?js(i,r):i).filter(i=>!Je(i)||i.children.length>0);return{...e,children:n}}function ws(e){return e?Je(e)?e.children.flatMap(ws):[e]:[]}function yo(e){if(!e)return null;if(!Je(e)){const{id:i,...a}=e;return a}const{id:r,...n}=e;return{...n,children:e.children.map(yo)}}function xo(e,r){if(!r||!r.enabled||!r.levels||r.levels.length===0)return[...e];const n=r.levels.map(a=>a.column),i=e.filter(a=>!n.includes(a));return[...n,...i]}function ti(e,r,n){if(!r||!r.enabled||!r.levels||r.levels.length===0)return[...e];const i=r.levels.map(l=>l.column),a=e.filter(l=>!i.includes(l));if(n){const l=[],c=new Set(i),d=new Set(a);let u=0;for(const h of n)c.has(h)?l.push(h):d.has(h)&&u<a.length?(l.push(a[u]),u++):d.has(h)||l.push(h);for(let h=u;h<a.length;h++)l.includes(a[h])||l.push(a[h]);return l}return[...e]}function $n(e){const r={},n=[],i={};return e.forEach(a=>{r[a.name]=!0,n.push(a.name),i[a.name]=170}),{id:"default-view",name:"Default View",description:"Unfiltered, unsorted baseline view",isDefault:!0,snapshot:{filters:Bt(),sortStack:[],columnVisibility:r,columnOrder:n,columnWidths:i,grouping:null}}}function Fa(e,r,n,i,a,l,c,d){const u={},h=[],g={};n.forEach(y=>{u[y.name]=!0,h.push(y.name),g[y.name]=170});const b=ti(a||h,c||null,d||h);return{filters:Pe(e),sortStack:r||[],columnVisibility:i||u,columnOrder:b,columnWidths:l||g,grouping:c||null}}function Va(e,r){const n=y=>{if(y==null)return y;if(Array.isArray(y))return y.map(k=>n(k));if(typeof y=="object"){const k={};return Object.keys(y).sort().forEach(v=>{k[v]=n(y[v])}),k}return y},i=y=>JSON.stringify(n(y));if(i(yo(e.filters))!==i(yo(r.filters))||i(e.sortStack)!==i(r.sortStack))return!0;const a=e.columnVisibility??{},l=r.columnVisibility??{};if(i(a)!==i(l))return!0;const c=ti(e.columnOrder||[],e.grouping||null,r.columnOrder||[]),d=[...c].sort().join(","),u=[...r.columnOrder||[]].sort().join(",");if(d!==u)return!1;const h=[...r.columnOrder||[]].sort().join(",");if((r.columnOrder||[]).join(",")!==h){if(c.join(",")!==(r.columnOrder||[]).join(","))return!0}else{const y=[...c].sort().join(",");if(c.join(",")!==y)return!0}const f=e.columnWidths??{},b=r.columnWidths??{};return i(f)!==i(b)||i(e.grouping)!==i(r.grouping)}function Ha(e){return!e||e.length===0?"None":e.sort((r,n)=>r.priority-n.priority).map(r=>`${r.column} ${r.direction==="asc"?"↑":"↓"}`).join(", ")}function Ua(e,r){var v,m,T;const n=[],i=JSON.stringify(yo(e.filters)),a=JSON.stringify(yo(r.filters));if(i!==a){const x=bt(e.filters),z=bt(r.filters);x>z?n.push({category:"filters",label:"Filters Added",description:`${x-z} new filter${x-z>1?"s":""} added`}):x<z?n.push({category:"filters",label:"Filters Removed",description:`${z-x} filter${z-x>1?"s":""} removed`}):n.push({category:"filters",label:"Filters Modified",description:"Filter conditions have been changed"})}const l=JSON.stringify(e.sortStack),c=JSON.stringify(r.sortStack);if(l!==c){const x=e.sortStack.length,z=r.sortStack.length;x>z?n.push({category:"sorting",label:"Sorting Added",description:`${x-z} new sort rule${x-z>1?"s":""} added`}):x<z?n.push({category:"sorting",label:"Sorting Removed",description:`${z-x} sort rule${z-x>1?"s":""} removed`}):n.push({category:"sorting",label:"Sorting Modified",description:"Sort rules or order have been changed"})}const d=JSON.stringify(e.columnVisibility),u=JSON.stringify(r.columnVisibility);if(d!==u){const x=Object.values(e.columnVisibility).filter(B=>B).length,z=Object.values(r.columnVisibility).filter(B=>B).length;x>z?n.push({category:"visibility",label:"Columns Shown",description:`${x-z} column${x-z>1?"s":""} made visible`}):x<z?n.push({category:"visibility",label:"Columns Hidden",description:`${z-x} column${z-x>1?"s":""} hidden`}):n.push({category:"visibility",label:"Column Visibility Changed",description:"Column visibility settings have been modified"})}const h=JSON.stringify(e.columnOrder),g=JSON.stringify(r.columnOrder);h!==g&&n.push({category:"order",label:"Column Order Changed",description:"Columns have been reordered"});const f=JSON.stringify(e.columnWidths),b=JSON.stringify(r.columnWidths);if(f!==b){const x=Object.keys(e.columnWidths).filter(z=>e.columnWidths[z]!==r.columnWidths[z]).length;n.push({category:"widths",label:"Column Widths Adjusted",description:`${x} column width${x>1?"s":""} modified`})}const y=JSON.stringify(e.grouping),k=JSON.stringify(r.grouping);if(y!==k){const x=(v=e.grouping)==null?void 0:v.enabled,z=(m=r.grouping)==null?void 0:m.enabled;if(x&&!z){const B=((T=e.grouping)==null?void 0:T.levels.length)||0;n.push({category:"grouping",label:"Grouping Applied",description:`${B} grouping level${B>1?"s":""} added`})}else!x&&z?n.push({category:"grouping",label:"Grouping Removed",description:"All grouping has been cleared"}):n.push({category:"grouping",label:"Grouping Modified",description:"Grouping configuration has been changed"})}return n}function Si(){try{return localStorage.getItem("urm:debug")==="true"}catch{return!1}}function Ci(e){return`[${e}]`}const Wt={warn(e,r,...n){Si()&&console.warn(Ci(e),r,...n)},error(e,r,...n){Si()&&console.error(Ci(e),r,...n)}},ks="urm_report_";function Ga(e,r){try{const n=`${ks}${e}`;localStorage.setItem(n,JSON.stringify(r))}catch(n){Wt.error("urm:persistence","Failed to save report state",n)}}function Ya(e){try{const r=`${ks}${e}`,n=localStorage.getItem(r);return n?JSON.parse(n):null}catch(r){return Wt.error("urm:persistence","Failed to load report state",r),null}}function Qo(e,r,n=0){const i=[];for(const a of e){const l=r.includes(a.key);if(i.push({type:"group",key:a.key,level:n,column:a.column,value:a.value,rowCount:a.rowCount,aggregates:a.aggregates,collapsed:l}),!l&&a.children&&a.children.length>0){const c=a.children[0];if(qa(c)){const d=a.children,u=Qo(d,r,n+1);i.push(...u)}else{const d=a.children;for(const u of d)i.push({type:"row",parentGroupKey:a.key,level:n+1,data:u})}}}return i}function qa(e){return e&&typeof e=="object"&&"key"in e&&"level"in e&&"column"in e&&"value"in e&&"rowCount"in e&&"aggregates"in e&&"children"in e}function ri(e){return e.filter(r=>r.type==="row").map(r=>r.type==="row"?r.data:null).filter(r=>r!==null)}function oi(e,r){const n=new Date,i=n.getFullYear(),a=String(n.getMonth()+1).padStart(2,"0"),l=String(n.getDate()).padStart(2,"0"),c=`${i}-${a}-${l}`;return`${e.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")}_${c}.${r}`}function Ho(e,r,n,i,a,l,c){let d,u;l?(d={...l},u=c||r.map(g=>g.name)):a?(d={...a.snapshot.columnVisibility},u=c||[...a.snapshot.columnOrder]):(d={},u=[],r.forEach(g=>{d[g.name]=!0,u.push(g.name)}));const h=Object.entries(d).filter(([g,f])=>!f).map(([g,f])=>g);return{data:e,schema:r,appliedFilters:n,appliedSortStack:i,columnVisibility:d,columnOrder:u,grouping:(a==null?void 0:a.snapshot.grouping)??null,hiddenColumns:h,viewMeta:a?{id:a.id,name:a.name,isDefault:a.isDefault}:void 0}}function Uo(e,r="export",n){const{data:i,columnOrder:a,grouping:l}=e,c=a.filter(f=>e.columnVisibility[f]);let d;if(l&&l.enabled){const f=l.collapsedGroups??[],b=Qo(i,f);d=ri(b)}else d=i;const u=c.join(","),h=d.map(f=>c.map(b=>{const y=f[b];if(y==null)return"";const k=String(y);return k.includes(",")||k.includes('"')||k.includes(`
|
|
2
|
+
`)?`"${k.replace(/"/g,'""')}"`:k}).join(",")),g=[u,...h].join(`
|
|
3
|
+
`);Ts(g,oi(r,"csv"),"text/csv;charset=utf-8;")}function Go(e,r="export",n){const{data:i,columnOrder:a,grouping:l}=e,c=a.filter(f=>e.columnVisibility[f]);let d;if(l&&l.enabled){const f=l.collapsedGroups??[],b=Qo(i,f);d=ri(b)}else d=i;const u=[c,...d.map(f=>c.map(b=>f[b]??""))],h=$o.utils.aoa_to_sheet(u),g=$o.utils.book_new();$o.utils.book_append_sheet(g,h,"Data"),$o.writeFile(g,oi(r,"xlsx"))}function Yo(e,r="export",n){const{data:i,appliedFilters:a,appliedSortStack:l,viewMeta:c,hiddenColumns:d,columnOrder:u,grouping:h}=e,g=u.filter(k=>e.columnVisibility[k]);let f;if(h&&h.enabled){const k=h.collapsedGroups??[],v=Qo(i,k);f=ri(v)}else f=i;f=f.map(k=>{const v={};return g.forEach(m=>{v[m]=k[m]}),v});const b={meta:{exportedAt:new Date().toISOString(),reportName:r,view:(c==null?void 0:c.name)||"Default View",filters:ws(a).map(k=>({field:k.column,operator:k.operator,value:k.value})),sortStack:l.map(k=>({field:k.column,direction:k.direction,priority:k.priority})),grouping:h||{},hiddenColumns:d,columnOrder:u,exportConfig:n||{scope:"visible"}},data:f},y=JSON.stringify(b,null,2);Ts(y,oi(r,"json"),"application/json;charset=utf-8;")}function Ts(e,r,n){const i=new Blob([e],{type:n}),a=URL.createObjectURL(i),l=document.createElement("a");l.href=a,l.download=r,document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(a)}const ji=10;function Ja(e,r){const n=r.trim();if(!n)return e;const i=e.findIndex(l=>l.query.toLowerCase()===n.toLowerCase());let a;return i!==-1?a=[{...e[i],lastUsed:Date.now()},...e.slice(0,i),...e.slice(i+1)]:a=[{query:n,isFavourite:!1,lastUsed:Date.now()},...e],a.length>ji&&(a=[...a].sort((c,d)=>c.isFavourite&&!d.isFavourite?-1:!c.isFavourite&&d.isFavourite?1:d.lastUsed-c.lastUsed).slice(0,ji)),a}function Ka(e,r){return e.map(n=>n.query===r?{...n,isFavourite:!n.isFavourite}:n)}function Xa(e,r){return e.filter(n=>n.query!==r)}function Qa(e){const r=e.filter(i=>i.isFavourite).sort((i,a)=>a.lastUsed-i.lastUsed),n=e.filter(i=>!i.isFavourite).sort((i,a)=>a.lastUsed-i.lastUsed);return[...r,...n]}const Za={owner:["view_report","edit_columns","edit_filters","edit_sorting","edit_views","create_views","delete_views","delete_report","export_data","promote_global_view"],editor:["view_report","edit_columns","edit_filters","edit_sorting","edit_views","create_views","delete_views","export_data"],viewer:["view_report","export_data"]};function el(e,r){return!e||e.owner===r?"owner":e.editors.includes(r)?"editor":(e.viewers.includes(r),"viewer")}function ht(e,r){return Za[r].includes(e)}function gt(e){return`You do not have permission to ${{view_report:"view this report",edit_columns:"modify columns",edit_filters:"modify filters",edit_sorting:"modify sorting",edit_views:"edit views",create_views:"create views",delete_views:"delete views",delete_report:"delete this report",export_data:"export data",promote_global_view:"promote views to global"}[e]||"perform this action"}.`}function tl(e){return e==="viewer"}const wi=1e3;function Hn(e){return e&&e.charAt(0).toUpperCase()+e.slice(1)}function Rt(e){if(!e)return"";const n=e.replace(/[_-]/g," ").replace(/([a-z])([A-Z])/g,"$1 $2");return Hn(n)}const rl={equals:"equals",contains:"contains",startsWith:"starts with",endsWith:"ends with",gt:"is greater than",lt:"is less than",gte:"is greater than or equal to",lte:"is less than or equal to",isTrue:"is true",isFalse:"is false",NULL:"is empty",NOT_NULL:"is not empty"};function ol(e){if(!e||!e.column)return"a filter";const r=Rt(e.column),n=rl[e.operator]??e.operator;return["isTrue","isFalse","NULL","NOT_NULL"].includes(e.operator)?`"${r}" ${n}`:`"${r}" ${n} "${e.value}"`}function On(e){return e?typeof e=="string"?e:"children"in e?"a condition group":ol(e):"a filter"}function ki(e){return!e||!e.enabled||e.levels.length===0?"grouping removed":`grouped by ${e.levels.map(n=>`"${Rt(n.column)}"`).join(", ")}`}function nl(e){var a,l,c;const{action:r,previousState:n,newState:i}=e;switch(r){case"filter_added":return{summary:`Filter added: ${On(i)}`};case"filter_removed":return{summary:`Filter removed: ${On(n)}`};case"filter_updated":{if(typeof i=="string")return{summary:`Filter updated: ${i}`};const d=n,u=i;return d!=null&&d.column&&(u!=null&&u.column)&&d.column!==u.column?{summary:`Filter changed on "${Rt(u.column)}"`,detail:`Previously filtered "${Rt(d.column)}"`}:{summary:`Filter updated: ${On(u)}`}}case"filter_cleared":{const d=n&&typeof n=="object"&&"count"in n?n.count:0;return{summary:d>0?`All filters cleared (${d} filter${d!==1?"s":""} removed)`:"All filters cleared"}}case"sort_level_added":{const d=i!=null&&i.column?Rt(i.column):"",u=(i==null?void 0:i.direction)==="asc"?"ascending":"descending";return{summary:d?`Sort added: "${d}" ${u}`:"Sort level added"}}case"sort_level_removed":{const d=n!=null&&n.column?Rt(n.column):"";return{summary:d?`Sort removed: "${d}"`:"Sort level removed"}}case"sort_reordered":return{summary:"Sort order changed"};case"sort_cleared":return{summary:"All sorting cleared"};case"group_level_added":return{summary:`Grouping applied: ${ki(i)}`};case"group_level_removed":{const d=n,u=(l=(a=d==null?void 0:d.levels)==null?void 0:a[0])!=null&&l.column?Rt(d.levels[0].column):"";return{summary:u?`Group level removed: "${u}"`:"Group level removed"}}case"group_reordered":return{summary:`Grouping updated: ${ki(i)}`};case"group_cleared":return{summary:"Grouping removed"};case"column_hidden":{const d=(i==null?void 0:i.column)??(typeof i=="string"?i:"");return{summary:d?`Column hidden: "${Rt(d)}"`:"Column hidden"}}case"column_shown":{const d=(i==null?void 0:i.column)??(typeof i=="string"?i:"");return{summary:d?`Column shown: "${Rt(d)}"`:"Column made visible"}}case"column_reordered":{const d=Array.isArray(n)?n:[],u=Array.isArray(i)?i:[];return d.length>0&&u.length>0?{summary:"Column order changed",detail:`${u.length} column${u.length!==1?"s":""} reordered`}:{summary:"Columns reordered"}}case"column_resized":{const d=(i==null?void 0:i.column)??"",u=(i==null?void 0:i.width)??"";return{summary:d?`Column resized: "${Rt(d)}"`:"Column resized",detail:u?`New width: ${u}px`:void 0}}case"view_created":{const d=(i==null?void 0:i.name)??(i==null?void 0:i.viewName)??"";return{summary:d?`View created: "${d}"`:"New view created"}}case"view_updated":{const d=(i==null?void 0:i.name)??(n==null?void 0:n.name)??"";return{summary:d?`View updated: "${d}"`:"View updated"}}case"view_deleted":{const d=(n==null?void 0:n.name)??(n==null?void 0:n.viewName)??"";return{summary:d?`View deleted: "${d}"`:"View deleted"}}case"view_set_default":{const d=(i==null?void 0:i.name)??"";return{summary:d?`Default view set to "${d}"`:"Default view changed"}}case"view_switched":{const d=(n==null?void 0:n.name)??"",u=(i==null?void 0:i.name)??"";return d&&u?{summary:`Switched to view "${u}"`,detail:`From "${d}"`}:u?{summary:`Switched to view "${u}"`}:{summary:"View switched"}}case"export_csv":case"export_excel":case"export_json":{const d=r==="export_csv"?"CSV":r==="export_excel"?"Excel":"JSON",u=i==null?void 0:i.rowCount,h=(i==null?void 0:i.scope)==="all"?"all rows":"filtered rows",g=(i==null?void 0:i.viewName)??"",f=typeof u=="number"?` (${u.toLocaleString()} rows)`:"";return{summary:`Exported as ${d}${f}`,detail:g?`${Hn(h)} · View: "${g}"`:Hn(h)}}case"export_triggered":{const d=((c=i==null?void 0:i.format)==null?void 0:c.toUpperCase())??"";return{summary:d?`Export triggered: ${d}`:"Export triggered"}}case"preset_created":{const d=(i==null?void 0:i.name)??"";return{summary:d?`Preset created: "${d}"`:"New preset created"}}case"preset_applied":{const d=(i==null?void 0:i.name)??"";return{summary:d?`Preset applied: "${d}"`:"Preset applied"}}case"preset_deleted":{const d=(n==null?void 0:n.name)??"";return{summary:d?`Preset deleted: "${d}"`:"Preset deleted"}}case"preset_link_copied":{const d=(i==null?void 0:i.name)??"";return{summary:d?`Preset link copied: "${d}"`:"Preset link copied to clipboard"}}case"theme_changed":{const d=typeof n=="string"?n:(n==null?void 0:n.theme)??"",u=typeof i=="string"?i:(i==null?void 0:i.theme)??"";return d&&u?{summary:`Theme changed from "${d}" to "${u}"`}:u?{summary:`Theme changed to "${u}"`}:{summary:"Theme changed"}}case"error_occurred":{const d=(i==null?void 0:i.message)??(i==null?void 0:i.error)??typeof i=="string"?i:"";return{summary:"An error was recorded",detail:d?`Details: ${String(d).slice(0,120)}`:void 0}}default:return{summary:sl(r)}}}function il(){return`EVT_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function Bs(e,r,n,i,a,l){return{id:il(),user:r,reportId:e,feature:n,action:i,timestamp:new Date().toISOString(),previousState:a,newState:l}}function Is(e,r){const n=[r,...e];return n.length>wi?n.slice(0,wi):n}function sl(e){return{filter_added:"Filter Added",filter_removed:"Filter Removed",filter_updated:"Filter Updated",filter_cleared:"All Filters Cleared",sort_level_added:"Sort Level Added",sort_level_removed:"Sort Level Removed",sort_reordered:"Sort Reordered",sort_cleared:"All Sorting Cleared",group_level_added:"Group Level Added",group_level_removed:"Group Level Removed",group_reordered:"Group Reordered",group_cleared:"All Grouping Cleared",column_hidden:"Column Hidden",column_shown:"Column Shown",column_reordered:"Columns Reordered",column_resized:"Column Resized",view_created:"View Created",view_updated:"View Updated",view_deleted:"View Deleted",view_set_default:"View Set as Default",view_switched:"View Switched",theme_changed:"Theme Changed",export_triggered:"Export Triggered",export_csv:"Exported as CSV",export_excel:"Exported as Excel",export_json:"Exported as JSON",preset_created:"Preset Created",preset_applied:"Preset Applied",preset_deleted:"Preset Deleted",preset_link_copied:"Preset Link Copied",error_occurred:"Error Occurred"}[e]||e}function al(e){return{filters:"Filters",sorting:"Sorting",grouping:"Grouping",columns:"Columns",views:"Views",theme:"Theme",export:"Export",presets:"Presets",system:"System"}[e]||e}function ll(e){const r=new Date(e),i=new Date().getTime()-r.getTime(),a=Math.floor(i/6e4),l=Math.floor(i/36e5),c=Math.floor(i/864e5);return a<1?"Just now":a<60?`${a} minute${a>1?"s":""} ago`:l<24?`${l} hour${l>1?"s":""} ago`:c<7?`${c} day${c>1?"s":""} ago`:r.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit"})}const Ti=100;function cl(){return`preset_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function dl(e){var l;const r=(l=e.views)==null?void 0:l.find(c=>c.id===e.activeViewId),n=r==null?void 0:r.snapshot.columnOrder,i=e.columnOrder||[],a=ti(i,e.grouping||null,n);return{filters:Pe(e.filters),sortStack:e.sortStack?[...e.sortStack]:[],columnVisibility:e.columnVisibility?{...e.columnVisibility}:{},columnOrder:a,columnWidths:e.columnWidths?{...e.columnWidths}:{},grouping:e.grouping?{...e.grouping}:null,activeViewId:e.activeViewId}}function ul(e,r,n,i){return{id:cl(),name:e,description:r,createdBy:n,createdAt:Date.now(),config:i}}function pl(e,r){const n=e||[];if(n.length>=Ti)throw new Error(`Maximum of ${Ti} presets reached. Please delete old presets first.`);return[...n,r]}function xl(e,r){return(e||[]).filter(i=>i.id!==r)}function Bi(e,r){if(e)return e.find(n=>n.id===r)}function ml(){return typeof window>"u"?null:new URLSearchParams(window.location.search).get("preset")}function fl(e){const r=e.columnOrder,n=xo(r,e.grouping);return{filters:Pe(e.filters),sortStack:e.sortStack.length>0?[...e.sortStack]:void 0,columnVisibility:{...e.columnVisibility},columnOrder:n,columnWidths:{...e.columnWidths},grouping:e.grouping?{...e.grouping}:null,activeViewId:e.activeViewId}}async function hl(e){try{if(navigator.clipboard&&navigator.clipboard.writeText)return await navigator.clipboard.writeText(e),!0}catch(r){Wt.warn("urm:presets","Clipboard API blocked, using fallback method",r)}try{const r=document.createElement("textarea");r.value=e,r.style.position="fixed",r.style.top="0",r.style.left="0",r.style.width="2em",r.style.height="2em",r.style.padding="0",r.style.border="none",r.style.outline="none",r.style.boxShadow="none",r.style.background="transparent",r.style.opacity="0",document.body.appendChild(r),r.focus(),r.select();let n=!1;try{n=document.execCommand("copy")}catch(i){Wt.error("urm:presets","execCommand copy failed",i)}return document.body.removeChild(r),n}catch(r){return Wt.error("urm:presets","Fallback copy method failed",r),!1}}function gl(e,r){return{totalRows:e.length,totalColumns:r.length}}function dr(e,r,n,i){const a=n instanceof Error?n.message:n,l={type:e,context:r,message:a,details:i,timestamp:Date.now(),recoverable:yl(e,r)};return process.env.NODE_ENV==="development"&&Wt.error("urm:error-handling","[Report Error]",{type:e,context:r,message:a,details:i}),l}function yl(e,r){return e==="ui"?!0:r==="export"?!1:e==="processing"&&["filters","sorting","grouping","columns"].includes(r)?!0:e!=="system"}function bl(e){const n={filters:"There was an issue applying filters",sorting:"Sorting could not be applied",grouping:"Grouping configuration failed",columns:"Column configuration could not be updated",views:"View operation failed",presets:"Preset could not be applied",export:"Export failed",upload:"File upload failed",search:"Search operation failed"}[e.context]||"An error occurred";return e.recoverable?`${n}. Your previous state has been restored.`:`${n}. Please refresh the page.`}function vl(e){return{filters:e.filters,sortStack:e.sortStack?[...e.sortStack]:void 0,grouping:e.grouping?{...e.grouping}:void 0,columnVisibility:e.columnVisibility?{...e.columnVisibility}:void 0,columnOrder:e.columnOrder?[...e.columnOrder]:void 0,columnWidths:e.columnWidths?{...e.columnWidths}:void 0,activeViewId:e.activeViewId}}function Sl(e,r,n){n(e.id,{filters:Pe(r.filters),sortStack:r.sortStack,grouping:r.grouping,columnVisibility:r.columnVisibility,columnOrder:r.columnOrder,columnWidths:r.columnWidths,activeViewId:r.activeViewId})}function Cl(e,r,n){return["equals","contains","starts_with","ends_with","gt","gte","lt","lte"].includes(r)&&(n==null||n==="")?{isValid:!1,errorMessage:"Value is required for this operator"}:e==="number"&&["gt","gte","lt","lte","equals"].includes(r)&&isNaN(Number(n))?{isValid:!1,errorMessage:"Value must be a valid number"}:e==="date"&&n&&isNaN(Date.parse(n))?{isValid:!1,errorMessage:"Value must be a valid date"}:{isValid:!0}}function zs(e,r){const n=[],i=[],a=new Set(r.map(l=>l.name));return e.forEach(l=>{a.has(l.column)?n.push(l):i.push(l.column)}),{validRules:n,invalidColumns:i}}function Es(e,r){if(!e||!e.levels||e.levels.length===0)return{validGrouping:null,invalidColumns:[]};const n=new Set(r.map(l=>l.name)),i=[],a=[];return e.levels.forEach(l=>{n.has(l.column)?i.push(l):a.push(l.column)}),i.length===0?{validGrouping:null,invalidColumns:a}:{validGrouping:{...e,levels:i},invalidColumns:a}}function jl(e,r){const n=[],i=new Set(r.map(l=>l.name)),a={...e};if(a.filters){const l=c=>{const d=c.children.filter(u=>{if(Je(u))return!0;const h=i.has(u.column);return h||n.push(`Filter for column "${u.column}" ignored (column not found)`),h}).map(u=>Je(u)?l(u):u).filter(u=>!Je(u)||u.children.length>0);return{...c,children:d}};a.filters=l(Pe(a.filters))}if(a.sortStack&&Array.isArray(a.sortStack)){const{validRules:l,invalidColumns:c}=zs(a.sortStack,r);c.length>0&&n.push(`Sort rules for columns ignored: ${c.join(", ")}`),a.sortStack=l.length>0?l:void 0}if(a.grouping){const{validGrouping:l,invalidColumns:c}=Es(a.grouping,r);c.length>0&&n.push(`Grouping for columns ignored: ${c.join(", ")}`),a.grouping=l}if(a.columnVisibility){const l={};Object.entries(a.columnVisibility).forEach(([c,d])=>{i.has(c)?l[c]=d:n.push(`Column visibility for "${c}" ignored (column not found)`)}),a.columnVisibility=Object.keys(l).length>0?l:void 0}if(a.columnOrder&&Array.isArray(a.columnOrder)){const l=a.columnOrder.filter(c=>{const d=i.has(c);return d||n.push(`Column "${c}" in order ignored (column not found)`),d});a.columnOrder=l.length>0?l:void 0}if(a.columnWidths){const l={};Object.entries(a.columnWidths).forEach(([c,d])=>{i.has(c)?l[c]=d:n.push(`Column width for "${c}" ignored (column not found)`)}),a.columnWidths=Object.keys(l).length>0?l:void 0}return{sanitizedConfig:a,warnings:n}}function wl(e,r){return dr("processing","export",e,{retryAvailable:!!(r!=null&&r.onRetry)})}function Ii(e,r,n,i){const a=Bs(e,r,"system","error_occurred",null,{errorType:n.type,errorContext:n.context,errorMessage:n.message,recoverable:n.recoverable,timestamp:n.timestamp});return Is(i||[],a)}function kl(e){return e==null}function Tl(e,r,n){const{operator:i,value:a}=r;if(i==="NULL")return e==null;if(i==="NOT_NULL")return e!=null;if(kl(e))return!1;if(n==="date"){const l=new Date(e).getTime(),c=new Date(a).getTime();switch(i){case"equals":return l===c;case"gt":return l>c;case"lt":return l<c;case"gte":return l>=c;case"lte":return l<=c;default:return!0}}switch(i){case"equals":return String(e)===String(a);case"contains":return String(e).toLowerCase().includes(String(a).toLowerCase());case"startsWith":return String(e).toLowerCase().startsWith(String(a).toLowerCase());case"endsWith":return String(e).toLowerCase().endsWith(String(a).toLowerCase());case"gt":return Number(e)>Number(a);case"lt":return Number(e)<Number(a);case"gte":return Number(e)>=Number(a);case"lte":return Number(e)<=Number(a);case"isTrue":return e===!0;case"isFalse":return e===!1;default:return!0}}function Un(e,r,n){var a;if(Je(r))return r.children.length===0?!0:r.operator==="and"?r.children.every(l=>Un(e,l,n)):r.children.some(l=>Un(e,l,n));const i=((a=n.find(l=>l.name===r.column))==null?void 0:a.type)??"string";return Tl(e[r.column],r,i)}function Bl(e,r,n){return!r||r.children.length===0?e:e.filter(i=>Un(i,r,n))}function qo(e){switch(e){case"string":return[{value:"equals",label:"Equals"},{value:"contains",label:"Contains"},{value:"startsWith",label:"Starts with"},{value:"endsWith",label:"Ends with"},{value:"NULL",label:"Is NULL"},{value:"NOT_NULL",label:"Is NOT NULL"}];case"number":return[{value:"equals",label:"="},{value:"gt",label:">"},{value:"lt",label:"<"},{value:"gte",label:"≥"},{value:"lte",label:"≤"}];case"boolean":return[{value:"isTrue",label:"Is true"},{value:"isFalse",label:"Is false"},{value:"NULL",label:"Is NULL"},{value:"NOT_NULL",label:"Is NOT NULL"}];case"date":return[{value:"equals",label:"Is"},{value:"gt",label:"After"},{value:"lt",label:"Before"},{value:"gte",label:"On or after"},{value:"lte",label:"On or before"},{value:"NULL",label:"Is NULL"},{value:"NOT_NULL",label:"Is NOT NULL"}];case"mixed":case"null":case"array":case"object":default:return[]}}function Il(e){return e!=="isTrue"&&e!=="isFalse"&&e!=="NULL"&&e!=="NOT_NULL"}function zl({data:e,filters:r,schema:n}){return{filteredData:p.useMemo(()=>!r||r.children.length===0?e:Bl(e,r,n),[e,r,n])}}function El(e,r,n,i){if(!n||n.trim()==="")return e;const a=n.toLowerCase().trim(),l=r.filter(c=>i.includes(c.name));return e.filter(c=>l.some(d=>{const u=c[d.name];return u==null?!1:String(u).toLowerCase().includes(a)}))}function Dl({data:e,searchQuery:r,schema:n,visibleColumns:i,mode:a="client"}){return{searchedData:p.useMemo(()=>a==="server"||!r||r.trim()===""?e:El(e,n,r,i),[e,r,n,i,a])}}function $l({data:e,sortStack:r,schema:n}){return{sortedData:p.useMemo(()=>!r||r.length===0?e:Ma(e,n,r),[e,r,n])}}function Ol({data:e,grouping:r,schema:n}){const i=p.useMemo(()=>!r||!r.enabled||r.levels.length===0?e:Na(e,n,r),[e,r,n]),a=(r==null?void 0:r.enabled)&&((r==null?void 0:r.levels.length)||0)>0;return{groupedData:i,isGrouped:a}}function _l({schema:e,columnVisibility:r,columnOrder:n}){const i=p.useMemo(()=>n.filter(d=>r[d]!==!1),[n,r]),a=p.useMemo(()=>Object.entries(r).filter(([d,u])=>!u).map(([d,u])=>d),[r]),l=p.useMemo(()=>n.map(d=>e.find(h=>h.name===d)||{name:d,type:"string"}),[n,e]),c=p.useMemo(()=>i.map(d=>e.find(h=>h.name===d)||{name:d,type:"string"}),[i,e]);return{visibleColumns:i,hiddenColumns:a,allColumns:l,visibleColumnSchemas:c,hiddenCount:a.length}}function Ml({views:e,activeViewId:r,currentState:n}){const i=p.useMemo(()=>e.find(h=>h.id===r),[e,r]),a=p.useMemo(()=>i?Va(n,i.snapshot):!1,[i,n]),l=p.useMemo(()=>e.find(h=>h.isDefault),[e]),c=p.useMemo(()=>e.filter(h=>!h.isDefault&&!h.isDeleted),[e]),d=p.useMemo(()=>e.filter(h=>h.isFavorite&&!h.isDeleted),[e]),u=p.useMemo(()=>e.filter(h=>h.isDeleted),[e]);return{activeView:i,isDirty:a,defaultView:l,customViews:c,favoriteViews:d,deletedViews:u,isDefaultView:(i==null?void 0:i.isDefault)||!1}}function Al({data:e,enabled:r=!1,pageSize:n=100,initialPage:i=1}){const[a,l]=p.useState(i),c=e.length,d=Math.ceil(c/n),u=p.useMemo(()=>{if(!r)return e;const y=(a-1)*n,k=y+n;return e.slice(y,k)},[e,r,a,n]),h=p.useCallback(y=>{const k=Math.max(1,Math.min(y,d));l(k)},[d]),g=p.useCallback(()=>{a<d&&l(a+1)},[a,d]),f=p.useCallback(()=>{a>1&&l(a-1)},[a]),b=p.useCallback(()=>{l(1)},[]);return{paginatedData:u,currentPage:a,totalPages:d,pageSize:n,totalRows:c,goToPage:h,nextPage:g,prevPage:f,resetPage:b,hasNextPage:a<d,hasPrevPage:a>1}}function Rl(e){const{rawData:r,schema:n,filters:i,sortStack:a,grouping:l,searchQuery:c,searchMode:d,columnVisibility:u,columnOrder:h,columnWidths:g,views:f,activeViewId:b,pagination:y}=e,k=p.useMemo(()=>({filters:i,sortStack:a,grouping:l,columnVisibility:u,columnOrder:h,columnWidths:g}),[i,a,l,u,h,g]),v=Ml({views:f,activeViewId:b,currentState:k}),m=_l({schema:n,columnVisibility:u,columnOrder:h}),{filteredData:T}=zl({data:r,filters:i,schema:n}),{sortedData:x}=$l({data:T,sortStack:a,schema:n}),{groupedData:z,isGrouped:B}=Ol({data:x,grouping:l,schema:n}),{searchedData:w}=Dl({data:z,searchQuery:c,schema:n,visibleColumns:m.visibleColumns,mode:d}),R=Al({data:w,enabled:(y==null?void 0:y.enabled)||!1,pageSize:(y==null?void 0:y.pageSize)||100,initialPage:(y==null?void 0:y.currentPage)||1}),j=y!=null&&y.enabled?R.paginatedData:w,M=p.useMemo(()=>({totalRows:r.length,filteredRows:T.length,sortedRows:x.length,groupedRows:B?z.length:x.length,searchedRows:w.length,visibleRows:j.length,hiddenColumns:m.hiddenCount,activeFilters:bt(i),activeSorts:a.length,isGrouped:B}),[r.length,T.length,x.length,z.length,w.length,j.length,m.hiddenCount,i,a.length,B]);return{data:j,filteredData:T,sortedData:x,groupedData:z,searchedData:w,viewEngine:v,columnEngine:m,paginationEngine:R,metrics:M,isGrouped:B,isPaginated:(y==null?void 0:y.enabled)||!1}}let Wl=0;function Pl(e,r){e!==null&&e.__urm_row_id__===void 0&&Object.defineProperty(e,"__urm_row_id__",{value:r?r(e):Wl++,writable:!1,enumerable:!1,configurable:!1})}const Tt="user-demo-001";function Nl(e={}){var ui,pi,xi,mi,fi;const{mode:r="builder",autoLoad:n=!0,initialData:i,dataSource:a,pagination:l,search:c,reportName:d,reportId:u,sharedReportId:h,sharedViewId:g,config:f={}}=e,b=(l==null?void 0:l.mode)??"client",y=(c==null?void 0:c.mode)??"client",[k,v]=p.useState([]),m=wr(),[T,x]=p.useState(""),[z,B]=p.useState(!1),[w,R]=p.useState(!1),[j,M]=p.useState({message:"",severity:"info",open:!1}),A=(C,I="info")=>{M({message:C,severity:I,open:!0})},q=()=>M(C=>({...C,open:!1})),te=f.notifDurationMs??2e3,s=k.find(C=>C.id===T),[N,L]=p.useState("idle"),[re,le]=p.useState(!1),[J,ee]=p.useState(!1),[Ce,V]=p.useState(!1),[K,ne]=p.useState(!1),[ce,U]=p.useState(!1),[ie,oe]=p.useState(void 0),[E,Z]=p.useState(null),[ue,de]=p.useState(null),[ze,H]=p.useState(!1),[He,rt]=p.useState(!1),[tt,Pt]=p.useState(null),[xr,zt]=p.useState(!1),[Br,Xe]=p.useState(!1),[Ct,Ir]=p.useState({enabled:!1,levels:[],collapsedGroups:[]}),[pt,Xt]=p.useState(""),[Et,zr]=p.useState(""),[Dt,at]=p.useState(new Set),[$t,Ue]=p.useState(1),[Ot,Qt]=p.useState(15),[Zt,Nt]=p.useState(!1),[er,Er]=p.useState(!1),[Dr,tr]=p.useState(!1),[_e,ye]=p.useState(null),[mr,Lt]=p.useState(!1),[eo,fr]=p.useState(null),[$r,Ft]=p.useState(null),Ge=p.useRef(null),be=p.useMemo(()=>s?el(s.permissions,Tt):"owner",[s]),jt=tl(be),jo=p.useMemo(()=>!(s!=null&&s.uploadedData)||!(s!=null&&s.schema)?{totalRows:0,totalColumns:0}:gl(s.uploadedData,s.schema),[s==null?void 0:s.uploadedData,s==null?void 0:s.schema]),Q=p.useCallback(()=>{s&&(Ge.current=vl(s))},[s]),F=p.useCallback((C,I)=>{v(_=>_.map(O=>O.id===C?{...O,...I}:O))},[]),xt=p.useCallback(C=>{if(!s)return;Ft(C);const I=Ii(s.id,Tt,C,s.auditHistory||[]);F(s.id,{auditHistory:I}),A(C.message,"error"),C.recoverable&&Ge.current&&setTimeout(()=>{Sl(s,Ge.current,F),A("Previous state restored","success")},100)},[s,F]),ve=p.useCallback((C,I,_,O)=>{if(!s)return;const G=Bs(s.id,Tt,C,I,_,O),Y=s.auditHistory||[],pe=Is(Y,G);setTimeout(()=>{F(s.id,{auditHistory:pe})},0)},[s,F]);p.useEffect(()=>{if(s!=null&&s.schemaLocked&&s.schema&&(!s.views||s.views.length===0)){const C=$n(s.schema);(()=>{try{const I=localStorage.getItem("urm_dev_config");return I?JSON.parse(I):null}catch{return null}})(),F(s.id,{views:[C],activeViewId:C.id,filters:C.snapshot.filters,sortStack:C.snapshot.sortStack,columnVisibility:C.snapshot.columnVisibility,columnOrder:C.snapshot.columnOrder,columnWidths:C.snapshot.columnWidths,grouping:C.snapshot.grouping})}},[s==null?void 0:s.schemaLocked,s==null?void 0:s.schema,s==null?void 0:s.id,F]),p.useEffect(()=>{if(i&&n&&!w&&k.length===0){const C=po(i),I={id:u||`auto-report-${Date.now()}`,name:d||(r==="viewer"?"Data View":"Imported Data"),description:"Auto-generated from external data",schemaLocked:!0,uploadedData:C,schema:yi(ao(C),f.visibleColumns),permissions:{owner:Tt,editors:[],viewers:[]}};v([I]),x(I.id),R(!0),L("confirmed")}},[i,n,w,k.length,r,d,u]),p.useEffect(()=>{b!=="server"||!w||!T||F(T,{uploadedData:po(i||[])})},[i,b,w,T]),p.useEffect(()=>{b==="server"&&((l==null?void 0:l.page)!==void 0&&Ue(l.page),(l==null?void 0:l.pageSize)!==void 0&&Qt(l.pageSize))},[l==null?void 0:l.page,l==null?void 0:l.pageSize,b]),p.useEffect(()=>{if(!a||w)return;let C=!1,I=null;const _=async()=>{try{L("uploading");let O;if(a.type==="api"){const Y=await fetch(a.url,{headers:a.headers||{}});if(!Y.ok)throw new Error(`HTTP ${Y.status}: ${Y.statusText}`);O=await Y.json()}else O=await a.fetch();if(C)return;if(!Array.isArray(O))throw new Error("Data source must return an array of objects");const G=ao(O);if(w)v(Y=>Y.map(pe=>pe.id===T?{...pe,uploadedData:O}:pe)),L("confirmed");else{const Y={id:u||`auto-report-${Date.now()}`,name:d||(r==="viewer"?"Data View":"Imported Data"),description:`Loaded from ${a.type==="api"?a.url:"callback"}`,schemaLocked:!0,uploadedData:po(O),schema:yi(ao(po(O)),f.visibleColumns),permissions:{owner:Tt,editors:[],viewers:[]}};v([Y]),x(Y.id),R(!0),L("confirmed")}}catch(O){C||(L("error"),s&&F(s.id,{uploadError:(O==null?void 0:O.message)||"Failed to load data from source"}))}};return _(),a.refreshInterval&&a.refreshInterval>0&&(I=setInterval(_,a.refreshInterval)),()=>{C=!0,I&&clearInterval(I)}},[a,d,r,u]);const ot=(ui=s==null?void 0:s.views)==null?void 0:ui.find(C=>C.id===s.activeViewId),Vt=p.useMemo(()=>s!=null&&s.uploadedData?(s.uploadedData.forEach(C=>Pl(C,f.getRowId)),s.uploadedData):[],[s==null?void 0:s.uploadedData]);p.useEffect(()=>{at(C=>{if(C.size===0)return C;const I=new Set(Vt.map(O=>O==null?void 0:O.__urm_row_id__)),_=new Set(Array.from(C).filter(O=>I.has(O==null?void 0:O.__urm_row_id__)));return _.size===C.size?C:_})},[Vt]);const rr=Rl({rawData:Vt,schema:(s==null?void 0:s.schema)||[],filters:Pe(s==null?void 0:s.filters),sortStack:(s==null?void 0:s.sortStack)||[],grouping:(s==null?void 0:s.grouping)||null,searchQuery:Et||"",searchMode:y,columnVisibility:(s==null?void 0:s.columnVisibility)||(ot==null?void 0:ot.snapshot.columnVisibility)||{},columnOrder:(s==null?void 0:s.columnOrder)||(ot==null?void 0:ot.snapshot.columnOrder)||[],columnWidths:(s==null?void 0:s.columnWidths)||(ot==null?void 0:ot.snapshot.columnWidths)||{},views:(s==null?void 0:s.views)||[],activeViewId:(s==null?void 0:s.activeViewId)||"",pagination:{enabled:b==="client",pageSize:Ot,currentPage:$t}}),{data:Ht=[],searchedData:or=[],groupedData:to=[],sortedData:Ut=[],metrics:nr={totalRows:0,searchedRows:0,isGrouped:!1},isGrouped:Or=!1,paginationEngine:Ye}=rr||{},hr=b==="server"?(l==null?void 0:l.totalRows)??0:nr.searchedRows,X=((pi=rr.viewEngine)==null?void 0:pi.activeView)||ot,Le=((xi=rr.viewEngine)==null?void 0:xi.isDirty)||!1;p.useEffect(()=>{if(!(!X||!s)&&!s.columnOrder){const C=X.snapshot.columnOrder,I=xo(C,X.snapshot.grouping);F(s.id,{columnOrder:I})}},[s==null?void 0:s.activeViewId]);const Se=p.useMemo(()=>!(s!=null&&s.schema)||!X?null:Fa(s.filters,s.sortStack||[],s.schema,s.columnVisibility,s.columnOrder,s.columnWidths,s.grouping,X.snapshot.columnOrder),[s==null?void 0:s.filters,s==null?void 0:s.sortStack,s==null?void 0:s.schema,s==null?void 0:s.columnVisibility,s==null?void 0:s.columnOrder,s==null?void 0:s.columnWidths,s==null?void 0:s.grouping,X]),nt=p.useMemo(()=>!X||!Se||!Le?[]:Ua(Se,X.snapshot),[X,Se,Le]),me=p.useCallback((C,I,_)=>{const O={id:`report-${Date.now()}`,name:C,description:I,schemaLocked:!1,permissions:{owner:Tt,editors:[],viewers:[]}};if(_&&Array.isArray(_)&&_.length>0){const G=ao(_),Y=$n(G);O.uploadedData=_,O.schema=G,O.schemaLocked=!0,O.views=[Y],O.activeViewId=Y.id,O.sortStack=Y.snapshot.sortStack,O.filters=Y.snapshot.filters,O.columnVisibility=Y.snapshot.columnVisibility,O.columnOrder=Y.snapshot.columnOrder,O.columnWidths=Y.snapshot.columnWidths,O.grouping=Y.snapshot.grouping}v(G=>[...G,O]),x(O.id),B(!1),L("confirmed")},[]),_r=p.useCallback(C=>{s&&(L("uploading"),setTimeout(()=>{const I=ao(C);F(s.id,{uploadedData:C,schema:I,uploadError:void 0}),L("preview")},500))},[s,F]),ir=p.useCallback(C=>{s&&(F(s.id,{uploadError:C}),L("idle"))},[s,F]),Mr=p.useCallback(()=>{s&&(F(s.id,{uploadError:void 0,uploadedData:void 0,schema:void 0}),L("idle"))},[s,F]),ro=p.useCallback(()=>{s&&(F(s.id,{schemaLocked:!0}),L("confirmed"))},[s,F]),Ar=p.useCallback(C=>{if(!s)return;if(!ht("edit_sorting",be)){A(gt("edit_sorting"),"error");return}const I=s.sortStack??[],_=I.find(O=>O.column===C);if(_){const O=Aa(_.direction);if(O===null){const G=I.filter(Y=>Y.column!==C).map((Y,pe)=>({...Y,priority:pe+1}));F(s.id,{sortStack:G.length>0?G:void 0})}else{const G=O,Y=I.map(pe=>pe.column===C?{...pe,direction:G}:pe);F(s.id,{sortStack:Y})}}else{if(I.length>=m.sort.maxLevels){A(`Sort limit reached — maximum ${m.sort.maxLevels} sort levels allowed. Remove an existing sort to add a new one.`,"warning");return}const O={column:C,direction:"asc",priority:I.length+1};F(s.id,{sortStack:[...I,O]})}},[s,be,F]),sr=p.useCallback(C=>{if(s)if(s.schema){const{validRules:I,invalidColumns:_}=zs(C,s.schema);_.length>0&&A(`Removed invalid sort columns: ${_.join(", ")}`),Q();try{F(s.id,{sortStack:I.length>0?I:void 0})}catch(O){const G=dr("processing","sorting",O);xt(G)}}else F(s.id,{sortStack:C.length>0?C:void 0})},[s,F,Q,xt]),Rr=p.useCallback(C=>{if(!s)return;const I=s.sortStack??[],_=I.find(O=>O.column===C);if(!(_&&_.direction==="asc"))if(_){const O=I.map(G=>G.column===C?{...G,direction:"asc"}:G);F(s.id,{sortStack:O})}else{if(I.length>=m.sort.maxLevels){A(`Sort limit reached — maximum ${m.sort.maxLevels} sort levels allowed. Remove an existing sort to add a new one.`,"warning");return}const O={column:C,direction:"asc",priority:I.length+1};F(s.id,{sortStack:[...I,O]})}},[s,F]),Wr=p.useCallback(C=>{if(!s)return;const I=s.sortStack??[],_=I.find(O=>O.column===C);if(!(_&&_.direction==="desc"))if(_){const O=I.map(G=>G.column===C?{...G,direction:"desc"}:G);F(s.id,{sortStack:O})}else{if(I.length>=m.sort.maxLevels){A(`Sort limit reached — maximum ${m.sort.maxLevels} sort levels allowed. Remove an existing sort to add a new one.`,"warning");return}const O={column:C,direction:"desc",priority:I.length+1};F(s.id,{sortStack:[...I,O]})}},[s,F]),ar=p.useCallback((C,I)=>{var O;if(!s)return;if(!ht("edit_filters",be)){A(gt("edit_filters"),"error");return}const _=(O=s.schema)==null?void 0:O.find(G=>G.name===I.column);if(_&&I.value!==void 0){const G=Cl(_.type,I.operator,I.value);if(!G.isValid){A(G.errorMessage||"Invalid filter value","error");return}}Q();try{const G=Pe(s.filters),Y={...I,id:Qr()},pe=Zr(G,C,Y);ve("filters","filter_added",null,Y),F(s.id,{filters:pe})}catch(G){const Y=dr("processing","filters",G);xt(Y)}},[s,be,F,Q,xt,ve]),ge=p.useCallback(C=>{if(!s)return;if(!ht("edit_filters",be)){A(gt("edit_filters"),"error");return}const I=Pe(s.filters),_=Zr(I,C,Bt());ve("filters","filter_added",null,"a condition group"),F(s.id,{filters:_})},[s,be,F,ve]),qe=p.useCallback((C,I)=>{if(!s)return;if(!ht("edit_filters",be)){A(gt("edit_filters"),"error");return}const _=Pe(s.filters),O=No(_,C),G=Qn(_,C,I),Y=No(G,C);ve("filters","filter_updated",O,Y),F(s.id,{filters:G})},[s,be,F,ve]),gr=p.useCallback((C,I)=>{if(!s)return;if(!ht("edit_filters",be)){A(gt("edit_filters"),"error");return}const _=Pe(s.filters),O=Zn(_,C,I);ve("filters","filter_updated",null,`group operator changed to ${I.toUpperCase()}`),F(s.id,{filters:O})},[s,be,F,ve]),it=p.useCallback(C=>{if(!s)return;if(!ht("edit_filters",be)){A(gt("edit_filters"),"error");return}const I=Pe(s.filters),_=No(I,C),O=ei(I,C);ve("filters","filter_removed",_,null),F(s.id,{filters:O})},[s,be,F,ve]),Gt=p.useCallback(()=>{if(!s)return;if(!ht("edit_filters",be)){A(gt("edit_filters"),"error");return}const C=Pe(s.filters);ve("filters","filter_cleared",{count:bt(C)},null),F(s.id,{filters:Bt()})},[s,be,F,ve]),wt=p.useCallback(C=>{if(!s)return;if(!ht("edit_filters",be)){A(gt("edit_filters"),"error");return}const I=Pe(s.filters);ve("filters","filter_cleared",{count:bt(I)},{count:bt(C)}),F(s.id,{filters:C})},[s,be,F,ve]),he=p.useCallback(C=>{var G;if(!s)return;const I=(G=s.views)==null?void 0:G.find(Y=>Y.id===C);if(!I)return;const _=I.snapshot.columnOrder,O=xo(_,I.snapshot.grouping);F(s.id,{filters:I.snapshot.filters,sortStack:I.snapshot.sortStack.length>0?[...I.snapshot.sortStack]:void 0,columnVisibility:{...I.snapshot.columnVisibility},columnOrder:O,columnWidths:{...I.snapshot.columnWidths},grouping:I.snapshot.grouping,activeViewId:C}),at(new Set)},[s,F]),we=p.useCallback((C,I,_)=>{var Ke;if(!(s!=null&&s.schema)||!Se)return;const O=s.views??[],G=O.filter(Dn=>!Dn.isDeleted).length,Y=((Ke=m.views)==null?void 0:Ke.maxViews)??10;if(G>=Y){A(`View limit reached — you can have at most ${Y} saved views. Delete an existing view to create a new one.`,"error");return}const pe={id:`view-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,name:C,description:I||void 0,isDefault:_,isFavorite:!1,isDeleted:!1,scope:"personal",createdBy:Tt,createdAt:Date.now(),updatedAt:Date.now(),snapshot:{...Se}},je=_?O.map(Dn=>({...Dn,isDefault:!1})):O;F(s.id,{views:[...je,pe],activeViewId:pe.id}),A(`"${C}" view created`,"success")},[s,Se,F]),$e=p.useCallback(C=>{var pe;if(!(s!=null&&s.views))return;const I=s.views.find(je=>je.id===C);if(!I)return;const _=s.views,O=_.filter(je=>!je.isDeleted).length,G=((pe=m.views)==null?void 0:pe.maxViews)??10;if(O>=G){A(`View limit reached — you can have at most ${G} saved views. Delete an existing view to create a new one.`,"error");return}const Y={...I,id:`view-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,name:`${I.name} (copy)`,scope:"personal",isDefault:!1,isFavorite:!1,isDeleted:!1,createdBy:Tt,createdAt:Date.now(),updatedAt:Date.now(),snapshot:{...I.snapshot}};F(s.id,{views:[..._,Y]}),A(`"${Y.name}" created`,"success")},[s,m,F]),mt=p.useCallback(()=>{var I;if(!X||!Se||!s)return;const C=(I=s.views)==null?void 0:I.map(_=>_.id===X.id?{..._,snapshot:{...Se}}:_);F(s.id,{views:C}),A(`"${X.name}" view updated`,"success")},[X,Se,s,F]),_t=p.useCallback(C=>{var O;if(!X||!Se||!s)return;const I=C??Se.columnWidths,_=(O=s.views)==null?void 0:O.map(G=>G.id===X.id?{...G,snapshot:{...G.snapshot,columnVisibility:Se.columnVisibility,columnOrder:Se.columnOrder,columnWidths:I},updatedAt:Date.now()}:G);F(s.id,{views:_,columnWidths:I}),A(`Column configuration saved to "${X.name}"`,"success")},[X,Se,s,F]),fn=p.useCallback(C=>{var Y,pe;if(!Se||!s||!X)return;const I=C??Se.columnWidths,_={...X,snapshot:{...X.snapshot,columnVisibility:Se.columnVisibility,columnOrder:Se.columnOrder,columnWidths:I},updatedAt:Date.now()},O=(Y=s.views)==null?void 0:Y.map(je=>je.id===X.id?_:{...je,snapshot:{...je.snapshot,columnVisibility:Se.columnVisibility,columnOrder:Se.columnOrder,columnWidths:I},updatedAt:Date.now()});F(s.id,{views:O,columnWidths:I});const G=(((pe=s.views)==null?void 0:pe.length)||0)-1;A(`Column configuration saved to current view and ${G} other view${G===1?"":"s"}`,"success")},[Se,s,X,F]),hn=p.useCallback(()=>{V(!0)},[]),wo=p.useCallback(()=>{if(!X||!s)return;const C=X.snapshot.columnOrder,I=xo(C,X.snapshot.grouping);F(s.id,{filters:X.snapshot.filters,sortStack:X.snapshot.sortStack.length>0?[...X.snapshot.sortStack]:void 0,columnVisibility:{...X.snapshot.columnVisibility},columnOrder:I,columnWidths:{...X.snapshot.columnWidths},grouping:X.snapshot.grouping}),A("Changes reverted to last saved state","success")},[X,s,F]),Pr=p.useCallback(C=>{if(!(s!=null&&s.views))return;const I=s.views.map(O=>({...O,isDefault:O.id===C}));F(s.id,{views:I});const _=s.views.find(O=>O.id===C);_&&A(`"${_.name}" set as default view`,"success")},[s,F]),gn=p.useCallback(C=>{if(!(s!=null&&s.views))return;const I=s.views.map(O=>O.id===C?{...O,isFavorite:!O.isFavorite,updatedAt:Date.now()}:O);F(s.id,{views:I});const _=s.views.find(O=>O.id===C);_&&!_.isFavorite?A(`"${_.name}" added to favorites`,"success"):_&&A(`"${_.name}" removed from favorites`,"info")},[s,F]),Nr=p.useCallback(C=>{if(!(s!=null&&s.views))return;const I=s.views.find(Ke=>Ke.id===C),_=s.views.filter(Ke=>!Ke.isDeleted||Ke.id===C);if((I==null?void 0:I.isDefault)&&_.filter(Ke=>Ke.isDefault).length===1){A("Cannot delete the last default view","error");return}const G=s.views.map(Ke=>Ke.id===C?{...Ke,isDeleted:!0,updatedAt:Date.now()}:Ke),Y=s.activeViewId===C,pe=G.find(Ke=>Ke.isDefault&&!Ke.isDeleted);F(s.id,{views:G,activeViewId:Y&&pe?pe.id:s.activeViewId,filters:Y&&pe?pe.snapshot.filters:s.filters,sortStack:Y&&pe?pe.snapshot.sortStack.length>0?pe.snapshot.sortStack:void 0:s.sortStack});const je=s.views.find(Ke=>Ke.id===C);je&&A(`"${je.name}" moved to Recently Deleted`,"info")},[s,F]),oo=p.useCallback(C=>{if(!(s!=null&&s.views))return;const I=s.views.map(O=>O.id===C?{...O,isDeleted:!1,updatedAt:Date.now()}:O);F(s.id,{views:I});const _=s.views.find(O=>O.id===C);_&&A(`"${_.name}" restored`,"success")},[s,F]),yn=p.useCallback(C=>{if(!(s!=null&&s.views))return;const I=s.views.find(je=>je.id===C),_=s.views.filter(je=>!je.isDeleted||je.id===C);if((I==null?void 0:I.isDefault)&&_.filter(je=>je.isDefault).length===1){A("Cannot delete the last default view","error");return}const G=s.views.filter(je=>je.id!==C),Y=s.activeViewId===C,pe=G.find(je=>je.isDefault&&!je.isDeleted);F(s.id,{views:G,activeViewId:Y&&pe?pe.id:s.activeViewId,filters:Y&&pe?pe.snapshot.filters:s.filters,sortStack:Y&&pe?pe.snapshot.sortStack.length>0?pe.snapshot.sortStack:void 0:s.sortStack}),I&&A(`"${I.name}" permanently deleted`,"success")},[s,F]),ko=p.useCallback(C=>{Z(C),ne(!0)},[]),Lr=p.useCallback(async C=>{if(!s)return;const I=new URLSearchParams(window.location.search);I.set("reportId",s.id),I.set("view",C);const _=`${window.location.origin}${window.location.pathname}?${I.toString()}`,O=await hl(_);A(O?"Link copied to clipboard":"Failed to copy link",O?"success":"error")},[s]),To=p.useCallback((C,I)=>{if(!E||!(s!=null&&s.views))return;const _=s.views.map(O=>O.id===E?{...O,name:C,description:I||void 0}:O);F(s.id,{views:_}),Z(null)},[E,s,F]),yr=p.useCallback(C=>{de(C),U(!0)},[]),no=p.useCallback(()=>{if(!ue||!(s!=null&&s.views))return;const C=s.views.filter(O=>O.id!==ue),I=s.activeViewId===ue,_=C.find(O=>O.isDefault);F(s.id,{views:C,activeViewId:I&&_?_.id:s.activeViewId,filters:I&&_?_.snapshot.filters:s.filters,sortStack:I&&_?_.snapshot.sortStack.length>0?_.snapshot.sortStack:void 0:s.sortStack}),de(null),U(!1)},[ue,s,F]),Bo=p.useCallback(C=>{var G;if(!(s!=null&&s.views))return;if(!(((G=m.views)==null?void 0:G.isAdmin)??!1)){A("Only administrators can promote views to Global.","error");return}const _=s.views.find(Y=>Y.id===C);if(!_)return;if(_.scope==="global"){A(`"${_.name}" is already a Global View.`,"info");return}const O=s.views.map(Y=>Y.id===C?{...Y,scope:"global",isDefault:!0,updatedAt:Date.now()}:Y.scope==="global"&&Y.isDefault?{...Y,isDefault:!1}:Y);F(s.id,{views:O}),A(`"${_.name}" promoted to Global View and set as default.`,"success")},[s,m,F]),ft=p.useRef(!0);p.useEffect(()=>{var C;if(ft.current){ft.current=!1;return}if(b==="server"){Ue(1),(C=l==null?void 0:l.onPaginationChange)==null||C.call(l,1,Ot);return}Ye!=null&&Ye.resetPage?Ye.resetPage():Ue(1)},[s==null?void 0:s.filters,Et,s==null?void 0:s.activeViewId]);const Fr=p.useCallback(C=>{var I;if(b==="server"){Ue(C),(I=l==null?void 0:l.onPaginationChange)==null||I.call(l,C,Ot);return}Ye!=null&&Ye.goToPage&&Ye.goToPage(C),Ue(C)},[b,l,Ot,Ye]),lr=p.useCallback(C=>{var O;const I=($t-1)*Ot,_=Math.floor(I/C)+1;if(b==="server"){Qt(C),Ue(_),(O=l==null?void 0:l.onPaginationChange)==null||O.call(l,_,C);return}Qt(C),Ue(_),Ye==null||Ye.goToPage(_)},[$t,Ot,b,l,Ye]),Io=p.useCallback((C,I)=>{if(!s)return;if(!ht("edit_columns",be)){A(gt("edit_columns"),"error");return}const O={...s.columnVisibility||(X==null?void 0:X.snapshot.columnVisibility)||{},[C]:I};F(s.id,{columnVisibility:O})},[s,X,be,F]),Vr=p.useCallback(C=>{if(s){if(!ht("edit_columns",be)){A(gt("edit_columns"),"error");return}F(s.id,{columnOrder:C})}},[s,be,F]),bn=p.useCallback((C,I)=>{if(!s)return;if(!ht("edit_columns",be)){A(gt("edit_columns"),"error");return}const O={...s.columnWidths||(X==null?void 0:X.snapshot.columnWidths)||{},[C]:I};F(s.id,{columnWidths:O})},[s,X,be,F]),vn=p.useCallback(C=>{if(!s)return;const I=Pe(s.filters),_=js(I,C);F(s.id,{filters:_})},[s,F]),Sn=p.useCallback(()=>{if(!X||!(s!=null&&s.schema))return;const C={},I=[],_={};s.schema.forEach(O=>{C[O.name]=!0,I.push(O.name),_[O.name]=170}),F(s.id,{columnVisibility:C,columnOrder:I,columnWidths:_,filters:void 0,sortStack:void 0}),A("Reset to default layout - all filters and sorts cleared","success")},[X,s,F]);p.useEffect(()=>{const C=setTimeout(()=>zr(pt),300);return()=>clearTimeout(C)},[pt]),p.useEffect(()=>{var C;y==="server"&&((C=c==null?void 0:c.onSearchChange)==null||C.call(c,Et))},[Et,y,c]);const Cn=p.useCallback(C=>{Xt(C)},[]),jn=p.useCallback(C=>{if(!C.trim()||!s)return;const I=s.searchHistory||[],_=Ja(I,C);F(s.id,{searchHistory:_})},[s,F]),wn=p.useCallback(C=>{if(!s)return;const I=s.searchHistory||[],_=Ka(I,C);F(s.id,{searchHistory:_})},[s,F]),kn=p.useCallback(C=>{if(!s)return;const I=s.searchHistory||[],_=Xa(I,C);F(s.id,{searchHistory:_})},[s,F]);p.useEffect(()=>{if(!f.onSelectionChange)return;const C=Array.from(Dt);f.onSelectionChange(C,C.map(I=>I==null?void 0:I.__urm_row_id__))},[Dt,f.onSelectionChange]);const Tn=p.useCallback(C=>{const I=C==null?void 0:C.__urm_row_id__;at(_=>{const O=new Set(_);if(I!==void 0){const G=Array.from(O).find(Y=>(Y==null?void 0:Y.__urm_row_id__)===I);G!==void 0?O.delete(G):O.add(C)}else{const G=JSON.stringify(C),Y=Array.from(O).find(pe=>JSON.stringify(pe)===G);Y!==void 0?O.delete(Y):O.add(C)}return O})},[]),Bn=p.useCallback((C,I)=>{at(_=>{const O=new Set(_);for(const G of I)C?O.add(G):O.delete(G);return O})},[]),Hr=p.useCallback((C,I,_)=>{at(O=>{const G=new Set(O),Y=Math.min(C,I),pe=Math.max(C,I);for(let je=Y;je<=pe;je++)_[je]!==void 0&&G.add(_[je]);return G})},[]),Yt=p.useCallback(()=>{at(new Set)},[]),In=p.useCallback(C=>{const I=C==null?void 0:C.__urm_row_id__;at(_=>{const O=new Set(_);if(I!==void 0){const G=Array.from(O).find(Y=>(Y==null?void 0:Y.__urm_row_id__)===I);G!==void 0&&O.delete(G)}else O.delete(C);return O})},[]),zn=p.useCallback(C=>{if(s){if(!ht("edit_columns",be)){A(gt("edit_columns"),"error");return}if(C&&s.schema){const{validGrouping:I,invalidColumns:_}=Es(C,s.schema);_.length>0&&A(`Removed invalid grouping columns: ${_.join(", ")}`,"warning"),Q();try{const O=s.grouping;I===null?ve("grouping","group_cleared",O,null):O?ve("grouping","group_reordered",O,I):ve("grouping","group_level_added",null,I);const G=(X==null?void 0:X.snapshot.columnOrder)||s.columnOrder||[],Y=xo(G,I),pe=I.levels.length>0?{...I,collapsedGroups:vi(Ut,s.schema,I)}:I;F(s.id,{grouping:pe,columnOrder:Y}),JSON.stringify(Y)!==JSON.stringify(s.columnOrder)&&ve("columns","column_reordered",s.columnOrder,Y),Xe(!1)}catch(O){const G=dr("processing","grouping",O);xt(G)}}else{const I=s.grouping;ve("grouping","group_cleared",I,null);const _=(X==null?void 0:X.snapshot.columnOrder)||s.columnOrder||[];F(s.id,{grouping:C,columnOrder:[..._]}),JSON.stringify(_)!==JSON.stringify(s.columnOrder)&&ve("columns","column_reordered",s.columnOrder,_),Xe(!1)}}},[s,X,be,F,Q,xt,ve,Ut]),Fe=p.useCallback(C=>{if(!s)return;const I=s.grouping;if(!I)return;const _=La(I,C);F(s.id,{grouping:_})},[s,F]),kt=p.useCallback(()=>{s!=null&&s.grouping&&F(s.id,{grouping:{...s.grouping,collapsedGroups:[]}})},[s,F]),io=p.useCallback(()=>{if(!(s!=null&&s.grouping)||!s.schema)return;const C=vi(Ut,s.schema,s.grouping);F(s.id,{grouping:{...s.grouping,collapsedGroups:C}})},[s,Ut,F]),zo=p.useCallback(()=>{Lt(!0)},[]),br=p.useCallback(C=>{s!=null&&s.schema&&(H(!0),setTimeout(()=>{try{let I;C.scope==="visible"?I=or:I=s.uploadedData||[];let _;C.columnScope==="all"?(_={},(s.schema??[]).forEach(je=>{_[je.name]=!0})):_=s.columnVisibility||(X==null?void 0:X.snapshot.columnVisibility)||{};const O=s.columnOrder||(X==null?void 0:X.snapshot.columnOrder),G=Ho(I,s.schema,Pe(s.filters),s.sortStack??[],X,_,O),Y=s.name;let pe;switch(C.format){case"csv":Uo(G,Y,C),pe="export_csv";break;case"excel":Go(G,Y,C),pe="export_excel";break;case"json":Yo(G,Y,C),pe="export_json";break}ve("export",pe,null,{format:C.format,scope:C.scope,columnScope:C.columnScope,rowCount:I.length,viewName:(X==null?void 0:X.name)||"Default View"}),A(`Export completed successfully (${C.format.toUpperCase()})`,"success")}catch(I){const _=wl(I,{onRetry:()=>br(C)});A(`Export failed: ${_.message}. Click Export to retry.`,"error");const O=Ii(s.id,Tt,_,s.auditHistory||[]);F(s.id,{auditHistory:O}),Wt.error("urm:report-engine","Export failed",I)}finally{H(!1)}},500))},[s,X,or,F,ve]),Mt=p.useCallback(C=>{if(s!=null&&s.schema){if(Le&&X&&!X.isDefault){Pt(C.format),rt(!0),Lt(!1);return}br(C),Lt(!1)}},[s,X,Le,br]),Ur=p.useCallback(C=>{br({format:C,scope:"visible",columnScope:"visible"})},[br]),Eo=p.useCallback(()=>{tt&&Ur(tt),rt(!1),Pt(null)},[tt,Ur]),Do=p.useCallback(()=>{mt(),tt&&Ur(tt),rt(!1),Pt(null)},[mt,tt,Ur]),S=p.useCallback(()=>{rt(!1),Pt(null)},[]),P=p.useCallback(C=>{!(s!=null&&s.schema)||Dt.size===0||(H(!0),setTimeout(()=>{try{const I=Array.from(Dt),_=Ho(I,s.schema,Pe(s.filters),s.sortStack??[],X),O=`${s.name.toLowerCase().replace(/\s+/g,"_")}_selected_export`;switch(C){case"csv":Uo(_,O);break;case"excel":Go(_,O);break;case"json":Yo(_,O);break}A(`Exported ${I.length} selected rows`,"info")}catch(I){A("Export failed. Please try again.","error"),Wt.error("urm:report-engine","Bulk export failed",I)}finally{H(!1)}},500))},[s,X,Dt,to]),se=p.useCallback((C,I)=>{if(s)try{const _=dl(s),O=ul(C,I,Tt,_),G=pl(s.presets,O);F(s.id,{presets:G}),ve("presets","preset_created",null,{presetId:O.id,name:O.name}),Er(!1),A(`Preset "${C}" saved successfully`,"success")}catch(_){A(_ instanceof Error?_.message:"Failed to create preset","error")}},[s,F,ve]),Me=p.useCallback(()=>{ye(null),A("Exited preset view","info")},[]),Ae=p.useCallback(()=>{tr(!0)},[]),et=p.useCallback((C,I)=>{if(!s)return;const _=xl(s.presets,C);F(s.id,{presets:_}),ve("presets","preset_deleted",{presetId:C,name:I},null),_e===C&&ye(null),A(`Preset "${I}" deleted`,"success")},[s,_e,F,ve]);p.useEffect(()=>{if(!h||k.length===0)return;const C=k.find(I=>I.id===h);C&&C.id!==T&&x(C.id)},[h,k,T]);const Qe=p.useRef(!1);p.useEffect(()=>{var I;if(!g||Qe.current||!s||s.id!==h)return;const C=(I=s.views)==null?void 0:I.find(_=>_.id===g&&!_.isDeleted);C&&he(C.id),Qe.current=!0},[g,h,s,he]),p.useEffect(()=>{if(!s)return;const C=ml();if(C&&s.presets&&s.schemaLocked&&s.schema){const I=Bi(s.presets,C);if(I){const{sanitizedConfig:_,warnings:O}=jl(I.config,s.schema);O.length>0&&O.forEach(Y=>A(Y,"warning"));const G=fl(_);F(s.id,G),ye(C),ve("presets","preset_applied",null,{presetId:I.id,name:I.name}),A(`Loaded preset: ${I.name}`,"info")}else A("Preset not found","info")}},[s==null?void 0:s.schemaLocked]);const xe=_e?Bi(s==null?void 0:s.presets,_e):void 0;p.useEffect(()=>{s!=null&&s.views&&s.views.length>0&&s.activeViewId&&Ga(s.id,{views:s.views,activeViewId:s.activeViewId})},[s==null?void 0:s.views,s==null?void 0:s.activeViewId,s==null?void 0:s.id]),p.useEffect(()=>{if(s!=null&&s.schemaLocked&&s.schema&&(!s.views||s.views.length===0)){const C=Ya(s.id);if(C&&C.views.length>0){const I=C.views.find(_=>_.id===C.activeViewId);if(I)F(s.id,{views:C.views,activeViewId:C.activeViewId,filters:Pe(I.snapshot.filters),sortStack:I.snapshot.sortStack.length>0?I.snapshot.sortStack:void 0});else{const _=C.views.find(O=>O.isDefault)||$n(s.schema);F(s.id,{views:C.views,activeViewId:_.id,filters:Pe(_.snapshot.filters),sortStack:_.snapshot.sortStack.length>0?_.snapshot.sortStack:void 0})}}}},[s==null?void 0:s.schemaLocked,s==null?void 0:s.schema,s==null?void 0:s.id]);const vr=p.useCallback(C=>{var O;const I=Pe(s==null?void 0:s.filters),_=((O=m.filter)==null?void 0:O.maxConditions)??3;if(bt(I)>=_){A(`Filter limit reached — maximum ${_} filters allowed. Remove an existing filter before adding a new one.`,"warning");return}oe(C),le(!0)},[s,m,A]),so=p.useCallback(()=>{le(!1),oe(void 0)},[]),En=(mi=s==null?void 0:s.views)==null?void 0:mi.find(C=>C.id===E),da=(fi=s==null?void 0:s.views)==null?void 0:fi.find(C=>C.id===ue);return{reports:k,activeReport:s,activeReportId:T,setActiveReportId:x,isModalOpen:z,setIsModalOpen:B,createReport:me,updateReport:F,uploadState:N,handleFileUpload:_r,handleUploadError:ir,handleRetry:Mr,handleConfirm:ro,paginatedData:Ht,processedData:or,displayData:to,tableMetrics:nr,isGrouped:Or,tableEngine:rr,activeView:X,isDirty:Le,currentTableState:Se,viewChanges:nt,filters:s==null?void 0:s.filters,showFilterPanel:re,setShowFilterPanel:le,filterFocusColumn:ie,handleAddCondition:ar,handleAddGroup:ge,handleUpdateCondition:qe,handleSetGroupOperator:gr,handleRemoveFilterNode:it,handleClearAllFilters:Gt,handleReplaceFilters:wt,handleOpenFilterForColumn:vr,handleCloseFilterPanel:so,handleClearFiltersForColumn:vn,sortStack:s==null?void 0:s.sortStack,showSortPanel:J,setShowSortPanel:ee,handleSort:Ar,handleUpdateSortStack:sr,handleSortAscending:Rr,handleSortDescending:Wr,views:s==null?void 0:s.views,showCreateViewModal:Ce,setShowCreateViewModal:V,showEditViewModal:K,setShowEditViewModal:ne,showDeleteConfirmation:ce,setShowDeleteConfirmation:U,editingView:En,deletingView:da,editingViewId:E,deletingViewId:ue,handleSelectView:he,handleCreateView:we,handleCloneView:$e,handleUpdateCurrentView:mt,handleSaveColumnConfigToCurrentView:_t,handleSaveColumnConfigToAllViews:fn,handleSaveAsNewView:hn,handleRevertChanges:wo,handleToggleDefault:Pr,handleToggleFavorite:gn,handleSoftDelete:Nr,handleRestoreView:oo,handlePermanentDelete:yn,handleEditView:ko,handleCopyViewLink:Lr,handleSaveEditView:To,handleDeleteView:yr,handleConfirmDelete:no,handlePromoteToGlobal:Bo,showManageColumns:xr,setShowManageColumns:zt,columnVisibility:s==null?void 0:s.columnVisibility,columnOrder:s==null?void 0:s.columnOrder,columnWidths:s==null?void 0:s.columnWidths,handleUpdateColumnVisibility:Io,handleUpdateColumnOrder:Vr,handleUpdateColumnWidth:bn,handleResetColumnLayout:Sn,showGroupPanel:Br,setShowGroupPanel:Xe,grouping:s==null?void 0:s.grouping,groupingState:Ct,handleGroup:zn,handleToggleGroupCollapse:Fe,handleExpandAllGroups:kt,handleCollapseAllGroups:io,searchQuery:pt,debouncedSearchQuery:Et,searchHistory:Qa((s==null?void 0:s.searchHistory)||[]),handleSearchChange:Cn,handleAddToSearchHistory:jn,handleToggleSearchFavourite:wn,handleDeleteSearchHistory:kn,selectedRowIds:Dt,handleToggleRowSelection:Tn,handleToggleAllRows:Bn,handleRangeSelection:Hr,handleClearSelection:Yt,handleUpdateSelectionAfterDelete:In,currentPage:$t,pageSize:Ot,paginationEngine:Ye,paginationMode:b,paginationTotalRows:hr,handlePageChange:Fr,handlePageSizeChange:lr,isExporting:ze,showExportModal:mr,setShowExportModal:Lt,showDirtyExportWarning:He,handleExport:zo,handleExportWithConfig:Mt,handleExportSelected:P,handleExportAnyway:Eo,handleSaveAndExport:Do,handleCancelExport:S,showAuditHistory:Zt,setShowAuditHistory:Nt,auditHistory:s==null?void 0:s.auditHistory,showCreatePreset:er,setShowCreatePreset:Er,showManagePresets:Dr,setShowManagePresets:tr,activePreset:xe,activePresetId:_e,handleOpenManagePresets:Ae,handleCreatePreset:se,handleClearActivePreset:Me,handleDeletePresetById:et,userRole:be,isViewerRole:jt,currentUserId:Tt,featureLimitWarning:eo,setFeatureLimitWarning:fr,datasetMeta:jo,reportError:$r,setReportError:Ft,handleError:xt,schema:s==null?void 0:s.schema,hasSchemaConflicts:s!=null&&s.schema?Oa(s.schema):!1,snack:j,handleSnackClose:q,showSnack:A,snackDurationMs:te,config:f}}const Ds=p.createContext(void 0);function ni(e){const{children:r,initialData:n,data:i,reportName:a,reportId:l,dataSource:c,pagination:d,search:u,mode:h="builder",autoLoad:g=!0,config:f,devConfig:b,showDevPanel:y=!1,sharedReportId:k,sharedViewId:v}=e,T=Nl({mode:h,autoLoad:g,initialData:i||n,dataSource:c,pagination:d,search:u,reportName:a,reportId:l,sharedReportId:k,sharedViewId:v,config:f}),[x,z]=p.useState(()=>fa()),B=(()=>{const M=ga(x,b,!!b);return{...M,display:{...M.display,showDevPanel:y||M.display.showDevPanel}}})(),w=p.useCallback(j=>{z(j),ha(j)},[]),R={...T,activeDevConfig:B,handleDevConfigChange:w};return t.jsx(ys.Provider,{value:B,children:t.jsx(Ds.Provider,{value:R,children:r})})}function Zo(){const e=p.useContext(Ds);if(e===void 0)throw new Error("useReportContext must be used within a ReportProvider. Wrap your component tree with <ReportProvider>...</ReportProvider>");return e}function Ll({onCreateReport:e,reports:r=[],activeReportId:n,onReportClick:i}){const a=r.find(l=>l.id===n);return t.jsx(o.Box,{component:"header",sx:l=>{var g,f,b;const c=((b=(f=(g=l.components)==null?void 0:g.MuiCardHeader)==null?void 0:f.styleOverrides)==null?void 0:b.root)||{},d=c.backgroundColor&&c.backgroundColor!=="transparent"?c.backgroundColor:l.palette.background.paper,u=c.borderBottom&&c.borderBottom!=="none"?c.borderBottom:"1px solid",h=c.boxShadow&&c.boxShadow!=="none"?c.boxShadow:void 0;return{position:"sticky",top:0,zIndex:50,borderBottom:u,borderColor:u!=="none"?"divider":void 0,boxShadow:h,bgcolor:d}},children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,height:64},children:[t.jsxs(o.Breadcrumbs,{separator:t.jsx(D.ChevronRight,{sx:{fontSize:16,color:"text.secondary"}}),sx:{display:"flex",alignItems:"center"},children:[t.jsx(o.Typography,{variant:"h6",component:"h1",sx:{fontWeight:500,fontSize:"1.375rem",color:"text.primary",letterSpacing:"-0.01em",cursor:r.length>0&&a?"pointer":"default","&:hover":r.length>0&&a?{color:"primary.main"}:{}},onClick:()=>{r.length>0},children:"Reports"}),a&&t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:[t.jsx(o.Typography,{sx:{fontWeight:500,fontSize:"1.125rem",color:"primary.main",cursor:"pointer","&:hover":{textDecoration:"underline"}},onClick:()=>i==null?void 0:i(a.id),children:a.name}),t.jsx(o.Tooltip,{title:a.description||"No description",arrow:!0,placement:"bottom",children:t.jsx(D.InfoOutlined,{sx:{fontSize:18,color:"text.secondary",opacity:.7,cursor:"help","&:hover":{opacity:1}}})})]})]}),t.jsx(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5},children:t.jsx(o.Button,{variant:"contained",startIcon:t.jsx(D.Add,{sx:{fontSize:18}}),onClick:e,sx:{borderRadius:"20px",px:3,fontSize:"0.875rem",py:.75},children:"New Report"})})]})})}function jr(e,...r){const n=new URL(`https://mui.com/production-error/?code=${e}`);return r.forEach(i=>n.searchParams.append("args[]",i)),`Minified MUI error #${e}; visit ${n} for the full message.`}const Fl="$$material";function Vl(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Oo={exports:{}},_o={exports:{}},ke={};/** @license React v16.13.1
|
|
4
4
|
* react-is.production.min.js
|
|
5
5
|
*
|
|
6
6
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
7
7
|
*
|
|
8
8
|
* This source code is licensed under the MIT license found in the
|
|
9
9
|
* LICENSE file in the root directory of this source tree.
|
|
10
|
-
*/var
|
|
10
|
+
*/var zi;function Hl(){if(zi)return ke;zi=1;var e=typeof Symbol=="function"&&Symbol.for,r=e?Symbol.for("react.element"):60103,n=e?Symbol.for("react.portal"):60106,i=e?Symbol.for("react.fragment"):60107,a=e?Symbol.for("react.strict_mode"):60108,l=e?Symbol.for("react.profiler"):60114,c=e?Symbol.for("react.provider"):60109,d=e?Symbol.for("react.context"):60110,u=e?Symbol.for("react.async_mode"):60111,h=e?Symbol.for("react.concurrent_mode"):60111,g=e?Symbol.for("react.forward_ref"):60112,f=e?Symbol.for("react.suspense"):60113,b=e?Symbol.for("react.suspense_list"):60120,y=e?Symbol.for("react.memo"):60115,k=e?Symbol.for("react.lazy"):60116,v=e?Symbol.for("react.block"):60121,m=e?Symbol.for("react.fundamental"):60117,T=e?Symbol.for("react.responder"):60118,x=e?Symbol.for("react.scope"):60119;function z(w){if(typeof w=="object"&&w!==null){var R=w.$$typeof;switch(R){case r:switch(w=w.type,w){case u:case h:case i:case l:case a:case f:return w;default:switch(w=w&&w.$$typeof,w){case d:case g:case k:case y:case c:return w;default:return R}}case n:return R}}}function B(w){return z(w)===h}return ke.AsyncMode=u,ke.ConcurrentMode=h,ke.ContextConsumer=d,ke.ContextProvider=c,ke.Element=r,ke.ForwardRef=g,ke.Fragment=i,ke.Lazy=k,ke.Memo=y,ke.Portal=n,ke.Profiler=l,ke.StrictMode=a,ke.Suspense=f,ke.isAsyncMode=function(w){return B(w)||z(w)===u},ke.isConcurrentMode=B,ke.isContextConsumer=function(w){return z(w)===d},ke.isContextProvider=function(w){return z(w)===c},ke.isElement=function(w){return typeof w=="object"&&w!==null&&w.$$typeof===r},ke.isForwardRef=function(w){return z(w)===g},ke.isFragment=function(w){return z(w)===i},ke.isLazy=function(w){return z(w)===k},ke.isMemo=function(w){return z(w)===y},ke.isPortal=function(w){return z(w)===n},ke.isProfiler=function(w){return z(w)===l},ke.isStrictMode=function(w){return z(w)===a},ke.isSuspense=function(w){return z(w)===f},ke.isValidElementType=function(w){return typeof w=="string"||typeof w=="function"||w===i||w===h||w===l||w===a||w===f||w===b||typeof w=="object"&&w!==null&&(w.$$typeof===k||w.$$typeof===y||w.$$typeof===c||w.$$typeof===d||w.$$typeof===g||w.$$typeof===m||w.$$typeof===T||w.$$typeof===x||w.$$typeof===v)},ke.typeOf=z,ke}var Te={};/** @license React v16.13.1
|
|
11
11
|
* react-is.development.js
|
|
12
12
|
*
|
|
13
13
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
14
|
*
|
|
15
15
|
* This source code is licensed under the MIT license found in the
|
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var
|
|
17
|
+
*/var Ei;function Ul(){return Ei||(Ei=1,process.env.NODE_ENV!=="production"&&(function(){var e=typeof Symbol=="function"&&Symbol.for,r=e?Symbol.for("react.element"):60103,n=e?Symbol.for("react.portal"):60106,i=e?Symbol.for("react.fragment"):60107,a=e?Symbol.for("react.strict_mode"):60108,l=e?Symbol.for("react.profiler"):60114,c=e?Symbol.for("react.provider"):60109,d=e?Symbol.for("react.context"):60110,u=e?Symbol.for("react.async_mode"):60111,h=e?Symbol.for("react.concurrent_mode"):60111,g=e?Symbol.for("react.forward_ref"):60112,f=e?Symbol.for("react.suspense"):60113,b=e?Symbol.for("react.suspense_list"):60120,y=e?Symbol.for("react.memo"):60115,k=e?Symbol.for("react.lazy"):60116,v=e?Symbol.for("react.block"):60121,m=e?Symbol.for("react.fundamental"):60117,T=e?Symbol.for("react.responder"):60118,x=e?Symbol.for("react.scope"):60119;function z(H){return typeof H=="string"||typeof H=="function"||H===i||H===h||H===l||H===a||H===f||H===b||typeof H=="object"&&H!==null&&(H.$$typeof===k||H.$$typeof===y||H.$$typeof===c||H.$$typeof===d||H.$$typeof===g||H.$$typeof===m||H.$$typeof===T||H.$$typeof===x||H.$$typeof===v)}function B(H){if(typeof H=="object"&&H!==null){var He=H.$$typeof;switch(He){case r:var rt=H.type;switch(rt){case u:case h:case i:case l:case a:case f:return rt;default:var tt=rt&&rt.$$typeof;switch(tt){case d:case g:case k:case y:case c:return tt;default:return He}}case n:return He}}}var w=u,R=h,j=d,M=c,A=r,q=g,te=i,s=k,N=y,L=n,re=l,le=a,J=f,ee=!1;function Ce(H){return ee||(ee=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),V(H)||B(H)===u}function V(H){return B(H)===h}function K(H){return B(H)===d}function ne(H){return B(H)===c}function ce(H){return typeof H=="object"&&H!==null&&H.$$typeof===r}function U(H){return B(H)===g}function ie(H){return B(H)===i}function oe(H){return B(H)===k}function E(H){return B(H)===y}function Z(H){return B(H)===n}function ue(H){return B(H)===l}function de(H){return B(H)===a}function ze(H){return B(H)===f}Te.AsyncMode=w,Te.ConcurrentMode=R,Te.ContextConsumer=j,Te.ContextProvider=M,Te.Element=A,Te.ForwardRef=q,Te.Fragment=te,Te.Lazy=s,Te.Memo=N,Te.Portal=L,Te.Profiler=re,Te.StrictMode=le,Te.Suspense=J,Te.isAsyncMode=Ce,Te.isConcurrentMode=V,Te.isContextConsumer=K,Te.isContextProvider=ne,Te.isElement=ce,Te.isForwardRef=U,Te.isFragment=ie,Te.isLazy=oe,Te.isMemo=E,Te.isPortal=Z,Te.isProfiler=ue,Te.isStrictMode=de,Te.isSuspense=ze,Te.isValidElementType=z,Te.typeOf=B})()),Te}var Di;function $s(){return Di||(Di=1,process.env.NODE_ENV==="production"?_o.exports=Hl():_o.exports=Ul()),_o.exports}/*
|
|
18
18
|
object-assign
|
|
19
19
|
(c) Sindre Sorhus
|
|
20
20
|
@license MIT
|
|
21
|
-
*/var
|
|
22
|
-
Valid keys: `+JSON.stringify(Object.keys(
|
|
21
|
+
*/var _n,$i;function Gl(){if($i)return _n;$i=1;var e=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;function i(l){if(l==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(l)}function a(){try{if(!Object.assign)return!1;var l=new String("abc");if(l[5]="de",Object.getOwnPropertyNames(l)[0]==="5")return!1;for(var c={},d=0;d<10;d++)c["_"+String.fromCharCode(d)]=d;var u=Object.getOwnPropertyNames(c).map(function(g){return c[g]});if(u.join("")!=="0123456789")return!1;var h={};return"abcdefghijklmnopqrst".split("").forEach(function(g){h[g]=g}),Object.keys(Object.assign({},h)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return _n=a()?Object.assign:function(l,c){for(var d,u=i(l),h,g=1;g<arguments.length;g++){d=Object(arguments[g]);for(var f in d)r.call(d,f)&&(u[f]=d[f]);if(e){h=e(d);for(var b=0;b<h.length;b++)n.call(d,h[b])&&(u[h[b]]=d[h[b]])}}return u},_n}var Mn,Oi;function ii(){if(Oi)return Mn;Oi=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return Mn=e,Mn}var An,_i;function Os(){return _i||(_i=1,An=Function.call.bind(Object.prototype.hasOwnProperty)),An}var Rn,Mi;function Yl(){if(Mi)return Rn;Mi=1;var e=function(){};if(process.env.NODE_ENV!=="production"){var r=ii(),n={},i=Os();e=function(l){var c="Warning: "+l;typeof console<"u"&&console.error(c);try{throw new Error(c)}catch{}}}function a(l,c,d,u,h){if(process.env.NODE_ENV!=="production"){for(var g in l)if(i(l,g)){var f;try{if(typeof l[g]!="function"){var b=Error((u||"React class")+": "+d+" type `"+g+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof l[g]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw b.name="Invariant Violation",b}f=l[g](c,g,u,d,null,r)}catch(k){f=k}if(f&&!(f instanceof Error)&&e((u||"React class")+": type specification of "+d+" `"+g+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof f+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),f instanceof Error&&!(f.message in n)){n[f.message]=!0;var y=h?h():"";e("Failed "+d+" type: "+f.message+(y??""))}}}}return a.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(n={})},Rn=a,Rn}var Wn,Ai;function ql(){if(Ai)return Wn;Ai=1;var e=$s(),r=Gl(),n=ii(),i=Os(),a=Yl(),l=function(){};process.env.NODE_ENV!=="production"&&(l=function(d){var u="Warning: "+d;typeof console<"u"&&console.error(u);try{throw new Error(u)}catch{}});function c(){return null}return Wn=function(d,u){var h=typeof Symbol=="function"&&Symbol.iterator,g="@@iterator";function f(V){var K=V&&(h&&V[h]||V[g]);if(typeof K=="function")return K}var b="<<anonymous>>",y={array:T("array"),bigint:T("bigint"),bool:T("boolean"),func:T("function"),number:T("number"),object:T("object"),string:T("string"),symbol:T("symbol"),any:x(),arrayOf:z,element:B(),elementType:w(),instanceOf:R,node:q(),objectOf:M,oneOf:j,oneOfType:A,shape:s,exact:N};function k(V,K){return V===K?V!==0||1/V===1/K:V!==V&&K!==K}function v(V,K){this.message=V,this.data=K&&typeof K=="object"?K:{},this.stack=""}v.prototype=Error.prototype;function m(V){if(process.env.NODE_ENV!=="production")var K={},ne=0;function ce(ie,oe,E,Z,ue,de,ze){if(Z=Z||b,de=de||E,ze!==n){if(u){var H=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw H.name="Invariant Violation",H}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var He=Z+":"+E;!K[He]&&ne<3&&(l("You are manually calling a React.PropTypes validation function for the `"+de+"` prop on `"+Z+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),K[He]=!0,ne++)}}return oe[E]==null?ie?oe[E]===null?new v("The "+ue+" `"+de+"` is marked as required "+("in `"+Z+"`, but its value is `null`.")):new v("The "+ue+" `"+de+"` is marked as required in "+("`"+Z+"`, but its value is `undefined`.")):null:V(oe,E,Z,ue,de)}var U=ce.bind(null,!1);return U.isRequired=ce.bind(null,!0),U}function T(V){function K(ne,ce,U,ie,oe,E){var Z=ne[ce],ue=le(Z);if(ue!==V){var de=J(Z);return new v("Invalid "+ie+" `"+oe+"` of type "+("`"+de+"` supplied to `"+U+"`, expected ")+("`"+V+"`."),{expectedType:V})}return null}return m(K)}function x(){return m(c)}function z(V){function K(ne,ce,U,ie,oe){if(typeof V!="function")return new v("Property `"+oe+"` of component `"+U+"` has invalid PropType notation inside arrayOf.");var E=ne[ce];if(!Array.isArray(E)){var Z=le(E);return new v("Invalid "+ie+" `"+oe+"` of type "+("`"+Z+"` supplied to `"+U+"`, expected an array."))}for(var ue=0;ue<E.length;ue++){var de=V(E,ue,U,ie,oe+"["+ue+"]",n);if(de instanceof Error)return de}return null}return m(K)}function B(){function V(K,ne,ce,U,ie){var oe=K[ne];if(!d(oe)){var E=le(oe);return new v("Invalid "+U+" `"+ie+"` of type "+("`"+E+"` supplied to `"+ce+"`, expected a single ReactElement."))}return null}return m(V)}function w(){function V(K,ne,ce,U,ie){var oe=K[ne];if(!e.isValidElementType(oe)){var E=le(oe);return new v("Invalid "+U+" `"+ie+"` of type "+("`"+E+"` supplied to `"+ce+"`, expected a single ReactElement type."))}return null}return m(V)}function R(V){function K(ne,ce,U,ie,oe){if(!(ne[ce]instanceof V)){var E=V.name||b,Z=Ce(ne[ce]);return new v("Invalid "+ie+" `"+oe+"` of type "+("`"+Z+"` supplied to `"+U+"`, expected ")+("instance of `"+E+"`."))}return null}return m(K)}function j(V){if(!Array.isArray(V))return process.env.NODE_ENV!=="production"&&(arguments.length>1?l("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):l("Invalid argument supplied to oneOf, expected an array.")),c;function K(ne,ce,U,ie,oe){for(var E=ne[ce],Z=0;Z<V.length;Z++)if(k(E,V[Z]))return null;var ue=JSON.stringify(V,function(ze,H){var He=J(H);return He==="symbol"?String(H):H});return new v("Invalid "+ie+" `"+oe+"` of value `"+String(E)+"` "+("supplied to `"+U+"`, expected one of "+ue+"."))}return m(K)}function M(V){function K(ne,ce,U,ie,oe){if(typeof V!="function")return new v("Property `"+oe+"` of component `"+U+"` has invalid PropType notation inside objectOf.");var E=ne[ce],Z=le(E);if(Z!=="object")return new v("Invalid "+ie+" `"+oe+"` of type "+("`"+Z+"` supplied to `"+U+"`, expected an object."));for(var ue in E)if(i(E,ue)){var de=V(E,ue,U,ie,oe+"."+ue,n);if(de instanceof Error)return de}return null}return m(K)}function A(V){if(!Array.isArray(V))return process.env.NODE_ENV!=="production"&&l("Invalid argument supplied to oneOfType, expected an instance of array."),c;for(var K=0;K<V.length;K++){var ne=V[K];if(typeof ne!="function")return l("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+ee(ne)+" at index "+K+"."),c}function ce(U,ie,oe,E,Z){for(var ue=[],de=0;de<V.length;de++){var ze=V[de],H=ze(U,ie,oe,E,Z,n);if(H==null)return null;H.data&&i(H.data,"expectedType")&&ue.push(H.data.expectedType)}var He=ue.length>0?", expected one of type ["+ue.join(", ")+"]":"";return new v("Invalid "+E+" `"+Z+"` supplied to "+("`"+oe+"`"+He+"."))}return m(ce)}function q(){function V(K,ne,ce,U,ie){return L(K[ne])?null:new v("Invalid "+U+" `"+ie+"` supplied to "+("`"+ce+"`, expected a ReactNode."))}return m(V)}function te(V,K,ne,ce,U){return new v((V||"React class")+": "+K+" type `"+ne+"."+ce+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+U+"`.")}function s(V){function K(ne,ce,U,ie,oe){var E=ne[ce],Z=le(E);if(Z!=="object")return new v("Invalid "+ie+" `"+oe+"` of type `"+Z+"` "+("supplied to `"+U+"`, expected `object`."));for(var ue in V){var de=V[ue];if(typeof de!="function")return te(U,ie,oe,ue,J(de));var ze=de(E,ue,U,ie,oe+"."+ue,n);if(ze)return ze}return null}return m(K)}function N(V){function K(ne,ce,U,ie,oe){var E=ne[ce],Z=le(E);if(Z!=="object")return new v("Invalid "+ie+" `"+oe+"` of type `"+Z+"` "+("supplied to `"+U+"`, expected `object`."));var ue=r({},ne[ce],V);for(var de in ue){var ze=V[de];if(i(V,de)&&typeof ze!="function")return te(U,ie,oe,de,J(ze));if(!ze)return new v("Invalid "+ie+" `"+oe+"` key `"+de+"` supplied to `"+U+"`.\nBad object: "+JSON.stringify(ne[ce],null," ")+`
|
|
22
|
+
Valid keys: `+JSON.stringify(Object.keys(V),null," "));var H=ze(E,de,U,ie,oe+"."+de,n);if(H)return H}return null}return m(K)}function L(V){switch(typeof V){case"number":case"string":case"undefined":return!0;case"boolean":return!V;case"object":if(Array.isArray(V))return V.every(L);if(V===null||d(V))return!0;var K=f(V);if(K){var ne=K.call(V),ce;if(K!==V.entries){for(;!(ce=ne.next()).done;)if(!L(ce.value))return!1}else for(;!(ce=ne.next()).done;){var U=ce.value;if(U&&!L(U[1]))return!1}}else return!1;return!0;default:return!1}}function re(V,K){return V==="symbol"?!0:K?K["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&K instanceof Symbol:!1}function le(V){var K=typeof V;return Array.isArray(V)?"array":V instanceof RegExp?"object":re(K,V)?"symbol":K}function J(V){if(typeof V>"u"||V===null)return""+V;var K=le(V);if(K==="object"){if(V instanceof Date)return"date";if(V instanceof RegExp)return"regexp"}return K}function ee(V){var K=J(V);switch(K){case"array":case"object":return"an "+K;case"boolean":case"date":case"regexp":return"a "+K;default:return K}}function Ce(V){return!V.constructor||!V.constructor.name?b:V.constructor.name}return y.checkPropTypes=a,y.resetWarningCache=a.resetWarningCache,y.PropTypes=y,y},Wn}var Pn,Ri;function Jl(){if(Ri)return Pn;Ri=1;var e=ii();function r(){}function n(){}return n.resetWarningCache=r,Pn=function(){function i(c,d,u,h,g,f){if(f!==e){var b=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw b.name="Invariant Violation",b}}i.isRequired=i;function a(){return i}var l={array:i,bigint:i,bool:i,func:i,number:i,object:i,string:i,symbol:i,any:i,arrayOf:a,element:i,elementType:i,instanceOf:a,node:i,objectOf:a,oneOf:a,oneOfType:a,shape:a,exact:a,checkPropTypes:n,resetWarningCache:r};return l.PropTypes=l,l},Pn}var Wi;function Kl(){if(Wi)return Oo.exports;if(Wi=1,process.env.NODE_ENV!=="production"){var e=$s(),r=!0;Oo.exports=ql()(e.isElement,r)}else Oo.exports=Jl()();return Oo.exports}var Xl=Kl();const lo=Vl(Xl);var Mo={exports:{}},Ee={};/**
|
|
23
23
|
* @license React
|
|
24
24
|
* react-is.production.js
|
|
25
25
|
*
|
|
@@ -27,7 +27,7 @@ Valid keys: `+JSON.stringify(Object.keys(H),null," "));var U=Te(E,ie,G,te,oe+".
|
|
|
27
27
|
*
|
|
28
28
|
* This source code is licensed under the MIT license found in the
|
|
29
29
|
* LICENSE file in the root directory of this source tree.
|
|
30
|
-
*/var
|
|
30
|
+
*/var Pi;function Ql(){if(Pi)return Ee;Pi=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),c=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),h=Symbol.for("react.suspense_list"),g=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),b=Symbol.for("react.view_transition"),y=Symbol.for("react.client.reference");function k(v){if(typeof v=="object"&&v!==null){var m=v.$$typeof;switch(m){case e:switch(v=v.type,v){case n:case a:case i:case u:case h:case b:return v;default:switch(v=v&&v.$$typeof,v){case c:case d:case f:case g:return v;case l:return v;default:return m}}case r:return m}}}return Ee.ContextConsumer=l,Ee.ContextProvider=c,Ee.Element=e,Ee.ForwardRef=d,Ee.Fragment=n,Ee.Lazy=f,Ee.Memo=g,Ee.Portal=r,Ee.Profiler=a,Ee.StrictMode=i,Ee.Suspense=u,Ee.SuspenseList=h,Ee.isContextConsumer=function(v){return k(v)===l},Ee.isContextProvider=function(v){return k(v)===c},Ee.isElement=function(v){return typeof v=="object"&&v!==null&&v.$$typeof===e},Ee.isForwardRef=function(v){return k(v)===d},Ee.isFragment=function(v){return k(v)===n},Ee.isLazy=function(v){return k(v)===f},Ee.isMemo=function(v){return k(v)===g},Ee.isPortal=function(v){return k(v)===r},Ee.isProfiler=function(v){return k(v)===a},Ee.isStrictMode=function(v){return k(v)===i},Ee.isSuspense=function(v){return k(v)===u},Ee.isSuspenseList=function(v){return k(v)===h},Ee.isValidElementType=function(v){return typeof v=="string"||typeof v=="function"||v===n||v===a||v===i||v===u||v===h||typeof v=="object"&&v!==null&&(v.$$typeof===f||v.$$typeof===g||v.$$typeof===c||v.$$typeof===l||v.$$typeof===d||v.$$typeof===y||v.getModuleId!==void 0)},Ee.typeOf=k,Ee}var De={};/**
|
|
31
31
|
* @license React
|
|
32
32
|
* react-is.development.js
|
|
33
33
|
*
|
|
@@ -35,15 +35,15 @@ Valid keys: `+JSON.stringify(Object.keys(H),null," "));var U=Te(E,ie,G,te,oe+".
|
|
|
35
35
|
*
|
|
36
36
|
* This source code is licensed under the MIT license found in the
|
|
37
37
|
* LICENSE file in the root directory of this source tree.
|
|
38
|
-
*/var
|
|
39
|
-
For example, \`@sm\` or \`@600\` or \`@40rem/sidebar\`.`);return null}const[,i,
|
|
38
|
+
*/var Ni;function Zl(){return Ni||(Ni=1,process.env.NODE_ENV!=="production"&&(function(){function e(v){if(typeof v=="object"&&v!==null){var m=v.$$typeof;switch(m){case r:switch(v=v.type,v){case i:case l:case a:case h:case g:case y:return v;default:switch(v=v&&v.$$typeof,v){case d:case u:case b:case f:return v;case c:return v;default:return m}}case n:return m}}}var r=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),d=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),g=Symbol.for("react.suspense_list"),f=Symbol.for("react.memo"),b=Symbol.for("react.lazy"),y=Symbol.for("react.view_transition"),k=Symbol.for("react.client.reference");De.ContextConsumer=c,De.ContextProvider=d,De.Element=r,De.ForwardRef=u,De.Fragment=i,De.Lazy=b,De.Memo=f,De.Portal=n,De.Profiler=l,De.StrictMode=a,De.Suspense=h,De.SuspenseList=g,De.isContextConsumer=function(v){return e(v)===c},De.isContextProvider=function(v){return e(v)===d},De.isElement=function(v){return typeof v=="object"&&v!==null&&v.$$typeof===r},De.isForwardRef=function(v){return e(v)===u},De.isFragment=function(v){return e(v)===i},De.isLazy=function(v){return e(v)===b},De.isMemo=function(v){return e(v)===f},De.isPortal=function(v){return e(v)===n},De.isProfiler=function(v){return e(v)===l},De.isStrictMode=function(v){return e(v)===a},De.isSuspense=function(v){return e(v)===h},De.isSuspenseList=function(v){return e(v)===g},De.isValidElementType=function(v){return typeof v=="string"||typeof v=="function"||v===i||v===l||v===a||v===h||v===g||typeof v=="object"&&v!==null&&(v.$$typeof===b||v.$$typeof===f||v.$$typeof===d||v.$$typeof===c||v.$$typeof===u||v.$$typeof===k||v.getModuleId!==void 0)},De.typeOf=e})()),De}var Li;function ec(){return Li||(Li=1,process.env.NODE_ENV==="production"?Mo.exports=Ql():Mo.exports=Zl()),Mo.exports}var _s=ec();function cr(e){if(typeof e!="object"||e===null)return!1;const r=Object.getPrototypeOf(e);return(r===null||r===Object.prototype||Object.getPrototypeOf(r)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Ms(e){if(Xo.isValidElement(e)||_s.isValidElementType(e)||!cr(e))return e;const r={};return Object.keys(e).forEach(n=>{r[n]=Ms(e[n])}),r}function ut(e,r,n={clone:!0}){const i=n.clone?{...e}:e;return cr(e)&&cr(r)&&Object.keys(r).forEach(a=>{Xo.isValidElement(r[a])||_s.isValidElementType(r[a])?i[a]=r[a]:cr(r[a])&&Object.prototype.hasOwnProperty.call(e,a)&&cr(e[a])?i[a]=ut(e[a],r[a],n):n.clone?i[a]=cr(r[a])?Ms(r[a]):r[a]:i[a]=r[a]}),i}const tc=e=>{const r=Object.keys(e).map(n=>({key:n,val:e[n]}))||[];return r.sort((n,i)=>n.val-i.val),r.reduce((n,i)=>({...n,[i.key]:i.val}),{})};function rc(e){const{values:r={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:i=5,...a}=e,l=tc(r),c=Object.keys(l);function d(b){return`@media (min-width:${typeof r[b]=="number"?r[b]:b}${n})`}function u(b){return`@media (max-width:${(typeof r[b]=="number"?r[b]:b)-i/100}${n})`}function h(b,y){const k=c.indexOf(y);return`@media (min-width:${typeof r[b]=="number"?r[b]:b}${n}) and (max-width:${(k!==-1&&typeof r[c[k]]=="number"?r[c[k]]:y)-i/100}${n})`}function g(b){return c.indexOf(b)+1<c.length?h(b,c[c.indexOf(b)+1]):d(b)}function f(b){const y=c.indexOf(b);return y===0?d(c[1]):y===c.length-1?u(c[y]):h(b,c[c.indexOf(b)+1]).replace("@media","@media not all and")}return{keys:c,values:l,up:d,down:u,between:h,only:g,not:f,unit:n,...a}}function Fi(e,r){if(!e.containerQueries)return r;const n=Object.keys(r).filter(i=>i.startsWith("@container")).sort((i,a)=>{var c,d;const l=/min-width:\s*([0-9.]+)/;return+(((c=i.match(l))==null?void 0:c[1])||0)-+(((d=a.match(l))==null?void 0:d[1])||0)});return n.length?n.reduce((i,a)=>{const l=r[a];return delete i[a],i[a]=l,i},{...r}):r}function oc(e,r){return r==="@"||r.startsWith("@")&&(e.some(n=>r.startsWith(`@${n}`))||!!r.match(/^@\d/))}function nc(e,r){const n=r.match(/^@([^/]+)?\/?(.+)?$/);if(!n){if(process.env.NODE_ENV!=="production")throw new Error(`MUI: The provided shorthand ${`(${r})`} is invalid. The format should be \`@<breakpoint | number>\` or \`@<breakpoint | number>/<container>\`.
|
|
39
|
+
For example, \`@sm\` or \`@600\` or \`@40rem/sidebar\`.`);return null}const[,i,a]=n,l=Number.isNaN(+i)?i||0:+i;return e.containerQueries(a).up(l)}function ic(e){const r=(l,c)=>l.replace("@media",c?`@container ${c}`:"@container");function n(l,c){l.up=(...d)=>r(e.breakpoints.up(...d),c),l.down=(...d)=>r(e.breakpoints.down(...d),c),l.between=(...d)=>r(e.breakpoints.between(...d),c),l.only=(...d)=>r(e.breakpoints.only(...d),c),l.not=(...d)=>{const u=r(e.breakpoints.not(...d),c);return u.includes("not all and")?u.replace("not all and ","").replace("min-width:","width<").replace("max-width:","width>").replace("and","or"):u}}const i={},a=l=>(n(i,l),i);return n(a),{...e,containerQueries:a}}const sc={borderRadius:4},pr=process.env.NODE_ENV!=="production"?lo.oneOfType([lo.number,lo.string,lo.object,lo.array]):{};function go(e,r){return r?ut(e,r,{clone:!1}):e}const en={xs:0,sm:600,md:900,lg:1200,xl:1536},Vi={keys:["xs","sm","md","lg","xl"],up:e=>`@media (min-width:${en[e]}px)`},ac={containerQueries:e=>({up:r=>{let n=typeof r=="number"?r:en[r]||r;return typeof n=="number"&&(n=`${n}px`),e?`@container ${e} (min-width:${n})`:`@container (min-width:${n})`}})};function Kt(e,r,n){const i=e.theme||{};if(Array.isArray(r)){const l=i.breakpoints||Vi;return r.reduce((c,d,u)=>(c[l.up(l.keys[u])]=n(r[u]),c),{})}if(typeof r=="object"){const l=i.breakpoints||Vi;return Object.keys(r).reduce((c,d)=>{if(oc(l.keys,d)){const u=nc(i.containerQueries?i:ac,d);u&&(c[u]=n(r[d],d))}else if(Object.keys(l.values||en).includes(d)){const u=l.up(d);c[u]=n(r[d],d)}else{const u=d;c[u]=r[u]}return c},{})}return n(r)}function lc(e={}){var n;return((n=e.keys)==null?void 0:n.reduce((i,a)=>{const l=e.up(a);return i[l]={},i},{}))||{}}function Hi(e,r){return e.reduce((n,i)=>{const a=n[i];return(!a||Object.keys(a).length===0)&&delete n[i],n},r)}function As(e){if(typeof e!="string")throw new Error(process.env.NODE_ENV!=="production"?"MUI: `capitalize(string)` expects a string argument.":jr(7));return e.charAt(0).toUpperCase()+e.slice(1)}function tn(e,r,n=!0){if(!r||typeof r!="string")return null;if(e&&e.vars&&n){const i=`vars.${r}`.split(".").reduce((a,l)=>a&&a[l]?a[l]:null,e);if(i!=null)return i}return r.split(".").reduce((i,a)=>i&&i[a]!=null?i[a]:null,e)}function Jo(e,r,n,i=n){let a;return typeof e=="function"?a=e(n):Array.isArray(e)?a=e[n]||i:a=tn(e,n)||i,r&&(a=r(a,i,e)),a}function Ne(e){const{prop:r,cssProperty:n=e.prop,themeKey:i,transform:a}=e,l=c=>{if(c[r]==null)return null;const d=c[r],u=c.theme,h=tn(u,i)||{};return Kt(c,d,f=>{let b=Jo(h,a,f);return f===b&&typeof f=="string"&&(b=Jo(h,a,`${r}${f==="default"?"":As(f)}`,f)),n===!1?b:{[n]:b}})};return l.propTypes=process.env.NODE_ENV!=="production"?{[r]:pr}:{},l.filterProps=[r],l}function cc(e){const r={};return n=>(r[n]===void 0&&(r[n]=e(n)),r[n])}const dc={m:"margin",p:"padding"},uc={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},Ui={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},pc=cc(e=>{if(e.length>2)if(Ui[e])e=Ui[e];else return[e];const[r,n]=e.split(""),i=dc[r],a=uc[n]||"";return Array.isArray(a)?a.map(l=>i+l):[i+a]}),rn=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],on=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],xc=[...rn,...on];function vo(e,r,n,i){const a=tn(e,r,!0)??n;return typeof a=="number"||typeof a=="string"?l=>typeof l=="string"?l:(process.env.NODE_ENV!=="production"&&typeof l!="number"&&console.error(`MUI: Expected ${i} argument to be a number or a string, got ${l}.`),typeof a=="string"?a.startsWith("var(")&&l===0?0:a.startsWith("var(")&&l===1?a:`calc(${l} * ${a})`:a*l):Array.isArray(a)?l=>{if(typeof l=="string")return l;const c=Math.abs(l);process.env.NODE_ENV!=="production"&&(Number.isInteger(c)?c>a.length-1&&console.error([`MUI: The value provided (${c}) overflows.`,`The supported values are: ${JSON.stringify(a)}.`,`${c} > ${a.length-1}, you need to add the missing values.`].join(`
|
|
40
40
|
`)):console.error([`MUI: The \`theme.${r}\` array type cannot be combined with non integer values.You should either use an integer value that can be used as index, or define the \`theme.${r}\` as a number.`].join(`
|
|
41
|
-
`)));const
|
|
42
|
-
`)),()=>{})}function Jn(e){return xo(e,"spacing",8,"spacing")}function mo(e,r){return typeof r=="string"||r==null?r:e(r)}function dc(e,r){return n=>e.reduce((i,s)=>(i[s]=mo(r,n),i),{})}function uc(e,r,n,i){if(!r.includes(n))return null;const s=lc(n),l=dc(s,i),a=e[n];return qt(e,a,l)}function Ts(e,r){const n=Jn(e.theme);return Object.keys(e).map(i=>uc(e,r,i,n)).reduce(co,{})}function Oe(e){return Ts(e,qo)}Oe.propTypes=process.env.NODE_ENV!=="production"?qo.reduce((e,r)=>(e[r]=mr,e),{}):{};Oe.filterProps=qo;function _e(e){return Ts(e,Jo)}_e.propTypes=process.env.NODE_ENV!=="production"?Jo.reduce((e,r)=>(e[r]=mr,e),{}):{};_e.filterProps=Jo;process.env.NODE_ENV!=="production"&&cc.reduce((e,r)=>(e[r]=mr,e),{});function Bs(e=8,r=Jn({spacing:e})){if(e.mui)return e;const n=(...i)=>(process.env.NODE_ENV!=="production"&&(i.length<=4||console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${i.length}`)),(i.length===0?[1]:i).map(l=>{const a=r(l);return typeof a=="number"?`${a}px`:a}).join(" "));return n.mui=!0,n}function Ko(...e){const r=e.reduce((i,s)=>(s.filterProps.forEach(l=>{i[l]=s}),i),{}),n=i=>Object.keys(i).reduce((s,l)=>r[l]?co(s,r[l](i)):s,{});return n.propTypes=process.env.NODE_ENV!=="production"?e.reduce((i,s)=>Object.assign(i,s.propTypes),{}):{},n.filterProps=e.reduce((i,s)=>i.concat(s.filterProps),[]),n}function mt(e){return typeof e!="number"?e:`${e}px solid`}function ft(e,r){return Ae({prop:e,themeKey:"borders",transform:r})}const pc=ft("border",mt),xc=ft("borderTop",mt),mc=ft("borderRight",mt),hc=ft("borderBottom",mt),fc=ft("borderLeft",mt),gc=ft("borderColor"),yc=ft("borderTopColor"),bc=ft("borderRightColor"),vc=ft("borderBottomColor"),Sc=ft("borderLeftColor"),Cc=ft("outline",mt),jc=ft("outlineColor"),Xo=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){const r=xo(e.theme,"shape.borderRadius",4,"borderRadius"),n=i=>({borderRadius:mo(r,i)});return qt(e,e.borderRadius,n)}return null};Xo.propTypes=process.env.NODE_ENV!=="production"?{borderRadius:mr}:{};Xo.filterProps=["borderRadius"];Ko(pc,xc,mc,hc,fc,gc,yc,bc,vc,Sc,Xo,Cc,jc);const Qo=e=>{if(e.gap!==void 0&&e.gap!==null){const r=xo(e.theme,"spacing",8,"gap"),n=i=>({gap:mo(r,i)});return qt(e,e.gap,n)}return null};Qo.propTypes=process.env.NODE_ENV!=="production"?{gap:mr}:{};Qo.filterProps=["gap"];const Zo=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){const r=xo(e.theme,"spacing",8,"columnGap"),n=i=>({columnGap:mo(r,i)});return qt(e,e.columnGap,n)}return null};Zo.propTypes=process.env.NODE_ENV!=="production"?{columnGap:mr}:{};Zo.filterProps=["columnGap"];const en=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){const r=xo(e.theme,"spacing",8,"rowGap"),n=i=>({rowGap:mo(r,i)});return qt(e,e.rowGap,n)}return null};en.propTypes=process.env.NODE_ENV!=="production"?{rowGap:mr}:{};en.filterProps=["rowGap"];const wc=Ae({prop:"gridColumn"}),kc=Ae({prop:"gridRow"}),Tc=Ae({prop:"gridAutoFlow"}),Bc=Ae({prop:"gridAutoColumns"}),Ic=Ae({prop:"gridAutoRows"}),zc=Ae({prop:"gridTemplateColumns"}),Ec=Ae({prop:"gridTemplateRows"}),Dc=Ae({prop:"gridTemplateAreas"}),$c=Ae({prop:"gridArea"});Ko(Qo,Zo,en,wc,kc,Tc,Bc,Ic,zc,Ec,Dc,$c);function Gr(e,r){return r==="grey"?r:e}const Oc=Ae({prop:"color",themeKey:"palette",transform:Gr}),_c=Ae({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:Gr}),Mc=Ae({prop:"backgroundColor",themeKey:"palette",transform:Gr});Ko(Oc,_c,Mc);function st(e){return e<=1&&e!==0?`${e*100}%`:e}const Ac=Ae({prop:"width",transform:st}),Kn=e=>{if(e.maxWidth!==void 0&&e.maxWidth!==null){const r=n=>{var s,l,a,c,u;const i=((a=(l=(s=e.theme)==null?void 0:s.breakpoints)==null?void 0:l.values)==null?void 0:a[n])||Go[n];return i?((u=(c=e.theme)==null?void 0:c.breakpoints)==null?void 0:u.unit)!=="px"?{maxWidth:`${i}${e.theme.breakpoints.unit}`}:{maxWidth:i}:{maxWidth:st(n)}};return qt(e,e.maxWidth,r)}return null};Kn.filterProps=["maxWidth"];const Rc=Ae({prop:"minWidth",transform:st}),Wc=Ae({prop:"height",transform:st}),Pc=Ae({prop:"maxHeight",transform:st}),Nc=Ae({prop:"minHeight",transform:st});Ae({prop:"size",cssProperty:"width",transform:st});Ae({prop:"size",cssProperty:"height",transform:st});const Lc=Ae({prop:"boxSizing"});Ko(Ac,Kn,Rc,Wc,Pc,Nc,Lc);const tn={border:{themeKey:"borders",transform:mt},borderTop:{themeKey:"borders",transform:mt},borderRight:{themeKey:"borders",transform:mt},borderBottom:{themeKey:"borders",transform:mt},borderLeft:{themeKey:"borders",transform:mt},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:mt},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:Xo},color:{themeKey:"palette",transform:Gr},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:Gr},backgroundColor:{themeKey:"palette",transform:Gr},p:{style:_e},pt:{style:_e},pr:{style:_e},pb:{style:_e},pl:{style:_e},px:{style:_e},py:{style:_e},padding:{style:_e},paddingTop:{style:_e},paddingRight:{style:_e},paddingBottom:{style:_e},paddingLeft:{style:_e},paddingX:{style:_e},paddingY:{style:_e},paddingInline:{style:_e},paddingInlineStart:{style:_e},paddingInlineEnd:{style:_e},paddingBlock:{style:_e},paddingBlockStart:{style:_e},paddingBlockEnd:{style:_e},m:{style:Oe},mt:{style:Oe},mr:{style:Oe},mb:{style:Oe},ml:{style:Oe},mx:{style:Oe},my:{style:Oe},margin:{style:Oe},marginTop:{style:Oe},marginRight:{style:Oe},marginBottom:{style:Oe},marginLeft:{style:Oe},marginX:{style:Oe},marginY:{style:Oe},marginInline:{style:Oe},marginInlineStart:{style:Oe},marginInlineEnd:{style:Oe},marginBlock:{style:Oe},marginBlockStart:{style:Oe},marginBlockEnd:{style:Oe},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:Qo},rowGap:{style:en},columnGap:{style:Zo},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:st},maxWidth:{style:Kn},minWidth:{transform:st},height:{transform:st},maxHeight:{transform:st},minHeight:{transform:st},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function Fc(...e){const r=e.reduce((i,s)=>i.concat(Object.keys(s)),[]),n=new Set(r);return e.every(i=>n.size===Object.keys(i).length)}function Vc(e,r){return typeof e=="function"?e(r):e}function Hc(){function e(n,i,s,l){const a={[n]:i,theme:s},c=l[n];if(!c)return{[n]:i};const{cssProperty:u=n,themeKey:g,transform:y,style:h}=c;if(i==null)return null;if(g==="typography"&&i==="inherit")return{[n]:i};const v=Yo(s,g)||{};return h?h(a):qt(a,i,B=>{let C=Lo(v,y,B);return B===C&&typeof B=="string"&&(C=Lo(v,y,`${n}${B==="default"?"":ks(B)}`,B)),u===!1?C:{[u]:C}})}function r(n){const{sx:i,theme:s={},nested:l}=n||{};if(!i)return null;const a=s.unstable_sxConfig??tn;function c(u){let g=u;if(typeof u=="function")g=u(s);else if(typeof u!="object")return u;if(!g)return null;const y=nc(s.breakpoints),h=Object.keys(y);let v=y;return Object.keys(g).forEach(S=>{const B=Vc(g[S],s);if(B!=null)if(typeof B=="object")if(a[S])v=co(v,e(S,B,s,a));else{const C=qt({theme:s},B,m=>({[S]:m}));Fc(C,B)?v[S]=r({sx:B,theme:s,nested:!0}):v=co(v,C)}else v=co(v,e(S,B,s,a))}),!l&&s.modularCssLayers?{"@layer sx":Di(s,Oi(h,v))}:Di(s,Oi(h,v))}return Array.isArray(i)?i.map(c):c(i)}return r}const rn=Hc();rn.filterProps=["sx"];function Uc(e,r){var i;const n=this;if(n.vars){if(!((i=n.colorSchemes)!=null&&i[e])||typeof n.getColorSchemeSelector!="function")return{};let s=n.getColorSchemeSelector(e);return s==="&"?r:((s.includes("data-")||s.includes("."))&&(s=`*:where(${s.replace(/\s*&$/,"")}) &`),{[s]:r})}return n.palette.mode===e?r:{}}function Is(e={},...r){const{breakpoints:n={},palette:i={},spacing:s,shape:l={},...a}=e,c=Ql(n),u=Bs(s);let g=lt({breakpoints:c,direction:"ltr",components:{},palette:{mode:"light",...i},spacing:u,shape:{...rc,...l}},a);return g=tc(g),g.applyStyles=Uc,g=r.reduce((y,h)=>lt(y,h),g),g.unstable_sxConfig={...tn,...a==null?void 0:a.unstable_sxConfig},g.unstable_sx=function(h){return rn({sx:h,theme:this})},g}function Gc(e){return Object.keys(e).length===0}function Yc(e=null){const r=Vo.useContext(ca.ThemeContext);return!r||Gc(r)?e:r}const qc=Is();function Jc(e=qc){return Yc(e)}const Mi=e=>e,Kc=()=>{let e=Mi;return{configure(r){e=r},generate(r){return e(r)},reset(){e=Mi}}},Xc=Kc(),Qc={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function Zc(e,r,n="Mui"){const i=Qc[r];return i?`${n}-${i}`:`${Xc.generate(e)}-${r}`}function ed(e,r=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(r,Math.min(e,n))}function Xn(e,r=0,n=1){return process.env.NODE_ENV!=="production"&&(e<r||e>n)&&console.error(`MUI: The value provided ${e} is out of range [${r}, ${n}].`),ed(e,r,n)}function td(e){e=e.slice(1);const r=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let n=e.match(r);return n&&n[0].length===1&&(n=n.map(i=>i+i)),process.env.NODE_ENV!=="production"&&e.length!==e.trim().length&&console.error(`MUI: The color: "${e}" is invalid. Make sure the color input doesn't contain leading/trailing space.`),n?`rgb${n.length===4?"a":""}(${n.map((i,s)=>s<3?parseInt(i,16):Math.round(parseInt(i,16)/255*1e3)/1e3).join(", ")})`:""}function xr(e){if(e.type)return e;if(e.charAt(0)==="#")return xr(td(e));const r=e.indexOf("("),n=e.substring(0,r);if(!["rgb","rgba","hsl","hsla","color"].includes(n))throw new Error(process.env.NODE_ENV!=="production"?`MUI: Unsupported \`${e}\` color.
|
|
43
|
-
The following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().`:
|
|
44
|
-
The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.`:
|
|
45
|
-
`))}return
|
|
46
|
-
The color object needs to have a \`main\` property or a \`${
|
|
41
|
+
`)));const d=a[c];return l>=0?d:typeof d=="number"?-d:typeof d=="string"&&d.startsWith("var(")?`calc(-1 * ${d})`:`-${d}`}:typeof a=="function"?a:(process.env.NODE_ENV!=="production"&&console.error([`MUI: The \`theme.${r}\` value (${a}) is invalid.`,"It should be a number, an array or a function."].join(`
|
|
42
|
+
`)),()=>{})}function si(e){return vo(e,"spacing",8,"spacing")}function So(e,r){return typeof r=="string"||r==null?r:e(r)}function mc(e,r){return n=>e.reduce((i,a)=>(i[a]=So(r,n),i),{})}function fc(e,r,n,i){if(!r.includes(n))return null;const a=pc(n),l=mc(a,i),c=e[n];return Kt(e,c,l)}function Rs(e,r){const n=si(e.theme);return Object.keys(e).map(i=>fc(e,r,i,n)).reduce(go,{})}function Re(e){return Rs(e,rn)}Re.propTypes=process.env.NODE_ENV!=="production"?rn.reduce((e,r)=>(e[r]=pr,e),{}):{};Re.filterProps=rn;function We(e){return Rs(e,on)}We.propTypes=process.env.NODE_ENV!=="production"?on.reduce((e,r)=>(e[r]=pr,e),{}):{};We.filterProps=on;process.env.NODE_ENV!=="production"&&xc.reduce((e,r)=>(e[r]=pr,e),{});function Ws(e=8,r=si({spacing:e})){if(e.mui)return e;const n=(...i)=>(process.env.NODE_ENV!=="production"&&(i.length<=4||console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${i.length}`)),(i.length===0?[1]:i).map(l=>{const c=r(l);return typeof c=="number"?`${c}px`:c}).join(" "));return n.mui=!0,n}function nn(...e){const r=e.reduce((i,a)=>(a.filterProps.forEach(l=>{i[l]=a}),i),{}),n=i=>Object.keys(i).reduce((a,l)=>r[l]?go(a,r[l](i)):a,{});return n.propTypes=process.env.NODE_ENV!=="production"?e.reduce((i,a)=>Object.assign(i,a.propTypes),{}):{},n.filterProps=e.reduce((i,a)=>i.concat(a.filterProps),[]),n}function yt(e){return typeof e!="number"?e:`${e}px solid`}function St(e,r){return Ne({prop:e,themeKey:"borders",transform:r})}const hc=St("border",yt),gc=St("borderTop",yt),yc=St("borderRight",yt),bc=St("borderBottom",yt),vc=St("borderLeft",yt),Sc=St("borderColor"),Cc=St("borderTopColor"),jc=St("borderRightColor"),wc=St("borderBottomColor"),kc=St("borderLeftColor"),Tc=St("outline",yt),Bc=St("outlineColor"),sn=e=>{if(e.borderRadius!==void 0&&e.borderRadius!==null){const r=vo(e.theme,"shape.borderRadius",4,"borderRadius"),n=i=>({borderRadius:So(r,i)});return Kt(e,e.borderRadius,n)}return null};sn.propTypes=process.env.NODE_ENV!=="production"?{borderRadius:pr}:{};sn.filterProps=["borderRadius"];nn(hc,gc,yc,bc,vc,Sc,Cc,jc,wc,kc,sn,Tc,Bc);const an=e=>{if(e.gap!==void 0&&e.gap!==null){const r=vo(e.theme,"spacing",8,"gap"),n=i=>({gap:So(r,i)});return Kt(e,e.gap,n)}return null};an.propTypes=process.env.NODE_ENV!=="production"?{gap:pr}:{};an.filterProps=["gap"];const ln=e=>{if(e.columnGap!==void 0&&e.columnGap!==null){const r=vo(e.theme,"spacing",8,"columnGap"),n=i=>({columnGap:So(r,i)});return Kt(e,e.columnGap,n)}return null};ln.propTypes=process.env.NODE_ENV!=="production"?{columnGap:pr}:{};ln.filterProps=["columnGap"];const cn=e=>{if(e.rowGap!==void 0&&e.rowGap!==null){const r=vo(e.theme,"spacing",8,"rowGap"),n=i=>({rowGap:So(r,i)});return Kt(e,e.rowGap,n)}return null};cn.propTypes=process.env.NODE_ENV!=="production"?{rowGap:pr}:{};cn.filterProps=["rowGap"];const Ic=Ne({prop:"gridColumn"}),zc=Ne({prop:"gridRow"}),Ec=Ne({prop:"gridAutoFlow"}),Dc=Ne({prop:"gridAutoColumns"}),$c=Ne({prop:"gridAutoRows"}),Oc=Ne({prop:"gridTemplateColumns"}),_c=Ne({prop:"gridTemplateRows"}),Mc=Ne({prop:"gridTemplateAreas"}),Ac=Ne({prop:"gridArea"});nn(an,ln,cn,Ic,zc,Ec,Dc,$c,Oc,_c,Mc,Ac);function Xr(e,r){return r==="grey"?r:e}const Rc=Ne({prop:"color",themeKey:"palette",transform:Xr}),Wc=Ne({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:Xr}),Pc=Ne({prop:"backgroundColor",themeKey:"palette",transform:Xr});nn(Rc,Wc,Pc);function ct(e){return e<=1&&e!==0?`${e*100}%`:e}const Nc=Ne({prop:"width",transform:ct}),ai=e=>{if(e.maxWidth!==void 0&&e.maxWidth!==null){const r=n=>{var a,l,c,d,u;const i=((c=(l=(a=e.theme)==null?void 0:a.breakpoints)==null?void 0:l.values)==null?void 0:c[n])||en[n];return i?((u=(d=e.theme)==null?void 0:d.breakpoints)==null?void 0:u.unit)!=="px"?{maxWidth:`${i}${e.theme.breakpoints.unit}`}:{maxWidth:i}:{maxWidth:ct(n)}};return Kt(e,e.maxWidth,r)}return null};ai.filterProps=["maxWidth"];const Lc=Ne({prop:"minWidth",transform:ct}),Fc=Ne({prop:"height",transform:ct}),Vc=Ne({prop:"maxHeight",transform:ct}),Hc=Ne({prop:"minHeight",transform:ct});Ne({prop:"size",cssProperty:"width",transform:ct});Ne({prop:"size",cssProperty:"height",transform:ct});const Uc=Ne({prop:"boxSizing"});nn(Nc,ai,Lc,Fc,Vc,Hc,Uc);const dn={border:{themeKey:"borders",transform:yt},borderTop:{themeKey:"borders",transform:yt},borderRight:{themeKey:"borders",transform:yt},borderBottom:{themeKey:"borders",transform:yt},borderLeft:{themeKey:"borders",transform:yt},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:yt},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:sn},color:{themeKey:"palette",transform:Xr},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:Xr},backgroundColor:{themeKey:"palette",transform:Xr},p:{style:We},pt:{style:We},pr:{style:We},pb:{style:We},pl:{style:We},px:{style:We},py:{style:We},padding:{style:We},paddingTop:{style:We},paddingRight:{style:We},paddingBottom:{style:We},paddingLeft:{style:We},paddingX:{style:We},paddingY:{style:We},paddingInline:{style:We},paddingInlineStart:{style:We},paddingInlineEnd:{style:We},paddingBlock:{style:We},paddingBlockStart:{style:We},paddingBlockEnd:{style:We},m:{style:Re},mt:{style:Re},mr:{style:Re},mb:{style:Re},ml:{style:Re},mx:{style:Re},my:{style:Re},margin:{style:Re},marginTop:{style:Re},marginRight:{style:Re},marginBottom:{style:Re},marginLeft:{style:Re},marginX:{style:Re},marginY:{style:Re},marginInline:{style:Re},marginInlineStart:{style:Re},marginInlineEnd:{style:Re},marginBlock:{style:Re},marginBlockStart:{style:Re},marginBlockEnd:{style:Re},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:an},rowGap:{style:cn},columnGap:{style:ln},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:ct},maxWidth:{style:ai},minWidth:{transform:ct},height:{transform:ct},maxHeight:{transform:ct},minHeight:{transform:ct},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}};function Gc(...e){const r=e.reduce((i,a)=>i.concat(Object.keys(a)),[]),n=new Set(r);return e.every(i=>n.size===Object.keys(i).length)}function Yc(e,r){return typeof e=="function"?e(r):e}function qc(){function e(n,i,a,l){const c={[n]:i,theme:a},d=l[n];if(!d)return{[n]:i};const{cssProperty:u=n,themeKey:h,transform:g,style:f}=d;if(i==null)return null;if(h==="typography"&&i==="inherit")return{[n]:i};const b=tn(a,h)||{};return f?f(c):Kt(c,i,k=>{let v=Jo(b,g,k);return k===v&&typeof k=="string"&&(v=Jo(b,g,`${n}${k==="default"?"":As(k)}`,k)),u===!1?v:{[u]:v}})}function r(n){const{sx:i,theme:a={},nested:l}=n||{};if(!i)return null;const c=a.unstable_sxConfig??dn;function d(u){let h=u;if(typeof u=="function")h=u(a);else if(typeof u!="object")return u;if(!h)return null;const g=lc(a.breakpoints),f=Object.keys(g);let b=g;return Object.keys(h).forEach(y=>{const k=Yc(h[y],a);if(k!=null)if(typeof k=="object")if(c[y])b=go(b,e(y,k,a,c));else{const v=Kt({theme:a},k,m=>({[y]:m}));Gc(v,k)?b[y]=r({sx:k,theme:a,nested:!0}):b=go(b,v)}else b=go(b,e(y,k,a,c))}),!l&&a.modularCssLayers?{"@layer sx":Fi(a,Hi(f,b))}:Fi(a,Hi(f,b))}return Array.isArray(i)?i.map(d):d(i)}return r}const un=qc();un.filterProps=["sx"];function Jc(e,r){var i;const n=this;if(n.vars){if(!((i=n.colorSchemes)!=null&&i[e])||typeof n.getColorSchemeSelector!="function")return{};let a=n.getColorSchemeSelector(e);return a==="&"?r:((a.includes("data-")||a.includes("."))&&(a=`*:where(${a.replace(/\s*&$/,"")}) &`),{[a]:r})}return n.palette.mode===e?r:{}}function Ps(e={},...r){const{breakpoints:n={},palette:i={},spacing:a,shape:l={},...c}=e,d=rc(n),u=Ws(a);let h=ut({breakpoints:d,direction:"ltr",components:{},palette:{mode:"light",...i},spacing:u,shape:{...sc,...l}},c);return h=ic(h),h.applyStyles=Jc,h=r.reduce((g,f)=>ut(g,f),h),h.unstable_sxConfig={...dn,...c==null?void 0:c.unstable_sxConfig},h.unstable_sx=function(f){return un({sx:f,theme:this})},h}function Kc(e){return Object.keys(e).length===0}function Xc(e=null){const r=Xo.useContext(ma.ThemeContext);return!r||Kc(r)?e:r}const Qc=Ps();function Zc(e=Qc){return Xc(e)}const Gi=e=>e,ed=()=>{let e=Gi;return{configure(r){e=r},generate(r){return e(r)},reset(){e=Gi}}},td=ed(),rd={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function od(e,r,n="Mui"){const i=rd[r];return i?`${n}-${i}`:`${td.generate(e)}-${r}`}function nd(e,r=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(r,Math.min(e,n))}function li(e,r=0,n=1){return process.env.NODE_ENV!=="production"&&(e<r||e>n)&&console.error(`MUI: The value provided ${e} is out of range [${r}, ${n}].`),nd(e,r,n)}function id(e){e=e.slice(1);const r=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let n=e.match(r);return n&&n[0].length===1&&(n=n.map(i=>i+i)),process.env.NODE_ENV!=="production"&&e.length!==e.trim().length&&console.error(`MUI: The color: "${e}" is invalid. Make sure the color input doesn't contain leading/trailing space.`),n?`rgb${n.length===4?"a":""}(${n.map((i,a)=>a<3?parseInt(i,16):Math.round(parseInt(i,16)/255*1e3)/1e3).join(", ")})`:""}function ur(e){if(e.type)return e;if(e.charAt(0)==="#")return ur(id(e));const r=e.indexOf("("),n=e.substring(0,r);if(!["rgb","rgba","hsl","hsla","color"].includes(n))throw new Error(process.env.NODE_ENV!=="production"?`MUI: Unsupported \`${e}\` color.
|
|
43
|
+
The following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().`:jr(9,e));let i=e.substring(r+1,e.length-1),a;if(n==="color"){if(i=i.split(" "),a=i.shift(),i.length===4&&i[3].charAt(0)==="/"&&(i[3]=i[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(a))throw new Error(process.env.NODE_ENV!=="production"?`MUI: unsupported \`${a}\` color space.
|
|
44
|
+
The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.`:jr(10,a))}else i=i.split(",");return i=i.map(l=>parseFloat(l)),{type:n,values:i,colorSpace:a}}const sd=e=>{const r=ur(e);return r.values.slice(0,3).map((n,i)=>r.type.includes("hsl")&&i!==0?`${n}%`:n).join(" ")},mo=(e,r)=>{try{return sd(e)}catch{return r&&process.env.NODE_ENV!=="production"&&console.warn(r),e}};function pn(e){const{type:r,colorSpace:n}=e;let{values:i}=e;return r.includes("rgb")?i=i.map((a,l)=>l<3?parseInt(a,10):a):r.includes("hsl")&&(i[1]=`${i[1]}%`,i[2]=`${i[2]}%`),r.includes("color")?i=`${n} ${i.join(" ")}`:i=`${i.join(", ")}`,`${r}(${i})`}function Ns(e){e=ur(e);const{values:r}=e,n=r[0],i=r[1]/100,a=r[2]/100,l=i*Math.min(a,1-a),c=(h,g=(h+n/30)%12)=>a-l*Math.max(Math.min(g-3,9-g,1),-1);let d="rgb";const u=[Math.round(c(0)*255),Math.round(c(8)*255),Math.round(c(4)*255)];return e.type==="hsla"&&(d+="a",u.push(r[3])),pn({type:d,values:u})}function Gn(e){e=ur(e);let r=e.type==="hsl"||e.type==="hsla"?ur(Ns(e)).values:e.values;return r=r.map(n=>(e.type!=="color"&&(n/=255),n<=.03928?n/12.92:((n+.055)/1.055)**2.4)),Number((.2126*r[0]+.7152*r[1]+.0722*r[2]).toFixed(3))}function Yi(e,r){const n=Gn(e),i=Gn(r);return(Math.max(n,i)+.05)/(Math.min(n,i)+.05)}function $(e,r){return e=ur(e),r=li(r),(e.type==="rgb"||e.type==="hsl")&&(e.type+="a"),e.type==="color"?e.values[3]=`/${r}`:e.values[3]=r,pn(e)}function Sr(e,r,n){try{return $(e,r)}catch{return n&&process.env.NODE_ENV!=="production"&&console.warn(n),e}}function xn(e,r){if(e=ur(e),r=li(r),e.type.includes("hsl"))e.values[2]*=1-r;else if(e.type.includes("rgb")||e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]*=1-r;return pn(e)}function Be(e,r,n){try{return xn(e,r)}catch{return n&&process.env.NODE_ENV!=="production"&&console.warn(n),e}}function mn(e,r){if(e=ur(e),r=li(r),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*r;else if(e.type.includes("rgb"))for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*r;else if(e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*r;return pn(e)}function Ie(e,r,n){try{return mn(e,r)}catch{return n&&process.env.NODE_ENV!=="production"&&console.warn(n),e}}function ad(e,r=.15){return Gn(e)>.5?xn(e,r):mn(e,r)}function Ao(e,r,n){try{return ad(e,r)}catch{return e}}function ld(e=""){function r(...i){if(!i.length)return"";const a=i[0];return typeof a=="string"&&!a.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, var(--${e?`${e}-`:""}${a}${r(...i.slice(1))})`:`, ${a}`}return(i,...a)=>`var(--${e?`${e}-`:""}${i}${r(...a)})`}const qi=(e,r,n,i=[])=>{let a=e;r.forEach((l,c)=>{c===r.length-1?Array.isArray(a)?a[Number(l)]=n:a&&typeof a=="object"&&(a[l]=n):a&&typeof a=="object"&&(a[l]||(a[l]=i.includes(l)?[]:{}),a=a[l])})},cd=(e,r,n)=>{function i(a,l=[],c=[]){Object.entries(a).forEach(([d,u])=>{(!n||n&&!n([...l,d]))&&u!=null&&(typeof u=="object"&&Object.keys(u).length>0?i(u,[...l,d],Array.isArray(u)?[...c,d]:c):r([...l,d],u,c))})}i(e)},dd=(e,r)=>typeof r=="number"?["lineHeight","fontWeight","opacity","zIndex"].some(i=>e.includes(i))||e[e.length-1].toLowerCase().includes("opacity")?r:`${r}px`:r;function Nn(e,r){const{prefix:n,shouldSkipGeneratingVar:i}=r||{},a={},l={},c={};return cd(e,(d,u,h)=>{if((typeof u=="string"||typeof u=="number")&&(!i||!i(d,u))){const g=`--${n?`${n}-`:""}${d.join("-")}`,f=dd(d,u);Object.assign(a,{[g]:f}),qi(l,d,`var(${g})`,h),qi(c,d,`var(${g}, ${f})`,h)}},d=>d[0]==="vars"),{css:a,vars:l,varsWithDefaults:c}}function ud(e,r={}){const{getSelector:n=T,disableCssColorScheme:i,colorSchemeSelector:a,enableContrastVars:l}=r,{colorSchemes:c={},components:d,defaultColorScheme:u="light",...h}=e,{vars:g,css:f,varsWithDefaults:b}=Nn(h,r);let y=b;const k={},{[u]:v,...m}=c;if(Object.entries(m||{}).forEach(([B,w])=>{const{vars:R,css:j,varsWithDefaults:M}=Nn(w,r);y=ut(y,M),k[B]={css:j,vars:R}}),v){const{css:B,vars:w,varsWithDefaults:R}=Nn(v,r);y=ut(y,R),k[u]={css:B,vars:w}}function T(B,w){var j,M;let R=a;if(a==="class"&&(R=".%s"),a==="data"&&(R="[data-%s]"),a!=null&&a.startsWith("data-")&&!a.includes("%s")&&(R=`[${a}="%s"]`),B){if(R==="media")return e.defaultColorScheme===B?":root":{[`@media (prefers-color-scheme: ${((M=(j=c[B])==null?void 0:j.palette)==null?void 0:M.mode)||B})`]:{":root":w}};if(R)return e.defaultColorScheme===B?`:root, ${R.replace("%s",String(B))}`:R.replace("%s",String(B))}return":root"}return{vars:y,generateThemeVars:()=>{let B={...g};return Object.entries(k).forEach(([,{vars:w}])=>{B=ut(B,w)}),B},generateStyleSheets:()=>{var A,q;const B=[],w=e.defaultColorScheme||"light";function R(te,s){Object.keys(s).length&&B.push(typeof te=="string"?{[te]:{...s}}:te)}R(n(void 0,{...f}),f);const{[w]:j,...M}=k;if(j){const{css:te}=j,s=(q=(A=c[w])==null?void 0:A.palette)==null?void 0:q.mode,N=!i&&s?{colorScheme:s,...te}:{...te};R(n(w,{...N}),N)}return Object.entries(M).forEach(([te,{css:s}])=>{var re,le;const N=(le=(re=c[te])==null?void 0:re.palette)==null?void 0:le.mode,L=!i&&N?{colorScheme:N,...s}:{...s};R(n(te,{...L}),L)}),l&&B.push({":root":{"--__l-threshold":"0.7","--__l":"clamp(0, (l / var(--__l-threshold) - 1) * -infinity, 1)","--__a":"clamp(0.87, (l / var(--__l-threshold) - 1) * -infinity, 1)"}}),B}}}function pd(e){return function(n){return e==="media"?(process.env.NODE_ENV!=="production"&&n!=="light"&&n!=="dark"&&console.error(`MUI: @media (prefers-color-scheme) supports only 'light' or 'dark', but receive '${n}'.`),`@media (prefers-color-scheme: ${n})`):e?e.startsWith("data-")&&!e.includes("%s")?`[${e}="${n}"] &`:e==="class"?`.${n} &`:e==="data"?`[data-${n}] &`:`${e.replace("%s",n)} &`:"&"}}const bo={black:"#000",white:"#fff"},xd={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},Gr={50:"#f3e5f5",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",700:"#7b1fa2"},Yr={300:"#e57373",400:"#ef5350",500:"#f44336",700:"#d32f2f",800:"#c62828"},co={300:"#ffb74d",400:"#ffa726",500:"#ff9800",700:"#f57c00",900:"#e65100"},qr={50:"#e3f2fd",200:"#90caf9",400:"#42a5f5",700:"#1976d2",800:"#1565c0"},Jr={300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",700:"#0288d1",900:"#01579b"},Kr={300:"#81c784",400:"#66bb6a",500:"#4caf50",700:"#388e3c",800:"#2e7d32",900:"#1b5e20"};function Ls(){return{text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:bo.white,default:bo.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}}}const Fs=Ls();function Vs(){return{text:{primary:bo.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:bo.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}}}const Yn=Vs();function Ji(e,r,n,i){const a=i.light||i,l=i.dark||i*1.5;e[r]||(e.hasOwnProperty(n)?e[r]=e[n]:r==="light"?e.light=mn(e.main,a):r==="dark"&&(e.dark=xn(e.main,l)))}function Ki(e,r,n,i,a){const l=a.light||a,c=a.dark||a*1.5;r[n]||(r.hasOwnProperty(i)?r[n]=r[i]:n==="light"?r.light=`color-mix(in ${e}, ${r.main}, #fff ${(l*100).toFixed(0)}%)`:n==="dark"&&(r.dark=`color-mix(in ${e}, ${r.main}, #000 ${(c*100).toFixed(0)}%)`))}function md(e="light"){return e==="dark"?{main:qr[200],light:qr[50],dark:qr[400]}:{main:qr[700],light:qr[400],dark:qr[800]}}function fd(e="light"){return e==="dark"?{main:Gr[200],light:Gr[50],dark:Gr[400]}:{main:Gr[500],light:Gr[300],dark:Gr[700]}}function hd(e="light"){return e==="dark"?{main:Yr[500],light:Yr[300],dark:Yr[700]}:{main:Yr[700],light:Yr[400],dark:Yr[800]}}function gd(e="light"){return e==="dark"?{main:Jr[400],light:Jr[300],dark:Jr[700]}:{main:Jr[700],light:Jr[500],dark:Jr[900]}}function yd(e="light"){return e==="dark"?{main:Kr[400],light:Kr[300],dark:Kr[700]}:{main:Kr[800],light:Kr[500],dark:Kr[900]}}function bd(e="light"){return e==="dark"?{main:co[400],light:co[300],dark:co[700]}:{main:"#ed6c02",light:co[500],dark:co[900]}}function vd(e){return`oklch(from ${e} var(--__l) 0 h / var(--__a))`}function ci(e){const{mode:r="light",contrastThreshold:n=3,tonalOffset:i=.2,colorSpace:a,...l}=e,c=e.primary||md(r),d=e.secondary||fd(r),u=e.error||hd(r),h=e.info||gd(r),g=e.success||yd(r),f=e.warning||bd(r);function b(m){if(a)return vd(m);const T=Yi(m,Yn.text.primary)>=n?Yn.text.primary:Fs.text.primary;if(process.env.NODE_ENV!=="production"){const x=Yi(m,T);x<3&&console.error([`MUI: The contrast ratio of ${x}:1 for ${T} on ${m}`,"falls below the WCAG recommended absolute minimum contrast ratio of 3:1.","https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast"].join(`
|
|
45
|
+
`))}return T}const y=({color:m,name:T,mainShade:x=500,lightShade:z=300,darkShade:B=700})=>{if(m={...m},!m.main&&m[x]&&(m.main=m[x]),!m.hasOwnProperty("main"))throw new Error(process.env.NODE_ENV!=="production"?`MUI: The color${T?` (${T})`:""} provided to augmentColor(color) is invalid.
|
|
46
|
+
The color object needs to have a \`main\` property or a \`${x}\` property.`:jr(11,T?` (${T})`:"",x));if(typeof m.main!="string")throw new Error(process.env.NODE_ENV!=="production"?`MUI: The color${T?` (${T})`:""} provided to augmentColor(color) is invalid.
|
|
47
47
|
\`color.main\` should be a string, but \`${JSON.stringify(m.main)}\` was provided instead.
|
|
48
48
|
|
|
49
49
|
Did you intend to use one of the following approaches?
|
|
@@ -56,17 +56,17 @@ const theme1 = createTheme({ palette: {
|
|
|
56
56
|
|
|
57
57
|
const theme2 = createTheme({ palette: {
|
|
58
58
|
primary: { main: green[500] },
|
|
59
|
-
} });`:
|
|
60
|
-
`)),Object.keys(
|
|
59
|
+
} });`:jr(12,T?` (${T})`:"",JSON.stringify(m.main)));return a?(Ki(a,m,"light",z,i),Ki(a,m,"dark",B,i)):(Ji(m,"light",z,i),Ji(m,"dark",B,i)),m.contrastText||(m.contrastText=b(m.main)),m};let k;return r==="light"?k=Ls():r==="dark"&&(k=Vs()),process.env.NODE_ENV!=="production"&&(k||console.error(`MUI: The palette mode \`${r}\` is not supported.`)),ut({common:{...bo},mode:r,primary:y({color:c,name:"primary"}),secondary:y({color:d,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:y({color:u,name:"error"}),warning:y({color:f,name:"warning"}),info:y({color:h,name:"info"}),success:y({color:g,name:"success"}),grey:xd,contrastThreshold:n,getContrastText:b,augmentColor:y,tonalOffset:i,...k},l)}function Sd(e){const r={};return Object.entries(e).forEach(i=>{const[a,l]=i;typeof l=="object"&&(r[a]=`${l.fontStyle?`${l.fontStyle} `:""}${l.fontVariant?`${l.fontVariant} `:""}${l.fontWeight?`${l.fontWeight} `:""}${l.fontStretch?`${l.fontStretch} `:""}${l.fontSize||""}${l.lineHeight?`/${l.lineHeight} `:""}${l.fontFamily||""}`)}),r}function Cd(e,r){return{toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}},...r}}function jd(e){return Math.round(e*1e5)/1e5}const Xi={textTransform:"uppercase"},Qi='"Roboto", "Helvetica", "Arial", sans-serif';function wd(e,r){const{fontFamily:n=Qi,fontSize:i=14,fontWeightLight:a=300,fontWeightRegular:l=400,fontWeightMedium:c=500,fontWeightBold:d=700,htmlFontSize:u=16,allVariants:h,pxToRem:g,...f}=typeof r=="function"?r(e):r;process.env.NODE_ENV!=="production"&&(typeof i!="number"&&console.error("MUI: `fontSize` is required to be a number."),typeof u!="number"&&console.error("MUI: `htmlFontSize` is required to be a number."));const b=i/14,y=g||(m=>`${m/u*b}rem`),k=(m,T,x,z,B)=>({fontFamily:n,fontWeight:m,fontSize:y(T),lineHeight:x,...n===Qi?{letterSpacing:`${jd(z/T)}em`}:{},...B,...h}),v={h1:k(a,96,1.167,-1.5),h2:k(a,60,1.2,-.5),h3:k(l,48,1.167,0),h4:k(l,34,1.235,.25),h5:k(l,24,1.334,0),h6:k(c,20,1.6,.15),subtitle1:k(l,16,1.75,.15),subtitle2:k(c,14,1.57,.1),body1:k(l,16,1.5,.15),body2:k(l,14,1.43,.15),button:k(c,14,1.75,.4,Xi),caption:k(l,12,1.66,.4),overline:k(l,12,2.66,1,Xi),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return ut({htmlFontSize:u,pxToRem:y,fontFamily:n,fontSize:i,fontWeightLight:a,fontWeightRegular:l,fontWeightMedium:c,fontWeightBold:d,...v},f,{clone:!1})}const kd=.2,Td=.14,Bd=.12;function Oe(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${kd})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${Td})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${Bd})`].join(",")}const Id=["none",Oe(0,2,1,-1,0,1,1,0,0,1,3,0),Oe(0,3,1,-2,0,2,2,0,0,1,5,0),Oe(0,3,3,-2,0,3,4,0,0,1,8,0),Oe(0,2,4,-1,0,4,5,0,0,1,10,0),Oe(0,3,5,-1,0,5,8,0,0,1,14,0),Oe(0,3,5,-1,0,6,10,0,0,1,18,0),Oe(0,4,5,-2,0,7,10,1,0,2,16,1),Oe(0,5,5,-3,0,8,10,1,0,3,14,2),Oe(0,5,6,-3,0,9,12,1,0,3,16,2),Oe(0,6,6,-3,0,10,14,1,0,4,18,3),Oe(0,6,7,-4,0,11,15,1,0,4,20,3),Oe(0,7,8,-4,0,12,17,2,0,5,22,4),Oe(0,7,8,-4,0,13,19,2,0,5,24,4),Oe(0,7,9,-4,0,14,21,2,0,5,26,4),Oe(0,8,9,-5,0,15,22,2,0,6,28,5),Oe(0,8,10,-5,0,16,24,2,0,6,30,5),Oe(0,8,11,-5,0,17,26,2,0,6,32,5),Oe(0,9,11,-5,0,18,28,2,0,7,34,6),Oe(0,9,12,-6,0,19,29,2,0,7,36,6),Oe(0,10,13,-6,0,20,31,3,0,8,38,7),Oe(0,10,13,-6,0,21,33,3,0,8,40,7),Oe(0,10,14,-6,0,22,35,3,0,8,42,7),Oe(0,11,14,-7,0,23,36,3,0,9,44,8),Oe(0,11,15,-7,0,24,38,3,0,9,46,8)],zd={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},Ed={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function Zi(e){return`${Math.round(e)}ms`}function Dd(e){if(!e)return 0;const r=e/36;return Math.min(Math.round((4+15*r**.25+r/5)*10),3e3)}function $d(e){const r={...zd,...e.easing},n={...Ed,...e.duration};return{getAutoHeightDuration:Dd,create:(a=["all"],l={})=>{const{duration:c=n.standard,easing:d=r.easeInOut,delay:u=0,...h}=l;if(process.env.NODE_ENV!=="production"){const g=b=>typeof b=="string",f=b=>!Number.isNaN(parseFloat(b));!g(a)&&!Array.isArray(a)&&console.error('MUI: Argument "props" must be a string or Array.'),!f(c)&&!g(c)&&console.error(`MUI: Argument "duration" must be a number or a string but found ${c}.`),g(d)||console.error('MUI: Argument "easing" must be a string.'),!f(u)&&!g(u)&&console.error('MUI: Argument "delay" must be a number or a string.'),typeof l!="object"&&console.error(["MUI: Secong argument of transition.create must be an object.","Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`"].join(`
|
|
60
|
+
`)),Object.keys(h).length!==0&&console.error(`MUI: Unrecognized argument(s) [${Object.keys(h).join(",")}].`)}return(Array.isArray(a)?a:[a]).map(g=>`${g} ${typeof c=="string"?c:Zi(c)} ${d} ${typeof u=="string"?u:Zi(u)}`).join(",")},...e,easing:r,duration:n}}const Od={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function _d(e){return cr(e)||typeof e>"u"||typeof e=="string"||typeof e=="boolean"||typeof e=="number"||Array.isArray(e)}function Hs(e={}){const r={...e};function n(i){const a=Object.entries(i);for(let l=0;l<a.length;l++){const[c,d]=a[l];!_d(d)||c.startsWith("unstable_")?delete i[c]:cr(d)&&(i[c]={...d},n(i[c]))}}return n(r),`import { unstable_createBreakpoints as createBreakpoints, createTransitions } from '@mui/material/styles';
|
|
61
61
|
|
|
62
62
|
const theme = ${JSON.stringify(r,null,2)};
|
|
63
63
|
|
|
64
64
|
theme.breakpoints = createBreakpoints(theme.breakpoints || {});
|
|
65
65
|
theme.transitions = createTransitions(theme.transitions || {});
|
|
66
66
|
|
|
67
|
-
export default theme;`}function
|
|
68
|
-
`))}m[
|
|
69
|
-
To suppress this warning, you need to explicitly provide the \`palette.${r}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function Nd(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}const _t=e=>{try{return e()}catch{}},Ld=(e="mui")=>nd(e);function En(e,r,n,i,s){if(!n)return;n=n===!0?{}:n;const l=s==="dark"?"dark":"light";if(!i){r[s]=Md({...n,palette:{mode:l,...n==null?void 0:n.palette},colorSpace:e});return}const{palette:a,...c}=Rn({...i,palette:{mode:l,...n==null?void 0:n.palette},colorSpace:e});return r[s]={...n,palette:a,opacity:{..._s(l),...n==null?void 0:n.opacity},overlays:(n==null?void 0:n.overlays)||Ms(l)},c}function Fd(e={},...r){const{colorSchemes:n={light:!0},defaultColorScheme:i,disableCssColorScheme:s=!1,cssVarPrefix:l="mui",nativeColor:a=!1,shouldSkipGeneratingVar:c=Ad,colorSchemeSelector:u=n.light&&n.dark?"media":void 0,rootSelector:g=":root",...y}=e,h=Object.keys(n)[0],v=i||(n.light&&h!=="light"?"light":h),S=Ld(l),{[v]:B,light:C,dark:m,...I}=n,f={...I};let O=B;if((v==="dark"&&!("dark"in n)||v==="light"&&!("light"in n))&&(O=!0),!O)throw new Error(process.env.NODE_ENV!=="production"?`MUI: The \`colorSchemes.${v}\` option is either missing or invalid.`:kr(21,v));let j;a&&(j="oklch");const w=En(j,f,O,y,v);C&&!f.light&&En(j,f,C,void 0,"light"),m&&!f.dark&&En(j,f,m,void 0,"dark");let R={defaultColorScheme:v,...w,cssVarPrefix:l,colorSchemeSelector:u,rootSelector:g,getCssVar:S,colorSchemes:f,font:{...gd(w.typography),...w.font},spacing:Nd(y.spacing)};Object.keys(R.colorSchemes).forEach(ee=>{const p=R.colorSchemes[ee].palette,P=re=>{const ce=re.split("-"),J=ce[1],Z=ce[2];return S(re,p[J][Z])};p.mode==="light"&&(W(p.common,"background","#fff"),W(p.common,"onBackground","#000")),p.mode==="dark"&&(W(p.common,"background","#000"),W(p.common,"onBackground","#fff"));function F(re,ce,J){if(j){let Z;return re===jr&&(Z=`transparent ${((1-J)*100).toFixed(0)}%`),re===we&&(Z=`#000 ${(J*100).toFixed(0)}%`),re===ke&&(Z=`#fff ${(J*100).toFixed(0)}%`),`color-mix(in ${j}, ${ce}, ${Z})`}return re(ce,J)}if(Pd(p,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),p.mode==="light"){W(p.Alert,"errorColor",F(we,p.error.light,.6)),W(p.Alert,"infoColor",F(we,p.info.light,.6)),W(p.Alert,"successColor",F(we,p.success.light,.6)),W(p.Alert,"warningColor",F(we,p.warning.light,.6)),W(p.Alert,"errorFilledBg",P("palette-error-main")),W(p.Alert,"infoFilledBg",P("palette-info-main")),W(p.Alert,"successFilledBg",P("palette-success-main")),W(p.Alert,"warningFilledBg",P("palette-warning-main")),W(p.Alert,"errorFilledColor",_t(()=>p.getContrastText(p.error.main))),W(p.Alert,"infoFilledColor",_t(()=>p.getContrastText(p.info.main))),W(p.Alert,"successFilledColor",_t(()=>p.getContrastText(p.success.main))),W(p.Alert,"warningFilledColor",_t(()=>p.getContrastText(p.warning.main))),W(p.Alert,"errorStandardBg",F(ke,p.error.light,.9)),W(p.Alert,"infoStandardBg",F(ke,p.info.light,.9)),W(p.Alert,"successStandardBg",F(ke,p.success.light,.9)),W(p.Alert,"warningStandardBg",F(ke,p.warning.light,.9)),W(p.Alert,"errorIconColor",P("palette-error-main")),W(p.Alert,"infoIconColor",P("palette-info-main")),W(p.Alert,"successIconColor",P("palette-success-main")),W(p.Alert,"warningIconColor",P("palette-warning-main")),W(p.AppBar,"defaultBg",P("palette-grey-100")),W(p.Avatar,"defaultBg",P("palette-grey-400")),W(p.Button,"inheritContainedBg",P("palette-grey-300")),W(p.Button,"inheritContainedHoverBg",P("palette-grey-A100")),W(p.Chip,"defaultBorder",P("palette-grey-400")),W(p.Chip,"defaultAvatarColor",P("palette-grey-700")),W(p.Chip,"defaultIconColor",P("palette-grey-700")),W(p.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),W(p.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),W(p.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),W(p.LinearProgress,"primaryBg",F(ke,p.primary.main,.62)),W(p.LinearProgress,"secondaryBg",F(ke,p.secondary.main,.62)),W(p.LinearProgress,"errorBg",F(ke,p.error.main,.62)),W(p.LinearProgress,"infoBg",F(ke,p.info.main,.62)),W(p.LinearProgress,"successBg",F(ke,p.success.main,.62)),W(p.LinearProgress,"warningBg",F(ke,p.warning.main,.62)),W(p.Skeleton,"bg",j?F(jr,p.text.primary,.11):`rgba(${P("palette-text-primaryChannel")} / 0.11)`),W(p.Slider,"primaryTrack",F(ke,p.primary.main,.62)),W(p.Slider,"secondaryTrack",F(ke,p.secondary.main,.62)),W(p.Slider,"errorTrack",F(ke,p.error.main,.62)),W(p.Slider,"infoTrack",F(ke,p.info.main,.62)),W(p.Slider,"successTrack",F(ke,p.success.main,.62)),W(p.Slider,"warningTrack",F(ke,p.warning.main,.62));const re=j?F(we,p.background.default,.6825):Io(p.background.default,.8);W(p.SnackbarContent,"bg",re),W(p.SnackbarContent,"color",_t(()=>j?An.text.primary:p.getContrastText(re))),W(p.SpeedDialAction,"fabHoverBg",Io(p.background.paper,.15)),W(p.StepConnector,"border",P("palette-grey-400")),W(p.StepContent,"border",P("palette-grey-400")),W(p.Switch,"defaultColor",P("palette-common-white")),W(p.Switch,"defaultDisabledColor",P("palette-grey-100")),W(p.Switch,"primaryDisabledColor",F(ke,p.primary.main,.62)),W(p.Switch,"secondaryDisabledColor",F(ke,p.secondary.main,.62)),W(p.Switch,"errorDisabledColor",F(ke,p.error.main,.62)),W(p.Switch,"infoDisabledColor",F(ke,p.info.main,.62)),W(p.Switch,"successDisabledColor",F(ke,p.success.main,.62)),W(p.Switch,"warningDisabledColor",F(ke,p.warning.main,.62)),W(p.TableCell,"border",F(ke,F(jr,p.divider,1),.88)),W(p.Tooltip,"bg",F(jr,p.grey[700],.92))}if(p.mode==="dark"){W(p.Alert,"errorColor",F(ke,p.error.light,.6)),W(p.Alert,"infoColor",F(ke,p.info.light,.6)),W(p.Alert,"successColor",F(ke,p.success.light,.6)),W(p.Alert,"warningColor",F(ke,p.warning.light,.6)),W(p.Alert,"errorFilledBg",P("palette-error-dark")),W(p.Alert,"infoFilledBg",P("palette-info-dark")),W(p.Alert,"successFilledBg",P("palette-success-dark")),W(p.Alert,"warningFilledBg",P("palette-warning-dark")),W(p.Alert,"errorFilledColor",_t(()=>p.getContrastText(p.error.dark))),W(p.Alert,"infoFilledColor",_t(()=>p.getContrastText(p.info.dark))),W(p.Alert,"successFilledColor",_t(()=>p.getContrastText(p.success.dark))),W(p.Alert,"warningFilledColor",_t(()=>p.getContrastText(p.warning.dark))),W(p.Alert,"errorStandardBg",F(we,p.error.light,.9)),W(p.Alert,"infoStandardBg",F(we,p.info.light,.9)),W(p.Alert,"successStandardBg",F(we,p.success.light,.9)),W(p.Alert,"warningStandardBg",F(we,p.warning.light,.9)),W(p.Alert,"errorIconColor",P("palette-error-main")),W(p.Alert,"infoIconColor",P("palette-info-main")),W(p.Alert,"successIconColor",P("palette-success-main")),W(p.Alert,"warningIconColor",P("palette-warning-main")),W(p.AppBar,"defaultBg",P("palette-grey-900")),W(p.AppBar,"darkBg",P("palette-background-paper")),W(p.AppBar,"darkColor",P("palette-text-primary")),W(p.Avatar,"defaultBg",P("palette-grey-600")),W(p.Button,"inheritContainedBg",P("palette-grey-800")),W(p.Button,"inheritContainedHoverBg",P("palette-grey-700")),W(p.Chip,"defaultBorder",P("palette-grey-700")),W(p.Chip,"defaultAvatarColor",P("palette-grey-300")),W(p.Chip,"defaultIconColor",P("palette-grey-300")),W(p.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),W(p.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),W(p.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),W(p.LinearProgress,"primaryBg",F(we,p.primary.main,.5)),W(p.LinearProgress,"secondaryBg",F(we,p.secondary.main,.5)),W(p.LinearProgress,"errorBg",F(we,p.error.main,.5)),W(p.LinearProgress,"infoBg",F(we,p.info.main,.5)),W(p.LinearProgress,"successBg",F(we,p.success.main,.5)),W(p.LinearProgress,"warningBg",F(we,p.warning.main,.5)),W(p.Skeleton,"bg",j?F(jr,p.text.primary,.13):`rgba(${P("palette-text-primaryChannel")} / 0.13)`),W(p.Slider,"primaryTrack",F(we,p.primary.main,.5)),W(p.Slider,"secondaryTrack",F(we,p.secondary.main,.5)),W(p.Slider,"errorTrack",F(we,p.error.main,.5)),W(p.Slider,"infoTrack",F(we,p.info.main,.5)),W(p.Slider,"successTrack",F(we,p.success.main,.5)),W(p.Slider,"warningTrack",F(we,p.warning.main,.5));const re=j?F(ke,p.background.default,.985):Io(p.background.default,.98);W(p.SnackbarContent,"bg",re),W(p.SnackbarContent,"color",_t(()=>j?Ds.text.primary:p.getContrastText(re))),W(p.SpeedDialAction,"fabHoverBg",Io(p.background.paper,.15)),W(p.StepConnector,"border",P("palette-grey-600")),W(p.StepContent,"border",P("palette-grey-600")),W(p.Switch,"defaultColor",P("palette-grey-300")),W(p.Switch,"defaultDisabledColor",P("palette-grey-600")),W(p.Switch,"primaryDisabledColor",F(we,p.primary.main,.55)),W(p.Switch,"secondaryDisabledColor",F(we,p.secondary.main,.55)),W(p.Switch,"errorDisabledColor",F(we,p.error.main,.55)),W(p.Switch,"infoDisabledColor",F(we,p.info.main,.55)),W(p.Switch,"successDisabledColor",F(we,p.success.main,.55)),W(p.Switch,"warningDisabledColor",F(we,p.warning.main,.55)),W(p.TableCell,"border",F(we,F(jr,p.divider,1),.68)),W(p.Tooltip,"bg",F(jr,p.grey[700],.92))}Gt(p.background,"default"),Gt(p.background,"paper"),Gt(p.common,"background"),Gt(p.common,"onBackground"),Gt(p,"divider"),Object.keys(p).forEach(re=>{const ce=p[re];re!=="tonalOffset"&&ce&&typeof ce=="object"&&(ce.main&&W(p[re],"mainChannel",so(ao(ce.main))),ce.light&&W(p[re],"lightChannel",so(ao(ce.light))),ce.dark&&W(p[re],"darkChannel",so(ao(ce.dark))),ce.contrastText&&W(p[re],"contrastTextChannel",so(ao(ce.contrastText))),re==="text"&&(Gt(p[re],"primary"),Gt(p[re],"secondary")),re==="action"&&(ce.active&&Gt(p[re],"active"),ce.selected&&Gt(p[re],"selected")))})}),R=r.reduce((ee,p)=>lt(ee,p),R);const b={prefix:l,disableCssColorScheme:s,shouldSkipGeneratingVar:c,getSelector:Wd(R),enableContrastVars:a},{vars:_,generateThemeVars:V,generateStyleSheets:d}=ad(R,b);return R.vars=_,Object.entries(R.colorSchemes[R.defaultColorScheme]).forEach(([ee,p])=>{R[ee]=p}),R.generateThemeVars=V,R.generateStyleSheets=d,R.generateSpacing=function(){return Bs(y.spacing,Jn(this))},R.getColorSchemeSelector=ld(u),R.spacing=R.generateSpacing(),R.shouldSkipGeneratingVar=c,R.unstable_sxConfig={...tn,...y==null?void 0:y.unstable_sxConfig},R.unstable_sx=function(p){return rn({sx:p,theme:this})},R.toRuntimeSource=Os,R}function Hi(e,r,n){e.colorSchemes&&n&&(e.colorSchemes[r]={...n!==!0&&n,palette:Qn({...n===!0?{}:n.palette,mode:r})})}function Vd(e={},...r){const{palette:n,cssVariables:i=!1,colorSchemes:s=n?void 0:{light:!0},defaultColorScheme:l=n==null?void 0:n.mode,...a}=e,c=l||"light",u=s==null?void 0:s[c],g={...s,...n?{[c]:{...typeof u!="boolean"&&u,palette:n}}:void 0};if(i===!1){if(!("colorSchemes"in e))return Rn(e,...r);let y=n;"palette"in e||g[c]&&(g[c]!==!0?y=g[c].palette:c==="dark"&&(y={mode:"dark"}));const h=Rn({...e,palette:y},...r);return h.defaultColorScheme=c,h.colorSchemes=g,h.palette.mode==="light"&&(h.colorSchemes.light={...g.light!==!0&&g.light,palette:h.palette},Hi(h,"dark",g.dark)),h.palette.mode==="dark"&&(h.colorSchemes.dark={...g.dark!==!0&&g.dark,palette:h.palette},Hi(h,"light",g.light)),h}return!n&&!("light"in g)&&c==="light"&&(g.light=!0),Fd({...a,colorSchemes:g,defaultColorScheme:c,...typeof i!="boolean"&&i},...r)}const Hd=Vd();function tt(){const e=Jc(Hd);return process.env.NODE_ENV!=="production"&&Vo.useDebugValue(e),e[Wl]||e}async function Ud(e,r,n){try{new URL(e)}catch{throw new Error("Please enter a valid URL")}const i={"Content-Type":"application/json"};r&&(i.Authorization=`Bearer ${r}`);const s=new AbortController,l=setTimeout(()=>s.abort(),3e4);let a;try{a=await fetch(e,{headers:i,signal:s.signal})}catch(g){throw clearTimeout(l),(g==null?void 0:g.name)==="AbortError"?new Error("Request timed out after 30 seconds"):new Error("Failed to fetch — check the URL and your network connection")}finally{clearTimeout(l)}if(a.status===401)throw new Error("Authentication failed (401) — check your API key");if(!a.ok)throw new Error(`API error ${a.status}: ${a.statusText}`);let c;try{c=await a.json()}catch{throw new Error("Response is not valid JSON")}let u;if(Array.isArray(c))u=c;else if(n&&c[n]&&Array.isArray(c[n]))u=c[n];else{const y=["data","results","items","records"].find(h=>c[h]&&Array.isArray(c[h]));if(y)u=c[y];else throw new Error("API response must be a JSON array, or specify the data path key.")}return{data:u,source:e,fetchedAt:new Date().toISOString()}}function Gd(e,r){return r.map(n=>`${n.x}px ${n.y}px ${n.blur}px ${n.spread}px ${$(e.palette.common.black,n.opacity)}`).join(", ")}const Yd={menu:[{x:0,y:8,blur:16,spread:4,opacity:.12},{x:0,y:4,blur:16,spread:0,opacity:.08},{x:0,y:0,blur:0,spread:1,opacity:.05}],restButton:[{x:0,y:1,blur:2,spread:0,opacity:.3},{x:0,y:1,blur:3,spread:1,opacity:.15}],restButtonLight:[{x:0,y:1,blur:2,spread:0,opacity:.1},{x:0,y:1,blur:3,spread:1,opacity:.05}],hoverButton:[{x:0,y:1,blur:3,spread:0,opacity:.3},{x:0,y:4,blur:8,spread:3,opacity:.15}],pressedButton:[{x:0,y:1,blur:2,spread:0,opacity:.3}],pressedButtonLight:[{x:0,y:1,blur:2,spread:0,opacity:.1}],small:[{x:0,y:2,blur:6,spread:0,opacity:.15}],cardRest:[{x:0,y:1,blur:3,spread:0,opacity:.08},{x:0,y:1,blur:2,spread:0,opacity:.06}],cardHover:[{x:0,y:4,blur:16,spread:0,opacity:.15},{x:0,y:1,blur:4,spread:0,opacity:.08}],popover:[{x:0,y:4,blur:20,spread:0,opacity:.15},{x:0,y:1,blur:6,spread:0,opacity:.1}],flatHover:[{x:0,y:1,blur:2,spread:0,opacity:.06}]};function me(e,r){return Gd(e,Yd[r])}function Ge(e){return`${Number(e.shape.borderRadius)*1.5}px`}function Jr(e){return`${Number(e.shape.borderRadius)}px`}function Ui(e){const r=e.tokens;return{containerPad:`${(r==null?void 0:r.containerPad)??16}px`,cardGap:`${(r==null?void 0:r.cardGap)??12}px`}}function At(e){const r=e.tokens;return{main:(r==null?void 0:r.highlight)||e.palette.primary.main,bg:(r==null?void 0:r.highlightSoft)||$(e.palette.primary.main,.12),hoverBg:(r==null?void 0:r.highlightBd)||$(e.palette.primary.main,.2)}}function se(e,r="menu"){const n=e.tokens;return{paper:{boxShadow:(n==null?void 0:n.cardBodyShadow)||me(e,r),border:n!=null&&n.cardBodyBorder&&n.cardBodyBorder!=="none"?n.cardBodyBorder:"none"},header:{backgroundColor:(n==null?void 0:n.cardHdrBg)||"transparent",borderBottom:(n==null?void 0:n.cardHdrBorder)||"none",boxShadow:(n==null?void 0:n.cardHdrAccent)||"none"}}}function qd({isOpen:e,onClose:r,onCreate:n,preloadedData:i,preloadedDataLabel:s}){const[l,a]=x.useState(""),[c,u]=x.useState(!1),[g,y]=x.useState(""),[h,v]=x.useState(null),[S,B]=x.useState(null),[C,m]=x.useState(!1),[I,f]=x.useState(""),O=x.useRef(null),[j,w]=x.useState("json"),[R,b]=x.useState(""),[_,V]=x.useState(""),[d,ee]=x.useState(""),[p,P]=x.useState("idle"),[F,re]=x.useState(""),[ce,J]=x.useState(null),[Z,ge]=x.useState(0),H=async E=>{if(f(""),!E.name.endsWith(".json")){f("Only .json files are allowed");return}const Q=10*1024*1024;if(E.size>Q){f("File size exceeds 10MB limit");return}try{const xe=await E.text();let ie;try{ie=JSON.parse(xe)}catch{f("Invalid JSON syntax — please check your file and try again");return}if(!Array.isArray(ie)){f("JSON must be an array of objects");return}if(ie.length===0){f("No data rows found in JSON file");return}v(E),B(ie)}catch{f("Network error — please try again")}},K=E=>{E.preventDefault();const Q=E.dataTransfer.files[0];Q&&H(Q)},ne=async()=>{if(R.trim()){P("loading"),re("");try{const E=await Ud(R.trim(),_.trim()||void 0,d.trim()||void 0);J(E.data),ge(E.data.length),P("ready")}catch(E){re((E==null?void 0:E.message)||"Connection failed"),P("error")}}},ae=()=>{if(!l.trim()){u(!0);return}const E=j==="api"?ce:i||S;E&&(n(l.trim(),g.trim(),E),G())},G=()=>{a(""),u(!1),y(""),v(null),B(null),f(""),w("json"),b(""),V(""),ee(""),P("idle"),re(""),J(null),ge(0),r()},te=i||S,oe=c&&!l.trim();return l.trim(),t.jsxs(t.Fragment,{children:[t.jsxs(o.Dialog,{open:e,onClose:G,maxWidth:"xs",fullWidth:!0,PaperProps:{sx:E=>({borderRadius:Ge(E),width:480,maxHeight:"min(720px, calc(100vh - 120px))",my:"auto",display:"flex",flexDirection:"column",...se(E).paper})},children:[t.jsxs(o.DialogTitle,{sx:E=>({display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2.5,fontWeight:500,fontSize:"1.125rem",color:"text.primary",letterSpacing:"-0.01em",...se(E).header}),children:["Create new report",t.jsx(o.IconButton,{onClick:G,size:"small",sx:{color:"text.secondary",borderRadius:1,"&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(z.Close,{sx:{fontSize:18}})})]}),t.jsx(o.DialogContent,{sx:{px:3,pt:2,pb:2,overflowY:"auto"},children:t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2,pt:2},children:[t.jsx(o.TextField,{label:"Report name",required:!0,fullWidth:!0,value:l,onChange:E=>{a(E.target.value),c&&E.target.value.trim()&&u(!1)},placeholder:"Enter report name",autoFocus:!0,error:oe,helperText:oe?"Report name is required":void 0,inputProps:{maxLength:255},sx:{"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:1,color:"text.primary"},"& .MuiInputLabel-root":{fontSize:"0.875rem",color:"text.secondary","&.Mui-focused":{color:"primary.main"}},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}}}}),t.jsx(o.TextField,{label:"Description (optional)",fullWidth:!0,multiline:!0,rows:2,value:g,onChange:E=>y(E.target.value),placeholder:"Add details about this report",inputProps:{maxLength:500},sx:{"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:1,color:"text.primary"},"& .MuiInputLabel-root":{fontSize:"0.875rem",color:"text.secondary","&.Mui-focused":{color:"primary.main"}},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}}}}),t.jsxs(o.Tabs,{value:j==="json"?0:1,onChange:(E,Q)=>{w(Q===0?"json":"api"),P("idle"),re("")},variant:"fullWidth",sx:{borderBottom:1,borderColor:"divider",minHeight:40},children:[t.jsx(o.Tab,{label:"Upload JSON",icon:t.jsx(z.Description,{fontSize:"small"}),iconPosition:"start",sx:{textTransform:"none",fontSize:"0.875rem",fontWeight:500,minHeight:40,py:.5}}),t.jsx(o.Tab,{label:"Connect API",icon:t.jsx(z.Api,{fontSize:"small"}),iconPosition:"start",sx:{textTransform:"none",fontSize:"0.875rem",fontWeight:500,minHeight:40,py:.5}})]}),j==="json"&&t.jsx(o.Box,{children:i?t.jsxs(o.Box,{sx:{border:"1.5px solid",borderColor:"success.main",borderRadius:2,p:2.5,bgcolor:E=>$(E.palette.success.main,.04),display:"flex",alignItems:"center",gap:2},children:[t.jsx(o.Box,{sx:{width:36,height:36,borderRadius:"50%",bgcolor:E=>$(E.palette.success.main,.12),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:t.jsx(z.CheckCircle,{sx:{fontSize:20,color:"success.main"}})}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,color:"success.dark",fontSize:"0.875rem"},children:s||`${i.length.toLocaleString()} records loaded`}),t.jsx(o.Typography,{variant:"caption",sx:{color:"text.secondary"},children:"Data source is connected — ready to create"})]})]}):t.jsxs(t.Fragment,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75,mb:1.25},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,fontSize:"0.875rem",color:"text.primary"},children:"Data source"}),t.jsx(o.IconButton,{size:"small",onClick:()=>m(!0),sx:{p:.25,color:"text.secondary","&:hover":{bgcolor:"action.hover"}},children:t.jsx(z.Info,{sx:{fontSize:16}})})]}),t.jsxs(o.Box,{onDrop:K,onDragOver:E=>E.preventDefault(),onPaste:E=>E.preventDefault(),onClick:()=>{var E;return(E=O.current)==null?void 0:E.click()},sx:{position:"relative",border:"1.5px",borderStyle:S?"solid":"dashed",borderColor:S?"success.main":I?"error.main":"primary.main",borderRadius:2,p:3,textAlign:"center",cursor:"pointer",bgcolor:S?E=>$(E.palette.success.main,.04):I?E=>$(E.palette.error.main,.04):E=>$(E.palette.primary.main,.04),transition:"all 0.2s cubic-bezier(0.4, 0, 0.2, 1)","&:hover":{bgcolor:S?E=>$(E.palette.success.main,.08):I?E=>$(E.palette.error.main,.08):E=>$(E.palette.primary.main,.08),borderColor:S?"success.dark":I?"error.dark":"primary.dark"}},children:[t.jsx(o.Box,{component:"input",ref:O,type:"file",accept:".json",sx:{display:"none"},onChange:E=>{var Q;return((Q=E.target.files)==null?void 0:Q[0])&&H(E.target.files[0])}}),S?t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:.75,animation:"fadeIn 0.2s ease-in","@keyframes fadeIn":{from:{opacity:0,transform:"scale(0.98)"},to:{opacity:1,transform:"scale(1)"}}},children:[t.jsx(o.Box,{sx:{width:40,height:40,borderRadius:"50%",bgcolor:E=>$(E.palette.success.main,.1),display:"flex",alignItems:"center",justifyContent:"center",mb:.5},children:t.jsx(z.CheckCircle,{sx:{fontSize:24,color:"success.main"}})}),t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,color:"success.main",fontSize:"0.875rem"},children:h==null?void 0:h.name}),t.jsx(o.Typography,{variant:"caption",sx:{color:"success.dark",fontSize:"0.75rem"},children:"Ready to create"})]}):t.jsxs(o.Box,{children:[t.jsx(o.Box,{sx:{width:48,height:48,borderRadius:"50%",bgcolor:E=>$(E.palette.primary.main,.1),display:"flex",alignItems:"center",justifyContent:"center",mx:"auto",mb:1.5},children:t.jsx(z.CloudUpload,{sx:{fontSize:28,color:"primary.main"}})}),t.jsx(o.Typography,{variant:"body2",sx:{color:"text.primary",fontSize:"0.875rem",fontWeight:500,mb:.25},children:"Upload JSON file"}),t.jsx(o.Typography,{variant:"caption",sx:{color:"text.secondary",fontSize:"0.75rem",display:"block"},children:"Click to browse or drag and drop"}),I&&t.jsx(o.Box,{sx:{mt:1.25,p:.75,borderRadius:1,bgcolor:E=>$(E.palette.error.main,.08),border:1,borderColor:E=>$(E.palette.error.main,.2)},children:t.jsx(o.Typography,{variant:"caption",sx:{color:"error.main",fontSize:"0.6875rem",fontWeight:500},children:I})})]})]})]})}),j==="api"&&t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2},children:[t.jsx(o.TextField,{label:"API Endpoint URL",required:!0,fullWidth:!0,size:"small",value:R,onChange:E=>{b(E.target.value),P("idle")},placeholder:"http://localhost:8000/api/reports/sales-pipeline/data/flat",sx:{"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:1,color:"text.primary"},"& .MuiInputLabel-root":{fontSize:"0.875rem",color:"text.secondary","&.Mui-focused":{color:"primary.main"}},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}}}}),t.jsx(o.TextField,{label:"API Key (optional)",fullWidth:!0,size:"small",value:_,onChange:E=>V(E.target.value),placeholder:"Leave blank if no auth required",InputProps:{startAdornment:t.jsx(o.InputAdornment,{position:"start",children:t.jsx(z.Lock,{sx:{fontSize:16,color:"text.secondary"}})})},sx:{"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:1,color:"text.primary"},"& .MuiInputLabel-root":{fontSize:"0.875rem",color:"text.secondary","&.Mui-focused":{color:"primary.main"}},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}}}}),t.jsx(o.TextField,{label:"Response data path (optional)",fullWidth:!0,size:"small",value:d,onChange:E=>ee(E.target.value),placeholder:"data (leave blank if API returns a plain array)",helperText:'If your API returns { "data": [...] }, enter: data',sx:{"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:1,color:"text.primary"},"& .MuiInputLabel-root":{fontSize:"0.875rem",color:"text.secondary","&.Mui-focused":{color:"primary.main"}},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}},"& .MuiFormHelperText-root":{fontSize:"0.75rem",mx:0}}}),t.jsx(o.Button,{variant:"outlined",fullWidth:!0,disabled:!R.trim()||p==="loading",onClick:ne,startIcon:p==="loading"?t.jsx(o.CircularProgress,{size:16,color:"inherit"}):t.jsx(z.Api,{}),sx:{fontSize:"0.875rem",borderRadius:1,py:.875,borderColor:"primary.main",color:"primary.main","&:hover":{bgcolor:E=>$(E.palette.primary.main,.04),borderColor:"primary.dark"},"&:disabled":{borderColor:"action.disabledBackground",color:"action.disabled"}},children:p==="loading"?"Connecting...":"Test Connection & Load Data"}),p==="ready"&&t.jsxs(o.Box,{sx:{border:"1.5px solid",borderColor:"success.main",borderRadius:2,p:2,bgcolor:E=>$(E.palette.success.main,.04),display:"flex",alignItems:"flex-start",gap:1.5},children:[t.jsx(z.CheckCircle,{sx:{fontSize:20,color:"success.main",flexShrink:0,mt:.1}}),t.jsxs(o.Box,{children:[t.jsxs(o.Typography,{variant:"body2",sx:{fontWeight:500,color:"success.dark",fontSize:"0.875rem"},children:[Z.toLocaleString()," records loaded — ready to create"]}),t.jsx(o.Typography,{variant:"caption",sx:{color:"text.secondary",fontSize:"0.75rem",wordBreak:"break-all",display:"block",mt:.25},children:R})]})]}),p==="error"&&t.jsxs(o.Box,{sx:{border:"1.5px solid",borderColor:"error.main",borderRadius:2,p:2,bgcolor:E=>$(E.palette.error.main,.04),display:"flex",alignItems:"flex-start",gap:1.5},children:[t.jsx(z.ErrorOutline,{sx:{fontSize:20,color:"error.main",flexShrink:0,mt:.1}}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,color:"error.main",fontSize:"0.875rem"},children:"Connection failed"}),t.jsx(o.Typography,{variant:"caption",sx:{color:"text.secondary",fontSize:"0.75rem",display:"block",mt:.25},children:F})]})]})]})]})}),t.jsxs(o.DialogActions,{sx:{px:3,py:2,gap:1,borderTop:"1px solid",borderColor:"divider"},children:[t.jsx(o.Button,{onClick:G,variant:"text",sx:{color:"primary.main",fontSize:"0.875rem",borderRadius:E=>`${E.shape.borderRadius}px`,px:2,py:.625,minWidth:64,"&:hover":{bgcolor:E=>$(E.palette.primary.main,.04)}},children:"Cancel"}),t.jsx(o.Button,{onClick:ae,disabled:j==="json"&&!te||j==="api"&&p!=="ready",variant:"contained",sx:{fontSize:"0.875rem",borderRadius:E=>`${E.shape.borderRadius}px`,px:2.5,py:.625,minWidth:64,"&:disabled":{bgcolor:"action.disabledBackground",color:"action.disabled"}},children:"Create"})]})]}),t.jsxs(o.Dialog,{open:C,onClose:()=>m(!1),maxWidth:"sm",PaperProps:{sx:E=>({borderRadius:3,width:560,maxHeight:"80vh",...se(E).paper})},children:[t.jsxs(o.DialogTitle,{sx:E=>({display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2,fontWeight:500,fontSize:"1.25rem",color:"text.primary",letterSpacing:"-0.01em",...se(E).header}),children:["JSON format guide",t.jsx(o.IconButton,{onClick:()=>m(!1),size:"small",sx:{color:"text.secondary","&:hover":{bgcolor:"action.hover"}},children:t.jsx(z.Close,{sx:{fontSize:20}})})]}),t.jsx(o.DialogContent,{sx:{px:3,py:2},children:t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2.5},children:[t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",sx:{fontWeight:500,mb:.75,color:"text.primary",fontSize:"0.875rem"},children:"Required format"}),t.jsx(o.Typography,{variant:"body2",sx:{color:"text.secondary",fontSize:"0.8125rem",lineHeight:1.5},children:"Your JSON file must be an array of objects. Each object represents a row, and all should have the same field names."})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",sx:{fontWeight:500,mb:.75,color:"text.primary",fontSize:"0.875rem"},children:"Example structure"}),t.jsx(o.Box,{component:"pre",sx:{bgcolor:"action.hover",border:1,borderColor:"divider",p:2,borderRadius:1,overflow:"auto",maxHeight:200,fontSize:"0.75rem",fontFamily:"monospace",lineHeight:1.5,color:"text.primary"},children:`[
|
|
67
|
+
export default theme;`}function es(e){return typeof e=="number"?`${(e*100).toFixed(0)}%`:`calc((${e}) * 100%)`}const Md=e=>{if(!Number.isNaN(+e))return+e;const r=e.match(/\d*\.?\d+/g);if(!r)return 0;let n=0;for(let i=0;i<r.length;i+=1)n+=+r[i];return n};function Ad(e){Object.assign(e,{alpha(r,n){const i=this||e;return i.colorSpace?`oklch(from ${r} l c h / ${typeof n=="string"?`calc(${n})`:n})`:i.vars?`rgba(${r.replace(/var\(--([^,\s)]+)(?:,[^)]+)?\)+/g,"var(--$1Channel)")} / ${typeof n=="string"?`calc(${n})`:n})`:$(r,Md(n))},lighten(r,n){const i=this||e;return i.colorSpace?`color-mix(in ${i.colorSpace}, ${r}, #fff ${es(n)})`:mn(r,n)},darken(r,n){const i=this||e;return i.colorSpace?`color-mix(in ${i.colorSpace}, ${r}, #000 ${es(n)})`:xn(r,n)}})}function qn(e={},...r){const{breakpoints:n,mixins:i={},spacing:a,palette:l={},transitions:c={},typography:d={},shape:u,colorSpace:h,...g}=e;if(e.vars&&e.generateThemeVars===void 0)throw new Error(process.env.NODE_ENV!=="production"?"MUI: `vars` is a private field used for CSS variables support.\nPlease use another name or follow the [docs](https://mui.com/material-ui/customization/css-theme-variables/usage/) to enable the feature.":jr(20));const f=ci({...l,colorSpace:h}),b=Ps(e);let y=ut(b,{mixins:Cd(b.breakpoints,i),palette:f,shadows:Id.slice(),typography:wd(f,d),transitions:$d(c),zIndex:{...Od}});if(y=ut(y,g),y=r.reduce((k,v)=>ut(k,v),y),process.env.NODE_ENV!=="production"){const k=["active","checked","completed","disabled","error","expanded","focused","focusVisible","required","selected"],v=(m,T)=>{let x;for(x in m){const z=m[x];if(k.includes(x)&&Object.keys(z).length>0){if(process.env.NODE_ENV!=="production"){const B=od("",x);console.error([`MUI: The \`${T}\` component increases the CSS specificity of the \`${x}\` internal state.`,"You can not override it like this: ",JSON.stringify(m,null,2),"",`Instead, you need to use the '&.${B}' syntax:`,JSON.stringify({root:{[`&.${B}`]:z}},null,2),"","https://mui.com/r/state-classes-guide"].join(`
|
|
68
|
+
`))}m[x]={}}}};Object.keys(y.components).forEach(m=>{const T=y.components[m].styleOverrides;T&&m.startsWith("Mui")&&v(T,m)})}return y.unstable_sxConfig={...dn,...g==null?void 0:g.unstable_sxConfig},y.unstable_sx=function(v){return un({sx:v,theme:this})},y.toRuntimeSource=Hs,Ad(y),y}function Rd(e){let r;return e<1?r=5.11916*e**2:r=4.5*Math.log(e+1)+2,Math.round(r*10)/1e3}const Wd=[...Array(25)].map((e,r)=>{if(r===0)return"none";const n=Rd(r);return`linear-gradient(rgba(255 255 255 / ${n}), rgba(255 255 255 / ${n}))`});function Us(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function Gs(e){return e==="dark"?Wd:[]}function Pd(e){const{palette:r={mode:"light"},opacity:n,overlays:i,colorSpace:a,...l}=e,c=ci({...r,colorSpace:a});return{palette:c,opacity:{...Us(c.mode),...n},overlays:i||Gs(c.mode),...l}}function Nd(e){var r;return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!((r=e[1])!=null&&r.match(/(mode|contrastThreshold|tonalOffset)/))}const Ld=e=>[...[...Array(25)].map((r,n)=>`--${e?`${e}-`:""}overlays-${n}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],Fd=e=>(r,n)=>{const i=e.rootSelector||":root",a=e.colorSchemeSelector;let l=a;if(a==="class"&&(l=".%s"),a==="data"&&(l="[data-%s]"),a!=null&&a.startsWith("data-")&&!a.includes("%s")&&(l=`[${a}="%s"]`),e.defaultColorScheme===r){if(r==="dark"){const c={};return Ld(e.cssVarPrefix).forEach(d=>{c[d]=n[d],delete n[d]}),l==="media"?{[i]:n,"@media (prefers-color-scheme: dark)":{[i]:c}}:l?{[l.replace("%s",r)]:c,[`${i}, ${l.replace("%s",r)}`]:n}:{[i]:{...n,...c}}}if(l&&l!=="media")return`${i}, ${l.replace("%s",String(r))}`}else if(r){if(l==="media")return{[`@media (prefers-color-scheme: ${String(r)})`]:{[i]:n}};if(l)return l.replace("%s",String(r))}return i};function Vd(e,r){r.forEach(n=>{e[n]||(e[n]={})})}function W(e,r,n){!e[r]&&n&&(e[r]=n)}function fo(e){return typeof e!="string"||!e.startsWith("hsl")?e:Ns(e)}function qt(e,r){`${r}Channel`in e||(e[`${r}Channel`]=mo(fo(e[r]),`MUI: Can't create \`palette.${r}Channel\` because \`palette.${r}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().
|
|
69
|
+
To suppress this warning, you need to explicitly provide the \`palette.${r}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function Hd(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}const At=e=>{try{return e()}catch{}},Ud=(e="mui")=>ld(e);function Ln(e,r,n,i,a){if(!n)return;n=n===!0?{}:n;const l=a==="dark"?"dark":"light";if(!i){r[a]=Pd({...n,palette:{mode:l,...n==null?void 0:n.palette},colorSpace:e});return}const{palette:c,...d}=qn({...i,palette:{mode:l,...n==null?void 0:n.palette},colorSpace:e});return r[a]={...n,palette:c,opacity:{...Us(l),...n==null?void 0:n.opacity},overlays:(n==null?void 0:n.overlays)||Gs(l)},d}function Gd(e={},...r){const{colorSchemes:n={light:!0},defaultColorScheme:i,disableCssColorScheme:a=!1,cssVarPrefix:l="mui",nativeColor:c=!1,shouldSkipGeneratingVar:d=Nd,colorSchemeSelector:u=n.light&&n.dark?"media":void 0,rootSelector:h=":root",...g}=e,f=Object.keys(n)[0],b=i||(n.light&&f!=="light"?"light":f),y=Ud(l),{[b]:k,light:v,dark:m,...T}=n,x={...T};let z=k;if((b==="dark"&&!("dark"in n)||b==="light"&&!("light"in n))&&(z=!0),!z)throw new Error(process.env.NODE_ENV!=="production"?`MUI: The \`colorSchemes.${b}\` option is either missing or invalid.`:jr(21,b));let B;c&&(B="oklch");const w=Ln(B,x,z,g,b);v&&!x.light&&Ln(B,x,v,void 0,"light"),m&&!x.dark&&Ln(B,x,m,void 0,"dark");let R={defaultColorScheme:b,...w,cssVarPrefix:l,colorSchemeSelector:u,rootSelector:h,getCssVar:y,colorSchemes:x,font:{...Sd(w.typography),...w.font},spacing:Hd(g.spacing)};Object.keys(R.colorSchemes).forEach(te=>{const s=R.colorSchemes[te].palette,N=re=>{const le=re.split("-"),J=le[1],ee=le[2];return y(re,s[J][ee])};s.mode==="light"&&(W(s.common,"background","#fff"),W(s.common,"onBackground","#000")),s.mode==="dark"&&(W(s.common,"background","#000"),W(s.common,"onBackground","#fff"));function L(re,le,J){if(B){let ee;return re===Sr&&(ee=`transparent ${((1-J)*100).toFixed(0)}%`),re===Be&&(ee=`#000 ${(J*100).toFixed(0)}%`),re===Ie&&(ee=`#fff ${(J*100).toFixed(0)}%`),`color-mix(in ${B}, ${le}, ${ee})`}return re(le,J)}if(Vd(s,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),s.mode==="light"){W(s.Alert,"errorColor",L(Be,s.error.light,.6)),W(s.Alert,"infoColor",L(Be,s.info.light,.6)),W(s.Alert,"successColor",L(Be,s.success.light,.6)),W(s.Alert,"warningColor",L(Be,s.warning.light,.6)),W(s.Alert,"errorFilledBg",N("palette-error-main")),W(s.Alert,"infoFilledBg",N("palette-info-main")),W(s.Alert,"successFilledBg",N("palette-success-main")),W(s.Alert,"warningFilledBg",N("palette-warning-main")),W(s.Alert,"errorFilledColor",At(()=>s.getContrastText(s.error.main))),W(s.Alert,"infoFilledColor",At(()=>s.getContrastText(s.info.main))),W(s.Alert,"successFilledColor",At(()=>s.getContrastText(s.success.main))),W(s.Alert,"warningFilledColor",At(()=>s.getContrastText(s.warning.main))),W(s.Alert,"errorStandardBg",L(Ie,s.error.light,.9)),W(s.Alert,"infoStandardBg",L(Ie,s.info.light,.9)),W(s.Alert,"successStandardBg",L(Ie,s.success.light,.9)),W(s.Alert,"warningStandardBg",L(Ie,s.warning.light,.9)),W(s.Alert,"errorIconColor",N("palette-error-main")),W(s.Alert,"infoIconColor",N("palette-info-main")),W(s.Alert,"successIconColor",N("palette-success-main")),W(s.Alert,"warningIconColor",N("palette-warning-main")),W(s.AppBar,"defaultBg",N("palette-grey-100")),W(s.Avatar,"defaultBg",N("palette-grey-400")),W(s.Button,"inheritContainedBg",N("palette-grey-300")),W(s.Button,"inheritContainedHoverBg",N("palette-grey-A100")),W(s.Chip,"defaultBorder",N("palette-grey-400")),W(s.Chip,"defaultAvatarColor",N("palette-grey-700")),W(s.Chip,"defaultIconColor",N("palette-grey-700")),W(s.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),W(s.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),W(s.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),W(s.LinearProgress,"primaryBg",L(Ie,s.primary.main,.62)),W(s.LinearProgress,"secondaryBg",L(Ie,s.secondary.main,.62)),W(s.LinearProgress,"errorBg",L(Ie,s.error.main,.62)),W(s.LinearProgress,"infoBg",L(Ie,s.info.main,.62)),W(s.LinearProgress,"successBg",L(Ie,s.success.main,.62)),W(s.LinearProgress,"warningBg",L(Ie,s.warning.main,.62)),W(s.Skeleton,"bg",B?L(Sr,s.text.primary,.11):`rgba(${N("palette-text-primaryChannel")} / 0.11)`),W(s.Slider,"primaryTrack",L(Ie,s.primary.main,.62)),W(s.Slider,"secondaryTrack",L(Ie,s.secondary.main,.62)),W(s.Slider,"errorTrack",L(Ie,s.error.main,.62)),W(s.Slider,"infoTrack",L(Ie,s.info.main,.62)),W(s.Slider,"successTrack",L(Ie,s.success.main,.62)),W(s.Slider,"warningTrack",L(Ie,s.warning.main,.62));const re=B?L(Be,s.background.default,.6825):Ao(s.background.default,.8);W(s.SnackbarContent,"bg",re),W(s.SnackbarContent,"color",At(()=>B?Yn.text.primary:s.getContrastText(re))),W(s.SpeedDialAction,"fabHoverBg",Ao(s.background.paper,.15)),W(s.StepConnector,"border",N("palette-grey-400")),W(s.StepContent,"border",N("palette-grey-400")),W(s.Switch,"defaultColor",N("palette-common-white")),W(s.Switch,"defaultDisabledColor",N("palette-grey-100")),W(s.Switch,"primaryDisabledColor",L(Ie,s.primary.main,.62)),W(s.Switch,"secondaryDisabledColor",L(Ie,s.secondary.main,.62)),W(s.Switch,"errorDisabledColor",L(Ie,s.error.main,.62)),W(s.Switch,"infoDisabledColor",L(Ie,s.info.main,.62)),W(s.Switch,"successDisabledColor",L(Ie,s.success.main,.62)),W(s.Switch,"warningDisabledColor",L(Ie,s.warning.main,.62)),W(s.TableCell,"border",L(Ie,L(Sr,s.divider,1),.88)),W(s.Tooltip,"bg",L(Sr,s.grey[700],.92))}if(s.mode==="dark"){W(s.Alert,"errorColor",L(Ie,s.error.light,.6)),W(s.Alert,"infoColor",L(Ie,s.info.light,.6)),W(s.Alert,"successColor",L(Ie,s.success.light,.6)),W(s.Alert,"warningColor",L(Ie,s.warning.light,.6)),W(s.Alert,"errorFilledBg",N("palette-error-dark")),W(s.Alert,"infoFilledBg",N("palette-info-dark")),W(s.Alert,"successFilledBg",N("palette-success-dark")),W(s.Alert,"warningFilledBg",N("palette-warning-dark")),W(s.Alert,"errorFilledColor",At(()=>s.getContrastText(s.error.dark))),W(s.Alert,"infoFilledColor",At(()=>s.getContrastText(s.info.dark))),W(s.Alert,"successFilledColor",At(()=>s.getContrastText(s.success.dark))),W(s.Alert,"warningFilledColor",At(()=>s.getContrastText(s.warning.dark))),W(s.Alert,"errorStandardBg",L(Be,s.error.light,.9)),W(s.Alert,"infoStandardBg",L(Be,s.info.light,.9)),W(s.Alert,"successStandardBg",L(Be,s.success.light,.9)),W(s.Alert,"warningStandardBg",L(Be,s.warning.light,.9)),W(s.Alert,"errorIconColor",N("palette-error-main")),W(s.Alert,"infoIconColor",N("palette-info-main")),W(s.Alert,"successIconColor",N("palette-success-main")),W(s.Alert,"warningIconColor",N("palette-warning-main")),W(s.AppBar,"defaultBg",N("palette-grey-900")),W(s.AppBar,"darkBg",N("palette-background-paper")),W(s.AppBar,"darkColor",N("palette-text-primary")),W(s.Avatar,"defaultBg",N("palette-grey-600")),W(s.Button,"inheritContainedBg",N("palette-grey-800")),W(s.Button,"inheritContainedHoverBg",N("palette-grey-700")),W(s.Chip,"defaultBorder",N("palette-grey-700")),W(s.Chip,"defaultAvatarColor",N("palette-grey-300")),W(s.Chip,"defaultIconColor",N("palette-grey-300")),W(s.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),W(s.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),W(s.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),W(s.LinearProgress,"primaryBg",L(Be,s.primary.main,.5)),W(s.LinearProgress,"secondaryBg",L(Be,s.secondary.main,.5)),W(s.LinearProgress,"errorBg",L(Be,s.error.main,.5)),W(s.LinearProgress,"infoBg",L(Be,s.info.main,.5)),W(s.LinearProgress,"successBg",L(Be,s.success.main,.5)),W(s.LinearProgress,"warningBg",L(Be,s.warning.main,.5)),W(s.Skeleton,"bg",B?L(Sr,s.text.primary,.13):`rgba(${N("palette-text-primaryChannel")} / 0.13)`),W(s.Slider,"primaryTrack",L(Be,s.primary.main,.5)),W(s.Slider,"secondaryTrack",L(Be,s.secondary.main,.5)),W(s.Slider,"errorTrack",L(Be,s.error.main,.5)),W(s.Slider,"infoTrack",L(Be,s.info.main,.5)),W(s.Slider,"successTrack",L(Be,s.success.main,.5)),W(s.Slider,"warningTrack",L(Be,s.warning.main,.5));const re=B?L(Ie,s.background.default,.985):Ao(s.background.default,.98);W(s.SnackbarContent,"bg",re),W(s.SnackbarContent,"color",At(()=>B?Fs.text.primary:s.getContrastText(re))),W(s.SpeedDialAction,"fabHoverBg",Ao(s.background.paper,.15)),W(s.StepConnector,"border",N("palette-grey-600")),W(s.StepContent,"border",N("palette-grey-600")),W(s.Switch,"defaultColor",N("palette-grey-300")),W(s.Switch,"defaultDisabledColor",N("palette-grey-600")),W(s.Switch,"primaryDisabledColor",L(Be,s.primary.main,.55)),W(s.Switch,"secondaryDisabledColor",L(Be,s.secondary.main,.55)),W(s.Switch,"errorDisabledColor",L(Be,s.error.main,.55)),W(s.Switch,"infoDisabledColor",L(Be,s.info.main,.55)),W(s.Switch,"successDisabledColor",L(Be,s.success.main,.55)),W(s.Switch,"warningDisabledColor",L(Be,s.warning.main,.55)),W(s.TableCell,"border",L(Be,L(Sr,s.divider,1),.68)),W(s.Tooltip,"bg",L(Sr,s.grey[700],.92))}qt(s.background,"default"),qt(s.background,"paper"),qt(s.common,"background"),qt(s.common,"onBackground"),qt(s,"divider"),Object.keys(s).forEach(re=>{const le=s[re];re!=="tonalOffset"&&le&&typeof le=="object"&&(le.main&&W(s[re],"mainChannel",mo(fo(le.main))),le.light&&W(s[re],"lightChannel",mo(fo(le.light))),le.dark&&W(s[re],"darkChannel",mo(fo(le.dark))),le.contrastText&&W(s[re],"contrastTextChannel",mo(fo(le.contrastText))),re==="text"&&(qt(s[re],"primary"),qt(s[re],"secondary")),re==="action"&&(le.active&&qt(s[re],"active"),le.selected&&qt(s[re],"selected")))})}),R=r.reduce((te,s)=>ut(te,s),R);const j={prefix:l,disableCssColorScheme:a,shouldSkipGeneratingVar:d,getSelector:Fd(R),enableContrastVars:c},{vars:M,generateThemeVars:A,generateStyleSheets:q}=ud(R,j);return R.vars=M,Object.entries(R.colorSchemes[R.defaultColorScheme]).forEach(([te,s])=>{R[te]=s}),R.generateThemeVars=A,R.generateStyleSheets=q,R.generateSpacing=function(){return Ws(g.spacing,si(this))},R.getColorSchemeSelector=pd(u),R.spacing=R.generateSpacing(),R.shouldSkipGeneratingVar=d,R.unstable_sxConfig={...dn,...g==null?void 0:g.unstable_sxConfig},R.unstable_sx=function(s){return un({sx:s,theme:this})},R.toRuntimeSource=Hs,R}function ts(e,r,n){e.colorSchemes&&n&&(e.colorSchemes[r]={...n!==!0&&n,palette:ci({...n===!0?{}:n.palette,mode:r})})}function Yd(e={},...r){const{palette:n,cssVariables:i=!1,colorSchemes:a=n?void 0:{light:!0},defaultColorScheme:l=n==null?void 0:n.mode,...c}=e,d=l||"light",u=a==null?void 0:a[d],h={...a,...n?{[d]:{...typeof u!="boolean"&&u,palette:n}}:void 0};if(i===!1){if(!("colorSchemes"in e))return qn(e,...r);let g=n;"palette"in e||h[d]&&(h[d]!==!0?g=h[d].palette:d==="dark"&&(g={mode:"dark"}));const f=qn({...e,palette:g},...r);return f.defaultColorScheme=d,f.colorSchemes=h,f.palette.mode==="light"&&(f.colorSchemes.light={...h.light!==!0&&h.light,palette:f.palette},ts(f,"dark",h.dark)),f.palette.mode==="dark"&&(f.colorSchemes.dark={...h.dark!==!0&&h.dark,palette:f.palette},ts(f,"light",h.light)),f}return!n&&!("light"in h)&&d==="light"&&(h.light=!0),Gd({...c,colorSchemes:h,defaultColorScheme:d,...typeof i!="boolean"&&i},...r)}const qd=Yd();function st(){const e=Zc(qd);return process.env.NODE_ENV!=="production"&&Xo.useDebugValue(e),e[Fl]||e}async function Jd(e,r,n){try{new URL(e)}catch{throw new Error("Please enter a valid URL")}const i={"Content-Type":"application/json"};r&&(i.Authorization=`Bearer ${r}`);const a=new AbortController,l=setTimeout(()=>a.abort(),3e4);let c;try{c=await fetch(e,{headers:i,signal:a.signal})}catch(h){throw clearTimeout(l),(h==null?void 0:h.name)==="AbortError"?new Error("Request timed out after 30 seconds"):new Error("Failed to fetch — check the URL and your network connection")}finally{clearTimeout(l)}if(c.status===401)throw new Error("Authentication failed (401) — check your API key");if(!c.ok)throw new Error(`API error ${c.status}: ${c.statusText}`);let d;try{d=await c.json()}catch{throw new Error("Response is not valid JSON")}let u;if(Array.isArray(d))u=d;else if(n&&d[n]&&Array.isArray(d[n]))u=d[n];else{const g=["data","results","items","records"].find(f=>d[f]&&Array.isArray(d[f]));if(g)u=d[g];else throw new Error("API response must be a JSON array, or specify the data path key.")}return{data:u,source:e,fetchedAt:new Date().toISOString()}}function Kd(e,r){return r.map(n=>`${n.x}px ${n.y}px ${n.blur}px ${n.spread}px ${$(e.palette.common.black,n.opacity)}`).join(", ")}const Xd={menu:[{x:0,y:8,blur:16,spread:4,opacity:.12},{x:0,y:4,blur:16,spread:0,opacity:.08},{x:0,y:0,blur:0,spread:1,opacity:.05}],restButton:[{x:0,y:1,blur:2,spread:0,opacity:.3},{x:0,y:1,blur:3,spread:1,opacity:.15}],restButtonLight:[{x:0,y:1,blur:2,spread:0,opacity:.1},{x:0,y:1,blur:3,spread:1,opacity:.05}],hoverButton:[{x:0,y:1,blur:3,spread:0,opacity:.3},{x:0,y:4,blur:8,spread:3,opacity:.15}],pressedButton:[{x:0,y:1,blur:2,spread:0,opacity:.3}],pressedButtonLight:[{x:0,y:1,blur:2,spread:0,opacity:.1}],small:[{x:0,y:2,blur:6,spread:0,opacity:.15}],cardRest:[{x:0,y:1,blur:3,spread:0,opacity:.08},{x:0,y:1,blur:2,spread:0,opacity:.06}],cardHover:[{x:0,y:4,blur:16,spread:0,opacity:.15},{x:0,y:1,blur:4,spread:0,opacity:.08}],popover:[{x:0,y:4,blur:20,spread:0,opacity:.15},{x:0,y:1,blur:6,spread:0,opacity:.1}],flatHover:[{x:0,y:1,blur:2,spread:0,opacity:.06}]};function fe(e,r){return Kd(e,Xd[r])}function Ze(e){return`${Number(e.shape.borderRadius)*1.5}px`}function Co(e){return`${Number(e.shape.borderRadius)}px`}function rs(e){const r=e.tokens;return{containerPad:`${(r==null?void 0:r.containerPad)??16}px`,cardGap:`${(r==null?void 0:r.cardGap)??12}px`}}function It(e){const r=e.tokens;return{main:(r==null?void 0:r.highlight)||e.palette.primary.main,bg:(r==null?void 0:r.highlightSoft)||$(e.palette.primary.main,.12),hoverBg:(r==null?void 0:r.highlightBd)||$(e.palette.primary.main,.2)}}function ae(e,r="menu"){const n=e.tokens;return{paper:{boxShadow:(n==null?void 0:n.cardBodyShadow)||fe(e,r),border:n!=null&&n.cardBodyBorder&&n.cardBodyBorder!=="none"?n.cardBodyBorder:"none"},header:{backgroundColor:(n==null?void 0:n.cardHdrBg)||"transparent",borderBottom:(n==null?void 0:n.cardHdrBorder)||"none",boxShadow:(n==null?void 0:n.cardHdrAccent)||"none"}}}function Qd({isOpen:e,onClose:r,onCreate:n,preloadedData:i,preloadedDataLabel:a}){const[l,c]=p.useState(""),[d,u]=p.useState(!1),[h,g]=p.useState(""),[f,b]=p.useState(null),[y,k]=p.useState(null),[v,m]=p.useState(!1),[T,x]=p.useState(""),z=p.useRef(null),[B,w]=p.useState("json"),[R,j]=p.useState(""),[M,A]=p.useState(""),[q,te]=p.useState(""),[s,N]=p.useState("idle"),[L,re]=p.useState(""),[le,J]=p.useState(null),[ee,Ce]=p.useState(0),V=async E=>{if(x(""),!E.name.endsWith(".json")){x("Only .json files are allowed");return}const Z=10*1024*1024;if(E.size>Z){x("File size exceeds 10MB limit");return}try{const ue=await E.text();let de;try{de=JSON.parse(ue)}catch{x("Invalid JSON syntax — please check your file and try again");return}if(!Array.isArray(de)){x("JSON must be an array of objects");return}if(de.length===0){x("No data rows found in JSON file");return}b(E),k(de)}catch{x("Network error — please try again")}},K=E=>{E.preventDefault();const Z=E.dataTransfer.files[0];Z&&V(Z)},ne=async()=>{if(R.trim()){N("loading"),re("");try{const E=await Jd(R.trim(),M.trim()||void 0,q.trim()||void 0);J(E.data),Ce(E.data.length),N("ready")}catch(E){re((E==null?void 0:E.message)||"Connection failed"),N("error")}}},ce=()=>{if(!l.trim()){u(!0);return}const E=B==="api"?le:i||y;E&&(n(l.trim(),h.trim(),E),U())},U=()=>{c(""),u(!1),g(""),b(null),k(null),x(""),w("json"),j(""),A(""),te(""),N("idle"),re(""),J(null),Ce(0),r()},ie=i||y,oe=d&&!l.trim();return l.trim(),t.jsxs(t.Fragment,{children:[t.jsxs(o.Dialog,{open:e,onClose:U,maxWidth:"xs",fullWidth:!0,PaperProps:{sx:E=>({borderRadius:Ze(E),width:480,maxHeight:"min(720px, calc(100vh - 120px))",my:"auto",display:"flex",flexDirection:"column",...ae(E).paper})},children:[t.jsxs(o.DialogTitle,{sx:E=>({display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2.5,fontWeight:500,fontSize:"1.125rem",color:"text.primary",letterSpacing:"-0.01em",...ae(E).header}),children:["Create new report",t.jsx(o.IconButton,{onClick:U,size:"small",sx:{color:"text.secondary",borderRadius:1,"&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(D.Close,{sx:{fontSize:18}})})]}),t.jsx(o.DialogContent,{sx:{px:3,pt:2,pb:2,overflowY:"auto"},children:t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2,pt:2},children:[t.jsx(o.TextField,{label:"Report name",required:!0,fullWidth:!0,value:l,onChange:E=>{c(E.target.value),d&&E.target.value.trim()&&u(!1)},placeholder:"Enter report name",autoFocus:!0,error:oe,helperText:oe?"Report name is required":void 0,inputProps:{maxLength:255},sx:{"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:1,color:"text.primary"},"& .MuiInputLabel-root":{fontSize:"0.875rem",color:"text.secondary","&.Mui-focused":{color:"primary.main"}},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}}}}),t.jsx(o.TextField,{label:"Description (optional)",fullWidth:!0,multiline:!0,rows:2,value:h,onChange:E=>g(E.target.value),placeholder:"Add details about this report",inputProps:{maxLength:500},sx:{"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:1,color:"text.primary"},"& .MuiInputLabel-root":{fontSize:"0.875rem",color:"text.secondary","&.Mui-focused":{color:"primary.main"}},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}}}}),t.jsxs(o.Tabs,{value:B==="json"?0:1,onChange:(E,Z)=>{w(Z===0?"json":"api"),N("idle"),re("")},variant:"fullWidth",sx:{borderBottom:1,borderColor:"divider",minHeight:40},children:[t.jsx(o.Tab,{label:"Upload JSON",icon:t.jsx(D.Description,{fontSize:"small"}),iconPosition:"start",sx:{textTransform:"none",fontSize:"0.875rem",fontWeight:500,minHeight:40,py:.5}}),t.jsx(o.Tab,{label:"Connect API",icon:t.jsx(D.Api,{fontSize:"small"}),iconPosition:"start",sx:{textTransform:"none",fontSize:"0.875rem",fontWeight:500,minHeight:40,py:.5}})]}),B==="json"&&t.jsx(o.Box,{children:i?t.jsxs(o.Box,{sx:{border:"1.5px solid",borderColor:"success.main",borderRadius:2,p:2.5,bgcolor:E=>$(E.palette.success.main,.04),display:"flex",alignItems:"center",gap:2},children:[t.jsx(o.Box,{sx:{width:36,height:36,borderRadius:"50%",bgcolor:E=>$(E.palette.success.main,.12),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:t.jsx(D.CheckCircle,{sx:{fontSize:20,color:"success.main"}})}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,color:"success.dark",fontSize:"0.875rem"},children:a||`${i.length.toLocaleString()} records loaded`}),t.jsx(o.Typography,{variant:"caption",sx:{color:"text.secondary"},children:"Data source is connected — ready to create"})]})]}):t.jsxs(t.Fragment,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75,mb:1.25},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,fontSize:"0.875rem",color:"text.primary"},children:"Data source"}),t.jsx(o.IconButton,{size:"small",onClick:()=>m(!0),sx:{p:.25,color:"text.secondary","&:hover":{bgcolor:"action.hover"}},children:t.jsx(D.Info,{sx:{fontSize:16}})})]}),t.jsxs(o.Box,{onDrop:K,onDragOver:E=>E.preventDefault(),onPaste:E=>E.preventDefault(),onClick:()=>{var E;return(E=z.current)==null?void 0:E.click()},sx:{position:"relative",border:"1.5px",borderStyle:y?"solid":"dashed",borderColor:y?"success.main":T?"error.main":"primary.main",borderRadius:2,p:3,textAlign:"center",cursor:"pointer",bgcolor:y?E=>$(E.palette.success.main,.04):T?E=>$(E.palette.error.main,.04):E=>$(E.palette.primary.main,.04),transition:"all 0.2s cubic-bezier(0.4, 0, 0.2, 1)","&:hover":{bgcolor:y?E=>$(E.palette.success.main,.08):T?E=>$(E.palette.error.main,.08):E=>$(E.palette.primary.main,.08),borderColor:y?"success.dark":T?"error.dark":"primary.dark"}},children:[t.jsx(o.Box,{component:"input",ref:z,type:"file",accept:".json",sx:{display:"none"},onChange:E=>{var Z;return((Z=E.target.files)==null?void 0:Z[0])&&V(E.target.files[0])}}),y?t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:.75,animation:"fadeIn 0.2s ease-in","@keyframes fadeIn":{from:{opacity:0,transform:"scale(0.98)"},to:{opacity:1,transform:"scale(1)"}}},children:[t.jsx(o.Box,{sx:{width:40,height:40,borderRadius:"50%",bgcolor:E=>$(E.palette.success.main,.1),display:"flex",alignItems:"center",justifyContent:"center",mb:.5},children:t.jsx(D.CheckCircle,{sx:{fontSize:24,color:"success.main"}})}),t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,color:"success.main",fontSize:"0.875rem"},children:f==null?void 0:f.name}),t.jsx(o.Typography,{variant:"caption",sx:{color:"success.dark",fontSize:"0.75rem"},children:"Ready to create"})]}):t.jsxs(o.Box,{children:[t.jsx(o.Box,{sx:{width:48,height:48,borderRadius:"50%",bgcolor:E=>$(E.palette.primary.main,.1),display:"flex",alignItems:"center",justifyContent:"center",mx:"auto",mb:1.5},children:t.jsx(D.CloudUpload,{sx:{fontSize:28,color:"primary.main"}})}),t.jsx(o.Typography,{variant:"body2",sx:{color:"text.primary",fontSize:"0.875rem",fontWeight:500,mb:.25},children:"Upload JSON file"}),t.jsx(o.Typography,{variant:"caption",sx:{color:"text.secondary",fontSize:"0.75rem",display:"block"},children:"Click to browse or drag and drop"}),T&&t.jsx(o.Box,{sx:{mt:1.25,p:.75,borderRadius:1,bgcolor:E=>$(E.palette.error.main,.08),border:1,borderColor:E=>$(E.palette.error.main,.2)},children:t.jsx(o.Typography,{variant:"caption",sx:{color:"error.main",fontSize:"0.6875rem",fontWeight:500},children:T})})]})]})]})}),B==="api"&&t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2},children:[t.jsx(o.TextField,{label:"API Endpoint URL",required:!0,fullWidth:!0,size:"small",value:R,onChange:E=>{j(E.target.value),N("idle")},placeholder:"http://localhost:8000/api/reports/sales-pipeline/data/flat",sx:{"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:1,color:"text.primary"},"& .MuiInputLabel-root":{fontSize:"0.875rem",color:"text.secondary","&.Mui-focused":{color:"primary.main"}},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}}}}),t.jsx(o.TextField,{label:"API Key (optional)",fullWidth:!0,size:"small",value:M,onChange:E=>A(E.target.value),placeholder:"Leave blank if no auth required",InputProps:{startAdornment:t.jsx(o.InputAdornment,{position:"start",children:t.jsx(D.Lock,{sx:{fontSize:16,color:"text.secondary"}})})},sx:{"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:1,color:"text.primary"},"& .MuiInputLabel-root":{fontSize:"0.875rem",color:"text.secondary","&.Mui-focused":{color:"primary.main"}},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}}}}),t.jsx(o.TextField,{label:"Response data path (optional)",fullWidth:!0,size:"small",value:q,onChange:E=>te(E.target.value),placeholder:"data (leave blank if API returns a plain array)",helperText:'If your API returns { "data": [...] }, enter: data',sx:{"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:1,color:"text.primary"},"& .MuiInputLabel-root":{fontSize:"0.875rem",color:"text.secondary","&.Mui-focused":{color:"primary.main"}},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}},"& .MuiFormHelperText-root":{fontSize:"0.75rem",mx:0}}}),t.jsx(o.Button,{variant:"outlined",fullWidth:!0,disabled:!R.trim()||s==="loading",onClick:ne,startIcon:s==="loading"?t.jsx(o.CircularProgress,{size:16,color:"inherit"}):t.jsx(D.Api,{}),sx:{fontSize:"0.875rem",borderRadius:1,py:.875,borderColor:"primary.main",color:"primary.main","&:hover":{bgcolor:E=>$(E.palette.primary.main,.04),borderColor:"primary.dark"},"&:disabled":{borderColor:"action.disabledBackground",color:"action.disabled"}},children:s==="loading"?"Connecting...":"Test Connection & Load Data"}),s==="ready"&&t.jsxs(o.Box,{sx:{border:"1.5px solid",borderColor:"success.main",borderRadius:2,p:2,bgcolor:E=>$(E.palette.success.main,.04),display:"flex",alignItems:"flex-start",gap:1.5},children:[t.jsx(D.CheckCircle,{sx:{fontSize:20,color:"success.main",flexShrink:0,mt:.1}}),t.jsxs(o.Box,{children:[t.jsxs(o.Typography,{variant:"body2",sx:{fontWeight:500,color:"success.dark",fontSize:"0.875rem"},children:[ee.toLocaleString()," records loaded — ready to create"]}),t.jsx(o.Typography,{variant:"caption",sx:{color:"text.secondary",fontSize:"0.75rem",wordBreak:"break-all",display:"block",mt:.25},children:R})]})]}),s==="error"&&t.jsxs(o.Box,{sx:{border:"1.5px solid",borderColor:"error.main",borderRadius:2,p:2,bgcolor:E=>$(E.palette.error.main,.04),display:"flex",alignItems:"flex-start",gap:1.5},children:[t.jsx(D.ErrorOutline,{sx:{fontSize:20,color:"error.main",flexShrink:0,mt:.1}}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,color:"error.main",fontSize:"0.875rem"},children:"Connection failed"}),t.jsx(o.Typography,{variant:"caption",sx:{color:"text.secondary",fontSize:"0.75rem",display:"block",mt:.25},children:L})]})]})]})]})}),t.jsxs(o.DialogActions,{sx:{px:3,py:2,gap:1,borderTop:"1px solid",borderColor:"divider"},children:[t.jsx(o.Button,{onClick:U,variant:"text",sx:{color:"primary.main",fontSize:"0.875rem",borderRadius:E=>`${E.shape.borderRadius}px`,px:2,py:.625,minWidth:64,"&:hover":{bgcolor:E=>$(E.palette.primary.main,.04)}},children:"Cancel"}),t.jsx(o.Button,{onClick:ce,disabled:B==="json"&&!ie||B==="api"&&s!=="ready",variant:"contained",sx:{fontSize:"0.875rem",borderRadius:E=>`${E.shape.borderRadius}px`,px:2.5,py:.625,minWidth:64,"&:disabled":{bgcolor:"action.disabledBackground",color:"action.disabled"}},children:"Create"})]})]}),t.jsxs(o.Dialog,{open:v,onClose:()=>m(!1),maxWidth:"sm",PaperProps:{sx:E=>({borderRadius:3,width:560,maxHeight:"80vh",...ae(E).paper})},children:[t.jsxs(o.DialogTitle,{sx:E=>({display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2,fontWeight:500,fontSize:"1.25rem",color:"text.primary",letterSpacing:"-0.01em",...ae(E).header}),children:["JSON format guide",t.jsx(o.IconButton,{onClick:()=>m(!1),size:"small",sx:{color:"text.secondary","&:hover":{bgcolor:"action.hover"}},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsx(o.DialogContent,{sx:{px:3,py:2},children:t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2.5},children:[t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",sx:{fontWeight:500,mb:.75,color:"text.primary",fontSize:"0.875rem"},children:"Required format"}),t.jsx(o.Typography,{variant:"body2",sx:{color:"text.secondary",fontSize:"0.8125rem",lineHeight:1.5},children:"Your JSON file must be an array of objects. Each object represents a row, and all should have the same field names."})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",sx:{fontWeight:500,mb:.75,color:"text.primary",fontSize:"0.875rem"},children:"Example structure"}),t.jsx(o.Box,{component:"pre",sx:{bgcolor:"action.hover",border:1,borderColor:"divider",p:2,borderRadius:1,overflow:"auto",maxHeight:200,fontSize:"0.75rem",fontFamily:"monospace",lineHeight:1.5,color:"text.primary"},children:`[
|
|
70
70
|
{
|
|
71
71
|
"id": 1,
|
|
72
72
|
"customerName": "John Smith",
|
|
@@ -76,7 +76,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${r}Chann
|
|
|
76
76
|
"memberSince": "2024-01-15",
|
|
77
77
|
"status": "active"
|
|
78
78
|
}
|
|
79
|
-
]`})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",sx:{fontWeight:500,mb:.75,color:"text.primary",fontSize:"0.875rem"},children:"Supported data types"}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.secondary"},children:"Text, numbers, booleans, dates, and null values"})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",sx:{fontWeight:500,mb:.75,color:"text.primary",fontSize:"0.875rem"},children:"Guidelines"}),t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:.5},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.secondary"},children:"• Must be valid JSON with array format"}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.secondary"},children:"• All objects should have consistent field names"}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.secondary"},children:'• Field names auto-format (e.g., "customerName" → "Customer Name")'})]})]})]})}),t.jsx(o.DialogActions,{sx:{px:3,py:2},children:t.jsx(o.Button,{onClick:()=>m(!1),variant:"contained",sx:{fontSize:"0.875rem",borderRadius:E=>`${E.shape.borderRadius}px`,px:2.5,py:.625,minWidth:64},children:"Got it"})})]})]})}function
|
|
79
|
+
]`})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",sx:{fontWeight:500,mb:.75,color:"text.primary",fontSize:"0.875rem"},children:"Supported data types"}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.secondary"},children:"Text, numbers, booleans, dates, and null values"})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",sx:{fontWeight:500,mb:.75,color:"text.primary",fontSize:"0.875rem"},children:"Guidelines"}),t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:.5},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.secondary"},children:"• Must be valid JSON with array format"}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.secondary"},children:"• All objects should have consistent field names"}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.secondary"},children:'• Field names auto-format (e.g., "customerName" → "Customer Name")'})]})]})]})}),t.jsx(o.DialogActions,{sx:{px:3,py:2},children:t.jsx(o.Button,{onClick:()=>m(!1),variant:"contained",sx:{fontSize:"0.875rem",borderRadius:E=>`${E.shape.borderRadius}px`,px:2.5,py:.625,minWidth:64},children:"Got it"})})]})]})}function Ys({isOpen:e,onClose:r}){return e?t.jsxs(o.Dialog,{open:e,onClose:r,maxWidth:"md",fullWidth:!0,PaperProps:{sx:n=>({borderRadius:Ze(n),maxHeight:"min(640px, calc(100vh - 180px))",my:"auto",display:"flex",flexDirection:"column",...ae(n).paper})},children:[t.jsxs(o.DialogTitle,{sx:n=>({display:"flex",alignItems:"center",justifyContent:"space-between",pb:1,...ae(n).header}),children:["JSON Format Guide",t.jsx(o.IconButton,{onClick:r,size:"small",sx:{color:"text.secondary"},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsx(o.DialogContent,{dividers:!0,sx:{overflowY:"auto",flex:1},children:t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:3,py:1},children:[t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",gutterBottom:!0,children:"Expected JSON Structure"}),t.jsxs(o.Typography,{variant:"body2",color:"text.secondary",children:["The uploaded JSON must be an ",t.jsx("strong",{children:"array of objects"}),". Each object represents a single row in your report, and the keys of each object become the column names."]})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",gutterBottom:!0,children:"Example JSON"}),t.jsx(o.Paper,{elevation:0,sx:{p:2,bgcolor:"action.hover",border:1,borderColor:"divider",borderRadius:1,overflowX:"auto"},children:t.jsx(o.Box,{component:"pre",sx:{fontSize:"caption.fontSize",fontFamily:"monospace",m:0},children:`[
|
|
80
80
|
{
|
|
81
81
|
"Active Sessions": 33,
|
|
82
82
|
"Active State": true,
|
|
@@ -86,10 +86,10 @@ To suppress this warning, you need to explicitly provide the \`palette.${r}Chann
|
|
|
86
86
|
"Region": "Europe",
|
|
87
87
|
"Subscription Type": "Basic"
|
|
88
88
|
}
|
|
89
|
-
]`})})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",gutterBottom:!0,children:"Supported Column Types"}),t.jsx(o.Typography,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:"The system automatically detects column types from your data:"}),t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:1},children:[t.jsxs(o.Box,{sx:{display:"flex",gap:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,minWidth:80},children:"Number:"}),t.jsxs(o.Typography,{variant:"body2",color:"text.secondary",children:["Numeric values (e.g.,"," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:"33"}),","," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:"42.5"}),")"]})]}),t.jsxs(o.Box,{sx:{display:"flex",gap:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,minWidth:80},children:"Boolean:"}),t.jsxs(o.Typography,{variant:"body2",color:"text.secondary",children:["True/false values (e.g.,"," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:"true"}),","," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:"false"}),")"]})]}),t.jsxs(o.Box,{sx:{display:"flex",gap:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,minWidth:80},children:"String:"}),t.jsxs(o.Typography,{variant:"body2",color:"text.secondary",children:["Text values (e.g.,"," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:'"Europe"'}),","," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:'"Analytics Pro"'}),")"]})]}),t.jsxs(o.Box,{sx:{display:"flex",gap:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,minWidth:80},children:"Date:"}),t.jsxs(o.Typography,{variant:"body2",color:"text.secondary",children:["ISO date strings (e.g.,"," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:'"2024-08-22"'}),")"]})]})]})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",gutterBottom:!0,children:"Notes"}),t.jsxs(o.Box,{component:"ul",sx:{m:0,pl:2.5,"& li":{fontSize:"body2.fontSize",color:"text.secondary",mb:.5}},children:[t.jsx("li",{children:"Each object in the array represents one row in the report."}),t.jsx("li",{children:"The keys of the JSON objects become report columns."}),t.jsx("li",{children:"All objects should have consistent keys for proper column detection."}),t.jsx("li",{children:"Column names are case-sensitive and preserve spacing."})]})]})]})}),t.jsx(o.DialogActions,{sx:{px:3,py:1.75,borderTop:"1px solid divider",bgcolor:"action.hover",gap:1.25,justifyContent:"flex-end"},children:t.jsx(o.Button,{onClick:r,variant:"contained",sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"primary.contrastText",px:3,py:.875,minHeight:36,borderRadius:n=>`${n.shape.borderRadius}px`,boxShadow:n=>me(n,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"primary.dark",boxShadow:n=>me(n,"hoverButton")},"&:active":{boxShadow:n=>me(n,"pressedButton"),transform:"translateY(1px)"}},children:"Got it"})})]}):null}function Jd({onFileUpload:e,onError:r,isUploading:n}){const[i,s]=x.useState(!1),[l,a]=x.useState(""),[c,u]=x.useState(!1),g=x.useRef(null),y=async I=>{if(!I.name.endsWith(".json")){r("Only .json files are allowed");return}const f=10*1024*1024;if(I.size>f){r("File size exceeds 10MB limit");return}a(I.name);try{const O=await I.text();let j;try{j=JSON.parse(O)}catch{r("Invalid JSON syntax — please check your file and try again");return}if(!Array.isArray(j)){r("JSON must be an array of objects");return}if(j.length===0){r("No data rows found in JSON file");return}e(j)}catch{r("Network error — please try again")}finally{a("")}},h=I=>{I.preventDefault(),s(!0)},v=I=>{I.preventDefault(),s(!1)},S=I=>{I.preventDefault(),s(!1);const f=I.dataTransfer.files[0];f&&y(f)},B=()=>{var I;(I=g.current)==null||I.click()},C=I=>{var O;const f=(O=I.target.files)==null?void 0:O[0];f&&y(f)},m=I=>{I.stopPropagation(),u(!0)};return t.jsxs(t.Fragment,{children:[t.jsxs(o.Box,{onDragOver:h,onDragLeave:v,onDrop:S,onPaste:I=>I.preventDefault(),onClick:B,sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:400,border:2,borderStyle:"dashed",borderColor:i?"primary.main":"divider",bgcolor:i?I=>$(I.palette.primary.main,.12):"transparent",borderRadius:1,px:2,py:6,cursor:"pointer",transition:"all 0.2s",opacity:n?.5:1,pointerEvents:n?"none":"auto","&:hover":{borderColor:i?"primary.main":"text.secondary"}},children:[t.jsx(o.Box,{component:"input",ref:g,type:"file",accept:".json",onChange:C,sx:{display:"none"}}),n?t.jsxs(t.Fragment,{children:[t.jsx(o.CircularProgress,{size:32,sx:{mb:2}}),t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,mb:.5},children:"Uploading..."}),l&&t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:l})]}):t.jsxs(t.Fragment,{children:[t.jsx(o.Box,{sx:{width:64,height:64,borderRadius:"50%",bgcolor:I=>$(I.palette.primary.main,.12),display:"flex",alignItems:"center",justifyContent:"center",mb:2},children:t.jsx(z.UploadFile,{sx:{fontSize:32,color:"primary.main"}})}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[t.jsx(o.Button,{variant:"contained",sx:{fontWeight:500},children:"Upload Data (JSON)"}),t.jsx(o.IconButton,{onClick:m,size:"small",sx:{border:1,borderColor:"divider","&:hover":{borderColor:"text.secondary",bgcolor:"action.hover"}},title:"View JSON format guide",children:t.jsx(z.InfoOutlined,{sx:{fontSize:16}})})]}),t.jsx(o.Typography,{variant:"body2",color:"text.secondary",sx:{textAlign:"center",maxWidth:500},children:"Upload structured JSON data to generate your report."}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{mt:1},children:"Click to browse or drag and drop a JSON file here"})]})]}),t.jsx(As,{isOpen:c,onClose:()=>u(!1)})]})}function Kd({schema:e,onConfirm:r,hasConflicts:n}){return t.jsxs(o.Paper,{sx:{border:2,borderColor:"divider",p:3},children:[t.jsxs(o.Box,{sx:{mb:2},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontWeight:600,mb:.5},children:"Schema Preview"}),t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:"Review the detected schema before generating your table"})]}),n&&t.jsxs(o.Alert,{severity:"warning",sx:{mb:2},children:[t.jsx(o.AlertTitle,{sx:{fontWeight:600},children:"Schema Conflict Detected"}),"Some columns have inconsistent data types across rows. Please resolve these conflicts before proceeding."]}),t.jsx(o.TableContainer,{sx:{mb:3},children:t.jsxs(o.Table,{children:[t.jsx(o.TableHead,{children:t.jsxs(o.TableRow,{sx:{bgcolor:"action.hover"},children:[t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"caption.fontSize"},children:"Column Name"}),t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"caption.fontSize"},children:"Detected Type"}),t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"caption.fontSize"},children:"Status"})]})}),t.jsx(o.TableBody,{children:e.map(i=>t.jsxs(o.TableRow,{sx:{bgcolor:i.hasConflict?s=>$(s.palette.warning.main,.12):"transparent"},children:[t.jsxs(o.TableCell,{sx:{fontWeight:500},children:[i.name,i.hasConflict&&t.jsx(o.Box,{component:"span",sx:{ml:1,color:"warning.main"},children:"⚠"})]}),t.jsx(o.TableCell,{children:t.jsx(o.Chip,{label:i.type,size:"small",sx:{bgcolor:"action.hover"}})}),t.jsx(o.TableCell,{children:t.jsx(o.Chip,{label:i.required?"Required":"Optional",size:"small",color:i.required?"success":"default"})})]},i.name))})]})}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",pt:2,borderTop:1,borderColor:"divider"},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(z.Lock,{sx:{fontSize:16}}),t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:"Schema will be locked for this report"})]}),t.jsx(o.Button,{variant:"contained",onClick:r,disabled:n,sx:{fontWeight:500},children:"Generate Table"})]})]})}function Xd({error:e,onRetry:r}){return t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:400,border:2,borderColor:"error.light",bgcolor:n=>$(n.palette.error.main,.12),borderRadius:1,px:2,py:6},children:[t.jsx(o.Box,{sx:{width:64,height:64,borderRadius:"50%",bgcolor:n=>$(n.palette.error.main,.3),display:"flex",alignItems:"center",justifyContent:"center",mb:2},children:t.jsx(z.ErrorOutline,{color:"error",sx:{fontSize:32}})}),t.jsx(o.Typography,{variant:"h6",color:"error.main",sx:{fontWeight:600,mb:1},children:"Upload Failed"}),t.jsx(o.Typography,{variant:"body2",color:"error.main",sx:{textAlign:"center",maxWidth:500,mb:3},children:e}),t.jsx(o.Button,{variant:"contained",color:"error",startIcon:t.jsx(z.Upload,{sx:{fontSize:16}}),onClick:r,sx:{fontWeight:500},children:"Try Again"})]})}function Rs({title:e,description:r,showIcon:n=!0}){return t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"60vh",px:3,py:8},children:[n&&t.jsx(o.Box,{sx:{width:80,height:80,borderRadius:"50%",bgcolor:i=>$(i.palette.primary.main,.1),display:"flex",alignItems:"center",justifyContent:"center",mb:3},children:t.jsx(z.Description,{sx:{fontSize:36,color:"primary.main"}})}),t.jsx(o.Typography,{variant:"h5",sx:{fontWeight:500,mb:1,color:"text.primary",fontSize:"1.125rem"},children:e}),t.jsx(o.Typography,{variant:"body1",sx:{textAlign:"center",maxWidth:520,color:"text.secondary",fontSize:"0.875rem",lineHeight:1.5},children:r})]})}function Qd({value:e,onChange:r,searchHistory:n,onAddToHistory:i,onToggleFavourite:s,onDeleteHistory:l,disabled:a}){const[c,u]=x.useState(!1),[g,y]=x.useState(!1),[h,v]=x.useState(-1),S=x.useRef(null),B=x.useRef(null);x.useEffect(()=>{function _(V){S.current&&!S.current.contains(V.target)&&(u(!1),y(!1))}return document.addEventListener("mousedown",_),()=>document.removeEventListener("mousedown",_)},[]);const C=x.useCallback(()=>{y(!0),v(-1),n.length>0&&u(!0)},[n.length]),m=x.useCallback(_=>{r(_),v(-1)},[r]),I=x.useCallback(_=>{var V;r(_),i(_),u(!1),(V=B.current)==null||V.blur()},[r,i]),f=x.useCallback(_=>{v(-1),I(_)},[I]),O=x.useCallback(_=>{var V;_.key==="Enter"?h>=0&&h<n.length?(_.preventDefault(),f(n[h].query)):e.trim()&&I(e.trim()):_.key==="Escape"?(u(!1),v(-1),(V=B.current)==null||V.blur()):_.key==="ArrowDown"?(_.preventDefault(),n.length>0&&(c||u(!0),v(d=>d<n.length-1?d+1:d))):_.key==="ArrowUp"&&(_.preventDefault(),v(d=>d>0?d-1:-1))},[h,n,e,c,f,I]),j=x.useCallback(()=>{var _;r(""),(_=B.current)==null||_.focus()},[r]),w=x.useMemo(()=>n.filter(_=>_.isFavourite),[n]),R=x.useMemo(()=>n.filter(_=>!_.isFavourite),[n]),b=c&&n.length>0;return t.jsxs(o.Box,{sx:{position:"relative",width:240},ref:S,children:[t.jsx(o.TextField,{inputRef:B,size:"small",fullWidth:!0,value:e,onChange:_=>m(_.target.value),onFocus:C,onKeyDown:O,placeholder:"Search data...",disabled:a,sx:{"& .MuiOutlinedInput-root":{borderRadius:"20px",fontSize:"0.875rem",bgcolor:"background.paper",height:"36px","& fieldset":{borderColor:_=>$(_.palette.text.primary,.3),transition:"all 0.15s ease"},"&:hover":{bgcolor:"action.hover"},"&:hover fieldset":{borderColor:_=>$(_.palette.text.primary,.5)},"&.Mui-focused":{bgcolor:"background.paper"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}},"& .MuiOutlinedInput-input":{py:"6px",px:"8px",color:"text.primary"}},InputProps:{startAdornment:t.jsx(o.InputAdornment,{position:"start",sx:{ml:.5},children:t.jsx(z.Search,{sx:{fontSize:18,color:"text.secondary"}})}),endAdornment:e?t.jsx(o.InputAdornment,{position:"end",children:t.jsx(o.IconButton,{size:"small",onClick:j,edge:"end",sx:{mr:-.5},children:t.jsx(z.Close,{sx:{fontSize:16}})})}):null}}),b&&t.jsxs(o.Paper,{sx:{position:"absolute",zIndex:50,mt:.5,width:"100%",maxHeight:384,overflowY:"auto"},elevation:3,children:[w.length>0&&t.jsxs(o.Box,{sx:{py:1},children:[t.jsx(o.Typography,{variant:"caption",sx:{px:1.5,py:.75,display:"block",fontWeight:600,textTransform:"uppercase",color:"text.secondary",letterSpacing:"0.05em"},children:"Favourite Searches"}),w.map((_,V)=>t.jsx(Gi,{entry:_,isSelected:h===V,onClick:()=>f(_.query),onToggleFavourite:()=>s(_.query),onDelete:()=>l(_.query)},`fav-${_.query}`))]}),R.length>0&&t.jsxs(o.Box,{sx:{py:1},children:[w.length>0&&t.jsx(o.Divider,{}),t.jsx(o.Typography,{variant:"caption",sx:{px:1.5,py:.75,display:"block",fontWeight:600,textTransform:"uppercase",color:"text.secondary",letterSpacing:"0.05em"},children:"Recent Searches"}),R.map((_,V)=>{const d=w.length+V;return t.jsx(Gi,{entry:_,isSelected:h===d,onClick:()=>f(_.query),onToggleFavourite:()=>s(_.query),onDelete:()=>l(_.query)},`recent-${_.query}`)})]})]})]})}const Gi=x.memo(function({entry:r,isSelected:n,onClick:i,onToggleFavourite:s,onDelete:l}){const a=x.useCallback(u=>{u.stopPropagation(),s()},[s]),c=x.useCallback(u=>{u.stopPropagation(),l()},[l]);return t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:1.5,py:1,cursor:"pointer",bgcolor:n?u=>$(u.palette.primary.main,.12):"transparent","&:hover":{bgcolor:n?u=>$(u.palette.primary.main,.12):"action.hover"}},children:[t.jsx(o.Box,{sx:{flex:1,minWidth:0},onClick:i,children:t.jsx(o.Typography,{variant:"body2",noWrap:!0,children:r.query})}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5,ml:1},children:[t.jsx(o.IconButton,{size:"small",onClick:a,title:r.isFavourite?"Remove from favourites":"Add to favourites",sx:{p:.5},children:r.isFavourite?t.jsx(z.Star,{sx:{fontSize:14,color:"warning.light"}}):t.jsx(z.StarBorder,{sx:{fontSize:14,color:"action.disabled"}})}),t.jsx(o.IconButton,{size:"small",onClick:c,title:"Delete from history",sx:{p:.5,"&:hover":{color:"error.main"}},children:t.jsx(z.Delete,{sx:{fontSize:14,opacity:.5}})})]})]})});function Zd({views:e,activeViewId:r,isDirty:n,onSelectView:i,onCreateView:s,onToggleDefault:l,onToggleFavorite:a,onRestoreView:c,onPermanentDelete:u,onEditView:g,onCloneView:y,onCopyLink:h,onDeleteView:v,onPromoteToGlobal:S,isReadOnly:B,isAdmin:C=!1}){const m=tt(),[I,f]=x.useState(!1),[O,j]=x.useState(!1),[w,R]=x.useState({top:0,left:0}),[b,_]=x.useState(null),[V,d]=x.useState(null),ee=x.useRef(null),p=x.useRef(null),P=e.find(E=>E.id===r),F=P==null?void 0:P.isDefault,re=(E,Q)=>E.name.localeCompare(Q.name),ce=e.filter(E=>E.scope==="global"&&!E.isDeleted).sort(re),J=e.filter(E=>E.scope!=="global"&&!E.isDeleted).sort(re),Z=e.filter(E=>E.isFavorite&&!E.isDeleted).sort(re),ge=e.filter(E=>E.isDeleted);x.useEffect(()=>{if(I&&p.current){const E=p.current.getBoundingClientRect();R({top:E.bottom+window.scrollY+8,left:E.right+window.scrollX-320})}},[I]),x.useEffect(()=>{const E=Q=>{ee.current&&!ee.current.contains(Q.target)&&p.current&&!p.current.contains(Q.target)&&f(!1)};return I&&document.addEventListener("mousedown",E),()=>{document.removeEventListener("mousedown",E)}},[I]);const H=E=>{if(n&&E!==r){_(E),f(!1);return}i(E),f(!1)},K=()=>{b&&(i(b),_(null))},ne=()=>{_(null)},ae=(E,Q=!1)=>{const xe=E.scope==="global",ie=!B&&(!xe||C),Te=C&&!xe;return t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:1,fontSize:"body2.fontSize",backgroundColor:r===E.id?$(m.palette.primary.main,.12):"transparent",transition:"background-color 0.2s","&:hover":{backgroundColor:r===E.id?$(m.palette.primary.main,.12):m.palette.action.hover}},children:[t.jsxs(o.Button,{onClick:()=>H(E.id),sx:{display:"flex",alignItems:"center",gap:1,flex:1,textAlign:"left",minWidth:0,justifyContent:"flex-start",color:"inherit",p:0,"&:hover":{backgroundColor:"transparent"}},children:[r===E.id&&t.jsx(z.Check,{sx:{fontSize:16,flexShrink:0}}),r!==E.id&&t.jsx(o.Box,{sx:{width:"16px",flexShrink:0}}),t.jsx(o.Typography,{sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:r===E.id?m.palette.primary.dark:m.palette.text.primary,fontWeight:r===E.id?500:400},children:E.name}),Q&&t.jsx(o.Typography,{component:"span",sx:{fontSize:"caption.fontSize",color:m.palette.text.secondary,backgroundColor:m.palette.action.selected,px:1,py:.25,borderRadius:1,flexShrink:0},children:"Default"})]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5,flexShrink:0},children:[ie&&a&&t.jsx(o.IconButton,{onClick:U=>{U.stopPropagation(),a(E.id)},size:"small",sx:{p:.5,transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},title:E.isFavorite?"Remove from favorites":"Add to favorites",children:t.jsx(z.Star,{sx:{fontSize:16}})}),ie&&l&&!E.isDefault&&t.jsx(o.IconButton,{onClick:U=>{U.stopPropagation(),l(E.id)},size:"small",sx:{p:.5,transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},title:"Set as default",children:t.jsx(z.RadioButtonUnchecked,{sx:{fontSize:16}})}),(ie||Te)&&(g||y||h||v||Te&&S)&&t.jsx(o.IconButton,{onClick:U=>{U.stopPropagation(),d({el:U.currentTarget,view:E})},size:"small",sx:{p:.5,transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},title:"More actions",children:t.jsx(z.MoreVert,{sx:{fontSize:16}})})]})]},E.id)},G=E=>t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:1,fontSize:"body2.fontSize",backgroundColor:m.palette.action.hover},children:[t.jsx(o.Typography,{sx:{color:m.palette.text.secondary,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:E.name}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5,flexShrink:0},children:[c&&t.jsx(o.IconButton,{onClick:Q=>{Q.stopPropagation(),c(E.id)},size:"small",sx:{p:.5,transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},title:"Restore view",children:t.jsx(z.Undo,{sx:{fontSize:16,color:"success.main"}})}),u&&t.jsx(o.IconButton,{onClick:Q=>{Q.stopPropagation(),u(E.id)},size:"small",sx:{p:.5,transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},title:"Delete permanently",children:t.jsx(z.Delete,{sx:{fontSize:16,color:"error.main"}})})]})]},E.id),te=n||!F,oe=n;return t.jsxs(o.Box,{sx:{position:"relative"},children:[t.jsxs(o.Button,{ref:p,onClick:()=>f(!I),variant:"outlined",size:"small",endIcon:t.jsx(z.KeyboardArrowDown,{sx:{fontSize:18}}),sx:{position:"relative",minWidth:140,maxWidth:220,justifyContent:"space-between",fontSize:"0.8125rem",textTransform:"none",color:te?"warning.main":"text.primary",borderColor:te?"warning.main":"divider",bgcolor:te?$(m.palette.warning.main,.12):"transparent",borderRadius:1,py:.5,px:1.25,transition:"all 0.15s ease","&:hover":{borderColor:te?"warning.dark":"primary.main",bgcolor:te?$(m.palette.warning.main,.2):$(m.palette.text.primary,.06),color:te?"warning.dark":"text.primary"}},title:`View: ${(P==null?void 0:P.name)||"Default View"}`,children:[t.jsx(o.Box,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis"},children:(P==null?void 0:P.name)||"Default View"}),oe&&t.jsx(o.Box,{component:"span",sx:{position:"absolute",top:-2,right:-2,width:8,height:8,borderRadius:"50%",bgcolor:"warning.main",border:"2px solid",borderColor:"background.paper"}})]}),I&&ns.createPortal(t.jsxs(o.Box,{ref:ee,sx:{position:"fixed",width:"320px",backgroundColor:m.palette.background.paper,border:`1px solid ${m.palette.divider}`,borderRadius:1,boxShadow:m.shadows[8],zIndex:50,maxHeight:"500px",overflowY:"auto",top:w.top,left:w.left},children:[ce.length>0&&t.jsxs(o.Box,{sx:{py:.5},children:[t.jsx(o.Typography,{sx:{px:2,py:1,fontSize:"caption.fontSize",fontWeight:600,color:m.palette.text.secondary,textTransform:"uppercase",letterSpacing:"0.05em"},children:"Global Views"}),ce.map(E=>ae(E,E.isDefault))]}),Z.length>0&&t.jsxs(t.Fragment,{children:[t.jsx(o.Box,{sx:{borderTop:`1px solid ${m.palette.divider}`}}),t.jsxs(o.Box,{sx:{py:.5},children:[t.jsxs(o.Box,{sx:{px:2,py:1,fontSize:"caption.fontSize",fontWeight:600,color:m.palette.text.secondary,textTransform:"uppercase",letterSpacing:"0.05em",display:"flex",alignItems:"center",gap:.5},children:[t.jsx(z.Star,{sx:{fontSize:12,color:"warning.light"}}),t.jsx(o.Typography,{component:"span",sx:{fontSize:"inherit",fontWeight:"inherit"},children:"Favorite Views"})]}),Z.map(E=>ae(E))]})]}),J.length>0&&t.jsxs(t.Fragment,{children:[t.jsx(o.Box,{sx:{borderTop:`1px solid ${m.palette.divider}`}}),t.jsxs(o.Box,{sx:{py:.5},children:[t.jsx(o.Typography,{sx:{px:2,py:1,fontSize:"caption.fontSize",fontWeight:600,color:m.palette.text.secondary,textTransform:"uppercase",letterSpacing:"0.05em"},children:"Personal Views"}),J.map(E=>ae(E))]})]}),ge.length>0&&t.jsxs(t.Fragment,{children:[t.jsx(o.Box,{sx:{borderTop:`1px solid ${m.palette.divider}`}}),t.jsxs(o.Box,{sx:{py:.5},children:[t.jsxs(o.Button,{onClick:()=>j(!O),sx:{width:"100%",px:2,py:1,fontSize:"caption.fontSize",fontWeight:600,color:m.palette.text.secondary,textTransform:"uppercase",letterSpacing:"0.05em",display:"flex",alignItems:"center",justifyContent:"space-between",transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},children:[t.jsxs(o.Typography,{component:"span",sx:{fontSize:"inherit",fontWeight:"inherit"},children:["Recently Deleted (",ge.length,")"]}),t.jsx(z.ChevronRight,{sx:{fontSize:16}})]}),O&&t.jsx(o.Box,{sx:{backgroundColor:m.palette.action.hover},children:ge.map(E=>G(E))})]})]}),t.jsx(o.Box,{sx:{borderTop:`1px solid ${m.palette.divider}`}}),t.jsxs(o.Button,{onClick:()=>{s(),f(!1)},sx:{width:"100%",display:"flex",alignItems:"center",gap:1,px:2,py:1,fontSize:"body2.fontSize",color:m.palette.text.primary,justifyContent:"flex-start",transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},children:[t.jsx(z.Add,{sx:{fontSize:16}}),t.jsx(o.Typography,{component:"span",sx:{fontSize:"inherit"},children:"Create New Report View"})]}),t.jsxs(o.Popover,{open:!!V,anchorEl:(V==null?void 0:V.el)||null,onClose:()=>d(null),disablePortal:!0,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[g&&t.jsxs(o.MenuItem,{onClick:()=>{V&&g(V.view.id),d(null)},sx:{gap:1.5,fontSize:"body2.fontSize"},children:[t.jsx(z.Edit,{sx:{fontSize:18}}),"Edit"]}),h&&t.jsxs(o.MenuItem,{onClick:()=>{V&&h(V.view.id),d(null)},sx:{gap:1.5,fontSize:"body2.fontSize"},children:[t.jsx(z.Link,{sx:{fontSize:18}}),"Copy Link"]}),y&&t.jsxs(o.MenuItem,{onClick:()=>{V&&y(V.view.id),d(null)},sx:{gap:1.5,fontSize:"body2.fontSize"},children:[t.jsx(z.ContentCopy,{sx:{fontSize:18}}),"Clone"]}),S&&C&&(V==null?void 0:V.view.scope)!=="global"&&t.jsxs(o.MenuItem,{onClick:()=>{V&&S(V.view.id),d(null)},sx:{gap:1.5,fontSize:"body2.fontSize"},children:[t.jsx(z.Language,{sx:{fontSize:18}}),"Promote to Global"]}),v&&[t.jsx(o.Divider,{},"delete-divider"),t.jsxs(o.MenuItem,{onClick:()=>{V&&v(V.view.id),d(null)},sx:{gap:1.5,fontSize:"body2.fontSize",color:"error.main"},children:[t.jsx(z.Delete,{sx:{fontSize:18}}),"Delete"]},"delete-item")]]})]}),document.body),t.jsxs(o.Dialog,{open:b!==null,onClose:ne,maxWidth:"xs",fullWidth:!0,PaperProps:{sx:{borderRadius:Jr(m)}},children:[t.jsxs(o.DialogTitle,{sx:{display:"flex",alignItems:"center",gap:1,pb:1},children:[t.jsx(z.Warning,{sx:{fontSize:20,color:"warning.main"}}),"Unsaved changes"]}),t.jsx(o.DialogContent,{children:t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:"You have unsaved changes to the current view. Switching views will discard them."})}),t.jsxs(o.DialogActions,{sx:{px:3,pb:2,gap:1},children:[t.jsx(o.Button,{onClick:ne,variant:"text",children:"Stay here"}),t.jsx(o.Button,{onClick:K,variant:"contained",color:"warning",children:"Discard & switch"})]})]})]})}function eu({columnName:e,columnType:r="string",currentSort:n,hasFilters:i,isInSortStack:s,isReadOnly:l=!1,hasModifications:a=!1,position:c,onSortAscending:u,onSortDescending:g,onRemoveSort:y,onFilter:h,onClearFilter:v,onGroupByColumn:S,onHideColumn:B,onManageColumns:C,onResetLayout:m,onClose:I}){const f=tt(),O=f.palette,j=x.useRef(null);x.useEffect(()=>{if(!j.current)return;const d=j.current,ee=d.getBoundingClientRect(),p=window.innerWidth,P=window.innerHeight;ee.right>p-8&&(d.style.left=`${p-ee.width-8}px`),ee.bottom>P-8&&(d.style.top=`${P-ee.height-8}px`)},[c]),x.useEffect(()=>{const d=p=>{j.current&&!j.current.contains(p.target)&&I()},ee=p=>{p.key==="Escape"&&I()};return document.addEventListener("mousedown",d),document.addEventListener("keydown",ee),()=>{document.removeEventListener("mousedown",d),document.removeEventListener("keydown",ee)}},[I]);const w=x.useCallback(d=>()=>{d(),I()},[I]),R=(n==null?void 0:n.direction)==="asc",b=(n==null?void 0:n.direction)==="desc",_=r==="number"?"0→9":r==="boolean"?"F→T":"A→Z",V=r==="number"?"9→0":r==="boolean"?"T→F":"Z→A";return ns.createPortal(t.jsxs(o.Paper,{ref:j,elevation:0,sx:{position:"fixed",left:`${c.x}px`,top:`${c.y}px`,zIndex:f.zIndex.tooltip,minWidth:210,maxWidth:264,border:"1px solid",borderColor:"divider",borderRadius:Jr(f),overflow:"hidden",boxShadow:`0 4px 20px ${$(O.common.black,.12)}, 0 1px 4px ${$(O.common.black,.06)}`},children:[!l&&t.jsxs(o.Box,{sx:{px:2,py:.75,display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:"1px solid",borderColor:"divider"},children:[t.jsx(o.Typography,{sx:{fontSize:"0.8125rem",fontWeight:500,color:"text.primary"},children:"Sorting"}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.25},children:[t.jsx(o.Tooltip,{title:`Sort Ascending (${_})`,placement:"top",arrow:!0,children:t.jsx(o.IconButton,{size:"small",onClick:w(()=>u(e)),sx:{p:.625,borderRadius:"6px",color:R?"primary.main":"text.secondary",bgcolor:R?$(O.primary.main,.1):"transparent","&:hover":{bgcolor:$(O.primary.main,.08),color:"primary.main"}},children:t.jsx(z.ArrowUpward,{sx:{fontSize:16}})})}),t.jsx(o.Tooltip,{title:`Sort Descending (${V})`,placement:"top",arrow:!0,children:t.jsx(o.IconButton,{size:"small",onClick:w(()=>g(e)),sx:{p:.625,borderRadius:"6px",color:b?"primary.main":"text.secondary",bgcolor:b?$(O.primary.main,.1):"transparent","&:hover":{bgcolor:$(O.primary.main,.08),color:"primary.main"}},children:t.jsx(z.ArrowDownward,{sx:{fontSize:16}})})}),t.jsx(o.Tooltip,{title:"Clear Sort",placement:"top",arrow:!0,children:t.jsx("span",{children:t.jsx(o.IconButton,{size:"small",disabled:!s,onClick:w(()=>y(e)),sx:{p:.625,borderRadius:"6px",color:"text.secondary","&:hover":{bgcolor:$(O.error.main,.08),color:"error.main"},"&.Mui-disabled":{opacity:.3}},children:t.jsx(z.Close,{sx:{fontSize:16}})})})})]})]}),t.jsxs(o.MenuList,{dense:!0,sx:{py:.5},children:[t.jsxs(o.MenuItem,{onClick:w(()=>h(e)),sx:{py:.75,px:1.5,borderRadius:"6px",mx:.5,minHeight:34},children:[t.jsx(o.ListItemIcon,{sx:{minWidth:28},children:t.jsx(z.FilterList,{sx:{fontSize:16,color:i?"primary.main":"text.secondary"}})}),t.jsx(o.ListItemText,{primary:"Filter by Column",primaryTypographyProps:{fontSize:"0.8125rem",fontWeight:i?600:400,color:i?"primary.main":"text.primary"}})]}),i&&!l&&t.jsxs(o.MenuItem,{onClick:w(()=>v(e)),sx:{py:.75,px:1.5,borderRadius:"6px",mx:.5,minHeight:34,"&:hover":{bgcolor:$(O.warning.main,.06),"& .MuiListItemText-primary":{color:"warning.main"},"& .MuiListItemIcon-root svg":{color:"warning.main"}}},children:[t.jsx(o.ListItemIcon,{sx:{minWidth:28},children:t.jsx(z.FilterListOff,{sx:{fontSize:16,color:"text.secondary"}})}),t.jsx(o.ListItemText,{primary:"Clear Filter",primaryTypographyProps:{fontSize:"0.8125rem"}})]})]}),!l&&S&&t.jsxs(t.Fragment,{children:[t.jsx(o.Divider,{sx:{my:.25}}),t.jsx(o.MenuList,{dense:!0,sx:{py:.5},children:t.jsxs(o.MenuItem,{onClick:w(()=>S(e)),sx:{py:.75,px:1.5,borderRadius:"6px",mx:.5,minHeight:34},children:[t.jsx(o.ListItemIcon,{sx:{minWidth:28},children:t.jsx(z.GroupWorkOutlined,{sx:{fontSize:16,color:"text.secondary"}})}),t.jsx(o.ListItemText,{primary:"Group By Column",primaryTypographyProps:{fontSize:"0.8125rem"}})]})})]}),t.jsx(o.Divider,{sx:{my:.25}}),t.jsxs(o.MenuList,{dense:!0,sx:{py:.5},children:[!l&&t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",mx:.5,borderRadius:"6px",overflow:"hidden","&:hover":{bgcolor:"action.hover"}},children:[t.jsxs(o.MenuItem,{onClick:w(()=>B(e)),sx:{flex:1,py:.75,px:1.5,minHeight:34,borderRadius:"6px 0 0 6px","&:hover":{bgcolor:"transparent"}},children:[t.jsx(o.ListItemIcon,{sx:{minWidth:28},children:t.jsx(z.VisibilityOff,{sx:{fontSize:16,color:"text.secondary"}})}),t.jsx(o.ListItemText,{primary:"Hide Column",primaryTypographyProps:{fontSize:"0.8125rem"}})]}),t.jsx(o.Tooltip,{title:"Manage Columns",placement:"top",arrow:!0,children:t.jsx(o.IconButton,{size:"small",onClick:w(C),sx:{mr:.75,p:.625,borderRadius:"6px",color:"text.secondary","&:hover":{bgcolor:$(O.primary.main,.08),color:"primary.main"}},children:t.jsx(z.Settings,{sx:{fontSize:16}})})})]}),l&&t.jsxs(o.MenuItem,{onClick:w(C),sx:{py:.75,px:1.5,borderRadius:"6px",mx:.5,minHeight:34},children:[t.jsx(o.ListItemIcon,{sx:{minWidth:28},children:t.jsx(z.Settings,{sx:{fontSize:16,color:"text.secondary"}})}),t.jsx(o.ListItemText,{primary:"Manage Columns",primaryTypographyProps:{fontSize:"0.8125rem"}})]}),!l&&a&&m&&t.jsxs(o.MenuItem,{onClick:w(m),sx:{py:.75,px:1.5,borderRadius:"6px",mx:.5,minHeight:34,"&:hover":{bgcolor:$(O.error.main,.05),"& .MuiListItemText-primary":{color:"error.main"},"& .MuiListItemIcon-root svg":{color:"error.main"}}},children:[t.jsx(o.ListItemIcon,{sx:{minWidth:28},children:t.jsx(z.RestartAlt,{sx:{fontSize:16,color:"text.secondary"}})}),t.jsx(o.ListItemText,{primary:"Reset to Default Layout",primaryTypographyProps:{fontSize:"0.8125rem"}})]})]})]}),document.body)}const tu=176,Yi="COLUMN_HEADER",ru=x.memo(function({column:r,index:n,sortRule:i,hasFilters:s,isInSortStack:l,isReadOnly:a=!1,hasModifications:c=!1,width:u,onColumnClick:g,onMoveColumn:y,onColumnDragEnd:h,onResizeStart:v,onSortAscending:S,onSortDescending:B,onRemoveSort:C,onOpenFilterForColumn:m,onClearFiltersForColumn:I,onGroupByColumn:f,onHideColumn:O,onManageColumns:j,onResetLayout:w}){const b=tt().urmTable,_=x.useRef(null),[V,d]=x.useState(!1),[ee,p]=x.useState({x:0,y:0}),[{handlerId:P,isOver:F},re]=Yt.useDrop({accept:Yi,collect(G){return{handlerId:G.getHandlerId(),isOver:G.isOver()}},hover(G,te){var U;if(!_.current)return;const oe=G.index,E=n;if(oe===E)return;const Q=(U=_.current)==null?void 0:U.getBoundingClientRect(),xe=(Q.right-Q.left)/2,ie=te.getClientOffset(),Te=((ie==null?void 0:ie.x)??0)-Q.left;oe<E&&Te<xe||oe>E&&Te>xe||(y(oe,E),G.index=E)}}),[{isDragging:ce},J]=Yt.useDrag({type:Yi,item:()=>({index:n,columnName:r.name}),collect:G=>({isDragging:G.isDragging()}),end:()=>{h==null||h()}});J(re(_));const Z=x.useCallback(G=>{G.preventDefault(),G.stopPropagation(),p({x:G.clientX,y:G.clientY}),d(!0)},[]),ge=x.useCallback(()=>d(!1),[]),H=x.useCallback(()=>{g(r.name)},[g,r.name]),K=x.useCallback(G=>{G.stopPropagation(),m(r.name)},[m,r.name]),ne=x.useCallback(()=>i?t.jsxs(o.Box,{sx:{display:"inline-flex",alignItems:"center",ml:.5,gap:.25},children:[i.direction==="asc"?t.jsx(z.ArrowUpward,{sx:{fontSize:13,color:"primary.main"}}):t.jsx(z.ArrowDownward,{sx:{fontSize:13,color:"primary.main"}}),t.jsx(o.Box,{sx:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:16,height:16,bgcolor:"primary.main",color:"primary.contrastText",fontSize:"0.6rem",fontWeight:700,borderRadius:"50%",lineHeight:1},children:i.priority})]}):null,[i]),ae=x.useCallback(()=>s?t.jsx(z.FilterList,{onClick:K,titleAccess:"Active filter on this column — click to edit",sx:{ml:.5,fontSize:13,color:"primary.main",cursor:"pointer",flexShrink:0,"&:hover":{transform:"scale(1.15)"},transition:"transform 0.12s ease"}}):null,[s,K]);return t.jsxs(t.Fragment,{children:[t.jsxs(o.TableCell,{ref:_,"data-handler-id":P,"data-column-index":n,onClick:H,onContextMenu:Z,sx:{position:"sticky",top:0,zIndex:5,textAlign:(b==null?void 0:b.cellAlignH)??"left",verticalAlign:(b==null?void 0:b.cellAlignV)??"middle",fontSize:"0.8125rem",fontWeight:700,textTransform:"none",letterSpacing:0,whiteSpace:"nowrap",overflow:"visible",cursor:"pointer",userSelect:"none",color:(b==null?void 0:b.headerColor)??"text.secondary",opacity:ce?.25:1,transition:"background-color 0.12s ease, opacity 0.15s ease",bgcolor:F?G=>$(G.palette.primary.main,.08):(b==null?void 0:b.headerBg)??"action.hover",boxShadow:G=>`0 1px 0 ${$(G.palette.common.black,.08)}`,backgroundImage:"none",borderBottom:(b==null?void 0:b.rowDivider)??"1px solid",borderRight:b==null?void 0:b.colDivider,borderColor:"divider",py:0,px:(b==null?void 0:b.cellPaddingX)??2,"&:hover":{bgcolor:G=>$(G.palette.primary.main,.1),color:"text.primary"},width:u?`${u}px`:`${tu}px`},children:[t.jsxs(o.Box,{sx:{display:"inline-flex",alignItems:"center",overflow:"hidden",maxWidth:"100%",pr:"12px"},children:[et(r.name),ne(),ae()]}),t.jsx(o.Box,{draggable:!1,onDragStart:G=>G.preventDefault(),sx:{position:"absolute",right:0,top:0,height:"100%",width:8,cursor:"col-resize",zIndex:20,display:"flex",alignItems:"center",justifyContent:"center","&:hover > div":{opacity:1}},onMouseDown:G=>{G.preventDefault(),G.stopPropagation(),v(G,r.name)},onClick:G=>G.stopPropagation(),children:t.jsx(o.Box,{draggable:!1,sx:{width:2,height:"50%",borderRadius:1,opacity:0,bgcolor:"primary.main",transition:"opacity 0.15s ease",pointerEvents:"none"}})}),F&&t.jsx(o.Box,{sx:{position:"absolute",left:0,top:0,bottom:0,width:4,bgcolor:"primary.main"}})]}),V&&t.jsx(eu,{columnName:r.name,columnType:r.type,currentSort:i,hasFilters:s,isInSortStack:l,isReadOnly:a,hasModifications:c,position:ee,onSortAscending:S,onSortDescending:B,onRemoveSort:C,onFilter:m,onClearFilter:I,onGroupByColumn:f,onHideColumn:O,onManageColumns:j,onResetLayout:w,onClose:ge})]})}),ou={active:"success",completed:"success",approved:"success",success:"success",done:"success",contract:"info","in progress":"info","in review":"info",review:"info",pending:"info","on leave":"error","on hold":"warning",probation:"warning",cancelled:"error",rejected:"error",blocked:"error",inactive:"neutral","not started":"neutral",paused:"neutral"};function Fo(e,r){const n=ou[r.toLowerCase().trim()];if(!n||n==="neutral")return{bg:e.palette.action.selected,color:e.palette.text.secondary};const i=e.palette[n];return{bg:$(i.main,e.palette.mode==="dark"?.24:.12),color:e.palette.mode==="dark"?i.light:i.dark}}function nu(e,r){switch(r.toLowerCase().trim()){case"low":return e.palette.text.secondary;case"medium":return e.palette.warning.main;case"high":return e.palette.mode==="dark"?e.palette.warning.light:e.palette.warning.dark;case"critical":case"urgent":return e.palette.error.main;default:return}}const iu={filters:{hue:"primary",shade:"main"},sorting:{hue:"secondary",shade:"main"},grouping:{hue:"success",shade:"main"},columns:{hue:"warning",shade:"main"},views:{hue:"error",shade:"main"},theme:{hue:"info",shade:"main"},export:{hue:"primary",shade:"dark"},presets:{hue:"secondary",shade:"dark"},system:{hue:"error",shade:"dark"}};function su(e,r){const n=iu[r];return n?e.palette[n.hue][n.shade]:e.palette.text.secondary}function at(e){return $(e.palette.primary.main,e.palette.mode==="dark"?.24:.12)}function au(e){const r=e.toLowerCase().trim();return t.jsx(o.Box,{component:"span",sx:{display:"inline-flex",alignItems:"center",px:1,py:.25,borderRadius:"10px",fontSize:"0.75rem",fontWeight:n=>{var i;return(i=n.tokens)!=null&&i.statusBold?700:500},bgcolor:n=>Fo(n,r).bg,color:n=>Fo(n,r).color,whiteSpace:"nowrap",lineHeight:1.5},children:e})}function lu(e,r){if(r==null||r==="")return t.jsx(o.Box,{component:"span",sx:{color:"text.disabled",fontSize:"0.875rem"},children:"—"});const n=String(r),i=e.name.toLowerCase();if(/\b(status|state|stage)\b/.test(i))return au(n);if(/\b(priority|severity|urgency)\b/.test(i)){const s=n.toLowerCase().trim();return t.jsx(o.Box,{component:"span",sx:l=>{const a=nu(l,s);return a?{color:a,fontWeight:600,fontSize:"0.875rem"}:{fontSize:"0.875rem"}},children:n})}return typeof r=="boolean"?t.jsx(o.Box,{component:"span",sx:{fontSize:"0.875rem"},children:r?"Yes":"No"}):typeof r=="object"?t.jsx(o.Box,{component:"span",sx:{fontSize:"0.875rem"},children:JSON.stringify(r)}):t.jsx(o.Box,{component:"span",sx:{fontSize:"0.875rem"},children:n})}function cu(e){const r=e.find(s=>{const l=s.name.toLowerCase();return/\b(name|title|label|subject|task_?name|taskname)\b/.test(l)})||e[0]||null,n=e.find(s=>{const l=s.name.toLowerCase().replace(/[\s_-]/g,"");return/(^id$|id$|_id$|taskid|code$|ref$)/.test(l)&&s!==r})||null,i=e.filter(s=>s!==r&&s!==n).slice(0,4);return{primaryCol:r,idCol:n,bodyColumns:i}}function du({row:e,rowIndex:r,visibleColumns:n,isSelected:i,isReadOnly:s,onToggleSelection:l,onView:a,onEdit:c,onDuplicate:u,onDelete:g}){const[y,h]=x.useState(null),[v,S]=x.useState(!1),{primaryCol:B,idCol:C,bodyColumns:m}=x.useMemo(()=>cu(n),[n]),I=B?e[B.name]:null,f=C?e[C.name]:null,O=v||i||!!y;return t.jsxs(o.Box,{onMouseEnter:()=>S(!0),onMouseLeave:()=>S(!1),onClick:()=>l(r),sx:{position:"relative",display:"flex",flexDirection:"column",bgcolor:"background.paper",border:j=>{var R,b,_,V;const w=(V=(_=(b=(R=j.components)==null?void 0:R.MuiCard)==null?void 0:b.styleOverrides)==null?void 0:_.root)==null?void 0:V.border;return i?"2px solid":w&&w!=="none"?w:"1px solid"},borderColor:i?j=>At(j).main:j=>{var R,b,_,V;const w=(V=(_=(b=(R=j.components)==null?void 0:R.MuiCard)==null?void 0:b.styleOverrides)==null?void 0:_.root)==null?void 0:V.border;return w&&w!=="none"?"inherit":$(j.palette.divider,.8)},borderWidth:i?2:void 0,borderRadius:j=>{var R,b,_,V;const w=(V=(_=(b=(R=j.components)==null?void 0:R.MuiCard)==null?void 0:b.styleOverrides)==null?void 0:_.root)==null?void 0:V.borderRadius;return w!==void 0?typeof w=="number"?`${w}px`:w:`${j.shape.borderRadius}px`},cursor:"pointer",transition:"box-shadow 0.2s ease, border-color 0.2s ease, transform 0.15s ease",overflow:"hidden",minHeight:180,boxShadow:i?j=>`0 0 0 3px ${$(At(j).main,.15)}, 0 2px 8px ${$(j.palette.common.black,.08)}`:v?j=>{var R,b,_,V;const w=(V=(_=(b=(R=j.components)==null?void 0:R.MuiCard)==null?void 0:b.styleOverrides)==null?void 0:_.root)==null?void 0:V.boxShadow;return w&&w!=="none"?w:me(j,"cardHover")}:j=>{var R,b,_,V;const w=(V=(_=(b=(R=j.components)==null?void 0:R.MuiCard)==null?void 0:b.styleOverrides)==null?void 0:_.root)==null?void 0:V.boxShadow;return w&&w!=="none"?w:me(j,"cardRest")},transform:v&&!i?"translateY(-2px)":"none","&:active":{transform:"translateY(0)"},...i&&{bgcolor:j=>$(At(j).main,.03)}},children:[t.jsx(o.Box,{sx:j=>{var V,d,ee,p;const w=((ee=(d=(V=j.components)==null?void 0:V.MuiCardHeader)==null?void 0:d.styleOverrides)==null?void 0:ee.root)||{},R=(w.backgroundColor&&w.backgroundColor!=="transparent"?w.backgroundColor:void 0)??((p=j.tokens)==null?void 0:p.cardHdrHex)??"transparent",b=w.borderBottom&&w.borderBottom!=="none"?w.borderBottom:void 0,_=w.boxShadow&&w.boxShadow!=="none"?w.boxShadow:void 0;return{px:2,pt:1.75,pb:1.5,bgcolor:R,borderBottom:b,boxShadow:_}},children:t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600,fontSize:"0.9375rem",color:"text.primary",lineHeight:1.35,wordBreak:"break-word",letterSpacing:"-0.01em"},children:I!=null&&I!==""?String(I):t.jsx(o.Box,{component:"span",sx:{color:"text.disabled",fontStyle:"italic",fontWeight:400},children:"Untitled"})})}),t.jsx(o.Box,{sx:j=>{var b,_,V;const w=((V=(_=(b=j.components)==null?void 0:b.MuiCardHeader)==null?void 0:_.styleOverrides)==null?void 0:V.root)||{};return w.borderBottom&&w.borderBottom!=="none"?{display:"none"}:{mx:2,height:"1px",bgcolor:"divider",flexShrink:0}}}),t.jsxs(o.Box,{sx:{px:2,py:1.5,flex:1,display:"grid",gridTemplateColumns:"repeat(2, 1fr)",columnGap:1.5,rowGap:1,alignContent:"start"},children:[m.map(j=>t.jsxs(o.Box,{sx:{minWidth:0},children:[t.jsx(o.Typography,{sx:{color:"text.secondary",fontWeight:500,fontSize:"0.6875rem",textTransform:"uppercase",letterSpacing:"0.06em",lineHeight:1.2,mb:.25},children:et(j.name)}),t.jsx(o.Box,{sx:{lineHeight:1.3,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},title:String(e[j.name]??""),children:lu(j,e[j.name])})]},j.name)),m.length===0&&t.jsx(o.Typography,{variant:"caption",color:"text.disabled",sx:{fontStyle:"italic",gridColumn:"1 / -1"},children:"No additional fields visible"})]}),t.jsxs(o.Box,{sx:{px:2,py:1,display:"flex",alignItems:"center",justifyContent:"space-between",borderTop:"1px solid",borderColor:"divider",bgcolor:j=>$(j.palette.action.hover,.1),minHeight:40},children:[t.jsx(o.Typography,{sx:{color:"primary.main",fontFamily:'"Roboto Mono", "Courier New", monospace',fontSize:"0.75rem",fontWeight:400,letterSpacing:"0.04em",opacity:f?.85:0,userSelect:"none"},children:f?String(f):" "}),t.jsx(o.Box,{sx:{display:"flex",alignItems:"center",gap:.25,opacity:O?1:0,transition:"opacity 0.15s ease"},onClick:j=>j.stopPropagation(),children:t.jsx(o.Tooltip,{title:"More actions",placement:"top",children:t.jsx(o.IconButton,{size:"small",onClick:j=>{j.stopPropagation(),h(j.currentTarget)},sx:{width:28,height:28,color:"action.active","&:hover":{bgcolor:j=>$(j.palette.text.primary,.08)}},children:t.jsx(z.MoreVert,{sx:{fontSize:17}})})})})]}),t.jsxs(o.Popover,{open:!!y,anchorEl:y,onClose:()=>h(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{minWidth:180,py:.5,borderRadius:j=>Jr(j),boxShadow:j=>me(j,"popover")}},onClick:j=>j.stopPropagation(),children:[t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{a(e),h(null)},sx:{py:1,px:2,gap:1.5,borderRadius:"6px",mx:.5},children:[t.jsx(z.Visibility,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"View"})]}),!s&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{c(e,r),h(null)},sx:{py:1,px:2,gap:1.5,borderRadius:"6px",mx:.5},children:[t.jsx(z.Edit,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Edit"})]}),!s&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{u(r,e),h(null)},sx:{py:1,px:2,gap:1.5,borderRadius:"6px",mx:.5},children:[t.jsx(z.ContentCopy,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Duplicate"})]}),!s&&t.jsxs(t.Fragment,{children:[t.jsx(o.Divider,{sx:{my:.5,mx:.5}}),t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{g(r,e),h(null)},sx:{py:1,px:2,gap:1.5,borderRadius:"6px",mx:.5,color:"error.main"},children:[t.jsx(z.Delete,{sx:{fontSize:18,color:"error.main"}}),t.jsx(o.Typography,{variant:"body2",color:"error.main",children:"Delete"})]})]})]})]})}function uu({row:e,grouping:r,onToggleCollapse:n}){var i;return t.jsxs(o.Box,{onClick:()=>n(e.groupKey),sx:{gridColumn:"1 / -1",display:"flex",alignItems:"center",gap:1,px:2,py:1,mt:1,mb:.5,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",borderRadius:"8px",cursor:"pointer",boxShadow:s=>me(s,"flatHover"),"&:hover":{bgcolor:s=>$(s.palette.primary.main,.04),borderColor:"primary.light"},transition:"all 0.15s ease"},children:[e.isCollapsed?t.jsx(z.ChevronRight,{sx:{fontSize:16,color:"text.secondary"}}):t.jsx(z.KeyboardArrowDown,{sx:{fontSize:16,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"h5",sx:{fontWeight:600,color:"text.primary"},children:us(e.groupLevel,((i=r==null?void 0:r.levels[e.groupLevel])==null?void 0:i.column)||"",e.groupValue)}),t.jsxs(o.Box,{sx:{px:1,py:.125,fontSize:"0.6875rem",fontWeight:600,bgcolor:s=>$(s.palette.primary.main,.1),color:"primary.main",borderRadius:"10px"},children:[e.rowCount," ",e.rowCount===1?"row":"rows"]}),Object.keys(e.aggregates).length>0&&t.jsx(o.Typography,{variant:"caption",sx:{ml:.5,color:"text.secondary"},children:Object.entries(e.aggregates).map(([s,l])=>ds(l)).filter(Boolean).join(" • ")})]})}function pu({data:e,visibleColumns:r,grouping:n,selectedRowIds:i,isReadOnly:s,isGrouped:l,onToggleRowSelection:a,onToggleGroupCollapse:c,onViewRow:u,onEditRow:g,onDuplicateRow:y,onDeleteRow:h}){const v=x.useMemo(()=>{const S=new Set;return i.forEach(B=>{const C=B==null?void 0:B.__urm_row_id__;C!==void 0&&S.add(C)}),S},[i]);return e.length===0?t.jsx(o.Box,{sx:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",py:10},children:t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:"No data matches the current filters"})}):t.jsx(o.Box,{sx:{fontFamily:S=>S.typography.fontFamily},children:t.jsx(o.Box,{sx:{p:S=>Ui(S).containerPad,display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",gap:S=>Ui(S).cardGap,alignContent:"start"},children:e.map((S,B)=>l&&S.isGroupHeader?t.jsx(uu,{row:S,grouping:n,onToggleCollapse:c||(()=>{})},`group-${S.groupKey}`):t.jsx(du,{row:S,rowIndex:B,visibleColumns:r,isSelected:v.has(S==null?void 0:S.__urm_row_id__),isReadOnly:s,onToggleSelection:()=>a(S),onView:u,onEdit:g,onDuplicate:y,onDelete:h},`card-${B}`))})})}const qi=[10,15,25,50,100];function xu(e,r){const n=e.trim();if(n==="")return"Page number is required";if(!/^-?\d+$/.test(n))return"Must be a number";const i=parseInt(n,10);return i<1?"Page number must be at least 1":i>r?"Entered page number is out of range":null}function mu({currentPage:e,pageSize:r,totalRows:n,totalFields:i,onPageChange:s,onPageSizeChange:l}){const c=tt().palette,u=Math.ceil(n/r),[g,y]=x.useState(String(e)),[h,v]=x.useState(null),[S,B]=x.useState(!1),C=x.useRef(null);x.useEffect(()=>{S||(y(String(e)),v(null))},[e,S]);const m=x.useCallback(()=>{const P=xu(g,u);if(P){v(P);return}const F=parseInt(g.trim(),10);v(null),B(!1),F!==e&&s(F)},[g,u,e,s]),I=x.useCallback(P=>{var F;P.key==="Enter"?(P.preventDefault(),m()):P.key==="Escape"&&(y(String(e)),v(null),B(!1),(F=C.current)==null||F.blur())},[m,e]),f=x.useCallback(()=>{y(String(e)),v(null),B(!1)},[e]),O=x.useCallback(()=>{B(!0),v(null),setTimeout(()=>{var P;return(P=C.current)==null?void 0:P.select()},0)},[]);if(n<=Math.min(...qi))return null;const j=()=>{y(String(e)),v(null),B(!1)},w=()=>{j(),s(1)},R=()=>{j(),e>1&&s(e-1)},b=()=>{j(),e<u&&s(e+1)},_=()=>{j(),s(u)},V=(e-1)*r+1,d=Math.min(e*r,n),ee=`${Math.max(2,String(u).length+.5)}ch`,p={p:.75,color:"text.secondary","&:hover":{bgcolor:"action.hover"},"&.Mui-disabled":{color:"action.disabled"}};return t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:3,px:2,py:1,borderTop:"1px solid",borderColor:"divider",bgcolor:"background.paper",minHeight:48},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:2},children:[t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",fontWeight:400},children:["Total data:"," ",t.jsx(o.Box,{component:"span",sx:{fontWeight:600,color:"text.primary"},children:n})]}),i!==void 0&&t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",fontWeight:400},children:["Total fields:"," ",t.jsx(o.Box,{component:"span",sx:{fontWeight:600,color:"text.primary"},children:i})]})]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:3},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",fontWeight:400},children:"Rows per page:"}),t.jsx(o.Select,{value:r,onChange:P=>l(Number(P.target.value)),size:"small",MenuProps:{PaperProps:{sx:{maxHeight:300}},anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"left"}},sx:{minWidth:70,fontSize:"0.8125rem",color:"text.primary","& .MuiSelect-select":{py:.5,px:1.5},"& .MuiOutlinedInput-notchedOutline":{borderColor:"divider"}},children:qi.map(P=>t.jsx(o.MenuItem,{value:P,sx:{fontSize:"0.8125rem"},children:P},P))})]}),t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",fontWeight:400,userSelect:"none"},children:[V,"–",d," of ",n]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75,position:"relative"},children:[t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",userSelect:"none"},children:"Page"}),t.jsxs(o.Box,{sx:{position:"relative"},children:[h&&t.jsx(o.Box,{sx:{position:"absolute",bottom:"calc(100% + 6px)",left:"50%",transform:"translateX(-50%)",bgcolor:"background.paper",border:"1px solid",borderColor:$(c.error.main,.4),borderRadius:"6px",px:1,py:.5,boxShadow:`0 2px 8px ${$(c.common.black,.12)}`,zIndex:20,whiteSpace:"nowrap","&::after":{content:'""',position:"absolute",top:"100%",left:"50%",transform:"translateX(-50%)",border:"5px solid transparent",borderTopColor:$(c.error.main,.4)}},children:t.jsx(o.Typography,{sx:{fontSize:"0.6875rem",fontWeight:500,color:"error.main",lineHeight:1.3},children:h})}),t.jsx(o.InputBase,{inputRef:C,value:g,onChange:P=>{y(P.target.value),h&&v(null)},onKeyDown:I,onFocus:O,onBlur:f,inputProps:{"aria-label":`Page number, 1 to ${u}`,style:{textAlign:"center",padding:"2px 0",width:ee,fontSize:"0.8125rem",fontWeight:600}},sx:{fontSize:"0.8125rem",fontWeight:600,color:h?"error.main":"text.primary",border:"1px solid",borderColor:h?"error.main":S?"primary.main":"divider",borderRadius:"4px",bgcolor:h?$(c.error.main,.04):S?$(c.primary.main,.04):"background.paper",px:.75,transition:"border-color 0.15s ease, background-color 0.15s ease","&:hover":{borderColor:h?"error.main":"text.secondary"},"&:focus-within":{boxShadow:h?`0 0 0 2px ${$(c.error.main,.2)}`:`0 0 0 2px ${$(c.primary.main,.2)}`}}})]}),t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",userSelect:"none"},children:["of ",u]})]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:[t.jsx(o.IconButton,{onClick:w,disabled:e===1,size:"small",title:"First page",sx:p,children:t.jsx(z.FirstPage,{sx:{fontSize:20}})}),t.jsx(o.IconButton,{onClick:R,disabled:e===1,size:"small",title:"Previous page",sx:p,children:t.jsx(z.ChevronLeft,{sx:{fontSize:20}})}),t.jsx(o.IconButton,{onClick:b,disabled:e===u,size:"small",title:"Next page",sx:p,children:t.jsx(z.ChevronRight,{sx:{fontSize:20}})}),t.jsx(o.IconButton,{onClick:_,disabled:e===u,size:"small",title:"Last page",sx:p,children:t.jsx(z.LastPage,{sx:{fontSize:20}})})]})]})]})}function hu(){return t.jsx(o.Chip,{icon:t.jsx(z.Visibility,{sx:{fontSize:14}}),label:"View Only",size:"small",variant:"outlined",sx:{bgcolor:"action.hover",borderColor:"divider",fontSize:"caption.fontSize",fontWeight:500}})}const Ws="urm_hint_seen_";function fu(e){try{return localStorage.getItem(Ws+e)==="true"}catch{return!1}}function gu(e){try{localStorage.setItem(Ws+e,"true")}catch{}}const Ps={"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:"8px"},"& .MuiInputLabel-root":{fontSize:"0.875rem"},"& .MuiFormHelperText-root":{fontSize:"0.75rem",mx:.5},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}}};function Wn(e,r){if(e==null||e==="")return"";if(r==="boolean")return e?"True":"False";if(r==="object"||r==="array")try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)}function Ns({row:e,schema:r}){const i=tt().palette,s=r.filter(c=>c.name in e),l=s.filter(c=>c.type!=="object"&&c.type!=="array"),a=s.filter(c=>c.type==="object"||c.type==="array");return t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2},children:[l.map(c=>t.jsx(o.TextField,{label:et(c.name),value:Wn(e[c.name],c.type)||"No value",size:"small",fullWidth:!0,InputProps:{readOnly:!0},sx:Ps},c.name)),a.map(c=>{const u=Wn(e[c.name],c.type);return t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"caption",sx:{fontWeight:500,color:"text.secondary",display:"block",mb:.75},children:et(c.name)}),t.jsx(o.Box,{component:"pre",sx:{m:0,px:1.5,py:1.25,borderRadius:"8px",border:"1px solid",borderColor:"divider",bgcolor:$(i.text.primary,.02),fontSize:"0.75rem",fontFamily:'"Roboto Mono", "Fira Code", monospace',color:u?"text.primary":"text.disabled",fontStyle:u?"normal":"italic",overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word",lineHeight:1.6,maxHeight:160,overflowY:"auto"},children:u||"No value"})]},c.name)}),s.length===0&&t.jsx(o.Typography,{variant:"body2",sx:{color:"text.disabled",textAlign:"center",py:3},children:"No fields to display"})]})}function yu({open:e,onClose:r,row:n,schema:i,reportName:s}){const l=tt(),a=l.palette;if(!n)return null;const c=i.filter(g=>g.name in n).length,u=se(l);return t.jsxs(o.Dialog,{open:e,onClose:r,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{borderRadius:Ge(l),maxHeight:"min(720px, calc(100vh - 80px))",display:"flex",flexDirection:"column",overflow:"hidden",...u.paper}},children:[t.jsxs(o.Box,{sx:{px:3,pt:2.5,pb:2,display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:2,flexShrink:0,...u.header},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5,minWidth:0},children:[t.jsx(o.Box,{sx:{width:36,height:36,borderRadius:"10px",bgcolor:$(a.primary.main,.1),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:t.jsx(z.VisibilityOutlined,{sx:{fontSize:18,color:"primary.main"}})}),t.jsxs(o.Box,{sx:{minWidth:0},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1rem",fontWeight:600,color:"text.primary",lineHeight:1.3},children:"View Record"}),s&&t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.75rem",color:"text.secondary",display:"block",mt:.25,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[s," · ",c," ",c===1?"field":"fields"]})]})]}),t.jsx(o.IconButton,{size:"small",onClick:r,sx:{mt:.25,color:"text.secondary",borderRadius:"8px","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(z.Close,{sx:{fontSize:18}})})]}),t.jsx(o.Divider,{}),t.jsx(o.DialogContent,{sx:{overflowY:"auto",flex:1,bgcolor:$(a.text.primary,.015)},children:t.jsx(Ns,{row:n,schema:i})}),t.jsx(o.Divider,{}),t.jsx(o.DialogActions,{sx:{px:3,py:1.75,bgcolor:"background.paper",justifyContent:"flex-end"},children:t.jsx(o.Button,{onClick:r,variant:"contained",sx:{fontSize:"0.8125rem",px:3,py:.75,borderRadius:g=>`${g.shape.borderRadius}px`,minWidth:80},children:"Close"})})]})}function bu({open:e,onClose:r,onConfirm:n,row:i,schema:s}){const l=tt(),a=se(l);return t.jsxs(o.Dialog,{open:e,onClose:r,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{borderRadius:Ge(l),maxHeight:"min(720px, calc(100vh - 80px))",my:"auto",display:"flex",flexDirection:"column",...a.paper}},children:[t.jsxs(o.Box,{sx:{px:3,pt:2.5,pb:1.5,display:"flex",alignItems:"flex-start",justifyContent:"space-between",...a.header},children:[t.jsxs(o.Stack,{direction:"row",spacing:1.5,alignItems:"flex-start",children:[t.jsx(o.Box,{sx:{width:40,height:40,borderRadius:"50%",bgcolor:c=>$(c.palette.error.main,.1),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:t.jsx(z.WarningAmberRounded,{sx:{fontSize:22,color:"error.main"}})}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",letterSpacing:"0",lineHeight:1.5,mb:.5},children:"Delete record?"}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.875rem",color:"text.secondary"},children:"This record will be permanently removed."})]})]}),t.jsx(o.IconButton,{size:"small",onClick:r,sx:{p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(z.Close,{sx:{fontSize:20}})})]}),t.jsxs(o.DialogContent,{sx:{px:3,pb:2,overflowY:"auto",flex:1,display:"flex",flexDirection:"column",gap:2},children:[i&&s&&t.jsx(Ns,{row:i,schema:s}),t.jsx(o.Box,{sx:{p:2,borderRadius:"8px",bgcolor:c=>$(c.palette.error.main,.1),border:c=>`1px solid ${$(c.palette.error.main,.5)}`},children:t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"error.main",fontWeight:500},children:"This action cannot be undone. The record will be deleted from this report immediately."})})]}),t.jsxs(o.DialogActions,{sx:{px:3,py:1.75,borderTop:"1px solid divider",bgcolor:"action.hover",gap:1.25,justifyContent:"flex-end"},children:[t.jsx(o.Button,{onClick:r,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:.875,minHeight:36,borderRadius:c=>`${c.shape.borderRadius}px`,transition:"all 0.2s ease","&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:()=>{n(),r()},variant:"contained",startIcon:t.jsx(z.DeleteForever,{sx:{fontSize:18}}),sx:{fontSize:"0.875rem",bgcolor:"error.main",color:"error.contrastText",px:3,py:.875,minHeight:36,borderRadius:c=>`${c.shape.borderRadius}px`,boxShadow:c=>me(c,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"error.dark",boxShadow:c=>me(c,"hoverButton")},"&:active":{boxShadow:c=>me(c,"pressedButton"),transform:"translateY(1px)"}},children:"Delete record"})]})]})}function vu({open:e,onClose:r,onSave:n,row:i,schema:s,reportName:l}){var I;const a=tt(),c=a.palette,[u,g]=x.useState({});if(x.useEffect(()=>{e&&i&&g({...i})},[e,i]),!i)return null;const y=s.filter(f=>f.name in i),h=y.filter(f=>f.type!=="object"&&f.type!=="array"),v=y.filter(f=>f.type==="object"||f.type==="array"),S=(f,O)=>{g(j=>({...j,[f]:O}))},B=()=>{const f={...u};y.forEach(O=>{const j=u[O.name];if(O.type==="number"){const w=Number(j);f[O.name]=isNaN(w)?i[O.name]:w}else O.type==="boolean"&&(f[O.name]=!!j)}),n(f),r()},C=y.length,m=se(a);return t.jsxs(o.Dialog,{open:e,onClose:r,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{borderRadius:Ge(a),maxHeight:"min(760px, calc(100vh - 80px))",display:"flex",flexDirection:"column",overflow:"hidden",...m.paper}},children:[t.jsxs(o.Box,{sx:{px:3,pt:2.5,pb:2,display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:2,flexShrink:0,...m.header},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5,minWidth:0},children:[t.jsx(o.Box,{sx:{width:36,height:36,borderRadius:"10px",bgcolor:$(((I=c.warning)==null?void 0:I.main)??"#ed6c02",.1),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:t.jsx(z.EditOutlined,{sx:{fontSize:18,color:"warning.main"}})}),t.jsxs(o.Box,{sx:{minWidth:0},children:[t.jsx(o.Typography,{sx:{fontSize:"1rem",fontWeight:600,color:"text.primary",lineHeight:1.3},children:"Edit Record"}),l&&t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.75rem",color:"text.secondary",display:"block",mt:.25,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[l," · ",C," ",C===1?"field":"fields"]})]})]}),t.jsx(o.IconButton,{size:"small",onClick:r,sx:{mt:.25,color:"text.secondary",borderRadius:"8px","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(z.Close,{sx:{fontSize:18}})})]}),t.jsx(o.Divider,{}),t.jsxs(o.DialogContent,{sx:{p:2.5,overflowY:"auto",flex:1,bgcolor:$(c.text.primary,.015),display:"flex",flexDirection:"column",gap:2},children:[h.map(f=>{const O=u[f.name];return f.type==="boolean"?t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"caption",sx:{fontWeight:500,color:"text.secondary",display:"block",mb:.75},children:et(f.name)}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(o.Switch,{checked:!!O,onChange:j=>S(f.name,j.target.checked),size:"small"}),t.jsx(o.Typography,{variant:"body2",sx:{color:"text.secondary"},children:O?"Enabled":"Disabled"})]})]},f.name):t.jsx(o.TextField,{label:et(f.name),value:O??"",onChange:j=>S(f.name,j.target.value),type:f.type==="number"?"number":"text",size:"small",fullWidth:!0,sx:Ps},f.name)}),v.length>0&&t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2},children:v.map(f=>{const O=Wn(i[f.name],f.type);return t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75,mb:.75},children:[t.jsx(o.Typography,{variant:"caption",sx:{fontWeight:500,color:"text.secondary"},children:et(f.name)}),t.jsx(o.Chip,{label:"read only",size:"small",sx:{height:16,fontSize:"0.5625rem",fontWeight:600,letterSpacing:"0.04em",bgcolor:$(c.text.secondary,.07),color:"text.secondary",border:"none"}}),t.jsx(o.Tooltip,{title:"Object and array fields cannot be edited directly",arrow:!0,children:t.jsx(z.InfoOutlined,{sx:{fontSize:13,color:"text.disabled",cursor:"help"}})})]}),t.jsx(o.Box,{component:"pre",sx:{m:0,px:1.5,py:1.25,borderRadius:"8px",border:"1px solid",borderColor:"divider",bgcolor:$(c.text.primary,.02),fontSize:"0.75rem",fontFamily:'"Roboto Mono", "Fira Code", monospace',color:O?"text.primary":"text.disabled",fontStyle:O?"normal":"italic",overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word",lineHeight:1.6,maxHeight:160,overflowY:"auto"},children:O||"No value"})]},f.name)})}),y.length===0&&t.jsxs(o.Box,{sx:{py:6,display:"flex",flexDirection:"column",alignItems:"center",gap:1,color:"text.disabled"},children:[t.jsx(z.EditOutlined,{sx:{fontSize:40,opacity:.4}}),t.jsx(o.Typography,{variant:"body2",children:"No editable fields"})]})]}),t.jsx(o.Divider,{}),t.jsxs(o.DialogActions,{sx:{px:3,py:1.75,bgcolor:"background.paper",gap:1,justifyContent:"flex-end"},children:[t.jsx(o.Button,{onClick:r,variant:"text",sx:{fontSize:"0.8125rem",color:"text.secondary",px:2,borderRadius:f=>`${f.shape.borderRadius}px`,"&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:B,variant:"contained",startIcon:t.jsx(z.SaveOutlined,{sx:{fontSize:15}}),sx:{fontSize:"0.8125rem",px:2.5,borderRadius:f=>`${f.shape.borderRadius}px`,minWidth:90},children:"Save"})]})]})}const Su=176,Cu=170,ju=40;function Ls(e){return e.type==="date"?180:Su}function wu(e,r){return r!=null&&r!==Cu&&r!==Ls(e)}function ku(e,r,n){return x.useMemo(()=>{const i=e.map(h=>({name:h.name,width:r[h.name]??Ls(h),explicit:wu(h,r[h.name])})),s={};i.forEach(h=>{s[h.name]=h.width});const l=i.reduce((h,v)=>h+v.width,0),c=Math.max(0,n-ju)-l;if(c<=0)return{widths:s,fillerWidth:0};const u=i.filter(h=>!h.explicit);if(u.length===0)return{widths:s,fillerWidth:c};const g=u.reduce((h,v)=>h+v.width,0)||1;let y=0;return u.forEach((h,v)=>{const B=v===u.length-1?h.width+c-y:Math.round(h.width+c*h.width/g);s[h.name]=B,y+=B-h.width}),{widths:s,fillerWidth:0}},[e,r,n])}const zo=176,Ji=32,Ki=24,Tu=wt(),Bu={low:"text.secondary",medium:"warning.dark",high:"warning.main",critical:"error.main",urgent:"error.main"};function Iu(e){const r=e.toLowerCase().trim();return t.jsx(o.Box,{component:"span",sx:{display:"inline-flex",alignItems:"center",px:1.25,py:.375,borderRadius:"12px",fontSize:"0.75rem",fontWeight:n=>{var i;return(i=n.tokens)!=null&&i.statusBold?700:500},bgcolor:n=>Fo(n,r).bg,color:n=>Fo(n,r).color,whiteSpace:"nowrap",lineHeight:1.6,letterSpacing:"0.01em"},children:e})}function zu(e){const r=e.toLowerCase().trim(),n=Bu[r];return n?t.jsx(o.Box,{component:"span",sx:{color:n,fontWeight:500,fontSize:"inherit"},children:e}):e}function Eu(e,r){const n=r.trim();if(!n)return e;const i=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),s=e.split(new RegExp(`(${i})`,"gi"));return s.length===1?e:s.map((l,a)=>l.toLowerCase()===n.toLowerCase()?t.jsx(o.Box,{component:"mark",sx:{bgcolor:"warning.light",color:"inherit",px:"1px",borderRadius:"2px"},children:l},a):l)}function Xi(e,r,n,i=""){if(r==null||r==="")return t.jsx(o.Box,{component:"span",sx:{color:"text.disabled"},children:"—"});const s=String(r);if(/\b(status|state|stage|employmenttype|contracttype|availability)\b/.test(e.name.toLowerCase()))return Iu(s);if(/\b(priority|severity|urgency|importance|criticality)\b/.test(e.name.toLowerCase()))return zu(s);if(e.type==="date"){const c=e.dateFormat??"iso",u=Ta(r,c,n??null);return t.jsx(o.Box,{component:"span",sx:{color:"text.primary",whiteSpace:"nowrap"},children:u})}if(e.type==="number"&&typeof r=="number")return r.toLocaleString();if(typeof r=="boolean")return r?"Yes":"No";if(Array.isArray(r)){if(r.length===0)return t.jsx(o.Box,{component:"span",sx:{color:"text.disabled"},children:"[ ]"});const c=r.slice(0,3).map(u=>typeof u=="object"?JSON.stringify(u):String(u)).join(", ");return t.jsxs(o.Box,{component:"span",sx:{color:"text.secondary",fontSize:"0.8125rem"},children:[c,r.length>3?` +${r.length-3} more`:""]})}if(typeof r=="object"){const c=JSON.stringify(r);return t.jsx(o.Box,{component:"span",title:c,sx:{color:"text.secondary",fontSize:"0.8125rem",fontFamily:"monospace",cursor:"help"},children:c.length>40?c.slice(0,40)+"…":c})}return Eu(s,i)}function Du({schema:e,data:r,sortStack:n=[],filters:i=Tu,views:s=[],activeViewId:l="",isDirty:a=!1,isExporting:c=!1,columnVisibility:u={},columnOrder:g=[],columnWidths:y={},grouping:h=null,classTokens:v={},onSort:S,onSortAscending:B,onSortDescending:C,onOpenFilters:m,onOpenSort:I,onOpenFilterForColumn:f,onSelectView:O,onCreateView:j,onUpdateCurrentView:w,onSaveAsNewView:R,onDiscardChanges:b,onToggleDefault:_,onToggleFavorite:V,onRestoreView:d,onPermanentDelete:ee,onEditView:p,onCloneView:P,onCopyLink:F,onDeleteView:re,onPromoteToGlobal:ce,isAdmin:J=!1,onExport:Z,onOpenColumns:ge,onUpdateColumnWidth:H,onUpdateColumnOrder:K,onUpdateColumnVisibility:ne,onClearFiltersForColumn:ae,onResetLayout:G,onOpenGroup:te,onGroupByColumn:oe,onToggleGroupCollapse:E,onExpandAllGroups:Q,onCollapseAllGroups:xe,onOpenAuditHistory:ie,onOpenScheduledReports:Te,searchQuery:U,highlightQuery:Ee="",searchHistory:Ze=[],onAddToSearchHistory:kt,onToggleSearchFavourite:zr,onDeleteSearchHistory:hr,selectedRowIds:gt=new Set,onSearchChange:Er,onToggleRowSelection:Wt,onToggleAllRows:Tt,onRangeSelection:fr,onClearSelection:Pt,onExportSelected:Jt,currentPage:Nt=1,pageSize:yt=15,totalRowsBeforePagination:Kt=r.length,onPageChange:ct,onPageSizeChange:rt,isReadOnly:Ke=!1,userRole:ho,reportName:Dr,onEditRow:Xt,onDuplicateRow:ot,onDeleteRow:Qt,showDevPanel:$r=!1,onOpenDevConfig:Bt,rowActions:Lt,hideDefaultRowActions:We,onRowClick:bt,onRowRightClick:Zt}){var jo;const le=tt().urmTable,[er,tr]=x.useState(null),[ye,Kr]=x.useState(0),[Or,It]=x.useState(0),[N,nt]=x.useState(null),Xe=((jo=Tr().dates)==null?void 0:jo.displayFormat)??null,[gr,rr]=x.useState(null),[yr,or]=x.useState(null),[zt,Ft]=x.useState(null),[nr,ir]=x.useState(!1),[Le,sr]=x.useState(!1),[X,dt]=x.useState(null),[ze,Et]=x.useState(!1),[Dt,ar]=x.useState(null),[He,br]=x.useState(null),[fe,Ye]=x.useState(null),[_r,ut]=x.useState(null),vt=x.useRef(null),$t=x.useCallback(()=>{vt.current&&(clearTimeout(vt.current),vt.current=null)},[]),Mr=x.useCallback(()=>{$t(),vt.current=setTimeout(()=>ut(null),200)},[$t]);x.useEffect(()=>$t,[$t]);const[lr,St]=x.useState(null),[Qe,vr]=x.useState("list"),[Ar,Vt]=x.useState(!1),[he,je]=x.useState(()=>!fu("toolbar_search")),$e=x.useRef(null),Ot=x.useRef(null),[cr,go]=x.useState(0);x.useLayoutEffect(()=>{const k=$e.current;if(!k)return;go(k.clientWidth);const L=new ResizeObserver(ue=>{go(ue[0].contentRect.width)});return L.observe(k),()=>L.disconnect()},[]);const Rr=x.useCallback(()=>{gu("toolbar_search"),je(!1)},[]);x.useEffect(()=>{if(!he)return;const k=setTimeout(Rr,2e3);return()=>clearTimeout(k)},[he,Rr]);const yo=x.useMemo(()=>{const k=N??g;return k.length>0?k.map(L=>e.find(ue=>ue.name===L)).filter(L=>L!==void 0):e},[N,g,e]),Sr=x.useMemo(()=>yo.filter(k=>u[k.name]!==!1),[yo,u]),Xr=x.useMemo(()=>new Set(((h==null?void 0:h.levels)??[]).map(k=>k.column)),[h]),bo=!!(h!=null&&h.enabled&&(h!=null&&h.levels)&&h.levels.length>0),Ct=x.useMemo(()=>{if(!bo)return Sr;const k=Sr.filter(L=>!Xr.has(L.name));return k.length>0?k:Sr},[Sr,bo,Xr]),{widths:Wr}=ku(Ct,y,cr),dr=x.useMemo(()=>e.filter(k=>u[k.name]===!1).length,[e,u]),vo=x.useMemo(()=>e.map(k=>k.name),[e]),Pr=x.useMemo(()=>g.length===0?!1:JSON.stringify(g)!==JSON.stringify(vo),[g,vo]),an=x.useCallback((k,L)=>{k.preventDefault(),k.stopPropagation(),tr(L),Kr(k.clientX),It(y[L]||150)},[y]);x.useEffect(()=>{if(!er)return;const k=ue=>{const Ue=ue.clientX-ye,Pe=Math.max(100,Math.min(600,Or+Ue));H==null||H(er,Pe)},L=()=>{tr(null)};return document.addEventListener("mousemove",k),document.addEventListener("mouseup",L),()=>{document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",L)}},[er,ye,Or,H]);const ln=x.useCallback(k=>k==null?"-":typeof k=="object"?JSON.stringify(k):typeof k=="boolean"?k?"true":"false":String(k),[]);x.useCallback(k=>{const L=n.find(ue=>ue.column===k);return L?t.jsxs(o.Box,{sx:{display:"inline-flex",alignItems:"center",ml:.5,gap:.25},children:[L.direction==="asc"?t.jsx(z.ArrowUpward,{sx:{fontSize:14}}):t.jsx(z.ArrowDownward,{sx:{fontSize:14}}),t.jsx(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:16,height:16,bgcolor:"primary.main",color:"primary.contrastText",fontSize:"caption.fontSize",fontWeight:"bold",borderRadius:"50%"},children:L.priority})]}):null},[n]),x.useCallback(k=>$n(i,k)?t.jsx(o.IconButton,{size:"small",onClick:ue=>{ue.stopPropagation(),f==null||f(k)},sx:{ml:.5,p:.25,color:"primary.main","&:hover":{color:"primary.main"}},title:"Active filters on this column",children:t.jsx(z.FilterList,{sx:{fontSize:14}})}):null,[i,f]);const cn=x.useCallback(k=>{S&&S(k)},[S]),dn=x.useCallback((k,L)=>{nt(ue=>{const Pe=[...ue??(g.length>0?g:e.map(Je=>Je.name))],[qe]=Pe.splice(k,1);return Pe.splice(L,0,qe),Pe})},[g,e]),un=x.useCallback(()=>{N&&K&&K(N),nt(null)},[N,K]),pn=x.useCallback(k=>{if(!S)return;const L=n.find(ue=>ue.column===k);(!L||L.direction!=="asc")&&S(k)},[S,n]),xn=x.useCallback(k=>{if(!S)return;const L=n.find(ue=>ue.column===k);L?L.direction==="asc"&&S(k):(S(k),setTimeout(()=>S(k),0))},[S,n]),mn=x.useCallback(k=>{if(!S)return;const L=n.find(ue=>ue.column===k);L&&(L.direction==="asc"?(S(k),setTimeout(()=>S(k),0)):L.direction==="desc"&&S(k))},[S,n]),hn=x.useCallback(k=>{ne&&ne(k,!1)},[ne]),Nr=(h==null?void 0:h.enabled)&&r.length>0&&r[0]&&"isGroupHeader"in r[0],Ht=x.useMemo(()=>ht(i),[i]),fn=n.length>0||Ht>0||((h==null?void 0:h.enabled)??!1)||Object.values(u).some(k=>k===!1),gn=(Nt-1)*yt,Fe=r,Ut=x.useMemo(()=>{const k=new Set;return gt.forEach(L=>{const ue=L==null?void 0:L.__urm_row_id__;ue!==void 0&&k.add(ue)}),k},[gt]);x.useEffect(()=>{const k=L=>{!Tt||!Pt||L.target instanceof HTMLInputElement||L.target instanceof HTMLTextAreaElement||((L.ctrlKey||L.metaKey)&&L.key==="a"&&(L.preventDefault(),Tt(!0,Fe)),L.key==="Escape"&&(L.preventDefault(),Pt()))};return document.addEventListener("keydown",k),()=>document.removeEventListener("keydown",k)},[Tt,Pt,Fe]);const So=x.useCallback((k,L)=>{bt==null||bt(Fe[k],k,L),Wt&&(L.shiftKey&&gr!==null?(L.preventDefault(),fr&&fr(gr,k,Fe)):(Wt(Fe[k]),rr(k)))},[Wt,gr,fr,Fe,bt]);!x.useMemo(()=>Fe.length>0&&Ut.size>0&&Fe.every(k=>Ut.has(k==null?void 0:k.__urm_row_id__)),[Fe,Ut])&&Fe.some(k=>Ut.has(k==null?void 0:k.__urm_row_id__));const Qr=Wt&&Tt,yn=x.useCallback(k=>{var qe;const L=k.groupLevel,ue=L*Ji,Ue=L===0?v.groupRowLevel0||"urm-group-level-0":L===1?v.groupRowLevel1||"urm-group-level-1":v.groupRowLevel2||"urm-group-level-2",Pe=L===0?"action.selected":L===1?"action.hover":"background.paper";return t.jsx(o.TableRow,{onClick:()=>E==null?void 0:E(k.groupKey),className:`urm-group-header-row urm-group-level-${L} ${Ue} ${v.groupRow||""}`,sx:{bgcolor:Pe,"&:hover":{bgcolor:Je=>$(Je.palette.text.primary,.08)},cursor:"pointer",borderTop:"1px solid",borderBottom:"1px solid",borderColor:"divider"},children:t.jsx(o.TableCell,{colSpan:Ct.length+2+(Qr?1:0),className:`urm-group-cell ${v.groupCellFirst||""} ${v.groupCell||""}`,sx:{pl:`${ue+Ki}px`,position:"relative",py:1},children:t.jsxs(o.Box,{className:`urm-group-content ${v.groupContent||""}`,sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(o.Box,{className:`urm-group-caret ${v.groupCaret||""}`,sx:{color:"text.secondary",display:"inline-flex",alignItems:"center"},children:k.isCollapsed?t.jsx(z.ChevronRight,{sx:{fontSize:18}}):t.jsx(z.KeyboardArrowDown,{sx:{fontSize:18}})}),t.jsx(o.Typography,{variant:"h5",className:`urm-group-title ${v.groupTitle||""}`,sx:{fontWeight:L===0?600:500,color:"text.primary"},children:us(L,((qe=h==null?void 0:h.levels[L])==null?void 0:qe.column)||"",k.groupValue)}),t.jsxs(o.Box,{className:`urm-group-count ${v.groupBadge||""} ${v.groupCount||""}`,sx:{px:1,py:.25,fontSize:"caption.fontSize",fontWeight:500,bgcolor:Je=>$(Je.palette.text.secondary,.12),color:"text.secondary",borderRadius:2},children:[k.rowCount," ",k.rowCount===1?"row":"rows"]}),Object.keys(k.aggregates).length>0&&t.jsx(o.Typography,{variant:"caption",className:`urm-group-aggregates ${v.groupAggregates||""}`,sx:{ml:1,color:"text.secondary"},children:Object.entries(k.aggregates).map(([Je,pe])=>ds(pe)).filter(Boolean).join(" • ")})]})})},k.groupKey)},[Ct,Qr,h,E,v]),Co=x.useCallback((k,L)=>{const ue=Ut.has(k==null?void 0:k.__urm_row_id__),Ue=yr===L,Pe=nr&&(k==null?void 0:k.__urm_row_id__)===(zt==null?void 0:zt.__urm_row_id__),qe=!!(k!=null&&k.__urm_is_grouped_data_row__),Je=qe?k.__urm_group_level__??(h==null?void 0:h.levels.length)??1:0;return t.jsxs(o.TableRow,{"data-row-index":L,className:qe?`urm-data-row-grouped ${v.dataRowGrouped||""}`:"",onMouseEnter:()=>or(L),onMouseLeave:()=>or(null),onClick:pe=>{pe.target.closest("[data-row-action-btn]")||So(L,pe)},onContextMenu:pe=>{pe.preventDefault(),pe.stopPropagation(),Zt==null||Zt(k,L,pe),ut(null),Ye({mouseX:pe.clientX,mouseY:pe.clientY,row:k,rowIndex:L})},sx:{cursor:"pointer",bgcolor:ue?pe=>At(pe).bg:Pe?pe=>$(pe.palette.info.main,.12):le!=null&&le.striped&&L%2===1?le.stripeBg:"background.paper",transition:"background-color 0.12s ease","&:hover":{bgcolor:ue?pe=>At(pe).hoverBg:Pe?pe=>$(pe.palette.info.main,.2):"action.hover"},borderBottom:(le==null?void 0:le.rowDivider)??"1px solid",borderColor:"divider"},children:[Ct.map((pe,Cr)=>{if(qe&&Cr===0){const bn=Je*Ji+Ki;return t.jsx(o.TableCell,{className:`urm-data-cell-grouped ${v.dataCellGrouped||""}`,sx:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",py:(le==null?void 0:le.rowPaddingY)??"6px",px:(le==null?void 0:le.cellPaddingX)??2,pl:`${bn}px`,position:"relative",textAlign:(le==null?void 0:le.cellAlignH)??"left",verticalAlign:(le==null?void 0:le.cellAlignV)??"middle",fontSize:"0.8125rem",fontWeight:400,color:"text.primary",borderBottom:(le==null?void 0:le.rowDivider)??"1px solid",borderRight:le==null?void 0:le.colDivider,borderColor:"divider",minWidth:y[pe.name]?`${y[pe.name]}px`:`${pe.type==="date"?Math.max(zo,180):zo}px`},children:t.jsx(o.Box,{sx:{display:"flex",alignItems:"center"},children:t.jsx("span",{className:`urm-item-title ${v.itemTitle||""}`,children:Xi(pe,k[pe.name],Xe,Ee)})})},pe.name)}return t.jsx(o.TableCell,{sx:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",py:(le==null?void 0:le.rowPaddingY)??"6px",px:(le==null?void 0:le.cellPaddingX)??2,textAlign:(le==null?void 0:le.cellAlignH)??"left",verticalAlign:(le==null?void 0:le.cellAlignV)??"middle",fontSize:"0.8125rem",fontWeight:400,color:"text.primary",borderBottom:(le==null?void 0:le.rowDivider)??"1px solid",borderRight:le==null?void 0:le.colDivider,borderColor:"divider",minWidth:y[pe.name]?`${y[pe.name]}px`:`${pe.type==="date"?Math.max(zo,180):zo}px`},children:Xi(pe,k[pe.name],Xe,Ee)},pe.name)}),t.jsx(o.TableCell,{"data-row-action":"true",sx:{position:"sticky",right:0,width:0,minWidth:0,maxWidth:0,p:0,border:"none",background:"transparent",opacity:Ue?1:0,transition:"opacity 0.12s ease",zIndex:10},children:t.jsx(o.Box,{sx:{position:"absolute",right:8,top:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"flex-end",zIndex:10},children:t.jsx(o.IconButton,{"data-row-action-btn":"true",size:"small",onClick:pe=>{pe.stopPropagation(),pe.preventDefault(),ut(null),Ye({anchorEl:pe.currentTarget,row:k,rowIndex:L})},sx:{color:"text.secondary",opacity:Ue?1:0,transition:"opacity 0.12s ease",pointerEvents:Ue?"auto":"none","&:hover":{bgcolor:pe=>$(pe.palette.text.primary,.08),color:"text.primary"}},children:t.jsx(z.MoreVert,{sx:{fontSize:18}})})})})]},L)},[gt,gn,yr,So,Ct,y,Ee,ln,Xt,ot,Qt,Wt,Ft,ir,zt,nr,Ye,Nr,Xr,Zt]);return t.jsxs(Yt.DndProvider,{backend:Pn.HTML5Backend,children:[t.jsxs(o.Box,{sx:k=>{var qe,Je,pe;const L=((pe=(Je=(qe=k.components)==null?void 0:qe.MuiCard)==null?void 0:Je.styleOverrides)==null?void 0:pe.root)||{},ue=L.border&&L.border!=="none"?L.border:"1px solid",Ue=L.borderRadius!==void 0?typeof L.borderRadius=="number"?`${L.borderRadius}px`:L.borderRadius:`${k.shape.borderRadius}px`,Pe=L.boxShadow&&L.boxShadow!=="none"?L.boxShadow:me(k,"cardRest");return{display:"flex",flexDirection:"column",height:"100%",bgcolor:"background.paper",border:ue,borderColor:ue!=="none"?"divider":void 0,borderRadius:Ue,boxShadow:Pe,overflow:"hidden"}},children:[t.jsxs(o.Box,{sx:k=>{var qe,Je,pe,Cr,Zr;const L=((pe=(Je=(qe=k.components)==null?void 0:qe.MuiCardHeader)==null?void 0:Je.styleOverrides)==null?void 0:pe.root)||{},ue=(L.backgroundColor&&L.backgroundColor!=="transparent"?L.backgroundColor:void 0)??((Cr=k.tokens)==null?void 0:Cr.cardHdrHex)??((Zr=k.urmTable)==null?void 0:Zr.headerBg)??k.palette.background.paper,Ue=L.borderBottom&&L.borderBottom!=="none"?L.borderBottom:"1px solid",Pe=L.boxShadow&&L.boxShadow!=="none"?L.boxShadow:void 0;return{position:"sticky",top:0,zIndex:10,bgcolor:ue,borderBottom:Ue,borderColor:Ue!=="none"?"divider":void 0,boxShadow:Pe,px:2,py:0,minHeight:56,display:"flex",alignItems:"center",gap:1}},children:[Ke&&t.jsx(hu,{}),Er&&kt&&zr&&hr&&t.jsx(o.Tooltip,{open:he,title:t.jsxs(o.Box,{sx:{p:.5},children:[t.jsx(o.Typography,{variant:"caption",sx:{display:"block",fontWeight:500,mb:.25},children:"💡 Search tip"}),t.jsx(o.Typography,{variant:"caption",children:"Type to search across all columns instantly"})]}),placement:"bottom-start",arrow:!0,PopperProps:{onClick:Rr},componentsProps:{tooltip:{sx:{bgcolor:"primary.main","& .MuiTooltip-arrow":{color:"primary.main"},maxWidth:220,cursor:"pointer",userSelect:"none"}}},children:t.jsx(o.Box,{component:"span",children:t.jsx(Qd,{value:U||"",onChange:k=>{he&&Rr(),Er(k)},searchHistory:Ze,onAddToHistory:kt,onToggleFavourite:zr,onDeleteHistory:hr,disabled:Ke})})}),t.jsx(o.Tooltip,{title:"JSON format guide",children:t.jsx(o.IconButton,{size:"small",onClick:()=>Vt(!0),sx:{color:"text.secondary",borderRadius:1,"&:hover":{bgcolor:k=>$(k.palette.text.primary,.06),color:"text.primary"}},children:t.jsx(z.InfoOutlined,{sx:{fontSize:20}})})}),O&&j&&w&&s.length>0&&t.jsx(Zd,{views:s||[],activeViewId:l||"",isDirty:a,onSelectView:O,onCreateView:j,onToggleDefault:_,onToggleFavorite:V,onRestoreView:d,onPermanentDelete:ee,onEditView:p,onCloneView:P,onCopyLink:F,onDeleteView:re,onPromoteToGlobal:ce,isAdmin:J,isReadOnly:Ke}),a&&!Ke&&t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.25,ml:1},children:[w&&t.jsx(o.Button,{onClick:w,size:"small",variant:"contained",sx:{fontSize:"0.8125rem",fontWeight:500,px:2.25,py:.75,borderRadius:"10px",bgcolor:k=>`var(--urm-btn-save-current-bg, ${k.palette.primary.main})`,color:k=>`var(--urm-btn-save-current-color, ${k.palette.primary.contrastText})`,textTransform:"none",boxShadow:k=>me(k,"restButton"),"&:hover":{bgcolor:k=>`var(--urm-btn-save-current-hover-bg, ${k.palette.primary.dark})`,boxShadow:k=>me(k,"hoverButton")}},children:"Save current view"}),R&&t.jsx(o.Button,{onClick:R,size:"small",variant:"outlined",sx:{fontSize:"0.8125rem",fontWeight:500,px:2.25,py:.75,borderRadius:"10px",borderColor:k=>`var(--urm-btn-save-new-border, ${k.palette.primary.main})`,color:k=>`var(--urm-btn-save-new-color, ${k.palette.primary.main})`,bgcolor:k=>`var(--urm-btn-save-new-bg, ${k.palette.background.paper})`,borderWidth:"1.5px",textTransform:"none","&:hover":{borderWidth:"1.5px",borderColor:k=>`var(--urm-btn-save-new-hover-border, ${k.palette.primary.dark})`,bgcolor:k=>`var(--urm-btn-save-new-hover-bg, ${$(k.palette.primary.main,.08)})`}},children:"Save new view"}),b&&t.jsx(o.Button,{onClick:b,size:"small",variant:"contained",sx:{fontSize:"0.8125rem",fontWeight:500,px:2.25,py:.75,borderRadius:"10px",bgcolor:k=>`var(--urm-btn-discard-bg, ${$(k.palette.text.primary,.12)})`,color:k=>`var(--urm-btn-discard-color, ${k.palette.text.primary})`,textTransform:"none",boxShadow:"none","&:hover":{bgcolor:k=>`var(--urm-btn-discard-hover-bg, ${$(k.palette.text.primary,.18)})`,boxShadow:"none"}},children:"Discard"})]}),$r&&Bt&&t.jsx(o.Tooltip,{title:"Developer configuration",children:t.jsx(o.IconButton,{size:"small",onClick:Bt,sx:{color:"text.secondary",borderRadius:1,border:"1px dashed",borderColor:k=>$(k.palette.text.secondary,.3),"&:hover":{bgcolor:k=>$(k.palette.warning.main,.08),borderColor:"warning.main",color:"warning.dark"}},children:t.jsx(z.DisplaySettings,{sx:{fontSize:20}})})}),t.jsx(o.Box,{sx:{flexGrow:1}}),!Ke&&I&&t.jsx(o.Tooltip,{title:"Sort",children:t.jsxs(o.IconButton,{onClick:I,size:"small",sx:{position:"relative",color:n.length>0?"primary.main":"text.secondary",bgcolor:n.length>0?k=>at(k):"transparent",borderRadius:1,transition:"all 0.15s ease","&:hover":{bgcolor:n.length>0?k=>$(k.palette.primary.main,.2):k=>$(k.palette.text.primary,.06),color:n.length>0?"primary.main":"text.primary"}},children:[t.jsx(z.SwapVert,{sx:{fontSize:20}}),n.length>0&&t.jsx(o.Box,{component:"span",sx:{position:"absolute",top:-2,right:-2,width:16,height:16,display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"primary.main",color:"primary.contrastText",borderRadius:"50%",fontSize:"0.625rem",fontWeight:700,border:"2px solid",borderColor:"background.paper"},children:n.length})]})}),!Ke&&m&&t.jsx(o.Tooltip,{title:"Filter",children:t.jsxs(o.IconButton,{onClick:m,size:"small",sx:{position:"relative",color:Ht>0?"primary.main":"text.secondary",bgcolor:Ht>0?k=>at(k):"transparent",borderRadius:1,transition:"all 0.15s ease","&:hover":{bgcolor:Ht>0?k=>$(k.palette.primary.main,.2):k=>$(k.palette.text.primary,.06),color:Ht>0?"primary.main":"text.primary"}},children:[t.jsx(z.FilterList,{sx:{fontSize:20}}),Ht>0&&t.jsx(o.Box,{component:"span",sx:{position:"absolute",top:-2,right:-2,width:16,height:16,display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"primary.main",color:"primary.contrastText",borderRadius:"50%",fontSize:"0.625rem",fontWeight:700,border:"2px solid",borderColor:"background.paper"},children:Ht})]})}),!Ke&&ge&&t.jsx(o.Tooltip,{title:"Show/Hide Columns",children:t.jsxs(o.IconButton,{onClick:ge,size:"small",sx:{position:"relative",color:dr>0||Pr?"primary.main":"text.secondary",bgcolor:dr>0||Pr?k=>at(k):"transparent",borderRadius:1,transition:"all 0.15s ease","&:hover":{bgcolor:dr>0||Pr?k=>$(k.palette.primary.main,.2):k=>$(k.palette.text.primary,.06),color:dr>0||Pr?"primary.main":"text.primary"}},children:[t.jsx(z.ViewColumn,{sx:{fontSize:20}}),dr>0&&t.jsx(o.Box,{component:"span",sx:{position:"absolute",top:-2,right:-2,width:16,height:16,display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"primary.main",color:"primary.contrastText",borderRadius:"50%",fontSize:"0.625rem",fontWeight:700,border:"2px solid",borderColor:"background.paper"},children:dr})]})}),Nr&&(Q||xe)&&(()=>{var ue;const k=(((ue=h==null?void 0:h.collapsedGroups)==null?void 0:ue.length)??0)>0,L=k?Q:xe;return L?t.jsx(o.Tooltip,{title:k?"Expand all groups":"Collapse all groups",children:t.jsx(o.IconButton,{onClick:L,size:"small",sx:{color:"text.secondary",borderRadius:1,"&:hover":{bgcolor:Ue=>$(Ue.palette.text.primary,.06),color:"text.primary"}},children:k?t.jsx(z.UnfoldMore,{sx:{fontSize:20}}):t.jsx(z.UnfoldLess,{sx:{fontSize:20}})})}):null})(),t.jsx(o.Divider,{orientation:"vertical",flexItem:!0,sx:{mx:.5,my:1.5}}),t.jsx(o.Tooltip,{title:"List view",children:t.jsx(o.IconButton,{size:"small",onClick:()=>vr("list"),sx:{borderRadius:1,color:Qe==="list"?"primary.main":"text.secondary",bgcolor:Qe==="list"?k=>at(k):"transparent",transition:"all 0.15s ease","&:hover":{bgcolor:Qe==="list"?k=>$(k.palette.primary.main,.2):k=>$(k.palette.text.primary,.06),color:Qe==="list"?"primary.main":"text.primary"}},children:t.jsx(z.TableRows,{sx:{fontSize:20}})})}),t.jsx(o.Tooltip,{title:"Grid view",children:t.jsx(o.IconButton,{size:"small",onClick:()=>vr("grid"),sx:{borderRadius:1,color:Qe==="grid"?"primary.main":"text.secondary",bgcolor:Qe==="grid"?k=>at(k):"transparent",transition:"all 0.15s ease","&:hover":{bgcolor:Qe==="grid"?k=>$(k.palette.primary.main,.2):k=>$(k.palette.text.primary,.06),color:Qe==="grid"?"primary.main":"text.primary"}},children:t.jsx(z.GridView,{sx:{fontSize:20}})})}),t.jsx(o.Divider,{orientation:"vertical",flexItem:!0,sx:{mx:.5,my:1.5}}),t.jsx(o.Tooltip,{title:"Settings",children:t.jsx(o.IconButton,{onClick:k=>St(k.currentTarget),size:"small",sx:{color:"text.secondary",borderRadius:1,transition:"all 0.15s ease","&:hover":{bgcolor:k=>$(k.palette.text.primary,.06),color:"text.primary"}},children:t.jsx(z.Settings,{sx:{fontSize:20}})})})]}),t.jsxs(o.Popover,{open:!!lr,anchorEl:lr,onClose:()=>St(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{mt:.5,minWidth:200,py:.5,borderRadius:1.5,boxShadow:3}},children:[Z&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{Z(),St(null)},disabled:c,sx:{py:1,px:2,gap:1.5},children:[t.jsx(z.Download,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Export"})]}),!Ke&&te&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{te(),St(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(z.Layers,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Grouping"})]}),ie&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{ie(),St(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(z.History,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Audit History"})]}),Te&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{Te(),St(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(z.Schedule,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Scheduled Reports"})]})]}),t.jsxs(o.Box,{sx:{position:"relative",flex:1,display:"flex",flexDirection:"column",minHeight:0},children:[Qe==="grid"&&t.jsx(o.Box,{sx:{flex:1,overflowY:"auto",overflowX:"hidden",bgcolor:"action.hover"},children:t.jsx(pu,{data:Fe,visibleColumns:Sr,grouping:h,selectedRowIds:gt,isReadOnly:Ke,isGrouped:!!Nr,onToggleRowSelection:Wt||(()=>{}),onToggleGroupCollapse:E,onViewRow:k=>{Ft(k),ir(!0)},onEditRow:(k,L)=>{ar(k),br(L),Et(!0)},onDuplicateRow:(k,L)=>ot==null?void 0:ot(k,L),onDeleteRow:(k,L)=>{dt(L),sr(!0)}})}),Qe==="list"&&t.jsxs(o.Box,{sx:{flex:1,display:"flex",flexDirection:"column",minHeight:0},children:[t.jsx(o.Box,{ref:$e,onScroll:k=>{Ot.current&&(Ot.current.scrollLeft=k.target.scrollLeft)},sx:{overflowX:"auto",overflowY:"hidden",flexShrink:0,scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},children:t.jsxs(o.Table,{sx:{tableLayout:"fixed",borderCollapse:"collapse",borderSpacing:0,width:"100%",minWidth:`${Object.values(Wr).reduce((k,L)=>k+L,0)}px`},children:[t.jsx("colgroup",{children:Ct.map(k=>t.jsx("col",{style:{width:`${Wr[k.name]}px`}},k.name))}),t.jsx(o.TableHead,{children:t.jsx(o.TableRow,{sx:{bgcolor:(le==null?void 0:le.headerBg)??"action.hover",borderBottom:(le==null?void 0:le.rowDivider)??"1px solid",borderColor:"divider"},children:Ct.map((k,L)=>t.jsx(ru,{column:k,index:L,sortRule:n.find(ue=>ue.column===k.name),hasFilters:$n(i,k.name),isInSortStack:n.some(ue=>ue.column===k.name),isReadOnly:Ke,hasModifications:fn,width:y[k.name],onColumnClick:cn,onMoveColumn:dn,onColumnDragEnd:un,onResizeStart:an,onSortAscending:B||pn,onSortDescending:C||xn,onRemoveSort:mn,onOpenFilterForColumn:f||(()=>{}),onClearFiltersForColumn:ae||(()=>{}),onGroupByColumn:oe,onHideColumn:hn,onManageColumns:ge||(()=>{}),onResetLayout:G},k.name))})})]})}),t.jsx(o.Box,{ref:Ot,onScroll:k=>{$e.current&&($e.current.scrollLeft=k.target.scrollLeft)},sx:{flex:1,overflowY:"auto",overflowX:"auto",minHeight:0,bgcolor:"background.paper","&::-webkit-scrollbar":{width:8,height:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:k=>$(k.palette.text.primary,.2),borderRadius:4,"&:hover":{bgcolor:k=>$(k.palette.text.primary,.3)}}},children:t.jsxs(o.Table,{sx:{tableLayout:"fixed",borderCollapse:"collapse",borderSpacing:0,width:"100%",minWidth:`${Object.values(Wr).reduce((k,L)=>k+L,0)}px`},children:[t.jsx("colgroup",{children:Ct.map(k=>t.jsx("col",{style:{width:`${Wr[k.name]}px`}},k.name))}),t.jsx(o.TableBody,{children:Fe.length===0?t.jsx(o.TableRow,{children:t.jsx(o.TableCell,{colSpan:Ct.length+2+(Qr?1:0),align:"center",sx:{py:4},children:t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:"No data matches the current filters"})})}):Nr?Fe.map((k,L)=>k.isGroupHeader?yn(k):Co(k,L)):Fe.map((k,L)=>Co(k,L))})]})})]}),ct&&rt&&t.jsx(mu,{currentPage:Nt,pageSize:yt,totalRows:Kt,totalFields:e.length,onPageChange:ct,onPageSizeChange:rt}),!(ct&&rt)&&t.jsx(o.Box,{sx:{px:3,py:1.5,bgcolor:"action.hover",borderTop:1,borderColor:"divider"},children:t.jsxs(o.Typography,{variant:"body2",color:"text.secondary",children:["Showing ",Fe.length," ",Fe.length===1?"row":"rows"]})})]})]}),t.jsxs(o.Popover,{open:!!fe,onClose:()=>{Ye(null),ut(null)},anchorEl:(fe==null?void 0:fe.anchorEl)||null,anchorReference:fe!=null&&fe.anchorEl?"anchorEl":"anchorPosition",anchorPosition:fe&&!fe.anchorEl?{top:fe.mouseY,left:fe.mouseX}:void 0,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:fe!=null&&fe.anchorEl?{vertical:"top",horizontal:"right"}:{vertical:"top",horizontal:"left"},PaperProps:{sx:{minWidth:176,py:.5,borderRadius:1.5,boxShadow:3}},children:[!(We!=null&&We.includes("view"))&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{fe&&(Ft(fe.row),ir(!0)),Ye(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(z.Visibility,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"View"})]}),!(We!=null&&We.includes("edit"))&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{fe&&(ar(fe.row),br(fe.rowIndex),Et(!0)),Ye(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(z.Edit,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Edit"})]}),!(We!=null&&We.includes("duplicate"))&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{fe&&(ot==null||ot(fe.rowIndex,fe.row)),Ye(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(z.ContentCopy,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Duplicate"})]}),fe&&(Lt==null?void 0:Lt.map(k=>{var L,ue;return(L=k.hidden)!=null&&L.call(k,fe.row)?null:t.jsxs(o.MenuItem,{dense:!0,disabled:(ue=k.disabled)==null?void 0:ue.call(k,fe.row),onClick:()=>{k.onClick(fe.row,fe.rowIndex),Ye(null)},sx:{py:1,px:2,gap:1.5},children:[k.icon,t.jsx(o.Typography,{variant:"body2",children:k.label})]},k.key)})),Ut.size>0&&Jt&&!(We!=null&&We.includes("export"))&&t.jsxs(t.Fragment,{children:[t.jsx(o.Divider,{sx:{my:.5}}),t.jsxs(o.MenuItem,{dense:!0,onMouseEnter:k=>{$t(),ut(k.currentTarget)},onMouseLeave:Mr,sx:{py:1,px:2,gap:1.5,justifyContent:"space-between"},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[t.jsx(z.Download,{sx:{fontSize:18,color:"text.secondary"}}),t.jsxs(o.Typography,{variant:"body2",children:["Export Selected (",Ut.size,")"]})]}),t.jsx(z.ChevronRight,{sx:{fontSize:18,color:"text.secondary"}})]}),t.jsx(o.Popper,{open:!!_r,anchorEl:_r,placement:"right-start",transition:!0,sx:{zIndex:k=>k.zIndex.modal+1},modifiers:[{name:"offset",options:{offset:[0,0]}}],children:({TransitionProps:k})=>t.jsx(o.Grow,{...k,timeout:150,children:t.jsx(o.Paper,{onMouseEnter:$t,onMouseLeave:Mr,sx:{minWidth:176,py:.5,borderRadius:1.5,boxShadow:3},children:t.jsxs(o.MenuList,{dense:!0,autoFocusItem:!1,children:[t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{Jt("csv"),ut(null),Ye(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(z.TableChart,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"CSV"})]}),t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{Jt("excel"),ut(null),Ye(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(z.TableChart,{sx:{fontSize:18,color:"success.main"}}),t.jsx(o.Typography,{variant:"body2",children:"Excel"})]}),t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{Jt("json"),ut(null),Ye(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(z.DataObject,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"JSON"})]})]})})})})]}),!(We!=null&&We.includes("delete"))&&t.jsxs(t.Fragment,{children:[t.jsx(o.Divider,{sx:{my:.5}}),t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{fe&&(dt(fe.row),sr(!0)),Ye(null)},sx:{py:1,px:2,gap:1.5,color:"error.main"},children:[t.jsx(z.Delete,{sx:{fontSize:18,color:"error.main"}}),t.jsx(o.Typography,{variant:"body2",color:"error.main",children:"Delete"})]})]})]}),t.jsx(yu,{open:nr,onClose:()=>{ir(!1),Ft(null)},row:zt,schema:e,reportName:Dr}),t.jsx(vu,{open:ze,onClose:()=>{Et(!1),ar(null),br(null)},onSave:k=>{He!==null&&(Xt==null||Xt(He,k))},row:Dt,schema:e,reportName:Dr}),t.jsx(bu,{open:Le,onClose:()=>{sr(!1),dt(null)},onConfirm:()=>{X!==null&&(Qt==null||Qt(X))},row:X,schema:e}),t.jsx(As,{isOpen:Ar,onClose:()=>Vt(!1)})]})}function Br({content:e,isDev:r=!1}){const[n,i]=x.useState(null);return t.jsxs(t.Fragment,{children:[t.jsx(o.IconButton,{size:"small",onClick:s=>i(s.currentTarget),"aria-label":`Help: ${e.title}`,sx:{p:.375,color:"text.disabled","&:hover":{color:"primary.main",bgcolor:s=>$(s.palette.primary.main,.08)}},children:t.jsx(z.InfoOutlined,{sx:{fontSize:15}})}),t.jsxs(o.Popover,{open:!!n,anchorEl:n,onClose:()=>i(null),anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},PaperProps:{sx:{width:280,borderRadius:"10px",boxShadow:4,p:0,overflow:"hidden"}},children:[t.jsx(o.Box,{sx:{px:2,py:1.5,bgcolor:s=>$(s.palette.primary.main,.06)},children:t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600,color:"primary.main",fontSize:"0.875rem"},children:e.title})}),t.jsx(o.Divider,{}),t.jsxs(o.Box,{sx:{px:2,py:1.5,display:"flex",flexDirection:"column",gap:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{color:"text.secondary",fontSize:"0.8125rem",lineHeight:1.6},children:e.description}),e.tips&&e.tips.length>0&&t.jsx(o.Box,{component:"ul",sx:{m:0,pl:2,display:"flex",flexDirection:"column",gap:.5},children:e.tips.map((s,l)=>t.jsx(o.Box,{component:"li",sx:{fontSize:"0.8125rem",color:"text.secondary",lineHeight:1.5},children:s},l))}),r&&e.devNote&&t.jsxs(t.Fragment,{children:[t.jsx(o.Divider,{sx:{my:.5}}),t.jsxs(o.Box,{sx:{px:1.25,py:.75,borderRadius:"6px",bgcolor:s=>$(s.palette.warning.main,.08),border:"1px solid",borderColor:s=>$(s.palette.warning.main,.2)},children:[t.jsx(o.Typography,{variant:"caption",sx:{color:"warning.dark",fontWeight:500,display:"block",mb:.25},children:"Dev note"}),t.jsx(o.Typography,{variant:"caption",sx:{color:"warning.dark",lineHeight:1.5},children:e.devNote})]})]})]})]})]})}const Ir={filter:{title:"Filter columns",description:"Narrow down rows by setting conditions on any column. Only rows matching all active filters are shown.",tips:["Add multiple conditions to combine filters (AND logic)",'Use "Contains" for partial text matches','Use "Is empty" to find missing values',"Clear all filters to return to the full dataset"],devNote:"Max filter conditions controlled by DevConfig → Filter → maxConditions. Allowed operators also configurable."},sort:{title:"Sort columns",description:"Order rows by one or more columns. Drag levels to set sort priority — the first level is applied first.",tips:["Add multiple sort levels for multi-column sorting","Drag the ⋮⋮ handle to reorder sort priority","Each level can be ascending (A→Z, 0→9) or descending"],devNote:"Max sort levels controlled by DevConfig → Sort → maxLevels."},grouping:{title:"Group data",description:"Organize rows into collapsible groups by one or more column values. Each unique value becomes a group header.",tips:["Add up to 3 nesting levels for hierarchical grouping","Click a group header to collapse or expand it","Aggregates (count) are shown on each group header","Combine grouping with filters and sort for focused views"],devNote:"Max group levels controlled by DevConfig → Grouping → maxLevels. allowNested and allowCollapse also configurable."},columns:{title:"Manage columns",description:"Control which columns are visible, their display order, and their widths.",tips:["Drag rows to reorder columns","Toggle the eye icon to show or hide a column","Drag the resize handle in the table header to resize","Reset to restore default visibility and order"],devNote:"Max visible columns and width range controlled by DevConfig → Columns."},export:{title:"Export data",description:"Download the report data as a file. Choose between CSV, Excel, or JSON format.",tips:["CSV: universal format, opens in any spreadsheet app","Excel: formatted .xlsx file with native Excel support","JSON: structured data including metadata","Export visible rows only (after filters) or all rows"],devNote:"Allowed export formats controlled by DevConfig → Export → allowedFormats."},schedule:{title:"Scheduled reports",description:"Set up automatic exports that run at a specified time — daily, weekly, or monthly.",tips:["The browser tab must remain open for the schedule to fire","Each schedule triggers a file download automatically","Add an email address to open a notification in your mail app","Pause a schedule without deleting it"],devNote:"Schedules are stored in localStorage per-report. Key: urm_schedules_{reportId}."},auditHistory:{title:"Audit history",description:"A full log of all changes made to this report — filters applied, sorts changed, views saved, exports triggered, and more.",tips:["Each entry shows the action, timestamp, and who performed it","Use audit history to trace back unexpected changes"],devNote:"Audit entries are stored per-report in IndexedDB via the persistence layer."}},Dn=40;function $u({operator:e,onSelect:r}){return t.jsxs(o.Select,{value:e,onChange:n=>r(n.target.value),size:"small",variant:"outlined",sx:{position:"relative",zIndex:1,mt:1,width:58,height:24,fontSize:"0.6875rem",fontWeight:700,color:"primary.main",bgcolor:"background.paper",borderRadius:"6px","& .MuiSelect-select":{py:0,px:1,display:"flex",alignItems:"center"},"& .MuiOutlinedInput-notchedOutline":{borderColor:"divider"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"}},children:[t.jsx(o.MenuItem,{value:"and",sx:{fontSize:"0.75rem",fontWeight:600},children:"AND"}),t.jsx(o.MenuItem,{value:"or",sx:{fontSize:"0.75rem",fontWeight:600},children:"OR"})]})}function Ou({condition:e,schema:r,availableColumns:n,devConfig:i,onUpdate:s}){const l=r.find(u=>u.name===e.column),a=x.useMemo(()=>{const u=l?No(l.type):[],g=i.filter.allowedOperators;return g.length>0?u.filter(y=>g.includes(y.value)):u},[l,i]),c=wl(e.operator);return t.jsxs(o.Box,{sx:{display:"flex",gap:1,alignItems:"center",flexWrap:"wrap"},children:[t.jsx(o.FormControl,{size:"small",sx:{minWidth:150,flex:"1 1 150px"},children:t.jsx(o.Select,{value:e.column,onChange:u=>{var h;const g=r.find(v=>v.name===u.target.value),y=g?No(g.type):[];s({column:u.target.value,operator:((h=y[0])==null?void 0:h.value)??e.operator,value:void 0})},displayEmpty:!0,sx:{fontSize:"0.875rem",height:36,borderRadius:"4px",bgcolor:"background.paper"},children:n.map(u=>t.jsx(o.MenuItem,{value:u.name,sx:{fontSize:"0.875rem"},children:et(u.name)},u.name))})}),t.jsx(o.FormControl,{size:"small",sx:{minWidth:130,flex:"1 1 130px"},children:t.jsx(o.Select,{value:e.operator,onChange:u=>s({operator:u.target.value,value:void 0}),sx:{fontSize:"0.875rem",height:36,borderRadius:"4px",bgcolor:"background.paper"},children:a.map(u=>t.jsx(o.MenuItem,{value:u.value,sx:{fontSize:"0.875rem"},children:u.label},u.value))})}),c&&(l==null?void 0:l.type)==="date"&&t.jsx(o.TextField,{size:"small",type:"date",value:e.value??"",onChange:u=>s({value:u.target.value}),sx:{minWidth:160,flex:"1 1 160px","& .MuiInputBase-root":{height:36,fontSize:"0.875rem"}}}),c&&(l==null?void 0:l.type)!=="date"&&t.jsx(o.TextField,{size:"small",type:(l==null?void 0:l.type)==="number"?"number":"text",value:e.value??"",onChange:u=>s({value:(l==null?void 0:l.type)==="number"?Number(u.target.value):u.target.value}),placeholder:"Value…",sx:{minWidth:160,flex:"1 1 160px","& .MuiInputBase-root":{height:36,fontSize:"0.875rem"}}})]})}function Fs({group:e,depth:r,schema:n,availableColumns:i,devConfig:s,maxConditions:l,totalConditions:a,onChange:c}){const u=a>=l;return t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:1.25},children:[e.children.map((g,y)=>t.jsxs(o.Box,{sx:{display:"flex",alignItems:"stretch",gap:1},children:[t.jsxs(o.Box,{sx:{width:Dn,flexShrink:0,position:"relative",display:"flex",justifyContent:"center"},children:[y<e.children.length-1&&t.jsx(o.Box,{sx:{position:"absolute",top:0,bottom:0,left:"50%",width:"1px",bgcolor:"divider"}}),y>0&&t.jsx($u,{operator:e.operator,onSelect:h=>c(v=>Fn(v,e.id,h))}),y>0&&t.jsx(o.Box,{sx:{position:"absolute",top:13,left:"50%",width:Dn/2,height:"1px",bgcolor:"divider"}})]}),t.jsx(o.Box,{sx:{flex:1,minWidth:0,pt:y>0?1:0},children:Ne(g)?t.jsx(_u,{group:g,depth:r+1,schema:n,availableColumns:i,devConfig:s,maxConditions:l,totalConditions:a,onChange:c}):t.jsx(Ou,{condition:g,schema:n,availableColumns:i,devConfig:s,onUpdate:h=>c(v=>Ln(v,g.id,h))})}),t.jsx(o.IconButton,{size:"small",onClick:()=>c(h=>Vn(h,g.id)),sx:{mt:y>0?1:.25,color:"text.secondary",flexShrink:0},children:t.jsx(z.Close,{sx:{fontSize:16}})})]},g.id)),t.jsxs(o.Box,{sx:{display:"flex",gap:2,pl:`${Dn}px`},children:[t.jsx(o.Button,{size:"small",disabled:u||i.length===0,onClick:()=>c(g=>{var y,h,v;return qr(g,e.id,{id:Yr(),column:((y=i[0])==null?void 0:y.name)??"",operator:((v=No(((h=i[0])==null?void 0:h.type)??"string")[0])==null?void 0:v.value)??"equals"})}),sx:{fontSize:"0.8125rem",color:"primary.main",p:0,minWidth:"auto","&:hover":{bgcolor:"transparent",textDecoration:"underline"}},children:"+ Add condition"}),t.jsx(o.Button,{size:"small",disabled:u,onClick:()=>c(g=>qr(g,e.id,wt())),sx:{fontSize:"0.8125rem",color:"text.secondary",p:0,minWidth:"auto","&:hover":{bgcolor:"transparent",textDecoration:"underline"}},children:"+ Add group"})]})]})}function _u(e){return t.jsx(o.Box,{sx:{position:"relative",border:"1px solid",borderColor:r=>$(r.palette.primary.main,.2),borderLeft:"3px solid",borderLeftColor:"primary.main",bgcolor:r=>$(r.palette.primary.main,r.palette.mode==="dark"?.06:.03),borderRadius:"8px",p:1.25},children:t.jsx(Fs,{...e})})}function Mu({schema:e,filters:r,onReplaceFilters:n,onClose:i,focusColumn:s}){const[l,a]=x.useState(r??wt()),c=Tr(),u=x.useMemo(()=>e.filter(m=>m.type!=="mixed"&&m.type!=="null"&&m.type!=="array"&&m.type!=="object"),[e]);x.useEffect(()=>{var I;const m=r??wt();if(s&&m.children.length===0){const f=e.find(O=>O.name===s);if(f){a(qr(m,m.id,{id:Yr(),column:s,operator:((I=No(f.type)[0])==null?void 0:I.value)??"equals"}));return}}a(m)},[r,s,e]);const g=ht(l),y=c.filter.maxConditions,h=x.useCallback(m=>{a(I=>m(I))},[]),v=x.useMemo(()=>JSON.stringify(l)!==JSON.stringify(r??wt()),[l,r]),S=x.useCallback(()=>{n(l),i()},[l,n,i]),B=x.useCallback(()=>{a(r??wt()),i()},[r,i]),C=x.useCallback(()=>{n(wt()),i()},[n,i]);return t.jsx(o.Box,{onClick:B,sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:m=>$(m.palette.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:m=>m.zIndex.modal,animation:"fadeIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:m=>m.stopPropagation(),elevation:0,sx:{position:"relative",width:640,maxWidth:"calc(100vw - 120px)",maxHeight:"min(620px, calc(100vh - 200px))",display:"flex",flexDirection:"column",borderRadius:m=>Ge(m),bgcolor:"background.paper",outline:"none",boxShadow:m=>se(m).paper.boxShadow,border:m=>se(m).paper.border,overflow:"hidden",animation:"slideIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.95) translateY(-12px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2,bgcolor:m=>se(m).header.backgroundColor,borderBottom:m=>se(m).header.borderBottom,boxShadow:m=>se(m).header.boxShadow,flexShrink:0},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",lineHeight:1.5},children:"Filter columns"}),t.jsx(Br,{content:Ir.filter,isDev:process.env.NODE_ENV==="development"})]}),t.jsx(o.IconButton,{onClick:B,size:"small",sx:{p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(z.Close,{sx:{fontSize:20}})})]}),t.jsxs(o.Box,{sx:{flex:1,overflow:"auto",px:3,py:2.5,"&::-webkit-scrollbar":{width:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:m=>$(m.palette.text.primary,.2),borderRadius:4,"&:hover":{bgcolor:m=>$(m.palette.text.primary,.3)}}},children:[g===0&&t.jsxs(o.Typography,{variant:"body2",sx:{color:"text.disabled",fontSize:"0.875rem",mb:2},children:["No conditions yet — add one below to start filtering",s?` on "${et(s)}"`:"","."]}),t.jsx(Fs,{group:l,depth:0,schema:e,availableColumns:u,devConfig:c,maxConditions:y,totalConditions:g,onChange:h}),g>=y&&t.jsxs(o.Typography,{variant:"caption",sx:{display:"block",mt:1.5,color:"warning.dark",fontSize:"0.75rem",fontWeight:500},children:["Filter limit reached — maximum ",y," conditions allowed. Remove one to add another."]})]}),t.jsxs(o.Box,{sx:{px:3,py:2,borderTop:"1px solid divider",display:"flex",alignItems:"center",gap:1.5,justifyContent:"space-between",flexShrink:0,bgcolor:"action.hover"},children:[t.jsx(o.Button,{onClick:C,disabled:g===0,sx:{fontSize:"0.875rem",color:"error.main",p:0,minWidth:"auto","&:hover":{bgcolor:"transparent",color:"error.dark",textDecoration:"underline"},"&.Mui-disabled":{color:"text.disabled"}},children:"Clear all"}),t.jsxs(o.Box,{sx:{display:"flex",gap:1.5},children:[t.jsx(o.Button,{onClick:B,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:1,minHeight:36,borderRadius:m=>`${m.shape.borderRadius}px`,"&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:S,disabled:!v,variant:"contained",sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"background.paper",px:3,py:1,minHeight:36,borderRadius:m=>`${m.shape.borderRadius}px`,boxShadow:m=>me(m,"restButton"),"&:hover":{bgcolor:"primary.dark"},"&.Mui-disabled":{bgcolor:"action.disabledBackground",color:"action.disabled"}},children:"Apply filter"})]})]})]})})}const Qi="SORT_RULE";function Au({rule:e,index:r,onToggleDirection:n,onRemove:i,onMove:s}){const l=x.useRef(null),[{handlerId:a},c]=Yt.useDrop({accept:Qi,collect(y){return{handlerId:y.getHandlerId()}},hover(y,h){var f;if(!l.current)return;const v=y.index,S=r;if(v===S)return;const B=(f=l.current)==null?void 0:f.getBoundingClientRect(),C=(B.bottom-B.top)/2,m=h.getClientOffset(),I=((m==null?void 0:m.y)??0)-B.top;v<S&&I<C||v>S&&I>C||(s(v,S),y.index=S)}}),[{isDragging:u},g]=Yt.useDrag({type:Qi,item:()=>({index:r}),collect:y=>({isDragging:y.isDragging()})});return g(c(l)),t.jsxs(o.Box,{ref:l,"data-handler-id":a,sx:{display:"flex",alignItems:"center",gap:1.25,px:2,py:1.25,borderRadius:"8px",bgcolor:"background.paper",border:"1px solid divider",opacity:u?.4:1,cursor:"move",transition:"all 0.2s cubic-bezier(0.4, 0, 0.2, 1)","&:hover":{bgcolor:"action.hover",borderColor:"divider",boxShadow:y=>me(y,"restButtonLight"),transform:"translateY(-1px)"}},children:[t.jsx(o.Chip,{label:e.priority,size:"small",sx:{width:26,height:26,fontSize:"0.75rem",fontWeight:600,bgcolor:"primary.main",color:"background.paper",boxShadow:y=>`0 1px 2px 0 ${$(y.palette.primary.main,.3)}`,"& .MuiChip-label":{px:0}}}),t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:"3px",cursor:"grab",px:.5,opacity:.6,transition:"opacity 0.2s ease","&:hover":{opacity:1},"&:active":{cursor:"grabbing"}},children:[t.jsx(o.Box,{sx:{width:"4px",height:"4px",borderRadius:"50%",bgcolor:"text.secondary"}}),t.jsx(o.Box,{sx:{width:"4px",height:"4px",borderRadius:"50%",bgcolor:"text.secondary"}}),t.jsx(o.Box,{sx:{width:"4px",height:"4px",borderRadius:"50%",bgcolor:"text.secondary"}})]}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.875rem",fontWeight:400,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 0 100px",lineHeight:1.5},children:e.column}),t.jsx(o.FormControl,{size:"small",sx:{flex:1,minWidth:100},children:t.jsxs(o.Select,{value:e.direction,onChange:y=>n(r,y.target.value),sx:{fontSize:"0.875rem",height:36,borderRadius:"4px",bgcolor:"background.paper","& .MuiOutlinedInput-notchedOutline":{borderColor:"divider",transition:"border-color 0.2s ease"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main",borderWidth:"2px"},"& .MuiSelect-select":{py:.875,color:"text.primary",fontWeight:400}},children:[t.jsx(o.MenuItem,{value:"asc",sx:{fontSize:"0.875rem",color:"text.primary","&:hover":{bgcolor:"action.hover"},"&.Mui-selected":{bgcolor:y=>at(y),"&:hover":{bgcolor:y=>$(y.palette.primary.main,.2)}}},children:"Ascending"}),t.jsx(o.MenuItem,{value:"desc",sx:{fontSize:"0.875rem",color:"text.primary","&:hover":{bgcolor:"action.hover"},"&.Mui-selected":{bgcolor:y=>at(y),"&:hover":{bgcolor:y=>$(y.palette.primary.main,.2)}}},children:"Descending"})]})}),t.jsx(o.IconButton,{onClick:()=>i(r),size:"small",sx:{p:.5,color:"text.secondary",transition:"all 0.2s ease","&:hover":{color:"error.main",bgcolor:y=>$(y.palette.error.main,.08),transform:"scale(1.1)"}},children:t.jsx(z.Close,{sx:{fontSize:18}})})]})}function Ru({schema:e,sortStack:r,onUpdateSortStack:n,onClose:i}){const[s,l]=x.useState(""),[a,c]=x.useState([]);x.useEffect(()=>{c([...r])},[r]);const u=x.useMemo(()=>JSON.stringify(a)!==JSON.stringify(r),[a,r]),g=Tr(),y=x.useCallback(f=>{if(!f||a.length>=g.sort.maxLevels)return;const O={column:f,direction:"asc",priority:a.length+1};c([...a,O]),l(""),setTimeout(()=>{var j;return(j=document.activeElement)==null?void 0:j.blur()},0)},[a,g.sort.maxLevels]),h=x.useCallback(f=>{const j=a.filter((w,R)=>R!==f).map((w,R)=>({...w,priority:R+1}));c(j)},[a]),v=x.useCallback((f,O)=>{const j=[...a];j[f]={...j[f],direction:O},c(j)},[a]),S=x.useCallback((f,O)=>{const j=[...a],[w]=j.splice(f,1);j.splice(O,0,w);const R=j.map((b,_)=>({...b,priority:_+1}));c(R)},[a]),B=x.useCallback(()=>{n([]),i()},[n,i]),C=x.useCallback(()=>{n(a),i()},[a,n,i]),m=x.useCallback(()=>{c([...r]),l(""),i()},[r,i]),I=e.filter(f=>!a.some(O=>O.column===f.name));return t.jsx(Yt.DndProvider,{backend:Pn.HTML5Backend,children:t.jsx(o.Box,{onClick:m,sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:f=>$(f.palette.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:f=>f.zIndex.modal,animation:"fadeIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:f=>f.stopPropagation(),elevation:0,sx:{position:"relative",width:480,maxWidth:"calc(100vw - 120px)",maxHeight:"min(440px, calc(100vh - 280px))",display:"flex",flexDirection:"column",borderRadius:f=>Ge(f),bgcolor:"background.paper",outline:"none",boxShadow:f=>se(f).paper.boxShadow,border:f=>se(f).paper.border,overflow:"hidden",animation:"slideIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.95) translateY(-12px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2,bgcolor:f=>se(f).header.backgroundColor,borderBottom:f=>se(f).header.borderBottom,boxShadow:f=>se(f).header.boxShadow,flexShrink:0},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",letterSpacing:"0",lineHeight:1.5},children:"Sort columns"}),t.jsx(Br,{content:Ir.sort,isDev:process.env.NODE_ENV==="development"})]}),t.jsx(o.IconButton,{onClick:m,size:"small",sx:{p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(z.Close,{sx:{fontSize:20}})})]}),t.jsxs(o.Box,{sx:{flex:1,overflow:"auto",px:3,py:2.5,"&::-webkit-scrollbar":{width:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:f=>$(f.palette.text.primary,.2),borderRadius:4,"&:hover":{bgcolor:f=>$(f.palette.text.primary,.3)}}},children:[t.jsxs(o.Box,{sx:{mb:2.5},children:[t.jsx(o.Typography,{variant:"overline",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",mb:1.5,display:"block",textTransform:"uppercase"},children:"Add sort level"}),t.jsxs(o.FormControl,{size:"small",fullWidth:!0,disabled:a.length>=g.sort.maxLevels,children:[t.jsx(o.InputLabel,{sx:{fontSize:"0.875rem",color:"text.secondary","&.Mui-focused":{color:"primary.main"}},children:"Select column..."}),t.jsx(o.Select,{value:s,onChange:f=>y(f.target.value),label:"Select column...",sx:{fontSize:"0.875rem",height:40,borderRadius:"4px",bgcolor:"background.paper","& .MuiOutlinedInput-notchedOutline":{borderColor:"divider",transition:"border-color 0.2s ease"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main",borderWidth:"2px"},"&.Mui-disabled":{bgcolor:"action.hover"}},children:I.map(f=>t.jsx(o.MenuItem,{value:f.name,sx:{fontSize:"0.875rem",color:"text.primary",py:1,"&:hover":{bgcolor:"action.hover"},"&.Mui-selected":{bgcolor:O=>at(O),"&:hover":{bgcolor:O=>$(O.palette.primary.main,.2)}}},children:et(f.name)},f.name))})]}),a.length>=g.sort.maxLevels&&t.jsxs(o.Typography,{variant:"caption",sx:{mt:.75,display:"block",color:"warning.dark",fontSize:"0.75rem",fontWeight:500},children:["Maximum ",g.sort.maxLevels," sort levels allowed"]})]}),a.length>0&&t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1.5},children:[t.jsxs(o.Typography,{variant:"overline",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",textTransform:"uppercase"},children:["Sorted sequence (",a.length,"/",g.sort.maxLevels,")"]}),t.jsx(o.Button,{onClick:B,sx:{fontSize:"0.875rem",color:"error.main",p:0,minWidth:"auto",minHeight:"auto",transition:"color 0.2s ease","&:hover":{bgcolor:"transparent",color:"error.dark",textDecoration:"underline"}},children:"Clear all"})]}),t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:1.25},children:a.map((f,O)=>t.jsx(Au,{rule:f,index:O,onToggleDirection:v,onRemove:h,onMove:S},`${f.column}-${O}`))})]})]}),t.jsxs(o.Box,{sx:{px:3,py:2,borderTop:"1px solid divider",display:"flex",gap:1.5,justifyContent:"flex-end",flexShrink:0,bgcolor:"action.hover"},children:[t.jsx(o.Button,{onClick:m,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:1,minHeight:36,borderRadius:f=>`${f.shape.borderRadius}px`,transition:"all 0.2s ease","&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:C,variant:"contained",disabled:!u||a.length===0,sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"background.paper",px:3,py:1,minHeight:36,borderRadius:f=>`${f.shape.borderRadius}px`,boxShadow:f=>me(f,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"primary.dark",boxShadow:f=>me(f,"hoverButton")},"&:active":{boxShadow:f=>me(f,"pressedButton"),transform:"translateY(1px)"}},children:"Apply sort"})]})]})})})}const Eo=50;function Zi({currentSnapshot:e,onSave:r,onClose:n,isEditMode:i=!1,initialName:s="",initialDescription:l="",initialIsDefault:a=!1,atViewLimit:c=!1,maxViews:u=10}){const[g,y]=x.useState(s),[h,v]=x.useState(!1),[S,B]=x.useState(l),[C,m]=x.useState(a),I=()=>{if(!g.trim()){v(!0);return}if(g.trim().length>Eo){v(!0);return}r(g.trim(),S.trim(),C),n()},f=j=>{j.key==="Enter"&&!j.shiftKey?I():j.key==="Escape"&&n()},O=()=>i&&s?`Update ${s} view`:"Create New Report View";return t.jsxs(o.Dialog,{open:!0,onClose:n,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:j=>({mt:8,borderRadius:Ge(j),...se(j).paper})},children:[t.jsxs(o.DialogTitle,{sx:j=>({display:"flex",alignItems:"center",justifyContent:"space-between",pb:1,...se(j).header}),children:[O(),t.jsx(o.IconButton,{onClick:n,size:"small",sx:{color:"text.secondary"},children:t.jsx(z.Close,{sx:{fontSize:20}})})]}),t.jsx(o.DialogContent,{children:t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:[c&&!i&&t.jsxs(o.Alert,{severity:"warning",sx:{borderRadius:"8px"},children:["You have reached the maximum of ",u," saved views. Delete an existing view before creating a new one."]}),t.jsx(o.TextField,{label:"View Name",required:!0,value:g,onChange:j=>{j.target.value.length<=Eo&&y(j.target.value),h&&j.target.value.trim()&&v(!1)},onKeyDown:f,placeholder:"e.g., Active Users",autoFocus:!0,fullWidth:!0,size:"small",disabled:c&&!i,inputProps:{maxLength:Eo},error:h&&!g.trim(),helperText:h&&!g.trim()?"View name is required":`${g.length} / ${Eo}`}),t.jsx(o.TextField,{label:"Description (optional)",value:S,onChange:j=>B(j.target.value),placeholder:"Brief description of this view",multiline:!0,rows:2,fullWidth:!0,size:"small"}),t.jsxs(o.Paper,{sx:{p:2,bgcolor:"action.hover"},variant:"outlined",children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,mb:1},children:"This view will capture:"}),t.jsxs(o.Box,{component:"ul",sx:{m:0,pl:2,"& li":{fontSize:"body2.fontSize",color:"text.secondary"}},children:[t.jsxs("li",{children:[ht(e.filters)," filter",ht(e.filters)!==1?"s":""]}),t.jsxs("li",{children:["Sorting: ",Na(e.sortStack)]}),t.jsx("li",{children:"Column order & visibility"})]})]}),!i&&t.jsx(o.FormControlLabel,{control:t.jsx(o.Checkbox,{checked:C,onChange:j=>m(j.target.checked),size:"small"}),label:t.jsx(o.Typography,{variant:"body2",children:"Set as default view"})})]})}),t.jsxs(o.DialogActions,{sx:{px:3,py:1.75,borderTop:"1px solid divider",bgcolor:"action.hover",gap:1.25,justifyContent:"flex-end"},children:[t.jsx(o.Button,{onClick:n,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:.875,minHeight:36,borderRadius:j=>`${j.shape.borderRadius}px`,transition:"all 0.2s ease","&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:I,variant:"contained",disabled:c&&!i,startIcon:t.jsx(z.Save,{sx:{fontSize:18}}),sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"background.paper",px:3,py:.875,minHeight:36,borderRadius:j=>`${j.shape.borderRadius}px`,boxShadow:j=>me(j,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"primary.dark",boxShadow:j=>me(j,"hoverButton")},"&:active":{boxShadow:j=>me(j,"pressedButton"),transform:"translateY(1px)"},"&.Mui-disabled":{bgcolor:"divider",color:"text.disabled"}},children:i?"Save Changes":"Create Report View"})]})]})}function Wu({viewName:e,onConfirm:r,onCancel:n}){return t.jsxs(o.Dialog,{open:!0,onClose:n,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:i=>({borderRadius:Ge(i),maxHeight:"min(480px, calc(100vh - 180px))",my:"auto",...se(i).paper})},children:[t.jsxs(o.DialogTitle,{sx:i=>({display:"flex",alignItems:"center",justifyContent:"space-between",pb:1,...se(i).header}),children:["Delete View",t.jsx(o.IconButton,{onClick:n,size:"small",sx:{color:"text.secondary"},children:t.jsx(z.Close,{sx:{fontSize:20}})})]}),t.jsx(o.DialogContent,{children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"flex-start",gap:1.5,mt:1},children:[t.jsx(z.Warning,{color:"error",sx:{fontSize:20,flexShrink:0}}),t.jsxs(o.Box,{children:[t.jsxs(o.Typography,{variant:"body2",sx:{mb:1},children:["Are you sure you want to delete the view ",t.jsxs("strong",{children:['"',e,'"']}),"?"]}),t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:"This action cannot be undone."})]})]})}),t.jsxs(o.DialogActions,{sx:{px:3,py:1.75,borderTop:"1px solid",borderColor:"divider",bgcolor:"action.hover",gap:1.25,justifyContent:"flex-end"},children:[t.jsx(o.Button,{onClick:n,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:.875,minHeight:36,borderRadius:i=>`${i.shape.borderRadius}px`,transition:"all 0.2s ease","&:hover":{bgcolor:"action.selected",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:r,variant:"contained",color:"error",sx:{fontSize:"0.875rem",px:3,py:.875,minHeight:36,borderRadius:i=>`${i.shape.borderRadius}px`,boxShadow:i=>me(i,"restButton"),transition:"all 0.2s ease","&:hover":{boxShadow:i=>me(i,"hoverButton")},"&:active":{boxShadow:i=>me(i,"pressedButton"),transform:"translateY(1px)"}},children:"Delete View"})]})]})}const Oo=100,_o=600,es="COLUMN";function Pu({column:e,index:r,isVisible:n,width:i,onToggleVisibility:s,onWidthChange:l,moveColumn:a}){const c=x.useRef(null),[u,g]=x.useState(i.toString());x.useEffect(()=>{g(i.toString())},[i]);const[{handlerId:y},h]=Yt.useDrop({accept:es,collect(f){return{handlerId:f.getHandlerId()}},hover(f,O){var d;if(!c.current)return;const j=f.index,w=r;if(j===w)return;const R=(d=c.current)==null?void 0:d.getBoundingClientRect(),b=(R.bottom-R.top)/2,_=O.getClientOffset(),V=((_==null?void 0:_.y)??0)-R.top;j<w&&V<b||j>w&&V>b||(a(j,w),f.index=w)}}),[{isDragging:v},S]=Yt.useDrag({type:es,item:()=>({index:r}),collect:f=>({isDragging:f.isDragging()})});S(h(c));const B=()=>{const f=parseInt(u);if(isNaN(f)){g(i.toString()),l(e.name,i);return}const O=Math.max(Oo,Math.min(_o,f));g(O.toString()),l(e.name,O)},C=f=>{if(f===""||/^\d+$/.test(f)){g(f);const O=parseInt(f);if(!isNaN(O)&&O>=Oo){const j=Math.min(_o,O);l(e.name,j)}}},m=f=>{f.key==="Enter"&&(f.preventDefault(),B(),f.target.blur())},I=f=>({string:"primary.main",number:"success.main",boolean:"secondary.main",array:"info.main",object:"error.main",null:"text.secondary",mixed:"text.secondary"})[f]||"text.secondary";return t.jsxs(o.TableRow,{ref:c,"data-handler-id":y,sx:{opacity:v?.4:1,bgcolor:n?"background.paper":"action.hover",transition:"opacity 0.15s ease","&:hover":{bgcolor:n?"action.hover":"action.selected"},cursor:"move",height:56,borderBottom:"1px solid divider"},children:[t.jsx(o.TableCell,{sx:{py:1.5,px:2.5,borderBottom:"none"},children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.25},children:[t.jsx(o.Box,{sx:{color:"text.secondary",cursor:"grab",opacity:.6,transition:"opacity 0.2s ease","&:hover":{opacity:1},"&:active":{cursor:"grabbing"}},children:t.jsx(z.DragIndicator,{sx:{fontSize:20}})}),t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:400,fontSize:"0.875rem",color:n?"text.primary":"text.secondary"},children:et(e.name)})]})}),t.jsx(o.TableCell,{sx:{py:1.5,px:2.5,borderBottom:"none"},children:t.jsx(o.Chip,{label:e.type.toUpperCase(),size:"small",sx:{height:22,fontSize:"0.6875rem",fontWeight:600,bgcolor:`${I(e.type)}15`,color:I(e.type),border:`1px solid ${I(e.type)}30`,"& .MuiChip-label":{px:1}}})}),t.jsx(o.TableCell,{sx:{py:1.5,px:2.5,borderBottom:"none"},children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(o.TextField,{type:"number",value:u,onChange:f=>C(f.target.value),onBlur:B,onKeyDown:m,placeholder:"150",size:"small",inputProps:{min:Oo,max:_o,step:10},sx:{width:90,"& .MuiOutlinedInput-root":{height:32,fontSize:"0.8125rem",borderRadius:"4px",bgcolor:"background.paper","& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"primary.main"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:"2px"}},"& .MuiInputBase-input":{py:.5,px:1.25,color:"text.primary"},"& input[type=number]::-webkit-inner-spin-button":{opacity:1},"& input[type=number]::-webkit-outer-spin-button":{opacity:1}}}),t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.75rem",color:"text.secondary"},children:"px"})]})}),t.jsx(o.TableCell,{sx:{py:1.5,px:2.5,borderBottom:"none"},children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.25},children:[t.jsx(o.IconButton,{onClick:()=>s(e.name,!n),title:n?"Hide column":"Show column",size:"small",sx:{p:.75,color:n?"primary.main":"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:n?"primary.dark":"primary.main"}},children:n?t.jsx(z.Visibility,{sx:{fontSize:20}}):t.jsx(z.VisibilityOff,{sx:{fontSize:20}})}),t.jsx(o.Chip,{label:n?"Visible":"Hidden",size:"small",sx:{height:22,fontSize:"0.6875rem",fontWeight:500,bgcolor:n?f=>$(f.palette.success.main,.12):"action.selected",color:n?"success.main":"text.secondary","& .MuiChip-label":{px:1}}})]})})]})}function Nu({schema:e,columnVisibility:r,columnOrder:n,columnWidths:i={},views:s=[],activeViewId:l="",onUpdateColumnVisibility:a,onUpdateColumnOrder:c,onUpdateColumnWidth:u,onResetLayout:g,onClose:y}){const[h,v]=x.useState(!1),[S,B]=x.useState(n),[C,m]=x.useState(i),[I,f]=x.useState("all");x.useEffect(()=>{B(n)},[n]),x.useEffect(()=>{m(i)},[i]);const O=(p,P)=>{m(F=>({...F,[p]:P})),u==null||u(p,P)},j=(p,P)=>{const F=[...S],[re]=F.splice(p,1);F.splice(P,0,re),B(F),c(F)},w=()=>{g(),v(!1)},b=S.map(p=>e.find(P=>P.name===p)).filter(p=>p!==void 0).filter(p=>{const P=r[p.name]??!0;return I==="active"?P:I==="hidden"?!P:!0}),_=Object.values(r).filter(p=>p).length,V=e.length,d=s.find(p=>p.id===l),ee=x.useMemo(()=>{if(!d)return!1;const p=d.snapshot,P=p.columnVisibility??{},F=JSON.stringify(r)!==JSON.stringify(P),re=p.columnOrder??[],ce=n??[],J=JSON.stringify(ce)!==JSON.stringify(re)&&!(ce.length===0&&re.length===0),Z=p.columnWidths??{},ge=JSON.stringify(C)!==JSON.stringify(Z);return F||J||ge},[d,r,n,C]);return t.jsx(Yt.DndProvider,{backend:Pn.HTML5Backend,children:t.jsx(o.Box,{onClick:y,sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:p=>$(p.palette.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:p=>p.zIndex.modal,animation:"fadeIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:p=>p.stopPropagation(),elevation:0,sx:{position:"relative",width:720,maxWidth:"calc(100vw - 120px)",maxHeight:"min(760px, calc(100vh - 200px))",display:"flex",flexDirection:"column",borderRadius:p=>Ge(p),bgcolor:"background.paper",outline:"none",boxShadow:p=>se(p).paper.boxShadow,border:p=>se(p).paper.border,overflow:"hidden",animation:"slideIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.95) translateY(-12px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{px:3,pt:2,pb:1.5,flexShrink:0,bgcolor:p=>se(p).header.backgroundColor,borderBottom:p=>se(p).header.borderBottom,boxShadow:p=>se(p).header.boxShadow},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[t.jsx(o.Box,{sx:{flex:1},children:t.jsxs(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",letterSpacing:"0",lineHeight:1.5},children:["Manage columns",t.jsx(Br,{content:Ir.columns,isDev:process.env.NODE_ENV==="development"})]})}),t.jsx(o.IconButton,{onClick:y,size:"small",sx:{ml:2,p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(z.Close,{sx:{fontSize:20}})})]}),t.jsxs(o.Tabs,{value:I,onChange:(p,P)=>f(P),sx:{minHeight:36,mt:.5,"& .MuiTabs-indicator":{bgcolor:p=>At(p).main,height:3}},children:[t.jsx(o.Tab,{label:"All",value:"all",sx:{minHeight:36,py:.75,fontSize:"0.875rem",fontWeight:500,textTransform:"none",color:"text.secondary","&.Mui-selected":{color:p=>At(p).main}}}),t.jsx(o.Tab,{label:"Visible",value:"active",sx:{minHeight:36,py:.75,fontSize:"0.875rem",fontWeight:500,textTransform:"none",color:"text.secondary","&.Mui-selected":{color:p=>At(p).main}}}),t.jsx(o.Tab,{label:"Hidden",value:"hidden",sx:{minHeight:36,py:.75,fontSize:"0.875rem",fontWeight:500,textTransform:"none",color:"text.secondary","&.Mui-selected":{color:p=>At(p).main}}})]})]}),t.jsx(o.Box,{sx:{flex:1,overflow:"auto","&::-webkit-scrollbar":{width:8,height:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:p=>$(p.palette.text.primary,.2),borderRadius:4,"&:hover":{bgcolor:p=>$(p.palette.text.primary,.3)}}},children:t.jsxs(o.Table,{stickyHeader:!0,sx:{minWidth:650},children:[t.jsx(o.TableHead,{children:t.jsxs(o.TableRow,{children:[t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"0.6875rem",color:"text.secondary",bgcolor:"background.paper",letterSpacing:"0.1em",py:1.5,px:2.5,borderBottom:"1px solid divider"},children:"Column name"}),t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"0.6875rem",color:"text.secondary",bgcolor:"background.paper",letterSpacing:"0.1em",py:1.5,px:2.5,borderBottom:"1px solid divider"},children:"Type"}),t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"0.6875rem",color:"text.secondary",bgcolor:"background.paper",letterSpacing:"0.1em",py:1.5,px:2.5,borderBottom:"1px solid divider"},children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:["Width",t.jsx(o.Tooltip,{title:`Column width in pixels (min: ${Oo}px, max: ${_o}px)`,arrow:!0,placement:"top",children:t.jsx(z.InfoOutlined,{sx:{fontSize:14,color:"text.secondary",cursor:"help"}})})]})}),t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"0.6875rem",color:"text.secondary",bgcolor:"background.paper",letterSpacing:"0.1em",py:1.5,px:2.5,borderBottom:"1px solid divider"},children:"Visibility"})]})}),t.jsx(o.TableBody,{children:b.length===0?t.jsx(o.TableRow,{children:t.jsx(o.TableCell,{colSpan:4,align:"center",sx:{py:6,borderBottom:"none"},children:t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.875rem",color:"text.secondary"},children:"No columns in this category"})})}):b.map((p,P)=>t.jsx(Pu,{column:p,index:P,isVisible:r[p.name]??!0,width:C[p.name]||170,onToggleVisibility:a,onWidthChange:O,moveColumn:j},p.name))})]})}),t.jsx(o.Box,{sx:{px:3,py:1,borderTop:"1px solid divider",bgcolor:"background.default",flexShrink:0},children:t.jsxs(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.secondary"},children:[_," of ",V," columns visible • Drag to reorder"]})}),t.jsx(o.Box,{sx:{px:3,py:1.75,borderTop:"1px solid divider",display:"flex",justifyContent:"space-between",alignItems:"center",flexShrink:0,bgcolor:"action.hover"},children:t.jsx(o.Button,{onClick:()=>v(!0),disabled:!ee,variant:"outlined",startIcon:t.jsx(z.Undo,{sx:{fontSize:18}}),sx:{fontSize:"0.875rem",color:"text.secondary",borderColor:"divider",px:2.5,py:.875,minHeight:36,borderRadius:p=>`${p.shape.borderRadius}px`,"&:hover":{borderColor:"primary.main",bgcolor:"background.paper",color:"primary.main"},"&.Mui-disabled":{color:"text.disabled",borderColor:"divider"}},children:"Reset"})}),h&&t.jsx(o.Box,{onClick:()=>v(!1),sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:p=>$(p.palette.common.black,.5),display:"flex",alignItems:"center",justifyContent:"center",zIndex:p=>p.zIndex.tooltip},children:t.jsxs(o.Paper,{onClick:p=>p.stopPropagation(),elevation:0,sx:{width:400,maxWidth:"90vw",borderRadius:p=>Jr(p),bgcolor:"background.paper",boxShadow:p=>se(p).paper.boxShadow,border:p=>se(p).paper.border},children:[t.jsxs(o.Box,{sx:{px:3,py:2.5},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1rem",fontWeight:500,color:"text.primary",mb:1.5},children:"Reset column layout?"}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.875rem",color:"text.secondary",lineHeight:1.5},children:"This will restore default visibility, order, and widths for all columns."})]}),t.jsxs(o.Box,{sx:{px:3,py:2,borderTop:"1px solid divider",display:"flex",gap:1.5,justifyContent:"flex-end",bgcolor:"action.hover"},children:[t.jsx(o.Button,{onClick:()=>v(!1),variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:1,borderRadius:p=>`${p.shape.borderRadius}px`,"&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:w,variant:"contained",sx:{fontSize:"0.875rem",bgcolor:"error.main",color:"background.paper",px:3,py:1,borderRadius:p=>`${p.shape.borderRadius}px`,boxShadow:p=>me(p,"pressedButton"),"&:hover":{bgcolor:"error.dark",boxShadow:p=>me(p,"hoverButton")},"&:active":{boxShadow:p=>me(p,"pressedButton"),transform:"translateY(1px)"}},children:"Reset layout"})]})]})})]})})})}function Lu({schema:e,grouping:r,onApply:n,onClose:i}){var R;const[s,l]=x.useState(r||{enabled:!1,levels:[],collapsedGroups:[]}),[a,c]=x.useState(""),[u,g]=x.useState(null),y=x.useMemo(()=>Oa(e),[e]),h=x.useMemo(()=>y.filter(b=>!s.levels.some((_,V)=>_.column===b.name&&V!==u)),[y,s.levels,u]),v=Tr(),S=s.levels.length<v.grouping.maxLevels&&h.length>0,B=x.useCallback(b=>{!S||!b||(l({...s,levels:[...s.levels,{column:b}],enabled:!0}),c(""),setTimeout(()=>{var _;return(_=document.activeElement)==null?void 0:_.blur()},0))},[S,s]),C=x.useCallback(b=>{const _=s.levels.filter((V,d)=>d!==b);if(_.length===0){n(null),i();return}l({...s,levels:_,enabled:_.length>0})},[s,n,i]),m=x.useCallback(b=>{g(b),c(s.levels[b].column)},[s.levels]),I=x.useCallback(()=>{if(u===null||!a)return;const b=[...s.levels];b[u]={column:a},l({...s,levels:b}),g(null),c("")},[u,a,s]),f=x.useCallback(()=>{g(null),c("")},[]),O=x.useCallback((b,_)=>{const V=_==="up"?b-1:b+1;if(V<0||V>=s.levels.length)return;const d=[...s.levels],[ee]=d.splice(b,1);d.splice(V,0,ee),l({...s,levels:d})},[s]),j=x.useCallback(()=>{n(null),i()},[n,i]),w=x.useCallback(()=>{s.levels.length===0?n(null):n({...s,enabled:!0,collapsedGroups:(r==null?void 0:r.collapsedGroups)||[]}),i()},[s,r,n,i]);return t.jsx(o.Box,{onClick:i,sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:b=>$(b.palette.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:b=>b.zIndex.modal,animation:"fadeIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:b=>b.stopPropagation(),elevation:0,sx:{position:"relative",width:540,maxWidth:"calc(100vw - 120px)",maxHeight:"min(560px, calc(100vh - 280px))",display:"flex",flexDirection:"column",borderRadius:b=>Ge(b),bgcolor:"background.paper",outline:"none",boxShadow:b=>se(b).paper.boxShadow,border:b=>se(b).paper.border,overflow:"hidden",animation:"slideIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.95) translateY(-12px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2,bgcolor:b=>se(b).header.backgroundColor,borderBottom:b=>se(b).header.borderBottom,boxShadow:b=>se(b).header.boxShadow,flexShrink:0},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",letterSpacing:"0",lineHeight:1.5},children:"Group configuration"}),t.jsx(Br,{content:Ir.grouping,isDev:process.env.NODE_ENV==="development"})]}),t.jsx(o.IconButton,{onClick:i,size:"small",sx:{p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(z.Close,{sx:{fontSize:20}})})]}),t.jsx(o.Box,{sx:{flex:1,overflow:"auto",px:3,py:1,"&::-webkit-scrollbar":{width:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:b=>$(b.palette.text.primary,.2),borderRadius:4,"&:hover":{bgcolor:b=>$(b.palette.text.primary,.3)}}},children:t.jsxs(o.Stack,{spacing:2.5,children:[u===null&&t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"overline",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",mb:1.5,display:"block",textTransform:"uppercase"},children:"Add group level"}),t.jsx(o.FormControl,{fullWidth:!0,size:"small",sx:{mb:1.5},children:t.jsxs(o.Select,{value:a,onChange:b=>B(b.target.value),disabled:!S,displayEmpty:!0,sx:{fontSize:"0.875rem",height:40,borderRadius:"4px",bgcolor:"background.paper","& .MuiOutlinedInput-notchedOutline":{borderColor:"divider",transition:"border-color 0.2s ease"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main",borderWidth:"2px"},"&.Mui-disabled":{bgcolor:"action.hover"}},children:[t.jsx(o.MenuItem,{value:"",sx:{fontSize:"0.875rem",color:"text.secondary"},children:"Select a column..."}),h.map(b=>t.jsxs(o.MenuItem,{value:b.name,sx:{fontSize:"0.875rem",color:"text.primary",py:1,"&:hover":{bgcolor:"action.hover"},"&.Mui-selected":{bgcolor:_=>at(_),"&:hover":{bgcolor:_=>$(_.palette.primary.main,.2)}}},children:[et(b.name)," (",b.type.toUpperCase(),")"]},b.name))]})}),s.levels.length>=v.grouping.maxLevels&&t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",textAlign:"center",mt:1.5,fontSize:"0.75rem",color:"text.secondary"},children:"Maximum group levels (3) reached"}),y.length===0&&t.jsx(o.Typography,{variant:"body2",color:"text.secondary",sx:{textAlign:"center",py:2,fontSize:"0.875rem",color:"text.secondary"},children:"No groupable columns available. Only STRING and BOOLEAN columns can be grouped."})]}),u!==null&&t.jsxs(o.Alert,{severity:"warning",sx:{borderRadius:"8px",border:b=>`1px solid ${$(b.palette.warning.main,.5)}`,bgcolor:b=>$(b.palette.warning.main,.12),"& .MuiAlert-icon":{color:"warning.main"}},children:[t.jsxs(o.Typography,{variant:"body2",sx:{fontWeight:500,mb:1.5,fontSize:"0.875rem",color:"text.primary"},children:["Edit Group Level ",u+1]}),t.jsx(o.FormControl,{fullWidth:!0,size:"small",sx:{mb:1.5},children:t.jsxs(o.Select,{value:a,onChange:b=>c(b.target.value),sx:{fontSize:"0.875rem",height:40,borderRadius:"4px",bgcolor:"background.paper","& .MuiOutlinedInput-notchedOutline":{borderColor:"divider"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main",borderWidth:"2px"}},children:[t.jsx(o.MenuItem,{value:"",sx:{fontSize:"0.875rem"},children:"Select a column..."}),t.jsxs(o.MenuItem,{value:s.levels[u].column,sx:{fontSize:"0.875rem","&.Mui-selected":{bgcolor:b=>at(b)}},children:[s.levels[u].column," (",(R=e.find(b=>b.name===s.levels[u].column))==null?void 0:R.type.toUpperCase(),")"]}),h.filter(b=>b.name!==s.levels[u].column).map(b=>t.jsxs(o.MenuItem,{value:b.name,sx:{fontSize:"0.875rem","&.Mui-selected":{bgcolor:_=>at(_)}},children:[et(b.name)," (",b.type.toUpperCase(),")"]},b.name))]})}),t.jsxs(o.Stack,{direction:"row",spacing:1.5,children:[t.jsx(o.Button,{onClick:I,disabled:!a,variant:"contained",fullWidth:!0,size:"small",sx:{fontSize:"0.875rem",bgcolor:"warning.main",color:"background.paper",py:.875,boxShadow:"none","&:hover":{bgcolor:"warning.dark",boxShadow:b=>me(b,"pressedButton")}},children:"Save"}),t.jsx(o.Button,{onClick:f,variant:"outlined",fullWidth:!0,size:"small",sx:{fontSize:"0.875rem",color:"text.secondary",borderColor:"divider",py:.875,"&:hover":{borderColor:"text.secondary",bgcolor:"action.hover"}},children:"Cancel"})]})]}),s.levels.length>0&&u===null&&t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:1.5},children:[t.jsx(o.Typography,{variant:"overline",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",textTransform:"uppercase"},children:"Active group levels"}),t.jsx(o.Button,{onClick:j,size:"small",sx:{fontSize:"0.875rem",color:"error.main",p:0,minWidth:"auto","&:hover":{bgcolor:"transparent",color:"error.dark",textDecoration:"underline"}},children:"Clear all"})]}),t.jsx(o.Stack,{spacing:1.5,children:s.levels.map((b,_)=>{const V=e.find(d=>d.name===b.column);return t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5,p:2,borderRadius:"8px",bgcolor:"background.paper",border:"1px solid divider",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",borderColor:"divider",boxShadow:d=>me(d,"pressedButtonLight")}},children:[t.jsx(o.Chip,{label:`L${_+1}`,size:"small",sx:{width:40,height:28,fontWeight:600,fontSize:"0.75rem",bgcolor:"primary.main",color:"background.paper",boxShadow:d=>`0 1px 2px 0 ${$(d.palette.primary.main,.3)}`}}),t.jsxs(o.Box,{sx:{flex:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,fontSize:"0.875rem",color:"text.primary"},children:b.column}),t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.75rem",color:"text.secondary"},children:V==null?void 0:V.type.toUpperCase()})]}),t.jsxs(o.Stack,{direction:"row",spacing:.5,children:[t.jsx(o.IconButton,{size:"small",onClick:()=>O(_,"up"),disabled:_===0,sx:{color:"text.secondary","&:hover":{bgcolor:"action.hover"},"&.Mui-disabled":{color:"divider"}},children:t.jsx(z.KeyboardArrowUp,{sx:{fontSize:18}})}),t.jsx(o.IconButton,{size:"small",onClick:()=>O(_,"down"),disabled:_===s.levels.length-1,sx:{color:"text.secondary","&:hover":{bgcolor:"action.hover"},"&.Mui-disabled":{color:"divider"}},children:t.jsx(z.KeyboardArrowDown,{sx:{fontSize:18}})}),t.jsx(o.IconButton,{size:"small",onClick:()=>m(_),sx:{color:"text.secondary","&:hover":{bgcolor:"action.hover",color:"primary.main"}},children:t.jsx(z.Edit,{sx:{fontSize:18}})}),t.jsx(o.IconButton,{size:"small",onClick:()=>C(_),sx:{color:"text.secondary","&:hover":{bgcolor:d=>$(d.palette.error.main,.08),color:"error.main"}},children:t.jsx(z.Delete,{sx:{fontSize:18}})})]})]},_)})})]})]})}),t.jsxs(o.Box,{sx:{px:3,py:2,borderTop:"1px solid divider",display:"flex",gap:1.5,justifyContent:"flex-end",flexShrink:0,bgcolor:"action.hover"},children:[t.jsx(o.Button,{onClick:i,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:1,minHeight:36,borderRadius:b=>`${b.shape.borderRadius}px`,transition:"all 0.2s ease","&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:w,variant:"contained",disabled:s.levels.length===0,sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"background.paper",px:3,py:1,minHeight:36,borderRadius:b=>`${b.shape.borderRadius}px`,boxShadow:b=>me(b,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"primary.dark",boxShadow:b=>me(b,"hoverButton")},"&:active":{boxShadow:b=>me(b,"pressedButton"),transform:"translateY(1px)"}},children:"Apply grouping"})]})]})})}function Fu({onExportAnyway:e,onSaveAndExport:r,onCancel:n}){return t.jsx(o.Box,{sx:{mb:2,mx:3,mt:2},children:t.jsxs(o.Alert,{severity:"warning",icon:t.jsx(z.Warning,{sx:{fontSize:20}}),action:t.jsx(o.IconButton,{size:"small",onClick:n,sx:{color:"warning.main"},children:t.jsx(z.Close,{sx:{fontSize:20}})}),sx:{alignItems:"flex-start"},children:[t.jsx(o.Typography,{variant:"subtitle2",sx:{fontWeight:600,mb:.5},children:"You are exporting with unsaved view changes"}),t.jsx(o.Typography,{variant:"body2",sx:{mb:1.5},children:"Your current view has unsaved changes. Choose how to proceed:"}),t.jsxs(o.Box,{sx:{display:"flex",gap:1},children:[t.jsx(o.Button,{onClick:r,variant:"contained",color:"primary",startIcon:t.jsx(z.Save,{sx:{fontSize:14}}),size:"small",children:"Save View & Export"}),t.jsx(o.Button,{onClick:e,variant:"contained",color:"warning",startIcon:t.jsx(z.Download,{sx:{fontSize:14}}),size:"small",children:"Export Anyway"})]})]})})}const ts=[{key:"1h",label:"Last 1 Hour",ms:3600*1e3},{key:"24h",label:"Last 24 Hours",ms:1440*60*1e3},{key:"7d",label:"Last 7 Days",ms:10080*60*1e3},{key:"30d",label:"Last 30 Days",ms:720*60*60*1e3},{key:"all",label:"All Time",ms:null}];function Vu(e,r){if(r===null)return e.length;const n=Date.now()-r;return e.filter(i=>new Date(i.timestamp).getTime()>=n).length}function Hu(e,r){if(r===null)return[];const n=Date.now()-r;return e.filter(i=>new Date(i.timestamp).getTime()<n)}function Uu({auditHistory:e,onClose:r,onClearAuditHistory:n}){const i=tt(),s=i.palette,[l,a]=x.useState("1h"),[c,u]=x.useState(!1),g=[...e].sort((B,C)=>new Date(C.timestamp).getTime()-new Date(B.timestamp).getTime()),y=ts.find(B=>B.key===l),h=Vu(e,y.ms),v=()=>u(!0),S=()=>{n&&(n(Hu(e,y.ms)),u(!1))};return t.jsxs(t.Fragment,{children:[t.jsx(o.Box,{onClick:r,sx:{position:"fixed",inset:0,bgcolor:$(s.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:i.zIndex.modal,animation:"fadeIn 0.2s ease","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:B=>B.stopPropagation(),elevation:0,sx:{width:520,maxWidth:"calc(100vw - 48px)",maxHeight:"min(700px, calc(100vh - 80px))",display:"flex",flexDirection:"column",borderRadius:Ge(i),bgcolor:"background.paper",overflow:"hidden",...se(i).paper,animation:"slideIn 0.2s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.96) translateY(-8px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{px:2.5,py:1.75,display:"flex",alignItems:"center",justifyContent:"space-between",gap:1.5,flexShrink:0,...se(i).header},children:[t.jsxs(o.Box,{sx:{minWidth:0},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:[t.jsx(o.Typography,{sx:{fontSize:"0.9375rem",fontWeight:600,color:"text.primary"},children:"Audit History"}),t.jsx(Br,{content:Ir.auditHistory,isDev:process.env.NODE_ENV==="development"})]}),t.jsxs(o.Typography,{sx:{fontSize:"0.75rem",color:"text.secondary",mt:.125},children:[g.length," event",g.length!==1?"s":""," recorded"]})]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1,flexShrink:0},children:[n&&e.length>0&&t.jsxs(t.Fragment,{children:[t.jsx(o.Select,{value:l,onChange:B=>a(B.target.value),size:"small",variant:"outlined",sx:{fontSize:"0.75rem",height:30,minWidth:120,"& .MuiSelect-select":{py:.375,px:1,fontSize:"0.75rem"},"& .MuiOutlinedInput-notchedOutline":{borderColor:"divider"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:$(s.text.primary,.3)}},children:ts.map(B=>t.jsx(o.MenuItem,{value:B.key,sx:{fontSize:"0.8125rem"},children:B.label},B.key))}),t.jsx(o.Button,{size:"small",variant:"outlined",color:"error",startIcon:t.jsx(z.DeleteSweepOutlined,{sx:{fontSize:14}}),onClick:v,sx:{fontSize:"0.75rem",borderRadius:"7px",px:1.25,height:30,whiteSpace:"nowrap",borderColor:$(s.error.main,.5),"&:hover":{bgcolor:$(s.error.main,.06),borderColor:"error.main"}},children:"Clear Logs"})]}),t.jsx(o.IconButton,{onClick:r,size:"small",sx:{color:"text.secondary",borderRadius:"7px","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(z.Close,{sx:{fontSize:17}})})]})]}),t.jsx(o.Box,{sx:{flex:1,overflowY:"auto",px:2,py:1.5,bgcolor:$(s.text.primary,.012),"&::-webkit-scrollbar":{width:5},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:$(s.text.primary,.14),borderRadius:3}},children:g.length===0?t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",py:8,gap:1,textAlign:"center"},children:[t.jsx(z.AccessTime,{sx:{fontSize:44,color:"text.disabled",opacity:.5}}),t.jsx(o.Typography,{sx:{fontSize:"0.9375rem",color:"text.secondary",fontWeight:500},children:"No audit events yet"}),t.jsx(o.Typography,{sx:{fontSize:"0.8125rem",color:"text.disabled"},children:"Changes to this report will appear here"})]}):t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:.75},children:g.map(B=>{const C=su(i,B.feature),{summary:m,detail:I}=el(B);return t.jsxs(o.Box,{sx:{display:"flex",alignItems:"flex-start",gap:1.25,px:1.5,py:1.25,borderRadius:"10px",bgcolor:"background.paper",border:"1px solid",borderColor:"divider",transition:"border-color 0.15s","&:hover":{borderColor:$(s.text.primary,.18)}},children:[t.jsx(o.Chip,{label:ol(B.feature),size:"small",sx:{height:20,fontSize:"0.5625rem",fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",bgcolor:$(C,.1),color:C,border:`1px solid ${$(C,.22)}`,flexShrink:0,mt:.125,"& .MuiChip-label":{px:.75}}}),t.jsxs(o.Box,{sx:{flex:1,minWidth:0},children:[t.jsx(o.Typography,{sx:{fontSize:"0.8125rem",fontWeight:500,color:"text.primary",lineHeight:1.45,wordBreak:"break-word"},children:m}),I&&t.jsx(o.Typography,{sx:{fontSize:"0.75rem",color:"text.secondary",mt:.25,lineHeight:1.4},children:I}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1,mt:.5,flexWrap:"wrap"},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.375},children:[t.jsx(z.AccessTime,{sx:{fontSize:11,color:"text.disabled"}}),t.jsx(o.Typography,{sx:{fontSize:"0.6875rem",color:"text.disabled"},children:nl(B.timestamp)})]}),B.user&&t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.375},children:[t.jsx(z.Person,{sx:{fontSize:11,color:"text.disabled"}}),t.jsx(o.Typography,{sx:{fontSize:"0.6875rem",color:"text.disabled"},children:B.user})]})]})]})]},B.id)})})})]})}),t.jsxs(o.Dialog,{open:c,onClose:()=>u(!1),maxWidth:"xs",fullWidth:!0,PaperProps:{sx:{borderRadius:Jr(i),...se(i).paper}},children:[t.jsxs(o.DialogContent,{sx:{pt:3,pb:2,px:3},children:[t.jsx(o.Box,{sx:{width:44,height:44,borderRadius:"12px",bgcolor:$(s.error.main,.1),display:"flex",alignItems:"center",justifyContent:"center",mb:2},children:t.jsx(z.WarningAmberOutlined,{sx:{fontSize:22,color:"error.main"}})}),t.jsx(o.Typography,{sx:{fontSize:"0.9375rem",fontWeight:600,color:"text.primary",mb:1},children:"Clear Audit Logs"}),t.jsxs(o.Typography,{sx:{fontSize:"0.8125rem",color:"text.secondary",lineHeight:1.65},children:["You are about to permanently remove"," ",t.jsxs(o.Box,{component:"span",sx:{fontWeight:600,color:"text.primary"},children:[h," audit record",h!==1?"s":""]})," ",y.key==="all"?"from all time":`from the ${y.label.toLowerCase()}`,". This action cannot be undone."]})]}),t.jsx(o.Divider,{}),t.jsxs(o.DialogActions,{sx:{px:2.5,py:1.5,gap:1},children:[t.jsx(o.Button,{onClick:()=>u(!1),variant:"text",sx:{fontSize:"0.8125rem",color:"text.secondary",borderRadius:"7px","&:hover":{bgcolor:"action.hover"}},children:"Cancel"}),t.jsxs(o.Button,{onClick:S,variant:"contained",color:"error",startIcon:t.jsx(z.DeleteSweepOutlined,{sx:{fontSize:14}}),sx:{fontSize:"0.8125rem",borderRadius:"7px",px:2},children:["Clear ",h," Record",h!==1?"s":""]})]})]})]})}function Gu({onSave:e,onClose:r}){const[n,i]=x.useState(""),[s,l]=x.useState(""),[a,c]=x.useState(""),[u,g]=x.useState([]),[y,h]=x.useState(""),[v,S]=x.useState(""),B=w=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(w),C=()=>{const w=a.trim();if(w){if(!B(w)){S("Please enter a valid email address");return}if(u.includes(w)){S("This email is already added");return}g([...u,w]),c(""),S("")}},m=w=>{g(u.filter(R=>R!==w))},I=w=>{w.key==="Enter"&&(w.preventDefault(),C())},f=()=>{if(!n.trim()){h("Preset name is required");return}e(n.trim(),s.trim(),u.length>0?u:void 0)},O=w=>{i(w),y&&h("")},j=w=>{c(w),v&&S("")};return t.jsx(o.Box,{onClick:r,sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:w=>$(w.palette.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:w=>w.zIndex.modal,animation:"fadeIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:w=>w.stopPropagation(),elevation:0,sx:{position:"relative",width:540,maxWidth:"calc(100vw - 120px)",maxHeight:"min(480px, calc(100vh - 280px))",display:"flex",flexDirection:"column",borderRadius:w=>Ge(w),bgcolor:"background.paper",outline:"none",boxShadow:w=>se(w).paper.boxShadow,border:w=>se(w).paper.border,overflow:"hidden",animation:"slideIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.95) translateY(-12px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2,bgcolor:w=>se(w).header.backgroundColor,borderBottom:w=>se(w).header.borderBottom,boxShadow:w=>se(w).header.boxShadow,flexShrink:0},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",letterSpacing:"0",lineHeight:1.5},children:"Create shareable preset"}),t.jsx(o.IconButton,{onClick:r,size:"small",sx:{p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(z.Close,{sx:{fontSize:20}})})]}),t.jsx(o.Box,{sx:{flex:1,overflow:"auto",px:3,py:2.5,"&::-webkit-scrollbar":{width:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:w=>$(w.palette.text.primary,.2),borderRadius:4,"&:hover":{bgcolor:w=>$(w.palette.text.primary,.3)}}},children:t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2.5},children:[t.jsx(o.Alert,{severity:"info",icon:t.jsx(z.Info,{sx:{fontSize:20}}),sx:{borderRadius:"8px",border:w=>`1px solid ${$(w.palette.primary.main,.3)}`,bgcolor:w=>at(w),"& .MuiAlert-icon":{color:"primary.main"},"& .MuiAlert-message":{fontSize:"0.8125rem",color:"text.primary",lineHeight:1.5}},children:"This preset will capture filters, sorting, grouping, column configuration, and the active view. The actual data is not saved or shared."}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.875rem",color:"text.secondary",lineHeight:1.6},children:"Save the current report configuration and generate a shareable link that others can use to view the same filters, sorting, and column layout."}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",mb:1,display:"block",textTransform:"uppercase"},children:"Preset name *"}),t.jsx(o.TextField,{required:!0,value:n,onChange:w=>O(w.target.value),placeholder:"e.g., Q4 Active Users Report",error:!!y,helperText:y,autoFocus:!0,fullWidth:!0,size:"small",sx:{"& .MuiOutlinedInput-root":{fontSize:"0.875rem",borderRadius:"4px",bgcolor:"background.paper","& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"primary.main"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:"2px"},"&.Mui-error fieldset":{borderColor:"error.main"}},"& .MuiInputBase-input":{py:1.25,color:"text.primary"},"& .MuiFormHelperText-root":{fontSize:"0.75rem",color:"error.main",mt:.75}}})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",mb:1,display:"block",textTransform:"uppercase"},children:"Description (optional)"}),t.jsx(o.TextField,{value:s,onChange:w=>l(w.target.value),placeholder:"Briefly describe what this preset shows...",multiline:!0,rows:3,fullWidth:!0,size:"small",sx:{"& .MuiOutlinedInput-root":{fontSize:"0.875rem",borderRadius:"4px",bgcolor:"background.paper","& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"primary.main"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:"2px"}},"& .MuiInputBase-input":{py:1.25,color:"text.primary",lineHeight:1.6}}})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",mb:1,display:"block",textTransform:"uppercase"},children:"Share with (optional)"}),t.jsxs(o.Box,{sx:{display:"flex",gap:1,alignItems:"flex-start"},children:[t.jsx(o.TextField,{value:a,onChange:w=>j(w.target.value),onKeyPress:I,placeholder:"Enter email address",error:!!v,helperText:v,fullWidth:!0,size:"small",InputProps:{startAdornment:t.jsx(z.Email,{sx:{fontSize:18,color:"text.secondary",mr:1}})},sx:{"& .MuiOutlinedInput-root":{fontSize:"0.875rem",borderRadius:"4px",bgcolor:"background.paper","& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"primary.main"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:"2px"},"&.Mui-error fieldset":{borderColor:"error.main"}},"& .MuiInputBase-input":{py:1.25,color:"text.primary"},"& .MuiFormHelperText-root":{fontSize:"0.75rem",color:"error.main",mt:.75}}}),t.jsx(o.Button,{onClick:C,variant:"outlined",startIcon:t.jsx(z.Add,{sx:{fontSize:18}}),sx:{fontSize:"0.875rem",color:"primary.main",borderColor:"divider",px:2,py:1.25,minHeight:40,borderRadius:w=>`${w.shape.borderRadius}px`,flexShrink:0,"&:hover":{borderColor:"primary.main",bgcolor:"action.hover"}},children:"Add"})]}),u.length>0&&t.jsx(o.Box,{sx:{display:"flex",flexWrap:"wrap",gap:1,mt:1.5},children:u.map(w=>t.jsx(o.Chip,{label:w,onDelete:()=>m(w),deleteIcon:t.jsx(z.Delete,{sx:{fontSize:16}}),sx:{bgcolor:R=>at(R),color:"primary.main",fontSize:"0.8125rem",height:28,"& .MuiChip-deleteIcon":{color:"primary.main","&:hover":{color:"primary.dark"}}}},w))}),t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.75rem",color:"text.secondary",mt:1,display:"block",lineHeight:1.5},children:u.length>0?`An email with the shareable link will be sent to ${u.length} recipient${u.length>1?"s":""}`:"Add email addresses to send the shareable link automatically"})]})]})}),t.jsxs(o.Box,{sx:{px:3,py:2,borderTop:"1px solid divider",display:"flex",gap:1.5,justifyContent:"flex-end",flexShrink:0,bgcolor:"action.hover"},children:[t.jsx(o.Button,{onClick:r,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:1,minHeight:36,borderRadius:w=>`${w.shape.borderRadius}px`,transition:"all 0.2s ease","&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:f,variant:"contained",startIcon:t.jsx(z.Share,{sx:{fontSize:18}}),sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"background.paper",px:3,py:1,minHeight:36,borderRadius:w=>`${w.shape.borderRadius}px`,boxShadow:w=>me(w,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"primary.dark",boxShadow:w=>me(w,"hoverButton")},"&:active":{boxShadow:w=>me(w,"pressedButton"),transform:"translateY(1px)"}},children:"Create & share"})]})]})})}function Yu({presetName:e,onClear:r}){return t.jsx(o.Chip,{icon:t.jsx(z.Link,{sx:{fontSize:14}}),label:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:["Preset:"," ",t.jsx(o.Box,{component:"span",sx:{fontWeight:600},children:e})]}),onDelete:r,deleteIcon:t.jsx(o.IconButton,{size:"small",title:"Exit preset view",sx:{p:0},children:t.jsx(z.Close,{sx:{fontSize:14}})}),sx:{bgcolor:n=>$(n.palette.primary.main,.12),borderColor:"primary.light",border:1,fontSize:"body2.fontSize",fontWeight:500,"& .MuiChip-deleteIcon":{color:"primary.main","&:hover":{color:"primary.main"}}}})}function qu({presets:e,reportId:r,onOpenPreset:n,onDeletePreset:i,onClose:s}){const l=a=>new Date(a).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"});return t.jsx(o.Box,{onClick:s,sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:a=>$(a.palette.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:a=>a.zIndex.modal,animation:"fadeIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:a=>a.stopPropagation(),elevation:0,sx:{position:"relative",width:680,maxWidth:"calc(100vw - 120px)",maxHeight:"min(720px, calc(100vh - 200px))",display:"flex",flexDirection:"column",borderRadius:a=>Ge(a),bgcolor:"background.paper",outline:"none",boxShadow:a=>se(a).paper.boxShadow,border:a=>se(a).paper.border,overflow:"hidden",animation:"slideIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.95) translateY(-12px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2,bgcolor:a=>se(a).header.backgroundColor,borderBottom:a=>se(a).header.borderBottom,boxShadow:a=>se(a).header.boxShadow,flexShrink:0},children:[t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",letterSpacing:"0",lineHeight:1.5},children:"Manage Presets"}),t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",mt:.5,display:"block"},children:[e.length," saved ",e.length===1?"preset":"presets"]})]}),t.jsx(o.IconButton,{onClick:s,size:"small",sx:{p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(z.Close,{sx:{fontSize:20}})})]}),t.jsx(o.Box,{sx:{flex:1,overflow:"auto",px:3,py:2,"&::-webkit-scrollbar":{width:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:"divider",borderRadius:4,"&:hover":{bgcolor:a=>$(a.palette.text.primary,.2)}}},children:e.length===0?t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",py:8},children:[t.jsx(z.Share,{sx:{fontSize:48,color:"divider",mb:2}}),t.jsx(o.Typography,{variant:"body1",sx:{fontSize:"0.875rem",color:"text.secondary",textAlign:"center"},children:"No presets created yet"}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.disabled",textAlign:"center",mt:.5},children:"Create a preset to share report configurations"})]}):t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2},children:e.map(a=>t.jsxs(o.Paper,{elevation:0,sx:{p:2.5,border:"1px solid divider",borderRadius:"8px",bgcolor:"background.paper",transition:"all 0.2s ease","&:hover":{borderColor:"divider",boxShadow:c=>me(c,"restButtonLight")}},children:[t.jsx(o.Box,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",mb:1.5},children:t.jsxs(o.Box,{sx:{flex:1,minWidth:0},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"0.9375rem",fontWeight:500,color:"text.primary",mb:.5},children:a.name}),a.description&&t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.secondary",lineHeight:1.5},children:a.description})]})}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5,mb:2},children:[t.jsx(o.Chip,{label:`Created ${l(a.createdAt)}`,size:"small",sx:{height:22,fontSize:"0.75rem",bgcolor:"action.hover",color:"text.secondary","& .MuiChip-label":{px:1}}}),t.jsx(o.Chip,{label:`By ${a.createdBy}`,size:"small",sx:{height:22,fontSize:"0.75rem",bgcolor:"action.hover",color:"text.secondary","& .MuiChip-label":{px:1}}})]}),t.jsx(o.Divider,{sx:{my:1.5,borderColor:"divider"}}),t.jsx(o.Box,{sx:{display:"flex",gap:1},children:t.jsx(o.Button,{onClick:()=>i(a.id,a.name),variant:"outlined",size:"small",startIcon:t.jsx(z.Delete,{sx:{fontSize:16}}),sx:{fontSize:"0.8125rem",color:"error.main",borderColor:"divider",px:1.5,py:.75,borderRadius:c=>`${c.shape.borderRadius}px`,"&:hover":{borderColor:"error.main",bgcolor:c=>$(c.palette.error.main,.04)}},children:"Delete"})})]},a.id))})}),t.jsx(o.Box,{sx:{px:3,py:1.75,borderTop:"1px solid divider",bgcolor:"action.hover",gap:1.25,justifyContent:"flex-end",display:"flex"},children:t.jsx(o.Button,{onClick:s,variant:"contained",sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"primary.contrastText",px:3,py:.875,minHeight:36,borderRadius:a=>`${a.shape.borderRadius}px`,boxShadow:a=>me(a,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"primary.dark",boxShadow:a=>me(a,"hoverButton")},"&:active":{boxShadow:a=>me(a,"pressedButton"),transform:"translateY(1px)"}},children:"Close"})})]})})}const Vs={maxFileSizeBytes:2*1024*1024,maxFileSizeHardBytes:3*1024*1024,maxRows:1e4,maxRowsHard:5e4,maxImageColumns:5},Ju=[/^https?:\/\/.*\.(jpg|jpeg|png|gif|webp|svg|avif|bmp)/i,/^data:image\//i,/^\/.*\.(jpg|jpeg|png|gif|webp|svg)/i],Ku=[/image/i,/photo/i,/avatar/i,/thumbnail/i,/picture/i,/logo/i,/icon/i,/banner/i];function Xu(e,r){const n=[];for(const i of e){if(i.type!=="string")continue;const s=Ku.some(c=>c.test(i.name));let l=!1;const a=r.slice(0,10).map(c=>c[i.name]).filter(c=>typeof c=="string"&&c.length>0);a.length>0&&(l=a.filter(u=>Ju.some(g=>g.test(u))).length/a.length>.6),(s||l)&&n.push(i.name)}return n}function Zn(e,r){if(e.length===0||r.length===0)return 0;const n=e.slice(0,Math.min(50,e.length)),s=r.map(a=>{const c=n.map(g=>String(g[a]??"")).filter(g=>g.length>0);if(c.length===0)return 5;const u=c.reduce((g,y)=>g+y.length,0);return Math.ceil(u/c.length)+1}).reduce((a,c)=>a+c,0)+1;return r.reduce((a,c)=>a+c.length+1,0)+s*e.length}function Qu(e,r){const n=Zn(e,r);return Math.ceil(n*3.5)}function Zu(e,r){const n=Zn(e,r);return Math.ceil(n*.7)}function ep(e,r,n){switch(e){case"csv":return Zn(r,n);case"excel":return Zu(r,n);case"json":return Qu(r,n)}}function rs(e,r){return Math.ceil(e/r)}function tp(e,r,n,i,s=Vs){const l=[],a=ep(e,r,n),c=r.length;if(c>s.maxRowsHard){const y=rs(c,s.maxRows);l.push({type:"row_count",severity:"error",message:`Export blocked: ${c.toLocaleString()} rows exceeds the maximum of ${s.maxRowsHard.toLocaleString()}`,detail:`Consider using filters to reduce the dataset before exporting, or split into ${y} smaller exports of ~${s.maxRows.toLocaleString()} rows each.`,suggestedBatches:y,value:c,limit:s.maxRowsHard})}else if(c>s.maxRows){const y=rs(c,s.maxRows);l.push({type:"row_count",severity:"warning",message:`Large export: ${c.toLocaleString()} rows`,detail:`This is a large export that may take a moment to complete. For faster results, consider splitting into ${y} smaller export${y>1?"s":""} of ~${s.maxRows.toLocaleString()} rows each.`,suggestedBatches:y,value:c,limit:s.maxRows})}if(a>s.maxFileSizeHardBytes?l.push({type:"file_size",severity:"error",message:`File size blocked: estimated ${lo(a)} exceeds the ${lo(s.maxFileSizeHardBytes)} limit`,detail:"Reduce the number of rows or columns and try again. Applying filters before exporting is the most effective way to reduce file size.",value:a,limit:s.maxFileSizeHardBytes}):a>s.maxFileSizeBytes&&l.push({type:"file_size",severity:"warning",message:`Large file: estimated ${lo(a)}`,detail:`This exceeds the recommended ${lo(s.maxFileSizeBytes)} size. The download will still proceed but may be slow on some connections.`,value:a,limit:s.maxFileSizeBytes}),e!=="excel"){const y=Xu(i.filter(h=>n.includes(h.name)),r);if(y.length>0){const h=y.length>s.maxImageColumns;l.push({type:"image_columns",severity:h?"error":"warning",message:`Image column${y.length>1?"s":""} detected: ${y.map(v=>`"${v.replace(/_/g," ")}"`).join(", ")}`,detail:h?`Exporting ${y.length} image columns may produce a very large file. Consider hiding these columns before exporting.`:"Image URL columns are included in the export as plain text links — not embedded images.",value:y.length,limit:s.maxImageColumns})}}const u=l.some(y=>y.severity==="error"),g=l.some(y=>y.severity==="warning");return{violations:l,hasBlockingViolation:u,hasWarning:g,estimatedBytes:a}}function lo(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function rp({violation:e}){const n=tt().palette,i=e.severity==="error",s=i?n.error.main:n.warning.main,l=$(i?n.error.main:n.warning.main,.06),a=i?$(n.error.main,.25):$(n.warning.main,.3),c=i?z.ErrorOutline:z.WarningAmberOutlined;return t.jsxs(o.Box,{sx:{display:"flex",gap:1.25,p:1.5,borderRadius:"10px",bgcolor:l,border:"1px solid",borderColor:a},children:[t.jsx(c,{sx:{fontSize:17,color:s,flexShrink:0,mt:.125}}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{sx:{fontSize:"0.8125rem",fontWeight:600,color:i?"error.main":"warning.dark",lineHeight:1.4},children:e.message}),e.detail&&t.jsx(o.Typography,{sx:{fontSize:"0.75rem",color:"text.secondary",mt:.375,lineHeight:1.5},children:e.detail}),e.suggestedBatches&&e.suggestedBatches>1&&t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5,mt:.75},children:[t.jsx(z.SplitscreenOutlined,{sx:{fontSize:14,color:"text.secondary"}}),t.jsxs(o.Typography,{sx:{fontSize:"0.75rem",color:"text.secondary",fontWeight:500},children:["Suggestion: split into ",e.suggestedBatches," exports"]})]})]})]})}function op({format:e}){const r=tt(),n={csv:{color:r.palette.primary.main,bg:r.palette.primary.main,label:"CSV"},excel:{color:r.palette.success.main,bg:r.palette.success.main,label:"XLSX"},json:{color:r.palette.text.secondary,bg:r.palette.text.secondary,label:"JSON"}}[e];return t.jsxs(o.Box,{sx:{width:44,height:52,position:"relative",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",mb:1},children:[t.jsxs("svg",{width:"38",height:"46",viewBox:"0 0 38 46",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[t.jsx("path",{d:"M5 2C3.34315 2 2 3.34315 2 5V41C2 42.6569 3.34315 44 5 44H33C34.6569 44 36 42.6569 36 41V13L25 2H5Z",fill:r.palette.background.paper,stroke:n.color,strokeWidth:"2.5",strokeLinejoin:"round"}),t.jsx("path",{d:"M24 2V13H36",fill:$(r.palette.text.primary,.05),stroke:n.color,strokeWidth:"2.5",strokeLinejoin:"round"})]}),t.jsx(o.Box,{sx:{position:"absolute",bottom:8,left:3,right:3,bgcolor:n.bg,color:r.palette.primary.contrastText,fontSize:"0.625rem",fontWeight:800,py:.25,borderRadius:"3px",textAlign:"center",letterSpacing:"0.05em"},children:n.label})]})}function os({checked:e}){const r=tt();return t.jsx(o.Box,{sx:{width:20,height:20,borderRadius:"50%",border:e?`2px solid var(--urm-export-card-selected-border, ${r.palette.primary.main})`:`2px solid var(--urm-export-radio-border, ${r.palette.divider})`,display:"flex",alignItems:"center",justifyContent:"center",bgcolor:r.palette.background.paper,transition:"all 0.15s ease",flexShrink:0},children:e&&t.jsx(o.Box,{sx:{width:10,height:10,borderRadius:"50%",bgcolor:`var(--urm-export-card-selected-border, ${r.palette.primary.main})`}})})}function np({totalRows:e,visibleRows:r,hasGrouping:n,visibleColumnsCount:i,totalColumnsCount:s,schema:l,sampleRows:a=[],allRows:c=[],processedRows:u=[],initialFormat:g,initialScope:y="visible",initialColumnScope:h="visible",classTokens:v={},onExport:S,onClose:B}){const C=tt(),m=C.palette,I=Tr(),f=x.useMemo(()=>{var ne,ae,G,te,oe;const J=((G=(ae=(ne=C.components)==null?void 0:ne.MuiCard)==null?void 0:ae.styleOverrides)==null?void 0:G.root)||{},Z=J.border&&J.border!=="none"?J.border:(te=C.tokens)!=null&&te.cardBodyBorder&&C.tokens.cardBodyBorder!=="none"?C.tokens.cardBodyBorder:m.divider,ge=J.borderRadius!==void 0?typeof J.borderRadius=="number"?`${J.borderRadius}px`:J.borderRadius:`${C.shape.borderRadius}px`,H=J.boxShadow&&J.boxShadow!=="none"?J.boxShadow:((oe=C.tokens)==null?void 0:oe.cardBodyShadow)||me(C,"menu"),K=At(C);return{sectionBorder:`var(--urm-export-section-border, ${Z})`,sectionTitleColor:`var(--urm-export-section-title-color, ${m.text.primary})`,sectionTitleBg:`var(--urm-export-section-title-bg, ${m.background.paper})`,cardBg:`var(--urm-export-card-bg, ${m.background.paper})`,cardBorder:`var(--urm-export-card-border, ${Z})`,cardRadius:ge,cardShadow:H,cardHoverBg:`var(--urm-export-card-hover-bg, ${m.mode==="dark"?$(m.common.white,.08):$(m.common.black,.04)})`,cardSelectedBg:`var(--urm-export-card-selected-bg, ${$(K.main,m.mode==="dark"?.16:.08)})`,cardSelectedBorder:`var(--urm-export-card-selected-border, ${K.main})`,cardSelectedColor:`var(--urm-export-card-selected-color, ${m.mode==="dark"?m.primary.light:m.primary.main})`,primaryBtnBg:`var(--urm-export-primary-btn-bg, ${m.primary.main})`,primaryBtnHoverBg:`var(--urm-export-primary-btn-hover-bg, ${m.primary.dark})`,primaryBtnColor:`var(--urm-export-primary-btn-color, ${m.primary.contrastText})`,sectionPadding:`var(--urm-export-section-padding, ${C.spacing(2)})`,optionGap:`var(--urm-export-option-gap, ${C.spacing(1.5)})`}},[m,C]),O=g||I.export.allowedFormats[0]||"csv",[j,w]=x.useState(O),[R,b]=x.useState(y),[_,V]=x.useState(h),d=R==="visible"?r:e,ee=_==="visible"?i:s,p=x.useMemo(()=>R==="visible"?u.length>0?u:new Array(r):c.length>0?c:new Array(e),[R,r,e,u,c]),P=x.useMemo(()=>_==="all"?l.map(J=>J.name):l.map(J=>J.name).slice(0,i),[_,l,i]),F=x.useMemo(()=>tp(j,p,P,l,Vs),[j,p,P,l]),re=()=>{F.hasBlockingViolation||(S({format:j,scope:R,columnScope:_}),B())},ce={csv:"CSV",excel:"Excel (.xlsx)",json:"JSON"};return t.jsx(o.Box,{onClick:B,className:`urm-export-backdrop ${v.modalBackdrop||""}`,sx:{position:"fixed",inset:0,bgcolor:$(m.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:C.zIndex.modal,animation:"fadeIn 0.2s ease","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:J=>J.stopPropagation(),elevation:0,className:`urm-export-paper ${v.modalPaper||""}`,sx:{width:540,maxWidth:"calc(100vw - 32px)",maxHeight:"min(760px, calc(100vh - 48px))",display:"flex",flexDirection:"column",borderRadius:Ge(C),bgcolor:f.sectionTitleBg,overflow:"hidden",border:`1px solid ${f.cardBorder}`,boxShadow:f.cardShadow,animation:"slideIn 0.2s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.96) translateY(-8px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{className:`urm-export-header ${v.modalHeader||""}`,sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,pt:2.5,pb:1.5,flexShrink:0,bgcolor:J=>se(J).header.backgroundColor,borderBottom:J=>se(J).header.borderBottom,boxShadow:J=>se(J).header.boxShadow},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(o.Typography,{className:`urm-export-title ${v.modalTitle||""}`,sx:{fontSize:"1.125rem",fontWeight:700,color:m.text.primary},children:"Export Report"}),t.jsx(Br,{content:Ir.export,isDev:process.env.NODE_ENV==="development"})]}),t.jsx(o.IconButton,{onClick:B,size:"small",className:`urm-export-close ${v.modalCloseButton||""}`,sx:{color:m.text.secondary,borderRadius:"50%","&:hover":{bgcolor:m.action.hover,color:m.text.primary}},children:t.jsx(z.Close,{sx:{fontSize:20}})})]}),t.jsxs(o.Box,{className:`urm-export-content ${v.modalContent||""}`,sx:{flex:1,overflowY:"auto",px:3,pb:2.5,pt:.5,display:"flex",flexDirection:"column",gap:f.optionGap,"&::-webkit-scrollbar":{width:6},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:$(m.text.primary,.15),borderRadius:3}},children:[F.violations.length>0&&t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:1},children:F.violations.map((J,Z)=>t.jsx(rp,{violation:J},Z))}),t.jsxs(o.Box,{className:`urm-export-section ${v.sectionContainer||""}`,sx:{position:"relative",border:`1.5px solid ${f.sectionBorder}`,borderRadius:"12px",p:f.sectionPadding,pt:2.25,bgcolor:f.sectionTitleBg,mt:1.5},children:[t.jsx(o.Typography,{className:`urm-export-section-title ${v.sectionTitle||""}`,sx:{position:"absolute",top:-11,left:14,bgcolor:f.sectionTitleBg,px:.75,fontSize:"0.8125rem",fontWeight:600,color:f.sectionTitleColor,lineHeight:1,zIndex:1},children:"Choose File Format"}),t.jsx(o.Box,{sx:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:f.optionGap},children:[{id:"csv",title:"CSV",info:"Comma-separated values, compatible with Excel",allowed:I.export.allowedFormats.includes("csv")},{id:"excel",title:"Excel (.xlsx)",info:"Native Excel format with formatting support",allowed:I.export.allowedFormats.includes("excel")},{id:"json",title:"JSON",info:"Structured data with metadata and filters",allowed:I.export.allowedFormats.includes("json")}].filter(J=>J.allowed).map(J=>{const Z=j===J.id;return t.jsxs(o.Box,{onClick:()=>w(J.id),className:`urm-export-format-card ${Z?v.formatCardSelected||"":v.formatCard||""}`,sx:{position:"relative",display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center",p:1.75,borderRadius:f.cardRadius,border:Z?`2px solid ${f.cardSelectedBorder}`:`1px solid ${f.cardBorder}`,boxShadow:Z?void 0:f.cardShadow,bgcolor:Z?f.cardSelectedBg:f.cardBg,cursor:"pointer",transition:"all 0.15s ease","&:hover":{borderColor:Z?f.cardSelectedBorder:$(m.text.primary,.25),bgcolor:Z?f.cardSelectedBg:f.cardHoverBg}},children:[Z&&t.jsx(o.Box,{sx:{position:"absolute",top:8,right:8,width:20,height:20,borderRadius:"50%",bgcolor:f.cardSelectedBorder,color:m.primary.contrastText,display:"flex",alignItems:"center",justifyContent:"center",boxShadow:`0 2px 4px ${$(m.primary.main,.3)}`},children:t.jsx(z.Check,{sx:{fontSize:13,strokeWidth:2}})}),t.jsx(op,{format:J.id}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:[t.jsx(o.Typography,{sx:{fontSize:"0.875rem",fontWeight:700,color:Z?f.cardSelectedColor:m.text.primary},children:J.title}),t.jsx(o.Tooltip,{title:J.info,arrow:!0,placement:"top",children:t.jsx(o.Box,{component:"span",onClick:ge=>ge.stopPropagation(),sx:{display:"inline-flex",cursor:"help",color:m.text.secondary,"&:hover":{color:m.text.primary}},children:t.jsx(z.InfoOutlined,{sx:{fontSize:13}})})})]})]},J.id)})})]}),t.jsxs(o.Box,{className:`urm-export-section ${v.sectionContainer||""}`,sx:{position:"relative",border:`1.5px solid ${f.sectionBorder}`,borderRadius:"12px",p:f.sectionPadding,pt:2.25,bgcolor:f.sectionTitleBg,mt:1.5},children:[t.jsx(o.Typography,{className:`urm-export-section-title ${v.sectionTitle||""}`,sx:{position:"absolute",top:-11,left:14,bgcolor:f.sectionTitleBg,px:.75,fontSize:"0.8125rem",fontWeight:600,color:f.sectionTitleColor,lineHeight:1,zIndex:1},children:"Select Rows Range"}),t.jsx(o.Box,{sx:{display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:f.optionGap},children:[{value:"visible",label:"Visible rows",icon:t.jsx(z.VisibilityOutlined,{sx:{fontSize:20}}),info:`Export ${r.toLocaleString()} rows (filtered and searched)`},{value:"all",label:"All rows",icon:t.jsx(z.TableChartOutlined,{sx:{fontSize:20}}),info:`Export ${e.toLocaleString()} rows (complete original dataset)`}].map(J=>{const Z=R===J.value;return t.jsxs(o.Box,{onClick:()=>b(J.value),className:`urm-export-row-card ${Z?v.rowCardSelected||"":v.rowCard||""}`,sx:{display:"flex",alignItems:"center",justifyContent:"space-between",p:1.5,borderRadius:f.cardRadius,border:Z?`2px solid ${f.cardSelectedBorder}`:`1px solid ${f.cardBorder}`,boxShadow:Z?void 0:f.cardShadow,bgcolor:Z?f.cardSelectedBg:f.cardBg,cursor:"pointer",transition:"all 0.15s ease","&:hover":{borderColor:Z?f.cardSelectedBorder:$(m.text.primary,.25),bgcolor:Z?f.cardSelectedBg:f.cardHoverBg}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[t.jsx(os,{checked:Z}),t.jsx(o.Box,{sx:{color:Z?f.cardSelectedColor:m.text.secondary,display:"flex"},children:J.icon}),t.jsx(o.Typography,{sx:{fontSize:"0.875rem",fontWeight:600,color:Z?f.cardSelectedColor:m.text.primary},children:J.label})]}),t.jsx(o.Tooltip,{title:J.info,arrow:!0,placement:"top",children:t.jsx(o.Box,{component:"span",onClick:ge=>ge.stopPropagation(),sx:{display:"inline-flex",cursor:"help",color:m.text.secondary,"&:hover":{color:m.text.primary}},children:t.jsx(z.InfoOutlined,{sx:{fontSize:16}})})})]},J.value)})})]}),t.jsxs(o.Box,{className:`urm-export-section ${v.sectionContainer||""}`,sx:{position:"relative",border:`1.5px solid ${f.sectionBorder}`,borderRadius:"12px",p:f.sectionPadding,pt:2.25,bgcolor:f.sectionTitleBg,mt:1.5},children:[t.jsx(o.Typography,{className:`urm-export-section-title ${v.sectionTitle||""}`,sx:{position:"absolute",top:-11,left:14,bgcolor:f.sectionTitleBg,px:.75,fontSize:"0.8125rem",fontWeight:600,color:f.sectionTitleColor,lineHeight:1,zIndex:1},children:"Select Columns Range"}),t.jsx(o.Box,{sx:{display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:f.optionGap},children:[{value:"visible",label:"Visible columns",icon:t.jsx(z.SwapVertOutlined,{sx:{fontSize:20}}),info:`Export ${i} visible column${i!==1?"s":""}`},{value:"all",label:"All columns",icon:t.jsx(z.TableChartOutlined,{sx:{fontSize:20}}),info:`Export all ${s} columns (including hidden)`}].map(J=>{const Z=_===J.value;return t.jsxs(o.Box,{onClick:()=>V(J.value),className:`urm-export-column-card ${Z?v.columnCardSelected||"":v.columnCard||""}`,sx:{display:"flex",alignItems:"center",justifyContent:"space-between",p:1.5,borderRadius:f.cardRadius,border:Z?`2px solid ${f.cardSelectedBorder}`:`1px solid ${f.cardBorder}`,boxShadow:Z?void 0:f.cardShadow,bgcolor:Z?f.cardSelectedBg:f.cardBg,cursor:"pointer",transition:"all 0.15s ease","&:hover":{borderColor:Z?f.cardSelectedBorder:$(m.text.primary,.25),bgcolor:Z?f.cardSelectedBg:f.cardHoverBg}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[t.jsx(os,{checked:Z}),t.jsx(o.Box,{sx:{color:Z?f.cardSelectedColor:m.text.secondary,display:"flex"},children:J.icon}),t.jsx(o.Typography,{sx:{fontSize:"0.875rem",fontWeight:600,color:Z?f.cardSelectedColor:m.text.primary},children:J.label})]}),t.jsx(o.Tooltip,{title:J.info,arrow:!0,placement:"top",children:t.jsx(o.Box,{component:"span",onClick:ge=>ge.stopPropagation(),sx:{display:"inline-flex",cursor:"help",color:m.text.secondary,"&:hover":{color:m.text.primary}},children:t.jsx(z.InfoOutlined,{sx:{fontSize:16}})})})]},J.value)})})]}),t.jsxs(o.Box,{className:`urm-export-summary ${v.summaryContainer||""}`,sx:{position:"relative",border:`1.5px solid ${f.sectionBorder}`,borderRadius:"12px",p:f.sectionPadding,pt:2.25,bgcolor:f.sectionTitleBg,mt:1.5},children:[t.jsx(o.Typography,{className:`urm-export-section-title ${v.sectionTitle||""}`,sx:{position:"absolute",top:-11,left:14,bgcolor:f.sectionTitleBg,px:.75,fontSize:"0.8125rem",fontWeight:600,color:f.sectionTitleColor,lineHeight:1,zIndex:1},children:"Export Summary"}),t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:1.25},children:[{icon:t.jsx(z.InsertDriveFileOutlined,{sx:{fontSize:18,color:m.text.secondary}}),label:"Format",value:ce[j]},{icon:t.jsx(z.FormatListNumberedOutlined,{sx:{fontSize:18,color:m.text.secondary}}),label:"Rows to Export",value:d.toLocaleString()},{icon:t.jsx(z.SwapVertOutlined,{sx:{fontSize:18,color:m.text.secondary}}),label:"Columns to Export",value:String(ee)},{icon:t.jsx(z.InsertDriveFileOutlined,{sx:{fontSize:18,color:m.text.secondary}}),label:"Estimated File Size",value:`~${lo(F.estimatedBytes)}`,highlight:F.hasBlockingViolation?"error.main":F.hasWarning?"warning.main":void 0}].map(({icon:J,label:Z,value:ge,highlight:H})=>t.jsxs(o.Box,{className:`urm-export-summary-row ${v.summaryRow||""}`,sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.25},children:[J,t.jsx(o.Typography,{className:`urm-export-summary-label ${v.summaryLabel||""}`,sx:{fontSize:"0.8125rem",color:m.text.secondary,fontWeight:500},children:Z})]}),t.jsx(o.Typography,{className:`urm-export-summary-value ${v.summaryValue||""}`,sx:{fontWeight:700,fontSize:"0.8125rem",color:H??m.text.primary},children:ge})]},Z))})]})]}),t.jsxs(o.Box,{className:`urm-export-footer ${v.footer||""}`,sx:{px:3,py:2,display:"flex",alignItems:"center",justifyContent:"flex-end",gap:1.5,flexShrink:0},children:[F.hasBlockingViolation&&t.jsxs(o.Box,{sx:{flex:1,display:"flex",alignItems:"center",gap:.75},children:[t.jsx(z.ErrorOutline,{sx:{fontSize:15,color:"error.main"}}),t.jsx(o.Typography,{sx:{fontSize:"0.75rem",color:"error.main",fontWeight:500},children:"Reduce rows or columns to enable download"})]}),t.jsx(o.Button,{onClick:B,variant:"outlined",className:`urm-export-cancel-btn ${v.cancelButton||""}`,sx:{fontSize:"0.875rem",fontWeight:600,color:m.text.primary,borderColor:f.cardBorder,px:3,py:1,borderRadius:"8px",textTransform:"none","&:hover":{bgcolor:f.cardHoverBg,borderColor:$(m.text.primary,.3)}},children:"Cancel"}),t.jsxs(o.Button,{onClick:re,disabled:F.hasBlockingViolation,variant:"contained",className:`urm-export-download-btn ${v.downloadButton||""}`,startIcon:t.jsx(z.Download,{sx:{fontSize:18}}),sx:{fontSize:"0.875rem",fontWeight:600,bgcolor:f.primaryBtnBg,color:f.primaryBtnColor,px:3,py:1,borderRadius:"8px",textTransform:"none",boxShadow:`0 2px 6px ${$(m.primary.main,.25)}`,"&:hover":{bgcolor:f.primaryBtnHoverBg},"&.Mui-disabled":{bgcolor:$(m.primary.main,.4),color:f.primaryBtnColor}},children:["Download ",ce[j]]})]})]})})}function ip({warning:e,onDismiss:r}){return t.jsx(o.Box,{sx:{position:"fixed",top:16,right:16,zIndex:50,maxWidth:448},children:t.jsxs(o.Alert,{severity:"warning",icon:t.jsx(z.Warning,{sx:{fontSize:20}}),action:t.jsx(o.IconButton,{size:"small",onClick:r,sx:{color:"warning.main"},children:t.jsx(z.Close,{sx:{fontSize:16}})}),sx:{borderLeft:4,borderColor:"warning.main",boxShadow:3},children:[t.jsx(o.AlertTitle,{sx:{fontWeight:600},children:"Feature Limit Reached"}),t.jsx(o.Box,{sx:{fontSize:"body2.fontSize",mb:1},children:e.message}),t.jsxs(o.Box,{sx:{fontSize:"caption.fontSize",opacity:.9},children:["Please remove some"," ",e.type==="filter"?"filters":e.type==="sort"?"sort levels":"grouping levels"," ","before adding more."]})]})})}function sp({error:e,onDismiss:r,autoDismiss:n=!0,autoDismissDelay:i=5e3}){x.useEffect(()=>{if(n){const c=setTimeout(()=>{r()},i);return()=>clearTimeout(c)}},[n,i,r]);const l=(()=>{switch(e.type){case"system":return{severity:"error",icon:t.jsx(z.Cancel,{sx:{fontSize:20}})};case"processing":return{severity:"warning",icon:t.jsx(z.Warning,{sx:{fontSize:20}})};case"ui":default:return{severity:"info",icon:t.jsx(z.InfoOutlined,{sx:{fontSize:20}})}}})(),a=hl(e);return t.jsx(o.Box,{sx:{position:"fixed",top:16,right:16,zIndex:50,maxWidth:448},children:t.jsxs(o.Alert,{severity:l.severity,icon:l.icon,action:t.jsx(o.IconButton,{size:"small",onClick:r,sx:{color:`${l.severity}.main`},children:t.jsx(z.Close,{sx:{fontSize:16}})}),sx:{borderLeft:4,borderColor:`${l.severity}.main`,boxShadow:3},children:[t.jsxs(o.AlertTitle,{sx:{fontWeight:600},children:[e.context.charAt(0).toUpperCase()+e.context.slice(1)," Error"]}),t.jsx(o.Box,{sx:{fontSize:"body2.fontSize"},children:a}),e.details&&process.env.NODE_ENV==="development"&&t.jsx(o.Box,{component:"pre",sx:{fontSize:"caption.fontSize",mt:1,fontFamily:"monospace",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:JSON.stringify(e.details,null,2)})]})})}class ap extends x.Component{constructor(n){super(n);ai(this,"handleReset",()=>{this.setState({hasError:!1,error:null})});this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,i){Rt.error("urm:error-boundary","Caught unhandled component error",n,i),this.props.onError&&this.props.onError(n,i)}render(){var n,i;return this.state.hasError?this.props.fallback?this.props.fallback:t.jsx(o.Paper,{sx:{bgcolor:s=>$(s.palette.error.main,.12),border:1,borderColor:"error.light",borderRadius:2,p:3,m:2},children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"flex-start",gap:1.5},children:[t.jsx(z.Warning,{color:"error",sx:{fontSize:24,flexShrink:0}}),t.jsxs(o.Box,{sx:{flex:1},children:[t.jsx(o.Typography,{variant:"h6",sx:{color:"error.main",fontWeight:600},children:this.props.context?`${this.props.context} Error`:"Something went wrong"}),t.jsx(o.Typography,{variant:"body2",sx:{color:"error.main",mt:1},children:((n=this.state.error)==null?void 0:n.message)||"An unexpected error occurred"}),process.env.NODE_ENV==="development"&&t.jsx(o.Box,{component:"pre",sx:{mt:1.5,fontSize:"caption.fontSize",color:"error.main",bgcolor:s=>$(s.palette.error.main,.12),p:1.5,borderRadius:1,overflow:"auto",maxHeight:170},children:(i=this.state.error)==null?void 0:i.stack}),t.jsx(o.Button,{onClick:this.handleReset,variant:"contained",color:"error",startIcon:t.jsx(z.Refresh,{sx:{fontSize:16}}),sx:{mt:2},children:"Try Again"})]})]})}):this.props.children}}function lp({feature:e}){const[r,n]=x.useState(!0);return x.useEffect(()=>{const i=setTimeout(()=>n(!1),5e3);return()=>clearTimeout(i)},[]),t.jsx(o.Collapse,{in:r,unmountOnExit:!0,children:t.jsxs(o.Alert,{severity:"warning",sx:{m:1},icon:t.jsx(z.Warning,{sx:{fontSize:20}}),action:t.jsx(o.IconButton,{size:"small",onClick:()=>n(!1),"aria-label":"dismiss",sx:{color:"warning.dark"},children:t.jsx(z.Close,{sx:{fontSize:16}})}),children:[t.jsxs(o.AlertTitle,{children:[e," temporarily unavailable"]}),"Other features continue to work normally"]})})}function Do({children:e,feature:r,onError:n}){return t.jsx(ap,{context:r,onError:i=>{n&&n(i)},fallback:t.jsx(lp,{feature:r}),children:e})}const cp=[{value:"equals",label:"Equals",group:"Text"},{value:"contains",label:"Contains",group:"Text"},{value:"startsWith",label:"Starts with",group:"Text"},{value:"endsWith",label:"Ends with",group:"Text"},{value:"gt",label:"Greater than (>)",group:"Numeric"},{value:"lt",label:"Less than (<)",group:"Numeric"},{value:"gte",label:"At least (≥)",group:"Numeric"},{value:"lte",label:"At most (≤)",group:"Numeric"},{value:"isTrue",label:"Is true",group:"Boolean"},{value:"isFalse",label:"Is false",group:"Boolean"},{value:"NULL",label:"Is empty (NULL)",group:"Null checks"},{value:"NOT_NULL",label:"Is not empty",group:"Null checks"}],dp=[{value:"csv",label:"CSV",desc:"Comma-separated values"},{value:"excel",label:"Excel (.xlsx)",desc:"Native Excel format"},{value:"json",label:"JSON",desc:"Structured data with metadata"}];function oo({children:e,active:r}){return t.jsx(o.Box,{hidden:!r,sx:{pt:2.5,pb:1,display:r?"flex":"none",flexDirection:"column",gap:2.5},children:e})}function up({open:e,onClose:r,config:n,onApply:i}){const[s,l]=x.useState(0),[a,c]=x.useState(n),u=()=>c(n),g=()=>c(it),y=()=>{i(a),r()},h={sort:m=>c(I=>({...I,sort:{...I.sort,...m}})),filter:m=>c(I=>({...I,filter:{...I.filter,...m}})),columns:m=>c(I=>({...I,columns:{...I.columns,...m}})),grouping:m=>c(I=>({...I,grouping:{...I.grouping,...m}})),export:m=>c(I=>({...I,export:{...I.export,...m}}))},v=m=>{const I=a.filter.allowedOperators,f=I.includes(m)?I.filter(O=>O!==m):[...I,m];f.length!==0&&h.filter({allowedOperators:f})},S=m=>{const I=a.export.allowedFormats,f=I.includes(m)?I.filter(O=>O!==m):[...I,m];f.length!==0&&h.export({allowedFormats:f})},B=[{label:"Sort",icon:t.jsx(z.SwapVert,{sx:{fontSize:17}})},{label:"Filter",icon:t.jsx(z.FilterList,{sx:{fontSize:17}})},{label:"Columns",icon:t.jsx(z.ViewColumn,{sx:{fontSize:17}})},{label:"Grouping",icon:t.jsx(z.Layers,{sx:{fontSize:17}})},{label:"Export",icon:t.jsx(z.Download,{sx:{fontSize:17}})}],C=m=>JSON.stringify(a[m])===JSON.stringify(it[m]);return t.jsxs(o.Dialog,{open:e,onClose:r,maxWidth:"sm",fullWidth:!0,TransitionProps:{onEnter:u},PaperProps:{sx:{borderRadius:m=>Ge(m),maxHeight:"min(680px, calc(100vh - 180px))",my:"auto",display:"flex",flexDirection:"column",boxShadow:m=>`0 8px 32px ${$(m.palette.common.black,.2)}`}},children:[t.jsxs(o.DialogTitle,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",pb:1,borderBottom:"1px solid",borderColor:"divider",flexShrink:0},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[t.jsx(o.Box,{sx:{width:32,height:32,borderRadius:"8px",bgcolor:m=>$(m.palette.primary.main,.1),display:"flex",alignItems:"center",justifyContent:"center",fontSize:"1.1rem"},children:"⚙️"}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle1",sx:{fontWeight:600,lineHeight:1.2},children:"Developer Configuration"}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:"Set runtime constraints · Ctrl+Shift+D"})]})]}),t.jsx(o.IconButton,{size:"small",onClick:r,sx:{color:"text.secondary"},children:t.jsx(z.Close,{sx:{fontSize:20}})})]}),t.jsx(o.Box,{sx:{borderBottom:"1px solid",borderColor:"divider",flexShrink:0},children:t.jsx(o.Tabs,{value:s,onChange:(m,I)=>l(I),variant:"fullWidth",sx:{minHeight:44,"& .MuiTab-root":{minHeight:44,fontSize:"0.8125rem",textTransform:"none",fontWeight:500,gap:.5}},children:B.map((m,I)=>t.jsx(o.Tab,{label:m.label,icon:m.icon,iconPosition:"start"},I))})}),t.jsxs(o.DialogContent,{sx:{overflowY:"auto",flex:1,px:3,py:0},children:[t.jsxs(oo,{active:s===0,children:[t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:.5},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600},children:"Maximum sort levels"}),!C("sort")&&t.jsx(o.Typography,{variant:"caption",sx:{color:"primary.main",fontWeight:600},children:"Modified"})]}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:2},children:"Users can sort by at most this many columns simultaneously."}),t.jsx(o.Slider,{value:a.sort.maxLevels,onChange:(m,I)=>h.sort({maxLevels:I}),min:1,max:10,step:1,marks:!0,valueLabelDisplay:"on"}),t.jsxs(o.Box,{sx:{display:"flex",justifyContent:"space-between"},children:[t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:"1 level (single)"}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:"10 levels (maximum)"})]})]}),t.jsxs(o.Alert,{severity:"info",sx:{borderRadius:2,fontSize:"0.8125rem"},children:['The "Add sort column" button is hidden once users reach this limit. Default is'," ",t.jsx("strong",{children:"5"}),"."]})]}),t.jsxs(oo,{active:s===1,children:[t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:.5},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600},children:"Maximum filter conditions"}),!C("filter")&&t.jsx(o.Typography,{variant:"caption",sx:{color:"primary.main",fontWeight:600},children:"Modified"})]}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:2},children:"Users can apply at most this many simultaneous filter conditions."}),t.jsx(o.Slider,{value:a.filter.maxConditions,onChange:(m,I)=>h.filter({maxConditions:I}),min:1,max:20,step:1,marks:!0,valueLabelDisplay:"on"}),t.jsxs(o.Box,{sx:{display:"flex",justifyContent:"space-between"},children:[t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:"1 condition"}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:"20 conditions"})]})]}),t.jsx(o.Divider,{}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600,mb:.5},children:"Allowed filter operators"}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:1.5},children:"Only checked operators appear in the filter type dropdown. At least one must remain checked."}),["Text","Numeric","Boolean","Null checks"].map(m=>t.jsxs(o.Box,{sx:{mb:1.5},children:[t.jsx(o.Typography,{sx:{fontWeight:600,textTransform:"uppercase",letterSpacing:"0.06em",color:"text.secondary",fontSize:"0.6875rem",display:"block",mb:.5},children:m}),t.jsx(o.FormGroup,{row:!0,sx:{gap:.5},children:cp.filter(I=>I.group===m).map(I=>t.jsx(o.FormControlLabel,{control:t.jsx(o.Checkbox,{size:"small",checked:a.filter.allowedOperators.includes(I.value),onChange:()=>v(I.value)}),label:t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem"},children:I.label}),sx:{mr:1.5}},I.value))})]},m))]})]}),t.jsxs(oo,{active:s===2,children:[t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:.5},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600},children:"Maximum visible columns"}),!C("columns")&&t.jsx(o.Typography,{variant:"caption",sx:{color:"primary.main",fontWeight:600},children:"Modified"})]}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:2},children:"Users cannot make more than this many columns visible simultaneously."}),t.jsx(o.Slider,{value:a.columns.maxVisible,onChange:(m,I)=>h.columns({maxVisible:I}),min:1,max:50,step:1,valueLabelDisplay:"on"})]}),t.jsx(o.Divider,{}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600,mb:.5},children:"Column width range (px)"}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:2},children:"Users cannot resize columns outside this minimum / maximum range."}),t.jsxs(o.Box,{sx:{display:"flex",gap:2},children:[t.jsxs(o.Box,{sx:{flex:1},children:[t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Minimum width"}),t.jsx(o.Slider,{value:a.columns.minColumnWidth,onChange:(m,I)=>h.columns({minColumnWidth:I}),min:40,max:400,step:10,valueLabelDisplay:"on",valueLabelFormat:m=>`${m}px`})]}),t.jsxs(o.Box,{sx:{flex:1},children:[t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Maximum width"}),t.jsx(o.Slider,{value:a.columns.maxColumnWidth,onChange:(m,I)=>h.columns({maxColumnWidth:I}),min:100,max:2e3,step:50,valueLabelDisplay:"on",valueLabelFormat:m=>`${m}px`})]})]})]})]}),t.jsxs(oo,{active:s===3,children:[t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600},children:"Maximum group levels"}),!C("grouping")&&t.jsx(o.Typography,{variant:"caption",sx:{color:"primary.main",fontWeight:600},children:"Modified"})]}),t.jsx(o.Box,{sx:{display:"flex",gap:1.5,mb:2},children:[1,2,3].map(m=>t.jsxs(o.Box,{onClick:()=>h.grouping({maxLevels:m}),sx:{flex:1,py:2.5,borderRadius:"10px",border:"2px solid",cursor:"pointer",textAlign:"center",transition:"all 0.15s ease",borderColor:a.grouping.maxLevels===m?"primary.main":"divider",bgcolor:a.grouping.maxLevels===m?I=>$(I.palette.primary.main,.06):"transparent","&:hover":{borderColor:"primary.light",bgcolor:I=>$(I.palette.primary.main,.04)}},children:[t.jsx(o.Typography,{variant:"h5",sx:{fontWeight:700,color:a.grouping.maxLevels===m?"primary.main":"text.secondary"},children:m}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:["Single","Double","Triple"][m-1]})]},m))}),t.jsxs(o.FormGroup,{row:!0,sx:{gap:2},children:[t.jsx(o.FormControlLabel,{control:t.jsx(o.Checkbox,{checked:a.grouping.allowNested,onChange:m=>h.grouping({allowNested:m.target.checked})}),label:t.jsx(o.Typography,{variant:"body2",children:"Allow nested groups"})}),t.jsx(o.FormControlLabel,{control:t.jsx(o.Checkbox,{checked:a.grouping.allowCollapse,onChange:m=>h.grouping({allowCollapse:m.target.checked})}),label:t.jsx(o.Typography,{variant:"body2",children:"Allow collapse / expand"})})]})]}),t.jsx(o.Alert,{severity:"info",sx:{borderRadius:2,fontSize:"0.8125rem"},children:'The "Add group level" button is hidden when users reach the configured limit.'})]}),t.jsx(oo,{active:s===4,children:t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:.5},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600},children:"Allowed export formats"}),!C("export")&&t.jsx(o.Typography,{variant:"caption",sx:{color:"primary.main",fontWeight:600},children:"Modified"})]}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:1.5},children:"Only checked formats appear in the Export dialog and the bulk export action. At least one must remain checked."}),t.jsx(o.FormGroup,{sx:{gap:1},children:dp.map(m=>t.jsxs(o.Box,{onClick:()=>S(m.value),sx:{display:"flex",alignItems:"center",gap:1.5,p:1.5,borderRadius:"8px",border:"1px solid",cursor:"pointer",transition:"all 0.15s ease",borderColor:a.export.allowedFormats.includes(m.value)?"primary.main":"divider",bgcolor:a.export.allowedFormats.includes(m.value)?I=>$(I.palette.primary.main,.04):"transparent","&:hover":{borderColor:"primary.light"}},children:[t.jsx(o.Checkbox,{size:"small",checked:a.export.allowedFormats.includes(m.value),onChange:()=>S(m.value),onClick:I=>I.stopPropagation()}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500},children:m.label}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:m.desc})]})]},m.value))})]})})]}),t.jsxs(o.DialogActions,{sx:{px:3,py:1.75,borderTop:"1px solid",borderColor:"divider",bgcolor:m=>$(m.palette.action.hover,.4),justifyContent:"space-between",flexShrink:0},children:[t.jsx(o.Button,{startIcon:t.jsx(z.RestartAlt,{sx:{fontSize:18}}),onClick:g,size:"small",sx:{fontSize:"0.875rem",color:"text.secondary","&:hover":{color:"text.primary",bgcolor:m=>$(m.palette.text.primary,.06)}},children:"Reset to defaults"}),t.jsxs(o.Box,{sx:{display:"flex",gap:1},children:[t.jsx(o.Button,{onClick:r,size:"small",sx:{fontSize:"0.875rem",color:"text.secondary",px:2,borderRadius:"18px"},children:"Cancel"}),t.jsx(o.Button,{onClick:y,size:"small",variant:"contained",sx:{fontSize:"0.875rem",px:2.5,borderRadius:"18px"},children:"Apply"})]})]})]})}const pp=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],xp={1:"1st",2:"2nd",3:"3rd",4:"4th",5:"5th",6:"6th",7:"7th",8:"8th",9:"9th",10:"10th",11:"11th",12:"12th",13:"13th",14:"14th",15:"15th",16:"16th",17:"17th",18:"18th",19:"19th",20:"20th",21:"21st",22:"22nd",23:"23rd",24:"24th",25:"25th",26:"26th",27:"27th",28:"28th"};function Mo(e,r,n,i,s=new Date){const[l,a]=r.split(":").map(Number),c=new Date(s);if(c.setSeconds(0,0),c.setHours(l,a,0,0),e==="daily")return c<=s&&c.setDate(c.getDate()+1),c.toISOString();if(e==="weekly"){const u=n??1,g=c.getDay();let y=u-g;return y<0&&(y+=7),y===0&&c<=s&&(y=7),c.setDate(c.getDate()+y),c.toISOString()}if(e==="monthly"){const u=Math.min(i??1,28);return c.setDate(u),c<=s&&(c.setMonth(c.getMonth()+1),c.setDate(u)),c.toISOString()}return c.toISOString()}function mp(e){const r=Hs(e.time);return e.frequency==="daily"?`Daily at ${r}`:e.frequency==="weekly"?`Every ${pp[e.dayOfWeek??1]} at ${r}`:e.frequency==="monthly"?`Monthly on the ${xp[e.dayOfMonth??1]??`${e.dayOfMonth}th`} at ${r}`:r}function Hs(e){const[r,n]=e.split(":").map(Number),i=r>=12?"PM":"AM";return`${r%12||12}:${String(n).padStart(2,"0")} ${i}`}function hp(e){const r=new Date(e).getTime()-Date.now();if(r<=0)return"now";const n=Math.floor(r/1e3),i=Math.floor(n/86400),s=Math.floor(n%86400/3600),l=Math.floor(n%3600/60);return i>0?`in ${i}d ${s}h`:s>0?`in ${s}h ${l}m`:l>0?`in ${l}m`:"in less than a minute"}function fp(e){const r=new Date(e),n=new Date,i=r.toDateString()===n.toDateString(),s=Hs(`${String(r.getHours()).padStart(2,"0")}:${String(r.getMinutes()).padStart(2,"0")}`);return i?`Today at ${s}`:`${r.toLocaleDateString("en-US",{month:"short",day:"numeric"})} at ${s}`}function Us(e){return`urm_schedules_${e}`}function Gs(e){try{const r=localStorage.getItem(Us(e));return r?JSON.parse(r).map(i=>({...i,runCount:typeof i.runCount=="number"?i.runCount:0,isActive:typeof i.isActive=="boolean"?i.isActive:!0,createdAt:i.createdAt||new Date().toISOString()})):[]}catch{return[]}}function Ys(e,r){try{localStorage.setItem(Us(e),JSON.stringify(r))}catch{}}const gp=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:2,label:"Tuesday"},{value:3,label:"Wednesday"},{value:4,label:"Thursday"},{value:5,label:"Friday"},{value:6,label:"Saturday"}],yp=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,qs={name:"",frequency:"daily",dayOfWeek:1,dayOfMonth:1,time:"09:00",format:"csv",scope:"all",email:""},wr={"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:"8px"},"& .MuiInputLabel-root":{fontSize:"0.875rem"},"& .MuiFormHelperText-root":{fontSize:"0.75rem",mx:.5},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}}};function bp({initial:e=qs,isEditing:r=!1,onSave:n,onBack:i}){const[s,l]=x.useState(e),[a,c]=x.useState(!1),[u,g]=x.useState(!1),y=(S,B)=>l(C=>({...C,[S]:B})),h=s.email.trim().length>0&&!yp.test(s.email.trim()),v=s.name.trim().length>0&&/^\d{2}:\d{2}$/.test(s.time)&&(s.frequency!=="monthly"||s.dayOfMonth>=1&&s.dayOfMonth<=28)&&!h;return t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5,mb:.5},children:[t.jsx(o.IconButton,{size:"small",onClick:i,sx:{color:"text.secondary",ml:-.75,"&:hover":{bgcolor:S=>$(S.palette.text.primary,.06)}},children:t.jsx(z.ArrowBack,{sx:{fontSize:18}})}),t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600},children:r?"Edit schedule":"New schedule"})]}),t.jsx(o.TextField,{label:"Schedule name *",size:"small",fullWidth:!0,value:s.name,onChange:S=>{y("name",S.target.value),a&&S.target.value.trim()&&c(!1)},onBlur:()=>c(!0),placeholder:"e.g. Weekly Sales Report",autoFocus:!0,inputProps:{maxLength:50},error:a&&!s.name.trim(),helperText:a&&!s.name.trim()?"Schedule name is required":`${s.name.length}/50`,sx:wr}),t.jsxs(o.FormControl,{size:"small",fullWidth:!0,sx:wr,children:[t.jsx(o.InputLabel,{children:"Frequency"}),t.jsxs(o.Select,{value:s.frequency,label:"Frequency",onChange:S=>y("frequency",S.target.value),children:[t.jsx(o.MenuItem,{value:"daily",children:"Daily"}),t.jsx(o.MenuItem,{value:"weekly",children:"Weekly"}),t.jsx(o.MenuItem,{value:"monthly",children:"Monthly"})]})]}),s.frequency==="weekly"&&t.jsxs(o.FormControl,{size:"small",fullWidth:!0,sx:wr,children:[t.jsx(o.InputLabel,{children:"Day of week"}),t.jsx(o.Select,{value:s.dayOfWeek,label:"Day of week",onChange:S=>y("dayOfWeek",Number(S.target.value)),children:gp.map(S=>t.jsx(o.MenuItem,{value:S.value,children:S.label},S.value))})]}),s.frequency==="monthly"&&t.jsx(o.TextField,{label:"Day of month (1–28)",size:"small",type:"number",fullWidth:!0,value:s.dayOfMonth,onChange:S=>y("dayOfMonth",Number(S.target.value)),inputProps:{min:1,max:28},error:s.dayOfMonth<1||s.dayOfMonth>28,helperText:s.dayOfMonth<1||s.dayOfMonth>28?"Day must be between 1 and 28":"Max 28 — works safely across all months including February",sx:wr}),t.jsx(o.TextField,{label:"Time",size:"small",type:"time",fullWidth:!0,value:s.time,onChange:S=>y("time",S.target.value),InputLabelProps:{shrink:!0},helperText:"24-hour format · Tab must be open for the schedule to fire",sx:wr}),t.jsxs(o.FormControl,{size:"small",fullWidth:!0,sx:wr,children:[t.jsx(o.InputLabel,{children:"Export format"}),t.jsxs(o.Select,{value:s.format,label:"Export format",onChange:S=>y("format",S.target.value),children:[t.jsx(o.MenuItem,{value:"csv",children:"CSV — Comma-separated values"}),t.jsx(o.MenuItem,{value:"excel",children:"Excel (.xlsx) — Native format"}),t.jsx(o.MenuItem,{value:"json",children:"JSON — Structured data"})]})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"caption",sx:{fontWeight:500,color:"text.secondary",display:"block",mb:.75},children:"Data scope"}),t.jsxs(o.RadioGroup,{row:!0,value:s.scope,onChange:S=>y("scope",S.target.value),sx:{gap:2},children:[t.jsx(o.FormControlLabel,{value:"all",control:t.jsx(o.Radio,{size:"small"}),label:t.jsx(o.Typography,{variant:"body2",children:"All rows"})}),t.jsx(o.FormControlLabel,{value:"visible",control:t.jsx(o.Radio,{size:"small"}),label:t.jsx(o.Typography,{variant:"body2",children:"Filtered rows only"})})]})]}),t.jsxs(o.Box,{children:[t.jsx(o.TextField,{label:"Email reminder (optional)",size:"small",fullWidth:!0,type:"email",value:s.email,onChange:S=>y("email",S.target.value),onBlur:()=>g(!0),placeholder:"user@company.com",error:u&&h,helperText:u&&h?"Enter a valid email address":void 0,InputProps:{startAdornment:t.jsx(z.Email,{sx:{fontSize:15,color:"text.disabled",mr:1}})},sx:wr}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"flex-start",gap:.5,mt:.5,px:.5},children:[t.jsx(z.InfoOutlined,{sx:{fontSize:12,color:"text.disabled",mt:.2,flexShrink:0}}),t.jsx(o.Typography,{variant:"caption",color:"text.disabled",sx:{lineHeight:1.5},children:"Opens your device's email app when the schedule fires. Requires a default mail app (e.g. Outlook, Mail) on this device."})]})]}),t.jsxs(o.Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,pt:.5},children:[t.jsx(o.Button,{onClick:i,size:"small",sx:{fontSize:"0.875rem",color:"text.secondary",px:2,borderRadius:"18px","&:hover":{bgcolor:S=>$(S.palette.text.primary,.06)}},children:"Cancel"}),t.jsx(o.Button,{onClick:()=>v&&n(s),disabled:!v,size:"small",variant:"contained",sx:{fontSize:"0.875rem",px:2.5,borderRadius:"18px"},children:r?"Save changes":"Create schedule"})]})]})}function vp({scheduleName:e,onConfirm:r,onCancel:n}){return t.jsxs(o.Dialog,{open:!0,onClose:n,maxWidth:"xs",fullWidth:!0,PaperProps:{sx:i=>({borderRadius:Jr(i),...se(i).paper})},children:[t.jsxs(o.DialogContent,{sx:{pt:3,pb:2,px:3},children:[t.jsx(o.Box,{sx:{width:44,height:44,borderRadius:"12px",bgcolor:i=>$(i.palette.error.main,.1),display:"flex",alignItems:"center",justifyContent:"center",mb:2},children:t.jsx(z.WarningAmberOutlined,{sx:{fontSize:22,color:"error.main"}})}),t.jsx(o.Typography,{sx:{fontSize:"0.9375rem",fontWeight:600,color:"text.primary",mb:1},children:"Delete Schedule"}),t.jsxs(o.Typography,{sx:{fontSize:"0.8125rem",color:"text.secondary",lineHeight:1.65},children:["Are you sure you want to delete"," ",t.jsxs(o.Box,{component:"span",sx:{fontWeight:600,color:"text.primary"},children:['"',e,'"']}),"? This action cannot be undone."]})]}),t.jsx(o.Divider,{}),t.jsxs(o.DialogActions,{sx:{px:2.5,py:1.5,gap:1},children:[t.jsx(o.Button,{onClick:n,variant:"text",sx:{fontSize:"0.8125rem",color:"text.secondary",borderRadius:i=>`${i.shape.borderRadius}px`,"&:hover":{bgcolor:"action.hover"}},children:"Cancel"}),t.jsx(o.Button,{onClick:r,variant:"contained",color:"error",sx:{fontSize:"0.8125rem",borderRadius:i=>`${i.shape.borderRadius}px`,px:2},children:"Delete"})]})]})}function Sp({schedule:e,tick:r,onToggle:n,onRunNow:i,onEdit:s,onDelete:l}){const a=e.isActive;return t.jsxs(o.Box,{sx:{border:"1px solid",borderColor:a?"primary.main":"divider",borderRadius:"10px",p:1.75,bgcolor:a?c=>$(c.palette.primary.main,.025):"background.paper",transition:"border-color 0.15s ease, background-color 0.15s ease"},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600,flex:1,minWidth:0,color:a?"text.primary":"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),t.jsx(o.Chip,{label:a?"Active":"Paused",size:"small",sx:{height:18,fontSize:"0.6875rem",fontWeight:600,flexShrink:0,bgcolor:a?c=>$(c.palette.success.main,.1):c=>$(c.palette.text.primary,.06),color:a?"success.dark":"text.secondary"}})]}),t.jsx(o.Typography,{variant:"caption",sx:{color:"text.secondary",display:"block",mb:1},children:mp(e)}),t.jsxs(o.Box,{sx:{display:"flex",flexWrap:"wrap",gap:.5,mb:1},children:[t.jsx(o.Chip,{label:e.format.toUpperCase(),size:"small",sx:{height:20,fontSize:"0.6875rem",fontWeight:500,bgcolor:c=>$(c.palette.primary.main,.08),color:"primary.main"}}),t.jsx(o.Chip,{label:e.scope==="all"?"All rows":"Filtered rows",size:"small",sx:{height:20,fontSize:"0.6875rem",bgcolor:c=>$(c.palette.text.primary,.06),color:"text.secondary"}}),e.email&&t.jsx(o.Chip,{icon:t.jsx(z.Email,{sx:{fontSize:11}}),label:e.email,size:"small",sx:{height:20,fontSize:"0.6875rem",maxWidth:220,bgcolor:c=>$(c.palette.text.primary,.06),color:"text.secondary","& .MuiChip-label":{overflow:"hidden",textOverflow:"ellipsis"}}})]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:1},children:[t.jsxs(o.Box,{sx:{display:"flex",flexWrap:"wrap",gap:1.5,alignItems:"center"},children:[a&&t.jsxs(o.Typography,{variant:"caption",sx:{color:"primary.main",fontWeight:500},children:["Next: ",hp(e.nextRunAt)]}),e.lastRunAt?t.jsxs(o.Typography,{variant:"caption",color:"text.secondary",children:["Last: ",fp(e.lastRunAt)," · ",e.runCount," run",e.runCount!==1?"s":""]}):t.jsx(o.Typography,{variant:"caption",color:"text.disabled",children:"Never run"})]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.25,flexShrink:0},children:[t.jsx(o.Tooltip,{title:"Edit",placement:"top",children:t.jsx(o.IconButton,{size:"small",onClick:()=>s(e),sx:{color:"text.secondary","&:hover":{color:"primary.main",bgcolor:c=>$(c.palette.primary.main,.08)}},children:t.jsx(z.Edit,{sx:{fontSize:15}})})}),t.jsx(o.Tooltip,{title:a?"Pause":"Resume",placement:"top",children:t.jsx(o.IconButton,{size:"small",onClick:()=>n(e.id),sx:{color:a?"warning.main":"success.main","&:hover":{bgcolor:a?c=>$(c.palette.warning.main,.08):c=>$(c.palette.success.main,.08)}},children:a?t.jsx(z.Pause,{sx:{fontSize:15}}):t.jsx(z.PlayArrow,{sx:{fontSize:15}})})}),t.jsx(o.Tooltip,{title:"Export now",placement:"top",children:t.jsx(o.IconButton,{size:"small",onClick:()=>i(e),sx:{color:"primary.main","&:hover":{bgcolor:c=>$(c.palette.primary.main,.08)}},children:t.jsx(z.Download,{sx:{fontSize:15}})})}),t.jsx(o.Tooltip,{title:"Delete",placement:"top",children:t.jsx(o.IconButton,{size:"small",onClick:()=>l(e.id),sx:{color:"error.main","&:hover":{bgcolor:c=>$(c.palette.error.main,.08)}},children:t.jsx(z.Delete,{sx:{fontSize:15}})})})]})]})]})}function Cp({open:e,onClose:r,reportId:n,reportName:i,onRunNow:s}){const[l,a]=x.useState([]),[c,u]=x.useState({type:"list"}),[g,y]=x.useState(0),[h,v]=x.useState(null);x.useEffect(()=>{e&&(a(Gs(n)),u({type:"list"}))},[e,n]),x.useEffect(()=>{if(!e)return;const b=setInterval(()=>y(_=>_+1),3e4);return()=>clearInterval(b)},[e]);const S=x.useCallback(b=>{a(b),Ys(n,b)},[n]),B=b=>{const _=Mo(b.frequency,b.time,b.dayOfWeek,b.dayOfMonth),V={id:`sched-${Date.now()}`,reportId:n,name:b.name.trim(),frequency:b.frequency,dayOfWeek:b.frequency==="weekly"?b.dayOfWeek:void 0,dayOfMonth:b.frequency==="monthly"?b.dayOfMonth:void 0,time:b.time,format:b.format,scope:b.scope,email:b.email.trim()||void 0,isActive:!0,createdAt:new Date().toISOString(),nextRunAt:_,runCount:0};S([...l,V]),u({type:"list"})},C=b=>{if(c.type!=="edit")return;const _=c.schedule,V=Mo(b.frequency,b.time,b.dayOfWeek,b.dayOfMonth);S(l.map(d=>d.id===_.id?{..._,name:b.name.trim(),frequency:b.frequency,dayOfWeek:b.frequency==="weekly"?b.dayOfWeek:void 0,dayOfMonth:b.frequency==="monthly"?b.dayOfMonth:void 0,time:b.time,format:b.format,scope:b.scope,email:b.email.trim()||void 0,nextRunAt:V}:d)),u({type:"list"})},m=b=>{S(l.map(_=>{if(_.id!==b)return _;const V=_.isActive?_.nextRunAt:Mo(_.frequency,_.time,_.dayOfWeek,_.dayOfMonth);return{..._,isActive:!_.isActive,nextRunAt:V}}))},I=b=>{s(b);const _=new Date().toISOString();S(l.map(V=>V.id===b.id?{...V,lastRunAt:_,runCount:V.runCount+1}:V))},f=b=>{const _=l.find(V=>V.id===b)??null;v(_)},O=()=>{h&&(S(l.filter(b=>b.id!==h.id)),v(null))},j=b=>({name:b.name,frequency:b.frequency,dayOfWeek:b.dayOfWeek??1,dayOfMonth:b.dayOfMonth??1,time:b.time,format:b.format,scope:b.scope,email:b.email??""}),w=c.type!=="list",R=l.filter(b=>b.isActive).length;return t.jsxs(t.Fragment,{children:[t.jsxs(o.Dialog,{open:e,onClose:r,maxWidth:"sm",fullWidth:!0,disableEscapeKeyDown:w,PaperProps:{sx:b=>({borderRadius:Ge(b),maxHeight:"min(680px, calc(100vh - 180px))",my:"auto",display:"flex",flexDirection:"column",...se(b).paper})},children:[t.jsxs(o.DialogTitle,{sx:b=>({display:"flex",alignItems:"center",justifyContent:"space-between",py:1.5,px:2.5,flexShrink:0,minHeight:0,...se(b).header}),children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.25},children:[t.jsx(o.Box,{sx:{width:30,height:30,borderRadius:"7px",bgcolor:b=>$(b.palette.primary.main,.1),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:t.jsx(z.Schedule,{sx:{fontSize:17,color:"primary.main"}})}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"baseline",gap:.75},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75},children:[t.jsx(o.Typography,{variant:"subtitle2",sx:{fontWeight:600,lineHeight:1},children:"Scheduled Reports"}),t.jsx(Br,{content:Ir.schedule,isDev:process.env.NODE_ENV==="development"})]}),t.jsxs(o.Typography,{variant:"caption",color:"text.secondary",sx:{lineHeight:1},children:["· ",i]})]})]}),t.jsx(o.IconButton,{size:"small",onClick:r,sx:{color:"text.secondary","&:hover":{bgcolor:b=>$(b.palette.text.primary,.06)}},children:t.jsx(z.Close,{sx:{fontSize:18}})})]}),t.jsxs(o.DialogContent,{sx:{overflowY:"auto",flex:1,px:2.5,py:2},children:[w&&t.jsx(bp,{initial:c.type==="edit"?j(c.schedule):qs,isEditing:c.type==="edit",onSave:c.type==="edit"?C:B,onBack:()=>u({type:"list"})}),c.type==="list"&&t.jsxs(t.Fragment,{children:[t.jsxs(o.Box,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:1.75,pt:1.5},children:[t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:l.length===0?"No schedules yet":`${R} of ${l.length} active`}),t.jsx(o.Button,{startIcon:t.jsx(z.Add,{sx:{fontSize:15}}),size:"small",variant:"contained",onClick:()=>u({type:"create"}),sx:{fontSize:"0.8125rem",borderRadius:"18px",px:1.75,py:.625},children:"New schedule"})]}),l.length===0?t.jsxs(o.Box,{sx:{border:"1.5px dashed",borderColor:"divider",borderRadius:"10px",py:5,px:2,textAlign:"center"},children:[t.jsx(z.NotificationsActive,{sx:{fontSize:30,color:"text.disabled",mb:1.25,display:"block",mx:"auto"}}),t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,color:"text.secondary"},children:"No scheduled reports yet"}),t.jsx(o.Typography,{variant:"caption",color:"text.disabled",sx:{display:"block",mt:.5},children:'Use "New schedule" above to set up automatic exports'})]}):t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:1.25},children:l.map(b=>t.jsx(Sp,{schedule:b,tick:g,onToggle:m,onRunNow:I,onEdit:_=>u({type:"edit",schedule:_}),onDelete:f},b.id))})]})]}),c.type==="list"&&t.jsxs(o.DialogActions,{sx:{px:2.5,py:1.25,borderTop:"1px solid",borderColor:"divider",flexShrink:0,display:"flex",alignItems:"center",gap:1},children:[t.jsxs(o.Box,{sx:{flex:1,display:"flex",alignItems:"center",gap:.75,px:1.25,py:.75,borderRadius:"8px",bgcolor:b=>$(b.palette.warning.main,.06),border:"1px solid",borderColor:b=>$(b.palette.warning.main,.2)},children:[t.jsx(z.Schedule,{sx:{fontSize:13,color:"warning.main",flexShrink:0}}),t.jsx(o.Typography,{variant:"caption",sx:{color:"warning.dark",lineHeight:1.1},children:"Schedules require this browser tab to remain open."})]}),t.jsx(o.Button,{onClick:r,size:"small",sx:{fontSize:"0.875rem",color:"text.secondary",px:2,borderRadius:"18px",flexShrink:0,"&:hover":{bgcolor:b=>$(b.palette.text.primary,.06)}},children:"Close"})]})]}),h&&t.jsx(vp,{scheduleName:h.name,onConfirm:O,onCancel:()=>v(null)})]})}const jp=6e4;function wp({reportId:e,reportName:r,uploadedData:n,processedData:i,schema:s,activeView:l,columnVisibility:a,columnOrder:c,filters:u,sortStack:g,onFired:y}){const h=x.useRef({reportId:e,reportName:r,uploadedData:n,processedData:i,schema:s,activeView:l,columnVisibility:a,columnOrder:c,filters:u,sortStack:g,onFired:y});x.useEffect(()=>{h.current={reportId:e,reportName:r,uploadedData:n,processedData:i,schema:s,activeView:l,columnVisibility:a,columnOrder:c,filters:u,sortStack:g,onFired:y}});const v=x.useCallback(S=>{var b,_;const{reportName:B,uploadedData:C,processedData:m,schema:I,activeView:f,columnVisibility:O,columnOrder:j,filters:w,sortStack:R}=h.current;try{const V=S.scope==="all"?C:m,d=Ao(V,I,w,R,f,O,j),ee=`${S.name}_scheduled`;switch(S.format){case"csv":Ro(d,ee,{scope:S.scope});break;case"excel":Wo(d,ee,{scope:S.scope});break;case"json":Po(d,ee,{scope:S.scope});break}if(S.email){const p=encodeURIComponent(`Scheduled Report: ${S.name}`),P=encodeURIComponent(`Your scheduled report "${S.name}" has been generated.
|
|
89
|
+
]`})})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",gutterBottom:!0,children:"Supported Column Types"}),t.jsx(o.Typography,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:"The system automatically detects column types from your data:"}),t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:1},children:[t.jsxs(o.Box,{sx:{display:"flex",gap:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,minWidth:80},children:"Number:"}),t.jsxs(o.Typography,{variant:"body2",color:"text.secondary",children:["Numeric values (e.g.,"," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:"33"}),","," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:"42.5"}),")"]})]}),t.jsxs(o.Box,{sx:{display:"flex",gap:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,minWidth:80},children:"Boolean:"}),t.jsxs(o.Typography,{variant:"body2",color:"text.secondary",children:["True/false values (e.g.,"," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:"true"}),","," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:"false"}),")"]})]}),t.jsxs(o.Box,{sx:{display:"flex",gap:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,minWidth:80},children:"String:"}),t.jsxs(o.Typography,{variant:"body2",color:"text.secondary",children:["Text values (e.g.,"," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:'"Europe"'}),","," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:'"Analytics Pro"'}),")"]})]}),t.jsxs(o.Box,{sx:{display:"flex",gap:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,minWidth:80},children:"Date:"}),t.jsxs(o.Typography,{variant:"body2",color:"text.secondary",children:["ISO date strings (e.g.,"," ",t.jsx(o.Box,{component:"code",sx:{bgcolor:"action.hover",px:.5,borderRadius:.5,fontFamily:"monospace",fontSize:"caption.fontSize"},children:'"2024-08-22"'}),")"]})]})]})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle2",gutterBottom:!0,children:"Notes"}),t.jsxs(o.Box,{component:"ul",sx:{m:0,pl:2.5,"& li":{fontSize:"body2.fontSize",color:"text.secondary",mb:.5}},children:[t.jsx("li",{children:"Each object in the array represents one row in the report."}),t.jsx("li",{children:"The keys of the JSON objects become report columns."}),t.jsx("li",{children:"All objects should have consistent keys for proper column detection."}),t.jsx("li",{children:"Column names are case-sensitive and preserve spacing."})]})]})]})}),t.jsx(o.DialogActions,{sx:{px:3,py:1.75,borderTop:"1px solid divider",bgcolor:"action.hover",gap:1.25,justifyContent:"flex-end"},children:t.jsx(o.Button,{onClick:r,variant:"contained",sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"primary.contrastText",px:3,py:.875,minHeight:36,borderRadius:n=>`${n.shape.borderRadius}px`,boxShadow:n=>fe(n,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"primary.dark",boxShadow:n=>fe(n,"hoverButton")},"&:active":{boxShadow:n=>fe(n,"pressedButton"),transform:"translateY(1px)"}},children:"Got it"})})]}):null}function Zd({onFileUpload:e,onError:r,isUploading:n}){const[i,a]=p.useState(!1),[l,c]=p.useState(""),[d,u]=p.useState(!1),h=p.useRef(null),g=async T=>{if(!T.name.endsWith(".json")){r("Only .json files are allowed");return}const x=10*1024*1024;if(T.size>x){r("File size exceeds 10MB limit");return}c(T.name);try{const z=await T.text();let B;try{B=JSON.parse(z)}catch{r("Invalid JSON syntax — please check your file and try again");return}if(!Array.isArray(B)){r("JSON must be an array of objects");return}if(B.length===0){r("No data rows found in JSON file");return}e(B)}catch{r("Network error — please try again")}finally{c("")}},f=T=>{T.preventDefault(),a(!0)},b=T=>{T.preventDefault(),a(!1)},y=T=>{T.preventDefault(),a(!1);const x=T.dataTransfer.files[0];x&&g(x)},k=()=>{var T;(T=h.current)==null||T.click()},v=T=>{var z;const x=(z=T.target.files)==null?void 0:z[0];x&&g(x)},m=T=>{T.stopPropagation(),u(!0)};return t.jsxs(t.Fragment,{children:[t.jsxs(o.Box,{onDragOver:f,onDragLeave:b,onDrop:y,onPaste:T=>T.preventDefault(),onClick:k,sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:400,border:2,borderStyle:"dashed",borderColor:i?"primary.main":"divider",bgcolor:i?T=>$(T.palette.primary.main,.12):"transparent",borderRadius:1,px:2,py:6,cursor:"pointer",transition:"all 0.2s",opacity:n?.5:1,pointerEvents:n?"none":"auto","&:hover":{borderColor:i?"primary.main":"text.secondary"}},children:[t.jsx(o.Box,{component:"input",ref:h,type:"file",accept:".json",onChange:v,sx:{display:"none"}}),n?t.jsxs(t.Fragment,{children:[t.jsx(o.CircularProgress,{size:32,sx:{mb:2}}),t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,mb:.5},children:"Uploading..."}),l&&t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:l})]}):t.jsxs(t.Fragment,{children:[t.jsx(o.Box,{sx:{width:64,height:64,borderRadius:"50%",bgcolor:T=>$(T.palette.primary.main,.12),display:"flex",alignItems:"center",justifyContent:"center",mb:2},children:t.jsx(D.UploadFile,{sx:{fontSize:32,color:"primary.main"}})}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1,mb:1.5},children:[t.jsx(o.Button,{variant:"contained",sx:{fontWeight:500},children:"Upload Data (JSON)"}),t.jsx(o.IconButton,{onClick:m,size:"small",sx:{border:1,borderColor:"divider","&:hover":{borderColor:"text.secondary",bgcolor:"action.hover"}},title:"View JSON format guide",children:t.jsx(D.InfoOutlined,{sx:{fontSize:16}})})]}),t.jsx(o.Typography,{variant:"body2",color:"text.secondary",sx:{textAlign:"center",maxWidth:500},children:"Upload structured JSON data to generate your report."}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{mt:1},children:"Click to browse or drag and drop a JSON file here"})]})]}),t.jsx(Ys,{isOpen:d,onClose:()=>u(!1)})]})}function eu({schema:e,onConfirm:r,hasConflicts:n}){return t.jsxs(o.Paper,{sx:{border:2,borderColor:"divider",p:3},children:[t.jsxs(o.Box,{sx:{mb:2},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontWeight:600,mb:.5},children:"Schema Preview"}),t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:"Review the detected schema before generating your table"})]}),n&&t.jsxs(o.Alert,{severity:"warning",sx:{mb:2},children:[t.jsx(o.AlertTitle,{sx:{fontWeight:600},children:"Schema Conflict Detected"}),"Some columns have inconsistent data types across rows. Please resolve these conflicts before proceeding."]}),t.jsx(o.TableContainer,{sx:{mb:3},children:t.jsxs(o.Table,{children:[t.jsx(o.TableHead,{children:t.jsxs(o.TableRow,{sx:{bgcolor:"action.hover"},children:[t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"caption.fontSize"},children:"Column Name"}),t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"caption.fontSize"},children:"Detected Type"}),t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"caption.fontSize"},children:"Status"})]})}),t.jsx(o.TableBody,{children:e.map(i=>t.jsxs(o.TableRow,{sx:{bgcolor:i.hasConflict?a=>$(a.palette.warning.main,.12):"transparent"},children:[t.jsxs(o.TableCell,{sx:{fontWeight:500},children:[i.name,i.hasConflict&&t.jsx(o.Box,{component:"span",sx:{ml:1,color:"warning.main"},children:"⚠"})]}),t.jsx(o.TableCell,{children:t.jsx(o.Chip,{label:i.type,size:"small",sx:{bgcolor:"action.hover"}})}),t.jsx(o.TableCell,{children:t.jsx(o.Chip,{label:i.required?"Required":"Optional",size:"small",color:i.required?"success":"default"})})]},i.name))})]})}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",pt:2,borderTop:1,borderColor:"divider"},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(D.Lock,{sx:{fontSize:16}}),t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:"Schema will be locked for this report"})]}),t.jsx(o.Button,{variant:"contained",onClick:r,disabled:n,sx:{fontWeight:500},children:"Generate Table"})]})]})}function tu({error:e,onRetry:r}){return t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:400,border:2,borderColor:"error.light",bgcolor:n=>$(n.palette.error.main,.12),borderRadius:1,px:2,py:6},children:[t.jsx(o.Box,{sx:{width:64,height:64,borderRadius:"50%",bgcolor:n=>$(n.palette.error.main,.3),display:"flex",alignItems:"center",justifyContent:"center",mb:2},children:t.jsx(D.ErrorOutline,{color:"error",sx:{fontSize:32}})}),t.jsx(o.Typography,{variant:"h6",color:"error.main",sx:{fontWeight:600,mb:1},children:"Upload Failed"}),t.jsx(o.Typography,{variant:"body2",color:"error.main",sx:{textAlign:"center",maxWidth:500,mb:3},children:e}),t.jsx(o.Button,{variant:"contained",color:"error",startIcon:t.jsx(D.Upload,{sx:{fontSize:16}}),onClick:r,sx:{fontWeight:500},children:"Try Again"})]})}function qs({title:e,description:r,showIcon:n=!0}){return t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"60vh",px:3,py:8},children:[n&&t.jsx(o.Box,{sx:{width:80,height:80,borderRadius:"50%",bgcolor:i=>$(i.palette.primary.main,.1),display:"flex",alignItems:"center",justifyContent:"center",mb:3},children:t.jsx(D.Description,{sx:{fontSize:36,color:"primary.main"}})}),t.jsx(o.Typography,{variant:"h5",sx:{fontWeight:500,mb:1,color:"text.primary",fontSize:"1.125rem"},children:e}),t.jsx(o.Typography,{variant:"body1",sx:{textAlign:"center",maxWidth:520,color:"text.secondary",fontSize:"0.875rem",lineHeight:1.5},children:r})]})}function ru({value:e,onChange:r,searchHistory:n,onAddToHistory:i,onToggleFavourite:a,onDeleteHistory:l,disabled:c}){const[d,u]=p.useState(!1),[h,g]=p.useState(!1),[f,b]=p.useState(-1),y=p.useRef(null),k=p.useRef(null);p.useEffect(()=>{function M(A){y.current&&!y.current.contains(A.target)&&(u(!1),g(!1))}return document.addEventListener("mousedown",M),()=>document.removeEventListener("mousedown",M)},[]);const v=p.useCallback(()=>{g(!0),b(-1),n.length>0&&u(!0)},[n.length]),m=p.useCallback(M=>{r(M),b(-1)},[r]),T=p.useCallback(M=>{var A;r(M),i(M),u(!1),(A=k.current)==null||A.blur()},[r,i]),x=p.useCallback(M=>{b(-1),T(M)},[T]),z=p.useCallback(M=>{var A;M.key==="Enter"?f>=0&&f<n.length?(M.preventDefault(),x(n[f].query)):e.trim()&&T(e.trim()):M.key==="Escape"?(u(!1),b(-1),(A=k.current)==null||A.blur()):M.key==="ArrowDown"?(M.preventDefault(),n.length>0&&(d||u(!0),b(q=>q<n.length-1?q+1:q))):M.key==="ArrowUp"&&(M.preventDefault(),b(q=>q>0?q-1:-1))},[f,n,e,d,x,T]),B=p.useCallback(()=>{var M;r(""),(M=k.current)==null||M.focus()},[r]),w=p.useMemo(()=>n.filter(M=>M.isFavourite),[n]),R=p.useMemo(()=>n.filter(M=>!M.isFavourite),[n]),j=d&&n.length>0;return t.jsxs(o.Box,{sx:{position:"relative",width:240},ref:y,children:[t.jsx(o.TextField,{inputRef:k,size:"small",fullWidth:!0,value:e,onChange:M=>m(M.target.value),onFocus:v,onKeyDown:z,placeholder:"Search data...",disabled:c,sx:{"& .MuiOutlinedInput-root":{borderRadius:"20px",fontSize:"0.875rem",bgcolor:"background.paper",height:"36px","& fieldset":{borderColor:M=>$(M.palette.text.primary,.3),transition:"all 0.15s ease"},"&:hover":{bgcolor:"action.hover"},"&:hover fieldset":{borderColor:M=>$(M.palette.text.primary,.5)},"&.Mui-focused":{bgcolor:"background.paper"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}},"& .MuiOutlinedInput-input":{py:"6px",px:"8px",color:"text.primary"}},InputProps:{startAdornment:t.jsx(o.InputAdornment,{position:"start",sx:{ml:.5},children:t.jsx(D.Search,{sx:{fontSize:18,color:"text.secondary"}})}),endAdornment:e?t.jsx(o.InputAdornment,{position:"end",children:t.jsx(o.IconButton,{size:"small",onClick:B,edge:"end",sx:{mr:-.5},children:t.jsx(D.Close,{sx:{fontSize:16}})})}):null}}),j&&t.jsxs(o.Paper,{sx:{position:"absolute",zIndex:50,mt:.5,width:"100%",maxHeight:384,overflowY:"auto"},elevation:3,children:[w.length>0&&t.jsxs(o.Box,{sx:{py:1},children:[t.jsx(o.Typography,{variant:"caption",sx:{px:1.5,py:.75,display:"block",fontWeight:600,textTransform:"uppercase",color:"text.secondary",letterSpacing:"0.05em"},children:"Favourite Searches"}),w.map((M,A)=>t.jsx(os,{entry:M,isSelected:f===A,onClick:()=>x(M.query),onToggleFavourite:()=>a(M.query),onDelete:()=>l(M.query)},`fav-${M.query}`))]}),R.length>0&&t.jsxs(o.Box,{sx:{py:1},children:[w.length>0&&t.jsx(o.Divider,{}),t.jsx(o.Typography,{variant:"caption",sx:{px:1.5,py:.75,display:"block",fontWeight:600,textTransform:"uppercase",color:"text.secondary",letterSpacing:"0.05em"},children:"Recent Searches"}),R.map((M,A)=>{const q=w.length+A;return t.jsx(os,{entry:M,isSelected:f===q,onClick:()=>x(M.query),onToggleFavourite:()=>a(M.query),onDelete:()=>l(M.query)},`recent-${M.query}`)})]})]})]})}const os=p.memo(function({entry:r,isSelected:n,onClick:i,onToggleFavourite:a,onDelete:l}){const c=p.useCallback(u=>{u.stopPropagation(),a()},[a]),d=p.useCallback(u=>{u.stopPropagation(),l()},[l]);return t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:1.5,py:1,cursor:"pointer",bgcolor:n?u=>$(u.palette.primary.main,.12):"transparent","&:hover":{bgcolor:n?u=>$(u.palette.primary.main,.12):"action.hover"}},children:[t.jsx(o.Box,{sx:{flex:1,minWidth:0},onClick:i,children:t.jsx(o.Typography,{variant:"body2",noWrap:!0,children:r.query})}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5,ml:1},children:[t.jsx(o.IconButton,{size:"small",onClick:c,title:r.isFavourite?"Remove from favourites":"Add to favourites",sx:{p:.5},children:r.isFavourite?t.jsx(D.Star,{sx:{fontSize:14,color:"warning.light"}}):t.jsx(D.StarBorder,{sx:{fontSize:14,color:"action.disabled"}})}),t.jsx(o.IconButton,{size:"small",onClick:d,title:"Delete from history",sx:{p:.5,"&:hover":{color:"error.main"}},children:t.jsx(D.Delete,{sx:{fontSize:14,opacity:.5}})})]})]})});function ou({views:e,activeViewId:r,isDirty:n,onSelectView:i,onCreateView:a,onToggleDefault:l,onToggleFavorite:c,onRestoreView:d,onPermanentDelete:u,onEditView:h,onCloneView:g,onCopyLink:f,onDeleteView:b,onPromoteToGlobal:y,isReadOnly:k,isAdmin:v=!1}){const m=st(),[T,x]=p.useState(!1),[z,B]=p.useState(!1),[w,R]=p.useState({top:0,left:0}),[j,M]=p.useState(null),[A,q]=p.useState(null),te=p.useRef(null),s=p.useRef(null),N=e.find(E=>E.id===r),L=N==null?void 0:N.isDefault,re=(E,Z)=>E.name.localeCompare(Z.name),le=e.filter(E=>E.scope==="global"&&!E.isDeleted).sort(re),J=e.filter(E=>E.scope!=="global"&&!E.isDeleted).sort(re),ee=e.filter(E=>E.isFavorite&&!E.isDeleted).sort(re),Ce=e.filter(E=>E.isDeleted);p.useEffect(()=>{if(T&&s.current){const E=s.current.getBoundingClientRect();R({top:E.bottom+window.scrollY+8,left:E.right+window.scrollX-320})}},[T]),p.useEffect(()=>{const E=Z=>{te.current&&!te.current.contains(Z.target)&&s.current&&!s.current.contains(Z.target)&&x(!1)};return T&&document.addEventListener("mousedown",E),()=>{document.removeEventListener("mousedown",E)}},[T]);const V=E=>{if(n&&E!==r){M(E),x(!1);return}i(E),x(!1)},K=()=>{j&&(i(j),M(null))},ne=()=>{M(null)},ce=(E,Z=!1)=>{const ue=E.scope==="global",de=!k&&(!ue||v),ze=v&&!ue;return t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:1,fontSize:"body2.fontSize",backgroundColor:r===E.id?$(m.palette.primary.main,.12):"transparent",transition:"background-color 0.2s","&:hover":{backgroundColor:r===E.id?$(m.palette.primary.main,.12):m.palette.action.hover}},children:[t.jsxs(o.Button,{onClick:()=>V(E.id),sx:{display:"flex",alignItems:"center",gap:1,flex:1,textAlign:"left",minWidth:0,justifyContent:"flex-start",color:"inherit",p:0,"&:hover":{backgroundColor:"transparent"}},children:[r===E.id&&t.jsx(D.Check,{sx:{fontSize:16,flexShrink:0}}),r!==E.id&&t.jsx(o.Box,{sx:{width:"16px",flexShrink:0}}),t.jsx(o.Typography,{sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:r===E.id?m.palette.primary.dark:m.palette.text.primary,fontWeight:r===E.id?500:400},children:E.name}),Z&&t.jsx(o.Typography,{component:"span",sx:{fontSize:"caption.fontSize",color:m.palette.text.secondary,backgroundColor:m.palette.action.selected,px:1,py:.25,borderRadius:1,flexShrink:0},children:"Default"})]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5,flexShrink:0},children:[de&&c&&t.jsx(o.IconButton,{onClick:H=>{H.stopPropagation(),c(E.id)},size:"small",sx:{p:.5,transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},title:E.isFavorite?"Remove from favorites":"Add to favorites",children:t.jsx(D.Star,{sx:{fontSize:16}})}),de&&l&&!E.isDefault&&t.jsx(o.IconButton,{onClick:H=>{H.stopPropagation(),l(E.id)},size:"small",sx:{p:.5,transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},title:"Set as default",children:t.jsx(D.RadioButtonUnchecked,{sx:{fontSize:16}})}),(de||ze)&&(h||g||f||b||ze&&y)&&t.jsx(o.IconButton,{onClick:H=>{H.stopPropagation(),q({el:H.currentTarget,view:E})},size:"small",sx:{p:.5,transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},title:"More actions",children:t.jsx(D.MoreVert,{sx:{fontSize:16}})})]})]},E.id)},U=E=>t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:2,py:1,fontSize:"body2.fontSize",backgroundColor:m.palette.action.hover},children:[t.jsx(o.Typography,{sx:{color:m.palette.text.secondary,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:1},children:E.name}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5,flexShrink:0},children:[d&&t.jsx(o.IconButton,{onClick:Z=>{Z.stopPropagation(),d(E.id)},size:"small",sx:{p:.5,transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},title:"Restore view",children:t.jsx(D.Undo,{sx:{fontSize:16,color:"success.main"}})}),u&&t.jsx(o.IconButton,{onClick:Z=>{Z.stopPropagation(),u(E.id)},size:"small",sx:{p:.5,transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},title:"Delete permanently",children:t.jsx(D.Delete,{sx:{fontSize:16,color:"error.main"}})})]})]},E.id),ie=n||!L,oe=n;return t.jsxs(o.Box,{sx:{position:"relative"},children:[t.jsxs(o.Button,{ref:s,onClick:()=>x(!T),variant:"outlined",size:"small",endIcon:t.jsx(D.KeyboardArrowDown,{sx:{fontSize:18}}),sx:{position:"relative",minWidth:140,maxWidth:220,justifyContent:"space-between",fontSize:"0.8125rem",textTransform:"none",color:ie?"warning.main":"text.primary",borderColor:ie?"warning.main":"divider",bgcolor:ie?$(m.palette.warning.main,.12):"transparent",borderRadius:1,py:.5,px:1.25,transition:"all 0.15s ease","&:hover":{borderColor:ie?"warning.dark":"primary.main",bgcolor:ie?$(m.palette.warning.main,.2):$(m.palette.text.primary,.06),color:ie?"warning.dark":"text.primary"}},title:`View: ${(N==null?void 0:N.name)||"Default View"}`,children:[t.jsx(o.Box,{component:"span",sx:{overflow:"hidden",textOverflow:"ellipsis"},children:(N==null?void 0:N.name)||"Default View"}),oe&&t.jsx(o.Box,{component:"span",sx:{position:"absolute",top:-2,right:-2,width:8,height:8,borderRadius:"50%",bgcolor:"warning.main",border:"2px solid",borderColor:"background.paper"}})]}),T&&fs.createPortal(t.jsxs(o.Box,{ref:te,sx:{position:"fixed",width:"320px",backgroundColor:m.palette.background.paper,border:`1px solid ${m.palette.divider}`,borderRadius:1,boxShadow:m.shadows[8],zIndex:50,maxHeight:"500px",overflowY:"auto",top:w.top,left:w.left},children:[le.length>0&&t.jsxs(o.Box,{sx:{py:.5},children:[t.jsx(o.Typography,{sx:{px:2,py:1,fontSize:"caption.fontSize",fontWeight:600,color:m.palette.text.secondary,textTransform:"uppercase",letterSpacing:"0.05em"},children:"Global Views"}),le.map(E=>ce(E,E.isDefault))]}),ee.length>0&&t.jsxs(t.Fragment,{children:[t.jsx(o.Box,{sx:{borderTop:`1px solid ${m.palette.divider}`}}),t.jsxs(o.Box,{sx:{py:.5},children:[t.jsxs(o.Box,{sx:{px:2,py:1,fontSize:"caption.fontSize",fontWeight:600,color:m.palette.text.secondary,textTransform:"uppercase",letterSpacing:"0.05em",display:"flex",alignItems:"center",gap:.5},children:[t.jsx(D.Star,{sx:{fontSize:12,color:"warning.light"}}),t.jsx(o.Typography,{component:"span",sx:{fontSize:"inherit",fontWeight:"inherit"},children:"Favorite Views"})]}),ee.map(E=>ce(E))]})]}),J.length>0&&t.jsxs(t.Fragment,{children:[t.jsx(o.Box,{sx:{borderTop:`1px solid ${m.palette.divider}`}}),t.jsxs(o.Box,{sx:{py:.5},children:[t.jsx(o.Typography,{sx:{px:2,py:1,fontSize:"caption.fontSize",fontWeight:600,color:m.palette.text.secondary,textTransform:"uppercase",letterSpacing:"0.05em"},children:"Personal Views"}),J.map(E=>ce(E))]})]}),Ce.length>0&&t.jsxs(t.Fragment,{children:[t.jsx(o.Box,{sx:{borderTop:`1px solid ${m.palette.divider}`}}),t.jsxs(o.Box,{sx:{py:.5},children:[t.jsxs(o.Button,{onClick:()=>B(!z),sx:{width:"100%",px:2,py:1,fontSize:"caption.fontSize",fontWeight:600,color:m.palette.text.secondary,textTransform:"uppercase",letterSpacing:"0.05em",display:"flex",alignItems:"center",justifyContent:"space-between",transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},children:[t.jsxs(o.Typography,{component:"span",sx:{fontSize:"inherit",fontWeight:"inherit"},children:["Recently Deleted (",Ce.length,")"]}),t.jsx(D.ChevronRight,{sx:{fontSize:16}})]}),z&&t.jsx(o.Box,{sx:{backgroundColor:m.palette.action.hover},children:Ce.map(E=>U(E))})]})]}),t.jsx(o.Box,{sx:{borderTop:`1px solid ${m.palette.divider}`}}),t.jsxs(o.Button,{onClick:()=>{a(),x(!1)},sx:{width:"100%",display:"flex",alignItems:"center",gap:1,px:2,py:1,fontSize:"body2.fontSize",color:m.palette.text.primary,justifyContent:"flex-start",transition:"background-color 0.2s","&:hover":{backgroundColor:m.palette.action.hover}},children:[t.jsx(D.Add,{sx:{fontSize:16}}),t.jsx(o.Typography,{component:"span",sx:{fontSize:"inherit"},children:"Create New Report View"})]}),t.jsxs(o.Popover,{open:!!A,anchorEl:(A==null?void 0:A.el)||null,onClose:()=>q(null),disablePortal:!0,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[h&&t.jsxs(o.MenuItem,{onClick:()=>{A&&h(A.view.id),q(null)},sx:{gap:1.5,fontSize:"body2.fontSize"},children:[t.jsx(D.Edit,{sx:{fontSize:18}}),"Edit"]}),f&&t.jsxs(o.MenuItem,{onClick:()=>{A&&f(A.view.id),q(null)},sx:{gap:1.5,fontSize:"body2.fontSize"},children:[t.jsx(D.Link,{sx:{fontSize:18}}),"Copy Link"]}),g&&t.jsxs(o.MenuItem,{onClick:()=>{A&&g(A.view.id),q(null)},sx:{gap:1.5,fontSize:"body2.fontSize"},children:[t.jsx(D.ContentCopy,{sx:{fontSize:18}}),"Clone"]}),y&&v&&(A==null?void 0:A.view.scope)!=="global"&&t.jsxs(o.MenuItem,{onClick:()=>{A&&y(A.view.id),q(null)},sx:{gap:1.5,fontSize:"body2.fontSize"},children:[t.jsx(D.Language,{sx:{fontSize:18}}),"Promote to Global"]}),b&&[t.jsx(o.Divider,{},"delete-divider"),t.jsxs(o.MenuItem,{onClick:()=>{A&&b(A.view.id),q(null)},sx:{gap:1.5,fontSize:"body2.fontSize",color:"error.main"},children:[t.jsx(D.Delete,{sx:{fontSize:18}}),"Delete"]},"delete-item")]]})]}),document.body),t.jsxs(o.Dialog,{open:j!==null,onClose:ne,maxWidth:"xs",fullWidth:!0,PaperProps:{sx:{borderRadius:Co(m)}},children:[t.jsxs(o.DialogTitle,{sx:{display:"flex",alignItems:"center",gap:1,pb:1},children:[t.jsx(D.Warning,{sx:{fontSize:20,color:"warning.main"}}),"Unsaved changes"]}),t.jsx(o.DialogContent,{children:t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:"You have unsaved changes to the current view. Switching views will discard them."})}),t.jsxs(o.DialogActions,{sx:{px:3,pb:2,gap:1},children:[t.jsx(o.Button,{onClick:ne,variant:"text",children:"Stay here"}),t.jsx(o.Button,{onClick:K,variant:"contained",color:"warning",children:"Discard & switch"})]})]})]})}function nu({columnName:e,columnType:r="string",currentSort:n,hasFilters:i,isInSortStack:a,isReadOnly:l=!1,hasModifications:c=!1,position:d,onSortAscending:u,onSortDescending:h,onRemoveSort:g,onFilter:f,onClearFilter:b,onGroupByColumn:y,onHideColumn:k,onManageColumns:v,onResetLayout:m,onClose:T}){const x=st(),z=x.palette,B=p.useRef(null);p.useEffect(()=>{if(!B.current)return;const q=B.current,te=q.getBoundingClientRect(),s=window.innerWidth,N=window.innerHeight;te.right>s-8&&(q.style.left=`${s-te.width-8}px`),te.bottom>N-8&&(q.style.top=`${N-te.height-8}px`)},[d]),p.useEffect(()=>{const q=s=>{B.current&&!B.current.contains(s.target)&&T()},te=s=>{s.key==="Escape"&&T()};return document.addEventListener("mousedown",q),document.addEventListener("keydown",te),()=>{document.removeEventListener("mousedown",q),document.removeEventListener("keydown",te)}},[T]);const w=p.useCallback(q=>()=>{q(),T()},[T]),R=(n==null?void 0:n.direction)==="asc",j=(n==null?void 0:n.direction)==="desc",M=r==="number"?"0→9":r==="boolean"?"F→T":"A→Z",A=r==="number"?"9→0":r==="boolean"?"T→F":"Z→A";return fs.createPortal(t.jsxs(o.Paper,{ref:B,elevation:0,sx:{position:"fixed",left:`${d.x}px`,top:`${d.y}px`,zIndex:x.zIndex.tooltip,minWidth:210,maxWidth:264,border:"1px solid",borderColor:"divider",borderRadius:Co(x),overflow:"hidden",boxShadow:`0 4px 20px ${$(z.common.black,.12)}, 0 1px 4px ${$(z.common.black,.06)}`},children:[!l&&t.jsxs(o.Box,{sx:{px:2,py:.75,display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:"1px solid",borderColor:"divider"},children:[t.jsx(o.Typography,{sx:{fontSize:"0.8125rem",fontWeight:500,color:"text.primary"},children:"Sorting"}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.25},children:[t.jsx(o.Tooltip,{title:`Sort Ascending (${M})`,placement:"top",arrow:!0,children:t.jsx(o.IconButton,{size:"small",onClick:w(()=>u(e)),sx:{p:.625,borderRadius:"6px",color:R?"primary.main":"text.secondary",bgcolor:R?$(z.primary.main,.1):"transparent","&:hover":{bgcolor:$(z.primary.main,.08),color:"primary.main"}},children:t.jsx(D.ArrowUpward,{sx:{fontSize:16}})})}),t.jsx(o.Tooltip,{title:`Sort Descending (${A})`,placement:"top",arrow:!0,children:t.jsx(o.IconButton,{size:"small",onClick:w(()=>h(e)),sx:{p:.625,borderRadius:"6px",color:j?"primary.main":"text.secondary",bgcolor:j?$(z.primary.main,.1):"transparent","&:hover":{bgcolor:$(z.primary.main,.08),color:"primary.main"}},children:t.jsx(D.ArrowDownward,{sx:{fontSize:16}})})}),t.jsx(o.Tooltip,{title:"Clear Sort",placement:"top",arrow:!0,children:t.jsx("span",{children:t.jsx(o.IconButton,{size:"small",disabled:!a,onClick:w(()=>g(e)),sx:{p:.625,borderRadius:"6px",color:"text.secondary","&:hover":{bgcolor:$(z.error.main,.08),color:"error.main"},"&.Mui-disabled":{opacity:.3}},children:t.jsx(D.Close,{sx:{fontSize:16}})})})})]})]}),t.jsxs(o.MenuList,{dense:!0,sx:{py:.5},children:[t.jsxs(o.MenuItem,{onClick:w(()=>f(e)),sx:{py:.75,px:1.5,borderRadius:"6px",mx:.5,minHeight:34},children:[t.jsx(o.ListItemIcon,{sx:{minWidth:28},children:t.jsx(D.FilterList,{sx:{fontSize:16,color:i?"primary.main":"text.secondary"}})}),t.jsx(o.ListItemText,{primary:"Filter by Column",primaryTypographyProps:{fontSize:"0.8125rem",fontWeight:i?600:400,color:i?"primary.main":"text.primary"}})]}),i&&!l&&t.jsxs(o.MenuItem,{onClick:w(()=>b(e)),sx:{py:.75,px:1.5,borderRadius:"6px",mx:.5,minHeight:34,"&:hover":{bgcolor:$(z.warning.main,.06),"& .MuiListItemText-primary":{color:"warning.main"},"& .MuiListItemIcon-root svg":{color:"warning.main"}}},children:[t.jsx(o.ListItemIcon,{sx:{minWidth:28},children:t.jsx(D.FilterListOff,{sx:{fontSize:16,color:"text.secondary"}})}),t.jsx(o.ListItemText,{primary:"Clear Filter",primaryTypographyProps:{fontSize:"0.8125rem"}})]})]}),!l&&y&&t.jsxs(t.Fragment,{children:[t.jsx(o.Divider,{sx:{my:.25}}),t.jsx(o.MenuList,{dense:!0,sx:{py:.5},children:t.jsxs(o.MenuItem,{onClick:w(()=>y(e)),sx:{py:.75,px:1.5,borderRadius:"6px",mx:.5,minHeight:34},children:[t.jsx(o.ListItemIcon,{sx:{minWidth:28},children:t.jsx(D.GroupWorkOutlined,{sx:{fontSize:16,color:"text.secondary"}})}),t.jsx(o.ListItemText,{primary:"Group By Column",primaryTypographyProps:{fontSize:"0.8125rem"}})]})})]}),t.jsx(o.Divider,{sx:{my:.25}}),t.jsxs(o.MenuList,{dense:!0,sx:{py:.5},children:[!l&&t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",mx:.5,borderRadius:"6px",overflow:"hidden","&:hover":{bgcolor:"action.hover"}},children:[t.jsxs(o.MenuItem,{onClick:w(()=>k(e)),sx:{flex:1,py:.75,px:1.5,minHeight:34,borderRadius:"6px 0 0 6px","&:hover":{bgcolor:"transparent"}},children:[t.jsx(o.ListItemIcon,{sx:{minWidth:28},children:t.jsx(D.VisibilityOff,{sx:{fontSize:16,color:"text.secondary"}})}),t.jsx(o.ListItemText,{primary:"Hide Column",primaryTypographyProps:{fontSize:"0.8125rem"}})]}),t.jsx(o.Tooltip,{title:"Manage Columns",placement:"top",arrow:!0,children:t.jsx(o.IconButton,{size:"small",onClick:w(v),sx:{mr:.75,p:.625,borderRadius:"6px",color:"text.secondary","&:hover":{bgcolor:$(z.primary.main,.08),color:"primary.main"}},children:t.jsx(D.Settings,{sx:{fontSize:16}})})})]}),l&&t.jsxs(o.MenuItem,{onClick:w(v),sx:{py:.75,px:1.5,borderRadius:"6px",mx:.5,minHeight:34},children:[t.jsx(o.ListItemIcon,{sx:{minWidth:28},children:t.jsx(D.Settings,{sx:{fontSize:16,color:"text.secondary"}})}),t.jsx(o.ListItemText,{primary:"Manage Columns",primaryTypographyProps:{fontSize:"0.8125rem"}})]}),!l&&c&&m&&t.jsxs(o.MenuItem,{onClick:w(m),sx:{py:.75,px:1.5,borderRadius:"6px",mx:.5,minHeight:34,"&:hover":{bgcolor:$(z.error.main,.05),"& .MuiListItemText-primary":{color:"error.main"},"& .MuiListItemIcon-root svg":{color:"error.main"}}},children:[t.jsx(o.ListItemIcon,{sx:{minWidth:28},children:t.jsx(D.RestartAlt,{sx:{fontSize:16,color:"text.secondary"}})}),t.jsx(o.ListItemText,{primary:"Reset to Default Layout",primaryTypographyProps:{fontSize:"0.8125rem"}})]})]})]}),document.body)}const iu=176,ns="COLUMN_HEADER",su=p.memo(function({column:r,index:n,sortRule:i,hasFilters:a,isInSortStack:l,isReadOnly:c=!1,hasModifications:d=!1,width:u,onColumnClick:h,onMoveColumn:g,onColumnDragEnd:f,onResizeStart:b,onSortAscending:y,onSortDescending:k,onRemoveSort:v,onOpenFilterForColumn:m,onClearFiltersForColumn:T,onGroupByColumn:x,onHideColumn:z,onManageColumns:B,onResetLayout:w}){const j=st().urmTable,M=p.useRef(null),[A,q]=p.useState(!1),[te,s]=p.useState({x:0,y:0}),[{handlerId:N,isOver:L},re]=Jt.useDrop({accept:ns,collect(U){return{handlerId:U.getHandlerId(),isOver:U.isOver()}},hover(U,ie){var H;if(!M.current)return;const oe=U.index,E=n;if(oe===E)return;const Z=(H=M.current)==null?void 0:H.getBoundingClientRect(),ue=(Z.right-Z.left)/2,de=ie.getClientOffset(),ze=((de==null?void 0:de.x)??0)-Z.left;oe<E&&ze<ue||oe>E&&ze>ue||(g(oe,E),U.index=E)}}),[{isDragging:le},J]=Jt.useDrag({type:ns,item:()=>({index:n,columnName:r.name}),collect:U=>({isDragging:U.isDragging()}),end:()=>{f==null||f()}});J(re(M));const ee=p.useCallback(U=>{U.preventDefault(),U.stopPropagation(),s({x:U.clientX,y:U.clientY}),q(!0)},[]),Ce=p.useCallback(()=>q(!1),[]),V=p.useCallback(()=>{h(r.name)},[h,r.name]),K=p.useCallback(U=>{U.stopPropagation(),m(r.name)},[m,r.name]),ne=p.useCallback(()=>i?t.jsxs(o.Box,{sx:{display:"inline-flex",alignItems:"center",ml:.5,gap:.25},children:[i.direction==="asc"?t.jsx(D.ArrowUpward,{sx:{fontSize:13,color:"primary.main"}}):t.jsx(D.ArrowDownward,{sx:{fontSize:13,color:"primary.main"}}),t.jsx(o.Box,{sx:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:16,height:16,bgcolor:"primary.main",color:"primary.contrastText",fontSize:"0.6rem",fontWeight:700,borderRadius:"50%",lineHeight:1},children:i.priority})]}):null,[i]),ce=p.useCallback(()=>a?t.jsx(D.FilterList,{onClick:K,titleAccess:"Active filter on this column — click to edit",sx:{ml:.5,fontSize:13,color:"primary.main",cursor:"pointer",flexShrink:0,"&:hover":{transform:"scale(1.15)"},transition:"transform 0.12s ease"}}):null,[a,K]);return t.jsxs(t.Fragment,{children:[t.jsxs(o.TableCell,{ref:M,"data-handler-id":N,"data-column-index":n,onClick:V,onContextMenu:ee,sx:{position:"sticky",top:0,zIndex:5,textAlign:(j==null?void 0:j.cellAlignH)??"left",verticalAlign:(j==null?void 0:j.cellAlignV)??"middle",fontSize:"0.8125rem",fontWeight:700,textTransform:"none",letterSpacing:0,whiteSpace:"nowrap",overflow:"visible",cursor:"pointer",userSelect:"none",color:(j==null?void 0:j.headerColor)??"text.secondary",opacity:le?.25:1,transition:"background-color 0.12s ease, opacity 0.15s ease",bgcolor:L?U=>$(U.palette.primary.main,.08):(j==null?void 0:j.headerBg)??"action.hover",boxShadow:U=>`0 1px 0 ${$(U.palette.common.black,.08)}`,backgroundImage:"none",borderBottom:(j==null?void 0:j.rowDivider)??"1px solid",borderRight:j==null?void 0:j.colDivider,borderColor:"divider",py:0,px:(j==null?void 0:j.cellPaddingX)??2,"&:hover":{bgcolor:U=>$(U.palette.primary.main,.1),color:"text.primary"},width:u?`${u}px`:`${iu}px`},children:[t.jsxs(o.Box,{sx:{display:"inline-flex",alignItems:"center",overflow:"hidden",maxWidth:"100%",pr:"12px"},children:[dt(r.name),ne(),ce()]}),t.jsx(o.Box,{draggable:!1,onDragStart:U=>U.preventDefault(),sx:{position:"absolute",right:0,top:0,height:"100%",width:8,cursor:"col-resize",zIndex:20,display:"flex",alignItems:"center",justifyContent:"center","&:hover > div":{opacity:1}},onMouseDown:U=>{U.preventDefault(),U.stopPropagation(),b(U,r.name)},onClick:U=>U.stopPropagation(),children:t.jsx(o.Box,{draggable:!1,sx:{width:2,height:"50%",borderRadius:1,opacity:0,bgcolor:"primary.main",transition:"opacity 0.15s ease",pointerEvents:"none"}})}),L&&t.jsx(o.Box,{sx:{position:"absolute",left:0,top:0,bottom:0,width:4,bgcolor:"primary.main"}})]}),A&&t.jsx(nu,{columnName:r.name,columnType:r.type,currentSort:i,hasFilters:a,isInSortStack:l,isReadOnly:c,hasModifications:d,position:te,onSortAscending:y,onSortDescending:k,onRemoveSort:v,onFilter:m,onClearFilter:T,onGroupByColumn:x,onHideColumn:z,onManageColumns:B,onResetLayout:w,onClose:Ce})]})}),au={active:"success",completed:"success",approved:"success",success:"success",done:"success",contract:"info","in progress":"info","in review":"info",review:"info",pending:"info","on leave":"error","on hold":"warning",probation:"warning",cancelled:"error",rejected:"error",blocked:"error",inactive:"neutral","not started":"neutral",paused:"neutral"};function Ko(e,r){const n=au[r.toLowerCase().trim()];if(!n||n==="neutral")return{bg:e.palette.action.selected,color:e.palette.text.secondary};const i=e.palette[n];return{bg:$(i.main,e.palette.mode==="dark"?.24:.12),color:e.palette.mode==="dark"?i.light:i.dark}}function lu(e,r){switch(r.toLowerCase().trim()){case"low":return e.palette.text.secondary;case"medium":return e.palette.warning.main;case"high":return e.palette.mode==="dark"?e.palette.warning.light:e.palette.warning.dark;case"critical":case"urgent":return e.palette.error.main;default:return}}const cu={filters:{hue:"primary",shade:"main"},sorting:{hue:"secondary",shade:"main"},grouping:{hue:"success",shade:"main"},columns:{hue:"warning",shade:"main"},views:{hue:"error",shade:"main"},theme:{hue:"info",shade:"main"},export:{hue:"primary",shade:"dark"},presets:{hue:"secondary",shade:"dark"},system:{hue:"error",shade:"dark"}};function du(e,r){const n=cu[r];return n?e.palette[n.hue][n.shade]:e.palette.text.secondary}function vt(e){return $(e.palette.primary.main,e.palette.mode==="dark"?.24:.12)}function uu(e){const r=e.toLowerCase().trim();return t.jsx(o.Box,{component:"span",sx:{display:"inline-flex",alignItems:"center",px:1,py:.25,borderRadius:"10px",fontSize:"0.75rem",fontWeight:n=>{var i;return(i=n.tokens)!=null&&i.statusBold?700:500},bgcolor:n=>Ko(n,r).bg,color:n=>Ko(n,r).color,whiteSpace:"nowrap",lineHeight:1.5},children:e})}function pu(e,r){if(r==null||r==="")return t.jsx(o.Box,{component:"span",sx:{color:"text.disabled",fontSize:"0.875rem"},children:"—"});const n=String(r),i=e.name.toLowerCase();if(/\b(status|state|stage)\b/.test(i))return uu(n);if(/\b(priority|severity|urgency)\b/.test(i)){const a=n.toLowerCase().trim();return t.jsx(o.Box,{component:"span",sx:l=>{const c=lu(l,a);return c?{color:c,fontWeight:600,fontSize:"0.875rem"}:{fontSize:"0.875rem"}},children:n})}return typeof r=="boolean"?t.jsx(o.Box,{component:"span",sx:{fontSize:"0.875rem"},children:r?"Yes":"No"}):typeof r=="object"?t.jsx(o.Box,{component:"span",sx:{fontSize:"0.875rem"},children:JSON.stringify(r)}):t.jsx(o.Box,{component:"span",sx:{fontSize:"0.875rem"},children:n})}function xu(e){const r=e.find(a=>{const l=a.name.toLowerCase();return/\b(name|title|label|subject|task_?name|taskname)\b/.test(l)})||e[0]||null,n=e.find(a=>{const l=a.name.toLowerCase().replace(/[\s_-]/g,"");return/(^id$|id$|_id$|taskid|code$|ref$)/.test(l)&&a!==r})||null,i=e.filter(a=>a!==r&&a!==n).slice(0,4);return{primaryCol:r,idCol:n,bodyColumns:i}}function mu({row:e,rowIndex:r,visibleColumns:n,isSelected:i,onCardClick:a,onCardDoubleClick:l,onCardContextMenu:c,onOpenRowMenu:d,onToggleSelection:u,hideCheckbox:h}){const[g,f]=p.useState(!1),{primaryCol:b,idCol:y,bodyColumns:k}=p.useMemo(()=>xu(n),[n]),v=b?e[b.name]:null,m=y?e[y.name]:null,T=g||i;return t.jsxs(o.Box,{onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1),onClick:x=>a(r,x),onDoubleClick:x=>l(e,r,x),onContextMenu:x=>{x.preventDefault(),x.stopPropagation(),c(e,r,x)},sx:{position:"relative",display:"flex",flexDirection:"column",bgcolor:"background.paper",border:x=>{var B,w,R,j;const z=(j=(R=(w=(B=x.components)==null?void 0:B.MuiCard)==null?void 0:w.styleOverrides)==null?void 0:R.root)==null?void 0:j.border;return i?"2px solid":z&&z!=="none"?z:"1px solid"},borderColor:i?x=>It(x).main:x=>{var B,w,R,j;const z=(j=(R=(w=(B=x.components)==null?void 0:B.MuiCard)==null?void 0:w.styleOverrides)==null?void 0:R.root)==null?void 0:j.border;return z&&z!=="none"?"inherit":$(x.palette.divider,.8)},borderWidth:i?2:void 0,borderRadius:x=>{var B,w,R,j;const z=(j=(R=(w=(B=x.components)==null?void 0:B.MuiCard)==null?void 0:w.styleOverrides)==null?void 0:R.root)==null?void 0:j.borderRadius;return z!==void 0?typeof z=="number"?`${z}px`:z:`${x.shape.borderRadius}px`},cursor:"pointer",transition:"box-shadow 0.2s ease, border-color 0.2s ease, transform 0.15s ease",overflow:"hidden",minHeight:180,boxShadow:i?x=>`0 0 0 3px ${$(It(x).main,.15)}, 0 2px 8px ${$(x.palette.common.black,.08)}`:g?x=>{var B,w,R,j;const z=(j=(R=(w=(B=x.components)==null?void 0:B.MuiCard)==null?void 0:w.styleOverrides)==null?void 0:R.root)==null?void 0:j.boxShadow;return z&&z!=="none"?z:fe(x,"cardHover")}:x=>{var B,w,R,j;const z=(j=(R=(w=(B=x.components)==null?void 0:B.MuiCard)==null?void 0:w.styleOverrides)==null?void 0:R.root)==null?void 0:j.boxShadow;return z&&z!=="none"?z:fe(x,"cardRest")},transform:g&&!i?"translateY(-2px)":"none","&:active":{transform:"translateY(0)"},...i&&{bgcolor:x=>$(It(x).main,.03)}},children:[t.jsxs(o.Box,{sx:x=>{var j,M,A,q;const z=((A=(M=(j=x.components)==null?void 0:j.MuiCardHeader)==null?void 0:M.styleOverrides)==null?void 0:A.root)||{},B=(z.backgroundColor&&z.backgroundColor!=="transparent"?z.backgroundColor:void 0)??((q=x.tokens)==null?void 0:q.cardHdrHex)??"transparent",w=z.borderBottom&&z.borderBottom!=="none"?z.borderBottom:void 0,R=z.boxShadow&&z.boxShadow!=="none"?z.boxShadow:void 0;return{px:2,pt:1.75,pb:1.5,bgcolor:B,borderBottom:w,boxShadow:R,display:"flex",alignItems:"center",gap:.5}},children:[!h&&t.jsx(o.Checkbox,{size:"small",checked:i,onClick:x=>x.stopPropagation(),onChange:()=>u(e),sx:{p:.25,opacity:T?1:0,transition:"opacity 0.15s ease"}}),t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600,fontSize:"0.9375rem",color:"text.primary",lineHeight:1.35,wordBreak:"break-word",letterSpacing:"-0.01em"},children:v!=null&&v!==""?String(v):t.jsx(o.Box,{component:"span",sx:{color:"text.disabled",fontStyle:"italic",fontWeight:400},children:"Untitled"})})]}),t.jsx(o.Box,{sx:x=>{var w,R,j;const z=((j=(R=(w=x.components)==null?void 0:w.MuiCardHeader)==null?void 0:R.styleOverrides)==null?void 0:j.root)||{};return z.borderBottom&&z.borderBottom!=="none"?{display:"none"}:{mx:2,height:"1px",bgcolor:"divider",flexShrink:0}}}),t.jsxs(o.Box,{sx:{px:2,py:1.5,flex:1,display:"grid",gridTemplateColumns:"repeat(2, 1fr)",columnGap:1.5,rowGap:1,alignContent:"start"},children:[k.map(x=>t.jsxs(o.Box,{sx:{minWidth:0},children:[t.jsx(o.Typography,{sx:{color:"text.secondary",fontWeight:500,fontSize:"0.6875rem",textTransform:"uppercase",letterSpacing:"0.06em",lineHeight:1.2,mb:.25},children:dt(x.name)}),t.jsx(o.Box,{sx:{lineHeight:1.3,overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},title:String(e[x.name]??""),children:pu(x,e[x.name])})]},x.name)),k.length===0&&t.jsx(o.Typography,{variant:"caption",color:"text.disabled",sx:{fontStyle:"italic",gridColumn:"1 / -1"},children:"No additional fields visible"})]}),t.jsxs(o.Box,{sx:{px:2,py:1,display:"flex",alignItems:"center",justifyContent:"space-between",borderTop:"1px solid",borderColor:"divider",bgcolor:x=>$(x.palette.action.hover,.1),minHeight:40},children:[t.jsx(o.Typography,{sx:{color:"primary.main",fontFamily:'"Roboto Mono", "Courier New", monospace',fontSize:"0.75rem",fontWeight:400,letterSpacing:"0.04em",opacity:m?.85:0,userSelect:"none"},children:m?String(m):" "}),t.jsx(o.Box,{sx:{display:"flex",alignItems:"center",gap:.25,opacity:T?1:0,transition:"opacity 0.15s ease"},onClick:x=>x.stopPropagation(),children:t.jsx(o.Tooltip,{title:"More actions",placement:"top",children:t.jsx(o.IconButton,{size:"small",onClick:x=>{x.stopPropagation(),d(e,r,x.currentTarget)},sx:{width:28,height:28,color:"action.active","&:hover":{bgcolor:x=>$(x.palette.text.primary,.08)}},children:t.jsx(D.MoreVert,{sx:{fontSize:17}})})})})]})]})}function fu({row:e,grouping:r,onToggleCollapse:n}){var i;return t.jsxs(o.Box,{onClick:()=>n(e.groupKey),sx:{gridColumn:"1 / -1",display:"flex",alignItems:"center",gap:1,px:2,py:1,mt:1,mb:.5,bgcolor:"background.paper",border:"1px solid",borderColor:"divider",borderRadius:"8px",cursor:"pointer",boxShadow:a=>fe(a,"flatHover"),"&:hover":{bgcolor:a=>$(a.palette.primary.main,.04),borderColor:"primary.light"},transition:"all 0.15s ease"},children:[e.isCollapsed?t.jsx(D.ChevronRight,{sx:{fontSize:16,color:"text.secondary"}}):t.jsx(D.KeyboardArrowDown,{sx:{fontSize:16,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600,color:"text.primary"},children:Cs(e.groupLevel,((i=r==null?void 0:r.levels[e.groupLevel])==null?void 0:i.column)||"",e.groupValue)}),t.jsxs(o.Box,{sx:{px:1,py:.125,fontSize:"0.6875rem",fontWeight:600,bgcolor:a=>$(a.palette.primary.main,.1),color:"primary.main",borderRadius:"10px"},children:[e.rowCount," ",e.rowCount===1?"row":"rows"]}),Object.keys(e.aggregates).length>0&&t.jsx(o.Typography,{variant:"caption",sx:{ml:.5,color:"text.secondary"},children:Object.entries(e.aggregates).map(([a,l])=>Ss(l)).filter(Boolean).join(" • ")})]})}function hu({data:e,visibleColumns:r,grouping:n,selectedRowIds:i,isGrouped:a,onToggleGroupCollapse:l,onCardClick:c,onCardDoubleClick:d,onCardContextMenu:u,onOpenRowMenu:h,onToggleSelection:g,hideSelectionCheckboxes:f}){const b=p.useMemo(()=>{const y=new Set;return i.forEach(k=>{const v=k==null?void 0:k.__urm_row_id__;v!==void 0&&y.add(v)}),y},[i]);return e.length===0?t.jsx(o.Box,{sx:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",py:10},children:t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:"No data matches the current filters"})}):t.jsx(o.Box,{sx:{fontFamily:y=>y.typography.fontFamily},children:t.jsx(o.Box,{sx:{p:y=>rs(y).containerPad,display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))",gap:y=>rs(y).cardGap,alignContent:"start"},children:e.map((y,k)=>a&&y.isGroupHeader?t.jsx(fu,{row:y,grouping:n,onToggleCollapse:l||(()=>{})},`group-${y.groupKey}`):t.jsx(mu,{row:y,rowIndex:k,visibleColumns:r,isSelected:b.has(y==null?void 0:y.__urm_row_id__),onCardClick:c,onCardDoubleClick:d,onCardContextMenu:u,onOpenRowMenu:h,onToggleSelection:g,hideCheckbox:f},`card-${k}`))})})}const is=[10,15,25,50,100];function gu(e,r){const n=e.trim();if(n==="")return"Page number is required";if(!/^-?\d+$/.test(n))return"Must be a number";const i=parseInt(n,10);return i<1?"Page number must be at least 1":i>r?"Entered page number is out of range":null}function yu({currentPage:e,pageSize:r,totalRows:n,totalFields:i,onPageChange:a,onPageSizeChange:l}){const d=st().palette,u=Math.ceil(n/r),[h,g]=p.useState(String(e)),[f,b]=p.useState(null),[y,k]=p.useState(!1),v=p.useRef(null);p.useEffect(()=>{y||(g(String(e)),b(null))},[e,y]);const m=p.useCallback(()=>{const N=gu(h,u);if(N){b(N);return}const L=parseInt(h.trim(),10);b(null),k(!1),L!==e&&a(L)},[h,u,e,a]),T=p.useCallback(N=>{var L;N.key==="Enter"?(N.preventDefault(),m()):N.key==="Escape"&&(g(String(e)),b(null),k(!1),(L=v.current)==null||L.blur())},[m,e]),x=p.useCallback(()=>{g(String(e)),b(null),k(!1)},[e]),z=p.useCallback(()=>{k(!0),b(null),setTimeout(()=>{var N;return(N=v.current)==null?void 0:N.select()},0)},[]);if(n<=Math.min(...is))return null;const B=()=>{g(String(e)),b(null),k(!1)},w=()=>{B(),a(1)},R=()=>{B(),e>1&&a(e-1)},j=()=>{B(),e<u&&a(e+1)},M=()=>{B(),a(u)},A=(e-1)*r+1,q=Math.min(e*r,n),te=`${Math.max(2,String(u).length+.5)}ch`,s={p:.75,color:"text.secondary","&:hover":{bgcolor:"action.hover"},"&.Mui-disabled":{color:"action.disabled"}};return t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:3,px:2,py:1,borderTop:"1px solid",borderColor:"divider",bgcolor:"background.paper",minHeight:48},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:2},children:[t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",fontWeight:400},children:["Total data:"," ",t.jsx(o.Box,{component:"span",sx:{fontWeight:600,color:"text.primary"},children:n})]}),i!==void 0&&t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",fontWeight:400},children:["Total fields:"," ",t.jsx(o.Box,{component:"span",sx:{fontWeight:600,color:"text.primary"},children:i})]})]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:3},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",fontWeight:400},children:"Rows per page:"}),t.jsx(o.Select,{value:r,onChange:N=>l(Number(N.target.value)),size:"small",MenuProps:{PaperProps:{sx:{maxHeight:300}},anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"bottom",horizontal:"left"}},sx:{minWidth:70,fontSize:"0.8125rem",color:"text.primary","& .MuiSelect-select":{py:.5,px:1.5},"& .MuiOutlinedInput-notchedOutline":{borderColor:"divider"}},children:is.map(N=>t.jsx(o.MenuItem,{value:N,sx:{fontSize:"0.8125rem"},children:N},N))})]}),t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",fontWeight:400,userSelect:"none"},children:[A,"–",q," of ",n]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75,position:"relative"},children:[t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",userSelect:"none"},children:"Page"}),t.jsxs(o.Box,{sx:{position:"relative"},children:[f&&t.jsx(o.Box,{sx:{position:"absolute",bottom:"calc(100% + 6px)",left:"50%",transform:"translateX(-50%)",bgcolor:"background.paper",border:"1px solid",borderColor:$(d.error.main,.4),borderRadius:"6px",px:1,py:.5,boxShadow:`0 2px 8px ${$(d.common.black,.12)}`,zIndex:20,whiteSpace:"nowrap","&::after":{content:'""',position:"absolute",top:"100%",left:"50%",transform:"translateX(-50%)",border:"5px solid transparent",borderTopColor:$(d.error.main,.4)}},children:t.jsx(o.Typography,{sx:{fontSize:"0.6875rem",fontWeight:500,color:"error.main",lineHeight:1.3},children:f})}),t.jsx(o.InputBase,{inputRef:v,value:h,onChange:N=>{g(N.target.value),f&&b(null)},onKeyDown:T,onFocus:z,onBlur:x,inputProps:{"aria-label":`Page number, 1 to ${u}`,style:{textAlign:"center",padding:"2px 0",width:te,fontSize:"0.8125rem",fontWeight:600}},sx:{fontSize:"0.8125rem",fontWeight:600,color:f?"error.main":"text.primary",border:"1px solid",borderColor:f?"error.main":y?"primary.main":"divider",borderRadius:"4px",bgcolor:f?$(d.error.main,.04):y?$(d.primary.main,.04):"background.paper",px:.75,transition:"border-color 0.15s ease, background-color 0.15s ease","&:hover":{borderColor:f?"error.main":"text.secondary"},"&:focus-within":{boxShadow:f?`0 0 0 2px ${$(d.error.main,.2)}`:`0 0 0 2px ${$(d.primary.main,.2)}`}}})]}),t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",userSelect:"none"},children:["of ",u]})]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:[t.jsx(o.IconButton,{onClick:w,disabled:e===1,size:"small",title:"First page",sx:s,children:t.jsx(D.FirstPage,{sx:{fontSize:20}})}),t.jsx(o.IconButton,{onClick:R,disabled:e===1,size:"small",title:"Previous page",sx:s,children:t.jsx(D.ChevronLeft,{sx:{fontSize:20}})}),t.jsx(o.IconButton,{onClick:j,disabled:e===u,size:"small",title:"Next page",sx:s,children:t.jsx(D.ChevronRight,{sx:{fontSize:20}})}),t.jsx(o.IconButton,{onClick:M,disabled:e===u,size:"small",title:"Last page",sx:s,children:t.jsx(D.LastPage,{sx:{fontSize:20}})})]})]})]})}function bu(){return t.jsx(o.Chip,{icon:t.jsx(D.Visibility,{sx:{fontSize:14}}),label:"View Only",size:"small",variant:"outlined",sx:{bgcolor:"action.hover",borderColor:"divider",fontSize:"caption.fontSize",fontWeight:500}})}const Js="urm_hint_seen_";function vu(e){try{return localStorage.getItem(Js+e)==="true"}catch{return!1}}function Su(e){try{localStorage.setItem(Js+e,"true")}catch{}}const Ks={"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:"8px"},"& .MuiInputLabel-root":{fontSize:"0.875rem"},"& .MuiFormHelperText-root":{fontSize:"0.75rem",mx:.5},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}}};function Jn(e,r){if(e==null||e==="")return"";if(r==="boolean")return e?"True":"False";if(r==="object"||r==="array")try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)}function Xs({row:e,schema:r}){const i=st().palette,a=r.filter(d=>d.name in e),l=a.filter(d=>d.type!=="object"&&d.type!=="array"),c=a.filter(d=>d.type==="object"||d.type==="array");return t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2},children:[l.map(d=>t.jsx(o.TextField,{label:dt(d.name),value:Jn(e[d.name],d.type)||"No value",size:"small",fullWidth:!0,InputProps:{readOnly:!0},sx:Ks},d.name)),c.map(d=>{const u=Jn(e[d.name],d.type);return t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"caption",sx:{fontWeight:500,color:"text.secondary",display:"block",mb:.75},children:dt(d.name)}),t.jsx(o.Box,{component:"pre",sx:{m:0,px:1.5,py:1.25,borderRadius:"8px",border:"1px solid",borderColor:"divider",bgcolor:$(i.text.primary,.02),fontSize:"0.75rem",fontFamily:'"Roboto Mono", "Fira Code", monospace',color:u?"text.primary":"text.disabled",fontStyle:u?"normal":"italic",overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word",lineHeight:1.6,maxHeight:160,overflowY:"auto"},children:u||"No value"})]},d.name)}),a.length===0&&t.jsx(o.Typography,{variant:"body2",sx:{color:"text.disabled",textAlign:"center",py:3},children:"No fields to display"})]})}function Cu({open:e,onClose:r,row:n,schema:i,reportName:a}){const l=st(),c=l.palette;if(!n)return null;const d=i.filter(h=>h.name in n).length,u=ae(l);return t.jsxs(o.Dialog,{open:e,onClose:r,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{borderRadius:Ze(l),maxHeight:"min(720px, calc(100vh - 80px))",display:"flex",flexDirection:"column",overflow:"hidden",...u.paper}},children:[t.jsxs(o.Box,{sx:{px:3,pt:2.5,pb:2,display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:2,flexShrink:0,...u.header},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5,minWidth:0},children:[t.jsx(o.Box,{sx:{width:36,height:36,borderRadius:"10px",bgcolor:$(c.primary.main,.1),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:t.jsx(D.VisibilityOutlined,{sx:{fontSize:18,color:"primary.main"}})}),t.jsxs(o.Box,{sx:{minWidth:0},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1rem",fontWeight:600,color:"text.primary",lineHeight:1.3},children:"View Record"}),a&&t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.75rem",color:"text.secondary",display:"block",mt:.25,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[a," · ",d," ",d===1?"field":"fields"]})]})]}),t.jsx(o.IconButton,{size:"small",onClick:r,sx:{mt:.25,color:"text.secondary",borderRadius:"8px","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(D.Close,{sx:{fontSize:18}})})]}),t.jsx(o.Divider,{}),t.jsx(o.DialogContent,{sx:{overflowY:"auto",flex:1,bgcolor:$(c.text.primary,.015)},children:t.jsx(Xs,{row:n,schema:i})}),t.jsx(o.Divider,{}),t.jsx(o.DialogActions,{sx:{px:3,py:1.75,bgcolor:"background.paper",justifyContent:"flex-end"},children:t.jsx(o.Button,{onClick:r,variant:"contained",sx:{fontSize:"0.8125rem",px:3,py:.75,borderRadius:h=>`${h.shape.borderRadius}px`,minWidth:80},children:"Close"})})]})}function ju({open:e,onClose:r,onConfirm:n,row:i,schema:a}){const l=st(),c=ae(l);return t.jsxs(o.Dialog,{open:e,onClose:r,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{borderRadius:Ze(l),maxHeight:"min(720px, calc(100vh - 80px))",my:"auto",display:"flex",flexDirection:"column",...c.paper}},children:[t.jsxs(o.Box,{sx:{px:3,pt:2.5,pb:1.5,display:"flex",alignItems:"flex-start",justifyContent:"space-between",...c.header},children:[t.jsxs(o.Stack,{direction:"row",spacing:1.5,alignItems:"flex-start",children:[t.jsx(o.Box,{sx:{width:40,height:40,borderRadius:"50%",bgcolor:d=>$(d.palette.error.main,.1),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:t.jsx(D.WarningAmberRounded,{sx:{fontSize:22,color:"error.main"}})}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",letterSpacing:"0",lineHeight:1.5,mb:.5},children:"Delete record?"}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.875rem",color:"text.secondary"},children:"This record will be permanently removed."})]})]}),t.jsx(o.IconButton,{size:"small",onClick:r,sx:{p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsxs(o.DialogContent,{sx:{px:3,pb:2,overflowY:"auto",flex:1,display:"flex",flexDirection:"column",gap:2},children:[i&&a&&t.jsx(Xs,{row:i,schema:a}),t.jsx(o.Box,{sx:{p:2,borderRadius:"8px",bgcolor:d=>$(d.palette.error.main,.1),border:d=>`1px solid ${$(d.palette.error.main,.5)}`},children:t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"error.main",fontWeight:500},children:"This action cannot be undone. The record will be deleted from this report immediately."})})]}),t.jsxs(o.DialogActions,{sx:{px:3,py:1.75,borderTop:"1px solid divider",bgcolor:"action.hover",gap:1.25,justifyContent:"flex-end"},children:[t.jsx(o.Button,{onClick:r,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:.875,minHeight:36,borderRadius:d=>`${d.shape.borderRadius}px`,transition:"all 0.2s ease","&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:()=>{n(),r()},variant:"contained",startIcon:t.jsx(D.DeleteForever,{sx:{fontSize:18}}),sx:{fontSize:"0.875rem",bgcolor:"error.main",color:"error.contrastText",px:3,py:.875,minHeight:36,borderRadius:d=>`${d.shape.borderRadius}px`,boxShadow:d=>fe(d,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"error.dark",boxShadow:d=>fe(d,"hoverButton")},"&:active":{boxShadow:d=>fe(d,"pressedButton"),transform:"translateY(1px)"}},children:"Delete record"})]})]})}function wu({open:e,onClose:r,onSave:n,row:i,schema:a,reportName:l}){var T;const c=st(),d=c.palette,[u,h]=p.useState({});if(p.useEffect(()=>{e&&i&&h({...i})},[e,i]),!i)return null;const g=a.filter(x=>x.name in i),f=g.filter(x=>x.type!=="object"&&x.type!=="array"),b=g.filter(x=>x.type==="object"||x.type==="array"),y=(x,z)=>{h(B=>({...B,[x]:z}))},k=()=>{const x={...u};g.forEach(z=>{const B=u[z.name];if(z.type==="number"){const w=Number(B);x[z.name]=isNaN(w)?i[z.name]:w}else z.type==="boolean"&&(x[z.name]=!!B)}),n(x),r()},v=g.length,m=ae(c);return t.jsxs(o.Dialog,{open:e,onClose:r,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{borderRadius:Ze(c),maxHeight:"min(760px, calc(100vh - 80px))",display:"flex",flexDirection:"column",overflow:"hidden",...m.paper}},children:[t.jsxs(o.Box,{sx:{px:3,pt:2.5,pb:2,display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:2,flexShrink:0,...m.header},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5,minWidth:0},children:[t.jsx(o.Box,{sx:{width:36,height:36,borderRadius:"10px",bgcolor:$(((T=d.warning)==null?void 0:T.main)??"#ed6c02",.1),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:t.jsx(D.EditOutlined,{sx:{fontSize:18,color:"warning.main"}})}),t.jsxs(o.Box,{sx:{minWidth:0},children:[t.jsx(o.Typography,{sx:{fontSize:"1rem",fontWeight:600,color:"text.primary",lineHeight:1.3},children:"Edit Record"}),l&&t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.75rem",color:"text.secondary",display:"block",mt:.25,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[l," · ",v," ",v===1?"field":"fields"]})]})]}),t.jsx(o.IconButton,{size:"small",onClick:r,sx:{mt:.25,color:"text.secondary",borderRadius:"8px","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(D.Close,{sx:{fontSize:18}})})]}),t.jsx(o.Divider,{}),t.jsxs(o.DialogContent,{sx:{p:2.5,overflowY:"auto",flex:1,bgcolor:$(d.text.primary,.015),display:"flex",flexDirection:"column",gap:2},children:[f.map(x=>{const z=u[x.name];return x.type==="boolean"?t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"caption",sx:{fontWeight:500,color:"text.secondary",display:"block",mb:.75},children:dt(x.name)}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(o.Switch,{checked:!!z,onChange:B=>y(x.name,B.target.checked),size:"small"}),t.jsx(o.Typography,{variant:"body2",sx:{color:"text.secondary"},children:z?"Enabled":"Disabled"})]})]},x.name):t.jsx(o.TextField,{label:dt(x.name),value:z??"",onChange:B=>y(x.name,B.target.value),type:x.type==="number"?"number":"text",size:"small",fullWidth:!0,sx:Ks},x.name)}),b.length>0&&t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2},children:b.map(x=>{const z=Jn(i[x.name],x.type);return t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75,mb:.75},children:[t.jsx(o.Typography,{variant:"caption",sx:{fontWeight:500,color:"text.secondary"},children:dt(x.name)}),t.jsx(o.Chip,{label:"read only",size:"small",sx:{height:16,fontSize:"0.5625rem",fontWeight:600,letterSpacing:"0.04em",bgcolor:$(d.text.secondary,.07),color:"text.secondary",border:"none"}}),t.jsx(o.Tooltip,{title:"Object and array fields cannot be edited directly",arrow:!0,children:t.jsx(D.InfoOutlined,{sx:{fontSize:13,color:"text.disabled",cursor:"help"}})})]}),t.jsx(o.Box,{component:"pre",sx:{m:0,px:1.5,py:1.25,borderRadius:"8px",border:"1px solid",borderColor:"divider",bgcolor:$(d.text.primary,.02),fontSize:"0.75rem",fontFamily:'"Roboto Mono", "Fira Code", monospace',color:z?"text.primary":"text.disabled",fontStyle:z?"normal":"italic",overflowX:"auto",whiteSpace:"pre-wrap",wordBreak:"break-word",lineHeight:1.6,maxHeight:160,overflowY:"auto"},children:z||"No value"})]},x.name)})}),g.length===0&&t.jsxs(o.Box,{sx:{py:6,display:"flex",flexDirection:"column",alignItems:"center",gap:1,color:"text.disabled"},children:[t.jsx(D.EditOutlined,{sx:{fontSize:40,opacity:.4}}),t.jsx(o.Typography,{variant:"body2",children:"No editable fields"})]})]}),t.jsx(o.Divider,{}),t.jsxs(o.DialogActions,{sx:{px:3,py:1.75,bgcolor:"background.paper",gap:1,justifyContent:"flex-end"},children:[t.jsx(o.Button,{onClick:r,variant:"text",sx:{fontSize:"0.8125rem",color:"text.secondary",px:2,borderRadius:x=>`${x.shape.borderRadius}px`,"&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:k,variant:"contained",startIcon:t.jsx(D.SaveOutlined,{sx:{fontSize:15}}),sx:{fontSize:"0.8125rem",px:2.5,borderRadius:x=>`${x.shape.borderRadius}px`,minWidth:90},children:"Save"})]})]})}const ku=176,Tu=170,Bu=40;function Qs(e){return e.type==="date"?180:ku}function Iu(e,r){return r!=null&&r!==Tu&&r!==Qs(e)}function zu(e,r,n){return p.useMemo(()=>{const i=e.map(f=>({name:f.name,width:r[f.name]??Qs(f),explicit:Iu(f,r[f.name])})),a={};i.forEach(f=>{a[f.name]=f.width});const l=i.reduce((f,b)=>f+b.width,0),d=Math.max(0,n-Bu)-l;if(d<=0)return{widths:a,fillerWidth:0};const u=i.filter(f=>!f.explicit);if(u.length===0)return{widths:a,fillerWidth:d};const h=u.reduce((f,b)=>f+b.width,0)||1;let g=0;return u.forEach((f,b)=>{const k=b===u.length-1?f.width+d-g:Math.round(f.width+d*f.width/h);a[f.name]=k,g+=k-f.width}),{widths:a,fillerWidth:0}},[e,r,n])}const Ro=176,ss=32,as=24,Eu=Bt(),Du={low:"text.secondary",medium:"warning.dark",high:"warning.main",critical:"error.main",urgent:"error.main"};function $u(e){const r=e.toLowerCase().trim();return t.jsx(o.Box,{component:"span",sx:{display:"inline-flex",alignItems:"center",px:1.25,py:.375,borderRadius:"12px",fontSize:"0.75rem",fontWeight:n=>{var i;return(i=n.tokens)!=null&&i.statusBold?700:500},bgcolor:n=>Ko(n,r).bg,color:n=>Ko(n,r).color,whiteSpace:"nowrap",lineHeight:1.6,letterSpacing:"0.01em"},children:e})}function Ou(e){const r=e.toLowerCase().trim(),n=Du[r];return n?t.jsx(o.Box,{component:"span",sx:{color:n,fontWeight:500,fontSize:"inherit"},children:e}):e}function _u(e,r){const n=r.trim();if(!n)return e;const i=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),a=e.split(new RegExp(`(${i})`,"gi"));return a.length===1?e:a.map((l,c)=>l.toLowerCase()===n.toLowerCase()?t.jsx(o.Box,{component:"mark",sx:{bgcolor:"warning.light",color:"inherit",px:"1px",borderRadius:"2px"},children:l},c):l)}function ls(e,r,n,i=""){if(r==null||r==="")return t.jsx(o.Box,{component:"span",sx:{color:"text.disabled"},children:"—"});const a=String(r);if(/\b(status|state|stage|employmenttype|contracttype|availability)\b/.test(e.name.toLowerCase()))return $u(a);if(/\b(priority|severity|urgency|importance|criticality)\b/.test(e.name.toLowerCase()))return Ou(a);if(e.type==="date"){const d=e.dateFormat??"iso",u=Da(r,d,n??null);return t.jsx(o.Box,{component:"span",sx:{color:"text.primary",whiteSpace:"nowrap"},children:u})}if(e.type==="number"&&typeof r=="number")return r.toLocaleString();if(typeof r=="boolean")return r?"Yes":"No";if(Array.isArray(r)){if(r.length===0)return t.jsx(o.Box,{component:"span",sx:{color:"text.disabled"},children:"[ ]"});const d=r.slice(0,3).map(u=>typeof u=="object"?JSON.stringify(u):String(u)).join(", ");return t.jsxs(o.Box,{component:"span",sx:{color:"text.secondary",fontSize:"0.8125rem"},children:[d,r.length>3?` +${r.length-3} more`:""]})}if(typeof r=="object"){const d=JSON.stringify(r);return t.jsx(o.Box,{component:"span",title:d,sx:{color:"text.secondary",fontSize:"0.8125rem",fontFamily:"monospace",cursor:"help"},children:d.length>40?d.slice(0,40)+"…":d})}return _u(a,i)}function Mu({schema:e,data:r,sortStack:n=[],filters:i=Eu,views:a=[],activeViewId:l="",isDirty:c=!1,isExporting:d=!1,columnVisibility:u={},columnOrder:h=[],columnWidths:g={},grouping:f=null,classTokens:b={},onSort:y,onSortAscending:k,onSortDescending:v,onOpenFilters:m,onOpenSort:T,onOpenFilterForColumn:x,onSelectView:z,onCreateView:B,onUpdateCurrentView:w,onSaveAsNewView:R,onDiscardChanges:j,onToggleDefault:M,onToggleFavorite:A,onRestoreView:q,onPermanentDelete:te,onEditView:s,onCloneView:N,onCopyLink:L,onDeleteView:re,onPromoteToGlobal:le,isAdmin:J=!1,onExport:ee,onOpenColumns:Ce,onUpdateColumnWidth:V,onUpdateColumnOrder:K,onUpdateColumnVisibility:ne,onClearFiltersForColumn:ce,onResetLayout:U,onOpenGroup:ie,onGroupByColumn:oe,onToggleGroupCollapse:E,onExpandAllGroups:Z,onCollapseAllGroups:ue,onOpenAuditHistory:de,onOpenScheduledReports:ze,searchQuery:H,highlightQuery:He="",searchHistory:rt=[],onAddToSearchHistory:tt,onToggleSearchFavourite:Pt,onDeleteSearchHistory:xr,selectedRowIds:zt=new Set,onSearchChange:Br,onToggleRowSelection:Xe,onToggleAllRows:Ct,onRangeSelection:Ir,onClearSelection:pt,onExportSelected:Xt,currentPage:Et=1,pageSize:zr=15,totalRowsBeforePagination:Dt=r.length,onPageChange:at,onPageSizeChange:$t,isReadOnly:Ue=!1,userRole:Ot,reportName:Qt,onEditRow:Zt,onDuplicateRow:Nt,onDeleteRow:er,showDevPanel:Er=!1,onOpenDevConfig:Dr,rowActions:tr,hideDefaultRowActions:_e,hideToolbarActions:ye,customSettingsActions:mr,viewOptions:Lt,defaultViewMode:eo,bulkActions:fr,hideSelectionCheckboxes:$r,rowClickBehavior:Ft="select",openModalOn:Ge,onRowClick:be,onRowRightClick:jt}){var Do;const Q=st().urmTable,[F,xt]=p.useState(null),[ve,ot]=p.useState(0),[Vt,rr]=p.useState(0),[Ht,or]=p.useState(null),Ut=((Do=wr().dates)==null?void 0:Do.displayFormat)??null,[nr,Or]=p.useState(null),[Ye,hr]=p.useState(null),[X,Le]=p.useState(null),[Se,nt]=p.useState(!1),[me,_r]=p.useState(!1),[ir,Mr]=p.useState(null),[ro,Ar]=p.useState(!1),[sr,Rr]=p.useState(null),[Wr,ar]=p.useState(null),[ge,qe]=p.useState(null),[gr,it]=p.useState(null),Gt=p.useRef(null),wt=p.useCallback(()=>{Gt.current&&(clearTimeout(Gt.current),Gt.current=null)},[]),he=p.useCallback(()=>{wt(),Gt.current=setTimeout(()=>it(null),200)},[wt]);p.useEffect(()=>wt,[wt]);const[we,$e]=p.useState(null),mt=p.useMemo(()=>Lt??["list","grid"],[Lt]),[_t,fn]=p.useState(()=>eo??mt[0]??"list"),[hn,wo]=p.useState(!1),[Pr,gn]=p.useState(()=>!vu("toolbar_search")),Nr=p.useRef(null),oo=p.useRef(null),[yn,ko]=p.useState(0);p.useLayoutEffect(()=>{const S=Nr.current;if(!S)return;ko(S.clientWidth);const P=new ResizeObserver(se=>{ko(se[0].contentRect.width)});return P.observe(S),()=>P.disconnect()},[]);const Lr=p.useCallback(()=>{Su("toolbar_search"),gn(!1)},[]);p.useEffect(()=>{if(!Pr)return;const S=setTimeout(Lr,2e3);return()=>clearTimeout(S)},[Pr,Lr]);const To=p.useMemo(()=>{const S=Ht??h;return S.length>0?S.map(P=>e.find(se=>se.name===P)).filter(P=>P!==void 0):e},[Ht,h,e]),yr=p.useMemo(()=>To.filter(S=>u[S.name]!==!1),[To,u]),no=p.useMemo(()=>new Set(((f==null?void 0:f.levels)??[]).map(S=>S.column)),[f]),Bo=!!(f!=null&&f.enabled&&(f!=null&&f.levels)&&f.levels.length>0),ft=p.useMemo(()=>{if(!Bo)return yr;const S=yr.filter(P=>!no.has(P.name));return S.length>0?S:yr},[yr,Bo,no]),{widths:Fr}=zu(ft,g,yn),lr=p.useMemo(()=>e.filter(S=>u[S.name]===!1).length,[e,u]),Io=p.useMemo(()=>e.map(S=>S.name),[e]),Vr=p.useMemo(()=>h.length===0?!1:JSON.stringify(h)!==JSON.stringify(Io),[h,Io]),bn=p.useCallback((S,P)=>{S.preventDefault(),S.stopPropagation(),xt(P),ot(S.clientX),rr(g[P]||150)},[g]);p.useEffect(()=>{if(!F)return;const S=se=>{const Me=se.clientX-ve,Ae=Math.max(100,Math.min(600,Vt+Me));V==null||V(F,Ae)},P=()=>{xt(null)};return document.addEventListener("mousemove",S),document.addEventListener("mouseup",P),()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",P)}},[F,ve,Vt,V]);const vn=p.useCallback(S=>S==null?"-":typeof S=="object"?JSON.stringify(S):typeof S=="boolean"?S?"true":"false":String(S),[]);p.useCallback(S=>{const P=n.find(se=>se.column===S);return P?t.jsxs(o.Box,{sx:{display:"inline-flex",alignItems:"center",ml:.5,gap:.25},children:[P.direction==="asc"?t.jsx(D.ArrowUpward,{sx:{fontSize:14}}):t.jsx(D.ArrowDownward,{sx:{fontSize:14}}),t.jsx(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"center",width:16,height:16,bgcolor:"primary.main",color:"primary.contrastText",fontSize:"caption.fontSize",fontWeight:"bold",borderRadius:"50%"},children:P.priority})]}):null},[n]),p.useCallback(S=>Vn(i,S)?t.jsx(o.IconButton,{size:"small",onClick:se=>{se.stopPropagation(),x==null||x(S)},sx:{ml:.5,p:.25,color:"primary.main","&:hover":{color:"primary.main"}},title:"Active filters on this column",children:t.jsx(D.FilterList,{sx:{fontSize:14}})}):null,[i,x]);const Sn=p.useCallback(S=>{y&&y(S)},[y]),Cn=p.useCallback((S,P)=>{or(se=>{const Ae=[...se??(h.length>0?h:e.map(Qe=>Qe.name))],[et]=Ae.splice(S,1);return Ae.splice(P,0,et),Ae})},[h,e]),jn=p.useCallback(()=>{Ht&&K&&K(Ht),or(null)},[Ht,K]),wn=p.useCallback(S=>{if(!y)return;const P=n.find(se=>se.column===S);(!P||P.direction!=="asc")&&y(S)},[y,n]),kn=p.useCallback(S=>{if(!y)return;const P=n.find(se=>se.column===S);P?P.direction==="asc"&&y(S):(y(S),setTimeout(()=>y(S),0))},[y,n]),Tn=p.useCallback(S=>{if(!y)return;const P=n.find(se=>se.column===S);P&&(P.direction==="asc"?(y(S),setTimeout(()=>y(S),0)):P.direction==="desc"&&y(S))},[y,n]),Bn=p.useCallback(S=>{ne&&ne(S,!1)},[ne]),Hr=(f==null?void 0:f.enabled)&&r.length>0&&r[0]&&"isGroupHeader"in r[0],Yt=p.useMemo(()=>bt(i),[i]),In=n.length>0||Yt>0||((f==null?void 0:f.enabled)??!1)||Object.values(u).some(S=>S===!1),zn=(Et-1)*zr,Fe=r,kt=p.useMemo(()=>{const S=new Set;return zt.forEach(P=>{const se=P==null?void 0:P.__urm_row_id__;se!==void 0&&S.add(se)}),S},[zt]);p.useEffect(()=>{const S=P=>{!Ct||!pt||P.target instanceof HTMLInputElement||P.target instanceof HTMLTextAreaElement||((P.ctrlKey||P.metaKey)&&P.key==="a"&&(P.preventDefault(),Ct(!0,Fe)),P.key==="Escape"&&(P.preventDefault(),pt()))};return document.addEventListener("keydown",S),()=>document.removeEventListener("keydown",S)},[Ct,pt,Fe]);const io=p.useCallback((S,P)=>{be==null||be(Fe[S],S,P),(Ft==="activate"||Ft==="both")&&(Le(Fe[S]),nt(!0)),Ft!=="activate"&&Xe&&(P.shiftKey&&nr!==null?(P.preventDefault(),Ir&&Ir(nr,S,Fe)):(Xe(Fe[S]),Or(S)))},[Xe,nr,Ir,Fe,be,Ft,Le,nt]),zo=p.useMemo(()=>Fe.length>0&&kt.size>0&&Fe.every(S=>kt.has(S==null?void 0:S.__urm_row_id__)),[Fe,kt]),br=!zo&&Fe.some(S=>kt.has(S==null?void 0:S.__urm_row_id__)),Mt=!!(Xe&&Ct&&!$r),Ur=p.useCallback(S=>{var et;const P=S.groupLevel,se=P*ss,Me=P===0?b.groupRowLevel0||"urm-group-level-0":P===1?b.groupRowLevel1||"urm-group-level-1":b.groupRowLevel2||"urm-group-level-2",Ae=P===0?"action.selected":P===1?"action.hover":"background.paper";return t.jsx(o.TableRow,{onClick:()=>E==null?void 0:E(S.groupKey),className:`urm-group-header-row urm-group-level-${P} ${Me} ${b.groupRow||""}`,sx:{bgcolor:Ae,"&:hover":{bgcolor:Qe=>$(Qe.palette.text.primary,.08)},cursor:"pointer",borderTop:"1px solid",borderBottom:"1px solid",borderColor:"divider"},children:t.jsx(o.TableCell,{colSpan:ft.length+2+(Mt?1:0),className:`urm-group-cell ${b.groupCellFirst||""} ${b.groupCell||""}`,sx:{pl:`${se+as}px`,position:"relative",py:1},children:t.jsxs(o.Box,{className:`urm-group-content ${b.groupContent||""}`,sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(o.Box,{className:`urm-group-caret ${b.groupCaret||""}`,sx:{color:"text.secondary",display:"inline-flex",alignItems:"center"},children:S.isCollapsed?t.jsx(D.ChevronRight,{sx:{fontSize:18}}):t.jsx(D.KeyboardArrowDown,{sx:{fontSize:18}})}),t.jsx(o.Typography,{variant:"body2",className:`urm-group-title ${b.groupTitle||""}`,sx:{fontWeight:P===0?600:500,color:"text.primary"},children:Cs(P,((et=f==null?void 0:f.levels[P])==null?void 0:et.column)||"",S.groupValue)}),t.jsxs(o.Box,{className:`urm-group-count ${b.groupBadge||""} ${b.groupCount||""}`,sx:{px:1,py:.25,fontSize:"caption.fontSize",fontWeight:500,bgcolor:Qe=>$(Qe.palette.text.secondary,.12),color:"text.secondary",borderRadius:2},children:[S.rowCount," ",S.rowCount===1?"row":"rows"]}),Object.keys(S.aggregates).length>0&&t.jsx(o.Typography,{variant:"caption",className:`urm-group-aggregates ${b.groupAggregates||""}`,sx:{ml:1,color:"text.secondary"},children:Object.entries(S.aggregates).map(([Qe,xe])=>Ss(xe)).filter(Boolean).join(" • ")})]})})},S.groupKey)},[ft,Mt,f,E,b]),Eo=p.useCallback((S,P)=>{const se=kt.has(S==null?void 0:S.__urm_row_id__),Me=Ye===P,Ae=Se&&(S==null?void 0:S.__urm_row_id__)===(X==null?void 0:X.__urm_row_id__),et=!!(S!=null&&S.__urm_is_grouped_data_row__),Qe=et?S.__urm_group_level__??(f==null?void 0:f.levels.length)??1:0;return t.jsxs(o.TableRow,{"data-row-index":P,className:et?`urm-data-row-grouped ${b.dataRowGrouped||""}`:"",onMouseEnter:()=>hr(P),onMouseLeave:()=>hr(null),onClick:xe=>{xe.target.closest("[data-row-action-btn]")||io(P,xe)},onDoubleClick:()=>{Ge!=null&&Ge.includes("doubleClick")&&(Le(S),nt(!0))},onContextMenu:xe=>{xe.preventDefault(),xe.stopPropagation(),jt==null||jt(S,P,xe),it(null),qe({mouseX:xe.clientX,mouseY:xe.clientY,row:S,rowIndex:P}),Ge!=null&&Ge.includes("rightClick")&&(Le(S),nt(!0))},sx:{cursor:"pointer",bgcolor:se?xe=>It(xe).bg:Ae?xe=>$(xe.palette.info.main,.12):Q!=null&&Q.striped&&P%2===1?Q.stripeBg:"background.paper",transition:"background-color 0.12s ease","&:hover":{bgcolor:se?xe=>It(xe).hoverBg:Ae?xe=>$(xe.palette.info.main,.2):"action.hover"},borderBottom:(Q==null?void 0:Q.rowDivider)??"1px solid",borderColor:"divider"},children:[Mt&&t.jsx(o.TableCell,{padding:"checkbox",onClick:xe=>xe.stopPropagation(),sx:{borderBottom:(Q==null?void 0:Q.rowDivider)??"1px solid",borderColor:"divider",verticalAlign:(Q==null?void 0:Q.cellAlignV)??"middle"},children:t.jsx(o.Checkbox,{size:"small",checked:se,onChange:()=>Xe==null?void 0:Xe(S)})}),ft.map((xe,vr)=>{if(et&&vr===0){const En=Qe*ss+as;return t.jsx(o.TableCell,{className:`urm-data-cell-grouped ${b.dataCellGrouped||""}`,sx:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",py:(Q==null?void 0:Q.rowPaddingY)??"6px",px:(Q==null?void 0:Q.cellPaddingX)??2,pl:`${En}px`,position:"relative",textAlign:(Q==null?void 0:Q.cellAlignH)??"left",verticalAlign:(Q==null?void 0:Q.cellAlignV)??"middle",fontSize:"0.8125rem",fontWeight:400,color:"text.primary",borderBottom:(Q==null?void 0:Q.rowDivider)??"1px solid",borderRight:Q==null?void 0:Q.colDivider,borderColor:"divider",minWidth:g[xe.name]?`${g[xe.name]}px`:`${xe.type==="date"?Math.max(Ro,180):Ro}px`},children:t.jsx(o.Box,{sx:{display:"flex",alignItems:"center"},children:t.jsx("span",{className:`urm-item-title ${b.itemTitle||""}`,children:ls(xe,S[xe.name],Ut,He)})})},xe.name)}return t.jsx(o.TableCell,{sx:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",py:(Q==null?void 0:Q.rowPaddingY)??"6px",px:(Q==null?void 0:Q.cellPaddingX)??2,textAlign:(Q==null?void 0:Q.cellAlignH)??"left",verticalAlign:(Q==null?void 0:Q.cellAlignV)??"middle",fontSize:"0.8125rem",fontWeight:400,color:"text.primary",borderBottom:(Q==null?void 0:Q.rowDivider)??"1px solid",borderRight:Q==null?void 0:Q.colDivider,borderColor:"divider",minWidth:g[xe.name]?`${g[xe.name]}px`:`${xe.type==="date"?Math.max(Ro,180):Ro}px`},children:ls(xe,S[xe.name],Ut,He)},xe.name)}),t.jsx(o.TableCell,{"data-row-action":"true",sx:{position:"sticky",right:0,width:0,minWidth:0,maxWidth:0,p:0,border:"none",background:"transparent",opacity:Me?1:0,transition:"opacity 0.12s ease",zIndex:10},children:t.jsx(o.Box,{sx:{position:"absolute",right:8,top:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"flex-end",zIndex:10},children:t.jsx(o.IconButton,{"data-row-action-btn":"true",size:"small",onClick:xe=>{xe.stopPropagation(),xe.preventDefault(),it(null),qe({anchorEl:xe.currentTarget,row:S,rowIndex:P})},sx:{color:"text.secondary",opacity:Me?1:0,transition:"opacity 0.12s ease",pointerEvents:Me?"auto":"none","&:hover":{bgcolor:xe=>$(xe.palette.text.primary,.08),color:"text.primary"}},children:t.jsx(D.MoreVert,{sx:{fontSize:18}})})})})]},P)},[zt,zn,Ye,io,ft,g,He,vn,Zt,Nt,er,Xe,Mt,Le,nt,X,Se,qe,Hr,no,jt,Ge]);return t.jsxs(Jt.DndProvider,{backend:Kn.HTML5Backend,children:[t.jsxs(o.Box,{sx:S=>{var et,Qe,xe;const P=((xe=(Qe=(et=S.components)==null?void 0:et.MuiCard)==null?void 0:Qe.styleOverrides)==null?void 0:xe.root)||{},se=P.border&&P.border!=="none"?P.border:"1px solid",Me=P.borderRadius!==void 0?typeof P.borderRadius=="number"?`${P.borderRadius}px`:P.borderRadius:`${S.shape.borderRadius}px`,Ae=P.boxShadow&&P.boxShadow!=="none"?P.boxShadow:fe(S,"cardRest");return{display:"flex",flexDirection:"column",height:"100%",bgcolor:"background.paper",border:se,borderColor:se!=="none"?"divider":void 0,borderRadius:Me,boxShadow:Ae,overflow:"hidden"}},children:[t.jsxs(o.Box,{sx:S=>{var et,Qe,xe,vr,so;const P=((xe=(Qe=(et=S.components)==null?void 0:et.MuiCardHeader)==null?void 0:Qe.styleOverrides)==null?void 0:xe.root)||{},se=(P.backgroundColor&&P.backgroundColor!=="transparent"?P.backgroundColor:void 0)??((vr=S.tokens)==null?void 0:vr.cardHdrHex)??((so=S.urmTable)==null?void 0:so.headerBg)??S.palette.background.paper,Me=P.borderBottom&&P.borderBottom!=="none"?P.borderBottom:"1px solid",Ae=P.boxShadow&&P.boxShadow!=="none"?P.boxShadow:void 0;return{position:"sticky",top:0,zIndex:10,bgcolor:se,borderBottom:Me,borderColor:Me!=="none"?"divider":void 0,boxShadow:Ae,px:2,py:0,minHeight:56,display:"flex",alignItems:"center",gap:1}},children:[Ue&&t.jsx(bu,{}),Br&&tt&&Pt&&xr&&!(ye!=null&&ye.includes("search"))&&t.jsx(o.Tooltip,{open:Pr,title:t.jsxs(o.Box,{sx:{p:.5},children:[t.jsx(o.Typography,{variant:"caption",sx:{display:"block",fontWeight:500,mb:.25},children:"💡 Search tip"}),t.jsx(o.Typography,{variant:"caption",children:"Type to search across all columns instantly"})]}),placement:"bottom-start",arrow:!0,PopperProps:{onClick:Lr},componentsProps:{tooltip:{sx:{bgcolor:"primary.main","& .MuiTooltip-arrow":{color:"primary.main"},maxWidth:220,cursor:"pointer",userSelect:"none"}}},children:t.jsx(o.Box,{component:"span",children:t.jsx(ru,{value:H||"",onChange:S=>{Pr&&Lr(),Br(S)},searchHistory:rt,onAddToHistory:tt,onToggleFavourite:Pt,onDeleteHistory:xr,disabled:Ue})})}),t.jsx(o.Tooltip,{title:"JSON format guide",children:t.jsx(o.IconButton,{size:"small",onClick:()=>wo(!0),sx:{color:"text.secondary",borderRadius:1,"&:hover":{bgcolor:S=>$(S.palette.text.primary,.06),color:"text.primary"}},children:t.jsx(D.InfoOutlined,{sx:{fontSize:20}})})}),z&&B&&w&&a.length>0&&t.jsx(ou,{views:a||[],activeViewId:l||"",isDirty:c,onSelectView:z,onCreateView:B,onToggleDefault:M,onToggleFavorite:A,onRestoreView:q,onPermanentDelete:te,onEditView:s,onCloneView:N,onCopyLink:L,onDeleteView:re,onPromoteToGlobal:le,isAdmin:J,isReadOnly:Ue}),c&&!Ue&&t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.25,ml:1},children:[w&&t.jsx(o.Button,{onClick:w,size:"small",variant:"contained",sx:{fontSize:"0.8125rem",fontWeight:500,px:2.25,py:.75,borderRadius:"10px",bgcolor:S=>`var(--urm-btn-save-current-bg, ${S.palette.primary.main})`,color:S=>`var(--urm-btn-save-current-color, ${S.palette.primary.contrastText})`,textTransform:"none",boxShadow:S=>fe(S,"restButton"),"&:hover":{bgcolor:S=>`var(--urm-btn-save-current-hover-bg, ${S.palette.primary.dark})`,boxShadow:S=>fe(S,"hoverButton")}},children:"Save current view"}),R&&t.jsx(o.Button,{onClick:R,size:"small",variant:"outlined",sx:{fontSize:"0.8125rem",fontWeight:500,px:2.25,py:.75,borderRadius:"10px",borderColor:S=>`var(--urm-btn-save-new-border, ${S.palette.primary.main})`,color:S=>`var(--urm-btn-save-new-color, ${S.palette.primary.main})`,bgcolor:S=>`var(--urm-btn-save-new-bg, ${S.palette.background.paper})`,borderWidth:"1.5px",textTransform:"none","&:hover":{borderWidth:"1.5px",borderColor:S=>`var(--urm-btn-save-new-hover-border, ${S.palette.primary.dark})`,bgcolor:S=>`var(--urm-btn-save-new-hover-bg, ${$(S.palette.primary.main,.08)})`}},children:"Save new view"}),j&&t.jsx(o.Button,{onClick:j,size:"small",variant:"contained",sx:{fontSize:"0.8125rem",fontWeight:500,px:2.25,py:.75,borderRadius:"10px",bgcolor:S=>`var(--urm-btn-discard-bg, ${$(S.palette.text.primary,.12)})`,color:S=>`var(--urm-btn-discard-color, ${S.palette.text.primary})`,textTransform:"none",boxShadow:"none","&:hover":{bgcolor:S=>`var(--urm-btn-discard-hover-bg, ${$(S.palette.text.primary,.18)})`,boxShadow:"none"}},children:"Discard"})]}),Er&&Dr&&t.jsx(o.Tooltip,{title:"Developer configuration",children:t.jsx(o.IconButton,{size:"small",onClick:Dr,sx:{color:"text.secondary",borderRadius:1,border:"1px dashed",borderColor:S=>$(S.palette.text.secondary,.3),"&:hover":{bgcolor:S=>$(S.palette.warning.main,.08),borderColor:"warning.main",color:"warning.dark"}},children:t.jsx(D.DisplaySettings,{sx:{fontSize:20}})})}),t.jsx(o.Box,{sx:{flexGrow:1}}),!Ue&&T&&!(ye!=null&&ye.includes("sort"))&&t.jsx(o.Tooltip,{title:"Sort",children:t.jsxs(o.IconButton,{onClick:T,size:"small",sx:{position:"relative",color:n.length>0?"primary.main":"text.secondary",bgcolor:n.length>0?S=>vt(S):"transparent",borderRadius:1,transition:"all 0.15s ease","&:hover":{bgcolor:n.length>0?S=>$(S.palette.primary.main,.2):S=>$(S.palette.text.primary,.06),color:n.length>0?"primary.main":"text.primary"}},children:[t.jsx(D.SwapVert,{sx:{fontSize:20}}),n.length>0&&t.jsx(o.Box,{component:"span",sx:{position:"absolute",top:-2,right:-2,width:16,height:16,display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"primary.main",color:"primary.contrastText",borderRadius:"50%",fontSize:"0.625rem",fontWeight:700,border:"2px solid",borderColor:"background.paper"},children:n.length})]})}),!Ue&&m&&!(ye!=null&&ye.includes("filter"))&&t.jsx(o.Tooltip,{title:"Filter",children:t.jsxs(o.IconButton,{onClick:m,size:"small",sx:{position:"relative",color:Yt>0?"primary.main":"text.secondary",bgcolor:Yt>0?S=>vt(S):"transparent",borderRadius:1,transition:"all 0.15s ease","&:hover":{bgcolor:Yt>0?S=>$(S.palette.primary.main,.2):S=>$(S.palette.text.primary,.06),color:Yt>0?"primary.main":"text.primary"}},children:[t.jsx(D.FilterList,{sx:{fontSize:20}}),Yt>0&&t.jsx(o.Box,{component:"span",sx:{position:"absolute",top:-2,right:-2,width:16,height:16,display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"primary.main",color:"primary.contrastText",borderRadius:"50%",fontSize:"0.625rem",fontWeight:700,border:"2px solid",borderColor:"background.paper"},children:Yt})]})}),!Ue&&Ce&&!(ye!=null&&ye.includes("columns"))&&t.jsx(o.Tooltip,{title:"Show/Hide Columns",children:t.jsxs(o.IconButton,{onClick:Ce,size:"small",sx:{position:"relative",color:lr>0||Vr?"primary.main":"text.secondary",bgcolor:lr>0||Vr?S=>vt(S):"transparent",borderRadius:1,transition:"all 0.15s ease","&:hover":{bgcolor:lr>0||Vr?S=>$(S.palette.primary.main,.2):S=>$(S.palette.text.primary,.06),color:lr>0||Vr?"primary.main":"text.primary"}},children:[t.jsx(D.ViewColumn,{sx:{fontSize:20}}),lr>0&&t.jsx(o.Box,{component:"span",sx:{position:"absolute",top:-2,right:-2,width:16,height:16,display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"primary.main",color:"primary.contrastText",borderRadius:"50%",fontSize:"0.625rem",fontWeight:700,border:"2px solid",borderColor:"background.paper"},children:lr})]})}),Hr&&(Z||ue)&&(()=>{var se;const S=(((se=f==null?void 0:f.collapsedGroups)==null?void 0:se.length)??0)>0,P=S?Z:ue;return P?t.jsx(o.Tooltip,{title:S?"Expand all groups":"Collapse all groups",children:t.jsx(o.IconButton,{onClick:P,size:"small",sx:{color:"text.secondary",borderRadius:1,"&:hover":{bgcolor:Me=>$(Me.palette.text.primary,.06),color:"text.primary"}},children:S?t.jsx(D.UnfoldMore,{sx:{fontSize:20}}):t.jsx(D.UnfoldLess,{sx:{fontSize:20}})})}):null})(),mt.length>1&&t.jsxs(t.Fragment,{children:[t.jsx(o.Divider,{orientation:"vertical",flexItem:!0,sx:{mx:.5,my:1.5}}),mt.map(S=>{const P=_t===S,se=S==="list"?t.jsx(D.TableRows,{sx:{fontSize:20}}):t.jsx(D.GridView,{sx:{fontSize:20}}),Me=S==="list"?"List view":"Grid view";return t.jsx(o.Tooltip,{title:Me,children:t.jsx(o.IconButton,{size:"small",onClick:()=>fn(S),sx:{borderRadius:1,color:P?"primary.main":"text.secondary",bgcolor:P?Ae=>vt(Ae):"transparent",transition:"all 0.15s ease","&:hover":{bgcolor:P?Ae=>$(Ae.palette.primary.main,.2):Ae=>$(Ae.palette.text.primary,.06),color:P?"primary.main":"text.primary"}},children:se})},S)})]}),!(ye!=null&&ye.includes("settings"))&&t.jsxs(t.Fragment,{children:[t.jsx(o.Divider,{orientation:"vertical",flexItem:!0,sx:{mx:.5,my:1.5}}),t.jsx(o.Tooltip,{title:"Settings",children:t.jsx(o.IconButton,{onClick:S=>$e(S.currentTarget),size:"small",sx:{color:"text.secondary",borderRadius:1,transition:"all 0.15s ease","&:hover":{bgcolor:S=>$(S.palette.text.primary,.06),color:"text.primary"}},children:t.jsx(D.Settings,{sx:{fontSize:20}})})})]})]}),t.jsxs(o.Popover,{open:!!we,anchorEl:we,onClose:()=>$e(null),anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},PaperProps:{sx:{mt:.5,minWidth:200,py:.5,borderRadius:1.5,boxShadow:3}},children:[ee&&!(ye!=null&&ye.includes("export"))&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{ee(),$e(null)},disabled:d,sx:{py:1,px:2,gap:1.5},children:[t.jsx(D.Download,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Export"})]}),!Ue&&ie&&!(ye!=null&&ye.includes("grouping"))&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{ie(),$e(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(D.Layers,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Grouping"})]}),de&&!(ye!=null&&ye.includes("auditHistory"))&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{de(),$e(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(D.History,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Audit History"})]}),ze&&!(ye!=null&&ye.includes("scheduledReports"))&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{ze(),$e(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(D.Schedule,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Scheduled Reports"})]}),mr==null?void 0:mr.map(S=>t.jsxs(o.MenuItem,{dense:!0,disabled:S.disabled,onClick:()=>{S.onClick(),$e(null)},sx:{py:1,px:2,gap:1.5},children:[S.icon,t.jsx(o.Typography,{variant:"body2",children:S.label})]},S.key))]}),t.jsxs(o.Box,{sx:{position:"relative",flex:1,display:"flex",flexDirection:"column",minHeight:0},children:[fr&&fr.length>0&&kt.size>0&&t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1,px:2,py:1,bgcolor:S=>It(S).bg,borderBottom:"1px solid",borderColor:"divider"},children:[t.jsxs(o.Typography,{variant:"body2",sx:{fontWeight:600,mr:1},children:[kt.size," selected"]}),t.jsx(o.Button,{size:"small",onClick:()=>pt==null?void 0:pt(),children:"Clear"}),fr.map(S=>{var se,Me;const P=Array.from(zt);return(se=S.hidden)!=null&&se.call(S,P)?null:t.jsx(o.Button,{size:"small",variant:"outlined",startIcon:S.icon,disabled:(Me=S.disabled)==null?void 0:Me.call(S,P),onClick:()=>S.onClick(P),children:S.label},S.key)})]}),_t!=="list"&&t.jsx(o.Box,{sx:{flex:1,overflowY:"auto",overflowX:"hidden",bgcolor:"action.hover"},children:t.jsx(hu,{data:Fe,visibleColumns:yr,grouping:f,selectedRowIds:zt,isGrouped:!!Hr,onToggleGroupCollapse:E,onCardClick:(S,P)=>io(S,P),onCardDoubleClick:S=>{Ge!=null&&Ge.includes("doubleClick")&&(Le(S),nt(!0))},onCardContextMenu:(S,P,se)=>{jt==null||jt(S,P,se),it(null),qe({mouseX:se.clientX,mouseY:se.clientY,row:S,rowIndex:P}),Ge!=null&&Ge.includes("rightClick")&&(Le(S),nt(!0))},onOpenRowMenu:(S,P,se)=>qe({anchorEl:se,row:S,rowIndex:P}),onToggleSelection:S=>Xe==null?void 0:Xe(S),hideSelectionCheckboxes:$r})}),_t==="list"&&t.jsxs(o.Box,{sx:{flex:1,display:"flex",flexDirection:"column",minHeight:0},children:[t.jsx(o.Box,{ref:Nr,onScroll:S=>{oo.current&&(oo.current.scrollLeft=S.target.scrollLeft)},sx:{overflowX:"auto",overflowY:"hidden",flexShrink:0,scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},children:t.jsxs(o.Table,{sx:{tableLayout:"fixed",borderCollapse:"collapse",borderSpacing:0,width:"100%",minWidth:`${Object.values(Fr).reduce((S,P)=>S+P,0)}px`},children:[t.jsxs("colgroup",{children:[Mt&&t.jsx("col",{style:{width:"40px"}}),ft.map(S=>t.jsx("col",{style:{width:`${Fr[S.name]}px`}},S.name))]}),t.jsx(o.TableHead,{children:t.jsxs(o.TableRow,{sx:{bgcolor:(Q==null?void 0:Q.headerBg)??"action.hover",borderBottom:(Q==null?void 0:Q.rowDivider)??"1px solid",borderColor:"divider"},children:[Mt&&t.jsx(o.TableCell,{padding:"checkbox",sx:{borderBottom:(Q==null?void 0:Q.rowDivider)??"1px solid",borderColor:"divider",verticalAlign:(Q==null?void 0:Q.cellAlignV)??"middle"},children:t.jsx(o.Checkbox,{size:"small",checked:zo,indeterminate:br,onChange:S=>Ct==null?void 0:Ct(S.target.checked,Fe)})}),ft.map((S,P)=>t.jsx(su,{column:S,index:P,sortRule:n.find(se=>se.column===S.name),hasFilters:Vn(i,S.name),isInSortStack:n.some(se=>se.column===S.name),isReadOnly:Ue,hasModifications:In,width:g[S.name],onColumnClick:Sn,onMoveColumn:Cn,onColumnDragEnd:jn,onResizeStart:bn,onSortAscending:k||wn,onSortDescending:v||kn,onRemoveSort:Tn,onOpenFilterForColumn:x||(()=>{}),onClearFiltersForColumn:ce||(()=>{}),onGroupByColumn:oe,onHideColumn:Bn,onManageColumns:Ce||(()=>{}),onResetLayout:U},S.name))]})})]})}),t.jsx(o.Box,{ref:oo,onScroll:S=>{Nr.current&&(Nr.current.scrollLeft=S.target.scrollLeft)},sx:{flex:1,overflowY:"auto",overflowX:"auto",minHeight:0,bgcolor:"background.paper","&::-webkit-scrollbar":{width:8,height:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:S=>$(S.palette.text.primary,.2),borderRadius:4,"&:hover":{bgcolor:S=>$(S.palette.text.primary,.3)}}},children:t.jsxs(o.Table,{sx:{tableLayout:"fixed",borderCollapse:"collapse",borderSpacing:0,width:"100%",minWidth:`${Object.values(Fr).reduce((S,P)=>S+P,0)}px`},children:[t.jsxs("colgroup",{children:[Mt&&t.jsx("col",{style:{width:"40px"}}),ft.map(S=>t.jsx("col",{style:{width:`${Fr[S.name]}px`}},S.name))]}),t.jsx(o.TableBody,{children:Fe.length===0?t.jsx(o.TableRow,{children:t.jsx(o.TableCell,{colSpan:ft.length+2+(Mt?1:0),align:"center",sx:{py:4},children:t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:"No data matches the current filters"})})}):Hr?Fe.map((S,P)=>S.isGroupHeader?Ur(S):Eo(S,P)):Fe.map((S,P)=>Eo(S,P))})]})})]}),at&&$t&&t.jsx(yu,{currentPage:Et,pageSize:zr,totalRows:Dt,totalFields:e.length,onPageChange:at,onPageSizeChange:$t}),!(at&&$t)&&t.jsx(o.Box,{sx:{px:3,py:1.5,bgcolor:"action.hover",borderTop:1,borderColor:"divider"},children:t.jsxs(o.Typography,{variant:"body2",color:"text.secondary",children:["Showing ",Fe.length," ",Fe.length===1?"row":"rows"]})})]})]}),t.jsxs(o.Popover,{open:!!ge,onClose:()=>{qe(null),it(null)},anchorEl:(ge==null?void 0:ge.anchorEl)||null,anchorReference:ge!=null&&ge.anchorEl?"anchorEl":"anchorPosition",anchorPosition:ge&&!ge.anchorEl?{top:ge.mouseY,left:ge.mouseX}:void 0,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:ge!=null&&ge.anchorEl?{vertical:"top",horizontal:"right"}:{vertical:"top",horizontal:"left"},PaperProps:{sx:{minWidth:176,py:.5,borderRadius:1.5,boxShadow:3}},children:[!(_e!=null&&_e.includes("view"))&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{ge&&(Le(ge.row),nt(!0)),qe(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(D.Visibility,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"View"})]}),!(_e!=null&&_e.includes("edit"))&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{ge&&(Rr(ge.row),ar(ge.rowIndex),Ar(!0)),qe(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(D.Edit,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Edit"})]}),!(_e!=null&&_e.includes("duplicate"))&&t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{ge&&(Nt==null||Nt(ge.rowIndex,ge.row)),qe(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(D.ContentCopy,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"Duplicate"})]}),ge&&(tr==null?void 0:tr.map(S=>{var P,se;return(P=S.hidden)!=null&&P.call(S,ge.row)?null:t.jsxs(o.MenuItem,{dense:!0,disabled:(se=S.disabled)==null?void 0:se.call(S,ge.row),onClick:()=>{S.onClick(ge.row,ge.rowIndex),qe(null)},sx:{py:1,px:2,gap:1.5},children:[S.icon,t.jsx(o.Typography,{variant:"body2",children:S.label})]},S.key)})),kt.size>0&&Xt&&!(_e!=null&&_e.includes("export"))&&t.jsxs(t.Fragment,{children:[t.jsx(o.Divider,{sx:{my:.5}}),t.jsxs(o.MenuItem,{dense:!0,onMouseEnter:S=>{wt(),it(S.currentTarget)},onMouseLeave:he,sx:{py:1,px:2,gap:1.5,justifyContent:"space-between"},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[t.jsx(D.Download,{sx:{fontSize:18,color:"text.secondary"}}),t.jsxs(o.Typography,{variant:"body2",children:["Export Selected (",kt.size,")"]})]}),t.jsx(D.ChevronRight,{sx:{fontSize:18,color:"text.secondary"}})]}),t.jsx(o.Popper,{open:!!gr,anchorEl:gr,placement:"right-start",transition:!0,sx:{zIndex:S=>S.zIndex.modal+1},modifiers:[{name:"offset",options:{offset:[0,0]}}],children:({TransitionProps:S})=>t.jsx(o.Grow,{...S,timeout:150,children:t.jsx(o.Paper,{onMouseEnter:wt,onMouseLeave:he,sx:{minWidth:176,py:.5,borderRadius:1.5,boxShadow:3},children:t.jsxs(o.MenuList,{dense:!0,autoFocusItem:!1,children:[t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{Xt("csv"),it(null),qe(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(D.TableChart,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"CSV"})]}),t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{Xt("excel"),it(null),qe(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(D.TableChart,{sx:{fontSize:18,color:"success.main"}}),t.jsx(o.Typography,{variant:"body2",children:"Excel"})]}),t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{Xt("json"),it(null),qe(null)},sx:{py:1,px:2,gap:1.5},children:[t.jsx(D.DataObject,{sx:{fontSize:18,color:"text.secondary"}}),t.jsx(o.Typography,{variant:"body2",children:"JSON"})]})]})})})})]}),!(_e!=null&&_e.includes("delete"))&&t.jsxs(t.Fragment,{children:[t.jsx(o.Divider,{sx:{my:.5}}),t.jsxs(o.MenuItem,{dense:!0,onClick:()=>{ge&&(Mr(ge.row),_r(!0)),qe(null)},sx:{py:1,px:2,gap:1.5,color:"error.main"},children:[t.jsx(D.Delete,{sx:{fontSize:18,color:"error.main"}}),t.jsx(o.Typography,{variant:"body2",color:"error.main",children:"Delete"})]})]})]}),t.jsx(Cu,{open:Se,onClose:()=>{nt(!1),Le(null)},row:X,schema:e,reportName:Qt}),t.jsx(wu,{open:ro,onClose:()=>{Ar(!1),Rr(null),ar(null)},onSave:S=>{Wr!==null&&(Zt==null||Zt(Wr,S))},row:sr,schema:e,reportName:Qt}),t.jsx(ju,{open:me,onClose:()=>{_r(!1),Mr(null)},onConfirm:()=>{ir!==null&&(er==null||er(ir))},row:ir,schema:e}),t.jsx(Ys,{isOpen:hn,onClose:()=>wo(!1)})]})}function kr({content:e,isDev:r=!1}){const[n,i]=p.useState(null);return t.jsxs(t.Fragment,{children:[t.jsx(o.IconButton,{size:"small",onClick:a=>i(a.currentTarget),"aria-label":`Help: ${e.title}`,sx:{p:.375,color:"text.disabled","&:hover":{color:"primary.main",bgcolor:a=>$(a.palette.primary.main,.08)}},children:t.jsx(D.InfoOutlined,{sx:{fontSize:15}})}),t.jsxs(o.Popover,{open:!!n,anchorEl:n,onClose:()=>i(null),anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},PaperProps:{sx:{width:280,borderRadius:"10px",boxShadow:4,p:0,overflow:"hidden"}},children:[t.jsx(o.Box,{sx:{px:2,py:1.5,bgcolor:a=>$(a.palette.primary.main,.06)},children:t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600,color:"primary.main",fontSize:"0.875rem"},children:e.title})}),t.jsx(o.Divider,{}),t.jsxs(o.Box,{sx:{px:2,py:1.5,display:"flex",flexDirection:"column",gap:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{color:"text.secondary",fontSize:"0.8125rem",lineHeight:1.6},children:e.description}),e.tips&&e.tips.length>0&&t.jsx(o.Box,{component:"ul",sx:{m:0,pl:2,display:"flex",flexDirection:"column",gap:.5},children:e.tips.map((a,l)=>t.jsx(o.Box,{component:"li",sx:{fontSize:"0.8125rem",color:"text.secondary",lineHeight:1.5},children:a},l))}),r&&e.devNote&&t.jsxs(t.Fragment,{children:[t.jsx(o.Divider,{sx:{my:.5}}),t.jsxs(o.Box,{sx:{px:1.25,py:.75,borderRadius:"6px",bgcolor:a=>$(a.palette.warning.main,.08),border:"1px solid",borderColor:a=>$(a.palette.warning.main,.2)},children:[t.jsx(o.Typography,{variant:"caption",sx:{color:"warning.dark",fontWeight:500,display:"block",mb:.25},children:"Dev note"}),t.jsx(o.Typography,{variant:"caption",sx:{color:"warning.dark",lineHeight:1.5},children:e.devNote})]})]})]})]})]})}const Tr={filter:{title:"Filter columns",description:"Narrow down rows by setting conditions on any column. Only rows matching all active filters are shown.",tips:["Add multiple conditions to combine filters (AND logic)",'Use "Contains" for partial text matches','Use "Is empty" to find missing values',"Clear all filters to return to the full dataset"],devNote:"Max filter conditions controlled by DevConfig → Filter → maxConditions. Allowed operators also configurable."},sort:{title:"Sort columns",description:"Order rows by one or more columns. Drag levels to set sort priority — the first level is applied first.",tips:["Add multiple sort levels for multi-column sorting","Drag the ⋮⋮ handle to reorder sort priority","Each level can be ascending (A→Z, 0→9) or descending"],devNote:"Max sort levels controlled by DevConfig → Sort → maxLevels."},grouping:{title:"Group data",description:"Organize rows into collapsible groups by one or more column values. Each unique value becomes a group header.",tips:["Add up to 3 nesting levels for hierarchical grouping","Click a group header to collapse or expand it","Aggregates (count) are shown on each group header","Combine grouping with filters and sort for focused views"],devNote:"Max group levels controlled by DevConfig → Grouping → maxLevels. allowNested and allowCollapse also configurable."},columns:{title:"Manage columns",description:"Control which columns are visible, their display order, and their widths.",tips:["Drag rows to reorder columns","Toggle the eye icon to show or hide a column","Drag the resize handle in the table header to resize","Reset to restore default visibility and order"],devNote:"Max visible columns and width range controlled by DevConfig → Columns."},export:{title:"Export data",description:"Download the report data as a file. Choose between CSV, Excel, or JSON format.",tips:["CSV: universal format, opens in any spreadsheet app","Excel: formatted .xlsx file with native Excel support","JSON: structured data including metadata","Export visible rows only (after filters) or all rows"],devNote:"Allowed export formats controlled by DevConfig → Export → allowedFormats."},schedule:{title:"Scheduled reports",description:"Set up automatic exports that run at a specified time — daily, weekly, or monthly.",tips:["The browser tab must remain open for the schedule to fire","Each schedule triggers a file download automatically","Add an email address to open a notification in your mail app","Pause a schedule without deleting it"],devNote:"Schedules are stored in localStorage per-report. Key: urm_schedules_{reportId}."},auditHistory:{title:"Audit history",description:"A full log of all changes made to this report — filters applied, sorts changed, views saved, exports triggered, and more.",tips:["Each entry shows the action, timestamp, and who performed it","Use audit history to trace back unexpected changes"],devNote:"Audit entries are stored per-report in IndexedDB via the persistence layer."}},Fn=40;function Au({operator:e,onSelect:r}){return t.jsxs(o.Select,{value:e,onChange:n=>r(n.target.value),size:"small",variant:"outlined",sx:{position:"relative",zIndex:1,mt:1,width:58,height:24,fontSize:"0.6875rem",fontWeight:700,color:"primary.main",bgcolor:"background.paper",borderRadius:"6px","& .MuiSelect-select":{py:0,px:1,display:"flex",alignItems:"center"},"& .MuiOutlinedInput-notchedOutline":{borderColor:"divider"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"}},children:[t.jsx(o.MenuItem,{value:"and",sx:{fontSize:"0.75rem",fontWeight:600},children:"AND"}),t.jsx(o.MenuItem,{value:"or",sx:{fontSize:"0.75rem",fontWeight:600},children:"OR"})]})}function Ru({condition:e,schema:r,availableColumns:n,devConfig:i,onUpdate:a}){const l=r.find(u=>u.name===e.column),c=p.useMemo(()=>{const u=l?qo(l.type):[],h=i.filter.allowedOperators;return h.length>0?u.filter(g=>h.includes(g.value)):u},[l,i]),d=Il(e.operator);return t.jsxs(o.Box,{sx:{display:"flex",gap:1,alignItems:"center",flexWrap:"wrap"},children:[t.jsx(o.FormControl,{size:"small",sx:{minWidth:150,flex:"1 1 150px"},children:t.jsx(o.Select,{value:e.column,onChange:u=>{var f;const h=r.find(b=>b.name===u.target.value),g=h?qo(h.type):[];a({column:u.target.value,operator:((f=g[0])==null?void 0:f.value)??e.operator,value:void 0})},displayEmpty:!0,sx:{fontSize:"0.875rem",height:36,borderRadius:"4px",bgcolor:"background.paper"},children:n.map(u=>t.jsx(o.MenuItem,{value:u.name,sx:{fontSize:"0.875rem"},children:dt(u.name)},u.name))})}),t.jsx(o.FormControl,{size:"small",sx:{minWidth:130,flex:"1 1 130px"},children:t.jsx(o.Select,{value:e.operator,onChange:u=>a({operator:u.target.value,value:void 0}),sx:{fontSize:"0.875rem",height:36,borderRadius:"4px",bgcolor:"background.paper"},children:c.map(u=>t.jsx(o.MenuItem,{value:u.value,sx:{fontSize:"0.875rem"},children:u.label},u.value))})}),d&&(l==null?void 0:l.type)==="date"&&t.jsx(o.TextField,{size:"small",type:"date",value:e.value??"",onChange:u=>a({value:u.target.value}),sx:{minWidth:160,flex:"1 1 160px","& .MuiInputBase-root":{height:36,fontSize:"0.875rem"}}}),d&&(l==null?void 0:l.type)!=="date"&&t.jsx(o.TextField,{size:"small",type:(l==null?void 0:l.type)==="number"?"number":"text",value:e.value??"",onChange:u=>a({value:(l==null?void 0:l.type)==="number"?Number(u.target.value):u.target.value}),placeholder:"Value…",sx:{minWidth:160,flex:"1 1 160px","& .MuiInputBase-root":{height:36,fontSize:"0.875rem"}}})]})}function Zs({group:e,depth:r,schema:n,availableColumns:i,devConfig:a,maxConditions:l,totalConditions:c,onChange:d}){const u=c>=l;return t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:1.25},children:[e.children.map((h,g)=>t.jsxs(o.Box,{sx:{display:"flex",alignItems:"stretch",gap:1},children:[t.jsxs(o.Box,{sx:{width:Fn,flexShrink:0,position:"relative",display:"flex",justifyContent:"center"},children:[g<e.children.length-1&&t.jsx(o.Box,{sx:{position:"absolute",top:0,bottom:0,left:"50%",width:"1px",bgcolor:"divider"}}),g>0&&t.jsx(Au,{operator:e.operator,onSelect:f=>d(b=>Zn(b,e.id,f))}),g>0&&t.jsx(o.Box,{sx:{position:"absolute",top:13,left:"50%",width:Fn/2,height:"1px",bgcolor:"divider"}})]}),t.jsx(o.Box,{sx:{flex:1,minWidth:0,pt:g>0?1:0},children:Je(h)?t.jsx(Wu,{group:h,depth:r+1,schema:n,availableColumns:i,devConfig:a,maxConditions:l,totalConditions:c,onChange:d}):t.jsx(Ru,{condition:h,schema:n,availableColumns:i,devConfig:a,onUpdate:f=>d(b=>Qn(b,h.id,f))})}),t.jsx(o.IconButton,{size:"small",onClick:()=>d(f=>ei(f,h.id)),sx:{mt:g>0?1:.25,color:"text.secondary",flexShrink:0},children:t.jsx(D.Close,{sx:{fontSize:16}})})]},h.id)),t.jsxs(o.Box,{sx:{display:"flex",gap:2,pl:`${Fn}px`},children:[t.jsx(o.Button,{size:"small",disabled:u||i.length===0,onClick:()=>d(h=>{var g,f,b;return Zr(h,e.id,{id:Qr(),column:((g=i[0])==null?void 0:g.name)??"",operator:((b=qo(((f=i[0])==null?void 0:f.type)??"string")[0])==null?void 0:b.value)??"equals"})}),sx:{fontSize:"0.8125rem",color:"primary.main",p:0,minWidth:"auto","&:hover":{bgcolor:"transparent",textDecoration:"underline"}},children:"+ Add condition"}),t.jsx(o.Button,{size:"small",disabled:u,onClick:()=>d(h=>Zr(h,e.id,Bt())),sx:{fontSize:"0.8125rem",color:"text.secondary",p:0,minWidth:"auto","&:hover":{bgcolor:"transparent",textDecoration:"underline"}},children:"+ Add group"})]})]})}function Wu(e){return t.jsx(o.Box,{sx:{position:"relative",border:"1px solid",borderColor:r=>$(r.palette.primary.main,.2),borderLeft:"3px solid",borderLeftColor:"primary.main",bgcolor:r=>$(r.palette.primary.main,r.palette.mode==="dark"?.06:.03),borderRadius:"8px",p:1.25},children:t.jsx(Zs,{...e})})}function Pu({schema:e,filters:r,onReplaceFilters:n,onClose:i,focusColumn:a}){const[l,c]=p.useState(r??Bt()),d=wr(),u=p.useMemo(()=>e.filter(m=>m.type!=="mixed"&&m.type!=="null"&&m.type!=="array"&&m.type!=="object"),[e]);p.useEffect(()=>{var T;const m=r??Bt();if(a&&m.children.length===0){const x=e.find(z=>z.name===a);if(x){c(Zr(m,m.id,{id:Qr(),column:a,operator:((T=qo(x.type)[0])==null?void 0:T.value)??"equals"}));return}}c(m)},[r,a,e]);const h=bt(l),g=d.filter.maxConditions,f=p.useCallback(m=>{c(T=>m(T))},[]),b=p.useMemo(()=>JSON.stringify(l)!==JSON.stringify(r??Bt()),[l,r]),y=p.useCallback(()=>{n(l),i()},[l,n,i]),k=p.useCallback(()=>{c(r??Bt()),i()},[r,i]),v=p.useCallback(()=>{n(Bt()),i()},[n,i]);return t.jsx(o.Box,{onClick:k,sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:m=>$(m.palette.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:m=>m.zIndex.modal,animation:"fadeIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:m=>m.stopPropagation(),elevation:0,sx:{position:"relative",width:640,maxWidth:"calc(100vw - 120px)",maxHeight:"min(620px, calc(100vh - 200px))",display:"flex",flexDirection:"column",borderRadius:m=>Ze(m),bgcolor:"background.paper",outline:"none",boxShadow:m=>ae(m).paper.boxShadow,border:m=>ae(m).paper.border,overflow:"hidden",animation:"slideIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.95) translateY(-12px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2,bgcolor:m=>ae(m).header.backgroundColor,borderBottom:m=>ae(m).header.borderBottom,boxShadow:m=>ae(m).header.boxShadow,flexShrink:0},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",lineHeight:1.5},children:"Filter columns"}),t.jsx(kr,{content:Tr.filter,isDev:process.env.NODE_ENV==="development"})]}),t.jsx(o.IconButton,{onClick:k,size:"small",sx:{p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsxs(o.Box,{sx:{flex:1,overflow:"auto",px:3,py:2.5,"&::-webkit-scrollbar":{width:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:m=>$(m.palette.text.primary,.2),borderRadius:4,"&:hover":{bgcolor:m=>$(m.palette.text.primary,.3)}}},children:[h===0&&t.jsxs(o.Typography,{variant:"body2",sx:{color:"text.disabled",fontSize:"0.875rem",mb:2},children:["No conditions yet — add one below to start filtering",a?` on "${dt(a)}"`:"","."]}),t.jsx(Zs,{group:l,depth:0,schema:e,availableColumns:u,devConfig:d,maxConditions:g,totalConditions:h,onChange:f}),h>=g&&t.jsxs(o.Typography,{variant:"caption",sx:{display:"block",mt:1.5,color:"warning.dark",fontSize:"0.75rem",fontWeight:500},children:["Filter limit reached — maximum ",g," conditions allowed. Remove one to add another."]})]}),t.jsxs(o.Box,{sx:{px:3,py:2,borderTop:"1px solid divider",display:"flex",alignItems:"center",gap:1.5,justifyContent:"space-between",flexShrink:0,bgcolor:"action.hover"},children:[t.jsx(o.Button,{onClick:v,disabled:h===0,sx:{fontSize:"0.875rem",color:"error.main",p:0,minWidth:"auto","&:hover":{bgcolor:"transparent",color:"error.dark",textDecoration:"underline"},"&.Mui-disabled":{color:"text.disabled"}},children:"Clear all"}),t.jsxs(o.Box,{sx:{display:"flex",gap:1.5},children:[t.jsx(o.Button,{onClick:k,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:1,minHeight:36,borderRadius:m=>`${m.shape.borderRadius}px`,"&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:y,disabled:!b,variant:"contained",sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"background.paper",px:3,py:1,minHeight:36,borderRadius:m=>`${m.shape.borderRadius}px`,boxShadow:m=>fe(m,"restButton"),"&:hover":{bgcolor:"primary.dark"},"&.Mui-disabled":{bgcolor:"action.disabledBackground",color:"action.disabled"}},children:"Apply filter"})]})]})]})})}const cs="SORT_RULE";function Nu({rule:e,index:r,onToggleDirection:n,onRemove:i,onMove:a}){const l=p.useRef(null),[{handlerId:c},d]=Jt.useDrop({accept:cs,collect(g){return{handlerId:g.getHandlerId()}},hover(g,f){var x;if(!l.current)return;const b=g.index,y=r;if(b===y)return;const k=(x=l.current)==null?void 0:x.getBoundingClientRect(),v=(k.bottom-k.top)/2,m=f.getClientOffset(),T=((m==null?void 0:m.y)??0)-k.top;b<y&&T<v||b>y&&T>v||(a(b,y),g.index=y)}}),[{isDragging:u},h]=Jt.useDrag({type:cs,item:()=>({index:r}),collect:g=>({isDragging:g.isDragging()})});return h(d(l)),t.jsxs(o.Box,{ref:l,"data-handler-id":c,sx:{display:"flex",alignItems:"center",gap:1.25,px:2,py:1.25,borderRadius:"8px",bgcolor:"background.paper",border:"1px solid divider",opacity:u?.4:1,cursor:"move",transition:"all 0.2s cubic-bezier(0.4, 0, 0.2, 1)","&:hover":{bgcolor:"action.hover",borderColor:"divider",boxShadow:g=>fe(g,"restButtonLight"),transform:"translateY(-1px)"}},children:[t.jsx(o.Chip,{label:e.priority,size:"small",sx:{width:26,height:26,fontSize:"0.75rem",fontWeight:600,bgcolor:"primary.main",color:"background.paper",boxShadow:g=>`0 1px 2px 0 ${$(g.palette.primary.main,.3)}`,"& .MuiChip-label":{px:0}}}),t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:"3px",cursor:"grab",px:.5,opacity:.6,transition:"opacity 0.2s ease","&:hover":{opacity:1},"&:active":{cursor:"grabbing"}},children:[t.jsx(o.Box,{sx:{width:"4px",height:"4px",borderRadius:"50%",bgcolor:"text.secondary"}}),t.jsx(o.Box,{sx:{width:"4px",height:"4px",borderRadius:"50%",bgcolor:"text.secondary"}}),t.jsx(o.Box,{sx:{width:"4px",height:"4px",borderRadius:"50%",bgcolor:"text.secondary"}})]}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.875rem",fontWeight:400,color:"text.primary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",flex:"0 0 100px",lineHeight:1.5},children:e.column}),t.jsx(o.FormControl,{size:"small",sx:{flex:1,minWidth:100},children:t.jsxs(o.Select,{value:e.direction,onChange:g=>n(r,g.target.value),sx:{fontSize:"0.875rem",height:36,borderRadius:"4px",bgcolor:"background.paper","& .MuiOutlinedInput-notchedOutline":{borderColor:"divider",transition:"border-color 0.2s ease"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main",borderWidth:"2px"},"& .MuiSelect-select":{py:.875,color:"text.primary",fontWeight:400}},children:[t.jsx(o.MenuItem,{value:"asc",sx:{fontSize:"0.875rem",color:"text.primary","&:hover":{bgcolor:"action.hover"},"&.Mui-selected":{bgcolor:g=>vt(g),"&:hover":{bgcolor:g=>$(g.palette.primary.main,.2)}}},children:"Ascending"}),t.jsx(o.MenuItem,{value:"desc",sx:{fontSize:"0.875rem",color:"text.primary","&:hover":{bgcolor:"action.hover"},"&.Mui-selected":{bgcolor:g=>vt(g),"&:hover":{bgcolor:g=>$(g.palette.primary.main,.2)}}},children:"Descending"})]})}),t.jsx(o.IconButton,{onClick:()=>i(r),size:"small",sx:{p:.5,color:"text.secondary",transition:"all 0.2s ease","&:hover":{color:"error.main",bgcolor:g=>$(g.palette.error.main,.08),transform:"scale(1.1)"}},children:t.jsx(D.Close,{sx:{fontSize:18}})})]})}function Lu({schema:e,sortStack:r,onUpdateSortStack:n,onClose:i}){const[a,l]=p.useState(""),[c,d]=p.useState([]);p.useEffect(()=>{d([...r])},[r]);const u=p.useMemo(()=>JSON.stringify(c)!==JSON.stringify(r),[c,r]),h=wr(),g=p.useCallback(x=>{if(!x||c.length>=h.sort.maxLevels)return;const z={column:x,direction:"asc",priority:c.length+1};d([...c,z]),l(""),setTimeout(()=>{var B;return(B=document.activeElement)==null?void 0:B.blur()},0)},[c,h.sort.maxLevels]),f=p.useCallback(x=>{const B=c.filter((w,R)=>R!==x).map((w,R)=>({...w,priority:R+1}));d(B)},[c]),b=p.useCallback((x,z)=>{const B=[...c];B[x]={...B[x],direction:z},d(B)},[c]),y=p.useCallback((x,z)=>{const B=[...c],[w]=B.splice(x,1);B.splice(z,0,w);const R=B.map((j,M)=>({...j,priority:M+1}));d(R)},[c]),k=p.useCallback(()=>{n([]),i()},[n,i]),v=p.useCallback(()=>{n(c),i()},[c,n,i]),m=p.useCallback(()=>{d([...r]),l(""),i()},[r,i]),T=e.filter(x=>!c.some(z=>z.column===x.name));return t.jsx(Jt.DndProvider,{backend:Kn.HTML5Backend,children:t.jsx(o.Box,{onClick:m,sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:x=>$(x.palette.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:x=>x.zIndex.modal,animation:"fadeIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:x=>x.stopPropagation(),elevation:0,sx:{position:"relative",width:480,maxWidth:"calc(100vw - 120px)",maxHeight:"min(440px, calc(100vh - 280px))",display:"flex",flexDirection:"column",borderRadius:x=>Ze(x),bgcolor:"background.paper",outline:"none",boxShadow:x=>ae(x).paper.boxShadow,border:x=>ae(x).paper.border,overflow:"hidden",animation:"slideIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.95) translateY(-12px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2,bgcolor:x=>ae(x).header.backgroundColor,borderBottom:x=>ae(x).header.borderBottom,boxShadow:x=>ae(x).header.boxShadow,flexShrink:0},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",letterSpacing:"0",lineHeight:1.5},children:"Sort columns"}),t.jsx(kr,{content:Tr.sort,isDev:process.env.NODE_ENV==="development"})]}),t.jsx(o.IconButton,{onClick:m,size:"small",sx:{p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsxs(o.Box,{sx:{flex:1,overflow:"auto",px:3,py:2.5,"&::-webkit-scrollbar":{width:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:x=>$(x.palette.text.primary,.2),borderRadius:4,"&:hover":{bgcolor:x=>$(x.palette.text.primary,.3)}}},children:[t.jsxs(o.Box,{sx:{mb:2.5},children:[t.jsx(o.Typography,{variant:"overline",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",mb:1.5,display:"block",textTransform:"uppercase"},children:"Add sort level"}),t.jsxs(o.FormControl,{size:"small",fullWidth:!0,disabled:c.length>=h.sort.maxLevels,children:[t.jsx(o.InputLabel,{sx:{fontSize:"0.875rem",color:"text.secondary","&.Mui-focused":{color:"primary.main"}},children:"Select column..."}),t.jsx(o.Select,{value:a,onChange:x=>g(x.target.value),label:"Select column...",sx:{fontSize:"0.875rem",height:40,borderRadius:"4px",bgcolor:"background.paper","& .MuiOutlinedInput-notchedOutline":{borderColor:"divider",transition:"border-color 0.2s ease"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main",borderWidth:"2px"},"&.Mui-disabled":{bgcolor:"action.hover"}},children:T.map(x=>t.jsx(o.MenuItem,{value:x.name,sx:{fontSize:"0.875rem",color:"text.primary",py:1,"&:hover":{bgcolor:"action.hover"},"&.Mui-selected":{bgcolor:z=>vt(z),"&:hover":{bgcolor:z=>$(z.palette.primary.main,.2)}}},children:dt(x.name)},x.name))})]}),c.length>=h.sort.maxLevels&&t.jsxs(o.Typography,{variant:"caption",sx:{mt:.75,display:"block",color:"warning.dark",fontSize:"0.75rem",fontWeight:500},children:["Maximum ",h.sort.maxLevels," sort levels allowed"]})]}),c.length>0&&t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1.5},children:[t.jsxs(o.Typography,{variant:"overline",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",textTransform:"uppercase"},children:["Sorted sequence (",c.length,"/",h.sort.maxLevels,")"]}),t.jsx(o.Button,{onClick:k,sx:{fontSize:"0.875rem",color:"error.main",p:0,minWidth:"auto",minHeight:"auto",transition:"color 0.2s ease","&:hover":{bgcolor:"transparent",color:"error.dark",textDecoration:"underline"}},children:"Clear all"})]}),t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:1.25},children:c.map((x,z)=>t.jsx(Nu,{rule:x,index:z,onToggleDirection:b,onRemove:f,onMove:y},`${x.column}-${z}`))})]})]}),t.jsxs(o.Box,{sx:{px:3,py:2,borderTop:"1px solid divider",display:"flex",gap:1.5,justifyContent:"flex-end",flexShrink:0,bgcolor:"action.hover"},children:[t.jsx(o.Button,{onClick:m,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:1,minHeight:36,borderRadius:x=>`${x.shape.borderRadius}px`,transition:"all 0.2s ease","&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:v,variant:"contained",disabled:!u||c.length===0,sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"background.paper",px:3,py:1,minHeight:36,borderRadius:x=>`${x.shape.borderRadius}px`,boxShadow:x=>fe(x,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"primary.dark",boxShadow:x=>fe(x,"hoverButton")},"&:active":{boxShadow:x=>fe(x,"pressedButton"),transform:"translateY(1px)"}},children:"Apply sort"})]})]})})})}const Wo=50;function ds({currentSnapshot:e,onSave:r,onClose:n,isEditMode:i=!1,initialName:a="",initialDescription:l="",initialIsDefault:c=!1,atViewLimit:d=!1,maxViews:u=10}){const[h,g]=p.useState(a),[f,b]=p.useState(!1),[y,k]=p.useState(l),[v,m]=p.useState(c),T=()=>{if(!h.trim()){b(!0);return}if(h.trim().length>Wo){b(!0);return}r(h.trim(),y.trim(),v),n()},x=B=>{B.key==="Enter"&&!B.shiftKey?T():B.key==="Escape"&&n()},z=()=>i&&a?`Update ${a} view`:"Create New Report View";return t.jsxs(o.Dialog,{open:!0,onClose:n,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:B=>({mt:8,borderRadius:Ze(B),...ae(B).paper})},children:[t.jsxs(o.DialogTitle,{sx:B=>({display:"flex",alignItems:"center",justifyContent:"space-between",pb:1,...ae(B).header}),children:[z(),t.jsx(o.IconButton,{onClick:n,size:"small",sx:{color:"text.secondary"},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsx(o.DialogContent,{children:t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2,pt:1},children:[d&&!i&&t.jsxs(o.Alert,{severity:"warning",sx:{borderRadius:"8px"},children:["You have reached the maximum of ",u," saved views. Delete an existing view before creating a new one."]}),t.jsx(o.TextField,{label:"View Name",required:!0,value:h,onChange:B=>{B.target.value.length<=Wo&&g(B.target.value),f&&B.target.value.trim()&&b(!1)},onKeyDown:x,placeholder:"e.g., Active Users",autoFocus:!0,fullWidth:!0,size:"small",disabled:d&&!i,inputProps:{maxLength:Wo},error:f&&!h.trim(),helperText:f&&!h.trim()?"View name is required":`${h.length} / ${Wo}`}),t.jsx(o.TextField,{label:"Description (optional)",value:y,onChange:B=>k(B.target.value),placeholder:"Brief description of this view",multiline:!0,rows:2,fullWidth:!0,size:"small"}),t.jsxs(o.Paper,{sx:{p:2,bgcolor:"action.hover"},variant:"outlined",children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,mb:1},children:"This view will capture:"}),t.jsxs(o.Box,{component:"ul",sx:{m:0,pl:2,"& li":{fontSize:"body2.fontSize",color:"text.secondary"}},children:[t.jsxs("li",{children:[bt(e.filters)," filter",bt(e.filters)!==1?"s":""]}),t.jsxs("li",{children:["Sorting: ",Ha(e.sortStack)]}),t.jsx("li",{children:"Column order & visibility"})]})]}),!i&&t.jsx(o.FormControlLabel,{control:t.jsx(o.Checkbox,{checked:v,onChange:B=>m(B.target.checked),size:"small"}),label:t.jsx(o.Typography,{variant:"body2",children:"Set as default view"})})]})}),t.jsxs(o.DialogActions,{sx:{px:3,py:1.75,borderTop:"1px solid divider",bgcolor:"action.hover",gap:1.25,justifyContent:"flex-end"},children:[t.jsx(o.Button,{onClick:n,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:.875,minHeight:36,borderRadius:B=>`${B.shape.borderRadius}px`,transition:"all 0.2s ease","&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:T,variant:"contained",disabled:d&&!i,startIcon:t.jsx(D.Save,{sx:{fontSize:18}}),sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"background.paper",px:3,py:.875,minHeight:36,borderRadius:B=>`${B.shape.borderRadius}px`,boxShadow:B=>fe(B,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"primary.dark",boxShadow:B=>fe(B,"hoverButton")},"&:active":{boxShadow:B=>fe(B,"pressedButton"),transform:"translateY(1px)"},"&.Mui-disabled":{bgcolor:"divider",color:"text.disabled"}},children:i?"Save Changes":"Create Report View"})]})]})}function Fu({viewName:e,onConfirm:r,onCancel:n}){return t.jsxs(o.Dialog,{open:!0,onClose:n,maxWidth:"sm",fullWidth:!0,PaperProps:{sx:i=>({borderRadius:Ze(i),maxHeight:"min(480px, calc(100vh - 180px))",my:"auto",...ae(i).paper})},children:[t.jsxs(o.DialogTitle,{sx:i=>({display:"flex",alignItems:"center",justifyContent:"space-between",pb:1,...ae(i).header}),children:["Delete View",t.jsx(o.IconButton,{onClick:n,size:"small",sx:{color:"text.secondary"},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsx(o.DialogContent,{children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"flex-start",gap:1.5,mt:1},children:[t.jsx(D.Warning,{color:"error",sx:{fontSize:20,flexShrink:0}}),t.jsxs(o.Box,{children:[t.jsxs(o.Typography,{variant:"body2",sx:{mb:1},children:["Are you sure you want to delete the view ",t.jsxs("strong",{children:['"',e,'"']}),"?"]}),t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:"This action cannot be undone."})]})]})}),t.jsxs(o.DialogActions,{sx:{px:3,py:1.75,borderTop:"1px solid",borderColor:"divider",bgcolor:"action.hover",gap:1.25,justifyContent:"flex-end"},children:[t.jsx(o.Button,{onClick:n,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:.875,minHeight:36,borderRadius:i=>`${i.shape.borderRadius}px`,transition:"all 0.2s ease","&:hover":{bgcolor:"action.selected",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:r,variant:"contained",color:"error",sx:{fontSize:"0.875rem",px:3,py:.875,minHeight:36,borderRadius:i=>`${i.shape.borderRadius}px`,boxShadow:i=>fe(i,"restButton"),transition:"all 0.2s ease","&:hover":{boxShadow:i=>fe(i,"hoverButton")},"&:active":{boxShadow:i=>fe(i,"pressedButton"),transform:"translateY(1px)"}},children:"Delete View"})]})]})}const Lo=100,Fo=600,us="COLUMN";function Vu({column:e,index:r,isVisible:n,width:i,onToggleVisibility:a,onWidthChange:l,moveColumn:c}){const d=p.useRef(null),[u,h]=p.useState(i.toString());p.useEffect(()=>{h(i.toString())},[i]);const[{handlerId:g},f]=Jt.useDrop({accept:us,collect(x){return{handlerId:x.getHandlerId()}},hover(x,z){var q;if(!d.current)return;const B=x.index,w=r;if(B===w)return;const R=(q=d.current)==null?void 0:q.getBoundingClientRect(),j=(R.bottom-R.top)/2,M=z.getClientOffset(),A=((M==null?void 0:M.y)??0)-R.top;B<w&&A<j||B>w&&A>j||(c(B,w),x.index=w)}}),[{isDragging:b},y]=Jt.useDrag({type:us,item:()=>({index:r}),collect:x=>({isDragging:x.isDragging()})});y(f(d));const k=()=>{const x=parseInt(u);if(isNaN(x)){h(i.toString()),l(e.name,i);return}const z=Math.max(Lo,Math.min(Fo,x));h(z.toString()),l(e.name,z)},v=x=>{if(x===""||/^\d+$/.test(x)){h(x);const z=parseInt(x);if(!isNaN(z)&&z>=Lo){const B=Math.min(Fo,z);l(e.name,B)}}},m=x=>{x.key==="Enter"&&(x.preventDefault(),k(),x.target.blur())},T=x=>({string:"primary.main",number:"success.main",boolean:"secondary.main",array:"info.main",object:"error.main",null:"text.secondary",mixed:"text.secondary"})[x]||"text.secondary";return t.jsxs(o.TableRow,{ref:d,"data-handler-id":g,sx:{opacity:b?.4:1,bgcolor:n?"background.paper":"action.hover",transition:"opacity 0.15s ease","&:hover":{bgcolor:n?"action.hover":"action.selected"},cursor:"move",height:56,borderBottom:"1px solid divider"},children:[t.jsx(o.TableCell,{sx:{py:1.5,px:2.5,borderBottom:"none"},children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.25},children:[t.jsx(o.Box,{sx:{color:"text.secondary",cursor:"grab",opacity:.6,transition:"opacity 0.2s ease","&:hover":{opacity:1},"&:active":{cursor:"grabbing"}},children:t.jsx(D.DragIndicator,{sx:{fontSize:20}})}),t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:400,fontSize:"0.875rem",color:n?"text.primary":"text.secondary"},children:dt(e.name)})]})}),t.jsx(o.TableCell,{sx:{py:1.5,px:2.5,borderBottom:"none"},children:t.jsx(o.Chip,{label:e.type.toUpperCase(),size:"small",sx:{height:22,fontSize:"0.6875rem",fontWeight:600,bgcolor:`${T(e.type)}15`,color:T(e.type),border:`1px solid ${T(e.type)}30`,"& .MuiChip-label":{px:1}}})}),t.jsx(o.TableCell,{sx:{py:1.5,px:2.5,borderBottom:"none"},children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(o.TextField,{type:"number",value:u,onChange:x=>v(x.target.value),onBlur:k,onKeyDown:m,placeholder:"150",size:"small",inputProps:{min:Lo,max:Fo,step:10},sx:{width:90,"& .MuiOutlinedInput-root":{height:32,fontSize:"0.8125rem",borderRadius:"4px",bgcolor:"background.paper","& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"primary.main"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:"2px"}},"& .MuiInputBase-input":{py:.5,px:1.25,color:"text.primary"},"& input[type=number]::-webkit-inner-spin-button":{opacity:1},"& input[type=number]::-webkit-outer-spin-button":{opacity:1}}}),t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.75rem",color:"text.secondary"},children:"px"})]})}),t.jsx(o.TableCell,{sx:{py:1.5,px:2.5,borderBottom:"none"},children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.25},children:[t.jsx(o.IconButton,{onClick:()=>a(e.name,!n),title:n?"Hide column":"Show column",size:"small",sx:{p:.75,color:n?"primary.main":"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:n?"primary.dark":"primary.main"}},children:n?t.jsx(D.Visibility,{sx:{fontSize:20}}):t.jsx(D.VisibilityOff,{sx:{fontSize:20}})}),t.jsx(o.Chip,{label:n?"Visible":"Hidden",size:"small",sx:{height:22,fontSize:"0.6875rem",fontWeight:500,bgcolor:n?x=>$(x.palette.success.main,.12):"action.selected",color:n?"success.main":"text.secondary","& .MuiChip-label":{px:1}}})]})})]})}function Hu({schema:e,columnVisibility:r,columnOrder:n,columnWidths:i={},views:a=[],activeViewId:l="",onUpdateColumnVisibility:c,onUpdateColumnOrder:d,onUpdateColumnWidth:u,onResetLayout:h,onClose:g}){const[f,b]=p.useState(!1),[y,k]=p.useState(n),[v,m]=p.useState(i),[T,x]=p.useState("all");p.useEffect(()=>{k(n)},[n]),p.useEffect(()=>{m(i)},[i]);const z=(s,N)=>{m(L=>({...L,[s]:N})),u==null||u(s,N)},B=(s,N)=>{const L=[...y],[re]=L.splice(s,1);L.splice(N,0,re),k(L),d(L)},w=()=>{h(),b(!1)},j=y.map(s=>e.find(N=>N.name===s)).filter(s=>s!==void 0).filter(s=>{const N=r[s.name]??!0;return T==="active"?N:T==="hidden"?!N:!0}),M=Object.values(r).filter(s=>s).length,A=e.length,q=a.find(s=>s.id===l),te=p.useMemo(()=>{if(!q)return!1;const s=q.snapshot,N=s.columnVisibility??{},L=JSON.stringify(r)!==JSON.stringify(N),re=s.columnOrder??[],le=n??[],J=JSON.stringify(le)!==JSON.stringify(re)&&!(le.length===0&&re.length===0),ee=s.columnWidths??{},Ce=JSON.stringify(v)!==JSON.stringify(ee);return L||J||Ce},[q,r,n,v]);return t.jsx(Jt.DndProvider,{backend:Kn.HTML5Backend,children:t.jsx(o.Box,{onClick:g,sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:s=>$(s.palette.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:s=>s.zIndex.modal,animation:"fadeIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:s=>s.stopPropagation(),elevation:0,sx:{position:"relative",width:720,maxWidth:"calc(100vw - 120px)",maxHeight:"min(760px, calc(100vh - 200px))",display:"flex",flexDirection:"column",borderRadius:s=>Ze(s),bgcolor:"background.paper",outline:"none",boxShadow:s=>ae(s).paper.boxShadow,border:s=>ae(s).paper.border,overflow:"hidden",animation:"slideIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.95) translateY(-12px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{px:3,pt:2,pb:1.5,flexShrink:0,bgcolor:s=>ae(s).header.backgroundColor,borderBottom:s=>ae(s).header.borderBottom,boxShadow:s=>ae(s).header.boxShadow},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[t.jsx(o.Box,{sx:{flex:1},children:t.jsxs(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",letterSpacing:"0",lineHeight:1.5},children:["Manage columns",t.jsx(kr,{content:Tr.columns,isDev:process.env.NODE_ENV==="development"})]})}),t.jsx(o.IconButton,{onClick:g,size:"small",sx:{ml:2,p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsxs(o.Tabs,{value:T,onChange:(s,N)=>x(N),sx:{minHeight:36,mt:.5,"& .MuiTabs-indicator":{bgcolor:s=>It(s).main,height:3}},children:[t.jsx(o.Tab,{label:"All",value:"all",sx:{minHeight:36,py:.75,fontSize:"0.875rem",fontWeight:500,textTransform:"none",color:"text.secondary","&.Mui-selected":{color:s=>It(s).main}}}),t.jsx(o.Tab,{label:"Visible",value:"active",sx:{minHeight:36,py:.75,fontSize:"0.875rem",fontWeight:500,textTransform:"none",color:"text.secondary","&.Mui-selected":{color:s=>It(s).main}}}),t.jsx(o.Tab,{label:"Hidden",value:"hidden",sx:{minHeight:36,py:.75,fontSize:"0.875rem",fontWeight:500,textTransform:"none",color:"text.secondary","&.Mui-selected":{color:s=>It(s).main}}})]})]}),t.jsx(o.Box,{sx:{flex:1,overflow:"auto","&::-webkit-scrollbar":{width:8,height:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:s=>$(s.palette.text.primary,.2),borderRadius:4,"&:hover":{bgcolor:s=>$(s.palette.text.primary,.3)}}},children:t.jsxs(o.Table,{stickyHeader:!0,sx:{minWidth:650},children:[t.jsx(o.TableHead,{children:t.jsxs(o.TableRow,{children:[t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"0.6875rem",color:"text.secondary",bgcolor:"background.paper",letterSpacing:"0.1em",py:1.5,px:2.5,borderBottom:"1px solid divider"},children:"Column name"}),t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"0.6875rem",color:"text.secondary",bgcolor:"background.paper",letterSpacing:"0.1em",py:1.5,px:2.5,borderBottom:"1px solid divider"},children:"Type"}),t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"0.6875rem",color:"text.secondary",bgcolor:"background.paper",letterSpacing:"0.1em",py:1.5,px:2.5,borderBottom:"1px solid divider"},children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:["Width",t.jsx(o.Tooltip,{title:`Column width in pixels (min: ${Lo}px, max: ${Fo}px)`,arrow:!0,placement:"top",children:t.jsx(D.InfoOutlined,{sx:{fontSize:14,color:"text.secondary",cursor:"help"}})})]})}),t.jsx(o.TableCell,{sx:{fontWeight:600,textTransform:"uppercase",fontSize:"0.6875rem",color:"text.secondary",bgcolor:"background.paper",letterSpacing:"0.1em",py:1.5,px:2.5,borderBottom:"1px solid divider"},children:"Visibility"})]})}),t.jsx(o.TableBody,{children:j.length===0?t.jsx(o.TableRow,{children:t.jsx(o.TableCell,{colSpan:4,align:"center",sx:{py:6,borderBottom:"none"},children:t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.875rem",color:"text.secondary"},children:"No columns in this category"})})}):j.map((s,N)=>t.jsx(Vu,{column:s,index:N,isVisible:r[s.name]??!0,width:v[s.name]||170,onToggleVisibility:c,onWidthChange:z,moveColumn:B},s.name))})]})}),t.jsx(o.Box,{sx:{px:3,py:1,borderTop:"1px solid divider",bgcolor:"background.default",flexShrink:0},children:t.jsxs(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.secondary"},children:[M," of ",A," columns visible • Drag to reorder"]})}),t.jsx(o.Box,{sx:{px:3,py:1.75,borderTop:"1px solid divider",display:"flex",justifyContent:"space-between",alignItems:"center",flexShrink:0,bgcolor:"action.hover"},children:t.jsx(o.Button,{onClick:()=>b(!0),disabled:!te,variant:"outlined",startIcon:t.jsx(D.Undo,{sx:{fontSize:18}}),sx:{fontSize:"0.875rem",color:"text.secondary",borderColor:"divider",px:2.5,py:.875,minHeight:36,borderRadius:s=>`${s.shape.borderRadius}px`,"&:hover":{borderColor:"primary.main",bgcolor:"background.paper",color:"primary.main"},"&.Mui-disabled":{color:"text.disabled",borderColor:"divider"}},children:"Reset"})}),f&&t.jsx(o.Box,{onClick:()=>b(!1),sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:s=>$(s.palette.common.black,.5),display:"flex",alignItems:"center",justifyContent:"center",zIndex:s=>s.zIndex.tooltip},children:t.jsxs(o.Paper,{onClick:s=>s.stopPropagation(),elevation:0,sx:{width:400,maxWidth:"90vw",borderRadius:s=>Co(s),bgcolor:"background.paper",boxShadow:s=>ae(s).paper.boxShadow,border:s=>ae(s).paper.border},children:[t.jsxs(o.Box,{sx:{px:3,py:2.5},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1rem",fontWeight:500,color:"text.primary",mb:1.5},children:"Reset column layout?"}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.875rem",color:"text.secondary",lineHeight:1.5},children:"This will restore default visibility, order, and widths for all columns."})]}),t.jsxs(o.Box,{sx:{px:3,py:2,borderTop:"1px solid divider",display:"flex",gap:1.5,justifyContent:"flex-end",bgcolor:"action.hover"},children:[t.jsx(o.Button,{onClick:()=>b(!1),variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:1,borderRadius:s=>`${s.shape.borderRadius}px`,"&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:w,variant:"contained",sx:{fontSize:"0.875rem",bgcolor:"error.main",color:"background.paper",px:3,py:1,borderRadius:s=>`${s.shape.borderRadius}px`,boxShadow:s=>fe(s,"pressedButton"),"&:hover":{bgcolor:"error.dark",boxShadow:s=>fe(s,"hoverButton")},"&:active":{boxShadow:s=>fe(s,"pressedButton"),transform:"translateY(1px)"}},children:"Reset layout"})]})]})})]})})})}function Uu({schema:e,grouping:r,onApply:n,onClose:i}){var R;const[a,l]=p.useState(r||{enabled:!1,levels:[],collapsedGroups:[]}),[c,d]=p.useState(""),[u,h]=p.useState(null),g=p.useMemo(()=>Wa(e),[e]),f=p.useMemo(()=>g.filter(j=>!a.levels.some((M,A)=>M.column===j.name&&A!==u)),[g,a.levels,u]),b=wr(),y=a.levels.length<b.grouping.maxLevels&&f.length>0,k=p.useCallback(j=>{!y||!j||(l({...a,levels:[...a.levels,{column:j}],enabled:!0}),d(""),setTimeout(()=>{var M;return(M=document.activeElement)==null?void 0:M.blur()},0))},[y,a]),v=p.useCallback(j=>{const M=a.levels.filter((A,q)=>q!==j);if(M.length===0){n(null),i();return}l({...a,levels:M,enabled:M.length>0})},[a,n,i]),m=p.useCallback(j=>{h(j),d(a.levels[j].column)},[a.levels]),T=p.useCallback(()=>{if(u===null||!c)return;const j=[...a.levels];j[u]={column:c},l({...a,levels:j}),h(null),d("")},[u,c,a]),x=p.useCallback(()=>{h(null),d("")},[]),z=p.useCallback((j,M)=>{const A=M==="up"?j-1:j+1;if(A<0||A>=a.levels.length)return;const q=[...a.levels],[te]=q.splice(j,1);q.splice(A,0,te),l({...a,levels:q})},[a]),B=p.useCallback(()=>{n(null),i()},[n,i]),w=p.useCallback(()=>{a.levels.length===0?n(null):n({...a,enabled:!0,collapsedGroups:(r==null?void 0:r.collapsedGroups)||[]}),i()},[a,r,n,i]);return t.jsx(o.Box,{onClick:i,sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:j=>$(j.palette.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:j=>j.zIndex.modal,animation:"fadeIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:j=>j.stopPropagation(),elevation:0,sx:{position:"relative",width:540,maxWidth:"calc(100vw - 120px)",maxHeight:"min(560px, calc(100vh - 280px))",display:"flex",flexDirection:"column",borderRadius:j=>Ze(j),bgcolor:"background.paper",outline:"none",boxShadow:j=>ae(j).paper.boxShadow,border:j=>ae(j).paper.border,overflow:"hidden",animation:"slideIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.95) translateY(-12px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2,bgcolor:j=>ae(j).header.backgroundColor,borderBottom:j=>ae(j).header.borderBottom,boxShadow:j=>ae(j).header.boxShadow,flexShrink:0},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",letterSpacing:"0",lineHeight:1.5},children:"Group configuration"}),t.jsx(kr,{content:Tr.grouping,isDev:process.env.NODE_ENV==="development"})]}),t.jsx(o.IconButton,{onClick:i,size:"small",sx:{p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsx(o.Box,{sx:{flex:1,overflow:"auto",px:3,py:1,"&::-webkit-scrollbar":{width:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:j=>$(j.palette.text.primary,.2),borderRadius:4,"&:hover":{bgcolor:j=>$(j.palette.text.primary,.3)}}},children:t.jsxs(o.Stack,{spacing:2.5,children:[u===null&&t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"overline",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",mb:1.5,display:"block",textTransform:"uppercase"},children:"Add group level"}),t.jsx(o.FormControl,{fullWidth:!0,size:"small",sx:{mb:1.5},children:t.jsxs(o.Select,{value:c,onChange:j=>k(j.target.value),disabled:!y,displayEmpty:!0,sx:{fontSize:"0.875rem",height:40,borderRadius:"4px",bgcolor:"background.paper","& .MuiOutlinedInput-notchedOutline":{borderColor:"divider",transition:"border-color 0.2s ease"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main",borderWidth:"2px"},"&.Mui-disabled":{bgcolor:"action.hover"}},children:[t.jsx(o.MenuItem,{value:"",sx:{fontSize:"0.875rem",color:"text.secondary"},children:"Select a column..."}),f.map(j=>t.jsxs(o.MenuItem,{value:j.name,sx:{fontSize:"0.875rem",color:"text.primary",py:1,"&:hover":{bgcolor:"action.hover"},"&.Mui-selected":{bgcolor:M=>vt(M),"&:hover":{bgcolor:M=>$(M.palette.primary.main,.2)}}},children:[dt(j.name)," (",j.type.toUpperCase(),")"]},j.name))]})}),a.levels.length>=b.grouping.maxLevels&&t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",textAlign:"center",mt:1.5,fontSize:"0.75rem",color:"text.secondary"},children:"Maximum group levels (3) reached"}),g.length===0&&t.jsx(o.Typography,{variant:"body2",color:"text.secondary",sx:{textAlign:"center",py:2,fontSize:"0.875rem",color:"text.secondary"},children:"No groupable columns available. Only STRING and BOOLEAN columns can be grouped."})]}),u!==null&&t.jsxs(o.Alert,{severity:"warning",sx:{borderRadius:"8px",border:j=>`1px solid ${$(j.palette.warning.main,.5)}`,bgcolor:j=>$(j.palette.warning.main,.12),"& .MuiAlert-icon":{color:"warning.main"}},children:[t.jsxs(o.Typography,{variant:"body2",sx:{fontWeight:500,mb:1.5,fontSize:"0.875rem",color:"text.primary"},children:["Edit Group Level ",u+1]}),t.jsx(o.FormControl,{fullWidth:!0,size:"small",sx:{mb:1.5},children:t.jsxs(o.Select,{value:c,onChange:j=>d(j.target.value),sx:{fontSize:"0.875rem",height:40,borderRadius:"4px",bgcolor:"background.paper","& .MuiOutlinedInput-notchedOutline":{borderColor:"divider"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main"},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"primary.main",borderWidth:"2px"}},children:[t.jsx(o.MenuItem,{value:"",sx:{fontSize:"0.875rem"},children:"Select a column..."}),t.jsxs(o.MenuItem,{value:a.levels[u].column,sx:{fontSize:"0.875rem","&.Mui-selected":{bgcolor:j=>vt(j)}},children:[a.levels[u].column," (",(R=e.find(j=>j.name===a.levels[u].column))==null?void 0:R.type.toUpperCase(),")"]}),f.filter(j=>j.name!==a.levels[u].column).map(j=>t.jsxs(o.MenuItem,{value:j.name,sx:{fontSize:"0.875rem","&.Mui-selected":{bgcolor:M=>vt(M)}},children:[dt(j.name)," (",j.type.toUpperCase(),")"]},j.name))]})}),t.jsxs(o.Stack,{direction:"row",spacing:1.5,children:[t.jsx(o.Button,{onClick:T,disabled:!c,variant:"contained",fullWidth:!0,size:"small",sx:{fontSize:"0.875rem",bgcolor:"warning.main",color:"background.paper",py:.875,boxShadow:"none","&:hover":{bgcolor:"warning.dark",boxShadow:j=>fe(j,"pressedButton")}},children:"Save"}),t.jsx(o.Button,{onClick:x,variant:"outlined",fullWidth:!0,size:"small",sx:{fontSize:"0.875rem",color:"text.secondary",borderColor:"divider",py:.875,"&:hover":{borderColor:"text.secondary",bgcolor:"action.hover"}},children:"Cancel"})]})]}),a.levels.length>0&&u===null&&t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:1.5},children:[t.jsx(o.Typography,{variant:"overline",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",textTransform:"uppercase"},children:"Active group levels"}),t.jsx(o.Button,{onClick:B,size:"small",sx:{fontSize:"0.875rem",color:"error.main",p:0,minWidth:"auto","&:hover":{bgcolor:"transparent",color:"error.dark",textDecoration:"underline"}},children:"Clear all"})]}),t.jsx(o.Stack,{spacing:1.5,children:a.levels.map((j,M)=>{const A=e.find(q=>q.name===j.column);return t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5,p:2,borderRadius:"8px",bgcolor:"background.paper",border:"1px solid divider",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",borderColor:"divider",boxShadow:q=>fe(q,"pressedButtonLight")}},children:[t.jsx(o.Chip,{label:`L${M+1}`,size:"small",sx:{width:40,height:28,fontWeight:600,fontSize:"0.75rem",bgcolor:"primary.main",color:"background.paper",boxShadow:q=>`0 1px 2px 0 ${$(q.palette.primary.main,.3)}`}}),t.jsxs(o.Box,{sx:{flex:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,fontSize:"0.875rem",color:"text.primary"},children:j.column}),t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.75rem",color:"text.secondary"},children:A==null?void 0:A.type.toUpperCase()})]}),t.jsxs(o.Stack,{direction:"row",spacing:.5,children:[t.jsx(o.IconButton,{size:"small",onClick:()=>z(M,"up"),disabled:M===0,sx:{color:"text.secondary","&:hover":{bgcolor:"action.hover"},"&.Mui-disabled":{color:"divider"}},children:t.jsx(D.KeyboardArrowUp,{sx:{fontSize:18}})}),t.jsx(o.IconButton,{size:"small",onClick:()=>z(M,"down"),disabled:M===a.levels.length-1,sx:{color:"text.secondary","&:hover":{bgcolor:"action.hover"},"&.Mui-disabled":{color:"divider"}},children:t.jsx(D.KeyboardArrowDown,{sx:{fontSize:18}})}),t.jsx(o.IconButton,{size:"small",onClick:()=>m(M),sx:{color:"text.secondary","&:hover":{bgcolor:"action.hover",color:"primary.main"}},children:t.jsx(D.Edit,{sx:{fontSize:18}})}),t.jsx(o.IconButton,{size:"small",onClick:()=>v(M),sx:{color:"text.secondary","&:hover":{bgcolor:q=>$(q.palette.error.main,.08),color:"error.main"}},children:t.jsx(D.Delete,{sx:{fontSize:18}})})]})]},M)})})]})]})}),t.jsxs(o.Box,{sx:{px:3,py:2,borderTop:"1px solid divider",display:"flex",gap:1.5,justifyContent:"flex-end",flexShrink:0,bgcolor:"action.hover"},children:[t.jsx(o.Button,{onClick:i,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:1,minHeight:36,borderRadius:j=>`${j.shape.borderRadius}px`,transition:"all 0.2s ease","&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:w,variant:"contained",disabled:a.levels.length===0,sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"background.paper",px:3,py:1,minHeight:36,borderRadius:j=>`${j.shape.borderRadius}px`,boxShadow:j=>fe(j,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"primary.dark",boxShadow:j=>fe(j,"hoverButton")},"&:active":{boxShadow:j=>fe(j,"pressedButton"),transform:"translateY(1px)"}},children:"Apply grouping"})]})]})})}function Gu({onExportAnyway:e,onSaveAndExport:r,onCancel:n}){return t.jsx(o.Box,{sx:{mb:2,mx:3,mt:2},children:t.jsxs(o.Alert,{severity:"warning",icon:t.jsx(D.Warning,{sx:{fontSize:20}}),action:t.jsx(o.IconButton,{size:"small",onClick:n,sx:{color:"warning.main"},children:t.jsx(D.Close,{sx:{fontSize:20}})}),sx:{alignItems:"flex-start"},children:[t.jsx(o.Typography,{variant:"subtitle2",sx:{fontWeight:600,mb:.5},children:"You are exporting with unsaved view changes"}),t.jsx(o.Typography,{variant:"body2",sx:{mb:1.5},children:"Your current view has unsaved changes. Choose how to proceed:"}),t.jsxs(o.Box,{sx:{display:"flex",gap:1},children:[t.jsx(o.Button,{onClick:r,variant:"contained",color:"primary",startIcon:t.jsx(D.Save,{sx:{fontSize:14}}),size:"small",children:"Save View & Export"}),t.jsx(o.Button,{onClick:e,variant:"contained",color:"warning",startIcon:t.jsx(D.Download,{sx:{fontSize:14}}),size:"small",children:"Export Anyway"})]})]})})}const ps=[{key:"1h",label:"Last 1 Hour",ms:3600*1e3},{key:"24h",label:"Last 24 Hours",ms:1440*60*1e3},{key:"7d",label:"Last 7 Days",ms:10080*60*1e3},{key:"30d",label:"Last 30 Days",ms:720*60*60*1e3},{key:"all",label:"All Time",ms:null}];function Yu(e,r){if(r===null)return e.length;const n=Date.now()-r;return e.filter(i=>new Date(i.timestamp).getTime()>=n).length}function qu(e,r){if(r===null)return[];const n=Date.now()-r;return e.filter(i=>new Date(i.timestamp).getTime()<n)}function Ju({auditHistory:e,onClose:r,onClearAuditHistory:n}){const i=st(),a=i.palette,[l,c]=p.useState("1h"),[d,u]=p.useState(!1),h=[...e].sort((k,v)=>new Date(v.timestamp).getTime()-new Date(k.timestamp).getTime()),g=ps.find(k=>k.key===l),f=Yu(e,g.ms),b=()=>u(!0),y=()=>{n&&(n(qu(e,g.ms)),u(!1))};return t.jsxs(t.Fragment,{children:[t.jsx(o.Box,{onClick:r,sx:{position:"fixed",inset:0,bgcolor:$(a.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:i.zIndex.modal,animation:"fadeIn 0.2s ease","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:k=>k.stopPropagation(),elevation:0,sx:{width:520,maxWidth:"calc(100vw - 48px)",maxHeight:"min(700px, calc(100vh - 80px))",display:"flex",flexDirection:"column",borderRadius:Ze(i),bgcolor:"background.paper",overflow:"hidden",...ae(i).paper,animation:"slideIn 0.2s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.96) translateY(-8px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{px:2.5,py:1.75,display:"flex",alignItems:"center",justifyContent:"space-between",gap:1.5,flexShrink:0,...ae(i).header},children:[t.jsxs(o.Box,{sx:{minWidth:0},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:[t.jsx(o.Typography,{sx:{fontSize:"0.9375rem",fontWeight:600,color:"text.primary"},children:"Audit History"}),t.jsx(kr,{content:Tr.auditHistory,isDev:process.env.NODE_ENV==="development"})]}),t.jsxs(o.Typography,{sx:{fontSize:"0.75rem",color:"text.secondary",mt:.125},children:[h.length," event",h.length!==1?"s":""," recorded"]})]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1,flexShrink:0},children:[n&&e.length>0&&t.jsxs(t.Fragment,{children:[t.jsx(o.Select,{value:l,onChange:k=>c(k.target.value),size:"small",variant:"outlined",sx:{fontSize:"0.75rem",height:30,minWidth:120,"& .MuiSelect-select":{py:.375,px:1,fontSize:"0.75rem"},"& .MuiOutlinedInput-notchedOutline":{borderColor:"divider"},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:$(a.text.primary,.3)}},children:ps.map(k=>t.jsx(o.MenuItem,{value:k.key,sx:{fontSize:"0.8125rem"},children:k.label},k.key))}),t.jsx(o.Button,{size:"small",variant:"outlined",color:"error",startIcon:t.jsx(D.DeleteSweepOutlined,{sx:{fontSize:14}}),onClick:b,sx:{fontSize:"0.75rem",borderRadius:"7px",px:1.25,height:30,whiteSpace:"nowrap",borderColor:$(a.error.main,.5),"&:hover":{bgcolor:$(a.error.main,.06),borderColor:"error.main"}},children:"Clear Logs"})]}),t.jsx(o.IconButton,{onClick:r,size:"small",sx:{color:"text.secondary",borderRadius:"7px","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(D.Close,{sx:{fontSize:17}})})]})]}),t.jsx(o.Box,{sx:{flex:1,overflowY:"auto",px:2,py:1.5,bgcolor:$(a.text.primary,.012),"&::-webkit-scrollbar":{width:5},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:$(a.text.primary,.14),borderRadius:3}},children:h.length===0?t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",py:8,gap:1,textAlign:"center"},children:[t.jsx(D.AccessTime,{sx:{fontSize:44,color:"text.disabled",opacity:.5}}),t.jsx(o.Typography,{sx:{fontSize:"0.9375rem",color:"text.secondary",fontWeight:500},children:"No audit events yet"}),t.jsx(o.Typography,{sx:{fontSize:"0.8125rem",color:"text.disabled"},children:"Changes to this report will appear here"})]}):t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:.75},children:h.map(k=>{const v=du(i,k.feature),{summary:m,detail:T}=nl(k);return t.jsxs(o.Box,{sx:{display:"flex",alignItems:"flex-start",gap:1.25,px:1.5,py:1.25,borderRadius:"10px",bgcolor:"background.paper",border:"1px solid",borderColor:"divider",transition:"border-color 0.15s","&:hover":{borderColor:$(a.text.primary,.18)}},children:[t.jsx(o.Chip,{label:al(k.feature),size:"small",sx:{height:20,fontSize:"0.5625rem",fontWeight:700,letterSpacing:"0.04em",textTransform:"uppercase",bgcolor:$(v,.1),color:v,border:`1px solid ${$(v,.22)}`,flexShrink:0,mt:.125,"& .MuiChip-label":{px:.75}}}),t.jsxs(o.Box,{sx:{flex:1,minWidth:0},children:[t.jsx(o.Typography,{sx:{fontSize:"0.8125rem",fontWeight:500,color:"text.primary",lineHeight:1.45,wordBreak:"break-word"},children:m}),T&&t.jsx(o.Typography,{sx:{fontSize:"0.75rem",color:"text.secondary",mt:.25,lineHeight:1.4},children:T}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1,mt:.5,flexWrap:"wrap"},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.375},children:[t.jsx(D.AccessTime,{sx:{fontSize:11,color:"text.disabled"}}),t.jsx(o.Typography,{sx:{fontSize:"0.6875rem",color:"text.disabled"},children:ll(k.timestamp)})]}),k.user&&t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.375},children:[t.jsx(D.Person,{sx:{fontSize:11,color:"text.disabled"}}),t.jsx(o.Typography,{sx:{fontSize:"0.6875rem",color:"text.disabled"},children:k.user})]})]})]})]},k.id)})})})]})}),t.jsxs(o.Dialog,{open:d,onClose:()=>u(!1),maxWidth:"xs",fullWidth:!0,PaperProps:{sx:{borderRadius:Co(i),...ae(i).paper}},children:[t.jsxs(o.DialogContent,{sx:{pt:3,pb:2,px:3},children:[t.jsx(o.Box,{sx:{width:44,height:44,borderRadius:"12px",bgcolor:$(a.error.main,.1),display:"flex",alignItems:"center",justifyContent:"center",mb:2},children:t.jsx(D.WarningAmberOutlined,{sx:{fontSize:22,color:"error.main"}})}),t.jsx(o.Typography,{sx:{fontSize:"0.9375rem",fontWeight:600,color:"text.primary",mb:1},children:"Clear Audit Logs"}),t.jsxs(o.Typography,{sx:{fontSize:"0.8125rem",color:"text.secondary",lineHeight:1.65},children:["You are about to permanently remove"," ",t.jsxs(o.Box,{component:"span",sx:{fontWeight:600,color:"text.primary"},children:[f," audit record",f!==1?"s":""]})," ",g.key==="all"?"from all time":`from the ${g.label.toLowerCase()}`,". This action cannot be undone."]})]}),t.jsx(o.Divider,{}),t.jsxs(o.DialogActions,{sx:{px:2.5,py:1.5,gap:1},children:[t.jsx(o.Button,{onClick:()=>u(!1),variant:"text",sx:{fontSize:"0.8125rem",color:"text.secondary",borderRadius:"7px","&:hover":{bgcolor:"action.hover"}},children:"Cancel"}),t.jsxs(o.Button,{onClick:y,variant:"contained",color:"error",startIcon:t.jsx(D.DeleteSweepOutlined,{sx:{fontSize:14}}),sx:{fontSize:"0.8125rem",borderRadius:"7px",px:2},children:["Clear ",f," Record",f!==1?"s":""]})]})]})]})}function Ku({onSave:e,onClose:r}){const[n,i]=p.useState(""),[a,l]=p.useState(""),[c,d]=p.useState(""),[u,h]=p.useState([]),[g,f]=p.useState(""),[b,y]=p.useState(""),k=w=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(w),v=()=>{const w=c.trim();if(w){if(!k(w)){y("Please enter a valid email address");return}if(u.includes(w)){y("This email is already added");return}h([...u,w]),d(""),y("")}},m=w=>{h(u.filter(R=>R!==w))},T=w=>{w.key==="Enter"&&(w.preventDefault(),v())},x=()=>{if(!n.trim()){f("Preset name is required");return}e(n.trim(),a.trim(),u.length>0?u:void 0)},z=w=>{i(w),g&&f("")},B=w=>{d(w),b&&y("")};return t.jsx(o.Box,{onClick:r,sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:w=>$(w.palette.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:w=>w.zIndex.modal,animation:"fadeIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:w=>w.stopPropagation(),elevation:0,sx:{position:"relative",width:540,maxWidth:"calc(100vw - 120px)",maxHeight:"min(480px, calc(100vh - 280px))",display:"flex",flexDirection:"column",borderRadius:w=>Ze(w),bgcolor:"background.paper",outline:"none",boxShadow:w=>ae(w).paper.boxShadow,border:w=>ae(w).paper.border,overflow:"hidden",animation:"slideIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.95) translateY(-12px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2,bgcolor:w=>ae(w).header.backgroundColor,borderBottom:w=>ae(w).header.borderBottom,boxShadow:w=>ae(w).header.boxShadow,flexShrink:0},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",letterSpacing:"0",lineHeight:1.5},children:"Create shareable preset"}),t.jsx(o.IconButton,{onClick:r,size:"small",sx:{p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsx(o.Box,{sx:{flex:1,overflow:"auto",px:3,py:2.5,"&::-webkit-scrollbar":{width:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:w=>$(w.palette.text.primary,.2),borderRadius:4,"&:hover":{bgcolor:w=>$(w.palette.text.primary,.3)}}},children:t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2.5},children:[t.jsx(o.Alert,{severity:"info",icon:t.jsx(D.Info,{sx:{fontSize:20}}),sx:{borderRadius:"8px",border:w=>`1px solid ${$(w.palette.primary.main,.3)}`,bgcolor:w=>vt(w),"& .MuiAlert-icon":{color:"primary.main"},"& .MuiAlert-message":{fontSize:"0.8125rem",color:"text.primary",lineHeight:1.5}},children:"This preset will capture filters, sorting, grouping, column configuration, and the active view. The actual data is not saved or shared."}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.875rem",color:"text.secondary",lineHeight:1.6},children:"Save the current report configuration and generate a shareable link that others can use to view the same filters, sorting, and column layout."}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",mb:1,display:"block",textTransform:"uppercase"},children:"Preset name *"}),t.jsx(o.TextField,{required:!0,value:n,onChange:w=>z(w.target.value),placeholder:"e.g., Q4 Active Users Report",error:!!g,helperText:g,autoFocus:!0,fullWidth:!0,size:"small",sx:{"& .MuiOutlinedInput-root":{fontSize:"0.875rem",borderRadius:"4px",bgcolor:"background.paper","& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"primary.main"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:"2px"},"&.Mui-error fieldset":{borderColor:"error.main"}},"& .MuiInputBase-input":{py:1.25,color:"text.primary"},"& .MuiFormHelperText-root":{fontSize:"0.75rem",color:"error.main",mt:.75}}})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",mb:1,display:"block",textTransform:"uppercase"},children:"Description (optional)"}),t.jsx(o.TextField,{value:a,onChange:w=>l(w.target.value),placeholder:"Briefly describe what this preset shows...",multiline:!0,rows:3,fullWidth:!0,size:"small",sx:{"& .MuiOutlinedInput-root":{fontSize:"0.875rem",borderRadius:"4px",bgcolor:"background.paper","& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"primary.main"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:"2px"}},"& .MuiInputBase-input":{py:1.25,color:"text.primary",lineHeight:1.6}}})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.6875rem",fontWeight:600,color:"text.secondary",letterSpacing:"0.1em",mb:1,display:"block",textTransform:"uppercase"},children:"Share with (optional)"}),t.jsxs(o.Box,{sx:{display:"flex",gap:1,alignItems:"flex-start"},children:[t.jsx(o.TextField,{value:c,onChange:w=>B(w.target.value),onKeyPress:T,placeholder:"Enter email address",error:!!b,helperText:b,fullWidth:!0,size:"small",InputProps:{startAdornment:t.jsx(D.Email,{sx:{fontSize:18,color:"text.secondary",mr:1}})},sx:{"& .MuiOutlinedInput-root":{fontSize:"0.875rem",borderRadius:"4px",bgcolor:"background.paper","& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"primary.main"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:"2px"},"&.Mui-error fieldset":{borderColor:"error.main"}},"& .MuiInputBase-input":{py:1.25,color:"text.primary"},"& .MuiFormHelperText-root":{fontSize:"0.75rem",color:"error.main",mt:.75}}}),t.jsx(o.Button,{onClick:v,variant:"outlined",startIcon:t.jsx(D.Add,{sx:{fontSize:18}}),sx:{fontSize:"0.875rem",color:"primary.main",borderColor:"divider",px:2,py:1.25,minHeight:40,borderRadius:w=>`${w.shape.borderRadius}px`,flexShrink:0,"&:hover":{borderColor:"primary.main",bgcolor:"action.hover"}},children:"Add"})]}),u.length>0&&t.jsx(o.Box,{sx:{display:"flex",flexWrap:"wrap",gap:1,mt:1.5},children:u.map(w=>t.jsx(o.Chip,{label:w,onDelete:()=>m(w),deleteIcon:t.jsx(D.Delete,{sx:{fontSize:16}}),sx:{bgcolor:R=>vt(R),color:"primary.main",fontSize:"0.8125rem",height:28,"& .MuiChip-deleteIcon":{color:"primary.main","&:hover":{color:"primary.dark"}}}},w))}),t.jsx(o.Typography,{variant:"caption",sx:{fontSize:"0.75rem",color:"text.secondary",mt:1,display:"block",lineHeight:1.5},children:u.length>0?`An email with the shareable link will be sent to ${u.length} recipient${u.length>1?"s":""}`:"Add email addresses to send the shareable link automatically"})]})]})}),t.jsxs(o.Box,{sx:{px:3,py:2,borderTop:"1px solid divider",display:"flex",gap:1.5,justifyContent:"flex-end",flexShrink:0,bgcolor:"action.hover"},children:[t.jsx(o.Button,{onClick:r,variant:"text",sx:{fontSize:"0.875rem",color:"text.secondary",px:3,py:1,minHeight:36,borderRadius:w=>`${w.shape.borderRadius}px`,transition:"all 0.2s ease","&:hover":{bgcolor:"divider",color:"text.primary"}},children:"Cancel"}),t.jsx(o.Button,{onClick:x,variant:"contained",startIcon:t.jsx(D.Share,{sx:{fontSize:18}}),sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"background.paper",px:3,py:1,minHeight:36,borderRadius:w=>`${w.shape.borderRadius}px`,boxShadow:w=>fe(w,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"primary.dark",boxShadow:w=>fe(w,"hoverButton")},"&:active":{boxShadow:w=>fe(w,"pressedButton"),transform:"translateY(1px)"}},children:"Create & share"})]})]})})}function Xu({presetName:e,onClear:r}){return t.jsx(o.Chip,{icon:t.jsx(D.Link,{sx:{fontSize:14}}),label:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:["Preset:"," ",t.jsx(o.Box,{component:"span",sx:{fontWeight:600},children:e})]}),onDelete:r,deleteIcon:t.jsx(o.IconButton,{size:"small",title:"Exit preset view",sx:{p:0},children:t.jsx(D.Close,{sx:{fontSize:14}})}),sx:{bgcolor:n=>$(n.palette.primary.main,.12),borderColor:"primary.light",border:1,fontSize:"body2.fontSize",fontWeight:500,"& .MuiChip-deleteIcon":{color:"primary.main","&:hover":{color:"primary.main"}}}})}function Qu({presets:e,reportId:r,onOpenPreset:n,onDeletePreset:i,onClose:a}){const l=c=>new Date(c).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"});return t.jsx(o.Box,{onClick:a,sx:{position:"fixed",top:0,left:0,right:0,bottom:0,bgcolor:c=>$(c.palette.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:c=>c.zIndex.modal,animation:"fadeIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:c=>c.stopPropagation(),elevation:0,sx:{position:"relative",width:680,maxWidth:"calc(100vw - 120px)",maxHeight:"min(720px, calc(100vh - 200px))",display:"flex",flexDirection:"column",borderRadius:c=>Ze(c),bgcolor:"background.paper",outline:"none",boxShadow:c=>ae(c).paper.boxShadow,border:c=>ae(c).paper.border,overflow:"hidden",animation:"slideIn 0.225s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.95) translateY(-12px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,py:2,bgcolor:c=>ae(c).header.backgroundColor,borderBottom:c=>ae(c).header.borderBottom,boxShadow:c=>ae(c).header.boxShadow,flexShrink:0},children:[t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"1.125rem",fontWeight:500,color:"text.primary",letterSpacing:"0",lineHeight:1.5},children:"Manage Presets"}),t.jsxs(o.Typography,{variant:"caption",sx:{fontSize:"0.8125rem",color:"text.secondary",mt:.5,display:"block"},children:[e.length," saved ",e.length===1?"preset":"presets"]})]}),t.jsx(o.IconButton,{onClick:a,size:"small",sx:{p:.75,color:"text.secondary",transition:"all 0.2s ease","&:hover":{bgcolor:"action.hover",color:"text.primary"}},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsx(o.Box,{sx:{flex:1,overflow:"auto",px:3,py:2,"&::-webkit-scrollbar":{width:8},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:"divider",borderRadius:4,"&:hover":{bgcolor:c=>$(c.palette.text.primary,.2)}}},children:e.length===0?t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",py:8},children:[t.jsx(D.Share,{sx:{fontSize:48,color:"divider",mb:2}}),t.jsx(o.Typography,{variant:"body1",sx:{fontSize:"0.875rem",color:"text.secondary",textAlign:"center"},children:"No presets created yet"}),t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.disabled",textAlign:"center",mt:.5},children:"Create a preset to share report configurations"})]}):t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2},children:e.map(c=>t.jsxs(o.Paper,{elevation:0,sx:{p:2.5,border:"1px solid divider",borderRadius:"8px",bgcolor:"background.paper",transition:"all 0.2s ease","&:hover":{borderColor:"divider",boxShadow:d=>fe(d,"restButtonLight")}},children:[t.jsx(o.Box,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",mb:1.5},children:t.jsxs(o.Box,{sx:{flex:1,minWidth:0},children:[t.jsx(o.Typography,{variant:"h6",sx:{fontSize:"0.9375rem",fontWeight:500,color:"text.primary",mb:.5},children:c.name}),c.description&&t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem",color:"text.secondary",lineHeight:1.5},children:c.description})]})}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5,mb:2},children:[t.jsx(o.Chip,{label:`Created ${l(c.createdAt)}`,size:"small",sx:{height:22,fontSize:"0.75rem",bgcolor:"action.hover",color:"text.secondary","& .MuiChip-label":{px:1}}}),t.jsx(o.Chip,{label:`By ${c.createdBy}`,size:"small",sx:{height:22,fontSize:"0.75rem",bgcolor:"action.hover",color:"text.secondary","& .MuiChip-label":{px:1}}})]}),t.jsx(o.Divider,{sx:{my:1.5,borderColor:"divider"}}),t.jsx(o.Box,{sx:{display:"flex",gap:1},children:t.jsx(o.Button,{onClick:()=>i(c.id,c.name),variant:"outlined",size:"small",startIcon:t.jsx(D.Delete,{sx:{fontSize:16}}),sx:{fontSize:"0.8125rem",color:"error.main",borderColor:"divider",px:1.5,py:.75,borderRadius:d=>`${d.shape.borderRadius}px`,"&:hover":{borderColor:"error.main",bgcolor:d=>$(d.palette.error.main,.04)}},children:"Delete"})})]},c.id))})}),t.jsx(o.Box,{sx:{px:3,py:1.75,borderTop:"1px solid divider",bgcolor:"action.hover",gap:1.25,justifyContent:"flex-end",display:"flex"},children:t.jsx(o.Button,{onClick:a,variant:"contained",sx:{fontSize:"0.875rem",bgcolor:"primary.main",color:"primary.contrastText",px:3,py:.875,minHeight:36,borderRadius:c=>`${c.shape.borderRadius}px`,boxShadow:c=>fe(c,"restButton"),transition:"all 0.2s ease","&:hover":{bgcolor:"primary.dark",boxShadow:c=>fe(c,"hoverButton")},"&:active":{boxShadow:c=>fe(c,"pressedButton"),transform:"translateY(1px)"}},children:"Close"})})]})})}const ea={maxFileSizeBytes:2*1024*1024,maxFileSizeHardBytes:3*1024*1024,maxRows:1e4,maxRowsHard:5e4,maxImageColumns:5},Zu=[/^https?:\/\/.*\.(jpg|jpeg|png|gif|webp|svg|avif|bmp)/i,/^data:image\//i,/^\/.*\.(jpg|jpeg|png|gif|webp|svg)/i],ep=[/image/i,/photo/i,/avatar/i,/thumbnail/i,/picture/i,/logo/i,/icon/i,/banner/i];function tp(e,r){const n=[];for(const i of e){if(i.type!=="string")continue;const a=ep.some(d=>d.test(i.name));let l=!1;const c=r.slice(0,10).map(d=>d[i.name]).filter(d=>typeof d=="string"&&d.length>0);c.length>0&&(l=c.filter(u=>Zu.some(h=>h.test(u))).length/c.length>.6),(a||l)&&n.push(i.name)}return n}function di(e,r){if(e.length===0||r.length===0)return 0;const n=e.slice(0,Math.min(50,e.length)),a=r.map(c=>{const d=n.map(h=>String(h[c]??"")).filter(h=>h.length>0);if(d.length===0)return 5;const u=d.reduce((h,g)=>h+g.length,0);return Math.ceil(u/d.length)+1}).reduce((c,d)=>c+d,0)+1;return r.reduce((c,d)=>c+d.length+1,0)+a*e.length}function rp(e,r){const n=di(e,r);return Math.ceil(n*3.5)}function op(e,r){const n=di(e,r);return Math.ceil(n*.7)}function np(e,r,n){switch(e){case"csv":return di(r,n);case"excel":return op(r,n);case"json":return rp(r,n)}}function xs(e,r){return Math.ceil(e/r)}function ip(e,r,n,i,a=ea){const l=[],c=np(e,r,n),d=r.length;if(d>a.maxRowsHard){const g=xs(d,a.maxRows);l.push({type:"row_count",severity:"error",message:`Export blocked: ${d.toLocaleString()} rows exceeds the maximum of ${a.maxRowsHard.toLocaleString()}`,detail:`Consider using filters to reduce the dataset before exporting, or split into ${g} smaller exports of ~${a.maxRows.toLocaleString()} rows each.`,suggestedBatches:g,value:d,limit:a.maxRowsHard})}else if(d>a.maxRows){const g=xs(d,a.maxRows);l.push({type:"row_count",severity:"warning",message:`Large export: ${d.toLocaleString()} rows`,detail:`This is a large export that may take a moment to complete. For faster results, consider splitting into ${g} smaller export${g>1?"s":""} of ~${a.maxRows.toLocaleString()} rows each.`,suggestedBatches:g,value:d,limit:a.maxRows})}if(c>a.maxFileSizeHardBytes?l.push({type:"file_size",severity:"error",message:`File size blocked: estimated ${ho(c)} exceeds the ${ho(a.maxFileSizeHardBytes)} limit`,detail:"Reduce the number of rows or columns and try again. Applying filters before exporting is the most effective way to reduce file size.",value:c,limit:a.maxFileSizeHardBytes}):c>a.maxFileSizeBytes&&l.push({type:"file_size",severity:"warning",message:`Large file: estimated ${ho(c)}`,detail:`This exceeds the recommended ${ho(a.maxFileSizeBytes)} size. The download will still proceed but may be slow on some connections.`,value:c,limit:a.maxFileSizeBytes}),e!=="excel"){const g=tp(i.filter(f=>n.includes(f.name)),r);if(g.length>0){const f=g.length>a.maxImageColumns;l.push({type:"image_columns",severity:f?"error":"warning",message:`Image column${g.length>1?"s":""} detected: ${g.map(b=>`"${b.replace(/_/g," ")}"`).join(", ")}`,detail:f?`Exporting ${g.length} image columns may produce a very large file. Consider hiding these columns before exporting.`:"Image URL columns are included in the export as plain text links — not embedded images.",value:g.length,limit:a.maxImageColumns})}}const u=l.some(g=>g.severity==="error"),h=l.some(g=>g.severity==="warning");return{violations:l,hasBlockingViolation:u,hasWarning:h,estimatedBytes:c}}function ho(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function sp({violation:e}){const n=st().palette,i=e.severity==="error",a=i?n.error.main:n.warning.main,l=$(i?n.error.main:n.warning.main,.06),c=i?$(n.error.main,.25):$(n.warning.main,.3),d=i?D.ErrorOutline:D.WarningAmberOutlined;return t.jsxs(o.Box,{sx:{display:"flex",gap:1.25,p:1.5,borderRadius:"10px",bgcolor:l,border:"1px solid",borderColor:c},children:[t.jsx(d,{sx:{fontSize:17,color:a,flexShrink:0,mt:.125}}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{sx:{fontSize:"0.8125rem",fontWeight:600,color:i?"error.main":"warning.dark",lineHeight:1.4},children:e.message}),e.detail&&t.jsx(o.Typography,{sx:{fontSize:"0.75rem",color:"text.secondary",mt:.375,lineHeight:1.5},children:e.detail}),e.suggestedBatches&&e.suggestedBatches>1&&t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5,mt:.75},children:[t.jsx(D.SplitscreenOutlined,{sx:{fontSize:14,color:"text.secondary"}}),t.jsxs(o.Typography,{sx:{fontSize:"0.75rem",color:"text.secondary",fontWeight:500},children:["Suggestion: split into ",e.suggestedBatches," exports"]})]})]})]})}function ap({format:e}){const r=st(),n={csv:{color:r.palette.primary.main,bg:r.palette.primary.main,label:"CSV"},excel:{color:r.palette.success.main,bg:r.palette.success.main,label:"XLSX"},json:{color:r.palette.text.secondary,bg:r.palette.text.secondary,label:"JSON"}}[e];return t.jsxs(o.Box,{sx:{width:44,height:52,position:"relative",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",mb:1},children:[t.jsxs("svg",{width:"38",height:"46",viewBox:"0 0 38 46",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[t.jsx("path",{d:"M5 2C3.34315 2 2 3.34315 2 5V41C2 42.6569 3.34315 44 5 44H33C34.6569 44 36 42.6569 36 41V13L25 2H5Z",fill:r.palette.background.paper,stroke:n.color,strokeWidth:"2.5",strokeLinejoin:"round"}),t.jsx("path",{d:"M24 2V13H36",fill:$(r.palette.text.primary,.05),stroke:n.color,strokeWidth:"2.5",strokeLinejoin:"round"})]}),t.jsx(o.Box,{sx:{position:"absolute",bottom:8,left:3,right:3,bgcolor:n.bg,color:r.palette.primary.contrastText,fontSize:"0.625rem",fontWeight:800,py:.25,borderRadius:"3px",textAlign:"center",letterSpacing:"0.05em"},children:n.label})]})}function ms({checked:e}){const r=st();return t.jsx(o.Box,{sx:{width:20,height:20,borderRadius:"50%",border:e?`2px solid var(--urm-export-card-selected-border, ${r.palette.primary.main})`:`2px solid var(--urm-export-radio-border, ${r.palette.divider})`,display:"flex",alignItems:"center",justifyContent:"center",bgcolor:r.palette.background.paper,transition:"all 0.15s ease",flexShrink:0},children:e&&t.jsx(o.Box,{sx:{width:10,height:10,borderRadius:"50%",bgcolor:`var(--urm-export-card-selected-border, ${r.palette.primary.main})`}})})}function lp({totalRows:e,visibleRows:r,hasGrouping:n,visibleColumnsCount:i,totalColumnsCount:a,schema:l,sampleRows:c=[],allRows:d=[],processedRows:u=[],initialFormat:h,initialScope:g="visible",initialColumnScope:f="visible",classTokens:b={},onExport:y,onClose:k}){const v=st(),m=v.palette,T=wr(),x=p.useMemo(()=>{var ne,ce,U,ie,oe;const J=((U=(ce=(ne=v.components)==null?void 0:ne.MuiCard)==null?void 0:ce.styleOverrides)==null?void 0:U.root)||{},ee=J.border&&J.border!=="none"?J.border:(ie=v.tokens)!=null&&ie.cardBodyBorder&&v.tokens.cardBodyBorder!=="none"?v.tokens.cardBodyBorder:m.divider,Ce=J.borderRadius!==void 0?typeof J.borderRadius=="number"?`${J.borderRadius}px`:J.borderRadius:`${v.shape.borderRadius}px`,V=J.boxShadow&&J.boxShadow!=="none"?J.boxShadow:((oe=v.tokens)==null?void 0:oe.cardBodyShadow)||fe(v,"menu"),K=It(v);return{sectionBorder:`var(--urm-export-section-border, ${ee})`,sectionTitleColor:`var(--urm-export-section-title-color, ${m.text.primary})`,sectionTitleBg:`var(--urm-export-section-title-bg, ${m.background.paper})`,cardBg:`var(--urm-export-card-bg, ${m.background.paper})`,cardBorder:`var(--urm-export-card-border, ${ee})`,cardRadius:Ce,cardShadow:V,cardHoverBg:`var(--urm-export-card-hover-bg, ${m.mode==="dark"?$(m.common.white,.08):$(m.common.black,.04)})`,cardSelectedBg:`var(--urm-export-card-selected-bg, ${$(K.main,m.mode==="dark"?.16:.08)})`,cardSelectedBorder:`var(--urm-export-card-selected-border, ${K.main})`,cardSelectedColor:`var(--urm-export-card-selected-color, ${m.mode==="dark"?m.primary.light:m.primary.main})`,primaryBtnBg:`var(--urm-export-primary-btn-bg, ${m.primary.main})`,primaryBtnHoverBg:`var(--urm-export-primary-btn-hover-bg, ${m.primary.dark})`,primaryBtnColor:`var(--urm-export-primary-btn-color, ${m.primary.contrastText})`,sectionPadding:`var(--urm-export-section-padding, ${v.spacing(2)})`,optionGap:`var(--urm-export-option-gap, ${v.spacing(1.5)})`}},[m,v]),z=h||T.export.allowedFormats[0]||"csv",[B,w]=p.useState(z),[R,j]=p.useState(g),[M,A]=p.useState(f),q=R==="visible"?r:e,te=M==="visible"?i:a,s=p.useMemo(()=>R==="visible"?u.length>0?u:new Array(r):d.length>0?d:new Array(e),[R,r,e,u,d]),N=p.useMemo(()=>M==="all"?l.map(J=>J.name):l.map(J=>J.name).slice(0,i),[M,l,i]),L=p.useMemo(()=>ip(B,s,N,l,ea),[B,s,N,l]),re=()=>{L.hasBlockingViolation||(y({format:B,scope:R,columnScope:M}),k())},le={csv:"CSV",excel:"Excel (.xlsx)",json:"JSON"};return t.jsx(o.Box,{onClick:k,className:`urm-export-backdrop ${b.modalBackdrop||""}`,sx:{position:"fixed",inset:0,bgcolor:$(m.common.black,.4),display:"flex",alignItems:"center",justifyContent:"center",zIndex:v.zIndex.modal,animation:"fadeIn 0.2s ease","@keyframes fadeIn":{from:{opacity:0},to:{opacity:1}}},children:t.jsxs(o.Paper,{onClick:J=>J.stopPropagation(),elevation:0,className:`urm-export-paper ${b.modalPaper||""}`,sx:{width:540,maxWidth:"calc(100vw - 32px)",maxHeight:"min(760px, calc(100vh - 48px))",display:"flex",flexDirection:"column",borderRadius:Ze(v),bgcolor:x.sectionTitleBg,overflow:"hidden",border:`1px solid ${x.cardBorder}`,boxShadow:x.cardShadow,animation:"slideIn 0.2s cubic-bezier(0.4, 0, 0.2, 1)","@keyframes slideIn":{from:{opacity:0,transform:"scale(0.96) translateY(-8px)"},to:{opacity:1,transform:"scale(1) translateY(0)"}}},children:[t.jsxs(o.Box,{className:`urm-export-header ${b.modalHeader||""}`,sx:{display:"flex",alignItems:"center",justifyContent:"space-between",px:3,pt:2.5,pb:1.5,flexShrink:0,bgcolor:J=>ae(J).header.backgroundColor,borderBottom:J=>ae(J).header.borderBottom,boxShadow:J=>ae(J).header.boxShadow},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(o.Typography,{className:`urm-export-title ${b.modalTitle||""}`,sx:{fontSize:"1.125rem",fontWeight:700,color:m.text.primary},children:"Export Report"}),t.jsx(kr,{content:Tr.export,isDev:process.env.NODE_ENV==="development"})]}),t.jsx(o.IconButton,{onClick:k,size:"small",className:`urm-export-close ${b.modalCloseButton||""}`,sx:{color:m.text.secondary,borderRadius:"50%","&:hover":{bgcolor:m.action.hover,color:m.text.primary}},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsxs(o.Box,{className:`urm-export-content ${b.modalContent||""}`,sx:{flex:1,overflowY:"auto",px:3,pb:2.5,pt:.5,display:"flex",flexDirection:"column",gap:x.optionGap,"&::-webkit-scrollbar":{width:6},"&::-webkit-scrollbar-track":{bgcolor:"transparent"},"&::-webkit-scrollbar-thumb":{bgcolor:$(m.text.primary,.15),borderRadius:3}},children:[L.violations.length>0&&t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:1},children:L.violations.map((J,ee)=>t.jsx(sp,{violation:J},ee))}),t.jsxs(o.Box,{className:`urm-export-section ${b.sectionContainer||""}`,sx:{position:"relative",border:`1.5px solid ${x.sectionBorder}`,borderRadius:"12px",p:x.sectionPadding,pt:2.25,bgcolor:x.sectionTitleBg,mt:1.5},children:[t.jsx(o.Typography,{className:`urm-export-section-title ${b.sectionTitle||""}`,sx:{position:"absolute",top:-11,left:14,bgcolor:x.sectionTitleBg,px:.75,fontSize:"0.8125rem",fontWeight:600,color:x.sectionTitleColor,lineHeight:1,zIndex:1},children:"Choose File Format"}),t.jsx(o.Box,{sx:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:x.optionGap},children:[{id:"csv",title:"CSV",info:"Comma-separated values, compatible with Excel",allowed:T.export.allowedFormats.includes("csv")},{id:"excel",title:"Excel (.xlsx)",info:"Native Excel format with formatting support",allowed:T.export.allowedFormats.includes("excel")},{id:"json",title:"JSON",info:"Structured data with metadata and filters",allowed:T.export.allowedFormats.includes("json")}].filter(J=>J.allowed).map(J=>{const ee=B===J.id;return t.jsxs(o.Box,{onClick:()=>w(J.id),className:`urm-export-format-card ${ee?b.formatCardSelected||"":b.formatCard||""}`,sx:{position:"relative",display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center",p:1.75,borderRadius:x.cardRadius,border:ee?`2px solid ${x.cardSelectedBorder}`:`1px solid ${x.cardBorder}`,boxShadow:ee?void 0:x.cardShadow,bgcolor:ee?x.cardSelectedBg:x.cardBg,cursor:"pointer",transition:"all 0.15s ease","&:hover":{borderColor:ee?x.cardSelectedBorder:$(m.text.primary,.25),bgcolor:ee?x.cardSelectedBg:x.cardHoverBg}},children:[ee&&t.jsx(o.Box,{sx:{position:"absolute",top:8,right:8,width:20,height:20,borderRadius:"50%",bgcolor:x.cardSelectedBorder,color:m.primary.contrastText,display:"flex",alignItems:"center",justifyContent:"center",boxShadow:`0 2px 4px ${$(m.primary.main,.3)}`},children:t.jsx(D.Check,{sx:{fontSize:13,strokeWidth:2}})}),t.jsx(ap,{format:J.id}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:[t.jsx(o.Typography,{sx:{fontSize:"0.875rem",fontWeight:700,color:ee?x.cardSelectedColor:m.text.primary},children:J.title}),t.jsx(o.Tooltip,{title:J.info,arrow:!0,placement:"top",children:t.jsx(o.Box,{component:"span",onClick:Ce=>Ce.stopPropagation(),sx:{display:"inline-flex",cursor:"help",color:m.text.secondary,"&:hover":{color:m.text.primary}},children:t.jsx(D.InfoOutlined,{sx:{fontSize:13}})})})]})]},J.id)})})]}),t.jsxs(o.Box,{className:`urm-export-section ${b.sectionContainer||""}`,sx:{position:"relative",border:`1.5px solid ${x.sectionBorder}`,borderRadius:"12px",p:x.sectionPadding,pt:2.25,bgcolor:x.sectionTitleBg,mt:1.5},children:[t.jsx(o.Typography,{className:`urm-export-section-title ${b.sectionTitle||""}`,sx:{position:"absolute",top:-11,left:14,bgcolor:x.sectionTitleBg,px:.75,fontSize:"0.8125rem",fontWeight:600,color:x.sectionTitleColor,lineHeight:1,zIndex:1},children:"Select Rows Range"}),t.jsx(o.Box,{sx:{display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:x.optionGap},children:[{value:"visible",label:"Visible rows",icon:t.jsx(D.VisibilityOutlined,{sx:{fontSize:20}}),info:`Export ${r.toLocaleString()} rows (filtered and searched)`},{value:"all",label:"All rows",icon:t.jsx(D.TableChartOutlined,{sx:{fontSize:20}}),info:`Export ${e.toLocaleString()} rows (complete original dataset)`}].map(J=>{const ee=R===J.value;return t.jsxs(o.Box,{onClick:()=>j(J.value),className:`urm-export-row-card ${ee?b.rowCardSelected||"":b.rowCard||""}`,sx:{display:"flex",alignItems:"center",justifyContent:"space-between",p:1.5,borderRadius:x.cardRadius,border:ee?`2px solid ${x.cardSelectedBorder}`:`1px solid ${x.cardBorder}`,boxShadow:ee?void 0:x.cardShadow,bgcolor:ee?x.cardSelectedBg:x.cardBg,cursor:"pointer",transition:"all 0.15s ease","&:hover":{borderColor:ee?x.cardSelectedBorder:$(m.text.primary,.25),bgcolor:ee?x.cardSelectedBg:x.cardHoverBg}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[t.jsx(ms,{checked:ee}),t.jsx(o.Box,{sx:{color:ee?x.cardSelectedColor:m.text.secondary,display:"flex"},children:J.icon}),t.jsx(o.Typography,{sx:{fontSize:"0.875rem",fontWeight:600,color:ee?x.cardSelectedColor:m.text.primary},children:J.label})]}),t.jsx(o.Tooltip,{title:J.info,arrow:!0,placement:"top",children:t.jsx(o.Box,{component:"span",onClick:Ce=>Ce.stopPropagation(),sx:{display:"inline-flex",cursor:"help",color:m.text.secondary,"&:hover":{color:m.text.primary}},children:t.jsx(D.InfoOutlined,{sx:{fontSize:16}})})})]},J.value)})})]}),t.jsxs(o.Box,{className:`urm-export-section ${b.sectionContainer||""}`,sx:{position:"relative",border:`1.5px solid ${x.sectionBorder}`,borderRadius:"12px",p:x.sectionPadding,pt:2.25,bgcolor:x.sectionTitleBg,mt:1.5},children:[t.jsx(o.Typography,{className:`urm-export-section-title ${b.sectionTitle||""}`,sx:{position:"absolute",top:-11,left:14,bgcolor:x.sectionTitleBg,px:.75,fontSize:"0.8125rem",fontWeight:600,color:x.sectionTitleColor,lineHeight:1,zIndex:1},children:"Select Columns Range"}),t.jsx(o.Box,{sx:{display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:x.optionGap},children:[{value:"visible",label:"Visible columns",icon:t.jsx(D.SwapVertOutlined,{sx:{fontSize:20}}),info:`Export ${i} visible column${i!==1?"s":""}`},{value:"all",label:"All columns",icon:t.jsx(D.TableChartOutlined,{sx:{fontSize:20}}),info:`Export all ${a} columns (including hidden)`}].map(J=>{const ee=M===J.value;return t.jsxs(o.Box,{onClick:()=>A(J.value),className:`urm-export-column-card ${ee?b.columnCardSelected||"":b.columnCard||""}`,sx:{display:"flex",alignItems:"center",justifyContent:"space-between",p:1.5,borderRadius:x.cardRadius,border:ee?`2px solid ${x.cardSelectedBorder}`:`1px solid ${x.cardBorder}`,boxShadow:ee?void 0:x.cardShadow,bgcolor:ee?x.cardSelectedBg:x.cardBg,cursor:"pointer",transition:"all 0.15s ease","&:hover":{borderColor:ee?x.cardSelectedBorder:$(m.text.primary,.25),bgcolor:ee?x.cardSelectedBg:x.cardHoverBg}},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[t.jsx(ms,{checked:ee}),t.jsx(o.Box,{sx:{color:ee?x.cardSelectedColor:m.text.secondary,display:"flex"},children:J.icon}),t.jsx(o.Typography,{sx:{fontSize:"0.875rem",fontWeight:600,color:ee?x.cardSelectedColor:m.text.primary},children:J.label})]}),t.jsx(o.Tooltip,{title:J.info,arrow:!0,placement:"top",children:t.jsx(o.Box,{component:"span",onClick:Ce=>Ce.stopPropagation(),sx:{display:"inline-flex",cursor:"help",color:m.text.secondary,"&:hover":{color:m.text.primary}},children:t.jsx(D.InfoOutlined,{sx:{fontSize:16}})})})]},J.value)})})]}),t.jsxs(o.Box,{className:`urm-export-summary ${b.summaryContainer||""}`,sx:{position:"relative",border:`1.5px solid ${x.sectionBorder}`,borderRadius:"12px",p:x.sectionPadding,pt:2.25,bgcolor:x.sectionTitleBg,mt:1.5},children:[t.jsx(o.Typography,{className:`urm-export-section-title ${b.sectionTitle||""}`,sx:{position:"absolute",top:-11,left:14,bgcolor:x.sectionTitleBg,px:.75,fontSize:"0.8125rem",fontWeight:600,color:x.sectionTitleColor,lineHeight:1,zIndex:1},children:"Export Summary"}),t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:1.25},children:[{icon:t.jsx(D.InsertDriveFileOutlined,{sx:{fontSize:18,color:m.text.secondary}}),label:"Format",value:le[B]},{icon:t.jsx(D.FormatListNumberedOutlined,{sx:{fontSize:18,color:m.text.secondary}}),label:"Rows to Export",value:q.toLocaleString()},{icon:t.jsx(D.SwapVertOutlined,{sx:{fontSize:18,color:m.text.secondary}}),label:"Columns to Export",value:String(te)},{icon:t.jsx(D.InsertDriveFileOutlined,{sx:{fontSize:18,color:m.text.secondary}}),label:"Estimated File Size",value:`~${ho(L.estimatedBytes)}`,highlight:L.hasBlockingViolation?"error.main":L.hasWarning?"warning.main":void 0}].map(({icon:J,label:ee,value:Ce,highlight:V})=>t.jsxs(o.Box,{className:`urm-export-summary-row ${b.summaryRow||""}`,sx:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.25},children:[J,t.jsx(o.Typography,{className:`urm-export-summary-label ${b.summaryLabel||""}`,sx:{fontSize:"0.8125rem",color:m.text.secondary,fontWeight:500},children:ee})]}),t.jsx(o.Typography,{className:`urm-export-summary-value ${b.summaryValue||""}`,sx:{fontWeight:700,fontSize:"0.8125rem",color:V??m.text.primary},children:Ce})]},ee))})]})]}),t.jsxs(o.Box,{className:`urm-export-footer ${b.footer||""}`,sx:{px:3,py:2,display:"flex",alignItems:"center",justifyContent:"flex-end",gap:1.5,flexShrink:0},children:[L.hasBlockingViolation&&t.jsxs(o.Box,{sx:{flex:1,display:"flex",alignItems:"center",gap:.75},children:[t.jsx(D.ErrorOutline,{sx:{fontSize:15,color:"error.main"}}),t.jsx(o.Typography,{sx:{fontSize:"0.75rem",color:"error.main",fontWeight:500},children:"Reduce rows or columns to enable download"})]}),t.jsx(o.Button,{onClick:k,variant:"outlined",className:`urm-export-cancel-btn ${b.cancelButton||""}`,sx:{fontSize:"0.875rem",fontWeight:600,color:m.text.primary,borderColor:x.cardBorder,px:3,py:1,borderRadius:"8px",textTransform:"none","&:hover":{bgcolor:x.cardHoverBg,borderColor:$(m.text.primary,.3)}},children:"Cancel"}),t.jsxs(o.Button,{onClick:re,disabled:L.hasBlockingViolation,variant:"contained",className:`urm-export-download-btn ${b.downloadButton||""}`,startIcon:t.jsx(D.Download,{sx:{fontSize:18}}),sx:{fontSize:"0.875rem",fontWeight:600,bgcolor:x.primaryBtnBg,color:x.primaryBtnColor,px:3,py:1,borderRadius:"8px",textTransform:"none",boxShadow:`0 2px 6px ${$(m.primary.main,.25)}`,"&:hover":{bgcolor:x.primaryBtnHoverBg},"&.Mui-disabled":{bgcolor:$(m.primary.main,.4),color:x.primaryBtnColor}},children:["Download ",le[B]]})]})]})})}function cp({warning:e,onDismiss:r}){return t.jsx(o.Box,{sx:{position:"fixed",top:16,right:16,zIndex:50,maxWidth:448},children:t.jsxs(o.Alert,{severity:"warning",icon:t.jsx(D.Warning,{sx:{fontSize:20}}),action:t.jsx(o.IconButton,{size:"small",onClick:r,sx:{color:"warning.main"},children:t.jsx(D.Close,{sx:{fontSize:16}})}),sx:{borderLeft:4,borderColor:"warning.main",boxShadow:3},children:[t.jsx(o.AlertTitle,{sx:{fontWeight:600},children:"Feature Limit Reached"}),t.jsx(o.Box,{sx:{fontSize:"body2.fontSize",mb:1},children:e.message}),t.jsxs(o.Box,{sx:{fontSize:"caption.fontSize",opacity:.9},children:["Please remove some"," ",e.type==="filter"?"filters":e.type==="sort"?"sort levels":"grouping levels"," ","before adding more."]})]})})}function dp({error:e,onDismiss:r,autoDismiss:n=!0,autoDismissDelay:i=5e3}){p.useEffect(()=>{if(n){const d=setTimeout(()=>{r()},i);return()=>clearTimeout(d)}},[n,i,r]);const l=(()=>{switch(e.type){case"system":return{severity:"error",icon:t.jsx(D.Cancel,{sx:{fontSize:20}})};case"processing":return{severity:"warning",icon:t.jsx(D.Warning,{sx:{fontSize:20}})};case"ui":default:return{severity:"info",icon:t.jsx(D.InfoOutlined,{sx:{fontSize:20}})}}})(),c=bl(e);return t.jsx(o.Box,{sx:{position:"fixed",top:16,right:16,zIndex:50,maxWidth:448},children:t.jsxs(o.Alert,{severity:l.severity,icon:l.icon,action:t.jsx(o.IconButton,{size:"small",onClick:r,sx:{color:`${l.severity}.main`},children:t.jsx(D.Close,{sx:{fontSize:16}})}),sx:{borderLeft:4,borderColor:`${l.severity}.main`,boxShadow:3},children:[t.jsxs(o.AlertTitle,{sx:{fontWeight:600},children:[e.context.charAt(0).toUpperCase()+e.context.slice(1)," Error"]}),t.jsx(o.Box,{sx:{fontSize:"body2.fontSize"},children:c}),e.details&&process.env.NODE_ENV==="development"&&t.jsx(o.Box,{component:"pre",sx:{fontSize:"caption.fontSize",mt:1,fontFamily:"monospace",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:JSON.stringify(e.details,null,2)})]})})}class up extends p.Component{constructor(n){super(n);hi(this,"handleReset",()=>{this.setState({hasError:!1,error:null})});this.state={hasError:!1,error:null}}static getDerivedStateFromError(n){return{hasError:!0,error:n}}componentDidCatch(n,i){Wt.error("urm:error-boundary","Caught unhandled component error",n,i),this.props.onError&&this.props.onError(n,i)}render(){var n,i;return this.state.hasError?this.props.fallback?this.props.fallback:t.jsx(o.Paper,{sx:{bgcolor:a=>$(a.palette.error.main,.12),border:1,borderColor:"error.light",borderRadius:2,p:3,m:2},children:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"flex-start",gap:1.5},children:[t.jsx(D.Warning,{color:"error",sx:{fontSize:24,flexShrink:0}}),t.jsxs(o.Box,{sx:{flex:1},children:[t.jsx(o.Typography,{variant:"h6",sx:{color:"error.main",fontWeight:600},children:this.props.context?`${this.props.context} Error`:"Something went wrong"}),t.jsx(o.Typography,{variant:"body2",sx:{color:"error.main",mt:1},children:((n=this.state.error)==null?void 0:n.message)||"An unexpected error occurred"}),process.env.NODE_ENV==="development"&&t.jsx(o.Box,{component:"pre",sx:{mt:1.5,fontSize:"caption.fontSize",color:"error.main",bgcolor:a=>$(a.palette.error.main,.12),p:1.5,borderRadius:1,overflow:"auto",maxHeight:170},children:(i=this.state.error)==null?void 0:i.stack}),t.jsx(o.Button,{onClick:this.handleReset,variant:"contained",color:"error",startIcon:t.jsx(D.Refresh,{sx:{fontSize:16}}),sx:{mt:2},children:"Try Again"})]})]})}):this.props.children}}function pp({feature:e}){const[r,n]=p.useState(!0);return p.useEffect(()=>{const i=setTimeout(()=>n(!1),5e3);return()=>clearTimeout(i)},[]),t.jsx(o.Collapse,{in:r,unmountOnExit:!0,children:t.jsxs(o.Alert,{severity:"warning",sx:{m:1},icon:t.jsx(D.Warning,{sx:{fontSize:20}}),action:t.jsx(o.IconButton,{size:"small",onClick:()=>n(!1),"aria-label":"dismiss",sx:{color:"warning.dark"},children:t.jsx(D.Close,{sx:{fontSize:16}})}),children:[t.jsxs(o.AlertTitle,{children:[e," temporarily unavailable"]}),"Other features continue to work normally"]})})}function Po({children:e,feature:r,onError:n}){return t.jsx(up,{context:r,onError:i=>{n&&n(i)},fallback:t.jsx(pp,{feature:r}),children:e})}const xp=[{value:"equals",label:"Equals",group:"Text"},{value:"contains",label:"Contains",group:"Text"},{value:"startsWith",label:"Starts with",group:"Text"},{value:"endsWith",label:"Ends with",group:"Text"},{value:"gt",label:"Greater than (>)",group:"Numeric"},{value:"lt",label:"Less than (<)",group:"Numeric"},{value:"gte",label:"At least (≥)",group:"Numeric"},{value:"lte",label:"At most (≤)",group:"Numeric"},{value:"isTrue",label:"Is true",group:"Boolean"},{value:"isFalse",label:"Is false",group:"Boolean"},{value:"NULL",label:"Is empty (NULL)",group:"Null checks"},{value:"NOT_NULL",label:"Is not empty",group:"Null checks"}],mp=[{value:"csv",label:"CSV",desc:"Comma-separated values"},{value:"excel",label:"Excel (.xlsx)",desc:"Native Excel format"},{value:"json",label:"JSON",desc:"Structured data with metadata"}];function uo({children:e,active:r}){return t.jsx(o.Box,{hidden:!r,sx:{pt:2.5,pb:1,display:r?"flex":"none",flexDirection:"column",gap:2.5},children:e})}function fp({open:e,onClose:r,config:n,onApply:i}){const[a,l]=p.useState(0),[c,d]=p.useState(n),u=()=>d(n),h=()=>d(lt),g=()=>{i(c),r()},f={sort:m=>d(T=>({...T,sort:{...T.sort,...m}})),filter:m=>d(T=>({...T,filter:{...T.filter,...m}})),columns:m=>d(T=>({...T,columns:{...T.columns,...m}})),grouping:m=>d(T=>({...T,grouping:{...T.grouping,...m}})),export:m=>d(T=>({...T,export:{...T.export,...m}}))},b=m=>{const T=c.filter.allowedOperators,x=T.includes(m)?T.filter(z=>z!==m):[...T,m];x.length!==0&&f.filter({allowedOperators:x})},y=m=>{const T=c.export.allowedFormats,x=T.includes(m)?T.filter(z=>z!==m):[...T,m];x.length!==0&&f.export({allowedFormats:x})},k=[{label:"Sort",icon:t.jsx(D.SwapVert,{sx:{fontSize:17}})},{label:"Filter",icon:t.jsx(D.FilterList,{sx:{fontSize:17}})},{label:"Columns",icon:t.jsx(D.ViewColumn,{sx:{fontSize:17}})},{label:"Grouping",icon:t.jsx(D.Layers,{sx:{fontSize:17}})},{label:"Export",icon:t.jsx(D.Download,{sx:{fontSize:17}})}],v=m=>JSON.stringify(c[m])===JSON.stringify(lt[m]);return t.jsxs(o.Dialog,{open:e,onClose:r,maxWidth:"sm",fullWidth:!0,TransitionProps:{onEnter:u},PaperProps:{sx:{borderRadius:m=>Ze(m),maxHeight:"min(680px, calc(100vh - 180px))",my:"auto",display:"flex",flexDirection:"column",boxShadow:m=>`0 8px 32px ${$(m.palette.common.black,.2)}`}},children:[t.jsxs(o.DialogTitle,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",pb:1,borderBottom:"1px solid",borderColor:"divider",flexShrink:0},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.5},children:[t.jsx(o.Box,{sx:{width:32,height:32,borderRadius:"8px",bgcolor:m=>$(m.palette.primary.main,.1),display:"flex",alignItems:"center",justifyContent:"center",fontSize:"1.1rem"},children:"⚙️"}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"subtitle1",sx:{fontWeight:600,lineHeight:1.2},children:"Developer Configuration"}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:"Set runtime constraints · Ctrl+Shift+D"})]})]}),t.jsx(o.IconButton,{size:"small",onClick:r,sx:{color:"text.secondary"},children:t.jsx(D.Close,{sx:{fontSize:20}})})]}),t.jsx(o.Box,{sx:{borderBottom:"1px solid",borderColor:"divider",flexShrink:0},children:t.jsx(o.Tabs,{value:a,onChange:(m,T)=>l(T),variant:"fullWidth",sx:{minHeight:44,"& .MuiTab-root":{minHeight:44,fontSize:"0.8125rem",textTransform:"none",fontWeight:500,gap:.5}},children:k.map((m,T)=>t.jsx(o.Tab,{label:m.label,icon:m.icon,iconPosition:"start"},T))})}),t.jsxs(o.DialogContent,{sx:{overflowY:"auto",flex:1,px:3,py:0},children:[t.jsxs(uo,{active:a===0,children:[t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:.5},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600},children:"Maximum sort levels"}),!v("sort")&&t.jsx(o.Typography,{variant:"caption",sx:{color:"primary.main",fontWeight:600},children:"Modified"})]}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:2},children:"Users can sort by at most this many columns simultaneously."}),t.jsx(o.Slider,{value:c.sort.maxLevels,onChange:(m,T)=>f.sort({maxLevels:T}),min:1,max:10,step:1,marks:!0,valueLabelDisplay:"on"}),t.jsxs(o.Box,{sx:{display:"flex",justifyContent:"space-between"},children:[t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:"1 level (single)"}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:"10 levels (maximum)"})]})]}),t.jsxs(o.Alert,{severity:"info",sx:{borderRadius:2,fontSize:"0.8125rem"},children:['The "Add sort column" button is hidden once users reach this limit. Default is'," ",t.jsx("strong",{children:"5"}),"."]})]}),t.jsxs(uo,{active:a===1,children:[t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:.5},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600},children:"Maximum filter conditions"}),!v("filter")&&t.jsx(o.Typography,{variant:"caption",sx:{color:"primary.main",fontWeight:600},children:"Modified"})]}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:2},children:"Users can apply at most this many simultaneous filter conditions."}),t.jsx(o.Slider,{value:c.filter.maxConditions,onChange:(m,T)=>f.filter({maxConditions:T}),min:1,max:20,step:1,marks:!0,valueLabelDisplay:"on"}),t.jsxs(o.Box,{sx:{display:"flex",justifyContent:"space-between"},children:[t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:"1 condition"}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:"20 conditions"})]})]}),t.jsx(o.Divider,{}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600,mb:.5},children:"Allowed filter operators"}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:1.5},children:"Only checked operators appear in the filter type dropdown. At least one must remain checked."}),["Text","Numeric","Boolean","Null checks"].map(m=>t.jsxs(o.Box,{sx:{mb:1.5},children:[t.jsx(o.Typography,{sx:{fontWeight:600,textTransform:"uppercase",letterSpacing:"0.06em",color:"text.secondary",fontSize:"0.6875rem",display:"block",mb:.5},children:m}),t.jsx(o.FormGroup,{row:!0,sx:{gap:.5},children:xp.filter(T=>T.group===m).map(T=>t.jsx(o.FormControlLabel,{control:t.jsx(o.Checkbox,{size:"small",checked:c.filter.allowedOperators.includes(T.value),onChange:()=>b(T.value)}),label:t.jsx(o.Typography,{variant:"body2",sx:{fontSize:"0.8125rem"},children:T.label}),sx:{mr:1.5}},T.value))})]},m))]})]}),t.jsxs(uo,{active:a===2,children:[t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:.5},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600},children:"Maximum visible columns"}),!v("columns")&&t.jsx(o.Typography,{variant:"caption",sx:{color:"primary.main",fontWeight:600},children:"Modified"})]}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:2},children:"Users cannot make more than this many columns visible simultaneously."}),t.jsx(o.Slider,{value:c.columns.maxVisible,onChange:(m,T)=>f.columns({maxVisible:T}),min:1,max:50,step:1,valueLabelDisplay:"on"})]}),t.jsx(o.Divider,{}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600,mb:.5},children:"Column width range (px)"}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:2},children:"Users cannot resize columns outside this minimum / maximum range."}),t.jsxs(o.Box,{sx:{display:"flex",gap:2},children:[t.jsxs(o.Box,{sx:{flex:1},children:[t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Minimum width"}),t.jsx(o.Slider,{value:c.columns.minColumnWidth,onChange:(m,T)=>f.columns({minColumnWidth:T}),min:40,max:400,step:10,valueLabelDisplay:"on",valueLabelFormat:m=>`${m}px`})]}),t.jsxs(o.Box,{sx:{flex:1},children:[t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:.5},children:"Maximum width"}),t.jsx(o.Slider,{value:c.columns.maxColumnWidth,onChange:(m,T)=>f.columns({maxColumnWidth:T}),min:100,max:2e3,step:50,valueLabelDisplay:"on",valueLabelFormat:m=>`${m}px`})]})]})]})]}),t.jsxs(uo,{active:a===3,children:[t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:1},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600},children:"Maximum group levels"}),!v("grouping")&&t.jsx(o.Typography,{variant:"caption",sx:{color:"primary.main",fontWeight:600},children:"Modified"})]}),t.jsx(o.Box,{sx:{display:"flex",gap:1.5,mb:2},children:[1,2,3].map(m=>t.jsxs(o.Box,{onClick:()=>f.grouping({maxLevels:m}),sx:{flex:1,py:2.5,borderRadius:"10px",border:"2px solid",cursor:"pointer",textAlign:"center",transition:"all 0.15s ease",borderColor:c.grouping.maxLevels===m?"primary.main":"divider",bgcolor:c.grouping.maxLevels===m?T=>$(T.palette.primary.main,.06):"transparent","&:hover":{borderColor:"primary.light",bgcolor:T=>$(T.palette.primary.main,.04)}},children:[t.jsx(o.Typography,{variant:"h5",sx:{fontWeight:700,color:c.grouping.maxLevels===m?"primary.main":"text.secondary"},children:m}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:["Single","Double","Triple"][m-1]})]},m))}),t.jsxs(o.FormGroup,{row:!0,sx:{gap:2},children:[t.jsx(o.FormControlLabel,{control:t.jsx(o.Checkbox,{checked:c.grouping.allowNested,onChange:m=>f.grouping({allowNested:m.target.checked})}),label:t.jsx(o.Typography,{variant:"body2",children:"Allow nested groups"})}),t.jsx(o.FormControlLabel,{control:t.jsx(o.Checkbox,{checked:c.grouping.allowCollapse,onChange:m=>f.grouping({allowCollapse:m.target.checked})}),label:t.jsx(o.Typography,{variant:"body2",children:"Allow collapse / expand"})})]})]}),t.jsx(o.Alert,{severity:"info",sx:{borderRadius:2,fontSize:"0.8125rem"},children:'The "Add group level" button is hidden when users reach the configured limit.'})]}),t.jsx(uo,{active:a===4,children:t.jsxs(o.Box,{children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:.5},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600},children:"Allowed export formats"}),!v("export")&&t.jsx(o.Typography,{variant:"caption",sx:{color:"primary.main",fontWeight:600},children:"Modified"})]}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",sx:{display:"block",mb:1.5},children:"Only checked formats appear in the Export dialog and the bulk export action. At least one must remain checked."}),t.jsx(o.FormGroup,{sx:{gap:1},children:mp.map(m=>t.jsxs(o.Box,{onClick:()=>y(m.value),sx:{display:"flex",alignItems:"center",gap:1.5,p:1.5,borderRadius:"8px",border:"1px solid",cursor:"pointer",transition:"all 0.15s ease",borderColor:c.export.allowedFormats.includes(m.value)?"primary.main":"divider",bgcolor:c.export.allowedFormats.includes(m.value)?T=>$(T.palette.primary.main,.04):"transparent","&:hover":{borderColor:"primary.light"}},children:[t.jsx(o.Checkbox,{size:"small",checked:c.export.allowedFormats.includes(m.value),onChange:()=>y(m.value),onClick:T=>T.stopPropagation()}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500},children:m.label}),t.jsx(o.Typography,{variant:"caption",color:"text.secondary",children:m.desc})]})]},m.value))})]})})]}),t.jsxs(o.DialogActions,{sx:{px:3,py:1.75,borderTop:"1px solid",borderColor:"divider",bgcolor:m=>$(m.palette.action.hover,.4),justifyContent:"space-between",flexShrink:0},children:[t.jsx(o.Button,{startIcon:t.jsx(D.RestartAlt,{sx:{fontSize:18}}),onClick:h,size:"small",sx:{fontSize:"0.875rem",color:"text.secondary","&:hover":{color:"text.primary",bgcolor:m=>$(m.palette.text.primary,.06)}},children:"Reset to defaults"}),t.jsxs(o.Box,{sx:{display:"flex",gap:1},children:[t.jsx(o.Button,{onClick:r,size:"small",sx:{fontSize:"0.875rem",color:"text.secondary",px:2,borderRadius:"18px"},children:"Cancel"}),t.jsx(o.Button,{onClick:g,size:"small",variant:"contained",sx:{fontSize:"0.875rem",px:2.5,borderRadius:"18px"},children:"Apply"})]})]})]})}const hp=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],gp={1:"1st",2:"2nd",3:"3rd",4:"4th",5:"5th",6:"6th",7:"7th",8:"8th",9:"9th",10:"10th",11:"11th",12:"12th",13:"13th",14:"14th",15:"15th",16:"16th",17:"17th",18:"18th",19:"19th",20:"20th",21:"21st",22:"22nd",23:"23rd",24:"24th",25:"25th",26:"26th",27:"27th",28:"28th"};function Vo(e,r,n,i,a=new Date){const[l,c]=r.split(":").map(Number),d=new Date(a);if(d.setSeconds(0,0),d.setHours(l,c,0,0),e==="daily")return d<=a&&d.setDate(d.getDate()+1),d.toISOString();if(e==="weekly"){const u=n??1,h=d.getDay();let g=u-h;return g<0&&(g+=7),g===0&&d<=a&&(g=7),d.setDate(d.getDate()+g),d.toISOString()}if(e==="monthly"){const u=Math.min(i??1,28);return d.setDate(u),d<=a&&(d.setMonth(d.getMonth()+1),d.setDate(u)),d.toISOString()}return d.toISOString()}function yp(e){const r=ta(e.time);return e.frequency==="daily"?`Daily at ${r}`:e.frequency==="weekly"?`Every ${hp[e.dayOfWeek??1]} at ${r}`:e.frequency==="monthly"?`Monthly on the ${gp[e.dayOfMonth??1]??`${e.dayOfMonth}th`} at ${r}`:r}function ta(e){const[r,n]=e.split(":").map(Number),i=r>=12?"PM":"AM";return`${r%12||12}:${String(n).padStart(2,"0")} ${i}`}function bp(e){const r=new Date(e).getTime()-Date.now();if(r<=0)return"now";const n=Math.floor(r/1e3),i=Math.floor(n/86400),a=Math.floor(n%86400/3600),l=Math.floor(n%3600/60);return i>0?`in ${i}d ${a}h`:a>0?`in ${a}h ${l}m`:l>0?`in ${l}m`:"in less than a minute"}function vp(e){const r=new Date(e),n=new Date,i=r.toDateString()===n.toDateString(),a=ta(`${String(r.getHours()).padStart(2,"0")}:${String(r.getMinutes()).padStart(2,"0")}`);return i?`Today at ${a}`:`${r.toLocaleDateString("en-US",{month:"short",day:"numeric"})} at ${a}`}function ra(e){return`urm_schedules_${e}`}function oa(e){try{const r=localStorage.getItem(ra(e));return r?JSON.parse(r).map(i=>({...i,runCount:typeof i.runCount=="number"?i.runCount:0,isActive:typeof i.isActive=="boolean"?i.isActive:!0,createdAt:i.createdAt||new Date().toISOString()})):[]}catch{return[]}}function na(e,r){try{localStorage.setItem(ra(e),JSON.stringify(r))}catch{}}const Sp=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:2,label:"Tuesday"},{value:3,label:"Wednesday"},{value:4,label:"Thursday"},{value:5,label:"Friday"},{value:6,label:"Saturday"}],Cp=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,ia={name:"",frequency:"daily",dayOfWeek:1,dayOfMonth:1,time:"09:00",format:"csv",scope:"all",email:""},Cr={"& .MuiInputBase-root":{fontSize:"0.875rem",borderRadius:"8px"},"& .MuiInputLabel-root":{fontSize:"0.875rem"},"& .MuiFormHelperText-root":{fontSize:"0.75rem",mx:.5},"& .MuiOutlinedInput-root":{"& fieldset":{borderColor:"divider"},"&:hover fieldset":{borderColor:"text.secondary"},"&.Mui-focused fieldset":{borderColor:"primary.main",borderWidth:2}}};function jp({initial:e=ia,isEditing:r=!1,onSave:n,onBack:i}){const[a,l]=p.useState(e),[c,d]=p.useState(!1),[u,h]=p.useState(!1),g=(y,k)=>l(v=>({...v,[y]:k})),f=a.email.trim().length>0&&!Cp.test(a.email.trim()),b=a.name.trim().length>0&&/^\d{2}:\d{2}$/.test(a.time)&&(a.frequency!=="monthly"||a.dayOfMonth>=1&&a.dayOfMonth<=28)&&!f;return t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",gap:2},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.5,mb:.5},children:[t.jsx(o.IconButton,{size:"small",onClick:i,sx:{color:"text.secondary",ml:-.75,"&:hover":{bgcolor:y=>$(y.palette.text.primary,.06)}},children:t.jsx(D.ArrowBack,{sx:{fontSize:18}})}),t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600},children:r?"Edit schedule":"New schedule"})]}),t.jsx(o.TextField,{label:"Schedule name *",size:"small",fullWidth:!0,value:a.name,onChange:y=>{g("name",y.target.value),c&&y.target.value.trim()&&d(!1)},onBlur:()=>d(!0),placeholder:"e.g. Weekly Sales Report",autoFocus:!0,inputProps:{maxLength:50},error:c&&!a.name.trim(),helperText:c&&!a.name.trim()?"Schedule name is required":`${a.name.length}/50`,sx:Cr}),t.jsxs(o.FormControl,{size:"small",fullWidth:!0,sx:Cr,children:[t.jsx(o.InputLabel,{children:"Frequency"}),t.jsxs(o.Select,{value:a.frequency,label:"Frequency",onChange:y=>g("frequency",y.target.value),children:[t.jsx(o.MenuItem,{value:"daily",children:"Daily"}),t.jsx(o.MenuItem,{value:"weekly",children:"Weekly"}),t.jsx(o.MenuItem,{value:"monthly",children:"Monthly"})]})]}),a.frequency==="weekly"&&t.jsxs(o.FormControl,{size:"small",fullWidth:!0,sx:Cr,children:[t.jsx(o.InputLabel,{children:"Day of week"}),t.jsx(o.Select,{value:a.dayOfWeek,label:"Day of week",onChange:y=>g("dayOfWeek",Number(y.target.value)),children:Sp.map(y=>t.jsx(o.MenuItem,{value:y.value,children:y.label},y.value))})]}),a.frequency==="monthly"&&t.jsx(o.TextField,{label:"Day of month (1–28)",size:"small",type:"number",fullWidth:!0,value:a.dayOfMonth,onChange:y=>g("dayOfMonth",Number(y.target.value)),inputProps:{min:1,max:28},error:a.dayOfMonth<1||a.dayOfMonth>28,helperText:a.dayOfMonth<1||a.dayOfMonth>28?"Day must be between 1 and 28":"Max 28 — works safely across all months including February",sx:Cr}),t.jsx(o.TextField,{label:"Time",size:"small",type:"time",fullWidth:!0,value:a.time,onChange:y=>g("time",y.target.value),InputLabelProps:{shrink:!0},helperText:"24-hour format · Tab must be open for the schedule to fire",sx:Cr}),t.jsxs(o.FormControl,{size:"small",fullWidth:!0,sx:Cr,children:[t.jsx(o.InputLabel,{children:"Export format"}),t.jsxs(o.Select,{value:a.format,label:"Export format",onChange:y=>g("format",y.target.value),children:[t.jsx(o.MenuItem,{value:"csv",children:"CSV — Comma-separated values"}),t.jsx(o.MenuItem,{value:"excel",children:"Excel (.xlsx) — Native format"}),t.jsx(o.MenuItem,{value:"json",children:"JSON — Structured data"})]})]}),t.jsxs(o.Box,{children:[t.jsx(o.Typography,{variant:"caption",sx:{fontWeight:500,color:"text.secondary",display:"block",mb:.75},children:"Data scope"}),t.jsxs(o.RadioGroup,{row:!0,value:a.scope,onChange:y=>g("scope",y.target.value),sx:{gap:2},children:[t.jsx(o.FormControlLabel,{value:"all",control:t.jsx(o.Radio,{size:"small"}),label:t.jsx(o.Typography,{variant:"body2",children:"All rows"})}),t.jsx(o.FormControlLabel,{value:"visible",control:t.jsx(o.Radio,{size:"small"}),label:t.jsx(o.Typography,{variant:"body2",children:"Filtered rows only"})})]})]}),t.jsxs(o.Box,{children:[t.jsx(o.TextField,{label:"Email reminder (optional)",size:"small",fullWidth:!0,type:"email",value:a.email,onChange:y=>g("email",y.target.value),onBlur:()=>h(!0),placeholder:"user@company.com",error:u&&f,helperText:u&&f?"Enter a valid email address":void 0,InputProps:{startAdornment:t.jsx(D.Email,{sx:{fontSize:15,color:"text.disabled",mr:1}})},sx:Cr}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"flex-start",gap:.5,mt:.5,px:.5},children:[t.jsx(D.InfoOutlined,{sx:{fontSize:12,color:"text.disabled",mt:.2,flexShrink:0}}),t.jsx(o.Typography,{variant:"caption",color:"text.disabled",sx:{lineHeight:1.5},children:"Opens your device's email app when the schedule fires. Requires a default mail app (e.g. Outlook, Mail) on this device."})]})]}),t.jsxs(o.Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,pt:.5},children:[t.jsx(o.Button,{onClick:i,size:"small",sx:{fontSize:"0.875rem",color:"text.secondary",px:2,borderRadius:"18px","&:hover":{bgcolor:y=>$(y.palette.text.primary,.06)}},children:"Cancel"}),t.jsx(o.Button,{onClick:()=>b&&n(a),disabled:!b,size:"small",variant:"contained",sx:{fontSize:"0.875rem",px:2.5,borderRadius:"18px"},children:r?"Save changes":"Create schedule"})]})]})}function wp({scheduleName:e,onConfirm:r,onCancel:n}){return t.jsxs(o.Dialog,{open:!0,onClose:n,maxWidth:"xs",fullWidth:!0,PaperProps:{sx:i=>({borderRadius:Co(i),...ae(i).paper})},children:[t.jsxs(o.DialogContent,{sx:{pt:3,pb:2,px:3},children:[t.jsx(o.Box,{sx:{width:44,height:44,borderRadius:"12px",bgcolor:i=>$(i.palette.error.main,.1),display:"flex",alignItems:"center",justifyContent:"center",mb:2},children:t.jsx(D.WarningAmberOutlined,{sx:{fontSize:22,color:"error.main"}})}),t.jsx(o.Typography,{sx:{fontSize:"0.9375rem",fontWeight:600,color:"text.primary",mb:1},children:"Delete Schedule"}),t.jsxs(o.Typography,{sx:{fontSize:"0.8125rem",color:"text.secondary",lineHeight:1.65},children:["Are you sure you want to delete"," ",t.jsxs(o.Box,{component:"span",sx:{fontWeight:600,color:"text.primary"},children:['"',e,'"']}),"? This action cannot be undone."]})]}),t.jsx(o.Divider,{}),t.jsxs(o.DialogActions,{sx:{px:2.5,py:1.5,gap:1},children:[t.jsx(o.Button,{onClick:n,variant:"text",sx:{fontSize:"0.8125rem",color:"text.secondary",borderRadius:i=>`${i.shape.borderRadius}px`,"&:hover":{bgcolor:"action.hover"}},children:"Cancel"}),t.jsx(o.Button,{onClick:r,variant:"contained",color:"error",sx:{fontSize:"0.8125rem",borderRadius:i=>`${i.shape.borderRadius}px`,px:2},children:"Delete"})]})]})}function kp({schedule:e,tick:r,onToggle:n,onRunNow:i,onEdit:a,onDelete:l}){const c=e.isActive;return t.jsxs(o.Box,{sx:{border:"1px solid",borderColor:c?"primary.main":"divider",borderRadius:"10px",p:1.75,bgcolor:c?d=>$(d.palette.primary.main,.025):"background.paper",transition:"border-color 0.15s ease, background-color 0.15s ease"},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1,mb:.5},children:[t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:600,flex:1,minWidth:0,color:c?"text.primary":"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),t.jsx(o.Chip,{label:c?"Active":"Paused",size:"small",sx:{height:18,fontSize:"0.6875rem",fontWeight:600,flexShrink:0,bgcolor:c?d=>$(d.palette.success.main,.1):d=>$(d.palette.text.primary,.06),color:c?"success.dark":"text.secondary"}})]}),t.jsx(o.Typography,{variant:"caption",sx:{color:"text.secondary",display:"block",mb:1},children:yp(e)}),t.jsxs(o.Box,{sx:{display:"flex",flexWrap:"wrap",gap:.5,mb:1},children:[t.jsx(o.Chip,{label:e.format.toUpperCase(),size:"small",sx:{height:20,fontSize:"0.6875rem",fontWeight:500,bgcolor:d=>$(d.palette.primary.main,.08),color:"primary.main"}}),t.jsx(o.Chip,{label:e.scope==="all"?"All rows":"Filtered rows",size:"small",sx:{height:20,fontSize:"0.6875rem",bgcolor:d=>$(d.palette.text.primary,.06),color:"text.secondary"}}),e.email&&t.jsx(o.Chip,{icon:t.jsx(D.Email,{sx:{fontSize:11}}),label:e.email,size:"small",sx:{height:20,fontSize:"0.6875rem",maxWidth:220,bgcolor:d=>$(d.palette.text.primary,.06),color:"text.secondary","& .MuiChip-label":{overflow:"hidden",textOverflow:"ellipsis"}}})]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:1},children:[t.jsxs(o.Box,{sx:{display:"flex",flexWrap:"wrap",gap:1.5,alignItems:"center"},children:[c&&t.jsxs(o.Typography,{variant:"caption",sx:{color:"primary.main",fontWeight:500},children:["Next: ",bp(e.nextRunAt)]}),e.lastRunAt?t.jsxs(o.Typography,{variant:"caption",color:"text.secondary",children:["Last: ",vp(e.lastRunAt)," · ",e.runCount," run",e.runCount!==1?"s":""]}):t.jsx(o.Typography,{variant:"caption",color:"text.disabled",children:"Never run"})]}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.25,flexShrink:0},children:[t.jsx(o.Tooltip,{title:"Edit",placement:"top",children:t.jsx(o.IconButton,{size:"small",onClick:()=>a(e),sx:{color:"text.secondary","&:hover":{color:"primary.main",bgcolor:d=>$(d.palette.primary.main,.08)}},children:t.jsx(D.Edit,{sx:{fontSize:15}})})}),t.jsx(o.Tooltip,{title:c?"Pause":"Resume",placement:"top",children:t.jsx(o.IconButton,{size:"small",onClick:()=>n(e.id),sx:{color:c?"warning.main":"success.main","&:hover":{bgcolor:c?d=>$(d.palette.warning.main,.08):d=>$(d.palette.success.main,.08)}},children:c?t.jsx(D.Pause,{sx:{fontSize:15}}):t.jsx(D.PlayArrow,{sx:{fontSize:15}})})}),t.jsx(o.Tooltip,{title:"Export now",placement:"top",children:t.jsx(o.IconButton,{size:"small",onClick:()=>i(e),sx:{color:"primary.main","&:hover":{bgcolor:d=>$(d.palette.primary.main,.08)}},children:t.jsx(D.Download,{sx:{fontSize:15}})})}),t.jsx(o.Tooltip,{title:"Delete",placement:"top",children:t.jsx(o.IconButton,{size:"small",onClick:()=>l(e.id),sx:{color:"error.main","&:hover":{bgcolor:d=>$(d.palette.error.main,.08)}},children:t.jsx(D.Delete,{sx:{fontSize:15}})})})]})]})]})}function Tp({open:e,onClose:r,reportId:n,reportName:i,onRunNow:a}){const[l,c]=p.useState([]),[d,u]=p.useState({type:"list"}),[h,g]=p.useState(0),[f,b]=p.useState(null);p.useEffect(()=>{e&&(c(oa(n)),u({type:"list"}))},[e,n]),p.useEffect(()=>{if(!e)return;const j=setInterval(()=>g(M=>M+1),3e4);return()=>clearInterval(j)},[e]);const y=p.useCallback(j=>{c(j),na(n,j)},[n]),k=j=>{const M=Vo(j.frequency,j.time,j.dayOfWeek,j.dayOfMonth),A={id:`sched-${Date.now()}`,reportId:n,name:j.name.trim(),frequency:j.frequency,dayOfWeek:j.frequency==="weekly"?j.dayOfWeek:void 0,dayOfMonth:j.frequency==="monthly"?j.dayOfMonth:void 0,time:j.time,format:j.format,scope:j.scope,email:j.email.trim()||void 0,isActive:!0,createdAt:new Date().toISOString(),nextRunAt:M,runCount:0};y([...l,A]),u({type:"list"})},v=j=>{if(d.type!=="edit")return;const M=d.schedule,A=Vo(j.frequency,j.time,j.dayOfWeek,j.dayOfMonth);y(l.map(q=>q.id===M.id?{...M,name:j.name.trim(),frequency:j.frequency,dayOfWeek:j.frequency==="weekly"?j.dayOfWeek:void 0,dayOfMonth:j.frequency==="monthly"?j.dayOfMonth:void 0,time:j.time,format:j.format,scope:j.scope,email:j.email.trim()||void 0,nextRunAt:A}:q)),u({type:"list"})},m=j=>{y(l.map(M=>{if(M.id!==j)return M;const A=M.isActive?M.nextRunAt:Vo(M.frequency,M.time,M.dayOfWeek,M.dayOfMonth);return{...M,isActive:!M.isActive,nextRunAt:A}}))},T=j=>{a(j);const M=new Date().toISOString();y(l.map(A=>A.id===j.id?{...A,lastRunAt:M,runCount:A.runCount+1}:A))},x=j=>{const M=l.find(A=>A.id===j)??null;b(M)},z=()=>{f&&(y(l.filter(j=>j.id!==f.id)),b(null))},B=j=>({name:j.name,frequency:j.frequency,dayOfWeek:j.dayOfWeek??1,dayOfMonth:j.dayOfMonth??1,time:j.time,format:j.format,scope:j.scope,email:j.email??""}),w=d.type!=="list",R=l.filter(j=>j.isActive).length;return t.jsxs(t.Fragment,{children:[t.jsxs(o.Dialog,{open:e,onClose:r,maxWidth:"sm",fullWidth:!0,disableEscapeKeyDown:w,PaperProps:{sx:j=>({borderRadius:Ze(j),maxHeight:"min(680px, calc(100vh - 180px))",my:"auto",display:"flex",flexDirection:"column",...ae(j).paper})},children:[t.jsxs(o.DialogTitle,{sx:j=>({display:"flex",alignItems:"center",justifyContent:"space-between",py:1.5,px:2.5,flexShrink:0,minHeight:0,...ae(j).header}),children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1.25},children:[t.jsx(o.Box,{sx:{width:30,height:30,borderRadius:"7px",bgcolor:j=>$(j.palette.primary.main,.1),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:t.jsx(D.Schedule,{sx:{fontSize:17,color:"primary.main"}})}),t.jsxs(o.Box,{sx:{display:"flex",alignItems:"baseline",gap:.75},children:[t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:.75},children:[t.jsx(o.Typography,{variant:"subtitle2",sx:{fontWeight:600,lineHeight:1},children:"Scheduled Reports"}),t.jsx(kr,{content:Tr.schedule,isDev:process.env.NODE_ENV==="development"})]}),t.jsxs(o.Typography,{variant:"caption",color:"text.secondary",sx:{lineHeight:1},children:["· ",i]})]})]}),t.jsx(o.IconButton,{size:"small",onClick:r,sx:{color:"text.secondary","&:hover":{bgcolor:j=>$(j.palette.text.primary,.06)}},children:t.jsx(D.Close,{sx:{fontSize:18}})})]}),t.jsxs(o.DialogContent,{sx:{overflowY:"auto",flex:1,px:2.5,py:2},children:[w&&t.jsx(jp,{initial:d.type==="edit"?B(d.schedule):ia,isEditing:d.type==="edit",onSave:d.type==="edit"?v:k,onBack:()=>u({type:"list"})}),d.type==="list"&&t.jsxs(t.Fragment,{children:[t.jsxs(o.Box,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:1.75,pt:1.5},children:[t.jsx(o.Typography,{variant:"body2",color:"text.secondary",children:l.length===0?"No schedules yet":`${R} of ${l.length} active`}),t.jsx(o.Button,{startIcon:t.jsx(D.Add,{sx:{fontSize:15}}),size:"small",variant:"contained",onClick:()=>u({type:"create"}),sx:{fontSize:"0.8125rem",borderRadius:"18px",px:1.75,py:.625},children:"New schedule"})]}),l.length===0?t.jsxs(o.Box,{sx:{border:"1.5px dashed",borderColor:"divider",borderRadius:"10px",py:5,px:2,textAlign:"center"},children:[t.jsx(D.NotificationsActive,{sx:{fontSize:30,color:"text.disabled",mb:1.25,display:"block",mx:"auto"}}),t.jsx(o.Typography,{variant:"body2",sx:{fontWeight:500,color:"text.secondary"},children:"No scheduled reports yet"}),t.jsx(o.Typography,{variant:"caption",color:"text.disabled",sx:{display:"block",mt:.5},children:'Use "New schedule" above to set up automatic exports'})]}):t.jsx(o.Box,{sx:{display:"flex",flexDirection:"column",gap:1.25},children:l.map(j=>t.jsx(kp,{schedule:j,tick:h,onToggle:m,onRunNow:T,onEdit:M=>u({type:"edit",schedule:M}),onDelete:x},j.id))})]})]}),d.type==="list"&&t.jsxs(o.DialogActions,{sx:{px:2.5,py:1.25,borderTop:"1px solid",borderColor:"divider",flexShrink:0,display:"flex",alignItems:"center",gap:1},children:[t.jsxs(o.Box,{sx:{flex:1,display:"flex",alignItems:"center",gap:.75,px:1.25,py:.75,borderRadius:"8px",bgcolor:j=>$(j.palette.warning.main,.06),border:"1px solid",borderColor:j=>$(j.palette.warning.main,.2)},children:[t.jsx(D.Schedule,{sx:{fontSize:13,color:"warning.main",flexShrink:0}}),t.jsx(o.Typography,{variant:"caption",sx:{color:"warning.dark",lineHeight:1.1},children:"Schedules require this browser tab to remain open."})]}),t.jsx(o.Button,{onClick:r,size:"small",sx:{fontSize:"0.875rem",color:"text.secondary",px:2,borderRadius:"18px",flexShrink:0,"&:hover":{bgcolor:j=>$(j.palette.text.primary,.06)}},children:"Close"})]})]}),f&&t.jsx(wp,{scheduleName:f.name,onConfirm:z,onCancel:()=>b(null)})]})}const Bp=6e4;function Ip({reportId:e,reportName:r,uploadedData:n,processedData:i,schema:a,activeView:l,columnVisibility:c,columnOrder:d,filters:u,sortStack:h,onFired:g}){const f=p.useRef({reportId:e,reportName:r,uploadedData:n,processedData:i,schema:a,activeView:l,columnVisibility:c,columnOrder:d,filters:u,sortStack:h,onFired:g});p.useEffect(()=>{f.current={reportId:e,reportName:r,uploadedData:n,processedData:i,schema:a,activeView:l,columnVisibility:c,columnOrder:d,filters:u,sortStack:h,onFired:g}});const b=p.useCallback(y=>{var j,M;const{reportName:k,uploadedData:v,processedData:m,schema:T,activeView:x,columnVisibility:z,columnOrder:B,filters:w,sortStack:R}=f.current;try{const A=y.scope==="all"?v:m,q=Ho(A,T,w,R,x,z,B),te=`${y.name}_scheduled`;switch(y.format){case"csv":Uo(q,te,{scope:y.scope});break;case"excel":Go(q,te,{scope:y.scope});break;case"json":Yo(q,te,{scope:y.scope});break}if(y.email){const s=encodeURIComponent(`Scheduled Report: ${y.name}`),N=encodeURIComponent(`Your scheduled report "${y.name}" has been generated.
|
|
90
90
|
|
|
91
|
-
Report: ${
|
|
92
|
-
Format: ${
|
|
91
|
+
Report: ${k}
|
|
92
|
+
Format: ${y.format.toUpperCase()}
|
|
93
93
|
Generated: ${new Date().toLocaleString()}
|
|
94
94
|
|
|
95
|
-
The file has been downloaded to your device.`);window.open(`mailto:${S.email}?subject=${p}&body=${P}`,"_blank")}(_=(b=h.current).onFired)==null||_.call(b,S)}catch(V){Rt.error("urm:scheduler",`Export failed for schedule: ${S.name}`,V)}},[]);x.useEffect(()=>{if(!e)return;const S=()=>{const{reportId:C}=h.current;if(!C)return;const m=Gs(C),I=new Date;let f=!1;const O=m.map(j=>{if(!j.isActive)return j;if(new Date(j.nextRunAt)<=I){v(j);const R=Mo(j.frequency,j.time,j.dayOfWeek,j.dayOfMonth,I);return f=!0,{...j,lastRunAt:I.toISOString(),nextRunAt:R,runCount:j.runCount+1}}return j});f&&Ys(C,O)};S();const B=setInterval(S,jp);return()=>clearInterval(B)},[e,v])}function Js({reportEngine:e}){var St,Qe,vr,Ar,Vt;const{activeReport:r,paginatedData:n,processedData:i,tableMetrics:s,tableEngine:l,activeView:a,isDirty:c,currentTableState:u,showFilterPanel:g,setShowFilterPanel:y,filterFocusColumn:h,handleReplaceFilters:v,handleOpenFilterForColumn:S,handleCloseFilterPanel:B,handleClearFiltersForColumn:C,showSortPanel:m,setShowSortPanel:I,handleSort:f,handleUpdateSortStack:O,handleSortAscending:j,handleSortDescending:w,showCreateViewModal:R,setShowCreateViewModal:b,showEditViewModal:_,setShowEditViewModal:V,showDeleteConfirmation:d,setShowDeleteConfirmation:ee,editingView:p,deletingView:P,handleSelectView:F,handleCreateView:re,handleUpdateCurrentView:ce,handleSaveAsNewView:J,handleRevertChanges:Z,handleToggleDefault:ge,handleToggleFavorite:H,handleSoftDelete:K,handleRestoreView:ne,handlePermanentDelete:ae,handleEditView:G,handleCloneView:te,handleCopyViewLink:oe,handleSaveEditView:E,handleConfirmDelete:Q,handlePromoteToGlobal:xe,showManageColumns:ie,setShowManageColumns:Te,handleUpdateColumnVisibility:U,handleUpdateColumnOrder:Ee,handleUpdateColumnWidth:Ze,handleResetColumnLayout:kt,showGroupPanel:zr,setShowGroupPanel:hr,handleGroup:gt,handleToggleGroupCollapse:Er,handleExpandAllGroups:Wt,handleCollapseAllGroups:Tt,searchQuery:fr,debouncedSearchQuery:Pt,searchHistory:Jt,handleSearchChange:Nt,handleAddToSearchHistory:yt,handleToggleSearchFavourite:Kt,handleDeleteSearchHistory:ct,selectedRowIds:rt,handleToggleRowSelection:Ke,handleToggleAllRows:ho,handleRangeSelection:Dr,handleClearSelection:Xt,handleUpdateSelectionAfterDelete:ot,currentPage:Qt,pageSize:$r,paginationTotalRows:Bt,handlePageChange:Lt,handlePageSizeChange:We,isExporting:bt,showExportModal:Zt,setShowExportModal:fo,showDirtyExportWarning:le,handleExport:er,handleExportWithConfig:tr,handleExportSelected:ye,handleExportAnyway:Kr,handleSaveAndExport:Or,handleCancelExport:It,showAuditHistory:N,setShowAuditHistory:nt,showCreatePreset:be,setShowCreatePreset:Xe,showManagePresets:gr,setShowManagePresets:rr,activePreset:yr,handleCreatePreset:or,handleClearActivePreset:zt,handleOpenPresetById:Ft,handleDeletePresetById:nr,isViewerRole:ir,userRole:Le,featureLimitWarning:sr,setFeatureLimitWarning:X,reportError:dt,setReportError:ze,handleError:Et,updateReport:Dt,showSnack:ar,config:He}=e,[br,fe]=x.useState(!1);wp({reportId:r==null?void 0:r.id,reportName:(r==null?void 0:r.name)||"Report",uploadedData:(r==null?void 0:r.uploadedData)||[],processedData:i||[],schema:(r==null?void 0:r.schema)||[],activeView:a,columnVisibility:(r==null?void 0:r.columnVisibility)||((St=a==null?void 0:a.snapshot)==null?void 0:St.columnVisibility)||{},columnOrder:(r==null?void 0:r.columnOrder)||((Qe=a==null?void 0:a.snapshot)==null?void 0:Qe.columnOrder)||[],filters:Me(r==null?void 0:r.filters),sortStack:(r==null?void 0:r.sortStack)||[],onFired:he=>{ar(`Scheduled export "${he.name}" completed`,"success")}});const Ye=x.useCallback((he,je)=>{if(!(r!=null&&r.uploadedData))return;const $e=[...r.uploadedData];$e[he]=je,Dt(r.id,{uploadedData:$e})},[r,Dt]),_r=x.useCallback(he=>{if(!(r!=null&&r.uploadedData))return;const je=r.uploadedData.indexOf(he);if(je===-1)return;const $e=r.uploadedData.filter((Ot,cr)=>cr!==je);Dt(r.id,{uploadedData:$e}),ot(he)},[r,Dt,ot]),ut=x.useCallback((he,je)=>{if(!(r!=null&&r.uploadedData))return;const $e=r.uploadedData.indexOf(je),Ot=$e!==-1?$e+1:he+1,cr=[...r.uploadedData];cr.splice(Ot,0,{...je}),Dt(r.id,{uploadedData:cr})},[r,Dt]),vt=Tr(),{handleDevConfigChange:$t}=Uo(),[Mr,lr]=x.useState(!1);return x.useEffect(()=>{const he=je=>{je.ctrlKey&&je.shiftKey&&je.key==="D"&&(je.preventDefault(),lr(!0))};return document.addEventListener("keydown",he),()=>document.removeEventListener("keydown",he)},[]),!r||!r.schemaLocked||!r.schema||!r.uploadedData||!r.views?null:t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,position:"relative"},children:[t.jsxs(o.Box,{id:"table-content-area",sx:{flex:1,minHeight:0,display:"flex",flexDirection:"column",position:"relative"},children:[sr&&t.jsx(ip,{warning:sr,onDismiss:()=>X(null)}),dt&&t.jsx(sp,{error:dt,onDismiss:()=>ze(null)}),le&&t.jsx(Fu,{onExportAnyway:Kr,onSaveAndExport:Or,onCancel:It}),t.jsx(Du,{schema:r.schema,data:n,sortStack:r.sortStack,filters:r.filters,views:r.views,activeViewId:r.activeViewId,isDirty:c,isExporting:bt,columnVisibility:r.columnVisibility||(a==null?void 0:a.snapshot.columnVisibility),columnOrder:r.columnOrder||(a==null?void 0:a.snapshot.columnOrder),columnWidths:r.columnWidths||(a==null?void 0:a.snapshot.columnWidths),grouping:r.grouping,onSort:f,onSortAscending:j,onSortDescending:w,onOpenFilters:()=>y(!0),onOpenSort:()=>I(!0),onOpenFilterForColumn:S,onSelectView:F,onCreateView:()=>b(!0),onUpdateCurrentView:ce,onSaveAsNewView:J,onDiscardChanges:Z,onToggleDefault:ge,onToggleFavorite:H,onRestoreView:ne,onPermanentDelete:ae,onEditView:G,onCloneView:te,onCopyLink:oe,onDeleteView:K,onPromoteToGlobal:xe,isAdmin:((vr=vt.views)==null?void 0:vr.isAdmin)??!1,onExport:er,onOpenColumns:()=>Te(!0),onUpdateColumnWidth:Ze,onUpdateColumnOrder:Ee,onUpdateColumnVisibility:U,onClearFiltersForColumn:C,onResetLayout:kt,onOpenGroup:()=>hr(!0),onGroupByColumn:he=>{gt({enabled:!0,levels:[{column:he}],collapsedGroups:[]})},onToggleGroupCollapse:Er,onExpandAllGroups:Wt,onCollapseAllGroups:Tt,onOpenAuditHistory:()=>nt(!0),onOpenScheduledReports:()=>fe(!0),searchQuery:fr,highlightQuery:Pt,searchHistory:Jt,onAddToSearchHistory:yt,onToggleSearchFavourite:Kt,onDeleteSearchHistory:ct,selectedRowIds:rt,onSearchChange:Nt,onToggleRowSelection:Ke,onToggleAllRows:ho,onRangeSelection:Dr,onClearSelection:Xt,onExportSelected:ye,currentPage:Qt,pageSize:$r,onPageChange:Lt,onPageSizeChange:We,totalRowsBeforePagination:Bt,isReadOnly:ir,userRole:Le,reportName:r.name,onEditRow:Ye,onDeleteRow:_r,onDuplicateRow:ut,rowActions:He==null?void 0:He.rowActions,hideDefaultRowActions:He==null?void 0:He.hideDefaultRowActions,onRowClick:He==null?void 0:He.onRowClick,onRowRightClick:He==null?void 0:He.onRowRightClick,showDevPanel:vt.display.showDevPanel,onOpenDevConfig:()=>lr(!0)})]}),g&&t.jsx(Do,{feature:"Filters",onError:he=>{const je=pr("ui","filters",he);Et(je)},children:t.jsx(Mu,{schema:r.schema,filters:r.filters,onReplaceFilters:v,onClose:B,focusColumn:h})}),m&&t.jsx(Do,{feature:"Sorting",onError:he=>{const je=pr("ui","sorting",he);Et(je)},children:t.jsx(Ru,{schema:r.schema,sortStack:r.sortStack??[],onUpdateSortStack:O,onClose:()=>I(!1)})}),R&&u&&(()=>{var $e;const he=(r.views??[]).filter(Ot=>!Ot.isDeleted).length,je=(($e=vt.views)==null?void 0:$e.maxViews)??10;return t.jsx(Zi,{currentSnapshot:u,onSave:re,onClose:()=>b(!1),atViewLimit:he>=je,maxViews:je})})(),_&&p&&t.jsx(Zi,{currentSnapshot:p.snapshot,onSave:E,onClose:()=>{V(!1)},isEditMode:!0,initialName:p.name,initialDescription:p.description,initialIsDefault:p.isDefault}),d&&P&&t.jsx(Wu,{viewName:P.name,onConfirm:Q,onCancel:()=>{ee(!1)}}),ie&&a&&t.jsx(Nu,{schema:r.schema,columnVisibility:r.columnVisibility||a.snapshot.columnVisibility,columnOrder:r.columnOrder||a.snapshot.columnOrder,columnWidths:r.columnWidths||a.snapshot.columnWidths,views:r.views,activeViewId:r.activeViewId,onUpdateColumnVisibility:U,onUpdateColumnOrder:Ee,onUpdateColumnWidth:Ze,onResetLayout:kt,onClose:()=>Te(!1)}),zr&&t.jsx(Do,{feature:"Grouping",onError:he=>{const je=pr("ui","grouping",he);Et(je)},children:t.jsx(Lu,{schema:r.schema,grouping:r.grouping||null,onApply:gt,onClose:()=>hr(!1)})}),N&&t.jsx(Uu,{auditHistory:r.auditHistory||[],onClose:()=>nt(!1)}),be&&t.jsx(Gu,{onSave:or,onClose:()=>Xe(!1)}),gr&&t.jsx(qu,{presets:r.presets||[],reportId:r.id,onOpenPreset:Ft,onDeletePreset:nr,onClose:()=>rr(!1)}),yr&&t.jsx(o.Box,{sx:{mt:2},children:t.jsx(Yu,{presetName:yr.name,onClear:zt})}),Zt&&t.jsx(Do,{feature:"Export",onError:he=>{const je=pr("ui","export",he);Et(je)},children:t.jsx(np,{totalRows:(s==null?void 0:s.totalRows)||((Ar=r.uploadedData)==null?void 0:Ar.length)||0,visibleRows:(s==null?void 0:s.searchedRows)||i.length,visibleColumnsCount:((Vt=l==null?void 0:l.columnEngine)==null?void 0:Vt.visibleColumns.length)||r.schema.length,totalColumnsCount:r.schema.length,hasGrouping:(s==null?void 0:s.isGrouped)||!1,schema:r.schema,allRows:r.uploadedData||[],processedRows:i||[],onExport:tr,onClose:()=>{fo(!1)}})}),r&&t.jsx(Cp,{open:br,onClose:()=>fe(!1),reportId:r.id,reportName:r.name,onRunNow:he=>{const je=he.scope==="all"?r.uploadedData||[]:i||[],$e=Ao(je,r.schema||[],Me(r.filters),r.sortStack||[],a,r.columnVisibility,r.columnOrder);he.format==="csv"&&Ro($e,he.name),he.format==="excel"&&Wo($e,he.name),he.format==="json"&&Po($e,he.name),ar(`"${he.name}" exported successfully`,"success")}}),t.jsx(up,{open:Mr,onClose:()=>lr(!1),config:vt,onApply:$t})]})}const kp={error:"err",warning:"warn",info:"info",success:"suc"};function Ks({open:e,message:r,severity:n,onClose:i,autoHideDurationMs:s}){var O,j,w,R;const l=o.useTheme(),a=l.tokens,c=(a==null?void 0:a.notifPosition)??"top-right",u=(a==null?void 0:a.notifStyle)??"toast",g=(a==null?void 0:a.notifAccent)??"severity",y=(a==null?void 0:a.notifAutoDismiss)??!0,h=(a==null?void 0:a.toastW)??252,v=c.startsWith("top")?"top":"bottom",S=c.endsWith("center")?"center":c.endsWith("left")?"left":"right",B=kp[n],C=((O=a==null?void 0:a.status)==null?void 0:O[`${B}Soft`])??l.palette[n].light,m=((j=a==null?void 0:a.status)==null?void 0:j[`${B}Txt`])??l.palette[n].dark,I=g==="primary"?l.palette.primary.main:g==="mono"?l.palette.text.secondary:m,f=u==="toast"?(a==null?void 0:a.toastBg)??l.palette.background.paper:C;return t.jsx(o.Snackbar,{open:e,autoHideDuration:y?s??(a!=null&&a.autoDismissSec?a.autoDismissSec*1e3:2e3):void 0,onClose:(b,_)=>{_!=="escapeKeyDown"&&i()},anchorOrigin:{vertical:v,horizontal:S},children:t.jsx(o.Alert,{severity:n,icon:u==="toast"?t.jsx(o.Box,{sx:{width:30,height:30,borderRadius:`${Math.max(Math.round((Number(l.shape.borderRadius)||4)*.6),2)}px`,bgcolor:((w=a==null?void 0:a.status)==null?void 0:w[`${B}Soft`])??l.palette[n].light,color:((R=a==null?void 0:a.status)==null?void 0:R[`${B}Txt`])??l.palette[n].dark,display:"grid",placeItems:"center",flexShrink:0,fontSize:"15px",fontWeight:800,mt:-.5,ml:-.5},children:n==="error"||n==="warning"?"!":n==="success"?"✓":"i"}):void 0,action:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[y&&(a==null?void 0:a.autoDismissSec)&&t.jsx(o.Box,{sx:{px:1,py:.25,borderRadius:"999px",bgcolor:$(I,.14),color:I,fontSize:"0.7rem",fontWeight:800,fontVariantNumeric:"tabular-nums"},children:`${a.autoDismissSec}s`}),t.jsx(o.IconButton,{size:"small",onClick:i,sx:{color:"text.secondary",p:.25},children:t.jsx(z.Close,{sx:{fontSize:16}})})]}),sx:{width:h,alignItems:"flex-start",bgcolor:f,color:m,boxShadow:u==="inline"?"none":(a==null?void 0:a.cardShadow)??3,border:u==="inline"?"1px solid":u==="toast"?(a==null?void 0:a.cardBorder)??"1px solid":"none",borderColor:"divider",borderLeft:u==="banner"?`4px solid ${I}`:void 0,borderRadius:`${l.shape.borderRadius}px`,"& .MuiAlert-icon":{color:I}},children:t.jsxs(o.Box,{children:[u==="toast"&&t.jsx(o.Box,{sx:{fontWeight:700,mb:"2px",fontSize:"0.875rem",color:l.palette.text.primary},children:n==="error"?"Error":n==="warning"?"Warning":n==="success"?"Success":"Info"}),t.jsx(o.Box,{sx:{fontSize:"0.8125rem",lineHeight:1.4},children:r})]})})})}function Xs({hasExternalData:e=!1}){const r=Uo(),{reports:n,activeReportId:i,activeReport:s,uploadState:l,hasSchemaConflicts:a,isModalOpen:c,setIsModalOpen:u,setActiveReportId:g,createReport:y,handleFileUpload:h,handleUploadError:v,handleRetry:S,handleConfirm:B,snack:C,handleSnackClose:m,snackDurationMs:I}=r,f=e&&l==="uploading"&&n.length===0;return t.jsxs(o.Box,{sx:{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden"},children:[t.jsx(Rl,{onCreateReport:()=>u(!0),reports:n,activeReportId:i,onReportClick:g}),t.jsx(o.Box,{component:"main",sx:{flex:1,overflow:"hidden",display:"flex",flexDirection:"column",m:0,p:0},children:f?t.jsxs(o.Box,{sx:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2},children:[t.jsx(o.CircularProgress,{size:40,thickness:3}),t.jsx(o.Typography,{variant:"body2",color:"text.secondary",sx:{minWidth:260,textAlign:"center"},children:"Fetching API data — please wait..."})]}):n.length===0?t.jsx(Rs,{title:"No reports yet",description:"Create your first report to start analyzing your data."}):s?t.jsx(t.Fragment,{children:s.schemaLocked&&s.schema&&s.uploadedData&&s.views?t.jsx(Js,{reportEngine:r}):t.jsx(o.Box,{sx:{p:3},children:l==="preview"&&s.schema&&s.uploadedData?t.jsx(Kd,{schema:s.schema,onConfirm:B,hasConflicts:a}):s.uploadError?t.jsx(Xd,{error:s.uploadError,onRetry:S}):t.jsx(Jd,{onFileUpload:h,onError:v,isUploading:l==="uploading"})})}):null}),!e&&t.jsx(qd,{isOpen:c,onClose:()=>u(!1),onCreate:y}),t.jsx(Ks,{open:C.open,message:C.message,severity:C.severity,onClose:m,autoHideDurationMs:I})]})}function Tp({data:e,dataSource:r,pagination:n,reportName:i,reportId:s,autoLoad:l=!0,config:a}={}){return t.jsx(Yn,{mode:"builder",data:e,dataSource:r,pagination:n,reportName:i,reportId:s,autoLoad:l,config:a,children:t.jsx(Xs,{hasExternalData:!!(e||r)})})}function Qs(){const e=Uo(),{snack:r,handleSnackClose:n,snackDurationMs:i}=e;return t.jsxs(o.Box,{sx:{height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:[t.jsx(o.Box,{component:"main",sx:{flex:1,minHeight:0,overflow:"hidden",display:"flex",flexDirection:"column"},children:e.activeReport?t.jsx(Js,{reportEngine:e}):t.jsx(Rs,{title:"No report data",description:"This viewer requires report data to be loaded."})}),t.jsx(Ks,{open:r.open,message:r.message,severity:r.severity,onClose:n,autoHideDurationMs:i})]})}function Bp({data:e,reportId:r,pagination:n,autoLoad:i=!0,config:s}){return t.jsx(Yn,{data:e,reportId:r,pagination:n,mode:"viewer",autoLoad:i,config:s,children:t.jsx(Qs,{})})}exports.URMBuilder=Tp;exports.URMBuilderRaw=Xs;exports.URMProvider=Yn;exports.URMViewer=Bp;exports.URMViewerRaw=Qs;exports.useURMContext=Uo;
|
|
95
|
+
The file has been downloaded to your device.`);window.open(`mailto:${y.email}?subject=${s}&body=${N}`,"_blank")}(M=(j=f.current).onFired)==null||M.call(j,y)}catch(A){Wt.error("urm:scheduler",`Export failed for schedule: ${y.name}`,A)}},[]);p.useEffect(()=>{if(!e)return;const y=()=>{const{reportId:v}=f.current;if(!v)return;const m=oa(v),T=new Date;let x=!1;const z=m.map(B=>{if(!B.isActive)return B;if(new Date(B.nextRunAt)<=T){b(B);const R=Vo(B.frequency,B.time,B.dayOfWeek,B.dayOfMonth,T);return x=!0,{...B,lastRunAt:T.toISOString(),nextRunAt:R,runCount:B.runCount+1}}return B});x&&na(v,z)};y();const k=setInterval(y,Bp);return()=>clearInterval(k)},[e,b])}function sa({reportEngine:e}){var ge,qe,gr,it,Gt,wt;const{activeReport:r,paginatedData:n,processedData:i,tableMetrics:a,tableEngine:l,activeView:c,isDirty:d,currentTableState:u,showFilterPanel:h,setShowFilterPanel:g,filterFocusColumn:f,handleReplaceFilters:b,handleOpenFilterForColumn:y,handleCloseFilterPanel:k,handleClearFiltersForColumn:v,showSortPanel:m,setShowSortPanel:T,handleSort:x,handleUpdateSortStack:z,handleSortAscending:B,handleSortDescending:w,showCreateViewModal:R,setShowCreateViewModal:j,showEditViewModal:M,setShowEditViewModal:A,showDeleteConfirmation:q,setShowDeleteConfirmation:te,editingView:s,deletingView:N,handleSelectView:L,handleCreateView:re,handleUpdateCurrentView:le,handleSaveAsNewView:J,handleRevertChanges:ee,handleToggleDefault:Ce,handleToggleFavorite:V,handleSoftDelete:K,handleRestoreView:ne,handlePermanentDelete:ce,handleEditView:U,handleCloneView:ie,handleCopyViewLink:oe,handleSaveEditView:E,handleConfirmDelete:Z,handlePromoteToGlobal:ue,showManageColumns:de,setShowManageColumns:ze,handleUpdateColumnVisibility:H,handleUpdateColumnOrder:He,handleUpdateColumnWidth:rt,handleResetColumnLayout:tt,showGroupPanel:Pt,setShowGroupPanel:xr,handleGroup:zt,handleToggleGroupCollapse:Br,handleExpandAllGroups:Xe,handleCollapseAllGroups:Ct,searchQuery:Ir,debouncedSearchQuery:pt,searchHistory:Xt,handleSearchChange:Et,handleAddToSearchHistory:zr,handleToggleSearchFavourite:Dt,handleDeleteSearchHistory:at,selectedRowIds:$t,handleToggleRowSelection:Ue,handleToggleAllRows:Ot,handleRangeSelection:Qt,handleClearSelection:Zt,handleUpdateSelectionAfterDelete:Nt,currentPage:er,pageSize:Er,paginationTotalRows:Dr,handlePageChange:tr,handlePageSizeChange:_e,isExporting:ye,showExportModal:mr,setShowExportModal:Lt,showDirtyExportWarning:eo,handleExport:fr,handleExportWithConfig:$r,handleExportSelected:Ft,handleExportAnyway:Ge,handleSaveAndExport:be,handleCancelExport:jt,showAuditHistory:jo,setShowAuditHistory:Q,showCreatePreset:F,setShowCreatePreset:xt,showManagePresets:ve,setShowManagePresets:ot,activePreset:Vt,handleCreatePreset:rr,handleClearActivePreset:Ht,handleOpenPresetById:or,handleDeletePresetById:to,isViewerRole:Ut,userRole:nr,featureLimitWarning:Or,setFeatureLimitWarning:Ye,reportError:hr,setReportError:X,handleError:Le,updateReport:Se,showSnack:nt,config:me}=e,[_r,ir]=p.useState(!1);Ip({reportId:r==null?void 0:r.id,reportName:(r==null?void 0:r.name)||"Report",uploadedData:(r==null?void 0:r.uploadedData)||[],processedData:i||[],schema:(r==null?void 0:r.schema)||[],activeView:c,columnVisibility:(r==null?void 0:r.columnVisibility)||((ge=c==null?void 0:c.snapshot)==null?void 0:ge.columnVisibility)||{},columnOrder:(r==null?void 0:r.columnOrder)||((qe=c==null?void 0:c.snapshot)==null?void 0:qe.columnOrder)||[],filters:Pe(r==null?void 0:r.filters),sortStack:(r==null?void 0:r.sortStack)||[],onFired:he=>{nt(`Scheduled export "${he.name}" completed`,"success")}});const Mr=p.useCallback((he,we)=>{if(!(r!=null&&r.uploadedData))return;const $e=[...r.uploadedData];$e[he]=we,Se(r.id,{uploadedData:$e})},[r,Se]),ro=p.useCallback(he=>{if(!(r!=null&&r.uploadedData))return;const we=r.uploadedData.indexOf(he);if(we===-1)return;const $e=r.uploadedData.filter((mt,_t)=>_t!==we);Se(r.id,{uploadedData:$e}),Nt(he)},[r,Se,Nt]),Ar=p.useCallback((he,we)=>{if(!(r!=null&&r.uploadedData))return;const $e=r.uploadedData.indexOf(we),mt=$e!==-1?$e+1:he+1,_t=[...r.uploadedData];_t.splice(mt,0,{...we}),Se(r.id,{uploadedData:_t})},[r,Se]),sr=wr(),{handleDevConfigChange:Rr}=Zo(),[Wr,ar]=p.useState(!1);return p.useEffect(()=>{const he=we=>{we.ctrlKey&&we.shiftKey&&we.key==="D"&&(we.preventDefault(),ar(!0))};return document.addEventListener("keydown",he),()=>document.removeEventListener("keydown",he)},[]),!r||!r.schemaLocked||!r.schema||!r.uploadedData||!r.views?null:t.jsxs(o.Box,{sx:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,position:"relative"},children:[t.jsxs(o.Box,{id:"table-content-area",sx:{flex:1,minHeight:0,display:"flex",flexDirection:"column",position:"relative"},children:[Or&&t.jsx(cp,{warning:Or,onDismiss:()=>Ye(null)}),hr&&t.jsx(dp,{error:hr,onDismiss:()=>X(null)}),eo&&t.jsx(Gu,{onExportAnyway:Ge,onSaveAndExport:be,onCancel:jt}),t.jsx(Mu,{schema:r.schema,data:n,sortStack:r.sortStack,filters:r.filters,views:r.views,activeViewId:r.activeViewId,isDirty:d,isExporting:ye,columnVisibility:r.columnVisibility||(c==null?void 0:c.snapshot.columnVisibility),columnOrder:r.columnOrder||(c==null?void 0:c.snapshot.columnOrder),columnWidths:r.columnWidths||(c==null?void 0:c.snapshot.columnWidths),grouping:r.grouping,onSort:x,onSortAscending:B,onSortDescending:w,onOpenFilters:()=>g(!0),onOpenSort:()=>T(!0),onOpenFilterForColumn:y,onSelectView:L,onCreateView:()=>j(!0),onUpdateCurrentView:le,onSaveAsNewView:J,onDiscardChanges:ee,onToggleDefault:Ce,onToggleFavorite:V,onRestoreView:ne,onPermanentDelete:ce,onEditView:U,onCloneView:ie,onCopyLink:oe,onDeleteView:K,onPromoteToGlobal:ue,isAdmin:((gr=sr.views)==null?void 0:gr.isAdmin)??!1,onExport:fr,onOpenColumns:()=>ze(!0),onUpdateColumnWidth:rt,onUpdateColumnOrder:He,onUpdateColumnVisibility:H,onClearFiltersForColumn:v,onResetLayout:tt,onOpenGroup:()=>xr(!0),onGroupByColumn:(it=me==null?void 0:me.hideToolbarActions)!=null&&it.includes("grouping")?void 0:he=>{zt({enabled:!0,levels:[{column:he}],collapsedGroups:[]})},onToggleGroupCollapse:Br,onExpandAllGroups:Xe,onCollapseAllGroups:Ct,onOpenAuditHistory:()=>Q(!0),onOpenScheduledReports:()=>ir(!0),searchQuery:Ir,highlightQuery:pt,searchHistory:Xt,onAddToSearchHistory:zr,onToggleSearchFavourite:Dt,onDeleteSearchHistory:at,selectedRowIds:$t,onSearchChange:Et,onToggleRowSelection:Ue,onToggleAllRows:Ot,onRangeSelection:Qt,onClearSelection:Zt,onExportSelected:Ft,currentPage:er,pageSize:Er,onPageChange:tr,onPageSizeChange:_e,totalRowsBeforePagination:Dr,isReadOnly:Ut,userRole:nr,reportName:r.name,onEditRow:Mr,onDeleteRow:ro,onDuplicateRow:Ar,rowActions:me==null?void 0:me.rowActions,hideDefaultRowActions:me==null?void 0:me.hideDefaultRowActions,hideToolbarActions:me==null?void 0:me.hideToolbarActions,customSettingsActions:me==null?void 0:me.customSettingsActions,viewOptions:me==null?void 0:me.viewOptions,defaultViewMode:me==null?void 0:me.defaultViewMode,bulkActions:me==null?void 0:me.bulkActions,hideSelectionCheckboxes:me==null?void 0:me.hideSelectionCheckboxes,rowClickBehavior:me==null?void 0:me.rowClickBehavior,openModalOn:me==null?void 0:me.openModalOn,onRowClick:me==null?void 0:me.onRowClick,onRowRightClick:me==null?void 0:me.onRowRightClick,showDevPanel:sr.display.showDevPanel,onOpenDevConfig:()=>ar(!0)})]}),h&&t.jsx(Po,{feature:"Filters",onError:he=>{const we=dr("ui","filters",he);Le(we)},children:t.jsx(Pu,{schema:r.schema,filters:r.filters,onReplaceFilters:b,onClose:k,focusColumn:f})}),m&&t.jsx(Po,{feature:"Sorting",onError:he=>{const we=dr("ui","sorting",he);Le(we)},children:t.jsx(Lu,{schema:r.schema,sortStack:r.sortStack??[],onUpdateSortStack:z,onClose:()=>T(!1)})}),R&&u&&(()=>{var $e;const he=(r.views??[]).filter(mt=>!mt.isDeleted).length,we=(($e=sr.views)==null?void 0:$e.maxViews)??10;return t.jsx(ds,{currentSnapshot:u,onSave:re,onClose:()=>j(!1),atViewLimit:he>=we,maxViews:we})})(),M&&s&&t.jsx(ds,{currentSnapshot:s.snapshot,onSave:E,onClose:()=>{A(!1)},isEditMode:!0,initialName:s.name,initialDescription:s.description,initialIsDefault:s.isDefault}),q&&N&&t.jsx(Fu,{viewName:N.name,onConfirm:Z,onCancel:()=>{te(!1)}}),de&&c&&t.jsx(Hu,{schema:r.schema,columnVisibility:r.columnVisibility||c.snapshot.columnVisibility,columnOrder:r.columnOrder||c.snapshot.columnOrder,columnWidths:r.columnWidths||c.snapshot.columnWidths,views:r.views,activeViewId:r.activeViewId,onUpdateColumnVisibility:H,onUpdateColumnOrder:He,onUpdateColumnWidth:rt,onResetLayout:tt,onClose:()=>ze(!1)}),Pt&&t.jsx(Po,{feature:"Grouping",onError:he=>{const we=dr("ui","grouping",he);Le(we)},children:t.jsx(Uu,{schema:r.schema,grouping:r.grouping||null,onApply:zt,onClose:()=>xr(!1)})}),jo&&t.jsx(Ju,{auditHistory:r.auditHistory||[],onClose:()=>Q(!1)}),F&&t.jsx(Ku,{onSave:rr,onClose:()=>xt(!1)}),ve&&t.jsx(Qu,{presets:r.presets||[],reportId:r.id,onOpenPreset:or,onDeletePreset:to,onClose:()=>ot(!1)}),Vt&&t.jsx(o.Box,{sx:{mt:2},children:t.jsx(Xu,{presetName:Vt.name,onClear:Ht})}),mr&&t.jsx(Po,{feature:"Export",onError:he=>{const we=dr("ui","export",he);Le(we)},children:t.jsx(lp,{totalRows:(a==null?void 0:a.totalRows)||((Gt=r.uploadedData)==null?void 0:Gt.length)||0,visibleRows:(a==null?void 0:a.searchedRows)||i.length,visibleColumnsCount:((wt=l==null?void 0:l.columnEngine)==null?void 0:wt.visibleColumns.length)||r.schema.length,totalColumnsCount:r.schema.length,hasGrouping:(a==null?void 0:a.isGrouped)||!1,schema:r.schema,allRows:r.uploadedData||[],processedRows:i||[],onExport:$r,onClose:()=>{Lt(!1)}})}),r&&t.jsx(Tp,{open:_r,onClose:()=>ir(!1),reportId:r.id,reportName:r.name,onRunNow:he=>{const we=he.scope==="all"?r.uploadedData||[]:i||[],$e=Ho(we,r.schema||[],Pe(r.filters),r.sortStack||[],c,r.columnVisibility,r.columnOrder);he.format==="csv"&&Uo($e,he.name),he.format==="excel"&&Go($e,he.name),he.format==="json"&&Yo($e,he.name),nt(`"${he.name}" exported successfully`,"success")}}),t.jsx(fp,{open:Wr,onClose:()=>ar(!1),config:sr,onApply:Rr})]})}const zp={error:"err",warning:"warn",info:"info",success:"suc"};function aa({open:e,message:r,severity:n,onClose:i,autoHideDurationMs:a}){var z,B,w,R;const l=o.useTheme(),c=l.tokens,d=(c==null?void 0:c.notifPosition)??"top-right",u=(c==null?void 0:c.notifStyle)??"toast",h=(c==null?void 0:c.notifAccent)??"severity",g=(c==null?void 0:c.notifAutoDismiss)??!0,f=(c==null?void 0:c.toastW)??252,b=d.startsWith("top")?"top":"bottom",y=d.endsWith("center")?"center":d.endsWith("left")?"left":"right",k=zp[n],v=((z=c==null?void 0:c.status)==null?void 0:z[`${k}Soft`])??l.palette[n].light,m=((B=c==null?void 0:c.status)==null?void 0:B[`${k}Txt`])??l.palette[n].dark,T=h==="primary"?l.palette.primary.main:h==="mono"?l.palette.text.secondary:m,x=u==="toast"?(c==null?void 0:c.toastBg)??l.palette.background.paper:v;return t.jsx(o.Snackbar,{open:e,autoHideDuration:g?a??(c!=null&&c.autoDismissSec?c.autoDismissSec*1e3:2e3):void 0,onClose:(j,M)=>{M!=="escapeKeyDown"&&i()},anchorOrigin:{vertical:b,horizontal:y},children:t.jsx(o.Alert,{severity:n,icon:u==="toast"?t.jsx(o.Box,{sx:{width:30,height:30,borderRadius:`${Math.max(Math.round((Number(l.shape.borderRadius)||4)*.6),2)}px`,bgcolor:((w=c==null?void 0:c.status)==null?void 0:w[`${k}Soft`])??l.palette[n].light,color:((R=c==null?void 0:c.status)==null?void 0:R[`${k}Txt`])??l.palette[n].dark,display:"grid",placeItems:"center",flexShrink:0,fontSize:"15px",fontWeight:800,mt:-.5,ml:-.5},children:n==="error"||n==="warning"?"!":n==="success"?"✓":"i"}):void 0,action:t.jsxs(o.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[g&&(c==null?void 0:c.autoDismissSec)&&t.jsx(o.Box,{sx:{px:1,py:.25,borderRadius:"999px",bgcolor:$(T,.14),color:T,fontSize:"0.7rem",fontWeight:800,fontVariantNumeric:"tabular-nums"},children:`${c.autoDismissSec}s`}),t.jsx(o.IconButton,{size:"small",onClick:i,sx:{color:"text.secondary",p:.25},children:t.jsx(D.Close,{sx:{fontSize:16}})})]}),sx:{width:f,alignItems:"flex-start",bgcolor:x,color:m,boxShadow:u==="inline"?"none":(c==null?void 0:c.cardShadow)??3,border:u==="inline"?"1px solid":u==="toast"?(c==null?void 0:c.cardBorder)??"1px solid":"none",borderColor:"divider",borderLeft:u==="banner"?`4px solid ${T}`:void 0,borderRadius:`${l.shape.borderRadius}px`,"& .MuiAlert-icon":{color:T}},children:t.jsxs(o.Box,{children:[u==="toast"&&t.jsx(o.Box,{sx:{fontWeight:700,mb:"2px",fontSize:"0.875rem",color:l.palette.text.primary},children:n==="error"?"Error":n==="warning"?"Warning":n==="success"?"Success":"Info"}),t.jsx(o.Box,{sx:{fontSize:"0.8125rem",lineHeight:1.4},children:r})]})})})}function la({hasExternalData:e=!1}){const r=Zo(),{reports:n,activeReportId:i,activeReport:a,uploadState:l,hasSchemaConflicts:c,isModalOpen:d,setIsModalOpen:u,setActiveReportId:h,createReport:g,handleFileUpload:f,handleUploadError:b,handleRetry:y,handleConfirm:k,snack:v,handleSnackClose:m,snackDurationMs:T}=r,x=e&&l==="uploading"&&n.length===0;return t.jsxs(o.Box,{sx:{height:"100%",display:"flex",flexDirection:"column",overflow:"hidden"},children:[t.jsx(Ll,{onCreateReport:()=>u(!0),reports:n,activeReportId:i,onReportClick:h}),t.jsx(o.Box,{component:"main",sx:{flex:1,overflow:"hidden",display:"flex",flexDirection:"column",m:0,p:0},children:x?t.jsxs(o.Box,{sx:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2},children:[t.jsx(o.CircularProgress,{size:40,thickness:3}),t.jsx(o.Typography,{variant:"body2",color:"text.secondary",sx:{minWidth:260,textAlign:"center"},children:"Fetching API data — please wait..."})]}):n.length===0?t.jsx(qs,{title:"No reports yet",description:"Create your first report to start analyzing your data."}):a?t.jsx(t.Fragment,{children:a.schemaLocked&&a.schema&&a.uploadedData&&a.views?t.jsx(sa,{reportEngine:r}):t.jsx(o.Box,{sx:{p:3},children:l==="preview"&&a.schema&&a.uploadedData?t.jsx(eu,{schema:a.schema,onConfirm:k,hasConflicts:c}):a.uploadError?t.jsx(tu,{error:a.uploadError,onRetry:y}):t.jsx(Zd,{onFileUpload:f,onError:b,isUploading:l==="uploading"})})}):null}),!e&&t.jsx(Qd,{isOpen:d,onClose:()=>u(!1),onCreate:g}),t.jsx(aa,{open:v.open,message:v.message,severity:v.severity,onClose:m,autoHideDurationMs:T})]})}function Ep({data:e,dataSource:r,pagination:n,search:i,reportName:a,reportId:l,autoLoad:c=!0,config:d}={}){return t.jsx(ni,{mode:"builder",data:e,dataSource:r,pagination:n,search:i,reportName:a,reportId:l,autoLoad:c,config:d,children:t.jsx(la,{hasExternalData:!!(e||r)})})}function ca(){const e=Zo(),{snack:r,handleSnackClose:n,snackDurationMs:i}=e;return t.jsxs(o.Box,{sx:{height:"100%",overflow:"hidden",display:"flex",flexDirection:"column"},children:[t.jsx(o.Box,{component:"main",sx:{flex:1,minHeight:0,overflow:"hidden",display:"flex",flexDirection:"column"},children:e.activeReport?t.jsx(sa,{reportEngine:e}):t.jsx(qs,{title:"No report data",description:"This viewer requires report data to be loaded."})}),t.jsx(aa,{open:r.open,message:r.message,severity:r.severity,onClose:n,autoHideDurationMs:i})]})}function Dp({data:e,reportId:r,pagination:n,search:i,autoLoad:a=!0,config:l}){return t.jsx(ni,{data:e,reportId:r,pagination:n,search:i,mode:"viewer",autoLoad:a,config:l,children:t.jsx(ca,{})})}exports.URMBuilder=Ep;exports.URMBuilderRaw=la;exports.URMProvider=ni;exports.URMViewer=Dp;exports.URMViewerRaw=ca;exports.useURMContext=Zo;
|