amotify 0.3.0 → 0.3.2
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as a,c as p,d as q,e as fe}from"../../chunk-C5N2D3ZX.js";import{Fragment as Me,jsx as o,jsxs as U}from"react/jsx-runtime";import u,{useStore as le,UUID as se}from"jmini";import ue,{useState as Re,useEffect as ne}from"react";import{ExtractStyles as $,GenerateHTMLProps as Ie,dragEffect as ce,useRemote as ae}from"../../@utils";import{faArrowUp as xe}from"@fortawesome/free-solid-svg-icons/faArrowUp";import{faUpDown as Te}from"@fortawesome/free-solid-svg-icons/faUpDown";import{Box as k,Flex as we,FAI as G,Span as De}from"../../atoms";import{Literal as ye,Row as V,MarkerPen as me}from"../../mols";import{Button as ie}from"../Button";import H from"../Input";import{TableClasses as ke}from"../../@styles/componentClasses";import{faGripVertical as be}from"@fortawesome/free-solid-svg-icons/faGripVertical";import{Tips as he}from"../Tips";const f={reservedKeys:["row_id","columnIdx","isSelected","isFilterMatched","isVisible","draggerIndex","onRowClick"],toSafetyHeader:t=>{let e=!!t.some(l=>l.draggable);return(t==null?void 0:t.map((l,d)=>{var n;return u.isRecord(l)||(l={key:l}),e&&(l.sortable=0,l.filterable=!1),l.columnIdx=(n=l.columnIdx)!=null?n:d,l}).toASC("columnIdx"))||[]},toSafetyBody:t=>t==null?void 0:t.map((e,r)=>{var d;let l={};return Object.entries(e).forEach(([n,s])=>{var m,c;if(u.isOneOf(n,...f.reservedKeys))return;let i=s;u.isNullish(i)||(u.isRecord(i)||(i={data:i}),i.sortKey=(c=(m=i.sortKey)!=null?m:String(i.data))!=null?c:"",l[n]=i)}),l=p(a({},l),{row_id:(d=e.row_id)!=null?d:r,onRowClick:e.onRowClick,isSelected:!!e.isSelected,isFilterMatched:!0,isVisible:!0,draggerIndex:r}),l}),toSafetyData:t=>{var l,d,n;let{header:e=[]}=t,r={datagridID:t.datagridID||se(),sessionID:se(),body:f.toSafetyBody(t.body||[]),filter:{keyword:t.defaultSearchKey||"",current:[]},sort:{col:-1,dir:1},paging:{rows:t.maxRows||100,total:1,current:1},draggable:!!e.some(s=>s.draggable)};{let s=(l=e==null?void 0:e.filter(i=>i.defSort))==null?void 0:l[0];s&&(r.sort.col=(d=e.indexOf(s))!=null?d:-1,r.sort.dir=(n=s==null?void 0:s.sortable)!=null?n:1)}return r.draggable&&(r.filter.keyword="",r.sort.col=-1,r.sort.dir=0),f.updateRowMeta(r,t)},updateRowMeta:(t,e)=>{let r=a({},t);if(r.sort.col>=0&&r.sort.dir){let l=e.header[r.sort.col].key;r.sort.dir==1?r.body.toASC(l+".sortKey"):r.body.toDESC(l+".sortKey")}{let l=String(r.filter.keyword)||"";r.body.forEach(d=>{if(d.isFilterMatched=!0,!l)return;let n=e.header.some(s=>{var c;let i=d[s.key];return!i||!i.sortKey?!1:!!((c=String(i.sortKey||i.data))!=null&&c.match(new RegExp(l.escapeRegExChar(),"i")))});d.isFilterMatched=n})}{let l=r.paging.rows;r.paging.total=Math.ceil(r.body.filter(i=>i.isFilterMatched).length/l);let d=l*(r.paging.current-1),n=d+l,s=0;r.body.forEach(i=>{i.isVisible=!1,i.isFilterMatched&&(i.isVisible=s>=d&&s<n,s++)})}return r.draggable&&r.body.toASC("draggerIndex"),r},index:t=>{var c,h,I,P;let[e,r]=Re(()=>f.toSafetyData(t));ne(()=>{le.set({["reset-"+e.datagridID]:()=>{r(f.toSafetyData(t))},["refresh-"+e.datagridID]:()=>{r(g=>f.updateRowMeta(p(a({},g),{body:f.toSafetyBody(t.body)}),t))}})},[t]),ne(()=>{le.set({["rows-"+e.datagridID]:e.body}),ae.bridge(e.datagridID,{val_config:e,remoteUpdate:{paging:g=>{r(y=>f.updateRowMeta(p(a({},y),{paging:p(a({},y.paging),{current:Math.max(1,Math.min(y.paging.total,g))})}),t))},maxRow:g=>{r(y=>f.updateRowMeta(p(a({},y),{paging:p(a({},y.paging),{rows:g,current:1})}),t))},searchKey:g=>{e.draggable||u.interval.once(()=>{r(y=>{let C=p(a({},y),{paging:p(a({},y.paging),{current:1}),filter:p(a({},y.filter),{keyword:String(g||"").trim()})});return f.updateRowMeta(C,t)})},300,"InputSearchTime")}}})},[e]);const l=ue.useRef(!1);ne(()=>{if(t.onSelected){if(!l.current){l.current=!0;return}t.onSelected(e.body.filter(g=>g.isSelected))}},[(c=e==null?void 0:e.body)==null?void 0:c.filter(g=>g.isSelected).length]);const d=ue.useRef(!1);ne(()=>{if(t.onSorted){if(!d.current){d.current=!0;return}t.onSorted(e.sort.col,e.sort.dir)}},[(h=e==null?void 0:e.sort)==null?void 0:h.col,(I=e==null?void 0:e.sort)==null?void 0:I.dir]);let n={input:t,val_config:e,set_config:r},{className:s,style:i}=Ie(t),m=(P=t.colLength)!=null?P:t.header.length;return o(k,{className:s,style:i,children:o(T.Table,{className:ke("DataGrid"),borderRadius:"inherit",children:U(T.Body,{children:[o(f.Header,a({},n)),o(f.Body,a({},n)),o(f.Footer,a({},n))]})},[m,...t.header.map(g=>g.key),e.sessionID].join("."))})},Checker:t=>o(k,{flexCenter:!0,onClick:e=>{e.stopPropagation()},children:o(H.Checker,p(a({wrapStyles:{display:"inlineBlock"},cellStyles:{gap:0}},t),{label:!1}))}),Header:t=>{var m;let{input:e,val_config:r,set_config:l}=t;if(e.headerless)return null;let d="datagrid-dragger-"+r.datagridID,n=["datagrid",r.datagridID,""].join("-"),s=1+r.body.filter(c=>c.isVisible).length+ +!!e.footer,i=(m=e.colLength)!=null?m:e.header.length;return o(ce.DropArea,p(a({jsxElement:T.Row,id:n},e.rowStyles),{dragInfo:{type:d,id:n,idx:0,marker:"bottom"},children:e.header.toASC("columnIdx").map((c,h)=>{var Y,Z,ee,te,M,_;let[I,P]=$(c),X=P,{isTH:g,key:y,label:C,onLabelRender:K,columnIdx:w,checkable:v,draggable:O,defSort:J,sortable:N,filterable:j,isHidden:E}=X,D=q(X,["isTH","key","label","onLabelRender","columnIdx","checkable","draggable","defSort","sortable","filterable","isHidden"]);if(E)return null;let S={rowIdx:0,colIdx:h,topIdx:0,leftIdx:h,rightIdx:i-h-1,bottomIdx:s-1,isHeader:!0,isBody:!1,isFooter:!1},x=O,z=N!=0,F=h==r.sort.col,W=u.deepMerge(u.deepCopy(e.cellStyles),ge(S,{}),(Y=e.cellStyles)==null?void 0:Y.onHeader,!S.leftIdx&&((Z=e.cellStyles)==null?void 0:Z.onLeft),!S.rightIdx&&((ee=e.cellStyles)==null?void 0:ee.onRight),!S.topIdx&&((te=e.cellStyles)==null?void 0:te.onTop),!S.bottomIdx&&((M=e.cellStyles)==null?void 0:M.onBottom),I);e.onCellStyles&&(W=e.onCellStyles(S,W||{}));let A=[],Q=[];if(x&&A.push(o(ie.Clear.S,{ssSphere:2,fontColor:"theme",onMouseOver:b=>{he.open(b.currentTarget,U(ye.Mini,{children:[o(G,{icon:be}),"\u30C9\u30E9\u30C3\u30B0\u3067\u5217\u306E\u9806\u756A\u3092\u5909\u66F4"]}),22)},onMouseLeave:b=>he.abort(),onClick:b=>{b.stopPropagation()},children:o(G.QuestionCircle,{})},"drag")),v){let b=o(f.Checker,{value:r.body.every(R=>R.isSelected),onUpdateValue:R=>{l(L=>{let B=a({},L);return B.body.forEach(re=>{re.isFilterMatched&&(re.isSelected=!!R)}),B})}},"check");v=="left"?A.push(b):Q.push(b)}return z&&A.push(o(G,{fontSize:"1.mini",fontColor:"theme",opacity:F?"max":"low",transition:"middle",xcss:{transform:F&&r.sort.dir==-1?"rotate(180deg)":"none"},icon:F?xe:Te},"sort")),o(T.Cell,p(a(a({isTH:!!g,ssPushable:!!N},$(W||{})[0]),D),{className:[e.cellClassName,D.className].join(" "),onClick:b=>{D.onClick&&D.onClick(b),e.onCellClick&&e.onCellClick(S,b),z&&l(R=>{let L=a({},R);return L.sort={col:h,dir:F?R.sort.dir*-1:N},f.updateRowMeta(L,e)})},children:U(V.Left,{gap:"1/4",height:1,children:[A,(_=K==null?void 0:K(y))!=null?_:o(k,{flexSizing:0,children:C!=null?C:y}),Q]})}),[h,c.key].join("/"))})}))},Body:t=>{var i,m;let{input:e,val_config:r,set_config:l}=t,d=r.body.filter(c=>c.isVisible),n=+!e.headerless+d.length+ +!!e.footer,s=(i=e.colLength)!=null?i:e.header.length;return d.length?o(Me,{children:d.map((c,h)=>{let I=h;e.headerless||(I+=1);let P="datagrid-dragger-"+r.datagridID,g=["datagrid",r.datagridID,c.row_id].join("-");return o(ce.DropArea,p(a({jsxElement:T.Row,id:g,ssPushable:!!e.onRowClick||!!c.onRowClick},e.rowStyles),{onClick:y=>{c.onRowClick&&c.onRowClick(y),e.onRowClick&&e.onRowClick(c,y)},dragInfo:{type:P,id:g,idx:h+1,disabled:!r.draggable,marker:"bottom"},children:e.header.toASC("columnIdx").map((y,C)=>{var Q,X,Y,Z,ee,te;let K=y.draggable,w=c[y.key];if(!w)return null;let[v,O]=$(w),A=O,{isTH:J,sortKey:N,data:j,label:E,onLabelRender:D}=A,S=q(A,["isTH","sortKey","data","label","onLabelRender"]),x={rowIdx:I,colIdx:C,topIdx:I,leftIdx:C,rightIdx:s-C-1,bottomIdx:n-I-1,isHeader:!1,isBody:!0,isFooter:!1},z=u.deepMerge(u.deepCopy(e.cellStyles),ge(x,{}),(Q=e.cellStyles)==null?void 0:Q.onBody,!x.leftIdx&&((X=e.cellStyles)==null?void 0:X.onLeft),!x.rightIdx&&((Y=e.cellStyles)==null?void 0:Y.onRight),!x.topIdx&&((Z=e.cellStyles)==null?void 0:Z.onTop),!x.bottomIdx&&((ee=e.cellStyles)==null?void 0:ee.onBottom),v);e.onCellStyles&&(z=e.onCellStyles(x,z||{}));let F=[],W=[];if(K&&F.push(o(ie.Clear.S,{tabIndex:-1,isRounded:!0,ssSphere:2.5,fontColor:"6.clear",onPointerDown:M=>{let _=u("#"+g)[0],b=_.cloneNode(!0);b.style.width=_.offsetWidth+"px",ce.Start(P,{dragElement:b,startEvent:M,originId:g,horizontal:!1},R=>fe(void 0,null,function*(){if(!R.onDropArea)return;let L=h,B=Number(R.idx);if(u.isNullish(B)||B==-1||(B>L&&B--,L==B)||!R.end)return;let re=r.paging.rows*(r.paging.current-1);L+=re,B+=re;let oe=[...r.body||[]],Se=oe.splice(L,1)[0];oe.splice(B,0,Se),oe.forEach((de,Ce)=>{de.draggerIndex=Ce+1}),e.onDragged&&e.onDragged(oe),l(de=>p(a({},de),{body:oe}))}))},children:o(V.Center,{gap:"1/4",children:o(G,{icon:be})})},"drag")),y.checkable){let M=o(f.Checker,{override:"force",value:!!c.isSelected,onUpdateValue:_=>{l(b=>p(a({},b),{body:b.body.map(R=>(R.row_id==c.row_id&&(R.isSelected=!!_),R))}))}},"check");y.checkable=="left"?F.push(M):W.push(M)}return o(T.Cell,p(a(a({isTH:!!J},$(z||{})[0]),S),{className:[e.cellClassName,S.className].join(" "),onClick:M=>{S.onClick&&S.onClick(M),e.onCellClick&&e.onCellClick(x,M)},children:U(V.Left,{gap:"1/4",height:1,children:[F,(te=D==null?void 0:D(j))!=null?te:o(k,{flexSizing:0,children:me(E!=null?E:String(j),r.filter.keyword)}),W]})}),[C,y.key].join("/"))})}),[c.row_id,I].join("."))})}):o(T.Row,p(a({},e.rowStyles),{children:o(T.Cell,{colSpan:s,padding:1,children:(m=e.onNoRecordsRender)==null?void 0:m.call(e)})}))},Footer:t=>{var s;let{input:e,val_config:r,set_config:l}=t;if(!e.footer)return null;let d=+!e.headerless+r.body.filter(i=>i.isVisible).length+1,n=(s=e.colLength)!=null?s:e.header.length;return o(T.Row,p(a({},e.rowStyles),{children:e.header.toASC("columnIdx").map((i,m)=>{var J,N,j,E,D,S;let c=e.footer[i.key];if(!c)return null;u.isRecord(c)||(c={data:c});let[h,I]=$(c),O=I,{isTH:P,data:g,label:y,onLabelRender:C}=O,K=q(O,["isTH","data","label","onLabelRender"]),w={rowIdx:d-1,colIdx:m,topIdx:d-1,leftIdx:m,rightIdx:n-m-1,bottomIdx:0,isHeader:!1,isBody:!1,isFooter:!0},v=u.deepMerge(u.deepCopy(e.cellStyles),ge(w,{}),(J=e.cellStyles)==null?void 0:J.onBody,!w.leftIdx&&((N=e.cellStyles)==null?void 0:N.onLeft),!w.rightIdx&&((j=e.cellStyles)==null?void 0:j.onRight),!w.topIdx&&((E=e.cellStyles)==null?void 0:E.onTop),!w.bottomIdx&&((D=e.cellStyles)==null?void 0:D.onBottom),h);return e.onCellStyles&&(v=e.onCellStyles(w,v||{})),o(T.Cell,p(a(a({isTH:!!P},$(v||{})[0]),K),{className:[e.cellClassName,K.className].join(" "),onClick:x=>{K.onClick&&K.onClick(x),e.onCellClick&&e.onCellClick(w,x)},children:o(k,{flexSizing:0,children:(S=C==null?void 0:C(g))!=null?S:me(y!=null?y:String(g),r.filter.keyword)})}),[m,i.key].join("/"))})}))}},ge=(t,e)=>{let r=a({},e);return t.topIdx||(r.borderTop="unset"),t.bottomIdx||(r.borderBottom="unset"),t.rightIdx||(r.borderRight="unset"),t.leftIdx||(r.borderLeft="unset"),t.topIdx||(t.leftIdx||(r.borderTopLeftRadius="inherit"),t.rightIdx||(r.borderTopRightRadius="inherit")),t.bottomIdx||(t.leftIdx||(r.borderBottomLeftRadius="inherit"),t.rightIdx||(r.borderBottomRightRadius="inherit")),r},Ke=t=>(t=a({datagridID:se(),tone:"border",maxRows:100,onNoRecordsRender:()=>o(V.Center,{children:o(ye.Mini,{fontColor:"4.thin",children:"(\u30C7\u30FC\u30BF\u306A\u3057)"})})},t),t.rowStyles=a({backgroundColor:"layer.0"},t.rowStyles),t.cellStyles=a(p(a({},u.scope(()=>{if(!t.tone)return{};let e={};return u.isOneOf(t.tone,"border","border.horizontal")&&(e.borderBottom="2.normal"),u.isOneOf(t.tone,"border","border.vertical")&&(e.borderRight="2.normal"),e})),{position:"relative",padding:"1/3",transition:"short"}),t.cellStyles),t.tone&&(t=a({border:!0,borderRadius:"2.tone.secondary",backgroundColor:"layer.1"},t)),t.header=f.toSafetyHeader(t.header||[]),t.header.forEach((e,r)=>{var l;e.sortable=(l=e.sortable)!=null?l:1,e.checkable===!0&&(e.checkable="left")}),o(f.index,a({},t))),pe={getBodyRows:t=>le.get("rows-"+t)||[],toSafetyBody:f.toSafetyBody,reset:t=>{var e;(e=le.get("reset-"+t))==null||e()},refreshBody:t=>{var e;(e=le.get("refresh-"+t))==null||e()},reservedKeys:f.reservedKeys,Table:t=>o(k,p(a({htmlTag:"table",borderRadius:"inherit"},t),{border:t.border})),Head:t=>o(k,a({htmlTag:"thead",borderRadius:"inherit"},t)),Body:t=>o(k,a({htmlTag:"tbody",borderRadius:"inherit"},t)),Row:t=>o(k,a({htmlTag:"tr",borderRadius:"inherit"},t)),TH:t=>o(k,a({htmlTag:"th"},t)),TD:t=>o(k,a({htmlTag:"td"},t)),Cell:t=>{let l=t,{isTH:e}=l,r=q(l,["isTH"]);return e?o(pe.TH,a({},r)):o(pe.TD,a({},r))},RightIndicator:{data:"",label:o(V.Right,{children:o(G.AngleRight,{fontColor:"theme",fontSize:"3.paragraph"})})},SearchInput:t=>{let n=t,{datagridID:e}=n,r=q(n,["datagridID"]),l=ae.catch(t.datagridID);if(!l)return console.warn("[DataGrid] SearchInput must be used inside DataGrid."),null;let{val_config:d}=l;return o(H.TextField,p(a({label:"\u691C\u7D22...",clearButton:!0,padding:["1/2","2/3"],rightIcon:o(H.RightIcon,{ssSphere:2,fontColor:"5.translucent",right:"2/3",children:o(G.Search,{})}),value:d.filter.keyword},r),{onUpdateValidValue:(...s)=>{r.onUpdateValidValue&&r.onUpdateValidValue(...s),l.remoteUpdate.searchKey(s[0])}}))},Info:t=>{let e=ae.catch(t.datagridID);if(!e)return null;let{val_config:r}=e,l=r.body.length,d=r.body.filter(s=>s.isFilterMatched).length,n=d.ratio(l)||0;return U(we,{verticalAlign:"baseline",gap:"1/2",fontSize:"1.mini",fontColor:"3.blur",children:[o(De,{fontSize:"4.thirdTitle",fontColor:"theme",children:d.toLocaleString()}),"/ ",l.toLocaleString(),"\u4EF6 (",n,"%)"]})},Paging:t=>{let e=ae.catch(t.datagridID);if(!e)return null;let{val_config:r}=e,l=[];for(let n=0;n<r.paging.total;n++)l.push({value:n+1,label:(n+1).toString()});const d=n=>{let s=Math.min(Math.max(1,n),r.paging.total),i=a({},r);i.paging.current=s,e.remoteUpdate.paging(s)};return o(H.Select,{emptySelect:!1,padding:["1/3","2/3"],override:"force",gap:0,leftIcon:o(H.LeftIcon,{xcss:{left:2,pointerEvents:"all"},children:o(ie.Sub.S,{color:"cloud",fontColor:"4.thin",ssSquare:2.5,unitWidth:2,onClick:()=>{if(r.paging.current==1){d(r.paging.total);return}d(r.paging.current-1)},children:o(G.ChevronLeft,{})})}),rightIcon:o(H.RightIcon,{xcss:{right:2,pointerEvents:"all"},children:o(ie.Sub.S,{color:"cloud",fontColor:"4.thin",ssSquare:2.5,unitWidth:2,onClick:()=>{if(r.paging.current==r.paging.total){d(1);return}d(r.paging.current+1)},children:o(G.ChevronRight,{})})}),options:l.map(n=>({value:n.value||0,label:U(V.Left,{gap:"1/3",verticalAlign:"baseline",children:[n.label,U(ye.Micro,{fontColor:"4.thin",children:["/ ",r.paging.total]})]})})),value:r.paging.current,onUpdateValidValue:n=>{d(n)}})},RowCount:t=>{let e=ae.catch(t.datagridID);if(!e)return null;let{val_config:r}=e,l=r.body.filter(i=>i.isFilterMatched).length,d=r.paging.rows,n=0,s=t.options.map(i=>(n|=+(i==d),{value:i,label:i.toString()}));return n||s.push({value:d,label:d.toString()}),o(V.Center,{gap:"1/2",children:o(H.Select,{emptySelect:!1,override:"force",padding:"1/3",paddingLeft:3,paddingRight:2,pickerStyles:{xcss:{minWidth:12*9}},pickerPosition:4,leftIcon:o(H.LeftIcon,{fontSize:"0.xs",fontColor:"4.thin",xcss:{left:6},children:"\u8868\u793A"}),rightIcon:o(H.RightIcon,{fontSize:"0.xs",fontColor:"4.thin",xcss:{right:6},children:"\u4EF6"}),value:r.paging.rows,options:s.toASC("value"),onUpdateValidValue:i=>{e.remoteUpdate.maxRow(Number(i))}})})}},T=Object.assign(Ke,pe);export{T as DataGrid,T as default,ge as onDefaultCellStyles};
|
|
1
|
+
import{b as n,c as p,d as q,e as fe}from"../../chunk-C5N2D3ZX.js";import{Fragment as Me,jsx as l,jsxs as U}from"react/jsx-runtime";import u,{useStore as le,UUID as se}from"jmini";import ue,{useState as Re,useEffect as ne}from"react";import{ExtractStyles as $,GenerateHTMLProps as Ie,dragEffect as ce,useRemote as ae}from"../../@utils";import{faArrowUp as xe}from"@fortawesome/free-solid-svg-icons/faArrowUp";import{faUpDown as Te}from"@fortawesome/free-solid-svg-icons/faUpDown";import{Box as k,Flex as we,FAI as G,Span as De}from"../../atoms";import{Literal as ge,Row as V,MarkerPen as me}from"../../mols";import{Button as ie}from"../Button";import H from"../Input";import{TableClasses as ke}from"../../@styles/componentClasses";import{faGripVertical as be}from"@fortawesome/free-solid-svg-icons/faGripVertical";import{Tips as he}from"../Tips";const f={reservedKeys:["row_id","columnIdx","isSelected","isFilterMatched","isVisible","draggerIndex","onRowClick"],toSafetyHeader:t=>{let e=!!t.some(o=>o.draggable);return(t==null?void 0:t.map((o,d)=>{var a;return u.isRecord(o)||(o={key:o}),u.isString(o.key)&&(o.key=o.key.replace(/[.\s]/g,"_")),e&&(o.sortable=0,o.filterable=!1),o.columnIdx=(a=o.columnIdx)!=null?a:d,o}).toASC("columnIdx"))||[]},toSafetyBody:t=>t==null?void 0:t.map((e,r)=>{var d;let o={};return Object.entries(e).forEach(([a,s])=>{var m,c;if(u.isOneOf(a,...f.reservedKeys))return;let i=s;u.isNullish(i)||(u.isRecord(i)||(i={data:i}),u.isString(a)&&(a=a.replace(/[.\s]/g,"_")),i.sortKey=(c=(m=i.sortKey)!=null?m:String(i.data))!=null?c:"",o[a]=i)}),o=p(n({},o),{row_id:(d=e.row_id)!=null?d:r,onRowClick:e.onRowClick,isSelected:!!e.isSelected,isFilterMatched:!0,isVisible:!0,draggerIndex:r}),o}),toSafetyData:t=>{var o,d,a;let{header:e=[]}=t,r={datagridID:t.datagridID||se(),sessionID:se(),body:f.toSafetyBody(t.body||[]),filter:{keyword:t.defaultSearchKey||"",current:[]},sort:{col:-1,dir:1},paging:{rows:t.maxRows||100,total:1,current:1},draggable:!!e.some(s=>s.draggable)};{let s=(o=e==null?void 0:e.filter(i=>i.defSort))==null?void 0:o[0];s&&(r.sort.col=(d=e.indexOf(s))!=null?d:-1,r.sort.dir=(a=s==null?void 0:s.sortable)!=null?a:1)}return r.draggable&&(r.filter.keyword="",r.sort.col=-1,r.sort.dir=0),f.updateRowMeta(r,t)},updateRowMeta:(t,e)=>{let r=n({},t);if(r.sort.col>=0&&r.sort.dir){let o=e.header[r.sort.col].key;r.sort.dir==1?r.body.toASC(o+".sortKey"):r.body.toDESC(o+".sortKey")}{let o=String(r.filter.keyword)||"";r.body.forEach(d=>{if(d.isFilterMatched=!0,!o)return;let a=e.header.some(s=>{var c;let i=d[s.key];return!i||!i.sortKey?!1:!!((c=String(i.sortKey||i.data))!=null&&c.match(new RegExp(o.escapeRegExChar(),"i")))});d.isFilterMatched=a})}{let o=r.paging.rows;r.paging.total=Math.ceil(r.body.filter(i=>i.isFilterMatched).length/o);let d=o*(r.paging.current-1),a=d+o,s=0;r.body.forEach(i=>{i.isVisible=!1,i.isFilterMatched&&(i.isVisible=s>=d&&s<a,s++)})}return r.draggable&&r.body.toASC("draggerIndex"),r},index:t=>{var c,h,I,P;let[e,r]=Re(()=>f.toSafetyData(t));ne(()=>{le.set({["reset-"+e.datagridID]:()=>{r(f.toSafetyData(t))},["refresh-"+e.datagridID]:()=>{r(y=>f.updateRowMeta(p(n({},y),{body:f.toSafetyBody(t.body)}),t))}})},[t]),ne(()=>{le.set({["rows-"+e.datagridID]:e.body}),ae.bridge(e.datagridID,{val_config:e,remoteUpdate:{paging:y=>{r(g=>f.updateRowMeta(p(n({},g),{paging:p(n({},g.paging),{current:Math.max(1,Math.min(g.paging.total,y))})}),t))},maxRow:y=>{r(g=>f.updateRowMeta(p(n({},g),{paging:p(n({},g.paging),{rows:y,current:1})}),t))},searchKey:y=>{e.draggable||u.interval.once(()=>{r(g=>{let C=p(n({},g),{paging:p(n({},g.paging),{current:1}),filter:p(n({},g.filter),{keyword:String(y||"").trim()})});return f.updateRowMeta(C,t)})},300,"InputSearchTime")}}})},[e]);const o=ue.useRef(!1);ne(()=>{if(t.onSelected){if(!o.current){o.current=!0;return}t.onSelected(e.body.filter(y=>y.isSelected))}},[(c=e==null?void 0:e.body)==null?void 0:c.filter(y=>y.isSelected).length]);const d=ue.useRef(!1);ne(()=>{if(t.onSorted){if(!d.current){d.current=!0;return}t.onSorted(e.sort.col,e.sort.dir)}},[(h=e==null?void 0:e.sort)==null?void 0:h.col,(I=e==null?void 0:e.sort)==null?void 0:I.dir]);let a={input:t,val_config:e,set_config:r},{className:s,style:i}=Ie(t),m=(P=t.colLength)!=null?P:t.header.length;return l(k,{className:s,style:i,children:l(T.Table,{className:ke("DataGrid"),borderRadius:"inherit",children:U(T.Body,{children:[l(f.Header,n({},a)),l(f.Body,n({},a)),l(f.Footer,n({},a))]})},[m,...t.header.map(y=>y.key),e.sessionID].join("."))})},Checker:t=>l(k,{flexCenter:!0,onClick:e=>{e.stopPropagation()},children:l(H.Checker,p(n({wrapStyles:{display:"inlineBlock"},cellStyles:{gap:0}},t),{label:!1}))}),Header:t=>{var m;let{input:e,val_config:r,set_config:o}=t;if(e.headerless)return null;let d="datagrid-dragger-"+r.datagridID,a=["datagrid",r.datagridID,""].join("-"),s=1+r.body.filter(c=>c.isVisible).length+ +!!e.footer,i=(m=e.colLength)!=null?m:e.header.length;return l(ce.DropArea,p(n({jsxElement:T.Row,id:a},e.rowStyles),{dragInfo:{type:d,id:a,idx:0,marker:"bottom"},children:e.header.toASC("columnIdx").map((c,h)=>{var Y,Z,ee,te,M,_;let[I,P]=$(c),X=P,{isTH:y,key:g,label:C,onLabelRender:K,columnIdx:w,checkable:v,draggable:O,defSort:J,sortable:N,filterable:j,isHidden:E}=X,D=q(X,["isTH","key","label","onLabelRender","columnIdx","checkable","draggable","defSort","sortable","filterable","isHidden"]);if(E)return null;let S={rowIdx:0,colIdx:h,topIdx:0,leftIdx:h,rightIdx:i-h-1,bottomIdx:s-1,isHeader:!0,isBody:!1,isFooter:!1},x=O,z=N!=0,F=h==r.sort.col,W=u.deepMerge(u.deepCopy(e.cellStyles),ye(S,{}),(Y=e.cellStyles)==null?void 0:Y.onHeader,!S.leftIdx&&((Z=e.cellStyles)==null?void 0:Z.onLeft),!S.rightIdx&&((ee=e.cellStyles)==null?void 0:ee.onRight),!S.topIdx&&((te=e.cellStyles)==null?void 0:te.onTop),!S.bottomIdx&&((M=e.cellStyles)==null?void 0:M.onBottom),I);e.onCellStyles&&(W=e.onCellStyles(S,W||{}));let A=[],Q=[];if(x&&A.push(l(ie.Clear.S,{ssSphere:2,fontColor:"theme",onMouseOver:b=>{he.open(b.currentTarget,U(ge.Mini,{children:[l(G,{icon:be}),"\u30C9\u30E9\u30C3\u30B0\u3067\u5217\u306E\u9806\u756A\u3092\u5909\u66F4"]}),22)},onMouseLeave:b=>he.abort(),onClick:b=>{b.stopPropagation()},children:l(G.QuestionCircle,{})},"drag")),v){let b=l(f.Checker,{value:r.body.every(R=>R.isSelected),onUpdateValue:R=>{o(L=>{let B=n({},L);return B.body.forEach(re=>{re.isFilterMatched&&(re.isSelected=!!R)}),B})}},"check");v=="left"?A.push(b):Q.push(b)}return z&&A.push(l(G,{fontSize:"1.mini",fontColor:"theme",opacity:F?"max":"low",transition:"middle",xcss:{transform:F&&r.sort.dir==-1?"rotate(180deg)":"none"},icon:F?xe:Te},"sort")),l(T.Cell,p(n(n({isTH:!!y,ssPushable:!!N},$(W||{})[0]),D),{className:[e.cellClassName,D.className].join(" "),onClick:b=>{D.onClick&&D.onClick(b),e.onCellClick&&e.onCellClick(S,b),z&&o(R=>{let L=n({},R);return L.sort={col:h,dir:F?R.sort.dir*-1:N},f.updateRowMeta(L,e)})},children:U(V.Left,{gap:"1/3",height:1,children:[A,(_=K==null?void 0:K(g))!=null?_:l(k,{flexSizing:0,children:C!=null?C:g}),Q]})}),[h,c.key].join("/"))})}))},Body:t=>{var i,m;let{input:e,val_config:r,set_config:o}=t,d=r.body.filter(c=>c.isVisible),a=+!e.headerless+d.length+ +!!e.footer,s=(i=e.colLength)!=null?i:e.header.length;return d.length?l(Me,{children:d.map((c,h)=>{let I=h;e.headerless||(I+=1);let P="datagrid-dragger-"+r.datagridID,y=["datagrid",r.datagridID,c.row_id].join("-");return l(ce.DropArea,p(n({jsxElement:T.Row,id:y,ssPushable:!!e.onRowClick||!!c.onRowClick},e.rowStyles),{onClick:g=>{c.onRowClick&&c.onRowClick(g),e.onRowClick&&e.onRowClick(c,g)},dragInfo:{type:P,id:y,idx:h+1,disabled:!r.draggable,marker:"bottom"},children:e.header.toASC("columnIdx").map((g,C)=>{var Q,X,Y,Z,ee,te;let K=g.draggable,w=c[g.key];if(!w)return null;let[v,O]=$(w),A=O,{isTH:J,sortKey:N,data:j,label:E,onLabelRender:D}=A,S=q(A,["isTH","sortKey","data","label","onLabelRender"]),x={rowIdx:I,colIdx:C,topIdx:I,leftIdx:C,rightIdx:s-C-1,bottomIdx:a-I-1,isHeader:!1,isBody:!0,isFooter:!1},z=u.deepMerge(u.deepCopy(e.cellStyles),ye(x,{}),(Q=e.cellStyles)==null?void 0:Q.onBody,!x.leftIdx&&((X=e.cellStyles)==null?void 0:X.onLeft),!x.rightIdx&&((Y=e.cellStyles)==null?void 0:Y.onRight),!x.topIdx&&((Z=e.cellStyles)==null?void 0:Z.onTop),!x.bottomIdx&&((ee=e.cellStyles)==null?void 0:ee.onBottom),v);e.onCellStyles&&(z=e.onCellStyles(x,z||{}));let F=[],W=[];if(K&&F.push(l(ie.Clear.S,{tabIndex:-1,isRounded:!0,ssSphere:2.5,fontColor:"6.clear",onPointerDown:M=>{let _=u("#"+y)[0],b=_.cloneNode(!0);b.style.width=_.offsetWidth+"px",ce.Start(P,{dragElement:b,startEvent:M,originId:y,horizontal:!1},R=>fe(void 0,null,function*(){if(!R.onDropArea)return;let L=h,B=Number(R.idx);if(u.isNullish(B)||B==-1||(B>L&&B--,L==B)||!R.end)return;let re=r.paging.rows*(r.paging.current-1);L+=re,B+=re;let oe=[...r.body||[]],Se=oe.splice(L,1)[0];oe.splice(B,0,Se),oe.forEach((de,Ce)=>{de.draggerIndex=Ce+1}),e.onDragged&&e.onDragged(oe),o(de=>p(n({},de),{body:oe}))}))},children:l(V.Center,{gap:"1/4",children:l(G,{icon:be})})},"drag")),g.checkable){let M=l(f.Checker,{override:"force",value:!!c.isSelected,onUpdateValue:_=>{o(b=>p(n({},b),{body:b.body.map(R=>(R.row_id==c.row_id&&(R.isSelected=!!_),R))}))}},"check");g.checkable=="left"?F.push(M):W.push(M)}return l(T.Cell,p(n(n({isTH:!!J},$(z||{})[0]),S),{className:[e.cellClassName,S.className].join(" "),onClick:M=>{S.onClick&&S.onClick(M),e.onCellClick&&e.onCellClick(x,M)},children:U(V.Left,{gap:"1/3",height:1,children:[F,(te=D==null?void 0:D(j))!=null?te:l(k,{flexSizing:0,children:me(E!=null?E:String(j),r.filter.keyword)}),W]})}),[C,g.key].join("/"))})}),[c.row_id,I].join("."))})}):l(T.Row,p(n({},e.rowStyles),{children:l(T.Cell,{colSpan:s,padding:1,children:(m=e.onNoRecordsRender)==null?void 0:m.call(e)})}))},Footer:t=>{var s;let{input:e,val_config:r,set_config:o}=t;if(!e.footer)return null;let d=+!e.headerless+r.body.filter(i=>i.isVisible).length+1,a=(s=e.colLength)!=null?s:e.header.length;return l(T.Row,p(n({},e.rowStyles),{children:e.header.toASC("columnIdx").map((i,m)=>{var J,N,j,E,D,S;let c=e.footer[i.key];if(!c)return null;u.isRecord(c)||(c={data:c});let[h,I]=$(c),O=I,{isTH:P,data:y,label:g,onLabelRender:C}=O,K=q(O,["isTH","data","label","onLabelRender"]),w={rowIdx:d-1,colIdx:m,topIdx:d-1,leftIdx:m,rightIdx:a-m-1,bottomIdx:0,isHeader:!1,isBody:!1,isFooter:!0},v=u.deepMerge(u.deepCopy(e.cellStyles),ye(w,{}),(J=e.cellStyles)==null?void 0:J.onBody,!w.leftIdx&&((N=e.cellStyles)==null?void 0:N.onLeft),!w.rightIdx&&((j=e.cellStyles)==null?void 0:j.onRight),!w.topIdx&&((E=e.cellStyles)==null?void 0:E.onTop),!w.bottomIdx&&((D=e.cellStyles)==null?void 0:D.onBottom),h);return e.onCellStyles&&(v=e.onCellStyles(w,v||{})),l(T.Cell,p(n(n({isTH:!!P},$(v||{})[0]),K),{className:[e.cellClassName,K.className].join(" "),onClick:x=>{K.onClick&&K.onClick(x),e.onCellClick&&e.onCellClick(w,x)},children:l(k,{flexSizing:0,children:(S=C==null?void 0:C(y))!=null?S:me(g!=null?g:String(y),r.filter.keyword)})}),[m,i.key].join("/"))})}))}},ye=(t,e)=>{let r=n({},e);return t.topIdx||(r.borderTop="unset"),t.bottomIdx||(r.borderBottom="unset"),t.rightIdx||(r.borderRight="unset"),t.leftIdx||(r.borderLeft="unset"),t.topIdx||(t.leftIdx||(r.borderTopLeftRadius="inherit"),t.rightIdx||(r.borderTopRightRadius="inherit")),t.bottomIdx||(t.leftIdx||(r.borderBottomLeftRadius="inherit"),t.rightIdx||(r.borderBottomRightRadius="inherit")),r},Ke=t=>(t=n({datagridID:se(),tone:"border",maxRows:100,onNoRecordsRender:()=>l(V.Center,{children:l(ge.Mini,{fontColor:"4.thin",children:"(\u30C7\u30FC\u30BF\u306A\u3057)"})})},t),t.rowStyles=n({backgroundColor:"layer.0"},t.rowStyles),t.cellStyles=n(p(n({},u.scope(()=>{if(!t.tone)return{};let e={};return u.isOneOf(t.tone,"border","border.horizontal")&&(e.borderBottom="2.normal"),u.isOneOf(t.tone,"border","border.vertical")&&(e.borderRight="2.normal"),e})),{position:"relative",padding:"1/3",transition:"short"}),t.cellStyles),t.tone&&(t=n({border:!0,borderRadius:"2.tone.secondary",backgroundColor:"layer.1"},t)),t.header=f.toSafetyHeader(t.header||[]),t.header.forEach((e,r)=>{var o;e.sortable=(o=e.sortable)!=null?o:1,e.checkable===!0&&(e.checkable="left")}),l(f.index,n({},t))),pe={getBodyRows:t=>le.get("rows-"+t)||[],toSafetyBody:f.toSafetyBody,reset:t=>{var e;(e=le.get("reset-"+t))==null||e()},refreshBody:t=>{var e;(e=le.get("refresh-"+t))==null||e()},reservedKeys:f.reservedKeys,Table:t=>l(k,p(n({htmlTag:"table",borderRadius:"inherit"},t),{border:t.border})),Head:t=>l(k,n({htmlTag:"thead",borderRadius:"inherit"},t)),Body:t=>l(k,n({htmlTag:"tbody",borderRadius:"inherit"},t)),Row:t=>l(k,n({htmlTag:"tr",borderRadius:"inherit"},t)),TH:t=>l(k,n({htmlTag:"th"},t)),TD:t=>l(k,n({htmlTag:"td"},t)),Cell:t=>{let o=t,{isTH:e}=o,r=q(o,["isTH"]);return e?l(pe.TH,n({},r)):l(pe.TD,n({},r))},RightIndicator:{data:"",label:l(V.Right,{children:l(G.AngleRight,{fontColor:"theme",fontSize:"3.paragraph"})})},SearchInput:t=>{let a=t,{datagridID:e}=a,r=q(a,["datagridID"]),o=ae.catch(t.datagridID);if(!o)return console.warn("[DataGrid] SearchInput must be used inside DataGrid."),null;let{val_config:d}=o;return l(H.TextField,p(n({label:"\u691C\u7D22...",clearButton:!0,padding:["1/2","2/3"],rightIcon:l(H.RightIcon,{ssSphere:2,fontColor:"5.translucent",right:"2/3",children:l(G.Search,{})}),value:d.filter.keyword},r),{onUpdateValidValue:(...s)=>{r.onUpdateValidValue&&r.onUpdateValidValue(...s),o.remoteUpdate.searchKey(s[0])}}))},Info:t=>{let e=ae.catch(t.datagridID);if(!e)return null;let{val_config:r}=e,o=t.totalCount||r.body.length,d=r.body.filter(s=>s.isFilterMatched).length,a=d.ratio(o,1)||0;return U(we,{verticalAlign:"baseline",gap:"1/2",fontSize:"1.mini",fontColor:"3.blur",children:[l(De,{fontSize:"4.thirdTitle",fontColor:"theme",children:d.toLocaleString()}),"/ ",o.toLocaleString(),"\u4EF6 (",a,"%)"]})},Paging:t=>{let e=ae.catch(t.datagridID);if(!e)return null;let{val_config:r}=e,o=[];for(let a=0;a<r.paging.total;a++)o.push({value:a+1,label:(a+1).toString()});const d=a=>{let s=Math.min(Math.max(1,a),r.paging.total),i=n({},r);i.paging.current=s,e.remoteUpdate.paging(s)};return l(H.Select,{emptySelect:!1,padding:["1/3","2/3"],override:"force",gap:0,leftIcon:l(H.LeftIcon,{xcss:{left:2,pointerEvents:"all"},children:l(ie.Sub.S,{color:"cloud",fontColor:"4.thin",ssSquare:2.5,unitWidth:2,onClick:()=>{if(r.paging.current==1){d(r.paging.total);return}d(r.paging.current-1)},children:l(G.ChevronLeft,{})})}),rightIcon:l(H.RightIcon,{xcss:{right:2,pointerEvents:"all"},children:l(ie.Sub.S,{color:"cloud",fontColor:"4.thin",ssSquare:2.5,unitWidth:2,onClick:()=>{if(r.paging.current==r.paging.total){d(1);return}d(r.paging.current+1)},children:l(G.ChevronRight,{})})}),options:o.map(a=>({value:a.value||0,label:U(V.Left,{gap:"1/3",verticalAlign:"baseline",children:[a.label,U(ge.Micro,{fontColor:"4.thin",children:["/ ",r.paging.total]})]})})),value:r.paging.current,onUpdateValidValue:a=>{d(a)}})},RowCount:t=>{let e=ae.catch(t.datagridID);if(!e)return null;let{val_config:r}=e,o=r.body.filter(i=>i.isFilterMatched).length,d=r.paging.rows,a=0,s=t.options.map(i=>(a|=+(i==d),{value:i,label:i.toString()}));return a||s.push({value:d,label:d.toString()}),l(V.Center,{gap:"1/2",children:l(H.Select,{emptySelect:!1,override:"force",padding:"1/3",paddingLeft:3,paddingRight:2,pickerStyles:{xcss:{minWidth:12*9}},pickerPosition:4,leftIcon:l(H.LeftIcon,{fontSize:"0.xs",fontColor:"4.thin",xcss:{left:6},children:"\u8868\u793A"}),rightIcon:l(H.RightIcon,{fontSize:"0.xs",fontColor:"4.thin",xcss:{right:6},children:"\u4EF6"}),value:r.paging.rows,options:s.toASC("value"),onUpdateValidValue:i=>{e.remoteUpdate.maxRow(Number(i))}})})}},T=Object.assign(Ke,pe);export{T as DataGrid,T as default,ye as onDefaultCellStyles};
|