amotify 0.2.300 → 0.2.301

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