@ishibashi0112/spreadsheet-grid 0.8.0 → 0.9.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/README.md +2 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +835 -823
- package/dist/logic/exportScope.d.ts +3 -0
- package/dist/model/gridTypes.d.ts +15 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -23,6 +23,7 @@ A high-performance, virtualized spreadsheet / data grid for **React 19**, writte
|
|
|
23
23
|
- Themeable with CSS custom properties (`--ssg-*`) and a low-priority `@layer ssg-base`, so your own CSS or Tailwind utilities override the defaults without specificity battles. `className` / `classNames` slots are also provided.
|
|
24
24
|
- Toggle the top / bottom bars and their parts via props — whole bars (`showTopBar` / `showBottomBar`), the default top bar's summary chips and global-filter input, and the Rows/Columns counts in each bar.
|
|
25
25
|
- Built-in CSV export (`downloadCsv` / `exportCsv`), plus a library-agnostic `getExportData()` for Excel / XLSX / ODS — feed the shaped data (filter/sort/visible-order aware) to your own writer such as [hucre](https://github.com/productdevbook/hucre), ExcelJS, or SheetJS. No spreadsheet library is bundled; multi-sheet is composed on your side. See [`API_REFERENCE.md`](./src/components/spreadsheet-grid/API_REFERENCE.md).
|
|
26
|
+
- Export scopes: `'view'` (default — every filtered/sorted view row, scroll-independent), `'raw'` (every source row, ignoring filter & sort), `'rendered'` (only the rows currently rendered by virtualization — scroll-dependent), `'selection'`. Legacy `'all'` / `'visible'` keep working as deprecated aliases of `'view'` / `'rendered'`.
|
|
26
27
|
- TypeScript-first, fully controlled API.
|
|
27
28
|
|
|
28
29
|
## Installation
|
|
@@ -150,6 +151,7 @@ The full prop and type reference lives in [`src/components/spreadsheet-grid/API_
|
|
|
150
151
|
- CSS カスタムプロパティ(`--ssg-*`)と優先度の低い `@layer ssg-base` によるテーマ設定。利用側の通常 CSS や Tailwind ユーティリティが特異度の競合なしに既定を上書きできます。`className` / `classNames` スロットも用意。
|
|
151
152
|
- トップ / ボトムバーとその構成要素(バー全体〔`showTopBar` / `showBottomBar`〕、既定トップバーの summary chips・グローバルフィルター入力、各バーの Rows/Columns 件数)を props で表示制御。
|
|
152
153
|
- CSV エクスポート(`downloadCsv` / `exportCsv`)を内蔵。Excel / XLSX / ODS はライブラリ非依存の `getExportData()` で、整形済みデータ(フィルター/ソート/可視列順を反映)を [hucre](https://github.com/productdevbook/hucre) / ExcelJS / SheetJS など任意の writer へ流す方式。xlsx ライブラリは同梱せず、マルチシートは利用側で合成。詳細は [`API_REFERENCE.md`](./src/components/spreadsheet-grid/API_REFERENCE.md)。
|
|
154
|
+
- エクスポート scope: `'view'`(既定=フィルター/ソート後の全ビュー行。スクロール位置に非依存)/ `'raw'`(フィルター/ソート無視の全ソース行)/ `'rendered'`(描画中の行のみ=スクロール位置に依存)/ `'selection'`(選択範囲)。旧 `'all'` / `'visible'` は `'view'` / `'rendered'` の deprecated エイリアスとして従来どおり動作。
|
|
153
155
|
- TypeScript ファースト、完全 controlled な API。
|
|
154
156
|
|
|
155
157
|
### インストール
|
package/dist/index.cjs
CHANGED
|
@@ -7,4 +7,4 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require
|
|
|
7
7
|
`)},Fe=(e,t,n,r,i,a,o)=>{if(r.length===0)return e;let s=[...e];for(let e=0;e<r.length;e+=1){let c=t(i+e);if(c===void 0)continue;let l=s[c];if(!l)continue;let u=l,d=!1;for(let t=0;t<r[e].length;t+=1){let i=a+t,s=n[i];if(!s||!o(c,i,l,s))continue;let f=r[e][t],p=s.parseClipboardValue?s.parseClipboardValue(f,l):f;u=_e(u,s,p),d=!0}d&&(s[c]=u)}return s},Ie=({rows:t,rowModel:n,visibleColumns:r,uiState:i,readOnly:s,canEditCell:c,createRow:l,createOverflowColumn:u,onRowsChange:d,onColumnsChange:f,dispatch:p})=>{let m=n.getRowCount(),h=m>0&&r.length>0&&i.selection?.type===`cell`&&(()=>{let e=i.selection.range.start,t=i.selection.range.end,n=Math.min(e.row,t.row),a=Math.min(e.col,t.col),o=Math.max(e.row,t.row),s=Math.max(e.col,t.col);return n===0&&a===0&&o===m-1&&s===r.length-1})(),g=(0,e.useCallback)(()=>{let e=n.getRowCount();if(e===0||r.length===0)return``;let t=[];for(let i=0;i<e;i+=1){let e=n.getRow(i);if(!e)continue;let a=r.map(t=>{let n=I(e,t);return t.formatClipboardValue?t.formatClipboardValue(n,e):String(n??``)});t.push(a.join(` `))}return t.join(`
|
|
8
8
|
`)},[n,r]);return{isWholeGridSelected:h,handleCopy:(0,e.useCallback)(async()=>{let e=h?g():R(n.getRow,n.getRowCount(),r,i.selection);e&&navigator.clipboard?.writeText&&await navigator.clipboard.writeText(e)},[h,n,g,i.selection,r]),handlePaste:(0,e.useCallback)(e=>{if(!d||!i.activeCell)return;let m=e.clipboardData.getData(`text/plain`);if(!m)return;e.preventDefault();let h=Pe(m);if(h.length===0)return;let g=i.activeCell.row,_=n.getSourceIndex(g);if(_===void 0)return;let v=i.activeCell.col,y=[...t],b=[...r],x=n.getRowCount(),S=y.length,C=e=>e<x?n.getSourceIndex(e):S+(e-x),w=_+h.length;if(w>y.length&&l)for(;y.length<w;)y.push(l());let T=h.reduce((e,t)=>Math.max(e,t.length),0);if(T===0)return;let E=v+T;if(E>b.length&&f&&u){for(;b.length<E;)b.push(u(b.length));f(b)}let D=Fe(y,C,b,h,g,v,(e,t,n,r)=>ge({readOnly:s,canEditCell:c},e,t,n,r)),O=o(i.activeCell.row+Math.max(h.length-1,0),0,Math.max(Math.max(n.getRowCount()-1,0),g+h.length-1)),k=o(i.activeCell.col+Math.max((h[0]?.length??1)-1,0),0,Math.max(Math.max(b.length-1,0),v+T-1));d(D),p(a.startSelection(i.activeCell)),p(a.updateSelection({row:O,col:k})),p(a.endSelection()),p(a.activateCell(i.activeCell))},[c,u,l,p,f,d,s,n,t,i.activeCell,r])}},Le=e=>{if(e<0)return``;let t=e,n=``;for(;t>=0;)n=String.fromCharCode(t%26+65)+n,t=Math.floor(t/26)-1;return n},Re=(e,t,n)=>e?e(t):n,ze=(e,t=16)=>e.length<=t?e:`${e.slice(0,t)}…`,Be=e=>e?`${Le(e.col)}${e.row+1}`:`なし`,Ve=e=>{if(!e)return`なし`;if(e.type===`cell`){let t=Math.min(e.range.start.row,e.range.end.row),n=Math.max(e.range.start.row,e.range.end.row),r=Math.min(e.range.start.col,e.range.end.col),i=Math.max(e.range.start.col,e.range.end.col);return`${Le(r)}${t+1} - ${Le(i)}${n+1}`}if(e.type===`row`){let t=Math.min(e.startRow,e.endRow),n=Math.max(e.startRow,e.endRow);return`Row ${t+1} - ${n+1}`}let t=Math.min(e.startCol,e.endCol),n=Math.max(e.startCol,e.endCol);return`Col ${Le(t)} - ${Le(n)}`},He=(e,t)=>`Rows: ${t} / ${e.rows.length}`,Ue=e=>`Columns: ${e.visibleColumns.length} / ${e.columns.length}`,We=(e,t)=>{let n=e.selection;if(!n)return{selectedCellCount:0,selectedRowCount:0,selectedColumnCount:0};if(n.type===`cell`){let e=Math.min(n.range.start.row,n.range.end.row),t=Math.max(n.range.start.row,n.range.end.row),r=Math.min(n.range.start.col,n.range.end.col),i=Math.max(n.range.start.col,n.range.end.col),a=t-e+1,o=i-r+1;return{selectedCellCount:a*o,selectedRowCount:a,selectedColumnCount:o}}if(n.type===`row`){let t=Math.min(n.startRow,n.endRow),r=Math.max(n.startRow,n.endRow)-t+1,i=e.visibleColumns.length;return{selectedCellCount:r*i,selectedRowCount:r,selectedColumnCount:i}}let r=Math.min(n.startCol,n.endCol),i=Math.max(n.startCol,n.endCol)-r+1,a=t;return{selectedCellCount:a*i,selectedRowCount:a,selectedColumnCount:i}},Ge=(e,t)=>{let n=We(e,t);return`Cells: ${n.selectedCellCount} / Rows: ${n.selectedRowCount}`},Ke=e=>Object.values(e).filter(e=>L(e)).length,qe=e=>{let t=e.globalFilterText.trim().length>0,n=t?ze(e.globalFilterText.trim()):null,r=Ke(e.columnFilterValues);return!t&&r===0?`Filter: なし`:t&&r===0?`Filter: Global("${n}")`:!t&&r>0?`Filter: ${r}列`:`Filter: Global("${n}") + ${r}列`},Je=(e,t)=>{let n=e.find(e=>e.key===t);return n?.title||n?.key||t},Ye=e=>e.sortState.length===0?`Sort: なし`:`Sort: ${e.sortState.map(t=>`${Je(e.columns,t.columnKey)} (${t.direction===`asc`?`昇順`:`降順`})`).join(`, `)}`,Xe=(e,t)=>{let n=We(e,t),r=e.globalFilterText.trim().length>0,i=r?ze(e.globalFilterText.trim()):null,a=Ke(e.columnFilterValues),o=r||a>0,s=e.sortState.length>0,c=s?Je(e.columns,e.sortState[0].columnKey):null;return{rowSummaryText:He(e,t),columnSummaryText:Ue(e),filterSummaryText:qe(e),sortSummaryText:Ye(e),activeCellLabel:Be(e.activeCell),selectionLabel:Ve(e.selection),selectionStatsText:Ge(e,t),selectionStats:n,hasGlobalFilter:r,globalFilterPreview:i,activeColumnFilterCount:a,hasAnyFilter:o,hasSorting:s,sortedColumnLabel:c}},Ze=({rows:t,viewRowCount:n,getFilteredRows:r,columns:i,visibleColumns:a,uiState:o,setGlobalFilterText:s,globalFilterStatus:c,globalFilterProgress:l})=>{let u=de(o),d=o.filters.columnFilters,f=o.sort,p=o.activeCell,m=o.selection,h=(0,e.useMemo)(()=>({rows:t,columns:i,visibleColumns:a,globalFilterText:u,columnFilterValues:d,sortState:f,activeCell:p,selection:m}),[t,i,a,u,d,f,p,m]),g=(0,e.useMemo)(()=>Xe(h,n),[h,n]);return{slotContextBase:h,derivedSummary:g,slotContext:(0,e.useMemo)(()=>({...h,get filteredRows(){return r()},setGlobalFilterText:s,derivedSummary:g,globalFilterStatus:c,globalFilterProgress:l}),[g,r,s,h,c,l])}},Qe=({uiState:t,rows:n,visibleColumns:r,rowModel:i,setEditorInitialValue:o,onRowsChange:s,dispatch:c,getMovedCell:l,gridRootRef:u,editorActionGuardRef:d})=>{let f=(0,e.useCallback)(e=>{c(a.startSelection(e)),c(a.endSelection()),c(a.activateCell(e))},[c]);return{activateSingleCell:f,startEditWithValue:(0,e.useCallback)((e,t)=>{o(t),c(a.startEdit(e))},[c,o]),commitEdit:(0,e.useCallback)((e,o)=>{if(d.current||!t.editingCell)return;let p=t.editingCell,m=o===`down`?l(p,1,0):o===`right`?l(p,0,1):o===`left`?l(p,0,-1):p,h=r[p.col],g=i.getSourceIndex(p.row),_=n[g];if(!h||!_){c(a.stopEdit());return}if(s){let t=h.parseClipboardValue?h.parseClipboardValue(e,_):e;s(n.map((e,n)=>n===g?_e(e,h,t):e))}d.current=!0,requestAnimationFrame(()=>{u.current?.focus(),f(m),d.current=!1}),c(a.stopEdit())},[f,c,d,i,l,u,s,n,t.editingCell,r]),cancelEdit:(0,e.useCallback)(()=>{d.current||(d.current=!0,c(a.stopEdit()),requestAnimationFrame(()=>{u.current?.focus(),d.current=!1}))},[c,d,u])}},$e=e=>e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey,et=e=>e instanceof HTMLElement?e.closest(`input, textarea, select, button, [contenteditable="true"]`)!==null:!1,tt=({uiState:t,rowModel:n,visibleColumns:r,readOnly:i,canEditCell:s,setEditorInitialValue:c,dispatch:l,handleCopy:u,handleCellDoubleClick:d,isWholeGridSelected:f,selectEntireGrid:p})=>{let m=n.getRowCount(),h=(0,e.useCallback)((e,t,n)=>({row:o(e.row+t,0,Math.max(m-1,0)),col:o(e.col+n,0,Math.max(r.length-1,0))}),[m,r.length]),g=(0,e.useCallback)((e,n,i)=>{if(m===0||r.length===0)return;let s=t.activeCell??{row:0,col:0},c={row:o(s.row+e,0,m-1),col:o(s.col+n,0,r.length-1)};if(i){let e=t.selection?.type===`cell`?t.selection.range.start:s;l(a.startSelection(e)),l(a.updateSelection(c)),l(a.endSelection()),l(a.activateCell(c));return}l(a.startSelection(c)),l(a.endSelection()),l(a.activateCell(c))},[l,m,t.activeCell,t.selection,r.length]);return{getMovedCell:h,handleKeyDown:(0,e.useCallback)(async e=>{if(!et(e.target)&&!t.editingCell){if((e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`c`){e.preventDefault(),await u();return}if((e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`a`){if(e.preventDefault(),f){l(a.clearSelection()),l(a.activateCell(null));return}p();return}if(e.key===`ArrowUp`){e.preventDefault(),g(-1,0,e.shiftKey);return}if(e.key===`ArrowDown`){e.preventDefault(),g(1,0,e.shiftKey);return}if(e.key===`ArrowLeft`){e.preventDefault(),g(0,-1,e.shiftKey);return}if(e.key===`ArrowRight`){e.preventDefault(),g(0,1,e.shiftKey);return}if(e.key===`Tab`){e.preventDefault(),g(0,e.shiftKey?-1:1,!1);return}if(e.key===`Escape`){e.preventDefault(),l(a.clearSelection());return}if(e.key===`Enter`||e.key===`F2`){e.preventDefault(),t.activeCell&&d(t.activeCell);return}if($e(e)&&t.activeCell){let o=n.getRow(t.activeCell.row),u=r[t.activeCell.col];if(!o||!u||!ge({readOnly:i,canEditCell:s},t.activeCell.row,t.activeCell.col,o,u))return;e.preventDefault(),c(e.key),l(a.startEdit(t.activeCell))}}},[s,l,n,d,u,f,g,i,p,c,t.activeCell,t.editingCell,r])}},nt=new Intl.Collator(`ja`,{numeric:!0,sensitivity:`base`}),z=(e,t)=>{let n=Number(e),r=Number(t);return Number.isFinite(n)&&Number.isFinite(r)?n-r:nt.compare(String(e??``),String(t??``))},rt=(e,t,n,r)=>{if(!r)return e.length===1&&e[0].columnKey===t&&e[0].direction===n?[]:[{columnKey:t,direction:n}];let i=e.findIndex(e=>e.columnKey===t);return i===-1?[...e,{columnKey:t,direction:n}]:e[i].direction===n?e.filter((e,t)=>t!==i):e.map((e,r)=>r===i?{columnKey:t,direction:n}:e)},it=(e,t,n)=>e.some(e=>e.columnKey===t)?e:[...e,{columnKey:t,direction:n}],at=(e,t,n)=>t<0||t>=e.length||e[t].direction===n?e:e.map((e,r)=>r===t?{...e,direction:n}:e),ot=(e,t,n)=>t<0||t>=e.length||e[t].columnKey===n?e:e.map((e,r)=>r===t?{...e,columnKey:n}:e).filter((e,r)=>r===t||e.columnKey!==n),st=(e,t)=>t<0||t>=e.length?e:e.filter((e,n)=>n!==t),ct=(e,t,n)=>{if(t<0||t>=e.length||n<0||n>=e.length||t===n)return e;let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r},lt=(e,t,n,r)=>{if(r.length===0)return t;let i=r.map(e=>{let t=n.find(t=>t.key===e.columnKey);return t?{column:t,multiplier:e.direction===`asc`?1:-1}:null}).filter(e=>e!==null);if(i.length===0)return t;let a=t.length,o=i.length,s=i.map(e=>e.multiplier),c=Array(o),l=!0;for(let n=0;n<o;n+=1){let r=i[n].column,o=new Float64Array(a),s=!0;for(let n=0;n<a;n+=1){let i=Number(I(e[t[n]],r));if(!Number.isFinite(i)){s=!1;break}o[n]=i}if(!s){l=!1;break}c[n]=o}let u=Array(a);for(let e=0;e<a;e+=1)u[e]=e;if(l)if(o===1){let e=c[0],n=s[0];u.sort((r,i)=>{let a=e[r]-e[i];return a===0?t[r]-t[i]:a*n})}else u.sort((e,n)=>{for(let t=0;t<o;t+=1){let r=c[t][e]-c[t][n];if(r!==0)return r*s[t]}return t[e]-t[n]});else{let n=i.map(({column:n})=>{let r=Array(a);for(let i=0;i<a;i+=1)r[i]=I(e[t[i]],n);return r});u.sort((e,r)=>{for(let t=0;t<o;t+=1){let i=z(n[t][e],n[t][r]);if(i!==0)return i*s[t]}return t[e]-t[r]})}let d=new Int32Array(a);for(let e=0;e<a;e+=1)d[e]=t[u[e]];return d},ut=15e6,dt=(e,t,n,r)=>e&&t&&n>0&&n<=r,ft=1<<20,pt=(e,t)=>({rowCount:e,rowTop:e=>e*t,rowsHeight:(e,n)=>(n-e+1)*t,totalBodyHeight:e*t,rowAtContentY:n=>Math.min(Math.max(Math.floor(n/t),0),Math.max(e-1,0))}),mt=(e,t,n,r)=>{if(r<n)return null;let i=Math.max(e,n),a=Math.min(t,r);return i>a?null:{start:i,end:a}},ht=(e,t)=>e*t,gt=(e,t)=>t===1?e:e/t,_t=(e,t,n,r)=>{let i=t*(1-n);return r.rowAtContentY(e-i)},vt=({rowCount:e,rowHeight:t,headerHeight:n,viewportHeight:r,scrollTop:i,overscan:a,maxBodyPx:o})=>{let s=e*t,c=Math.min(s,o),l=Math.max(n+s-r,0),u=Math.max(n+c-r,0),d=u>0&&s>c?l/u:1,f=Math.min(Math.max(i,0),u),p=f*d,m=Math.ceil(r/t)+1,h=Math.floor(p/t),g=Math.max(h-a,0),_=Math.min(h+m+a,e),v=d===1?0:Math.floor(g*t/ft)*ft,y=f-p+v,b=[],x=new Set;for(let e=g;e<_;e+=1)b.push({index:e,start:n+e*t-v}),x.add(e);return{physicalBodyHeight:c,logicalBodyHeight:s,scaleFactor:d,translateY:y,windowBaseOffsetPx:v,rows:b,rowIndexSet:x}},yt=({headerHeight:e,viewportHeight:t,scrollTop:n,overscan:r},i)=>{let a=i.rowCount,o=i.totalBodyHeight,s=o,c=Math.max(e+o-t,0),l=Math.min(Math.max(n,0),c),u=i.rowAtContentY(l),d=i.rowAtContentY(l+t),f=Math.max(u-r,0),p=Math.min(d+r+1,a),m=[],h=new Set;for(let t=f;t<p;t+=1)m.push({index:t,start:e+i.rowTop(t),size:i.rowsHeight(t,t)}),h.add(t);return{physicalBodyHeight:s,logicalBodyHeight:o,scaleFactor:1,translateY:0,windowBaseOffsetPx:0,rows:m,rowIndexSet:h}},bt=({gridRootRef:t,bodyScrollRef:n,scrollContainerRef:r,leftPaneScrollRef:i,rightPaneScrollRef:s,pointerClientRef:c,autoScrollFrameRef:l,uiState:u,dispatch:d,enableRangeSelection:f,enableSorting:p,orderedColumns:m,filteredRowsLength:h,visibleColumnsLength:g,paneLayout:v,leftLeadingWidth:y,centerLeadingWidth:b,rightLeadingWidth:x,headerHeight:S,rowMetrics:C,verticalScaleFactor:w,setHoveredRowIndex:T,setHoveredColumnIndex:E,enableRowHover:D,enableColumnHeaderHover:O,enableRowSelection:k,onGutterRowSelect:ee,onGutterRowSelectDrag:A})=>{let j=(0,e.useRef)(u.dragState);j.current=u.dragState;let M=(0,e.useRef)(!1),N=(0,e.useRef)(u.sort);N.current=u.sort;let P=(0,e.useRef)(m);P.current=m;let te=(0,e.useRef)(p);te.current=p;let ne=u.dragState?.type??null,re=(0,e.useCallback)((e,t)=>{let a=n.current;if(!a||h===0||g===0)return null;let c=a.getBoundingClientRect(),l=_t(a.scrollTop+t-c.top-S,r.current?.scrollTop??0,w,C),u=null,d=i.current;if(u===null&&d&&v.left.entries.length>0){let t=d.getBoundingClientRect();if(e<t.right){let n=e-t.left-y;u=_(v.left,n)}}let f=s.current;if(u===null&&f&&v.right.entries.length>0){let t=f.getBoundingClientRect();if(e>=t.left){let n=e-t.left-x;u=_(v.right,n)}}if(u===null&&v.center.entries.length>0){let t=a.scrollLeft+e-c.left-b;u=_(v.center,Math.max(t,0))}return u===null?null:{row:l,col:o(u,0,g-1)}},[n,i,s,r,h,g,v,y,b,x,S,C,w]),F=(0,e.useCallback)((e,t)=>{let n=j.current;if(!n||n.type!==`selection`)return;let r=re(e,t);if(r){if(n.selectionKind===`cell`){d(a.updateSelection(r));return}if(n.selectionKind===`row`){d(a.updateRowSelection(r.row));return}n.selectionKind===`col`&&d(a.updateColumnSelection(r.col))}},[d,re]);return(0,e.useEffect)(()=>{let e=e=>{c.current={x:e.clientX,y:e.clientY},ne===`columnResize`&&d(a.updateColumnResize(e.clientX))},t=()=>{M.current=!1,d(a.endSelection()),d(a.endColumnResize())};return window.addEventListener(`pointermove`,e),window.addEventListener(`pointerup`,t),()=>{window.removeEventListener(`pointermove`,e),window.removeEventListener(`pointerup`,t)}},[d,c,ne]),(0,e.useEffect)(()=>{if(ne!==`selection`){l.current!==null&&(cancelAnimationFrame(l.current),l.current=null);return}let e=()=>{let t=r.current,n=c.current;if(!t||!n){l.current=requestAnimationFrame(e);return}let i=t.getBoundingClientRect(),a=t.scrollTop,o=t.scrollLeft,s=j.current?.type===`selection`&&j.current.selectionKind===`col`,u=j.current?.type===`selection`&&j.current.selectionKind===`row`;s||(n.y<i.top+24?a=Math.max(t.scrollTop-18,0):n.y>i.bottom-24&&(a=t.scrollTop+18)),u||(n.x<i.left+24?o=Math.max(t.scrollLeft-18,0):n.x>i.right-24&&(o=t.scrollLeft+18)),(a!==t.scrollTop||o!==t.scrollLeft)&&(t.scrollTo({top:a,left:o,behavior:`auto`}),F(n.x,n.y)),l.current=requestAnimationFrame(e)};return l.current=requestAnimationFrame(e),()=>{l.current!==null&&(cancelAnimationFrame(l.current),l.current=null)}},[l,r,c,ne,F]),{updateSelectionFromPointer:F,handleCellPointerDown:(0,e.useCallback)((e,n)=>{n.preventDefault(),n.button===0&&(t.current?.focus(),d(a.activateCell(e)),f&&d(a.startSelection(e)))},[d,f,t]),handleCellPointerEnter:(0,e.useCallback)((e,t)=>{if(D&&T(e.row),!f)return;let n=j.current;n?.type!==`selection`||n.selectionKind!==`cell`||(c.current={x:t.clientX,y:t.clientY},d(a.updateSelection(e)))},[d,f,c,T,D]),handleNativeDragStart:(0,e.useCallback)(e=>{e.preventDefault()},[]),handleRowHeaderPointerDown:(0,e.useCallback)((e,n)=>{if(n.preventDefault(),n.button===0){if(t.current?.focus(),k){M.current=!0,ee(e,{shiftKey:n.shiftKey});return}d(a.startRowSelection(e))}},[d,t,k,ee]),handleRowHeaderPointerEnter:(0,e.useCallback)((e,t)=>{if(D&&T(e),M.current){c.current={x:t.clientX,y:t.clientY},A(e);return}let n=j.current;n?.type!==`selection`||n.selectionKind!==`row`||(c.current={x:t.clientX,y:t.clientY},d(a.updateRowSelection(e)))},[d,c,T,D,A]),handleColumnHeaderPointerDown:(0,e.useCallback)((e,n)=>{if(n.preventDefault(),n.button===0){if(t.current?.focus(),n.shiftKey&&te.current){let t=P.current[e];if(t){let e=N.current,n=e.find(e=>e.columnKey===t.key)?.direction?`desc`:`asc`,r=rt(e,t.key,n,!0);d(r.length===0?a.clearSort():a.setSort(r))}return}d(a.startColumnSelection(e))}},[d,t]),handleColumnHeaderPointerEnter:(0,e.useCallback)((e,t)=>{T(null),O&&E(e);let n=j.current;n?.type!==`selection`||n.selectionKind!==`col`||(c.current={x:t.clientX,y:t.clientY},d(a.updateColumnSelection(e)))},[d,c,T,E,O])}},xt=({scrollRef:t,columnVirtualizer:n,columnMeasurements:r,totalScrollWidth:i,physicalBodyHeight:a,headerHeight:o,leftPaneWidth:s,rightPaneWidth:c,centerLeadingWidth:l,activeCellRect:u,verticalScaleFactor:d})=>{(0,e.useEffect)(()=>{n.measure()},[n,r]),(0,e.useEffect)(()=>{if(!t.current)return;let e=t.current,n=Math.max(i-e.clientWidth,0),r=Math.max(o+a-e.clientHeight,0);e.scrollLeft>n&&(e.scrollLeft=n),e.scrollTop>r&&(e.scrollTop=r)},[t,i,a,o]),(0,e.useEffect)(()=>{if(!t.current||!u)return;let e=t.current,n=o+u.top,r=n+u.height,i=s+l+u.left,a=i+u.width,f=ht(e.scrollTop,d),p=e.scrollLeft,m=e.clientHeight,h=e.clientWidth,g=f,_=p,v=f+o,y=f+m;n<v?g=Math.max(n-o,0):r>y&&(g=Math.max(r-m,0));let b=p+s,x=p+h-c;i<b?_=Math.max(i-s,0):a>x&&(_=Math.max(a-h+c,0)),(g!==f||_!==p)&&e.scrollTo({top:gt(g,d),left:_,behavior:`auto`})},[t,u,o,s,c,l,d])};function St(e,t,n,r){let i=e.find(e=>e.key===t);if(!i)return null;let a=c(i),o={left:[],center:[],right:[]},s=new Map;for(let t of e)o[c(t)].push(t.key),s.set(t.key,t.visible!==!1);let l=o[n].filter(e=>s.get(e)).indexOf(t),u=o[a].indexOf(t);if(u<0)return null;o[a].splice(u,1);let d=r;a===n&&l>=0&&d>l&&--d;let f=o[n].filter(e=>s.get(e));if(d=Math.max(0,Math.min(d,f.length)),a===n&&l>=0&&d===l)return null;let p;return p=d>=f.length?o[n].length:o[n].indexOf(f[d]),o[n].splice(p,0,t),[...o.left,...o.center,...o.right]}var Ct=24,wt=18,Tt=32,Et=2,Dt=14,Ot=12,kt=`<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="5 9 2 12 5 15"/><polyline points="9 5 12 2 15 5"/><polyline points="15 19 12 22 9 19"/><polyline points="19 9 22 12 19 15"/><line x1="2" y1="12" x2="22" y2="12"/><line x1="12" y1="2" x2="12" y2="22"/></svg>`,At=`<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="17" x2="12" y2="22"/><path d="M5 17h14v-1.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1v4.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24Z"/></svg>`,B=`<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="4.9" y1="4.9" x2="19.1" y2="19.1"/></svg>`,jt=`0.5`,Mt=200,Nt=`cubic-bezier(0.2, 0.7, 0.3, 1)`,Pt=()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,Ft=e=>{if(!e)return null;let t=new Map;return e.querySelectorAll(`[data-ssg-col-key]`).forEach(e=>{let n=e.dataset.ssgColKey;n&&!t.has(n)&&t.set(n,e.getBoundingClientRect().left)}),t},It=t=>{let n=(0,e.useRef)(t);n.current=t;let r=(0,e.useRef)(null),i=(0,e.useRef)(null),a=(0,e.useRef)(null),o=(0,e.useRef)(null),s=(0,e.useRef)(null),l=(0,e.useRef)(null),u=(0,e.useRef)({x:0,y:0}),d=(0,e.useRef)(null),f=(0,e.useRef)(null),p=(0,e.useRef)(null),m=(0,e.useRef)(null),h=(0,e.useCallback)(()=>{for(let e of[r,i,a])e.current&&(e.current.style.display=`none`)},[]),g=(0,e.useCallback)(e=>{if(f.current)return;let t=document.createElement(`div`);t.setAttribute(`data-grid-drag-ghost`,``),t.style.cssText=[`position:fixed`,`top:0`,`left:0`,`display:inline-flex`,`align-items:center`,`gap:7px`,`padding:7px 12px 7px 10px`,`border-radius:9px`,`border:1px solid rgba(255,255,255,0.10)`,`background:#1e293b`,`color:#f8fafc`,`font-size:12px`,`font-weight:600`,`line-height:1`,`white-space:nowrap`,`box-shadow:0 8px 20px rgba(2,6,23,0.34), 0 1px 2px rgba(2,6,23,0.24)`,`pointer-events:none`,`user-select:none`,`z-index:9999`,`will-change:transform`,`transform:translate(-9999px,-9999px)`].join(`;`);let n=document.createElement(`span`);n.style.cssText=`display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex:none`;let r=document.createElement(`span`);r.textContent=e,t.appendChild(n),t.appendChild(r),document.body.appendChild(t),f.current=t,p.current=n,m.current=null},[]),_=(0,e.useCallback)(e=>{let t=f.current;if(!t)return;let{x:n,y:r}=u.current;t.style.transform=`translate(`+(n+Dt)+`px,`+(r+Ot)+`px)`;let i=e??`out`;if(m.current===i)return;m.current=i;let a=p.current;i===`out`?(t.style.opacity=jt,a&&(a.innerHTML=B)):(t.style.opacity=`1`,a&&(a.innerHTML=i===`center`?kt:At))},[]),b=(0,e.useCallback)(()=>{let e=f.current;e&&e.parentNode&&e.parentNode.removeChild(e),f.current=null,p.current=null,m.current=null},[]),x=(0,e.useCallback)((e,t)=>{let{paneLayout:r,leftPaneScrollRef:i,rightPaneScrollRef:a,bodyScrollRef:o,scrollContainerRef:s,leftLeadingWidth:c,centerLeadingWidth:l,rightLeadingWidth:u}=n.current,d=s.current;if(d){let n=d.getBoundingClientRect();if(e<n.left||e>n.right||t<n.top||t>n.bottom)return null}let f=i.current,p=a.current;if(f&&r.left.entries.length===0&&e<=f.getBoundingClientRect().left+Tt)return{pane:`left`,slot:0,leftPx:Et};if(f&&r.left.entries.length>0){let t=f.getBoundingClientRect();if(e<t.right){let n=e-t.left-c,i=v(r.left,n);return{pane:`left`,slot:i,leftPx:c+y(r.left,i)}}}if(p&&r.right.entries.length===0&&e>=p.getBoundingClientRect().left-Tt)return{pane:`right`,slot:0,leftPx:-2};if(p&&r.right.entries.length>0){let t=p.getBoundingClientRect();if(e>=t.left){let n=e-t.left-u,i=v(r.right,n);return{pane:`right`,slot:i,leftPx:u+y(r.right,i)}}}let m=o.current;if(m&&r.center.entries.length>0){let t=m.getBoundingClientRect(),n=m.scrollLeft+e-t.left-l,i=v(r.center,Math.max(n,0));return{pane:`center`,slot:i,leftPx:l+y(r.center,i)}}return null},[]),S=(0,e.useCallback)(()=>{let e=x(u.current.x,u.current.y);if(_(e?e.pane:null),!e){s.current=null,h();return}s.current={pane:e.pane,slot:e.slot};let t={left:r.current,center:i.current,right:a.current};for(let n of[`left`,`center`,`right`]){let r=t[n];r&&(n===e.pane?(r.style.left=`${e.leftPx}px`,r.style.display=`block`):r.style.display=`none`)}},[x,h,_]),C=(0,e.useRef)(()=>{});C.current=(0,e.useCallback)(()=>{let e=n.current.scrollContainerRef.current;if(e){let t=e.getBoundingClientRect(),n=u.current,r=e.scrollLeft;n.x<t.left+Ct?r=Math.max(e.scrollLeft-wt,0):n.x>t.right-Ct&&(r=e.scrollLeft+wt),r!==e.scrollLeft&&e.scrollTo({left:r,behavior:`auto`})}S(),d.current=requestAnimationFrame(C.current)},[S]);let w=(0,e.useCallback)(e=>{d.current!==null&&(cancelAnimationFrame(d.current),d.current=null),document.body.style.cursor=``,h(),b();let t=o.current,r=s.current;if(o.current=null,s.current=null,!e||!t||!r)return;let{columns:i,applyColumnOrderAndPin:a,scrollContainerRef:u}=n.current,f=St(i,t,r.pane,r.slot);if(!f)return;let p=i.find(e=>e.key===t),m=p?c(p):null;l.current=m!==null&&m===r.pane&&!Pt()?Ft(u.current):null,a(f,new Map([[t,r.pane===`center`?void 0:r.pane]]))},[h,b]),T=(0,e.useCallback)(()=>{let e=l.current;if(l.current=null,!e)return;let t=n.current.scrollContainerRef.current;if(!t)return;let r=new Map,i=new Map;t.querySelectorAll(`[data-ssg-col-key]`).forEach(t=>{let n=t.dataset.ssgColKey;if(!n||!e.has(n))return;let a=r.get(n);a?a.push(t):(r.set(n,[t]),i.set(n,t.getBoundingClientRect().left))});let a=[];if(r.forEach((t,n)=>{let r=e.get(n),o=i.get(n);if(r===void 0||o===void 0)return;let s=r-o;if(!(Math.abs(s)<.5))for(let e of t)e.style.transition=`none`,e.style.transform=`translateX(${s}px)`,e.style.willChange=`transform`,a.push(e)}),a.length!==0){t.getBoundingClientRect();for(let e of a)e.style.transition=`transform ${Mt}ms ${Nt}`,e.style.transform=`translateX(0)`;window.setTimeout(()=>{for(let e of a)e.style.transition=``,e.style.transform=``,e.style.willChange=``},280)}},[]),E=(0,e.useCallback)((e,t)=>{if(!n.current.enabled||t.button!==0)return;t.stopPropagation(),t.preventDefault(),o.current=e.key,u.current={x:t.clientX,y:t.clientY},document.body.style.cursor=`grabbing`,g(e.title||e.key);let r=t.currentTarget,i=t.pointerId;try{r.setPointerCapture(i)}catch{}let a=e=>{u.current={x:e.clientX,y:e.clientY},S()};function s(){l(),w(!0)}function c(){l(),w(!1)}let l=()=>{r.removeEventListener(`pointermove`,a),r.removeEventListener(`pointerup`,s),r.removeEventListener(`pointercancel`,c),r.removeEventListener(`lostpointercapture`,c);try{r.releasePointerCapture(i)}catch{}};r.addEventListener(`pointermove`,a),r.addEventListener(`pointerup`,s),r.addEventListener(`pointercancel`,c),r.addEventListener(`lostpointercapture`,c),S(),d.current=requestAnimationFrame(C.current)},[S,w,g]);return(0,e.useEffect)(()=>()=>{d.current!==null&&(cancelAnimationFrame(d.current),d.current=null),document.body.style.cursor=``;let e=f.current;e&&e.parentNode&&e.parentNode.removeChild(e),f.current=null,p.current=null,m.current=null},[]),{onColumnDragHandlePointerDown:E,leftIndicatorRef:r,centerIndicatorRef:i,rightIndicatorRef:a,applyReorderSettle:T}},Lt=(e,t)=>e.includes(t)||e.includes(`"`)||e.includes(`
|
|
9
9
|
`)||e.includes(`\r`)?`"${e.replace(/"/g,`""`)}"`:e,Rt=(e,t)=>{let n=I(e,t);return t.formatClipboardValue?t.formatClipboardValue(n,e):String(n??``)},zt=({getRow:e,startRow:t,endRow:n,columns:r,delimiter:i=`,`,includeHeaders:a=!0,bom:o=!1})=>{let s=[];a&&s.push(r.map(e=>Lt(e.title??e.key,i)).join(i));for(let a=t;a<n;a+=1){let t=e(a);if(!t)continue;let n=r.map(e=>Lt(Rt(t,e),i));s.push(n.join(i))}let c=s.join(`\r
|
|
10
|
-
`);return o?`\uFEFF${c}`:c},Bt=({getRow:e,startRow:t,endRow:n,columns:r})=>{let i=r.map(e=>({key:e.key,title:e.title??e.key})),a=[];for(let i=t;i<n;i+=1){let t=e(i);t&&a.push(r.map(e=>{let n=I(t,e);return{value:n,text:e.formatClipboardValue?e.formatClipboardValue(n,t):String(n??``)}}))}return{columns:i,rows:a}},Vt=e=>{switch(e.kind){case`set`:return{...e,values:[...e.values]};case`number`:return{...e,parsed:e.parsed?{...e.parsed}:null};case`text`:case`date`:case`select`:return{...e};case`custom`:return{...e}}},Ht=e=>{let t={};for(let n of Object.keys(e))t[n]=Vt(e[n]);return t},Ut=e=>{let t={key:e.key};return e.visible!==void 0&&(t.visible=e.visible),e.pinned!==void 0&&(t.pinned=e.pinned),t},Wt=e=>e.map(e=>{let t={key:e.key};return e.visible!==void 0&&(t.visible=e.visible),e.pinned!==void 0&&(t.pinned=e.pinned),t}),Gt=(e,t,n,r=[],i=2)=>({version:i,columnWidths:{...e},filters:{globalText:t.globalText,columnFilters:Ht(t.columnFilters)},sort:n.map(e=>({...e})),columns:r.map(Ut)}),Kt=e=>{let t=e&&typeof e==`object`?e:{},n={},r=t.columnWidths;if(r&&typeof r==`object`){let e=r;for(let t of Object.keys(e)){let r=e[t];typeof r==`number`&&Number.isFinite(r)&&(n[t]=r)}}let i=t.filters&&typeof t.filters==`object`?t.filters:{},a=typeof i.globalText==`string`?i.globalText:``,o={},s=i.columnFilters;if(s&&typeof s==`object`){let e=s;for(let t of Object.keys(e)){let n=e[t];n&&typeof n==`object`&&`kind`in n&&(o[t]=Vt(n))}}let c=[],l=t.sort;if(Array.isArray(l)){for(let e of l)if(e&&typeof e==`object`){let t=e;typeof t.columnKey==`string`&&(t.direction===`asc`||t.direction===`desc`)&&c.push({columnKey:t.columnKey,direction:t.direction})}}let u,d=t.columns;if(Array.isArray(d)){let e=[];for(let t of d){if(!t||typeof t!=`object`)continue;let n=t;if(typeof n.key!=`string`)continue;let r={key:n.key};typeof n.visible==`boolean`&&(r.visible=n.visible),(n.pinned===`left`||n.pinned===`right`)&&(r.pinned=n.pinned),e.push(r)}u=e}return{version:2,columnWidths:n,filters:{globalText:a,columnFilters:o},sort:c,columns:u}},qt=(e,t,n)=>{let r=new Map(e.map(e=>[e.key,e])),i=new Set,a=(e,t)=>{let r=n[e.key],i=typeof r==`number`;if(!t&&!i)return e;let a={...e};return t&&(a.visible=t.visible,a.pinned=t.pinned),i&&(a.width=r),a},o=[];for(let e of t){let t=r.get(e.key);t&&(i.add(e.key),o.push(a(t,e)))}for(let t of e)i.has(t.key)||o.push(a(t,void 0));return l(o)},V=(e,t)=>e===null||t===null?e===t:e.mode===`comparison`&&t.mode===`comparison`?e.operator===t.operator&&e.value===t.value:e.mode===`range`&&t.mode===`range`?e.min===t.min&&e.max===t.max:!1,H=(e,t)=>{switch(e.kind){case`set`:return t.kind===`set`&&(e.mode??`include`)===(t.mode??`include`)&&e.values.length===t.values.length&&e.values.every((e,n)=>e===t.values[n]);case`number`:return t.kind===`number`&&e.raw===t.raw&&V(e.parsed,t.parsed);case`text`:return t.kind===`text`&&e.value===t.value;case`date`:return t.kind===`date`&&e.value===t.value;case`select`:return t.kind===`select`&&e.value===t.value;case`custom`:return t.kind===`custom`&&Object.is(e.value,t.value)}},Jt=(e,t)=>{let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!(r in t)||e[r]!==t[r])return!1;return!0},U=(e,t)=>{let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!(r in t)||!H(e[r],t[r]))return!1;return!0},Yt=(e,t)=>{if(e===void 0||t===void 0)return e===t;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n].key!==t[n].key||e[n].visible!==t[n].visible||e[n].pinned!==t[n].pinned)return!1;return!0},Xt=(e,t)=>{if(e.version!==t.version||!Jt(e.columnWidths,t.columnWidths)||e.filters.globalText!==t.filters.globalText||!U(e.filters.columnFilters,t.filters.columnFilters)||e.sort.length!==t.sort.length)return!1;for(let n=0;n<e.sort.length;n+=1)if(e.sort[n].columnKey!==t.sort[n].columnKey||e.sort[n].direction!==t.sort[n].direction)return!1;return!!Yt(e.columns,t.columns)},Zt=(e,t,n)=>n?{emit:!1,nextLast:e}:e===null||Xt(e,t)?{emit:!1,nextLast:t}:{emit:!0,nextLast:t},Qt=({rowTop:e,rowHeight:t,headerHeight:n,viewportHeight:r,currentScrollTop:i,align:a,maxScrollTop:o})=>{let s=n+e,c=s+t,l;if(a===`start`)l=s-n;else if(a===`end`)l=c-r;else if(a===`center`)l=(s+c)/2-(n+r)/2;else{let e=i+n,t=i+r;l=s>=e&&c<=t?i:s<e?s-n:c-r}return Math.min(Math.max(l,0),Math.max(o??1/0,0))},$t=({cellLeft:e,cellWidth:t,leftPaneWidth:n,rightPaneWidth:r,viewportWidth:i,currentScrollLeft:a,align:o,maxScrollLeft:s})=>{let c=e+t,l=i-n-r,u;if(o===`start`)u=e-n;else if(o===`end`)u=c-i+r;else if(o===`center`)u=(e+c)/2-n-l/2;else{let t=a+n,o=a+i-r;u=e>=t&&c<=o?a:e<t?e-n:c-i+r}return Math.min(Math.max(u,0),Math.max(s??1/0,0))},en=(e,t)=>{let{heights:n,prefix:r,rowCount:i}=e,a=Math.max(t,0);for(let e=a;e<i;e+=1)r[e+1]=r[e]+n[e]},tn=(e,t,n,r)=>{let i=r??new Map,a=Math.max(e,0),o=new Float64Array(a);for(let e=0;e<a;e+=1){let r=i.get(n(e));o[e]=r===void 0?t:r}let s={rowCount:a,estimate:t,heights:o,prefix:new Float64Array(a+1),measured:i};return en(s,0),s},nn=(e,t,n,r)=>t<0||t>=e.rowCount||(e.measured.set(n,r),e.heights[t]===r)?!1:(e.heights[t]=r,!0),rn=(e,t,n)=>{if(t<=0||n<=0)return 0;if(n>=e[t])return t-1;let r=0,i=t;for(;r<i;){let t=r+i+1>>1;e[t]<=n?r=t:i=t-1}return Math.min(Math.max(r,0),t-1)},an=e=>{let{prefix:t,rowCount:n}=e;return{rowCount:n,rowTop:e=>t[Math.min(Math.max(e,0),n)],rowsHeight:(e,r)=>t[Math.min(Math.max(r+1,0),n)]-t[Math.min(Math.max(e,0),n)],totalBodyHeight:t[n],rowAtContentY:e=>rn(t,n,e)}},W=21,G=4,on=41,sn=13,cn=600,ln=60,K=16,un=null,dn=()=>un||(typeof document>`u`?null:(un=document.createElement(`canvas`).getContext(`2d`),un)),fn=`system-ui, sans-serif`,pn=e=>{let t=fn,n=13,r=`400`;if(e&&typeof window<`u`){let i=window.getComputedStyle(e);i.fontFamily&&(t=i.fontFamily);let a=Number.parseFloat(i.fontSize);Number.isFinite(a)&&a>0&&(n=a),i.fontWeight&&(r=i.fontWeight)}return{cellFont:`${r} ${n}px ${t}`,headerFont:`${cn} ${sn}px ${t}`}},mn=(e,t,n)=>Math.min(Math.max(e,t),n),hn=e=>e>=4352&&e<=4447||e>=11904&&e<=12350||e>=12353&&e<=13311||e>=13312&&e<=19903||e>=19968&&e<=40959||e>=40960&&e<=42191||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65072&&e<=65103||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=127744&&e<=129791||e>=131072&&e<=262141,gn=e=>{let t=0;for(let n of e){let e=n.codePointAt(0)??0;t+=hn(e)?2:1}return t},_n=(e,t)=>{let n=I(e,t);return t.valueFormatter?t.valueFormatter({value:n,row:e,column:t}):String(n??``)},vn=e=>{if(!e||typeof document>`u`)return null;let t=document.createElement(`div`);return t.setAttribute(`aria-hidden`,`true`),t.style.cssText=`position:absolute;top:-99999px;left:-99999px;visibility:hidden;pointer-events:none;width:auto;height:auto;contain:layout style;`,e.appendChild(t),t},yn=e=>{let t=document.createElement(`div`);return t.className=`ssg-body-cell`,t.style.cssText=`display:inline-block;position:static;top:auto;left:auto;width:auto;height:auto;white-space:nowrap;overflow:visible;`,t.textContent=e,t},bn=e=>e.suppressAutoSize===!0||e.autoHeight===!0;function xn(e){let t=e.map(()=>[]),n=e.map(()=>[]),r=e.map(()=>1/0),i=e.map(()=>0);return{collect:a=>{for(let o=0;o<e.length;o+=1){if(bn(e[o]))continue;let s=e[o].estimateCellWidth;if(s){let t=s(a,e[o]);t>i[o]&&(i[o]=t);continue}let c=String(I(a,e[o])??``);if(c===``)continue;let l=t[o],u=n[o];if(l.length===K&&2*c.length<=r[o])continue;let d=gn(c);if(l.length<K){if(l.push(a),u.push(d),l.length===K){let e=u[0];for(let t=1;t<K;t+=1)u[t]<e&&(e=u[t]);r[o]=e}continue}if(d<=r[o])continue;let f=0;for(let e=1;e<K;e+=1)u[e]<u[f]&&(f=e);l[f]=a,u[f]=d;let p=u[0];for(let e=1;e<K;e+=1)u[e]<p&&(p=u[e]);r[o]=p}},finalize:({gridRoot:n,currentWidths:r})=>{let a=dn();if(!a||e.length===0)return{};let{cellFont:o,headerFont:s}=pn(n),c={},l=vn(n);try{let n=null;if(l){let r=[];for(let n=0;n<e.length;n+=1){if(bn(e[n])){r.push([]);continue}if(e[n].estimateCellWidth){r.push([]);continue}let i=t[n],a=[];for(let t=0;t<i.length;t+=1){let r=_n(i[t],e[n]);if(r===``)continue;let o=yn(r);l.appendChild(o),a.push(o)}r.push(a)}n=r.map(e=>{let t=0;for(let n=0;n<e.length;n+=1){let r=e[n].offsetWidth;r>t&&(t=r)}return t})}for(let l=0;l<e.length;l+=1){let u=e[l];if(bn(u))continue;a.font=s;let d=u.title||u.key,f=a.measureText(d).width+G+on,p;if(u.estimateCellWidth)p=i[l]>0?i[l]+W:0;else if(n)p=n[l];else{a.font=o;let e=0,n=t[l];for(let t=0;t<n.length;t+=1){let r=_n(n[t],u);if(r===``)continue;let i=a.measureText(r).width;i>e&&(e=i)}p=e>0?e+G+W:0}let m=Math.ceil(mn(Math.max(f,p),u.minWidth??ln,u.maxWidth??1/0));r[u.key]!==m&&(c[u.key]=m)}}finally{l&&l.parentNode&&l.parentNode.removeChild(l)}return c}}}function Sn(){return dn()!==null}var Cn=()=>new Promise(e=>{if(typeof MessageChannel>`u`){setTimeout(e,0);return}let t=new MessageChannel;t.port1.onmessage=()=>{t.port1.close(),e()},t.port2.postMessage(null)}),wn=10,Tn=180,En=()=>typeof performance<`u`?performance.now():Date.now(),Dn=({rowModelRef:t,gridRootRef:n,columnWidthsRef:r,dispatch:i})=>{let[o,s]=(0,e.useState)(!1),c=(0,e.useRef)(0),l=(0,e.useRef)(null),u=()=>{l.current!==null&&(clearTimeout(l.current),l.current=null)};return(0,e.useEffect)(()=>()=>{c.current+=1,u()},[]),{isAutosizing:o,runAutosize:(0,e.useCallback)(async e=>{if(e.length===0||!Sn())return;let o=c.current+=1;u();let d=t.current,f=d.getRowCount(),p=n.current,m=r.current,h=xn(e);l.current=setTimeout(()=>{c.current===o&&s(!0)},Tn);try{let e=0;for(;e<f;){let n=En();for(;e<f&&En()-n<wn;){let t=d.getRow(e);t&&h.collect(t),e+=1}if(e<f&&(await Cn(),c.current!==o||t.current!==d))return}let n=h.finalize({gridRoot:p,currentWidths:m});Object.keys(n).length>0&&i(a.syncColumnWidths(n))}finally{c.current===o&&(u(),s(!1))}},[r,i,n,t])}},On=()=>{let e=new Set,t=[];return{collect(n){let r=String(n??``);e.has(r)||(e.add(r),t.push({value:r,label:r||`(空白)`}))},finalize(){return t.sort((e,t)=>nt.compare(e.label,t.label))}}},q=(e,t)=>{let n=On();for(let r=0;r<e;r+=1)n.collect(t(r));return n.finalize()},kn=10,An=()=>typeof performance<`u`?performance.now():Date.now(),jn=[],Mn=new Set,Nn={status:`idle`,options:jn,allValues:Mn,progress:0},Pn={status:`collecting`,options:jn,allValues:Mn,progress:0},Fn=e=>new Set(e.map(e=>e.value)),In={source:null,rowCount:0,result:Nn},Ln=({column:t,rowCount:n,getRawValueAt:r})=>{let i=t?.filterType??null,a=i===`select`||i===`set`,o=t?.filterOptions&&t.filterOptions.length>0?t.filterOptions:null,s=a&&o===null&&n>5e4,c=(0,e.useMemo)(()=>{if(!t||!a)return Nn;if(o){let e=o;return{status:`ready`,options:e,allValues:Fn(e),progress:1}}if(!s){let e=q(n,r);return{status:`ready`,options:e,allValues:Fn(e),progress:1}}return null},[t,a,o,s,n,r]),[l,u]=(0,e.useState)(In);(0,e.useEffect)(()=>{if(c!==null)return;let e=r,t=n,i=On(),a=!1;return(async()=>{let n=0;for(;n<t;){let r=An();for(;n<t&&An()-r<kn;)i.collect(e(n)),n+=1;if(n<t){if(await Cn(),a)return;u({source:e,rowCount:t,result:{status:`collecting`,options:jn,allValues:Mn,progress:n/t}})}}if(a)return;let r=i.finalize();u({source:e,rowCount:t,result:{status:`ready`,options:r,allValues:Fn(r),progress:1}})})(),()=>{a=!0}},[c,n,r]);let d=l.source===r&&l.rowCount===n?l.result:Pn;return c??d},Rn=10,J=()=>typeof performance<`u`?performance.now():Date.now(),zn=({rows:t,baseOrder:n,columns:r,globalText:i,enabled:a})=>{let o=(0,e.useDeferredValue)(i),s=o.trim().toLowerCase(),c=a&&s.length>0,l=c&&t.length>5e4,u=(0,e.useMemo)(()=>c?l?null:{order:Ee(t,n,r,o),status:`ready`,progress:1}:{order:n,status:`idle`,progress:1},[c,l,t,n,r,o]),[d,f]=(0,e.useState)(null),[p,m]=(0,e.useState)(null);(0,e.useEffect)(()=>{if(!l)return;let e=t,i=n,a=r,o=s,c=i.length,u=new Int32Array(c),d=!1;return(async()=>{let t=0,n=0;for(;n<c;){let r=J();for(;n<c&&J()-r<Rn;){let r=i[n];Te(e[r],a,o)&&(u[t]=r,t+=1),n+=1}if(n<c){if(await Cn(),d)return;m({rows:e,baseOrder:i,columns:a,needle:o,progress:n/c})}}d||f({rows:e,baseOrder:i,columns:a,needle:o,order:t===c?i:u.slice(0,t),rowsLength:e.length})})(),()=>{d=!0}},[l,t,n,r,s]);let h;return h=u||(d!==null&&d.rows===t&&d.baseOrder===n&&d.columns===r&&d.needle===s?{order:d.order,status:`ready`,progress:1}:{order:d!==null&&d.rowsLength===t.length?d.order:n,status:`filtering`,progress:p!==null&&p.rows===t&&p.baseOrder===n&&p.columns===r&&p.needle===s?p.progress:0}),h};function Bn(e){let t=e.blockSize,n=e.maxBlocks,r=new Map,i=e=>{let t=r.get(e);t!==void 0&&(r.delete(e),r.set(e,t))},a=()=>{for(;r.size>n;){let e=r.keys().next().value;if(e===void 0)break;r.delete(e)}};return{getRow:e=>{if(t<=0||e<0)return;let n=Math.floor(e/t),i=r.get(n);if(i!==void 0)return i[e-n*t]},hasBlock:e=>r.has(e),setBlock:(e,t)=>{r.has(e)&&r.delete(e),r.set(e,t),a()},touchBlocks:e=>{for(let t of e)i(t)},clear:()=>{r.clear()},loadedBlockIndexes:()=>Array.from(r.keys())}}function Vn(e,t){return Math.floor(e/t)}function Hn(e,t,n,r){if(n<=0||r<=0)return[];let i=Math.max(0,Math.floor(e)),a=Math.min(r,Math.floor(t));if(a<=i)return[];let o=Vn(i,n),s=Vn(a-1,n),c=[];for(let e=o;e<=s;e+=1)c.push(e);return c}var Un=100,Wn=64,Y=120;function Gn(t){let{dataSource:n,rowKeyGetter:r,query:i,queryKey:a,refreshToken:o}=t,s=n?.blockSize??Un,c=n?.maxCachedBlocks??Wn,l=t.debounceMs??Y,[u]=(0,e.useState)(()=>Bn({blockSize:s,maxBlocks:c})),[d,f]=(0,e.useState)(n?.initialRowCount??0),[p,m]=(0,e.useState)(0),h=(0,e.useRef)(d),g=(0,e.useRef)(!1),_=(0,e.useRef)(new Map),v=(0,e.useRef)(null),y=(0,e.useRef)({start:0,end:0}),b=(0,e.useCallback)(e=>{if(n==null||u.hasBlock(e)||_.current.has(e))return;let t=new AbortController;_.current.set(e,t);let r=e*s,a=r+s;n.getRows({startIndex:r,endIndex:a,query:i,signal:t.signal}).then(n=>{t.signal.aborted||_.current.get(e)===t&&(_.current.delete(e),u.setBlock(e,n.rows),n.totalRowCount!==h.current&&(h.current=n.totalRowCount,f(n.totalRowCount)),m(e=>e+1))}).catch(()=>{_.current.get(e)===t&&_.current.delete(e)})},[u,s,n,i]),x=(0,e.useCallback)(()=>{let{start:e,end:t}=y.current,n=Hn(e,t,s,h.current),r=new Set(n);for(let[e,t]of _.current)r.has(e)||(t.abort(),_.current.delete(e));for(let e of n)b(e)},[s,b]),S=(0,e.useCallback)(()=>{v.current!==null&&clearTimeout(v.current),v.current=setTimeout(()=>{v.current=null,x()},l)},[l,x]),C=(0,e.useCallback)((e,t)=>{n!=null&&(y.current={start:e,end:t},u.touchBlocks(Hn(e,t,s,h.current)),S())},[u,s,n,S]);(0,e.useEffect)(()=>{if(n==null)return;for(let[,e]of _.current)e.abort();_.current.clear(),v.current!==null&&(clearTimeout(v.current),v.current=null),u.clear();let e=!g.current;g.current=!0,m(e=>e+1),e?(n.initialRowCount??0)<=0&&b(0):b(0)},[a]);let w=(0,e.useRef)(o);(0,e.useEffect)(()=>{if(n==null||o===void 0){w.current=o;return}if(w.current===void 0){w.current=o;return}if(w.current!==o){w.current=o;for(let[,e]of _.current)e.abort();_.current.clear(),v.current!==null&&(clearTimeout(v.current),v.current=null),u.clear(),m(e=>e+1),x()}},[o]),(0,e.useEffect)(()=>{let e=_.current,t=v;return()=>{for(let[,t]of e)t.abort();e.clear(),t.current!==null&&(clearTimeout(t.current),t.current=null)}},[]);let T=(0,e.useCallback)(e=>u.getRow(e)!==void 0,[u]);return{rowModel:(0,e.useMemo)(()=>({getRowCount:()=>h.current,getRow:e=>u.getRow(e),getSourceIndex:e=>e,getRowKey:e=>{let t=u.getRow(e);return t===void 0?e:r(t,e)}}),[u,r,p]),rowCount:d,isRowLoaded:T,requestRange:C}}var Kn=e=>{let t={},n=e.globalText.trim();n.length>0&&(t.globalText=n);let r={},i=!1;for(let t of Object.keys(e.columnFilters)){let n=e.columnFilters[t];L(n)&&(r[t]=n,i=!0)}return i&&(t.columnFilters=r),e.sort.length>0&&(t.sort=e.sort),t},qn=e=>{let t=e.columnFilters??{},n=Object.keys(t).sort().map(e=>[e,t[e]]),r=e.sort??[];return JSON.stringify({g:e.globalText??``,s:r.map(e=>[e.columnKey,e.direction]),c:n})},Jn=(e,t)=>e===null?!0:e.mode===`include`?e.values.has(t):!e.values.has(t),Yn=28;function Xn({options:r,setSelection:i,searchInputRef:a,onValueToggle:o,onSelectAllChange:s,onRequestClose:c,isServerSide:l}){let[u,d]=(0,e.useState)(``),f=(0,e.useDeferredValue)(u),p=(0,e.useMemo)(()=>{let e=f.trim().toLowerCase();return e?r.filter(t=>t.label.toLowerCase().includes(e)):r},[r,f]),m=f.trim().length>0,h=(0,e.useRef)(null),g=(0,t.useVirtualizer)({count:p.length,getScrollElement:()=>h.current,estimateSize:()=>Yn,overscan:10}),_=(0,e.useMemo)(()=>{if(i===null)return p.length;let e=0;for(let t of p)Jn(i,t.value)&&(e+=1);return e},[i,p]),v=p.length>0&&_===p.length,y=_>0&&!v,b=i===null?r.length:i.mode===`include`?i.values.size:r.length-i.values.size;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`input`,{ref:a,type:`text`,value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.stopPropagation(),e.key===`Escape`&&(e.preventDefault(),c())},placeholder:`検索...`,className:`ssg-filter-input`}),(0,n.jsxs)(`label`,{className:`ssg-filter-selectall`,children:[(0,n.jsx)(`input`,{type:`checkbox`,checked:v,ref:e=>{e&&(e.indeterminate=y)},onChange:()=>{s(m?p.map(e=>e.value):`all`,!v)}}),(0,n.jsx)(`span`,{className:`ssg-filter-selectall-label`,children:m?`(検索結果をすべて選択)`:`(すべて選択)`})]}),(0,n.jsx)(`div`,{ref:h,className:`ssg-filter-list`,children:p.length===0?(0,n.jsx)(`div`,{className:`ssg-filter-empty`,children:r.length===0?l?`候補が未指定です(serverSide では列に filterOptions などの候補供給が必要)`:`候補がありません`:`一致する候補がありません`}):(0,n.jsx)(`div`,{className:`ssg-filter-virt`,style:{height:g.getTotalSize()},children:g.getVirtualItems().map(e=>{let t=p[e.index];if(!t)return null;let r=Jn(i,t.value);return(0,n.jsxs)(`label`,{className:`ssg-filter-option`,style:{transform:`translateY(${e.start}px)`,height:e.size},children:[(0,n.jsx)(`input`,{type:`checkbox`,checked:r,onChange:()=>o(t.value)}),(0,n.jsx)(`span`,{className:`ssg-filter-option-label`,children:t.label})]},t.value)})})}),(0,n.jsxs)(`div`,{className:`ssg-filter-meta`,children:[`選択中: `,b,` / `,r.length,` 件`,m?`(表示中 ${p.length} 件)`:``]})]})}function Zn({isOpen:e,title:t,filterType:i,draftValue:a,currentValueText:o,layout:s,selectOptions:c,optionsStatus:l,optionsProgress:u,setSelection:d,popoverRef:f,textInputRef:p,selectRef:m,onRequestClose:h,onDraftChange:g,onApply:_,onClear:v,onSetValueToggle:y,onSetSelectAllChange:b,onSetClear:x,isServerSide:S=!1}){if(typeof document>`u`||!e||!s)return null;let C={top:s.top,left:s.left,width:s.width},w=e=>{e.stopPropagation()},T=e=>{e.stopPropagation()},E=i===`set`;return(0,r.createPortal)((0,n.jsxs)(`div`,{ref:f,onPointerDown:T,onKeyDownCapture:w,onPasteCapture:e=>{e.stopPropagation()},className:`ssg-filter-popover`,style:C,children:[(0,n.jsxs)(`div`,{className:`ssg-filter-title`,children:[`列フィルター: `,t]}),(E||i===`select`)&&l===`collecting`?(0,n.jsxs)(`div`,{className:`ssg-filter-collecting`,children:[`候補を収集中… `,Math.round(u*100),`%`]}):E?(0,n.jsx)(Xn,{options:c,setSelection:d,searchInputRef:p,onValueToggle:y,onSelectAllChange:b,onRequestClose:h,isServerSide:S}):i===`select`?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`div`,{className:`ssg-filter-hint`,children:`フィルター種別: select`}),(0,n.jsxs)(`select`,{ref:m,value:a,onChange:e=>g(e.target.value),onKeyDown:e=>{if(e.stopPropagation(),e.key===`Enter`){e.preventDefault(),_();return}e.key===`Escape`&&(e.preventDefault(),h())},className:`ssg-filter-select`,children:[(0,n.jsx)(`option`,{value:``,children:`(すべて)`}),c.map(e=>(0,n.jsx)(`option`,{value:e.value,children:e.label},`${t}-${e.value}`))]}),(0,n.jsxs)(`div`,{className:`ssg-filter-meta`,children:[`候補数: `,c.length]})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`div`,{className:`ssg-filter-hint`,children:[`フィルター種別: `,i===`number`?`number`:`text`]}),(0,n.jsx)(`input`,{ref:p,type:`text`,value:a,onChange:e=>g(e.target.value),onKeyDown:e=>{if(e.stopPropagation(),e.key===`Enter`){e.preventDefault(),_();return}e.key===`Escape`&&(e.preventDefault(),h())},placeholder:i===`number`?`例: >=10 / <20 / 10..20 / =5`:`部分一致で絞り込み`,className:`ssg-filter-input`}),(0,n.jsx)(`div`,{className:`ssg-filter-meta ssg-filter-meta--ellipsis`,children:i===`number`?`数量系は =, >, >=, <, <=, .. が使えます`:`text は部分一致検索です`})]}),!E&&(0,n.jsxs)(`div`,{className:`ssg-filter-meta ssg-filter-meta--ellipsis`,children:[`現在値: `,o]}),(0,n.jsx)(`div`,{className:`ssg-filter-footer`,children:E?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`button`,{type:`button`,onPointerDown:e=>{e.preventDefault(),e.stopPropagation(),x()},onKeyDown:e=>{e.stopPropagation()},className:`ssg-filter-btn-secondary`,children:`クリア`}),(0,n.jsx)(`button`,{type:`button`,onPointerDown:e=>{e.preventDefault(),e.stopPropagation(),h()},onKeyDown:e=>{e.stopPropagation()},className:`ssg-filter-btn-primary`,children:`閉じる`})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`button`,{type:`button`,onPointerDown:e=>{e.preventDefault(),e.stopPropagation(),v()},onKeyDown:e=>{e.stopPropagation()},className:`ssg-filter-btn-secondary`,children:`クリア`}),(0,n.jsx)(`button`,{type:`button`,onPointerDown:e=>{e.preventDefault(),e.stopPropagation(),_()},onKeyDown:e=>{e.stopPropagation()},className:`ssg-filter-btn-primary`,children:`適用`})]})})]}),document.body)}function Qn({context:e,showCounts:t=!0}){let{derivedSummary:r}=e;return(0,n.jsx)(`div`,{className:`ssg-bar--bottom`,children:(0,n.jsxs)(`div`,{className:`ssg-bar-container`,children:[t?(0,n.jsxs)(`div`,{className:`ssg-bar-group`,children:[(0,n.jsx)(`span`,{className:`ssg-bar-chip`,children:r.rowSummaryText}),(0,n.jsx)(`span`,{className:`ssg-bar-chip`,children:r.columnSummaryText})]}):null,(0,n.jsxs)(`div`,{className:`ssg-bar-group`,children:[(0,n.jsxs)(`span`,{className:`ssg-bar-chip`,children:[`Active: `,r.activeCellLabel]}),(0,n.jsxs)(`span`,{className:`ssg-bar-chip`,children:[`Selection: `,r.selectionLabel]}),(0,n.jsx)(`span`,{className:`ssg-bar-chip`,children:r.selectionStatsText}),(0,n.jsxs)(`span`,{className:`ssg-bar-chip`,children:[`Cols: `,r.selectionStats.selectedColumnCount]})]})]})})}var $n=(0,n.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,n.jsx)(`circle`,{cx:`7`,cy:`7`,r:`4.5`}),(0,n.jsx)(`line`,{x1:`10.6`,y1:`10.6`,x2:`14.5`,y2:`14.5`})]}),er=(0,n.jsxs)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,"aria-hidden":`true`,children:[(0,n.jsx)(`line`,{x1:`4`,y1:`4`,x2:`12`,y2:`12`}),(0,n.jsx)(`line`,{x1:`12`,y1:`4`,x2:`4`,y2:`12`})]});function tr({context:e,showSummary:t=!0,showFilter:r=!0,showCounts:i=!0,globalFilterPlaceholder:a=`グローバルフィルター`,globalFilterIcon:o}){let{derivedSummary:s}=e,c=o===void 0?$n:o,l=e.globalFilterText.trim().length>0;return(0,n.jsx)(`div`,{className:`ssg-bar--top`,children:(0,n.jsxs)(`div`,{className:`ssg-bar-container`,children:[t?(0,n.jsxs)(`div`,{className:`ssg-bar-group ssg-bar-leading`,children:[(0,n.jsx)(`span`,{className:`ssg-bar-title`,children:`Toolbar`}),i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`span`,{className:`ssg-bar-chip ssg-bar-chip--emphasis`,children:s.rowSummaryText}),(0,n.jsx)(`span`,{className:`ssg-bar-chip ssg-bar-chip--emphasis`,children:s.columnSummaryText})]}):null,(0,n.jsx)(`span`,{className:`ssg-bar-chip ssg-bar-chip--emphasis`,children:s.filterSummaryText}),(0,n.jsx)(`span`,{className:`ssg-bar-chip ssg-bar-chip--emphasis`,children:s.sortSummaryText})]}):null,r?(0,n.jsxs)(`div`,{className:`ssg-bar-input-group`,children:[c?(0,n.jsx)(`span`,{className:`ssg-bar-input-icon`,"aria-hidden":`true`,children:c}):null,(0,n.jsx)(`input`,{type:`text`,value:e.globalFilterText,onChange:t=>e.setGlobalFilterText(t.target.value),placeholder:a,className:`ssg-bar-input`}),l?(0,n.jsx)(`button`,{type:`button`,onClick:()=>e.setGlobalFilterText(``),className:`ssg-bar-input-clear`,"aria-label":`フィルターをクリア`,title:`クリア`,children:er}):null]}):null]})})}function nr({state:e,disabled:t=!1}){return(0,n.jsx)(`span`,{"aria-hidden":`true`,className:`ssg-row-checkbox`,"data-state":e,"data-disabled":t?`true`:void 0})}var rr=(0,e.memo)(nr);function ir({pane:e,ownsRowHeader:t,leadingWidth:r,rowIndex:a,rowKey:o,row:s,top:c,renderEntries:l,rowHeight:u,autoHeight:d,autoHeightMinHeight:f,rowHeaderCellStyle:p,isRowHovered:m,isWholeGridSelected:h,isRowSelected:g,showRowCheckbox:_,isRowChecked:v,activeColInRow:y,editingColInRow:b,selectedColStart:x,selectedColEnd:S,readOnly:C,canEditCell:w,onRowHeaderPointerDown:T,onRowHeaderPointerEnter:E,onRowHeaderPointerLeave:D,onCellPointerDown:O,onCellPointerEnter:k,onCellDoubleClick:ee,renderCellContent:A,rowClassName:j,bodyCellClassName:M,bodyRowClassName:N,rowHeaderCellClassName:P}){return(0,n.jsxs)(`div`,{"data-pane":e,"data-row-index":a,className:i(`ssg-body-row`,v&&`ssg-body-row--checked`,j,N),style:{height:u,transform:`translateY(${c}px)`},children:[t&&(0,n.jsx)(`div`,{role:_?`checkbox`:void 0,"aria-checked":_?v:void 0,onPointerDown:e=>T(a,e),onPointerEnter:e=>E(a,e),onPointerLeave:()=>D(a),className:i(`ssg-header-cell`,`ssg-row-header-cell`,_&&`ssg-row-header-cell--checkbox`,(h||g)&&`ssg-header-cell--selected`,m&&`ssg-header-cell--hovered`,j,P),style:{...p,height:u},children:_?(0,n.jsx)(rr,{state:v?`checked`:`unchecked`}):a+1}),l.map(e=>{if(!e)return null;let t=e.logicalIndex,c=e.column,l=r+e.paneLocalStart,p=e.paneLocalSize,h=t===y,_=t===b,v=g||x>=0&&t>=x&&t<=S,T=!ge({readOnly:C,canEditCell:w},a,t,s,c),E=d&&c.autoHeight===!0,D,N=c.cellClassName;N&&(D=typeof N==`function`?N({row:s,rowIndex:a,colIndex:t,value:I(s,c),column:c,isActive:h,isSelected:v,isEditing:_,readOnly:T}):N);let P=i(`ssg-body-cell`,c.align===`center`&&`ssg-body-cell--align-center`,c.align===`right`&&`ssg-body-cell--align-right`,E&&`ssg-body-cell--autoheight`,T&&!v&&`ssg-body-cell--readonly`,m&&`ssg-body-cell--row-hovered`,j,D,M);return(0,n.jsx)(`div`,{"data-ssg-col-key":c.key,"data-autoheight-cell":E?``:void 0,className:P,onPointerDown:e=>O({row:a,col:t},e),onPointerEnter:e=>k({row:a,col:t},e),onDoubleClick:()=>ee({row:a,col:t}),style:{left:l,width:p,minWidth:p,...E?{minHeight:f}:{height:u},zIndex:h?3:1},children:A(s,a,c,t,{isActive:h,isSelected:v,isEditing:_,readOnly:T})},`${String(o)}-${c.key}`)})]})}var ar=(0,e.memo)(ir),or=[`62%`,`46%`,`78%`,`54%`];function sr({pane:e,ownsRowHeader:t,leadingWidth:r,rowIndex:a,top:o,rowHeight:s,renderEntries:c,rowHeaderCellStyle:l,isRowHovered:u,showRowCheckbox:d,onRowHeaderPointerDown:f,onRowHeaderPointerEnter:p,onRowHeaderPointerLeave:m,onCellPointerDown:h,onCellPointerEnter:g,bodyCellClassName:_,bodyRowClassName:v,rowHeaderCellClassName:y}){return(0,n.jsxs)(`div`,{"data-pane":e,"data-row-index":a,"data-skeleton-row":``,className:i(`ssg-body-row`,v),style:{height:s,transform:`translateY(${o}px)`},children:[t&&(0,n.jsx)(`div`,{onPointerDown:e=>f(a,e),onPointerEnter:e=>p(a,e),onPointerLeave:()=>m(a),className:i(`ssg-header-cell`,`ssg-row-header-cell`,`ssg-skeleton-rowheader`,d&&`ssg-row-header-cell--checkbox`,u&&`ssg-header-cell--hovered`,y),style:{...l,height:s},children:d?(0,n.jsx)(rr,{state:`unchecked`,disabled:!0}):a+1}),c.map(t=>{if(!t)return null;let o=t.logicalIndex,c=r+t.paneLocalStart,l=t.paneLocalSize,d=or[o%or.length];return(0,n.jsx)(`div`,{className:i(`ssg-body-cell`,u&&`ssg-body-cell--row-hovered`,_),onPointerDown:e=>h({row:a,col:o},e),onPointerEnter:e=>g({row:a,col:o},e),style:{left:c,width:l,minWidth:l,height:s,zIndex:1},children:(0,n.jsx)(`div`,{"aria-hidden":`true`,className:`ssg-skeleton-bar`,style:{width:d}})},`skeleton-${e}-${o}`)})]})}var X=(0,e.memo)(sr);function cr({pane:e,ownsRowHeader:t,leadingWidth:r,rowModel:i,virtualRows:a,virtualRowIndexes:o,renderEntries:s,rowHeight:c,autoHeight:l=!1,isServerSide:u=!1,rowHeaderCellStyle:d,hoveredRowIndex:f,isWholeGridSelected:p,enableRowSelection:m,rowSelectionState:h,activeCell:g,editingCell:_,selectionSnapshot:v,readOnly:y,canEditCell:b,onRowHeaderPointerDown:x,onRowHeaderPointerEnter:S,onRowHeaderPointerLeave:C,onCellPointerDown:w,onCellPointerEnter:T,onCellDoubleClick:E,renderCellContent:D,getRowClassName:k,bodyCellClassName:ee,bodyRowClassName:A,rowHeaderCellClassName:j}){return(0,n.jsx)(n.Fragment,{children:a.map(a=>{let M=a.index;if(!o.has(M))return null;let N=a.size??c,P=i.getRow(M);if(!P){if(!u)return null;let o=i.getRowKey(M)??M;return(0,n.jsx)(X,{pane:e,ownsRowHeader:t,leadingWidth:r,rowIndex:M,top:a.start,rowHeight:N,renderEntries:s,rowHeaderCellStyle:d,isRowHovered:f===M,showRowCheckbox:m,onRowHeaderPointerDown:x,onRowHeaderPointerEnter:S,onRowHeaderPointerLeave:C,onCellPointerDown:w,onCellPointerEnter:T,bodyCellClassName:ee,bodyRowClassName:A,rowHeaderCellClassName:j},String(o))}let te=i.getRowKey(M)??M,ne=m?O(h,te):!1,re=v.kind===`row`&&M>=v.startRow&&M<=v.endRow,F=v.kind===`cell`&&M>=v.startRow&&M<=v.endRow,ie=v.kind===`col`||F?v.startCol:-1,ae=v.kind===`col`||F?v.endCol:-1,oe=g&&g.row===M?g.col:-1,se=_&&_.row===M?_.col:-1,ce=k?.(P,M);return(0,n.jsx)(ar,{pane:e,ownsRowHeader:t,leadingWidth:r,rowIndex:M,rowKey:te,row:P,top:a.start,renderEntries:s,rowHeight:N,autoHeight:l,autoHeightMinHeight:c,rowHeaderCellStyle:d,isRowHovered:f===M,isWholeGridSelected:p,isRowSelected:re,showRowCheckbox:m,isRowChecked:ne,activeColInRow:oe,editingColInRow:se,selectedColStart:ie,selectedColEnd:ae,readOnly:y,canEditCell:b,onRowHeaderPointerDown:x,onRowHeaderPointerEnter:S,onRowHeaderPointerLeave:C,onCellPointerDown:w,onCellPointerEnter:T,onCellDoubleClick:E,renderCellContent:D,rowClassName:ce,bodyCellClassName:ee,bodyRowClassName:A,rowHeaderCellClassName:j},String(te))})})}function lr({isActive:e,title:t,className:r,onPointerDown:a,children:o}){return(0,n.jsx)(`button`,{type:`button`,title:t,onPointerDown:a,className:i(`ssg-icon-btn`,e&&`ssg-icon-btn--active`,r),children:o})}function ur({pane:e,ownsRowHeader:t,leadingWidth:r,headerHeight:a,rowHeaderCellStyle:o,headerRowClassName:s,headerCellClassName:c,rowHeaderCellClassName:l,isCornerHovered:u,isWholeGridSelected:d,showSelectAllCheckbox:f,selectAllState:p,filteredRowsLength:m,visibleColumnsLength:h,renderEntries:g,hoveredColumnIndex:_,selectionSnapshot:v,columnFilterValues:y,sortState:b,iconButtonClassName:x,onCornerPointerDown:S,onCornerPointerEnter:C,onCornerPointerLeave:w,onColumnHeaderPointerDown:T,onColumnHeaderPointerEnter:E,onColumnHeaderPointerLeave:D,onColumnResizePointerDown:O,enableColumnResize:k,enableColumnMenu:ee,openedMenuColumnKey:A,onColumnMenuButtonPointerDown:j,onColumnHeaderContextMenu:M,onColumnDragHandlePointerDown:N}){return(0,n.jsxs)(`div`,{"data-pane":e,className:i(`ssg-header-row`,s),style:{height:a},children:[t&&(0,n.jsx)(`div`,{role:f?`checkbox`:void 0,"aria-checked":f?p===`all`?!0:p===`some`?`mixed`:!1:void 0,onPointerDown:S,onPointerEnter:C,onPointerLeave:w,className:i(`ssg-header-cell`,`ssg-corner-cell`,f&&`ssg-corner-cell--checkbox`,d&&`ssg-header-cell--selected`,u&&`ssg-header-cell--hovered`,l),style:{...o,height:a,cursor:m>0&&h>0?`pointer`:`default`},children:f?(0,n.jsx)(rr,{state:p===`all`?`checked`:p===`some`?`indeterminate`:`unchecked`}):`#`}),g.map(e=>{if(!e)return null;let t=e.logicalIndex,o=e.column,s=r+e.paneLocalStart,l=e.paneLocalSize,u=L(y[o.key]),f=v.kind===`col`&&t>=v.startCol&&t<=v.endCol,p=b.findIndex(e=>e.columnKey===o.key),m=p===-1?null:b[p],h=A===o.key,g=ee;return(0,n.jsxs)(`div`,{"data-ssg-col-key":o.key,onPointerDown:e=>T(t,e),onPointerEnter:e=>E(t,e),onPointerLeave:()=>D(t),onContextMenu:e=>M(o,e),className:i(`ssg-header-cell`,(d||f)&&`ssg-header-cell--selected`,_===t&&`ssg-header-cell--hovered`,c),style:{left:s,width:l,minWidth:l,height:a},children:[(0,n.jsx)(`div`,{className:i(`ssg-header-label`,u&&`ssg-header-label--filtered`),title:o.renderHeader?void 0:o.title||o.key,children:o.renderHeader?o.renderHeader({colIndex:t,width:l,column:o,filterValue:y[o.key],isFiltered:u}):o.title||o.key}),(0,n.jsxs)(`div`,{className:`ssg-header-status`,children:[m&&(0,n.jsxs)(`span`,{"aria-hidden":`true`,title:(m.direction===`asc`?`昇順で並び替え中`:`降順で並び替え中`)+(b.length>1?` (優先度 ${p+1})`:``),className:`ssg-header-sort`,children:[m.direction===`asc`?`↑`:`↓`,b.length>1&&(0,n.jsx)(`span`,{className:`ssg-header-sort-priority`,children:p+1})]}),u&&(0,n.jsx)(`span`,{"aria-hidden":`true`,title:`フィルター適用中`,className:`ssg-header-filtered-mark`,children:(0,n.jsx)(`svg`,{width:`11`,height:`11`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,n.jsx)(`path`,{d:`M2 4 L14 4 L9.2 9.2 L9.2 13 L6.8 13 L6.8 9.2 Z`})})})]}),(0,n.jsxs)(`div`,{className:`ssg-header-actions`,children:[N&&(0,n.jsx)(`span`,{onPointerDown:e=>N(o,e),title:`ドラッグで列を移動`,"aria-hidden":`true`,className:`ssg-header-grip`,children:(0,n.jsxs)(`svg`,{width:`8`,height:`14`,viewBox:`0 0 8 14`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:[(0,n.jsx)(`circle`,{cx:`2`,cy:`3`,r:`1`}),(0,n.jsx)(`circle`,{cx:`6`,cy:`3`,r:`1`}),(0,n.jsx)(`circle`,{cx:`2`,cy:`7`,r:`1`}),(0,n.jsx)(`circle`,{cx:`6`,cy:`7`,r:`1`}),(0,n.jsx)(`circle`,{cx:`2`,cy:`11`,r:`1`}),(0,n.jsx)(`circle`,{cx:`6`,cy:`11`,r:`1`})]})}),g&&(0,n.jsx)(lr,{title:`列メニュー`,isActive:h,className:x,onPointerDown:e=>j(o,e),children:`⋮`})]}),(o.resizable??k)&&(0,n.jsx)(`div`,{onPointerDown:e=>O(o,e),className:`ssg-header-resize`})]},o.key)})]})}var dr=(0,e.memo)(ur),fr=200,pr=8,mr=6,hr=289,gr=({visibleColumns:t,enableColumnMenu:n,gridRootRef:r})=>{let[i,a]=(0,e.useState)(null),[o,s]=(0,e.useState)(null),c=(0,e.useRef)(null),l=(0,e.useRef)(null),u=(0,e.useRef)(null),d=(0,e.useRef)(i);d.current=i;let f=i!==null,p=i?.columnKey??null,m=(0,e.useMemo)(()=>p?t.find(e=>e.key===p)??null:null,[p,t]),h=(0,e.useCallback)(()=>{if(!p){s(null);return}let e,t,n,r=l.current,i=u.current;if(r){if(!r.isConnected){s(null),a(null),l.current=null;return}let i=r.getBoundingClientRect();t=i.right-fr,e=i.bottom+mr,n=i.top-hr-mr}else if(i)t=i.x,e=i.y,n=i.y-hr;else{s(null);return}t=Math.max(pr,t),t=Math.min(t,window.innerWidth-fr-pr),e+hr>window.innerHeight-pr&&(e=n),e=Math.max(pr,e),s(n=>n&&n.top===e&&n.left===t&&n.width===fr?n:{top:e,left:t,width:fr})},[p]),g=(0,e.useCallback)(()=>{a(null),s(null),l.current=null,u.current=null,requestAnimationFrame(()=>{r.current?.focus()})},[r]),_=(0,e.useCallback)((e,t)=>{if(t.preventDefault(),t.stopPropagation(),!n||t.button!==0)return;let i=t.currentTarget;if(d.current?.columnKey===e.key&&l.current===i){g();return}document.activeElement instanceof HTMLElement&&document.activeElement.blur(),r.current?.blur(),l.current=i,u.current=null,a({columnKey:e.key})},[g,n,r]),v=(0,e.useCallback)((e,t)=>{n&&(t.preventDefault(),t.stopPropagation(),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),r.current?.blur(),l.current=null,u.current={x:t.clientX,y:t.clientY},a({columnKey:e.key}),h())},[n,r,h]);return(0,e.useEffect)(()=>{if(!p)return;h();let e=()=>{h()},t=()=>{if(u.current){g();return}h()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,t,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,t,!0)}},[p,h,g]),(0,e.useEffect)(()=>{if(!f)return;let e=e=>{let t=e.target;t&&(c.current?.contains(t)||l.current?.contains(t)||g())};return window.addEventListener(`pointerdown`,e),()=>{window.removeEventListener(`pointerdown`,e)}},[g,f]),(0,e.useEffect)(()=>{if(!f)return;let e=e=>{e.key===`Escape`&&(e.preventDefault(),g())};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[g,f]),{columnMenuLayout:o,columnMenuRef:c,isColumnMenuOpen:f,openedMenuColumnKey:p,openedMenuColumn:m,openColumnMenuFromButton:_,openColumnMenuFromContextMenu:v,closeColumnMenu:g}},_r=[{value:void 0,label:`固定しない`},{value:`left`,label:`左に固定`},{value:`right`,label:`右に固定`}],vr=180,yr=4,br=8,xr=`pin`;function Sr({isOpen:t,title:a,columnKey:o,canFilter:s,onOpenFilter:c,canSort:l,sortDirection:u,onSortChange:d,onOpenSortManager:f,pinned:p,canChangePinned:m,layout:h,popoverRef:g,onPinnedChange:_,onAutosizeColumn:v,onAutosizeAllColumns:y,onOpenColumnChooser:b,canResetColumns:x,onResetColumns:S,onRequestClose:C}){let[w,T]=(0,e.useState)(null);if((0,e.useEffect)(()=>{T(null)},[o,t]),!t||!h)return null;let E=w===xr,D=h.left+h.width+yr+vr>window.innerWidth-br,O={position:`fixed`,top:h.top,left:h.left,width:h.width,zIndex:1e3},k={position:`absolute`,top:-9,...D?{right:`calc(100% + ${yr}px)`}:{left:`calc(100% + ${yr}px)`},width:vr,zIndex:1};return(0,r.createPortal)((0,n.jsxs)(`div`,{ref:g,onPointerDown:e=>{e.stopPropagation()},onKeyDownCapture:e=>{e.stopPropagation()},onContextMenu:e=>{e.preventDefault()},className:`ssg-menu-panel`,style:O,children:[(0,n.jsx)(`div`,{className:`ssg-menu-title`,children:a}),s&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{c()},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`フィルター…`})]}),(0,n.jsx)(`div`,{className:`ssg-menu-separator`})]}),l&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{d(`asc`)},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:i(`ssg-menu-sort-icon`,u===`asc`&&`ssg-menu-sort-icon--active`),children:u===`asc`?`✓`:`↑`}),(0,n.jsx)(`span`,{className:i(`ssg-menu-label`,u===`asc`&&`ssg-menu-label--sorted`),children:`昇順で並び替え`})]}),(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{d(`desc`)},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:i(`ssg-menu-sort-icon`,u===`desc`&&`ssg-menu-sort-icon--active`),children:u===`desc`?`✓`:`↓`}),(0,n.jsx)(`span`,{className:i(`ssg-menu-label`,u===`desc`&&`ssg-menu-label--sorted`),children:`降順で並び替え`})]}),(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{f()},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`並び替えを管理…`})]}),(0,n.jsx)(`div`,{className:`ssg-menu-separator`})]}),(0,n.jsxs)(`div`,{className:`ssg-menu-submenu-anchor`,children:[(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(xr)},onClick:()=>{T(e=>e===xr?null:xr)},className:i(`ssg-menu-item`,E&&`ssg-menu-item--active`),children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`列の固定`}),(0,n.jsx)(`span`,{className:`ssg-menu-caret`,children:`›`})]}),E&&(0,n.jsxs)(`div`,{className:`ssg-menu-panel`,style:k,children:[_r.map(e=>{let t=p===e.value;return(0,n.jsxs)(`button`,{type:`button`,disabled:!m,onClick:()=>{m&&_(o,e.value)},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:i(`ssg-menu-check`,!t&&`ssg-menu-check--hidden`),children:`✓`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:e.label})]},e.label)}),!m&&(0,n.jsx)(`div`,{className:`ssg-menu-note`,children:`onColumnsChange 未指定のため固定状態を変更できません`})]})]}),(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{v(o)},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`この列の幅を自動調整`})]}),(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{y()},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`すべての列の幅を自動調整`})]}),(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{b()},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`列の表示`})]}),(0,n.jsxs)(`button`,{type:`button`,"aria-disabled":!x,tabIndex:x?0:-1,title:x?`すべての列の幅・固定・表示を初期状態に戻します`:`onColumnsChange 未指定のため列をリセットできません`,onPointerEnter:()=>{T(null)},onClick:()=>{x&&S()},className:i(`ssg-menu-item`,!x&&`ssg-menu-item--disabled`),children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`列のリセット`})]}),(0,n.jsx)(`div`,{className:`ssg-menu-footer`,children:(0,n.jsx)(`button`,{type:`button`,onClick:C,className:`ssg-menu-close-btn`,children:`閉じる`})})]}),document.body)}var Cr=280,wr=8,Tr=12,Er=({enableColumnMenu:t,gridRootRef:n})=>{let[r,i]=(0,e.useState)(!1),[a,o]=(0,e.useState)(null),s=(0,e.useRef)(null),c=(0,e.useCallback)(()=>{let e=n.current;if(!e){o(null);return}let t=e.getBoundingClientRect(),r=t.right-Cr-Tr,i=t.top+Tr;r=Math.max(wr,r),r=Math.min(r,window.innerWidth-Cr-wr),i=Math.max(wr,i),o(e=>e&&e.top===i&&e.left===r&&e.width===Cr?e:{top:i,left:r,width:Cr})},[n]),l=(0,e.useCallback)(()=>{t&&(document.activeElement instanceof HTMLElement&&document.activeElement.blur(),n.current?.blur(),i(!0))},[t,n]),u=(0,e.useCallback)(()=>{i(!1),o(null),requestAnimationFrame(()=>{n.current?.focus()})},[n]);return(0,e.useEffect)(()=>{if(!r)return;c();let e=()=>{c()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[r,c]),(0,e.useEffect)(()=>{if(!r)return;let e=e=>{let t=e.target;t&&(s.current?.contains(t)||u())};return window.addEventListener(`pointerdown`,e),()=>{window.removeEventListener(`pointerdown`,e)}},[u,r]),(0,e.useEffect)(()=>{if(!r)return;let e=e=>{e.key===`Escape`&&(e.preventDefault(),u())};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[u,r]),{isColumnChooserOpen:r,columnChooserLayout:a,columnChooserRef:s,openColumnChooser:l,closeColumnChooser:u}},Dr=28,Or=12,kr=[`left`,`center`,`right`],Ar={left:`左固定`,center:`固定なし`,right:`右固定`};function jr(e,t,n){let r=e.find(e=>e.key===t);if(!r)return null;let i=r.pane,a={left:[],center:[],right:[]};for(let t of e)a[t.pane].push(t.key);let o=a[i],s=o.indexOf(t);if(s<0)return null;let c=n;if(c>s&&--c,c=Math.max(0,Math.min(c,o.length-1)),c===s)return null;let[l]=o.splice(s,1);return o.splice(c,0,l),[...a.left,...a.center,...a.right]}function Mr({state:e,disabled:t}){return(0,n.jsxs)(`span`,{className:i(`ssg-checkbox`,(e===`checked`||e===`indeterminate`)&&`ssg-checkbox--filled`,t&&`ssg-checkbox--disabled`),"aria-hidden":!0,children:[e===`checked`&&(0,n.jsx)(`svg`,{width:`11`,height:`11`,viewBox:`0 0 12 12`,fill:`none`,children:(0,n.jsx)(`path`,{d:`M2.5 6.2 4.7 8.4 9.5 3.6`,stroke:`#ffffff`,strokeWidth:`1.8`,strokeLinecap:`round`,strokeLinejoin:`round`})}),e===`indeterminate`&&(0,n.jsx)(`span`,{className:`ssg-checkbox-dash`})]})}function Nr({disabled:e}){return(0,n.jsx)(`svg`,{width:`10`,height:`16`,viewBox:`0 0 10 16`,fill:e?`#cbd5e1`:`#94a3b8`,"aria-hidden":!0,children:[3,8,13].map(e=>[3,7].map(t=>(0,n.jsx)(`circle`,{cx:t,cy:e,r:`1.2`},`${t}-${e}`)))})}function Pr({isOpen:t,items:a,canToggle:o,layout:s,panelRef:c,onToggleColumnVisibility:l,onShowAllColumns:u,onResetColumns:d,onReorderColumns:f,onRequestClose:p}){let[m,h]=(0,e.useState)(``),g=(0,e.useRef)(null);(0,e.useEffect)(()=>{if(t){h(``);let e=requestAnimationFrame(()=>{g.current?.focus()});return()=>cancelAnimationFrame(e)}},[t]);let _=(0,e.useMemo)(()=>a.filter(e=>e.visible).length,[a]),v=_===a.length&&a.length>0,y=v?`checked`:`indeterminate`,b=(0,e.useMemo)(()=>{let e=m.trim().toLowerCase();return e?a.filter(t=>t.title.toLowerCase().includes(e)):a},[a,m]),x=(0,e.useMemo)(()=>{let e={left:[],center:[],right:[]};for(let t of b)e[t.pane].push(t);return kr.map(t=>({pane:t,items:e[t]})).filter(e=>e.items.length>0)},[b]),S=x.length>=2,C=o&&m.trim()===``,w=(0,e.useRef)(null),[T,E]=(0,e.useState)(null),D=(0,e.useRef)(!1),O=(0,e.useRef)(null),[k,ee]=(0,e.useState)(null),A=(0,e.useRef)(0),j=(0,e.useRef)(null),M=(0,e.useCallback)(()=>{let e=w.current,t=O.current;if(!e||!t)return;let n=e.querySelectorAll(`[data-chooser-row][data-chooser-pane="${t}"]`),r=A.current,i=n.length;for(let e=0;e<n.length;e+=1){let t=n[e].getBoundingClientRect();if(r<t.top+t.height/2){i=e;break}}ee(i)},[]),N=(0,e.useCallback)(()=>{let e=w.current;if(!e||!D.current){j.current=null;return}let t=e.getBoundingClientRect(),n=A.current,r=0;if(n<t.top+Dr?r=-12:n>t.bottom-Dr&&(r=Or),r!==0){let t=e.scrollTop;e.scrollTop+=r,e.scrollTop!==t&&M()}j.current=requestAnimationFrame(N)},[M]),P=(0,e.useCallback)(e=>{j.current!==null&&(cancelAnimationFrame(j.current),j.current=null);let t=T,n=k;if(D.current=!1,O.current=null,E(null),ee(null),e&&t!==null&&n!==null){let e=jr(a,t,n);e&&f(e)}},[T,k,a,f]),te=(0,e.useCallback)((e,t,n)=>{C&&(n.preventDefault(),n.stopPropagation(),n.currentTarget.setPointerCapture(n.pointerId),D.current=!0,O.current=t,A.current=n.clientY,E(e),M(),j.current===null&&(j.current=requestAnimationFrame(N)))},[C,M,N]),ne=(0,e.useCallback)(e=>{D.current&&(A.current=e.clientY,M())},[M]),re=(0,e.useCallback)(()=>{D.current&&P(!0)},[P]),F=(0,e.useCallback)(()=>{D.current&&P(!1)},[P]);if((0,e.useEffect)(()=>{t||(D.current=!1,O.current=null,E(null),ee(null),j.current!==null&&(cancelAnimationFrame(j.current),j.current=null))},[t]),(0,e.useEffect)(()=>()=>{j.current!==null&&(cancelAnimationFrame(j.current),j.current=null)},[]),!t||!s)return null;let ie={top:s.top,left:s.left,width:s.width},ae=e=>{e.stopPropagation()},oe=e=>{e.stopPropagation()},se=()=>{o&&(v||u())},ce=T===null?null:a.find(e=>e.key===T)?.pane??null,le=(e,t,r)=>{let a=e.visible&&_===1,s=!o||a,c=T===e.key;return(0,n.jsxs)(`div`,{"data-chooser-row":``,"data-chooser-pane":r,className:i(`ssg-chooser-row`,T!==null&&ce===r&&k===t&&`ssg-chooser-row--drop-before`,c&&`ssg-chooser-row--dragging`),children:[(0,n.jsx)(`span`,{role:`button`,"aria-label":`ドラッグして並べ替え`,title:o?m.trim()===``?`ドラッグして並べ替え(同じセクション内のみ)`:`検索中は並べ替えできません`:`onColumnsChange 未指定のため並べ替えできません`,onPointerDown:t=>te(e.key,r,t),onPointerMove:ne,onPointerUp:re,onPointerCancel:F,className:i(`ssg-chooser-handle`,!C&&`ssg-chooser-handle--disabled`,c&&`ssg-chooser-handle--dragging`),children:(0,n.jsx)(Nr,{disabled:!C})}),(0,n.jsxs)(`button`,{type:`button`,disabled:s,onClick:()=>{s||l(e.key,!e.visible)},className:`ssg-chooser-toggle`,children:[(0,n.jsx)(Mr,{state:e.visible?`checked`:`unchecked`,disabled:s}),(0,n.jsx)(`span`,{className:i(`ssg-chooser-label`,s&&!e.visible&&`ssg-chooser-label--muted`),children:e.title})]})]},e.key)};return(0,r.createPortal)((0,n.jsxs)(`div`,{ref:c,onPointerDown:ae,onKeyDownCapture:oe,onContextMenu:e=>{e.preventDefault()},className:`ssg-popover ssg-chooser-panel`,style:ie,children:[(0,n.jsxs)(`div`,{className:`ssg-popover-header`,children:[(0,n.jsx)(`span`,{className:`ssg-popover-title`,children:`列の表示`}),(0,n.jsx)(`button`,{type:`button`,onClick:p,"aria-label":`閉じる`,className:`ssg-popover-close`,children:`×`})]}),(0,n.jsxs)(`div`,{className:`ssg-chooser-search-row`,children:[(0,n.jsx)(`button`,{type:`button`,disabled:!o,onClick:se,"aria-label":`すべての列を表示`,title:`すべての列を表示`,className:`ssg-chooser-master-btn`,children:(0,n.jsx)(Mr,{state:y,disabled:!o})}),(0,n.jsxs)(`div`,{className:`ssg-chooser-search-field`,children:[(0,n.jsx)(`span`,{"aria-hidden":!0,className:`ssg-chooser-search-icon`,children:`⌕`}),(0,n.jsx)(`input`,{ref:g,type:`text`,value:m,onChange:e=>h(e.target.value),placeholder:`検索...`,className:`ssg-chooser-search-input`})]})]}),(0,n.jsx)(`div`,{ref:w,className:`ssg-chooser-list`,children:b.length===0?(0,n.jsx)(`div`,{className:`ssg-chooser-empty`,children:`該当する列がありません`}):x.map(e=>(0,n.jsxs)(`div`,{"data-chooser-section":e.pane,children:[S&&(0,n.jsx)(`div`,{className:`ssg-chooser-section-heading`,children:Ar[e.pane]}),e.items.map((t,n)=>le(t,n,e.pane)),T!==null&&ce===e.pane&&k===e.items.length&&(0,n.jsx)(`div`,{className:`ssg-chooser-drop-end`})]},e.pane))}),(0,n.jsxs)(`div`,{className:`ssg-chooser-footer`,children:[(0,n.jsx)(`button`,{type:`button`,disabled:!o,onClick:()=>{o&&d()},title:`すべての列の幅・固定・表示を初期状態に戻します`,className:`ssg-chooser-reset-btn`,children:`すべての列を初期状態に戻す`}),!o&&(0,n.jsx)(`div`,{className:`ssg-chooser-note`,children:`onColumnsChange 未指定のため表示/非表示・リセットを変更できません`})]})]}),document.body)}var Fr=320,Ir=8,Lr=12,Rr=({enableSorting:t,gridRootRef:n})=>{let[r,i]=(0,e.useState)(!1),[a,o]=(0,e.useState)(null),s=(0,e.useRef)(null),c=(0,e.useCallback)(()=>{let e=n.current;if(!e){o(null);return}let t=e.getBoundingClientRect(),r=t.right-Fr-Lr,i=t.top+Lr;r=Math.max(Ir,r),r=Math.min(r,window.innerWidth-Fr-Ir),i=Math.max(Ir,i),o(e=>e&&e.top===i&&e.left===r&&e.width===Fr?e:{top:i,left:r,width:Fr})},[n]),l=(0,e.useCallback)(()=>{t&&(document.activeElement instanceof HTMLElement&&document.activeElement.blur(),n.current?.blur(),i(!0))},[t,n]),u=(0,e.useCallback)(()=>{i(!1),o(null),requestAnimationFrame(()=>{n.current?.focus()})},[n]);return(0,e.useEffect)(()=>{if(!r)return;c();let e=()=>{c()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[r,c]),(0,e.useEffect)(()=>{if(!r)return;let e=e=>{let t=e.target;t&&(s.current?.contains(t)||u())};return window.addEventListener(`pointerdown`,e),()=>{window.removeEventListener(`pointerdown`,e)}},[u,r]),(0,e.useEffect)(()=>{if(!r)return;let e=e=>{e.key===`Escape`&&(e.preventDefault(),u())};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[u,r]),{isSortManagerOpen:r,sortManagerLayout:a,sortManagerRef:s,openSortManager:l,closeSortManager:u}};function zr({disabled:e}){return(0,n.jsx)(`svg`,{width:`10`,height:`16`,viewBox:`0 0 10 16`,fill:e?`#cbd5e1`:`#94a3b8`,"aria-hidden":!0,children:[3,8,13].map(e=>[3,7].map(t=>(0,n.jsx)(`circle`,{cx:t,cy:e,r:`1.2`},`${t}-${e}`)))})}function Br({isOpen:t,entries:a,columns:o,canSort:s,layout:c,panelRef:l,onAddLevel:u,onChangeDirection:d,onChangeColumn:f,onRemoveLevel:p,onClearAll:m,onMove:h,onRequestClose:g}){let _=(0,e.useMemo)(()=>new Set(a.map(e=>e.columnKey)),[a]),v=(0,e.useMemo)(()=>o.find(e=>!_.has(e.key))??null,[o,_]),y=e=>o.find(t=>t.key===e)?.title??e,b=s&&a.length>=2,x=(0,e.useRef)(null),[S,C]=(0,e.useState)(null),w=(0,e.useRef)(!1),[T,E]=(0,e.useState)(null),D=(0,e.useRef)(0),O=(0,e.useCallback)(()=>{let e=x.current;if(!e)return;let t=e.querySelectorAll(`[data-sort-level]`),n=D.current,r=t.length;for(let e=0;e<t.length;e+=1){let i=t[e].getBoundingClientRect();if(n<i.top+i.height/2){r=e;break}}E(r)},[]),k=(0,e.useCallback)(e=>{let t=S,n=T;if(w.current=!1,C(null),E(null),e&&t!==null&&n!==null){let e=n;e>t&&--e,h(t,e)}},[S,T,h]),ee=(0,e.useCallback)((e,t)=>{b&&(t.preventDefault(),t.stopPropagation(),t.currentTarget.setPointerCapture(t.pointerId),w.current=!0,D.current=t.clientY,C(e),O())},[b,O]),A=(0,e.useCallback)(e=>{w.current&&(D.current=e.clientY,O())},[O]),j=(0,e.useCallback)(()=>{w.current&&k(!0)},[k]),M=(0,e.useCallback)(()=>{w.current&&k(!1)},[k]);if((0,e.useEffect)(()=>{t||(w.current=!1,C(null),E(null))},[t]),!t||!c)return null;let N={top:c.top,left:c.left,width:c.width},P=e=>{e.stopPropagation()},te=e=>{e.stopPropagation()},ne=s&&v!==null;return(0,r.createPortal)((0,n.jsxs)(`div`,{ref:l,onPointerDown:P,onKeyDownCapture:te,onContextMenu:e=>{e.preventDefault()},className:`ssg-popover ssg-sort-panel`,style:N,children:[(0,n.jsxs)(`div`,{className:`ssg-popover-header`,children:[(0,n.jsx)(`span`,{className:`ssg-popover-title`,children:`並び替え`}),(0,n.jsx)(`button`,{type:`button`,onClick:g,"aria-label":`閉じる`,className:`ssg-popover-close`,children:`×`})]}),(0,n.jsxs)(`div`,{ref:x,className:`ssg-sort-list`,children:[a.length===0?(0,n.jsx)(`div`,{className:`ssg-sort-empty`,children:`並び替えは設定されていません`}):a.map((e,t)=>{let r=o.filter(t=>t.key===e.columnKey||!_.has(t.key)),c=r.some(t=>t.key===e.columnKey)?r:[{key:e.columnKey,title:y(e.columnKey)},...r],l=S===t;return(0,n.jsxs)(`div`,{"data-sort-level":``,className:i(`ssg-sort-level`,S!==null&&T===t&&`ssg-sort-level--drop-before`,l&&`ssg-sort-level--dragging`),children:[(0,n.jsx)(`span`,{role:`button`,"aria-label":`ドラッグして優先順位を変更`,title:s?a.length<2?`レベルが 2 件以上のとき並べ替えできます`:`ドラッグして優先順位を変更`:`並び替えが無効です`,onPointerDown:e=>ee(t,e),onPointerMove:A,onPointerUp:j,onPointerCancel:M,className:i(`ssg-sort-handle`,!b&&`ssg-sort-handle--disabled`,l&&`ssg-sort-handle--dragging`),children:(0,n.jsx)(zr,{disabled:!b})}),(0,n.jsx)(`span`,{"aria-hidden":!0,className:`ssg-sort-badge`,children:t+1}),(0,n.jsx)(`select`,{value:e.columnKey,disabled:!s,onChange:e=>f(t,e.target.value),className:`ssg-sort-select`,children:c.map(e=>(0,n.jsx)(`option`,{value:e.key,children:e.title},e.key))}),(0,n.jsxs)(`div`,{className:`ssg-sort-dir-group`,children:[(0,n.jsx)(`button`,{type:`button`,disabled:!s,onClick:()=>d(t,`asc`),title:`昇順`,className:i(`ssg-sort-dir-btn`,e.direction===`asc`&&`ssg-sort-dir-btn--active`),children:`↑ 昇順`}),(0,n.jsx)(`button`,{type:`button`,disabled:!s,onClick:()=>d(t,`desc`),title:`降順`,className:i(`ssg-sort-dir-btn`,e.direction===`desc`&&`ssg-sort-dir-btn--active`),children:`↓ 降順`})]}),(0,n.jsx)(`button`,{type:`button`,disabled:!s,onClick:()=>p(t),"aria-label":`このレベルを削除`,title:`このレベルを削除`,className:`ssg-sort-delete`,children:`×`})]},e.columnKey)}),S!==null&&T===a.length&&(0,n.jsx)(`div`,{className:`ssg-sort-drop-end`})]}),(0,n.jsxs)(`div`,{className:`ssg-popover-footer`,children:[(0,n.jsx)(`button`,{type:`button`,disabled:!ne,onClick:()=>{!ne||!v||u(v.key,`asc`)},title:s?v===null?`すべての列が並び替えに使われています`:`並び替えの基準を追加します`:`並び替えが無効です`,className:`ssg-sort-footer-btn ssg-sort-footer-btn--add`,children:`+ 基準を追加`}),(0,n.jsx)(`button`,{type:`button`,disabled:!s||a.length===0,onClick:()=>{!s||a.length===0||m()},title:`すべての並び替えを解除します`,className:`ssg-sort-footer-btn ssg-sort-footer-btn--clear`,children:`すべてクリア`})]}),!s&&(0,n.jsx)(`div`,{className:`ssg-sort-note`,children:`並び替えが無効のため編集できません`})]}),document.body)}var Vr=(e,t)=>e.findIndex(e=>e.key===t),Hr=(e,t,n)=>{if(!e)return!1;if(e.type===`row`)return t>=e.startRow&&t<=e.endRow;if(e.type===`col`)return n>=e.startCol&&n<=e.endCol;let{start:r,end:i}=e.range,a=Math.min(r.row,i.row),o=Math.max(r.row,i.row),s=Math.min(r.col,i.col),c=Math.max(r.col,i.col);return t>=a&&t<=o&&n>=s&&n<=c},Ur=(e,t)=>{if(!e)return!1;if(e.type===`row`)return t>=e.startRow&&t<=e.endRow;if(e.type===`cell`){let{start:n,end:r}=e.range,i=Math.min(n.row,r.row),a=Math.max(n.row,r.row);return t>=i&&t<=a}return!1},Wr=220,Gr=8,Kr=34,qr=16,Jr=({gridRootRef:t})=>{let[n,r]=(0,e.useState)(null),[i,a]=(0,e.useState)(null),o=(0,e.useRef)(null),s=(0,e.useRef)(null),c=(0,e.useRef)(0),l=n!==null,u=(0,e.useCallback)(()=>{let e=s.current;if(!e){a(null);return}let t=c.current*Kr+qr,n=e.x,r=e.y,i=e.y-t;n=Math.max(Gr,n),n=Math.min(n,window.innerWidth-Wr-Gr),r+t>window.innerHeight-Gr&&(r=i),r=Math.max(Gr,r),a(e=>e&&e.top===r&&e.left===n&&e.width===Wr?e:{top:r,left:n,width:Wr})},[]),d=(0,e.useCallback)(()=>{r(null),a(null),s.current=null,c.current=0,requestAnimationFrame(()=>{t.current?.focus()})},[t]),f=(0,e.useCallback)((e,n)=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur(),t.current?.blur(),s.current={x:e.clientX,y:e.clientY},c.current=n.length,r({params:e,items:n}),u()},[t,u]);return(0,e.useEffect)(()=>{if(!l)return;u();let e=()=>{u()},t=()=>{d()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,t,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,t,!0)}},[l,u,d]),(0,e.useEffect)(()=>{if(!l)return;let e=e=>{let t=e.target;t&&(o.current?.contains(t)||d())};return window.addEventListener(`pointerdown`,e),()=>{window.removeEventListener(`pointerdown`,e)}},[l,d]),(0,e.useEffect)(()=>{if(!l)return;let e=e=>{e.key===`Escape`&&(e.preventDefault(),d())};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[l,d]),{contextMenuState:n,contextMenuLayout:i,contextMenuRef:o,isContextMenuOpen:l,openContextMenu:f,closeContextMenu:d}};function Yr({isOpen:e,items:t,layout:a,popoverRef:o,onRequestClose:s}){if(!e||!a)return null;let c={position:`fixed`,top:a.top,left:a.left,width:a.width,zIndex:1e3};return(0,r.createPortal)((0,n.jsx)(`div`,{ref:o,role:`menu`,onPointerDown:e=>{e.stopPropagation()},onKeyDownCapture:e=>{e.stopPropagation()},onContextMenu:e=>{e.preventDefault()},className:`ssg-menu-panel`,style:c,children:t.map((e,t)=>e.kind===`separator`?(0,n.jsx)(`div`,{className:`ssg-menu-separator`},e.id??`sep-${t}`):e.kind===`label`?(0,n.jsx)(`div`,{className:`ssg-menu-section-label`,role:`presentation`,children:e.label},e.id??`label-${t}`):e.kind===`custom`?(0,n.jsx)(`div`,{role:`none`,children:e.render({close:s})},e.id??`custom-${t}`):(0,n.jsxs)(`button`,{type:`button`,role:`menuitem`,disabled:e.disabled,onClick:()=>{e.onSelect(),s()},className:i(`ssg-menu-item`,e.danger&&`ssg-menu-item--danger`,e.disabled&&`ssg-menu-item--disabled`),children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`,children:e.icon}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:e.label})]},e.id??`action-${t}`))}),document.body)}var Xr=(e,t)=>{let n=new Set(e);return n.add(t),n},Zr=(e,t)=>{let n=new Set(e);return n.delete(t),n},Qr=(e,t)=>{let n=new Set(e);for(let e of t)n.add(e);return n},$r=(e,t)=>{let n=new Set(e);for(let e of t)n.delete(e);return n},ei=[],ti={},ni={},ri=[],ii={},ai=[],oi=300,si=4,ci=300;function li({rows:r=ei,dataSource:o,serverSideRefreshToken:d,columns:p,onRowsChange:m,onColumnsChange:g,rowKeyGetter:_,createRow:v,createOverflowColumn:y,rowHeight:b=36,autoHeight:T=!1,estimateRowHeight:D,headerHeight:F=40,rowHeaderWidth:ie=56,height:ae,maxHeight:de,readOnly:L=!1,canEditCell:be,enableRangeSelection:we=!0,enableRowSelection:Te=!1,rowSelectionMode:Ee=`multiple`,enableSelectAllRows:Oe,rowSelection:ke,selectedRowKeys:Ae,onRowSelectionChange:je,enableGlobalFilter:Me=!0,enableColumnFilter:Pe=!0,enableSorting:R=!0,enableColumnResize:Fe=!0,enableRowHover:Le=!0,enableColumnHeaderHover:ze=!0,enableColumnMenu:Be=!0,noMatchingRowsText:Ve=`一致する行がありません`,noRowsText:He=`表示する行がありません`,showTopBar:Ue=!0,showBottomBar:We=!0,showTopBarSummary:Ge=!0,showTopBarFilter:Ke=!0,globalFilterPlaceholder:qe,globalFilterIcon:Je,showTopBarCounts:Ye=!0,showBottomBarCounts:Xe=!0,renderTopBar:$e,renderBottomBar:et,className:nt,classNames:z,getRowClassName:ft,enableContextMenu:_t=!1,getContextMenuItems:St,onContextMenuOpen:Ct,ref:wt,onStateChange:Tt}){let Et=(0,e.useRef)(null),Dt=(0,e.useRef)(null),Ot=(0,e.useRef)(null),kt=(0,e.useRef)(null),At=(0,e.useRef)(!1),B=(0,e.useRef)(null),jt=(0,e.useRef)(null),Mt=(0,e.useRef)(null),[Nt,Pt]=(0,e.useState)(``),[Ft,Lt]=(0,e.useState)(!1),[Rt,Vt]=(0,e.useState)(null),[Ht,Ut]=(0,e.useState)(null),V=(0,e.useMemo)(()=>p.filter(e=>e.visible!==!1),[p]),H=(0,e.useMemo)(()=>l(V),[V]),Jt=(0,e.useMemo)(()=>_??((e,t)=>t),[_]),U=o!=null,Yt=R,Xt=Pe,rn=Me,[W,G]=(0,e.useReducer)(se,V,oe),on=(0,e.useRef)(W.columnWidths),sn=(0,e.useRef)(null),cn=(0,e.useRef)(null);cn.current===null&&(cn.current=new Map(p.map(e=>[e.key,{width:e.width,pinned:e.pinned,visible:e.visible}])));let ln=(0,e.useMemo)(()=>fe(W.selection),[W.selection]),K=(0,e.useMemo)(()=>u(H),[H]),[un,dn]=(0,e.useState)(0),fn=K.left.reduce((e,{column:t})=>e+(W.columnWidths[t.key]??t.width),0),pn=K.right.reduce((e,{column:t})=>e+(W.columnWidths[t.key]??t.width),0),mn=K.left.length>0,hn=mn?ie+fn:0,gn=mn?0:ie,_n=(0,e.useMemo)(()=>K.center.map(({column:e})=>e),[K.center]),vn=(0,e.useMemo)(()=>_n.some(w),[_n]),yn=un-hn-pn-gn,bn=(0,e.useMemo)(()=>!vn||un<=0?ii:E(_n,W.columnWidths,yn),[vn,un,_n,W.columnWidths,yn]),xn=(0,e.useMemo)(()=>bn===ii?W.columnWidths:{...bn,...W.columnWidths},[bn,W.columnWidths]);on.current=xn;let Sn=f(K.left,W.columnWidths),Cn=f(K.center,xn),wn=f(K.right,W.columnWidths),Tn=(0,e.useMemo)(()=>h(`left`,K.left,Sn),[K.left,Sn]),En=(0,e.useMemo)(()=>h(`center`,K.center,Cn),[K.center,Cn]),On=(0,e.useMemo)(()=>h(`right`,K.right,wn),[K.right,wn]),q=(0,e.useMemo)(()=>({left:Tn,center:En,right:On}),[Tn,En,On]),kn=q.left.entries.length>0,An=q.right.entries.length>0,jn=!kn,Mn=ie,Nn=jn?ie:0,Pn=kn?Mn+q.left.totalWidth:0,Fn=q.right.totalWidth,In=Nn+q.center.totalWidth,Rn=Pn+In+Fn,{filterPopoverState:J,filterPopoverLayout:Bn,filterPopoverRef:Vn,filterTextInputRef:Hn,filterSelectRef:Un,isFilterPopoverOpen:Wn,openedFilterColumn:Y,openColumnFilterPopover:Yn,closeColumnFilterPopover:Xn,updateFilterPopoverDraft:$n}=Ne({visibleColumns:V,columnFilterValues:W.filters.columnFilters,enableColumnFilter:Xt,gridRootRef:Et}),{columnMenuLayout:er,columnMenuRef:nr,isColumnMenuOpen:rr,openedMenuColumnKey:ir,openedMenuColumn:ar,openColumnMenuFromButton:or,openColumnMenuFromContextMenu:sr,closeColumnMenu:X}=gr({visibleColumns:V,enableColumnMenu:Be,gridRootRef:Et}),{isColumnChooserOpen:lr,columnChooserLayout:ur,columnChooserRef:fr,openColumnChooser:pr,closeColumnChooser:mr}=Er({enableColumnMenu:Be,gridRootRef:Et}),{isSortManagerOpen:hr,sortManagerLayout:_r,sortManagerRef:vr,openSortManager:yr,closeSortManager:br}=Rr({enableSorting:Yt,gridRootRef:Et}),{contextMenuState:xr,contextMenuLayout:Cr,contextMenuRef:wr,isContextMenuOpen:Tr,openContextMenu:Dr,closeContextMenu:Or}=Jr({gridRootRef:Et});(0,e.useEffect)(()=>{let e=V.reduce((e,t)=>(w(t)||(e[t.key]=t.width),e),{});G(a.resetColumnWidths(e))},[V]);let kr=W.filters.globalText,Ar=W.filters.columnFilters,jr=(0,e.useDeferredValue)(Ar),{order:Mr,status:Nr,progress:Fr}=zn({rows:r,baseOrder:(0,e.useMemo)(()=>ve(r.length),[r.length]),columns:V,globalText:kr,enabled:rn}),Ir=(0,e.useMemo)(()=>{let e=[];for(let t of V)xe(jr[t.key])&&e.push(t.key);return e.join(`\0`)},[V,jr]),Lr=(0,e.useMemo)(()=>{let e=new Map;if(Ir.length===0)return e;let t=new Set(Ir.split(`\0`)),n=r.length;for(let i of V){if(!t.has(i.key))continue;let a=new Float64Array(n);for(let e=0;e<n;e+=1)a[e]=Number(I(r[e],i));e.set(i.key,a)}return e},[r,V,Ir]),zr=(0,e.useMemo)(()=>De(r,Mr,V,jr,Lr),[r,Mr,V,jr,Lr]),Wr=(0,e.useMemo)(()=>lt(r,zr,V,W.sort),[r,zr,V,W.sort]),Gr=(0,e.useMemo)(()=>({getRowCount:()=>Wr.length,getRow:e=>r[Wr[e]],getSourceIndex:e=>Wr[e],getRowKey:e=>Jt(r[Wr[e]],Wr[e])}),[Wr,r,Jt]),Kr=(0,e.useMemo)(()=>U?Kn({globalText:rn?kr:``,columnFilters:Xt?Ar:ni,sort:Yt?W.sort:ri}):ti,[U,rn,kr,Xt,Ar,Yt,W.sort]),qr=(0,e.useMemo)(()=>U?qn(Kr):``,[U,Kr]),[li,ui]=(0,e.useState)(Kr),[di,fi]=(0,e.useState)(qr);(0,e.useEffect)(()=>{if(!U)return;let e=setTimeout(()=>{ui(Kr),fi(qr)},ci);return()=>clearTimeout(e)},[U,qr,Kr]);let pi=Gn({dataSource:o,rowKeyGetter:Jt,query:li,queryKey:di,refreshToken:d}),mi=pi.requestRange,Z=U?pi.rowModel:Gr,hi=(0,e.useRef)(Z);hi.current=Z;let gi=(0,e.useCallback)(e=>{if(!_t||!St)return;let t=e.target;if(!t)return;let n=t.closest(`[data-row-index]`);if(!n)return;let r=n.dataset.rowIndex;if(r===void 0)return;let i=Number(r);if(!Number.isInteger(i))return;let a=Z.getRow(i);if(!a)return;let o=Z.getRowKey(i)??i,s,c,l=t.closest(`[data-ssg-col-key]`),u=l?.dataset.ssgColKey;if(l&&u!==void 0){let e=Vr(H,u);if(e<0)return;let t=H[e];s={type:`cell`,rowIndex:i,colIndex:e,rowKey:o,row:a,column:t,value:I(a,t)},c=Hr(W.selection,i,e)}else s={type:`rowHeader`,rowIndex:i,rowKey:o,row:a},c=Ur(W.selection,i);let d={target:s,clientX:e.clientX,clientY:e.clientY,selection:W.selection,activeCell:W.activeCell,isTargetSelected:c},f=St(d);!f||f.length===0||(e.preventDefault(),Ct?.(d),Dr(d,f))},[_t,St,Ct,Z,H,W.selection,W.activeCell,Dr]),{isAutosizing:_i,runAutosize:vi}=Dn({rowModelRef:hi,gridRootRef:Et,columnWidthsRef:on,dispatch:G}),Q=Z.getRowCount(),yi=(0,e.useMemo)(()=>{let e=null;return()=>e??=Array.from(Wr,e=>r[e])},[Wr,r]),bi=(0,e.useMemo)(()=>s(V,xn),[V,xn]),[xi,Si]=(0,e.useState)(0),[Ci,wi]=(0,e.useState)(0);(0,e.useEffect)(()=>{let e=B.current;if(!e)return;Si(e.scrollTop),wi(e.clientHeight),dn(e.clientWidth);let t=()=>Si(e.scrollTop);e.addEventListener(`scroll`,t,{passive:!0});let n=new ResizeObserver(()=>{wi(e.clientHeight),dn(e.clientWidth)});return n.observe(e),()=>{e.removeEventListener(`scroll`,t),n.disconnect()}},[]);let Ti=q.center.entries,Ei=(0,t.useVirtualizer)({horizontal:!0,count:Ti.length,getScrollElement:()=>B.current,estimateSize:e=>Ti[e]?.paneLocalSize??Ti[e]?.column.width??120,overscan:8,useFlushSync:!1,scrollMargin:Pn}),Di=Ei.getVirtualItems(),Oi=D??b,ki=(0,e.useMemo)(()=>V.some(e=>e.autoHeight===!0),[V]),Ai=!U&&dt(T,ki,Q,5e4);(0,e.useEffect)(()=>{},[T,ki,Q,U]);let ji=(0,e.useRef)(new Map),[Mi,Ni]=(0,e.useState)(0),[Pi,Fi]=(0,e.useState)(0),Ii=(0,e.useRef)(null),Li=(0,e.useRef)(new Set),Ri=(0,e.useMemo)(()=>Ai?tn(Q,Oi,Z.getRowKey,ji.current):null,[Ai,Q,Oi,Z]),zi=(0,e.useMemo)(()=>Ai&&Ri?an(Ri):pt(Q,b),[Ai,Ri,Mi,Q,b]),Bi=(0,e.useMemo)(()=>Ai?yt({headerHeight:F,viewportHeight:Ci,scrollTop:xi,overscan:20},zi):vt({rowCount:Q,rowHeight:b,headerHeight:F,viewportHeight:Ci,scrollTop:xi,overscan:20,maxBodyPx:ut}),[Ai,zi,Q,b,F,Ci,xi]),Vi=Bi.rows,Hi=Bi.rowIndexSet,Ui=Vi.length>0?Vi[0].index:0,Wi=Vi.length>0?Vi[Vi.length-1].index:-1;(0,e.useEffect)(()=>{if(!U)return;let e=B.current;e&&(e.scrollTop=0),Si(0)},[U,di]),(0,e.useEffect)(()=>{U&&(Wi<Ui||mi(Ui,Wi+1))},[U,Ui,Wi,mi,di]);let Gi=Bi.physicalBodyHeight,Ki=Bi.translateY===0?void 0:`translateY(${Bi.translateY}px)`,qi=Bi.scaleFactor,Ji=Bi.windowBaseOffsetPx;(0,e.useLayoutEffect)(()=>{if(!Ai||!Ri){Ii.current?.disconnect(),Ii.current=null,Li.current.clear();return}let e=B.current;if(!e)return;let t=e.querySelectorAll(`[data-autoheight-cell]`);if(t.length>0){let n=new Map;t.forEach(e=>{let t=e.closest(`[data-row-index]`);if(!t)return;let r=Number(t.dataset.rowIndex);if(!Number.isFinite(r))return;let i=Math.ceil(e.getBoundingClientRect().height),a=n.get(r);(a===void 0||i>a)&&n.set(r,i)});let r=!1,i=1/0;if(n.forEach((e,t)=>{nn(Ri,t,Z.getRowKey(t)??t,e)&&(r=!0,t<i&&(i=t))}),r){let t=e.scrollTop,n=zi.rowAtContentY(t),r=t-zi.rowTop(n);en(Ri,i),e.scrollTop=Ri.prefix[n]+r,Ni(e=>e+1)}}let n=Ii.current??new ResizeObserver(()=>Fi(e=>e+1));Ii.current=n;let r=Li.current,i=new Set;t.forEach(e=>{i.add(e),r.has(e)||(n.observe(e),r.add(e))});let a=[];r.forEach(e=>{i.has(e)||a.push(e)}),a.forEach(e=>{n.unobserve(e),r.delete(e)})},[Ai,Ri,zi,Z,Vi,Ci,Mi,Pi]),(0,e.useEffect)(()=>{let e=Li.current;return()=>{Ii.current?.disconnect(),Ii.current=null,e.clear()}},[]);let Yi=(0,e.useMemo)(()=>Di.map(e=>Ti[e.index]).filter(e=>!!e),[Di,Ti]),Xi=q.left.entries,Zi=q.right.entries,Qi=(0,e.useMemo)(()=>{if(!W.activeCell)return null;let{row:e,col:t}=W.activeCell;if(e<0||e>=Q)return null;let n=C(q,t);return n?{pane:n.pane,rect:{left:n.extent.start,top:zi.rowTop(e),width:n.extent.width,height:zi.rowsHeight(e,e)}}:null},[W.activeCell,Q,q,zi]),$i=(0,e.useMemo)(()=>Qi&&Qi.pane===`center`?Qi.rect:null,[Qi]),ea=(0,e.useCallback)(e=>Qi&&Qi.pane===e?Qi.rect:null,[Qi]),ta=(0,e.useCallback)(e=>W.editingCell?ea(e):null,[W.editingCell,ea]);xt({scrollRef:B,columnVirtualizer:Ei,columnMeasurements:bi,totalScrollWidth:Rn,physicalBodyHeight:Gi,headerHeight:F,leftPaneWidth:Pn,rightPaneWidth:Fn,centerLeadingWidth:Nn,activeCellRect:$i,verticalScaleFactor:qi});let na=(0,e.useMemo)(()=>{if(ke!==void 0)return ke;if(Ae!==void 0)return{type:`include`,rowKeys:Ae}},[ke,Ae]),ra=na!==void 0,ia=Oe??(Te&&Ee===`multiple`),aa=W.rowSelection,oa=P(aa,Q),sa=(0,e.useRef)(aa);sa.current=aa;let ca=(0,e.useRef)(Ee);ca.current=Ee;let la=(0,e.useRef)(je);la.current=je;let ua=(0,e.useRef)(ra);ua.current=ra;let da=(0,e.useRef)(null),fa=(0,e.useCallback)(e=>{re(sa.current,e)||la.current?.(te(e)),ua.current||G(a.setRowSelectionState(e))},[G]),pa=(0,e.useRef)(fa);pa.current=fa;let ma=(0,e.useCallback)((e,t)=>{let n=hi.current,r=Math.min(e,t),i=Math.max(e,t),a=[];for(let e=r;e<=i;e+=1)n.getRow(e)&&a.push(n.getRowKey(e)??e);return a},[]),ha=(0,e.useCallback)((e,t)=>{let n=hi.current;if(!n.getRow(e))return;let r=n.getRowKey(e)??e;if(ca.current===`single`){da.current=e,fa(ee(r));return}if(t.shiftKey&&da.current!==null){fa(A(ma(da.current,e)));return}da.current=e,fa(k(sa.current,r))},[fa,ma]),ga=(0,e.useCallback)(e=>{let t=hi.current;if(t.getRow(e)){if(ca.current===`single`){fa(ee(t.getRowKey(e)??e));return}da.current!==null&&fa(A(ma(da.current,e)))}},[fa,ma]),_a=(0,e.useCallback)(()=>{let e=hi.current;fa(P(sa.current,e.getRowCount())===`all`?M():j())},[fa]);(0,e.useEffect)(()=>{if(!ra||!na)return;let e=ne(na);re(sa.current,e)||G(a.setRowSelectionState(e))},[ra,na,G]);let{updateSelectionFromPointer:va,handleCellPointerDown:ya,handleCellPointerEnter:ba,handleNativeDragStart:xa,handleRowHeaderPointerDown:Sa,handleRowHeaderPointerEnter:Ca,handleColumnHeaderPointerDown:wa,handleColumnHeaderPointerEnter:Ta}=bt({gridRootRef:Et,bodyScrollRef:kt,scrollContainerRef:B,leftPaneScrollRef:jt,rightPaneScrollRef:Mt,pointerClientRef:Dt,autoScrollFrameRef:Ot,uiState:W,dispatch:G,enableRangeSelection:we,enableSorting:Yt,orderedColumns:H,filteredRowsLength:Q,visibleColumnsLength:V.length,paneLayout:q,leftLeadingWidth:Mn,centerLeadingWidth:Nn,rightLeadingWidth:0,headerHeight:F,rowMetrics:zi,verticalScaleFactor:qi,setHoveredRowIndex:Vt,setHoveredColumnIndex:Ut,enableRowHover:Le,enableColumnHeaderHover:ze,enableRowSelection:Te,onGutterRowSelect:ha,onGutterRowSelectDrag:ga}),{isWholeGridSelected:Ea,handleCopy:Da,handlePaste:Oa}=Ie({rows:r,rowModel:Z,visibleColumns:H,uiState:W,readOnly:L,canEditCell:be,createRow:v,createOverflowColumn:y,onRowsChange:m,onColumnsChange:g,dispatch:G}),ka=(0,e.useCallback)(()=>{if(Q===0||V.length===0)return;let e={row:0,col:0},t={row:Q-1,col:V.length-1};G(a.startSelection(e)),G(a.updateSelection(t)),G(a.endSelection()),G(a.activateCell(e))},[G,Q,V.length]),{getMovedCell:Aa,handleKeyDown:ja}=tt({uiState:W,rowModel:Z,visibleColumns:H,readOnly:L,canEditCell:be,setEditorInitialValue:Pt,dispatch:G,handleCopy:Da,handleCellDoubleClick:(0,e.useCallback)(e=>{let t=Z.getRow(e.row),n=H[e.col];if(!t||!n||!ge({readOnly:L,canEditCell:be},e.row,e.col,t,n))return;let r=I(t,n);Pt(String(r??``)),G(a.startEdit(e))},[be,G,Z,L,H]),isWholeGridSelected:Ea,selectEntireGrid:ka}),{startEditWithValue:Ma,commitEdit:Na,cancelEdit:Pa}=Qe({uiState:W,rows:r,visibleColumns:H,rowModel:Z,setEditorInitialValue:Pt,onRowsChange:m,dispatch:G,getMovedCell:Aa,gridRootRef:Et,editorActionGuardRef:At}),Fa=W.editingCell?H[W.editingCell.col]:void 0,Ia=(0,e.useCallback)(e=>{let t=Z.getRow(e.row),n=H[e.col];if(!t||!n||!ge({readOnly:L,canEditCell:be},e.row,e.col,t,n))return;let r=I(t,n);Ma(e,String(r??``))},[be,Z,L,Ma,H]),La=(0,e.useMemo)(()=>{if(!W.selection)return null;if(W.selection.type===`cell`){let e=ce(W.selection.range);return{extents:x(q,e.start.col,e.end.col),startRow:e.start.row,endRow:e.end.row}}if(W.selection.type===`row`){let e=le(W.selection.startRow,W.selection.endRow);return{extents:S(q),startRow:e.startRow,endRow:e.endRow}}let e=ue(W.selection.startCol,W.selection.endCol);return{extents:x(q,e.startCol,e.endCol),startRow:0,endRow:Math.max(Q-1,0)}},[W.selection,q,Q]),Ra=(0,e.useMemo)(()=>{if(!La)return null;let e=mt(La.startRow,La.endRow,Ui,Wi);return e?{top:zi.rowTop(e.start),height:zi.rowsHeight(e.start,e.end)}:null},[La,zi,Ui,Wi]),za=(0,e.useCallback)(e=>{if(!La||!Ra)return null;let t=La.extents[e];return t?{left:t.start,top:Ra.top,width:t.width,height:Ra.height}:null},[La,Ra]),Ba=(0,e.useCallback)(e=>{if(e.preventDefault(),e.button===0&&!(Q===0||V.length===0)){if(Et.current?.focus(),ia){_a();return}if(Ea){G(a.clearSelection()),G(a.activateCell(null));return}ka()}},[G,Q,Ea,ka,V.length,ia,_a]),Va=(0,e.useCallback)(e=>{Vt(t=>t===e?null:t)},[]),Ha=(0,e.useCallback)(e=>{Ut(t=>t===e?null:t)},[]),Ua=(0,e.useCallback)(()=>{Lt(!0)},[]),Wa=(0,e.useCallback)(()=>{Lt(!1)},[]),Ga=(0,e.useCallback)((e,t)=>{t.preventDefault(),t.stopPropagation();let n=t.timeStamp,r=sn.current;if(r&&r.key===e.key&&n-r.time<oi&&Math.abs(t.clientX-r.x)<si){sn.current=null,vi([e]);return}sn.current={key:e.key,time:n,x:t.clientX},G(a.startColumnResize(e.key,t.clientX,on.current[e.key]??e.width,e.minWidth??60,e.maxWidth))},[G,vi]),Ka=(0,e.useCallback)((e,t)=>{if(X(),!g)return;let n=p.find(t=>t.key===e);n&&(n.pinned??void 0)!==t&&(g(p.map(n=>{let r=on.current[n.key]??n.width;return n.key===e?{...n,width:r,pinned:t}:r===n.width?n:{...n,width:r}})),G(a.stopEdit()),G(a.clearSelection()),G(a.activateCell(null)))},[X,p,G,g]),qa=(0,e.useCallback)(e=>{X();let t=V.find(t=>t.key===e);t&&vi([t])},[X,vi,V]),Ja=(0,e.useCallback)(()=>{X(),vi(V)},[X,vi,V]),Ya=(0,e.useMemo)(()=>p.map(e=>({key:e.key,title:e.title??e.key,visible:e.visible!==!1,pane:c(e)})),[p]),Xa=(0,e.useCallback)(()=>{X(),pr()},[X,pr]),Za=(0,e.useMemo)(()=>V.map(e=>({key:e.key,title:e.title??e.key})),[V]),Qa=(0,e.useCallback)(()=>{X(),yr()},[X,yr]),$a=(0,e.useCallback)(e=>{X(),Yn(e)},[X,Yn]),eo=(0,e.useCallback)((e,t)=>{if(!g)return;let n=p.find(t=>t.key===e);n&&n.visible!==!1!==t&&(!t&&p.filter(e=>e.visible!==!1).length<=1||(g(p.map(n=>{let r=on.current[n.key]??n.width;return n.key===e?{...n,width:r,visible:t}:r===n.width?n:{...n,width:r}})),G(a.stopEdit()),G(a.clearSelection()),G(a.activateCell(null))))},[p,G,g]),to=(0,e.useCallback)(()=>{g&&p.some(e=>e.visible===!1)&&(g(p.map(e=>{let t=on.current[e.key]??e.width,n=t!==e.width,r=e.visible===!1;return!n&&!r?e:r?{...e,width:t,visible:!0}:{...e,width:t}})),G(a.stopEdit()),G(a.clearSelection()),G(a.activateCell(null)))},[p,G,g]),no=(0,e.useCallback)((e,t)=>{if(!g||e.length!==p.length)return;let n=new Map(p.map(e=>[e.key,e]));if(!e.every(e=>n.has(e)))return;let r=l(e.map(e=>{let r=n.get(e),i=on.current[r.key]??r.width,a=t?.has(e)?t.get(e):r.pinned,o=i!==r.width,s=(r.pinned??void 0)!==(a??void 0);return o||s?{...r,width:i,pinned:a}:r}));r.length===p.length&&r.every((e,t)=>{let n=p[t];return!!n&&n.key===e.key&&n.width===e.width&&(n.pinned??void 0)===(e.pinned??void 0)})||(g(r),G(a.stopEdit()),G(a.clearSelection()),G(a.activateCell(null)))},[p,G,g]),ro=(0,e.useCallback)(e=>{no(e)},[no]),{onColumnDragHandlePointerDown:io,leftIndicatorRef:ao,centerIndicatorRef:oo,rightIndicatorRef:so,applyReorderSettle:co}=It({enabled:!!g,columns:p,paneLayout:q,leftPaneScrollRef:jt,rightPaneScrollRef:Mt,bodyScrollRef:kt,scrollContainerRef:B,leftLeadingWidth:Mn,centerLeadingWidth:Nn,rightLeadingWidth:0,applyColumnOrderAndPin:no});(0,e.useLayoutEffect)(()=>{co()},[q,co]);let lo=g?io:void 0,uo={position:`absolute`,top:0,height:F+Gi,transform:`translateX(-1px)`,pointerEvents:`none`,zIndex:8,display:`none`},fo=(0,e.useCallback)(()=>{if(!g)return;let e=cn.current;if(!e)return;let t=!1,n=p.map(n=>{let r=on.current[n.key]??n.width,i=e.get(n.key);if(!i)return r===n.width?n:{...n,width:r};let a=i.pinned??void 0,o=r!==i.width,s=(n.pinned??void 0)!==a,c=n.visible!==!1!=(i.visible!==!1);return(o||s||c)&&(t=!0),{...n,width:i.width,pinned:i.pinned,visible:i.visible}});t&&(g(n),G(a.stopEdit()),G(a.clearSelection()),G(a.activateCell(null)))},[p,G,g]),po=(0,e.useCallback)(()=>{X(),fo()},[X,fo]),mo=(0,e.useCallback)(e=>Y?I(r[e],Y):void 0,[r,Y]),{options:ho,allValues:go,status:_o,progress:vo}=Ln({column:Y,rowCount:r.length,getRawValueAt:mo}),yo=Y?W.filters.columnFilters[Y.key]:void 0,bo=(0,e.useMemo)(()=>ye(yo)?{mode:yo.mode===`exclude`?`exclude`:`include`,values:new Set(yo.values)}:null,[yo]),xo=!(Y?.filterOptions&&Y.filterOptions.length>0),So=(0,e.useCallback)((e,t,n)=>{let r=t.mode===`include`?t.values.size:n-t.values.size;if(r>=n){G(a.clearColumnFilter(e));return}if(r<=0){G(a.setColumnFilter(e,{kind:`set`,mode:`include`,values:[]}));return}let i={kind:`set`,mode:t.mode,values:Array.from(t.values)};G(a.setColumnFilter(e,i))},[G]),Co=(0,e.useCallback)(e=>{if(!J)return;let t=ho.length,n=bo,r;r=Jn(n,e)?n===null?xo?{mode:`exclude`,values:new Set([e])}:{mode:`include`,values:Zr(go,e)}:n.mode===`include`?{mode:`include`,values:Zr(n.values,e)}:{mode:`exclude`,values:Xr(n.values,e)}:n.mode===`include`?{mode:`include`,values:Xr(n.values,e)}:{mode:`exclude`,values:Zr(n.values,e)},So(J.columnKey,r,t)},[J,bo,xo,go,ho,So]),wo=(0,e.useCallback)((e,t)=>{if(!J)return;let n=J.columnKey,r=ho.length;if(e===`all`){t?G(a.clearColumnFilter(n)):So(n,{mode:`include`,values:new Set},r);return}let i=bo,o;if(t){if(i===null){G(a.clearColumnFilter(n));return}o=i.mode===`include`?{mode:`include`,values:Qr(i.values,e)}:{mode:`exclude`,values:$r(i.values,e)}}else o=i===null?xo?{mode:`exclude`,values:new Set(e)}:{mode:`include`,values:$r(go,e)}:i.mode===`include`?{mode:`include`,values:$r(i.values,e)}:{mode:`exclude`,values:Qr(i.values,e)};So(n,o,r)},[J,bo,xo,go,ho,So,G]),To=(0,e.useCallback)(()=>{J&&G(a.clearColumnFilter(J.columnKey))},[G,J]),Eo=(0,e.useCallback)(()=>{if(!J)return;let e=V.find(e=>e.key===J.columnKey)?.filterType??`text`;if(e===`set`){Xn();return}if(e===`number`){let e=Se(J.draftValue);if(!e){G(a.clearColumnFilter(J.columnKey)),Xn();return}G(a.setColumnFilter(J.columnKey,e)),Xn();return}let t=e===`select`?J.draftValue:J.draftValue.trim();if(!t){G(a.clearColumnFilter(J.columnKey)),Xn();return}let n=e===`select`?{kind:`select`,value:t}:e===`date`?{kind:`date`,value:t}:e===`custom`?{kind:`custom`,value:t}:{kind:`text`,value:t};G(a.setColumnFilter(J.columnKey,n)),Xn()},[Xn,G,J,V]),Do=(0,e.useCallback)(()=>{J&&(G(a.clearColumnFilter(J.columnKey)),Xn())},[Xn,G,J]),Oo=(0,e.useCallback)((e,t)=>{if(X(),!R)return;let n=rt(W.sort,e,t,!1);G(n.length===0?a.clearSort():a.setSort(n))},[X,G,R,W.sort]),ko=(0,e.useCallback)((e,t)=>{if(!R)return;let n=it(W.sort,e,t);G(a.setSort(n))},[G,R,W.sort]),Ao=(0,e.useCallback)((e,t)=>{if(!R)return;let n=at(W.sort,e,t);G(a.setSort(n))},[G,R,W.sort]),jo=(0,e.useCallback)((e,t)=>{if(!R)return;let n=ot(W.sort,e,t);G(a.setSort(n))},[G,R,W.sort]),Mo=(0,e.useCallback)(e=>{if(!R)return;let t=st(W.sort,e);G(t.length===0?a.clearSort():a.setSort(t))},[G,R,W.sort]),No=(0,e.useCallback)(()=>{R&&G(a.clearSort())},[G,R]),Po=(0,e.useCallback)((e,t)=>{if(!R)return;let n=ct(W.sort,e,t);G(a.setSort(n))},[G,R,W.sort]),Fo=(0,e.useCallback)((e,t,i,a,o)=>{let s=I(e,i);return i.renderCell?i.renderCell({row:e,rowIndex:t,colIndex:a,value:s,column:i,isActive:o.isActive,isSelected:o.isSelected,isEditing:o.isEditing,readOnly:o.readOnly,setValue:e=>{if(!m)return;let n=Z.getSourceIndex(t);n!==void 0&&m(r.map((t,r)=>r===n?_e(t,i,e):t))}}):(0,n.jsx)(`span`,{children:i.valueFormatter?i.valueFormatter({value:s,row:e,column:i}):String(s??``)})},[Z,m,r]),{slotContext:Io}=Ze({rows:r,viewRowCount:Q,getFilteredRows:yi,columns:p,visibleColumns:V,uiState:W,setGlobalFilterText:(0,e.useCallback)(e=>{G(a.setGlobalFilter(e))},[G]),globalFilterStatus:Nr,globalFilterProgress:Fr}),Lo=(0,e.useMemo)(()=>({width:ie,minWidth:ie}),[ie]),Ro=Q===0,zo=(e,t,n)=>({position:`sticky`,...e===`left`?{left:0}:{right:0},width:t,minWidth:t,flexShrink:0,alignSelf:`stretch`,zIndex:2,...n?e===`left`?{borderRight:`1px solid #cbd5e1`,boxShadow:`6px 0 8px -6px rgba(15, 23, 42, 0.35)`}:{borderLeft:`1px solid #cbd5e1`,boxShadow:`-6px 0 8px -6px rgba(15, 23, 42, 0.35)`}:{}}),Bo=(()=>{if(!Y)return`(なし)`;let e=W.filters.columnFilters[Y.key];if(ye(e))return e.mode===`exclude`?`${e.values.length}件を除外中`:`${e.values.length}件を選択中`;if(xe(e))return e.raw;let t=Ce(e);return t.trim()?t:`(なし)`})(),Vo=Y?(0,n.jsx)(Zn,{isOpen:!!J,title:Y.title||Y.key,filterType:Y.filterType??`text`,isServerSide:U,draftValue:J?.draftValue??``,currentValueText:Bo,layout:Bn,selectOptions:ho,setSelection:bo,optionsStatus:_o,optionsProgress:vo,popoverRef:Vn,textInputRef:Hn,selectRef:Un,onRequestClose:Xn,onDraftChange:$n,onApply:Eo,onClear:Do,onSetValueToggle:Co,onSetSelectAllChange:wo,onSetClear:To}):null,Ho=ar?(0,n.jsx)(Sr,{isOpen:rr,title:ar.title||ar.key,columnKey:ar.key,canFilter:Xt&&!!ar.filterType,onOpenFilter:()=>$a(ar),canSort:Yt,sortDirection:W.sort.find(e=>e.columnKey===ar.key)?.direction??null,onSortChange:e=>Oo(ar.key,e),onOpenSortManager:Qa,pinned:ar.pinned,canChangePinned:!!g,layout:er,popoverRef:nr,onPinnedChange:Ka,onAutosizeColumn:qa,onAutosizeAllColumns:Ja,onOpenColumnChooser:Xa,canResetColumns:!!g,onResetColumns:po,onRequestClose:X}):null,Uo=(0,n.jsx)(Pr,{isOpen:lr,items:Ya,canToggle:!!g,layout:ur,panelRef:fr,onToggleColumnVisibility:eo,onShowAllColumns:to,onResetColumns:fo,onReorderColumns:ro,onRequestClose:mr}),Wo=(0,n.jsx)(Br,{isOpen:hr,entries:W.sort,columns:Za,canSort:Yt,layout:_r,panelRef:vr,onAddLevel:ko,onChangeDirection:Ao,onChangeColumn:jo,onRemoveLevel:Mo,onClearAll:No,onMove:Po,onRequestClose:br}),Go=(0,n.jsx)(Yr,{isOpen:Tr,items:xr?.items??ai,layout:Cr,popoverRef:wr,onRequestClose:Or}),Ko=Wn||rr||lr||hr||Tr,qo=Ge,Jo=Ke&&rn,Yo=Ue?Re($e,Io,qo||Jo?(0,n.jsx)(tr,{context:Io,showSummary:qo,showFilter:Jo,showCounts:Ye,globalFilterPlaceholder:qe,globalFilterIcon:Je}):null):null,Xo=We?Re(et,Io,(0,n.jsx)(Qn,{context:Io,showCounts:Xe})):null,Zo=ae===void 0&&de===void 0?void 0:{...ae===void 0?{}:{height:ae},maxHeight:de??(ae===void 0?void 0:`none`)},$=(0,e.useRef)(null);$.current={dispatch:G,rowModel:Z,viewRowCount:Q,rowMetrics:zi,paneLayout:q,orderedColumns:H,columns:p,onColumnsChange:g,uiState:W,headerHeight:F,verticalScaleFactor:qi,leftPaneTotalWidth:Pn,rightPaneTotalWidth:Fn,centerLeadingWidth:Nn,windowFirstRow:Ui,windowLastRow:Wi,physicalBodyHeight:Gi},(0,e.useImperativeHandle)(wt,()=>{let e=(e,t)=>{let n=B.current,r=$.current;!n||!r||n.scrollTo({top:e===null?n.scrollTop:gt(e,r.verticalScaleFactor),left:t===null?n.scrollLeft:t,behavior:`auto`})},t=(e,t)=>{let n=B.current,r=$.current;if(!n||!r||r.viewRowCount===0)return null;let i=Math.min(Math.max(e,0),r.viewRowCount-1);return Qt({rowTop:r.rowMetrics.rowTop(i),rowHeight:r.rowMetrics.rowsHeight(i,i),headerHeight:r.headerHeight,viewportHeight:n.clientHeight,currentScrollTop:ht(n.scrollTop,r.verticalScaleFactor),align:t})},n=(e,t)=>{let n=B.current,r=$.current;if(!n||!r)return null;let i=C(r.paneLayout,e);return!i||i.pane!==`center`?null:$t({cellLeft:r.leftPaneTotalWidth+r.centerLeadingWidth+i.extent.start,cellWidth:i.extent.width,leftPaneWidth:r.leftPaneTotalWidth,rightPaneWidth:r.rightPaneTotalWidth,viewportWidth:n.clientWidth,currentScrollLeft:n.scrollLeft,align:t})},r=(r,i,a)=>{e(t(r,a),n(i,a))},i=e=>{let t=$.current;if(!t)return null;if(e===`visible`)return{startRow:t.windowFirstRow,endRow:t.windowLastRow>=t.windowFirstRow?t.windowLastRow+1:t.windowFirstRow,columns:t.orderedColumns};if(e===`selection`){let e=t.uiState.selection;if(!e)return null;if(e.type===`cell`){let n=ce(e.range);return{startRow:n.start.row,endRow:n.end.row+1,columns:t.orderedColumns.slice(n.start.col,n.end.col+1)}}if(e.type===`row`){let n=le(e.startRow,e.endRow);return{startRow:n.startRow,endRow:n.endRow+1,columns:t.orderedColumns}}let n=ue(e.startCol,e.endCol);return{startRow:0,endRow:t.viewRowCount,columns:t.orderedColumns.slice(n.startCol,n.endCol+1)}}return{startRow:0,endRow:t.viewRowCount,columns:t.orderedColumns}},o=e=>{let t=$.current;if(!t)return``;let n=i(e?.scope??`all`);return n?zt({getRow:e=>t.rowModel.getRow(e),startRow:n.startRow,endRow:n.endRow,columns:n.columns,delimiter:e?.delimiter,includeHeaders:e?.includeHeaders,bom:e?.bom}):e?.bom?``:``},s=e=>{let t=$.current;if(!t)return{columns:[],rows:[]};let n=i(e?.scope??`all`);return n?Bt({getRow:e=>t.rowModel.getRow(e),startRow:n.startRow,endRow:n.endRow,columns:n.columns}):{columns:[],rows:[]}};return{scrollToRow:(n,r)=>e(t(n,r?.align??`auto`),null),scrollToCell:(e,t,n)=>r(e,t,n?.align??`auto`),scrollToTop:()=>{B.current?.scrollTo({top:0,behavior:`auto`})},scrollToBottom:()=>{let e=B.current,t=$.current;!e||!t||e.scrollTo({top:Math.max(t.headerHeight+t.physicalBodyHeight-e.clientHeight,0),behavior:`auto`})},getVisibleRowRange:()=>{let e=$.current;return!e||e.windowLastRow<e.windowFirstRow?null:{startIndex:e.windowFirstRow,endIndex:e.windowLastRow+1}},getActiveCell:()=>{let e=$.current?.uiState.activeCell;return e?{row:e.row,col:e.col}:null},setActiveCell:(e,t)=>{let n=$.current;n&&(n.dispatch(a.activateCell(e)),e&&t?.scrollIntoView&&r(e.row,e.col,`auto`))},getSelection:()=>$.current?.uiState.selection??null,selectCell:(e,t,n)=>{let i=$.current;if(!i)return;let o={row:e,col:t};i.dispatch(a.startSelection(o)),i.dispatch(a.endSelection()),n?.scrollIntoView&&r(e,t,`auto`)},selectRange:(e,t)=>{let n=$.current;n&&(n.dispatch(a.startSelection(e.start)),n.dispatch(a.updateSelection(e.end)),n.dispatch(a.endSelection()),t?.scrollIntoView&&r(e.end.row,e.end.col,`auto`))},clearSelection:()=>{$.current?.dispatch(a.clearSelection())},getSelectedRows:()=>{let e=$.current;if(!e)return[];let t=e.uiState.selection;if(!t)return[];let n=[],r=t=>{let r=e.rowModel.getRow(t);r&&n.push(r)};if(t.type===`cell`){let e=ce(t.range);for(let t=e.start.row;t<=e.end.row;t+=1)r(t)}else if(t.type===`row`){let e=le(t.startRow,t.endRow);for(let t=e.startRow;t<=e.endRow;t+=1)r(t)}else for(let t=0;t<e.viewRowCount;t+=1)r(t);return n},exportCsv:e=>o(e),downloadCsv:(e,t)=>{if(typeof document>`u`)return;let n=o({...t,bom:t?.bom??!0}),r=new Blob([n],{type:`text/csv;charset=utf-8;`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=e??`export.csv`,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(i)},getExportData:e=>s(e),getState:()=>{let e=$.current;return e?Gt(e.uiState.columnWidths,e.uiState.filters,e.uiState.sort,Wt(e.columns)):Gt({},{globalText:``,columnFilters:{}},[],[])},applyState:e=>{let t=$.current;if(!t)return;let n=Kt(e);t.onColumnsChange&&n.columns&&t.onColumnsChange(qt(t.columns,n.columns,n.columnWidths)),t.dispatch(a.resetColumnWidths(n.columnWidths)),t.dispatch(a.setAllFilters(n.filters)),t.dispatch(a.setSort(n.sort))},getRowSelection:()=>{let e=$.current;return e?te(e.uiState.rowSelection):{type:`include`,rowKeys:[]}},setRowSelection:e=>{pa.current(ne(e))},getSelectedRowKeys:()=>{let e=$.current;if(!e)return[];let t=e.uiState.rowSelection;if(t.mode===`include`)return Array.from(t.keys);let n=[],r=e.rowModel.getRowCount();for(let i=0;i<r;i+=1){if(!e.rowModel.getRow(i))continue;let r=e.rowModel.getRowKey(i)??i;t.keys.has(r)||n.push(r)}return n},getSelectedRowData:()=>{let e=$.current;if(!e)return[];let t=e.uiState.rowSelection,n=[],r=e.rowModel.getRowCount();for(let i=0;i<r;i+=1){let r=e.rowModel.getRow(i);r&&O(t,e.rowModel.getRowKey(i)??i)&&n.push(r)}return n},getSelectedRowCount:()=>{let e=$.current;return e?N(e.uiState.rowSelection,e.rowModel.getRowCount()):0},isRowSelected:e=>{let t=$.current;return t?O(t.uiState.rowSelection,e):!1},selectAllRows:()=>{pa.current(j())},clearRowSelection:()=>{pa.current(M())}}},[]);let Qo=(0,e.useRef)(Tt);Qo.current=Tt;let $o=(0,e.useRef)(null);return(0,e.useEffect)(()=>{if(!Qo.current)return;let e=Gt(W.columnWidths,W.filters,W.sort,Wt(p)),t=Zt($o.current,e,W.dragState!==null);$o.current=t.nextLast,t.emit&&Qo.current(e)},[W.columnWidths,W.filters,W.sort,W.dragState,p]),(0,n.jsxs)(`div`,{className:i(`ssg-root`,nt,z?.root),children:[Yo,(0,n.jsxs)(`div`,{ref:Et,className:`ssg-shell`,style:{cursor:_i?`progress`:void 0},onDragStart:xa,onPointerLeave:()=>Vt(null),onPointerMoveCapture:e=>{Dt.current={x:e.clientX,y:e.clientY},va(e.clientX,e.clientY)},tabIndex:Ko?-1:0,onKeyDown:Ko?void 0:ja,onPaste:Ko?void 0:Oa,onContextMenu:gi,children:[(0,n.jsxs)(`div`,{ref:B,className:`ssg-scroll-container`,style:Zo,children:[(0,n.jsxs)(`div`,{className:`ssg-inner-row`,style:{width:Rn,minWidth:Rn,height:F+Gi},children:[(0,n.jsxs)(`div`,{ref:jt,style:zo(`left`,Pn,kn),children:[kn&&(0,n.jsxs)(`div`,{style:{position:`relative`,overflow:`clip`,width:Pn,minWidth:Pn,height:F+Gi},children:[(0,n.jsx)(dr,{pane:`left`,ownsRowHeader:!0,leadingWidth:Mn,headerHeight:F,rowHeaderCellStyle:Lo,headerRowClassName:z?.headerRow,headerCellClassName:z?.headerCell,rowHeaderCellClassName:z?.rowHeaderCell,isCornerHovered:Ft,isWholeGridSelected:Ea,showSelectAllCheckbox:ia,selectAllState:oa,filteredRowsLength:Q,visibleColumnsLength:V.length,renderEntries:Xi,hoveredColumnIndex:Ht,selectionSnapshot:ln,columnFilterValues:W.filters.columnFilters,sortState:W.sort,iconButtonClassName:z?.iconButton,onCornerPointerDown:Ba,onCornerPointerEnter:Ua,onCornerPointerLeave:Wa,onColumnHeaderPointerDown:wa,onColumnHeaderPointerEnter:Ta,onColumnHeaderPointerLeave:Ha,onColumnResizePointerDown:Ga,enableColumnMenu:Be,enableColumnResize:Fe,openedMenuColumnKey:ir,onColumnMenuButtonPointerDown:or,onColumnHeaderContextMenu:sr,onColumnDragHandlePointerDown:lo}),(0,n.jsxs)(`div`,{style:{position:`absolute`,top:0,left:0,width:Pn,height:F+Gi,transform:Ki},children:[(0,n.jsx)(pe,{rect:za(`left`),headerHeight:F,baseOffset:Ji,leadingWidth:Mn}),(0,n.jsx)(me,{rect:ea(`left`),headerHeight:F,baseOffset:Ji,leadingWidth:Mn}),(0,n.jsx)(he,{rect:ta(`left`),headerHeight:F,baseOffset:Ji,leadingWidth:Mn,initialValue:Nt,onCommit:Na,onCancel:Pa,align:Fa?.align}),(0,n.jsx)(cr,{pane:`left`,ownsRowHeader:!0,leadingWidth:Mn,rowModel:Z,virtualRows:Vi,virtualRowIndexes:Hi,renderEntries:Xi,rowHeight:b,autoHeight:Ai,isServerSide:U,rowHeaderCellStyle:Lo,hoveredRowIndex:Rt,isWholeGridSelected:Ea,enableRowSelection:Te,rowSelectionState:aa,activeCell:W.activeCell,editingCell:W.editingCell,selectionSnapshot:ln,readOnly:L,canEditCell:be,onRowHeaderPointerDown:Sa,onRowHeaderPointerEnter:Ca,onRowHeaderPointerLeave:Va,onCellPointerDown:ya,onCellPointerEnter:ba,onCellDoubleClick:Ia,renderCellContent:Fo,getRowClassName:ft,bodyCellClassName:z?.bodyCell,bodyRowClassName:z?.bodyRow,rowHeaderCellClassName:z?.rowHeaderCell})]})]}),(0,n.jsx)(`div`,{ref:ao,className:`ssg-col-drop-indicator`,style:uo})]}),(0,n.jsx)(`div`,{ref:kt,className:`ssg-center-pane`,style:{width:In,minWidth:In},children:(0,n.jsxs)(`div`,{style:{position:`relative`,overflow:`clip`,width:In,minWidth:In,height:F+Gi},children:[(0,n.jsx)(dr,{pane:`center`,ownsRowHeader:jn,leadingWidth:Nn,headerHeight:F,rowHeaderCellStyle:Lo,headerRowClassName:z?.headerRow,headerCellClassName:z?.headerCell,rowHeaderCellClassName:z?.rowHeaderCell,isCornerHovered:Ft,isWholeGridSelected:Ea,showSelectAllCheckbox:ia,selectAllState:oa,filteredRowsLength:Q,visibleColumnsLength:V.length,renderEntries:Yi,hoveredColumnIndex:Ht,selectionSnapshot:ln,columnFilterValues:W.filters.columnFilters,sortState:W.sort,iconButtonClassName:z?.iconButton,onCornerPointerDown:Ba,onCornerPointerEnter:Ua,onCornerPointerLeave:Wa,onColumnHeaderPointerDown:wa,onColumnHeaderPointerEnter:Ta,onColumnHeaderPointerLeave:Ha,onColumnResizePointerDown:Ga,enableColumnMenu:Be,enableColumnResize:Fe,openedMenuColumnKey:ir,onColumnMenuButtonPointerDown:or,onColumnHeaderContextMenu:sr,onColumnDragHandlePointerDown:lo}),(0,n.jsxs)(`div`,{style:{position:`absolute`,top:0,left:0,width:In,height:F+Gi,transform:Ki},children:[(0,n.jsx)(pe,{rect:za(`center`),headerHeight:F,baseOffset:Ji,leadingWidth:Nn}),(0,n.jsx)(me,{rect:ea(`center`),headerHeight:F,baseOffset:Ji,leadingWidth:Nn}),(0,n.jsx)(he,{rect:ta(`center`),headerHeight:F,baseOffset:Ji,leadingWidth:Nn,initialValue:Nt,onCommit:Na,onCancel:Pa,align:Fa?.align}),(0,n.jsx)(cr,{pane:`center`,ownsRowHeader:jn,leadingWidth:Nn,rowModel:Z,virtualRows:Vi,virtualRowIndexes:Hi,renderEntries:Yi,rowHeight:b,autoHeight:Ai,isServerSide:U,rowHeaderCellStyle:Lo,hoveredRowIndex:Rt,isWholeGridSelected:Ea,enableRowSelection:Te,rowSelectionState:aa,activeCell:W.activeCell,editingCell:W.editingCell,selectionSnapshot:ln,readOnly:L,canEditCell:be,onRowHeaderPointerDown:Sa,onRowHeaderPointerEnter:Ca,onRowHeaderPointerLeave:Va,onCellPointerDown:ya,onCellPointerEnter:ba,onCellDoubleClick:Ia,renderCellContent:Fo,getRowClassName:ft,bodyCellClassName:z?.bodyCell,bodyRowClassName:z?.bodyRow,rowHeaderCellClassName:z?.rowHeaderCell})]}),(0,n.jsx)(`div`,{ref:oo,className:`ssg-col-drop-indicator`,style:uo})]})}),(0,n.jsxs)(`div`,{ref:Mt,style:zo(`right`,Fn,An),children:[An&&(0,n.jsxs)(`div`,{style:{position:`relative`,overflow:`clip`,width:Fn,minWidth:Fn,height:F+Gi},children:[(0,n.jsx)(dr,{pane:`right`,ownsRowHeader:!1,leadingWidth:0,headerHeight:F,rowHeaderCellStyle:Lo,headerRowClassName:z?.headerRow,headerCellClassName:z?.headerCell,rowHeaderCellClassName:z?.rowHeaderCell,isCornerHovered:Ft,isWholeGridSelected:Ea,showSelectAllCheckbox:ia,selectAllState:oa,filteredRowsLength:Q,visibleColumnsLength:V.length,renderEntries:Zi,hoveredColumnIndex:Ht,selectionSnapshot:ln,columnFilterValues:W.filters.columnFilters,sortState:W.sort,iconButtonClassName:z?.iconButton,onCornerPointerDown:Ba,onCornerPointerEnter:Ua,onCornerPointerLeave:Wa,onColumnHeaderPointerDown:wa,onColumnHeaderPointerEnter:Ta,onColumnHeaderPointerLeave:Ha,onColumnResizePointerDown:Ga,enableColumnMenu:Be,enableColumnResize:Fe,openedMenuColumnKey:ir,onColumnMenuButtonPointerDown:or,onColumnHeaderContextMenu:sr,onColumnDragHandlePointerDown:lo}),(0,n.jsxs)(`div`,{style:{position:`absolute`,top:0,left:0,width:Fn,height:F+Gi,transform:Ki},children:[(0,n.jsx)(pe,{rect:za(`right`),headerHeight:F,baseOffset:Ji,leadingWidth:0}),(0,n.jsx)(me,{rect:ea(`right`),headerHeight:F,baseOffset:Ji,leadingWidth:0}),(0,n.jsx)(he,{rect:ta(`right`),headerHeight:F,baseOffset:Ji,leadingWidth:0,initialValue:Nt,onCommit:Na,onCancel:Pa,align:Fa?.align}),(0,n.jsx)(cr,{pane:`right`,ownsRowHeader:!1,leadingWidth:0,rowModel:Z,virtualRows:Vi,virtualRowIndexes:Hi,renderEntries:Zi,rowHeight:b,autoHeight:Ai,isServerSide:U,rowHeaderCellStyle:Lo,hoveredRowIndex:Rt,isWholeGridSelected:Ea,enableRowSelection:Te,rowSelectionState:aa,activeCell:W.activeCell,editingCell:W.editingCell,selectionSnapshot:ln,readOnly:L,canEditCell:be,onRowHeaderPointerDown:Sa,onRowHeaderPointerEnter:Ca,onRowHeaderPointerLeave:Va,onCellPointerDown:ya,onCellPointerEnter:ba,onCellDoubleClick:Ia,renderCellContent:Fo,getRowClassName:ft,bodyCellClassName:z?.bodyCell,bodyRowClassName:z?.bodyRow,rowHeaderCellClassName:z?.rowHeaderCell})]})]}),(0,n.jsx)(`div`,{ref:so,className:`ssg-col-drop-indicator`,style:uo})]})]}),Ro&&(0,n.jsx)(`div`,{className:`ssg-empty-state`,children:r.length===0?He:Ve})]}),_i&&(0,n.jsx)(`div`,{className:`ssg-autosize-overlay`,children:(0,n.jsx)(`span`,{className:`ssg-autosize-pill`,children:`列幅を計算中…`})}),Nr===`filtering`&&(0,n.jsx)(`div`,{className:`ssg-filter-overlay`,children:(0,n.jsxs)(`span`,{className:`ssg-filter-overlay-chip`,role:`status`,"aria-live":`polite`,children:[(0,n.jsx)(`span`,{className:`ssg-filter-spinner`,"aria-hidden":`true`}),(0,n.jsxs)(`span`,{className:`ssg-filter-overlay-text`,children:[`適用中 `,Math.round(Fr*100),`%`]})]})})]}),Xo,Vo,Ho,Uo,Wo,Go]})}function ui(e={}){let{locale:t,useGrouping:n=!0,minimumFractionDigits:r,maximumFractionDigits:i,emptyText:a=``}=e;return({value:e})=>{if(e==null||e===``)return a;let o=typeof e==`number`?e:Number(e);if(!Number.isFinite(o))return String(e);let s=Math.abs(o).toString(),c=s.indexOf(`.`),l=c===-1?0:s.length-c-1,u=r??0,d=Math.max(u,i??Math.min(l,20));return new Intl.NumberFormat(t,{useGrouping:n,minimumFractionDigits:u,maximumFractionDigits:d}).format(o)}}exports.SpreadsheetGrid=li,exports.numberFormatter=ui;
|
|
10
|
+
`);return o?`\uFEFF${c}`:c},Bt=({getRow:e,startRow:t,endRow:n,columns:r})=>{let i=r.map(e=>({key:e.key,title:e.title??e.key})),a=[];for(let i=t;i<n;i+=1){let t=e(i);t&&a.push(r.map(e=>{let n=I(t,e);return{value:n,text:e.formatClipboardValue?e.formatClipboardValue(n,t):String(n??``)}}))}return{columns:i,rows:a}},Vt=e=>e===`all`?`view`:e===`visible`?`rendered`:e,Ht=e=>{switch(e.kind){case`set`:return{...e,values:[...e.values]};case`number`:return{...e,parsed:e.parsed?{...e.parsed}:null};case`text`:case`date`:case`select`:return{...e};case`custom`:return{...e}}},Ut=e=>{let t={};for(let n of Object.keys(e))t[n]=Ht(e[n]);return t},Wt=e=>{let t={key:e.key};return e.visible!==void 0&&(t.visible=e.visible),e.pinned!==void 0&&(t.pinned=e.pinned),t},Gt=e=>e.map(e=>{let t={key:e.key};return e.visible!==void 0&&(t.visible=e.visible),e.pinned!==void 0&&(t.pinned=e.pinned),t}),Kt=(e,t,n,r=[],i=2)=>({version:i,columnWidths:{...e},filters:{globalText:t.globalText,columnFilters:Ut(t.columnFilters)},sort:n.map(e=>({...e})),columns:r.map(Wt)}),qt=e=>{let t=e&&typeof e==`object`?e:{},n={},r=t.columnWidths;if(r&&typeof r==`object`){let e=r;for(let t of Object.keys(e)){let r=e[t];typeof r==`number`&&Number.isFinite(r)&&(n[t]=r)}}let i=t.filters&&typeof t.filters==`object`?t.filters:{},a=typeof i.globalText==`string`?i.globalText:``,o={},s=i.columnFilters;if(s&&typeof s==`object`){let e=s;for(let t of Object.keys(e)){let n=e[t];n&&typeof n==`object`&&`kind`in n&&(o[t]=Ht(n))}}let c=[],l=t.sort;if(Array.isArray(l)){for(let e of l)if(e&&typeof e==`object`){let t=e;typeof t.columnKey==`string`&&(t.direction===`asc`||t.direction===`desc`)&&c.push({columnKey:t.columnKey,direction:t.direction})}}let u,d=t.columns;if(Array.isArray(d)){let e=[];for(let t of d){if(!t||typeof t!=`object`)continue;let n=t;if(typeof n.key!=`string`)continue;let r={key:n.key};typeof n.visible==`boolean`&&(r.visible=n.visible),(n.pinned===`left`||n.pinned===`right`)&&(r.pinned=n.pinned),e.push(r)}u=e}return{version:2,columnWidths:n,filters:{globalText:a,columnFilters:o},sort:c,columns:u}},Jt=(e,t,n)=>{let r=new Map(e.map(e=>[e.key,e])),i=new Set,a=(e,t)=>{let r=n[e.key],i=typeof r==`number`;if(!t&&!i)return e;let a={...e};return t&&(a.visible=t.visible,a.pinned=t.pinned),i&&(a.width=r),a},o=[];for(let e of t){let t=r.get(e.key);t&&(i.add(e.key),o.push(a(t,e)))}for(let t of e)i.has(t.key)||o.push(a(t,void 0));return l(o)},V=(e,t)=>e===null||t===null?e===t:e.mode===`comparison`&&t.mode===`comparison`?e.operator===t.operator&&e.value===t.value:e.mode===`range`&&t.mode===`range`?e.min===t.min&&e.max===t.max:!1,H=(e,t)=>{switch(e.kind){case`set`:return t.kind===`set`&&(e.mode??`include`)===(t.mode??`include`)&&e.values.length===t.values.length&&e.values.every((e,n)=>e===t.values[n]);case`number`:return t.kind===`number`&&e.raw===t.raw&&V(e.parsed,t.parsed);case`text`:return t.kind===`text`&&e.value===t.value;case`date`:return t.kind===`date`&&e.value===t.value;case`select`:return t.kind===`select`&&e.value===t.value;case`custom`:return t.kind===`custom`&&Object.is(e.value,t.value)}},Yt=(e,t)=>{let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!(r in t)||e[r]!==t[r])return!1;return!0},U=(e,t)=>{let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!(r in t)||!H(e[r],t[r]))return!1;return!0},Xt=(e,t)=>{if(e===void 0||t===void 0)return e===t;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n].key!==t[n].key||e[n].visible!==t[n].visible||e[n].pinned!==t[n].pinned)return!1;return!0},Zt=(e,t)=>{if(e.version!==t.version||!Yt(e.columnWidths,t.columnWidths)||e.filters.globalText!==t.filters.globalText||!U(e.filters.columnFilters,t.filters.columnFilters)||e.sort.length!==t.sort.length)return!1;for(let n=0;n<e.sort.length;n+=1)if(e.sort[n].columnKey!==t.sort[n].columnKey||e.sort[n].direction!==t.sort[n].direction)return!1;return!!Xt(e.columns,t.columns)},Qt=(e,t,n)=>n?{emit:!1,nextLast:e}:e===null||Zt(e,t)?{emit:!1,nextLast:t}:{emit:!0,nextLast:t},$t=({rowTop:e,rowHeight:t,headerHeight:n,viewportHeight:r,currentScrollTop:i,align:a,maxScrollTop:o})=>{let s=n+e,c=s+t,l;if(a===`start`)l=s-n;else if(a===`end`)l=c-r;else if(a===`center`)l=(s+c)/2-(n+r)/2;else{let e=i+n,t=i+r;l=s>=e&&c<=t?i:s<e?s-n:c-r}return Math.min(Math.max(l,0),Math.max(o??1/0,0))},en=({cellLeft:e,cellWidth:t,leftPaneWidth:n,rightPaneWidth:r,viewportWidth:i,currentScrollLeft:a,align:o,maxScrollLeft:s})=>{let c=e+t,l=i-n-r,u;if(o===`start`)u=e-n;else if(o===`end`)u=c-i+r;else if(o===`center`)u=(e+c)/2-n-l/2;else{let t=a+n,o=a+i-r;u=e>=t&&c<=o?a:e<t?e-n:c-i+r}return Math.min(Math.max(u,0),Math.max(s??1/0,0))},tn=(e,t)=>{let{heights:n,prefix:r,rowCount:i}=e,a=Math.max(t,0);for(let e=a;e<i;e+=1)r[e+1]=r[e]+n[e]},nn=(e,t,n,r)=>{let i=r??new Map,a=Math.max(e,0),o=new Float64Array(a);for(let e=0;e<a;e+=1){let r=i.get(n(e));o[e]=r===void 0?t:r}let s={rowCount:a,estimate:t,heights:o,prefix:new Float64Array(a+1),measured:i};return tn(s,0),s},rn=(e,t,n,r)=>t<0||t>=e.rowCount||(e.measured.set(n,r),e.heights[t]===r)?!1:(e.heights[t]=r,!0),an=(e,t,n)=>{if(t<=0||n<=0)return 0;if(n>=e[t])return t-1;let r=0,i=t;for(;r<i;){let t=r+i+1>>1;e[t]<=n?r=t:i=t-1}return Math.min(Math.max(r,0),t-1)},on=e=>{let{prefix:t,rowCount:n}=e;return{rowCount:n,rowTop:e=>t[Math.min(Math.max(e,0),n)],rowsHeight:(e,r)=>t[Math.min(Math.max(r+1,0),n)]-t[Math.min(Math.max(e,0),n)],totalBodyHeight:t[n],rowAtContentY:e=>an(t,n,e)}},W=21,G=4,sn=41,cn=13,ln=600,un=60,K=16,dn=null,fn=()=>dn||(typeof document>`u`?null:(dn=document.createElement(`canvas`).getContext(`2d`),dn)),pn=`system-ui, sans-serif`,mn=e=>{let t=pn,n=13,r=`400`;if(e&&typeof window<`u`){let i=window.getComputedStyle(e);i.fontFamily&&(t=i.fontFamily);let a=Number.parseFloat(i.fontSize);Number.isFinite(a)&&a>0&&(n=a),i.fontWeight&&(r=i.fontWeight)}return{cellFont:`${r} ${n}px ${t}`,headerFont:`${ln} ${cn}px ${t}`}},hn=(e,t,n)=>Math.min(Math.max(e,t),n),gn=e=>e>=4352&&e<=4447||e>=11904&&e<=12350||e>=12353&&e<=13311||e>=13312&&e<=19903||e>=19968&&e<=40959||e>=40960&&e<=42191||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65072&&e<=65103||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=127744&&e<=129791||e>=131072&&e<=262141,_n=e=>{let t=0;for(let n of e){let e=n.codePointAt(0)??0;t+=gn(e)?2:1}return t},vn=(e,t)=>{let n=I(e,t);return t.valueFormatter?t.valueFormatter({value:n,row:e,column:t}):String(n??``)},yn=e=>{if(!e||typeof document>`u`)return null;let t=document.createElement(`div`);return t.setAttribute(`aria-hidden`,`true`),t.style.cssText=`position:absolute;top:-99999px;left:-99999px;visibility:hidden;pointer-events:none;width:auto;height:auto;contain:layout style;`,e.appendChild(t),t},bn=e=>{let t=document.createElement(`div`);return t.className=`ssg-body-cell`,t.style.cssText=`display:inline-block;position:static;top:auto;left:auto;width:auto;height:auto;white-space:nowrap;overflow:visible;`,t.textContent=e,t},xn=e=>e.suppressAutoSize===!0||e.autoHeight===!0;function Sn(e){let t=e.map(()=>[]),n=e.map(()=>[]),r=e.map(()=>1/0),i=e.map(()=>0);return{collect:a=>{for(let o=0;o<e.length;o+=1){if(xn(e[o]))continue;let s=e[o].estimateCellWidth;if(s){let t=s(a,e[o]);t>i[o]&&(i[o]=t);continue}let c=String(I(a,e[o])??``);if(c===``)continue;let l=t[o],u=n[o];if(l.length===K&&2*c.length<=r[o])continue;let d=_n(c);if(l.length<K){if(l.push(a),u.push(d),l.length===K){let e=u[0];for(let t=1;t<K;t+=1)u[t]<e&&(e=u[t]);r[o]=e}continue}if(d<=r[o])continue;let f=0;for(let e=1;e<K;e+=1)u[e]<u[f]&&(f=e);l[f]=a,u[f]=d;let p=u[0];for(let e=1;e<K;e+=1)u[e]<p&&(p=u[e]);r[o]=p}},finalize:({gridRoot:n,currentWidths:r})=>{let a=fn();if(!a||e.length===0)return{};let{cellFont:o,headerFont:s}=mn(n),c={},l=yn(n);try{let n=null;if(l){let r=[];for(let n=0;n<e.length;n+=1){if(xn(e[n])){r.push([]);continue}if(e[n].estimateCellWidth){r.push([]);continue}let i=t[n],a=[];for(let t=0;t<i.length;t+=1){let r=vn(i[t],e[n]);if(r===``)continue;let o=bn(r);l.appendChild(o),a.push(o)}r.push(a)}n=r.map(e=>{let t=0;for(let n=0;n<e.length;n+=1){let r=e[n].offsetWidth;r>t&&(t=r)}return t})}for(let l=0;l<e.length;l+=1){let u=e[l];if(xn(u))continue;a.font=s;let d=u.title||u.key,f=a.measureText(d).width+G+sn,p;if(u.estimateCellWidth)p=i[l]>0?i[l]+W:0;else if(n)p=n[l];else{a.font=o;let e=0,n=t[l];for(let t=0;t<n.length;t+=1){let r=vn(n[t],u);if(r===``)continue;let i=a.measureText(r).width;i>e&&(e=i)}p=e>0?e+G+W:0}let m=Math.ceil(hn(Math.max(f,p),u.minWidth??un,u.maxWidth??1/0));r[u.key]!==m&&(c[u.key]=m)}}finally{l&&l.parentNode&&l.parentNode.removeChild(l)}return c}}}function Cn(){return fn()!==null}var wn=()=>new Promise(e=>{if(typeof MessageChannel>`u`){setTimeout(e,0);return}let t=new MessageChannel;t.port1.onmessage=()=>{t.port1.close(),e()},t.port2.postMessage(null)}),Tn=10,En=180,Dn=()=>typeof performance<`u`?performance.now():Date.now(),On=({rowModelRef:t,gridRootRef:n,columnWidthsRef:r,dispatch:i})=>{let[o,s]=(0,e.useState)(!1),c=(0,e.useRef)(0),l=(0,e.useRef)(null),u=()=>{l.current!==null&&(clearTimeout(l.current),l.current=null)};return(0,e.useEffect)(()=>()=>{c.current+=1,u()},[]),{isAutosizing:o,runAutosize:(0,e.useCallback)(async e=>{if(e.length===0||!Cn())return;let o=c.current+=1;u();let d=t.current,f=d.getRowCount(),p=n.current,m=r.current,h=Sn(e);l.current=setTimeout(()=>{c.current===o&&s(!0)},En);try{let e=0;for(;e<f;){let n=Dn();for(;e<f&&Dn()-n<Tn;){let t=d.getRow(e);t&&h.collect(t),e+=1}if(e<f&&(await wn(),c.current!==o||t.current!==d))return}let n=h.finalize({gridRoot:p,currentWidths:m});Object.keys(n).length>0&&i(a.syncColumnWidths(n))}finally{c.current===o&&(u(),s(!1))}},[r,i,n,t])}},kn=()=>{let e=new Set,t=[];return{collect(n){let r=String(n??``);e.has(r)||(e.add(r),t.push({value:r,label:r||`(空白)`}))},finalize(){return t.sort((e,t)=>nt.compare(e.label,t.label))}}},q=(e,t)=>{let n=kn();for(let r=0;r<e;r+=1)n.collect(t(r));return n.finalize()},An=10,jn=()=>typeof performance<`u`?performance.now():Date.now(),Mn=[],Nn=new Set,Pn={status:`idle`,options:Mn,allValues:Nn,progress:0},Fn={status:`collecting`,options:Mn,allValues:Nn,progress:0},In=e=>new Set(e.map(e=>e.value)),Ln={source:null,rowCount:0,result:Pn},Rn=({column:t,rowCount:n,getRawValueAt:r})=>{let i=t?.filterType??null,a=i===`select`||i===`set`,o=t?.filterOptions&&t.filterOptions.length>0?t.filterOptions:null,s=a&&o===null&&n>5e4,c=(0,e.useMemo)(()=>{if(!t||!a)return Pn;if(o){let e=o;return{status:`ready`,options:e,allValues:In(e),progress:1}}if(!s){let e=q(n,r);return{status:`ready`,options:e,allValues:In(e),progress:1}}return null},[t,a,o,s,n,r]),[l,u]=(0,e.useState)(Ln);(0,e.useEffect)(()=>{if(c!==null)return;let e=r,t=n,i=kn(),a=!1;return(async()=>{let n=0;for(;n<t;){let r=jn();for(;n<t&&jn()-r<An;)i.collect(e(n)),n+=1;if(n<t){if(await wn(),a)return;u({source:e,rowCount:t,result:{status:`collecting`,options:Mn,allValues:Nn,progress:n/t}})}}if(a)return;let r=i.finalize();u({source:e,rowCount:t,result:{status:`ready`,options:r,allValues:In(r),progress:1}})})(),()=>{a=!0}},[c,n,r]);let d=l.source===r&&l.rowCount===n?l.result:Fn;return c??d},zn=10,J=()=>typeof performance<`u`?performance.now():Date.now(),Bn=({rows:t,baseOrder:n,columns:r,globalText:i,enabled:a})=>{let o=(0,e.useDeferredValue)(i),s=o.trim().toLowerCase(),c=a&&s.length>0,l=c&&t.length>5e4,u=(0,e.useMemo)(()=>c?l?null:{order:Ee(t,n,r,o),status:`ready`,progress:1}:{order:n,status:`idle`,progress:1},[c,l,t,n,r,o]),[d,f]=(0,e.useState)(null),[p,m]=(0,e.useState)(null);(0,e.useEffect)(()=>{if(!l)return;let e=t,i=n,a=r,o=s,c=i.length,u=new Int32Array(c),d=!1;return(async()=>{let t=0,n=0;for(;n<c;){let r=J();for(;n<c&&J()-r<zn;){let r=i[n];Te(e[r],a,o)&&(u[t]=r,t+=1),n+=1}if(n<c){if(await wn(),d)return;m({rows:e,baseOrder:i,columns:a,needle:o,progress:n/c})}}d||f({rows:e,baseOrder:i,columns:a,needle:o,order:t===c?i:u.slice(0,t),rowsLength:e.length})})(),()=>{d=!0}},[l,t,n,r,s]);let h;return h=u||(d!==null&&d.rows===t&&d.baseOrder===n&&d.columns===r&&d.needle===s?{order:d.order,status:`ready`,progress:1}:{order:d!==null&&d.rowsLength===t.length?d.order:n,status:`filtering`,progress:p!==null&&p.rows===t&&p.baseOrder===n&&p.columns===r&&p.needle===s?p.progress:0}),h};function Vn(e){let t=e.blockSize,n=e.maxBlocks,r=new Map,i=e=>{let t=r.get(e);t!==void 0&&(r.delete(e),r.set(e,t))},a=()=>{for(;r.size>n;){let e=r.keys().next().value;if(e===void 0)break;r.delete(e)}};return{getRow:e=>{if(t<=0||e<0)return;let n=Math.floor(e/t),i=r.get(n);if(i!==void 0)return i[e-n*t]},hasBlock:e=>r.has(e),setBlock:(e,t)=>{r.has(e)&&r.delete(e),r.set(e,t),a()},touchBlocks:e=>{for(let t of e)i(t)},clear:()=>{r.clear()},loadedBlockIndexes:()=>Array.from(r.keys())}}function Hn(e,t){return Math.floor(e/t)}function Un(e,t,n,r){if(n<=0||r<=0)return[];let i=Math.max(0,Math.floor(e)),a=Math.min(r,Math.floor(t));if(a<=i)return[];let o=Hn(i,n),s=Hn(a-1,n),c=[];for(let e=o;e<=s;e+=1)c.push(e);return c}var Wn=100,Gn=64,Y=120;function Kn(t){let{dataSource:n,rowKeyGetter:r,query:i,queryKey:a,refreshToken:o}=t,s=n?.blockSize??Wn,c=n?.maxCachedBlocks??Gn,l=t.debounceMs??Y,[u]=(0,e.useState)(()=>Vn({blockSize:s,maxBlocks:c})),[d,f]=(0,e.useState)(n?.initialRowCount??0),[p,m]=(0,e.useState)(0),h=(0,e.useRef)(d),g=(0,e.useRef)(!1),_=(0,e.useRef)(new Map),v=(0,e.useRef)(null),y=(0,e.useRef)({start:0,end:0}),b=(0,e.useCallback)(e=>{if(n==null||u.hasBlock(e)||_.current.has(e))return;let t=new AbortController;_.current.set(e,t);let r=e*s,a=r+s;n.getRows({startIndex:r,endIndex:a,query:i,signal:t.signal}).then(n=>{t.signal.aborted||_.current.get(e)===t&&(_.current.delete(e),u.setBlock(e,n.rows),n.totalRowCount!==h.current&&(h.current=n.totalRowCount,f(n.totalRowCount)),m(e=>e+1))}).catch(()=>{_.current.get(e)===t&&_.current.delete(e)})},[u,s,n,i]),x=(0,e.useCallback)(()=>{let{start:e,end:t}=y.current,n=Un(e,t,s,h.current),r=new Set(n);for(let[e,t]of _.current)r.has(e)||(t.abort(),_.current.delete(e));for(let e of n)b(e)},[s,b]),S=(0,e.useCallback)(()=>{v.current!==null&&clearTimeout(v.current),v.current=setTimeout(()=>{v.current=null,x()},l)},[l,x]),C=(0,e.useCallback)((e,t)=>{n!=null&&(y.current={start:e,end:t},u.touchBlocks(Un(e,t,s,h.current)),S())},[u,s,n,S]);(0,e.useEffect)(()=>{if(n==null)return;for(let[,e]of _.current)e.abort();_.current.clear(),v.current!==null&&(clearTimeout(v.current),v.current=null),u.clear();let e=!g.current;g.current=!0,m(e=>e+1),e?(n.initialRowCount??0)<=0&&b(0):b(0)},[a]);let w=(0,e.useRef)(o);(0,e.useEffect)(()=>{if(n==null||o===void 0){w.current=o;return}if(w.current===void 0){w.current=o;return}if(w.current!==o){w.current=o;for(let[,e]of _.current)e.abort();_.current.clear(),v.current!==null&&(clearTimeout(v.current),v.current=null),u.clear(),m(e=>e+1),x()}},[o]),(0,e.useEffect)(()=>{let e=_.current,t=v;return()=>{for(let[,t]of e)t.abort();e.clear(),t.current!==null&&(clearTimeout(t.current),t.current=null)}},[]);let T=(0,e.useCallback)(e=>u.getRow(e)!==void 0,[u]);return{rowModel:(0,e.useMemo)(()=>({getRowCount:()=>h.current,getRow:e=>u.getRow(e),getSourceIndex:e=>e,getRowKey:e=>{let t=u.getRow(e);return t===void 0?e:r(t,e)}}),[u,r,p]),rowCount:d,isRowLoaded:T,requestRange:C}}var qn=e=>{let t={},n=e.globalText.trim();n.length>0&&(t.globalText=n);let r={},i=!1;for(let t of Object.keys(e.columnFilters)){let n=e.columnFilters[t];L(n)&&(r[t]=n,i=!0)}return i&&(t.columnFilters=r),e.sort.length>0&&(t.sort=e.sort),t},Jn=e=>{let t=e.columnFilters??{},n=Object.keys(t).sort().map(e=>[e,t[e]]),r=e.sort??[];return JSON.stringify({g:e.globalText??``,s:r.map(e=>[e.columnKey,e.direction]),c:n})},Yn=(e,t)=>e===null?!0:e.mode===`include`?e.values.has(t):!e.values.has(t),Xn=28;function Zn({options:r,setSelection:i,searchInputRef:a,onValueToggle:o,onSelectAllChange:s,onRequestClose:c,isServerSide:l}){let[u,d]=(0,e.useState)(``),f=(0,e.useDeferredValue)(u),p=(0,e.useMemo)(()=>{let e=f.trim().toLowerCase();return e?r.filter(t=>t.label.toLowerCase().includes(e)):r},[r,f]),m=f.trim().length>0,h=(0,e.useRef)(null),g=(0,t.useVirtualizer)({count:p.length,getScrollElement:()=>h.current,estimateSize:()=>Xn,overscan:10}),_=(0,e.useMemo)(()=>{if(i===null)return p.length;let e=0;for(let t of p)Yn(i,t.value)&&(e+=1);return e},[i,p]),v=p.length>0&&_===p.length,y=_>0&&!v,b=i===null?r.length:i.mode===`include`?i.values.size:r.length-i.values.size;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`input`,{ref:a,type:`text`,value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.stopPropagation(),e.key===`Escape`&&(e.preventDefault(),c())},placeholder:`検索...`,className:`ssg-filter-input`}),(0,n.jsxs)(`label`,{className:`ssg-filter-selectall`,children:[(0,n.jsx)(`input`,{type:`checkbox`,checked:v,ref:e=>{e&&(e.indeterminate=y)},onChange:()=>{s(m?p.map(e=>e.value):`all`,!v)}}),(0,n.jsx)(`span`,{className:`ssg-filter-selectall-label`,children:m?`(検索結果をすべて選択)`:`(すべて選択)`})]}),(0,n.jsx)(`div`,{ref:h,className:`ssg-filter-list`,children:p.length===0?(0,n.jsx)(`div`,{className:`ssg-filter-empty`,children:r.length===0?l?`候補が未指定です(serverSide では列に filterOptions などの候補供給が必要)`:`候補がありません`:`一致する候補がありません`}):(0,n.jsx)(`div`,{className:`ssg-filter-virt`,style:{height:g.getTotalSize()},children:g.getVirtualItems().map(e=>{let t=p[e.index];if(!t)return null;let r=Yn(i,t.value);return(0,n.jsxs)(`label`,{className:`ssg-filter-option`,style:{transform:`translateY(${e.start}px)`,height:e.size},children:[(0,n.jsx)(`input`,{type:`checkbox`,checked:r,onChange:()=>o(t.value)}),(0,n.jsx)(`span`,{className:`ssg-filter-option-label`,children:t.label})]},t.value)})})}),(0,n.jsxs)(`div`,{className:`ssg-filter-meta`,children:[`選択中: `,b,` / `,r.length,` 件`,m?`(表示中 ${p.length} 件)`:``]})]})}function Qn({isOpen:e,title:t,filterType:i,draftValue:a,currentValueText:o,layout:s,selectOptions:c,optionsStatus:l,optionsProgress:u,setSelection:d,popoverRef:f,textInputRef:p,selectRef:m,onRequestClose:h,onDraftChange:g,onApply:_,onClear:v,onSetValueToggle:y,onSetSelectAllChange:b,onSetClear:x,isServerSide:S=!1}){if(typeof document>`u`||!e||!s)return null;let C={top:s.top,left:s.left,width:s.width},w=e=>{e.stopPropagation()},T=e=>{e.stopPropagation()},E=i===`set`;return(0,r.createPortal)((0,n.jsxs)(`div`,{ref:f,onPointerDown:T,onKeyDownCapture:w,onPasteCapture:e=>{e.stopPropagation()},className:`ssg-filter-popover`,style:C,children:[(0,n.jsxs)(`div`,{className:`ssg-filter-title`,children:[`列フィルター: `,t]}),(E||i===`select`)&&l===`collecting`?(0,n.jsxs)(`div`,{className:`ssg-filter-collecting`,children:[`候補を収集中… `,Math.round(u*100),`%`]}):E?(0,n.jsx)(Zn,{options:c,setSelection:d,searchInputRef:p,onValueToggle:y,onSelectAllChange:b,onRequestClose:h,isServerSide:S}):i===`select`?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`div`,{className:`ssg-filter-hint`,children:`フィルター種別: select`}),(0,n.jsxs)(`select`,{ref:m,value:a,onChange:e=>g(e.target.value),onKeyDown:e=>{if(e.stopPropagation(),e.key===`Enter`){e.preventDefault(),_();return}e.key===`Escape`&&(e.preventDefault(),h())},className:`ssg-filter-select`,children:[(0,n.jsx)(`option`,{value:``,children:`(すべて)`}),c.map(e=>(0,n.jsx)(`option`,{value:e.value,children:e.label},`${t}-${e.value}`))]}),(0,n.jsxs)(`div`,{className:`ssg-filter-meta`,children:[`候補数: `,c.length]})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`div`,{className:`ssg-filter-hint`,children:[`フィルター種別: `,i===`number`?`number`:`text`]}),(0,n.jsx)(`input`,{ref:p,type:`text`,value:a,onChange:e=>g(e.target.value),onKeyDown:e=>{if(e.stopPropagation(),e.key===`Enter`){e.preventDefault(),_();return}e.key===`Escape`&&(e.preventDefault(),h())},placeholder:i===`number`?`例: >=10 / <20 / 10..20 / =5`:`部分一致で絞り込み`,className:`ssg-filter-input`}),(0,n.jsx)(`div`,{className:`ssg-filter-meta ssg-filter-meta--ellipsis`,children:i===`number`?`数量系は =, >, >=, <, <=, .. が使えます`:`text は部分一致検索です`})]}),!E&&(0,n.jsxs)(`div`,{className:`ssg-filter-meta ssg-filter-meta--ellipsis`,children:[`現在値: `,o]}),(0,n.jsx)(`div`,{className:`ssg-filter-footer`,children:E?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`button`,{type:`button`,onPointerDown:e=>{e.preventDefault(),e.stopPropagation(),x()},onKeyDown:e=>{e.stopPropagation()},className:`ssg-filter-btn-secondary`,children:`クリア`}),(0,n.jsx)(`button`,{type:`button`,onPointerDown:e=>{e.preventDefault(),e.stopPropagation(),h()},onKeyDown:e=>{e.stopPropagation()},className:`ssg-filter-btn-primary`,children:`閉じる`})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`button`,{type:`button`,onPointerDown:e=>{e.preventDefault(),e.stopPropagation(),v()},onKeyDown:e=>{e.stopPropagation()},className:`ssg-filter-btn-secondary`,children:`クリア`}),(0,n.jsx)(`button`,{type:`button`,onPointerDown:e=>{e.preventDefault(),e.stopPropagation(),_()},onKeyDown:e=>{e.stopPropagation()},className:`ssg-filter-btn-primary`,children:`適用`})]})})]}),document.body)}function $n({context:e,showCounts:t=!0}){let{derivedSummary:r}=e;return(0,n.jsx)(`div`,{className:`ssg-bar--bottom`,children:(0,n.jsxs)(`div`,{className:`ssg-bar-container`,children:[t?(0,n.jsxs)(`div`,{className:`ssg-bar-group`,children:[(0,n.jsx)(`span`,{className:`ssg-bar-chip`,children:r.rowSummaryText}),(0,n.jsx)(`span`,{className:`ssg-bar-chip`,children:r.columnSummaryText})]}):null,(0,n.jsxs)(`div`,{className:`ssg-bar-group`,children:[(0,n.jsxs)(`span`,{className:`ssg-bar-chip`,children:[`Active: `,r.activeCellLabel]}),(0,n.jsxs)(`span`,{className:`ssg-bar-chip`,children:[`Selection: `,r.selectionLabel]}),(0,n.jsx)(`span`,{className:`ssg-bar-chip`,children:r.selectionStatsText}),(0,n.jsxs)(`span`,{className:`ssg-bar-chip`,children:[`Cols: `,r.selectionStats.selectedColumnCount]})]})]})})}var er=(0,n.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:[(0,n.jsx)(`circle`,{cx:`7`,cy:`7`,r:`4.5`}),(0,n.jsx)(`line`,{x1:`10.6`,y1:`10.6`,x2:`14.5`,y2:`14.5`})]}),tr=(0,n.jsxs)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,"aria-hidden":`true`,children:[(0,n.jsx)(`line`,{x1:`4`,y1:`4`,x2:`12`,y2:`12`}),(0,n.jsx)(`line`,{x1:`12`,y1:`4`,x2:`4`,y2:`12`})]});function nr({context:e,showSummary:t=!0,showFilter:r=!0,showCounts:i=!0,globalFilterPlaceholder:a=`グローバルフィルター`,globalFilterIcon:o}){let{derivedSummary:s}=e,c=o===void 0?er:o,l=e.globalFilterText.trim().length>0;return(0,n.jsx)(`div`,{className:`ssg-bar--top`,children:(0,n.jsxs)(`div`,{className:`ssg-bar-container`,children:[t?(0,n.jsxs)(`div`,{className:`ssg-bar-group ssg-bar-leading`,children:[(0,n.jsx)(`span`,{className:`ssg-bar-title`,children:`Toolbar`}),i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(`span`,{className:`ssg-bar-chip ssg-bar-chip--emphasis`,children:s.rowSummaryText}),(0,n.jsx)(`span`,{className:`ssg-bar-chip ssg-bar-chip--emphasis`,children:s.columnSummaryText})]}):null,(0,n.jsx)(`span`,{className:`ssg-bar-chip ssg-bar-chip--emphasis`,children:s.filterSummaryText}),(0,n.jsx)(`span`,{className:`ssg-bar-chip ssg-bar-chip--emphasis`,children:s.sortSummaryText})]}):null,r?(0,n.jsxs)(`div`,{className:`ssg-bar-input-group`,children:[c?(0,n.jsx)(`span`,{className:`ssg-bar-input-icon`,"aria-hidden":`true`,children:c}):null,(0,n.jsx)(`input`,{type:`text`,value:e.globalFilterText,onChange:t=>e.setGlobalFilterText(t.target.value),placeholder:a,className:`ssg-bar-input`}),l?(0,n.jsx)(`button`,{type:`button`,onClick:()=>e.setGlobalFilterText(``),className:`ssg-bar-input-clear`,"aria-label":`フィルターをクリア`,title:`クリア`,children:tr}):null]}):null]})})}function rr({state:e,disabled:t=!1}){return(0,n.jsx)(`span`,{"aria-hidden":`true`,className:`ssg-row-checkbox`,"data-state":e,"data-disabled":t?`true`:void 0})}var ir=(0,e.memo)(rr);function ar({pane:e,ownsRowHeader:t,leadingWidth:r,rowIndex:a,rowKey:o,row:s,top:c,renderEntries:l,rowHeight:u,autoHeight:d,autoHeightMinHeight:f,rowHeaderCellStyle:p,isRowHovered:m,isWholeGridSelected:h,isRowSelected:g,showRowCheckbox:_,isRowChecked:v,activeColInRow:y,editingColInRow:b,selectedColStart:x,selectedColEnd:S,readOnly:C,canEditCell:w,onRowHeaderPointerDown:T,onRowHeaderPointerEnter:E,onRowHeaderPointerLeave:D,onCellPointerDown:O,onCellPointerEnter:k,onCellDoubleClick:ee,renderCellContent:A,rowClassName:j,bodyCellClassName:M,bodyRowClassName:N,rowHeaderCellClassName:P}){return(0,n.jsxs)(`div`,{"data-pane":e,"data-row-index":a,className:i(`ssg-body-row`,v&&`ssg-body-row--checked`,j,N),style:{height:u,transform:`translateY(${c}px)`},children:[t&&(0,n.jsx)(`div`,{role:_?`checkbox`:void 0,"aria-checked":_?v:void 0,onPointerDown:e=>T(a,e),onPointerEnter:e=>E(a,e),onPointerLeave:()=>D(a),className:i(`ssg-header-cell`,`ssg-row-header-cell`,_&&`ssg-row-header-cell--checkbox`,(h||g)&&`ssg-header-cell--selected`,m&&`ssg-header-cell--hovered`,j,P),style:{...p,height:u},children:_?(0,n.jsx)(ir,{state:v?`checked`:`unchecked`}):a+1}),l.map(e=>{if(!e)return null;let t=e.logicalIndex,c=e.column,l=r+e.paneLocalStart,p=e.paneLocalSize,h=t===y,_=t===b,v=g||x>=0&&t>=x&&t<=S,T=!ge({readOnly:C,canEditCell:w},a,t,s,c),E=d&&c.autoHeight===!0,D,N=c.cellClassName;N&&(D=typeof N==`function`?N({row:s,rowIndex:a,colIndex:t,value:I(s,c),column:c,isActive:h,isSelected:v,isEditing:_,readOnly:T}):N);let P=i(`ssg-body-cell`,c.align===`center`&&`ssg-body-cell--align-center`,c.align===`right`&&`ssg-body-cell--align-right`,E&&`ssg-body-cell--autoheight`,T&&!v&&`ssg-body-cell--readonly`,m&&`ssg-body-cell--row-hovered`,j,D,M);return(0,n.jsx)(`div`,{"data-ssg-col-key":c.key,"data-autoheight-cell":E?``:void 0,className:P,onPointerDown:e=>O({row:a,col:t},e),onPointerEnter:e=>k({row:a,col:t},e),onDoubleClick:()=>ee({row:a,col:t}),style:{left:l,width:p,minWidth:p,...E?{minHeight:f}:{height:u},zIndex:h?3:1},children:A(s,a,c,t,{isActive:h,isSelected:v,isEditing:_,readOnly:T})},`${String(o)}-${c.key}`)})]})}var or=(0,e.memo)(ar),sr=[`62%`,`46%`,`78%`,`54%`];function cr({pane:e,ownsRowHeader:t,leadingWidth:r,rowIndex:a,top:o,rowHeight:s,renderEntries:c,rowHeaderCellStyle:l,isRowHovered:u,showRowCheckbox:d,onRowHeaderPointerDown:f,onRowHeaderPointerEnter:p,onRowHeaderPointerLeave:m,onCellPointerDown:h,onCellPointerEnter:g,bodyCellClassName:_,bodyRowClassName:v,rowHeaderCellClassName:y}){return(0,n.jsxs)(`div`,{"data-pane":e,"data-row-index":a,"data-skeleton-row":``,className:i(`ssg-body-row`,v),style:{height:s,transform:`translateY(${o}px)`},children:[t&&(0,n.jsx)(`div`,{onPointerDown:e=>f(a,e),onPointerEnter:e=>p(a,e),onPointerLeave:()=>m(a),className:i(`ssg-header-cell`,`ssg-row-header-cell`,`ssg-skeleton-rowheader`,d&&`ssg-row-header-cell--checkbox`,u&&`ssg-header-cell--hovered`,y),style:{...l,height:s},children:d?(0,n.jsx)(ir,{state:`unchecked`,disabled:!0}):a+1}),c.map(t=>{if(!t)return null;let o=t.logicalIndex,c=r+t.paneLocalStart,l=t.paneLocalSize,d=sr[o%sr.length];return(0,n.jsx)(`div`,{className:i(`ssg-body-cell`,u&&`ssg-body-cell--row-hovered`,_),onPointerDown:e=>h({row:a,col:o},e),onPointerEnter:e=>g({row:a,col:o},e),style:{left:c,width:l,minWidth:l,height:s,zIndex:1},children:(0,n.jsx)(`div`,{"aria-hidden":`true`,className:`ssg-skeleton-bar`,style:{width:d}})},`skeleton-${e}-${o}`)})]})}var X=(0,e.memo)(cr);function lr({pane:e,ownsRowHeader:t,leadingWidth:r,rowModel:i,virtualRows:a,virtualRowIndexes:o,renderEntries:s,rowHeight:c,autoHeight:l=!1,isServerSide:u=!1,rowHeaderCellStyle:d,hoveredRowIndex:f,isWholeGridSelected:p,enableRowSelection:m,rowSelectionState:h,activeCell:g,editingCell:_,selectionSnapshot:v,readOnly:y,canEditCell:b,onRowHeaderPointerDown:x,onRowHeaderPointerEnter:S,onRowHeaderPointerLeave:C,onCellPointerDown:w,onCellPointerEnter:T,onCellDoubleClick:E,renderCellContent:D,getRowClassName:k,bodyCellClassName:ee,bodyRowClassName:A,rowHeaderCellClassName:j}){return(0,n.jsx)(n.Fragment,{children:a.map(a=>{let M=a.index;if(!o.has(M))return null;let N=a.size??c,P=i.getRow(M);if(!P){if(!u)return null;let o=i.getRowKey(M)??M;return(0,n.jsx)(X,{pane:e,ownsRowHeader:t,leadingWidth:r,rowIndex:M,top:a.start,rowHeight:N,renderEntries:s,rowHeaderCellStyle:d,isRowHovered:f===M,showRowCheckbox:m,onRowHeaderPointerDown:x,onRowHeaderPointerEnter:S,onRowHeaderPointerLeave:C,onCellPointerDown:w,onCellPointerEnter:T,bodyCellClassName:ee,bodyRowClassName:A,rowHeaderCellClassName:j},String(o))}let te=i.getRowKey(M)??M,ne=m?O(h,te):!1,re=v.kind===`row`&&M>=v.startRow&&M<=v.endRow,F=v.kind===`cell`&&M>=v.startRow&&M<=v.endRow,ie=v.kind===`col`||F?v.startCol:-1,ae=v.kind===`col`||F?v.endCol:-1,oe=g&&g.row===M?g.col:-1,se=_&&_.row===M?_.col:-1,ce=k?.(P,M);return(0,n.jsx)(or,{pane:e,ownsRowHeader:t,leadingWidth:r,rowIndex:M,rowKey:te,row:P,top:a.start,renderEntries:s,rowHeight:N,autoHeight:l,autoHeightMinHeight:c,rowHeaderCellStyle:d,isRowHovered:f===M,isWholeGridSelected:p,isRowSelected:re,showRowCheckbox:m,isRowChecked:ne,activeColInRow:oe,editingColInRow:se,selectedColStart:ie,selectedColEnd:ae,readOnly:y,canEditCell:b,onRowHeaderPointerDown:x,onRowHeaderPointerEnter:S,onRowHeaderPointerLeave:C,onCellPointerDown:w,onCellPointerEnter:T,onCellDoubleClick:E,renderCellContent:D,rowClassName:ce,bodyCellClassName:ee,bodyRowClassName:A,rowHeaderCellClassName:j},String(te))})})}function ur({isActive:e,title:t,className:r,onPointerDown:a,children:o}){return(0,n.jsx)(`button`,{type:`button`,title:t,onPointerDown:a,className:i(`ssg-icon-btn`,e&&`ssg-icon-btn--active`,r),children:o})}function dr({pane:e,ownsRowHeader:t,leadingWidth:r,headerHeight:a,rowHeaderCellStyle:o,headerRowClassName:s,headerCellClassName:c,rowHeaderCellClassName:l,isCornerHovered:u,isWholeGridSelected:d,showSelectAllCheckbox:f,selectAllState:p,filteredRowsLength:m,visibleColumnsLength:h,renderEntries:g,hoveredColumnIndex:_,selectionSnapshot:v,columnFilterValues:y,sortState:b,iconButtonClassName:x,onCornerPointerDown:S,onCornerPointerEnter:C,onCornerPointerLeave:w,onColumnHeaderPointerDown:T,onColumnHeaderPointerEnter:E,onColumnHeaderPointerLeave:D,onColumnResizePointerDown:O,enableColumnResize:k,enableColumnMenu:ee,openedMenuColumnKey:A,onColumnMenuButtonPointerDown:j,onColumnHeaderContextMenu:M,onColumnDragHandlePointerDown:N}){return(0,n.jsxs)(`div`,{"data-pane":e,className:i(`ssg-header-row`,s),style:{height:a},children:[t&&(0,n.jsx)(`div`,{role:f?`checkbox`:void 0,"aria-checked":f?p===`all`?!0:p===`some`?`mixed`:!1:void 0,onPointerDown:S,onPointerEnter:C,onPointerLeave:w,className:i(`ssg-header-cell`,`ssg-corner-cell`,f&&`ssg-corner-cell--checkbox`,d&&`ssg-header-cell--selected`,u&&`ssg-header-cell--hovered`,l),style:{...o,height:a,cursor:m>0&&h>0?`pointer`:`default`},children:f?(0,n.jsx)(ir,{state:p===`all`?`checked`:p===`some`?`indeterminate`:`unchecked`}):`#`}),g.map(e=>{if(!e)return null;let t=e.logicalIndex,o=e.column,s=r+e.paneLocalStart,l=e.paneLocalSize,u=L(y[o.key]),f=v.kind===`col`&&t>=v.startCol&&t<=v.endCol,p=b.findIndex(e=>e.columnKey===o.key),m=p===-1?null:b[p],h=A===o.key,g=ee;return(0,n.jsxs)(`div`,{"data-ssg-col-key":o.key,onPointerDown:e=>T(t,e),onPointerEnter:e=>E(t,e),onPointerLeave:()=>D(t),onContextMenu:e=>M(o,e),className:i(`ssg-header-cell`,(d||f)&&`ssg-header-cell--selected`,_===t&&`ssg-header-cell--hovered`,c),style:{left:s,width:l,minWidth:l,height:a},children:[(0,n.jsx)(`div`,{className:i(`ssg-header-label`,u&&`ssg-header-label--filtered`),title:o.renderHeader?void 0:o.title||o.key,children:o.renderHeader?o.renderHeader({colIndex:t,width:l,column:o,filterValue:y[o.key],isFiltered:u}):o.title||o.key}),(0,n.jsxs)(`div`,{className:`ssg-header-status`,children:[m&&(0,n.jsxs)(`span`,{"aria-hidden":`true`,title:(m.direction===`asc`?`昇順で並び替え中`:`降順で並び替え中`)+(b.length>1?` (優先度 ${p+1})`:``),className:`ssg-header-sort`,children:[m.direction===`asc`?`↑`:`↓`,b.length>1&&(0,n.jsx)(`span`,{className:`ssg-header-sort-priority`,children:p+1})]}),u&&(0,n.jsx)(`span`,{"aria-hidden":`true`,title:`フィルター適用中`,className:`ssg-header-filtered-mark`,children:(0,n.jsx)(`svg`,{width:`11`,height:`11`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:(0,n.jsx)(`path`,{d:`M2 4 L14 4 L9.2 9.2 L9.2 13 L6.8 13 L6.8 9.2 Z`})})})]}),(0,n.jsxs)(`div`,{className:`ssg-header-actions`,children:[N&&(0,n.jsx)(`span`,{onPointerDown:e=>N(o,e),title:`ドラッグで列を移動`,"aria-hidden":`true`,className:`ssg-header-grip`,children:(0,n.jsxs)(`svg`,{width:`8`,height:`14`,viewBox:`0 0 8 14`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:[(0,n.jsx)(`circle`,{cx:`2`,cy:`3`,r:`1`}),(0,n.jsx)(`circle`,{cx:`6`,cy:`3`,r:`1`}),(0,n.jsx)(`circle`,{cx:`2`,cy:`7`,r:`1`}),(0,n.jsx)(`circle`,{cx:`6`,cy:`7`,r:`1`}),(0,n.jsx)(`circle`,{cx:`2`,cy:`11`,r:`1`}),(0,n.jsx)(`circle`,{cx:`6`,cy:`11`,r:`1`})]})}),g&&(0,n.jsx)(ur,{title:`列メニュー`,isActive:h,className:x,onPointerDown:e=>j(o,e),children:`⋮`})]}),(o.resizable??k)&&(0,n.jsx)(`div`,{onPointerDown:e=>O(o,e),className:`ssg-header-resize`})]},o.key)})]})}var fr=(0,e.memo)(dr),pr=200,mr=8,hr=6,gr=289,_r=({visibleColumns:t,enableColumnMenu:n,gridRootRef:r})=>{let[i,a]=(0,e.useState)(null),[o,s]=(0,e.useState)(null),c=(0,e.useRef)(null),l=(0,e.useRef)(null),u=(0,e.useRef)(null),d=(0,e.useRef)(i);d.current=i;let f=i!==null,p=i?.columnKey??null,m=(0,e.useMemo)(()=>p?t.find(e=>e.key===p)??null:null,[p,t]),h=(0,e.useCallback)(()=>{if(!p){s(null);return}let e,t,n,r=l.current,i=u.current;if(r){if(!r.isConnected){s(null),a(null),l.current=null;return}let i=r.getBoundingClientRect();t=i.right-pr,e=i.bottom+hr,n=i.top-gr-hr}else if(i)t=i.x,e=i.y,n=i.y-gr;else{s(null);return}t=Math.max(mr,t),t=Math.min(t,window.innerWidth-pr-mr),e+gr>window.innerHeight-mr&&(e=n),e=Math.max(mr,e),s(n=>n&&n.top===e&&n.left===t&&n.width===pr?n:{top:e,left:t,width:pr})},[p]),g=(0,e.useCallback)(()=>{a(null),s(null),l.current=null,u.current=null,requestAnimationFrame(()=>{r.current?.focus()})},[r]),_=(0,e.useCallback)((e,t)=>{if(t.preventDefault(),t.stopPropagation(),!n||t.button!==0)return;let i=t.currentTarget;if(d.current?.columnKey===e.key&&l.current===i){g();return}document.activeElement instanceof HTMLElement&&document.activeElement.blur(),r.current?.blur(),l.current=i,u.current=null,a({columnKey:e.key})},[g,n,r]),v=(0,e.useCallback)((e,t)=>{n&&(t.preventDefault(),t.stopPropagation(),document.activeElement instanceof HTMLElement&&document.activeElement.blur(),r.current?.blur(),l.current=null,u.current={x:t.clientX,y:t.clientY},a({columnKey:e.key}),h())},[n,r,h]);return(0,e.useEffect)(()=>{if(!p)return;h();let e=()=>{h()},t=()=>{if(u.current){g();return}h()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,t,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,t,!0)}},[p,h,g]),(0,e.useEffect)(()=>{if(!f)return;let e=e=>{let t=e.target;t&&(c.current?.contains(t)||l.current?.contains(t)||g())};return window.addEventListener(`pointerdown`,e),()=>{window.removeEventListener(`pointerdown`,e)}},[g,f]),(0,e.useEffect)(()=>{if(!f)return;let e=e=>{e.key===`Escape`&&(e.preventDefault(),g())};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[g,f]),{columnMenuLayout:o,columnMenuRef:c,isColumnMenuOpen:f,openedMenuColumnKey:p,openedMenuColumn:m,openColumnMenuFromButton:_,openColumnMenuFromContextMenu:v,closeColumnMenu:g}},vr=[{value:void 0,label:`固定しない`},{value:`left`,label:`左に固定`},{value:`right`,label:`右に固定`}],yr=180,br=4,xr=8,Sr=`pin`;function Cr({isOpen:t,title:a,columnKey:o,canFilter:s,onOpenFilter:c,canSort:l,sortDirection:u,onSortChange:d,onOpenSortManager:f,pinned:p,canChangePinned:m,layout:h,popoverRef:g,onPinnedChange:_,onAutosizeColumn:v,onAutosizeAllColumns:y,onOpenColumnChooser:b,canResetColumns:x,onResetColumns:S,onRequestClose:C}){let[w,T]=(0,e.useState)(null);if((0,e.useEffect)(()=>{T(null)},[o,t]),!t||!h)return null;let E=w===Sr,D=h.left+h.width+br+yr>window.innerWidth-xr,O={position:`fixed`,top:h.top,left:h.left,width:h.width,zIndex:1e3},k={position:`absolute`,top:-9,...D?{right:`calc(100% + ${br}px)`}:{left:`calc(100% + ${br}px)`},width:yr,zIndex:1};return(0,r.createPortal)((0,n.jsxs)(`div`,{ref:g,onPointerDown:e=>{e.stopPropagation()},onKeyDownCapture:e=>{e.stopPropagation()},onContextMenu:e=>{e.preventDefault()},className:`ssg-menu-panel`,style:O,children:[(0,n.jsx)(`div`,{className:`ssg-menu-title`,children:a}),s&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{c()},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`フィルター…`})]}),(0,n.jsx)(`div`,{className:`ssg-menu-separator`})]}),l&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{d(`asc`)},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:i(`ssg-menu-sort-icon`,u===`asc`&&`ssg-menu-sort-icon--active`),children:u===`asc`?`✓`:`↑`}),(0,n.jsx)(`span`,{className:i(`ssg-menu-label`,u===`asc`&&`ssg-menu-label--sorted`),children:`昇順で並び替え`})]}),(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{d(`desc`)},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:i(`ssg-menu-sort-icon`,u===`desc`&&`ssg-menu-sort-icon--active`),children:u===`desc`?`✓`:`↓`}),(0,n.jsx)(`span`,{className:i(`ssg-menu-label`,u===`desc`&&`ssg-menu-label--sorted`),children:`降順で並び替え`})]}),(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{f()},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`並び替えを管理…`})]}),(0,n.jsx)(`div`,{className:`ssg-menu-separator`})]}),(0,n.jsxs)(`div`,{className:`ssg-menu-submenu-anchor`,children:[(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(Sr)},onClick:()=>{T(e=>e===Sr?null:Sr)},className:i(`ssg-menu-item`,E&&`ssg-menu-item--active`),children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`列の固定`}),(0,n.jsx)(`span`,{className:`ssg-menu-caret`,children:`›`})]}),E&&(0,n.jsxs)(`div`,{className:`ssg-menu-panel`,style:k,children:[vr.map(e=>{let t=p===e.value;return(0,n.jsxs)(`button`,{type:`button`,disabled:!m,onClick:()=>{m&&_(o,e.value)},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:i(`ssg-menu-check`,!t&&`ssg-menu-check--hidden`),children:`✓`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:e.label})]},e.label)}),!m&&(0,n.jsx)(`div`,{className:`ssg-menu-note`,children:`onColumnsChange 未指定のため固定状態を変更できません`})]})]}),(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{v(o)},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`この列の幅を自動調整`})]}),(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{y()},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`すべての列の幅を自動調整`})]}),(0,n.jsxs)(`button`,{type:`button`,onPointerEnter:()=>{T(null)},onClick:()=>{b()},className:`ssg-menu-item`,children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`列の表示`})]}),(0,n.jsxs)(`button`,{type:`button`,"aria-disabled":!x,tabIndex:x?0:-1,title:x?`すべての列の幅・固定・表示を初期状態に戻します`:`onColumnsChange 未指定のため列をリセットできません`,onPointerEnter:()=>{T(null)},onClick:()=>{x&&S()},className:i(`ssg-menu-item`,!x&&`ssg-menu-item--disabled`),children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:`列のリセット`})]}),(0,n.jsx)(`div`,{className:`ssg-menu-footer`,children:(0,n.jsx)(`button`,{type:`button`,onClick:C,className:`ssg-menu-close-btn`,children:`閉じる`})})]}),document.body)}var wr=280,Tr=8,Er=12,Dr=({enableColumnMenu:t,gridRootRef:n})=>{let[r,i]=(0,e.useState)(!1),[a,o]=(0,e.useState)(null),s=(0,e.useRef)(null),c=(0,e.useCallback)(()=>{let e=n.current;if(!e){o(null);return}let t=e.getBoundingClientRect(),r=t.right-wr-Er,i=t.top+Er;r=Math.max(Tr,r),r=Math.min(r,window.innerWidth-wr-Tr),i=Math.max(Tr,i),o(e=>e&&e.top===i&&e.left===r&&e.width===wr?e:{top:i,left:r,width:wr})},[n]),l=(0,e.useCallback)(()=>{t&&(document.activeElement instanceof HTMLElement&&document.activeElement.blur(),n.current?.blur(),i(!0))},[t,n]),u=(0,e.useCallback)(()=>{i(!1),o(null),requestAnimationFrame(()=>{n.current?.focus()})},[n]);return(0,e.useEffect)(()=>{if(!r)return;c();let e=()=>{c()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[r,c]),(0,e.useEffect)(()=>{if(!r)return;let e=e=>{let t=e.target;t&&(s.current?.contains(t)||u())};return window.addEventListener(`pointerdown`,e),()=>{window.removeEventListener(`pointerdown`,e)}},[u,r]),(0,e.useEffect)(()=>{if(!r)return;let e=e=>{e.key===`Escape`&&(e.preventDefault(),u())};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[u,r]),{isColumnChooserOpen:r,columnChooserLayout:a,columnChooserRef:s,openColumnChooser:l,closeColumnChooser:u}},Or=28,kr=12,Ar=[`left`,`center`,`right`],jr={left:`左固定`,center:`固定なし`,right:`右固定`};function Mr(e,t,n){let r=e.find(e=>e.key===t);if(!r)return null;let i=r.pane,a={left:[],center:[],right:[]};for(let t of e)a[t.pane].push(t.key);let o=a[i],s=o.indexOf(t);if(s<0)return null;let c=n;if(c>s&&--c,c=Math.max(0,Math.min(c,o.length-1)),c===s)return null;let[l]=o.splice(s,1);return o.splice(c,0,l),[...a.left,...a.center,...a.right]}function Nr({state:e,disabled:t}){return(0,n.jsxs)(`span`,{className:i(`ssg-checkbox`,(e===`checked`||e===`indeterminate`)&&`ssg-checkbox--filled`,t&&`ssg-checkbox--disabled`),"aria-hidden":!0,children:[e===`checked`&&(0,n.jsx)(`svg`,{width:`11`,height:`11`,viewBox:`0 0 12 12`,fill:`none`,children:(0,n.jsx)(`path`,{d:`M2.5 6.2 4.7 8.4 9.5 3.6`,stroke:`#ffffff`,strokeWidth:`1.8`,strokeLinecap:`round`,strokeLinejoin:`round`})}),e===`indeterminate`&&(0,n.jsx)(`span`,{className:`ssg-checkbox-dash`})]})}function Pr({disabled:e}){return(0,n.jsx)(`svg`,{width:`10`,height:`16`,viewBox:`0 0 10 16`,fill:e?`#cbd5e1`:`#94a3b8`,"aria-hidden":!0,children:[3,8,13].map(e=>[3,7].map(t=>(0,n.jsx)(`circle`,{cx:t,cy:e,r:`1.2`},`${t}-${e}`)))})}function Fr({isOpen:t,items:a,canToggle:o,layout:s,panelRef:c,onToggleColumnVisibility:l,onShowAllColumns:u,onResetColumns:d,onReorderColumns:f,onRequestClose:p}){let[m,h]=(0,e.useState)(``),g=(0,e.useRef)(null);(0,e.useEffect)(()=>{if(t){h(``);let e=requestAnimationFrame(()=>{g.current?.focus()});return()=>cancelAnimationFrame(e)}},[t]);let _=(0,e.useMemo)(()=>a.filter(e=>e.visible).length,[a]),v=_===a.length&&a.length>0,y=v?`checked`:`indeterminate`,b=(0,e.useMemo)(()=>{let e=m.trim().toLowerCase();return e?a.filter(t=>t.title.toLowerCase().includes(e)):a},[a,m]),x=(0,e.useMemo)(()=>{let e={left:[],center:[],right:[]};for(let t of b)e[t.pane].push(t);return Ar.map(t=>({pane:t,items:e[t]})).filter(e=>e.items.length>0)},[b]),S=x.length>=2,C=o&&m.trim()===``,w=(0,e.useRef)(null),[T,E]=(0,e.useState)(null),D=(0,e.useRef)(!1),O=(0,e.useRef)(null),[k,ee]=(0,e.useState)(null),A=(0,e.useRef)(0),j=(0,e.useRef)(null),M=(0,e.useCallback)(()=>{let e=w.current,t=O.current;if(!e||!t)return;let n=e.querySelectorAll(`[data-chooser-row][data-chooser-pane="${t}"]`),r=A.current,i=n.length;for(let e=0;e<n.length;e+=1){let t=n[e].getBoundingClientRect();if(r<t.top+t.height/2){i=e;break}}ee(i)},[]),N=(0,e.useCallback)(()=>{let e=w.current;if(!e||!D.current){j.current=null;return}let t=e.getBoundingClientRect(),n=A.current,r=0;if(n<t.top+Or?r=-12:n>t.bottom-Or&&(r=kr),r!==0){let t=e.scrollTop;e.scrollTop+=r,e.scrollTop!==t&&M()}j.current=requestAnimationFrame(N)},[M]),P=(0,e.useCallback)(e=>{j.current!==null&&(cancelAnimationFrame(j.current),j.current=null);let t=T,n=k;if(D.current=!1,O.current=null,E(null),ee(null),e&&t!==null&&n!==null){let e=Mr(a,t,n);e&&f(e)}},[T,k,a,f]),te=(0,e.useCallback)((e,t,n)=>{C&&(n.preventDefault(),n.stopPropagation(),n.currentTarget.setPointerCapture(n.pointerId),D.current=!0,O.current=t,A.current=n.clientY,E(e),M(),j.current===null&&(j.current=requestAnimationFrame(N)))},[C,M,N]),ne=(0,e.useCallback)(e=>{D.current&&(A.current=e.clientY,M())},[M]),re=(0,e.useCallback)(()=>{D.current&&P(!0)},[P]),F=(0,e.useCallback)(()=>{D.current&&P(!1)},[P]);if((0,e.useEffect)(()=>{t||(D.current=!1,O.current=null,E(null),ee(null),j.current!==null&&(cancelAnimationFrame(j.current),j.current=null))},[t]),(0,e.useEffect)(()=>()=>{j.current!==null&&(cancelAnimationFrame(j.current),j.current=null)},[]),!t||!s)return null;let ie={top:s.top,left:s.left,width:s.width},ae=e=>{e.stopPropagation()},oe=e=>{e.stopPropagation()},se=()=>{o&&(v||u())},ce=T===null?null:a.find(e=>e.key===T)?.pane??null,le=(e,t,r)=>{let a=e.visible&&_===1,s=!o||a,c=T===e.key;return(0,n.jsxs)(`div`,{"data-chooser-row":``,"data-chooser-pane":r,className:i(`ssg-chooser-row`,T!==null&&ce===r&&k===t&&`ssg-chooser-row--drop-before`,c&&`ssg-chooser-row--dragging`),children:[(0,n.jsx)(`span`,{role:`button`,"aria-label":`ドラッグして並べ替え`,title:o?m.trim()===``?`ドラッグして並べ替え(同じセクション内のみ)`:`検索中は並べ替えできません`:`onColumnsChange 未指定のため並べ替えできません`,onPointerDown:t=>te(e.key,r,t),onPointerMove:ne,onPointerUp:re,onPointerCancel:F,className:i(`ssg-chooser-handle`,!C&&`ssg-chooser-handle--disabled`,c&&`ssg-chooser-handle--dragging`),children:(0,n.jsx)(Pr,{disabled:!C})}),(0,n.jsxs)(`button`,{type:`button`,disabled:s,onClick:()=>{s||l(e.key,!e.visible)},className:`ssg-chooser-toggle`,children:[(0,n.jsx)(Nr,{state:e.visible?`checked`:`unchecked`,disabled:s}),(0,n.jsx)(`span`,{className:i(`ssg-chooser-label`,s&&!e.visible&&`ssg-chooser-label--muted`),children:e.title})]})]},e.key)};return(0,r.createPortal)((0,n.jsxs)(`div`,{ref:c,onPointerDown:ae,onKeyDownCapture:oe,onContextMenu:e=>{e.preventDefault()},className:`ssg-popover ssg-chooser-panel`,style:ie,children:[(0,n.jsxs)(`div`,{className:`ssg-popover-header`,children:[(0,n.jsx)(`span`,{className:`ssg-popover-title`,children:`列の表示`}),(0,n.jsx)(`button`,{type:`button`,onClick:p,"aria-label":`閉じる`,className:`ssg-popover-close`,children:`×`})]}),(0,n.jsxs)(`div`,{className:`ssg-chooser-search-row`,children:[(0,n.jsx)(`button`,{type:`button`,disabled:!o,onClick:se,"aria-label":`すべての列を表示`,title:`すべての列を表示`,className:`ssg-chooser-master-btn`,children:(0,n.jsx)(Nr,{state:y,disabled:!o})}),(0,n.jsxs)(`div`,{className:`ssg-chooser-search-field`,children:[(0,n.jsx)(`span`,{"aria-hidden":!0,className:`ssg-chooser-search-icon`,children:`⌕`}),(0,n.jsx)(`input`,{ref:g,type:`text`,value:m,onChange:e=>h(e.target.value),placeholder:`検索...`,className:`ssg-chooser-search-input`})]})]}),(0,n.jsx)(`div`,{ref:w,className:`ssg-chooser-list`,children:b.length===0?(0,n.jsx)(`div`,{className:`ssg-chooser-empty`,children:`該当する列がありません`}):x.map(e=>(0,n.jsxs)(`div`,{"data-chooser-section":e.pane,children:[S&&(0,n.jsx)(`div`,{className:`ssg-chooser-section-heading`,children:jr[e.pane]}),e.items.map((t,n)=>le(t,n,e.pane)),T!==null&&ce===e.pane&&k===e.items.length&&(0,n.jsx)(`div`,{className:`ssg-chooser-drop-end`})]},e.pane))}),(0,n.jsxs)(`div`,{className:`ssg-chooser-footer`,children:[(0,n.jsx)(`button`,{type:`button`,disabled:!o,onClick:()=>{o&&d()},title:`すべての列の幅・固定・表示を初期状態に戻します`,className:`ssg-chooser-reset-btn`,children:`すべての列を初期状態に戻す`}),!o&&(0,n.jsx)(`div`,{className:`ssg-chooser-note`,children:`onColumnsChange 未指定のため表示/非表示・リセットを変更できません`})]})]}),document.body)}var Ir=320,Lr=8,Rr=12,zr=({enableSorting:t,gridRootRef:n})=>{let[r,i]=(0,e.useState)(!1),[a,o]=(0,e.useState)(null),s=(0,e.useRef)(null),c=(0,e.useCallback)(()=>{let e=n.current;if(!e){o(null);return}let t=e.getBoundingClientRect(),r=t.right-Ir-Rr,i=t.top+Rr;r=Math.max(Lr,r),r=Math.min(r,window.innerWidth-Ir-Lr),i=Math.max(Lr,i),o(e=>e&&e.top===i&&e.left===r&&e.width===Ir?e:{top:i,left:r,width:Ir})},[n]),l=(0,e.useCallback)(()=>{t&&(document.activeElement instanceof HTMLElement&&document.activeElement.blur(),n.current?.blur(),i(!0))},[t,n]),u=(0,e.useCallback)(()=>{i(!1),o(null),requestAnimationFrame(()=>{n.current?.focus()})},[n]);return(0,e.useEffect)(()=>{if(!r)return;c();let e=()=>{c()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[r,c]),(0,e.useEffect)(()=>{if(!r)return;let e=e=>{let t=e.target;t&&(s.current?.contains(t)||u())};return window.addEventListener(`pointerdown`,e),()=>{window.removeEventListener(`pointerdown`,e)}},[u,r]),(0,e.useEffect)(()=>{if(!r)return;let e=e=>{e.key===`Escape`&&(e.preventDefault(),u())};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[u,r]),{isSortManagerOpen:r,sortManagerLayout:a,sortManagerRef:s,openSortManager:l,closeSortManager:u}};function Br({disabled:e}){return(0,n.jsx)(`svg`,{width:`10`,height:`16`,viewBox:`0 0 10 16`,fill:e?`#cbd5e1`:`#94a3b8`,"aria-hidden":!0,children:[3,8,13].map(e=>[3,7].map(t=>(0,n.jsx)(`circle`,{cx:t,cy:e,r:`1.2`},`${t}-${e}`)))})}function Vr({isOpen:t,entries:a,columns:o,canSort:s,layout:c,panelRef:l,onAddLevel:u,onChangeDirection:d,onChangeColumn:f,onRemoveLevel:p,onClearAll:m,onMove:h,onRequestClose:g}){let _=(0,e.useMemo)(()=>new Set(a.map(e=>e.columnKey)),[a]),v=(0,e.useMemo)(()=>o.find(e=>!_.has(e.key))??null,[o,_]),y=e=>o.find(t=>t.key===e)?.title??e,b=s&&a.length>=2,x=(0,e.useRef)(null),[S,C]=(0,e.useState)(null),w=(0,e.useRef)(!1),[T,E]=(0,e.useState)(null),D=(0,e.useRef)(0),O=(0,e.useCallback)(()=>{let e=x.current;if(!e)return;let t=e.querySelectorAll(`[data-sort-level]`),n=D.current,r=t.length;for(let e=0;e<t.length;e+=1){let i=t[e].getBoundingClientRect();if(n<i.top+i.height/2){r=e;break}}E(r)},[]),k=(0,e.useCallback)(e=>{let t=S,n=T;if(w.current=!1,C(null),E(null),e&&t!==null&&n!==null){let e=n;e>t&&--e,h(t,e)}},[S,T,h]),ee=(0,e.useCallback)((e,t)=>{b&&(t.preventDefault(),t.stopPropagation(),t.currentTarget.setPointerCapture(t.pointerId),w.current=!0,D.current=t.clientY,C(e),O())},[b,O]),A=(0,e.useCallback)(e=>{w.current&&(D.current=e.clientY,O())},[O]),j=(0,e.useCallback)(()=>{w.current&&k(!0)},[k]),M=(0,e.useCallback)(()=>{w.current&&k(!1)},[k]);if((0,e.useEffect)(()=>{t||(w.current=!1,C(null),E(null))},[t]),!t||!c)return null;let N={top:c.top,left:c.left,width:c.width},P=e=>{e.stopPropagation()},te=e=>{e.stopPropagation()},ne=s&&v!==null;return(0,r.createPortal)((0,n.jsxs)(`div`,{ref:l,onPointerDown:P,onKeyDownCapture:te,onContextMenu:e=>{e.preventDefault()},className:`ssg-popover ssg-sort-panel`,style:N,children:[(0,n.jsxs)(`div`,{className:`ssg-popover-header`,children:[(0,n.jsx)(`span`,{className:`ssg-popover-title`,children:`並び替え`}),(0,n.jsx)(`button`,{type:`button`,onClick:g,"aria-label":`閉じる`,className:`ssg-popover-close`,children:`×`})]}),(0,n.jsxs)(`div`,{ref:x,className:`ssg-sort-list`,children:[a.length===0?(0,n.jsx)(`div`,{className:`ssg-sort-empty`,children:`並び替えは設定されていません`}):a.map((e,t)=>{let r=o.filter(t=>t.key===e.columnKey||!_.has(t.key)),c=r.some(t=>t.key===e.columnKey)?r:[{key:e.columnKey,title:y(e.columnKey)},...r],l=S===t;return(0,n.jsxs)(`div`,{"data-sort-level":``,className:i(`ssg-sort-level`,S!==null&&T===t&&`ssg-sort-level--drop-before`,l&&`ssg-sort-level--dragging`),children:[(0,n.jsx)(`span`,{role:`button`,"aria-label":`ドラッグして優先順位を変更`,title:s?a.length<2?`レベルが 2 件以上のとき並べ替えできます`:`ドラッグして優先順位を変更`:`並び替えが無効です`,onPointerDown:e=>ee(t,e),onPointerMove:A,onPointerUp:j,onPointerCancel:M,className:i(`ssg-sort-handle`,!b&&`ssg-sort-handle--disabled`,l&&`ssg-sort-handle--dragging`),children:(0,n.jsx)(Br,{disabled:!b})}),(0,n.jsx)(`span`,{"aria-hidden":!0,className:`ssg-sort-badge`,children:t+1}),(0,n.jsx)(`select`,{value:e.columnKey,disabled:!s,onChange:e=>f(t,e.target.value),className:`ssg-sort-select`,children:c.map(e=>(0,n.jsx)(`option`,{value:e.key,children:e.title},e.key))}),(0,n.jsxs)(`div`,{className:`ssg-sort-dir-group`,children:[(0,n.jsx)(`button`,{type:`button`,disabled:!s,onClick:()=>d(t,`asc`),title:`昇順`,className:i(`ssg-sort-dir-btn`,e.direction===`asc`&&`ssg-sort-dir-btn--active`),children:`↑ 昇順`}),(0,n.jsx)(`button`,{type:`button`,disabled:!s,onClick:()=>d(t,`desc`),title:`降順`,className:i(`ssg-sort-dir-btn`,e.direction===`desc`&&`ssg-sort-dir-btn--active`),children:`↓ 降順`})]}),(0,n.jsx)(`button`,{type:`button`,disabled:!s,onClick:()=>p(t),"aria-label":`このレベルを削除`,title:`このレベルを削除`,className:`ssg-sort-delete`,children:`×`})]},e.columnKey)}),S!==null&&T===a.length&&(0,n.jsx)(`div`,{className:`ssg-sort-drop-end`})]}),(0,n.jsxs)(`div`,{className:`ssg-popover-footer`,children:[(0,n.jsx)(`button`,{type:`button`,disabled:!ne,onClick:()=>{!ne||!v||u(v.key,`asc`)},title:s?v===null?`すべての列が並び替えに使われています`:`並び替えの基準を追加します`:`並び替えが無効です`,className:`ssg-sort-footer-btn ssg-sort-footer-btn--add`,children:`+ 基準を追加`}),(0,n.jsx)(`button`,{type:`button`,disabled:!s||a.length===0,onClick:()=>{!s||a.length===0||m()},title:`すべての並び替えを解除します`,className:`ssg-sort-footer-btn ssg-sort-footer-btn--clear`,children:`すべてクリア`})]}),!s&&(0,n.jsx)(`div`,{className:`ssg-sort-note`,children:`並び替えが無効のため編集できません`})]}),document.body)}var Hr=(e,t)=>e.findIndex(e=>e.key===t),Ur=(e,t,n)=>{if(!e)return!1;if(e.type===`row`)return t>=e.startRow&&t<=e.endRow;if(e.type===`col`)return n>=e.startCol&&n<=e.endCol;let{start:r,end:i}=e.range,a=Math.min(r.row,i.row),o=Math.max(r.row,i.row),s=Math.min(r.col,i.col),c=Math.max(r.col,i.col);return t>=a&&t<=o&&n>=s&&n<=c},Wr=(e,t)=>{if(!e)return!1;if(e.type===`row`)return t>=e.startRow&&t<=e.endRow;if(e.type===`cell`){let{start:n,end:r}=e.range,i=Math.min(n.row,r.row),a=Math.max(n.row,r.row);return t>=i&&t<=a}return!1},Gr=220,Kr=8,qr=34,Jr=16,Yr=({gridRootRef:t})=>{let[n,r]=(0,e.useState)(null),[i,a]=(0,e.useState)(null),o=(0,e.useRef)(null),s=(0,e.useRef)(null),c=(0,e.useRef)(0),l=n!==null,u=(0,e.useCallback)(()=>{let e=s.current;if(!e){a(null);return}let t=c.current*qr+Jr,n=e.x,r=e.y,i=e.y-t;n=Math.max(Kr,n),n=Math.min(n,window.innerWidth-Gr-Kr),r+t>window.innerHeight-Kr&&(r=i),r=Math.max(Kr,r),a(e=>e&&e.top===r&&e.left===n&&e.width===Gr?e:{top:r,left:n,width:Gr})},[]),d=(0,e.useCallback)(()=>{r(null),a(null),s.current=null,c.current=0,requestAnimationFrame(()=>{t.current?.focus()})},[t]),f=(0,e.useCallback)((e,n)=>{document.activeElement instanceof HTMLElement&&document.activeElement.blur(),t.current?.blur(),s.current={x:e.clientX,y:e.clientY},c.current=n.length,r({params:e,items:n}),u()},[t,u]);return(0,e.useEffect)(()=>{if(!l)return;u();let e=()=>{u()},t=()=>{d()};return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,t,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,t,!0)}},[l,u,d]),(0,e.useEffect)(()=>{if(!l)return;let e=e=>{let t=e.target;t&&(o.current?.contains(t)||d())};return window.addEventListener(`pointerdown`,e),()=>{window.removeEventListener(`pointerdown`,e)}},[l,d]),(0,e.useEffect)(()=>{if(!l)return;let e=e=>{e.key===`Escape`&&(e.preventDefault(),d())};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[l,d]),{contextMenuState:n,contextMenuLayout:i,contextMenuRef:o,isContextMenuOpen:l,openContextMenu:f,closeContextMenu:d}};function Xr({isOpen:e,items:t,layout:a,popoverRef:o,onRequestClose:s}){if(!e||!a)return null;let c={position:`fixed`,top:a.top,left:a.left,width:a.width,zIndex:1e3};return(0,r.createPortal)((0,n.jsx)(`div`,{ref:o,role:`menu`,onPointerDown:e=>{e.stopPropagation()},onKeyDownCapture:e=>{e.stopPropagation()},onContextMenu:e=>{e.preventDefault()},className:`ssg-menu-panel`,style:c,children:t.map((e,t)=>e.kind===`separator`?(0,n.jsx)(`div`,{className:`ssg-menu-separator`},e.id??`sep-${t}`):e.kind===`label`?(0,n.jsx)(`div`,{className:`ssg-menu-section-label`,role:`presentation`,children:e.label},e.id??`label-${t}`):e.kind===`custom`?(0,n.jsx)(`div`,{role:`none`,children:e.render({close:s})},e.id??`custom-${t}`):(0,n.jsxs)(`button`,{type:`button`,role:`menuitem`,disabled:e.disabled,onClick:()=>{e.onSelect(),s()},className:i(`ssg-menu-item`,e.danger&&`ssg-menu-item--danger`,e.disabled&&`ssg-menu-item--disabled`),children:[(0,n.jsx)(`span`,{className:`ssg-menu-icon`,children:e.icon}),(0,n.jsx)(`span`,{className:`ssg-menu-label`,children:e.label})]},e.id??`action-${t}`))}),document.body)}var Zr=(e,t)=>{let n=new Set(e);return n.add(t),n},Qr=(e,t)=>{let n=new Set(e);return n.delete(t),n},$r=(e,t)=>{let n=new Set(e);for(let e of t)n.add(e);return n},ei=(e,t)=>{let n=new Set(e);for(let e of t)n.delete(e);return n},ti=[],ni={},ri={},ii=[],ai={},oi=[],si=300,ci=4,li=300;function ui({rows:r=ti,dataSource:o,serverSideRefreshToken:d,columns:p,onRowsChange:m,onColumnsChange:g,rowKeyGetter:_,createRow:v,createOverflowColumn:y,rowHeight:b=36,autoHeight:T=!1,estimateRowHeight:D,headerHeight:F=40,rowHeaderWidth:ie=56,height:ae,maxHeight:de,readOnly:L=!1,canEditCell:be,enableRangeSelection:we=!0,enableRowSelection:Te=!1,rowSelectionMode:Ee=`multiple`,enableSelectAllRows:Oe,rowSelection:ke,selectedRowKeys:Ae,onRowSelectionChange:je,enableGlobalFilter:Me=!0,enableColumnFilter:Pe=!0,enableSorting:R=!0,enableColumnResize:Fe=!0,enableRowHover:Le=!0,enableColumnHeaderHover:ze=!0,enableColumnMenu:Be=!0,noMatchingRowsText:Ve=`一致する行がありません`,noRowsText:He=`表示する行がありません`,showTopBar:Ue=!0,showBottomBar:We=!0,showTopBarSummary:Ge=!0,showTopBarFilter:Ke=!0,globalFilterPlaceholder:qe,globalFilterIcon:Je,showTopBarCounts:Ye=!0,showBottomBarCounts:Xe=!0,renderTopBar:$e,renderBottomBar:et,className:nt,classNames:z,getRowClassName:ft,enableContextMenu:_t=!1,getContextMenuItems:St,onContextMenuOpen:Ct,ref:wt,onStateChange:Tt}){let Et=(0,e.useRef)(null),Dt=(0,e.useRef)(null),Ot=(0,e.useRef)(null),kt=(0,e.useRef)(null),At=(0,e.useRef)(!1),B=(0,e.useRef)(null),jt=(0,e.useRef)(null),Mt=(0,e.useRef)(null),[Nt,Pt]=(0,e.useState)(``),[Ft,Lt]=(0,e.useState)(!1),[Rt,Ht]=(0,e.useState)(null),[Ut,Wt]=(0,e.useState)(null),V=(0,e.useMemo)(()=>p.filter(e=>e.visible!==!1),[p]),H=(0,e.useMemo)(()=>l(V),[V]),Yt=(0,e.useMemo)(()=>_??((e,t)=>t),[_]),U=o!=null,Xt=R,Zt=Pe,an=Me,[W,G]=(0,e.useReducer)(se,V,oe),sn=(0,e.useRef)(W.columnWidths),cn=(0,e.useRef)(null),ln=(0,e.useRef)(null);ln.current===null&&(ln.current=new Map(p.map(e=>[e.key,{width:e.width,pinned:e.pinned,visible:e.visible}])));let un=(0,e.useMemo)(()=>fe(W.selection),[W.selection]),K=(0,e.useMemo)(()=>u(H),[H]),[dn,fn]=(0,e.useState)(0),pn=K.left.reduce((e,{column:t})=>e+(W.columnWidths[t.key]??t.width),0),mn=K.right.reduce((e,{column:t})=>e+(W.columnWidths[t.key]??t.width),0),hn=K.left.length>0,gn=hn?ie+pn:0,_n=hn?0:ie,vn=(0,e.useMemo)(()=>K.center.map(({column:e})=>e),[K.center]),yn=(0,e.useMemo)(()=>vn.some(w),[vn]),bn=dn-gn-mn-_n,xn=(0,e.useMemo)(()=>!yn||dn<=0?ai:E(vn,W.columnWidths,bn),[yn,dn,vn,W.columnWidths,bn]),Sn=(0,e.useMemo)(()=>xn===ai?W.columnWidths:{...xn,...W.columnWidths},[xn,W.columnWidths]);sn.current=Sn;let Cn=f(K.left,W.columnWidths),wn=f(K.center,Sn),Tn=f(K.right,W.columnWidths),En=(0,e.useMemo)(()=>h(`left`,K.left,Cn),[K.left,Cn]),Dn=(0,e.useMemo)(()=>h(`center`,K.center,wn),[K.center,wn]),kn=(0,e.useMemo)(()=>h(`right`,K.right,Tn),[K.right,Tn]),q=(0,e.useMemo)(()=>({left:En,center:Dn,right:kn}),[En,Dn,kn]),An=q.left.entries.length>0,jn=q.right.entries.length>0,Mn=!An,Nn=ie,Pn=Mn?ie:0,Fn=An?Nn+q.left.totalWidth:0,In=q.right.totalWidth,Ln=Pn+q.center.totalWidth,zn=Fn+Ln+In,{filterPopoverState:J,filterPopoverLayout:Vn,filterPopoverRef:Hn,filterTextInputRef:Un,filterSelectRef:Wn,isFilterPopoverOpen:Gn,openedFilterColumn:Y,openColumnFilterPopover:Xn,closeColumnFilterPopover:Zn,updateFilterPopoverDraft:er}=Ne({visibleColumns:V,columnFilterValues:W.filters.columnFilters,enableColumnFilter:Zt,gridRootRef:Et}),{columnMenuLayout:tr,columnMenuRef:rr,isColumnMenuOpen:ir,openedMenuColumnKey:ar,openedMenuColumn:or,openColumnMenuFromButton:sr,openColumnMenuFromContextMenu:cr,closeColumnMenu:X}=_r({visibleColumns:V,enableColumnMenu:Be,gridRootRef:Et}),{isColumnChooserOpen:ur,columnChooserLayout:dr,columnChooserRef:pr,openColumnChooser:mr,closeColumnChooser:hr}=Dr({enableColumnMenu:Be,gridRootRef:Et}),{isSortManagerOpen:gr,sortManagerLayout:vr,sortManagerRef:yr,openSortManager:br,closeSortManager:xr}=zr({enableSorting:Xt,gridRootRef:Et}),{contextMenuState:Sr,contextMenuLayout:wr,contextMenuRef:Tr,isContextMenuOpen:Er,openContextMenu:Or,closeContextMenu:kr}=Yr({gridRootRef:Et});(0,e.useEffect)(()=>{let e=V.reduce((e,t)=>(w(t)||(e[t.key]=t.width),e),{});G(a.resetColumnWidths(e))},[V]);let Ar=W.filters.globalText,jr=W.filters.columnFilters,Mr=(0,e.useDeferredValue)(jr),{order:Nr,status:Pr,progress:Ir}=Bn({rows:r,baseOrder:(0,e.useMemo)(()=>ve(r.length),[r.length]),columns:V,globalText:Ar,enabled:an}),Lr=(0,e.useMemo)(()=>{let e=[];for(let t of V)xe(Mr[t.key])&&e.push(t.key);return e.join(`\0`)},[V,Mr]),Rr=(0,e.useMemo)(()=>{let e=new Map;if(Lr.length===0)return e;let t=new Set(Lr.split(`\0`)),n=r.length;for(let i of V){if(!t.has(i.key))continue;let a=new Float64Array(n);for(let e=0;e<n;e+=1)a[e]=Number(I(r[e],i));e.set(i.key,a)}return e},[r,V,Lr]),Br=(0,e.useMemo)(()=>De(r,Nr,V,Mr,Rr),[r,Nr,V,Mr,Rr]),Gr=(0,e.useMemo)(()=>lt(r,Br,V,W.sort),[r,Br,V,W.sort]),Kr=(0,e.useMemo)(()=>({getRowCount:()=>Gr.length,getRow:e=>r[Gr[e]],getSourceIndex:e=>Gr[e],getRowKey:e=>Yt(r[Gr[e]],Gr[e])}),[Gr,r,Yt]),qr=(0,e.useMemo)(()=>U?qn({globalText:an?Ar:``,columnFilters:Zt?jr:ri,sort:Xt?W.sort:ii}):ni,[U,an,Ar,Zt,jr,Xt,W.sort]),Jr=(0,e.useMemo)(()=>U?Jn(qr):``,[U,qr]),[ui,di]=(0,e.useState)(qr),[fi,pi]=(0,e.useState)(Jr);(0,e.useEffect)(()=>{if(!U)return;let e=setTimeout(()=>{di(qr),pi(Jr)},li);return()=>clearTimeout(e)},[U,Jr,qr]);let mi=Kn({dataSource:o,rowKeyGetter:Yt,query:ui,queryKey:fi,refreshToken:d}),hi=mi.requestRange,Z=U?mi.rowModel:Kr,gi=(0,e.useRef)(Z);gi.current=Z;let _i=(0,e.useCallback)(e=>{if(!_t||!St)return;let t=e.target;if(!t)return;let n=t.closest(`[data-row-index]`);if(!n)return;let r=n.dataset.rowIndex;if(r===void 0)return;let i=Number(r);if(!Number.isInteger(i))return;let a=Z.getRow(i);if(!a)return;let o=Z.getRowKey(i)??i,s,c,l=t.closest(`[data-ssg-col-key]`),u=l?.dataset.ssgColKey;if(l&&u!==void 0){let e=Hr(H,u);if(e<0)return;let t=H[e];s={type:`cell`,rowIndex:i,colIndex:e,rowKey:o,row:a,column:t,value:I(a,t)},c=Ur(W.selection,i,e)}else s={type:`rowHeader`,rowIndex:i,rowKey:o,row:a},c=Wr(W.selection,i);let d={target:s,clientX:e.clientX,clientY:e.clientY,selection:W.selection,activeCell:W.activeCell,isTargetSelected:c},f=St(d);!f||f.length===0||(e.preventDefault(),Ct?.(d),Or(d,f))},[_t,St,Ct,Z,H,W.selection,W.activeCell,Or]),{isAutosizing:vi,runAutosize:yi}=On({rowModelRef:gi,gridRootRef:Et,columnWidthsRef:sn,dispatch:G}),Q=Z.getRowCount(),bi=(0,e.useMemo)(()=>{let e=null;return()=>e??=Array.from(Gr,e=>r[e])},[Gr,r]),xi=(0,e.useMemo)(()=>s(V,Sn),[V,Sn]),[Si,Ci]=(0,e.useState)(0),[wi,Ti]=(0,e.useState)(0);(0,e.useEffect)(()=>{let e=B.current;if(!e)return;Ci(e.scrollTop),Ti(e.clientHeight),fn(e.clientWidth);let t=()=>Ci(e.scrollTop);e.addEventListener(`scroll`,t,{passive:!0});let n=new ResizeObserver(()=>{Ti(e.clientHeight),fn(e.clientWidth)});return n.observe(e),()=>{e.removeEventListener(`scroll`,t),n.disconnect()}},[]);let Ei=q.center.entries,Di=(0,t.useVirtualizer)({horizontal:!0,count:Ei.length,getScrollElement:()=>B.current,estimateSize:e=>Ei[e]?.paneLocalSize??Ei[e]?.column.width??120,overscan:8,useFlushSync:!1,scrollMargin:Fn}),Oi=Di.getVirtualItems(),ki=D??b,Ai=(0,e.useMemo)(()=>V.some(e=>e.autoHeight===!0),[V]),ji=!U&&dt(T,Ai,Q,5e4);(0,e.useEffect)(()=>{},[T,Ai,Q,U]);let Mi=(0,e.useRef)(new Map),[Ni,Pi]=(0,e.useState)(0),[Fi,Ii]=(0,e.useState)(0),Li=(0,e.useRef)(null),Ri=(0,e.useRef)(new Set),zi=(0,e.useMemo)(()=>ji?nn(Q,ki,Z.getRowKey,Mi.current):null,[ji,Q,ki,Z]),Bi=(0,e.useMemo)(()=>ji&&zi?on(zi):pt(Q,b),[ji,zi,Ni,Q,b]),Vi=(0,e.useMemo)(()=>ji?yt({headerHeight:F,viewportHeight:wi,scrollTop:Si,overscan:20},Bi):vt({rowCount:Q,rowHeight:b,headerHeight:F,viewportHeight:wi,scrollTop:Si,overscan:20,maxBodyPx:ut}),[ji,Bi,Q,b,F,wi,Si]),Hi=Vi.rows,Ui=Vi.rowIndexSet,Wi=Hi.length>0?Hi[0].index:0,Gi=Hi.length>0?Hi[Hi.length-1].index:-1;(0,e.useEffect)(()=>{if(!U)return;let e=B.current;e&&(e.scrollTop=0),Ci(0)},[U,fi]),(0,e.useEffect)(()=>{U&&(Gi<Wi||hi(Wi,Gi+1))},[U,Wi,Gi,hi,fi]);let Ki=Vi.physicalBodyHeight,qi=Vi.translateY===0?void 0:`translateY(${Vi.translateY}px)`,Ji=Vi.scaleFactor,Yi=Vi.windowBaseOffsetPx;(0,e.useLayoutEffect)(()=>{if(!ji||!zi){Li.current?.disconnect(),Li.current=null,Ri.current.clear();return}let e=B.current;if(!e)return;let t=e.querySelectorAll(`[data-autoheight-cell]`);if(t.length>0){let n=new Map;t.forEach(e=>{let t=e.closest(`[data-row-index]`);if(!t)return;let r=Number(t.dataset.rowIndex);if(!Number.isFinite(r))return;let i=Math.ceil(e.getBoundingClientRect().height),a=n.get(r);(a===void 0||i>a)&&n.set(r,i)});let r=!1,i=1/0;if(n.forEach((e,t)=>{rn(zi,t,Z.getRowKey(t)??t,e)&&(r=!0,t<i&&(i=t))}),r){let t=e.scrollTop,n=Bi.rowAtContentY(t),r=t-Bi.rowTop(n);tn(zi,i),e.scrollTop=zi.prefix[n]+r,Pi(e=>e+1)}}let n=Li.current??new ResizeObserver(()=>Ii(e=>e+1));Li.current=n;let r=Ri.current,i=new Set;t.forEach(e=>{i.add(e),r.has(e)||(n.observe(e),r.add(e))});let a=[];r.forEach(e=>{i.has(e)||a.push(e)}),a.forEach(e=>{n.unobserve(e),r.delete(e)})},[ji,zi,Bi,Z,Hi,wi,Ni,Fi]),(0,e.useEffect)(()=>{let e=Ri.current;return()=>{Li.current?.disconnect(),Li.current=null,e.clear()}},[]);let Xi=(0,e.useMemo)(()=>Oi.map(e=>Ei[e.index]).filter(e=>!!e),[Oi,Ei]),Zi=q.left.entries,Qi=q.right.entries,$i=(0,e.useMemo)(()=>{if(!W.activeCell)return null;let{row:e,col:t}=W.activeCell;if(e<0||e>=Q)return null;let n=C(q,t);return n?{pane:n.pane,rect:{left:n.extent.start,top:Bi.rowTop(e),width:n.extent.width,height:Bi.rowsHeight(e,e)}}:null},[W.activeCell,Q,q,Bi]),ea=(0,e.useMemo)(()=>$i&&$i.pane===`center`?$i.rect:null,[$i]),ta=(0,e.useCallback)(e=>$i&&$i.pane===e?$i.rect:null,[$i]),na=(0,e.useCallback)(e=>W.editingCell?ta(e):null,[W.editingCell,ta]);xt({scrollRef:B,columnVirtualizer:Di,columnMeasurements:xi,totalScrollWidth:zn,physicalBodyHeight:Ki,headerHeight:F,leftPaneWidth:Fn,rightPaneWidth:In,centerLeadingWidth:Pn,activeCellRect:ea,verticalScaleFactor:Ji});let ra=(0,e.useMemo)(()=>{if(ke!==void 0)return ke;if(Ae!==void 0)return{type:`include`,rowKeys:Ae}},[ke,Ae]),ia=ra!==void 0,aa=Oe??(Te&&Ee===`multiple`),oa=W.rowSelection,sa=P(oa,Q),ca=(0,e.useRef)(oa);ca.current=oa;let la=(0,e.useRef)(Ee);la.current=Ee;let ua=(0,e.useRef)(je);ua.current=je;let da=(0,e.useRef)(ia);da.current=ia;let fa=(0,e.useRef)(null),pa=(0,e.useCallback)(e=>{re(ca.current,e)||ua.current?.(te(e)),da.current||G(a.setRowSelectionState(e))},[G]),ma=(0,e.useRef)(pa);ma.current=pa;let ha=(0,e.useCallback)((e,t)=>{let n=gi.current,r=Math.min(e,t),i=Math.max(e,t),a=[];for(let e=r;e<=i;e+=1)n.getRow(e)&&a.push(n.getRowKey(e)??e);return a},[]),ga=(0,e.useCallback)((e,t)=>{let n=gi.current;if(!n.getRow(e))return;let r=n.getRowKey(e)??e;if(la.current===`single`){fa.current=e,pa(ee(r));return}if(t.shiftKey&&fa.current!==null){pa(A(ha(fa.current,e)));return}fa.current=e,pa(k(ca.current,r))},[pa,ha]),_a=(0,e.useCallback)(e=>{let t=gi.current;if(t.getRow(e)){if(la.current===`single`){pa(ee(t.getRowKey(e)??e));return}fa.current!==null&&pa(A(ha(fa.current,e)))}},[pa,ha]),va=(0,e.useCallback)(()=>{let e=gi.current;pa(P(ca.current,e.getRowCount())===`all`?M():j())},[pa]);(0,e.useEffect)(()=>{if(!ia||!ra)return;let e=ne(ra);re(ca.current,e)||G(a.setRowSelectionState(e))},[ia,ra,G]);let{updateSelectionFromPointer:ya,handleCellPointerDown:ba,handleCellPointerEnter:xa,handleNativeDragStart:Sa,handleRowHeaderPointerDown:Ca,handleRowHeaderPointerEnter:wa,handleColumnHeaderPointerDown:Ta,handleColumnHeaderPointerEnter:Ea}=bt({gridRootRef:Et,bodyScrollRef:kt,scrollContainerRef:B,leftPaneScrollRef:jt,rightPaneScrollRef:Mt,pointerClientRef:Dt,autoScrollFrameRef:Ot,uiState:W,dispatch:G,enableRangeSelection:we,enableSorting:Xt,orderedColumns:H,filteredRowsLength:Q,visibleColumnsLength:V.length,paneLayout:q,leftLeadingWidth:Nn,centerLeadingWidth:Pn,rightLeadingWidth:0,headerHeight:F,rowMetrics:Bi,verticalScaleFactor:Ji,setHoveredRowIndex:Ht,setHoveredColumnIndex:Wt,enableRowHover:Le,enableColumnHeaderHover:ze,enableRowSelection:Te,onGutterRowSelect:ga,onGutterRowSelectDrag:_a}),{isWholeGridSelected:Da,handleCopy:Oa,handlePaste:ka}=Ie({rows:r,rowModel:Z,visibleColumns:H,uiState:W,readOnly:L,canEditCell:be,createRow:v,createOverflowColumn:y,onRowsChange:m,onColumnsChange:g,dispatch:G}),Aa=(0,e.useCallback)(()=>{if(Q===0||V.length===0)return;let e={row:0,col:0},t={row:Q-1,col:V.length-1};G(a.startSelection(e)),G(a.updateSelection(t)),G(a.endSelection()),G(a.activateCell(e))},[G,Q,V.length]),{getMovedCell:ja,handleKeyDown:Ma}=tt({uiState:W,rowModel:Z,visibleColumns:H,readOnly:L,canEditCell:be,setEditorInitialValue:Pt,dispatch:G,handleCopy:Oa,handleCellDoubleClick:(0,e.useCallback)(e=>{let t=Z.getRow(e.row),n=H[e.col];if(!t||!n||!ge({readOnly:L,canEditCell:be},e.row,e.col,t,n))return;let r=I(t,n);Pt(String(r??``)),G(a.startEdit(e))},[be,G,Z,L,H]),isWholeGridSelected:Da,selectEntireGrid:Aa}),{startEditWithValue:Na,commitEdit:Pa,cancelEdit:Fa}=Qe({uiState:W,rows:r,visibleColumns:H,rowModel:Z,setEditorInitialValue:Pt,onRowsChange:m,dispatch:G,getMovedCell:ja,gridRootRef:Et,editorActionGuardRef:At}),Ia=W.editingCell?H[W.editingCell.col]:void 0,La=(0,e.useCallback)(e=>{let t=Z.getRow(e.row),n=H[e.col];if(!t||!n||!ge({readOnly:L,canEditCell:be},e.row,e.col,t,n))return;let r=I(t,n);Na(e,String(r??``))},[be,Z,L,Na,H]),Ra=(0,e.useMemo)(()=>{if(!W.selection)return null;if(W.selection.type===`cell`){let e=ce(W.selection.range);return{extents:x(q,e.start.col,e.end.col),startRow:e.start.row,endRow:e.end.row}}if(W.selection.type===`row`){let e=le(W.selection.startRow,W.selection.endRow);return{extents:S(q),startRow:e.startRow,endRow:e.endRow}}let e=ue(W.selection.startCol,W.selection.endCol);return{extents:x(q,e.startCol,e.endCol),startRow:0,endRow:Math.max(Q-1,0)}},[W.selection,q,Q]),za=(0,e.useMemo)(()=>{if(!Ra)return null;let e=mt(Ra.startRow,Ra.endRow,Wi,Gi);return e?{top:Bi.rowTop(e.start),height:Bi.rowsHeight(e.start,e.end)}:null},[Ra,Bi,Wi,Gi]),Ba=(0,e.useCallback)(e=>{if(!Ra||!za)return null;let t=Ra.extents[e];return t?{left:t.start,top:za.top,width:t.width,height:za.height}:null},[Ra,za]),Va=(0,e.useCallback)(e=>{if(e.preventDefault(),e.button===0&&!(Q===0||V.length===0)){if(Et.current?.focus(),aa){va();return}if(Da){G(a.clearSelection()),G(a.activateCell(null));return}Aa()}},[G,Q,Da,Aa,V.length,aa,va]),Ha=(0,e.useCallback)(e=>{Ht(t=>t===e?null:t)},[]),Ua=(0,e.useCallback)(e=>{Wt(t=>t===e?null:t)},[]),Wa=(0,e.useCallback)(()=>{Lt(!0)},[]),Ga=(0,e.useCallback)(()=>{Lt(!1)},[]),Ka=(0,e.useCallback)((e,t)=>{t.preventDefault(),t.stopPropagation();let n=t.timeStamp,r=cn.current;if(r&&r.key===e.key&&n-r.time<si&&Math.abs(t.clientX-r.x)<ci){cn.current=null,yi([e]);return}cn.current={key:e.key,time:n,x:t.clientX},G(a.startColumnResize(e.key,t.clientX,sn.current[e.key]??e.width,e.minWidth??60,e.maxWidth))},[G,yi]),qa=(0,e.useCallback)((e,t)=>{if(X(),!g)return;let n=p.find(t=>t.key===e);n&&(n.pinned??void 0)!==t&&(g(p.map(n=>{let r=sn.current[n.key]??n.width;return n.key===e?{...n,width:r,pinned:t}:r===n.width?n:{...n,width:r}})),G(a.stopEdit()),G(a.clearSelection()),G(a.activateCell(null)))},[X,p,G,g]),Ja=(0,e.useCallback)(e=>{X();let t=V.find(t=>t.key===e);t&&yi([t])},[X,yi,V]),Ya=(0,e.useCallback)(()=>{X(),yi(V)},[X,yi,V]),Xa=(0,e.useMemo)(()=>p.map(e=>({key:e.key,title:e.title??e.key,visible:e.visible!==!1,pane:c(e)})),[p]),Za=(0,e.useCallback)(()=>{X(),mr()},[X,mr]),Qa=(0,e.useMemo)(()=>V.map(e=>({key:e.key,title:e.title??e.key})),[V]),$a=(0,e.useCallback)(()=>{X(),br()},[X,br]),eo=(0,e.useCallback)(e=>{X(),Xn(e)},[X,Xn]),to=(0,e.useCallback)((e,t)=>{if(!g)return;let n=p.find(t=>t.key===e);n&&n.visible!==!1!==t&&(!t&&p.filter(e=>e.visible!==!1).length<=1||(g(p.map(n=>{let r=sn.current[n.key]??n.width;return n.key===e?{...n,width:r,visible:t}:r===n.width?n:{...n,width:r}})),G(a.stopEdit()),G(a.clearSelection()),G(a.activateCell(null))))},[p,G,g]),no=(0,e.useCallback)(()=>{g&&p.some(e=>e.visible===!1)&&(g(p.map(e=>{let t=sn.current[e.key]??e.width,n=t!==e.width,r=e.visible===!1;return!n&&!r?e:r?{...e,width:t,visible:!0}:{...e,width:t}})),G(a.stopEdit()),G(a.clearSelection()),G(a.activateCell(null)))},[p,G,g]),ro=(0,e.useCallback)((e,t)=>{if(!g||e.length!==p.length)return;let n=new Map(p.map(e=>[e.key,e]));if(!e.every(e=>n.has(e)))return;let r=l(e.map(e=>{let r=n.get(e),i=sn.current[r.key]??r.width,a=t?.has(e)?t.get(e):r.pinned,o=i!==r.width,s=(r.pinned??void 0)!==(a??void 0);return o||s?{...r,width:i,pinned:a}:r}));r.length===p.length&&r.every((e,t)=>{let n=p[t];return!!n&&n.key===e.key&&n.width===e.width&&(n.pinned??void 0)===(e.pinned??void 0)})||(g(r),G(a.stopEdit()),G(a.clearSelection()),G(a.activateCell(null)))},[p,G,g]),io=(0,e.useCallback)(e=>{ro(e)},[ro]),{onColumnDragHandlePointerDown:ao,leftIndicatorRef:oo,centerIndicatorRef:so,rightIndicatorRef:co,applyReorderSettle:lo}=It({enabled:!!g,columns:p,paneLayout:q,leftPaneScrollRef:jt,rightPaneScrollRef:Mt,bodyScrollRef:kt,scrollContainerRef:B,leftLeadingWidth:Nn,centerLeadingWidth:Pn,rightLeadingWidth:0,applyColumnOrderAndPin:ro});(0,e.useLayoutEffect)(()=>{lo()},[q,lo]);let uo=g?ao:void 0,fo={position:`absolute`,top:0,height:F+Ki,transform:`translateX(-1px)`,pointerEvents:`none`,zIndex:8,display:`none`},po=(0,e.useCallback)(()=>{if(!g)return;let e=ln.current;if(!e)return;let t=!1,n=p.map(n=>{let r=sn.current[n.key]??n.width,i=e.get(n.key);if(!i)return r===n.width?n:{...n,width:r};let a=i.pinned??void 0,o=r!==i.width,s=(n.pinned??void 0)!==a,c=n.visible!==!1!=(i.visible!==!1);return(o||s||c)&&(t=!0),{...n,width:i.width,pinned:i.pinned,visible:i.visible}});t&&(g(n),G(a.stopEdit()),G(a.clearSelection()),G(a.activateCell(null)))},[p,G,g]),mo=(0,e.useCallback)(()=>{X(),po()},[X,po]),ho=(0,e.useCallback)(e=>Y?I(r[e],Y):void 0,[r,Y]),{options:go,allValues:_o,status:vo,progress:yo}=Rn({column:Y,rowCount:r.length,getRawValueAt:ho}),bo=Y?W.filters.columnFilters[Y.key]:void 0,xo=(0,e.useMemo)(()=>ye(bo)?{mode:bo.mode===`exclude`?`exclude`:`include`,values:new Set(bo.values)}:null,[bo]),So=!(Y?.filterOptions&&Y.filterOptions.length>0),Co=(0,e.useCallback)((e,t,n)=>{let r=t.mode===`include`?t.values.size:n-t.values.size;if(r>=n){G(a.clearColumnFilter(e));return}if(r<=0){G(a.setColumnFilter(e,{kind:`set`,mode:`include`,values:[]}));return}let i={kind:`set`,mode:t.mode,values:Array.from(t.values)};G(a.setColumnFilter(e,i))},[G]),wo=(0,e.useCallback)(e=>{if(!J)return;let t=go.length,n=xo,r;r=Yn(n,e)?n===null?So?{mode:`exclude`,values:new Set([e])}:{mode:`include`,values:Qr(_o,e)}:n.mode===`include`?{mode:`include`,values:Qr(n.values,e)}:{mode:`exclude`,values:Zr(n.values,e)}:n.mode===`include`?{mode:`include`,values:Zr(n.values,e)}:{mode:`exclude`,values:Qr(n.values,e)},Co(J.columnKey,r,t)},[J,xo,So,_o,go,Co]),To=(0,e.useCallback)((e,t)=>{if(!J)return;let n=J.columnKey,r=go.length;if(e===`all`){t?G(a.clearColumnFilter(n)):Co(n,{mode:`include`,values:new Set},r);return}let i=xo,o;if(t){if(i===null){G(a.clearColumnFilter(n));return}o=i.mode===`include`?{mode:`include`,values:$r(i.values,e)}:{mode:`exclude`,values:ei(i.values,e)}}else o=i===null?So?{mode:`exclude`,values:new Set(e)}:{mode:`include`,values:ei(_o,e)}:i.mode===`include`?{mode:`include`,values:ei(i.values,e)}:{mode:`exclude`,values:$r(i.values,e)};Co(n,o,r)},[J,xo,So,_o,go,Co,G]),Eo=(0,e.useCallback)(()=>{J&&G(a.clearColumnFilter(J.columnKey))},[G,J]),Do=(0,e.useCallback)(()=>{if(!J)return;let e=V.find(e=>e.key===J.columnKey)?.filterType??`text`;if(e===`set`){Zn();return}if(e===`number`){let e=Se(J.draftValue);if(!e){G(a.clearColumnFilter(J.columnKey)),Zn();return}G(a.setColumnFilter(J.columnKey,e)),Zn();return}let t=e===`select`?J.draftValue:J.draftValue.trim();if(!t){G(a.clearColumnFilter(J.columnKey)),Zn();return}let n=e===`select`?{kind:`select`,value:t}:e===`date`?{kind:`date`,value:t}:e===`custom`?{kind:`custom`,value:t}:{kind:`text`,value:t};G(a.setColumnFilter(J.columnKey,n)),Zn()},[Zn,G,J,V]),Oo=(0,e.useCallback)(()=>{J&&(G(a.clearColumnFilter(J.columnKey)),Zn())},[Zn,G,J]),ko=(0,e.useCallback)((e,t)=>{if(X(),!R)return;let n=rt(W.sort,e,t,!1);G(n.length===0?a.clearSort():a.setSort(n))},[X,G,R,W.sort]),Ao=(0,e.useCallback)((e,t)=>{if(!R)return;let n=it(W.sort,e,t);G(a.setSort(n))},[G,R,W.sort]),jo=(0,e.useCallback)((e,t)=>{if(!R)return;let n=at(W.sort,e,t);G(a.setSort(n))},[G,R,W.sort]),Mo=(0,e.useCallback)((e,t)=>{if(!R)return;let n=ot(W.sort,e,t);G(a.setSort(n))},[G,R,W.sort]),No=(0,e.useCallback)(e=>{if(!R)return;let t=st(W.sort,e);G(t.length===0?a.clearSort():a.setSort(t))},[G,R,W.sort]),Po=(0,e.useCallback)(()=>{R&&G(a.clearSort())},[G,R]),Fo=(0,e.useCallback)((e,t)=>{if(!R)return;let n=ct(W.sort,e,t);G(a.setSort(n))},[G,R,W.sort]),Io=(0,e.useCallback)((e,t,i,a,o)=>{let s=I(e,i);return i.renderCell?i.renderCell({row:e,rowIndex:t,colIndex:a,value:s,column:i,isActive:o.isActive,isSelected:o.isSelected,isEditing:o.isEditing,readOnly:o.readOnly,setValue:e=>{if(!m)return;let n=Z.getSourceIndex(t);n!==void 0&&m(r.map((t,r)=>r===n?_e(t,i,e):t))}}):(0,n.jsx)(`span`,{children:i.valueFormatter?i.valueFormatter({value:s,row:e,column:i}):String(s??``)})},[Z,m,r]),{slotContext:Lo}=Ze({rows:r,viewRowCount:Q,getFilteredRows:bi,columns:p,visibleColumns:V,uiState:W,setGlobalFilterText:(0,e.useCallback)(e=>{G(a.setGlobalFilter(e))},[G]),globalFilterStatus:Pr,globalFilterProgress:Ir}),Ro=(0,e.useMemo)(()=>({width:ie,minWidth:ie}),[ie]),zo=Q===0,Bo=(e,t,n)=>({position:`sticky`,...e===`left`?{left:0}:{right:0},width:t,minWidth:t,flexShrink:0,alignSelf:`stretch`,zIndex:2,...n?e===`left`?{borderRight:`1px solid #cbd5e1`,boxShadow:`6px 0 8px -6px rgba(15, 23, 42, 0.35)`}:{borderLeft:`1px solid #cbd5e1`,boxShadow:`-6px 0 8px -6px rgba(15, 23, 42, 0.35)`}:{}}),Vo=(()=>{if(!Y)return`(なし)`;let e=W.filters.columnFilters[Y.key];if(ye(e))return e.mode===`exclude`?`${e.values.length}件を除外中`:`${e.values.length}件を選択中`;if(xe(e))return e.raw;let t=Ce(e);return t.trim()?t:`(なし)`})(),Ho=Y?(0,n.jsx)(Qn,{isOpen:!!J,title:Y.title||Y.key,filterType:Y.filterType??`text`,isServerSide:U,draftValue:J?.draftValue??``,currentValueText:Vo,layout:Vn,selectOptions:go,setSelection:xo,optionsStatus:vo,optionsProgress:yo,popoverRef:Hn,textInputRef:Un,selectRef:Wn,onRequestClose:Zn,onDraftChange:er,onApply:Do,onClear:Oo,onSetValueToggle:wo,onSetSelectAllChange:To,onSetClear:Eo}):null,Uo=or?(0,n.jsx)(Cr,{isOpen:ir,title:or.title||or.key,columnKey:or.key,canFilter:Zt&&!!or.filterType,onOpenFilter:()=>eo(or),canSort:Xt,sortDirection:W.sort.find(e=>e.columnKey===or.key)?.direction??null,onSortChange:e=>ko(or.key,e),onOpenSortManager:$a,pinned:or.pinned,canChangePinned:!!g,layout:tr,popoverRef:rr,onPinnedChange:qa,onAutosizeColumn:Ja,onAutosizeAllColumns:Ya,onOpenColumnChooser:Za,canResetColumns:!!g,onResetColumns:mo,onRequestClose:X}):null,Wo=(0,n.jsx)(Fr,{isOpen:ur,items:Xa,canToggle:!!g,layout:dr,panelRef:pr,onToggleColumnVisibility:to,onShowAllColumns:no,onResetColumns:po,onReorderColumns:io,onRequestClose:hr}),Go=(0,n.jsx)(Vr,{isOpen:gr,entries:W.sort,columns:Qa,canSort:Xt,layout:vr,panelRef:yr,onAddLevel:Ao,onChangeDirection:jo,onChangeColumn:Mo,onRemoveLevel:No,onClearAll:Po,onMove:Fo,onRequestClose:xr}),Ko=(0,n.jsx)(Xr,{isOpen:Er,items:Sr?.items??oi,layout:wr,popoverRef:Tr,onRequestClose:kr}),qo=Gn||ir||ur||gr||Er,Jo=Ge,Yo=Ke&&an,Xo=Ue?Re($e,Lo,Jo||Yo?(0,n.jsx)(nr,{context:Lo,showSummary:Jo,showFilter:Yo,showCounts:Ye,globalFilterPlaceholder:qe,globalFilterIcon:Je}):null):null,Zo=We?Re(et,Lo,(0,n.jsx)($n,{context:Lo,showCounts:Xe})):null,Qo=ae===void 0&&de===void 0?void 0:{...ae===void 0?{}:{height:ae},maxHeight:de??(ae===void 0?void 0:`none`)},$=(0,e.useRef)(null);$.current={dispatch:G,rowModel:Z,viewRowCount:Q,rowMetrics:Bi,paneLayout:q,orderedColumns:H,columns:p,onColumnsChange:g,uiState:W,headerHeight:F,verticalScaleFactor:Ji,leftPaneTotalWidth:Fn,rightPaneTotalWidth:In,centerLeadingWidth:Pn,windowFirstRow:Wi,windowLastRow:Gi,physicalBodyHeight:Ki,rows:r,isServerSide:U},(0,e.useImperativeHandle)(wt,()=>{let e=(e,t)=>{let n=B.current,r=$.current;!n||!r||n.scrollTo({top:e===null?n.scrollTop:gt(e,r.verticalScaleFactor),left:t===null?n.scrollLeft:t,behavior:`auto`})},t=(e,t)=>{let n=B.current,r=$.current;if(!n||!r||r.viewRowCount===0)return null;let i=Math.min(Math.max(e,0),r.viewRowCount-1);return $t({rowTop:r.rowMetrics.rowTop(i),rowHeight:r.rowMetrics.rowsHeight(i,i),headerHeight:r.headerHeight,viewportHeight:n.clientHeight,currentScrollTop:ht(n.scrollTop,r.verticalScaleFactor),align:t})},n=(e,t)=>{let n=B.current,r=$.current;if(!n||!r)return null;let i=C(r.paneLayout,e);return!i||i.pane!==`center`?null:en({cellLeft:r.leftPaneTotalWidth+r.centerLeadingWidth+i.extent.start,cellWidth:i.extent.width,leftPaneWidth:r.leftPaneTotalWidth,rightPaneWidth:r.rightPaneTotalWidth,viewportWidth:n.clientWidth,currentScrollLeft:n.scrollLeft,align:t})},r=(r,i,a)=>{e(t(r,a),n(i,a))},i=e=>{let t=$.current;if(!t)return null;let n=e=>t.rowModel.getRow(e),r=Vt(e);if(r===`raw`)return t.isServerSide?(console.warn(`SpreadsheetGrid: scope 'raw' は serverSide では未ロード行を取得できないため、'view'(ロード済みビュー行)として扱います。全件エクスポートはサーバ側での実施を推奨します。`),{getRow:n,startRow:0,endRow:t.viewRowCount,columns:t.orderedColumns}):{getRow:e=>t.rows[e],startRow:0,endRow:t.rows.length,columns:t.orderedColumns};if(r===`rendered`)return{getRow:n,startRow:t.windowFirstRow,endRow:t.windowLastRow>=t.windowFirstRow?t.windowLastRow+1:t.windowFirstRow,columns:t.orderedColumns};if(r===`selection`){let e=t.uiState.selection;if(!e)return null;if(e.type===`cell`){let r=ce(e.range);return{getRow:n,startRow:r.start.row,endRow:r.end.row+1,columns:t.orderedColumns.slice(r.start.col,r.end.col+1)}}if(e.type===`row`){let r=le(e.startRow,e.endRow);return{getRow:n,startRow:r.startRow,endRow:r.endRow+1,columns:t.orderedColumns}}let r=ue(e.startCol,e.endCol);return{getRow:n,startRow:0,endRow:t.viewRowCount,columns:t.orderedColumns.slice(r.startCol,r.endCol+1)}}return{getRow:n,startRow:0,endRow:t.viewRowCount,columns:t.orderedColumns}},o=e=>{let t=i(e?.scope??`view`);return t?zt({getRow:t.getRow,startRow:t.startRow,endRow:t.endRow,columns:t.columns,delimiter:e?.delimiter,includeHeaders:e?.includeHeaders,bom:e?.bom}):e?.bom?``:``},s=e=>{let t=i(e?.scope??`view`);return t?Bt({getRow:t.getRow,startRow:t.startRow,endRow:t.endRow,columns:t.columns}):{columns:[],rows:[]}};return{scrollToRow:(n,r)=>e(t(n,r?.align??`auto`),null),scrollToCell:(e,t,n)=>r(e,t,n?.align??`auto`),scrollToTop:()=>{B.current?.scrollTo({top:0,behavior:`auto`})},scrollToBottom:()=>{let e=B.current,t=$.current;!e||!t||e.scrollTo({top:Math.max(t.headerHeight+t.physicalBodyHeight-e.clientHeight,0),behavior:`auto`})},getVisibleRowRange:()=>{let e=$.current;return!e||e.windowLastRow<e.windowFirstRow?null:{startIndex:e.windowFirstRow,endIndex:e.windowLastRow+1}},getActiveCell:()=>{let e=$.current?.uiState.activeCell;return e?{row:e.row,col:e.col}:null},setActiveCell:(e,t)=>{let n=$.current;n&&(n.dispatch(a.activateCell(e)),e&&t?.scrollIntoView&&r(e.row,e.col,`auto`))},getSelection:()=>$.current?.uiState.selection??null,selectCell:(e,t,n)=>{let i=$.current;if(!i)return;let o={row:e,col:t};i.dispatch(a.startSelection(o)),i.dispatch(a.endSelection()),n?.scrollIntoView&&r(e,t,`auto`)},selectRange:(e,t)=>{let n=$.current;n&&(n.dispatch(a.startSelection(e.start)),n.dispatch(a.updateSelection(e.end)),n.dispatch(a.endSelection()),t?.scrollIntoView&&r(e.end.row,e.end.col,`auto`))},clearSelection:()=>{$.current?.dispatch(a.clearSelection())},getSelectedRows:()=>{let e=$.current;if(!e)return[];let t=e.uiState.selection;if(!t)return[];let n=[],r=t=>{let r=e.rowModel.getRow(t);r&&n.push(r)};if(t.type===`cell`){let e=ce(t.range);for(let t=e.start.row;t<=e.end.row;t+=1)r(t)}else if(t.type===`row`){let e=le(t.startRow,t.endRow);for(let t=e.startRow;t<=e.endRow;t+=1)r(t)}else for(let t=0;t<e.viewRowCount;t+=1)r(t);return n},exportCsv:e=>o(e),downloadCsv:(e,t)=>{if(typeof document>`u`)return;let n=o({...t,bom:t?.bom??!0}),r=new Blob([n],{type:`text/csv;charset=utf-8;`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=e??`export.csv`,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(i)},getExportData:e=>s(e),getState:()=>{let e=$.current;return e?Kt(e.uiState.columnWidths,e.uiState.filters,e.uiState.sort,Gt(e.columns)):Kt({},{globalText:``,columnFilters:{}},[],[])},applyState:e=>{let t=$.current;if(!t)return;let n=qt(e);t.onColumnsChange&&n.columns&&t.onColumnsChange(Jt(t.columns,n.columns,n.columnWidths)),t.dispatch(a.resetColumnWidths(n.columnWidths)),t.dispatch(a.setAllFilters(n.filters)),t.dispatch(a.setSort(n.sort))},getRowSelection:()=>{let e=$.current;return e?te(e.uiState.rowSelection):{type:`include`,rowKeys:[]}},setRowSelection:e=>{ma.current(ne(e))},getSelectedRowKeys:()=>{let e=$.current;if(!e)return[];let t=e.uiState.rowSelection;if(t.mode===`include`)return Array.from(t.keys);let n=[],r=e.rowModel.getRowCount();for(let i=0;i<r;i+=1){if(!e.rowModel.getRow(i))continue;let r=e.rowModel.getRowKey(i)??i;t.keys.has(r)||n.push(r)}return n},getSelectedRowData:()=>{let e=$.current;if(!e)return[];let t=e.uiState.rowSelection,n=[],r=e.rowModel.getRowCount();for(let i=0;i<r;i+=1){let r=e.rowModel.getRow(i);r&&O(t,e.rowModel.getRowKey(i)??i)&&n.push(r)}return n},getSelectedRowCount:()=>{let e=$.current;return e?N(e.uiState.rowSelection,e.rowModel.getRowCount()):0},isRowSelected:e=>{let t=$.current;return t?O(t.uiState.rowSelection,e):!1},selectAllRows:()=>{ma.current(j())},clearRowSelection:()=>{ma.current(M())}}},[]);let $o=(0,e.useRef)(Tt);$o.current=Tt;let es=(0,e.useRef)(null);return(0,e.useEffect)(()=>{if(!$o.current)return;let e=Kt(W.columnWidths,W.filters,W.sort,Gt(p)),t=Qt(es.current,e,W.dragState!==null);es.current=t.nextLast,t.emit&&$o.current(e)},[W.columnWidths,W.filters,W.sort,W.dragState,p]),(0,n.jsxs)(`div`,{className:i(`ssg-root`,nt,z?.root),children:[Xo,(0,n.jsxs)(`div`,{ref:Et,className:`ssg-shell`,style:{cursor:vi?`progress`:void 0},onDragStart:Sa,onPointerLeave:()=>Ht(null),onPointerMoveCapture:e=>{Dt.current={x:e.clientX,y:e.clientY},ya(e.clientX,e.clientY)},tabIndex:qo?-1:0,onKeyDown:qo?void 0:Ma,onPaste:qo?void 0:ka,onContextMenu:_i,children:[(0,n.jsxs)(`div`,{ref:B,className:`ssg-scroll-container`,style:Qo,children:[(0,n.jsxs)(`div`,{className:`ssg-inner-row`,style:{width:zn,minWidth:zn,height:F+Ki},children:[(0,n.jsxs)(`div`,{ref:jt,style:Bo(`left`,Fn,An),children:[An&&(0,n.jsxs)(`div`,{style:{position:`relative`,overflow:`clip`,width:Fn,minWidth:Fn,height:F+Ki},children:[(0,n.jsx)(fr,{pane:`left`,ownsRowHeader:!0,leadingWidth:Nn,headerHeight:F,rowHeaderCellStyle:Ro,headerRowClassName:z?.headerRow,headerCellClassName:z?.headerCell,rowHeaderCellClassName:z?.rowHeaderCell,isCornerHovered:Ft,isWholeGridSelected:Da,showSelectAllCheckbox:aa,selectAllState:sa,filteredRowsLength:Q,visibleColumnsLength:V.length,renderEntries:Zi,hoveredColumnIndex:Ut,selectionSnapshot:un,columnFilterValues:W.filters.columnFilters,sortState:W.sort,iconButtonClassName:z?.iconButton,onCornerPointerDown:Va,onCornerPointerEnter:Wa,onCornerPointerLeave:Ga,onColumnHeaderPointerDown:Ta,onColumnHeaderPointerEnter:Ea,onColumnHeaderPointerLeave:Ua,onColumnResizePointerDown:Ka,enableColumnMenu:Be,enableColumnResize:Fe,openedMenuColumnKey:ar,onColumnMenuButtonPointerDown:sr,onColumnHeaderContextMenu:cr,onColumnDragHandlePointerDown:uo}),(0,n.jsxs)(`div`,{style:{position:`absolute`,top:0,left:0,width:Fn,height:F+Ki,transform:qi},children:[(0,n.jsx)(pe,{rect:Ba(`left`),headerHeight:F,baseOffset:Yi,leadingWidth:Nn}),(0,n.jsx)(me,{rect:ta(`left`),headerHeight:F,baseOffset:Yi,leadingWidth:Nn}),(0,n.jsx)(he,{rect:na(`left`),headerHeight:F,baseOffset:Yi,leadingWidth:Nn,initialValue:Nt,onCommit:Pa,onCancel:Fa,align:Ia?.align}),(0,n.jsx)(lr,{pane:`left`,ownsRowHeader:!0,leadingWidth:Nn,rowModel:Z,virtualRows:Hi,virtualRowIndexes:Ui,renderEntries:Zi,rowHeight:b,autoHeight:ji,isServerSide:U,rowHeaderCellStyle:Ro,hoveredRowIndex:Rt,isWholeGridSelected:Da,enableRowSelection:Te,rowSelectionState:oa,activeCell:W.activeCell,editingCell:W.editingCell,selectionSnapshot:un,readOnly:L,canEditCell:be,onRowHeaderPointerDown:Ca,onRowHeaderPointerEnter:wa,onRowHeaderPointerLeave:Ha,onCellPointerDown:ba,onCellPointerEnter:xa,onCellDoubleClick:La,renderCellContent:Io,getRowClassName:ft,bodyCellClassName:z?.bodyCell,bodyRowClassName:z?.bodyRow,rowHeaderCellClassName:z?.rowHeaderCell})]})]}),(0,n.jsx)(`div`,{ref:oo,className:`ssg-col-drop-indicator`,style:fo})]}),(0,n.jsx)(`div`,{ref:kt,className:`ssg-center-pane`,style:{width:Ln,minWidth:Ln},children:(0,n.jsxs)(`div`,{style:{position:`relative`,overflow:`clip`,width:Ln,minWidth:Ln,height:F+Ki},children:[(0,n.jsx)(fr,{pane:`center`,ownsRowHeader:Mn,leadingWidth:Pn,headerHeight:F,rowHeaderCellStyle:Ro,headerRowClassName:z?.headerRow,headerCellClassName:z?.headerCell,rowHeaderCellClassName:z?.rowHeaderCell,isCornerHovered:Ft,isWholeGridSelected:Da,showSelectAllCheckbox:aa,selectAllState:sa,filteredRowsLength:Q,visibleColumnsLength:V.length,renderEntries:Xi,hoveredColumnIndex:Ut,selectionSnapshot:un,columnFilterValues:W.filters.columnFilters,sortState:W.sort,iconButtonClassName:z?.iconButton,onCornerPointerDown:Va,onCornerPointerEnter:Wa,onCornerPointerLeave:Ga,onColumnHeaderPointerDown:Ta,onColumnHeaderPointerEnter:Ea,onColumnHeaderPointerLeave:Ua,onColumnResizePointerDown:Ka,enableColumnMenu:Be,enableColumnResize:Fe,openedMenuColumnKey:ar,onColumnMenuButtonPointerDown:sr,onColumnHeaderContextMenu:cr,onColumnDragHandlePointerDown:uo}),(0,n.jsxs)(`div`,{style:{position:`absolute`,top:0,left:0,width:Ln,height:F+Ki,transform:qi},children:[(0,n.jsx)(pe,{rect:Ba(`center`),headerHeight:F,baseOffset:Yi,leadingWidth:Pn}),(0,n.jsx)(me,{rect:ta(`center`),headerHeight:F,baseOffset:Yi,leadingWidth:Pn}),(0,n.jsx)(he,{rect:na(`center`),headerHeight:F,baseOffset:Yi,leadingWidth:Pn,initialValue:Nt,onCommit:Pa,onCancel:Fa,align:Ia?.align}),(0,n.jsx)(lr,{pane:`center`,ownsRowHeader:Mn,leadingWidth:Pn,rowModel:Z,virtualRows:Hi,virtualRowIndexes:Ui,renderEntries:Xi,rowHeight:b,autoHeight:ji,isServerSide:U,rowHeaderCellStyle:Ro,hoveredRowIndex:Rt,isWholeGridSelected:Da,enableRowSelection:Te,rowSelectionState:oa,activeCell:W.activeCell,editingCell:W.editingCell,selectionSnapshot:un,readOnly:L,canEditCell:be,onRowHeaderPointerDown:Ca,onRowHeaderPointerEnter:wa,onRowHeaderPointerLeave:Ha,onCellPointerDown:ba,onCellPointerEnter:xa,onCellDoubleClick:La,renderCellContent:Io,getRowClassName:ft,bodyCellClassName:z?.bodyCell,bodyRowClassName:z?.bodyRow,rowHeaderCellClassName:z?.rowHeaderCell})]}),(0,n.jsx)(`div`,{ref:so,className:`ssg-col-drop-indicator`,style:fo})]})}),(0,n.jsxs)(`div`,{ref:Mt,style:Bo(`right`,In,jn),children:[jn&&(0,n.jsxs)(`div`,{style:{position:`relative`,overflow:`clip`,width:In,minWidth:In,height:F+Ki},children:[(0,n.jsx)(fr,{pane:`right`,ownsRowHeader:!1,leadingWidth:0,headerHeight:F,rowHeaderCellStyle:Ro,headerRowClassName:z?.headerRow,headerCellClassName:z?.headerCell,rowHeaderCellClassName:z?.rowHeaderCell,isCornerHovered:Ft,isWholeGridSelected:Da,showSelectAllCheckbox:aa,selectAllState:sa,filteredRowsLength:Q,visibleColumnsLength:V.length,renderEntries:Qi,hoveredColumnIndex:Ut,selectionSnapshot:un,columnFilterValues:W.filters.columnFilters,sortState:W.sort,iconButtonClassName:z?.iconButton,onCornerPointerDown:Va,onCornerPointerEnter:Wa,onCornerPointerLeave:Ga,onColumnHeaderPointerDown:Ta,onColumnHeaderPointerEnter:Ea,onColumnHeaderPointerLeave:Ua,onColumnResizePointerDown:Ka,enableColumnMenu:Be,enableColumnResize:Fe,openedMenuColumnKey:ar,onColumnMenuButtonPointerDown:sr,onColumnHeaderContextMenu:cr,onColumnDragHandlePointerDown:uo}),(0,n.jsxs)(`div`,{style:{position:`absolute`,top:0,left:0,width:In,height:F+Ki,transform:qi},children:[(0,n.jsx)(pe,{rect:Ba(`right`),headerHeight:F,baseOffset:Yi,leadingWidth:0}),(0,n.jsx)(me,{rect:ta(`right`),headerHeight:F,baseOffset:Yi,leadingWidth:0}),(0,n.jsx)(he,{rect:na(`right`),headerHeight:F,baseOffset:Yi,leadingWidth:0,initialValue:Nt,onCommit:Pa,onCancel:Fa,align:Ia?.align}),(0,n.jsx)(lr,{pane:`right`,ownsRowHeader:!1,leadingWidth:0,rowModel:Z,virtualRows:Hi,virtualRowIndexes:Ui,renderEntries:Qi,rowHeight:b,autoHeight:ji,isServerSide:U,rowHeaderCellStyle:Ro,hoveredRowIndex:Rt,isWholeGridSelected:Da,enableRowSelection:Te,rowSelectionState:oa,activeCell:W.activeCell,editingCell:W.editingCell,selectionSnapshot:un,readOnly:L,canEditCell:be,onRowHeaderPointerDown:Ca,onRowHeaderPointerEnter:wa,onRowHeaderPointerLeave:Ha,onCellPointerDown:ba,onCellPointerEnter:xa,onCellDoubleClick:La,renderCellContent:Io,getRowClassName:ft,bodyCellClassName:z?.bodyCell,bodyRowClassName:z?.bodyRow,rowHeaderCellClassName:z?.rowHeaderCell})]})]}),(0,n.jsx)(`div`,{ref:co,className:`ssg-col-drop-indicator`,style:fo})]})]}),zo&&(0,n.jsx)(`div`,{className:`ssg-empty-state`,children:r.length===0?He:Ve})]}),vi&&(0,n.jsx)(`div`,{className:`ssg-autosize-overlay`,children:(0,n.jsx)(`span`,{className:`ssg-autosize-pill`,children:`列幅を計算中…`})}),Pr===`filtering`&&(0,n.jsx)(`div`,{className:`ssg-filter-overlay`,children:(0,n.jsxs)(`span`,{className:`ssg-filter-overlay-chip`,role:`status`,"aria-live":`polite`,children:[(0,n.jsx)(`span`,{className:`ssg-filter-spinner`,"aria-hidden":`true`}),(0,n.jsxs)(`span`,{className:`ssg-filter-overlay-text`,children:[`適用中 `,Math.round(Ir*100),`%`]})]})})]}),Zo,Ho,Uo,Wo,Go,Ko]})}function di(e={}){let{locale:t,useGrouping:n=!0,minimumFractionDigits:r,maximumFractionDigits:i,emptyText:a=``}=e;return({value:e})=>{if(e==null||e===``)return a;let o=typeof e==`number`?e:Number(e);if(!Number.isFinite(o))return String(e);let s=Math.abs(o).toString(),c=s.indexOf(`.`),l=c===-1?0:s.length-c-1,u=r??0,d=Math.max(u,i??Math.min(l,20));return new Intl.NumberFormat(t,{useGrouping:n,minimumFractionDigits:u,maximumFractionDigits:d}).format(o)}}exports.SpreadsheetGrid=ui,exports.numberFormatter=di;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { SpreadsheetGrid } from './SpreadsheetGrid';
|
|
2
2
|
export { numberFormatter } from './logic/valueFormatters';
|
|
3
|
-
export type { SpreadsheetGridProps, GridColumn, GridColumnPinned, GridRowKey, GridSelectFilterOption, CellRenderContext, HeaderRenderContext, CellValueFormatter, CellValueFormatterParams, SpreadsheetGridSlotContext, SpreadsheetGridDerivedSummary, SpreadsheetGridSelectionStats, GlobalFilterStatus, CellCoord, CellRange, GridSelection, GridSortState, GridSortEntry, GridSortDirection, ColumnFilterValue, GridFilterState, SetColumnFilterValue, NumberColumnFilterValue, ParsedNumberFilter, TextColumnFilterValue, DateColumnFilterValue, SelectColumnFilterValue, CustomColumnFilterValue, ServerSideDataSource, ServerSideQuery, ServerSideGetRowsParams, ServerSideGetRowsResult, RowModel, SpreadsheetGridHandle, RowSelectionModel, RowSelectionMode, ScrollAlign, CsvExportScope, CsvExportOptions, GridExportOptions, GridExportCell, GridExportData, GridState, GridColumnState, GridContextMenuTarget, GridContextMenuParams, GridContextMenuItem, GridContextMenuActionItem, GridContextMenuLabelItem, GridContextMenuSeparatorItem, GridContextMenuCustomItem, } from './model/gridTypes';
|
|
3
|
+
export type { SpreadsheetGridProps, GridColumn, GridColumnPinned, GridRowKey, GridSelectFilterOption, CellRenderContext, HeaderRenderContext, CellValueFormatter, CellValueFormatterParams, SpreadsheetGridSlotContext, SpreadsheetGridDerivedSummary, SpreadsheetGridSelectionStats, GlobalFilterStatus, CellCoord, CellRange, GridSelection, GridSortState, GridSortEntry, GridSortDirection, ColumnFilterValue, GridFilterState, SetColumnFilterValue, NumberColumnFilterValue, ParsedNumberFilter, TextColumnFilterValue, DateColumnFilterValue, SelectColumnFilterValue, CustomColumnFilterValue, ServerSideDataSource, ServerSideQuery, ServerSideGetRowsParams, ServerSideGetRowsResult, RowModel, SpreadsheetGridHandle, RowSelectionModel, RowSelectionMode, ScrollAlign, CsvExportScope, DeprecatedCsvExportScope, CsvExportOptions, GridExportOptions, GridExportCell, GridExportData, GridState, GridColumnState, GridContextMenuTarget, GridContextMenuParams, GridContextMenuItem, GridContextMenuActionItem, GridContextMenuLabelItem, GridContextMenuSeparatorItem, GridContextMenuCustomItem, } from './model/gridTypes';
|
|
4
4
|
export type { NumberFormatterOptions } from './logic/valueFormatters';
|